@vuu-ui/vuu-table 0.8.9 → 0.8.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -1,32 +1,2 @@
1
- "use strict";var bE=Object.create;var za=Object.defineProperty;var yE=Object.getOwnPropertyDescriptor;var xE=Object.getOwnPropertyNames;var vE=Object.getPrototypeOf,CE=Object.prototype.hasOwnProperty;var wE=(r,e)=>{for(var t in e)za(r,t,{get:e[t],enumerable:!0})},Lm=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of xE(e))!CE.call(r,o)&&o!==t&&za(r,o,{get:()=>e[o],enumerable:!(n=yE(e,o))||n.enumerable});return r};var W=(r,e,t)=>(t=r!=null?bE(vE(r)):{},Lm(e||!r||!r.__esModule?za(t,"default",{value:r,enumerable:!0}):t,r)),SE=r=>Lm(za({},"__esModule",{value:!0}),r);var Om=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var j=(r,e,t)=>(Om(r,e,"read from private field"),t?t.call(r):e.get(r)),qt=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Pn=(r,e,t,n)=>(Om(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);var JO={};wE(JO,{ColumnResizer:()=>cl,GroupHeaderCellNext:()=>ea,Table:()=>LP,TableNext:()=>Fc,buildContextMenuDescriptors:()=>ul,isShowColumnSettings:()=>bP,isShowTableSettings:()=>yP,updateTableConfig:()=>Oa,useMeasuredContainer:()=>gd,useSelection:()=>Ql,useTableColumnResize:()=>zl,useTableContextMenu:()=>fl,useTableModel:()=>bd,useTableViewport:()=>jl});module.exports=SE(JO);var Ls=require("react");var Nm=require("react/jsx-runtime"),Hm=()=>{},TE="vuuColumnResizer",cl=({onDrag:r,onDragEnd:e=Hm,onDragStart:t=Hm})=>{let n=(0,Ls.useRef)(0),o=(0,Ls.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-n.current;n.current=a,c!==0&&r(l,c)},[r]),s=(0,Ls.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(l)},[e,o]),i=(0,Ls.useCallback)(l=>{t(l),n.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,Nm.jsx)("div",{className:TE,"data-align":"end",onMouseDown:i})};var Bm=require("@vuu-ui/vuu-utils"),ul=r=>(e,t)=>{let n=[];if(r===void 0)return n;if(e==="header"||e==="column-menu")n.push(...EE(t,r)),n.push(...ME(t,r)),n.push(...kE(t,r)),n.push(...DE(t)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:t}),n.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);n.push({label:"Edit filter",action:"filter-edit",options:t}),n.push({label:"Remove filter",action:"filter-remove-column",options:t}),o&&!i&&n.push({label:"Remove all filters",action:"remove-filters",options:t})}return n};function EE(r,{sort:{sortDefs:e}}){let{column:t}=r,n=[];if(t===void 0)return n;let o=e.length>0;return t.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:r}):t.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:r}):typeof t.sorted=="number"?(t.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:r}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:r}),o&&Math.abs(t.sorted)<e.length&&n.push({label:"Remove from sort",action:"sort-remove",options:r}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:r},{label:"Descending",action:"sort-dsc",options:r}]})):o?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:r},{label:"Descending",action:"sort-add-dsc",options:r}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:r},{label:"Descending",action:"sort-dsc",options:r}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:r},{label:"Descending",action:"sort-dsc",options:r}]}),n}function kE(r,e){let{column:t}=r;if(t===void 0||e.groupBy.length===0)return[];let{name:n,label:o=n}=t;return[{label:`Aggregate ${o}`,children:[{label:"Count",action:"agg-count",options:r},{label:"Distinct",action:"agg-distinct",options:r}].concat((0,Bm.isNumericColumn)(t)?[{label:"Sum",action:"agg-sum",options:r},{label:"Avg",action:"agg-avg",options:r},{label:"High",action:"agg-high",options:r},{label:"Low",action:"agg-low",options:r}]:[])}]}var Df=(r,e)=>({label:`Pin ${e}`,action:`column-pin-${e}`,options:r}),Tf=r=>Df(r,"left"),Ef=r=>Df(r,"floating"),kf=r=>Df(r,"right");function DE(r){let{column:e}=r;if(e===void 0)return[];let{pin:t}=e,n=[{label:"Hide column",action:"column-hide",options:r},{label:"Remove column",action:"column-remove",options:r}];return t===void 0?n.push({label:"Pin column",children:[Tf(r),Ef(r),kf(r)]}):t==="left"?n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Ef(r),kf(r)]}):t==="right"?n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Tf(r),Ef(r)]}):t==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:r},{label:"Pin column",children:[Tf(r),kf(r)]}),n}function ME(r,{groupBy:e}){let{column:t}=r,n=[];if(t===void 0)return n;let{name:o,label:s=o}=t;return e.length===0?n.push({label:`Group by ${s}`,action:"group",options:r}):n.push({label:`Add ${s} to group by`,action:"group-add",options:r}),n}var Fm=require("@vuu-ui/vuu-utils"),ct=require("@vuu-ui/vuu-utils"),RE=(r,e)=>{if(r.filterStruct&&e){let[t,n]=(0,Fm.removeColumnFromFilter)(e,r.filterStruct);return{filter:n,filterStruct:t}}else return r},{Average:PE,Count:IE,Distinct:AE,High:LE,Low:OE,Sum:HE}=ct.AggregationType,fl=({dataSource:r,onPersistentColumnOperation:e})=>n=>{let o=n.options;if(o.column&&r){let{column:s}=o;switch(n.menuId){case"sort-asc":return r.sort=(0,ct.setSortColumn)(r.sort,s,"A"),!0;case"sort-dsc":return r.sort=(0,ct.setSortColumn)(r.sort,s,"D"),!0;case"sort-add-asc":return r.sort=(0,ct.addSortColumn)(r.sort,s,"A"),!0;case"sort-add-dsc":return r.sort=(0,ct.addSortColumn)(r.sort,s,"D"),!0;case"group":return r.groupBy=(0,ct.addGroupColumn)(r.groupBy,s),!0;case"group-add":return r.groupBy=(0,ct.addGroupColumn)(r.groupBy,s),!0;case"column-hide":return e({type:"hideColumns",columns:[s]}),!0;case"column-remove":return r.columns=r.columns.filter(i=>i!==s.name),!0;case"filter-remove-column":return r.filter=RE(r.filter,s),!0;case"remove-filters":return r.filter={filter:""},!0;case"agg-avg":return r.aggregations=(0,ct.setAggregations)(r.aggregations,s,PE),!0;case"agg-high":return r.aggregations=(0,ct.setAggregations)(r.aggregations,s,LE),!0;case"agg-low":return r.aggregations=(0,ct.setAggregations)(r.aggregations,s,OE),!0;case"agg-count":return r.aggregations=(0,ct.setAggregations)(r.aggregations,s,IE),!0;case"agg-distinct":return r.aggregations=(0,ct.setAggregations)(r.aggregations,s,AE),!0;case"agg-sum":return r.aggregations=(0,ct.setAggregations)(r.aggregations,s,HE),!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 S0=require("@vuu-ui/vuu-popups"),iu=require("@salt-ds/core");var gn=require("@vuu-ui/vuu-utils"),hi=require("react");var tn=require("@vuu-ui/vuu-utils"),wv=W(require("classnames")),Bl=require("react");var qc=require("@vuu-ui/vuu-utils");var Pf=require("@vuu-ui/vuu-utils"),Km=W(require("classnames"));var NE={},BE={},Va={};function et(r,e,t="component"){Va[r]=e,t==="container"?NE[r]=!0:t==="view"&&(BE[r]=!0)}var hl=require("@salt-ds/core"),Mf=W(require("classnames")),Vm=require("react");var Wr=require("react/jsx-runtime"),Kr="vuuDrawer",zm=r=>typeof r=="string"?r:r+"px",FE=(r,e,t)=>{let n=e!==void 0,o=t!==void 0;if(!(!r&&!o&&!n))return!o&&!n?r:{...r,"--drawer-size":n?zm(e):void 0,"--drawer-peek-size":o?zm(t):void 0}},$m=({children:r,className:e,clickToOpen:t,defaultOpen:n,sizeOpen:o,sizeClosed:s,style:i,open:l,position:a="left",inline:c,onClick:u,peekaboo:f=!1,toggleButton:h,...d})=>{let[p,m]=(0,hl.useControlled)({controlled:l,default:n!=null?n:!1,name:"Drawer",state:"open"}),g=(0,Mf.default)(Kr,e,`${Kr}-${a}`,{[`${Kr}-open`]:p,[`${Kr}-inline`]:c,[`${Kr}-over`]:!c,[`${Kr}-peekaboo`]:f}),y=(0,Vm.useCallback)(()=>{m(!p)},[p,m]),C=FE(i,o,s),v=t?y:u,x=()=>(0,Wr.jsx)("div",{className:(0,Mf.default)("vuuToggleButton-container"),children:p?(0,Wr.jsx)(hl.Button,{"aria-label":"close",onClick:y,"data-icon":"close",variant:"secondary"}):(0,Wr.jsx)(hl.Button,{"aria-label":"open",onClick:y,"data-icon":"close",variant:"secondary"})});return(0,Wr.jsxs)("div",{...d,className:g,onClick:v,style:C,children:[h=="start"?x():null,(0,Wr.jsx)("div",{className:`${Kr}-liner`,children:(0,Wr.jsx)("div",{className:`${Kr}-content`,children:r})}),h=="end"?x():null]})};$m.displayName="Drawer";var Rf=$m;var $a=require("react/jsx-runtime"),zE=r=>r.type===Rf,VE=({props:{position:r="left"}})=>r.match(/top|bottom/),Wm=r=>{let{children:e,className:t,id:n,style:o}=r,s="vuuDockLayout",[i,l]=(0,Pf.partition)(e,zE),[a,c]=(0,Pf.partition)(i,VE),u=a.length===0?"horizontal":c.length===0?"vertical":"both",f=(0,Km.default)(s,t,`${s}-${u}`);return(0,$a.jsxs)("div",{className:f,id:n,style:o,children:[i,(0,$a.jsx)("div",{className:`${s}-content`,children:l})]})};Wm.displayName="DockLayout";et("DockLayout",Wm,"container");var Um=require("react");var _m=require("react/jsx-runtime"),If=(0,Um.forwardRef)(function({resizeable:e,...t},n){return(0,_m.jsx)("div",{...t,className:"Component",ref:n})});If.displayName="Component";var Af=If;et("Component",If);var Gm=W(require("react"));var $E={},qn=(r,e)=>{var n;let t=Mt(r);return(n=t[e])!=null?n:t[`data-${e}`]},Mt=r=>(r==null?void 0:r.props)||r||$E;var In=require("react"),KE=[],WE=0,ko=r=>{let e=Array.isArray(r),t=e?r.length:In.Children.count(r);return e&&r.every(In.isValidElement)?r:t===1&&!e&&(0,In.isValidElement)(r)?[r]:t>1?r:KE},An=(r,e)=>{let t=(0,In.useRef)(!1);(0,In.useLayoutEffect)(()=>{t.current?r():t.current=!0},e)},ft=r=>(0,In.useMemo)(()=>r!=null?r:`vuu-${++WE}`,[r]);var UE=require("@vuu-ui/vuu-utils");var Of={north:1,east:2,south:4,west:8,header:16,centre:32,absolute:64},Hf={AFTER:"after",BEFORE:"before"},Mo=Object.freeze({North:Do("north"),East:Do("east"),South:Do("south"),West:Do("west"),Header:Do("header"),Centre:Do("centre"),Absolute:Do("absolute")});function Do(r){return Object.freeze({offset:r==="north"||r==="west"?0:r==="south"||r==="east"?1:NaN,valueOf:function(){return Of[r]},toString:function(){return r},North:r==="north",South:r==="south",East:r==="east",West:r==="west",Header:r==="header",Centre:r==="centre",NorthOrSouth:r==="north"||r==="south",EastOrWest:r==="east"||r==="west",NorthOrWest:r==="north"||r==="west",SouthOrEast:r==="east"||r==="south",Absolute:r==="absolute"})}var nN=Mo.North,rN=Mo.South,oN=Mo.East,sN=Mo.West,iN=Mo.Header,lN=Mo.Centre;var{north:GE,south:QE,east:jE,west:qE}=Of,gN=jE+qE,bN=GE+QE;var Ka=require("@vuu-ui/vuu-popups");var Qm=W(require("classnames"));var Bf=require("react/jsx-runtime");function jm(r,e=0,t=0){let{pos:n,clientRect:o}=r,s=20;return n.position.West?[o.left-t+s,n.y-e,"left"]:n.position.South?[n.x-t,o.bottom-e-s,"bottom"]:n.position.East?[o.right-t-s,n.y-e,"right"]:[n.x-t,o.top-e+s,"top"]}var Nf="vuuDropMenu",qm=({className:r,dropTarget:e,onHover:t,orientation:n})=>{let o=e.toArray();return(0,Bf.jsx)("div",{className:(0,Qm.default)(Nf,r,`${Nf}-${n}`),onMouseLeave:()=>t(null),children:o.map((s,i)=>(0,Bf.jsx)("div",{className:`${Nf}-item`,"data-icon":i===0?"column-2A":"column-2B",onMouseEnter:()=>t(s)},i))})};var Zm=require("react/jsx-runtime"),Ff=!1,dl=null,Ln=null,XE=r=>dl=r,YE=([r,e])=>`M${r},${e}`,JE=([r,e])=>`L${r},${e}`,Xm=([r,...e])=>`${YE(r)} ${e.map(JE)}Z`,ZE=r=>{if(r){let[e,t,n,o,s,i,l,a]=r;return`M${e},${t} L${n},${o} M${s},${i} L${l},${a}`}else return""};function ek(){if(document.getElementById("hw-drag-canvas")===null){let r=document.getElementById("root"),e=document.createElement("div");e.id="hw-drag-canvas",e.innerHTML=`
2
- <svg width="100%" height="100%">
3
- <path id="hw-drop-guides" />
4
- <path
5
- id="vuu-drop-outline"
6
- d="M300,132 L380,132 L380,100 L460,100 L460,132, L550,132 L550,350 L300,350z">
7
- <animate
8
- attributeName="d"
9
- id="hw-drop-outline-animate"
10
- begin="indefinite"
11
- dur="300ms"
12
- fill="freeze"
13
- to="M255,33 L255,33,L255,1,L315,1,L315,1,L794,1,L794,164,L255,164Z"
14
- />
15
- </path>
16
- </svg>
17
- `,document.body.insertBefore(e,r)}}var pl=class{constructor(){this.currentPath=null;this.tabMode=null;ek()}prepare(e,t="full-view"){document.body.classList.add("drawing"),this.currentPath=null,this.tabMode=t;let n=this.getPoints(0,0,0,0),o=Xm(n),s=document.getElementById("vuu-drop-outline");s==null||s.setAttribute("d",o),this.currentPath=o}clear(){dl=null,Wa(),document.body.classList.remove("drawing"),Ka.PopupService.hidePopup()}get hoverDropTarget(){return dl}getPoints(e,t,n,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+n,t],[e+n,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+n,t+l],[e+n,t+o],[e,t+o]]:[[e,t+l],[e+s,t+l],[e+s,t],[e+s,t],[e+s,t+l],[e+n,t+l],[e+n,t+o],[e,t+o]]}draw(e,t){let o=Ff;if(dl!==null)this.drawTarget(dl);else if(Ff=e.nextDropTarget!=null,e.pos.tab?tk(e):Ln&&Wa(),this.drawTarget(e,t),Ff){let[s,i,l]=jm(e);{let a=(0,Zm.jsx)(qm,{dropTarget:e,onHover:XE,orientation:l});Ka.PopupService.showPopup({left:s,top:i,component:a})}}else Ka.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:f,guideLines:h}=o,d=l-s,p=a-i;if(this.currentPath){let v=document.getElementById("vuu-drop-outline");v==null||v.setAttribute("d",this.currentPath)}let m=this.getPoints(s,i,d,p,c,u,f),g=Xm(m),y=document.getElementById("hw-drop-outline-animate");y==null||y.setAttribute("to",g),y==null||y.beginElement(),this.currentPath=g;let C=document.getElementById("hw-drop-guides");C==null||C.setAttribute("d",ZE(h))}}},Ym="transition:margin-left .4s ease-out;margin-left: 63px",Jm="transition:margin-left .4s ease-out;margin-left: 0px";function tk(r){var l,a;let{AFTER:e,BEFORE:t}=Hf,{clientRect:{Stack:n},pos:{tab:o}}=r,{id:s}=r.component.props,i=null;if(n&&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?(Ln===null||Ln!==i)&&(i.style.cssText=Ym,Ln&&(Ln.style.cssText=Jm),Ln=i):Wa()}else if((o==null?void 0:o.positionRelativeToTab)===t){if(Ln===null){let c=".vuuHeader-title";i=(a=document.getElementById(s))==null?void 0:a.querySelector(c),i.style.cssText=Ym,Ln=i}}else Wa()}function Wa(){Ln&&(Ln.style.cssText=Jm,Ln=null)}var VN=new pl;var tg=W(require("classnames")),ng=require("react");var sg=require("react/jsx-runtime"),rg=(0,ng.forwardRef)(function({children:e,className:t,dropTarget:n,resizeable:o,...s},i){let l=(0,tg.default)("DraggableLayout",t);return(0,sg.jsx)("div",{className:l,ref:i,...s,children:e})}),og="DraggableLayout";rg.displayName=og;et(og,rg,"container");var vg=require("@salt-ds/core"),Cg=W(require("classnames")),wg=require("react");var yg=require("@vuu-ui/vuu-utils"),je=W(require("react"));var lg=W(require("classnames"));var ag=require("react/jsx-runtime"),ig="vuuPlaceholder",Ua=({className:r,closeable:e,flexFill:t,resizeable:n,shim:o,...s})=>(0,ag.jsx)("div",{className:(0,lg.default)(ig,r,{[`${ig}-shim`]:o}),...s,"data-placeholder":!0,"data-resizeable":!0});Ua.displayName="Placeholder";et("Placeholder",Ua);var cg=W(require("classnames")),Rt=W(require("react"));var zf=require("react/jsx-runtime"),_a="vuuSplitter",ug=Rt.default.memo(function({column:e,index:t,onDrag:n,onDragEnd:o,onDragStart:s,style:i}){let l=(0,Rt.useRef)(),a=(0,Rt.useRef)(null),c=(0,Rt.useRef)(0),[u,f]=(0,Rt.useState)(!1),h=(0,Rt.useCallback)(({key:b,shiftKey:w})=>{let k=w?10:1;e&&b==="ArrowDown"?n(t,k):e&&b==="ArrowUp"||!e&&b==="ArrowLeft"?n(t,-k):!e&&b==="ArrowRight"&&n(t,k)},[e,t,n]),d=(0,Rt.useCallback)(b=>{let{key:w}=b;(e&&(w==="ArrowUp"||w==="ArrowDown")||!e&&(w==="ArrowLeft"||w==="ArrowRight"))&&(s(t),h(b),p.current=h)},[e,h,t,s]),p=(0,Rt.useRef)(d),m=b=>p.current(b),g=(0,Rt.useCallback)(b=>{l.current=!0;let w=b[e?"clientY":"clientX"],k=w-c.current;w&&w!==c.current&&n(t,k),c.current=w},[e,t,n]),y=(0,Rt.useCallback)(()=>{var b;window.removeEventListener("mousemove",g,!1),window.removeEventListener("mouseup",y,!1),o(),f(!1),(b=a.current)==null||b.focus()},[g,o,f]),C=(0,Rt.useCallback)(b=>{c.current=e?b.clientY:b.clientX,s(t),window.addEventListener("mousemove",g,!1),window.addEventListener("mouseup",y,!1),b.preventDefault(),f(!0)},[e,g,y,t,s,f]),v=()=>{var b;l.current?l.current=!1:(b=a.current)==null||b.focus()},x=()=>{p.current=d},S=(0,cg.default)(_a,{[`${_a}-active`]:u,[`${_a}-column`]:e});return(0,zf.jsx)("div",{className:S,"data-splitter":!0,ref:a,role:"separator",style:i,onBlur:x,onClick:v,onKeyDown:m,onMouseDown:C,tabIndex:0,children:(0,zf.jsx)("div",{className:`${_a}-grab-zone`})})});var nk=require("@vuu-ui/vuu-utils"),rk=W(require("react"));var hg={},fg="auto";var Os=r=>{let{style:{width:e=fg,height:t=fg}=hg}=r.props,n=typeof t=="number",o=typeof e=="number";return n&&o?{height:t,width:e}:n?{height:t}:o?{width:e}:void 0};function dg(r){let{style:{flex:e,flexGrow:t,flexShrink:n,flexBasis:o}=hg}=r.props;return typeof e=="number"||o===0&&t===1&&n===1?!0:typeof o!="number"}var ok={},gl=1,bl=2,sk=r=>typeof r.intrinsicSize=="number",ik=(r,e)=>{let t={};return r.forEach(n=>{t[n]=qn(e,n)}),t},Ga=(r,e,t)=>r.map((n,o)=>{var a;let s=qn(n,"resizeable"),{[e]:i}=(a=Os(n))!=null?a:ok,l=dg(n);return t?{index:o,flexOpen:l,intrinsicSize:i,resizeable:s,...ik(t,n)}:{index:o,flexOpen:l,intrinsicSize:i,resizeable:s}}),pg=r=>{let e=r.length,t=r.every(sk),n=Array(e).fill(0);if(t&&e>0&&(n[0]=bl,n[e-1]=bl),e<2)return n;for(let o=0,s=0;o<e-1;o++)r[o].resizeable&&!s&&(s=gl),n[o]+=s;for(let o=e-1;o>0&&(n[o]&gl&&(n[o]-=gl),!r[o].resizeable);o--);return n},mg=(r,e)=>{let t=ak(r,e),n=ck(r,e),o=t!==-1&&n!==-1?[t,n]:void 0,s=lk(r,o);return[o,s]};function lk(r,e){if(e){let t=[];for(let n=0;n<r.length;n++)r[n].flexOpen&&!e.includes(n)&&t.push(n);return t}}function ak(r,e){let t=e,n=!1;for(;t>=1&&!n;)t=t-1,n=gg(r,t);return t}function ck(r,e){let t=e,n=!1,o=r.length;for(;t<o-1&&!n;)t=t+1,n=gg(r,t);return t===o?-1:t}function gg(r,e){let{placeholder:t,splitter:n,resizeable:o,intrinsicSize:s}=r[e];return!!(!n&&!s&&(t||o))}var uk=r=>!r.splitter&&!r.placeholder,xg=({children:r,onSplitterMoved:e,style:t})=>{let n=(0,je.useRef)(null),o=(0,je.useRef)(),s=(0,je.useRef)(),i=(0,je.useRef)([]),[,l]=(0,je.useState)({}),a=g=>{s.current=g,l({})},c=(t==null?void 0:t.flexDirection)==="column",u=c?"height":"width",f=(0,je.useMemo)(()=>Array.isArray(r)?r:je.default.isValidElement(r)?[r]:[],[r]),h=(0,je.useCallback)(g=>{let{current:y}=o;if(y){let[C,v]=mg(y,g);C&&(C.forEach(x=>{var b;let S=(b=n.current)==null?void 0:b.childNodes[x];if(S){let{size:w,minSize:k}=pk(S,u);y[x].currentSize=w,y[x].minSize=k}}),v&&v.forEach(x=>{var b;let S=(b=n.current)==null?void 0:b.childNodes[x];if(S){let{[u]:w}=S.getBoundingClientRect();y[x].flexBasis=w}}))}},[u]),d=(0,je.useCallback)((g,y)=>{s.current&&o.current&&a(hk(s.current,o.current,y,u))},[u]),p=(0,je.useCallback)(()=>{let g=o.current;g&&(e==null||e(g.filter(uk))),g==null||g.forEach(y=>{y.currentSize=void 0,y.flexBasis=void 0,y.flexOpen=!1})},[e]),m=(0,je.useCallback)(g=>je.default.createElement(ug,{column:c,index:g,key:`splitter-${g}`,onDrag:d,onDragEnd:p,onDragStart:h}),[d,p,h,c]);return(0,je.useMemo)(()=>{let[g,y]=fk(f,u,m,i.current);o.current=y,s.current=g},[f,m,u]),{content:s.current||[],rootRef:n}};function fk(r,e,t,n){let o=Ga(r,e),s=pg(o),i=[],l=[];for(let a=0;a<r.length;a++){let c=r[a];if(a===0&&s[a]&bl&&(i.push(bg(a)),l.push({placeholder:!0,shim:!0})),c.key==null){let u=n[a]||(n[a]=(0,yg.getUniqueId)());i.push(je.default.cloneElement(c,{key:u}))}else i.push(c);l.push(o[a]),a>0&&s[a]&bl?(i.push(bg(a)),l.push({placeholder:!0})):s[a]&gl&&(i.push(t(i.length)),l.push({splitter:!0}))}return[i,l]}function hk(r,e,t,n){return dk(e,t)?r.map((s,i)=>{let l=e[i],{currentSize:a,flexOpen:c,flexBasis:u}=l,f=a!==void 0;if(f||c){let{flexBasis:h}=s.props.style||{},d=f?l.currentSize:u;return d!==h?je.default.cloneElement(s,{style:{...s.props.style,flexBasis:d,[n]:"auto"}}):s}else return s}):r}function dk(r,e){let t=[];r.forEach((u,f)=>{u.currentSize!==void 0&&t.push(f)});let n=e<0?t[0]:t[1],{currentSize:o=0,minSize:s=0}=r[n];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=r[t[0]],{currentSize:l=0}=i;i.currentSize=l+e;let a=r[t[1]],{currentSize:c=0}=a;return a.currentSize=c-e,!0}function bg(r){return je.default.createElement(Ua,{shim:r===0,key:`placeholder-${r}`})}function pk(r,e){let{[e]:t}=r.getBoundingClientRect(),o=getComputedStyle(r).getPropertyValue(`min-${e}`),s=o.endsWith("px")?parseInt(o,10):0;return{size:t,minSize:s}}var Tg=require("react/jsx-runtime"),$f="hwFlexbox",Sg=(0,wg.forwardRef)(function(e,t){let{breakPoints:n,children:o,column:s,className:i,flexFill:l,gap:a,fullPage:c,id:u,onSplitterMoved:f,resizeable:h,row:d,spacing:p,splitterSize:m,style:g,...y}=e,{content:C,rootRef:v}=xg({children:o,onSplitterMoved:f,style:g}),x=(0,Cg.default)($f,i,{[`${$f}-column`]:s,[`${$f}-row`]:d,"flex-fill":l,"full-page":c});return(0,Tg.jsx)("div",{...y,className:x,"data-resizeable":h||void 0,id:u,ref:(0,vg.useForkRef)(v,t),style:{...g,gap:a,"--spacing":p},children:C})});Sg.displayName="Flexbox";var Kf=Sg;var Pg=require("react");var Qa={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 Po=require("react");var Mk=W(require("react"));var bk=require("@vuu-ui/vuu-utils"),yk=W(require("react"));var mk=require("@vuu-ui/vuu-utils"),Eg=W(require("react"));var Ro=require("react"),cn=new Map,un=new Map;var Hs=()=>{let r=(0,Ro.useCallback)((i,l)=>{let a=un.get(i);if(a)return l!==void 0&&a[l]!==void 0?a[l]:l!==void 0?void 0:a},[]),e=(0,Ro.useCallback)((i,l,a)=>{if(l===void 0)un.set(i,a);else if(un.has(i)){let c=un.get(i);un.set(i,{...c,[l]:a})}else un.set(i,{[l]:a})},[]),t=(0,Ro.useCallback)((i,l)=>{if(un.has(i)){if(l===void 0)un.delete(i);else if(un.get(i)[l]){let{[l]:c,...u}=un.get(i);Object.keys(u).length>0?un.set(i,u):un.delete(i)}}},[]),n=(0,Ro.useCallback)((i,l)=>{let a=cn.get(i);if(a)return l!==void 0?a[l]:a},[]),o=(0,Ro.useCallback)((i,l,a)=>{if(l===void 0)cn.set(i,a);else if(cn.has(i)){let c=cn.get(i);cn.set(i,{...c,[l]:a})}else cn.set(i,{[l]:a})},[]),s=(0,Ro.useCallback)((i,l)=>{if(cn.has(i)){if(l===void 0)cn.delete(i);else if(cn.get(i)[l]){let{[l]:c,...u}=cn.get(i);Object.keys(u).length>0?cn.set(i,u):cn.delete(i)}}},[]);return{loadSessionState:r,loadState:n,saveSessionState:e,saveState:o,purgeState:s,purgeSessionState:t}};var Ck=require("react");var vk=W(require("react"));var Sk=W(require("react"));var Tk=W(require("react"));var Ek=require("@vuu-ui/vuu-utils"),kk=W(require("react"));var Dg=require("react"),Rk=r=>console.log(`dispatch ${r.type}, have you forgotten to provide a LayoutProvider ?`),_f=(0,Dg.createContext)({dispatchLayoutProvider:Rk,version:-1});var Mg=require("react");var Pk=require("react/jsx-runtime");var fn=()=>{let{dispatchLayoutProvider:r}=(0,Po.useContext)(_f);return r},Rg=()=>{let{createNewChild:r}=(0,Po.useContext)(_f);return r};var Ag=require("react/jsx-runtime"),Ig=function(e){let{path:t}=e,n=fn(),o=(0,Pg.useCallback)(s=>{n({type:Qa.SPLITTER_RESIZE,path:t,sizes:s})},[n,t]);return(0,Ag.jsx)(Kf,{...e,onSplitterMoved:o})};Ig.displayName="Flexbox";et("Flexbox",Ig,"container");var Vg=require("@salt-ds/core"),$g=W(require("classnames")),Xa=require("react");var On=require("react");var Ao=require("react"),Og=["height","width"];var Io=new WeakMap,Hg=(r,e,t)=>{switch(t){case"height":return e.height;case"scrollHeight":return r.scrollHeight;case"scrollWidth":return r.scrollWidth;case"width":return e.width;default:return 0}},Lg=new ResizeObserver(r=>{for(let e of r){let{target:t,contentRect:n}=e,o=Io.get(t);if(o){let{onResize:s,measurements:i}=o,l=!1;for(let[a,c]of Object.entries(i)){let u=Hg(t,n,a);u!==c&&(l=!0,i[a]=u)}l&&s&&s(i)}}});function ja(r,e,t,n=!1){let o=(0,Ao.useRef)(e),s=(0,Ao.useCallback)(i=>{let l=i.getBoundingClientRect();return o.current.reduce((a,c)=>(a[c]=Hg(i,l,c),a),{})},[]);(0,Ao.useLayoutEffect)(()=>{let i=r.current,l=!1;async function a(){Io.set(i,{measurements:{}}),l=!1;let{fonts:c}=document;if(c&&await c.ready,!l){let u=Io.get(i);if(u){let f=s(i);u.measurements=f,Lg.observe(i),n&&t(f)}}}if(i){if(Io.has(i))throw Error("useResizeObserver attemping to observe same element twice");a()}return()=>{i&&Io.has(i)&&(Lg.unobserve(i),Io.delete(i),l=!0)}},[r,s,n,t]),(0,Ao.useLayoutEffect)(()=>{let i=r.current,l=Io.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,r,t])}function Ik(r,e){let t=document.body.querySelector(`.${r}`),n={get:function(o,s){let i=o.getPropertyValue(`--${r}-breakpoint-${s}`);return i?parseInt(i):void 0}};return t?new Proxy(getComputedStyle(t),n):e!=null?e:{}}var Ak=([,r],[,e])=>e-r,Qf=r=>Object.entries(r).sort(Ak).map(([e,t],n,o)=>[e,t,n<o.length-1?o[n+1][1]:9999]),Gf=null,Lk=(r="salt")=>{let{xs:e,sm:t,md:n,lg:o,xl:s}=Ik(r);return Qf({xs:e,sm:t,md:n,lg:o,xl:s})},Ng=r=>(Gf===null&&(Gf=Lk(r)),Gf);var Ok=[],Bg=({breakPoints:r,smallerThan:e},t)=>{let[n,o]=(0,On.useState)(e?!1:"lg"),s=(0,On.useRef)(document.body),i=(0,On.useRef)(r?Qf(r):Ng()),l=(0,On.useRef)("lg"),a=(0,On.useCallback)(u=>{if(i.current){for(let[f,h]of i.current)if(u>=h)return f}},[i]),c=(0,On.useCallback)(u=>{if(e){let f=i.current.find(([h])=>h===e);if(f){let[,,h]=f;return u<h}}else return a(u);return u},[e,a]);return ja(t||s,i.current?["width"]:Ok,({width:u})=>{let f=c(u);f!==l.current&&(l.current=f,o(f))},!0),(0,On.useEffect)(()=>{let u=t||s;if(u.current){let f=l.current;if(i.current){let{clientWidth:h}=u.current,d=c(h);l.current=d,d!==f&&o(d)}}},[o,c,t]),n};var Hk="data-collapsible",gz={[Hk]:!0,"data-pad-start":!0,"data-pad-end":!0};var Fg=require("@vuu-ui/vuu-utils"),Xt=require("react");var Nk=["xs","sm","md","lg","xl"],Bk=12,zg=({children:r,cols:e,style:t})=>{let n=(0,Xt.useRef)(null),o=(0,Xt.useRef)(null),s=(0,Xt.useRef)(),i=e!=null?e:Bk,a=(t==null?void 0:t.flexDirection)==="column"?"height":"width",c=(0,Xt.useMemo)(()=>Array.isArray(r)?r:(0,Xt.isValidElement)(r)?[r]:[],[r]),u=(0,Xt.useCallback)((f,h)=>{let d=Ga(f,h,Nk),p=[],m=[];for(let g=0;g<f.length;g++){let y=f[g],{style:{flex:C,...v}}=y.props;p.push((0,Xt.cloneElement)(y,{key:(0,Fg.getUniqueId)(),style:{...v,"--parent-col-count":i}})),m.push(d[g])}return[p,m]},[i]);return(0,Xt.useMemo)(()=>{let[f,h]=u(c,a);o.current=h,s.current=f},[u,c,a]),{cols:i,content:s.current,rootRef:n}};var Kg=require("react/jsx-runtime"),qa="hwFluidGrid",jf=(0,Xa.forwardRef)(function(e,t){let{breakPoints:n,children:o,column:s,cols:i=12,className:l,flexFill:a,gap:c=3,fullPage:u,id:f,onSplitterMoved:h,resizeable:d,row:p,showGrid:m,spacing:g,splitterSize:y,style:C,...v}=e,x=(0,Xa.useMemo)(()=>ko(o),[o]),{cols:S,content:b,rootRef:w}=zg({children:x,cols:i,style:C}),k=Bg({breakPoints:n},w),D=(0,$g.default)(qa,l,{[`${qa}-column`]:s,[`${qa}-row`]:p,[`${qa}-show-grid`]:m,"flex-fill":a,"full-page":u}),T={...C,"--spacing":g,"--grid-col-count":S,"--grid-gap":c};return(0,Kg.jsx)("div",{...v,className:D,"data-breakpoint":k,"data-cols":S,"data-resizeable":d||void 0,id:f,ref:(0,Vg.useForkRef)(w,t),style:T,children:b})});jf.displayName="FluidGrid";var Ug=require("react/jsx-runtime"),Wg=function(e){return(0,Ug.jsx)(jf,{...e})};Wg.displayName="FluidGrid";et("FluidGrid",Wg,"container");var Yg=require("@salt-ds/core"),ec=W(require("classnames")),_r=require("react");var Ur=require("react");var Ya=(r,e,t,n)=>{var g;let{loadSessionState:o,purgeSessionState:s,purgeState:i,saveSessionState:l}=Hs(),[a,c]=(0,Ur.useState)((g=o(r,"contributions"))!=null?g:[]),u=fn(),f=(0,Ur.useCallback)((y,C)=>{let v=a.concat([{location:y,content:C}]);l(r,"contributions",v),c(v)},[a,r,l]),h=(0,Ur.useCallback)(()=>{s(r,"contributions"),c([])},[r,s]),d=(0,Ur.useCallback)(()=>{let y=o(r,"data-source");y&&y.unsubscribe(),s(r),i(r),u({type:"remove",path:t})},[u,r,o,s,i,t]),p=(0,Ur.useCallback)(async(y,C,v)=>{var S;y.stopPropagation();let x=(S=e.current)==null?void 0:S.getBoundingClientRect();return new Promise((b,w)=>{u({type:"drag-start",evt:y,path:C===void 0?t:`${t}.${C}`,dragRect:x,preDragActivity:v,dropTargets:n,resolveDragStart:b,rejectDragStart:w})})},[e,u,t,n]);return[(0,Ur.useCallback)(async(y,C)=>{var x;let{type:v}=y;switch(v){case"maximize":case"minimize":case"restore":return u({type:v,path:(x=y.path)!=null?x:t});case"remove":return d();case"mousedown":return p(C,y.index,y.preDragActivity);case"add-toolbar-contribution":return f(y.location,y.content);case"remove-toolbar-contribution":return h();default:return}},[u,t,d,p,f,h]),a]};var Za=require("@salt-ds/core"),jg=W(require("classnames")),Pt=W(require("react"));var Hn=require("react");var _g=({id:r,rootRef:e,path:t,dropTargets:n,title:o})=>{let s=fn(),{loadState:i,loadSessionState:l,purgeState:a,saveState:c,saveSessionState:u}=Hs(),[f,h]=Ya(r,e,t,n),d=(0,Hn.useMemo)(()=>{var b;return(b=i("view-title"))!=null?b:o},[i,o]),p=(0,Hn.useCallback)(b=>{t&&s({type:"set-title",path:t,title:b})},[s,t]),m=(0,Hn.useMemo)(()=>i(r),[r,i]),g=(0,Hn.useCallback)(b=>i(r,b),[r,i]),y=(0,Hn.useCallback)(b=>{a(r,b),s({type:"save"})},[r,s,a]),C=(0,Hn.useCallback)((b,w)=>{c(r,w,b),s({type:"save"})},[r,s,c]),v=(0,Hn.useCallback)(b=>l(r,b),[r,l]),x=(0,Hn.useCallback)((b,w)=>u(r,w,b),[r,u]),S=(0,Hn.useCallback)(({type:b,...w})=>{let{[b]:k}=w;C(k,b)},[C]);return{contributions:h,dispatchViewAction:f,load:g,loadSession:v,onConfigChange:S,onEditTitle:p,purge:y,restoredState:m,save:C,saveSession:x,title:d}};var Ns=require("react"),Fk=[],Gg=({mainRef:r,resize:e="responsive",rootRef:t})=>{let n=e==="defer",o=(0,Ns.useRef)({}),s=(0,Ns.useRef)(),i=(0,Ns.useCallback)(()=>{r.current&&(r.current.style.height=o.current.height+"px",r.current.style.width=o.current.width+"px"),s.current=void 0},[r]),l=(0,Ns.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]);ja(t,n?Og:Fk,l,n)};var Ja=W(require("react")),zk={dispatch:null},qf=Ja.default.createContext(zk),Qg=()=>{var e;let r=(0,Ja.useContext)(qf);return(e=r==null?void 0:r.dispatch)!=null?e:null};var Bs=require("react/jsx-runtime"),yl="vuuView",Vk=(r,e)=>r&&e?{...r,...e}:r||e,qg=(0,Pt.forwardRef)(function(e,t){let{Header:n=Xg,children:o,className:s,collapsed:i,closeable:l,"data-path":a,"data-resizeable":c,dropTargets:u,expanded:f,flexFill:h,id:d,header:p,orientation:m="horizontal",path:g=a,resize:y="responsive",resizeable:C=c,tearOut:v,style:x={},title:S,...b}=e,w=(0,Za.useIdMemo)(d),k=(0,Pt.useRef)(null),D=(0,Pt.useRef)(null),[T,M]=(0,Pt.useState)(),{contributions:E,dispatchViewAction:R,load:A,loadSession:O,onConfigChange:L,onEditTitle:P,purge:I,restoredState:B,save:H,saveSession:z,title:V}=_g({id:w,rootRef:k,path:g,dropTargets:u,title:S});Gg({mainRef:D,resize:y,rootRef:k});let Q=(0,Pt.useCallback)(J=>{M(J)},[]),q=()=>Pt.default.isValidElement(o)&&(B||T)?Pt.default.cloneElement(o,Vk(B,T)):o,Y=(0,Pt.useMemo)(()=>({dispatch:R,id:w,path:g,title:V,load:A,loadSession:O,onConfigChange:L,purge:I,save:H,saveSession:z,setComponentProps:Q}),[R,w,A,O,L,g,I,H,z,Q,V]),_=typeof p=="object"?p:{};return(0,Bs.jsx)("div",{...b,className:(0,jg.default)(yl,s,{[`${yl}-collapsed`]:i,[`${yl}-expanded`]:f,[`${yl}-resize-defer`]:y==="defer"}),"data-resizeable":C,id:w,ref:(0,Za.useForkRef)(t,k),style:x,tabIndex:-1,children:(0,Bs.jsxs)(qf.Provider,{value:Y,children:[p?(0,Bs.jsx)(n,{..._,collapsed:i,contributions:E,expanded:f,closeable:l,onEditTitle:P,orientation:m,tearOut:v,title:V}):null,(0,Bs.jsx)("div",{className:`${yl}-main`,ref:D,children:q()})]})})});qg.displayName="View";var Fs=Pt.default.memo(qg);Fs.displayName="View";et("View",Fs,"view");var zs=require("react/jsx-runtime"),Xf="vuuHeader",Xg=({className:r,contributions:e,collapsed:t,closeable:n,onEditTitle:o,orientation:s="horizontal",style:i,title:l="Untitled"})=>{let a=(0,_r.useRef)(null),[c,u]=(0,_r.useState)(l),[f,h]=(0,_r.useState)(!1),d=Qg(),p=T=>d==null?void 0:d({type:"remove"},T),m=()=>{var T;(T=a.current)==null||T.focus()},g=T=>{T.stopPropagation()},C=(0,ec.default)(Xf,r,`${Xf}-${t||s}`),v=()=>{h(!0)},x=T=>{T.key==="Enter"&&h(!0)},S=(T="",M="",E=!0,R=!1)=>{var A;h(!1),R?u(T):M!==T&&(u(M),o==null||o(M)),E===!1&&((A=a.current)==null||A.focus())},b=T=>{d==null||d({type:"mousedown"},T)},w=[],k=[],D=[];return e==null||e.forEach((T,M)=>{switch(T.location){case"pre-title":w.push((0,_r.cloneElement)(T.content,{key:M}));break;default:k.push((0,_r.cloneElement)(T.content,{key:M}))}}),l&&w.push((0,zs.jsx)(Vs,{className:`${Xf}-title`,editing:f,value:c,onChange:u,onMouseDownCapture:m,onEnterEditMode:v,onExitEditMode:S,onKeyDown:x,ref:a,tabIndex:0},"title")),n&&D.push((0,zs.jsx)(Yg.Button,{"data-icon":"close",onClick:p,onMouseDown:g,variant:"secondary"},"close")),k.length>0&&w.push((0,zs.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:k},"contributions")),D.length>0&&w.push((0,zs.jsx)("div",{className:"vuuTooltrayProxy","data-align":"end",children:D},"actions")),(0,zs.jsx)("div",{className:(0,ec.default)("vuuToolbarProxy",C),style:i,onMouseDown:b,children:w})};var nb=require("react");var yr=require("@vuu-ui/vuu-utils"),Xn=require("react");var Oo=require("react");var Lo=new Map,Zg=(r,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return r.clientHeight;case"clientWidth":return r.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(r.scrollHeight);case"scrollWidth":return Math.ceil(r.scrollWidth);case"width":return e.width;default:return 0}},Jg=new ResizeObserver(r=>{for(let e of r){let{target:t,borderBoxSize:n,contentBoxSize:o}=e,s=Lo.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:f}=s,h=!1;for(let[d,p]of Object.entries(f)){let m=Zg(t,{height:i,width:l,contentHeight:a,contentWidth:c},d);m!==p&&(h=!0,f[d]=m)}h&&u&&u(f)}}});function eb(r,e,t,n=!1){let o=(0,Oo.useRef)(e),s=(0,Oo.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((f,h)=>(f[h]=Zg(i,{width:l,height:a,contentHeight:u,contentWidth:c},h),f),{})},[]);(0,Oo.useEffect)(()=>{let i=r.current;async function l(){Lo.set(i,{measurements:{}});let a=Lo.get(i);if(a){let c=s(i);a.measurements=c,Jg.observe(i),n&&t(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return i&&(Lo.has(i)&&console.log("useResizeObserver attemping to observe same element twice",{target:i}),l()),()=>{i&&Lo.has(i)&&(Jg.unobserve(i),Lo.delete(i))}},[s,r]),(0,Oo.useEffect)(()=>{let i=r.current,l=Lo.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,r,t])}var $k=["clientHeight","clientWidth"],Kk=["clientWidth"],Wk=["clientHeight"],Uk=[],tc=r=>Number.isFinite(r),_k={height:"100%",width:"100%"},Gk=(r,e)=>(0,yr.isValidNumber)(r)&&(0,yr.isValidNumber)(e)?{height:`${r}px`,width:`${e}px`}:typeof r=="string"&&typeof e=="string"?{height:r,width:e}:_k,Qk=(r,e)=>{if((0,yr.isValidNumber)(r)&&(0,yr.isValidNumber)(e))return{height:r,width:e}},tb=({defaultHeight:r=0,defaultWidth:e=0,height:t,onResize:n,width:o})=>{let s=(0,Xn.useRef)(null),[i,l]=(0,Xn.useState)({css:Gk(t,o),inner:Qk(t,o),outer:{height:t!=null?t:"100%",width:o!=null?o:"100%"}}),a=typeof t=="number",c=typeof o=="number",u=a&&c?Uk:a?Kk:c?Wk:$k;(0,Xn.useMemo)(()=>{l(h=>{let{inner:d,outer:p}=h;if((0,yr.isValidNumber)(t)&&(0,yr.isValidNumber)(o)&&d&&p){let{height:m,width:g}=d,{height:y,width:C}=p;if(y!==t||C!==o){let v=(0,yr.isValidNumber)(y)?y-m:0,x=(0,yr.isValidNumber)(C)?C-g:0;return{...h,outer:{height:t,width:o},inner:{height:t-v,width:o-x}}}}return h})},[t,o]);let f=(0,Xn.useCallback)(({clientWidth:h,clientHeight:d})=>{let{css:p,inner:m,outer:g}=i,y=i;a&&tc(h)&&h!==(m==null?void 0:m.width)?y={css:p,outer:g,inner:{width:Math.floor(h)||e,height:t}}:c&&tc(d)&&d!==(m==null?void 0:m.height)?y={css:p,outer:g,inner:{height:Math.floor(d)||r,width:o}}:tc(d)&&tc(h)&&(h!==(m==null?void 0:m.width)||d!==(m==null?void 0:m.height))&&(y={css:p,outer:g,inner:{width:Math.floor(h)||e,height:Math.floor(d)||r}}),y!==i&&l(y)},[r,e,a,c,t,i,o]);return(0,Xn.useEffect)(()=>{i.inner&&(n==null||n(i.inner))},[n,i.inner]),eb(s,u,f,!0),{containerRef:s,cssSize:i.css,outerSize:i.outer,innerSize:i.inner}};var rb=require("@salt-ds/core"),Jf=W(require("classnames"));var Zf=require("react/jsx-runtime"),Yf="vuuMeasuredContainer",nc=(0,nb.forwardRef)(function({children:e,className:t,height:n,onResize:o,style:s,width:i,...l},a){let{containerRef:c,...u}=tb({height:n,onResize:o,width:i}),{cssSize:f,innerSize:h}=u,d=h===void 0,p=()=>d?{"--measured-css-height":`${f.height}`,"--measured-css-width":`${f.width}`}:{...s,"--measured-css-height":`${f.height}`,"--measured-css-width":`${f.width}`,"--measured-px-height":`${h==null?void 0:h.height}px`,"--measured-px-width":`${h==null?void 0:h.width}px`},m=(0,rb.useForkRef)(c,a);return d?(0,Zf.jsx)("div",{...l,className:(0,Jf.default)(Yf,`${Yf}-ummeasured`),style:p(),ref:c}):(0,Zf.jsx)("div",{...l,className:(0,Jf.default)(Yf,t),ref:m,style:p(),children:e})});var db=require("@vuu-ui/vuu-popups");var vl=W(require("classnames")),Ks=W(require("react"));var oc=require("@vuu-ui/vuu-utils"),Yt=require("react");var eh=require("@vuu-ui/vuu-utils"),jk=".vuuOverflowContainer-item:not(.wrapped)",qk=r=>r.sort((e,t)=>{let{dataset:{index:n="?"}}=e,{dataset:{index:o="?"}}=t,s=e.classList.contains("wrapped"),i=t.classList.contains("wrapped"),l=n==="overflow",a=o==="overflow";return s&&!i?1:!s&&i?-1:l?1:a?-1:parseInt(n)>parseInt(o)?1:-1}),th=[],xl=(r,e="horizontal")=>{let t=[],n=[],o=-1,s=!1,i=qk(Array.from(r.children)),l=e==="vertical"?"top":"left";for(let a of i){let c=a,{dataset:{index:u="?",label:f="?",overflowPriority:h="0"}}=c,{[l]:d}=c.getBoundingClientRect();d<=o?(u==="overflow"?n.push(t.pop()):n.push({index:u,label:f,overflowPriority:h}),s=!0):s?n.push({index:u,label:f,overflowPriority:h}):t.push({index:u,label:f,overflowPriority:h}),o=d}return[t,n]},ob=(r,e)=>{let t=!1;e.find(({index:n})=>n==="overflow")&&e.length===1&&(t=!0);for(let n of r.children){let{dataset:{index:o="?"}}=n;e.length===0||t?r.classList.remove("overflowed"):r.classList.add("overflowed"),o!=="overflow"&&e.find(s=>s.index===o)?n.classList.add("wrapped"):n.classList.remove("wrapped")}},Xk=(r,{overflowPriority:e})=>Math.max(r,parseInt(e)),Yk=(r,{overflowPriority:e})=>Math.min(r,parseInt(e)),sb=r=>{var e;return r.length>1&&((e=r.at(-1))==null?void 0:e.index)==="overflow"},Jk=r=>{let[e]=r;for(let t=1;t<r.length;t++){let n=r[t];parseInt(n.overflowPriority)>parseInt(e.overflowPriority)&&(e=n)}return e},ib=(r,e)=>{var o;let t=r.reduce(Yk,Number.MAX_SAFE_INTEGER);return e.reduce(Xk,0)>t?!0:e.length>1&&((o=e.at(-1))==null?void 0:o.index)==="overflow"},lb=(r,e)=>new Promise(t=>{requestAnimationFrame(()=>{let[,n]=xl(r);tD(e,n).forEach(s=>Zk(r,s)),t(n)})}),ab=(r,e,t)=>new Promise(n=>{requestAnimationFrame(()=>{let[,o]=xl(r),s=Jk(o);if(s){let[i,l]=nh(r,s);n([i,l])}else n([e,t])})}),Zk=(r,e)=>{let t=(0,eh.getElementByDataIndex)(r,e.index);if(t)t.classList.add("wrapped");else throw Error(`markElementAsWrapped element item with index ${e.index} not found`)},eD=r=>Array.from(r.querySelectorAll(".wrapped")),tD=(r,e)=>{let t=[];for(let n of e)r.find(({index:o})=>o===n.index)||t.push(n);return t},nD=(r,e)=>{eD(r).forEach(n=>{let{dataset:{index:o="?"}}=n;e.find(s=>s.index===o)||n.classList.remove("wrapped")})},cb=r=>r.querySelector('[data-index="overflow"]'),rD=r=>r.querySelector(".wrapped"),rc=r=>parseInt(getComputedStyle(r).getPropertyValue("width")),ub=(r,e)=>{let{right:t}=r.getBoundingClientRect(),n=parseInt(getComputedStyle(r).getPropertyValue("padding-right")),{right:o}=e.getBoundingClientRect();return t-n-o},fb=r=>{let e=cb(r),t=ub(r,e),n=rc(e),o=rD(r);return rc(o)<=t+n?(r.classList.remove("overflowed"),o.classList.remove("wrapped"),!0):!1},oD=(r,e)=>{let{dataset:{index:t="0",overflowPriority:n="0"}}=r,{dataset:{index:o="0",overflowPriority:s="0"}}=e;return n>s?-1:n<s?1:parseInt(t)-parseInt(o)},sD=r=>Array.from(r.querySelectorAll(jk)).sort(oD),nh=(r,e)=>{let t=sD(r),n=(0,eh.getElementByDataIndex)(r,e.index,!0),o=-1,s=t.at(o),i=rc(s),l=rc(n),a=cb(r),c=ub(r,a)+i;if(c>=l)iD(n,s);else{let{left:h}=s.getBoundingClientRect(),d=c,p=[s];for(;c<l;){o-=1,s=t.at(o),p.push(s);let{left:m}=s.getBoundingClientRect(),g=h-m;c=d+g}n==null||n.classList.remove("wrapped"),p.forEach(m=>{m.classList.add("wrapped")})}let[u,f]=xl(r);return nD(r,f),[u,f]},iD=(r,e)=>{if(!r||!e)throw Error("switchWrapOnElements, element undefined");r.classList.remove("wrapped"),e.classList.add("wrapped")};var hb=({allowDragDrop:r=!1,itemCount:e,onMoveItem:t,onSwitchWrappedItemIntoView:n,orientation:o="horizontal"})=>{let[s,i]=(0,Yt.useState)(null),l=(0,Yt.useRef)(th),a=(0,Yt.useRef)(null),c=(0,Yt.useCallback)(async()=>{if(s){let[C,v]=xl(s,o);for(ob(s,v),sb(v)&&(v=await lb(s,v));ib(C,v);)[C,v]=await ab(s,C,v);v.length===1&&fb(s)&&(v=th),l.current=v}},[s,o]),u=C=>typeof C=="object"&&C!==null&&"overflowItem"in C,[f,h]=(0,Yt.useMemo)(()=>[()=>{let{current:C}=l;return C.map(v=>({label:v.label,action:`activate-item-${v.index}`,options:{overflowItem:v}}))},({options:C})=>{if(s&&u(C)){let[,v]=nh(s,C.overflowItem);l.current=v,n==null||n(C.overflowItem)}return!0}],[s,n]),d=(0,Yt.useMemo)(()=>{let{sizeProp:C}=oc.MEASURES[o],v=0;return new ResizeObserver(x=>{for(let S of x){let{[C]:b}=S.contentRect,w=Math.round(b);(0,oc.isValidNumber)(w)&&v!==w&&(v=w,c())}})},[c,o]);An(()=>{c()},[c,e]),(0,Yt.useMemo)(()=>{s&&d.observe(s)},[s,d]);let p=(0,Yt.useCallback)(C=>{i(a.current=C)},[]),m=(0,Yt.useCallback)((C,v)=>{t==null||t(C,v)},[t]),{onMouseDown:g,...y}=Yn({allowDragDrop:r,containerRef:a,draggableClassName:"vuuOverflowContainer",onDrop:m,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"});return{menuActionHandler:h,menuBuilder:f,onItemMouseDown:g,rootRef:p,...y}};var Gr=require("react/jsx-runtime"),$s="vuuOverflowContainer",pb=Ks.default.memo(({allowDragDrop:r,children:e,className:t,height:n,id:o,onMoveItem:s,onSwitchWrappedItemIntoView:i,orientation:l="horizontal",overflowIcon:a,overflowPosition:c="end"})=>{let u=ko(e),{draggable:f,draggedItemIndex:h,menuActionHandler:d,menuBuilder:p,onItemMouseDown:m,rootRef:g}=hb({allowDragDrop:r,itemCount:u.length,onMoveItem:s,onSwitchWrappedItemIntoView:i,orientation:l});console.log(`Overflow container WRAPPER ${Ks.default.Children.count(e)} children`);let C={"--overflow-container-height":`${l==="vertical"?"100%":`${n}px`}`},v=(0,vl.default)(`${$s}-wrapContainer`,t,{[`${$s}-horizontal`]:l==="horizontal",[`${$s}-vertical`]:l==="vertical"}),x=u.map((b,w)=>{let{"data-align":k,"data-overflow-priority":D="0",id:T=`${o}-${w}`,label:M=`Item ${w+1}`}=b.props;return(0,Gr.jsx)("div",{className:(0,vl.default)(`${$s}-item`,{"vuuDraggable-dragAway":h===w}),"data-index":w,"data-align":k,"data-label":M,"data-overflow-priority":D,id:`${T}-wrapper`,onMouseDown:m,children:b},w)}),S=(0,Gr.jsx)("div",{className:`${$s}-OverflowIndicator`,"data-index":"overflow",children:(0,Gr.jsx)(db.PopupMenu,{icon:a,menuBuilder:p,menuActionHandler:d})},"overflow");return x.push(S),(0,Gr.jsxs)("div",{className:v,ref:g,style:C,children:[x,f]})});pb.displayName="OverflowContainer.InnerContainer";var Cl=(0,Ks.forwardRef)(function({allowDragDrop:e=!1,children:t,className:n,height:o=44,id:s,onMoveItem:i,onSwitchWrappedItemIntoView:l,orientation:a,overflowIcon:c,overflowPosition:u,...f},h){let d=ft(s);return console.log(`Overflow container ${Ks.default.Children.count(t)} children`),(0,Gr.jsx)("div",{...f,className:(0,vl.default)((0,vl.default)($s,n)),id:d,ref:h,children:(0,Gr.jsx)(pb,{allowDragDrop:e,height:o,id:d,orientation:a,overflowIcon:c,overflowPosition:u,onMoveItem:i,onSwitchWrappedItemIntoView:l,children:t})})});var mb=require("@vuu-ui/vuu-utils");var rh=W(require("classnames")),ic=require("react");var sc=require("react/jsx-runtime"),lD=r=>{let e=r.cloneNode(!0);return e.id="",delete e.dataset.idx,e},gb=(0,ic.memo)(({className:r,children:e,idx:t,resizeable:n,header:o,closeable:s,...i})=>(0,sc.jsx)(Ho,{className:(0,rh.default)("vuuPaletteItem",r),"data-draggable":!0,"data-icon":"draggable",...i}));gb.displayName="PaletteItem";var aD=({children:r,className:e,itemHeight:t=41,orientation:n="horizontal",ViewProps:o,...s})=>{let i=fn(),l="vuuPalette";function a(c){var k,D;let f=c.target.closest(".vuuPaletteItem"),h=parseInt((D=(k=f.dataset)==null?void 0:k.index)!=null?D:"-1"),{props:{caption:d,children:p,template:m,...g}}=r[h],{height:y,left:C,top:v,width:x}=f.getBoundingClientRect(),S=(0,mb.uuid)(),w=m?p:(0,sc.jsx)(Fs,{...o,...{id:S,key:S},...g,title:g.label,children:p});i({dragRect:{left:C,top:v,right:C+x,bottom:v+150,width:x,height:y},dragElement:lD(f),evt:c.nativeEvent,instructions:{DoNotRemove:!0,DoNotTransform:!0,DriftHomeIfNoDropTarget:!0,RemoveDraggableOnDragEnd:!0,dragThreshold:10},path:"*",payload:w,type:"drag-start"})}return(0,sc.jsx)(No,{...s,className:(0,rh.default)(l,e,`${l}-${n}`),itemHeight:t,selected:null,children:r.map((c,u)=>c.type===gb?(0,ic.cloneElement)(c,{key:u,onMouseDown:a}):c)})};et("Palette",aD,"view");var oh=W(require("classnames")),Qr=W(require("react"));var wl=require("react/jsx-runtime"),bb="Tabs",cD=()=>{},uD=(r,e)=>{var t,n,o,s;return(s=(o=(t=r.props)==null?void 0:t.title)!=null?o:(n=r.props)==null?void 0:n["data-tab-title"])!=null?s:`Tab ${e+1}`},fD=r=>{let e=[];return Qr.default.Children.forEach(r,t=>{Qr.default.isValidElement(t)?e.push(t):console.warn("Stack has unexpected child element type")}),e},hD={allowAddTab:!1,allowCloseTab:!1,allowRenameTab:!1},sh=(0,Qr.forwardRef)(function({active:e=0,children:t,className:n,getTabIcon:o=cD,getTabLabel:s=uD,id:i,keyBoardActivation:l="manual",onAddTab:a,onMoveTab:c,onTabClose:u,onTabEdit:f,onTabSelectionChanged:h,showTabs:d="top",style:p,TabstripProps:m=hD},g){var M;let y=ft(i),{allowCloseTab:C,allowRenameTab:v,className:x}=m,S=(0,Qr.useCallback)((E,R,A,O)=>{f==null||f(O,R)},[f]),b=()=>{var E;return Qr.default.isValidElement(t)?t:Array.isArray(t)&&(E=t[e])!=null?E:null},w=()=>fD(t).map((E,R)=>{let{closeable:A=C,id:O=`${y}-${R}`,"data-tab-location":L}=E.props;return(0,wl.jsx)(xb,{ariaControls:O,"data-icon":o(E,R),id:`${O}-tab`,index:R,label:s(E,R),location:L,closeable:A,editable:v},O)}),k=b(),D=d==="left"||d==="right",T=D?"vertical":"horizontal";return(0,wl.jsxs)("div",{className:(0,oh.default)(bb,n,{[`${bb}-horizontal`]:D}),style:p,id:y,ref:g,children:[d?(0,wl.jsx)(yb,{...m,activeTabIndex:(M=m==null?void 0:m.activeTabIndex)!=null?M:k===null?-1:e,allowDragDrop:m.allowDragDrop!==!1,animateSelectionThumb:!0,className:(0,oh.default)("vuuTabHeader",x),keyBoardActivation:l,onActiveChange:h,onAddTab:a,onCloseTab:u,onExitEditMode:S,onMoveTab:c,orientation:T,children:w()}):null,k]})});sh.displayName="Stack";var vb=require("@salt-ds/core"),jr=W(require("react"));var lc=require("react/jsx-runtime"),dD=r=>(0,lc.jsx)(Fs,{resizeable:!0,title:`Tab ${r}`,style:{flexGrow:1,flexShrink:0,flexBasis:0},header:!0,closeable:!0,children:(0,lc.jsx)(Af,{style:{flex:1}})}),Cb=r=>{var S;let e=(0,jr.useRef)(null),t=fn(),{loadState:n}=Hs(),{createNewChild:o,id:s,onTabSelectionChanged:i,path:l,...a}=r,{children:c}=r,u=(0,vb.useIdMemo)(s),[f]=Ya(u,e,l),h=Rg(),d=(S=o!=null?o:h)!=null?S:dD,p=b=>{l&&(t({type:"switch-tab",id:u,path:l,nextIdx:b}),i==null||i(b))},m=(0,jr.useCallback)(b=>{if(Array.isArray(c)){let{props:{"data-path":w,path:k=w}}=c[b];t({type:"remove",path:k})}},[c,t]),g=(0,jr.useCallback)(()=>{if(l){let b=jr.default.Children.count(c),w=d(b);t({type:"add",path:l,component:w})}},[c,d,t,l]),y=(0,jr.useCallback)((b,w)=>{l&&t({fromIndex:b,toIndex:w,path:l,type:"move-child"})},[t,l]);return(0,lc.jsx)(sh,{...a,id:u,getTabLabel:(b,w)=>{let{id:k,title:D}=b.props;return n(k,"view-title")||D||`Tab ${w+1}`},onMouseDown:async(b,w)=>{let k;await f({type:"mousedown",index:w,preDragActivity:async()=>new Promise(M=>{console.log("preDragActivity: Ok, gonna release the drag"),k=M})},b)&&(k==null||k(void 0))},onMoveTab:y,onAddTab:g,onTabClose:m,onTabEdit:(b,w)=>{t({type:"set-title",path:`${l}.${b}`,title:w})},onTabSelectionChanged:p,ref:e})};Cb.displayName="Stack";et("Stack",Cb,"container");var yD=W(require("classnames")),ch=W(require("react"));var bD=require("@vuu-ui/vuu-utils"),Tb=require("react");var mD=require("@salt-ds/core"),wb=require("@vuu-ui/vuu-utils"),ih=require("react"),zt=require("@vuu-ui/vuu-utils");var pD=require("@vuu-ui/vuu-utils");var gK={horizontal:{[zt.Home]:"start",[zt.End]:"end",[zt.ArrowLeft]:"bwd",[zt.ArrowRight]:"fwd"},vertical:{[zt.Home]:"start",[zt.End]:"end",[zt.ArrowUp]:"bwd",[zt.ArrowDown]:"fwd"}};var Sb=require("@vuu-ui/vuu-utils");var gD=require("react");var xD=require("react/jsx-runtime");var Eb=W(require("react"));var kb=require("react/jsx-runtime");var Db=require("@salt-ds/core"),Mb=require("react/jsx-runtime");var ac="(\\d+)(?:px)?",vD=`^(?:${ac}(?:\\s${ac}(?:\\s${ac}(?:\\s${ac})?)?)?)$`,iW=new RegExp(vD);var CD=W(require("react")),wD=W(require("classnames"));var SD=require("react/jsx-runtime");var ox=require("@salt-ds/core"),Zs=require("react");var Ws=require("react"),Ib=require("react/jsx-runtime"),Rb=(0,Ws.createContext)(void 0);function cc({children:r,collectionHook:e,...t}){return(0,Ib.jsx)(Rb.Provider,{value:e,children:Object.keys(t).length>0?(0,Ws.cloneElement)(r,t):r})}function Pb(){let r=(0,Ws.useContext)(Rb);if(r)return r}var ED=r=>Object.prototype.toString.call(r)==="[object Object]";function hn(r){return typeof r=="string"?r:ED(r)?Object.prototype.hasOwnProperty.call(r,"label")?String(r.label):(console.warn(["itemToString: you've likely forgotten to set the label prop on the item object.","You can also provide your own `itemToString` implementation."].join(`
18
- `)),""):String(r)}var qr=require("react");var Lb=["width"],Ob=["height"],Bo=new Map,Hb=(r,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return r.clientHeight;case"clientWidth":return r.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(r.scrollHeight);case"scrollWidth":return Math.ceil(r.scrollWidth);case"width":return e.width;default:return 0}};var Ab=new ResizeObserver(r=>{for(let e of r){let{target:t,borderBoxSize:n,contentBoxSize:o}=e,s=Bo.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:f}=s,h=!1;for(let[d,p]of Object.entries(f)){let m=Hb(t,{height:i,width:l,contentHeight:a,contentWidth:c},d);m!==p&&(h=!0,f[d]=m)}h&&u&&u(f)}}});function xr(r,e,t,n=!1){let o=(0,qr.useRef)(e),s=r.current,i=(0,qr.useCallback)(l=>{let{width:a,height:c}=l.getBoundingClientRect(),{clientWidth:u,clientHeight:f}=l;return o.current.reduce((h,d)=>(h[d]=Hb(l,{width:a,height:c,contentHeight:f,contentWidth:u},d),h),{})},[]);(0,qr.useLayoutEffect)(()=>{async function l(){Bo.set(s,{measurements:{}}),await document.fonts.ready;let a=Bo.get(s);if(a){let c=i(s);a.measurements=c,Ab.observe(s),n&&t(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}return s&&(Bo.has(s)&&console.log("useResizeObserver attemping to observe same element twice",{target:s}),l()),()=>{s&&Bo.has(s)&&(Ab.unobserve(s),Bo.delete(s))}},[i,s]),(0,qr.useEffect)(()=>{let l=r.current,a=Bo.get(l);if(a){if(o.current!==e){o.current=e;let c=i(l);a.measurements=c}a.onResize=t}},[e,i,r,t])}var lh=r=>r==="none";var Xr=r=>Array.isArray(r)?r.length>0:r!=null,Nb=r=>Array.isArray(r)?r[0]:r;var ke=require("react");var Us=require("react");var Bb=r=>null;var Fb=r=>null;var uh=(r,e)=>r!==null&&Object.prototype.hasOwnProperty.call(r,e),fh=r=>uh(r,"header"),zb=r=>uh(r,"childNodes"),Tl=(r,e)=>r&&Object.prototype.hasOwnProperty.call(r.props,e),Vb=r=>{if((0,Us.isValidElement)(r)){if(Tl(r,"disabled"))return r.props.disabled===!0}else if(uh(r,"disabled"))return r.disabled===!0;return!1},$b=r=>(0,Us.isValidElement)(r)&&Tl(r,"focusable")?r.props.focusable:!0,Kb=(r,e,t)=>{if(r.childNodes)return r.childNodes.length;if(r.header){let n=t+1,o=0;for(;n<e.length&&!e[n].header;)o++,n++;return o}else return 0},kD=r=>{if(typeof r.props.children=="string")return r.props.children;if(r.props.title)return r.props.title;if(r.props.label)return r.props.label},Wb=r=>r.type===Fb||Tl(r,"data-header"),Ub=r=>r.type===Bb||Tl(r,"data-group"),DD=r=>Tl(r,"selectable")?r.props.selectable===!0:!Ub(r)&&!Wb(r),MD=r=>{if(Ub(r)){let{props:{children:e}}=r;if(typeof e!="string")return dh(e)}},RD=(r,e)=>{let t=[];return Us.Children.forEach(r,n=>{(0,Us.isValidElement)(n)&&t.push(e(n))}),t},hh=(r,e)=>{if(Array.isArray(r))return r.length===0&&(e!=null&&e.noChildrenLabel)?[{label:e.noChildrenLabel,value:null}]:r.map((t,n)=>{var o,s;return{childNodes:hh(t.childNodes,e),description:t.description,expanded:t.expanded,value:t,label:(s=(o=e==null?void 0:e.itemToString)==null?void 0:o.call(e,t))!=null?s:hn(t)}});if(r)throw Error("list-child-items expects source to be an array")},dh=r=>{if(r)return RD(r,e=>{let{"data-id":t,disabled:n,id:o=t,"data-expanded":s,expanded:i=s}=e.props;return{childNodes:MD(e),disabled:n,expanded:i,header:Wb(e),id:o,label:kD(e),selectable:DD(e),value:e}})},PD=new Set(["/","-","."]),ID=r=>PD.has(r),_b=(r,e)=>e.startsWith(r)&&ID(e[r.length]),AD=new Set([".","/"]);function LD(r,e){return e.startsWith(r)?AD.has(e.charAt(r.length)):!1}function uc(r,e,t){let n;return r.map(s=>s.id===e?{...s,...t}:LD(s.id,e)&&s.childNodes?(n=uc(s.childNodes,e,t),{...s,childNodes:n}):s)}var OD=/[.*+?^${}()|[\]\\]/g;function fc(r){return r.replace(OD,"\\$&")}var Sl=(r,e)=>Object.keys(r).reduce((n,o)=>{let s=r[o],i=e[o];return typeof s=="function"&&typeof i=="function"&&(n[o]=(...l)=>{s(...l),i(...l)}),n},{...e});var HD=r=>r&&r.replace(/^\s+/g,""),ph=r=>new RegExp(`(${fc(HD(r))})`,"gi"),Gb=(r="",e=ph)=>(t="")=>!!t.length&&!!r.length&&t.match(e(r))!==null;function hc(r,e){return Array.isArray(r)?r.includes(e.id):r===e.id}var dn=require("react");function ah({controlled:r,default:e,name:t,state:n="value"}){let{current:o}=(0,dn.useRef)(r!==void 0),[s,i]=(0,dn.useState)(e),l=r!==void 0?r:s,{current:a}=(0,dn.useRef)(e);(0,dn.useEffect)(()=>{},[n,t,r]),(0,dn.useEffect)(()=>{},[JSON.stringify(e,ND)]);let c=(0,dn.useCallback)(u=>{o||i(u)},[o]);return[l,c,o]}function ND(r,e){return(0,dn.isValidElement)(e)?null:e}var BD={},Yr=({children:r,id:e,options:t=BD,source:n})=>{var L;let{getItemId:o}=t,[,s]=(0,ke.useState)(null),i=Pb(),l=(0,ke.useRef)([]),a=(0,ke.useRef)([]),c=(0,ke.useMemo)(()=>[],[]),u=(0,ke.useRef)((L=t.filterPattern)!=null?L:""),{getFilterRegex:f=ph,noChildrenLabel:h,itemToString:d=hn}=t,p=(0,ke.useCallback)(()=>t.defaultExpanded||!1,[t.defaultExpanded]),m=(0,ke.useCallback)((P,I,B=1,H="",z=[],V=[],Q=[])=>(P.forEach((q,Y,_)=>{var Je,ne;let J=q.header&&t.collapsibleHeaders,he=q.childNodes&&t.collapsibleHeaders===!1,le=!q.childNodes||q.childNodes.length===0,Fe=he||le&&!J,Ce=H?`${H}.${Y}`:`item-${Y}`,Le=(Je=q.id)!=null?Je:o?o(Y):`${e}-${Ce}`,De=Fe?void 0:(ne=q.expanded)!=null?ne:p(),Pe={...q,childNodes:void 0,count:!he&&De===void 0?0:Kb(q,_,Y),description:q.description,disabled:Vb(q.value),focusable:$b(q.value)?void 0:!1,id:Le,index:I.value,expanded:De,level:B};if(z.push(Pe),V.push(Pe),Q.push(P[Y].value),I.value+=1,q.childNodes){let[me]=m(q.childNodes,I,B+1,Ce,[],V,Q);Pe.childNodes=me}}),[z,Q,V]),[t.collapsibleHeaders,o,e,p]),g=(0,ke.useCallback)(()=>u.current?Gb(u.current,f):null,[f]),y=(0,ke.useCallback)((P,I=g(),B=[],H={value:0})=>{let z=!1;for(let V of P)z&&!fh(V)||(V.value!==null&&(I===null||I(d(V.value)))&&(B[H.value]=V,H.value+=1),z=!1,fh(V)&&V.expanded===!1?z=!0:zb(V)&&V.expanded!==!1&&V.childNodes&&y(V.childNodes,I,B,H));return B},[g,d]),C=(0,ke.useMemo)(()=>i?c:hh(n,{itemToString:d,noChildrenLabel:h})||dh(r)||[],[i,c,n,d,h,r]),[v,x,S]=(0,ke.useMemo)(()=>i?[c,c,c]:m(C,{value:0}),[c,m,i,C]);a.current=S,(0,ke.useMemo)(()=>i?c:l.current=y(v),[c,y,v,i]);let b=(0,ke.useRef)(v),w=(0,ke.useCallback)((P="")=>{typeof P=="string"&&(u.current=P,l.current=y(v),s({}))},[v,y]),k=(0,ke.useCallback)((P,I=v)=>{let B=I.find(H=>{var z;return H.id===P||((z=H==null?void 0:H.childNodes)==null?void 0:z.length)&&_b(H.id,P)});if((B==null?void 0:B.id)===P)return x==null?void 0:x[B.index];if(B)return k(P,B.childNodes);throw Error(`useCollectionData itemById, id ${P} not found `)},[x,v]),D=(0,ke.useCallback)(P=>{let I=a.current.find(B=>(0,ke.isValidElement)(B.value)?B.label===P:B.value===P);if(I)return I;throw Error("useCollectionData toCollectionItem, item not found ")},[]),T=(0,ke.useCallback)(P=>{if(P===null)return null;if(Array.isArray(P)){let I=[];for(let B of P){let H=D(B);I.push(H)}return I}else if(P!==void 0)return D(P)},[D]),M=(0,ke.useCallback)(P=>{if(P===void 0)return;let I=T(P);return Array.isArray(I)?I.map(B=>B.id):I?I.id:null},[T]),E=(0,ke.useCallback)(P=>{let I=B=>{let H=a.current.find(z=>(0,ke.isValidElement)(z.value)?z.label===B:z.value!==null&&d(z.value)===B);if(H)return H};if(P===null)return null;if(Array.isArray(P)){let B=[];for(let H of P){let z=I(H);z&&B.push(z)}return B}else if(P!==void 0)return I(P)},[d]),R=(0,ke.useCallback)(P=>{for(let I of b.current)if(P===I.value)return I.id;throw Error("useCollectionData itemToId, item not found")},[]),A=(0,ke.useCallback)(P=>{b.current=uc(b.current,P.id,{expanded:!1}),l.current=y(b.current),s({})},[y]),O=(0,ke.useCallback)(P=>{b.current=uc(b.current,P.id,{expanded:!0}),l.current=y(b.current),s({})},[y]);return i||{collapseGroupItem:A,data:l.current,expandGroupItem:O,setFilterPattern:w,itemById:k,itemToId:R,toCollectionItem:D,itemToCollectionItem:T,itemToCollectionItemId:M,stringToCollectionItem:E}};var mh=W(require("classnames")),qb=require("@salt-ds/core"),vr=require("react");var dc=require("@salt-ds/core"),pn=require("react");var El=require("react"),FD=[],Qb=({popperRef:r,rootRef:e,isOpen:t,onClose:n})=>{let o=(0,El.useRef)(t);(0,El.useEffect)(()=>{o.current=t},[t]),(0,El.useEffect)(()=>{let[s,i]=t?[l=>{var c,u;let a=l.target;!((c=r.current)!=null&&c.contains(a))&&!((u=e.current)!=null&&u.contains(a))&&n()},l=>{l.key==="Escape"&&o.current&&(n(),l.stopPropagation())}]:FD;return s&&i&&(document.body.addEventListener("mousedown",s,!0),document.body.addEventListener("keydown",i,!0)),()=>{s&&i&&(document.body.removeEventListener("mousedown",s,!0),document.body.removeEventListener("keydown",i,!0))}},[t,n,r,e])};var zD=[],jb=({defaultIsOpen:r,disabled:e,fullWidth:t,id:n,isOpen:o,onOpenChange:s,onKeyDown:i,openKeys:l=["Enter","ArrowDown"," "],openOnFocus:a,popupComponent:c,popupWidth:u,rootRef:f,width:h})=>{var O;let d=(0,pn.useRef)(null),p=(0,pn.useRef)(null),m=(0,pn.useCallback)(L=>{p.current=L},[]),[g,y]=(0,dc.useControlled)({controlled:o,default:!!r,name:"useDropdown",state:"isOpen"}),[C,v]=(0,pn.useState)({width:(O=u!=null?u:h)!=null?O:0}),x=(0,pn.useCallback)(()=>{y(!0),s==null||s(!0)},[s,y]),S=(0,pn.useCallback)(()=>{y(!1),s==null||s(!1)},[s,y]);Qb({popperRef:p,rootRef:f,isOpen:g,onClose:S});let b=(0,pn.useCallback)(()=>{e||a&&(y(!0),s==null||s(!0),d.current=window.setTimeout(()=>{d.current=null},1e3))},[e,s,a,y]),w=(0,pn.useCallback)(L=>{if(["Enter"," "].indexOf(L.key)===-1){let P=!g;y(P),s==null||s(P)}},[g,y,s]),k=(0,pn.useCallback)(L=>{(L.key==="Tab"||L.key==="Escape")&&g?(L.key==="Escape"&&(L.stopPropagation(),L.preventDefault()),S()):l.includes(L.key)&&!g?(L.preventDefault(),x()):i==null||i(L)},[S,g,i,l,x]),D=t!=null?t:!1;xr(f,D?Lb:zD,v,D);let M=`${n}-dropdown`,E={"aria-expanded":g,"aria-owns":g?M:void 0,id:`${n}-control`,onClick:e||a?void 0:w,onFocus:b,role:"listbox",onKeyDown:e?void 0:k,style:{width:D?void 0:h}},R={id:M,width:C.width},A=(0,dc.useForkRef)(m,p);return{componentProps:R,popupComponentRef:A,isOpen:g,label:"Dropdown Button",triggerProps:E}};var mc=require("@vuu-ui/vuu-popups");var kl=require("react/jsx-runtime"),pc="vuuDropdown",gc=(0,vr.forwardRef)(function({"aria-labelledby":e,children:t,className:n,defaultIsOpen:o,disabled:s,fullWidth:i,id:l,isOpen:a,onKeyDown:c,onOpenChange:u,openKeys:f,openOnFocus:h,placement:d="below",popupWidth:p,width:m,...g},y){let C=(0,vr.useRef)(null),v=(0,mh.default)(pc,n,{[`${pc}-fullWidth`]:i,[`${pc}-disabled`]:s}),[x,S]=vr.Children.toArray(t),b=ft(l),{componentProps:w,isOpen:k,popupComponentRef:D,triggerProps:T}=jb({ariaLabelledBy:e,defaultIsOpen:o,disabled:s,fullWidth:i,id:b,isOpen:a,onOpenChange:u,onKeyDown:c,openKeys:f,openOnFocus:h,popupComponent:S,popupWidth:p,rootRef:C,width:m}),M=()=>{let{id:A,role:O,...L}=T,{id:P=A,role:I=O,...B}=x.props;return(0,vr.cloneElement)(x,Sl(B,{...L,id:P,role:I}))},E=()=>{let{id:A,width:O,...L}=w,{className:P,id:I=A,width:B,...H}=S.props;return(0,vr.cloneElement)(S,{...H,...L,className:(0,mh.default)(P,`${pc}-popup-component`),id:I,ref:D,width:B!=null?B:O})},R=(0,qb.useForkRef)(C,y);return(0,kl.jsxs)("div",{...g,className:v,id:l,ref:R,children:[M(),k&&(0,kl.jsx)(mc.Portal,{children:(0,kl.jsx)(mc.PopupComponent,{anchorElement:C,placement:d,children:E()})})]})});var Xb=require("@salt-ds/core"),Yb=W(require("classnames")),Jb=require("react");var _s=require("react/jsx-runtime"),Dl="vuuDropdownButton",Zb=(0,Jb.forwardRef)(function({ariaHideOptionRole:e,className:t,disabled:n,icon:o="chevron-down",isOpen:s,label:i,labelId:l,fullWidth:a,posInSet:c,setSize:u,labelAriaAttributes:f,...h},d){return(0,_s.jsx)(Xb.Button,{className:(0,Yb.default)(Dl,{[`${Dl}-fullWidth`]:a},t),disabled:n,variant:"secondary",...h,ref:d,children:(0,_s.jsxs)("div",{className:`${Dl}-content`,children:[(0,_s.jsx)("span",{"aria-hidden":e?"true":void 0,...f,className:`${Dl}-buttonLabel`,id:l,role:"option",children:i}),(0,_s.jsx)("span",{className:`${Dl}-buttonIcon`,"data-icon":o,"aria-hidden":"true"})]})})});var Zy=require("@salt-ds/core"),Cr=require("react");function VD(r,...e){let t=new Set(r);for(let n of e)for(let o of n)t.add(o);return t}var Ml="ArrowUp",Rl="ArrowDown",ey="ArrowLeft",ty="ArrowRight",gh="Enter";var bc="Home",Pl="End",bh="PageUp",yc="PageDown",ny=" ",$D=new Set(["Enter","Delete"," "]),KD=new Set(["Tab"]),WD=new Set(["ArrowRight","ArrowLeft"]),ry=new Set([bc,Pl,bh,yc,Rl,Ml]),UD=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),_D=VD($D,ry,WD,UD,KD),xc=r=>_D.has(r.key)?!1:r.key.length===1&&!r.ctrlKey&&!r.metaKey&&!r.altKey,oy=({key:r})=>ry.has(r);var yh=require("react");var GD={},QD=r=>Array.isArray(r.childNodes),jD=r=>!0,qD=r=>r.closest("[data-toggle],[aria-expanded]").dataset.toggle==="true",sy=({collapsibleHeaders:r,collectionHook:e,highlightedIdx:t,onToggle:n})=>{let o=(0,yh.useCallback)(l=>{if(l.key===ty||l.key===gh){let a=e.data[t];a&&a.expanded===!1&&a.value&&(l.preventDefault(),e.expandGroupItem(a),n==null||n(a.value))}if(l.key===ey||l.key===gh){let a=e.data[t];a&&a.expanded&&a.value&&(l.preventDefault(),e.collapseGroupItem(a),n==null||n(a.value))}},[e.collapseGroupItem,e.data,e.expandGroupItem,t]),i={onClick:(0,yh.useCallback)(l=>{console.log(`useCollapsibleGroups idx=${t}`);let a=e.data[t];console.log(l.target,l.currentTarget),a&&QD(a)&&(!jD(a)||qD(l.target))&&(l.stopPropagation(),l.preventDefault(),a.expanded===!1&&a.value?(e.expandGroupItem(a),n==null||n(a.value)):a.expanded===!0&&a.value&&(e.collapseGroupItem(a),n==null||n(a.value)))},[e.collapseGroupItem,e.data,e.expandGroupItem,t]),onKeyDown:o};return r?i:GD};function XD(r){if(r){let e=r.dataset.index;if(e)return parseInt(e,10);if(e=r.ariaPosInSet)return parseInt(e,10)-1}return-1}var YD=r=>r.closest("[data-index],[aria-posinset]");var iy=r=>XD(YD(r));var vc=require("react"),JD={scrollToIndex:()=>{},scrollToItem:()=>{},scrollTo:()=>{}},Cc=({collectionHook:r,forwardedRef:e,scrollableRef:t,scrollIntoView:n})=>{let o=(0,vc.useMemo)(()=>({scrollToIndex:s=>{let i=r.data[s];i&&(n==null||n(i))},scrollToItem:s=>{let i=r.toCollectionItem(s);i&&(n==null||n(i))},scrollTo:s=>{t!=null&&t.current&&(t.current.scrollTop=s)}}),[r,n,t]);(0,vc.useImperativeHandle)(e,()=>t.current?o:JD,[o,t])};var cy=require("@salt-ds/core"),It=require("react");var wc=require("@vuu-ui/vuu-utils"),vh=-2;function ly(r,e,t){return e===Ml||e===Pl?t>0?t-1:t:t===null?0:t===r-1?t:t+1}var xh=(r,e)=>{let t=Nb(e);return t?r.indexOf(t):-1},ZD=(r,e,t,n)=>r===Pl?n:r===bc?-1:e!==-1?e:t,eM=(r,e,t,n)=>{let{top:o}=e.getBoundingClientRect(),{scrollTop:s,clientHeight:i,scrollHeight:l}=r,a=t-1,c=Math.min(s+i,l-i);if(c!==s&&n<a){r.scrollTo(0,c);let u=n,f;do u+=1,f=(0,wc.getElementByDataIndex)(r,u,!0).getBoundingClientRect();while(f.top<o&&u<a);return u}},tM=async(r,e,t)=>{let{top:n}=e.getBoundingClientRect(),{scrollTop:o,clientHeight:s}=r,i=Math.max(o-s,0);if(i!==o&&t>0)return r.scrollTo(0,i),new Promise(l=>{requestAnimationFrame(()=>{let a=t,c;do a-=1,c=(0,wc.getElementByDataIndex)(r,a,!0).getBoundingClientRect();while(c.top>n&&a>0);l(a)})})},nM=r=>!r.header&&!r.childNodes,ay=r=>nM(r)||r.expanded!==void 0,uy=({containerRef:r,defaultHighlightedIndex:e=-1,disableHighlightOnFocus:t,highlightedIndex:n,indexPositions:o,itemCount:s,onHighlight:i,onKeyboardNavigation:l,restoreLastFocus:a,selected:c,viewportItemCount:u})=>{let f=(0,It.useRef)(-1),[,h]=(0,It.useState)({}),[d,p,m]=(0,cy.useControlled)({controlled:n,default:e,name:"UseKeyboardNavigation"}),g=(0,It.useCallback)((T,M=!1)=>{i==null||i(T),p(T),M&&(f.current=T)},[i,p]),y=(0,It.useCallback)(async(T,M)=>{let E=(0,wc.getElementByDataIndex)(r.current,M,!0),R;if(E){let{current:A}=r;E&&A&&(R=T===yc?eM(A,E,s,M):await tM(A,E,M))}return R!=null?R:M},[r,s]),C=(0,It.useCallback)((T=Rl,M=T===Rl?-1:s)=>{if(s===0)return-1;{let E=xh(o,c),R=ZD(T,M,E,s),A=ly(s,T,R);if(A===0&&T===Ml&&!ay(o[0]))return M;for(;((T===Rl||T===bc)&&A<s||(T===Ml||T===Pl)&&A>0)&&!ay(o[A]);)A=ly(s,T,A);return A}},[o,s,c]),v=(0,It.useRef)(!1),x=(0,It.useRef)(!1),S=T=>x.current=T,b=(0,It.useCallback)(()=>{if(x.current)x.current=!1;else if(v.current=!0,o.length===0)g(vh);else if(d!==-1)h({});else if(a)if(f.current!==-1)g(f.current);else{let T=xh(o,c);g(T!==-1?T:0)}else if(Xr(c)){let T=xh(o,c);g(T)}else t!==!0&&g(C())},[t,d,o,C,a,c,g]),w=(0,It.useCallback)(async T=>{let M=T.key===yc||T.key===bh?await y(T.key,d):C(T.key,d);M!==d&&g(M,!0),l==null||l(T,M)},[d,C,y,l,g]),k=(0,It.useCallback)(T=>{s>0&&oy(T)?(T.preventDefault(),T.stopPropagation(),v.current=!0,w(T)):xc(T)&&(v.current=!0)},[s,w]),D=(0,It.useMemo)(()=>({onBlur:T=>{let M=T.target.closest(".vuuList"),E=T.relatedTarget;M&&!(M!=null&&M.contains(E))&&(v.current=!1,p(-1),a||(f.current=-1))},onFocus:b,onKeyDown:k,onMouseDownCapture:()=>{v.current=!1,S(!0)},onMouseMove:()=>{v.current&&(v.current=!1)},onMouseLeave:()=>{v.current=!1,S(!1),g(-1)}}),[b,k,a,p,g]);return{focusVisible:v.current?d:-1,controlledHighlighting:m,highlightedIndex:d,setHighlightedIndex:g,keyboardNavigation:v,containerProps:D,setIgnoreFocus:S}};var Nn=require("@vuu-ui/vuu-utils"),Jt=require("react");var rM={},oM=["Enter"," "];var fy=({containerRef:r,defaultSelected:e,disableSelection:t=!1,highlightedIdx:n,itemQuery:o,onSelect:s,onSelectionChange:i,selected:l,selectionStrategy:a,selectionKeys:c=oM,tabToSelect:u})=>{let f=a==="deselectable",h=a==="multiple",d=a==="extended",p=(0,Jt.useRef)(-1),m=(0,Jt.useCallback)(E=>c.includes(E.key),[c]),g=(0,Jt.useCallback)(()=>h||d?[]:null,[h,d]),[y,C]=ah({controlled:l,default:e!=null?e:g(),name:"UseSelection",state:"selected"}),v=(0,Jt.useCallback)(E=>Array.isArray(y)?y.includes(E):y===E,[y]),x=(0,Jt.useCallback)(E=>v(E)?null:E,[v]),S=(0,Jt.useCallback)(E=>{let R=v(E)?y.filter(A=>A!==E):y.concat(E);return R.sort(),R},[v,y]),b=(0,Jt.useCallback)((E,R)=>{let A=R?y:[],[O]=y.slice(-1),L=O?(0,Nn.getElementDataIndex)(document.getElementById(O)):0,P=Math.min(E,L),I=Math.max(E,L),B=r.current,z=Array.from(B.querySelectorAll(o)).slice(P,I+1).map(Q=>Q.id),V=[...new Set([...A,...z])];return V.sort(),V},[r,o,y]),w=(0,Jt.useCallback)((E,R,A,O)=>{let{current:L}=r,{id:P}=(0,Nn.getElementByDataIndex)(L,R,!0),I;h?I=S(P):d?O&&!A?I=S(P):A?I=b(R,O):I=[P]:f?I=x(P):I=P,I!==y&&C(I),s==null||s(E,P),I!==y&&i&&i(E,I)},[r,h,d,f,y,s,S,b,x,C,i]),k=(0,Jt.useCallback)(E=>{let{current:R}=r,A=(0,Nn.getElementByDataIndex)(R,n);(0,Nn.isSelectableElement)(A)&&(m(E)||u&&E.key==="Tab")&&(E.key!=="Tab"&&E.preventDefault(),w(E,n,!1,E.ctrlKey||E.metaKey),d&&(p.current=n))},[n,r,m,u,w,d]),D=(0,Jt.useCallback)((E,R)=>{if(d&&E.shiftKey){let{current:A}=r,O=(0,Nn.getElementByDataIndex)(A,R);(0,Nn.isSelectableElement)(O)&&w(E,R,!0)}},[d,r,w]),T=(0,Jt.useCallback)(E=>{let{current:R}=r,A=(0,Nn.getElementByDataIndex)(R,n);!t&&(0,Nn.isSelectableElement)(A)&&(E.preventDefault(),E.stopPropagation(),w(E,n,E.shiftKey,E.ctrlKey||E.metaKey),d&&(p.current=n))},[r,n,t,w,d]);return{listHandlers:lh(a)?rM:{onClick:T,onKeyDown:k,onKeyboardNavigation:D},selected:y,setSelected:C}};var Fo=require("react");var hy=({disableTypeToSelect:r,highlightedIdx:e,highlightItemAtIndex:t,typeToNavigate:n,items:o,applyIncrementalSearch:s=!0})=>{let i=(0,Fo.useRef)(null),l=(0,Fo.useRef)(""),a=(0,Fo.useRef)(-1),c=(0,Fo.useCallback)(f=>{if(f||!s){let h=new RegExp(`^${l.current}`,"i"),d=o.findIndex(({label:p},m)=>m>a.current&&h.test(p));d===-1&&(d=o.findIndex(({label:p},m)=>m<=a.current&&h.test(p))),d!==-1&&t(d)}else l.current="",i.current=null,a.current=-1},[s,t,o]),u=(0,Fo.useCallback)(f=>{let h=a.current!==-1;(xc(f)||h&&f.key===ny)&&n&&(f.preventDefault(),f.stopPropagation(),(a.current===-1||f.key===l.current)&&(a.current=e),i.current!==null&&(clearTimeout(i.current),i.current=null),f.key!==l.current&&(l.current+=f.key),s&&c(!0),i.current=window.setTimeout(()=>{c()},100))},[n,s,e,c]);return{onKeyDown:r?void 0:u}};var Jn=require("react");var gy=require("@salt-ds/core"),dy=["height"],sM=["height","scrollHeight"],iM=[],py={containerOnly:[sM,iM],withContent:[dy,dy]},lM=r=>r?py.containerOnly:py.withContent,my={current:null},aM=(r,e)=>{let{transform:t="none"}=getComputedStyle(r);if(t.startsWith("matrix")){let n=t.lastIndexOf(",");return parseInt(t.slice(n+1))}else{let n=r.offsetParent;if(n===e||e===null)return r.offsetTop;{let o=r.offsetTop;for(;n!==null&&n!==e;)o+=n.offsetTop,n=n.offsetParent;return o}}},by=({containerRef:r,contentRef:e=my,highlightedIdx:t=-1,indexPositions:n,stickyHeaders:o=!1})=>{let s=(0,Jn.useRef)(!1),i=(0,Jn.useRef)({height:0,contentHeight:0}),l=(0,Jn.useCallback)(m=>{s.current=!0,r.current&&(r.current.scrollTop=m),setTimeout(()=>{s.current=!1})},[]),a=(0,Jn.useCallback)(()=>l(0),[l]),c=(0,Jn.useCallback)(()=>{l(i.current.contentHeight-i.current.height)},[l]),u=(0,Jn.useCallback)(m=>{let g=e.current||r.current;if(m.id){let y=document.getElementById(m.id);if(y&&r.current){let{height:C}=i.current,v=y.ariaExpanded&&y.firstChild?y.firstChild:y,x=o?36:0,S=aM(v,g),b=v.offsetHeight,{scrollTop:w}=r.current,k=w+x,D=k+C-x;if(S+b>D||S<k){let T=S+b>D?w+(S+b)-D:S-x;l(T)}}}},[r,e,l,o]);(0,gy.useIsomorphicLayoutEffect)(()=>{let{height:m,contentHeight:g}=i.current,y=n[t];if(g>m&&y){let[C]=n,[v]=n.slice(-1);y===C?a():y===v?c():u(n[t])}},[t,n,u,c,a]);let f=(0,Jn.useCallback)(({height:m,scrollHeight:g})=>{typeof m=="number"&&(i.current.height=m),typeof g=="number"&&(i.current.contentHeight=g)},[]),h=(0,Jn.useCallback)(({height:m})=>{typeof m=="number"&&(i.current.contentHeight=m)},[]),[d,p]=lM(e===my);return xr(r,d,f,!0),xr(e,p,h,!0),{isScrolling:s,scrollIntoView:u}};var yy=require("@salt-ds/core");var Gs=require("react/jsx-runtime"),cM=(0,yy.makePrefixer)("saltHighlighter"),xy=r=>{let{matchPattern:e,text:t=""}=r,n=typeof e=="string"?new RegExp(`(${fc(e)})`,"gi"):e;return n===void 0?(0,Gs.jsx)(Gs.Fragment,{children:t}):(0,Gs.jsx)("span",{children:t.split(n).map((o,s)=>o.match(n)?(0,Gs.jsx)("strong",{className:cM("highlight"),children:o},`${s}-${o}`):o)})};var wh=require("react"),Sh=W(require("classnames"));var Cy=W(require("react")),wy=W(require("classnames"));var vy="vuuCheckboxIcon",Ch=({checked:r=!1,...e})=>Cy.default.createElement("span",{...e,className:(0,wy.default)(vy,{[`${vy}-checked`]:r})});var zo=require("react/jsx-runtime"),Il="vuuListItem",Sc=(0,wh.forwardRef)(function({height:e,...t},n){return(0,zo.jsx)("div",{...t,"aria-hidden":!0,className:(0,Sh.default)(Il,`${Il}-proxy`),ref:n,style:{height:e}})}),Ho=(0,wh.forwardRef)(function({children:e,className:t,disabled:n,tabIndex:o,item:s,itemHeight:i,itemTextHighlightPattern:l,label:a,selectable:c,selected:u,showCheckbox:f,style:h,...d},p){let m=(0,Sh.default)(Il,t,{vuuDisabled:n,[`${Il}-checkbox`]:f}),g=i!==void 0?{...h,height:i}:h;return(0,zo.jsxs)("div",{className:m,...d,"aria-disabled":n||void 0,"aria-selected":u||void 0,ref:p,style:g,children:[f&&(0,zo.jsx)(Ch,{"aria-hidden":!0,checked:u}),e&&typeof e!="string"?e:l==null?(0,zo.jsx)("span",{className:`${Il}-textWrapper`,children:a||e}):(0,zo.jsx)(xy,{matchPattern:l,text:a||e})]})});var _y=require("@salt-ds/core"),Pc=W(require("classnames")),$t=require("react");var ht=require("react");var Qs=require("react");var uM=require("@vuu-ui/vuu-utils"),Sy=require("react");var pM=require("react/jsx-runtime"),fM={isDragSource:!1,isDropTarget:!1,register:()=>{}},hM=()=>console.log("have you forgotten to provide a DragDrop Provider ?"),dM=(0,Qs.createContext)({registerDragDropParty:hM});var Ty=r=>{var i,l;let{dragSources:e,dropTargets:t,onDragOut:n,onEndOfDragOperation:o,registerDragDropParty:s}=(0,Qs.useContext)(dM);if(r){let a=(i=e==null?void 0:e.has(r))!=null?i:!1,c=(l=t==null?void 0:t.has(r))!=null?l:!1;return{isDragSource:a,isDropTarget:c,onDragOut:n,onEndOfDragOperation:o,register:s}}else return fM};var Tc=class{constructor(e,t){this.draggableElement=null;this.payload=null;this.setDraggable=e=>{this.draggableElement=e};this.initialDragElement=t,this.mouseOffset=this.getMouseOffset(e,t)}setPayload(e){this.payload=e}getMouseOffset(e,t){let{clientX:n,clientY:o}=e,s=t.getBoundingClientRect();return{x:n-s.left,y:o-s.top}}};var st=require("react");var Bn=require("react");var mM=["left","right"],gM=["top","bottom"],Ec=":not(.wrapped)",Ey=':not([aria-hidden="true"])',ky=r=>{let e=r.cloneNode(!0);return e.removeAttribute("id"),e.dataset.index="-1",e},bM=(r,e="width",t=!1)=>{let n=e==="width"?"left":"top",{[e]:o,[n]:s}=r.getBoundingClientRect(),{padEnd:i=!1,padStart:l=!1}=r.dataset,a=getComputedStyle(r),[c,u]=e==="width"?mM:gM,f=l&&!t?0:parseInt(a.getPropertyValue(`margin-${c}`),10),h=i&&!t?0:parseInt(a.getPropertyValue(`margin-${u}`),10),d=o;if(parseInt(a.getPropertyValue("flex-shrink"),10)>0){let m=parseInt(a.getPropertyValue("flex-basis"),10);!isNaN(m)&&m>0&&(d=m)}return[s,f+d+h]},yM={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"}},Vt=r=>yM[r],Dy=(r,e)=>{let t=r.find(n=>n.id===e);if(t)return t},My=(r,e)=>{r.splice(e,1);for(let t=e;t<r.length;t++)r[t].currentIndex-=1},js=(r,e,t,n,o)=>{let s=[],{DIMENSION:i}=Vt(e),l=Array.from(t?r.querySelectorAll(t):r.children),a=l.length,c=typeof(n==null?void 0:n.from)=="number"?n.atEnd?Math.max(0,n.from-1):n.from:0,u=typeof(n==null?void 0:n.to)=="number"?Math.min(n.to+2,a-1):a-1;for(let f=c;f<=u;f++){let h=l[f],[d,p]=bM(h,i),m=f===a-1,g=h.id;s.push({currentIndex:f,id:g,index:f,isDraggedItem:o===g,isLast:m,isOverflowIndicator:h.dataset.index==="overflow",element:h,start:d,end:d+p,size:p,mid:d+p/2})}return s},qs=(r,e=!1)=>{let t=r.findIndex(n=>n.isDraggedItem);if(e){let{index:n}=r[t],o=r.filter(i=>!i.isDraggedItem).reduce((i,l)=>Math.min(i,l.index),Number.MAX_SAFE_INTEGER);if(o>0&&!(n===0&&o===1))return o+t}return t},Th=(r,e)=>{let t=qs(r),n=e==="fwd"?t+1:t-1;if(n<0||n>=r.length)throw Error("switchDropTargetPosition index out of range");let o=r.at(t),s=r.at(n),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,f=o.end+i,h={...s,start:u,mid:Math.floor(u+(f-u)/2),end:f};r.splice(t,2,h,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,f=o.end,h={...s,start:u,mid:Math.floor(u+(f-u)/2),end:f};r.splice(n,2,c,h)}},Vo=(r,e,t,n)=>{let o=r.length,s=qs(r),i=r[s];if(n==="fwd"){let l=Math.round(e+t);for(let a=o-1;a>=0;a--){let c=r[a];if(l>c.mid)return i&&a<s?i:c}}else{let l=Math.round(e);for(let a=0;a<o;a++){let c=r[a];if(l<c.mid)return a>s?i:c}}throw Error("no dropTraget identified")};function Ry(r,e){let{height:t,left:n,top:o,width:s}=r,{height:i,width:l}=e;return{height:Math.min(t,i),left:n,top:o,width:Math.min(s,l)}}var Eh=r=>r.map((e,t)=>{var n;return`
19
- ${e.isDraggedItem?"*":" "}[${t}] width : ${Math.floor(e.size)} ${Math.floor(e.start)} - ${Math.floor(e.end)} (mid ${Math.floor(e.mid)}) ${(n=e.element)==null?void 0:n.textContent} `}).join("");var Py=require("@salt-ds/core"),Iy=W(require("classnames")),kc=require("react"),Ay=require("@vuu-ui/vuu-popups");var kh=require("react/jsx-runtime"),xM=r=>r.split(" ").map(e=>`vuuDraggable-${e}`),Dc=(0,kc.forwardRef)(function({wrapperClassName:e,element:t,onTransitionEnd:n,style:o,scale:s=1},i){let l=(0,kc.useCallback)(c=>{c&&(c.innerHTML="",c.appendChild(t),s!==1&&(c.style.transform=`scale(${s},${s})`))},[t,s]),a=(0,Py.useForkRef)(i,l);return(0,kh.jsx)(Ay.PortalDeprecated,{children:(0,kh.jsx)("div",{className:(0,Iy.default)("vuuDraggable",...xM(e)),ref:a,onTransitionEnd:n,style:o})})}),Dh=r=>{let e=document.createElement("div");return e.className="vuuDraggable-spacer",r&&e.addEventListener("transitionend",()=>{r.current=!1}),e},Ly=()=>{let r=document.createElement("div");return r.className="vuuDraggable-dropIndicatorPosition",r},Oy=r=>{let e=document.createElement("div");return e.className="vuuDraggable-dropIndicator",r&&e.addEventListener("transitionend",()=>{r.current=!1}),e};var Hy=(r="horizontal")=>{let e=(0,Bn.useRef)(0),t=(0,Bn.useRef)(!1),n=(0,Bn.useMemo)(()=>[Dh(t),Dh()],[]),o=(0,Bn.useCallback)((c,u="width")=>{let[f,h]=n;e.current=requestAnimationFrame(()=>{t.current=!0,f.style.cssText=`${u}: 0px`,h.style.cssText=`${u}: ${c}px`,n[0]=h,n[1]=f})},[n]),s=(0,Bn.useCallback)((c=!1)=>{if(c===!0){let[u]=n,f=()=>{u.removeEventListener("transitionend",f),s()},h=r==="horizontal"?"width":"height";u.addEventListener("transitionend",f),o(0,h)}else n.forEach(u=>u.remove())},[o,r,n]),i=(0,Bn.useCallback)(()=>{e.current&&(cancelAnimationFrame(e.current),e.current=0)},[]),l=(0,Bn.useCallback)((c,u,f,h=!1,d="static")=>{if(u){let p=r==="horizontal"?"width":"height",[m,g]=n;if(i(),h)t.current?(s(),m.style.cssText=`${p}: ${f}px`,g.style.cssText=`${p}: 0px`,d==="fwd"?(u.element.before(m),u.element.after(g)):(u.element.after(m),u.element.before(g))):d==="fwd"?u.element.after(g):u.element.before(g),o(f,p);else if(d==="static")m.style.cssText=`${p}: ${f}px`,u.element.before(m);else throw Error("useDragDisplacers currently only supports noTransition for static displacement");d!=="static"&&Th(c,d)}},[o,i,s,r,n]),a=(0,Bn.useCallback)((c,u,f,h=!1,d="static")=>{let p=r==="horizontal"?"width":"height",[m,g]=n;i(),h?(t.current?(s(),m.style.cssText=`${p}: ${f}px`,g.style.cssText=`${p}: 0px`,u.element.before(m),u.element.after(g)):d==="fwd"?u.element.after(g):u.element.before(g),o(f,p)):(m.style.cssText=`${p}: ${f}px`,u.element.after(m)),d!=="static"&&Th(c,d)},[o,i,s,r,n]);return{displaceItem:l,displaceLastItem:a,clearSpacers:s}};var Mh=require("@vuu-ui/vuu-utils");var Ny=({onDrop:r,orientation:e="horizontal",containerRef:t,itemQuery:n="*",selected:o,viewportRange:s})=>{let i=(0,st.useRef)(),l=(0,st.useRef)(!1),a=(0,st.useRef)(-1),c=(0,st.useRef)([]),u=(0,st.useRef)(!1),[f,h]=(0,st.useState)(!1),{clearSpacers:d,displaceItem:p,displaceLastItem:m}=Hy(e),g=(0,st.useRef)(),y=`:is(${n}${Ec}${Ey},.vuuOverflowContainer-OverflowIndicator)`,C=E=>c.current.findIndex(R=>R.id===E.id),v=(0,st.useRef)();v.current=s;let x=(0,st.useCallback)(()=>{d()},[d]),S=(0,st.useCallback)((E,R,A)=>{let{current:O}=t,{current:L}=g;if(O&&L){c.current=js(O,e,y,v.current),E==="fwd"?c.current.push(L):c.current.unshift(L);let{size:P}=L,B=a.current+P/2,{current:H}=c,z=Vo(H,B,P,"fwd");if(z){let Q=C(z),q=H[Q];A&&E==="fwd"?m(H,H[H.length-1],P,!1,"static"):p(H,q,P,!0,"static")}}},[t,p,m,y,e]),b=(0,st.useCallback)(E=>{E.ariaSelected&&Array.isArray(o)&&o.length>1&&console.log("its a selected element, and we have a multi select");let{current:R}=t;if(R&&E){let A=R.contains(E),{SCROLL_SIZE:O,CLIENT_SIZE:L}=Vt(e),{id:P}=E,{[O]:I,[L]:B}=R;l.current=I>B;let H=c.current=js(R,e,y,s,P);if(A){console.log(Eh(H));let z=qs(H),V=H[z];V&&R&&(g.current=V,(V.isLast?m:p)(H,V,V.size,!1,"static"))}else{let{top:z,height:V}=E.getBoundingClientRect(),Q=Vo(H,z,V,"fwd"),q=H.indexOf(Q),{start:Y,end:_,mid:J}=Q;console.log(`nextDropTarget ${Q.element.textContent}`);let he=g.current={end:_,mid:J,start:Y,isDraggedItem:!0,isExternal:!0,size:V},le=H.indexOf(Q);console.log({indexOfDropTarget:le}),H.splice(le,0,he);for(let Ce=q+1;Ce<H.length;Ce++){let Le=H[Ce];Le.mid+=V,Le.end+=V,Le.start+=V}console.log(Eh(H)),(Q.isLast?m:p)(H,Q,Q.size,!0,"static")}}},[t,p,m,y,e,o,s]),[w,k]=(0,st.useMemo)(()=>{let E=!1;return[O=>{if(!E){E=!0;let L=O.element.querySelector(".vuuPopupMenu");L&&(0,Mh.dispatchMouseEvent)(L,"click")}},O=>{if(E){E=!1;let L=O.element.querySelector(".vuuPopupMenu");L&&(0,Mh.dispatchMouseEvent)(L,"click")}}]},[]),D=(0,st.useCallback)((E,R)=>{let{current:A}=g;if(A&&t.current){a.current=E;let{current:O}=c,L=Vo(O,E,A.size,R);if(L&&!L.isDraggedItem)if(L.isOverflowIndicator)h(u.current=!0),w(L);else{let{size:P}=A;(C(L)===O.length-1?m:p)(O,L,P,!0,R);let H=O.at(-1);k(H),h(u.current=!1)}i.current=R}},[t,p,m,k,w]),T=(0,st.useCallback)(()=>{var O;d();let{current:E}=c,R=qs(E),A=E[R];if(A)if(i.current=void 0,u.current)r(A.index,-1,{fromIndex:A.index,toIndex:-1,isExternal:A.isExternal});else{let L=qs(E,!0);r(A.index,L,{fromIndex:A.index,toIndex:L,isExternal:A.isExternal})}if(h(!1),t.current){let L=(O=t.current)==null?void 0:O.scrollTop;R<E.length&&(t.current.scrollTop=L)}},[d,t,r]),M=(0,st.useCallback)(()=>{d(!0)},[d]);return{beginDrag:b,drag:D,drop:T,handleScrollStart:x,handleScrollStop:S,releaseDrag:M,revealOverflowedItems:f}};var qe=require("react");var Al=require("react");var By=()=>{let r=(0,Al.useMemo)(()=>Ly(),[]),e=(0,Al.useCallback)(()=>r.remove(),[r]);return{positionDropIndicator:(0,Al.useCallback)((n,o="end")=>(o==="end"?n.element.after(r):n.element.before(r),r),[r]),clearSpacer:e}};var zy=require("react/jsx-runtime"),vM=':not([data-overflowed="true"])',CM=':not([aria-hidden="true"])',Fy=({onDrop:r,orientation:e="horizontal",containerRef:t,itemQuery:n="*",selected:o,viewportRange:s})=>{let i=(0,qe.useRef)(),l=(0,qe.useRef)(null),a=(0,qe.useRef)(null),c=(0,qe.useRef)(""),u=(0,qe.useRef)(!1),f=(0,qe.useRef)(-1),h=(0,qe.useRef)([]),d=(0,qe.useRef)(!1),[p,m]=(0,qe.useState)(!1),[g,y]=(0,qe.useState)(),{clearSpacer:C,positionDropIndicator:v}=By(),x=(0,qe.useRef)(),S=`:is(${n}${vM}${CM},[data-overflow-indicator])`,b=O=>h.current.findIndex(L=>L.id===O.id),w=(O,L,P)=>{O.start+=L,O.mid+=L,O.end+=L,typeof P=="number"&&(O.currentIndex+=P)},k=(0,qe.useRef)();k.current=s;let D=(0,qe.useCallback)(()=>{C()},[C]),T=(0,qe.useCallback)((O,L,P)=>{let{current:I}=t,{current:B}=x;if(I&&B){h.current=js(I,e,S,k.current);let{size:H}=B,V=f.current+H/2,{current:Q}=h,q=Vo(Q,V,H,"fwd");q&&v(P&&O==="fwd"?Q[Q.length-1]:q,"start")}},[t,v,S,e]),M=(0,qe.useCallback)(O=>{O.ariaSelected&&Array.isArray(o)&&o.length>1&&console.log("its a selected element, and we have a multi select");let{current:L}=t;if(L&&O){let{SCROLL_SIZE:P,CLIENT_SIZE:I}=Vt(e),{id:B}=O,{[P]:H,[I]:z}=L;u.current=H>z;let V=h.current=js(L,e,S,s),Q=Dy(V,B);if(Q&&L){let q=b(Q);My(V,q),x.current=Q;let{current:Y}=k;if(Y!=null&&Y.atEnd)for(let De=0;De<V.length;De++)w(V[De],Q.size);for(let De=q;De<V.length;De++)w(V[De],-Q.size,-1);let[_,J]=Q.isLast?[V[V.length-1],"end"]:[V[q],"start"];a.current=_,c.current=J;let he=v(_,J),{top:le,left:Fe,width:Ce}=he.getBoundingClientRect(),Le={top:Q.isLast?Y!=null&&Y.atEnd&&!Y.atStart?le+Q.size-2:le-2:le-Q.size-2,left:Fe,width:Ce,height:2};y((0,zy.jsx)(Dc,{wrapperClassName:"dropIndicatorContainer",style:Le,ref:l,element:Oy()}))}}},[o,t,e,S,s,v]),E=(0,qe.useCallback)((O,L)=>{let{current:P}=a,{current:I}=x;if(I&&t.current){let B=e==="horizontal"?"left":"top";f.current=O;let{current:H}=h,z=Vo(H,O,I.size,L);if(z&&z.index!==(P==null?void 0:P.index)){if(z.isOverflowIndicator)m(d.current=!0);else if(l.current){if(b(z)===H.length-1){let Q=H[H.length-1],Y=v(Q,"start").getBoundingClientRect();l.current.style[B]=`${Y.top}px`}else{let q=v(z,"start").getBoundingClientRect();l.current.style[B]=`${q.top}px`}m(d.current=!1)}a.current=z,i.current=L}}},[t,e,v]),R=(0,qe.useCallback)(()=>{C();let{current:O}=x,{current:L}=a,{current:P}=c,{current:I}=k;if(O&&I&&L){let{index:B}=O,H=P==="start",{index:z,currentIndex:V}=L;a.current=null,i.current=void 0,d.current?r(B,-1,{fromIndex:B,toIndex:-1}):B<z?r(B,H?V:V+1,{fromIndex:B,toIndex:H?V:V+1}):r(B,H?z:z+1,{fromIndex:B,toIndex:H?z:z+1}),y(void 0)}m(!1)},[C,r]),A=(0,qe.useCallback)(()=>{},[]);return{beginDrag:M,drag:E,drop:R,dropIndicator:g,handleScrollStart:D,handleScrollStop:T,releaseDrag:A,revealOverflowedItems:p}};var ye=require("react");var Jr=require("react");var Vy=({containerRef:r,onScrollingStopped:e,orientation:t="vertical"})=>{let n=(0,Jr.useRef)(null),o=(0,Jr.useRef)(!1),s=(0,Jr.useRef)(0),i=(0,Jr.useRef)("fwd"),l=(0,Jr.useCallback)((c=!1)=>{console.log("[useAutoScroll] stopScrolling"),n.current!==null&&(clearTimeout(n.current),n.current=null),o.current=!1,e==null||e(i.current,s.current,c)},[e]),a=(0,Jr.useCallback)((c,u,f=30)=>{let{current:h}=r;if(h){let{SCROLL_POS:d,SCROLL_SIZE:p,CLIENT_SIZE:m}=Vt(t),{[d]:g,[p]:y,[m]:C}=h,v=c==="fwd"?y-C-g:g,x=Math.min(v,f);c==="fwd"?(i.current="fwd",h[d]=s.current=g+x):(i.current="bwd",h[d]=s.current=g-x),x===v?l(!0):(o.current=!0,n.current=window.setTimeout(()=>{a(c,u,f)},100))}},[r,t,l]);return{isScrolling:o,startScrolling:a,stopScrolling:l}};var Ky=require("react/jsx-runtime"),wM={beginDrag:()=>{},drag:()=>{},draggableRef:{current:null},drop:()=>{},isDragging:!1,isScrolling:!1,handleScrollStart:()=>{},handleScrollStop:()=>{},revealOverflowedItems:!1},$y={start:0,end:1e3,contraStart:0,contraEnd:1e3},SM=()=>wM,TM=3,EM=(r,e)=>r.closest(e),kM=r=>r.dataset.index==="overflow"&&r.parentElement!==null&&r.parentElement.classList.contains("overflowed"),DM=(r,e)=>{let t=`:is(${e}${Ec},.vuuOverflowContainer-OverflowIndicator)`,o=Array.from(r.querySelectorAll(t)).pop();return[o,kM(o)]},Yn=({allowDragDrop:r,containerRef:e,draggableClassName:t,getDragPayload:n,id:o,itemQuery:s="*",onDragStart:i,onDrop:l,onDropSettle:a,orientation:c,...u})=>{let f=(0,ye.useRef)({start:0,end:0,contraStart:0,contraEnd:0}),[h,d]=(0,ye.useState)({draggable:void 0,draggedItemIndex:-1,isDragging:!1}),p=(0,ye.useRef)(null),m=(0,ye.useRef)(null),g=(0,ye.useRef)(!1),y=(0,ye.useRef)({x:0,y:0}),C=(0,ye.useRef)({x:0,y:0}),v=(0,ye.useRef)(null),x=(0,ye.useRef)(-1),S=(0,ye.useRef)(-1),b=(0,ye.useRef)(),{isDragSource:w,isDropTarget:k,onDragOut:D,onEndOfDragOperation:T,register:M}=Ty(o),E=(0,ye.useRef)(),R=(0,ye.useRef)(),A=(0,ye.useCallback)(()=>{let{current:G}=E,{current:Z}=R;G&&Z&&(document.addEventListener("mousemove",G,!1),document.addEventListener("mouseup",Z,!1))},[]),O=(0,ye.useCallback)(()=>{let{current:G}=E,{current:Z}=R;G&&Z&&(document.removeEventListener("mousemove",G,!1),document.removeEventListener("mouseup",Z,!1))},[]),L=(0,ye.useCallback)((G,Z)=>{let{current:re}=e;if(re){let[fe,Ee]=DM(re,s),{CONTRA:ze,CONTRA_END:we,DIMENSION:X,END:te,START:oe}=Vt(c),de=Z[X],{[oe]:_e,[te]:at}=fe.getBoundingClientRect();f.current.start=G[oe],f.current.end=Ee?Math.max(_e,G.right-de):g.current?G[oe]+G[X]-de:at-de,f.current.contraStart=G[ze],f.current.contraEnd=G[we]}},[e,s,c]),P=(0,ye.useCallback)(()=>{var re;let{current:G}=S,Z=(re=e.current)==null?void 0:re.querySelector(`${s}[data-index="${G}"]`);Z&&Z.classList.remove("vuuDropTarget-settling"),S.current=-1,a==null||a(G),d(fe=>({...fe,draggable:void 0}))},[e,s,a]),I=(0,ye.useCallback)(G=>{if(e.current&&p.current){let{mouseOffset:Z}=p.current,{POS:re,SCROLL_POS:fe,SCROLL_SIZE:Ee,CLIENT_SIZE:ze}=Vt(c),{[fe]:we,[Ee]:X,[ze]:te}=e.current,oe=X-te,de=we<oe,_e=f.current.end,at=we>0&&G-Z[re]<=f.current.start,N=de&&G-Z[re]>=_e;return at?"bwd":N?"fwd":""}},[e,c]),B=r===!0||r==="natural-movement"?Ny:r==="drop-indicator"?Fy:SM,H=(0,ye.useCallback)((G,Z,re)=>{var fe;(fe=b.current)==null||fe.call(b,G,Z,re)},[]),{isScrolling:z,startScrolling:V,stopScrolling:Q}=Vy({containerRef:e,onScrollingStopped:H,orientation:c}),q=(0,ye.useCallback)((G,Z,re)=>{var fe;x.current=Z,re.isExternal?l==null||l(G,Z,{...re,payload:(fe=p.current)==null?void 0:fe.payload}):l==null||l(G,Z,re),S.current=Z,o&&(T==null||T(o)),p.current=null},[o,l,T]),{beginDrag:Y,drag:_,drop:J,handleScrollStart:he,handleScrollStop:le,releaseDrag:Fe,...Ce}=B({...u,containerRef:e,isDragSource:w,isDropTarget:k,itemQuery:s,onDrop:q,orientation:c});b.current=le;let Le=(0,ye.useCallback)((G,Z)=>{let{CONTRA_POS:re}=Vt(c),fe=y.current[re],Ee=w?Math.abs(fe-Z):0;if(p.current&&Ee-G>5)return D!=null&&D(o,p.current)&&(O(),Fe==null||Fe(),p.current=null),f.current=$y,!0},[o,w,D,c,Fe,O]),De=(0,ye.useCallback)(G=>{let{CLIENT_POS:Z,CONTRA_CLIENT_POS:re,POS:fe}=Vt(c),{clientX:Ee,clientY:ze}=G,{[Z]:we,[re]:X}=G,te=y.current[fe],oe=Math.abs(te-we),{current:de}=p;if(Le(oe,X)){console.log("drag handed over to provider");return}if(y.current.x=Ee,y.current.y=ze,de){let{draggableElement:_e,mouseOffset:at}=de;if(f.current===$y&&_e){let N=y.current.x-at.x,K=y.current.y-at.y;_e.style.top=`${K}px`,_e.style.left=`${N}px`}else if(oe>0&&_e){let N=te<we?"fwd":"bwd",K=I(we),ue=y.current[fe]-at[fe];if(K&&g.current&&!z.current?(he(),V(K,1)):!K&&z.current&&Q(),!z.current){let Oe=Math.round(Math.max(f.current.start,Math.min(f.current.end,ue))),Ft=c==="horizontal"?"left":"top";_e.style[Ft]=`${Oe}px`,_(Oe,N)}}}},[_,I,he,o,w,z,D,c,V,Q]),Pe=(0,ye.useCallback)(()=>{O(),p.current&&(v.current=p.current.draggableElement),J(),d(G=>({...G,draggedItemIndex:-1,isDragging:!1}))},[J,O]);E.current=De,R.current=Pe;let Je=(0,ye.useCallback)(G=>{p.current=G;let{draggableElement:Z,mouseOffset:re,initialDragElement:fe}=G,{current:Ee}=e;if(console.log({container:Ee,draggableElement:Z,initialDragElement:fe}),Ee&&Z){let ze=Ee.getBoundingClientRect(),we=Z.getBoundingClientRect();return L(ze,we),y.current.x=we.left+re.x,y.current.y=we.top+re.y,Y(Z),A(),!0}else return!1},[A,Y,e,L]),ne=(0,ye.useCallback)(G=>{let{target:Z}=G,re=EM(Z,s),{current:fe}=e;if(fe&&re){let{SCROLL_SIZE:Ee,CLIENT_SIZE:ze}=Vt(c),{[Ee]:we,[ze]:X}=fe;g.current=we>X;let te=fe.getBoundingClientRect(),oe=re.getBoundingClientRect(),de=p.current=new Tc(G,re);L(te,oe),Y(re);let{dataset:{index:_e="-1"}}=re;d({isDragging:!0,draggable:(0,Ky.jsx)(Dc,{element:ky(re),onTransitionEnd:P,ref:de.setDraggable,style:Ry(oe,te),wrapperClassName:t}),draggedItemIndex:parseInt(_e)}),i==null||i(de),A()}},[A,Y,e,t,s,i,c,L,P]),me=(0,ye.useCallback)(G=>{let{CLIENT_POS:Z,POS:re}=Vt(c),{[Z]:fe}=G;Math.abs(fe-C.current[re])>TM&&e.current&&(m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",me),document.removeEventListener("mouseup",Ie,!1),ne(G))},[e,Y,c]),Ie=(0,ye.useCallback)(()=>{m.current&&(window.clearTimeout(m.current),m.current=null),document.removeEventListener("mousemove",me,!1),document.removeEventListener("mouseup",Ie,!1)},[me]),ae=(0,ye.useCallback)(G=>{let{current:Z}=e;if(G.stopPropagation(),Z&&!G.defaultPrevented){let{clientX:re,clientY:fe}=G;y.current.x=C.current.x=re,y.current.y=C.current.y=fe,document.addEventListener("mousemove",me,!1),document.addEventListener("mouseup",Ie,!1),G.persist(),m.current=window.setTimeout(()=>{document.removeEventListener("mousemove",me,!1),document.removeEventListener("mouseup",Ie,!1),ne(G.nativeEvent)},500)}},[e,ne,me,Ie]),{current:Me}=v;return(0,ye.useLayoutEffect)(()=>{if(Me&&e.current){let G=x.current,Z=e.current.querySelector(`${s}[data-index="${G}"]`);Z?(Z.classList.add("vuuDropTarget-settling"),requestAnimationFrame(()=>{let{top:re,left:fe}=Z.getBoundingClientRect(),{top:Ee,left:ze}=Me.getBoundingClientRect();ze!==fe||Ee!==re?(Me.classList.add("vuuDraggable-settling"),Me.style.top=`${re}px`,Me.style.left=`${fe}px`):P()})):console.log(`dont have the dropped item (at ${G})`),v.current=null}},[e,s,Me,P]),(0,ye.useEffect)(()=>{o&&(w||k)&&M(o,Je)},[o,w,k,M,Je]),{...Ce,...h,isScrolling:z,onMouseDown:r?ae:void 0}};var Zr=({allowDragDrop:r=!1,collapsibleHeaders:e,collectionHook:t,containerRef:n,contentRef:o,defaultHighlightedIndex:s,defaultSelected:i,disabled:l,disableAriaActiveDescendant:a,disableHighlightOnFocus:c,disableTypeToSelect:u,highlightedIndex:f,id:h,label:d="",listHandlers:p,onDragStart:m,onDrop:g,onHighlight:y,onKeyboardNavigation:C,onKeyDown:v,onMoveListItem:x,onSelect:S,onSelectionChange:b,restoreLastFocus:w,scrollContainerRef:k,selected:D,selectionStrategy:T,selectionKeys:M,stickyHeaders:E,tabToSelect:R,viewportRange:A})=>{let O=(0,ht.useRef)(null),L=(0,ht.useRef)(D||i),P=(X,te)=>{var oe,de;(de=(oe=le.listHandlers).onKeyboardNavigation)==null||de.call(oe,X,te),C==null||C(X,te)},I=(0,ht.useCallback)((X,te)=>{S&&te!==null&&S(X,t.itemById(te))},[t,S]),B=(0,ht.useMemo)(()=>{var X,te;return k||{current:(te=(X=n.current)==null?void 0:X.querySelector(".vuuList-scrollContainer"))!=null?te:null}},[]),H=(0,ht.useCallback)((X,te)=>{if(b){if(Array.isArray(te)){let oe=te.map(de=>t.itemById(de));b(X,oe)}else if(te){let oe=t.itemById(te);b(X,oe)}}},[t,b]),{highlightedIndex:z,containerProps:{onKeyDown:V,onMouseMove:Q,...q},setHighlightedIndex:Y,..._}=uy({containerRef:B,defaultHighlightedIndex:s,disableHighlightOnFocus:c,highlightedIndex:f,indexPositions:t.data,itemCount:t.data.length,label:d,onHighlight:y,onKeyboardNavigation:P,restoreLastFocus:w,selected:L.current,viewportItemCount:10}),J=sy({collapsibleHeaders:e,highlightedIdx:z,collectionHook:t}),he=(0,ht.useCallback)(X=>{Y(-1),m==null||m(X)},[m,Y]),le=fy({containerRef:n,defaultSelected:i,highlightedIdx:z,itemQuery:".vuuListItem",label:`${d}:useList`,onSelect:I,onSelectionChange:H,selected:D,selectionStrategy:T,selectionKeys:M,tabToSelect:R}),Fe=(0,ht.useCallback)((X,te,oe)=>{let de=t.data.indexOf(X);return de===te?oe:de<Math.min(te,oe)||de>Math.max(te,oe)?de:te<de?de-1:de+1},[t.data]),Ce=(0,ht.useCallback)((X,te,oe)=>Array.isArray(X)?X.map(de=>Fe(de,te,oe)):Fe(X,te,oe),[Fe]),Le=(0,ht.useCallback)((X,te,oe)=>{Xr(le.selected)&&(O.current=Ce(le.selected,X,te)),oe.isExternal?g==null||g(X,te,oe):x==null||x(X,te),Y(-1)},[le.selected,Y,Ce,g,x]),De=(0,ht.useCallback)(X=>{Y(X)},[Y]),{setSelected:Pe}=le;(0,ht.useEffect)(()=>{let{current:X}=O;if(Xr(X)){let te=Array.isArray(X)?X.map(oe=>t.data[oe]):t.data[X];O.current=null,Pe(te)}},[t.data,Pe]),An(()=>{Xr(L.current)&&Pe(Array.isArray(L.current)?[]:null)},[Pe,t.data]);let{onMouseDown:Je,isDragging:ne,isScrolling:me,...Ie}=Yn({allowDragDrop:r,draggableClassName:"list-item",orientation:"vertical",containerRef:n,id:h,itemQuery:".vuuListItem",onDragStart:he,onDrop:Le,onDropSettle:De,viewportRange:A}),{onKeyDown:ae}=hy({disableTypeToSelect:u,highlightedIdx:z,highlightItemAtIndex:Y,typeToNavigate:!0,items:t.data}),Me=(0,ht.useCallback)(X=>{var te,oe,de;X.defaultPrevented||ae==null||ae(X),V(X),X.defaultPrevented||(oe=(te=le.listHandlers).onKeyDown)==null||oe.call(te,X),X.defaultPrevented||(de=J==null?void 0:J.onKeyDown)==null||de.call(J,X),X.defaultPrevented||v==null||v(X)},[J,V,v,le.listHandlers,ae]),{isScrolling:G,scrollIntoView:Z}=by({containerRef:B,contentRef:o,highlightedIdx:z,indexPositions:t.data,stickyHeaders:E}),re=G.current||me.current,fe=(0,ht.useCallback)(X=>{if(!re&&!l&&!ne){Q();let te=iy(X.target);if(te!==-1&&te!==z){let oe=t.data[te];!oe||oe.disabled?Y(-1):Y(te)}}},[ne,re,l,Y,Q,z,t.data]),Ee=()=>{var X;return z===void 0||z===-1||a||(X=t.data[z])==null?void 0:X.id};L.current=le.selected;let ze={"aria-activedescendant":Ee(),onBlur:q.onBlur,onFocus:q.onFocus,onKeyDown:Me,onMouseDown:Je,onMouseDownCapture:q.onMouseDownCapture,onMouseLeave:q.onMouseLeave},we=p||{onClick:le.listHandlers.onClick,onMouseMove:fe};return{focusVisible:_.focusVisible,controlledHighlighting:_.controlledHighlighting,highlightedIndex:z,keyboardNavigation:_.keyboardNavigation,listHandlers:we,listItemHeaderHandlers:J,listControlProps:ze,scrollIntoView:Z,selected:le.selected,setHighlightedIndex:Y,setIgnoreFocus:_.setIgnoreFocus,setSelected:le.setSelected,...Ie}};var Zn=require("react");var MM=(r,e,t=0)=>r===0?0:t===0?r*e:r-1*(e+t)+e,Mc=({displayedItemCount:r,getItemHeight:e,height:t,itemCount:n,itemGapSize:o,itemHeight:s=36,size:i})=>{let[l,a]=(0,Zn.useState)(s),[,c]=(0,Zn.useState)({}),u=(0,Zn.useRef)(null),[f,h]=(0,Zn.useMemo)(()=>{let m=0,g=l!=null?l:s,y=MM(n,g,o);if(console.log(`contentHeight ${y}`),t!==void 0)return[y,void 0];let C=Math.min(r,n)||r;return typeof e=="function"?m+=Array(C).fill(0).reduce((x,S,b)=>x+e(b)+o,0)-o:m+=C*Number(g)+(C-1)*o,[y,m]},[r,e,t,n,o,s,l]),d=(0,Zn.useCallback)(({height:m})=>{typeof m=="number"&&a(m)},[]),p=(0,Zn.useCallback)(m=>{u.current=m,c({})},[]);return xr(u,Ob,d,!0),{computedListHeight:h,contentHeight:f,listClientHeight:i==null?void 0:i.height,listItemHeight:l,rowHeightProxyRef:p}};var Uy=require("@salt-ds/core"),er=require("react"),Wy=(r,e,t,n)=>{let o=Math.ceil(e/n),s=Math.floor(r/n),i=Math.ceil(s+o-1);return{atStart:s===0,atEnd:i===t-1,from:s,to:i}},Rc=({containerSize:r,itemCount:e,itemGapSize:t=0,itemSize:n,onViewportScroll:o})=>{let s=(0,er.useRef)(0),i=(0,er.useRef)(0),l=(0,er.useRef)(0),a=(0,er.useMemo)(()=>Wy(l.current,r,e,n+t),[r,e,n,t]),[c,u]=(0,er.useState)(a);return(0,Uy.useIsomorphicLayoutEffect)(()=>{u(a)},[a]),{onVerticalScroll:(0,er.useCallback)(h=>{let d=h.target.scrollTop;if(d!==l.current){l.current=d;let p=n+t,m=Wy(d,r,e,p);(m.from!==s.current||m.to!==i.current)&&(s.current=m.from,i.current=m.to,o==null||o(m.from,m.to),u(m))}},[n,t,r,e,o]),viewportRange:c}};var Zt=require("react/jsx-runtime"),Gy=require("react"),RM="No data to display",$o="vuuList",No=(0,$t.forwardRef)(function({ListItem:e=Ho,ListPlaceholder:t,allowDragDrop:n,children:o,className:s,collapsibleHeaders:i=!1,defaultHighlightedIndex:l,defaultSelected:a,disabled:c=!1,disableFocus:u=!1,disableTypeToSelect:f,displayedItemCount:h=10,emptyMessage:d,focusVisible:p,getItemHeight:m,getItemId:g,height:y,highlightedIndex:C,id:v,itemGapSize:x=0,itemHeight:S,itemTextHighlightPattern:b,itemToString:w=hn,listHandlers:k,maxHeight:D,maxWidth:T,minHeight:M,minWidth:E,onDragStart:R,onDrop:A,onMoveListItem:O,onSelect:L,onSelectionChange:P,onHighlight:I,restoreLastFocus:B,selected:H,selectionStrategy:z,checkable:V=z==="multiple",scrollingApiRef:Q,selectionKeys:q,showEmptyMessage:Y=!1,source:_,style:J,stickyHeaders:he,tabToSelect:le,...Fe},Ce){var Pm,Im;let Le=ft(v),De=(0,$t.useRef)(null),Pe=(0,$t.useRef)(null),Je=(0,$t.useRef)(null),[ne,me]=(0,$t.useState)(),Ie=(0,$t.useCallback)(Rn=>{me(Rn)},[]),ae=Yr({id:Le,label:"List",source:_,children:o,options:{collapsibleHeaders:i,getItemId:g,itemToString:w}}),{listClientHeight:Me,computedListHeight:G,listItemHeight:Z,rowHeightProxyRef:re}=Mc({displayedItemCount:h,getItemHeight:m,height:y,itemCount:ae.data.length,itemGapSize:x,itemHeight:S,rootRef:De,size:ne}),{onVerticalScroll:fe,viewportRange:Ee}=Rc({containerSize:(Im=(Pm=Me!=null?Me:G)!=null?Pm:ne==null?void 0:ne.height)!=null?Im:0,itemCount:ae.data.length,itemGapSize:x,itemSize:Z}),{draggable:ze,draggedItemIndex:we,dropIndicator:X,focusVisible:te,highlightedIndex:oe,listControlProps:de,listHandlers:_e,listItemHeaderHandlers:at,scrollIntoView:N,selected:K}=Zr({allowDragDrop:n,collapsibleHeaders:i,collectionHook:ae,containerRef:De,contentRef:Je,defaultHighlightedIndex:l,defaultSelected:ae.itemToCollectionItemId(a),disabled:c,disableTypeToSelect:f,highlightedIndex:C,id:Le,label:"List",listHandlers:k,onDragStart:R,onDrop:A,onMoveListItem:O,onSelect:L,onSelectionChange:P,onHighlight:I,restoreLastFocus:B,scrollContainerRef:Pe,selected:ae.itemToCollectionItemId(H),selectionStrategy:z,selectionKeys:q,stickyHeaders:he,tabToSelect:le,viewportRange:Ee});Cc({collectionHook:ae,forwardedRef:Q,scrollableRef:De,scrollIntoView:N});let ue=p!=null?p:te,Oe=function(Ze,Qt,jt,yt){let Eo=(0,Gy.createElement)(e,{...at,className:(0,Pc.default)(`${$o}Header`,{focusVisible:i&&ue===Ze.value}),"aria-expanded":yt,"data-idx":i?Ze.value:void 0,"data-index":i?Ze.value:void 0,"data-highlighted":Ze.value===oe||void 0,"data-sticky":he,"data-selectable":!1,id:Qt,key:`header-${Ze.value}`,label:jt});return Ze.value+=1,Eo},Ft=m===void 0?()=>S:m;function To(Rn,Ze,Qt){var Fa,Am;let{disabled:jt,value:yt,id:Eo,label:Na}=Ze,Ba=(0,$t.isValidElement)(yt),al={className:(0,Pc.default)((Fa=yt==null?void 0:yt.props)==null?void 0:Fa.className,{vuuHighlighted:Qt.value===oe,vuuFocusVisible:ue===Qt.value,["vuuDraggable-dragAway"]:we===Qt.value}),disabled:jt||c,id:Eo,item:Ba?void 0:(Am=Ze==null?void 0:Ze.value)!=null?Am:void 0,itemHeight:Ft(Qt.value),itemTextHighlightPattern:b,key:Eo,"data-index":Qt.value,label:Na,role:"option",selected:hc(K,Ze),showCheckbox:V};Rn.push(Ba?(0,$t.cloneElement)(yt,al):(0,Zt.jsx)(e,{...al})),Qt.value+=1}let Mn=function(Ze,Qt,jt){let{count:yt=0,id:Eo,expanded:Na,label:Ba=""}=Qt[jt.value],al=Oe(jt,Eo,Ba,Na),Fa=Na!==!1?[al].concat(As(Qt,jt,jt.value+yt)||[]):al;Ze.push((0,Zt.jsx)("div",{role:"group",children:Fa},Eo))},As=(Rn,Ze={value:0},Qt=Rn.length)=>{let jt=[];for(;Ze.value<Qt;){let yt=Rn[Ze.value];yt.header?jt.push(Oe(Ze,yt.id,yt.label,yt.expanded===!1)):yt.childNodes?Mn(jt,Rn,Ze):To(jt,yt,Ze)}return jt};function dE(){return d||Y?(0,Zt.jsx)("span",{className:`${$o}-empty-message`,children:d!=null?d:RM}):null}let pE=()=>{if(ae.data.length){let Rn=ae.data;return As(Rn)}else dE()},mE="auto",gE={"--list-borderWidth":"var(--vuuList-borderWidth, var(--salt-size-border, 0))","--list-item-gap":x?`${x}px`:void 0,"--computed-list-height":G===void 0?void 0:`${G}px`,minWidth:E,minHeight:M,maxWidth:T,maxHeight:D};return(0,Zt.jsxs)(nc,{"aria-multiselectable":z==="multiple"||z==="extended"||z==="extended-multi-range"||void 0,...Fe,..._e,...de,className:(0,Pc.default)($o,s,{[`${$o}-collapsible`]:i,[`${$o}-contentSized`]:G!==void 0,vuuFocusVisible:oe===vh}),height:G!=null?G:y,id:`${Le}`,onResize:Ie,ref:(0,_y.useForkRef)(De,Ce),role:"listbox",onScroll:fe,style:{...J,...gE},tabIndex:c||u?void 0:0,children:[(0,Zt.jsx)(Sc,{ref:re,height:S}),ae.data.length===0&&t!==void 0?(0,Zt.jsx)(Zt.Fragment,{children:(0,Zt.jsx)(t,{})}):(0,Zt.jsx)("div",{className:`${$o}-viewport`,ref:Pe,children:(0,Zt.jsxs)("div",{className:`${$o}-scrollingContentContainer`,ref:Je,style:{height:mE},children:[pE(),X,ze]})})]})});var Xs=require("@salt-ds/core");function Qy(r){var e,t,n="";if(typeof r=="string"||typeof r=="number")n+=r;else if(typeof r=="object")if(Array.isArray(r))for(e=0;e<r.length;e++)r[e]&&(t=Qy(r[e]))&&(n&&(n+=" "),n+=t);else for(e in r)r[e]&&(n&&(n+=" "),n+=e);return n}function Rh(){for(var r,e,t=0,n="";t<arguments.length;)(r=arguments[t++])&&(e=Qy(r))&&(n&&(n+=" "),n+=e);return n}var Wo=require("react");var qy=require("react");var Ic=class{constructor(e=0,t=0){this.keys=new Map,this.free=[],this.nextKeyValue=0,this.reset(e,t)}next(){return this.free.length?this.free.pop():this.nextKeyValue++}reset(e,t){this.keys.forEach((o,s)=>{(s<e||s>=t)&&(this.free.push(o),this.keys.delete(s))});let n=t-e;this.keys.size+this.free.length>n&&(this.free.length=n-this.keys.size);for(let o=e;o<t;o++)if(!this.keys.has(o)){let s=this.next();this.keys.set(o,s)}}keyFor(e){return this.keys.get(e)}};var PM=([r],[e])=>r-e,jy=5,Xy=({data:r,listItemGapSize:e=0,listItemHeight:t,viewportRange:n})=>{let o=(0,qy.useMemo)(()=>new Ic(0,1),[]),s=t+e,i=Math.max(0,n.from-jy),l=Math.min(r.length,n.to+jy);return o.reset(i,l),r.slice(i,l).map((c,u)=>[o.keyFor(u+i),(u+i)*s,u+i+1,c]).sort(PM)};var Ko=require("react/jsx-runtime"),IM="No data to display",Ac=(0,Xs.makePrefixer)("saltList"),AM=(0,Wo.memo)(Ho),r_=(0,Wo.forwardRef)(function({borderless:e,children:t,className:n,collapsibleHeaders:o=!1,defaultHighlightedIndex:s,defaultSelected:i,disabled:l=!1,disableFocus:a=!1,disableTypeToSelect:c,displayedItemCount:u=10,emptyMessage:f,getItemHeight:h,getItemId:d,height:p,highlightedIndex:m,id:g,itemGapSize:y=0,itemHeight:C,itemTextHighlightPattern:v,itemToString:x,maxHeight:S,maxWidth:b,minHeight:w,minWidth:k,onDragStart:D,onDrop:T,onSelect:M,onSelectionChange:E,onViewportScroll:R,onHighlight:A,restoreLastFocus:O,selected:L,selectionStrategy:P,scrollingApiRef:I,selectionKeys:B,showEmptyMessage:H=!1,source:z,style:V,stickyHeaders:Q,tabToSelect:q,width:Y,..._},J){let he=(0,Xs.useIdMemo)(g),le=(0,Wo.useRef)(null),Fe=(0,Wo.useRef)(null),Ce=Yr({id:he,label:"List",source:z,children:t,options:{collapsibleHeaders:o,getItemId:d,itemToString:x}}),{contentHeight:Le,listItemHeight:De,listHeight:Pe}=Mc({borderless:e,displayedItemCount:u,height:p,itemCount:Ce.data.length,itemGapSize:y,itemHeight:C,rootRef:le,rowHeightRef:Fe}),{focusVisible:Je,highlightedIndex:ne,listControlProps:me,listHandlers:Ie,scrollIntoView:ae,selected:Me}=Zr({collapsibleHeaders:o,collectionHook:Ce,containerRef:le,defaultHighlightedIndex:s,defaultSelected:Ce.itemToCollectionItem(i),disabled:l,disableTypeToSelect:c,highlightedIndex:m,label:he,onSelect:M,onSelectionChange:E,onHighlight:A,restoreLastFocus:O,selected:Ce.itemToCollectionItem(L),selectionStrategy:P,selectionKeys:B,stickyHeaders:Q,tabToSelect:q}),{onVerticalScroll:G,viewportRange:Z}=Rc({containerSize:typeof Pe=="number"?Pe:0,itemCount:Ce.data.length,itemGapSize:y,itemSize:De});console.log({viewPortRange:Z});let re=Xy({data:Ce.data,listItemGapSize:y,listItemHeight:De,viewportRange:Z});Cc({collectionHook:Ce,forwardedRef:I,scrollableRef:le,scrollIntoView:ae});function fe(te,oe,de){let[_e,at,N,K]=oe,ue=N-1;te.push((0,Ko.jsx)(AM,{"aria-setsize":Ce.data.length,"aria-posinset":N,className:Rh(n,{saltHighlighted:ue===ne,saltFocusVisible:Je===ue}),"data-idx":ue,item:K,label:K.label,"data-offset":at,role:"option",selected:hc(Me,K),id:K.id,translate3d:at},_e)),de.value+=1}function Ee(te,oe={value:0},de=te.length){let _e=[];for(;oe.value<de;){let at=te[oe.value];fe(_e,at,oe)}return _e}function ze(){return f||H?(0,Ko.jsx)("span",{className:Ac("empty-message"),children:f!=null?f:IM}):null}let we=()=>{if(re.length)return Ee(re);ze()},X={"--list-item-gap":y?`${y}px`:void 0,minWidth:k,minHeight:w,width:Y!=null?Y:"100%",height:p!=null?p:"100%",maxWidth:b!=null?b:Y,maxHeight:S!=null?S:Pe};return(0,Ko.jsx)("div",{..._,...Ie,...me,className:Rh(Ac(),n,Ac("virtualized")),id:`${he}`,ref:(0,Xs.useForkRef)(le,J),role:"listbox",onScroll:G,style:{...V,...X},tabIndex:l||a?void 0:0,children:(0,Ko.jsxs)("div",{className:Ac("scrollingContentContainer"),style:{height:Le},children:[(0,Ko.jsx)(Sc,{ref:Fe}),we()]})})});var LM=W(require("classnames"));var OM=require("react/jsx-runtime");var Yy=require("@salt-ds/core"),Ys=require("react");var Jy=({collectionHook:r,defaultHighlightedIndex:e,defaultIsOpen:t,defaultSelected:n,highlightedIndex:o,isOpen:s,itemToString:i=hn,listRef:l,onHighlight:a,onOpenChange:c,onSelectionChange:u,onSelect:f,selected:h,selectionStrategy:d})=>{let p=d==="multiple"||d==="extended",[m,g]=(0,Yy.useControlled)({controlled:s,default:t!=null?t:!1,name:"useDropdownList"}),y=(0,Ys.useCallback)((b,w)=>{p||(g(!1),c==null||c(!1)),u==null||u(b,w)},[p,c,u,g]),C=(0,Ys.useCallback)((b,w)=>{p||(g(!1),c==null||c(!1)),f==null||f(b,w)},[p,c,f,g]),v=Zr({collectionHook:r,defaultHighlightedIndex:(e!=null?e:o===void 0)?0:void 0,defaultSelected:n,label:"DropDown",onSelectionChange:y,onSelect:C,containerRef:l,highlightedIndex:o,onHighlight:a,selected:h,selectionStrategy:d,tabToSelect:!p}),x=(0,Ys.useCallback)(b=>{g(b),c==null||c(b)},[c,g]),S=(0,Ys.useMemo)(()=>{if(p&&Array.isArray(v.selected)){let b=v.selected.map(w=>r.itemById(w));if(b.length===0)return;if(b.length===1){let[w]=b;return w===null?void 0:i(w)}else return`${b.length} items selected`}else{let b=v.selected;return b==null?void 0:i(r.itemById(b))}},[r,p,i,v.selected]);return{isOpen:m,onOpenChange:x,triggerLabel:S,...v}};var Js=require("react/jsx-runtime"),Lc=(0,Cr.forwardRef)(function({"aria-label":e,children:t,defaultIsOpen:n,defaultSelected:o,id:s,isOpen:i,itemToString:l=hn,onOpenChange:a,onSelectionChange:c,onSelect:u,selected:f,selectionStrategy:h,source:d,triggerComponent:p,ListItem:m,ListProps:g,width:y=180,...C},v){let x=ft(s),S=(0,Cr.useRef)(null),b=(0,Cr.useRef)(null),w=(0,Zy.useForkRef)(S,v),k=Yr({id:x,source:d,children:t,options:{itemToString:l}}),{highlightedIndex:D,triggerLabel:T,listHandlers:M,listControlProps:E,selected:R,...A}=Jy({collectionHook:k,defaultHighlightedIndex:g==null?void 0:g.defaultHighlightedIndex,defaultIsOpen:n,defaultSelected:k.itemToCollectionItemId(o),highlightedIndex:g==null?void 0:g.highlightedIndex,isOpen:i,itemToString:l,label:"Dropdown",listRef:b,onHighlight:g==null?void 0:g.onHighlight,onOpenChange:a,onSelectionChange:c,onSelect:u,selected:k.itemToCollectionItemId(f),selectionStrategy:h}),O=(0,Cr.useCallback)(P=>{if(Array.isArray(P))return P.map(I=>k.itemById(I));if(P)return k.itemById(P)},[k]),L=()=>{let P={"aria-activedescendant":A.isOpen?E==null?void 0:E["aria-activedescendant"]:void 0,"aria-label":e};if(p){let I=p.props;return(0,Cr.cloneElement)(p,Sl(I,{...A.isOpen?E:{},...P}))}else return(0,Js.jsx)(Zb,{label:T,...A.isOpen?E:{},...P})};return(0,Js.jsx)(cc,{collectionHook:k,children:(0,Js.jsxs)(gc,{...C,id:x,isOpen:A.isOpen,onOpenChange:A.onOpenChange,placement:(g==null?void 0:g.width)===void 0?"below-full-width":"below",ref:w,width:y,children:[L(),(0,Js.jsx)(No,{ListItem:m,itemToString:l,...g,highlightedIndex:D,listHandlers:M,onSelectionChange:c,onSelect:u,ref:b,selected:O(R),selectionStrategy:h})]})})});var Ph=require("@salt-ds/core");var He=require("react");var HM=["Enter"],ex=({allowFreeText:r,ariaLabel:e,collectionHook:t,defaultIsOpen:n,defaultValue:o,onBlur:s,onFocus:i,onChange:l,onSelect:a,id:c,initialHighlightedIndex:u=-1,isOpen:f,itemToString:h=hn,listRef:d,onOpenChange:p,onSelectionChange:m,selectionStrategy:g,stringToItem:y,value:C,InputProps:v={onBlur:s,onFocus:i,onChange:l,onSelect:a}})=>{var at;let x=g==="multiple"||g==="extended",S=(at=t.stringToCollectionItem(C!=null?C:o))!=null?at:null,{data:b,itemToCollectionItem:w,setFilterPattern:k,stringToCollectionItem:D}=t,T=(0,He.useRef)(null),M=(0,He.useRef)(null),E=(0,He.useRef)(!0),R=(0,He.useRef)(S),[A,O]=(0,Ph.useControlled)({controlled:f,default:n!=null?n:!1,name:"useDropdownList"}),[L,P]=(0,Ph.useControlled)({controlled:void 0,default:o!=null?o:"",name:"ComboBox",state:"value"}),I=(0,He.useCallback)(N=>Array.isArray(N)?N.map(K=>K.value):N&&N.value,[]),[B,H]=(0,He.useState)(!0),[z,V]=(0,He.useState)(!1),Q=(0,He.useCallback)((N=R.current)=>{var K,ue;if(Array.isArray(N))console.log("TODO multi selection");else if(N==null)(K=T.current)==null||K.call(T,-1);else{let Oe=b.indexOf(N);(ue=T.current)==null||ue.call(T,Oe)}},[b]),q=(0,He.useCallback)(N=>{P(N),k(N===""?void 0:N)},[k,P]),Y=(0,He.useCallback)((N=R.current)=>{var ue;let K="";Array.isArray(N)?console.log("TODO multi selection"):N!=null&&N.value!==null&&(K=h(N.value)),q(K),K===""?(ue=T.current)==null||ue.call(T,-1):Q(N)},[Q,h,q]),_=(0,He.useCallback)((N,K)=>{x||O(!1),R.current=K,Y(K),m==null||m(N,I(K!=null?K:null))},[I,x,m,Y,O]),J=(0,He.useCallback)((N,K)=>{if(!x){let ue=w(K);_(N,ue)}},[_,x,w]),he=(0,He.useCallback)(N=>{if(!r&&N.key==="Enter"&&z){let[K]=b;_(N,K)}},[r,_,b,z]),le=(0,He.useCallback)(N=>{N.key==="Escape"?r?q(""):Y():N.key==="Tab"&&(r||Y()),he(N)},[r,he,Y,q]),Fe=(0,He.useCallback)(()=>{H(!1)},[]),{focusVisible:Ce,setHighlightedIndex:Le,highlightedIndex:De,listControlProps:Pe,listHandlers:Je,selected:ne,setSelected:me}=Zr({collectionHook:t,containerRef:d,defaultHighlightedIndex:u,disableAriaActiveDescendant:B,disableHighlightOnFocus:!0,disableTypeToSelect:!0,label:"useComboBox",onKeyboardNavigation:Fe,onKeyDown:le,onSelectionChange:J,selected:R.current,selectionKeys:HM,selectionStrategy:g,tabToSelect:!x});T.current=Le,M.current=me;let Ie=(0,He.useCallback)(N=>{O(N),N||V(!1),p==null||p(N)},[p,O]),{onClick:ae}=Je,Me=(0,He.useCallback)(N=>{var K;(K=document.getElementById(`${c}-input`))==null||K.focus(),ae==null||ae(N)},[c,ae]),G=(0,He.useCallback)(N=>{let K=N.target.value;P(K),K&&K.trim().length?k(K):(k(void 0),R.current=null,m==null||m(N,null)),O(!0),V(K.length>0&&!r)},[r,m,k,O,P]),{onFocus:Z=i}=v,{onFocus:re}=Pe,fe=(0,He.useCallback)(N=>{H(!1),re==null||re(N),Z==null||Z(N)},[Z,re]),Ee=(0,He.useCallback)(N=>{let K=N.relatedTarget;return(K==null?void 0:K.id)===`${c}-list`},[c]),ze=(0,He.useCallback)(N=>{var ue;let K=L.trim();if(K){let Oe=D(K);Oe?Array.isArray(Oe)||Oe!==ne&&((ue=M.current)==null||ue.call(M,Oe),m==null||m(N,Oe.value)):y&&y(K)&&console.log("we have a new item")}},[m,ne,y,D,L]),{onBlur:we=s}=v,{onBlur:X}=Pe,te=(0,He.useCallback)(N=>{Ee(N)||(X==null||X(N),we==null||we(N),r?ze(N):Y(),H(!0),E.current=!0,O(!1))},[Ee,X,we,r,O,ze,Y]),{onSelect:oe}=v,de=(0,He.useCallback)(N=>{E.current?E.current=!1:H(!0),oe==null||oe(N)},[oe]);An(()=>{Xr(ne)?Q():Le(u),b.length===0&&O(!1)},[Q,b.length,u,ne,Le,O]);let _e={...v.inputProps,"aria-label":e};return{focusVisible:Ce,highlightedIndex:De,isOpen:A,onOpenChange:Ie,inputProps:{...v,id:`${c}-input`,inputProps:_e,onChange:G,onSelect:de,role:"combobox",value:L},listControlProps:{...Pe,onBlur:te,onFocus:fe},listHandlers:{...Je,onClick:Me},selected:ne}};var tx=W(require("classnames"));var rx=require("react/jsx-runtime"),NM="vuuChevronIcon",nx=r=>{let{direction:e,...t}=r;return(0,rx.jsx)("span",{...t,className:(0,tx.default)(NM,e)})};var Uo=require("react/jsx-runtime"),LG=(0,Zs.forwardRef)(function({InputProps:e,ListProps:t,ListItem:n,"aria-label":o,allowFreeText:s,children:i,defaultIsOpen:l,defaultValue:a,disabled:c,onBlur:u,onFocus:f,onChange:h,onSelect:d,getFilterRegex:p,id:m,initialHighlightedIndex:g=-1,isOpen:y,itemToString:C,onOpenChange:v,onSelectionChange:x,selectionStrategy:S,source:b,stringToItem:w,value:k,width:D=180,...T},M){let E=ft(m),R=(0,Zs.useRef)(null),A=Yr({id:E,source:b,children:i,options:{filterPattern:k!=null?k:a,getFilterRegex:p,itemToString:C}}),{focusVisible:O,highlightedIndex:L,inputProps:{endAdornment:P,...I},isOpen:B,listHandlers:H,listControlProps:z,onOpenChange:V,selected:Q}=ex({InputProps:e,allowFreeText:s,ariaLabel:o,collectionHook:A,defaultIsOpen:l,defaultValue:a,disabled:c,initialHighlightedIndex:g,listRef:R,onBlur:u,onFocus:f,onChange:h,onSelect:d,id:E,isOpen:y,itemToString:C,label:"ComboBox",onOpenChange:v,onSelectionChange:x,selectionStrategy:S,stringToItem:w,value:k}),q=(0,Zs.useCallback)(_=>Array.isArray(_)?_.map(J=>J.value):_&&_.value,[]);return(0,Uo.jsx)(cc,{collectionHook:A,children:(0,Uo.jsxs)(gc,{...T,fullWidth:!0,id:E,isOpen:B,onOpenChange:V,openOnFocus:!0,ref:M,width:D,children:[(0,Uo.jsx)(ox.Input,{...I,disabled:c,...z,endAdornment:P===null?null:(0,Uo.jsx)(nx,{direction:B?"up":"down",onClick:()=>{V(!B)}})}),(0,Uo.jsx)(No,{...t,ListItem:n,focusVisible:O,highlightedIndex:L,itemTextHighlightPattern:String(I.value)||void 0,id:`${E}-list`,listHandlers:H,onSelectionChange:x,ref:R,selected:q(Q),selectionStrategy:S})]})})});var sx=require("@vuu-ui/vuu-utils"),ix=r=>e=>BM(r,e);function BM(r,e){console.log(`apply rules to ${e}`);let t;for(let n of r){let o=(0,sx.getEditRuleValidator)(n.name);if(o){let s=o(n,e);switch(s){case!0:break;case!1:t===void 0&&(t=!1);break;default:t===void 0||t===!1?t=s:t+=`::${s}`}}else throw Error(`editable-utils applyRules, no validator registered for rule '${n.name}'`)}return console.log(t),t}var Fn=require("react"),lx=r=>{let e=new Event("vuu-commit");r.dispatchEvent(e)},ax=({clientSideEditValidationCheck:r,initialValue:e,onCommit:t})=>{let[n,o]=(0,Fn.useState)(),[s,i]=(0,Fn.useState)(e),l=(0,Fn.useRef)(e),a=(0,Fn.useRef)(!1),c=(0,Fn.useRef)(!1),u=(0,Fn.useCallback)(()=>{console.log("blur")},[]),f=(0,Fn.useCallback)(d=>{if(d.key==="Enter")if(d.stopPropagation(),a.current){c.current=!0;let p=r==null?void 0:r(s);p?o(p):(o(void 0),t(s)&&(a.current=!1,lx(d.target)))}else lx(d.target),c.current=!1;else d.key==="ArrowRight"||d.key==="ArrowLeft"||d.key==="ArrowUp"||d.key==="ArrowDown"?d.stopPropagation():d.key==="Escape"&&a.current&&(a.current=!1,o(void 0),i(l.current))},[r,t,s]),h=(0,Fn.useCallback)(d=>{let{value:p}=d.target;if(a.current=p!==l.current,i(p),console.log(`value changes to ${p} message ${n}`),c.current){let m=r==null?void 0:r(p);console.log({warningMessage:m}),m!==n&&m!==!1&&o(m)}},[r,n]);return{onBlur:u,onChange:h,onKeyDown:f,value:s,warningMessage:n}};var cx=W(require("classnames")),zn=require("react"),Ll=require("@salt-ds/core");var Hc=require("react/jsx-runtime"),Oc="vuuEditableLabel",Vs=(0,zn.forwardRef)(function({className:e,defaultEditing:t,defaultValue:n,editing:o,onChange:s,onEnterEditMode:i,onExitEditMode:l,value:a,...c},u){let f=(0,zn.useRef)(null),h=(0,zn.useRef)(!1),[d,p]=(0,Ll.useControlled)({controlled:a,default:n!=null?n:"",name:"EditableLabel",state:"value"}),[m,g]=(0,Ll.useControlled)({controlled:o,default:t!=null?t:!1,name:"EditableLabel",state:"editing"}),y=(0,zn.useCallback)(T=>{g(h.current=T)},[g]),C=(0,zn.useRef)(d);(0,zn.useLayoutEffect)(()=>{m&&f.current!==null&&(f.current.select(),f.current.focus())},[m,f]);let v=(0,zn.useCallback)(()=>{y(!0),i&&i()},[i,y]),x=({cancelEdit:T=!1,allowDeactivation:M=!1}={})=>{y(!1);let E=C.current;E!==d&&(T?p(E):C.current=d),l&&l(E,d,M,T)},S=T=>{let{value:M}=T.target;p(M),s&&s(M)},b=()=>{v()},w=()=>{h.current&&x({allowDeactivation:!0})},k=T=>{m&&T.key==="Enter"?(T.stopPropagation(),x()):T.key==="ArrowRight"||T.key==="ArrowLeft"?T.stopPropagation():T.key==="Escape"&&x({cancelEdit:!0})},D=(0,cx.default)(Oc,e,{[`${Oc}-editing`]:m});return(0,Hc.jsx)("div",{...c,className:D,onDoubleClick:b,"data-text":d,ref:u,children:m?(0,Hc.jsx)(Ll.Input,{inputProps:{className:`${Oc}-input`,spellCheck:!1},value:d,onBlur:w,onChange:S,onKeyDown:k,inputRef:f,style:{padding:0},textAlign:"left",variant:"secondary"}):(0,Hc.jsx)("span",{className:`${Oc}-label`,children:d})})});var fx=require("@salt-ds/core"),hx=W(require("classnames")),dx=require("react");var Ih=require("react/jsx-runtime"),ux="vuuExpandoInput",i8=(0,dx.forwardRef)(function({className:e,value:t,inputProps:n,...o},s){return(0,Ih.jsx)("div",{className:(0,hx.default)(ux,e),"data-text":t,children:(0,Ih.jsx)(fx.Input,{...o,inputProps:{...n,className:`${ux}-input`},ref:s,style:{padding:0},textAlign:"left",value:t,variant:"secondary"})})});var px=require("react/jsx-runtime");var mx=require("react/jsx-runtime");var ei=require("@salt-ds/core"),bx=W(require("classnames")),Bc=require("react");var gx=require("@vuu-ui/vuu-utils");var Nc=require("react/jsx-runtime"),FM="vuuSearchCell",zM=({column:r,columnMap:e,row:t})=>{let n=e[r.name],o=t[n];return(0,Nc.jsxs)("div",{className:FM,tabIndex:-1,children:[(0,Nc.jsx)("span",{"data-icon":"draggable"}),o]})};console.log("register SearchCell");(0,gx.registerComponent)("search-cell",zM,"cell-renderer",{serverDataType:"private"});var eo=require("react/jsx-runtime"),Ah="vuuInstrumentSearch",VM={columns:[{name:"bbg",hidden:!0},{name:"description",width:200,type:{name:"string",renderer:{name:"search-cell"}}}],rowSeparators:!0},$M=(0,eo.jsx)("span",{"data-icon":"search"}),KM=({TableProps:r,className:e,dataSource:t,searchColumn:n="description",...o})=>{let[s,i]=(0,Bc.useState)({searchText:"",filter:""}),l=(0,Bc.useCallback)(a=>{let{value:c}=a.target,u=`name starts "${c}"`;i({searchText:c,filter:u}),t.filter={filter:u,filterStruct:{op:"starts",column:n,value:c}}},[t,n]);return(0,eo.jsxs)("div",{...o,className:(0,bx.default)(Ah,e),children:[(0,eo.jsxs)(ei.FormField,{className:`${Ah}-inputField`,children:[(0,eo.jsx)(ei.FormFieldLabel,{}),(0,eo.jsx)(ei.Input,{endAdornment:$M,value:s.searchText,onChange:l})]}),(0,eo.jsx)(Fc,{rowHeight:25,config:VM,renderBufferSize:100,...r,className:`${Ah}-list`,dataSource:t,showColumnHeaders:!1})]})};et("InstrumentSearch",KM,"view");var ti=require("@vuu-ui/vuu-utils"),ni=require("react"),yx=W(require("classnames"));var zc=require("react/jsx-runtime"),WM="vuuPriceTicker",UM=r=>(0,ti.numericFormatter)({type:{name:"number",formatting:{decimals:r,zeroPad:!0}}}),_M=[void 0,void 0],GM=(0,ni.memo)(({className:r,decimals:e=2,price:t,showArrow:n,...o})=>{let s=(0,ni.useRef)(_M),[i,l]=s.current,a=(0,ni.useMemo)(()=>UM(e),[e]),c=(0,ti.isValidNumber)(i)?(0,ti.getMovingValueDirection)(t,l,i,e):"";return s.current=[t,c],(0,zc.jsxs)("div",{...o,className:(0,yx.default)(WM,r,c),children:[a(t),n?(0,zc.jsx)("span",{"data-icon":"price-arrow"}):null]})});GM.displayName="PriceTicker";var Ox=require("@salt-ds/core"),Hh=W(require("classnames")),oi=W(require("react"));var Ax=require("@vuu-ui/vuu-utils"),xt=require("react");var xx=r=>typeof r=="object"&&r!==null&&"tabIndex"in r&&typeof r.tabIndex=="number",vx=r=>({label:"Close",location:"tab",action:"close-tab",options:r}),Cx=r=>({label:"Rename",location:"tab",action:"rename-tab",options:r});var wx=require("@vuu-ui/vuu-utils"),Sx=(r,e)=>{if(r){let t=r.querySelector(`[data-index]:has(${e})`);return(0,wx.getElementDataIndex)(t)}return-1},Lh=r=>Sx(r,'[aria-selected="true"]'),Tx=r=>Sx(r,".vuuEditableLabel-editing");var ri=require("@vuu-ui/vuu-utils"),wr=require("react"),Ex=(r,e,t="horizontal")=>{let n=(0,wr.useRef)(!1),o=(0,wr.useCallback)(()=>{n.current=!0},[]),s=(0,wr.useCallback)(()=>{n.current=!1},[]),i=(0,wr.useCallback)(()=>{var a,c;(a=r.current)==null||a.style.setProperty("--tab-thumb-transition","none"),(c=r.current)==null||c.removeEventListener("transitionend",i)},[r]),l=(0,wr.useRef)(-1);return(0,wr.useMemo)(()=>{var u,f;let a=0,c=0;if(l.current!==-1){let h=(u=r.current)==null?void 0:u.querySelector(".vuuTab-selected"),d=(f=r.current)==null?void 0:f.querySelector(`[data-index="${e}"] .vuuTab`),{positionProp:p,sizeProp:m}=ri.MEASURES[t];if(h&&d&&!n.current){let{[p]:g,[m]:y}=h.getBoundingClientRect(),{[p]:C}=d.getBoundingClientRect();if((0,ri.isValidNumber)(g)&&(0,ri.isValidNumber)(C)&&(0,ri.isValidNumber)(y)){console.log({orientation:t,positionProp:p,oldPosition:g,newPosition:C}),a=g-C,c=y;let x=Math.abs(a/(t==="horizontal"?1100:700));requestAnimationFrame(()=>{var S,b,w,k;(S=r.current)==null||S.style.setProperty("--tab-thumb-offset","0px"),(b=r.current)==null||b.style.setProperty("--tab-thumb-size","100%"),(w=r.current)==null||w.style.setProperty("--tab-thumb-transition",`all ${x}s ease`),(k=r.current)==null||k.addEventListener("transitionend",i)})}}}return l.current=e,n.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,r,t,i,s,o])};var Dx=require("@salt-ds/core"),$c=require("@vuu-ui/vuu-utils"),ut=require("react"),At=require("@vuu-ui/vuu-utils");var Mx={horizontal:{[At.Home]:"start",[At.End]:"end",[At.ArrowLeft]:"bwd",[At.ArrowRight]:"fwd"},vertical:{[At.Home]:"start",[At.End]:"end",[At.ArrowUp]:"bwd",[At.ArrowDown]:"fwd"}},QM=(r,e="horizontal")=>Mx[e][r]!==void 0,jM=r=>r===At.ArrowDown;function kx(r,e,t){return e==="start"?0:e==="end"?r-1:e==="bwd"?t>0?t-1:t:t===null?0:t===r-1?t:t+1}var qM=r=>r!==null&&!r.classList.contains("wrapped"),Vc=(r,e)=>r?r.querySelector(`[data-index="${e}"]`):null,Rx=({containerRef:r,defaultHighlightedIdx:e=-1,highlightedIdx:t,keyBoardActivation:n,orientation:o,selectedIndex:s=0})=>{let i=n==="manual",l=(0,ut.useRef)(!1),a=(0,ut.useRef)(-1),[c,u]=(0,ut.useState)(!1),[,f]=(0,ut.useState)({}),[h,d]=(0,Dx.useControlled)({controlled:t,default:e,name:"UseKeyboardNavigation"}),p=(0,ut.useCallback)(E=>{d(a.current=E)},[d]),m=(0,ut.useRef)(!1),g=(0,ut.useCallback)((E,R=!1,A,O=70)=>{p(E),A===!0&&!m.current&&(m.current=!0);let L=()=>{let P=Vc(r.current,E);if(P){let I=(0,$c.getFocusableElement)(P);I==null||I.focus()}};R?L():setTimeout(L,O)},[r,p]),y=E=>{if(a.current===-1&&E.target.tabIndex!==-1){let R=Tx(r.current);R!==-1?requestAnimationFrame(()=>{p(R)}):setTimeout(()=>{a.current===-1&&s!==null&&p(s)},200)}},C=(0,ut.useCallback)(()=>{var E,R;return(R=(E=r.current)==null?void 0:E.querySelectorAll("[data-index]").length)!=null?R:0},[r]),v=(0,ut.useCallback)((E="fwd",R)=>{let A=C(),L=kx(A,E,typeof R=="number"?R:A),P=E==="start"?"fwd":E==="end"?"bwd":E;for(;(P==="fwd"&&L<A||P==="bwd"&&L>0)&&!qM(Vc(r.current,L));){let I=kx(A,P,L);if(I===L)break;L=I}return L},[r,C]),x=(0,ut.useCallback)((E,R=!1)=>{let A=Mx[o][E.key],O=v(A,h);O!==h?i&&g(O,!0):R&&f({})},[h,i,v,g,o]),S=(0,ut.useCallback)(()=>{let E=Vc(r.current,h);return E?E.querySelector(".vuuPopupMenu")!=null:!1},[r,h]),b=(0,ut.useCallback)(()=>{let E=Vc(r.current,h),R=E==null?void 0:E.querySelector(".vuuPopupMenu");return R&&(0,$c.dispatchMouseEvent)(R,"click"),!1},[r,h]),w=(0,ut.useCallback)(E=>{C()>0&&QM(E.key,o)?(E.preventDefault(),m.current?x(E):(m.current=!0,x(E,!0))):jM(E.key)&&S()&&b()},[b,C,S,x,o]),k=(E,R)=>{p(R)},D=(0,ut.useCallback)(()=>{c||(u(!0),l.current?l.current=!1:m.current=!0)},[c]),T=(0,ut.useCallback)(()=>{c||(l.current=!0),m.current=!1},[c]);return{containerProps:{onBlur:E=>{let R=E.target.closest(".vuuTabstrip"),A=E.relatedTarget;R&&!(R!=null&&R.contains(A))&&(p(-1),u(!1))},onMouseDownCapture:T,onFocus:D,onMouseLeave:()=>{m.current=!0,p(-1),l.current=!1}},focusVisible:m.current?h:-1,focusIsWithinComponent:c,highlightedIdx:h,focusTab:g,onClick:k,onFocus:y,onKeyDown:w,setHighlightedIdx:p}};var Px=require("@salt-ds/core"),Ol=require("react"),XM=["Enter"," "],YM=r=>r&&r.matches('[class*="vuuTab "]'),Ix=({defaultSelected:r,highlightedIdx:e,onSelectionChange:t,selected:n})=>{let[o,s,i]=(0,Px.useControlled)({controlled:n,default:r!=null?r:0,name:"Tabstrip",state:"value"}),l=(0,Ol.useCallback)(f=>XM.includes(f.key),[]),a=(0,Ol.useCallback)(f=>{s(f),t==null||t(f)},[t,s]),c=(0,Ol.useCallback)(f=>{let h=f.target;l(f)&&e!==o&&YM(h)&&(f.stopPropagation(),f.preventDefault(),a(e))},[l,e,o,a]),u=(0,Ol.useCallback)((f,h)=>{h!==o&&a(h)},[a,o]);return{activateTab:a,isControlled:i,onClick:u,onKeyDown:c,selected:o}};var JM=new Set(["Enter"," "]),ZM=r=>JM.has(r),eR=(r,e)=>r?r.querySelector(`[data-index="${e}"]`):null,Lx=({activeTabIndex:r,allowDragDrop:e,animateSelectionThumb:t,containerRef:n,onActiveChange:o,onAddTab:s,onCloseTab:i,onExitEditMode:l,onMoveTab:a,orientation:c,keyBoardActivation:u})=>{let f=(0,xt.useRef)(r),{focusTab:h,highlightedIdx:d,onClick:p,onKeyDown:m,setHighlightedIdx:g,...y}=Rx({containerRef:n,keyBoardActivation:u,orientation:c,selectedIndex:f.current}),{activateTab:C,onClick:v,onKeyDown:x,selected:S}=Ix({highlightedIdx:d,onSelectionChange:o,selected:r});f.current=S;let{containerStyle:b,resumeAnimation:w,suspendAnimation:k}=Ex(n,t?S:-1,c),D=(0,xt.useCallback)((_,J)=>{let{current:he}=f;console.log(`useTabstrip handleDrop ${_} - ${J} ${he}`),a==null||a(_,J);let le=-1;J!==-1&&(he===_?le=J:_>he&&J<=he?le=he+1:_<he&&J>=he&&(le=he-1),le!==-1&&(k(),C(le),requestAnimationFrame(w)),h(J,!1,!1,350))},[h,a,w,C,k]),{onMouseDown:T,...M}=Yn({allowDragDrop:e,containerRef:n,draggableClassName:`tabstrip-${c}`,onDrop:D,orientation:"horizontal",itemQuery:".vuuOverflowContainer-item"}),E=(0,xt.useCallback)((_,J,he,le)=>{console.log(`handleExitEditMode ${_} ${J} ${he} ${le}`),l==null||l(_,J,he,le),he||h(le,!1,!0)},[h,l]),R=(0,xt.useCallback)((_,J)=>{p(_,J),v(_,J)},[p,v]),A=(0,xt.useCallback)((_=d)=>{let J=eR(n.current,_);if(J)return J.querySelector(".vuuEditableLabel")},[n,d]),O=(0,xt.useCallback)((_=d)=>{let J=A(_);return J?J.classList.contains("vuuEditableLabel-editing"):!1},[A,d]),L=(0,xt.useCallback)((_=d)=>{let J=A(_);J&&(0,Ax.dispatchMouseEvent)(J,"dblclick")},[A,d]),P=(0,xt.useCallback)(_=>{m(_),_.defaultPrevented||x(_),!_.defaultPrevented&&ZM(_.key)&&L()},[L,m,x]),I=(0,xt.useCallback)(_=>{let J=Lh(n.current),he=J>_?J-1:J===_?0:J;return k(),i==null||i(_,he),setTimeout(()=>{w()},200),!0},[n,i,w,k]),B=(0,xt.useCallback)(_=>(L(_),!0),[L]),H=(0,xt.useCallback)(_=>{if(xx(_.options))switch(_.menuId){case"close-tab":return I(_.options.tabIndex);case"rename-tab":return B(_.options.tabIndex);default:console.log(`tab menu action ${_.menuId}`)}return!1},[I,B]),z=(0,xt.useCallback)(()=>{O()?g(d):h(d)},[d,h,g,O]),V=(0,xt.useCallback)(_=>{let J=parseInt(_.index);isNaN(J)||C(J)},[C]),Q={onFocus:y.onFocus,onKeyDown:P},q=(0,xt.useCallback)(()=>{s==null||s(),requestAnimationFrame(()=>{let _=Lh(n.current);_!==-1&&h(_)})},[n,h,s]),Y={onClick:R,onKeyDown:P,onExitEditMode:E,onMenuAction:H,onMenuClose:z,onMouseDown:T};return{activeTabIndex:S,containerStyle:b,focusVisible:y.focusVisible,containerProps:{...y.containerProps,onSwitchWrappedItemIntoView:V},navigationProps:Q,onClickAddTab:q,tabProps:Y,...M}};var si=require("react/jsx-runtime"),Hx=require("react"),Oh="vuuTabstrip",yb=({activeTabIndex:r,allowAddTab:e,allowCloseTab:t,allowDragDrop:n=!1,allowRenameTab:o=!1,animateSelectionThumb:s=!1,children:i,className:l,id:a,keyBoardActivation:c="manual",location:u,onActiveChange:f,onAddTab:h,onCloseTab:d,onExitEditMode:p,onMoveTab:m,orientation:g="horizontal",showTabMenuButton:y,style:C,...v})=>{let x=(0,oi.useRef)(null),{activeTabIndex:S,focusVisible:b,containerStyle:w,draggedItemIndex:k,onClickAddTab:D,tabProps:T,...M}=Lx({activeTabIndex:r,allowDragDrop:n,animateSelectionThumb:s,containerRef:x,keyBoardActivation:c,onActiveChange:f,onAddTab:h,onCloseTab:d,onExitEditMode:p,onMoveTab:m,orientation:g}),E=ft(a),R=(0,Hh.default)(Oh,`${Oh}-${g}`,l),A=C||w?{...C,...w}:void 0,O=(0,oi.useMemo)(()=>ko(i).map((L,P)=>{let{id:I=`${E}-tab-${P}`,closeable:B=t,editable:H=o,location:z,showMenuButton:V=y}=L.props,Q=P===S;return oi.default.cloneElement(L,{...T,...M.navigationProps,closeable:B,"data-overflow-priority":Q?"1":void 0,dragging:k===P,editable:H,focusVisible:b===P,id:I,index:P,key:P,location:(0,Hh.default)(u,z),selected:Q,showMenuButton:V,tabIndex:Q?0:-1})}).concat(e?(0,Hx.createElement)(Ox.Button,{...M.navigationProps,"aria-label":"Create Tab",className:`${Oh}-addTabButton`,"data-icon":"add","data-overflow-priority":"1",key:"addButton",onClick:D,variant:"secondary",tabIndex:-1}):[]),[S,e,t,o,i,b,E,u,D,y,T,k,M.navigationProps]);return(0,si.jsxs)(si.Fragment,{children:[(0,si.jsx)(Cl,{...v,...M.containerProps,className:R,height:28,id:E,orientation:g,overflowIcon:"more-horiz",ref:x,style:A,children:O}),M.draggable]})};var Kx=require("@salt-ds/core"),Wx=W(require("classnames")),Qo=require("react");var Nx=require("@vuu-ui/vuu-popups"),Bx=require("react"),Fx=W(require("classnames"));var Vx=require("react/jsx-runtime"),tR="vuuTabMenu",zx=({allowClose:r,allowRename:e,controlledComponentId:t,location:n,onMenuAction:o,onMenuClose:s,index:i})=>{let[l,a]=(0,Bx.useMemo)(()=>[(c,u)=>{let f=[];return e&&f.push(Cx(u)),r&&f.push(vx(u)),f},{controlledComponentId:t,tabIndex:i}],[r,e,t,i]);return(0,Vx.jsx)(Nx.PopupMenu,{className:tR,menuBuilder:l,menuActionHandler:o,menuLocation:(0,Fx.default)("tab",n),menuOptions:a,onMenuClose:s,tabIndex:-1})};var Go=require("react/jsx-runtime"),_o="vuuTab",$x=()=>{},xb=(0,Qo.forwardRef)(function({ariaControls:e,children:t,className:n,closeable:o=!1,dragging:s,editable:i=!1,editing:l,focusVisible:a,index:c=-1,label:u,location:f,onClick:h,onClose:d,onEnterEditMode:p=$x,onExitEditMode:m=$x,onFocus:g,onKeyUp:y,onMenuAction:C,onMenuClose:v,orientation:x,selected:S,showMenuButton:b=o||i||!!f,tabIndex:w,...k},D){if(b&&typeof C!="function")throw Error("Tab onMenuAction must be provided if showMenuButton is set");let T=(0,Qo.useRef)(null),M=(0,Qo.useRef)(null),E=(0,Kx.useForkRef)(D,T),R=(0,Qo.useCallback)(I=>{l||(I.preventDefault(),h==null||h(I,c))},[l,c,h]),A=(I="",B="",H=!0)=>m(I,B,H,c),O=I=>{switch(I.key){case"Backspace":case"Delete":o&&(I.stopPropagation(),d&&d(c));break;default:y&&y(I,c)}},L=()=>i?(0,Go.jsx)(Vs,{editing:l,defaultValue:u,onEnterEditMode:p,onExitEditMode:A,ref:M},u):u,P=I=>{if(M.current){let H=M.current.querySelector(".vuuEditableLabel-input");H==null||H.focus()}g==null||g(I)};return(0,Go.jsxs)("div",{...k,"aria-controls":e,"aria-selected":S,className:(0,Wx.default)(_o,{[`${_o}-closeable`]:o,"vuuDraggable-dragAway":s,[`${_o}-editing`]:l,[`${_o}-selected`]:S||void 0,[`${_o}-vertical`]:x==="vertical",vuuFocusVisible:a}),onClick:R,onFocus:P,onKeyUp:O,ref:E,role:"tab",tabIndex:w,children:[(0,Go.jsx)("div",{className:`${_o}-main`,children:(0,Go.jsx)("span",{className:`${_o}-text`,"data-text":i?void 0:u,children:t!=null?t:L()})}),b?(0,Go.jsx)(zx,{allowClose:o,allowRename:i,controlledComponentId:e,location:f,onMenuAction:C,onMenuClose:v,index:c}):null]})});var Qc=require("@salt-ds/core"),Gc=W(require("classnames")),jc=require("react");function nR(r){var e;if(r){let t=r.dataset.idx;if(t)return parseInt(t,10);if(t=(e=r.ariaPosInSet)!=null?e:"-1")return parseInt(t,10)-1}}var Nh=r=>r.closest("[data-idx],[aria-posinset]");var Ux=r=>nR(Nh(r));var ii=require("react"),rR=new Set(["/","-","."]),oR=r=>rR.has(r),_x=(r,e)=>e.startsWith(r)&&oR(e[r.length]),Gx=(r,e="root",{collapsibleHeaders:t=void 0,defaultExpanded:n=!1,revealSelected:o=!1}={})=>{let s=(h,d,p)=>{if(h.childNodes)return h.childNodes.length;if(h.header){let m=p+1,g=0;for(;m<d.length&&!d[m].header;)g++,m++;return g}else return 0},i=(0,ii.useCallback)(h=>Array.isArray(o)?o.some(d=>_x(h,d)):n,[n,o]),l=(0,ii.useCallback)((h,d,p=1,m="",g=[],y=[])=>{let C=0;return h.forEach((v,x,S)=>{var A;let b=v.header&&t,w=v.childNodes&&t===!1,k=!v.childNodes||v.childNodes.length===0,D=w||k&&!b,T=m?`${m}.${x}`:`${x}`,M=(A=v.id)!=null?A:`${e}-${T}`,E=D?void 0:i(M),R={...v,childNodes:void 0,id:M,count:!w&&E===void 0?0:s(v,S,x),expanded:E,index:d.index,level:p};if(g.push(R),y.push(h[x]),C+=1,d.index+=1,v.childNodes){let[O,L]=l(v.childNodes,d,p+1,T,[],y);R.childNodes=L,(E===!0||w)&&(C+=O)}}),[C,g,y]},[t,e,i]),[a,c,u]=(0,ii.useMemo)(()=>l(r,{index:0}),[l,r]),f=(0,ii.useCallback)((h,d=c)=>{let p=d.find(m=>{var g;return m.id===h||((g=m==null?void 0:m.childNodes)==null?void 0:g.length)&&_x(m.id,h)});if((p==null?void 0:p.id)===h)return u[p.index];if(p)return f(h,p.childNodes)},[u,c]);return[a,c,f]};var to=require("react"),qx=require("@salt-ds/core"),Qx="single",sR="checkbox",iR="multi",lR="extended",aR=["Enter"," "],jx={},cR=r=>r.expanded!==void 0,Xx=r=>r&&r!=="none",Yx=({defaultSelected:r,highlightedIdx:e,treeNodes:t,onChange:n,selected:o,selection:s=Qx,selectionKeys:i=aR})=>{let l=s===Qx,a=s===iR||s.startsWith(sR),c=s===lR,u=(0,to.useRef)(-1),f=(0,to.useCallback)(x=>i.includes(x.key),[i]),[h,d]=(0,qx.useControlled)({controlled:o,default:r!=null?r:[],name:"selected"}),p=(0,to.useCallback)((x,S,b,w,k=!1)=>{let{current:D}=u,T=h==null?void 0:h.includes(b),E=l||c&&!k&&(!w||D===-1),R=a||c&&k&&!w,A=[];if(E&&T)A=[];else if(E)A=[b];else if(R&&T)A=h.filter(O=>O!==b);else if(R)A=h.concat(b);else if(c){let[O,L]=S>D?[D,S]:[S,D];A=h.slice();for(let P=O;P<=L;P++){let{id:I}=t[P];h.includes(I)||A.push(I)}}d(A),n&&n(x,A)},[c,t,a,n,h,d,l]),m=(0,to.useCallback)(x=>{if(~e&&f(x)){x.preventDefault();let S=t[e];p(x,e,S.id,!1,x.ctrlKey||x.metaKey),c&&(u.current=e)}},[c,e,t,f,p]),g=(0,to.useCallback)((x,S)=>{if(c&&x.shiftKey){let b=t[S];p(x,S,b.id,!0)}},[c,t,p]),y=s==="none"?jx:{onKeyDown:m,onKeyboardNavigation:g},C=(0,to.useCallback)(x=>{if(e!==-1){let S=t[e];cR(S)||(x.preventDefault(),x.stopPropagation(),p(x,e,S.id,x.shiftKey,x.ctrlKey||x.metaKey),c&&(u.current=e))}},[c,e,t,p]);return{listHandlers:y,listItemHandlers:s==="none"?jx:{onClick:C},selected:h,setSelected:d}};var Kt=require("react");var uR=["height","scrollHeight"],Jx=(r,e,t=!1)=>{let n=(0,Kt.useRef)(0),o=(0,Kt.useRef)(!1),s=(0,Kt.useRef)(0),i=(0,Kt.useRef)(0),l=(0,Kt.useCallback)(u=>{let f=u.ariaExpanded?u.firstChild:u,h=t?30:0,d=f.offsetTop,p=f.offsetHeight,m=n.current+h,g=m+s.current-h;(d+p>g||d<m)&&(n.current=d+p>g?n.current+(d+p)-g:d-h,o.current=!0,r.current&&(r.current.scrollTop=n.current),setTimeout(()=>{o.current=!1}))},[r,t]),a=(0,Kt.useCallback)(u=>{n.current=u.target.scrollTop},[]);(0,Kt.useEffect)(()=>{let{current:u}=r;return u&&u.addEventListener("scroll",a),()=>{u&&u.removeEventListener("scroll",a)}},[r,a]),(0,Kt.useLayoutEffect)(()=>{if(e!==-1&&i.current>s.current&&r.current){let u=r.current.querySelector(`
20
- [data-idx='${e}'],
21
- [aria-posinset='${e+1}']
22
- `);u===null?console.log("[useViewportTracking], is this virtualised ? we're going to have to know rowHeight"):l(u)}},[e,r,l]),(0,Kt.useEffect)(()=>{},[t]);let c=(0,Kt.useCallback)(({height:u,scrollHeight:f})=>{s.current=u,i.current=f},[]);return xr(r,uR,c,!0),o};var Hl=require("react");var mn=require("react");var Zx=({id:r})=>{let e=r.lastIndexOf("-");if(e!==-1){let n=r.slice(e+1).split(".");return n.length===1?null:(n.pop(),`${r.slice(0,e)}-${n.join(".")}`)}else if((e=r.lastIndexOf("/"))!==-1)return r.slice(0,e)},ev=r=>r.childNodes!==void 0;var Bh=r=>r.header===!0,fR=new Set([".","/"]),tv=(r,e)=>e.startsWith(r.id)?fR.has(e.charAt(r.id.length)):!1,jo=(r,e)=>{for(let t of r){if(t.id===e)return t;if(tv(t,e))return jo(t.childNodes,e)}},Kc=(r,e)=>{let t=typeof e=="string"?e:e.id;for(let n=0;n<r.length;n++)if(r[n].id===t)return n},Wc=(r,e,t)=>{let n;return r.map(s=>s.id===e?{...s,...t}:tv(s,e)?(n=Wc(s.childNodes,e,t),{...s,childNodes:n}):s)};var av=require("@salt-ds/core");function hR(r,...e){let t=new Set(r);for(let n of e)for(let o of n)t.add(o);return t}var Fh="ArrowUp",nv="ArrowDown",li="ArrowLeft";var rv="ArrowRight",Uc="Enter";var dR="Delete",pR=new Set([Uc,dR]),mR=new Set(["Tab"]),gR=new Set(["ArrowRight","ArrowLeft"]),ov=new Set(["Home","End","ArrowDown","ArrowUp"]),sv=new Set(["Home","End","ArrowRight","ArrowLeft"]),bR=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),a9=hR(pR,sv,ov,gR,bR,mR);var iv=({key:r},e="vertical")=>(e==="vertical"?ov:sv).has(r);function lv(r,e,t){return e===Fh||e===li?t>0?t-1:t:t===null?0:t===r-1?t:t+1}var yR=r=>!r.header&&!r.childNodes,xR=r=>yR(r)||r.expanded!==void 0,cv=({defaultHighlightedIdx:r=-1,highlightedIdx:e,treeNodes:t,onHighlight:n,onKeyboardNavigation:o,selected:s=[]})=>{let{bwd:i,fwd:l}=(0,mn.useMemo)(()=>({bwd:Fh,fwd:nv}),[]),[a,c,u]=(0,av.useControlled)({controlled:e,default:r,name:"highlightedIdx"}),f=(0,mn.useCallback)(x=>{n==null||n(x),c(x)},[n,c]),h=(0,mn.useCallback)((x=l,S=x===l?-1:t.length)=>{let b=lv(t.length,x,S);for(;b!==-1&&(x===l&&b<t.length||x===i&&b>0)&&!xR(t[b]);)b=lv(t.length,x,b);return b},[i,l,t]),d=(0,mn.useRef)(!0),p=(0,mn.useRef)(!1),m=x=>p.current=x,g=(0,mn.useCallback)(()=>{if(p.current)p.current=!1;else if(s.length>0){let x=jo(t,s[0]);if(x){let S=Kc(t,x);f(S)}}else f(h())},[t,h,s,f]),y=(0,mn.useCallback)(x=>{let S=h(x.key,a);S!==a&&(f(S),o==null||o(x,S))},[a,h,o,f]),C=(0,mn.useCallback)(x=>{t.length>0&&iv(x,"vertical")&&(x.preventDefault(),x.stopPropagation(),d.current=!0,y(x))},[t,y]),v=(0,mn.useMemo)(()=>({onBlur:()=>{f(-1)},onFocus:g,onKeyDown:C,onMouseDownCapture:()=>{d.current=!1,m(!0)},onMouseMove:()=>{d.current&&(d.current=!1)},onMouseLeave:()=>{d.current=!0,m(!1),f(-1)}}),[g,C,f]);return{focusVisible:d.current?a:-1,controlledHighlighting:u,highlightedIdx:a,hiliteItemAtIndex:f,keyBoardNavigation:d,listProps:v,setIgnoreFocus:m}};var ai=require("react");var _c=(r,e=[],t={value:0})=>{let n=!1;for(let o of r)n&&!Bh(o)||(e[t.value]=o,t.value+=1,n=!1,Bh(o)&&o.expanded===!1?n=!0:ev(o)&&zh(o)&&_c(o.childNodes,e,t));return e},uv=r=>{let e=(0,ai.useRef)(r),t=(0,ai.useRef)(r),n=(0,ai.useRef)(_c(r)),[,o]=(0,ai.useState)({});r!==e.current&&(e.current=r,t.current=r,n.current=_c(r));let s=i=>{t.current=i,n.current=_c(i),o({})};return{data:t.current,indexPositions:n.current,setData:s}};var Sr=require("react");var vR={},CR=r=>r&&r.hasAttribute("aria-expanded"),fv=({collapsibleHeaders:r,highlightedIdx:e,treeNodes:t,setVisibleData:n,source:o})=>{let s=(0,Sr.useRef)(o),i=(0,Sr.useRef)(s.current),l=(0,Sr.useCallback)(p=>{n(i.current=p)},[n]),a=(0,Sr.useCallback)((p,{id:m})=>Wc(p,m,{expanded:!0}),[]),c=(0,Sr.useCallback)((p,{id:m})=>Wc(p,m,{expanded:!1}),[]),u=(0,Sr.useCallback)(p=>{if(p.key===rv||p.key===Uc){let m=t[e];m&&m.expanded===!1&&(p.preventDefault(),l(a(i.current,m)))}if(p.key===li||p.key===Uc){let m=t[e];m&&m.expanded&&(p.preventDefault(),l(c(i.current,m)))}},[c,a,e,t,l]),f=r?{onKeyDown:u}:vR,d={onClick:(0,Sr.useCallback)(p=>{let m=Nh(p.target);if(CR(m)){p.stopPropagation(),p.preventDefault();let g=jo(o,m.id);(g==null?void 0:g.expanded)===!1?l(a(o,g)):(g==null?void 0:g.expanded)===!0&&l(c(o,g))}},[c,a,l,o])};return{listHandlers:f,listItemHandlers:d}};var hv=require("react");var dv=({highlightedIdx:r,hiliteItemAtIndex:e,indexPositions:t,source:n})=>({listHandlers:{onKeyDown:(0,hv.useCallback)(i=>{if(i.key===li){let l=t[r],a=Zx(l);if(a){i.preventDefault();let c=jo(n,a);if(c){let u=Kc(t,c);u!==void 0&&e(u)}}}},[r,e,t,n])}});var wR=[],pv=({defaultSelected:r,sourceWithIds:e,onChange:t,onHighlight:n,selected:o,selection:s})=>{let i=(0,Hl.useRef)(wR),l=uv(e),a=(v,x)=>{var S,b;(b=(S=h.listHandlers).onKeyboardNavigation)==null||b.call(S,v,x)},{highlightedIdx:c,...u}=cv({treeNodes:l.indexPositions,onHighlight:n,onKeyboardNavigation:a,selected:i.current}),f=fv({collapsibleHeaders:!0,highlightedIdx:c,treeNodes:l.indexPositions,setVisibleData:l.setData,source:l.data}),h=Yx({defaultSelected:r,highlightedIdx:c,treeNodes:l.indexPositions,onChange:t,selected:o,selection:s}),d=dv({source:l.data,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,indexPositions:l.indexPositions}),p=(0,Hl.useCallback)(v=>{var x,S,b;(x=f.listItemHandlers)==null||x.onClick(v),v.defaultPrevented||(b=(S=h.listItemHandlers)==null?void 0:S.onClick)==null||b.call(S,v)},[f,h]),m=(0,Hl.useCallback)(v=>{var x,S,b,w,k,D,T,M;(S=(x=u.listProps).onKeyDown)==null||S.call(x,v),v.defaultPrevented||(w=(b=h.listHandlers).onKeyDown)==null||w.call(b,v),v.defaultPrevented||(D=(k=f.listHandlers).onKeyDown)==null||D.call(k,v),v.defaultPrevented||(M=(T=d.listHandlers).onKeyDown)==null||M.call(T,v)},[f.listHandlers,u.listProps,h.listHandlers,d.listHandlers]),g=()=>{var v;return c===void 0||c===-1||(v=l.indexPositions[c])==null?void 0:v.id};i.current=h.selected;let y={"aria-activedescendant":g(),onBlur:u.listProps.onBlur,onFocus:u.listProps.onFocus,onKeyDown:m,onMouseDownCapture:u.listProps.onMouseDownCapture,onMouseLeave:u.listProps.onMouseLeave,onMouseMove:u.listProps.onMouseMove},C={onClick:p};return{focusVisible:u.focusVisible,highlightedIdx:c,hiliteItemAtIndex:u.hiliteItemAtIndex,listProps:y,listItemHandlers:C,selected:h.selected,visibleData:l.data}};var en=require("react/jsx-runtime"),gv=require("react"),no="vuuTree",zh=r=>r.expanded===!0,mv=({children:r,idx:e,...t})=>(0,en.jsx)("li",{...t,children:r}),SR=(0,jc.forwardRef)(function({allowDragDrop:e,className:t,defaultSelected:n,groupSelection:o="none",id:s,onHighlight:i,onSelectionChange:l,revealSelected:a,selected:c,selection:u="single",source:f,...h},d){var L;let p=(0,Qc.useIdMemo)(s),m=(0,jc.useRef)(null),[,g,y]=Gx(f,p,{revealSelected:a?(L=c!=null?c:n)!=null?L:!1:void 0}),C=(P,I)=>{if(l){let B=I.map(H=>y(H)).filter(H=>H!==void 0);l(B)}},{focusVisible:v,highlightedIdx:x,hiliteItemAtIndex:S,listProps:b,listItemHandlers:w,selected:k,visibleData:D}=pv({defaultSelected:n,groupSelection:o,onChange:C,onHighlight:i,selected:c,selection:u,sourceWithIds:g});Jx(m,x);let M={...{onMouseEnter:P=>{let I=P.target,B=Ux(I);S(B)}},...w,role:"treeitem"},E=Xx(o);function R(P,I,B){P.push((0,en.jsxs)(mv,{...M,...TR(I,B,x,k,v),children:[I.icon?(0,en.jsx)("span",{className:`${no}Node-icon`,"data-icon":I.icon}):null,(0,en.jsx)("span",{children:I.label})]})),B.value+=1}function A(P,I,B,H,z){let{value:V}=B;B.value+=1,P.push((0,gv.createElement)(mv,{...w,"aria-expanded":I.expanded,"aria-level":I.level,"aria-selected":k.includes(H)||void 0,className:(0,Gc.default)(`${no}Node`,{focusVisible:v===V,[`${no}Node-toggle`]:!E}),"data-idx":V,"data-highlighted":V===x||void 0,"data-selectable":!0,id:H,key:`header-${V}`},E?(0,en.jsxs)("div",{className:`${no}Node-label`,children:[(0,en.jsx)("span",{className:`${no}Node-toggle`}),z]}):(0,en.jsxs)("div",{className:`${no}Node-label`,children:[I.icon?(0,en.jsx)("span",{className:`${no}Node-icon`,"data-icon":I.icon}):null,(0,en.jsx)("span",{children:z})]}),(0,en.jsx)("ul",{role:"group",children:zh(I)?O(I.childNodes,B):""})))}function O(P,I={value:0}){if((P==null?void 0:P.length)>0){let B=[];for(let H of P)H.childNodes?A(B,H,I,H.id,H.label):R(B,H,I);return B}}return(0,en.jsx)("ul",{...h,...b,className:(0,Gc.default)(no,t),id:`Tree-${p}`,ref:(0,Qc.useForkRef)(m,d),role:"tree",tabIndex:0,children:O(D)})}),TR=(r,e,t,n,o,s)=>({id:r.id,key:r.id,"aria-level":r.level,"aria-selected":n.includes(r.id)||void 0,"data-idx":e.value,"data-highlighted":e.value===t||void 0,className:(0,Gc.default)("vuuTreeNode",s,{focusVisible:o===e.value})});SR.displayName="Tree";var ER=require("@salt-ds/core"),kR=W(require("classnames")),DR=require("react"),MR=require("react/jsx-runtime");var yv=W(require("classnames")),Tr=require("react");var Nl=require("react/jsx-runtime"),{KEY:bv}=qc.metadataKeys,Vh=(0,Tr.memo)(({className:r,column:e,columnMap:t,onClick:n,row:o})=>{let s=(0,Tr.useRef)(null),{align:i,CellRenderer:l,key:a,pin:c,editable:u,resizing:f,valueFormatter:h}=e,[d,p]=(0,Tr.useState)(!1),m=h(o[a]),[g,y]=(0,Tr.useState)(m),C=()=>{var D;(D=s.current)==null||D.focus()},v=D=>{D.key==="Enter"&&p(!0)},x=(0,Tr.useCallback)(D=>{n==null||n(D,e)},[e,n]),S=()=>{p(!0)},b=(D="",T="",M=!0,E=!1)=>{var R;p(!1),E?y(D):T!==D&&y(T),M===!1&&((R=s.current)==null||R.focus())},w=(0,yv.default)(r,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":f})||void 0,k=(0,qc.getColumnStyle)(e);return u?(0,Nl.jsx)("div",{className:w,"data-editable":!0,role:"cell",style:k,onKeyDown:v,children:(0,Nl.jsx)(Vs,{editing:d,value:g,onChange:y,onMouseDownCapture:C,onEnterEditMode:S,onExitEditMode:b,onKeyDown:v,ref:s,tabIndex:0},"title")}):(0,Nl.jsx)("div",{className:w,role:"cell",style:k,onClick:x,children:l?(0,Nl.jsx)(l,{column:e,columnMap:t,row:o}):m})},RR);Vh.displayName="TableCell";function RR(r,e){return r.column===e.column&&r.onClick===e.onClick&&r.row[bv]===e.row[bv]&&r.row[r.column.key]===e.row[e.column.key]}var ui=require("@vuu-ui/vuu-utils"),xv=require("react");var ci=require("react/jsx-runtime"),{IS_LEAF:PR}=ui.metadataKeys,vv=({column:r,onClick:e,row:t})=>{let{columns:n}=r,[o,s]=(0,ui.getGroupValueAndOffset)(n,t),i=(0,xv.useCallback)(u=>{e==null||e(u,r)},[r,e]),l=(0,ui.getColumnStyle)(r),a=t[PR],c=Array(s).fill(0).map((u,f)=>(0,ci.jsx)("span",{className:"vuuTableGroupCell-spacer"},f));return(0,ci.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[c,a?null:(0,ci.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,ci.jsx)("span",{children:o})]})};var Fl=require("react/jsx-runtime"),{IDX:IR,IS_EXPANDED:AR,SELECTED:LR}=tn.metadataKeys,{True:Cv,First:OR,Last:HR}=tn.RowSelected,fi="vuuTableRow",Sv=(0,Bl.memo)(function({columnMap:e,columns:t,offset:n,onClick:o,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[IR]:a,[AR]:c,[LR]:u}=l,f=(0,wv.default)(fi,{[`${fi}-even`]:a%2===0,[`${fi}-expanded`]:c,[`${fi}-selected`]:u&Cv,[`${fi}-selectedStart`]:u&OR,[`${fi}-selectedEnd`]:u&HR}),h=(0,Bl.useCallback)(p=>{let m=p.shiftKey,g=p.ctrlKey||p.metaKey;o==null||o(l,m,g)},[o,l]),d=(0,Bl.useCallback)((p,m)=>{((0,tn.isGroupColumn)(m)||(0,tn.isJsonGroup)(m,l))&&(p.stopPropagation(),s==null||s(l,m))},[s,l]);return(0,Fl.jsxs)("div",{"aria-selected":u&Cv?!0:void 0,"aria-rowindex":a,className:f,onClick:h,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,Fl.jsx)("div",{role:"cell",style:{width:i}}):null,t.filter(tn.notHidden).map(p=>{let m=(0,tn.isGroupColumn)(p),g=(0,tn.isJsonColumn)(p);return(0,Fl.jsx)(m?vv:Vh,{column:p,columnMap:e,onClick:m||g?d:void 0,row:l},p.name)})]})});var $h=W(require("classnames")),Ev=require("react");var qo=require("react"),zl=({column:r,onResize:e,rootRef:t})=>{let n=(0,qo.useRef)(0),o=(0,qo.useRef)(!1),{name:s}=r,i=(0,qo.useCallback)(()=>{if(e&&t.current){console.log("handleResizeStart");let{width:c}=t.current.getBoundingClientRect();n.current=Math.round(c),o.current=!0,e==null||e("begin",s)}},[s,e,t]),l=(0,qo.useCallback)((c,u)=>{if(t.current&&e){let{width:f}=t.current.getBoundingClientRect(),h=Math.round(f)+u;h!==n.current&&h>0&&(e("resize",s,h),n.current=h)}},[s,e,t]),a=(0,qo.useCallback)(()=>{e&&(e("end",s,n.current),setTimeout(()=>{o.current=!1},100))},[s,e]);return{isResizing:o.current,onDrag:l,onDragStart:i,onDragEnd:a}};var Vn=require("react/jsx-runtime"),ro="vuuTable-groupHeaderCell",Tv=({column:r,onClick:e,...t})=>(0,Vn.jsx)("span",{...t,className:`${ro}-close`,"data-icon":"close-circle",onClick:()=>e==null?void 0:e(r)}),NR=r=>{let{children:e,column:t,className:n}=r;return(0,Vn.jsxs)("div",{className:(0,$h.default)(`${ro}-col`,n),role:"columnheader",children:[(0,Vn.jsx)("span",{className:`${ro}-label`,children:t.name}),e]})},kv=({column:r,className:e,onRemoveColumn:t,onResize:n,...o})=>{let s=(0,Ev.useRef)(null),{isResizing:i,...l}=zl({column:r,onResize:n,rootRef:s}),a=(0,$h.default)(ro,e,{vuuPinLeft:r.pin==="left",[`${ro}-right`]:r.align==="right",[`${ro}-resizing`]:r.resizing,[`${ro}-pending`]:r.groupConfirmed===!1}),{columns:c}=r;return(0,Vn.jsx)("div",{className:a,ref:s,...o,children:(0,Vn.jsxs)("div",{className:`${ro}-inner`,children:[c.map(u=>(0,Vn.jsx)(NR,{column:u,children:c.length>1?(0,Vn.jsx)(Tv,{column:u,onClick:t}):null},u.key)),(0,Vn.jsx)(Tv,{"data-align":"end",onClick:t}),r.resizeable!==!1?(0,Vn.jsx)(cl,{...l}):null]})})};var Ov=W(require("classnames")),Yo=require("react");var Kh=W(require("classnames"));var Xo=require("react/jsx-runtime"),Dv="vuuSortIndicator",Mv=({sorted:r})=>{if(!r)return null;let e=typeof r=="number"?r<0?"dsc":"asc":r==="A"?"asc":"dsc";return typeof r=="number"?(0,Xo.jsxs)("div",{className:(0,Kh.default)(Dv,"multi-col",e),children:[(0,Xo.jsx)("span",{"data-icon":`sorted-${e}`}),(0,Xo.jsx)("span",{className:"vuuSortPosition",children:Math.abs(r)})]}):(0,Xo.jsx)("div",{className:(0,Kh.default)(Dv,"single-col"),children:(0,Xo.jsx)("span",{"data-icon":`sorted-${e}`})})};var Hv=require("@vuu-ui/vuu-popups");var Rv=require("@vuu-ui/vuu-popups"),Pv=W(require("classnames")),Iv=require("react");var Lv=require("react/jsx-runtime");var Av=({column:r,filter:e})=>{let[t]=(0,Rv.useContextMenu)(),n=(0,Iv.useCallback)(o=>{o.stopPropagation(),t(o,"filter",{column:r,filter:e})},[r,e,t]);return r.filter?(0,Lv.jsx)("div",{className:(0,Pv.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var oo=require("react/jsx-runtime"),Vl="vuuTable-headerCell",Nv=({column:r,className:e,onClick:t,onDragStart:n,onResize:o,...s})=>{let i=(0,Yo.useRef)(null),{isResizing:l,...a}=zl({column:r,onResize:o,rootRef:i}),[c]=(0,Hv.useContextMenu)(),u=(0,Yo.useRef)(null),f=g=>{c(g,"header",{column:r})},h=(0,Yo.useCallback)(g=>!l&&(t==null?void 0:t(g)),[l,t]),d=(0,Yo.useCallback)(g=>{u.current=window.setTimeout(()=>{n==null||n(g),u.current=null},500)},[n]),p=(0,Yo.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),m=(0,Ov.default)(Vl,e,{vuuPinFloating:r.pin==="floating",vuuPinLeft:r.pin==="left",vuuPinRight:r.pin==="right",vuuEndPin:r.endPin,[`${Vl}-resizing`]:r.resizing,[`${Vl}-right`]:r.align==="right"});return(0,oo.jsx)("div",{className:m,...s,onClick:h,onContextMenu:f,onMouseDown:d,onMouseUp:p,ref:i,children:(0,oo.jsxs)("div",{className:`${Vl}-inner`,children:[(0,oo.jsx)(Av,{column:r}),(0,oo.jsx)("div",{className:`${Vl}-label`,children:r.label}),(0,oo.jsx)(Mv,{sorted:r.sorted}),r.resizeable!==!1?(0,oo.jsx)(cl,{...a}):null]})})};var $n=require("react/jsx-runtime"),Wh="vuuTable",{RENDER_IDX:BR}=gn.metadataKeys,Bv=({columns:r,columnsWithinViewport:e,data:t,getRowOffset:n,headings:o,onColumnResize:s,onHeaderCellDragStart:i,onContextMenu:l,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:f,tableId:h,virtualColSpan:d=0,rowCount:p})=>{let m=(0,hi.useCallback)(v=>{i==null||i(v)},[i]),g=(0,hi.useMemo)(()=>r.filter(gn.notHidden),[r]),y=(0,hi.useMemo)(()=>(0,gn.buildColumnMap)(r),[r]),C=(0,hi.useCallback)(v=>{var D;let S=v.target.closest(".vuuTable-headerCell"),b=parseInt((D=S==null?void 0:S.dataset.idx)!=null?D:"-1"),w=(0,gn.visibleColumnAtIndex)(r,b),k=v.shiftKey;w&&u(w,k)},[r,u]);return(0,$n.jsxs)("div",{"aria-rowcount":p,className:`${Wh}-table`,role:"table",children:[(0,$n.jsxs)("div",{className:`${Wh}-headers`,role:"rowGroup",children:[o.map((v,x)=>(0,$n.jsx)("div",{className:"vuuTable-heading",children:v.map(({label:S,width:b},w)=>(0,$n.jsx)("div",{className:"vuuTable-headingCell",style:{width:b},children:S},w))},x)),(0,$n.jsx)("div",{role:"row",children:g.map((v,x)=>{let S=(0,gn.getColumnStyle)(v);return(0,gn.isGroupColumn)(v)?(0,$n.jsx)(kv,{column:v,"data-idx":x,onRemoveColumn:a,onResize:s,role:"columnHeader",style:S},x):(0,$n.jsx)(Nv,{column:v,"data-idx":x,id:`${h}-${x}`,onClick:C,onDragStart:m,onResize:s,role:"columnHeader",style:S},x)})})]}),(0,$n.jsx)("div",{className:`${Wh}-body`,onContextMenu:l,role:"rowGroup",children:t==null?void 0:t.map(v=>(0,$n.jsx)(Sv,{columnMap:y,columns:e,offset:n(v),onClick:c,virtualColSpan:d,onToggleGroup:f,row:v},v[BR]))})]})};var C0=require("@vuu-ui/vuu-popups"),or=require("@vuu-ui/vuu-utils"),Ve=require("react");var Xc=require("@vuu-ui/vuu-utils"),$l=require("react"),{SELECTED:Mj}=Xc.metadataKeys;var Uh=require("react"),FR=require("@vuu-ui/vuu-data");var _h=require("react"),zR=require("@vuu-ui/vuu-data");var VR=require("react"),$R=require("@vuu-ui/vuu-data");var KR=0,Kl=class{constructor(e,t){this.from=e,this.to=t}},ie=class{constructor(e={}){this.id=KR++,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=tt.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};ie.closedBy=new ie({deserialize:r=>r.split(" ")});ie.openedBy=new ie({deserialize:r=>r.split(" ")});ie.group=new ie({deserialize:r=>r.split(" ")});ie.contextHash=new ie({perNode:!0});ie.lookAhead=new ie({perNode:!0});ie.mounted=new ie({perNode:!0});var WR=Object.create(null),tt=class{constructor(e,t,n,o=0){this.name=e,this.props=t,this.id=n,this.flags=o}static define(e){let t=e.props&&e.props.length?Object.create(null):WR,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),o=new tt(e.name||"",t,e.id,n);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(ie.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let o of n.split(" "))t[o]=e[n];return n=>{for(let o=n.prop(ie.group),s=-1;s<(o?o.length:0);s++){let i=t[s<0?n.name:o[s]];if(i)return i}}}};tt.none=new tt("",Object.create(null),0,8);var Er=class{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let o=null;for(let s of e){let i=s(n);i&&(o||(o=Object.assign({},n.props)),o[i[0].id]=i[1])}t.push(o?new tt(n.name,o,n.id,n.flags):n)}return new Er(t)}},Yc=new WeakMap,Fv=new WeakMap,Ge;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(Ge||(Ge={}));var Se=class{constructor(e,t,n,o,s){if(this.type=e,this.children=t,this.positions=n,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(ie.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let o=n.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 pi(this.topNode,e)}cursorAt(e,t=0,n=0){let o=Yc.get(this)||this.topNode,s=new pi(o);return s.moveTo(e,t),Yc.set(this,s._tree),s}get topNode(){return new Kn(this,0,0,null)}resolve(e,t=0){let n=di(Yc.get(this)||this.topNode,e,t,!1);return Yc.set(this,n),n}resolveInner(e,t=0){let n=di(Fv.get(this)||this.topNode,e,t,!0);return Fv.set(this,n),n}iterate(e){let{enter:t,leave:n,from:o=0,to:s=this.length}=e,i=e.mode||0,l=(i&Ge.IncludeAnonymous)>0;for(let a=this.cursor(i|Ge.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&&n&&(l||!a.type.isAnonymous)&&n(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:qh(tt.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,o)=>new Se(this.type,t,n,o,this.propValues),e.makeTree||((t,n,o)=>new Se(tt.none,t,n,o)))}static build(e){return UR(e)}};Se.empty=new Se(tt.none,[],[],0);var Wl=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 Wl(this.buffer,this.index)}},kr=class{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return tt.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],o=this.set.types[t],s=o.name;if(/\W/.test(s)&&!o.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let i=[];for(;e<n;)i.push(this.childString(e)),e=this.buffer[e+3];return s+"("+i.join(",")+")"}findChild(e,t,n,o,s){let{buffer:i}=this,l=-1;for(let a=e;a!=t&&!(Vv(s,o,i[a+1],i[a+2])&&(l=a,n>0));a=i[a+3]);return l}slice(e,t,n){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++]-n;let c=s[a++]=o[l++]-n;s[a++]=o[l++]-e,i=Math.max(i,c)}return new kr(s,i,this.set)}};function Vv(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function $v(r,e){let t=r.childBefore(e);for(;t;){let n=t.lastChild;if(!n||n.to!=t.to)break;n.type.isError&&n.from==n.to?(r=t,t=n.prevSibling):t=n}return r}function di(r,e,t,n){for(var o;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let i=!n&&r instanceof Kn&&r.index<0?null:r.parent;if(!i)return r;r=i}let s=n?0:Ge.IgnoreOverlays;if(n)for(let i=r,l=i.parent;l;i=l,l=i.parent)i instanceof Kn&&i.index<0&&((o=l.enter(e,t,s))===null||o===void 0?void 0:o.from)!=i.from&&(r=l);for(;;){let i=r.enter(e,t,s);if(!i)return r;r=i}}var Kn=class{constructor(e,t,n,o){this._tree=e,this.from=t,this.index=n,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,n,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],f=a[e]+i.from;if(Vv(o,n,f,f+u.length)){if(u instanceof kr){if(s&Ge.ExcludeBuffers)continue;let h=u.findChild(0,u.buffer.length,t,n-f,o);if(h>-1)return new tr(new Gh(i,u,e,f),null,h)}else if(s&Ge.IncludeAnonymous||!u.type.isAnonymous||jh(u)){let h;if(!(s&Ge.IgnoreMounts)&&u.props&&(h=u.prop(ie.mounted))&&!h.overlay)return new Kn(h.tree,f,e,i);let d=new Kn(u,f,e,i);return s&Ge.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?u.children.length-1:0,t,n,o)}}}if(s&Ge.IncludeAnonymous||!i.type.isAnonymous||(i.index>=0?e=i.index+t:e=t<0?-1:i._parent._tree.children.length,i=i._parent,!i))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,n=0){let o;if(!(n&Ge.IgnoreOverlays)&&(o=this._tree.prop(ie.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 Kn(o.tree,o.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new pi(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return di(this,e,t,!1)}resolveInner(e,t=0){return di(this,e,t,!0)}enterUnfinishedNodesBefore(e){return $v(this,e)}getChild(e,t=null,n=null){let o=Zc(this,e,t,n);return o.length?o[0]:null}getChildren(e,t=null,n=null){return Zc(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return eu(this,e)}};function Zc(r,e,t,n){let o=r.cursor(),s=[];if(!o.firstChild())return s;if(t!=null){for(;!o.type.is(t);)if(!o.nextSibling())return s}for(;;){if(n!=null&&o.type.is(n))return s;if(o.type.is(e)&&s.push(o.node),!o.nextSibling())return n==null?s:[]}}function eu(r,e,t=e.length-1){for(let n=r.parent;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Gh=class{constructor(e,t,n,o){this.parent=e,this.buffer=t,this.index=n,this.start=o}},tr=class{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:o}=this.context,s=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new tr(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,n=0){if(n&Ge.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 tr(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 tr(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 tr(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new pi(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,o=this.index+4,s=n.buffer[this.index+3];if(s>o){let i=n.buffer[this.index+1];e.push(n.slice(o,s,i)),t.push(0)}return new Se(this.type,e,t,this.to-this.from)}resolve(e,t=0){return di(this,e,t,!1)}resolveInner(e,t=0){return di(this,e,t,!0)}enterUnfinishedNodesBefore(e){return $v(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let o=Zc(this,e,t,n);return o.length?o[0]:null}getChildren(e,t=null,n=null){return Zc(this,e,t,n)}get node(){return this}matchContext(e){return eu(this,e)}},pi=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 Kn)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:o}=this.buffer;return this.type=t||o.set.types[o.buffer[e]],this.from=n+o.buffer[e+1],this.to=n+o.buffer[e+2],!0}yield(e){return e?e instanceof Kn?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:o}=this.buffer,s=o.findChild(this.index+4,o.buffer[this.index+3],e,t-this.buffer.start,n);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,n=this.mode){return this.buffer?n&Ge.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&Ge.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&Ge.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let o=n<0?0:this.stack[n]+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<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(o)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer: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:n}=o)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,i=e<0?-1:n._tree.children.length;s!=i;s+=e){let l=n._tree.children[s];if(this.mode&Ge.IncludeAnonymous||l instanceof kr||!l.type.isAnonymous||jh(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,n=0;if(e&&e.context==this.buffer)e:for(let 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,n=s+1;break e}o=this.stack[--s]}for(let o=n;o<this.stack.length;o++)t=new tr(this.buffer,t,this.stack[o]);return this.bufferNode=new tr(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let o=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(o=!0)}for(;o&&t&&t(this),o=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,o=!0}}}matchContext(e){if(!this.buffer)return eu(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let o=e.length-1,s=this.stack.length-1;o>=0;s--){if(s<0)return eu(this.node,e,o);let i=n[t.buffer[this.stack[s]]];if(!i.isAnonymous){if(e[o]&&e[o]!=i.name)return!1;o--}}return!0}};function jh(r){return r.children.some(e=>e instanceof kr||!e.type.isAnonymous||jh(e))}function UR(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:o=1024,reused:s=[],minRepeatType:i=n.types.length}=r,l=Array.isArray(t)?new Wl(t,t.length):t,a=n.types,c=0,u=0;function f(x,S,b,w,k){let{id:D,start:T,end:M,size:E}=l,R=u;for(;E<0;)if(l.next(),E==-1){let I=s[D];b.push(I),w.push(T-x);return}else if(E==-3){c=D;return}else if(E==-4){u=D;return}else throw new RangeError(`Unrecognized record size: ${E}`);let A=a[D],O,L,P=T-x;if(M-T<=o&&(L=m(l.pos-S,k))){let I=new Uint16Array(L.size-L.skip),B=l.pos-L.size,H=I.length;for(;l.pos>B;)H=g(L.start,I,H);O=new kr(I,M-L.start,n),P=L.start-x}else{let I=l.pos-E;l.next();let B=[],H=[],z=D>=i?D:-1,V=0,Q=M;for(;l.pos>I;)z>=0&&l.id==z&&l.size>=0?(l.end<=Q-o&&(d(B,H,T,V,l.end,Q,z,R),V=B.length,Q=l.end),l.next()):f(T,I,B,H,z);if(z>=0&&V>0&&V<B.length&&d(B,H,T,V,T,Q,z,R),B.reverse(),H.reverse(),z>-1&&V>0){let q=h(A);O=qh(A,B,H,0,B.length,0,M-T,q,q)}else O=p(A,B,H,M-T,R-M)}b.push(O),w.push(P)}function h(x){return(S,b,w)=>{let k=0,D=S.length-1,T,M;if(D>=0&&(T=S[D])instanceof Se){if(!D&&T.type==x&&T.length==w)return T;(M=T.prop(ie.lookAhead))&&(k=b[D]+T.length+M)}return p(x,S,b,w,k)}}function d(x,S,b,w,k,D,T,M){let E=[],R=[];for(;x.length>w;)E.push(x.pop()),R.push(S.pop()+b-k);x.push(p(n.types[T],E,R,D-k,M-D)),S.push(k-b)}function p(x,S,b,w,k=0,D){if(c){let T=[ie.contextHash,c];D=D?[T].concat(D):[T]}if(k>25){let T=[ie.lookAhead,k];D=D?[T].concat(D):[T]}return new Se(x,S,b,w,D)}function m(x,S){let b=l.fork(),w=0,k=0,D=0,T=b.end-o,M={size:0,start:0,skip:0};e:for(let E=b.pos-x;b.pos>E;){let R=b.size;if(b.id==S&&R>=0){M.size=w,M.start=k,M.skip=D,D+=4,w+=4,b.next();continue}let A=b.pos-R;if(R<0||A<E||b.start<T)break;let O=b.id>=i?4:0,L=b.start;for(b.next();b.pos>A;){if(b.size<0)if(b.size==-3)O+=4;else break e;else b.id>=i&&(O+=4);b.next()}k=L,w+=R,D+=O}return(S<0||w==x)&&(M.size=w,M.start=k,M.skip=D),M.size>4?M:void 0}function g(x,S,b){let{id:w,start:k,end:D,size:T}=l;if(l.next(),T>=0&&w<i){let M=b;if(T>4){let E=l.pos-(T-4);for(;l.pos>E;)b=g(x,S,b)}S[--b]=M,S[--b]=D-x,S[--b]=k-x,S[--b]=w}else T==-3?c=w:T==-4&&(u=w);return b}let y=[],C=[];for(;l.pos>0;)f(r.start||0,r.bufferStart||0,y,C,-1);let v=(e=r.length)!==null&&e!==void 0?e:y.length?C[0]+y[0].length:0;return new Se(a[r.topID],y.reverse(),C.reverse(),v)}var zv=new WeakMap;function Jc(r,e){if(!r.isAnonymous||e instanceof kr||e.type!=r)return 1;let t=zv.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof Se)){t=1;break}t+=Jc(r,n)}zv.set(e,t)}return t}function qh(r,e,t,n,o,s,i,l,a){let c=0;for(let p=n;p<o;p++)c+=Jc(r,e[p]);let u=Math.ceil(c*1.5/8),f=[],h=[];function d(p,m,g,y,C){for(let v=g;v<y;){let x=v,S=m[v],b=Jc(r,p[v]);for(v++;v<y;v++){let w=Jc(r,p[v]);if(b+w>=u)break;b+=w}if(v==x+1){if(b>u){let w=p[x];d(w.children,w.positions,0,w.children.length,m[x]+C);continue}f.push(p[x])}else{let w=m[v-1]+p[v-1].length-S;f.push(qh(r,p,m,x,v,S,w,null,a))}h.push(S+C-s)}}return d(e,t,n,o,0),(l||a)(f,h,i)}var nr=class{constructor(e,t,n,o,s=!1,i=!1){this.from=e,this.to=t,this.tree=n,this.offset=o,this.open=(s?1:0)|(i?2:0)}get openStart(){return(this.open&1)>0}get openEnd(){return(this.open&2)>0}static addTree(e,t=[],n=!1){let o=[new nr(0,e.length,e,0,!1,n)];for(let s of t)s.to>e.length&&o.push(s);return o}static applyChanges(e,t,n=128){if(!t.length)return e;let o=[],s=1,i=e.length?e[0]:null;for(let l=0,a=0,c=0;;l++){let u=l<t.length?t[l]:null,f=u?u.fromA:1e9;if(f-a>=n)for(;i&&i.from<f;){let h=i;if(a>=h.from||f<=h.to||c){let d=Math.max(h.from,a)-c,p=Math.min(h.to,f)-c;h=d>=p?null:new nr(d,p,h.tree,h.offset+c,l>0,!!u)}if(h&&o.push(h),i.to>f)break;i=s<e.length?e[s++]:null}if(!u)break;a=u.toA,c=u.toA-u.toB}return o}},so=class{startParse(e,t,n){return typeof e=="string"&&(e=new Qh(e)),n=n?n.length?n.map(o=>new Kl(o.from,o.to)):[new Kl(0,0)]:[new Kl(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let o=this.startParse(e,t,n);for(;;){let s=o.advance();if(s)return s}}},Qh=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 Oj=new ie({perNode:!0});var gi=class{constructor(e,t,n,o,s,i,l,a,c,u=0,f){this.p=e,this.stack=t,this.state=n,this.reducePos=o,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=c,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let o=e.parser.context;return new gi(e,[],t,n,n,0,[],0,o?new tu(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 n=e>>19,o=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(o);if(i&&(this.score+=i),n==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-(n-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,f=this.bufferBase+this.buffer.length-u;if(o<s.minRepeatTerm||e&131072){let h=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,a,h,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let h=this.stack[l-3];this.state=s.getGoto(h,o,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(o,a)}storeNode(e,t,n,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==n)return;if(i.buffer[l-2]>=t){i.buffer[l-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,o);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,o>4&&(o-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=o}}shift(e,t,n){let o=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,o),t<=this.p.parser.maxNode&&this.buffer.push(t,o,n,4);else{let s=e,{parser:i}=this.p;(n>this.pos||t<=i.maxNode)&&(this.pos=n,i.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,o),this.shiftContext(t,o),t<=i.maxNode&&this.buffer.push(t,o,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let o=this.pos;this.reducePos=this.pos=o+e.length,this.pushState(t,o),this.buffer.push(n,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 n=e.buffer.slice(t),o=e.bufferBase+t;for(;e&&o==e.bufferBase;)e=e.parent;return new gi(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,o,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Yh(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let 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 n=[];for(let o=0;o<t.length&&n.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,n.push(i)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,o=t&65535,s=this.stack.length-n*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=[],n=(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=n(i,s+1);if(l!=null)return l}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new tu(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()}},tu=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Kv;(function(r){r[r.Insert=200]="Insert",r[r.Delete=190]="Delete",r[r.Reduce=100]="Reduce",r[r.MaxNext=4]="MaxNext",r[r.MaxInsertStackDepth=300]="MaxInsertStackDepth",r[r.DampenInsertStackDepth=120]="DampenInsertStackDepth",r[r.MinBigReduction=2e3]="MinBigReduction"})(Kv||(Kv={}));var Yh=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=o}},bi=class{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new bi(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 bi(this.stack,this.pos,this.index)}};function Ul(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,o=0;n<r.length;){let s=0;for(;;){let i=r.charCodeAt(n++),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 mi=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Wv=new mi,Jh=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=Wv,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,o=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!o)return null;let i=this.ranges[--o];s-=n.from-i.to,n=i}for(;t<0?s>n.to:s>=n.to;){if(o==this.ranges.length-1)return null;let i=this.ranges[++o];s+=i.from-n.to,n=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,n,o;if(t>=0&&t<this.chunk.length)n=this.pos+e,o=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let i=this.rangeIndex,l=this.range;for(;l.to<=n;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),o=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),o}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Wv,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let o of this.ranges){if(o.from>=t)break;o.to>e&&(n+=this.input.read(Math.max(o.from,e),Math.min(o.to,t)))}return n}},io=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Xv(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};io.prototype.contextual=io.prototype.fallback=io.prototype.extend=!1;var Zh=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Ul(e):e}token(e,t){let n=e.pos,o=0;for(;;){let s=e.next<0,i=e.resolveOffset(1,1);if(Xv(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(n,e.token),e.acceptToken(this.elseToken,o))}};Zh.prototype.contextual=io.prototype.fallback=io.prototype.extend=!1;function Xv(r,e,t,n,o,s){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&r[i];){let c=r[i+1];for(let d=i+3;d<c;d+=2)if((r[d+1]&l)>0){let p=r[d];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||_R(p,e.token.value,o,s))){e.acceptToken(p);break}}let u=e.next,f=0,h=r[i+2];if(e.next<0&&h>f&&r[c+h*3-3]==65535&&r[c+h*3-3]==65535){i=r[c+h*3-1];continue e}for(;f<h;){let d=f+h>>1,p=c+d+(d<<1),m=r[p],g=r[p+1]||65536;if(u<m)h=d;else if(u>=g)f=d+1;else{i=r[p+2],e.advance();continue e}}break}}function Uv(r,e,t){for(let n=e,o;(o=r[n])!=65535;n++)if(o==t)return n-e;return-1}function _R(r,e,t,n){let o=Uv(t,n,e);return o<0||Uv(t,n,r)<o}var Wn=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Xh=null,_v;(function(r){r[r.Margin=25]="Margin"})(_v||(_v={}));function Gv(r,e,t){let n=r.cursor(Ge.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}var ed=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?Gv(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Gv(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],o=this.index[t];if(o==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[o],i=this.start[t]+n.positions[o];if(i>e)return this.nextStart=i,null;if(s instanceof Se){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(ie.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}}},td=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new mi)}getActions(e){let t=0,n=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],f=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||f.start!=e.pos||f.mask!=i||f.context!=l)&&(this.updateCachedToken(f,u,e),f.mask=i,f.context=l),f.lookAhead>f.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let h=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!u.extend&&(n=f,t>h))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new mi,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new mi,{pos:n,p:o}=e;return t.start=n,t.end=Math.min(n+1,o.stream.end),t.value=n==o.stream.end?o.parser.eofTerm:0,t}updateCachedToken(e,t,n){let o=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(o,e),n),e.value>-1){let{parser:s}=n.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),n);if(l>=0&&n.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(o+1)}putAction(e,t,n,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++]=n,o}addActions(e,t,n,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=Dr(l,c+2);else{o==0&&l[c+1]==2&&(o=this.putAction(Dr(l,c+2),t,n,o));break}l[c]==t&&(o=this.putAction(Dr(l,c+1),t,n,o))}return o}},Qv;(function(r){r[r.Distance=5]="Distance",r[r.MaxRemainingPerStep=3]="MaxRemainingPerStep",r[r.MinBufferLengthPrune=500]="MinBufferLengthPrune",r[r.ForceReduceLimit=10]="ForceReduceLimit",r[r.CutDepth=15e3]="CutDepth",r[r.CutTo=9e3]="CutTo",r[r.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",r[r.MaxStackCount=12]="MaxStackCount"})(Qv||(Qv={}));var nd=class{constructor(e,t,n,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 Jh(t,o),this.tokens=new td(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[gi.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new ed(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=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)n.push(l);else{if(this.advanceStack(l,n,e))continue;{o||(o=[],s=[]),o.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!n.length){let i=o&&GR(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw Wn&&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,n);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(n.length>i)for(n.sort((l,a)=>a.score-l.score);n.length>i;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let i=0;i<n.length-1;i++){let l=n[i];for(let a=i+1;a<n.length;a++){let c=n[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)n.splice(a--,1);else{n.splice(i--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let i=1;i<n.length;i++)n[i].pos<this.minStackPos&&(this.minStackPos=n[i].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let o=e.pos,{parser:s}=this,i=Wn?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 f=this.fragments.nodeAt(o);f;){let h=this.parser.nodeSet.types[f.type.id]==f.type?s.getGoto(e.state,f.type.id):-1;if(h>-1&&f.length&&(!c||(f.prop(ie.contextHash)||0)==u))return e.useNode(f,h),Wn&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(f.type.id)})`),!0;if(!(f instanceof Se)||f.children.length==0||f.positions[0]>0)break;let d=f.children[0];if(d instanceof Se&&f.positions[0]==0)f=d;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Wn&&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++],f=a[c++],h=a[c++],d=c==a.length||!n,p=d?e:e.split();if(p.apply(u,f,h),Wn&&console.log(i+this.stackID(p)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(f)} @ ${o}${p==e?"":", split"})`),d)return!0;p.pos>o?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return jv(e,t),!0}}runRecovery(e,t,n){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=Wn?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Wn&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let f=l.split(),h=u;for(let d=0;f.forceReduce()&&d<10&&(Wn&&console.log(h+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,n));d++)Wn&&(h=this.stackID(f)+" -> ");for(let d of l.recoverByInsert(a))Wn&&console.log(u+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,n);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Wn&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),jv(l,n)):(!o||o.score<l.score)&&(o=l)}return o}stackToTree(e){return e.close(),Se.build({buffer:bi.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=(Xh||(Xh=new WeakMap)).get(e);return t||Xh.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function jv(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}var rd=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var Jo=class extends so{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let n=Object.keys(e.topRules).map(l=>e.topRules[l][1]),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=ie[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let f=l[c+-u];for(let h=-u;h>0;h--)s(l[c++],a,f);c++}}}this.nodeSet=new Er(t.map((l,a)=>tt.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:o[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=Ul(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(qv),this.states=Ul(e.states,Uint32Array),this.data=Ul(e.stateData),this.goto=Ul(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new io(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let o=new nd(this,e,t,n);for(let s of this.wrappers)o=s(o,e,t,n);return o}getGoto(e,t,n=!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&&n)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 n=this.data;for(let o=0;o<2;o++)for(let s=this.stateSlot(e,o?2:1),i;;s+=3){if((i=n[s])==65535)if(n[s+1]==1)i=n[s=Dr(n,s+2)];else{if(n[s+1]==2)return Dr(n,s+2);break}if(i==t||i==0)return Dr(n,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,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),o=n?t(n):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=Dr(this.data,s+2);else break;o=t(Dr(this.data,s+1))}return o}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=Dr(this.data,n+2);else break;if(!(this.data[n+2]&1)){let o=this.data[n+1];t.some((s,i)=>i&1&&s==o)||t.push(this.data[n],o)}}return t}configure(e){let t=Object.assign(Object.create(Jo.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let o=e.tokenizers.find(s=>s.from==n);return o?o.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,o)=>{let s=e.specializers.find(l=>l.from==n.external);if(!s)return n;let i=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[o]=qv(i),i})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let i=t.indexOf(s);i>=0&&(n[i]=!0)}let o=null;for(let s=0;s<t.length;s++)if(!n[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 rd(e,n,o)}static deserialize(e){return new Jo(e)}};function Dr(r,e){return r[e]|r[e+1]<<16}function GR(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function qv(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}var sd=Jo.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 rr=require("@vuu-ui/vuu-utils");var Wt,Yv=class{constructor(){qt(this,Wt,void 0)}setFilterCombinatorOp(e,t=j(this,Wt)){(0,rr.isMultiClauseFilter)(t)&&t.op===e||Pn(this,Wt,{op:e,filters:[j(this,Wt)]})}add(e){if(j(this,Wt)===void 0)Pn(this,Wt,e);else if((0,rr.isMultiClauseFilter)(j(this,Wt)))j(this,Wt).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=j(this,Wt)){if((0,rr.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=j(this,Wt)){if((0,rr.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=j(this,Wt)){var n;if((0,rr.isMultiClauseFilter)(t)){let o=t.filters.at(-1);o&&this.setValue(e,o)}else(0,rr.isMultiValueFilter)(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):(0,rr.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=j(this,Wt)){return this.name?{...e,name:this.name}:e}};Wt=new WeakMap;var Uj=sd.configure({strict:!0});var nu=require("@vuu-ui/vuu-utils"),qR=require("react");var{KEY:nq}=nu.metadataKeys;var XR=r=>r.type==="vuu-links";var YR=r=>r.type==="vuu-menu",ru=r=>YR(r)||XR(r),ou=r=>r.type==="vuu-link-created"||r.type==="vuu-link-removed";var id=require("react"),JR=require("@vuu-ui/vuu-data");var lo=require("@vuu-ui/vuu-utils"),Qe=require("react"),{SELECTED:_l}=lo.metadataKeys;function Jv({dataSource:r,onConfigChange:e,onFeatureEnabled:t,onFeatureInvocation:n,onSizeChange:o,onSubscribed:s,range:i={from:0,to:0},renderBufferSize:l=0,viewportRowCount:a}){let[,c]=(0,Qe.useState)(null),u=(0,Qe.useRef)(!0),f=(0,Qe.useRef)(!1),h=(0,Qe.useRef)({from:0,to:0}),d=(0,Qe.useRef)(null),p=(0,Qe.useRef)([]),m=(0,Qe.useMemo)(()=>new ld((0,lo.getFullRange)(i)),[]),g=(0,Qe.useCallback)(b=>{for(let w of b)m.add(w);p.current=m.data,f.current=!0},[m]),y=(0,Qe.useCallback)(b=>{b.type==="subscribed"?s==null||s(b):b.type==="viewport-update"?(typeof b.size=="number"&&(o==null||o(b.size),m.setRowCount(b.size)),b.rows?g(b.rows):typeof b.size=="number"&&(p.current=m.data,f.current=!0)):ru(b)?t==null||t(b):ou(b)?n==null||n(b):console.log(`useDataSource unexpected message ${b.type}`)},[m,t,n,o,s,g]);(0,Qe.useEffect)(()=>()=>{d.current&&(cancelAnimationFrame(d.current),d.current=null),u.current=!1},[]);let C=(0,Qe.useCallback)(()=>{u.current&&(f.current&&(c({}),f.current=!1),d.current=requestAnimationFrame(C))},[c]);(0,Qe.useEffect)(()=>{d.current=requestAnimationFrame(C)},[C]);let v=(0,Qe.useCallback)(b=>{let{from:w}=r.range,k={from:w,to:w+b},D=(0,lo.getFullRange)(k,l);m.setRange(D),r.range=h.current=D,r.emit("range",k)},[r,m,l]),x=(0,Qe.useCallback)(b=>{let w=(0,lo.getFullRange)(b,l);m.setRange(w),r.range=h.current=w,r.emit("range",b)},[r,m,l]),S=(0,Qe.useCallback)(()=>m.getSelectedRows(),[m]);return(0,Qe.useEffect)(()=>{r==null||r.subscribe({range:h.current},y)},[r,y,e]),(0,Qe.useEffect)(()=>{console.log(`adjust range as rowCount chnaged ${a}`),v(a)},[v,a]),{data:p.current,getSelectedRows:S,range:h.current,setRange:x,dataSource:r}}var ld=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 lo.WindowRange(e,t),this.data=new Array(t-e),this.rowCount=0}add(e){var n;let[t]=e;if(this.isWithinRange(t)){let o=t-this.range.from;this.data[o]=e;let s=e[_l],i=(n=this.data[o-1])==null?void 0:n[_l];i===0&&s?this.data[o-1][_l]=2:i===2&&!s&&(this.data[o-1][_l]=0)}}getAtIndex(e){return this.range.isWithin(e)&&this.data[e-this.range.from]!=null?this.data[e-this.range.from]:void 0}isWithinRange(e){return this.range.isWithin(e)}setRange({from:e,to:t}){if(e!==this.range.from||t!==this.range.to){let[n,o]=this.range.overlap(e,t),s=new Array(Math.max(0,t-e));for(let i=n;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[_l]===1)}};var yi=require("react"),Zv=({onDrop:r})=>{let e=(0,yi.useRef)(),t=(0,yi.useRef)(null),n=(0,yi.useCallback)(()=>{console.log("handleDropSettle"),e.current=void 0,t.current=null},[]),{draggable:o,draggedItemIndex:s,onMouseDown:i}=Yn({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:t,itemQuery:".vuuTable-headerCell",onDrop:r,onDropSettle:n}),l=(0,yi.useCallback)(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let h=a.target.closest(".vuuTable-headerCell");t.current=h==null?void 0:h.closest("[role='row']");let{dataset:{idx:d="-1"}}=h;e.current={clientX:c,clientY:u,idx:d},i==null||i(a)},[i]);return{draggable:o,draggedItemIndex:s,onHeaderCellDragStart:l}};var o0=require("@vuu-ui/vuu-utils"),nt=require("react");function ZR(r,...e){let t=new Set(r);for(let n of e)for(let o of n)t.add(o);return t}var ad="ArrowUp",cd="ArrowDown",ud="ArrowLeft",fd="ArrowRight";var hd="Home",dd="End",pd="PageUp",md="PageDown";var eP=new Set(["Enter","Delete"," "]),tP=new Set(["Tab"]),nP=new Set(["ArrowRight","ArrowLeft"]),e0=new Set([hd,dd,pd,md,cd,ud,fd,ad]),rP=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),vq=ZR(eP,e0,nP,rP,tP);var oP=["Home","End","PageUp","PageDown"],t0=r=>oP.includes(r),n0=r=>e0.has(r);var r0=r=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${r+1})`,sP=(r,e)=>`.vuuTable-body > [aria-rowindex='${r}'] > [role='cell']:nth-child(${e+1})`,iP=[-1,-1];function lP(r,[e,t],n,o){return r===ad?e>-1?[e-1,t]:[e,t]:r===cd?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:r===fd?t<n-1?[e,t+1]:[e,t]:r===ud?t>0?[e,t-1]:[e,t]:[e,t]}var s0=({columnCount:r=0,containerRef:e,disableHighlightOnFocus:t,data:n,requestScroll:o,rowCount:s=0,viewportRange:i})=>{var D;let{from:l,to:a}=i,c=(0,nt.useRef)([-1,-1]),u=(0,nt.useRef)(),f=(0,nt.useRef)([-1,0]),h=(0,nt.useCallback)(([T,M])=>{var R;let E=T===-1?r0(M):sP(T,M);return(R=e.current)==null?void 0:R.querySelector(E)},[e]),d=T=>T==null?void 0:T.closest("[role='columnHeader'],[role='cell']"),p=T=>{var M,E;if(T.role==="columnHeader")return[-1,parseInt((M=T.dataset.idx)!=null?M:"-1",10)];{let R=T.closest("[role='row']");if(R){let A=parseInt((E=R.ariaRowIndex)!=null?E:"-1",10),O=Array.from(R.childNodes).indexOf(T);return[A,O]}}return iP},m=(0,nt.useCallback)(T=>{var M;if(e.current){let E=h(T);E?(E!==u.current&&((M=u.current)==null||M.setAttribute("tabindex",""),u.current=E,E.setAttribute("tabindex","0")),E.focus()):(0,o0.withinRange)(T[0],i)||(u.current=void 0,o==null||o({type:"scroll-page",direction:"up"}))}},[e,h,o,i]),g=(0,nt.useCallback)((T,M,E=!1)=>{let R=[T,M];f.current=R,m(R),E&&(c.current=R)},[m]),y=(0,nt.useCallback)(()=>{var T;(T=u.current)==null||T.setAttribute("tabindex",""),u.current=void 0},[]),C=(0,nt.useCallback)(async(T,M)=>{switch(T){case md:o==null||o({type:"scroll-page",direction:"down"});break;case pd:o==null||o({type:"scroll-page",direction:"up"});break;case hd:o==null||o({type:"scroll-end",direction:"home"});break;case dd:o==null||o({type:"scroll-end",direction:"end"});break}return M},[o]),v=(0,nt.useCallback)(()=>{var T;if(t!==!0&&(T=e.current)!=null&&T.contains(document.activeElement)){let M=d(document.activeElement);M&&(c.current=p(M))}},[t,e]),x=(0,nt.useCallback)(async T=>{let[M,E]=t0(T)?await C(T,f.current):lP(T,f.current,r,s),[R,A]=f.current;(M!==R||E!==A)&&g(M,E,!0)},[r,C,s,g]),S=(0,nt.useCallback)(T=>{n.length>0&&n0(T.key)&&(T.preventDefault(),T.stopPropagation(),x(T.key))},[n,x]),b=(0,nt.useCallback)(T=>{let M=T.target,E=d(M);if(E){let[R,A]=p(E);g(R,A)}},[g]),w=(0,nt.useMemo)(()=>({onClick:b,onFocus:v,onKeyDown:S}),[b,v,S]);(0,nt.useLayoutEffect)(()=>{let{current:T}=f,M=T[0]>=l&&T[0]<=a;u.current&&!M?y():!u.current&&M&&m(T)},[m,l,a,y]);let k=((D=e.current)==null?void 0:D.firstChild)!=null;return(0,nt.useEffect)(()=>{var T;if(k&&u.current===void 0){let M=(T=e.current)==null?void 0:T.querySelector(r0(0));M&&(M.setAttribute("tabindex","0"),u.current=M)}},[e,k]),w};var Mr=require("@vuu-ui/vuu-utils"),ao=require("react");var es=require("react");var Zo=new Map,l0=(r,e,t)=>{switch(t){case"height":return e.height;case"clientHeight":return r.clientHeight;case"clientWidth":return r.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(r.scrollHeight);case"scrollWidth":return Math.ceil(r.scrollWidth);case"width":return e.width;default:return 0}},i0=new ResizeObserver(r=>{for(let e of r){let{target:t,borderBoxSize:n,contentBoxSize:o}=e,s=Zo.get(t);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:c}]=o,{onResize:u,measurements:f}=s,h=!1;for(let[d,p]of Object.entries(f)){let m=l0(t,{height:i,width:l,contentHeight:a,contentWidth:c},d);m!==p&&(h=!0,f[d]=m)}h&&u&&u(f)}}});function a0(r,e,t,n=!1){let o=(0,es.useRef)(e),s=(0,es.useCallback)(i=>{let{width:l,height:a}=i.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=i;return o.current.reduce((f,h)=>(f[h]=l0(i,{width:l,height:a,contentHeight:u,contentWidth:c},h),f),{})},[]);(0,es.useEffect)(()=>{let i=r.current;async function l(){Zo.set(i,{measurements:{}}),await document.fonts.ready;let a=Zo.get(i);if(a){let c=s(i);a.measurements=c,i0.observe(i),n&&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(Zo.has(i))throw Error("useResizeObserver attemping to observe same element twice");l()}return()=>{i&&Zo.has(i)&&(i0.unobserve(i),Zo.delete(i))}},[s,r]),(0,es.useEffect)(()=>{let i=r.current,l=Zo.get(i);if(l){if(o.current!==e){o.current=e;let a=s(i);l.measurements=a}l.onResize=t}},[e,s,r,t])}var aP=["clientHeight","clientWidth"],c0=r=>Number.isFinite(r),cP={height:"100%",width:"100%"},uP=(r,e)=>(0,Mr.isValidNumber)(r)&&(0,Mr.isValidNumber)(e)?{height:`${r}px`,width:`${e}px`}:cP,fP=(r,e)=>{if((0,Mr.isValidNumber)(r)&&(0,Mr.isValidNumber)(e))return{height:r,width:e}},gd=({defaultHeight:r=0,defaultWidth:e=0,height:t,width:n})=>{let o=(0,ao.useRef)(null),[s,i]=(0,ao.useState)({css:uP(t,n),inner:fP(t,n),outer:{height:t!=null?t:"100%",width:n!=null?n:"100%"}});(0,ao.useMemo)(()=>{i(a=>{let{inner:c,outer:u}=a;if((0,Mr.isValidNumber)(t)&&(0,Mr.isValidNumber)(n)&&c&&u){let{height:f,width:h}=c,{height:d,width:p}=u;if(d!==t||p!==n){let m=(0,Mr.isValidNumber)(d)?d-f:0,g=(0,Mr.isValidNumber)(p)?p-h:0;return{...a,outer:{height:t,width:n},inner:{height:t-m,width:n-g}}}}return a})},[t,n]);let l=(0,ao.useCallback)(({clientWidth:a,clientHeight:c})=>{i(u=>{let{css:f,inner:h,outer:d}=u;return c0(c)&&c0(a)&&(a!==(h==null?void 0:h.width)||c!==(h==null?void 0:h.height))?{css:f,outer:d,inner:{width:Math.floor(a)||e,height:Math.floor(c)||r}}:u})},[r,e]);return a0(o,aP,l,!0),{containerRef:o,cssSize:s.css,outerSize:s.outer,innerSize:s.inner}};var co=require("@vuu-ui/vuu-utils"),Gl=require("react"),{IDX:hP}=co.metadataKeys,dP=[],Ql=({selectionModel:r,onSelectionChange:e})=>{let t=(0,Gl.useRef)(-1),n=(0,Gl.useRef)(dP);return(0,Gl.useCallback)((s,i,l)=>{let{[hP]:a}=s,{current:c}=t,{current:u}=n,h=((0,co.isRowSelected)(s)?co.deselectItem:co.selectItem)(r,u,a,i,l,c);n.current=h,t.current=a,e&&e(h)},[e,r])};var pe=require("@vuu-ui/vuu-utils"),u0=require("react"),pP=100,f0=pe.metadataKeys.count,mP=({serverDataType:r})=>r===void 0,gP=r=>{var e;if((0,pe.isTypeDescriptor)(r.type))return(0,pe.getCellRenderer)((e=r.type)==null?void 0:e.renderer)},h0=(r,e)=>{if(r.serverDataType)return r.serverDataType;if(e){let t=e.columns.find(n=>n.name===r.name);if(t)return t.serverDataType}return"string"},bP=r=>r.type==="columnSettings",yP=r=>r.type==="tableSettings",xP=(r,e)=>{switch(e.type){case"init":return d0(e);case"moveColumn":return CP(r,e);case"resizeColumn":return TP(r,e);case"setTableSchema":return EP(r,e);case"hideColumns":return wP(r,e);case"showColumns":return SP(r,e);case"pinColumn":return kP(r,e);case"updateColumnProp":return xi(r,e);case"tableConfig":return p0(r,e);default:return console.log(`unhandled action ${e.type}`),r}},bd=(r,e)=>{let[t,n]=(0,u0.useReducer)(xP,{tableConfig:r,dataSourceConfig:e},d0);return{columns:t.columns,dispatchColumnAction:n,headings:t.headings}};function d0({dataSourceConfig:r,tableConfig:e}){let t=e.columns.map(yd(e)),n=t.some(pe.isPinned)?(0,pe.sortPinnedColumns)(t):t,o={columns:n,headings:(0,pe.getTableHeadings)(n)};if(r){let{columns:s,...i}=r;return p0(o,{type:"tableConfig",...i})}else return o}var vP=(r,e)=>e==="uppercase"?r.toUpperCase():e==="capitalize"?r[0].toUpperCase()+r.slice(1).toLowerCase():r,yd=r=>(e,t)=>{let n=h0(e,r.tableSchema),{columnDefaultWidth:o=pP,columnFormatHeader:s}=r,{align:i=(0,pe.getDefaultAlignment)(n),key:l,name:a,label:c=a,width:u=o,...f}=e,h={...f,align:i,CellRenderer:gP(e),label:vP(c,s),key:l!=null?l:t+f0,name:a,originalIdx:t,serverDataType:n,valueFormatter:(0,pe.getValueFormatter)(e),width:u};return(0,pe.isGroupColumn)(h)&&(h.columns=h.columns.map(d=>yd(r)(d,d.key))),h};function CP(r,{column:e,moveBy:t,moveTo:n}){let{columns:o}=r;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...r,columns:i}}else if(typeof n=="number")return{...r,columns:(0,pe.moveItemDeprecated)(o,e,n)};return r}function wP(r,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,n)=>n.hidden!==!0?xi(t,{type:"updateColumnProp",column:n,hidden:!0}):t,r):r}function SP(r,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,n)=>n.hidden?xi(t,{type:"updateColumnProp",column:n,hidden:!1}):t,r):r}function TP(r,{column:e,phase:t,width:n}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return xi(r,{type:o,column:e,resizing:s});case"end":return xi(r,{type:o,column:e,resizing:s,width:n});case"resize":return xi(r,{type:o,column:e,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function EP(r,{tableSchema:e}){let{columns:t}=r;if(t.some(mP)){let n=t.map(o=>{var i;let s=h0(o,e);return{...o,align:(i=o.align)!=null?i:(0,pe.getDefaultAlignment)(s),serverDataType:s}});return{...r,columns:n,tableSchema:e}}else return{...r,tableSchema:e}}function kP(r,e){let{columns:t}=r,{column:n,pin:o}=e;return t=(0,pe.updateColumn)(t,n.name,{pin:o}),t=(0,pe.sortPinnedColumns)(t),console.log({withPins:t}),{...r,columns:t}}function xi(r,e){let{columns:t}=r,{align:n,column:o,hidden:s,label:i,resizing:l,width:a}=e,c={};return(n==="left"||n==="right")&&(c.align=n),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,pe.updateColumn)(t,o.name,c),{...r,columns:t}}function p0(r,{columns:e,confirmed:t,filter:n,groupBy:o,sort:s}){let i=e&&e.length>0,l=o!==void 0,a=typeof(n==null?void 0:n.filter)=="string",c=s&&s.sortDefs.length>0,u=r;return i&&(u={...r,columns:e.map((f,h)=>{let d=(0,pe.getColumnName)(f),p=h+f0,m=(0,pe.findColumn)(u.columns,d);return m?m.key===p?m:{...m,key:p}:yd(r)({name:f},h)})}),l&&(u={...r,columns:(0,pe.applyGroupByToColumns)(u.columns,o,t)}),c&&(u={...r,columns:(0,pe.applySortToColumns)(u.columns,s)}),a?u={...r,columns:(0,pe.applyFilterToColumns)(u.columns,n)}:u.columns.some(pe.isFilteredColumn)&&(u={...r,columns:(0,pe.stripFilterFromColumns)(u.columns)}),u}var Lt=require("react"),m0=r=>{let{scrollLeft:e,scrollTop:t}=r,{clientHeight:n,clientWidth:o,scrollHeight:s,scrollWidth:i}=r,l=e/(i-o),a=t/(s-n);return[l,a]},DP=r=>{let{clientHeight:e,clientWidth:t,scrollHeight:n,scrollWidth:o}=r;return[o-t,n-e]},g0=({onAttach:r,onDetach:e})=>{let t=(0,Lt.useRef)(null);return(0,Lt.useCallback)(o=>{if(o)t.current=o,r==null||r(o);else if(t.current){let{current:s}=t;t.current=o,e==null||e(s)}},[r,e])},b0=({onHorizontalScroll:r,onVerticalScroll:e,viewport:t})=>{let n=(0,Lt.useRef)(!1),o=(0,Lt.useRef)({scrollTop:0,scrollLeft:0}),s=(0,Lt.useRef)(null),i=(0,Lt.useRef)(null),{maxScrollContainerScrollHorizontal:l,maxScrollContainerScrollVertical:a}=t,c=(0,Lt.useCallback)(()=>{let{current:C}=i,{current:v}=s,{current:x}=n;if(x)n.current=!1;else if(C&&v){let[S,b]=m0(v),[w,k]=DP(C),D=Math.round(S*w),T=Math.round(b*k);console.log(`pctScrollTop ${b}, maxScrollTop ${k} rootScrollTop ${T}`),C.scrollTo({left:D,top:T,behavior:"auto"})}},[]),u=(0,Lt.useCallback)(()=>{let{current:C}=i,{current:v}=s,{current:x}=o;if(C&&v){let{scrollLeft:S,scrollTop:b}=C,[w,k]=m0(C);n.current=!0,v.scrollLeft=Math.round(w*l),v.scrollTop=Math.round(k*a),x.scrollTop!==b&&(x.scrollTop=b,e==null||e(b,k)),x.scrollLeft!==S&&(x.scrollLeft=S,r==null||r(S))}},[l,a,r,e]),f=(0,Lt.useCallback)(C=>{s.current=C,C.addEventListener("scroll",c,{passive:!0})},[c]),h=(0,Lt.useCallback)(C=>{s.current=null,C.removeEventListener("scroll",c)},[c]),d=(0,Lt.useCallback)(C=>{i.current=C,C.addEventListener("scroll",u,{passive:!0})},[u]),p=(0,Lt.useCallback)(C=>{i.current=null,C.removeEventListener("scroll",u)},[u]),m=g0({onAttach:d,onDetach:p}),g=g0({onAttach:f,onDetach:h}),y=(0,Lt.useCallback)(C=>{let{current:v}=i;if(v){if(n.current=!1,C.type==="scroll-page"){let{clientHeight:x,scrollLeft:S,scrollTop:b}=v,{direction:w}=C,k=w==="down"?x:-x,D=Math.min(Math.max(0,b+k),a);v.scrollTo({top:D,left:S,behavior:"auto"})}else if(C.type==="scroll-end"){let{direction:x}=C,S=x==="end"?a:0;v.scrollTo({top:S,left:v.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:g,contentContainerRef:m,requestScroll:y}};var Rr=require("react"),su=require("@vuu-ui/vuu-utils"),MP=15e5,RP={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},PP=r=>{let e=0,t=0,n=0;for(let o of r){let{hidden:s,pin:i,width:l}=o,a=s?0:l;i==="left"?e+=a:i==="right"?t+=a:n+=a}return{pinnedWidthLeft:e+4,pinnedWidthRight:t+4,unpinnedWidth:n}},jl=({columns:r,headerHeight:e,headings:t,rowCount:n,rowHeight:o,size:s})=>{let i=(0,Rr.useRef)(0),a=Math.min(n,MP)*o,u=n*o-a,{pinnedWidthLeft:f,pinnedWidthRight:h,unpinnedWidth:d}=(0,Rr.useMemo)(()=>PP(r),[r]),[p,m]=(0,Rr.useMemo)(()=>(0,su.actualRowPositioning)(o),[o]),[g,y]=(0,Rr.useMemo)(()=>u?(0,su.virtualRowPositioning)(o,u,i):[p,m],[m,p,u,o]),C=(0,Rr.useCallback)(v=>{i.current=v},[]);return(0,Rr.useMemo)(()=>{var v;if(s){let x=t.length,S=15,b=f+d+h,w=b>s.width?S:0,k=e*(1+x),D=a-(((v=s==null?void 0:s.height)!=null?v:0)-w)+k,T=b-s.width+f,M=(s.height-e)/o,E=Number.isInteger(M)?M+1:Math.ceil(M),R=s.height-k,A=a>R?S:0;return{contentHeight:a,getRowAtPosition:y,getRowOffset:g,horizontalScrollbarHeight:w,maxScrollContainerScrollHorizontal:T,maxScrollContainerScrollVertical:D,pinnedWidthLeft:f,pinnedWidthRight:h,rowCount:E,contentWidth:b,setPctScrollTop:C,totalHeaderHeight:k,verticalScrollbarWidth:A,viewportBodyHeight:R}}else return RP},[s,t.length,f,d,h,a,e,o,y,g,C])};var ql=require("@vuu-ui/vuu-utils"),nn=require("react"),y0=({columns:r,getRowAtPosition:e,setRange:t,viewportMeasurements:n})=>{let o=(0,nn.useRef)(-1),{rowCount:s,contentWidth:i,maxScrollContainerScrollHorizontal:l}=n,a=i-l,c=(0,nn.useRef)(0),[u,f]=(0,nn.useMemo)(()=>(0,ql.getColumnsInViewport)(r,c.current,c.current+a),[a,r]),h=(0,nn.useRef)(f);(0,nn.useEffect)(()=>{p(u)},[u]);let[d,p]=(0,nn.useState)(u),m=(0,nn.useCallback)(y=>{c.current=y;let[C,v]=(0,ql.getColumnsInViewport)(r,y,y+a);(0,ql.itemsChanged)(d,C)&&(h.current=v,p(C))},[a,r,d]),g=(0,nn.useCallback)(y=>{let C=e(y);C!==o.current&&(o.current=C,console.log("setRange from handleVerticalScroll"),t({from:C,to:C+s}))},[e,t,s]);return{columnsWithinViewport:d,onHorizontalScroll:m,onVerticalScroll:g,virtualColSpan:h.current}};var IP=[],{KEY:AP,IS_EXPANDED:x0,IS_LEAF:v0}=or.metadataKeys,w0=({config:r,dataSource:e,headerHeight:t,onConfigChange:n,onFeatureEnabled:o,onFeatureInvocation:s,onSelectionChange:i,renderBufferSize:l=0,rowHeight:a,selectionModel:c,...u})=>{var Pe,Je;let[f,h]=(0,Ve.useState)(e.size),d=(0,Ve.useRef)(!1),p=(0,Ve.useRef)();if(p.current=e,e===void 0)throw Error("no data source provided to Vuu Table");let m=gd(u),g=(0,Ve.useCallback)(ne=>{h(ne)},[]),{columns:y,dispatchColumnAction:C,headings:v}=bd(r,e.config),{getRowAtPosition:x,getRowOffset:S,setPctScrollTop:b,...w}=jl({columns:y,headerHeight:t,headings:v,rowCount:f,rowHeight:a,size:m.innerSize});console.log(`rowCount from viewportMeasurements ${w.rowCount}`);let k=(0,Ve.useCallback)(({tableSchema:ne})=>{ne?(d.current=!0,C({type:"setTableSchema",tableSchema:ne})):console.log("usbscription message with no schema")},[C]),D=(0,Ve.useCallback)(ne=>{e.select(ne),i==null||i(ne)},[e,i]),T=Ql({onSelectionChange:D,selectionModel:c}),{data:M,getSelectedRows:E,range:R,setRange:A}=Jv({dataSource:e,onFeatureEnabled:o,onFeatureInvocation:s,onSubscribed:k,onSizeChange:g,renderBufferSize:l,viewportRowCount:w.rowCount}),O=(0,Ve.useRef)();O.current=M;let L=(0,Ve.useCallback)(ne=>{d.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:ne}),C(ne)},[C]),P=fl({dataSource:e,onPersistentColumnOperation:L}),I=(0,Ve.useCallback)((ne,me=!1,Ie)=>{e&&(e.sort=(0,or.applySort)(e.sort,ne,me,Ie))},[e]),B=(0,Ve.useCallback)((ne,me,Ie)=>{let ae=y.find(Me=>Me.name===me);if(ae)ne==="end"&&(d.current=!0),C({type:"resizeColumn",phase:ne,column:ae,width:Ie});else throw Error(`useDataTable.handleColumnResize, column ${me} not found`)},[y,C]),H=(0,Ve.useCallback)((ne,me)=>{let Ie=(0,or.isJsonGroup)(me,ne),ae=ne[AP];if(ne[x0]){if(e.closeTreeNode(ae,!0),Ie){let Me=y.indexOf(me);e.getRowsAtDepth(Me+1).some(Z=>Z[x0]||Z[v0])||C({type:"hideColumns",columns:y.slice(Me+2)})}}else if(e.openTreeNode(ae),Ie){let Me=e.getChildRows(ae),G=y.indexOf(me)+1,Z=[y[G]];Me.some(re=>re[v0])&&Z.push(y[G+1]),Z.some(re=>re.hidden)&&C({type:"showColumns",columns:Z})}},[y,e,C]),{onVerticalScroll:z,onHorizontalScroll:V,columnsWithinViewport:Q,virtualColSpan:q}=y0({columns:y,getRowAtPosition:x,setRange:A,viewportMeasurements:w}),Y=(0,Ve.useCallback)((ne,me)=>{b(me),z(ne)},[z,b]),{requestScroll:_,...J}=b0({onHorizontalScroll:V,onVerticalScroll:Y,viewport:w,viewportHeight:((Je=(Pe=m.innerSize)==null?void 0:Pe.height)!=null?Je:0)-t}),he=s0({columnCount:y.length,containerRef:m.containerRef,data:M,requestScroll:_,rowCount:e==null?void 0:e.size,viewportRange:R}),le=(0,Ve.useCallback)(ne=>{ne?e&&e.groupBy.includes(ne.name)&&(e.groupBy=e.groupBy.filter(me=>me!==ne.name)):e.groupBy=[]},[e]),Fe=(0,Ve.useCallback)((ne,me)=>{let Ie=e.columns[ne],ae=(0,or.moveItemDeprecated)(e.columns,Ie,me);ae!==e.columns&&(e.columns=ae,C({type:"tableConfig",columns:ae}))},[e,C]),Ce=Zv({onDrop:Fe});(0,Ve.useEffect)(()=>{p.current&&(d.current=!0,C({type:"init",tableConfig:r,dataSourceConfig:p.current.config}))},[r,C]),(0,Ve.useEffect)(()=>{e.on("config",(ne,me)=>{d.current=!0,C({type:"tableConfig",...ne,confirmed:me})})},[e,C]),(0,Ve.useMemo)(()=>{d.current&&(n==null||n({...r,columns:y}),d.current=!1)},[y,r,n]);let[Le]=(0,C0.useContextMenu)(),De=(0,Ve.useCallback)(ne=>{var Z;let{current:me}=O,{current:Ie}=p,ae=ne.target,Me=ae==null?void 0:ae.closest("div[role='cell']"),G=ae==null?void 0:ae.closest(".vuuTableRow");if(Me&&G&&me&&Ie){let{columns:re,selectedRowsCount:fe}=Ie,Ee=(0,or.buildColumnMap)(re),ze=parseInt((Z=G.ariaRowIndex)!=null?Z:"-1"),we=Array.from(G.childNodes).indexOf(Me),X=me.find(([oe])=>oe===ze),te=re[we];Le(ne,"grid",{columnMap:Ee,columnName:te,row:X,selectedRows:fe===0?IP:E(),viewport:e==null?void 0:e.viewport})}},[e==null?void 0:e.viewport,E,Le]);return{columns:y,columnsWithinViewport:Q,containerMeasurements:m,containerProps:he,data:M,dispatchColumnAction:C,getRowOffset:S,handleContextMenuAction:P,headings:v,onColumnResize:B,onContextMenu:De,onRemoveColumnFromGroupBy:le,onRowClick:T,onSort:I,onToggleGroup:H,virtualColSpan:q,scrollProps:J,rowCount:f,viewportMeasurements:w,...Ce}};var T0=W(require("classnames"));var E0=require("@vuu-ui/vuu-utils"),Pr=require("react/jsx-runtime"),ts="vuuTable",LP=({allowConfigEditing:r=!1,className:e,config:t,dataSource:n,headerHeight:o=25,height:s,id:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:f,renderBufferSize:h=0,rowHeight:d=20,selectionModel:p="extended",style:m,width:g,...y})=>{let C=(0,iu.useIdMemo)(i),{containerMeasurements:{containerRef:v,innerSize:x,outerSize:S},containerProps:b,dispatchColumnAction:w,draggable:k,draggedItemIndex:D,handleContextMenuAction:T,scrollProps:M,viewportMeasurements:E,...R}=w0({config:t,dataSource:n,renderBufferSize:h,headerHeight:o,height:s,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,rowHeight:d,selectionModel:p,width:g}),A={...S,"--content-height":`${E.contentHeight}px`,"--horizontal-scrollbar-height":`${E.horizontalScrollbarHeight}px`,"--content-width":`${E.contentWidth}px`,"--pinned-width-left":`${E.pinnedWidthLeft}px`,"--pinned-width-right":`${E.pinnedWidthRight}px`,"--header-height":`${o}px`,"--row-height":`${d}px`,"--table-height":`${x==null?void 0:x.height}px`,"--table-width":`${x==null?void 0:x.width}px`,"--total-header-height":`${E.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${E.verticalScrollbarWidth}px`,"--viewport-body-height":`${E.viewportBodyHeight}px`},O=(0,T0.default)(ts,e,{[`${ts}-zebra`]:t.zebraStripes,[`${ts}-loading`]:(0,E0.isDataLoading)(R.columns)});return(0,Pr.jsx)(S0.ContextMenuProvider,{menuActionHandler:T,menuBuilder:ul(n),children:(0,Pr.jsxs)("div",{...y,...b,className:O,id:C,ref:v,style:A,tabIndex:-1,children:[x?(0,Pr.jsx)("div",{className:`${ts}-scrollbarContainer`,ref:M.scrollbarContainerRef,children:(0,Pr.jsx)("div",{className:`${ts}-scrollbarContent`})}):null,x?(0,Pr.jsxs)("div",{className:`${ts}-contentContainer`,ref:M.contentContainerRef,children:[(0,Pr.jsx)(Bv,{...R,headerHeight:o,tableId:C}),k]}):null,r&&x?(0,Pr.jsx)(iu.Button,{className:`${ts}-settings`,"data-icon":"settings",onClick:f,variant:"secondary"}):null]})})};var k0=W(require("classnames")),Ci=require("@vuu-ui/vuu-utils");var vi=require("react/jsx-runtime"),Xl="vuuJsonCell",{IS_EXPANDED:OP,KEY:HP}=Ci.metadataKeys,NP=r=>{let e=r.lastIndexOf("|");return e===-1?"":r.slice(e+1)},BP=({column:r,row:e})=>{let{key:t}=r,n=e[t],o=!1;(0,Ci.isJsonAttribute)(n)&&(n=n.slice(0,-1),o=!0);let s=NP(e[HP]),i=(0,k0.default)({[`${Xl}-name`]:s===n,[`${Xl}-value`]:s!==n,[`${Xl}-group`]:o});if(o){let l=e[OP]?"minus-box":"plus-box";return(0,vi.jsxs)("span",{className:i,children:[(0,vi.jsx)("span",{className:`${Xl}-value`,children:n}),(0,vi.jsx)("span",{className:`${Xl}-toggle`,"data-icon":l})]})}else return n?(0,vi.jsx)("span",{className:i,children:n}):null};(0,Ci.registerComponent)("json",BP,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var zP=W(require("classnames")),VP=require("react");var wi=require("react");var M0=require("react/jsx-runtime"),D0=()=>{},FP="vuuColumnResizerNext",Yl=({onDrag:r,onDragEnd:e=D0,onDragStart:t=D0})=>{let n=(0,wi.useRef)(0),o=(0,wi.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),c=a-n.current;n.current=a,c!==0&&r(l,c)},[r]),s=(0,wi.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",o),e(l)},[e,o]),i=(0,wi.useCallback)(l=>{t(l),n.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,M0.jsx)("div",{className:FP,onMouseDown:i})};var uo=require("react"),Jl=({column:r,onResize:e,rootRef:t})=>{let n=(0,uo.useRef)(0),[o,s]=(0,uo.useState)(!1),{name:i}=r,l=(0,uo.useCallback)(()=>{if(console.log("onResizeStart"),e&&t.current){console.log("handleResizeStart");let{width:u}=t.current.getBoundingClientRect();n.current=Math.round(u),s(!0),e==null||e("begin",i)}},[i,e,t]),a=(0,uo.useCallback)((u,f)=>{if(t.current&&e){let{width:h}=t.current.getBoundingClientRect(),d=Math.round(h)+f;d!==n.current&&d>0&&(e("resize",i,d),n.current=d)}},[i,e,t]),c=(0,uo.useCallback)(()=>{e&&(e("end",i,n.current),setTimeout(()=>{s(!1)},80))},[i,e]);return{isResizing:o,onDrag:a,onDragStart:l,onDragEnd:c}};var R0=require("@vuu-ui/vuu-utils"),P0=W(require("classnames")),I0=require("react"),Ir=(r,e,t)=>(0,I0.useMemo)(()=>{let n=(0,P0.default)(e,{vuuPinFloating:r.pin==="floating",vuuPinLeft:r.pin==="left",vuuPinRight:r.pin==="right",vuuEndPin:t&&r.endPin,[`${e}-editable`]:r.editable,[`${e}-right`]:r.align==="right"}),o=(0,R0.getColumnStyle)(r);return{className:n,style:o}},[r,e,t]);var L0=W(require("classnames")),O0=require("react");var lu=require("react/jsx-runtime"),A0="vuuColumnHeaderPill",ns=({children:r,className:e,column:t,onRemove:n,removable:o,...s})=>{if(o&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let i=(0,O0.useCallback)(l=>{l.preventDefault(),l.stopPropagation(),n==null||n(t)},[t,n]);return(0,lu.jsxs)("div",{...s,className:(0,L0.default)(A0,e),children:[r,o?(0,lu.jsx)("span",{className:`${A0}-removeButton`,role:"button","data-icon":"cross",onClick:i}):null]})};var Si=require("react/jsx-runtime"),xd=({column:r,...e})=>{let{name:t,sorted:n}=r,o=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,Si.jsxs)(ns,{...e,column:r,children:[(0,Si.jsx)("span",{className:"vuuGroupColumnPill-label",children:t}),o!==void 0?(0,Si.jsx)("span",{"data-icon":o}):null,typeof n=="number"?(0,Si.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var Zl=require("react/jsx-runtime"),H0=({column:r})=>{if(!r.sorted)return null;let e=typeof r.sorted=="number"?r.sorted<0?"arrow-down":"arrow-up":r.sorted==="A"?"arrow-up":"arrow-down";return(0,Zl.jsxs)(ns,{column:r,children:[(0,Zl.jsx)("span",{"data-icon":e}),typeof r.sorted=="number"?(0,Zl.jsx)("span",{className:"vuuSortPosition",children:Math.abs(r.sorted)}):null]})};var N0=require("react/jsx-runtime"),$P=require("react");var B0=W(require("classnames")),Ei=require("react");var Ti=require("react/jsx-runtime"),F0=require("react"),vd="vuuTableNextGroupHeaderCell",KP=(r,e)=>r===e?r:e,ea=({column:r,className:e,onRemoveColumn:t,onResize:n,...o})=>{let s=(0,Ei.useRef)(null),{isResizing:i,...l}=Jl({column:r,onResize:n,rootRef:s}),[a,c]=(0,Ei.useState)(r.columns),{className:u,style:f}=Ir(r,vd,!0),h=a.length>1?{removable:!0,onRemove:t}:void 0,d=(0,Ei.useCallback)((p,m)=>{c(g=>{let y=g.slice(),[C]=y.splice(p,1);return m===-1?y.concat(C):(y.splice(m,0,C),y)})},[]);return An(()=>{c(p=>KP(p,r.columns))},[r.columns]),(0,Ti.jsxs)("div",{...o,className:(0,B0.default)(u,"vuuTableNextHeaderCell",e,{[`${vd}-pending`]:r.groupConfirmed===!1}),ref:s,role:"columnheader",style:f,children:[(0,Ti.jsx)(Cl,{allowDragDrop:!0,className:`${vd}-inner`,height:24,onMoveItem:d,overflowPosition:"start",children:a.map(p=>(0,F0.createElement)(xd,{...h,column:p,key:p.key}))}),(0,Ti.jsx)(ns,{column:r,removable:!0,onRemove:t}),r.resizeable!==!1?(0,Ti.jsx)(Yl,{...l}):null]})};var au=require("react");var z0=require("@vuu-ui/vuu-popups"),V0=W(require("classnames")),rs=require("react");var K0=require("react/jsx-runtime"),WP=r=>{if(r){let{bottom:e,left:t}=r.getBoundingClientRect();return{x:t,y:e+6}}},$0=({className:r,column:e,...t})=>{let n=(0,rs.useRef)(null),[o,s]=(0,rs.useState)(!1),[i]=(0,z0.useContextMenu)(),l=(0,rs.useCallback)(()=>{s(!1)},[]),a=(0,rs.useCallback)(c=>{s(!0),i(c,"column-menu",{column:e,ContextMenuProps:{className:"vuuColumnMenuList",onClose:l,position:WP(n.current)}})},[e,l,i]);return(0,K0.jsx)("span",{...t,className:(0,V0.default)("vuuTable-columnMenu",r,{"vuuTable-columnMenu-open":o}),"data-icon":"more-vert",onClick:a,ref:n})};var W0=W(require("classnames"));var os=require("react/jsx-runtime"),Cd="vuuTableNextHeaderCell",U0=({className:r,column:e,onClick:t,onResize:n,...o})=>{var m;let s=(0,au.useRef)(null),{isResizing:i,...l}=Jl({column:e,onResize:n,rootRef:s}),a=(0,au.useCallback)(g=>{console.log(`click isResizing ${i}`),!i&&(t==null||t(g))},[i,t]),{className:c,style:u}=Ir(e,Cd,!0),f=(0,os.jsx)($0,{column:e}),h=(0,os.jsx)("div",{className:`${Cd}-label`,children:(m=e.label)!=null?m:e.name}),d=(0,os.jsx)(H0,{column:e}),p=e.align==="right"?[d,h,f]:[f,h,d];return(0,os.jsxs)("div",{...o,className:(0,W0.default)(c,r,{[`${Cd}-resizing`]:i}),onClick:a,ref:s,role:"columnheader",style:u,children:[...p,e.resizeable!==!1?(0,os.jsx)(Yl,{...l}):null]})};var lE=require("@vuu-ui/vuu-popups"),il=require("@vuu-ui/vuu-utils"),Mm=W(require("classnames")),aE=require("react");var rn=require("@vuu-ui/vuu-utils"),Y0=W(require("classnames")),ta=require("react");var _0=require("@vuu-ui/vuu-utils"),G0=require("react");var wd=require("react/jsx-runtime"),{IDX:UP}=_0.metadataKeys,_P="vuuTableNextCell",Q0=({column:r,columnMap:e,onDataEdited:t,row:n})=>{let{className:o,style:s}=Ir(r,_P),{CellRenderer:i,name:l,valueFormatter:a}=r,c=e[l],u=(0,G0.useCallback)(f=>(t==null||t(n[UP],l,f),!0),[l,t,n]);return(0,wd.jsx)("div",{className:o,role:"cell",style:s,children:i?(0,wd.jsx)(i,{column:r,columnMap:e,onCommit:u,row:n}):a(n[c])})};var cu=require("@vuu-ui/vuu-utils"),j0=require("react");var q0=W(require("classnames"));var ki=require("react/jsx-runtime"),{IS_LEAF:GP}=cu.metadataKeys,Sd="vuuTableNextGroupCell",X0=({column:r,onClick:e,row:t})=>{let{columns:n}=r,[o,s]=(0,cu.getGroupValueAndOffset)(n,t),{className:i,style:l}=Ir(r,Sd),a=(0,j0.useCallback)(f=>{e==null||e(f,r)},[r,e]),c=t[GP],u=Array(s).fill(0).map((f,h)=>(0,ki.jsx)("span",{className:`${Sd}-spacer`},h));return(0,ki.jsxs)("div",{className:(0,q0.default)(i,"vuuTableNextCell"),role:"cell",style:l,onClick:c?void 0:a,children:[u,c?null:(0,ki.jsx)("span",{className:`${Sd}-toggle`,"data-icon":"triangle-right"}),(0,ki.jsx)("span",{children:o})]})};var uu=require("react/jsx-runtime"),J0=require("react"),{IDX:QP,IS_EXPANDED:jP,SELECTED:qP}=rn.metadataKeys,fo="vuuTableNextRow",Td=(0,ta.memo)(({className:r,columnMap:e,columns:t,row:n,offset:o,onClick:s,onDataEdited:i,onToggleGroup:l,zebraStripes:a=!1,...c})=>{let{[QP]:u,[jP]:f,[qP]:h}=n,d=(0,ta.useCallback)(x=>{let S=x.shiftKey,b=x.ctrlKey||x.metaKey;s==null||s(n,S,b)},[s,n]),{True:p,First:m,Last:g}=rn.RowSelected,y=(0,Y0.default)(fo,r,{[`${fo}-even`]:a&&u%2===0,[`${fo}-expanded`]:f,[`${fo}-selected`]:h&p,[`${fo}-selectedStart`]:h&m,[`${fo}-selectedEnd`]:h&g}),C={transform:`translate3d(0px, ${o}px, 0px)`},v=(0,ta.useCallback)((x,S)=>{((0,rn.isGroupColumn)(S)||(0,rn.isJsonGroup)(S,n))&&(x.stopPropagation(),l==null||l(n,S))},[l,n]);return(0,J0.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:y,onClick:d,style:C},(0,uu.jsx)("span",{className:`${fo}-selectionDecorator vuuStickyLeft`}),t.filter(rn.notHidden).map(x=>{let S=(0,rn.isGroupColumn)(x),b=(0,rn.isJsonColumn)(x);return(0,uu.jsx)(S?X0:Q0,{column:x,columnMap:e,onClick:S||b?v:void 0,onDataEdited:i,row:n},x.key)}),(0,uu.jsx)("span",{className:`${fo}-selectionDecorator vuuStickyRight`}))});Td.displayName="Row";var Z0=require("@vuu-ui/vuu-utils"),XP=r=>typeof r=="string",YP=(r,e)=>XP(e)?e===""?!0:r.value==="lower"&&e.toLowerCase()!==e?"value must be all lowercase":r.value==="upper"&&e.toUpperCase()!==e?"value must be all uppercase":!0:"value must be a string";(0,Z0.registerComponent)("vuu-case",YP,"data-edit-validator",{});var eC=require("@vuu-ui/vuu-utils"),JP=r=>typeof r=="string",ZP="value does not match expected pattern",e1=(r,e)=>{if(typeof r.value!="string")throw Error("Pattern validation rule must provide pattern");if(JP(e)){if(e==="")return!0;{let{message:t=ZP}=r;return new RegExp(r.value).test(e)||t}}else return"value must be a string"};(0,eC.registerComponent)("vuu-pattern",e1,"data-edit-validator",{});var Ut=require("@vuu-ui/vuu-utils"),nC=W(require("classnames"),1);var ss=require("@vuu-ui/vuu-utils"),fu=require("react"),t1=[void 0,void 0,void 0,void 0];function tC(r,e,t){var f;let n=(0,fu.useRef)(),[o,s,i,l]=n.current||t1,{type:a}=t,c=(0,ss.isTypeDescriptor)(a)?(f=a.formatting)==null?void 0:f.decimals:void 0,u=r===o&&(0,ss.isValidNumber)(e)&&(0,ss.isValidNumber)(s)&&t===i?(0,ss.getMovingValueDirection)(e,l,s,c):"";return(0,fu.useEffect)(()=>{n.current=[r,e,t,u]}),u}var du=require("react/jsx-runtime"),n1=String.fromCharCode(11014),r1=String.fromCharCode(11015),{KEY:o1}=Ut.metadataKeys,hu="vuuBackgroundCellDeprecated",na={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},s1=r=>(0,Ut.isTypeDescriptor)(r)&&r.renderer&&"flashStyle"in r.renderer?r.renderer.flashStyle:na.BackgroundOnly,i1=({column:r,row:e})=>{let{key:t,type:n,valueFormatter:o}=r,s=e[t],i=s1(n),l=tC(e[o1],s,r),a=i===na.ArrowOnly||i===na.ArrowBackground?l===Ut.UP1||l===Ut.UP2?n1:l===Ut.DOWN1||l===Ut.DOWN2?r1:null:null,c=l?" "+l:"",u=(0,nC.default)(hu,c,{[`${hu}-arrowOnly`]:i===na.ArrowOnly,[`${hu}-arrowBackground`]:i===na.ArrowBackground});return(0,du.jsxs)("div",{className:u,tabIndex:-1,children:[(0,du.jsx)("div",{className:`${hu}-flasher`,children:a}),o(e[r.key])]})};(0,Ut.registerComponent)("background",i1,"cell-renderer",{description:"Background Cell renderer for VuuTable",label:"Background Cell (deprecated)",serverDataType:["long","int","double"]});var Ar=require("@vuu-ui/vuu-utils"),rC=W(require("classnames"),1);var is=require("react/jsx-runtime"),ra="vuuProgressCell",l1=({column:r,columnMap:e,row:t})=>{let{type:n}=r,o=t[r.key],s=!1,i=0;if((0,Ar.isTypeDescriptor)(n)&&(0,Ar.isColumnTypeRenderer)(n.renderer)){let{associatedField:a}=n.renderer;if(a){let c=t[e[a]];if(typeof(0,Ar.isValidNumber)(o)&&(0,Ar.isValidNumber)(c))i=Math.min(Math.round(o/c*100),100),i=Math.min(Math.round(o/c*100),100),s=isFinite(i);else{let u=parseFloat(o);if(Number.isFinite(u)){let f=parseFloat(c);Number.isFinite(f)&&(i=Math.min(Math.round(u/f*100),100),s=isFinite(i))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,rC.default)(ra,{});return(0,is.jsxs)("div",{className:l,tabIndex:-1,children:[s?(0,is.jsxs)("span",{className:`${ra}-track`,children:[(0,is.jsx)("span",{className:`${ra}-bg`}),(0,is.jsx)("span",{className:`${ra}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,is.jsx)("span",{className:`${ra}-text`,children:`${i} %`})]})};(0,Ar.registerComponent)("vuu.progress",l1,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var _t=require("@vuu-ui/vuu-utils"),sC=W(require("classnames"),1);var ls=require("@vuu-ui/vuu-utils"),pu=require("react"),a1=[void 0,void 0,void 0,void 0];function oC(r,e,t){var f;let n=(0,pu.useRef)(),[o,s,i,l]=n.current||a1,{type:a}=t,c=(0,ls.isTypeDescriptor)(a)?(f=a.formatting)==null?void 0:f.decimals:void 0,u=r===o&&(0,ls.isValidNumber)(e)&&(0,ls.isValidNumber)(s)&&t===i?(0,ls.getMovingValueDirection)(e,l,s,c):"";return(0,pu.useEffect)(()=>{n.current=[r,e,t,u]}),u}var gu=require("react/jsx-runtime"),c1=String.fromCharCode(11014),u1=String.fromCharCode(11015),{KEY:f1}=_t.metadataKeys,mu="vuuBackgroundCell",oa={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},h1=r=>(0,_t.isTypeDescriptor)(r)&&r.renderer&&"flashStyle"in r.renderer?r.renderer.flashStyle:oa.BackgroundOnly,d1=({column:r,row:e})=>{let{key:t,type:n,valueFormatter:o}=r,s=e[t],i=h1(n),l=oC(e[f1],s,r),a=i===oa.ArrowOnly||i===oa.ArrowBackground?l===_t.UP1||l===_t.UP2?c1:l===_t.DOWN1||l===_t.DOWN2?u1:null:null,c=l?" "+l:"",u=(0,sC.default)(mu,c,{[`${mu}-arrowOnly`]:i===oa.ArrowOnly,[`${mu}-arrowBackground`]:i===oa.ArrowBackground});return(0,gu.jsxs)("div",{className:u,tabIndex:-1,children:[(0,gu.jsx)("div",{className:`${mu}-flasher`,children:a}),o(e[r.key])]})};console.log("register BackgroundCellNext");(0,_t.registerComponent)("background-next",d1,"cell-renderer",{description:"Change background color of cell when value changes",label:"Background Flash",serverDataType:["long","int","double"]});var p1=require("@salt-ds/core"),m1=require("@salt-ds/lab"),g1=W(require("classnames"),1),b1=require("react");var iC=require("react/jsx-runtime");var MT=require("@vuu-ui/vuu-utils"),La=require("@salt-ds/core");var cC=require("@salt-ds/core"),v1=W(require("classnames"),1),C1=require("react");var Ed=require("@salt-ds/core"),y1=require("@salt-ds/lab"),x1=require("@vuu-ui/vuu-utils"),lC=require("react"),aC=require("react/jsx-runtime");var uC=require("react/jsx-runtime");var Lr=require("@vuu-ui/vuu-utils"),bu=require("react");var CJ=[{description:"Default formatter for columns with data type double",label:"Default Renderer (data type double)",name:"default-double"},...(0,Lr.getRegisteredCellRenderers)("double")];var Sm=require("@vuu-ui/vuu-utils"),gf=require("@salt-ds/core"),kT=require("react");var ge=class{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,n){let o=[];return this.decompose(0,e,o,2),n.length&&n.decompose(0,n.length,o,3),this.decompose(t,this.length,o,1),bn.from(o,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){let n=[];return this.decompose(e,t,n,0),bn.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),o=new us(this),s=new us(e);for(let i=t,l=t;;){if(o.next(i),s.next(i),i=0,o.lineBreak!=s.lineBreak||o.done!=s.done||o.value!=s.value)return!1;if(l+=o.value.length,o.done||l>=n)return!0}}iter(e=1){return new us(this,e)}iterRange(e,t=this.length){return new Cu(this,e,t)}iterLines(e,t){let n;if(e==null)n=this.iter();else{t==null&&(t=this.lines+1);let o=this.line(e).from;n=this.iterRange(o,Math.max(o,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new wu(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?ge.empty:e.length<=32?new $e(e):bn.from($e.split(e,[]))}},$e=class extends ge{constructor(e,t=w1(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,o){for(let s=0;;s++){let i=this.text[s],l=o+i.length;if((t?n:l)>=e)return new Dd(o,l,n,i);o=l+1,n++}}decompose(e,t,n,o){let s=e<=0&&t>=this.length?this:new $e(fC(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(o&1){let i=n.pop(),l=vu(s.text,i.text.slice(),0,s.length);if(l.length<=32)n.push(new $e(l,i.length+s.length));else{let a=l.length>>1;n.push(new $e(l.slice(0,a)),new $e(l.slice(a)))}}else n.push(s)}replace(e,t,n){if(!(n instanceof $e))return super.replace(e,t,n);let o=vu(this.text,vu(n.text,fC(this.text,0,e)),t),s=this.length+n.length-(t-e);return o.length<=32?new $e(o,s):bn.from($e.split(o,[]),s)}sliceString(e,t=this.length,n=`
23
- `){let o="";for(let s=0,i=0;s<=t&&i<this.text.length;i++){let l=this.text[i],a=s+l.length;s>e&&i&&(o+=n),e<a&&t>s&&(o+=l.slice(Math.max(0,e-s),t-s)),s=a+1}return o}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],o=-1;for(let s of e)n.push(s),o+=s.length+1,n.length==32&&(t.push(new $e(n,o)),n=[],o=-1);return o>-1&&t.push(new $e(n,o)),t}},bn=class extends ge{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,o){for(let s=0;;s++){let i=this.children[s],l=o+i.length,a=n+i.lines-1;if((t?a:l)>=e)return i.lineInner(e,t,n,o);o=l+1,n=a+1}}decompose(e,t,n,o){for(let s=0,i=0;i<=t&&s<this.children.length;s++){let l=this.children[s],a=i+l.length;if(e<=a&&t>=i){let c=o&((i<=e?1:0)|(a>=t?2:0));i>=e&&a<=t&&!c?n.push(l):l.decompose(e-i,t-i,n,c)}i=a+1}}replace(e,t,n){if(n.lines<this.lines)for(let o=0,s=0;o<this.children.length;o++){let i=this.children[o],l=s+i.length;if(e>=s&&t<=l){let a=i.replace(e-s,t-s,n),c=this.lines-i.lines+a.lines;if(a.lines<c>>5-1&&a.lines>c>>5+1){let u=this.children.slice();return u[o]=a,new bn(u,this.length-(t-e)+n.length)}return super.replace(s,l,a)}s=l+1}return super.replace(e,t,n)}sliceString(e,t=this.length,n=`
24
- `){let o="";for(let s=0,i=0;s<this.children.length&&i<=t;s++){let l=this.children[s],a=i+l.length;i>e&&s&&(o+=n),e<a&&t>i&&(o+=l.sliceString(e-i,t-i,n)),i=a+1}return o}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof bn))return 0;let n=0,[o,s,i,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;o+=t,s+=t){if(o==i||s==l)return n;let a=this.children[o],c=e.children[s];if(a!=c)return n+a.scanIdentical(c,t);n+=a.length+1}}static from(e,t=e.reduce((n,o)=>n+o.length+1,-1)){let n=0;for(let d of e)n+=d.lines;if(n<32){let d=[];for(let p of e)p.flatten(d);return new $e(d,t)}let o=Math.max(32,n>>5),s=o<<1,i=o>>1,l=[],a=0,c=-1,u=[];function f(d){let p;if(d.lines>s&&d instanceof bn)for(let m of d.children)f(m);else d.lines>i&&(a>i||!a)?(h(),l.push(d)):d instanceof $e&&a&&(p=u[u.length-1])instanceof $e&&d.lines+p.lines<=32?(a+=d.lines,c+=d.length+1,u[u.length-1]=new $e(p.text.concat(d.text),p.length+1+d.length)):(a+d.lines>o&&h(),a+=d.lines,c+=d.length+1,u.push(d))}function h(){a!=0&&(l.push(u.length==1?u[0]:bn.from(u,c)),c=-1,a=u.length=0)}for(let d of e)f(d);return h(),l.length==1?l[0]:new bn(l,t)}};ge.empty=new $e([""],0);function w1(r){let e=-1;for(let t of r)e+=t.length+1;return e}function vu(r,e,t=0,n=1e9){for(let o=0,s=0,i=!0;s<r.length&&o<=n;s++){let l=r[s],a=o+l.length;a>=t&&(a>n&&(l=l.slice(0,n-o)),o<t&&(l=l.slice(t-o)),i?(e[e.length-1]+=l,i=!1):e.push(l)),o=a+1}return e}function fC(r,e,t){return vu(r,[""],e,t)}var us=class{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof $e?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,o=this.nodes[n],s=this.offsets[n],i=s>>1,l=o instanceof $e?o.text.length:o.children.length;if(i==(t>0?l:0)){if(n==0)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((s&1)==(t>0?0:1)){if(this.offsets[n]+=t,e==0)return this.lineBreak=!0,this.value=`
25
- `,this;e--}else if(o instanceof $e){let a=o.text[i+(t<0?-1:0)];if(this.offsets[n]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=o.children[i+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof $e?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}},Cu=class{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new us(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:o}=this.cursor.next(e);return this.pos+=(o.length+e)*t,this.value=o.length<=n?o:t<0?o.slice(o.length-n):o.slice(0,n),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}},wu=class{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:n,value:o}=this.inner.next(e);return t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=o,this.afterBreak=!1),this}get lineBreak(){return!1}};typeof Symbol<"u"&&(ge.prototype[Symbol.iterator]=function(){return this.iter()},us.prototype[Symbol.iterator]=Cu.prototype[Symbol.iterator]=wu.prototype[Symbol.iterator]=function(){return this});var Dd=class{constructor(e,t,n,o){this.from=e,this.to=t,this.number=n,this.text=o}get length(){return this.to-this.from}},Di="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(r=>r?parseInt(r,36):1);for(let r=1;r<Di.length;r++)Di[r]+=Di[r-1];function S1(r){for(let e=1;e<Di.length;e+=2)if(Di[e]>r)return Di[e-1]<=r;return!1}function hC(r){return r>=127462&&r<=127487}var dC=8205;function wt(r,e,t=!0,n=!0){return(t?xC:T1)(r,e,n)}function xC(r,e,t){if(e==r.length)return e;e&&vC(r.charCodeAt(e))&&CC(r.charCodeAt(e-1))&&e--;let n=sr(r,e);for(e+=fs(n);e<r.length;){let o=sr(r,e);if(n==dC||o==dC||t&&S1(o))e+=fs(o),n=o;else if(hC(o)){let s=0,i=e-2;for(;i>=0&&hC(sr(r,i));)s++,i-=2;if(s%2==0)break;e+=2}else break}return e}function T1(r,e,t){for(;e>0;){let n=xC(r,e-2,t);if(n<e)return n;e--}return 0}function vC(r){return r>=56320&&r<57344}function CC(r){return r>=55296&&r<56320}function sr(r,e){let t=r.charCodeAt(e);if(!CC(t)||e+1==r.length)return t;let n=r.charCodeAt(e+1);return vC(n)?(t-55296<<10)+(n-56320)+65536:t}function wC(r){return r<=65535?String.fromCharCode(r):(r-=65536,String.fromCharCode((r>>10)+55296,(r&1023)+56320))}function fs(r){return r<65536?1:2}var Md=/\r\n?|\n/,Ct=function(r){return r[r.Simple=0]="Simple",r[r.TrackDel=1]="TrackDel",r[r.TrackBefore=2]="TrackBefore",r[r.TrackAfter=3]="TrackAfter",r}(Ct||(Ct={})),on=class{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t+1];e+=n<0?this.sections[t]:n}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,n=0,o=0;t<this.sections.length;){let s=this.sections[t++],i=this.sections[t++];i<0?(e(n,o,s),o+=s):o+=i,n+=s}}iterChangedRanges(e,t=!1){Rd(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let n=this.sections[t++],o=this.sections[t++];o<0?e.push(n,o):e.push(o,n)}return new on(e)}composeDesc(e){return this.empty?e:e.empty?this:SC(this,e)}mapDesc(e,t=!1){return e.empty?this:Pd(this,e,t)}mapPos(e,t=-1,n=Ct.Simple){let o=0,s=0;for(let i=0;i<this.sections.length;){let l=this.sections[i++],a=this.sections[i++],c=o+l;if(a<0){if(c>e)return s+(e-o);s+=l}else{if(n!=Ct.Simple&&c>=e&&(n==Ct.TrackDel&&o<e&&c>e||n==Ct.TrackBefore&&o<e||n==Ct.TrackAfter&&c>e))return null;if(c>e||c==e&&t<0&&!l)return e==o||t<0?s:s+a;s+=a}o=c}if(e>o)throw new RangeError(`Position ${e} is out of range for changeset of length ${o}`);return s}touchesRange(e,t=e){for(let n=0,o=0;n<this.sections.length&&o<=t;){let s=this.sections[n++],i=this.sections[n++],l=o+s;if(i>=0&&o<=t&&l>=e)return o<e&&l>t?"cover":!0;o=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let n=this.sections[t++],o=this.sections[t++];e+=(e?" ":"")+n+(o>=0?":"+o:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new on(e)}static create(e){return new on(e)}},Ke=class extends on{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return Rd(this,(t,n,o,s,i)=>e=e.replace(o,o+(n-t),i),!1),e}mapDesc(e,t=!1){return Pd(this,e,t,!0)}invert(e){let t=this.sections.slice(),n=[];for(let o=0,s=0;o<t.length;o+=2){let i=t[o],l=t[o+1];if(l>=0){t[o]=l,t[o+1]=i;let a=o>>1;for(;n.length<a;)n.push(ge.empty);n.push(i?e.slice(s,s+i):ge.empty)}s+=i}return new Ke(t,n)}compose(e){return this.empty?e:e.empty?this:SC(this,e,!0)}map(e,t=!1){return e.empty?this:Pd(this,e,t,!0)}iterChanges(e,t=!1){Rd(this,e,t)}get desc(){return on.create(this.sections)}filter(e){let t=[],n=[],o=[],s=new hs(this);e:for(let i=0,l=0;;){let a=i==e.length?1e9:e[i++];for(;l<a||l==a&&s.len==0;){if(s.done)break e;let u=Math.min(s.len,a-l);vt(o,u,-1);let f=s.ins==-1?-1:s.off==0?s.ins:0;vt(t,u,f),f>0&&ho(n,t,s.text),s.forward(u),l+=u}let c=e[i++];for(;l<c;){if(s.done)break e;let u=Math.min(s.len,c-l);vt(t,u,-1),vt(o,u,s.ins==-1?-1:s.off==0?s.ins:0),s.forward(u),l+=u}}return{changes:new Ke(t,n),filtered:on.create(o)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let n=this.sections[t],o=this.sections[t+1];o<0?e.push(n):o==0?e.push([n]):e.push([n].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,n){let o=[],s=[],i=0,l=null;function a(u=!1){if(!u&&!o.length)return;i<t&&vt(o,t-i,-1);let f=new Ke(o,s);l=l?l.compose(f.map(l)):f,o=[],s=[],i=0}function c(u){if(Array.isArray(u))for(let f of u)c(f);else if(u instanceof Ke){if(u.length!=t)throw new RangeError(`Mismatched change set length (got ${u.length}, expected ${t})`);a(),l=l?l.compose(u.map(l)):u}else{let{from:f,to:h=f,insert:d}=u;if(f>h||f<0||h>t)throw new RangeError(`Invalid change range ${f} to ${h} (in doc of length ${t})`);let p=d?typeof d=="string"?ge.of(d.split(n||Md)):d:ge.empty,m=p.length;if(f==h&&m==0)return;f<i&&a(),f>i&&vt(o,f-i,-1),vt(o,h-f,m),ho(s,o,p),i=h}}return c(e),a(!l),l}static empty(e){return new Ke(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let o=0;o<e.length;o++){let s=e[o];if(typeof s=="number")t.push(s,-1);else{if(!Array.isArray(s)||typeof s[0]!="number"||s.some((i,l)=>l&&typeof i!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(s.length==1)t.push(s[0],0);else{for(;n.length<o;)n.push(ge.empty);n[o]=ge.of(s.slice(1)),t.push(s[0],n[o].length)}}}return new Ke(t,n)}static createSet(e,t){return new Ke(e,t)}};function vt(r,e,t,n=!1){if(e==0&&t<=0)return;let o=r.length-2;o>=0&&t<=0&&t==r[o+1]?r[o]+=e:e==0&&r[o]==0?r[o+1]+=t:n?(r[o]+=e,r[o+1]+=t):r.push(e,t)}function ho(r,e,t){if(t.length==0)return;let n=e.length-2>>1;if(n<r.length)r[r.length-1]=r[r.length-1].append(t);else{for(;r.length<n;)r.push(ge.empty);r.push(t)}}function Rd(r,e,t){let n=r.inserted;for(let o=0,s=0,i=0;i<r.sections.length;){let l=r.sections[i++],a=r.sections[i++];if(a<0)o+=l,s+=l;else{let c=o,u=s,f=ge.empty;for(;c+=l,u+=a,a&&n&&(f=f.append(n[i-2>>1])),!(t||i==r.sections.length||r.sections[i+1]<0);)l=r.sections[i++],a=r.sections[i++];e(o,c,s,u,f),o=c,s=u}}}function Pd(r,e,t,n=!1){let o=[],s=n?[]:null,i=new hs(r),l=new hs(e);for(let a=-1;;)if(i.ins==-1&&l.ins==-1){let c=Math.min(i.len,l.len);vt(o,c,-1),i.forward(c),l.forward(c)}else if(l.ins>=0&&(i.ins<0||a==i.i||i.off==0&&(l.len<i.len||l.len==i.len&&!t))){let c=l.len;for(vt(o,l.ins,-1);c;){let u=Math.min(i.len,c);i.ins>=0&&a<i.i&&i.len<=u&&(vt(o,0,i.ins),s&&ho(s,o,i.text),a=i.i),i.forward(u),c-=u}l.next()}else if(i.ins>=0){let c=0,u=i.len;for(;u;)if(l.ins==-1){let f=Math.min(u,l.len);c+=f,u-=f,l.forward(f)}else if(l.ins==0&&l.len<u)u-=l.len,l.next();else break;vt(o,c,a<i.i?i.ins:0),s&&a<i.i&&ho(s,o,i.text),a=i.i,i.forward(i.len-u)}else{if(i.done&&l.done)return s?Ke.createSet(o,s):on.create(o);throw new Error("Mismatched change set lengths")}}function SC(r,e,t=!1){let n=[],o=t?[]:null,s=new hs(r),i=new hs(e);for(let l=!1;;){if(s.done&&i.done)return o?Ke.createSet(n,o):on.create(n);if(s.ins==0)vt(n,s.len,0,l),s.next();else if(i.len==0&&!i.done)vt(n,0,i.ins,l),o&&ho(o,n,i.text),i.next();else{if(s.done||i.done)throw new Error("Mismatched change set lengths");{let a=Math.min(s.len2,i.len),c=n.length;if(s.ins==-1){let u=i.ins==-1?-1:i.off?0:i.ins;vt(n,a,u,l),o&&u&&ho(o,n,i.text)}else i.ins==-1?(vt(n,s.off?0:s.len,a,l),o&&ho(o,n,s.textBit(a))):(vt(n,s.off?0:s.len,i.off?0:i.ins,l),o&&!i.off&&ho(o,n,i.text));l=(s.ins>a||i.ins>=0&&i.len>a)&&(l||n.length>c),s.forward2(a),i.forward(a)}}}}var hs=class{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?ge.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?ge.empty:t[n].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}},Or=class{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return this.flags&16?this.to:this.from}get head(){return this.flags&16?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&4?-1:this.flags&8?1:0}get bidiLevel(){let e=this.flags&3;return e==3?null:e}get goalColumn(){let e=this.flags>>5;return e==33554431?void 0:e}map(e,t=-1){let n,o;return this.empty?n=o=e.mapPos(this.from,t):(n=e.mapPos(this.from,1),o=e.mapPos(this.to,-1)),n==this.from&&o==this.to?this:new Or(n,o,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return F.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return F.range(this.anchor,n)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return F.range(e.anchor,e.head)}static create(e,t,n){return new Or(e,t,n)}},F=class{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:F.create(this.ranges.map(n=>n.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(e.ranges[t]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new F([this.main],0)}addRange(e,t=!0){return F.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let n=this.ranges.slice();return n[t]=e,F.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new F(e.ranges.map(t=>Or.fromJSON(t)),e.main)}static single(e,t=e){return new F([F.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let n=0,o=0;o<e.length;o++){let s=e[o];if(s.empty?s.from<=n:s.from<n)return F.normalized(e.slice(),t);n=s.to}return new F(e,t)}static cursor(e,t=0,n,o){return Or.create(e,e,(t==0?0:t<0?4:8)|(n==null?3:Math.min(2,n))|(o!=null?o:33554431)<<5)}static range(e,t,n,o){let s=(n!=null?n:33554431)<<5|(o==null?3:Math.min(2,o));return t<e?Or.create(t,e,24|s):Or.create(e,t,(t>e?4:0)|s)}static normalized(e,t=0){let n=e[t];e.sort((o,s)=>o.from-s.from),t=e.indexOf(n);for(let o=1;o<e.length;o++){let s=e[o],i=e[o-1];if(s.empty?s.from<=i.to:s.from<i.to){let l=i.from,a=Math.max(s.to,i.to);o<=t&&t--,e.splice(--o,2,s.anchor>s.head?F.range(a,l):F.range(l,a))}}return new F(e,t)}};function TC(r,e){for(let t of r.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}var Bd=0,se=class{constructor(e,t,n,o,s){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=o,this.id=Bd++,this.default=e([]),this.extensions=typeof s=="function"?s(this):s}static define(e={}){return new se(e.combine||(t=>t),e.compareInput||((t,n)=>t===n),e.compare||(e.combine?(t,n)=>t===n:Fd),!!e.static,e.enables)}of(e){return new Mi([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mi(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Mi(e,this,2,t)}from(e,t){return t||(t=n=>n),this.compute([e],n=>t(n.field(e)))}};function Fd(r,e){return r==e||r.length==e.length&&r.every((t,n)=>t===e[n])}var Mi=class{constructor(e,t,n,o){this.dependencies=e,this.facet=t,this.type=n,this.value=o,this.id=Bd++}dynamicSlot(e){var t;let n=this.value,o=this.facet.compareInput,s=this.id,i=e[s]>>1,l=this.type==2,a=!1,c=!1,u=[];for(let f of this.dependencies)f=="doc"?a=!0:f=="selection"?c=!0:((t=e[f.id])!==null&&t!==void 0?t:1)&1||u.push(e[f.id]);return{create(f){return f.values[i]=n(f),1},update(f,h){if(a&&h.docChanged||c&&(h.docChanged||h.selection)||Id(f,u)){let d=n(f);if(l?!pC(d,f.values[i],o):!o(d,f.values[i]))return f.values[i]=d,1}return 0},reconfigure:(f,h)=>{let d,p=h.config.address[s];if(p!=null){let m=Tu(h,p);if(this.dependencies.every(g=>g instanceof se?h.facet(g)===f.facet(g):g instanceof Ht?h.field(g,!1)==f.field(g,!1):!0)||(l?pC(d=n(f),m,o):o(d=n(f),m)))return f.values[i]=m,0}else d=n(f);return f.values[i]=d,1}}}};function pC(r,e,t){if(r.length!=e.length)return!1;for(let n=0;n<r.length;n++)if(!t(r[n],e[n]))return!1;return!0}function Id(r,e){let t=!1;for(let n of e)ia(r,n)&1&&(t=!0);return t}function E1(r,e,t){let n=t.map(a=>r[a.id]),o=t.map(a=>a.type),s=n.filter(a=>!(a&1)),i=r[e.id]>>1;function l(a){let c=[];for(let u=0;u<n.length;u++){let f=Tu(a,n[u]);if(o[u]==2)for(let h of f)c.push(h);else c.push(f)}return e.combine(c)}return{create(a){for(let c of n)ia(a,c);return a.values[i]=l(a),1},update(a,c){if(!Id(a,s))return 0;let u=l(a);return e.compare(u,a.values[i])?0:(a.values[i]=u,1)},reconfigure(a,c){let u=Id(a,n),f=c.config.facets[e.id],h=c.facet(e);if(f&&!u&&Fd(t,f))return a.values[i]=h,0;let d=l(a);return e.compare(d,h)?(a.values[i]=h,0):(a.values[i]=d,1)}}}var mC=se.define({static:!0}),Ht=class{constructor(e,t,n,o,s){this.id=e,this.createF=t,this.updateF=n,this.compareF=o,this.spec=s,this.provides=void 0}static define(e){let t=new Ht(Bd++,e.create,e.update,e.compare||((n,o)=>n===o),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(mC).find(n=>n.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:n=>(n.values[t]=this.create(n),1),update:(n,o)=>{let s=n.values[t],i=this.updateF(s,o);return this.compareF(s,i)?0:(n.values[t]=i,1)},reconfigure:(n,o)=>o.config.address[this.id]!=null?(n.values[t]=o.field(this),0):(n.values[t]=this.create(n),1)}}init(e){return[this,mC.of({field:this,create:e})]}get extension(){return this}},as={lowest:4,low:3,default:2,high:1,highest:0};function sa(r){return e=>new Su(e,r)}var ms={highest:sa(as.highest),high:sa(as.high),default:sa(as.default),low:sa(as.low),lowest:sa(as.lowest)},Su=class{constructor(e,t){this.inner=e,this.prec=t}},Pi=class{of(e){return new la(this,e)}reconfigure(e){return Pi.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}},la=class{constructor(e,t){this.compartment=e,this.inner=t}},Ii=class{constructor(e,t,n,o,s,i){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=o,this.staticValues=s,this.facets=i,this.statusTemplate=[];this.statusTemplate.length<n.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,n){let o=[],s=Object.create(null),i=new Map;for(let h of k1(e,t,i))h instanceof Ht?o.push(h):(s[h.facet.id]||(s[h.facet.id]=[])).push(h);let l=Object.create(null),a=[],c=[];for(let h of o)l[h.id]=c.length<<1,c.push(d=>h.slot(d));let u=n==null?void 0:n.config.facets;for(let h in s){let d=s[h],p=d[0].facet,m=u&&u[h]||[];if(d.every(g=>g.type==0))if(l[p.id]=a.length<<1|1,Fd(m,d))a.push(n.facet(p));else{let g=p.combine(d.map(y=>y.value));a.push(n&&p.compare(g,n.facet(p))?n.facet(p):g)}else{for(let g of d)g.type==0?(l[g.id]=a.length<<1|1,a.push(g.value)):(l[g.id]=c.length<<1,c.push(y=>g.dynamicSlot(y)));l[p.id]=c.length<<1,c.push(g=>E1(g,p,d))}}let f=c.map(h=>h(l));return new Ii(e,i,f,l,a,s)}};function k1(r,e,t){let n=[[],[],[],[],[]],o=new Map;function s(i,l){let a=o.get(i);if(a!=null){if(a<=l)return;let c=n[a].indexOf(i);c>-1&&n[a].splice(c,1),i instanceof la&&t.delete(i.compartment)}if(o.set(i,l),Array.isArray(i))for(let c of i)s(c,l);else if(i instanceof la){if(t.has(i.compartment))throw new RangeError("Duplicate use of compartment in extensions");let c=e.get(i.compartment)||i.inner;t.set(i.compartment,c),s(c,l)}else if(i instanceof Su)s(i.inner,i.prec);else if(i instanceof Ht)n[l].push(i),i.provides&&s(i.provides,l);else if(i instanceof Mi)n[l].push(i),i.facet.extensions&&s(i.facet.extensions,as.default);else{let c=i.extension;if(!c)throw new Error(`Unrecognized extension value in extension set (${i}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);s(c,l)}}return s(r,as.default),n.reduce((i,l)=>i.concat(l))}function ia(r,e){if(e&1)return 2;let t=e>>1,n=r.status[t];if(n==4)throw new Error("Cyclic dependency between fields and/or facets");if(n&2)return n;r.status[t]=4;let o=r.computeSlot(r,r.config.dynamicSlots[t]);return r.status[t]=2|o}function Tu(r,e){return e&1?r.config.staticValues[e>>1]:r.values[e>>1]}var EC=se.define(),kC=se.define({combine:r=>r.some(e=>e),static:!0}),DC=se.define({combine:r=>r.length?r[0]:void 0,static:!0}),MC=se.define(),RC=se.define(),PC=se.define(),IC=se.define({combine:r=>r.length?r[0]:!1}),sn=class{constructor(e,t){this.type=e,this.value=t}static define(){return new aa}},aa=class{of(e){return new sn(this,e)}},Ad=class{constructor(e){this.map=e}of(e){return new Ne(this,e)}},Ne=class{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new Ne(this.type,t)}is(e){return this.type==e}static define(e={}){return new Ad(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let o of e){let s=o.map(t);s&&n.push(s)}return n}};Ne.reconfigure=Ne.define();Ne.appendConfig=Ne.define();var We=class{constructor(e,t,n,o,s,i){this.startState=e,this.changes=t,this.selection=n,this.effects=o,this.annotations=s,this.scrollIntoView=i,this._doc=null,this._state=null,n&&TC(n,t.newLength),s.some(l=>l.type==We.time)||(this.annotations=s.concat(We.time.of(Date.now())))}static create(e,t,n,o,s,i){return new We(e,t,n,o,s,i)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(We.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}};We.time=sn.define();We.userEvent=sn.define();We.addToHistory=sn.define();We.remote=sn.define();function D1(r,e){let t=[];for(let n=0,o=0;;){let s,i;if(n<r.length&&(o==e.length||e[o]>=r[n]))s=r[n++],i=r[n++];else if(o<e.length)s=e[o++],i=e[o++];else return t;!t.length||t[t.length-1]<s?t.push(s,i):t[t.length-1]<i&&(t[t.length-1]=i)}}function AC(r,e,t){var n;let o,s,i;return t?(o=e.changes,s=Ke.empty(e.changes.length),i=r.changes.compose(e.changes)):(o=e.changes.map(r.changes),s=r.changes.mapDesc(e.changes,!0),i=r.changes.compose(o)),{changes:i,selection:e.selection?e.selection.map(s):(n=r.selection)===null||n===void 0?void 0:n.map(o),effects:Ne.mapEffects(r.effects,o).concat(Ne.mapEffects(e.effects,s)),annotations:r.annotations.length?r.annotations.concat(e.annotations):e.annotations,scrollIntoView:r.scrollIntoView||e.scrollIntoView}}function Ld(r,e,t){let n=e.selection,o=Ri(e.annotations);return e.userEvent&&(o=o.concat(We.userEvent.of(e.userEvent))),{changes:e.changes instanceof Ke?e.changes:Ke.of(e.changes||[],t,r.facet(DC)),selection:n&&(n instanceof F?n:F.single(n.anchor,n.head)),effects:Ri(e.effects),annotations:o,scrollIntoView:!!e.scrollIntoView}}function LC(r,e,t){let n=Ld(r,e.length?e[0]:{},r.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let s=1;s<e.length;s++){e[s].filter===!1&&(t=!1);let i=!!e[s].sequential;n=AC(n,Ld(r,e[s],i?n.changes.newLength:r.doc.length),i)}let o=We.create(r,n.changes,n.selection,n.effects,n.annotations,n.scrollIntoView);return R1(t?M1(o):o)}function M1(r){let e=r.startState,t=!0;for(let o of e.facet(MC)){let s=o(r);if(s===!1){t=!1;break}Array.isArray(s)&&(t=t===!0?s:D1(t,s))}if(t!==!0){let o,s;if(t===!1)s=r.changes.invertedDesc,o=Ke.empty(e.doc.length);else{let i=r.changes.filter(t);o=i.changes,s=i.filtered.mapDesc(i.changes).invertedDesc}r=We.create(e,o,r.selection&&r.selection.map(s),Ne.mapEffects(r.effects,s),r.annotations,r.scrollIntoView)}let n=e.facet(RC);for(let o=n.length-1;o>=0;o--){let s=n[o](r);s instanceof We?r=s:Array.isArray(s)&&s.length==1&&s[0]instanceof We?r=s[0]:r=LC(e,Ri(s),!1)}return r}function R1(r){let e=r.startState,t=e.facet(PC),n=r;for(let o=t.length-1;o>=0;o--){let s=t[o](r);s&&Object.keys(s).length&&(n=AC(n,Ld(e,s,r.changes.newLength),!0))}return n==r?r:We.create(e,r.changes,r.selection,n.effects,n.annotations,n.scrollIntoView)}var P1=[];function Ri(r){return r==null?P1:Array.isArray(r)?r:[r]}var Ot=function(r){return r[r.Word=0]="Word",r[r.Space=1]="Space",r[r.Other=2]="Other",r}(Ot||(Ot={})),I1=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Od;try{Od=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function A1(r){if(Od)return Od.test(r);for(let e=0;e<r.length;e++){let t=r[e];if(/\w/.test(t)||t>"\x80"&&(t.toUpperCase()!=t.toLowerCase()||I1.test(t)))return!0}return!1}function L1(r){return e=>{if(!/\S/.test(e))return Ot.Space;if(A1(e))return Ot.Word;for(let t=0;t<r.length;t++)if(e.indexOf(r[t])>-1)return Ot.Word;return Ot.Other}}var ve=class{constructor(e,t,n,o,s,i){this.config=e,this.doc=t,this.selection=n,this.values=o,this.status=e.statusTemplate.slice(),this.computeSlot=s,i&&(i._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)ia(this,l<<1);this.computeSlot=null}field(e,t=!0){let n=this.config.address[e.id];if(n==null){if(t)throw new RangeError("Field is not present in this state");return}return ia(this,n),Tu(this,n)}update(...e){return LC(this,e,!0)}applyTransaction(e){let t=this.config,{base:n,compartments:o}=t;for(let i of e.effects)i.is(Pi.reconfigure)?(t&&(o=new Map,t.compartments.forEach((l,a)=>o.set(a,l)),t=null),o.set(i.value.compartment,i.value.extension)):i.is(Ne.reconfigure)?(t=null,n=i.value):i.is(Ne.appendConfig)&&(t=null,n=Ri(n).concat(i.value));let s;t?s=e.startState.values.slice():(t=Ii.resolve(n,o,this),s=new ve(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(l,a)=>a.reconfigure(l,this),null).values),new ve(t,e.newDoc,e.newSelection,s,(i,l)=>l.update(i,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:F.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),o=this.changes(n.changes),s=[n.range],i=Ri(n.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),c=this.changes(a.changes),u=c.map(o);for(let h=0;h<l;h++)s[h]=s[h].map(u);let f=o.mapDesc(c,!0);s.push(a.range.map(f)),o=o.compose(u),i=Ne.mapEffects(i,u).concat(Ne.mapEffects(Ri(a.effects),f))}return{changes:o,selection:F.create(s,t.mainIndex),effects:i}}changes(e=[]){return e instanceof Ke?e:Ke.of(e,this.doc.length,this.facet(ve.lineSeparator))}toText(e){return ge.of(e.split(this.facet(ve.lineSeparator)||Md))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(ia(this,t),Tu(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let o=e[n];o instanceof Ht&&this.config.address[o.id]!=null&&(t[n]=o.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e,t={},n){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let o=[];if(n){for(let s in n)if(Object.prototype.hasOwnProperty.call(e,s)){let i=n[s],l=e[s];o.push(i.init(a=>i.spec.fromJSON(l,a)))}}return ve.create({doc:e.doc,selection:F.fromJSON(e.selection),extensions:t.extensions?o.concat([t.extensions]):o})}static create(e={}){let t=Ii.resolve(e.extensions||[],new Map),n=e.doc instanceof ge?e.doc:ge.of((e.doc||"").split(t.staticFacet(ve.lineSeparator)||Md)),o=e.selection?e.selection instanceof F?e.selection:F.single(e.selection.anchor,e.selection.head):F.single(0);return TC(o,n.length),t.staticFacet(kC)||(o=o.asSingle()),new ve(t,n,o,t.dynamicSlots.map(()=>null),(s,i)=>i.create(s),null)}get tabSize(){return this.facet(ve.tabSize)}get lineBreak(){return this.facet(ve.lineSeparator)||`
26
- `}get readOnly(){return this.facet(IC)}phrase(e,...t){for(let n of this.facet(ve.phrases))if(Object.prototype.hasOwnProperty.call(n,e)){e=n[e];break}return t.length&&(e=e.replace(/\$(\$|\d*)/g,(n,o)=>{if(o=="$")return"$";let s=+(o||1);return!s||s>t.length?n:t[s-1]})),e}languageDataAt(e,t,n=-1){let o=[];for(let s of this.facet(EC))for(let i of s(this,t,n))Object.prototype.hasOwnProperty.call(i,e)&&o.push(i[e]);return o}charCategorizer(e){return L1(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:o}=this.doc.lineAt(e),s=this.charCategorizer(e),i=e-n,l=e-n;for(;i>0;){let a=wt(t,i,!1);if(s(t.slice(a,i))!=Ot.Word)break;i=a}for(;l<o;){let a=wt(t,l);if(s(t.slice(l,a))!=Ot.Word)break;l=a}return i==l?null:F.range(i+n,l+n)}};ve.allowMultipleSelections=kC;ve.tabSize=se.define({combine:r=>r.length?r[0]:4});ve.lineSeparator=DC;ve.readOnly=IC;ve.phrases=se.define({compare(r,e){let t=Object.keys(r),n=Object.keys(e);return t.length==n.length&&t.every(o=>r[o]==e[o])}});ve.languageData=EC;ve.changeFilter=MC;ve.transactionFilter=RC;ve.transactionExtender=PC;Pi.reconfigure=Ne.define();function gs(r,e,t={}){let n={};for(let o of r)for(let s of Object.keys(o)){let i=o[s],l=n[s];if(l===void 0)n[s]=i;else if(!(l===i||i===void 0))if(Object.hasOwnProperty.call(t,s))n[s]=t[s](l,i);else throw new Error("Config merge conflict for field "+s)}for(let o in e)n[o]===void 0&&(n[o]=e[o]);return n}var Un=class{eq(e){return this==e}range(e,t=e){return ds.create(e,t,this)}};Un.prototype.startSide=Un.prototype.endSide=0;Un.prototype.point=!1;Un.prototype.mapMode=Ct.TrackDel;var ds=class{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new ds(e,t,n)}};function Hd(r,e){return r.from-e.from||r.value.startSide-e.value.startSide}var ca=class{constructor(e,t,n,o){this.from=e,this.to=t,this.value=n,this.maxPoint=o}get length(){return this.to[this.to.length-1]}findIndex(e,t,n,o=0){let s=n?this.to:this.from;for(let i=o,l=s.length;;){if(i==l)return i;let a=i+l>>1,c=s[a]-e||(n?this.value[a].endSide:this.value[a].startSide)-t;if(a==i)return c>=0?i:l;c>=0?l=a:i=a+1}}between(e,t,n,o){for(let s=this.findIndex(t,-1e9,!0),i=this.findIndex(n,1e9,!1,s);s<i;s++)if(o(this.from[s]+e,this.to[s]+e,this.value[s])===!1)return!1}map(e,t){let n=[],o=[],s=[],i=-1,l=-1;for(let a=0;a<this.value.length;a++){let c=this.value[a],u=this.from[a]+e,f=this.to[a]+e,h,d;if(u==f){let p=t.mapPos(u,c.startSide,c.mapMode);if(p==null||(h=d=p,c.startSide!=c.endSide&&(d=t.mapPos(u,c.endSide),d<h)))continue}else if(h=t.mapPos(u,c.startSide),d=t.mapPos(f,c.endSide),h>d||h==d&&c.startSide>0&&c.endSide<=0)continue;(d-h||c.endSide-c.startSide)<0||(i<0&&(i=h),c.point&&(l=Math.max(l,d-h)),n.push(c),o.push(h-i),s.push(d-i))}return{mapped:n.length?new ca(o,s,n,l):null,pos:i}}},Ae=class{constructor(e,t,n,o){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=o}static create(e,t,n,o){return new Ae(e,t,n,o)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:o=0,filterTo:s=this.length}=e,i=e.filter;if(t.length==0&&!i)return this;if(n&&(t=t.slice().sort(Hd)),this.isEmpty)return t.length?Ae.of(t):this;let l=new Eu(this,null,-1).goto(0),a=0,c=[],u=new ir;for(;l.value||a<t.length;)if(a<t.length&&(l.from-t[a].from||l.startSide-t[a].value.startSide)>=0){let f=t[a++];u.addInner(f.from,f.to,f.value)||c.push(f)}else l.rangeIndex==1&&l.chunkIndex<this.chunk.length&&(a==t.length||this.chunkEnd(l.chunkIndex)<t[a].from)&&(!i||o>this.chunkEnd(l.chunkIndex)||s<this.chunkPos[l.chunkIndex])&&u.addChunk(this.chunkPos[l.chunkIndex],this.chunk[l.chunkIndex])?l.nextChunk():((!i||o>l.to||s<l.from||i(l.from,l.to,l.value))&&(u.addInner(l.from,l.to,l.value)||c.push(ds.create(l.from,l.to,l.value))),l.next());return u.finishInner(this.nextLayer.isEmpty&&!c.length?Ae.empty:this.nextLayer.update({add:c,filter:i,filterFrom:o,filterTo:s}))}map(e){if(e.empty||this.isEmpty)return this;let t=[],n=[],o=-1;for(let i=0;i<this.chunk.length;i++){let l=this.chunkPos[i],a=this.chunk[i],c=e.touchesRange(l,l+a.length);if(c===!1)o=Math.max(o,a.maxPoint),t.push(a),n.push(e.mapPos(l));else if(c===!0){let{mapped:u,pos:f}=a.map(l,e);u&&(o=Math.max(o,u.maxPoint),t.push(u),n.push(f))}}let s=this.nextLayer.map(e);return t.length==0?s:new Ae(n,t,s||Ae.empty,o)}between(e,t,n){if(!this.isEmpty){for(let o=0;o<this.chunk.length;o++){let s=this.chunkPos[o],i=this.chunk[o];if(t>=s&&e<=s+i.length&&i.between(s,e-s,t-s,n)===!1)return}this.nextLayer.between(e,t,n)}}iter(e=0){return ps.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e,t=0){return ps.from(e).goto(t)}static compare(e,t,n,o,s=-1){let i=e.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),l=t.filter(f=>f.maxPoint>0||!f.isEmpty&&f.maxPoint>=s),a=gC(i,l,n),c=new cs(i,a,s),u=new cs(l,a,s);n.iterGaps((f,h,d)=>bC(c,f,u,h,d,o)),n.empty&&n.length==0&&bC(c,0,u,0,0,o)}static eq(e,t,n=0,o){o==null&&(o=1e9-1);let s=e.filter(u=>!u.isEmpty&&t.indexOf(u)<0),i=t.filter(u=>!u.isEmpty&&e.indexOf(u)<0);if(s.length!=i.length)return!1;if(!s.length)return!0;let l=gC(s,i),a=new cs(s,l,0).goto(n),c=new cs(i,l,0).goto(n);for(;;){if(a.to!=c.to||!Nd(a.active,c.active)||a.point&&(!c.point||!a.point.eq(c.point)))return!1;if(a.to>o)return!0;a.next(),c.next()}}static spans(e,t,n,o,s=-1){let i=new cs(e,null,s).goto(t),l=t,a=i.openStart;for(;;){let c=Math.min(i.to,n);if(i.point){let u=i.activeForPoint(i.to),f=i.pointFrom<t?u.length+1:Math.min(u.length,a);o.point(l,c,i.point,u,f,i.pointRank),a=Math.min(i.openEnd(c),u.length)}else c>l&&(o.span(l,c,i.active,a),a=i.openEnd(c));if(i.to>n)return a+(i.point&&i.to>n?1:0);l=i.to,i.next()}}static of(e,t=!1){let n=new ir;for(let o of e instanceof ds?[e]:t?O1(e):e)n.add(o.from,o.to,o.value);return n.finish()}};Ae.empty=new Ae([],[],null,-1);function O1(r){if(r.length>1)for(let e=r[0],t=1;t<r.length;t++){let n=r[t];if(Hd(e,n)>0)return r.slice().sort(Hd);e=n}return r}Ae.empty.nextLayer=Ae.empty;var ir=class{finishChunk(e){this.chunks.push(new ca(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new ir)).add(e,t,n)}addInner(e,t,n){let o=e-this.lastTo||n.startSide-this.last.endSide;if(o<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return o<0?!1:(this.from.length==250&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(Ae.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),this.chunks.length==0)return e;let t=Ae.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}};function gC(r,e,t){let n=new Map;for(let s of r)for(let i=0;i<s.chunk.length;i++)s.chunk[i].maxPoint<=0&&n.set(s.chunk[i],s.chunkPos[i]);let o=new Set;for(let s of e)for(let i=0;i<s.chunk.length;i++){let l=n.get(s.chunk[i]);l!=null&&(t?t.mapPos(l):l)==s.chunkPos[i]&&!(t!=null&&t.touchesRange(l,l+s.chunk[i].length))&&o.add(s.chunk[i])}return o}var Eu=class{constructor(e,t,n,o=0){this.layer=e,this.skip=t,this.minPoint=n,this.rank=o}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e,t=-1e9){return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex<this.layer.chunk.length;){let o=this.layer.chunk[this.chunkIndex];if(!(this.skip&&this.skip.has(o)||this.layer.chunkEnd(this.chunkIndex)<e||o.maxPoint<this.minPoint))break;this.chunkIndex++,n=!1}if(this.chunkIndex<this.layer.chunk.length){let o=this.layer.chunk[this.chunkIndex].findIndex(e-this.layer.chunkPos[this.chunkIndex],t,!0);(!n||this.rangeIndex<o)&&this.setRangeIndex(o)}this.next()}forward(e,t){(this.to-e||this.endSide-t)<0&&this.gotoInner(e,t,!0)}next(){for(;;)if(this.chunkIndex==this.layer.chunk.length){this.from=this.to=1e9,this.value=null;break}else{let e=this.layer.chunkPos[this.chunkIndex],t=this.layer.chunk[this.chunkIndex],n=e+t.from[this.rangeIndex];if(this.from=n,this.to=e+t.to[this.rangeIndex],this.value=t.value[this.rangeIndex],this.setRangeIndex(this.rangeIndex+1),this.minPoint<0||this.value.point&&this.to-this.from>=this.minPoint)break}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex<this.layer.chunk.length&&this.skip.has(this.layer.chunk[this.chunkIndex]);)this.chunkIndex++;this.rangeIndex=0}else this.rangeIndex=e}nextChunk(){this.chunkIndex++,this.rangeIndex=0,this.next()}compare(e){return this.from-e.from||this.startSide-e.startSide||this.rank-e.rank||this.to-e.to||this.endSide-e.endSide}},ps=class{constructor(e){this.heap=e}static from(e,t=null,n=-1){let o=[];for(let s=0;s<e.length;s++)for(let i=e[s];!i.isEmpty;i=i.nextLayer)i.maxPoint>=n&&o.push(new Eu(i,t,n,s));return o.length==1?o[0]:new ps(o)}get startSide(){return this.value?this.value.startSide:0}goto(e,t=-1e9){for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)kd(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)kd(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(this.heap.length==0)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),kd(this.heap,0)}}};function kd(r,e){for(let t=r[e];;){let n=(e<<1)+1;if(n>=r.length)break;let o=r[n];if(n+1<r.length&&o.compare(r[n+1])>=0&&(o=r[n+1],n++),t.compare(o)<0)break;r[n]=t,r[e]=o,e=n}}var cs=class{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=ps.from(e,t,n)}goto(e,t=-1e9){return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){yu(this.active,e),yu(this.activeTo,e),yu(this.activeRank,e),this.minActive=yC(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:o,rank:s}=this.cursor;for(;t<this.activeRank.length&&this.activeRank[t]<=s;)t++;xu(this.active,t,n),xu(this.activeTo,t,o),xu(this.activeRank,t,s),e&&xu(e,t,this.cursor.from),this.minActive=yC(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let o=this.minActive;if(o>-1&&(this.activeTo[o]-this.cursor.from||this.active[o].endSide-this.cursor.startSide)<0){if(this.activeTo[o]>e){this.to=this.activeTo[o],this.endSide=this.active[o].endSide;break}this.removeActive(o),n&&yu(n,o)}else if(this.cursor.value)if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}else{let s=this.cursor.value;if(!s.point)this.addActive(n),this.cursor.next();else if(t&&this.cursor.to==this.to&&this.cursor.from<this.cursor.to)this.cursor.next();else{this.point=s,this.pointFrom=this.cursor.from,this.pointRank=this.cursor.rank,this.to=this.cursor.to,this.endSide=s.endSide,this.cursor.next(),this.forward(this.to,this.endSide);break}}else{this.to=this.endSide=1e9;break}}if(n){this.openStart=0;for(let o=n.length-1;o>=0&&n[o]<e;o--)this.openStart++}}activeForPoint(e){if(!this.active.length)return this.active;let t=[];for(let n=this.active.length-1;n>=0&&!(this.activeRank[n]<this.pointRank);n--)(this.activeTo[n]>e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}};function bC(r,e,t,n,o,s){r.goto(e),t.goto(n);let i=n+o,l=n,a=n-e;for(;;){let c=r.to+a-t.to||r.endSide-t.endSide,u=c<0?r.to+a:t.to,f=Math.min(u,i);if(r.point||t.point?r.point&&t.point&&(r.point==t.point||r.point.eq(t.point))&&Nd(r.activeForPoint(r.to),t.activeForPoint(t.to))||s.comparePoint(l,f,r.point,t.point):f>l&&!Nd(r.active,t.active)&&s.compareRange(l,f,r.active,t.active),u>i)break;l=u,c<=0&&r.next(),c>=0&&t.next()}}function Nd(r,e){if(r.length!=e.length)return!1;for(let t=0;t<r.length;t++)if(r[t]!=e[t]&&!r[t].eq(e[t]))return!1;return!0}function yu(r,e){for(let t=e,n=r.length-1;t<n;t++)r[t]=r[t+1];r.pop()}function xu(r,e,t){for(let n=r.length-1;n>=e;n--)r[n+1]=r[n];r[e]=t}function yC(r,e){let t=-1,n=1e9;for(let o=0;o<e.length;o++)(e[o]-n||r[o].endSide-r[t].endSide)<0&&(t=o,n=e[o]);return t}function bs(r,e,t=r.length){let n=0;for(let o=0;o<t;)r.charCodeAt(o)==9?(n+=e-n%e,o++):(n++,o=wt(r,o));return n}function OC(r,e,t,n){for(let o=0,s=0;;){if(s>=e)return o;if(o==r.length)break;s+=r.charCodeAt(o)==9?t-s%t:1,o=wt(r,o)}return n===!0?-1:r.length}var zd="\u037C",HC=typeof Symbol>"u"?"__"+zd:Symbol.for(zd),Vd=typeof Symbol>"u"?"__styleSet"+Math.floor(Math.random()*1e8):Symbol("styleSet"),NC=typeof globalThis<"u"?globalThis:typeof window<"u"?window:{},yn=class{constructor(e,t){this.rules=[];let{finish:n}=t||{};function o(i){return/^@/.test(i)?[i]:i.split(/,\s*/)}function s(i,l,a,c){let u=[],f=/^@(\w+)\b/.exec(i[0]),h=f&&f[1]=="keyframes";if(f&&l==null)return a.push(i[0]+";");for(let d in l){let p=l[d];if(/&/.test(d))s(d.split(/,\s*/).map(m=>i.map(g=>m.replace(/&/,g))).reduce((m,g)=>m.concat(g)),p,a);else if(p&&typeof p=="object"){if(!f)throw new RangeError("The value of a property ("+d+") should be a primitive value.");s(o(d),p,u,h)}else p!=null&&u.push(d.replace(/_.*/,"").replace(/[A-Z]/g,m=>"-"+m.toLowerCase())+": "+p+";")}(u.length||h)&&a.push((n&&!f&&!c?i.map(n):i).join(", ")+" {"+u.join(" ")+"}")}for(let i in e)s(o(i),e[i],this.rules)}getRules(){return this.rules.join(`
27
- `)}static newName(){let e=NC[HC]||1;return NC[HC]=e+1,zd+e.toString(36)}static mount(e,t){(e[Vd]||new $d(e)).mount(Array.isArray(t)?t:[t])}},BC=new Map,$d=class{constructor(e){let t=e.ownerDocument||e,n=t.defaultView;if(!e.head&&e.adoptedStyleSheets&&n.CSSStyleSheet){let o=BC.get(t);if(o)return e.adoptedStyleSheets=[o.sheet,...e.adoptedStyleSheets],e[Vd]=o;this.sheet=new n.CSSStyleSheet,e.adoptedStyleSheets=[this.sheet,...e.adoptedStyleSheets],BC.set(t,this)}else{this.styleTag=t.createElement("style");let o=e.head||e;o.insertBefore(this.styleTag,o.firstChild)}this.modules=[],e[Vd]=this}mount(e){let t=this.sheet,n=0,o=0;for(let s=0;s<e.length;s++){let i=e[s],l=this.modules.indexOf(i);if(l<o&&l>-1&&(this.modules.splice(l,1),o--,l=-1),l==-1){if(this.modules.splice(o++,0,i),t)for(let a=0;a<i.rules.length;a++)t.insertRule(i.rules[a],n++)}else{for(;o<l;)n+=this.modules[o++].rules.length;n+=i.rules.length,o++}}if(!t){let s="";for(let i=0;i<this.modules.length;i++)s+=this.modules[i].getRules()+`
28
- `;this.styleTag.textContent=s}}};var Hr={8:"Backspace",9:"Tab",10:"Enter",12:"NumLock",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",44:"PrintScreen",45:"Insert",46:"Delete",59:";",61:"=",91:"Meta",92:"Meta",106:"*",107:"+",108:",",109:"-",110:".",111:"/",144:"NumLock",145:"ScrollLock",160:"Shift",161:"Shift",162:"Control",163:"Control",164:"Alt",165:"Alt",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Ai={48:")",49:"!",50:"@",51:"#",52:"$",53:"%",54:"^",55:"&",56:"*",57:"(",59:":",61:"+",173:"_",186:":",187:"+",188:"<",189:"_",190:">",191:"?",192:"~",219:"{",220:"|",221:"}",222:'"'},H1=typeof navigator<"u"&&/Mac/.test(navigator.platform),N1=typeof navigator<"u"&&/MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent);for(rt=0;rt<10;rt++)Hr[48+rt]=Hr[96+rt]=String(rt);var rt;for(rt=1;rt<=24;rt++)Hr[rt+111]="F"+rt;var rt;for(rt=65;rt<=90;rt++)Hr[rt]=String.fromCharCode(rt+32),Ai[rt]=String.fromCharCode(rt);var rt;for(ku in Hr)Ai.hasOwnProperty(ku)||(Ai[ku]=Hr[ku]);var ku;function FC(r){var e=H1&&r.metaKey&&r.shiftKey&&!r.ctrlKey&&!r.altKey||N1&&r.shiftKey&&r.key&&r.key.length==1||r.key=="Unidentified",t=!e&&r.key||(r.shiftKey?Ai:Hr)[r.keyCode]||r.key||"Unidentified";return t=="Esc"&&(t="Escape"),t=="Del"&&(t="Delete"),t=="Left"&&(t="ArrowLeft"),t=="Up"&&(t="ArrowUp"),t=="Right"&&(t="ArrowRight"),t=="Down"&&(t="ArrowDown"),t}function zu(r){let e;return r.nodeType==11?e=r.getSelection?r:r.ownerDocument:e=r,e.getSelection()}function Qd(r,e){return e?r==e||r.contains(e.nodeType!=1?e.parentNode:e):!1}function B1(r){let e=r.activeElement;for(;e&&e.shadowRoot;)e=e.shadowRoot.activeElement;return e}function Ou(r,e){if(!e.anchorNode)return!1;try{return Qd(r,e.anchorNode)}catch{return!1}}function ma(r){return r.nodeType==3?xs(r,0,r.nodeValue.length).getClientRects():r.nodeType==1?r.getClientRects():[]}function Vu(r,e,t,n){return t?zC(r,e,t,n,-1)||zC(r,e,t,n,1):!1}function $u(r){for(var e=0;;e++)if(r=r.previousSibling,!r)return e}function zC(r,e,t,n,o){for(;;){if(r==t&&e==n)return!0;if(e==(o<0?0:go(r))){if(r.nodeName=="DIV")return!1;let s=r.parentNode;if(!s||s.nodeType!=1)return!1;e=$u(r)+(o<0?0:1),r=s}else if(r.nodeType==1){if(r=r.childNodes[e+(o<0?-1:0)],r.nodeType==1&&r.contentEditable=="false")return!1;e=o<0?go(r):0}else return!1}}function go(r){return r.nodeType==3?r.nodeValue.length:r.childNodes.length}function Dp(r,e){let t=e?r.left:r.right;return{left:t,right:t,top:r.top,bottom:r.bottom}}function F1(r){return{left:0,right:r.innerWidth,top:0,bottom:r.innerHeight}}function z1(r,e,t,n,o,s,i,l){let a=r.ownerDocument,c=a.defaultView||window;for(let u=r,f=!1;u&&!f;)if(u.nodeType==1){let h,d=u==a.body;if(d)h=F1(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(f=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let g=u.getBoundingClientRect();h={left:g.left,right:g.left+u.clientWidth,top:g.top,bottom:g.top+u.clientHeight}}let p=0,m=0;if(o=="nearest")e.top<h.top?(m=-(h.top-e.top+i),t>0&&e.bottom>h.bottom+m&&(m=e.bottom-h.bottom+m+i)):e.bottom>h.bottom&&(m=e.bottom-h.bottom+i,t<0&&e.top-m<h.top&&(m=-(h.top+m-e.top+i)));else{let g=e.bottom-e.top,y=h.bottom-h.top;m=(o=="center"&&g<=y?e.top+g/2-y/2:o=="start"||o=="center"&&t<0?e.top-i:e.bottom-y+i)-h.top}if(n=="nearest"?e.left<h.left?(p=-(h.left-e.left+s),t>0&&e.right>h.right+p&&(p=e.right-h.right+p+s)):e.right>h.right&&(p=e.right-h.right+s,t<0&&e.left<h.left+p&&(p=-(h.left+p-e.left+s))):p=(n=="center"?e.left+(e.right-e.left)/2-(h.right-h.left)/2:n=="start"==l?e.left-s:e.right-(h.right-h.left)+s)-h.left,p||m)if(d)c.scrollBy(p,m);else{let g=0,y=0;if(m){let C=u.scrollTop;u.scrollTop+=m,y=u.scrollTop-C}if(p){let C=u.scrollLeft;u.scrollLeft+=p,g=u.scrollLeft-C}e={left:e.left-g,top:e.top-y,right:e.right-g,bottom:e.bottom-y},g&&Math.abs(g-p)<1&&(n="nearest"),y&&Math.abs(y-m)<1&&(o="nearest")}if(d)break;u=u.assignedSlot||u.parentNode}else if(u.nodeType==11)u=u.host;else break}function V1(r){let e=r.ownerDocument;for(let t=r.parentNode;t&&t!=e.body;)if(t.nodeType==1){if(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth)return t;t=t.assignedSlot||t.parentNode}else if(t.nodeType==11)t=t.host;else break;return null}var jd=class{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?go(t):0),n,Math.min(e.focusOffset,n?go(n):0))}set(e,t,n,o){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=o}},Li=null;function yw(r){if(r.setActive)return r.setActive();if(Li)return r.focus(Li);let e=[];for(let t=r;t&&(e.push(t,t.scrollTop,t.scrollLeft),t!=t.ownerDocument);t=t.parentNode);if(r.focus(Li==null?{get preventScroll(){return Li={preventScroll:!0},!0}}:void 0),!Li){Li=!1;for(let t=0;t<e.length;){let n=e[t++],o=e[t++],s=e[t++];n.scrollTop!=o&&(n.scrollTop=o),n.scrollLeft!=s&&(n.scrollLeft=s)}}}var VC;function xs(r,e,t=e){let n=VC||(VC=document.createRange());return n.setEnd(r,t),n.setStart(r,e),n}function Ni(r,e,t){let n={key:e,code:e,keyCode:t,which:t,cancelable:!0},o=new KeyboardEvent("keydown",n);o.synthetic=!0,r.dispatchEvent(o);let s=new KeyboardEvent("keyup",n);return s.synthetic=!0,r.dispatchEvent(s),o.defaultPrevented||s.defaultPrevented}function $1(r){for(;r;){if(r&&(r.nodeType==9||r.nodeType==11&&r.host))return r;r=r.assignedSlot||r.parentNode}return null}function xw(r){for(;r.attributes.length;)r.removeAttributeNode(r.attributes[0])}function K1(r,e){let t=e.focusNode,n=e.focusOffset;if(!t||e.anchorNode!=t||e.anchorOffset!=n)return!1;for(n=Math.min(n,go(t));;)if(n){if(t.nodeType!=1)return!1;let o=t.childNodes[n-1];o.contentEditable=="false"?n--:(t=o,n=go(t))}else{if(t==r)return!0;n=$u(t),t=t.parentNode}}function vw(r){return r.scrollTop>Math.max(1,r.scrollHeight-r.clientHeight-4)}var pt=class{constructor(e,t,n=!0){this.node=e,this.offset=t,this.precise=n}static before(e,t){return new pt(e.parentNode,$u(e),t)}static after(e,t){return new pt(e.parentNode,$u(e)+1,t)}},Mp=[],Re=class{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(this.flags&2){let n=this.dom,o=null,s;for(let i of this.children){if(i.flags&7){if(!i.dom&&(s=o?o.nextSibling:n.firstChild)){let l=Re.get(s);(!l||!l.parent&&l.canReuseDOM(i))&&i.reuseDOM(s)}i.sync(e,t),i.flags&=-8}if(s=o?o.nextSibling:n.firstChild,t&&!t.written&&t.node==n&&s!=i.dom&&(t.written=!0),i.dom.parentNode==n)for(;s&&s!=i.dom;)s=$C(s);else n.insertBefore(i.dom,s);o=i.dom}for(s=o?o.nextSibling:n.firstChild,s&&t&&t.node==n&&(t.written=!0);s;)s=$C(s)}else if(this.flags&1)for(let n of this.children)n.flags&7&&(n.sync(e,t),n.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];else{let o=go(e)==0?0:t==0?-1:1;for(;;){let s=e.parentNode;if(s==this.dom)break;o==0&&s.firstChild!=s.lastChild&&(e==s.firstChild?o=-1:o=1),e=s}o<0?n=e:n=e.nextSibling}if(n==this.dom.firstChild)return 0;for(;n&&!Re.get(n);)n=n.nextSibling;if(!n)return this.length;for(let o=0,s=0;;o++){let i=this.children[o];if(i.dom==n)return s;s+=i.length+i.breakAfter}}domBoundsAround(e,t,n=0){let o=-1,s=-1,i=-1,l=-1;for(let a=0,c=n,u=n;a<this.children.length;a++){let f=this.children[a],h=c+f.length;if(c<e&&h>t)return f.domBoundsAround(e,t,c);if(h>=e&&o==-1&&(o=a,s=c),c>t&&f.dom.parentNode==this.dom){i=a,l=u;break}u=h,c=h+f.breakAfter}return{from:s,to:l<0?n+this.length:l,startDOM:(o?this.children[o-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:i<this.children.length&&i>=0?this.children[i].dom:null}}markDirty(e=!1){this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),t.flags&1)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,this.flags&7&&this.markParentsDirty(!0))}setDOM(e){this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t,n=Mp){this.markDirty();for(let o=e;o<t;o++){let s=this.children[o];s.parent==this&&s.destroy()}this.children.splice(e,t-e,...n);for(let o=0;o<n.length;o++)n[o].setParent(this)}ignoreMutation(e){return!1}ignoreEvent(e){return!1}childCursor(e=this.length){return new Ku(this.children,e,this.children.length)}childPos(e,t=1){return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+(e=="Text"?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,t,n,o,s,i){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!((this.flags|e.flags)&8)}getSide(){return 0}destroy(){this.parent=null}};Re.prototype.breakAfter=0;function $C(r){let e=r.nextSibling;return r.parentNode.removeChild(r),e}var Ku=class{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e,t=1){for(;;){if(e>this.pos||e==this.pos&&(t>0||this.i==0||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}};function Cw(r,e,t,n,o,s,i,l,a){let{children:c}=r,u=c.length?c[e]:null,f=s.length?s[s.length-1]:null,h=f?f.breakAfter:i;if(!(e==n&&u&&!i&&!h&&s.length<2&&u.merge(t,o,s.length?f:null,t==0,l,a))){if(n<c.length){let d=c[n];d&&o<d.length?(e==n&&(d=d.split(o),o=0),!h&&f&&d.merge(0,o,f,!0,0,a)?s[s.length-1]=d:(o&&d.merge(0,o,null,!1,0,a),s.push(d))):d!=null&&d.breakAfter&&(f?f.breakAfter=1:i=1),n++}for(u&&(u.breakAfter=i,t>0&&(!i&&s.length&&u.merge(t,u.length,s[0],!1,l,0)?u.breakAfter=s.shift().breakAfter:(t<u.length||u.children.length&&u.children[u.children.length-1].length==0)&&u.merge(t,u.length,null,!1,l,0),e++));e<n&&s.length;)if(c[n-1].become(s[s.length-1]))n--,s.pop(),a=s.length?0:l;else if(c[e].become(s[0]))e++,s.shift(),l=s.length?0:a;else break;!s.length&&e&&n<c.length&&!c[e-1].breakAfter&&c[n].merge(0,0,c[e-1],!1,l,a)&&e--,(e<n||s.length)&&r.replaceChildren(e,n,s)}}function ww(r,e,t,n,o,s){let i=r.childCursor(),{i:l,off:a}=i.findPos(t,1),{i:c,off:u}=i.findPos(e,-1),f=e-t;for(let h of n)f+=h.length;r.length+=f,Cw(r,c,u,l,a,n,0,o,s)}var Oi="\uFFFF",Wu=class{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(ve.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=Oi}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let o=e;;){this.findPointBefore(n,o);let s=this.text.length;this.readNode(o);let i=o.nextSibling;if(i==t)break;let l=Re.get(o),a=Re.get(i);(l&&a?l.breakAfter:(l?l.breakAfter:KC(o))||KC(i)&&(o.nodeName!="BR"||o.cmIgnore)&&this.text.length>s)&&this.lineBreak(),o=i}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,o=this.lineSeparator?null:/\r\n?|\n/g;;){let s=-1,i=1,l;if(this.lineSeparator?(s=t.indexOf(this.lineSeparator,n),i=this.lineSeparator.length):(l=o.exec(t))&&(s=l.index,i=l[0].length),this.append(t.slice(n,s<0?t.length:s)),s<0)break;if(this.lineBreak(),i>1)for(let a of this.points)a.node==e&&a.pos>this.text.length&&(a.pos-=i-1);n=s+i}}readNode(e){if(e.cmIgnore)return;let t=Re.get(e),n=t&&t.overrideDOMText;if(n!=null){this.findPointInside(e,n.length);for(let o=n.iter();!o.next().done;)o.lineBreak?this.lineBreak():this.append(o.value)}else e.nodeType==3?this.readTextNode(e):e.nodeName=="BR"?e.nextSibling&&this.lineBreak():e.nodeType==1&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(e.nodeType==3?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+Math.min(t,n.offset))}};function KC(r){return r.nodeType==1&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(r.nodeName)}var Uu=class{constructor(e,t){this.node=e,this.offset=t,this.pos=-1}},ln=typeof navigator<"u"?navigator:{userAgent:"",vendor:"",platform:""},qd=typeof document<"u"?document:{documentElement:{style:{}}},Xd=/Edge\/(\d+)/.exec(ln.userAgent),Sw=/MSIE \d/.test(ln.userAgent),Yd=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(ln.userAgent),Xu=!!(Sw||Yd||Xd),WC=!Xu&&/gecko\/(\d+)/i.test(ln.userAgent),Kd=!Xu&&/Chrome\/(\d+)/.exec(ln.userAgent),UC="webkitFontSmoothing"in qd.documentElement.style,Tw=!Xu&&/Apple Computer/.test(ln.vendor),_C=Tw&&(/Mobile\/\w+/.test(ln.userAgent)||ln.maxTouchPoints>2),ee={mac:_C||/Mac/.test(ln.platform),windows:/Win/.test(ln.platform),linux:/Linux|X11/.test(ln.platform),ie:Xu,ie_version:Sw?qd.documentMode||6:Yd?+Yd[1]:Xd?+Xd[1]:0,gecko:WC,gecko_version:WC?+(/Firefox\/(\d+)/.exec(ln.userAgent)||[0,0])[1]:0,chrome:!!Kd,chrome_version:Kd?+Kd[1]:0,ios:_C,android:/Android\b/.test(ln.userAgent),webkit:UC,safari:Tw,webkit_version:UC?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:qd.documentElement.style.tabSize!=null?"tab-size":"-moz-tab-size"},W1=256,vn=class extends Re{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){e.nodeType==3&&this.createDOM(e)}merge(e,t,n){return this.flags&8||n&&(!(n instanceof vn)||this.length-(t-e)+n.length>W1||n.flags&8)?!1:(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new vn(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=this.flags&8,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new pt(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return U1(this.dom,e,t)}},_n=class extends Re{constructor(e,t=[],n=0){super(),this.mark=e,this.children=t,this.length=n;for(let o of t)o.setParent(this)}setAttrs(e){if(xw(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!((this.flags|e.flags)&8)}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?this.flags&4&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,o,s,i){return n&&(!(n instanceof _n&&n.mark.eq(this.mark))||e&&s<=0||t<this.length&&i<=0)?!1:(ww(this,e,t,n?n.children:[],s-1,i-1),this.markDirty(),!0)}split(e){let t=[],n=0,o=-1,s=0;for(let l of this.children){let a=n+l.length;a>e&&t.push(n<e?l.split(e-n):l),o<0&&n>=e&&(o=s),n=a,s++}let i=this.length-e;return this.length=e,o>-1&&(this.children.length=o,this.markDirty()),new _n(this.mark,t,i)}domAtPos(e){return Ew(this,e)}coordsAt(e,t){return Dw(this,e,t)}};function U1(r,e,t){let n=r.nodeValue.length;e>n&&(e=n);let o=e,s=e,i=0;e==0&&t<0||e==n&&t>=0?ee.chrome||ee.gecko||(e?(o--,i=1):s<n&&(s++,i=-1)):t<0?o--:s<n&&s++;let l=xs(r,o,s).getClientRects();if(!l.length)return null;let a=l[(i?i<0:t>=0)?0:l.length-1];return ee.safari&&!i&&a.width==0&&(a=Array.prototype.find.call(l,c=>c.width)||a),i?Dp(a,i<0):a||null}var Nr=class extends Re{constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}static create(e,t,n){return new Nr(e,t,n)}split(e){let t=Nr.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}getSide(){return this.side}merge(e,t,n,o,s,i){return n&&(!(n instanceof Nr)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&i<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}become(e){return e instanceof Nr&&e.side==this.side&&this.widget.constructor==e.widget.constructor?(this.widget.compare(e.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get overrideDOMText(){if(this.length==0)return ge.empty;let e=this;for(;e.parent;)e=e.parent;let{view:t}=e,n=t&&t.state.doc,o=this.posAtStart;return n?n.slice(o,o+this.length):ge.empty}domAtPos(e){return(this.length?e==0:this.side>0)?pt.before(this.dom):pt.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let o=this.dom.getClientRects(),s=null;if(!o.length)return null;let i=this.side?this.side<0:e>0;for(let l=i?o.length-1:0;s=o[l],!(e>0?l==0:l==o.length-1||s.top<s.bottom);l+=i?-1:1);return Dp(s,!i)}get isEditable(){return!1}get isWidget(){return!0}get isHidden(){return this.widget.isHidden}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},bo=class extends Re{constructor(e){super(),this.side=e}get length(){return 0}merge(){return!1}become(e){return e instanceof bo&&e.side==this.side}split(){return new bo(this.side)}sync(){if(!this.dom){let e=document.createElement("img");e.className="cm-widgetBuffer",e.setAttribute("aria-hidden","true"),this.setDOM(e)}}getSide(){return this.side}domAtPos(e){return this.side>0?pt.before(this.dom):pt.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return ge.empty}get isHidden(){return!0}};vn.prototype.children=Nr.prototype.children=bo.prototype.children=Mp;function Ew(r,e){let t=r.dom,{children:n}=r,o=0;for(let s=0;o<n.length;o++){let i=n[o],l=s+i.length;if(!(l==s&&i.getSide()<=0)){if(e>s&&e<l&&i.dom.parentNode==t)return i.domAtPos(e-s);if(e<=s)break;s=l}}for(let s=o;s>0;s--){let i=n[s-1];if(i.dom.parentNode==t)return i.domAtPos(i.length)}for(let s=o;s<n.length;s++){let i=n[s];if(i.dom.parentNode==t)return i.domAtPos(0)}return new pt(t,0)}function kw(r,e,t){let n,{children:o}=r;t>0&&e instanceof _n&&o.length&&(n=o[o.length-1])instanceof _n&&n.mark.eq(e.mark)?kw(n,e.children[0],t-1):(o.push(e),e.setParent(r)),r.length+=e.length}function Dw(r,e,t){let n=null,o=-1,s=null,i=-1;function l(c,u){for(let f=0,h=0;f<c.children.length&&h<=u;f++){let d=c.children[f],p=h+d.length;p>=u&&(d.children.length?l(d,u-h):(!s||s.isHidden&&t>0)&&(p>u||h==p&&d.getSide()>0)?(s=d,i=u-h):(h<u||h==p&&d.getSide()<0&&!d.isHidden)&&(n=d,o=u-h)),h=p}}l(r,e);let a=(t<0?n:s)||n||s;return a?a.coordsAt(Math.max(0,a==n?o:i),t):_1(r)}function _1(r){let e=r.dom.lastChild;if(!e)return r.dom.getBoundingClientRect();let t=ma(e);return t[t.length-1]||null}function Jd(r,e){for(let t in r)t=="class"&&e.class?e.class+=" "+r.class:t=="style"&&e.style?e.style+=";"+r.style:e[t]=r[t];return e}var GC=Object.create(null);function Rp(r,e,t){if(r==e)return!0;r||(r=GC),e||(e=GC);let n=Object.keys(r),o=Object.keys(e);if(n.length-(t&&n.indexOf(t)>-1?1:0)!=o.length-(t&&o.indexOf(t)>-1?1:0))return!1;for(let s of n)if(s!=t&&(o.indexOf(s)==-1||r[s]!==e[s]))return!1;return!0}function Zd(r,e,t){let n=null;if(e)for(let o in e)t&&o in t||r.removeAttribute(n=o);if(t)for(let o in t)e&&e[o]==t[o]||r.setAttribute(n=o,t[o]);return!!n}function G1(r){let e=Object.create(null);for(let t=0;t<r.attributes.length;t++){let n=r.attributes[t];e[n.name]=n.value}return e}var Fr=class{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}destroy(e){}},Ye=function(r){return r[r.Text=0]="Text",r[r.WidgetBefore=1]="WidgetBefore",r[r.WidgetAfter=2]="WidgetAfter",r[r.WidgetRange=3]="WidgetRange",r}(Ye||(Ye={})),lt=class extends Un{constructor(e,t,n,o){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=o}get heightRelevant(){return!1}static mark(e){return new vs(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new cr(e,t,t,n,e.widget||null,!1)}static replace(e){let t=!!e.block,n,o;if(e.isBlockGap)n=-5e8,o=4e8;else{let{start:s,end:i}=Mw(e,t);n=(s?t?-3e8:-1:5e8)-1,o=(i?t?2e8:1:-6e8)+1}return new cr(e,n,o,t,e.widget||null,!0)}static line(e){return new Cs(e)}static set(e,t=!1){return Ae.of(e,t)}hasHeight(){return this.widget?this.widget.estimatedHeight>-1:!1}};lt.none=Ae.empty;var vs=class extends lt{constructor(e){let{start:t,end:n}=Mw(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof vs&&this.tagName==e.tagName&&(this.class||((t=this.attrs)===null||t===void 0?void 0:t.class))==(e.class||((n=e.attrs)===null||n===void 0?void 0:n.class))&&Rp(this.attrs,e.attrs,"class")}range(e,t=e){if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}};vs.prototype.point=!1;var Cs=class extends lt{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof Cs&&this.spec.class==e.spec.class&&Rp(this.spec.attributes,e.spec.attributes)}range(e,t=e){if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}};Cs.prototype.mapMode=Ct.TrackBefore;Cs.prototype.point=!0;var cr=class extends lt{constructor(e,t,n,o,s,i){super(t,n,s,e),this.block=o,this.isReplace=i,this.mapMode=o?t<=0?Ct.TrackBefore:Ct.TrackAfter:Ct.TrackDel}get type(){return this.startSide<this.endSide?Ye.WidgetRange:this.startSide<=0?Ye.WidgetBefore:Ye.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof cr&&Q1(this.widget,e.widget)&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide}range(e,t=e){if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}};cr.prototype.point=!0;function Mw(r,e=!1){let{inclusiveStart:t,inclusiveEnd:n}=r;return t==null&&(t=r.inclusive),n==null&&(n=r.inclusive),{start:t!=null?t:e,end:n!=null?n:e}}function Q1(r,e){return r==e||!!(r&&e&&r.compare(e))}function ep(r,e,t,n=0){let o=t.length-1;o>=0&&t[o]+n>=r?t[o]=Math.max(t[o],e):t.push(r,e)}var dt=class extends Re{constructor(){super(...arguments),this.children=[],this.length=0,this.prevAttrs=void 0,this.attrs=null,this.breakAfter=0}merge(e,t,n,o,s,i){if(n){if(!(n instanceof dt))return!1;this.dom||n.transferDOM(this)}return o&&this.setDeco(n?n.attrs:null),ww(this,e,t,n?n.children:[],s,i),!0}split(e){let t=new dt;if(t.breakAfter=this.breakAfter,this.length==0)return t;let{i:n,off:o}=this.childPos(e);o&&(t.append(this.children[n].split(o),0),this.children[n].merge(o,this.children[n].length,null,!1,0,0),n++);for(let s=n;s<this.children.length;s++)t.append(this.children[s],0);for(;n>0&&this.children[n-1].length==0;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=this.prevAttrs===void 0?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){Rp(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){kw(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=Jd(t,this.attrs||{})),n&&(this.attrs=Jd({class:n},this.attrs||{}))}domAtPos(e){return Ew(this,e)}reuseDOM(e){e.nodeName=="DIV"&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?this.flags&4&&(xw(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),this.prevAttrs!==void 0&&(Zd(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let o=this.dom.lastChild;for(;o&&Re.get(o)instanceof _n;)o=o.lastChild;if(!o||!this.length||o.nodeName!="BR"&&((n=Re.get(o))===null||n===void 0?void 0:n.isEditable)==!1&&(!ee.ios||!this.children.some(s=>s instanceof vn))){let s=document.createElement("BR");s.cmIgnore=!0,this.dom.appendChild(s)}}measureTextSize(){if(this.children.length==0||this.length>20)return null;let e=0,t;for(let n of this.children){if(!(n instanceof vn)||/[^ -~]/.test(n.text))return null;let o=ma(n.dom);if(o.length!=1)return null;e+=o[0].width,t=o[0].height}return e?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:e/this.length,textHeight:t}:null}coordsAt(e,t){let n=Dw(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:o}=this.parent.view.viewState,s=n.bottom-n.top;if(Math.abs(s-o.lineHeight)<2&&o.textHeight<s){let i=(s-o.textHeight)/2;return{top:n.top+i,bottom:n.bottom-i,left:n.left,right:n.left}}}return n}become(e){return!1}get type(){return Ye.Text}static find(e,t){for(let n=0,o=0;n<e.children.length;n++){let s=e.children[n],i=o+s.length;if(i>=t){if(s instanceof dt)return s;if(i>t)break}o=i+s.breakAfter}return null}},Br=class extends Re{constructor(e,t,n){super(),this.widget=e,this.length=t,this.type=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,o,s,i){return n&&(!(n instanceof Br)||!this.widget.compare(n.widget)||e>0&&s<=0||t<this.length&&i<=0)?!1:(this.length=e+(n?n.length:0)+(this.length-t),!0)}domAtPos(e){return e==0?pt.before(this.dom):pt.after(this.dom,e==this.length)}split(e){let t=this.length-e;this.length=e;let n=new Br(this.widget,t,this.type);return n.breakAfter=this.breakAfter,n}get children(){return Mp}sync(e){(!this.dom||!this.widget.updateDOM(this.dom,e))&&(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.dom.contentEditable="false")}get overrideDOMText(){return this.parent?this.parent.view.state.doc.slice(this.posAtStart,this.posAtEnd):ge.empty}domBoundsAround(){return null}become(e){return e instanceof Br&&e.widget.constructor==this.widget.constructor?(e.widget.compare(this.widget)||this.markDirty(!0),this.dom&&!this.prevWidget&&(this.prevWidget=this.widget),this.widget=e.widget,this.length=e.length,this.type=e.type,this.breakAfter=e.breakAfter,!0):!1}ignoreMutation(){return!0}ignoreEvent(e){return this.widget.ignoreEvent(e)}get isEditable(){return!1}get isWidget(){return!0}coordsAt(e,t){return this.widget.coordsAt(this.dom,e,t)}destroy(){super.destroy(),this.dom&&this.widget.destroy(this.dom)}},ys=class{constructor(e,t,n,o){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=o,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(this.content.length==0)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!e.breakAfter&&!(e instanceof Br&&e.type==Ye.WidgetBefore)}getLine(){return this.curLine||(this.content.push(this.curLine=new dt),this.atCursorPos=!0),this.curLine}flushBuffer(e=this.bufferMarks){this.pendingBuffer&&(this.curLine.append(Du(new bo(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:s,lineBreak:i,done:l}=this.cursor.next(this.skip);if(this.skip=0,l)throw new Error("Ran out of text content when drawing inline views");if(i){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}else this.text=s,this.textOff=0}let o=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(Du(new vn(this.text.slice(this.textOff,this.textOff+o)),t),n),this.atCursorPos=!0,this.textOff+=o,e-=o,n=0}}span(e,t,n,o){this.buildText(t-e,n,o),this.pos=t,this.openStart<0&&(this.openStart=o)}point(e,t,n,o,s,i){if(this.disallowBlockEffectsFor[i]&&n instanceof cr){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let l=t-e;if(n instanceof cr)if(n.block){let{type:a}=n;a==Ye.WidgetAfter&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new Br(n.widget||new _u("div"),l,a))}else{let a=Nr.create(n.widget||new _u("span"),l,l?0:n.startSide),c=this.atCursorPos&&!a.isEditable&&s<=o.length&&(e<t||n.startSide>0),u=!a.isEditable&&(e<t||s>o.length||n.startSide<=0),f=this.getLine();this.pendingBuffer==2&&!c&&!a.isEditable&&(this.pendingBuffer=0),this.flushBuffer(o),c&&(f.append(Du(new bo(1),o),s),s=o.length+Math.max(0,s-o.length)),f.append(Du(a,o),s),this.atCursorPos=u,this.pendingBuffer=u?e<t||s>o.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=o.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);l&&(this.textOff+l<=this.text.length?this.textOff+=l:(this.skip+=l-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=s)}static build(e,t,n,o,s){let i=new ys(e,t,n,s);return i.openEnd=Ae.spans(o,t,n,i),i.openStart<0&&(i.openStart=i.openEnd),i.finish(i.openEnd),i}};function Du(r,e){for(let t of e)r=new _n(t,[r],r.length);return r}var _u=class extends Fr{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}},Rw=se.define(),Pw=se.define(),Iw=se.define(),Aw=se.define(),tp=se.define(),Lw=se.define(),Ow=se.define(),Hw=se.define({combine:r=>r.some(e=>e)}),Nw=se.define({combine:r=>r.some(e=>e)}),Bi=class{constructor(e,t="nearest",n="nearest",o=5,s=5){this.range=e,this.y=t,this.x=n,this.yMargin=o,this.xMargin=s}map(e){return e.empty?this:new Bi(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin)}},QC=Ne.define({map:(r,e)=>r.map(e)});function ar(r,e,t){let n=r.facet(Aw);n.length?n[0](e):window.onerror?window.onerror(String(e),t,void 0,void 0,e):t?console.error(t+":",e):console.error(e)}var Yu=se.define({combine:r=>r.length?r[0]:!0}),j1=0,ua=se.define(),Cn=class{constructor(e,t,n,o){this.id=e,this.create=t,this.domEventHandlers=n,this.extension=o(this)}static define(e,t){let{eventHandlers:n,provide:o,decorations:s}=t||{};return new Cn(j1++,e,n,i=>{let l=[ua.of(i)];return s&&l.push(ga.of(a=>{let c=a.plugin(i);return c?s(c):lt.none})),o&&l.push(o(i)),l})}static fromClass(e,t){return Cn.define(n=>new e(n),t)}},da=class{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let t=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(t)}catch(n){if(ar(t.state,n,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch{}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){ar(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(!((t=this.value)===null||t===void 0)&&t.destroy)try{this.value.destroy()}catch(n){ar(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}},Bw=se.define(),Pp=se.define(),ga=se.define(),Ip=se.define(),Fw=se.define();function zw(r){let e=0,t=0,n=0,o=0;for(let s of r.state.facet(Fw)){let i=s(r);i&&(i.left!=null&&(e=Math.max(e,i.left)),i.right!=null&&(t=Math.max(t,i.right)),i.top!=null&&(n=Math.max(n,i.top)),i.bottom!=null&&(o=Math.max(o,i.bottom)))}return{left:e,right:t,top:n,bottom:o}}var fa=se.define(),Gt=class{constructor(e,t,n,o){this.fromA=e,this.toA=t,this.fromB=n,this.toB=o}join(e){return new Gt(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let o=e[t-1];if(!(o.fromA>n.toA)){if(o.toA<n.fromA)break;n=n.join(o),e.splice(t-1,1)}}return e.splice(t,0,n),e}static extendWithRanges(e,t){if(t.length==0)return e;let n=[];for(let o=0,s=0,i=0,l=0;;o++){let a=o==e.length?null:e[o],c=i-l,u=a?a.fromB:1e9;for(;s<t.length&&t[s]<u;){let f=t[s],h=t[s+1],d=Math.max(l,f),p=Math.min(u,h);if(d<=p&&new Gt(d+c,p+c,d,p).addToSet(n),h>u)break;s+=2}if(!a)return n;new Gt(a.fromA,a.toA,a.fromB,a.toB).addToSet(n),i=a.toA,l=a.toB}}},Fi=class{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=Ke.empty(this.startState.doc.length);for(let s of n)this.changes=this.changes.compose(s.changes);let o=[];this.changes.iterChangedRanges((s,i,l,a)=>o.push(new Gt(s,i,l,a))),this.changedRanges=o}static create(e,t,n){return new Fi(e,t,n)}get viewportChanged(){return(this.flags&4)>0}get heightChanged(){return(this.flags&2)>0}get geometryChanged(){return this.docChanged||(this.flags&10)>0}get focusChanged(){return(this.flags&1)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some(e=>e.selection)}get empty(){return this.flags==0&&this.transactions.length==0}},Xe=function(r){return r[r.LTR=0]="LTR",r[r.RTL=1]="RTL",r}(Xe||(Xe={})),np=Xe.LTR,q1=Xe.RTL;function Vw(r){let e=[];for(let t=0;t<r.length;t++)e.push(1<<+r[t]);return e}var X1=Vw("88888888888888888888888888888888888666888888787833333333337888888000000000000000000000000008888880000000000000000000000000088888888888888888888888888888888888887866668888088888663380888308888800000000000000000000000800000000000000000000000000000008"),Y1=Vw("4444448826627288999999999992222222222222222222222222222222222222222222222229999999999999999999994444444444644222822222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222999999949999999229989999223333333333"),rp=Object.create(null),lr=[];for(let r of["()","[]","{}"]){let e=r.charCodeAt(0),t=r.charCodeAt(1);rp[e]=t,rp[t]=-e}function J1(r){return r<=247?X1[r]:1424<=r&&r<=1524?2:1536<=r&&r<=1785?Y1[r-1536]:1774<=r&&r<=2220?4:8192<=r&&r<=8203?256:64336<=r&&r<=65023?4:r==8204?256:1}var Z1=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\ufb50-\ufdff]/,mo=class{constructor(e,t,n){this.from=e,this.to=t,this.level=n}get dir(){return this.level%2?q1:np}side(e,t){return this.dir==t==e?this.to:this.from}static find(e,t,n,o){let s=-1;for(let i=0;i<e.length;i++){let l=e[i];if(l.from<=t&&l.to>=t){if(l.level==n)return i;(s<0||(o!=0?o<0?l.from<t:l.to>t:e[s].level>l.level))&&(s=i)}}if(s<0)throw new RangeError("Index out of range");return s}},Ue=[];function eI(r,e){let t=r.length,n=e==np?1:2,o=e==np?2:1;if(!r||n==1&&!Z1.test(r))return $w(t);for(let i=0,l=n,a=n;i<t;i++){let c=J1(r.charCodeAt(i));c==512?c=l:c==8&&a==4&&(c=16),Ue[i]=c==4?2:c,c&7&&(a=c),l=c}for(let i=0,l=n,a=n;i<t;i++){let c=Ue[i];if(c==128)i<t-1&&l==Ue[i+1]&&l&24?c=Ue[i]=l:Ue[i]=256;else if(c==64){let u=i+1;for(;u<t&&Ue[u]==64;)u++;let f=i&&l==8||u<t&&Ue[u]==8?a==1?1:8:256;for(let h=i;h<u;h++)Ue[h]=f;i=u-1}else c==8&&a==1&&(Ue[i]=1);l=c,c&7&&(a=c)}for(let i=0,l=0,a=0,c,u,f;i<t;i++)if(u=rp[c=r.charCodeAt(i)])if(u<0){for(let h=l-3;h>=0;h-=3)if(lr[h+1]==-u){let d=lr[h+2],p=d&2?n:d&4?d&1?o:n:0;p&&(Ue[i]=Ue[lr[h]]=p),l=h;break}}else{if(lr.length==189)break;lr[l++]=i,lr[l++]=c,lr[l++]=a}else if((f=Ue[i])==2||f==1){let h=f==n;a=h?0:1;for(let d=l-3;d>=0;d-=3){let p=lr[d+2];if(p&2)break;if(h)lr[d+2]|=2;else{if(p&4)break;lr[d+2]|=4}}}for(let i=0;i<t;i++)if(Ue[i]==256){let l=i+1;for(;l<t&&Ue[l]==256;)l++;let a=(i?Ue[i-1]:n)==1,c=(l<t?Ue[l]:n)==1,u=a==c?a?1:2:n;for(let f=i;f<l;f++)Ue[f]=u;i=l-1}let s=[];if(n==1)for(let i=0;i<t;){let l=i,a=Ue[i++]!=1;for(;i<t&&a==(Ue[i]!=1);)i++;if(a)for(let c=i;c>l;){let u=c,f=Ue[--c]!=2;for(;c>l&&f==(Ue[c-1]!=2);)c--;s.push(new mo(c,u,f?2:1))}else s.push(new mo(l,i,0))}else for(let i=0;i<t;){let l=i,a=Ue[i++]==2;for(;i<t&&a==(Ue[i]==2);)i++;s.push(new mo(l,i,a?1:2))}return s}function $w(r){return[new mo(0,r,0)]}var Kw="";function tI(r,e,t,n,o){var s;let i=n.head-r.from,l=-1;if(i==0){if(!o||!r.length)return null;e[0].level!=t&&(i=e[0].side(!1,t),l=0)}else if(i==r.length){if(o)return null;let h=e[e.length-1];h.level!=t&&(i=h.side(!0,t),l=e.length-1)}l<0&&(l=mo.find(e,i,(s=n.bidiLevel)!==null&&s!==void 0?s:-1,n.assoc));let a=e[l];i==a.side(o,t)&&(a=e[l+=o?1:-1],i=a.side(!o,t));let c=o==(a.dir==t),u=wt(r.text,i,c);if(Kw=r.text.slice(Math.min(i,u),Math.max(i,u)),u!=a.side(o,t))return F.cursor(u+r.from,c?-1:1,a.level);let f=l==(o?e.length-1:0)?null:e[l+(o?1:-1)];return!f&&a.level!=t?F.cursor(o?r.to:r.from,o?-1:1,t):f&&f.level<a.level?F.cursor(f.side(!o,t)+r.from,o?1:-1,f.level):F.cursor(u+r.from,o?-1:1,a.level)}var Gu=class extends Re{constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[],this.hasComposition=null,this.markedForComposition=new Set,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new dt],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new Gt(0,0,0,e.state.doc.length)],0,null)}get length(){return this.view.state.doc.length}update(e){let t=e.changedRanges;this.minWidth>0&&t.length&&(t.every(({fromA:l,toA:a})=>a<this.minWidthFrom||l>this.minWidthTo)?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let n=this.view.inputState.composing<0?null:rI(this.view,e.changes);if(this.hasComposition){this.markedForComposition.clear();let{from:l,to:a}=this.hasComposition;t=new Gt(l,a,e.changes.mapPos(l,-1),e.changes.mapPos(a,1)).addToSet(t.slice())}this.hasComposition=n?{from:n.range.fromB,to:n.range.toB}:null,(ee.ie||ee.chrome)&&!n&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let o=this.decorations,s=this.updateDeco(),i=sI(o,s,e.changes);return t=Gt.extendWithRanges(t,i),!(this.flags&7)&&t.length==0?!1:(this.updateInner(t,e.startState.doc.length,n),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:o}=this.view;o.ignore(()=>{this.dom.style.height=this.view.viewState.contentHeight+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let i=ee.chrome||ee.ios?{node:o.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,i),this.flags&=-8,i&&(i.written||o.selectionRange.focusNode!=i.node)&&(this.forceSelection=!0),this.dom.style.height=""}),this.markedForComposition.forEach(i=>i.flags&=-9);let s=[];if(this.view.viewport.from||this.view.viewport.to<this.view.state.doc.length)for(let i of this.children)i instanceof Br&&i.widget instanceof Qu&&s.push(i.dom);o.updateGaps(s)}updateChildren(e,t,n){let o=n?n.range.addToSet(e.slice()):e,s=this.childCursor(t);for(let i=o.length-1;;i--){let l=i>=0?o[i]:null;if(!l)break;let{fromA:a,toA:c,fromB:u,toB:f}=l,h,d,p,m;if(n&&n.range.fromB<f&&n.range.toB>u){let x=ys.build(this.view.state.doc,u,n.range.fromB,this.decorations,this.dynamicDecorationMap),S=ys.build(this.view.state.doc,n.range.toB,f,this.decorations,this.dynamicDecorationMap);d=x.breakAtStart,p=x.openStart,m=S.openEnd;let b=this.compositionView(n);S.breakAtStart?b.breakAfter=1:S.content.length&&b.merge(b.length,b.length,S.content[0],!1,S.openStart,0)&&(b.breakAfter=S.content[0].breakAfter,S.content.shift()),x.content.length&&b.merge(0,0,x.content[x.content.length-1],!0,0,x.openEnd)&&x.content.pop(),h=x.content.concat(b).concat(S.content)}else({content:h,breakAtStart:d,openStart:p,openEnd:m}=ys.build(this.view.state.doc,u,f,this.decorations,this.dynamicDecorationMap));let{i:g,off:y}=s.findPos(c,1),{i:C,off:v}=s.findPos(a,-1);Cw(this,C,v,g,y,h,d,p,m)}n&&this.fixCompositionDOM(n)}compositionView(e){let t=new vn(e.text.nodeValue);t.flags|=8;for(let{deco:o}of e.marks)t=new _n(o,[t],t.length);let n=new dt;return n.append(t,0),n}fixCompositionDOM(e){let t=(s,i)=>{i.flags|=8,this.markedForComposition.add(i);let l=Re.get(s);l!=i&&(l&&(l.dom=null),i.setDOM(s))},n=this.childPos(e.range.fromB,1),o=this.children[n.i];t(e.line,o);for(let s=e.marks.length-1;s>=-1;s--)n=o.childPos(n.off,1),o=o.children[n.i],t(s>=0?e.marks[s].node:e.text,o)}updateSelection(e=!1,t=!1){(e||!this.view.observer.selectionRange.focusNode)&&this.view.observer.readSelectionRange();let n=this.view.root.activeElement,o=n==this.dom,s=!o&&Ou(this.dom,this.view.observer.selectionRange)&&!(n&&this.dom.contains(n));if(!(o||t||s))return;let i=this.forceSelection;this.forceSelection=!1;let l=this.view.state.selection.main,a=this.domAtPos(l.anchor),c=l.empty?a:this.domAtPos(l.head);if(ee.gecko&&l.empty&&!this.hasComposition&&nI(a)){let f=document.createTextNode("");this.view.observer.ignore(()=>a.node.insertBefore(f,a.node.childNodes[a.offset]||null)),a=c=new pt(f,0),i=!0}let u=this.view.observer.selectionRange;(i||!u.focusNode||!Vu(a.node,a.offset,u.anchorNode,u.anchorOffset)||!Vu(c.node,c.offset,u.focusNode,u.focusOffset))&&(this.view.observer.ignore(()=>{ee.android&&ee.chrome&&this.dom.contains(u.focusNode)&&iI(u.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let f=zu(this.view.root);if(f)if(l.empty){if(ee.gecko){let h=oI(a.node,a.offset);if(h&&h!=3){let d=Uw(a.node,a.offset,h==1?1:-1);d&&(a=new pt(d,h==1?0:d.nodeValue.length))}}f.collapse(a.node,a.offset),l.bidiLevel!=null&&u.cursorBidiLevel!=null&&(u.cursorBidiLevel=l.bidiLevel)}else if(f.extend){f.collapse(a.node,a.offset);try{f.extend(c.node,c.offset)}catch{}}else{let h=document.createRange();l.anchor>l.head&&([a,c]=[c,a]),h.setEnd(c.node,c.offset),h.setStart(a.node,a.offset),f.removeAllRanges(),f.addRange(h)}s&&this.view.root.activeElement==this.dom&&(this.dom.blur(),n&&n.focus())}),this.view.observer.setSelectionRange(a,c)),this.impreciseAnchor=a.precise?null:new pt(u.anchorNode,u.anchorOffset),this.impreciseHead=c.precise?null:new pt(u.focusNode,u.focusOffset)}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=zu(e.root),{anchorNode:o,anchorOffset:s}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let i=dt.find(this,t.head);if(!i)return;let l=i.posAtStart;if(t.head==l||t.head==l+i.length)return;let a=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!a||!c||a.bottom>c.top)return;let u=this.domAtPos(t.head+t.assoc);n.collapse(u.node,u.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let f=e.observer.selectionRange;e.docView.posFromDOM(f.anchorNode,f.anchorOffset)!=t.from&&n.collapse(o,s)}nearest(e){for(let t=e;t;){let n=Re.get(t);if(n&&n.rootView==this)return n;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t<this.children.length-1;){let o=this.children[t];if(n<o.length||o instanceof dt)break;t++,n=0}return this.children[t].domAtPos(n)}coordsAt(e,t){for(let n=this.length,o=this.children.length-1;;o--){let s=this.children[o],i=n-s.breakAfter-s.length;if(e>i||e==i&&s.type!=Ye.WidgetBefore&&s.type!=Ye.WidgetAfter&&(!o||t==2||this.children[o-1].breakAfter||this.children[o-1].type==Ye.WidgetBefore&&t>-2))return s.coordsAt(e-i,t);n=i}}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),o=this.children[t];if(!(o instanceof dt))return null;for(;o.children.length;){let{i:l,off:a}=o.childPos(n,1);for(;;l++){if(l==o.children.length)return null;if((o=o.children[l]).length)break}n=a}if(!(o instanceof vn))return null;let s=wt(o.text,n);if(s==n)return null;let i=xs(o.dom,n,s).getClientRects();return!i.length||i[0].top>=i[0].bottom?null:i[0]}measureVisibleLineHeights(e){let t=[],{from:n,to:o}=e,s=this.view.contentDOM.clientWidth,i=s>Math.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,l=-1,a=this.view.textDirection==Xe.LTR;for(let c=0,u=0;u<this.children.length;u++){let f=this.children[u],h=c+f.length;if(h>o)break;if(c>=n){let d=f.dom.getBoundingClientRect();if(t.push(d.height),i){let p=f.dom.lastChild,m=p?ma(p):[];if(m.length){let g=m[m.length-1],y=a?g.right-d.left:d.right-g.left;y>l&&(l=y,this.minWidth=s,this.minWidthFrom=c,this.minWidthTo=h)}}}c=h+f.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return getComputedStyle(this.children[t].dom).direction=="rtl"?Xe.RTL:Xe.LTR}measureTextSize(){for(let s of this.children)if(s instanceof dt){let i=s.measureTextSize();if(i)return i}let e=document.createElement("div"),t,n,o;return e.className="cm-line",e.style.width="99999px",e.style.position="absolute",e.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore(()=>{this.dom.appendChild(e);let s=ma(e.firstChild)[0];t=e.getBoundingClientRect().height,n=s?s.width/27:7,o=s?s.height:t,e.remove()}),{lineHeight:t,charWidth:n,textHeight:o}}childCursor(e=this.length){let t=this.children.length;return t&&(e-=this.children[--t].length),new Ku(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,o=0;;o++){let s=o==t.viewports.length?null:t.viewports[o],i=s?s.from-1:this.length;if(i>n){let l=t.lineBlockAt(i).bottom-t.lineBlockAt(n).top;e.push(lt.replace({widget:new Qu(l),block:!0,inclusive:!0,isBlockGap:!0}).range(n,i))}if(!s)break;n=s.to+1}return lt.set(e)}updateDeco(){let e=this.view.state.facet(ga).map((t,n)=>(this.dynamicDecorationMap[n]=typeof t=="function")?t(this.view):t);for(let t=e.length;t<e.length+3;t++)this.dynamicDecorationMap[t]=!1;return this.decorations=[...e,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco]}scrollIntoView(e){let{range:t}=e,n=this.coordsAt(t.head,t.empty?t.assoc:t.head>t.anchor?-1:1),o;if(!n)return;!t.empty&&(o=this.coordsAt(t.anchor,t.anchor>t.head?-1:1))&&(n={left:Math.min(n.left,o.left),top:Math.min(n.top,o.top),right:Math.max(n.right,o.right),bottom:Math.max(n.bottom,o.bottom)});let s=zw(this.view),i={left:n.left-s.left,top:n.top-s.top,right:n.right+s.right,bottom:n.bottom+s.bottom};z1(this.view.scrollDOM,i,t.head<t.anchor?-1:1,e.x,e.y,e.xMargin,e.yMargin,this.view.textDirection==Xe.LTR)}};function nI(r){return r.node.nodeType==1&&r.node.firstChild&&(r.offset==0||r.node.childNodes[r.offset-1].contentEditable=="false")&&(r.offset==r.node.childNodes.length||r.node.childNodes[r.offset].contentEditable=="false")}var Qu=class extends Fr{constructor(e){super(),this.height=e}toDOM(){let e=document.createElement("div");return this.updateDOM(e),e}eq(e){return e.height==this.height}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}};function Ww(r){let e=r.observer.selectionRange,t=e.focusNode&&Uw(e.focusNode,e.focusOffset,0);if(!t)return null;let n=Re.get(t),o,s;if(n instanceof vn)o=n.posAtStart,s=o+n.length;else e:for(let i=0,l=t;;){for(let c=l.previousSibling,u;c;c=c.previousSibling){if(u=Re.get(c)){o=s=u.posAtEnd+i;break e}let f=new Wu([],r.state);if(f.readNode(c),f.text.indexOf(Oi)>-1)return null;i+=f.text.length}if(l=l.parentNode,!l)return null;let a=Re.get(l);if(a){o=s=a.posAtStart+i;break}}return{from:o,to:s,node:t}}function rI(r,e){let t=Ww(r);if(!t)return null;let{from:n,to:o,node:s}=t,i=e.mapPos(n,-1),l=e.mapPos(o,1),a=s.nodeValue;if(/[\n\r]/.test(a))return null;if(l-i!=a.length){let h=e.mapPos(n,1),d=e.mapPos(o,-1);if(d-h==a.length)i=h,l=d;else if(r.state.doc.sliceString(l-a.length,l)==a)i=l-a.length;else if(r.state.doc.sliceString(i,i+a.length)==a)l=i+a.length;else return null}let{main:c}=r.state.selection;if(r.state.doc.sliceString(i,l)!=a||i>c.head||l<c.head)return null;let u=[],f=new Gt(n,o,i,l);for(let h=s.parentNode;;h=h.parentNode){let d=Re.get(h);if(d instanceof _n)u.push({node:h,deco:d.mark});else{if(d instanceof dt||h.nodeName=="DIV"&&h.parentNode==r.contentDOM)return{range:f,text:s,marks:u,line:h};if(h!=r.contentDOM)u.push({node:h,deco:new vs({inclusive:!0,attributes:G1(h),tagName:h.tagName.toLowerCase()})});else return null}}}function Uw(r,e,t){if(t<=0)for(let n=r,o=e;;){if(n.nodeType==3)return n;if(n.nodeType==1&&o>0)n=n.childNodes[o-1],o=go(n);else break}if(t>=0)for(let n=r,o=e;;){if(n.nodeType==3)return n;if(n.nodeType==1&&o<n.childNodes.length&&t>=0)n=n.childNodes[o],o=0;else break}return null}function oI(r,e){return r.nodeType!=1?0:(e&&r.childNodes[e-1].contentEditable=="false"?1:0)|(e<r.childNodes.length&&r.childNodes[e].contentEditable=="false"?2:0)}var op=class{constructor(){this.changes=[]}compareRange(e,t){ep(e,t,this.changes)}comparePoint(e,t){ep(e,t,this.changes)}};function sI(r,e,t){let n=new op;return Ae.compare(r,e,t,n),n.changes}function iI(r,e){for(let t=r;t&&t!=e;t=t.assignedSlot||t.parentNode)if(t.nodeType==1&&t.contentEditable=="false")return!0;return!1}function lI(r,e,t=1){let n=r.charCategorizer(e),o=r.doc.lineAt(e),s=e-o.from;if(o.length==0)return F.cursor(e);s==0?t=1:s==o.length&&(t=-1);let i=s,l=s;t<0?i=wt(o.text,s,!1):l=wt(o.text,s);let a=n(o.text.slice(i,l));for(;i>0;){let c=wt(o.text,i,!1);if(n(o.text.slice(c,i))!=a)break;i=c}for(;l<o.length;){let c=wt(o.text,l);if(n(o.text.slice(l,c))!=a)break;l=c}return F.range(i+o.from,l+o.from)}function aI(r,e){return e.left>r?e.left-r:Math.max(0,r-e.right)}function cI(r,e){return e.top>r?e.top-r:Math.max(0,r-e.bottom)}function Wd(r,e){return r.top<e.bottom-1&&r.bottom>e.top+1}function jC(r,e){return e<r.top?{top:e,left:r.left,right:r.right,bottom:r.bottom}:r}function qC(r,e){return e>r.bottom?{top:r.top,left:r.left,right:r.right,bottom:e}:r}function sp(r,e,t){let n,o,s,i,l=!1,a,c,u,f;for(let p=r.firstChild;p;p=p.nextSibling){let m=ma(p);for(let g=0;g<m.length;g++){let y=m[g];o&&Wd(o,y)&&(y=jC(qC(y,o.bottom),o.top));let C=aI(e,y),v=cI(t,y);if(C==0&&v==0)return p.nodeType==3?XC(p,e,t):sp(p,e,t);if(!n||i>v||i==v&&s>C){n=p,o=y,s=C,i=v;let x=v?t<y.top?-1:1:C?e<y.left?-1:1:0;l=!x||(x>0?g<m.length-1:g>0)}C==0?t>y.bottom&&(!u||u.bottom<y.bottom)?(a=p,u=y):t<y.top&&(!f||f.top>y.top)&&(c=p,f=y):u&&Wd(u,y)?u=qC(u,y.bottom):f&&Wd(f,y)&&(f=jC(f,y.top))}}if(u&&u.bottom>=t?(n=a,o=u):f&&f.top<=t&&(n=c,o=f),!n)return{node:r,offset:0};let h=Math.max(o.left,Math.min(o.right,e));if(n.nodeType==3)return XC(n,h,t);if(l&&n.contentEditable!="false")return sp(n,h,t);let d=Array.prototype.indexOf.call(r.childNodes,n)+(e>=(o.left+o.right)/2?1:0);return{node:r,offset:d}}function XC(r,e,t){let n=r.nodeValue.length,o=-1,s=1e9,i=0;for(let l=0;l<n;l++){let a=xs(r,l,l+1).getClientRects();for(let c=0;c<a.length;c++){let u=a[c];if(u.top==u.bottom)continue;i||(i=e-u.left);let f=(u.top>t?u.top-t:t-u.bottom)-1;if(u.left-1<=e&&u.right+1>=e&&f<s){let h=e>=(u.left+u.right)/2,d=h;if((ee.chrome||ee.gecko)&&xs(r,l).getBoundingClientRect().left==u.right&&(d=!h),f<=0)return{node:r,offset:l+(d?1:0)};o=l+(d?1:0),s=f}}}return{node:r,offset:o>-1?o:i>0?r.nodeValue.length:0}}function _w(r,e,t,n=-1){var o,s;let i=r.contentDOM.getBoundingClientRect(),l=i.top+r.viewState.paddingTop,a,{docHeight:c}=r.viewState,{x:u,y:f}=e,h=f-l;if(h<0)return 0;if(h>c)return r.state.doc.length;for(let x=r.viewState.heightOracle.textHeight/2,S=!1;a=r.elementAtHeight(h),a.type!=Ye.Text;)for(;h=n>0?a.bottom+x:a.top-x,!(h>=0&&h<=c);){if(S)return t?null:0;S=!0,n=-n}f=l+h;let d=a.from;if(d<r.viewport.from)return r.viewport.from==0?0:t?null:YC(r,i,a,u,f);if(d>r.viewport.to)return r.viewport.to==r.state.doc.length?r.state.doc.length:t?null:YC(r,i,a,u,f);let p=r.dom.ownerDocument,m=r.root.elementFromPoint?r.root:p,g=m.elementFromPoint(u,f);g&&!r.contentDOM.contains(g)&&(g=null),g||(u=Math.max(i.left+1,Math.min(i.right-1,u)),g=m.elementFromPoint(u,f),g&&!r.contentDOM.contains(g)&&(g=null));let y,C=-1;if(g&&((o=r.docView.nearest(g))===null||o===void 0?void 0:o.isEditable)!=!1){if(p.caretPositionFromPoint){let x=p.caretPositionFromPoint(u,f);x&&({offsetNode:y,offset:C}=x)}else if(p.caretRangeFromPoint){let x=p.caretRangeFromPoint(u,f);x&&({startContainer:y,startOffset:C}=x,(!r.contentDOM.contains(y)||ee.safari&&uI(y,C,u)||ee.chrome&&fI(y,C,u))&&(y=void 0))}}if(!y||!r.docView.dom.contains(y)){let x=dt.find(r.docView,d);if(!x)return h>a.top+a.height/2?a.to:a.from;({node:y,offset:C}=sp(x.dom,u,f))}let v=r.docView.nearest(y);if(!v)return null;if(v.isWidget&&((s=v.dom)===null||s===void 0?void 0:s.nodeType)==1){let x=v.dom.getBoundingClientRect();return e.y<x.top||e.y<=x.bottom&&e.x<=(x.left+x.right)/2?v.posAtStart:v.posAtEnd}else return v.localPosFromDOM(y,C)+v.posAtStart}function YC(r,e,t,n,o){let s=Math.round((n-e.left)*r.defaultCharacterWidth);if(r.lineWrapping&&t.height>r.defaultLineHeight*1.5){let l=r.viewState.heightOracle.textHeight,a=Math.floor((o-t.top-(r.defaultLineHeight-l)*.5)/l);s+=a*r.viewState.heightOracle.lineLength}let i=r.state.sliceDoc(t.from,t.to);return t.from+OC(i,s,r.state.tabSize)}function uI(r,e,t){let n;if(r.nodeType!=3||e!=(n=r.nodeValue.length))return!1;for(let o=r.nextSibling;o;o=o.nextSibling)if(o.nodeType!=1||o.nodeName!="BR")return!1;return xs(r,n-1,n).getBoundingClientRect().left>t}function fI(r,e,t){if(e!=0)return!1;for(let o=r;;){let s=o.parentNode;if(!s||s.nodeType!=1||s.firstChild!=o)return!1;if(s.classList.contains("cm-line"))break;o=s}let n=r.nodeType==1?r.getBoundingClientRect():xs(r,0,Math.max(r.nodeValue.length,1)).getBoundingClientRect();return t-n.left>5}function ip(r,e){let t=r.lineBlockAt(e);if(Array.isArray(t.type)){for(let n of t.type)if(n.to>e||n.to==e&&(n.to==t.to||n.type==Ye.Text))return n}return t}function hI(r,e,t,n){let o=ip(r,e.head),s=!n||o.type!=Ye.Text||!(r.lineWrapping||o.widgetLineBreaks)?null:r.coordsAtPos(e.assoc<0&&e.head>o.from?e.head-1:e.head);if(s){let i=r.dom.getBoundingClientRect(),l=r.textDirectionAt(o.from),a=r.posAtCoords({x:t==(l==Xe.LTR)?i.right-1:i.left+1,y:(s.top+s.bottom)/2});if(a!=null)return F.cursor(a,t?-1:1)}return F.cursor(t?o.to:o.from,t?-1:1)}function JC(r,e,t,n){let o=r.state.doc.lineAt(e.head),s=r.bidiSpans(o),i=r.textDirectionAt(o.from);for(let l=e,a=null;;){let c=tI(o,s,i,l,t),u=Kw;if(!c){if(o.number==(t?r.state.doc.lines:1))return l;u=`
29
- `,o=r.state.doc.line(o.number+(t?1:-1)),s=r.bidiSpans(o),c=F.cursor(t?o.from:o.to)}if(a){if(!a(u))return l}else{if(!n)return c;a=n(u)}l=c}}function dI(r,e,t){let n=r.state.charCategorizer(e),o=n(t);return s=>{let i=n(s);return o==Ot.Space&&(o=i),o==i}}function pI(r,e,t,n){let o=e.head,s=t?1:-1;if(o==(t?r.state.doc.length:0))return F.cursor(o,e.assoc);let i=e.goalColumn,l,a=r.contentDOM.getBoundingClientRect(),c=r.coordsAtPos(o),u=r.documentTop;if(c)i==null&&(i=c.left-a.left),l=s<0?c.top:c.bottom;else{let d=r.viewState.lineBlockAt(o);i==null&&(i=Math.min(a.right-a.left,r.defaultCharacterWidth*(o-d.from))),l=(s<0?d.top:d.bottom)+u}let f=a.left+i,h=n!=null?n:r.viewState.heightOracle.textHeight>>1;for(let d=0;;d+=10){let p=l+(h+d)*s,m=_w(r,{x:f,y:p},!1,s);if(p<a.top||p>a.bottom||(s<0?m<o:m>o))return F.cursor(m,e.assoc,void 0,i)}}function Hu(r,e,t){for(;;){let n=0;for(let o of r)o.between(e-1,e+1,(s,i,l)=>{if(e>s&&e<i){let a=n||t||(e-s<i-e?-1:1);e=a<0?s:i,n=a}});if(!n)return e}}function Ud(r,e,t){let n=Hu(r.state.facet(Ip).map(o=>o(r)),t.from,e.head>t.from?-1:1);return n==t.from?t:F.cursor(n,n<t.from?1:-1)}var lp=class{constructor(e){this.lastKeyCode=0,this.lastKeyTime=0,this.lastTouchTime=0,this.lastFocusTime=0,this.lastScrollTop=0,this.lastScrollLeft=0,this.chromeScrollHack=-1,this.pendingIOSKey=void 0,this.lastSelectionOrigin=null,this.lastSelectionTime=0,this.lastEscPress=0,this.lastContextMenu=0,this.scrollHandlers=[],this.registeredEvents=[],this.customHandlers=[],this.composing=-1,this.compositionFirstChange=null,this.compositionEndedAt=0,this.compositionPendingKey=!1,this.compositionPendingChange=!1,this.mouseSelection=null;let t=(n,o)=>{this.ignoreDuringComposition(o)||o.type=="keydown"&&this.keydown(e,o)||(this.mustFlushObserver(o)&&e.observer.forceFlush(),this.runCustomHandlers(o.type,e,o)?o.preventDefault():n(e,o))};for(let n in ot){let o=ot[n];e.contentDOM.addEventListener(n,s=>{ZC(e,s)&&t(o,s)},cp[n]),this.registeredEvents.push(n)}e.scrollDOM.addEventListener("mousedown",n=>{if(n.target==e.scrollDOM&&n.clientY>e.contentDOM.getBoundingClientRect().bottom&&(t(ot.mousedown,n),!n.defaultPrevented&&n.button==2)){let o=e.contentDOM.style.minHeight;e.contentDOM.style.minHeight="100%",setTimeout(()=>e.contentDOM.style.minHeight=o,200)}}),e.scrollDOM.addEventListener("drop",n=>{n.target==e.scrollDOM&&n.clientY>e.contentDOM.getBoundingClientRect().bottom&&t(ot.drop,n)}),ee.chrome&&ee.chrome_version==102&&e.scrollDOM.addEventListener("wheel",()=>{this.chromeScrollHack<0?e.contentDOM.style.pointerEvents="none":window.clearTimeout(this.chromeScrollHack),this.chromeScrollHack=setTimeout(()=>{this.chromeScrollHack=-1,e.contentDOM.style.pointerEvents=""},100)},{passive:!0}),this.notifiedFocused=e.hasFocus,ee.safari&&e.contentDOM.addEventListener("input",()=>null)}setSelectionOrigin(e){this.lastSelectionOrigin=e,this.lastSelectionTime=Date.now()}ensureHandlers(e,t){var n;let o;this.customHandlers=[];for(let s of t)if(o=(n=s.update(e).spec)===null||n===void 0?void 0:n.domEventHandlers){this.customHandlers.push({plugin:s.value,handlers:o});for(let i in o)this.registeredEvents.indexOf(i)<0&&i!="scroll"&&(this.registeredEvents.push(i),e.contentDOM.addEventListener(i,l=>{ZC(e,l)&&this.runCustomHandlers(i,e,l)&&l.preventDefault()}))}}runCustomHandlers(e,t,n){for(let o of this.customHandlers){let s=o.handlers[e];if(s)try{if(s.call(o.plugin,n,t)||n.defaultPrevented)return!0}catch(i){ar(t.state,i)}}return!1}runScrollHandlers(e,t){this.lastScrollTop=e.scrollDOM.scrollTop,this.lastScrollLeft=e.scrollDOM.scrollLeft;for(let n of this.customHandlers){let o=n.handlers.scroll;if(o)try{o.call(n.plugin,t,e)}catch(s){ar(e.state,s)}}}keydown(e,t){if(this.lastKeyCode=t.keyCode,this.lastKeyTime=Date.now(),t.keyCode==9&&Date.now()<this.lastEscPress+2e3)return!0;if(t.keyCode!=27&&Qw.indexOf(t.keyCode)<0&&(e.inputState.lastEscPress=0),ee.android&&ee.chrome&&!t.synthetic&&(t.keyCode==13||t.keyCode==8))return e.observer.delayAndroidKey(t.key,t.keyCode),!0;let n;return ee.ios&&!t.synthetic&&!t.altKey&&!t.metaKey&&((n=Gw.find(o=>o.keyCode==t.keyCode))&&!t.ctrlKey||mI.indexOf(t.key)>-1&&t.ctrlKey&&!t.shiftKey)?(this.pendingIOSKey=n||t,setTimeout(()=>this.flushIOSKey(e),250),!0):!1}flushIOSKey(e){let t=this.pendingIOSKey;return t?(this.pendingIOSKey=void 0,Ni(e.contentDOM,t.key,t.keyCode)):!1}ignoreDuringComposition(e){return/^key/.test(e.type)?this.composing>0?!0:ee.safari&&!ee.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100?(this.compositionPendingKey=!1,!0):!1:!1}mustFlushObserver(e){return e.type=="keydown"&&e.keyCode!=229}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}},Gw=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],mI="dthko",Qw=[16,17,18,20,91,92,224,225],Mu=6;function Ru(r){return Math.max(0,r)*.7+8}function gI(r,e){return Math.max(Math.abs(r.clientX-e.clientX),Math.abs(r.clientY-e.clientY))}var ap=class{constructor(e,t,n,o){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=o,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=V1(e.contentDOM),this.atoms=e.state.facet(Ip).map(i=>i(e));let s=e.contentDOM.ownerDocument;s.addEventListener("mousemove",this.move=this.move.bind(this)),s.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(ve.allowMultipleSelections)&&bI(e,t),this.dragging=xI(e,t)&&Yw(t)==1?null:!1}start(e){this.dragging===!1&&(e.preventDefault(),this.select(e))}move(e){var t;if(e.buttons==0)return this.destroy();if(this.dragging||this.dragging==null&&gI(this.startEvent,e)<10)return;this.select(this.lastEvent=e);let n=0,o=0,s=((t=this.scrollParent)===null||t===void 0?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},i=zw(this.view);e.clientX-i.left<=s.left+Mu?n=-Ru(s.left-e.clientX):e.clientX+i.right>=s.right-Mu&&(n=Ru(e.clientX-s.right)),e.clientY-i.top<=s.top+Mu?o=-Ru(s.top-e.clientY):e.clientY+i.bottom>=s.bottom-Mu&&(o=Ru(e.clientY-s.bottom)),this.setScrollSpeed(n,o)}up(e){this.dragging==null&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval(()=>this.scroll(),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),this.dragging===!1&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;n<e.ranges.length;n++){let o=e.ranges[n],s=null;if(o.empty){let i=Hu(this.atoms,o.from,0);i!=o.from&&(s=F.cursor(i,-1))}else{let i=Hu(this.atoms,o.from,-1),l=Hu(this.atoms,o.to,1);(i!=o.from||l!=o.to)&&(s=F.range(o.from==o.anchor?i:l,o.from==o.head?i:l))}s&&(t||(t=e.ranges.slice()),t[n]=s)}return t?F.create(t,e.mainIndex):e}select(e){let{view:t}=this,n=this.skipAtoms(this.style.get(e,this.extend,this.multiple));(this.mustSelect||!n.eq(t.state.selection)||n.main.assoc!=t.state.selection.main.assoc&&this.dragging===!1)&&this.view.dispatch({selection:n,userEvent:"select.pointer"}),this.mustSelect=!1}update(e){e.docChanged&&this.dragging&&(this.dragging=this.dragging.map(e.changes)),this.style.update(e)&&setTimeout(()=>this.select(this.lastEvent),20)}};function bI(r,e){let t=r.state.facet(Rw);return t.length?t[0](e):ee.mac?e.metaKey:e.ctrlKey}function yI(r,e){let t=r.state.facet(Pw);return t.length?t[0](e):ee.mac?!e.altKey:!e.ctrlKey}function xI(r,e){let{main:t}=r.state.selection;if(t.empty)return!1;let n=zu(r.root);if(!n||n.rangeCount==0)return!0;let o=n.getRangeAt(0).getClientRects();for(let s=0;s<o.length;s++){let i=o[s];if(i.left<=e.clientX&&i.right>=e.clientX&&i.top<=e.clientY&&i.bottom>=e.clientY)return!0}return!1}function ZC(r,e){if(!e.bubbles)return!0;if(e.defaultPrevented)return!1;for(let t=e.target,n;t!=r.contentDOM;t=t.parentNode)if(!t||t.nodeType==11||(n=Re.get(t))&&n.ignoreEvent(e))return!1;return!0}var ot=Object.create(null),cp=Object.create(null),jw=ee.ie&&ee.ie_version<15||ee.ios&&ee.webkit_version<604;function vI(r){let e=r.dom.parentNode;if(!e)return;let t=e.appendChild(document.createElement("textarea"));t.style.cssText="position: fixed; left: -10000px; top: 10px",t.focus(),setTimeout(()=>{r.focus(),t.remove(),qw(r,t.value)},50)}function qw(r,e){let{state:t}=r,n,o=1,s=t.toText(e),i=s.lines==t.selection.ranges.length;if(up!=null&&t.selection.ranges.every(a=>a.empty)&&up==s.toString()){let a=-1;n=t.changeByRange(c=>{let u=t.doc.lineAt(c.from);if(u.from==a)return{range:c};a=u.from;let f=t.toText((i?s.line(o++).text:e)+t.lineBreak);return{changes:{from:u.from,insert:f},range:F.cursor(c.from+f.length)}})}else i?n=t.changeByRange(a=>{let c=s.line(o++);return{changes:{from:a.from,to:a.to,insert:c.text},range:F.cursor(a.from+c.length)}}):n=t.replaceSelection(s);r.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}ot.keydown=(r,e)=>{r.inputState.setSelectionOrigin("select"),e.keyCode==27&&(r.inputState.lastEscPress=Date.now())};ot.touchstart=(r,e)=>{r.inputState.lastTouchTime=Date.now(),r.inputState.setSelectionOrigin("select.pointer")};ot.touchmove=r=>{r.inputState.setSelectionOrigin("select.pointer")};cp.touchstart=cp.touchmove={passive:!0};ot.mousedown=(r,e)=>{if(r.observer.flush(),r.inputState.lastTouchTime>Date.now()-2e3)return;let t=null;for(let n of r.state.facet(Iw))if(t=n(r,e),t)break;if(!t&&e.button==0&&(t=SI(r,e)),t){let n=!r.hasFocus;r.inputState.startMouseSelection(new ap(r,e,t,n)),n&&r.observer.ignore(()=>yw(r.contentDOM)),r.inputState.mouseSelection&&r.inputState.mouseSelection.start(e)}};function ew(r,e,t,n){if(n==1)return F.cursor(e,t);if(n==2)return lI(r.state,e,t);{let o=dt.find(r.docView,e),s=r.state.doc.lineAt(o?o.posAtEnd:e),i=o?o.posAtStart:s.from,l=o?o.posAtEnd:s.to;return l<r.state.doc.length&&l==s.to&&l++,F.range(i,l)}}var Xw=(r,e)=>r>=e.top&&r<=e.bottom,tw=(r,e,t)=>Xw(e,t)&&r>=t.left&&r<=t.right;function CI(r,e,t,n){let o=dt.find(r.docView,e);if(!o)return 1;let s=e-o.posAtStart;if(s==0)return 1;if(s==o.length)return-1;let i=o.coordsAt(s,-1);if(i&&tw(t,n,i))return-1;let l=o.coordsAt(s,1);return l&&tw(t,n,l)?1:i&&Xw(n,i)?-1:1}function nw(r,e){let t=r.posAtCoords({x:e.clientX,y:e.clientY},!1);return{pos:t,bias:CI(r,t,e.clientX,e.clientY)}}var wI=ee.ie&&ee.ie_version<=11,rw=null,ow=0,sw=0;function Yw(r){if(!wI)return r.detail;let e=rw,t=sw;return rw=r,sw=Date.now(),ow=!e||t>Date.now()-400&&Math.abs(e.clientX-r.clientX)<2&&Math.abs(e.clientY-r.clientY)<2?(ow+1)%3:1}function SI(r,e){let t=nw(r,e),n=Yw(e),o=r.state.selection;return{update(s){s.docChanged&&(t.pos=s.changes.mapPos(t.pos),o=o.map(s.changes))},get(s,i,l){let a=nw(r,s),c,u=ew(r,a.pos,a.bias,n);if(t.pos!=a.pos&&!i){let f=ew(r,t.pos,t.bias,n),h=Math.min(f.from,u.from),d=Math.max(f.to,u.to);u=h<u.from?F.range(h,d):F.range(d,h)}return i?o.replaceRange(o.main.extend(u.from,u.to)):l&&n==1&&o.ranges.length>1&&(c=TI(o,a.pos))?c:l?o.addRange(u):F.create([u])}}}function TI(r,e){for(let t=0;t<r.ranges.length;t++){let{from:n,to:o}=r.ranges[t];if(n<=e&&o>=e)return F.create(r.ranges.slice(0,t).concat(r.ranges.slice(t+1)),r.mainIndex==t?0:r.mainIndex-(r.mainIndex>t?1:0))}return null}ot.dragstart=(r,e)=>{let{selection:{main:t}}=r.state,{mouseSelection:n}=r.inputState;n&&(n.dragging=t),e.dataTransfer&&(e.dataTransfer.setData("Text",r.state.sliceDoc(t.from,t.to)),e.dataTransfer.effectAllowed="copyMove")};function iw(r,e,t,n){if(!t)return;let o=r.posAtCoords({x:e.clientX,y:e.clientY},!1);e.preventDefault();let{mouseSelection:s}=r.inputState,i=n&&s&&s.dragging&&yI(r,e)?{from:s.dragging.from,to:s.dragging.to}:null,l={from:o,insert:t},a=r.state.changes(i?[i,l]:l);r.focus(),r.dispatch({changes:a,selection:{anchor:a.mapPos(o,-1),head:a.mapPos(o,1)},userEvent:i?"move.drop":"input.drop"})}ot.drop=(r,e)=>{if(!e.dataTransfer)return;if(r.state.readOnly)return e.preventDefault();let t=e.dataTransfer.files;if(t&&t.length){e.preventDefault();let n=Array(t.length),o=0,s=()=>{++o==t.length&&iw(r,e,n.filter(i=>i!=null).join(r.state.lineBreak),!1)};for(let i=0;i<t.length;i++){let l=new FileReader;l.onerror=s,l.onload=()=>{/[\x00-\x08\x0e-\x1f]{2}/.test(l.result)||(n[i]=l.result),s()},l.readAsText(t[i])}}else iw(r,e,e.dataTransfer.getData("Text"),!0)};ot.paste=(r,e)=>{if(r.state.readOnly)return e.preventDefault();r.observer.flush();let t=jw?null:e.clipboardData;t?(qw(r,t.getData("text/plain")||t.getData("text/uri-text")),e.preventDefault()):vI(r)};function EI(r,e){let t=r.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.value=e,n.focus(),n.selectionEnd=e.length,n.selectionStart=0,setTimeout(()=>{n.remove(),r.focus()},50)}function kI(r){let e=[],t=[],n=!1;for(let o of r.selection.ranges)o.empty||(e.push(r.sliceDoc(o.from,o.to)),t.push(o));if(!e.length){let o=-1;for(let{from:s}of r.selection.ranges){let i=r.doc.lineAt(s);i.number>o&&(e.push(i.text),t.push({from:i.from,to:Math.min(r.doc.length,i.to+1)})),o=i.number}n=!0}return{text:e.join(r.lineBreak),ranges:t,linewise:n}}var up=null;ot.copy=ot.cut=(r,e)=>{let{text:t,ranges:n,linewise:o}=kI(r.state);if(!t&&!o)return;up=o?t:null;let s=jw?null:e.clipboardData;s?(e.preventDefault(),s.clearData(),s.setData("text/plain",t)):EI(r,t),e.type=="cut"&&!r.state.readOnly&&r.dispatch({changes:n,scrollIntoView:!0,userEvent:"delete.cut"})};var Jw=sn.define();function Zw(r,e){let t=[];for(let n of r.facet(Ow)){let o=n(r,e);o&&t.push(o)}return t?r.update({effects:t,annotations:Jw.of(!0)}):null}function eS(r){setTimeout(()=>{let e=r.hasFocus;if(e!=r.inputState.notifiedFocused){let t=Zw(r.state,e);t?r.dispatch(t):r.update([])}},10)}ot.focus=r=>{r.inputState.lastFocusTime=Date.now(),!r.scrollDOM.scrollTop&&(r.inputState.lastScrollTop||r.inputState.lastScrollLeft)&&(r.scrollDOM.scrollTop=r.inputState.lastScrollTop,r.scrollDOM.scrollLeft=r.inputState.lastScrollLeft),eS(r)};ot.blur=r=>{r.observer.clearSelectionRange(),eS(r)};ot.compositionstart=ot.compositionupdate=r=>{r.inputState.compositionFirstChange==null&&(r.inputState.compositionFirstChange=!0),r.inputState.composing<0&&(r.inputState.composing=0)};ot.compositionend=r=>{r.inputState.composing=-1,r.inputState.compositionEndedAt=Date.now(),r.inputState.compositionPendingKey=!0,r.inputState.compositionPendingChange=r.observer.pendingRecords().length>0,r.inputState.compositionFirstChange=null,ee.chrome&&ee.android?r.observer.flushSoon():r.inputState.compositionPendingChange?Promise.resolve().then(()=>r.observer.flush()):setTimeout(()=>{r.inputState.composing<0&&r.docView.hasComposition&&r.update([])},50)};ot.contextmenu=r=>{r.inputState.lastContextMenu=Date.now()};ot.beforeinput=(r,e)=>{var t;let n;if(ee.chrome&&ee.android&&(n=Gw.find(o=>o.inputType==e.inputType))&&(r.observer.delayAndroidKey(n.key,n.keyCode),n.key=="Backspace"||n.key=="Delete")){let o=((t=window.visualViewport)===null||t===void 0?void 0:t.height)||0;setTimeout(()=>{var s;(((s=window.visualViewport)===null||s===void 0?void 0:s.height)||0)>o+10&&r.hasFocus&&(r.contentDOM.blur(),r.focus())},100)}};var lw=["pre-wrap","normal","pre-line","break-spaces"],fp=class{constructor(e){this.lineWrapping=e,this.doc=ge.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){return this.lineWrapping?(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight:this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return lw.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n<e.length;n++){let o=e[n];o<0?n++:this.heightSamples[Math.floor(o*10)]||(t=!0,this.heightSamples[Math.floor(o*10)]=!0)}return t}refresh(e,t,n,o,s,i){let l=lw.indexOf(e)>-1,a=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=l;if(this.lineWrapping=l,this.lineHeight=t,this.charWidth=n,this.textHeight=o,this.lineLength=s,a){this.heightSamples={};for(let c=0;c<i.length;c++){let u=i[c];u<0?c++:this.heightSamples[Math.floor(u*10)]=!0}}return a}},hp=class{constructor(e,t){this.from=e,this.heights=t,this.index=0}get more(){return this.index<this.heights.length}},xn=class{constructor(e,t,n,o,s){this.from=e,this.length=t,this.top=n,this.height=o,this._content=s}get type(){return typeof this._content=="number"?Ye.Text:Array.isArray(this._content)?this._content:this._content.type}get to(){return this.from+this.length}get bottom(){return this.top+this.height}get widget(){return this._content instanceof cr?this._content.widget:null}get widgetLineBreaks(){return typeof this._content=="number"?this._content:0}join(e){let t=(Array.isArray(this._content)?this._content:[this]).concat(Array.isArray(e._content)?e._content:[e]);return new xn(this.from,this.length+e.length,this.top,this.height+e.height,t)}},Be=function(r){return r[r.ByPos=0]="ByPos",r[r.ByHeight=1]="ByHeight",r[r.ByPosNoHeight=2]="ByPosNoHeight",r}(Be||(Be={})),Nu=.001,mt=class{constructor(e,t,n=2){this.length=e,this.height=t,this.flags=n}get outdated(){return(this.flags&2)>0}set outdated(e){this.flags=(e?2:0)|this.flags&-3}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>Nu&&(e.heightChanged=!0),this.height=t)}replace(e,t,n){return mt.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,o){let s=this,i=n.doc;for(let l=o.length-1;l>=0;l--){let{fromA:a,toA:c,fromB:u,toB:f}=o[l],h=s.lineAt(a,Be.ByPosNoHeight,n.setDoc(t),0,0),d=h.to>=c?h:s.lineAt(c,Be.ByPosNoHeight,n,0,0);for(f+=d.to-c,c=d.to;l>0&&h.from<=o[l-1].toA;)a=o[l-1].fromA,u=o[l-1].fromB,l--,a<h.from&&(h=s.lineAt(a,Be.ByPosNoHeight,n,0,0));u+=h.from-a,a=h.from;let p=ba.build(n.setDoc(i),e,u,f);s=s.replace(a,c,p)}return s.updateHeight(n,0)}static empty(){return new Nt(0,0)}static of(e){if(e.length==1)return e[0];let t=0,n=e.length,o=0,s=0;for(;;)if(t==n)if(o>s*2){let l=e[t-1];l.break?e.splice(--t,1,l.left,null,l.right):e.splice(--t,1,l.left,l.right),n+=1+l.break,o-=l.size}else if(s>o*2){let l=e[n];l.break?e.splice(n,1,l.left,null,l.right):e.splice(n,1,l.left,l.right),n+=2+l.break,s-=l.size}else break;else if(o<s){let l=e[t++];l&&(o+=l.size)}else{let l=e[--n];l&&(s+=l.size)}let i=0;return e[t-1]==null?(i=1,t--):e[t]==null&&(i=1,n++),new dp(mt.of(e.slice(0,t)),i,mt.of(e.slice(n)))}};mt.prototype.size=1;var ju=class extends mt{constructor(e,t,n){super(e,t),this.deco=n}blockAt(e,t,n,o){return new xn(o,this.length,n,this.height,this.deco||0)}lineAt(e,t,n,o,s){return this.blockAt(0,n,o,s)}forEachLine(e,t,n,o,s,i){e<=s+this.length&&t>=s&&i(this.blockAt(0,n,o,s))}updateHeight(e,t=0,n=!1,o){return o&&o.from<=t&&o.more&&this.setHeight(e,o.heights[o.index++]),this.outdated=!1,this}toString(){return`block(${this.length})`}},Nt=class extends ju{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,o){return new xn(o,this.length,n,this.height,this.breaks)}replace(e,t,n){let o=n[0];return n.length==1&&(o instanceof Nt||o instanceof it&&o.flags&4)&&Math.abs(this.length-o.length)<10?(o instanceof it?o=new Nt(o.length,this.height):o.height=this.height,this.outdated||(o.outdated=!1),o):mt.of(n)}updateHeight(e,t=0,n=!1,o){return o&&o.from<=t&&o.more?this.setHeight(e,o.heights[o.index++]):(n||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return`line(${this.length}${this.collapsed?-this.collapsed:""}${this.widgetHeight?":"+this.widgetHeight:""})`}},it=class extends mt{constructor(e){super(e,0)}heightMetrics(e,t){let n=e.doc.lineAt(t).number,o=e.doc.lineAt(t+this.length).number,s=o-n+1,i,l=0;if(e.lineWrapping){let a=Math.min(this.height,e.lineHeight*s);i=a/s,this.length>s+1&&(l=(this.height-a)/(this.length-s-1))}else i=this.height/s;return{firstLine:n,lastLine:o,perLine:i,perChar:l}}blockAt(e,t,n,o){let{firstLine:s,lastLine:i,perLine:l,perChar:a}=this.heightMetrics(t,o);if(t.lineWrapping){let c=o+Math.round(Math.max(0,Math.min(1,(e-n)/this.height))*this.length),u=t.doc.lineAt(c),f=l+u.length*a,h=Math.max(n,e-f/2);return new xn(u.from,u.length,h,f,0)}else{let c=Math.max(0,Math.min(i-s,Math.floor((e-n)/l))),{from:u,length:f}=t.doc.line(s+c);return new xn(u,f,n+l*c,l,0)}}lineAt(e,t,n,o,s){if(t==Be.ByHeight)return this.blockAt(e,n,o,s);if(t==Be.ByPosNoHeight){let{from:d,to:p}=n.doc.lineAt(e);return new xn(d,p-d,0,0,0)}let{firstLine:i,perLine:l,perChar:a}=this.heightMetrics(n,s),c=n.doc.lineAt(e),u=l+c.length*a,f=c.number-i,h=o+l*f+a*(c.from-s-f);return new xn(c.from,c.length,Math.max(o,Math.min(h,o+this.height-u)),u,0)}forEachLine(e,t,n,o,s,i){e=Math.max(e,s),t=Math.min(t,s+this.length);let{firstLine:l,perLine:a,perChar:c}=this.heightMetrics(n,s);for(let u=e,f=o;u<=t;){let h=n.doc.lineAt(u);if(u==e){let p=h.number-l;f+=a*p+c*(e-s-p)}let d=a+c*h.length;i(new xn(h.from,h.length,f,d,0)),f+=d,u=h.to+1}}replace(e,t,n){let o=this.length-t;if(o>0){let s=n[n.length-1];s instanceof it?n[n.length-1]=new it(s.length+o):n.push(null,new it(o-1))}if(e>0){let s=n[0];s instanceof it?n[0]=new it(e+s.length):n.unshift(new it(e-1),null)}return mt.of(n)}decomposeLeft(e,t){t.push(new it(e-1),null)}decomposeRight(e,t){t.push(null,new it(this.length-e-1))}updateHeight(e,t=0,n=!1,o){let s=t+this.length;if(o&&o.from<=t+this.length&&o.more){let i=[],l=Math.max(t,o.from),a=-1;for(o.from>t&&i.push(new it(o.from-t-1).updateHeight(e,t));l<=s&&o.more;){let u=e.doc.lineAt(l).length;i.length&&i.push(null);let f=o.heights[o.index++];a==-1?a=f:Math.abs(f-a)>=Nu&&(a=-2);let h=new Nt(u,f);h.outdated=!1,i.push(h),l+=u+1}l<=s&&i.push(null,new it(s-l).updateHeight(e,l));let c=mt.of(i);return(a<0||Math.abs(c.height-this.height)>=Nu||Math.abs(a-this.heightMetrics(e,t).perLine)>=Nu)&&(e.heightChanged=!0),c}else(n||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1);return this}toString(){return`gap(${this.length})`}},dp=class extends mt{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return this.flags&1}blockAt(e,t,n,o){let s=n+this.left.height;return e<s?this.left.blockAt(e,t,n,o):this.right.blockAt(e,t,s,o+this.left.length+this.break)}lineAt(e,t,n,o,s){let i=o+this.left.height,l=s+this.left.length+this.break,a=t==Be.ByHeight?e<i:e<l,c=a?this.left.lineAt(e,t,n,o,s):this.right.lineAt(e,t,n,i,l);if(this.break||(a?c.to<l:c.from>l))return c;let u=t==Be.ByPosNoHeight?Be.ByPosNoHeight:Be.ByPos;return a?c.join(this.right.lineAt(l,u,n,i,l)):this.left.lineAt(l,u,n,o,s).join(c)}forEachLine(e,t,n,o,s,i){let l=o+this.left.height,a=s+this.left.length+this.break;if(this.break)e<a&&this.left.forEachLine(e,t,n,o,s,i),t>=a&&this.right.forEachLine(e,t,n,l,a,i);else{let c=this.lineAt(a,Be.ByPos,n,o,s);e<c.from&&this.left.forEachLine(e,c.from-1,n,o,s,i),c.to>=e&&c.from<=t&&i(c),t>c.to&&this.right.forEachLine(c.to+1,t,n,l,a,i)}}replace(e,t,n){let o=this.left.length+this.break;if(t<o)return this.balanced(this.left.replace(e,t,n),this.right);if(e>this.left.length)return this.balanced(this.left,this.right.replace(e-o,t-o,n));let s=[];e>0&&this.decomposeLeft(e,s);let i=s.length;for(let l of n)s.push(l);if(e>0&&aw(s,i-1),t<this.length){let l=s.length;this.decomposeRight(t,s),aw(s,l)}return mt.of(s)}decomposeLeft(e,t){let n=this.left.length;if(e<=n)return this.left.decomposeLeft(e,t);t.push(this.left),this.break&&(n++,e>=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,o=n+this.break;if(e>=o)return this.right.decomposeRight(e-o,t);e<n&&this.left.decomposeRight(e,t),this.break&&e<o&&t.push(null),t.push(this.right)}balanced(e,t){return e.size>2*t.size||t.size>2*e.size?mt.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e,t=0,n=!1,o){let{left:s,right:i}=this,l=t+s.length+this.break,a=null;return o&&o.from<=t+s.length&&o.more?a=s=s.updateHeight(e,t,n,o):s.updateHeight(e,t,n),o&&o.from<=l+i.length&&o.more?a=i=i.updateHeight(e,l,n,o):i.updateHeight(e,l,n),a?this.balanced(s,i):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}};function aw(r,e){let t,n;r[e]==null&&(t=r[e-1])instanceof it&&(n=r[e+1])instanceof it&&r.splice(e-1,3,new it(t.length+1+n.length))}var DI=5,ba=class{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let n=Math.min(t,this.lineEnd),o=this.nodes[this.nodes.length-1];o instanceof Nt?o.length+=n-this.pos:(n>this.pos||!this.isCovered)&&this.nodes.push(new Nt(n-this.pos,-1)),this.writtenTo=n,t>n&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e<t||n.heightRelevant){let o=n.widget?n.widget.estimatedHeight:0,s=n.widget?n.widget.lineBreaks:0;o<0&&(o=this.oracle.lineHeight);let i=t-e;n.block?this.addBlock(new ju(i,o,n)):(i||s||o>=DI)&&this.addLineDeco(o,s,i)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd<this.pos&&(this.lineEnd=this.oracle.doc.lineAt(this.pos).to)}enterLine(){if(this.lineStart>-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenTo<e&&((this.writtenTo<e-1||this.nodes[this.nodes.length-1]==null)&&this.nodes.push(this.blankContent(this.writtenTo,e-1)),this.nodes.push(null)),this.pos>e&&this.nodes.push(new Nt(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new it(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof Nt)return e;let t=new Nt(0,-1);return this.nodes.push(t),t}addBlock(e){var t;this.enterLine();let n=(t=e.deco)===null||t===void 0?void 0:t.type;n==Ye.WidgetAfter&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,n!=Ye.WidgetBefore&&(this.covering=e)}addLineDeco(e,t,n){let o=this.ensureLine();o.length+=n,o.collapsed+=n,o.widgetHeight=Math.max(o.widgetHeight,e),o.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=this.nodes.length==0?null:this.nodes[this.nodes.length-1];this.lineStart>-1&&!(t instanceof Nt)&&!this.isCovered?this.nodes.push(new Nt(0,-1)):(this.writtenTo<this.pos||t==null)&&this.nodes.push(this.blankContent(this.writtenTo,this.pos));let n=e;for(let o of this.nodes)o instanceof Nt&&o.updateHeight(this.oracle,n),n+=o?o.length:1;return this.nodes}static build(e,t,n,o){let s=new ba(n,e);return Ae.spans(t,n,o,s,0),s.finish(n)}};function MI(r,e,t){let n=new pp;return Ae.compare(r,e,t,n,0),n.changes}var pp=class{constructor(){this.changes=[]}compareRange(){}comparePoint(e,t,n,o){(e<t||n&&n.heightRelevant||o&&o.heightRelevant)&&ep(e,t,this.changes,5)}};function RI(r,e){let t=r.getBoundingClientRect(),n=r.ownerDocument,o=n.defaultView||window,s=Math.max(0,t.left),i=Math.min(o.innerWidth,t.right),l=Math.max(0,t.top),a=Math.min(o.innerHeight,t.bottom);for(let c=r.parentNode;c&&c!=n.body;)if(c.nodeType==1){let u=c,f=window.getComputedStyle(u);if((u.scrollHeight>u.clientHeight||u.scrollWidth>u.clientWidth)&&f.overflow!="visible"){let h=u.getBoundingClientRect();s=Math.max(s,h.left),i=Math.min(i,h.right),l=Math.max(l,h.top),a=c==r.parentNode?h.bottom:Math.min(a,h.bottom)}c=f.position=="absolute"||f.position=="fixed"?u.offsetParent:u.parentNode}else if(c.nodeType==11)c=c.host;else break;return{left:s-t.left,right:Math.max(s,i)-t.left,top:l-(t.top+e),bottom:Math.max(l,a)-(t.top+e)}}function PI(r,e){let t=r.getBoundingClientRect();return{left:0,right:t.right-t.left,top:e,bottom:t.bottom-(t.top+e)}}var pa=class{constructor(e,t,n){this.from=e,this.to=t,this.size=n}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n<e.length;n++){let o=e[n],s=t[n];if(o.from!=s.from||o.to!=s.to||o.size!=s.size)return!1}return!0}draw(e){return lt.replace({widget:new mp(this.size,e)}).range(this.from,this.to)}},mp=class extends Fr{constructor(e,t){super(),this.size=e,this.vertical=t}eq(e){return e.size==this.size&&e.vertical==this.vertical}toDOM(){let e=document.createElement("div");return this.vertical?e.style.height=this.size+"px":(e.style.width=this.size+"px",e.style.height="2px",e.style.display="inline-block"),e}get estimatedHeight(){return this.vertical?this.size:-1}},qu=class{constructor(e){this.state=e,this.pixelViewport={left:0,right:window.innerWidth,top:0,bottom:0},this.inView=!0,this.paddingTop=0,this.paddingBottom=0,this.contentDOMWidth=0,this.contentDOMHeight=0,this.editorHeight=0,this.editorWidth=0,this.scrollTop=0,this.scrolledToBottom=!0,this.scrollAnchorPos=0,this.scrollAnchorHeight=-1,this.scaler=cw,this.scrollTarget=null,this.printing=!1,this.mustMeasureContent=!0,this.defaultTextDirection=Xe.LTR,this.visibleRanges=[],this.mustEnforceCursorAssoc=!1;let t=e.facet(Pp).some(n=>typeof n!="function"&&n.class=="cm-lineWrapping");this.heightOracle=new fp(t),this.stateDeco=e.facet(ga).filter(n=>typeof n!="function"),this.heightMap=mt.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle.setDoc(e.doc),[new Gt(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=lt.set(this.lineGaps.map(n=>n.draw(!1))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let o=n?t.head:t.anchor;if(!e.some(({from:s,to:i})=>o>=s&&o<=i)){let{from:s,to:i}=this.lineBlockAt(o);e.push(new Hi(s,i))}}this.viewports=e.sort((n,o)=>n.from-o.from),this.scaler=this.heightMap.height<=7e6?cw:new gp(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,e=>{this.viewportLines.push(this.scaler.scale==1?e:ha(e,this.scaler))})}update(e,t=null){this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(ga).filter(u=>typeof u!="function");let o=e.changedRanges,s=Gt.extendWithRanges(o,MI(n,this.stateDeco,e?e.changes:Ke.empty(this.state.doc.length))),i=this.heightMap.height,l=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),s),this.heightMap.height!=i&&(e.flags|=2),l?(this.scrollAnchorPos=e.changes.mapPos(l.from,-1),this.scrollAnchorHeight=l.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let a=s.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.head<a.from||t.range.head>a.to)||!this.viewportIsAppropriate(a))&&(a=this.getViewport(0,t));let c=!e.changes.empty||e.flags&2||a.from!=this.viewport.from||a.to!=this.viewport.to;this.viewport=a,this.updateForViewport(),c&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Nw)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),o=this.heightOracle,s=n.whiteSpace;this.defaultTextDirection=n.direction=="rtl"?Xe.RTL:Xe.LTR;let i=this.heightOracle.mustRefreshForWrapping(s),l=t.getBoundingClientRect(),a=i||this.mustMeasureContent||this.contentDOMHeight!=l.height;this.contentDOMHeight=l.height,this.mustMeasureContent=!1;let c=0,u=0,f=parseInt(n.paddingTop)||0,h=parseInt(n.paddingBottom)||0;(this.paddingTop!=f||this.paddingBottom!=h)&&(this.paddingTop=f,this.paddingBottom=h,c|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(o.lineWrapping&&(a=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=8),this.scrollTop!=e.scrollDOM.scrollTop&&(this.scrollAnchorHeight=-1,this.scrollTop=e.scrollDOM.scrollTop),this.scrolledToBottom=vw(e.scrollDOM);let d=(this.printing?PI:RI)(t,this.paddingTop),p=d.top-this.pixelViewport.top,m=d.bottom-this.pixelViewport.bottom;this.pixelViewport=d;let g=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(g!=this.inView&&(this.inView=g,g&&(a=!0)),!this.inView&&!this.scrollTarget)return 0;let y=l.width;if((this.contentDOMWidth!=y||this.editorHeight!=e.scrollDOM.clientHeight)&&(this.contentDOMWidth=l.width,this.editorHeight=e.scrollDOM.clientHeight,c|=8),a){let v=e.docView.measureVisibleLineHeights(this.viewport);if(o.mustRefreshForHeights(v)&&(i=!0),i||o.lineWrapping&&Math.abs(y-this.contentDOMWidth)>o.charWidth){let{lineHeight:x,charWidth:S,textHeight:b}=e.docView.measureTextSize();i=x>0&&o.refresh(s,x,S,b,y/S,v),i&&(e.docView.minWidth=0,c|=8)}p>0&&m>0?u=Math.max(p,m):p<0&&m<0&&(u=Math.min(p,m)),o.heightChanged=!1;for(let x of this.viewports){let S=x.from==this.viewport.from?v:e.docView.measureVisibleLineHeights(x);this.heightMap=(i?mt.empty().applyChanges(this.stateDeco,ge.empty,this.heightOracle,[new Gt(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(o,0,i,new hp(x.from,S))}o.heightChanged&&(c|=2)}let C=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.head<this.viewport.from||this.scrollTarget.range.head>this.viewport.to);return C&&(this.viewport=this.getViewport(u,this.scrollTarget)),this.updateForViewport(),(c&2||C)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>2e3<<1)&&this.updateLineGaps(this.ensureLineGaps(i?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),o=this.heightMap,s=this.heightOracle,{visibleTop:i,visibleBottom:l}=this,a=new Hi(o.lineAt(i-n*1e3,Be.ByHeight,s,0,0).from,o.lineAt(l+(1-n)*1e3,Be.ByHeight,s,0,0).to);if(t){let{head:c}=t.range;if(c<a.from||c>a.to){let u=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),f=o.lineAt(c,Be.ByPos,s,0,0),h;t.y=="center"?h=(f.top+f.bottom)/2-u/2:t.y=="start"||t.y=="nearest"&&c<a.from?h=f.top:h=f.bottom-u,a=new Hi(o.lineAt(h-1e3/2,Be.ByHeight,s,0,0).from,o.lineAt(h+u+1e3/2,Be.ByHeight,s,0,0).to)}}return a}mapViewport(e,t){let n=t.mapPos(e.from,-1),o=t.mapPos(e.to,1);return new Hi(this.heightMap.lineAt(n,Be.ByPos,this.heightOracle,0,0).from,this.heightMap.lineAt(o,Be.ByPos,this.heightOracle,0,0).to)}viewportIsAppropriate({from:e,to:t},n=0){if(!this.inView)return!0;let{top:o}=this.heightMap.lineAt(e,Be.ByPos,this.heightOracle,0,0),{bottom:s}=this.heightMap.lineAt(t,Be.ByPos,this.heightOracle,0,0),{visibleTop:i,visibleBottom:l}=this;return(e==0||o<=i-Math.max(10,Math.min(-n,250)))&&(t==this.state.doc.length||s>=l+Math.max(10,Math.min(n,250)))&&o>i-2*1e3&&s<l+2*1e3}mapLineGaps(e,t){if(!e.length||t.empty)return e;let n=[];for(let o of e)t.touchesRange(o.from,o.to)||n.push(new pa(t.mapPos(o.from),t.mapPos(o.to),o.size));return n}ensureLineGaps(e,t){let n=this.heightOracle.lineWrapping,o=n?1e4:2e3,s=o>>1,i=o<<1;if(this.defaultTextDirection!=Xe.LTR&&!n)return[];let l=[],a=(c,u,f,h)=>{if(u-c<s)return;let d=this.state.selection.main,p=[d.from];d.empty||p.push(d.to);for(let g of p)if(g>c&&g<u){a(c,g-10,f,h),a(g+10,u,f,h);return}let m=AI(e,g=>g.from>=f.from&&g.to<=f.to&&Math.abs(g.from-c)<s&&Math.abs(g.to-u)<s&&!p.some(y=>g.from<y&&g.to>y));if(!m){if(u<f.to&&t&&n&&t.visibleRanges.some(g=>g.from<=u&&g.to>=u)){let g=t.moveToLineBoundary(F.cursor(u),!1,!0).head;g>c&&(u=g)}m=new pa(c,u,this.gapSize(f,c,u,h))}l.push(m)};for(let c of this.viewportLines){if(c.length<i)continue;let u=II(c.from,c.to,this.stateDeco);if(u.total<i)continue;let f=this.scrollTarget?this.scrollTarget.range.head:null,h,d;if(n){let p=o/this.heightOracle.lineLength*this.heightOracle.lineHeight,m,g;if(f!=null){let y=Iu(u,f),C=((this.visibleBottom-this.visibleTop)/2+p)/c.height;m=y-C,g=y+C}else m=(this.visibleTop-c.top-p)/c.height,g=(this.visibleBottom-c.top+p)/c.height;h=Pu(u,m),d=Pu(u,g)}else{let p=u.total*this.heightOracle.charWidth,m=o*this.heightOracle.charWidth,g,y;if(f!=null){let C=Iu(u,f),v=((this.pixelViewport.right-this.pixelViewport.left)/2+m)/p;g=C-v,y=C+v}else g=(this.pixelViewport.left-m)/p,y=(this.pixelViewport.right+m)/p;h=Pu(u,g),d=Pu(u,y)}h>c.from&&a(c.from,h,c,u),d<c.to&&a(d,c.to,c,u)}return l}gapSize(e,t,n,o){let s=Iu(o,n)-Iu(o,t);return this.heightOracle.lineWrapping?e.height*s:o.total*this.heightOracle.charWidth*s}updateLineGaps(e){pa.same(e,this.lineGaps)||(this.lineGaps=e,this.lineGapDeco=lt.set(e.map(t=>t.draw(this.heightOracle.lineWrapping))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];Ae.spans(e,this.viewport.from,this.viewport.to,{span(o,s){t.push({from:o,to:s})},point(){}},20);let n=t.length!=this.visibleRanges.length||this.visibleRanges.some((o,s)=>o.from!=t[s].from||o.to!=t[s].to);return this.visibleRanges=t,n?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find(t=>t.from<=e&&t.to>=e)||ha(this.heightMap.lineAt(e,Be.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return ha(this.heightMap.lineAt(this.scaler.fromDOM(e),Be.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return ha(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}},Hi=class{constructor(e,t){this.from=e,this.to=t}};function II(r,e,t){let n=[],o=r,s=0;return Ae.spans(t,r,e,{span(){},point(i,l){i>o&&(n.push({from:o,to:i}),s+=i-o),o=l}},20),o<e&&(n.push({from:o,to:e}),s+=e-o),{total:s,ranges:n}}function Pu({total:r,ranges:e},t){if(t<=0)return e[0].from;if(t>=1)return e[e.length-1].to;let n=Math.floor(r*t);for(let o=0;;o++){let{from:s,to:i}=e[o],l=i-s;if(n<=l)return s+n;n-=l}}function Iu(r,e){let t=0;for(let{from:n,to:o}of r.ranges){if(e<=o){t+=e-n;break}t+=o-n}return t/r.total}function AI(r,e){for(let t of r)if(e(t))return t}var cw={toDOM(r){return r},fromDOM(r){return r},scale:1},gp=class{constructor(e,t,n){let o=0,s=0,i=0;this.viewports=n.map(({from:l,to:a})=>{let c=t.lineAt(l,Be.ByPos,e,0,0).top,u=t.lineAt(a,Be.ByPos,e,0,0).bottom;return o+=u-c,{from:l,to:a,top:c,bottom:u,domTop:0,domBottom:0}}),this.scale=(7e6-o)/(t.height-o);for(let l of this.viewports)l.domTop=i+(l.top-s)*this.scale,i=l.domBottom=l.domTop+(l.bottom-l.top),s=l.bottom}toDOM(e){for(let t=0,n=0,o=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.top)return o+(e-n)*this.scale;if(e<=s.bottom)return s.domTop+(e-s.top);n=s.bottom,o=s.domBottom}}fromDOM(e){for(let t=0,n=0,o=0;;t++){let s=t<this.viewports.length?this.viewports[t]:null;if(!s||e<s.domTop)return n+(e-o)/this.scale;if(e<=s.domBottom)return s.top+(e-s.domTop);n=s.bottom,o=s.domBottom}}};function ha(r,e){if(e.scale==1)return r;let t=e.toDOM(r.top),n=e.toDOM(r.bottom);return new xn(r.from,r.length,t,n-t,Array.isArray(r._content)?r._content.map(o=>ha(o,e)):r._content)}var Au=se.define({combine:r=>r.join(" ")}),bp=se.define({combine:r=>r.indexOf(!0)>-1}),yp=yn.newName(),tS=yn.newName(),nS=yn.newName(),rS={"&light":"."+tS,"&dark":"."+nS};function xp(r,e,t){return new yn(e,{finish(n){return/&/.test(n)?n.replace(/&\w*/,o=>{if(o=="&")return r;if(!t||!t[o])throw new RangeError(`Unsupported selector: ${o}`);return t[o]}):r+" "+n}})}var LI=xp("."+yp,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>')`,backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},rS),vp=class{constructor(e,t,n,o){this.typeOver=o,this.bounds=null,this.text="";let{impreciseHead:s,impreciseAnchor:i}=e.docView;if(e.state.readOnly&&t>-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let l=s||i?[]:HI(e),a=new Wu(l,e.state);a.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=a.text,this.newSel=NI(l,this.bounds.from)}else{let l=e.observer.selectionRange,a=s&&s.node==l.focusNode&&s.offset==l.focusOffset||!Qd(e.contentDOM,l.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(l.focusNode,l.focusOffset),c=i&&i.node==l.anchorNode&&i.offset==l.anchorOffset||!Qd(e.contentDOM,l.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(l.anchorNode,l.anchorOffset);this.newSel=F.single(c,a)}}};function oS(r,e){let t,{newSel:n}=e,o=r.state.selection.main,s=r.inputState.lastKeyTime>Date.now()-100?r.inputState.lastKeyCode:-1;if(e.bounds){let{from:i,to:l}=e.bounds,a=o.from,c=null;(s===8||ee.android&&e.text.length<l-i)&&(a=o.to,c="end");let u=OI(r.state.doc.sliceString(i,l,Oi),e.text,a-i,c);u&&(ee.chrome&&s==13&&u.toB==u.from+2&&e.text.slice(u.from,u.toB)==Oi+Oi&&u.toB--,t={from:i+u.from,to:i+u.toA,insert:ge.of(e.text.slice(u.from,u.toB).split(Oi))})}else n&&(!r.hasFocus&&r.state.facet(Yu)||n.main.eq(o))&&(n=null);if(!t&&!n)return!1;if(!t&&e.typeOver&&!o.empty&&n&&n.main.empty?t={from:o.from,to:o.to,insert:r.state.doc.slice(o.from,o.to)}:t&&t.from>=o.from&&t.to<=o.to&&(t.from!=o.from||t.to!=o.to)&&o.to-o.from-(t.to-t.from)<=4?t={from:o.from,to:o.to,insert:r.state.doc.slice(o.from,t.from).append(t.insert).append(r.state.doc.slice(t.to,o.to))}:(ee.mac||ee.android)&&t&&t.from==t.to&&t.from==o.head-1&&/^\. ?$/.test(t.insert.toString())&&r.contentDOM.getAttribute("autocorrect")=="off"?(n&&t.insert.length==2&&(n=F.single(n.main.anchor-1,n.main.head-1)),t={from:o.from,to:o.to,insert:ge.of([" "])}):ee.chrome&&t&&t.from==t.to&&t.from==o.head&&t.insert.toString()==`
30
- `&&r.lineWrapping&&(n&&(n=F.single(n.main.anchor-1,n.main.head-1)),t={from:o.from,to:o.to,insert:ge.of([" "])}),t){let i=r.state;if(ee.ios&&r.inputState.flushIOSKey(r)||ee.android&&(t.from==o.from&&t.to==o.to&&t.insert.length==1&&t.insert.lines==2&&Ni(r.contentDOM,"Enter",13)||(t.from==o.from-1&&t.to==o.to&&t.insert.length==0||s==8&&t.insert.length<t.to-t.from)&&Ni(r.contentDOM,"Backspace",8)||t.from==o.from&&t.to==o.to+1&&t.insert.length==0&&Ni(r.contentDOM,"Delete",46)))return!0;let l=t.insert.toString();if(r.state.facet(Lw).some(u=>u(r,t.from,t.to,l)))return!0;r.inputState.composing>=0&&r.inputState.composing++;let a;if(t.from>=o.from&&t.to<=o.to&&t.to-t.from>=(o.to-o.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&r.inputState.composing<0){let u=o.from<t.from?i.sliceDoc(o.from,t.from):"",f=o.to>t.to?i.sliceDoc(t.to,o.to):"";a=i.replaceSelection(r.state.toText(u+t.insert.sliceString(0,void 0,r.state.lineBreak)+f))}else{let u=i.changes(t),f=n&&n.main.to<=u.newLength?n.main:void 0;if(i.selection.ranges.length>1&&r.inputState.composing>=0&&t.to<=o.to&&t.to>=o.to-10){let h=r.state.sliceDoc(t.from,t.to),d=Ww(r)||r.state.doc.lineAt(o.head),p=o.to-t.to,m=o.to-o.from;a=i.changeByRange(g=>{if(g.from==o.from&&g.to==o.to)return{changes:u,range:f||g.map(u)};let y=g.to-p,C=y-h.length;if(g.to-g.from!=m||r.state.sliceDoc(C,y)!=h||d&&g.to>=d.from&&g.from<=d.to)return{range:g};let v=i.changes({from:C,to:y,insert:t.insert}),x=g.to-o.to;return{changes:v,range:f?F.range(Math.max(0,f.anchor+x),Math.max(0,f.head+x)):g.map(v)}})}else a={changes:u,selection:f&&i.selection.replaceRange(f)}}let c="input.type";return(r.composing||r.inputState.compositionPendingChange&&r.inputState.compositionEndedAt>Date.now()-50)&&(r.inputState.compositionPendingChange=!1,c+=".compose",r.inputState.compositionFirstChange&&(c+=".start",r.inputState.compositionFirstChange=!1)),r.dispatch(a,{scrollIntoView:!0,userEvent:c}),!0}else if(n&&!n.main.eq(o)){let i=!1,l="select";return r.inputState.lastSelectionTime>Date.now()-50&&(r.inputState.lastSelectionOrigin=="select"&&(i=!0),l=r.inputState.lastSelectionOrigin),r.dispatch({selection:n,scrollIntoView:i,userEvent:l}),!0}else return!1}function OI(r,e,t,n){let o=Math.min(r.length,e.length),s=0;for(;s<o&&r.charCodeAt(s)==e.charCodeAt(s);)s++;if(s==o&&r.length==e.length)return null;let i=r.length,l=e.length;for(;i>0&&l>0&&r.charCodeAt(i-1)==e.charCodeAt(l-1);)i--,l--;if(n=="end"){let a=Math.max(0,s-Math.min(i,l));t-=i+a-s}if(i<s&&r.length<e.length){let a=t<=s&&t>=i?s-t:0;s-=a,l=s+(l-i),i=s}else if(l<s){let a=t<=s&&t>=l?s-t:0;s-=a,i=s+(i-l),l=s}return{from:s,toA:i,toB:l}}function HI(r){let e=[];if(r.root.activeElement!=r.contentDOM)return e;let{anchorNode:t,anchorOffset:n,focusNode:o,focusOffset:s}=r.observer.selectionRange;return t&&(e.push(new Uu(t,n)),(o!=t||s!=n)&&e.push(new Uu(o,s))),e}function NI(r,e){if(r.length==0)return null;let t=r[0].pos,n=r.length==2?r[1].pos:t;return t>-1&&n>-1?F.single(t+e,n+e):null}var BI={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},_d=ee.ie&&ee.ie_version<=11,Cp=class{constructor(e){this.view=e,this.active=!1,this.selectionRange=new jd,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.resizeContent=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver(t=>{for(let n of t)this.queue.push(n);(ee.ie&&ee.ie_version<=11||ee.ios&&e.composing)&&t.some(n=>n.type=="childList"&&n.removedNodes.length||n.type=="characterData"&&n.oldValue.length>n.target.nodeValue.length)?this.flushSoon():this.flush()}),_d&&(this.onCharData=t=>{this.queue.push({target:t.target,type:"characterData",oldValue:t.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),typeof ResizeObserver=="function"&&(this.resizeScroll=new ResizeObserver(()=>{var t;((t=this.view.docView)===null||t===void 0?void 0:t.lastUpdate)<Date.now()-75&&this.onResize()}),this.resizeScroll.observe(e.scrollDOM),this.resizeContent=new ResizeObserver(()=>this.view.requestMeasure()),this.resizeContent.observe(e.contentDOM)),this.addWindowListeners(this.win=e.win),this.start(),typeof IntersectionObserver=="function"&&(this.intersection=new IntersectionObserver(t=>{this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),t.length>0&&t[t.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))},{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver(t=>{t.length>0&&t[t.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))},{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runScrollHandlers(this.view,e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout(()=>{this.resizeTimeout=-1,this.view.requestMeasure()},50))}onPrint(){this.view.viewState.printing=!0,this.view.measure(),setTimeout(()=>{this.view.viewState.printing=!1,this.view.requestMeasure()},500)}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some((t,n)=>t!=e[n]))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,o=this.selectionRange;if(n.state.facet(Yu)?n.root.activeElement!=this.dom:!Ou(n.dom,o))return;let s=o.anchorNode&&n.docView.nearest(o.anchorNode);if(s&&s.ignoreEvent(e)){t||(this.selectionChanged=!1);return}(ee.ie&&ee.ie_version<=11||ee.android&&ee.chrome)&&!n.state.selection.main.empty&&o.focusNode&&Vu(o.focusNode,o.focusOffset,o.anchorNode,o.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=ee.safari&&e.root.nodeType==11&&B1(this.dom.ownerDocument)==this.dom&&FI(this.view)||zu(e.root);if(!t||this.selectionRange.eq(t))return!1;let n=Ou(this.dom,t);return n&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime<Date.now()-300&&K1(this.dom,t)?(this.view.inputState.lastFocusTime=0,e.docView.updateSelection(),!1):(this.selectionRange.setRange(t),n&&(this.selectionChanged=!0),!0)}setSelectionRange(e,t){this.selectionRange.set(e.node,e.offset,t.node,t.offset),this.selectionChanged=!1}clearSelectionRange(){this.selectionRange.set(null,0,null,0)}listenForScroll(){this.parentCheck=-1;let e=0,t=null;for(let n=this.dom;n;)if(n.nodeType==1)!t&&e<this.scrollTargets.length&&this.scrollTargets[e]==n?e++:t||(t=this.scrollTargets.slice(0,e)),t&&t.push(n),n=n.assignedSlot||n.parentNode;else if(n.nodeType==11)n=n.host;else break;if(e<this.scrollTargets.length&&!t&&(t=this.scrollTargets.slice(0,e)),t){for(let n of this.scrollTargets)n.removeEventListener("scroll",this.onScroll);for(let n of this.scrollTargets=t)n.addEventListener("scroll",this.onScroll)}}ignore(e){if(!this.active)return e();try{return this.stop(),e()}finally{this.start(),this.clear()}}start(){this.active||(this.observer.observe(this.dom,BI),_d&&this.dom.addEventListener("DOMCharacterDataModified",this.onCharData),this.active=!0)}stop(){this.active&&(this.active=!1,this.observer.disconnect(),_d&&this.dom.removeEventListener("DOMCharacterDataModified",this.onCharData))}clear(){this.processRecords(),this.queue.length=0,this.selectionChanged=!1}delayAndroidKey(e,t){var n;if(!this.delayedAndroidKey){let o=()=>{let s=this.delayedAndroidKey;s&&(this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=s.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&s.force&&Ni(this.dom,s.key,s.keyCode))};this.flushingAndroidKey=this.view.win.requestAnimationFrame(o)}(!this.delayedAndroidKey||e=="Enter")&&(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange<Date.now()-50||!!(!((n=this.delayedAndroidKey)===null||n===void 0)&&n.force)})}clearDelayedAndroidKey(){this.win.cancelAnimationFrame(this.flushingAndroidKey),this.delayedAndroidKey=null,this.flushingAndroidKey=-1}flushSoon(){this.delayedFlush<0&&(this.delayedFlush=this.view.win.requestAnimationFrame(()=>{this.delayedFlush=-1,this.flush()}))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,o=!1;for(let s of e){let i=this.readMutation(s);i&&(i.typeOver&&(o=!0),t==-1?{from:t,to:n}=i:(t=Math.min(i.from,t),n=Math.max(i.to,n)))}return{from:t,to:n,typeOver:o}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),o=this.selectionChanged&&Ou(this.dom,this.selectionRange);return e<0&&!o?null:(e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1,new vp(this.view,e,t,n))}flush(e=!0){if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return!1;let n=this.view.state,o=oS(this.view,t);return this.view.state==n&&this.view.update([]),o}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty(e.type=="attributes"),e.type=="attributes"&&(t.flags|=4),e.type=="childList"){let n=uw(t,e.previousSibling||e.target.previousSibling,-1),o=uw(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:o?t.posBefore(o):t.posAtEnd,typeOver:!1}}else return e.type=="characterData"?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,n,o;this.stop(),(e=this.intersection)===null||e===void 0||e.disconnect(),(t=this.gapIntersection)===null||t===void 0||t.disconnect(),(n=this.resizeScroll)===null||n===void 0||n.disconnect(),(o=this.resizeContent)===null||o===void 0||o.disconnect();for(let s of this.scrollTargets)s.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}};function uw(r,e,t){for(;e;){let n=Re.get(e);if(n&&n.parent==r)return n;let o=e.parentNode;e=o!=r.dom?o:t>0?e.nextSibling:e.previousSibling}return null}function FI(r){let e=null;function t(a){a.preventDefault(),a.stopImmediatePropagation(),e=a.getTargetRanges()[0]}if(r.contentDOM.addEventListener("beforeinput",t,!0),r.dom.ownerDocument.execCommand("indent"),r.contentDOM.removeEventListener("beforeinput",t,!0),!e)return null;let n=e.startContainer,o=e.startOffset,s=e.endContainer,i=e.endOffset,l=r.docView.domAtPos(r.state.selection.main.anchor);return Vu(l.node,l.offset,s,i)&&([n,o,s,i]=[s,i,n,o]),{anchorNode:n,anchorOffset:o,focusNode:s,focusOffset:i}}var ce=class{constructor(e={}){this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.style.cssText="position: fixed; top: -10000px",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),this._dispatch=e.dispatch||(t=>this.update([t])),this.dispatch=this.dispatch.bind(this),this._root=e.root||$1(e.parent)||document,this.viewState=new qu(e.state||ve.create(e)),this.plugins=this.state.facet(ua).map(t=>new da(t));for(let t of this.plugins)t.update(this);this.observer=new Cp(this),this.inputState=new lp(this),this.inputState.ensureHandlers(this,this.plugins),this.docView=new Gu(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure(),e.parent&&e.parent.appendChild(this.dom)}get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}dispatch(...e){let t=e.length==1&&e[0]instanceof We?e[0]:this.state.update(...e);this._dispatch(t,this)}update(e){if(this.updateState!=0)throw new Error("Calls to EditorView.update are not allowed while an update is in progress");let t=!1,n=!1,o,s=this.state;for(let h of e){if(h.startState!=s)throw new RangeError("Trying to update state with a transaction that doesn't start from the previous state.");s=h.state}if(this.destroyed){this.viewState.state=s;return}let i=this.hasFocus,l=0,a=null;e.some(h=>h.annotation(Jw))?(this.inputState.notifiedFocused=i,l=1):i!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=i,a=Zw(s,i),a||(l=1));let c=this.observer.delayedAndroidKey,u=null;if(c?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(s.doc)||!this.state.selection.eq(s.selection))&&(u=null)):this.observer.clear(),s.facet(ve.phrases)!=this.state.facet(ve.phrases))return this.setState(s);o=Fi.create(this,s,e),o.flags|=l;let f=this.viewState.scrollTarget;try{this.updateState=2;for(let h of e){if(f&&(f=f.map(h.changes)),h.scrollIntoView){let{main:d}=h.state.selection;f=new Bi(d.empty?d:F.cursor(d.head,d.head>d.anchor?-1:1))}for(let d of h.effects)d.is(QC)&&(f=d.value)}this.viewState.update(o,f),this.bidiCache=zi.update(this.bidiCache,o.changes),o.empty||(this.updatePlugins(o),this.inputState.update(o)),t=this.docView.update(o),this.state.facet(fa)!=this.styleModules&&this.mountStyles(),n=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(t,e.some(h=>h.isUserEvent("select.pointer")))}finally{this.updateState=0}if(o.startState.facet(Au)!=o.state.facet(Au)&&(this.viewState.mustMeasureContent=!0),(t||n||f||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),!o.empty)for(let h of this.state.facet(tp))h(o);(a||u)&&Promise.resolve().then(()=>{a&&this.state==a.startState&&this.dispatch(a),u&&!oS(this,u)&&c.force&&Ni(this.contentDOM,c.key,c.keyCode)})}setState(e){if(this.updateState!=0)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed){this.viewState.state=e;return}this.updateState=2;let t=this.hasFocus;try{for(let n of this.plugins)n.destroy(this);this.viewState=new qu(e),this.plugins=e.facet(ua).map(n=>new da(n)),this.pluginMap.clear();for(let n of this.plugins)n.update(this);this.docView=new Gu(this),this.inputState.ensureHandlers(this,this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(ua),n=e.state.facet(ua);if(t!=n){let o=[];for(let s of n){let i=t.indexOf(s);if(i<0)o.push(new da(s));else{let l=this.plugins[i];l.mustUpdate=e,o.push(l)}}for(let s of this.plugins)s.mustUpdate!=e&&s.destroy(this);this.plugins=o,this.pluginMap.clear(),this.inputState.ensureHandlers(this,this.plugins)}else for(let o of this.plugins)o.mustUpdate=e;for(let o=0;o<this.plugins.length;o++)this.plugins[o].update(this)}measure(e=!0){if(this.destroyed)return;this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,{scrollTop:o}=n,{scrollAnchorPos:s,scrollAnchorHeight:i}=this.viewState;o!=this.viewState.scrollTop&&(i=-1),this.viewState.scrollAnchorHeight=-1;try{for(let l=0;;l++){if(i<0)if(vw(n))s=-1,i=this.viewState.heightMap.height;else{let d=this.viewState.scrollAnchorAt(o);s=d.from,i=d.top}this.updateState=1;let a=this.viewState.measure(this);if(!a&&!this.measureRequests.length&&this.viewState.scrollTarget==null)break;if(l>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let c=[];a&4||([this.measureRequests,c]=[c,this.measureRequests]);let u=c.map(d=>{try{return d.read(this)}catch(p){return ar(this.state,p),fw}}),f=Fi.create(this,this.state,[]),h=!1;f.flags|=a,t?t.flags|=a:t=f,this.updateState=2,f.empty||(this.updatePlugins(f),this.inputState.update(f),this.updateAttrs(),h=this.docView.update(f));for(let d=0;d<c.length;d++)if(u[d]!=fw)try{let p=c[d];p.write&&p.write(u[d],this)}catch(p){ar(this.state,p)}if(h&&this.docView.updateSelection(!0),!f.viewportChanged&&this.measureRequests.length==0){if(this.viewState.editorHeight)if(this.viewState.scrollTarget){this.docView.scrollIntoView(this.viewState.scrollTarget),this.viewState.scrollTarget=null;continue}else{let p=(s<0?this.viewState.heightMap.height:this.viewState.lineBlockAt(s).top)-i;if(p>1||p<-1){o=n.scrollTop=o+p,i=-1;continue}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let l of this.state.facet(tp))l(t)}get themeClasses(){return yp+" "+(this.state.facet(bp)?nS:tS)+" "+this.state.facet(Au)}updateAttrs(){let e=hw(this,Bw,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(Yu)?"true":"false",class:"cm-content",style:`${ee.tabSize}: ${this.state.tabSize}`,role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),hw(this,Pp,t);let n=this.observer.ignore(()=>{let o=Zd(this.contentDOM,this.contentAttrs,t),s=Zd(this.dom,this.editorAttrs,e);return o||s});return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let o of n.effects)if(o.is(ce.announce)){t&&(this.announceDOM.textContent=""),t=!1;let s=this.announceDOM.appendChild(document.createElement("div"));s.textContent=o.value}}mountStyles(){this.styleModules=this.state.facet(fa),yn.mount(this.root,this.styleModules.concat(LI).reverse())}readMeasured(){if(this.updateState==2)throw new Error("Reading the editor layout isn't allowed during an update");this.updateState==0&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame(()=>this.measure())),e){if(this.measureRequests.indexOf(e)>-1)return;if(e.key!=null){for(let t=0;t<this.measureRequests.length;t++)if(this.measureRequests[t].key===e.key){this.measureRequests[t]=e;return}}this.measureRequests.push(e)}}plugin(e){let t=this.pluginMap.get(e);return(t===void 0||t&&t.spec!=e)&&this.pluginMap.set(e,t=this.plugins.find(n=>n.spec==e)||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Ud(this,e,JC(this,e,t,n))}moveByGroup(e,t){return Ud(this,e,JC(this,e,t,n=>dI(this,e.head,n)))}moveToLineBoundary(e,t,n=!0){return hI(this,e,t,n)}moveVertically(e,t,n){return Ud(this,e,pI(this,e,t,n))}domAtPos(e){return this.docView.domAtPos(e)}posAtDOM(e,t=0){return this.docView.posFromDOM(e,t)}posAtCoords(e,t=!0){return this.readMeasured(),_w(this,e,t)}coordsAtPos(e,t=1){this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let o=this.state.doc.lineAt(e),s=this.bidiSpans(o),i=s[mo.find(s,e-o.from,-1,t)];return Dp(n,i.dir==Xe.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(Hw)||e<this.viewport.from||e>this.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>zI)return $w(e.length);let t=this.textDirectionAt(e.from);for(let o of this.bidiCache)if(o.from==e.from&&o.dir==t)return o.order;let n=eI(e.text,t);return this.bidiCache.push(new zi(e.from,e.to,t,n)),n}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||ee.safari&&((e=this.inputState)===null||e===void 0?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore(()=>{yw(this.contentDOM),this.docView.updateSelection()})}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((e.nodeType==9?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e,t={}){return QC.of(new Bi(typeof e=="number"?F.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}static domEventHandlers(e){return Cn.define(()=>({}),{eventHandlers:e})}static theme(e,t){let n=yn.newName(),o=[Au.of(n),fa.of(xp(`.${n}`,e))];return t&&t.dark&&o.push(bp.of(!0)),o}static baseTheme(e){return ms.lowest(fa.of(xp("."+yp,e,rS)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),o=n&&Re.get(n)||Re.get(e);return((t=o==null?void 0:o.rootView)===null||t===void 0?void 0:t.view)||null}};ce.styleModule=fa;ce.inputHandler=Lw;ce.focusChangeEffect=Ow;ce.perLineTextDirection=Hw;ce.exceptionSink=Aw;ce.updateListener=tp;ce.editable=Yu;ce.mouseSelectionStyle=Iw;ce.dragMovesSelection=Pw;ce.clickAddsSelectionRange=Rw;ce.decorations=ga;ce.atomicRanges=Ip;ce.scrollMargins=Fw;ce.darkTheme=bp;ce.contentAttributes=Pp;ce.editorAttributes=Bw;ce.lineWrapping=ce.contentAttributes.of({class:"cm-lineWrapping"});ce.announce=Ne.define();var zI=4096,fw={},zi=class{constructor(e,t,n,o){this.from=e,this.to=t,this.dir=n,this.order=o}static update(e,t){if(t.empty)return e;let n=[],o=e.length?e[e.length-1].dir:Xe.LTR;for(let s=Math.max(0,e.length-10);s<e.length;s++){let i=e[s];i.dir==o&&!t.touchesRange(i.from,i.to)&&n.push(new zi(t.mapPos(i.from,1),t.mapPos(i.to,-1),i.dir,i.order))}return n}};function hw(r,e,t){for(let n=r.state.facet(e),o=n.length-1;o>=0;o--){let s=n[o],i=typeof s=="function"?s(r):s;i&&Jd(i,t)}return t}var VI=ee.mac?"mac":ee.windows?"win":ee.linux?"linux":"key";function $I(r,e){let t=r.split(/-(?!$)/),n=t[t.length-1];n=="Space"&&(n=" ");let o,s,i,l;for(let a=0;a<t.length-1;++a){let c=t[a];if(/^(cmd|meta|m)$/i.test(c))l=!0;else if(/^a(lt)?$/i.test(c))o=!0;else if(/^(c|ctrl|control)$/i.test(c))s=!0;else if(/^s(hift)?$/i.test(c))i=!0;else if(/^mod$/i.test(c))e=="mac"?l=!0:s=!0;else throw new Error("Unrecognized modifier name: "+c)}return o&&(n="Alt-"+n),s&&(n="Ctrl-"+n),l&&(n="Meta-"+n),i&&(n="Shift-"+n),n}function Lu(r,e,t){return e.altKey&&(r="Alt-"+r),e.ctrlKey&&(r="Ctrl-"+r),e.metaKey&&(r="Meta-"+r),t!==!1&&e.shiftKey&&(r="Shift-"+r),r}var KI=ms.default(ce.domEventHandlers({keydown(r,e){return GI(WI(e.state),r,e,"editor")}})),Vi=se.define({enables:KI}),dw=new WeakMap;function WI(r){let e=r.facet(Vi),t=dw.get(e);return t||dw.set(e,t=_I(e.reduce((n,o)=>n.concat(o),[]))),t}var po=null,UI=4e3;function _I(r,e=VI){let t=Object.create(null),n=Object.create(null),o=(i,l)=>{let a=n[i];if(a==null)n[i]=l;else if(a!=l)throw new Error("Key binding "+i+" is used both as a regular binding and as a multi-stroke prefix")},s=(i,l,a,c,u)=>{var f,h;let d=t[i]||(t[i]=Object.create(null)),p=l.split(/ (?!$)/).map(y=>$I(y,e));for(let y=1;y<p.length;y++){let C=p.slice(0,y).join(" ");o(C,!0),d[C]||(d[C]={preventDefault:!0,stopPropagation:!1,run:[v=>{let x=po={view:v,prefix:C,scope:i};return setTimeout(()=>{po==x&&(po=null)},UI),!0}]})}let m=p.join(" ");o(m,!1);let g=d[m]||(d[m]={preventDefault:!1,stopPropagation:!1,run:((h=(f=d._any)===null||f===void 0?void 0:f.run)===null||h===void 0?void 0:h.slice())||[]});a&&g.run.push(a),c&&(g.preventDefault=!0),u&&(g.stopPropagation=!0)};for(let i of r){let l=i.scope?i.scope.split(" "):["editor"];if(i.any)for(let c of l){let u=t[c]||(t[c]=Object.create(null));u._any||(u._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let f in u)u[f].run.push(i.any)}let a=i[e]||i.key;if(a)for(let c of l)s(c,a,i.run,i.preventDefault,i.stopPropagation),i.shift&&s(c,"Shift-"+a,i.shift,i.preventDefault,i.stopPropagation)}return t}function GI(r,e,t,n){let o=FC(e),s=sr(o,0),i=fs(s)==o.length&&o!=" ",l="",a=!1,c=!1,u=!1;po&&po.view==t&&po.scope==n&&(l=po.prefix+" ",Qw.indexOf(e.keyCode)<0&&(c=!0,po=null));let f=new Set,h=g=>{if(g){for(let y of g.run)if(!f.has(y)&&(f.add(y),y(t,e)))return g.stopPropagation&&(u=!0),!0;g.preventDefault&&(g.stopPropagation&&(u=!0),c=!0)}return!1},d=r[n],p,m;return d&&(h(d[l+Lu(o,e,!i)])?a=!0:i&&(e.altKey||e.metaKey||e.ctrlKey)&&!(ee.windows&&e.ctrlKey&&e.altKey)&&(p=Hr[e.keyCode])&&p!=o?(h(d[l+Lu(p,e,!0)])||e.shiftKey&&(m=Ai[e.keyCode])!=o&&m!=p&&h(d[l+Lu(m,e,!1)]))&&(a=!0):i&&e.shiftKey&&h(d[l+Lu(o,e,!0)])&&(a=!0),!a&&h(d._any)&&(a=!0)),c&&(a=!0),a&&u&&e.stopPropagation(),a}var ws=class{constructor(e,t,n,o,s){this.className=e,this.left=t,this.top=n,this.width=o,this.height=s}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className!=this.className?!1:(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",this.width!=null&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let o=e.coordsAtPos(n.head,n.assoc||1);if(!o)return[];let s=sS(e);return[new ws(t,o.left-s.left,o.top-s.top,null,o.bottom-o.top)]}else return QI(e,t,n)}};function sS(r){let e=r.scrollDOM.getBoundingClientRect();return{left:(r.textDirection==Xe.LTR?e.left:e.right-r.scrollDOM.clientWidth)-r.scrollDOM.scrollLeft,top:e.top-r.scrollDOM.scrollTop}}function pw(r,e,t){let n=F.cursor(e);return{from:Math.max(t.from,r.moveToLineBoundary(n,!1,!0).from),to:Math.min(t.to,r.moveToLineBoundary(n,!0,!0).from),type:Ye.Text}}function QI(r,e,t){if(t.to<=r.viewport.from||t.from>=r.viewport.to)return[];let n=Math.max(t.from,r.viewport.from),o=Math.min(t.to,r.viewport.to),s=r.textDirection==Xe.LTR,i=r.contentDOM,l=i.getBoundingClientRect(),a=sS(r),c=i.querySelector(".cm-line"),u=c&&window.getComputedStyle(c),f=l.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),h=l.right-(u?parseInt(u.paddingRight):0),d=ip(r,n),p=ip(r,o),m=d.type==Ye.Text?d:null,g=p.type==Ye.Text?p:null;if(m&&(r.lineWrapping||d.widgetLineBreaks)&&(m=pw(r,n,m)),g&&(r.lineWrapping||p.widgetLineBreaks)&&(g=pw(r,o,g)),m&&g&&m.from==g.from)return C(v(t.from,t.to,m));{let S=m?v(t.from,null,m):x(d,!1),b=g?v(null,t.to,g):x(p,!0),w=[];return(m||d).to<(g||p).from-(m&&g?1:0)||d.widgetLineBreaks>1&&S.bottom+r.defaultLineHeight/2<b.top?w.push(y(f,S.bottom,h,b.top)):S.bottom<b.top&&r.elementAtHeight((S.bottom+b.top)/2).type==Ye.Text&&(S.bottom=b.top=(S.bottom+b.top)/2),C(S).concat(w).concat(C(b))}function y(S,b,w,k){return new ws(e,S-a.left,b-a.top-.01,w-S,k-b+.01)}function C({top:S,bottom:b,horizontal:w}){let k=[];for(let D=0;D<w.length;D+=2)k.push(y(w[D],S,w[D+1],b));return k}function v(S,b,w){let k=1e9,D=-1e9,T=[];function M(A,O,L,P,I){let B=r.coordsAtPos(A,A==w.to?-2:2),H=r.coordsAtPos(L,L==w.from?2:-2);!B||!H||(k=Math.min(B.top,H.top,k),D=Math.max(B.bottom,H.bottom,D),I==Xe.LTR?T.push(s&&O?f:B.left,s&&P?h:H.right):T.push(!s&&P?f:H.left,!s&&O?h:B.right))}let E=S!=null?S:w.from,R=b!=null?b:w.to;for(let A of r.visibleRanges)if(A.to>E&&A.from<R)for(let O=Math.max(A.from,E),L=Math.min(A.to,R);;){let P=r.state.doc.lineAt(O);for(let I of r.bidiSpans(P)){let B=I.from+P.from,H=I.to+P.from;if(B>=L)break;H>O&&M(Math.max(B,O),S==null&&B<=E,Math.min(H,L),b==null&&H>=R,I.dir)}if(O=P.to+1,O>=L)break}return T.length==0&&M(E,S==null,R,b==null,r.textDirection),{top:k,bottom:D,horizontal:T}}function x(S,b){let w=l.top+(b?S.top:S.bottom);return{top:w,bottom:w,horizontal:[]}}}function jI(r,e){return r.constructor==e.constructor&&r.eq(e)}var wp=class{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(Bu)!=e.state.facet(Bu)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&e.view.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(Bu);for(;t<n.length&&n[t]!=this.layer;)t++;this.dom.style.zIndex=String((this.layer.above?150:-1)-t)}measure(){return this.layer.markers(this.view)}draw(e){if(e.length!=this.drawn.length||e.some((t,n)=>!jI(t,this.drawn[n]))){let t=this.dom.firstChild,n=0;for(let o of e)o.update&&t&&o.constructor&&this.drawn[n].constructor&&o.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(o.draw(),t);for(;t;){let o=t.nextSibling;t.remove(),t=o}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}},Bu=se.define();function iS(r){return[Cn.define(e=>new wp(e,r)),Bu.of(r)]}var lS=!ee.ios,ya=se.define({combine(r){return gs(r,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})}});function Ap(r={}){return[ya.of(r),qI,XI,YI,Nw.of(!0)]}function aS(r){return r.startState.facet(ya)!=r.state.facet(ya)}var qI=iS({above:!0,markers(r){let{state:e}=r,t=e.facet(ya),n=[];for(let o of e.selection.ranges){let s=o==e.selection.main;if(o.empty?!s||lS:t.drawRangeCursor){let i=s?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",l=o.empty?o:F.cursor(o.head,o.head>o.anchor?-1:1);for(let a of ws.forRange(r,i,l))n.push(a)}}return n},update(r,e){r.transactions.some(n=>n.selection)&&(e.style.animationName=e.style.animationName=="cm-blink"?"cm-blink2":"cm-blink");let t=aS(r);return t&&mw(r.state,e),r.docChanged||r.selectionSet||t},mount(r,e){mw(e.state,r)},class:"cm-cursorLayer"});function mw(r,e){e.style.animationDuration=r.facet(ya).cursorBlinkRate+"ms"}var XI=iS({above:!1,markers(r){return r.state.selection.ranges.map(e=>e.empty?[]:ws.forRange(r,"cm-selectionBackground",e)).reduce((e,t)=>e.concat(t))},update(r,e){return r.docChanged||r.selectionSet||r.viewportChanged||aS(r)},class:"cm-selectionLayer"}),cS={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};lS&&(cS[".cm-line"].caretColor="transparent !important");var YI=ms.highest(ce.theme(cS));function gw(r,e,t,n,o){e.lastIndex=0;for(let s=r.iterRange(t,n),i=t,l;!s.next().done;i+=s.value.length)if(!s.lineBreak)for(;l=e.exec(s.value);)o(i+l.index,l)}function JI(r,e){let t=r.visibleRanges;if(t.length==1&&t[0].from==r.viewport.from&&t[0].to==r.viewport.to)return t;let n=[];for(let{from:o,to:s}of t)o=Math.max(r.state.doc.lineAt(o).from,o-e),s=Math.min(r.state.doc.lineAt(s).to,s+e),n.length&&n[n.length-1].to>=o?n[n.length-1].to=s:n.push({from:o,to:s});return n}var Sp=class{constructor(e){let{regexp:t,decoration:n,decorate:o,boundary:s,maxLength:i=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,o)this.addMatch=(l,a,c,u)=>o(u,c,c+l[0].length,l,a);else if(typeof n=="function")this.addMatch=(l,a,c,u)=>{let f=n(l,a,c);f&&u(c,c+l[0].length,f)};else if(n)this.addMatch=(l,a,c,u)=>u(c,c+l[0].length,n);else throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.boundary=s,this.maxLength=i}createDeco(e){let t=new ir,n=t.add.bind(t);for(let{from:o,to:s}of JI(e,this.maxLength))gw(e.state.doc,this.regexp,o,s,(i,l)=>this.addMatch(l,e,i,n));return t.finish()}updateDeco(e,t){let n=1e9,o=-1;return e.docChanged&&e.changes.iterChanges((s,i,l,a)=>{a>e.view.viewport.from&&l<e.view.viewport.to&&(n=Math.min(l,n),o=Math.max(a,o))}),e.viewportChanged||o-n>1e3?this.createDeco(e.view):o>-1?this.updateRange(e.view,t.map(e.changes),n,o):t}updateRange(e,t,n,o){for(let s of e.visibleRanges){let i=Math.max(s.from,n),l=Math.min(s.to,o);if(l>i){let a=e.state.doc.lineAt(i),c=a.to<l?e.state.doc.lineAt(l):a,u=Math.max(s.from,a.from),f=Math.min(s.to,c.to);if(this.boundary){for(;i>a.from;i--)if(this.boundary.test(a.text[i-1-a.from])){u=i;break}for(;l<c.to;l++)if(this.boundary.test(c.text[l-c.from])){f=l;break}}let h=[],d,p=(m,g,y)=>h.push(y.range(m,g));if(a==c)for(this.regexp.lastIndex=u-a.from;(d=this.regexp.exec(a.text))&&d.index<f-a.from;)this.addMatch(d,e,d.index+a.from,p);else gw(e.state.doc,this.regexp,u,f,(m,g)=>this.addMatch(g,e,m,p));t=t.update({filterFrom:u,filterTo:f,filter:(m,g)=>m<u||g>f,add:h})}}return t}},Tp=/x/.unicode!=null?"gu":"g",ZI=new RegExp(`[\0-\b
31
- -\x7F-\x9F\xAD\u061C\u200B\u200E\u200F\u2028\u2029\u202D\u202E\u2066\u2067\u2069\uFEFF\uFFF9-\uFFFC]`,Tp),eA={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"},Gd=null;function tA(){var r;if(Gd==null&&typeof document<"u"&&document.body){let e=document.body.style;Gd=((r=e.tabSize)!==null&&r!==void 0?r:e.MozTabSize)!=null}return Gd||!1}var Fu=se.define({combine(r){let e=gs(r,{render:null,specialChars:ZI,addSpecialChars:null});return(e.replaceTabs=!tA())&&(e.specialChars=new RegExp(" |"+e.specialChars.source,Tp)),e.addSpecialChars&&(e.specialChars=new RegExp(e.specialChars.source+"|"+e.addSpecialChars.source,Tp)),e}});function Lp(r={}){return[Fu.of(r),nA()]}var bw=null;function nA(){return bw||(bw=Cn.fromClass(class{constructor(r){this.view=r,this.decorations=lt.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(r.state.facet(Fu)),this.decorations=this.decorator.createDeco(r)}makeDecorator(r){return new Sp({regexp:r.specialChars,decoration:(e,t,n)=>{let{doc:o}=t.state,s=sr(e[0],0);if(s==9){let i=o.lineAt(n),l=t.state.tabSize,a=bs(i.text,l,n-i.from);return lt.replace({widget:new kp((l-a%l)*this.view.defaultCharacterWidth)})}return this.decorationCache[s]||(this.decorationCache[s]=lt.replace({widget:new Ep(r,s)}))},boundary:r.replaceTabs?void 0:/[^]/})}update(r){let e=r.state.facet(Fu);r.startState.facet(Fu)!=e?(this.decorator=this.makeDecorator(e),this.decorations=this.decorator.createDeco(r.view)):this.decorations=this.decorator.updateDeco(r,this.decorations)}},{decorations:r=>r.decorations}))}var rA="\u2022";function oA(r){return r>=32?rA:r==10?"\u2424":String.fromCharCode(9216+r)}var Ep=class extends Fr{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=oA(this.code),n=e.state.phrase("Control character")+" "+(eA[this.code]||"0x"+this.code.toString(16)),o=this.options.render&&this.options.render(this.code,n,t);if(o)return o;let s=document.createElement("span");return s.textContent=t,s.title=n,s.setAttribute("aria-label",n),s.className="cm-specialChar",s}ignoreEvent(){return!1}},kp=class extends Fr{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent=" ",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}};var RJ=ce.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"7px",width:`${7*2}px`,position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent"},".cm-tooltip-above &":{bottom:"-7px","&:before":{borderTop:"7px solid #bbb"},"&:after":{borderTop:"7px solid #f5f5f5",bottom:"1px"}},".cm-tooltip-below &":{top:"-7px","&:before":{borderBottom:"7px solid #bbb"},"&:after":{borderBottom:"7px solid #f5f5f5",top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}});var zr=class extends Un{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}};zr.prototype.elementClass="";zr.prototype.toDOM=void 0;zr.prototype.mapMode=Ct.TrackBefore;zr.prototype.startSide=zr.prototype.endSide=-1;zr.prototype.point=!0;var sA=0,wn=class{constructor(e,t,n){this.set=e,this.base=t,this.modified=n,this.id=sA++}static define(e){if(e!=null&&e.base)throw new Error("Can not derive from a modified tag");let t=new wn([],null,[]);if(t.set.push(t),e)for(let n of e.set)t.set.push(n);return t}static defineModifier(){let e=new $i;return t=>t.modified.indexOf(e)>-1?t:$i.get(t.base||t,t.modified.concat(e).sort((n,o)=>n.id-o.id))}},iA=0,$i=class{constructor(){this.instances=[],this.id=iA++}static get(e,t){if(!t.length)return e;let n=t[0].instances.find(l=>l.base==e&&lA(t,l.modified));if(n)return n;let o=[],s=new wn(o,e,t);for(let l of t)l.instances.push(s);let i=aA(t);for(let l of e.set)if(!l.modified.length)for(let a of i)o.push($i.get(l,a));return s}};function lA(r,e){return r.length==e.length&&r.every((t,n)=>t==e[n])}function aA(r){let e=[[]];for(let t=0;t<r.length;t++)for(let n=0,o=e.length;n<o;n++)e.push(e[n].concat(r[t]));return e.sort((t,n)=>n.length-t.length)}function va(r){let e=Object.create(null);for(let t in r){let n=r[t];Array.isArray(n)||(n=[n]);for(let o of t.split(" "))if(o){let s=[],i=2,l=o;for(let f=0;;){if(l=="..."&&f>0&&f+3==o.length){i=1;break}let h=/^"(?:[^"\\]|\\.)*?"|[^\/!]+/.exec(l);if(!h)throw new RangeError("Invalid path: "+o);if(s.push(h[0]=="*"?"":h[0][0]=='"'?JSON.parse(h[0]):h[0]),f+=h[0].length,f==o.length)break;let d=o[f++];if(f==o.length&&d=="!"){i=0;break}if(d!="/")throw new RangeError("Invalid path: "+o);l=o.slice(f)}let a=s.length-1,c=s[a];if(!c)throw new RangeError("Invalid path: "+o);let u=new Ki(n,i,a>0?s.slice(0,a):null);e[c]=u.sort(e[c])}}return hS.add(e)}var hS=new ie,Ki=class{constructor(e,t,n,o){this.tags=e,this.mode=t,this.context=n,this.next=o}get opaque(){return this.mode==0}get inherit(){return this.mode==1}sort(e){return!e||e.depth<this.depth?(this.next=e,this):(e.next=this.sort(e.next),e)}get depth(){return this.context?this.context.length:0}};Ki.empty=new Ki([],2,null);function Bp(r,e){let t=Object.create(null);for(let s of r)if(!Array.isArray(s.tag))t[s.tag.id]=s.class;else for(let i of s.tag)t[i.id]=s.class;let{scope:n,all:o=null}=e||{};return{style:s=>{let i=o;for(let l of s)for(let a of l.set){let c=t[a.id];if(c){i=i?i+" "+c:c;break}}return i},scope:n}}function cA(r,e){let t=null;for(let n of r){let o=n.style(e);o&&(t=t?t+" "+o:o)}return t}function dS(r,e,t,n=0,o=r.length){let s=new Hp(n,Array.isArray(e)?e:[e],t);s.highlightRange(r.cursor(),n,o,"",s.highlighters),s.flush(o)}var Hp=class{constructor(e,t,n){this.at=e,this.highlighters=t,this.span=n,this.class=""}startSpan(e,t){t!=this.class&&(this.flush(e),e>this.at&&(this.at=e),this.class=t)}flush(e){e>this.at&&this.class&&this.span(this.at,e,this.class)}highlightRange(e,t,n,o,s){let{type:i,from:l,to:a}=e;if(l>=n||a<=t)return;i.isTop&&(s=this.highlighters.filter(d=>!d.scope||d.scope(i)));let c=o,u=uA(e)||Ki.empty,f=cA(s,u.tags);if(f&&(c&&(c+=" "),c+=f,u.mode==1&&(o+=(o?" ":"")+f)),this.startSpan(Math.max(t,l),c),u.opaque)return;let h=e.tree&&e.tree.prop(ie.mounted);if(h&&h.overlay){let d=e.node.enter(h.overlay[0].from+l,1),p=this.highlighters.filter(g=>!g.scope||g.scope(h.tree.type)),m=e.firstChild();for(let g=0,y=l;;g++){let C=g<h.overlay.length?h.overlay[g]:null,v=C?C.from+l:a,x=Math.max(t,y),S=Math.min(n,v);if(x<S&&m)for(;e.from<S&&(this.highlightRange(e,x,S,o,s),this.startSpan(Math.min(S,e.to),c),!(e.to>=v||!e.nextSibling())););if(!C||v>n)break;y=C.to+l,y>t&&(this.highlightRange(d.cursor(),Math.max(t,C.from+l),Math.min(n,y),"",p),this.startSpan(Math.min(n,y),c))}m&&e.parent()}else if(e.firstChild()){h&&(o="");do if(!(e.to<=t)){if(e.from>=n)break;this.highlightRange(e,t,n,o,s),this.startSpan(Math.min(n,e.to),c)}while(e.nextSibling());e.parent()}}};function uA(r){let e=r.type.prop(hS);for(;e&&e.context&&!r.matchContext(e.context);)e=e.next;return e||null}var U=wn.define,Ju=U(),yo=U(),uS=U(yo),fS=U(yo),xo=U(),Zu=U(xo),Op=U(xo),hr=U(),Ss=U(hr),ur=U(),fr=U(),Np=U(),xa=U(Np),ef=U(),$={comment:Ju,lineComment:U(Ju),blockComment:U(Ju),docComment:U(Ju),name:yo,variableName:U(yo),typeName:uS,tagName:U(uS),propertyName:fS,attributeName:U(fS),className:U(yo),labelName:U(yo),namespace:U(yo),macroName:U(yo),literal:xo,string:Zu,docString:U(Zu),character:U(Zu),attributeValue:U(Zu),number:Op,integer:U(Op),float:U(Op),bool:U(xo),regexp:U(xo),escape:U(xo),color:U(xo),url:U(xo),keyword:ur,self:U(ur),null:U(ur),atom:U(ur),unit:U(ur),modifier:U(ur),operatorKeyword:U(ur),controlKeyword:U(ur),definitionKeyword:U(ur),moduleKeyword:U(ur),operator:fr,derefOperator:U(fr),arithmeticOperator:U(fr),logicOperator:U(fr),bitwiseOperator:U(fr),compareOperator:U(fr),updateOperator:U(fr),definitionOperator:U(fr),typeOperator:U(fr),controlOperator:U(fr),punctuation:Np,separator:U(Np),bracket:xa,angleBracket:U(xa),squareBracket:U(xa),paren:U(xa),brace:U(xa),content:hr,heading:Ss,heading1:U(Ss),heading2:U(Ss),heading3:U(Ss),heading4:U(Ss),heading5:U(Ss),heading6:U(Ss),contentSeparator:U(hr),list:U(hr),quote:U(hr),emphasis:U(hr),strong:U(hr),link:U(hr),monospace:U(hr),strikethrough:U(hr),inserted:U(),deleted:U(),changed:U(),invalid:U(),meta:ef,documentMeta:U(ef),annotation:U(ef),processingInstruction:U(ef),definition:wn.defineModifier(),constant:wn.defineModifier(),function:wn.defineModifier(),standard:wn.defineModifier(),local:wn.defineModifier(),special:wn.defineModifier()},LJ=Bp([{tag:$.link,class:"tok-link"},{tag:$.heading,class:"tok-heading"},{tag:$.emphasis,class:"tok-emphasis"},{tag:$.strong,class:"tok-strong"},{tag:$.keyword,class:"tok-keyword"},{tag:$.atom,class:"tok-atom"},{tag:$.bool,class:"tok-bool"},{tag:$.url,class:"tok-url"},{tag:$.labelName,class:"tok-labelName"},{tag:$.inserted,class:"tok-inserted"},{tag:$.deleted,class:"tok-deleted"},{tag:$.literal,class:"tok-literal"},{tag:$.string,class:"tok-string"},{tag:$.number,class:"tok-number"},{tag:[$.regexp,$.escape,$.special($.string)],class:"tok-string2"},{tag:$.variableName,class:"tok-variableName"},{tag:$.local($.variableName),class:"tok-variableName tok-local"},{tag:$.definition($.variableName),class:"tok-variableName tok-definition"},{tag:$.special($.variableName),class:"tok-variableName2"},{tag:$.definition($.propertyName),class:"tok-propertyName tok-definition"},{tag:$.typeName,class:"tok-typeName"},{tag:$.namespace,class:"tok-namespace"},{tag:$.className,class:"tok-className"},{tag:$.macroName,class:"tok-macroName"},{tag:$.propertyName,class:"tok-propertyName"},{tag:$.operator,class:"tok-operator"},{tag:$.comment,class:"tok-comment"},{tag:$.meta,class:"tok-meta"},{tag:$.invalid,class:"tok-invalid"},{tag:$.punctuation,class:"tok-punctuation"}]);var Fp,Wi=new ie;function fA(r){return se.define({combine:r?e=>e.concat(r):void 0})}var hA=new ie,an=class{constructor(e,t,n=[],o=""){this.data=e,this.name=o,ve.prototype.hasOwnProperty("tree")||Object.defineProperty(ve.prototype,"tree",{get(){return St(this)}}),this.parser=t,this.extension=[_i.of(this),ve.languageData.of((s,i,l)=>{let a=pS(s,i,l),c=a.type.prop(Wi);if(!c)return[];let u=s.facet(c),f=a.type.prop(hA);if(f){let h=a.resolve(i-a.from,l);for(let d of f)if(d.test(h,s)){let p=s.facet(d.facet);return d.type=="replace"?p:p.concat(u)}}return u})].concat(n)}isActiveAt(e,t,n=-1){return pS(e,t,n).type.prop(Wi)==this.data}findRegions(e){let t=e.facet(_i);if((t==null?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],o=(s,i)=>{if(s.prop(Wi)==this.data){n.push({from:i,to:i+s.length});return}let l=s.prop(ie.mounted);if(l){if(l.tree.prop(Wi)==this.data){if(l.overlay)for(let a of l.overlay)n.push({from:a.from+i,to:a.to+i});else n.push({from:i,to:i+s.length});return}else if(l.overlay){let a=n.length;if(o(l.tree,l.overlay[0].from+i),n.length>a)return}}for(let a=0;a<s.children.length;a++){let c=s.children[a];c instanceof Se&&o(c,s.positions[a]+i)}};return o(St(e),0),n}get allowsNesting(){return!0}};an.setState=Ne.define();function pS(r,e,t){let n=r.facet(_i),o=St(r).topNode;if(!n||n.allowsNesting)for(let s=o;s;s=s.enter(e,t,Ge.ExcludeBuffers))s.type.isTop&&(o=s);return o}var vo=class extends an{constructor(e,t,n){super(e,t,[],n),this.parser=t}static define(e){let t=fA(e.languageData);return new vo(t,e.parser.configure({props:[Wi.add(n=>n.isTop?t:void 0)]}),e.name)}configure(e,t){return new vo(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}};function St(r){let e=r.field(an.state,!1);return e?e.tree:Se.empty}var Kp=class{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e<n||t>=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}},Ca=null,Ui=class{constructor(e,t,n=[],o,s,i,l,a){this.parser=e,this.state=t,this.fragments=n,this.tree=o,this.treeLen=s,this.viewport=i,this.skipped=l,this.scheduleOn=a,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new Ui(e,t,[],Se.empty,0,n,[],null)}startParse(){return this.parser.startParse(new Kp(this.state.doc),this.fragments)}work(e,t){return t!=null&&t>=this.state.doc.length&&(t=void 0),this.tree!=Se.empty&&this.isDone(t!=null?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext(()=>{var n;if(typeof e=="number"){let o=Date.now()+e;e=()=>Date.now()>o}for(this.parse||(this.parse=this.startParse()),t!=null&&(this.parse.stoppedAt==null||this.parse.stoppedAt>t)&&t<this.state.doc.length&&this.parse.stopAt(t);;){let o=this.parse.advance();if(o)if(this.fragments=this.withoutTempSkipped(nr.addTree(o,this.fragments,this.parse.stoppedAt!=null)),this.treeLen=(n=this.parse.stoppedAt)!==null&&n!==void 0?n:this.state.doc.length,this.tree=o,this.parse=null,this.treeLen<(t!=null?t:this.state.doc.length))this.parse=this.startParse();else return!0;if(e())return!1}})}takeTree(){let e,t;this.parse&&(e=this.parse.parsedPos)>=this.treeLen&&((this.parse.stoppedAt==null||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext(()=>{for(;!(t=this.parse.advance()););}),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(nr.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=Ca;Ca=this;try{return e()}finally{Ca=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=mS(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:o,treeLen:s,viewport:i,skipped:l}=this;if(this.takeTree(),!e.empty){let a=[];if(e.iterChangedRanges((c,u,f,h)=>a.push({fromA:c,toA:u,fromB:f,toB:h})),n=nr.applyChanges(n,a),o=Se.empty,s=0,i={from:e.mapPos(i.from,-1),to:e.mapPos(i.to,1)},this.skipped.length){l=[];for(let c of this.skipped){let u=e.mapPos(c.from,1),f=e.mapPos(c.to,-1);u<f&&l.push({from:u,to:f})}}}return new Ui(this.parser,t,n,o,s,i,l,this.scheduleOn)}updateViewport(e){if(this.viewport.from==e.from&&this.viewport.to==e.to)return!1;this.viewport=e;let t=this.skipped.length;for(let n=0;n<this.skipped.length;n++){let{from:o,to:s}=this.skipped[n];o<e.to&&s>e.from&&(this.fragments=mS(this.fragments,o,s),this.skipped.splice(n--,1))}return this.skipped.length>=t?!1:(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends so{createParse(t,n,o){let s=o[0].from,i=o[o.length-1].to;return{parsedPos:s,advance(){let a=Ca;if(a){for(let c of o)a.tempSkipped.push(c);e&&(a.scheduleOn=a.scheduleOn?Promise.all([a.scheduleOn,e]):e)}return this.parsedPos=i,new Se(tt.none,[],[],i-s)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&t[0].from==0&&t[0].to>=e}static get(){return Ca}};function mS(r,e,t){return nr.applyChanges(r,[{fromA:e,toA:t,fromB:e,toB:t}])}var Co=class{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new Co(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=Ui.create(e.facet(_i).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new Co(n)}};an.state=Ht.define({create:Co.init,update(r,e){for(let t of e.effects)if(t.is(an.setState))return t.value;return e.startState.facet(_i)!=e.state.facet(_i)?Co.init(e.state):r.apply(e)}});var yS=r=>{let e=setTimeout(()=>r(),500);return()=>clearTimeout(e)};typeof requestIdleCallback<"u"&&(yS=r=>{let e=-1,t=setTimeout(()=>{e=requestIdleCallback(r,{timeout:500-100})},100);return()=>e<0?clearTimeout(t):cancelIdleCallback(e)});var zp=typeof navigator<"u"&&(!((Fp=navigator.scheduling)===null||Fp===void 0)&&Fp.isInputPending)?()=>navigator.scheduling.isInputPending():null,dA=Cn.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(an.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),e.docChanged&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(an.state);(t.tree!=t.context.tree||!t.context.isDone(e.doc.length))&&(this.working=yS(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEnd<t&&(this.chunkEnd<0||this.view.hasFocus)&&(this.chunkEnd=t+3e4,this.chunkBudget=3e3),this.chunkBudget<=0)return;let{state:n,viewport:{to:o}}=this.view,s=n.field(an.state);if(s.tree==s.context.tree&&s.context.isDone(o+1e5))return;let i=Date.now()+Math.min(this.chunkBudget,100,e&&!zp?Math.max(25,e.timeRemaining()-5):1e9),l=s.context.treeLen<o&&n.doc.length>o+1e3,a=s.context.work(()=>zp&&zp()||Date.now()>i,o+(l?0:1e5));this.chunkBudget-=Date.now()-t,(a||this.chunkBudget<=0)&&(s.context.takeTree(),this.view.dispatch({effects:an.setState.of(new Co(s.context))})),this.chunkBudget>0&&!(a&&!l)&&this.scheduleWork(),this.checkAsyncSchedule(s.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then(()=>this.scheduleWork()).catch(t=>ar(this.view.state,t)).then(()=>this.workScheduled--),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),_i=se.define({combine(r){return r.length?r[0]:null},enables:r=>[an.state,dA,ce.contentAttributes.compute([r],e=>{let t=e.facet(r);return t&&t.name?{"data-language":t.name}:{}})]});var pA=se.define(),Sa=se.define({combine:r=>{if(!r.length)return" ";let e=r[0];if(!e||/\S/.test(e)||Array.from(e).some(t=>t!=e[0]))throw new Error("Invalid indent unit: "+JSON.stringify(r[0]));return e}});function Ta(r){let e=r.facet(Sa);return e.charCodeAt(0)==9?r.tabSize*e.length:e.length}function Ea(r,e){let t="",n=r.tabSize,o=r.facet(Sa)[0];if(o==" "){for(;e>=n;)t+=" ",e-=n;o=" "}for(let s=0;s<e;s++)t+=o;return t}function Qp(r,e){r instanceof ve&&(r=new Ts(r));for(let n of r.state.facet(pA)){let o=n(r,e);if(o!==void 0)return o}let t=St(r.state);return t?gA(r,t,e):null}var Ts=class{constructor(e,t={}){this.state=e,this.options=t,this.unit=Ta(e)}lineAt(e,t=1){let n=this.state.doc.lineAt(e),{simulateBreak:o,simulateDoubleBreak:s}=this.options;return o!=null&&o>=n.from&&o<=n.to?s&&o==e?{text:"",from:e}:(t<0?o<e:o<=e)?{text:n.text.slice(o-n.from),from:o}:{text:n.text.slice(0,o-n.from),from:n.from}:n}textAfterPos(e,t=1){if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:o}=this.lineAt(e,t);return n.slice(e-o,Math.min(n.length,e+100-o))}column(e,t=1){let{text:n,from:o}=this.lineAt(e,t),s=this.countColumn(n,e-o),i=this.options.overrideIndentation?this.options.overrideIndentation(o):-1;return i>-1&&(s+=i-this.countColumn(n,n.search(/\S|$/))),s}countColumn(e,t=e.length){return bs(e,this.state.tabSize,t)}lineIndent(e,t=1){let{text:n,from:o}=this.lineAt(e,t),s=this.options.overrideIndentation;if(s){let i=s(o);if(i>-1)return i}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}},mA=new ie;function gA(r,e,t){return xS(e.resolveInner(t).enterUnfinishedNodesBefore(t),t,r)}function bA(r){return r.pos==r.options.simulateBreak&&r.options.simulateDoubleBreak}function yA(r){let e=r.type.prop(mA);if(e)return e;let t=r.firstChild,n;if(t&&(n=t.type.prop(ie.closedBy))){let o=r.lastChild,s=o&&n.indexOf(o.name)>-1;return i=>wA(i,!0,1,void 0,s&&!bA(i)?o.from:void 0)}return r.parent==null?xA:null}function xS(r,e,t){for(;r;r=r.parent){let n=yA(r);if(n)return n(wa.create(t,e,r))}return null}function xA(){return 0}var wa=class extends Ts{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.node=n}static create(e,t,n){return new wa(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(vA(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){let e=this.node.parent;return e?xS(e,this.pos,this.base):0}};function vA(r,e){for(let t=e;t;t=t.parent)if(r==t)return!0;return!1}function CA(r){let e=r.node,t=e.childAfter(e.from),n=e.lastChild;if(!t)return null;let o=r.options.simulateBreak,s=r.state.doc.lineAt(t.from),i=o==null||o<=s.from?s.to:Math.min(s.to,o);for(let l=t.to;;){let a=e.childAfter(l);if(!a||a==n)return null;if(!a.type.isSkipped)return a.from<i?t:null;l=a.to}}function wA(r,e,t,n,o){let s=r.textAfter,i=s.match(/^\s*/)[0].length,l=n&&s.slice(i,i+n.length)==n||o==r.pos+i,a=e?CA(r):null;return a?l?r.column(a.from):r.column(a.to):r.baseIndent+(l?0:r.unit*t)}var Vr=class{constructor(e,t){this.specs=e;let n;function o(l){let a=yn.newName();return(n||(n=Object.create(null)))["."+a]=l,a}let s=typeof t.all=="string"?t.all:t.all?o(t.all):void 0,i=t.scope;this.scope=i instanceof an?l=>l.prop(Wi)==i.data:i?l=>l==i:void 0,this.style=Bp(e.map(l=>({tag:l.tag,class:l.class||o(Object.assign({},l,{tag:null}))})),{all:s}).style,this.module=n?new yn(n):null,this.themeType=t.themeType}static define(e,t){return new Vr(e,t||{})}},Wp=se.define(),vS=se.define({combine(r){return r.length?[r[0]]:null}});function Vp(r){let e=r.facet(Wp);return e.length?e:r.facet(vS)}function ka(r,e){let t=[SA],n;return r instanceof Vr&&(r.module&&t.push(ce.styleModule.of(r.module)),n=r.themeType),e!=null&&e.fallback?t.push(vS.of(r)):n?t.push(Wp.computeN([ce.darkTheme],o=>o.facet(ce.darkTheme)==(n=="dark")?[r]:[])):t.push(Wp.of(r)),t}var Up=class{constructor(e){this.markCache=Object.create(null),this.tree=St(e.state),this.decorations=this.buildDeco(e,Vp(e.state))}update(e){let t=St(e.state),n=Vp(e.state),o=n!=Vp(e.startState);t.length<e.view.viewport.to&&!o&&t.type==this.tree.type?this.decorations=this.decorations.map(e.changes):(t!=this.tree||e.viewportChanged||o)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n))}buildDeco(e,t){if(!t||!this.tree.length)return lt.none;let n=new ir;for(let{from:o,to:s}of e.visibleRanges)dS(this.tree,t,(i,l,a)=>{n.add(i,l,this.markCache[a]||(this.markCache[a]=lt.mark({class:a})))},o,s);return n.finish()}},SA=ms.high(Cn.fromClass(Up,{decorations:r=>r.decorations})),jp=Vr.define([{tag:$.meta,color:"#404740"},{tag:$.link,textDecoration:"underline"},{tag:$.heading,textDecoration:"underline",fontWeight:"bold"},{tag:$.emphasis,fontStyle:"italic"},{tag:$.strong,fontWeight:"bold"},{tag:$.strikethrough,textDecoration:"line-through"},{tag:$.keyword,color:"#708"},{tag:[$.atom,$.bool,$.url,$.contentSeparator,$.labelName],color:"#219"},{tag:[$.literal,$.inserted],color:"#164"},{tag:[$.string,$.deleted],color:"#a11"},{tag:[$.regexp,$.escape,$.special($.string)],color:"#e40"},{tag:$.definition($.variableName),color:"#00f"},{tag:$.local($.variableName),color:"#30a"},{tag:[$.typeName,$.namespace],color:"#085"},{tag:$.className,color:"#167"},{tag:[$.special($.variableName),$.macroName],color:"#256"},{tag:$.definition($.propertyName),color:"#00c"},{tag:$.comment,color:"#940"},{tag:$.invalid,color:"#f00"}]);var TA=1e4,EA="()[]{}";var kA=new ie;function _p(r,e,t){let n=r.prop(e<0?ie.openedBy:ie.closedBy);if(n)return n;if(r.name.length==1){let o=t.indexOf(r.name);if(o>-1&&o%2==(e<0?1:0))return[t[o+e]]}return null}function Gp(r){let e=r.type.prop(kA);return e?e(r.node):r}function Es(r,e,t,n={}){let o=n.maxScanDistance||TA,s=n.brackets||EA,i=St(r),l=i.resolveInner(e,t);for(let a=l;a;a=a.parent){let c=_p(a.type,t,s);if(c&&a.from<a.to){let u=Gp(a);if(u&&(t>0?e>=u.from&&e<u.to:e>u.from&&e<=u.to))return DA(r,e,t,a,u,c,s)}}return MA(r,e,t,i,l.type,o,s)}function DA(r,e,t,n,o,s,i){let l=n.parent,a={from:o.from,to:o.to},c=0,u=l==null?void 0:l.cursor();if(u&&(t<0?u.childBefore(n.from):u.childAfter(n.to)))do if(t<0?u.to<=n.from:u.from>=n.to){if(c==0&&s.indexOf(u.type.name)>-1&&u.from<u.to){let f=Gp(u);return{start:a,end:f?{from:f.from,to:f.to}:void 0,matched:!0}}else if(_p(u.type,t,i))c++;else if(_p(u.type,-t,i)){if(c==0){let f=Gp(u);return{start:a,end:f&&f.from<f.to?{from:f.from,to:f.to}:void 0,matched:!1}}c--}}while(t<0?u.prevSibling():u.nextSibling());return{start:a,matched:!1}}function MA(r,e,t,n,o,s,i){let l=t<0?r.sliceDoc(e-1,e):r.sliceDoc(e,e+1),a=i.indexOf(l);if(a<0||a%2==0!=t>0)return null;let c={from:t<0?e-1:e,to:t>0?e+1:e},u=r.doc.iterRange(e,t>0?r.doc.length:0),f=0;for(let h=0;!u.next().done&&h<=s;){let d=u.value;t<0&&(h+=d.length);let p=e+h*t;for(let m=t>0?0:d.length-1,g=t>0?d.length:-1;m!=g;m+=t){let y=i.indexOf(d[m]);if(!(y<0||n.resolveInner(p+m,1).type!=o))if(y%2==0==t>0)f++;else{if(f==1)return{start:c,end:{from:p+m,to:p+m+1},matched:y>>1==a>>1};f--}}t>0&&(h+=d.length)}return u.done?{start:c,matched:!1}:null}var RA=Object.create(null),gS=[tt.none];var bS=[],PA=Object.create(null);for(let[r,e]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])PA[r]=IA(RA,e);function $p(r,e){bS.indexOf(r)>-1||(bS.push(r),console.warn(e))}function IA(r,e){let t=null;for(let s of e.split(".")){let i=r[s]||$[s];i?typeof i=="function"?t?t=i(t):$p(s,`Modifier ${s} used at start of tag`):t?$p(s,`Tag ${s} used as modifier`):t=i:$p(s,`Unknown highlighting tag ${s}`)}if(!t)return 0;let n=e.replace(/ /g,"_"),o=tt.define({id:gS.length,name:n,props:[va({[n]:t})]});return gS.push(o),o.id}var tf={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ks=Ne.define({map(r,e){let t=e.mapPos(r,-1,Ct.TrackAfter);return t==null?void 0:t}}),Xp=new class extends Un{};Xp.startSide=1;Xp.endSide=-1;var SS=Ht.define({create(){return Ae.empty},update(r,e){if(e.selection){let t=e.state.doc.lineAt(e.selection.main.head).from,n=e.startState.doc.lineAt(e.startState.selection.main.head).from;t!=e.changes.mapPos(n,-1)&&(r=Ae.empty)}r=r.map(e.changes);for(let t of e.effects)t.is(ks)&&(r=r.update({add:[Xp.range(t.value,t.value+1)]}));return r}});function Yp(){return[HA,SS]}var qp="()[]{}<>";function AA(r){for(let e=0;e<qp.length;e+=2)if(qp.charCodeAt(e)==r)return qp.charAt(e+1);return wC(r<128?r:r+1)}function LA(r,e){return r.languageDataAt("closeBrackets",e)[0]||tf}var OA=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),HA=ce.inputHandler.of((r,e,t,n)=>{if((OA?r.composing:r.compositionStarted)||r.state.readOnly)return!1;let o=r.state.selection.main;if(n.length>2||n.length==2&&fs(sr(n,0))==1||e!=o.from||t!=o.to)return!1;let s=NA(r.state,n);return s?(r.dispatch(s),!0):!1});function NA(r,e){let t=LA(r,r.selection.main.head),n=t.brackets||tf.brackets;for(let o of n){let s=AA(sr(o,0));if(e==o)return s==o?zA(r,o,n.indexOf(o+o+o)>-1,t):BA(r,o,s,t.before||tf.before);if(e==s&&TS(r,r.selection.main.from))return FA(r,o,s)}return null}function TS(r,e){let t=!1;return r.field(SS).between(0,r.doc.length,n=>{n==e&&(t=!0)}),t}function Jp(r,e){let t=r.sliceString(e,e+2);return t.slice(0,fs(sr(t,0)))}function BA(r,e,t,n){let o=null,s=r.changeByRange(i=>{if(!i.empty)return{changes:[{insert:e,from:i.from},{insert:t,from:i.to}],effects:ks.of(i.to+e.length),range:F.range(i.anchor+e.length,i.head+e.length)};let l=Jp(r.doc,i.head);return!l||/\s/.test(l)||n.indexOf(l)>-1?{changes:{insert:e+t,from:i.head},effects:ks.of(i.head+e.length),range:F.cursor(i.head+e.length)}:{range:o=i}});return o?null:r.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function FA(r,e,t){let n=null,o=r.changeByRange(s=>s.empty&&Jp(r.doc,s.head)==t?{changes:{from:s.head,to:s.head+t.length,insert:t},range:F.cursor(s.head+t.length)}:n={range:s});return n?null:r.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function zA(r,e,t,n){let o=n.stringPrefixes||tf.stringPrefixes,s=null,i=r.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:ks.of(l.to+e.length),range:F.range(l.anchor+e.length,l.head+e.length)};let a=l.head,c=Jp(r.doc,a),u;if(c==e){if(CS(r,a))return{changes:{insert:e+e,from:a},effects:ks.of(a+e.length),range:F.cursor(a+e.length)};if(TS(r,a)){let h=t&&r.sliceDoc(a,a+e.length*3)==e+e+e?e+e+e:e;return{changes:{from:a,to:a+h.length,insert:h},range:F.cursor(a+h.length)}}}else{if(t&&r.sliceDoc(a-2*e.length,a)==e+e&&(u=wS(r,a-2*e.length,o))>-1&&CS(r,u))return{changes:{insert:e+e+e+e,from:a},effects:ks.of(a+e.length),range:F.cursor(a+e.length)};if(r.charCategorizer(a)(c)!=Ot.Word&&wS(r,a,o)>-1&&!VA(r,a,e,o))return{changes:{insert:e+e,from:a},effects:ks.of(a+e.length),range:F.cursor(a+e.length)}}return{range:s=l}});return s?null:r.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function CS(r,e){let t=St(r).resolveInner(e+1);return t.parent&&t.from==e}function VA(r,e,t,n){let o=St(r).resolveInner(e,-1),s=n.reduce((i,l)=>Math.max(i,l.length),0);for(let i=0;i<5;i++){let l=r.sliceDoc(o.from,Math.min(o.to,o.from+t.length+s)),a=l.indexOf(t);if(!a||a>-1&&n.indexOf(l.slice(0,a))>-1){let u=o.firstChild;for(;u&&u.from==o.from&&u.to-u.from>t.length+a;){if(r.sliceDoc(u.to-t.length,u.to)==t)return!1;u=u.firstChild}return!0}let c=o.to==e&&o.parent;if(!c)break;o=c}return!1}function wS(r,e,t){let n=r.charCategorizer(e);if(n(r.sliceDoc(e-1,e))!=Ot.Word)return e;for(let o of t){let s=e-o.length;if(r.sliceDoc(s,e)==o&&n(r.sliceDoc(s-1,s))!=Ot.Word)return s}return-1}var $A=r=>{let{state:e}=r,t=e.doc.lineAt(e.selection.main.from),n=sm(r.state,t.from);return n.line?KA(r):n.block?UA(r):!1};function om(r,e){return({state:t,dispatch:n})=>{if(t.readOnly)return!1;let o=r(e,t);return o?(n(t.update(o)),!0):!1}}var KA=om(QA,0);var WA=om(AS,0);var UA=om((r,e)=>AS(r,e,GA(e)),0);function sm(r,e){let t=r.languageDataAt("commentTokens",e);return t.length?t[0]:{}}var Da=50;function _A(r,{open:e,close:t},n,o){let s=r.sliceDoc(n-Da,n),i=r.sliceDoc(o,o+Da),l=/\s*$/.exec(s)[0].length,a=/^\s*/.exec(i)[0].length,c=s.length-l;if(s.slice(c-e.length,c)==e&&i.slice(a,a+t.length)==t)return{open:{pos:n-l,margin:l&&1},close:{pos:o+a,margin:a&&1}};let u,f;o-n<=2*Da?u=f=r.sliceDoc(n,o):(u=r.sliceDoc(n,n+Da),f=r.sliceDoc(o-Da,o));let h=/^\s*/.exec(u)[0].length,d=/\s*$/.exec(f)[0].length,p=f.length-d-t.length;return u.slice(h,h+e.length)==e&&f.slice(p,p+t.length)==t?{open:{pos:n+h+e.length,margin:/\s/.test(u.charAt(h+e.length))?1:0},close:{pos:o-d-t.length,margin:/\s/.test(f.charAt(p-1))?1:0}}:null}function GA(r){let e=[];for(let t of r.selection.ranges){let n=r.doc.lineAt(t.from),o=t.to<=n.to?n:r.doc.lineAt(t.to),s=e.length-1;s>=0&&e[s].to>n.from?e[s].to=o.to:e.push({from:n.from+/^\s*/.exec(n.text)[0].length,to:o.to})}return e}function AS(r,e,t=e.selection.ranges){let n=t.map(s=>sm(e,s.from).block);if(!n.every(s=>s))return null;let o=t.map((s,i)=>_A(e,n[i],s.from,s.to));if(r!=2&&!o.every(s=>s))return{changes:e.changes(t.map((s,i)=>o[i]?[]:[{from:s.from,insert:n[i].open+" "},{from:s.to,insert:" "+n[i].close}]))};if(r!=1&&o.some(s=>s)){let s=[];for(let i=0,l;i<o.length;i++)if(l=o[i]){let a=n[i],{open:c,close:u}=l;s.push({from:c.pos-a.open.length,to:c.pos+c.margin},{from:u.pos-u.margin,to:u.pos+a.close.length})}return{changes:s}}return null}function QA(r,e,t=e.selection.ranges){let n=[],o=-1;for(let{from:s,to:i}of t){let l=n.length,a=1e9,c=sm(e,s).line;if(c){for(let u=s;u<=i;){let f=e.doc.lineAt(u);if(f.from>o&&(s==i||i>f.from)){o=f.from;let h=/^\s*/.exec(f.text)[0].length,d=h==f.length,p=f.text.slice(h,h+c.length)==c?h:-1;h<f.text.length&&h<a&&(a=h),n.push({line:f,comment:p,token:c,indent:h,empty:d,single:!1})}u=f.to+1}if(a<1e9)for(let u=l;u<n.length;u++)n[u].indent<n[u].line.text.length&&(n[u].indent=a);n.length==l+1&&(n[l].single=!0)}}if(r!=2&&n.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:a,indent:c,empty:u,single:f}of n)(f||!u)&&s.push({from:l.from+c,insert:a+" "});let i=e.changes(s);return{changes:i,selection:e.selection.map(i,1)}}else if(r!=1&&n.some(s=>s.comment>=0)){let s=[];for(let{line:i,comment:l,token:a}of n)if(l>=0){let c=i.from+l,u=c+a.length;i.text[u-i.from]==" "&&u++,s.push({from:c,to:u})}return{changes:s}}return null}var em=sn.define(),jA=sn.define(),qA=se.define(),LS=se.define({combine(r){return gs(r,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,o)=>e(n,o)||t(n,o)})}});function XA(r){let e=0;return r.iterChangedRanges((t,n)=>e=n),e}var OS=Ht.define({create(){return Tn.empty},update(r,e){let t=e.state.facet(LS),n=e.annotation(em);if(n){let a=e.docChanged?F.single(XA(e.changes)):void 0,c=Tt.fromTransaction(e,a),u=n.side,f=u==0?r.undone:r.done;return c?f=rf(f,f.length,t.minDepth,c):f=BS(f,e.startState.selection),new Tn(u==0?n.rest:f,u==0?f:n.rest)}let o=e.annotation(jA);if((o=="full"||o=="before")&&(r=r.isolate()),e.annotation(We.addToHistory)===!1)return e.changes.empty?r:r.addMapping(e.changes.desc);let s=Tt.fromTransaction(e),i=e.annotation(We.time),l=e.annotation(We.userEvent);return s?r=r.addChanges(s,i,l,t,e):e.selection&&(r=r.addSelection(e.startState.selection,i,l,t.newGroupDelay)),(o=="full"||o=="after")&&(r=r.isolate()),r},toJSON(r){return{done:r.done.map(e=>e.toJSON()),undone:r.undone.map(e=>e.toJSON())}},fromJSON(r){return new Tn(r.done.map(Tt.fromJSON),r.undone.map(Tt.fromJSON))}});function im(r={}){return[OS,LS.of(r),ce.domEventHandlers({beforeinput(e,t){let n=e.inputType=="historyUndo"?HS:e.inputType=="historyRedo"?tm:null;return n?(e.preventDefault(),n(t)):!1}})]}function of(r,e){return function({state:t,dispatch:n}){if(!e&&t.readOnly)return!1;let o=t.field(OS,!1);if(!o)return!1;let s=o.pop(r,t,e);return s?(n(s),!0):!1}}var HS=of(0,!1),tm=of(1,!1),YA=of(0,!0),JA=of(1,!0);var Tt=class{constructor(e,t,n,o,s){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=o,this.selectionsAfter=s}setSelAfter(e){return new Tt(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(t=this.mapped)===null||t===void 0?void 0:t.toJSON(),startSelection:(n=this.startSelection)===null||n===void 0?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map(o=>o.toJSON())}}static fromJSON(e){return new Tt(e.changes&&Ke.fromJSON(e.changes),[],e.mapped&&on.fromJSON(e.mapped),e.startSelection&&F.fromJSON(e.startSelection),e.selectionsAfter.map(F.fromJSON))}static fromTransaction(e,t){let n=Sn;for(let o of e.startState.facet(qA)){let s=o(e);s.length&&(n=n.concat(s))}return!n.length&&e.changes.empty?null:new Tt(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,Sn)}static selection(e){return new Tt(void 0,Sn,void 0,void 0,e)}};function rf(r,e,t,n){let o=e+1>t+20?e-t-1:0,s=r.slice(o,e);return s.push(n),s}function ZA(r,e){let t=[],n=!1;return r.iterChangedRanges((o,s)=>t.push(o,s)),e.iterChangedRanges((o,s,i,l)=>{for(let a=0;a<t.length;){let c=t[a++],u=t[a++];l>=c&&i<=u&&(n=!0)}}),n}function eL(r,e){return r.ranges.length==e.ranges.length&&r.ranges.filter((t,n)=>t.empty!=e.ranges[n].empty).length===0}function NS(r,e){return r.length?e.length?r.concat(e):r:e}var Sn=[],tL=200;function BS(r,e){if(r.length){let t=r[r.length-1],n=t.selectionsAfter.slice(Math.max(0,t.selectionsAfter.length-tL));return n.length&&n[n.length-1].eq(e)?r:(n.push(e),rf(r,r.length-1,1e9,t.setSelAfter(n)))}else return[Tt.selection([e])]}function nL(r){let e=r[r.length-1],t=r.slice();return t[r.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),t}function Zp(r,e){if(!r.length)return r;let t=r.length,n=Sn;for(;t;){let o=rL(r[t-1],e,n);if(o.changes&&!o.changes.empty||o.effects.length){let s=r.slice(0,t);return s[t-1]=o,s}else e=o.mapped,t--,n=o.selectionsAfter}return n.length?[Tt.selection(n)]:Sn}function rL(r,e,t){let n=NS(r.selectionsAfter.length?r.selectionsAfter.map(l=>l.map(e)):Sn,t);if(!r.changes)return Tt.selection(n);let o=r.changes.map(e),s=e.mapDesc(r.changes,!0),i=r.mapped?r.mapped.composeDesc(s):s;return new Tt(o,Ne.mapEffects(r.effects,e),i,r.startSelection.map(s),n)}var oL=/^(input\.type|delete)($|\.)/,Tn=class{constructor(e,t,n=0,o=void 0){this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=o}isolate(){return this.prevTime?new Tn(this.done,this.undone):this}addChanges(e,t,n,o,s){let i=this.done,l=i[i.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!n||oL.test(n))&&(!l.selectionsAfter.length&&t-this.prevTime<o.newGroupDelay&&o.joinToEvent(s,ZA(l.changes,e.changes))||n=="input.type.compose")?i=rf(i,i.length-1,o.minDepth,new Tt(e.changes.compose(l.changes),NS(e.effects,l.effects),l.mapped,l.startSelection,Sn)):i=rf(i,i.length,o.minDepth,e),new Tn(i,Sn,t,n)}addSelection(e,t,n,o){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:Sn;return s.length>0&&t-this.prevTime<o&&n==this.prevUserEvent&&n&&/^select($|\.)/.test(n)&&eL(s[s.length-1],e)?this:new Tn(BS(this.done,e),this.undone,t,n)}addMapping(e){return new Tn(Zp(this.done,e),Zp(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let o=e==0?this.done:this.undone;if(o.length==0)return null;let s=o[o.length-1];if(n&&s.selectionsAfter.length)return t.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:em.of({side:e,rest:nL(o)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let i=o.length==1?Sn:o.slice(0,o.length-1);return s.mapped&&(i=Zp(i,s.mapped)),t.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:em.of({side:e,rest:i}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}};Tn.empty=new Tn(Sn,Sn);var lm=[{key:"Mod-z",run:HS,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:tm,preventDefault:!0},{linux:"Ctrl-Shift-z",run:tm,preventDefault:!0},{key:"Mod-u",run:YA,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:JA,preventDefault:!0}];function Gi(r,e){return F.create(r.ranges.map(e),r.mainIndex)}function dr(r,e){return r.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function Gn({state:r,dispatch:e},t){let n=Gi(r.selection,t);return n.eq(r.selection)?!1:(e(dr(r,n)),!0)}function sf(r,e){return F.cursor(e?r.to:r.from)}function FS(r,e){return Gn(r,t=>t.empty?r.moveByChar(t,e):sf(t,e))}function Et(r){return r.textDirectionAt(r.state.selection.main.head)==Xe.LTR}var zS=r=>FS(r,!Et(r)),VS=r=>FS(r,Et(r));function $S(r,e){return Gn(r,t=>t.empty?r.moveByGroup(t,e):sf(t,e))}var sL=r=>$S(r,!Et(r)),iL=r=>$S(r,Et(r));function lL(r,e,t){if(e.type.prop(t))return!0;let n=e.to-e.from;return n&&(n>2||/[^\s,.;:]/.test(r.sliceDoc(e.from,e.to)))||e.firstChild}function lf(r,e,t){let n=St(r).resolveInner(e.head),o=t?ie.closedBy:ie.openedBy;for(let a=e.head;;){let c=t?n.childAfter(a):n.childBefore(a);if(!c)break;lL(r,c,o)?n=c:a=t?c.to:c.from}let s=n.type.prop(o),i,l;return s&&(i=t?Es(r,n.from,1):Es(r,n.to,-1))&&i.matched?l=t?i.end.to:i.end.from:l=t?n.to:n.from,F.cursor(l,t?-1:1)}var aL=r=>Gn(r,e=>lf(r.state,e,!Et(r))),cL=r=>Gn(r,e=>lf(r.state,e,Et(r)));function KS(r,e){return Gn(r,t=>{if(!t.empty)return sf(t,e);let n=r.moveVertically(t,e);return n.head!=t.head?n:r.moveToLineBoundary(t,e)})}var WS=r=>KS(r,!1),US=r=>KS(r,!0);function _S(r){let e=r.scrollDOM.clientHeight<r.scrollDOM.scrollHeight-2,t=0,n=0,o;if(e){for(let s of r.state.facet(ce.scrollMargins)){let i=s(r);i!=null&&i.top&&(t=Math.max(i==null?void 0:i.top,t)),i!=null&&i.bottom&&(n=Math.max(i==null?void 0:i.bottom,n))}o=r.scrollDOM.clientHeight-t-n}else o=(r.dom.ownerDocument.defaultView||window).innerHeight;return{marginTop:t,marginBottom:n,selfScroll:e,height:Math.max(r.defaultLineHeight,o-5)}}function GS(r,e){let t=_S(r),{state:n}=r,o=Gi(n.selection,i=>i.empty?r.moveVertically(i,e,t.height):sf(i,e));if(o.eq(n.selection))return!1;let s;if(t.selfScroll){let i=r.coordsAtPos(n.selection.main.head),l=r.scrollDOM.getBoundingClientRect(),a=l.top+t.marginTop,c=l.bottom-t.marginBottom;i&&i.top>a&&i.bottom<c&&(s=ce.scrollIntoView(o.main.head,{y:"start",yMargin:i.top-a}))}return r.dispatch(dr(n,o),{effects:s}),!0}var ES=r=>GS(r,!1),nm=r=>GS(r,!0);function wo(r,e,t){let n=r.lineBlockAt(e.head),o=r.moveToLineBoundary(e,t);if(o.head==e.head&&o.head!=(t?n.to:n.from)&&(o=r.moveToLineBoundary(e,t,!1)),!t&&o.head==n.from&&n.length){let s=/^\s*/.exec(r.state.sliceDoc(n.from,Math.min(n.from+100,n.to)))[0].length;s&&e.head!=n.from+s&&(o=F.cursor(n.from+s))}return o}var uL=r=>Gn(r,e=>wo(r,e,!0)),fL=r=>Gn(r,e=>wo(r,e,!1)),hL=r=>Gn(r,e=>wo(r,e,!Et(r))),dL=r=>Gn(r,e=>wo(r,e,Et(r))),pL=r=>Gn(r,e=>F.cursor(r.lineBlockAt(e.head).from,1)),mL=r=>Gn(r,e=>F.cursor(r.lineBlockAt(e.head).to,-1));function gL(r,e,t){let n=!1,o=Gi(r.selection,s=>{let i=Es(r,s.head,-1)||Es(r,s.head,1)||s.head>0&&Es(r,s.head-1,1)||s.head<r.doc.length&&Es(r,s.head+1,-1);if(!i||!i.end)return s;n=!0;let l=i.start.from==s.head?i.end.to:i.end.from;return t?F.range(s.anchor,l):F.cursor(l)});return n?(e(dr(r,o)),!0):!1}var bL=({state:r,dispatch:e})=>gL(r,e,!1);function En(r,e){let t=Gi(r.state.selection,n=>{let o=e(n);return F.range(n.anchor,o.head,o.goalColumn,o.bidiLevel||void 0)});return t.eq(r.state.selection)?!1:(r.dispatch(dr(r.state,t)),!0)}function QS(r,e){return En(r,t=>r.moveByChar(t,e))}var jS=r=>QS(r,!Et(r)),qS=r=>QS(r,Et(r));function XS(r,e){return En(r,t=>r.moveByGroup(t,e))}var yL=r=>XS(r,!Et(r)),xL=r=>XS(r,Et(r));var vL=r=>En(r,e=>lf(r.state,e,!Et(r))),CL=r=>En(r,e=>lf(r.state,e,Et(r)));function YS(r,e){return En(r,t=>r.moveVertically(t,e))}var JS=r=>YS(r,!1),ZS=r=>YS(r,!0);function eT(r,e){return En(r,t=>r.moveVertically(t,e,_S(r).height))}var kS=r=>eT(r,!1),DS=r=>eT(r,!0),wL=r=>En(r,e=>wo(r,e,!0)),SL=r=>En(r,e=>wo(r,e,!1)),TL=r=>En(r,e=>wo(r,e,!Et(r))),EL=r=>En(r,e=>wo(r,e,Et(r))),kL=r=>En(r,e=>F.cursor(r.lineBlockAt(e.head).from)),DL=r=>En(r,e=>F.cursor(r.lineBlockAt(e.head).to)),MS=({state:r,dispatch:e})=>(e(dr(r,{anchor:0})),!0),RS=({state:r,dispatch:e})=>(e(dr(r,{anchor:r.doc.length})),!0),PS=({state:r,dispatch:e})=>(e(dr(r,{anchor:r.selection.main.anchor,head:0})),!0),IS=({state:r,dispatch:e})=>(e(dr(r,{anchor:r.selection.main.anchor,head:r.doc.length})),!0),ML=({state:r,dispatch:e})=>(e(r.update({selection:{anchor:0,head:r.doc.length},userEvent:"select"})),!0),RL=({state:r,dispatch:e})=>{let t=cf(r).map(({from:n,to:o})=>F.range(n,Math.min(o+1,r.doc.length)));return e(r.update({selection:F.create(t),userEvent:"select"})),!0},PL=({state:r,dispatch:e})=>{let t=Gi(r.selection,n=>{var o;let s=St(r).resolveInner(n.head,1);for(;!(s.from<n.from&&s.to>=n.to||s.to>n.to&&s.from<=n.from||!(!((o=s.parent)===null||o===void 0)&&o.parent));)s=s.parent;return F.range(s.to,s.from)});return e(dr(r,t)),!0},IL=({state:r,dispatch:e})=>{let t=r.selection,n=null;return t.ranges.length>1?n=F.create([t.main]):t.main.empty||(n=F.create([F.cursor(t.main.head)])),n?(e(dr(r,n)),!0):!1};function af(r,e){if(r.state.readOnly)return!1;let t="delete.selection",{state:n}=r,o=n.changeByRange(s=>{let{from:i,to:l}=s;if(i==l){let a=e(i);a<i?(t="delete.backward",a=nf(r,a,!1)):a>i&&(t="delete.forward",a=nf(r,a,!0)),i=Math.min(i,a),l=Math.max(l,a)}else i=nf(r,i,!1),l=nf(r,l,!0);return i==l?{range:s}:{changes:{from:i,to:l},range:F.cursor(i)}});return o.changes.empty?!1:(r.dispatch(n.update(o,{scrollIntoView:!0,userEvent:t,effects:t=="delete.selection"?ce.announce.of(n.phrase("Selection deleted")):void 0})),!0)}function nf(r,e,t){if(r instanceof ce)for(let n of r.state.facet(ce.atomicRanges).map(o=>o(r)))n.between(e,e,(o,s)=>{o<e&&s>e&&(e=t?s:o)});return e}var tT=(r,e)=>af(r,t=>{let{state:n}=r,o=n.doc.lineAt(t),s,i;if(!e&&t>o.from&&t<o.from+200&&!/[^ \t]/.test(s=o.text.slice(0,t-o.from))){if(s[s.length-1]==" ")return t-1;let l=bs(s,n.tabSize),a=l%Ta(n)||Ta(n);for(let c=0;c<a&&s[s.length-1-c]==" ";c++)t--;i=t}else i=wt(o.text,t-o.from,e,e)+o.from,i==t&&o.number!=(e?n.doc.lines:1)&&(i+=e?1:-1);return i}),rm=r=>tT(r,!1),nT=r=>tT(r,!0),rT=(r,e)=>af(r,t=>{let n=t,{state:o}=r,s=o.doc.lineAt(n),i=o.charCategorizer(n);for(let l=null;;){if(n==(e?s.to:s.from)){n==t&&s.number!=(e?o.doc.lines:1)&&(n+=e?1:-1);break}let a=wt(s.text,n-s.from,e)+s.from,c=s.text.slice(Math.min(n,a)-s.from,Math.max(n,a)-s.from),u=i(c);if(l!=null&&u!=l)break;(c!=" "||n!=t)&&(l=u),n=a}return n}),oT=r=>rT(r,!1),AL=r=>rT(r,!0),sT=r=>af(r,e=>{let t=r.lineBlockAt(e).to;return e<t?t:Math.min(r.state.doc.length,e+1)}),LL=r=>af(r,e=>{let t=r.lineBlockAt(e).from;return e>t?t:Math.max(0,e-1)});var OL=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>({changes:{from:n.from,to:n.to,insert:ge.of(["",""])},range:F.cursor(n.from)}));return e(r.update(t,{scrollIntoView:!0,userEvent:"input"})),!0},HL=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=r.changeByRange(n=>{if(!n.empty||n.from==0||n.from==r.doc.length)return{range:n};let o=n.from,s=r.doc.lineAt(o),i=o==s.from?o-1:wt(s.text,o-s.from,!1)+s.from,l=o==s.to?o+1:wt(s.text,o-s.from,!0)+s.from;return{changes:{from:i,to:l,insert:r.doc.slice(o,l).append(r.doc.slice(i,o))},range:F.cursor(l)}});return t.changes.empty?!1:(e(r.update(t,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function cf(r){let e=[],t=-1;for(let n of r.selection.ranges){let o=r.doc.lineAt(n.from),s=r.doc.lineAt(n.to);if(!n.empty&&n.to==s.from&&(s=r.doc.lineAt(n.to-1)),t>=o.number){let i=e[e.length-1];i.to=s.to,i.ranges.push(n)}else e.push({from:o.from,to:s.to,ranges:[n]});t=s.number+1}return e}function iT(r,e,t){if(r.readOnly)return!1;let n=[],o=[];for(let s of cf(r)){if(t?s.to==r.doc.length:s.from==0)continue;let i=r.doc.lineAt(t?s.to+1:s.from-1),l=i.length+1;if(t){n.push({from:s.to,to:i.to},{from:s.from,insert:i.text+r.lineBreak});for(let a of s.ranges)o.push(F.range(Math.min(r.doc.length,a.anchor+l),Math.min(r.doc.length,a.head+l)))}else{n.push({from:i.from,to:s.from},{from:s.to,insert:r.lineBreak+i.text});for(let a of s.ranges)o.push(F.range(a.anchor-l,a.head-l))}}return n.length?(e(r.update({changes:n,scrollIntoView:!0,selection:F.create(o,r.selection.mainIndex),userEvent:"move.line"})),!0):!1}var NL=({state:r,dispatch:e})=>iT(r,e,!1),BL=({state:r,dispatch:e})=>iT(r,e,!0);function lT(r,e,t){if(r.readOnly)return!1;let n=[];for(let o of cf(r))t?n.push({from:o.from,insert:r.doc.slice(o.from,o.to)+r.lineBreak}):n.push({from:o.to,insert:r.lineBreak+r.doc.slice(o.from,o.to)});return e(r.update({changes:n,scrollIntoView:!0,userEvent:"input.copyline"})),!0}var FL=({state:r,dispatch:e})=>lT(r,e,!1),zL=({state:r,dispatch:e})=>lT(r,e,!0),VL=r=>{if(r.state.readOnly)return!1;let{state:e}=r,t=e.changes(cf(e).map(({from:o,to:s})=>(o>0?o--:s<e.doc.length&&s++,{from:o,to:s}))),n=Gi(e.selection,o=>r.moveVertically(o,!0)).map(t);return r.dispatch({changes:t,selection:n,scrollIntoView:!0,userEvent:"delete.line"}),!0};function $L(r,e){if(/\(\)|\[\]|\{\}/.test(r.sliceDoc(e-1,e+1)))return{from:e,to:e};let t=St(r).resolveInner(e),n=t.childBefore(e),o=t.childAfter(e),s;return n&&o&&n.to<=e&&o.from>=e&&(s=n.type.prop(ie.closedBy))&&s.indexOf(o.name)>-1&&r.doc.lineAt(n.to).from==r.doc.lineAt(o.from).from?{from:n.to,to:o.from}:null}var KL=aT(!1),WL=aT(!0);function aT(r){return({state:e,dispatch:t})=>{if(e.readOnly)return!1;let n=e.changeByRange(o=>{let{from:s,to:i}=o,l=e.doc.lineAt(s),a=!r&&s==i&&$L(e,s);r&&(s=i=(i<=l.to?l:e.doc.lineAt(i)).to);let c=new Ts(e,{simulateBreak:s,simulateDoubleBreak:!!a}),u=Qp(c,s);for(u==null&&(u=/^\s*/.exec(e.doc.lineAt(s).text)[0].length);i<l.to&&/\s/.test(l.text[i-l.from]);)i++;a?{from:s,to:i}=a:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let f=["",Ea(e,u)];return a&&f.push(Ea(e,c.lineIndent(l.from,-1))),{changes:{from:s,to:i,insert:ge.of(f)},range:F.cursor(s+1+f[1].length)}});return t(e.update(n,{scrollIntoView:!0,userEvent:"input"})),!0}}function am(r,e){let t=-1;return r.changeByRange(n=>{let o=[];for(let i=n.from;i<=n.to;){let l=r.doc.lineAt(i);l.number>t&&(n.empty||n.to>l.from)&&(e(l,o,n),t=l.number),i=l.to+1}let s=r.changes(o);return{changes:o,range:F.range(s.mapPos(n.anchor,1),s.mapPos(n.head,1))}})}var UL=({state:r,dispatch:e})=>{if(r.readOnly)return!1;let t=Object.create(null),n=new Ts(r,{overrideIndentation:s=>{let i=t[s];return i==null?-1:i}}),o=am(r,(s,i,l)=>{let a=Qp(n,s.from);if(a==null)return;/\S/.test(s.text)||(a=0);let c=/^\s*/.exec(s.text)[0],u=Ea(r,a);(c!=u||l.from<s.from+c.length)&&(t[s.from]=a,i.push({from:s.from,to:s.from+c.length,insert:u}))});return o.changes.empty||e(r.update(o,{userEvent:"indent"})),!0},_L=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(am(r,(t,n)=>{n.push({from:t.from,insert:r.facet(Sa)})}),{userEvent:"input.indent"})),!0),GL=({state:r,dispatch:e})=>r.readOnly?!1:(e(r.update(am(r,(t,n)=>{let o=/^\s*/.exec(t.text)[0];if(!o)return;let s=bs(o,r.tabSize),i=0,l=Ea(r,Math.max(0,s-Ta(r)));for(;i<o.length&&i<l.length&&o.charCodeAt(i)==l.charCodeAt(i);)i++;n.push({from:t.from+i,to:t.from+o.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0);var QL=[{key:"Ctrl-b",run:zS,shift:jS,preventDefault:!0},{key:"Ctrl-f",run:VS,shift:qS},{key:"Ctrl-p",run:WS,shift:JS},{key:"Ctrl-n",run:US,shift:ZS},{key:"Ctrl-a",run:pL,shift:kL},{key:"Ctrl-e",run:mL,shift:DL},{key:"Ctrl-d",run:nT},{key:"Ctrl-h",run:rm},{key:"Ctrl-k",run:sT},{key:"Ctrl-Alt-h",run:oT},{key:"Ctrl-o",run:OL},{key:"Ctrl-t",run:HL},{key:"Ctrl-v",run:nm}],jL=[{key:"ArrowLeft",run:zS,shift:jS,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:sL,shift:yL,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:hL,shift:TL,preventDefault:!0},{key:"ArrowRight",run:VS,shift:qS,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:iL,shift:xL,preventDefault:!0},{mac:"Cmd-ArrowRight",run:dL,shift:EL,preventDefault:!0},{key:"ArrowUp",run:WS,shift:JS,preventDefault:!0},{mac:"Cmd-ArrowUp",run:MS,shift:PS},{mac:"Ctrl-ArrowUp",run:ES,shift:kS},{key:"ArrowDown",run:US,shift:ZS,preventDefault:!0},{mac:"Cmd-ArrowDown",run:RS,shift:IS},{mac:"Ctrl-ArrowDown",run:nm,shift:DS},{key:"PageUp",run:ES,shift:kS},{key:"PageDown",run:nm,shift:DS},{key:"Home",run:fL,shift:SL,preventDefault:!0},{key:"Mod-Home",run:MS,shift:PS},{key:"End",run:uL,shift:wL,preventDefault:!0},{key:"Mod-End",run:RS,shift:IS},{key:"Enter",run:KL},{key:"Mod-a",run:ML},{key:"Backspace",run:rm,shift:rm},{key:"Delete",run:nT},{key:"Mod-Backspace",mac:"Alt-Backspace",run:oT},{key:"Mod-Delete",mac:"Alt-Delete",run:AL},{mac:"Mod-Backspace",run:LL},{mac:"Mod-Delete",run:sT}].concat(QL.map(r=>({mac:r.key,run:r.run,shift:r.shift}))),uf=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:aL,shift:vL},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:cL,shift:CL},{key:"Alt-ArrowUp",run:NL},{key:"Shift-Alt-ArrowUp",run:FL},{key:"Alt-ArrowDown",run:BL},{key:"Shift-Alt-ArrowDown",run:zL},{key:"Escape",run:IL},{key:"Mod-Enter",run:WL},{key:"Alt-l",mac:"Ctrl-l",run:RL},{key:"Mod-i",run:PL,preventDefault:!0},{key:"Mod-[",run:GL},{key:"Mod-]",run:_L},{key:"Mod-Alt-\\",run:UL},{key:"Shift-Mod-k",run:VL},{key:"Shift-Mod-\\",run:bL},{key:"Mod-/",run:$A},{key:"Alt-A",run:WA}].concat(jL);var qL=[...uf,...lm],XL=(()=>[Lp(),im(),Ap(),Yp(),ka(jp,{fallback:!0}),Vi.of(qL)])();var YL=require("@vuu-ui/vuu-utils");var cT=[{label:"=",boost:10,type:"operator"},{label:"!=",boost:9,type:"operator"}],JL=[...cT,{label:"in",boost:6,type:"operator"},{label:"starts",boost:5,type:"operator"},{label:"ends",boost:4,type:"operator"}],ZL=[...cT,{label:">",boost:8,type:"operator"},{label:"<",boost:7,type:"operator"}];var mO=require("@vuu-ui/vuu-utils"),Cm=require("react");var ji=class{constructor(e,t,n,o,s,i,l,a,c,u=0,f){this.p=e,this.stack=t,this.state=n,this.reducePos=o,this.pos=s,this.score=i,this.buffer=l,this.bufferBase=a,this.curContext=c,this.lookAhead=u,this.parent=f}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,n=0){let o=e.parser.context;return new ji(e,[],t,n,n,0,[],0,o?new ff(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 n=e>>19,o=e&65535,{parser:s}=this.p,i=s.dynamicPrecedence(o);if(i&&(this.score+=i),n==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-(n-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,f=this.bufferBase+this.buffer.length-u;if(o<s.minRepeatTerm||e&131072){let h=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(o,a,h,f+4,!0)}if(e&262144)this.state=this.stack[l];else{let h=this.stack[l-3];this.state=s.getGoto(h,o,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(o,a)}storeNode(e,t,n,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==n)return;if(i.buffer[l-2]>=t){i.buffer[l-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,o);else{let i=this.buffer.length;if(i>0&&this.buffer[i-4]!=0)for(;i>0&&this.buffer[i-2]>n;)this.buffer[i]=this.buffer[i-4],this.buffer[i+1]=this.buffer[i-3],this.buffer[i+2]=this.buffer[i-2],this.buffer[i+3]=this.buffer[i-1],i-=4,o>4&&(o-=4);this.buffer[i]=e,this.buffer[i+1]=t,this.buffer[i+2]=n,this.buffer[i+3]=o}}shift(e,t,n){let o=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,o),t<=this.p.parser.maxNode&&this.buffer.push(t,o,n,4);else{let s=e,{parser:i}=this.p;(n>this.pos||t<=i.maxNode)&&(this.pos=n,i.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,o),this.shiftContext(t,o),t<=i.maxNode&&this.buffer.push(t,o,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let o=this.pos;this.reducePos=this.pos=o+e.length,this.pushState(t,o),this.buffer.push(n,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 n=e.buffer.slice(t),o=e.bufferBase+t;for(;e&&o==e.bufferBase;)e=e.parent;return new ji(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,o,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new um(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let 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 n=[];for(let o=0;o<t.length&&n.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,n.push(i)}return n}forceReduce(){let e=this.p.parser.stateSlot(this.state,5);if(!(e&65536))return!1;let{parser:t}=this.p;if(!t.validAction(this.state,e)){let n=e>>19,o=e&65535,s=this.stack.length-n*3;if(s<0||t.getGoto(this.stack[s],o,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.reducePos,this.reducePos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.reducePos,this.reducePos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new ff(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()}},ff=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},uT;(function(r){r[r.Insert=200]="Insert",r[r.Delete=190]="Delete",r[r.Reduce=100]="Reduce",r[r.MaxNext=4]="MaxNext",r[r.MaxInsertStackDepth=300]="MaxInsertStackDepth",r[r.DampenInsertStackDepth=120]="DampenInsertStackDepth",r[r.MinBigReduction=2e3]="MinBigReduction"})(uT||(uT={}));var um=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let o=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=o}},qi=class{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new qi(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 qi(this.stack,this.pos,this.index)}};function Ma(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,o=0;n<r.length;){let s=0;for(;;){let i=r.charCodeAt(n++),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 Qi=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},fT=new Qi,fm=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=fT,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,o=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!o)return null;let i=this.ranges[--o];s-=n.from-i.to,n=i}for(;t<0?s>n.to:s>=n.to;){if(o==this.ranges.length-1)return null;let i=this.ranges[++o];s+=i.from-n.to,n=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,n,o;if(t>=0&&t<this.chunk.length)n=this.pos+e,o=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)o=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let i=this.rangeIndex,l=this.range;for(;l.to<=n;)l=this.ranges[++i];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-n)),o=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),o}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=fT,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let o of this.ranges){if(o.from>=t)break;o.to>e&&(n+=this.input.read(Math.max(o.from,e),Math.min(o.to,t)))}return n}},So=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;yT(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};So.prototype.contextual=So.prototype.fallback=So.prototype.extend=!1;var hm=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Ma(e):e}token(e,t){let n=e.pos,o=0;for(;yT(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(this.elseToken==null)return;if(e.next<0)break;e.advance(),e.reset(e.pos,e.token),o++}o&&(e.reset(n,e.token),e.acceptToken(this.elseToken,o))}};hm.prototype.contextual=So.prototype.fallback=So.prototype.extend=!1;function yT(r,e,t,n,o,s){let i=0,l=1<<n,{dialect:a}=t.p.parser;e:for(;l&r[i];){let c=r[i+1];for(let d=i+3;d<c;d+=2)if((r[d+1]&l)>0){let p=r[d];if(a.allows(p)&&(e.token.value==-1||e.token.value==p||oO(p,e.token.value,o,s))){e.acceptToken(p);break}}let u=e.next,f=0,h=r[i+2];if(e.next<0&&h>f&&r[c+h*3-3]==65535&&r[c+h*3-3]==65535){i=r[c+h*3-1];continue e}for(;f<h;){let d=f+h>>1,p=c+d+(d<<1),m=r[p],g=r[p+1]||65536;if(u<m)h=d;else if(u>=g)f=d+1;else{i=r[p+2],e.advance();continue e}}break}}function hT(r,e,t){for(let n=e,o;(o=r[n])!=65535;n++)if(o==t)return n-e;return-1}function oO(r,e,t,n){let o=hT(t,n,e);return o<0||hT(t,n,r)<o}var Qn=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),cm=null,dT;(function(r){r[r.Margin=25]="Margin"})(dT||(dT={}));function pT(r,e,t){let n=r.cursor(Ge.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}var dm=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?pT(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?pT(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],o=this.index[t];if(o==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[o],i=this.start[t]+n.positions[o];if(i>e)return this.nextStart=i,null;if(s instanceof Se){if(i==e){if(i<this.safeFrom)return null;let l=i+s.length;if(l<=this.safeTo){let a=s.prop(ie.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}}},pm=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new Qi)}getActions(e){let t=0,n=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],f=this.tokens[c];if(!(n&&!u.fallback)&&((u.contextual||f.start!=e.pos||f.mask!=i||f.context!=l)&&(this.updateCachedToken(f,u,e),f.mask=i,f.context=l),f.lookAhead>f.end+25&&(a=Math.max(f.lookAhead,a)),f.value!=0)){let h=t;if(f.extended>-1&&(t=this.addActions(e,f.extended,f.end,t)),t=this.addActions(e,f.value,f.end,t),!u.extend&&(n=f,t>h))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!n&&e.pos==this.stream.end&&(n=new Qi,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Qi,{pos:n,p:o}=e;return t.start=n,t.end=Math.min(n+1,o.stream.end),t.value=n==o.stream.end?o.parser.eofTerm:0,t}updateCachedToken(e,t,n){let o=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(o,e),n),e.value>-1){let{parser:s}=n.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),n);if(l>=0&&n.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(o+1)}putAction(e,t,n,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++]=n,o}addActions(e,t,n,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=$r(l,c+2);else{o==0&&l[c+1]==2&&(o=this.putAction($r(l,c+2),t,n,o));break}l[c]==t&&(o=this.putAction($r(l,c+1),t,n,o))}return o}},mT;(function(r){r[r.Distance=5]="Distance",r[r.MaxRemainingPerStep=3]="MaxRemainingPerStep",r[r.MinBufferLengthPrune=500]="MinBufferLengthPrune",r[r.ForceReduceLimit=10]="ForceReduceLimit",r[r.CutDepth=15e3]="CutDepth",r[r.CutTo=9e3]="CutTo",r[r.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",r[r.MaxStackCount=12]="MaxStackCount"})(mT||(mT={}));var mm=class{constructor(e,t,n,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 fm(t,o),this.tokens=new pm(e,this.stream),this.topTerm=e.top[1];let{from:s}=o[0];this.stacks=[ji.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new dm(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=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)n.push(l);else{if(this.advanceStack(l,n,e))continue;{o||(o=[],s=[]),o.push(l);let a=this.tokens.getMainToken(l);s.push(a.value,a.end)}}break}}if(!n.length){let i=o&&sO(o);if(i)return this.stackToTree(i);if(this.parser.strict)throw Qn&&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,n);if(i)return this.stackToTree(i.forceAll())}if(this.recovering){let i=this.recovering==1?1:this.recovering*3;if(n.length>i)for(n.sort((l,a)=>a.score-l.score);n.length>i;)n.pop();n.some(l=>l.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let i=0;i<n.length-1;i++){let l=n[i];for(let a=i+1;a<n.length;a++){let c=n[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)n.splice(a--,1);else{n.splice(i--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let i=1;i<n.length;i++)n[i].pos<this.minStackPos&&(this.minStackPos=n[i].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,n){let o=e.pos,{parser:s}=this,i=Qn?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 f=this.fragments.nodeAt(o);f;){let h=this.parser.nodeSet.types[f.type.id]==f.type?s.getGoto(e.state,f.type.id):-1;if(h>-1&&f.length&&(!c||(f.prop(ie.contextHash)||0)==u))return e.useNode(f,h),Qn&&console.log(i+this.stackID(e)+` (via reuse of ${s.getName(f.type.id)})`),!0;if(!(f instanceof Se)||f.children.length==0||f.positions[0]>0)break;let d=f.children[0];if(d instanceof Se&&f.positions[0]==0)f=d;else break}}let l=s.stateSlot(e.state,4);if(l>0)return e.reduce(l),Qn&&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++],f=a[c++],h=a[c++],d=c==a.length||!n,p=d?e:e.split();if(p.apply(u,f,h),Qn&&console.log(i+this.stackID(p)+` (via ${u&65536?`reduce of ${s.getName(u&65535)}`:"shift"} for ${s.getName(f)} @ ${o}${p==e?"":", split"})`),d)return!0;p.pos>o?t.push(p):n.push(p)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return gT(e,t),!0}}runRecovery(e,t,n){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=Qn?this.stackID(l)+" -> ":"";if(l.deadEnd&&(s||(s=!0,l.restart(),Qn&&console.log(u+this.stackID(l)+" (restarted)"),this.advanceFully(l,n))))continue;let f=l.split(),h=u;for(let d=0;f.forceReduce()&&d<10&&(Qn&&console.log(h+this.stackID(f)+" (via force-reduce)"),!this.advanceFully(f,n));d++)Qn&&(h=this.stackID(f)+" -> ");for(let d of l.recoverByInsert(a))Qn&&console.log(u+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,n);this.stream.end>l.pos?(c==l.pos&&(c++,a=0),l.recoverByDelete(a,c),Qn&&console.log(u+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),gT(l,n)):(!o||o.score<l.score)&&(o=l)}return o}stackToTree(e){return e.close(),Se.build({buffer:qi.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=(cm||(cm=new WeakMap)).get(e);return t||cm.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function gT(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}var gm=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var Ds=class extends so{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let n=Object.keys(e.topRules).map(l=>e.topRules[l][1]),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=ie[a]);for(let c=1;c<l.length;){let u=l[c++];if(u>=0)s(u,a,l[c++]);else{let f=l[c+-u];for(let h=-u;h>0;h--)s(l[c++],a,f);c++}}}this.nodeSet=new Er(t.map((l,a)=>tt.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:o[a],top:n.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let i=Ma(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(bT),this.states=Ma(e.states,Uint32Array),this.data=Ma(e.stateData),this.goto=Ma(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new So(i,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,n){let o=new mm(this,e,t,n);for(let s of this.wrappers)o=s(o,e,t,n);return o}getGoto(e,t,n=!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&&n)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 n=this.data;for(let o=0;o<2;o++)for(let s=this.stateSlot(e,o?2:1),i;;s+=3){if((i=n[s])==65535)if(n[s+1]==1)i=n[s=$r(n,s+2)];else{if(n[s+1]==2)return $r(n,s+2);break}if(i==t||i==0)return $r(n,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){if(t==this.stateSlot(e,4))return!0;for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=$r(this.data,n+2);else return!1;if(t==$r(this.data,n+1))return!0}}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=$r(this.data,n+2);else break;if(!(this.data[n+2]&1)){let o=this.data[n+1];t.some((s,i)=>i&1&&s==o)||t.push(this.data[n],o)}}return t}configure(e){let t=Object.assign(Object.create(Ds.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let o=e.tokenizers.find(s=>s.from==n);return o?o.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,o)=>{let s=e.specializers.find(l=>l.from==n.external);if(!s)return n;let i=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[o]=bT(i),i})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let i=t.indexOf(s);i>=0&&(n[i]=!0)}let o=null;for(let s=0;s<t.length;s++)if(!n[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 gm(e,n,o)}static deserialize(e){return new Ds(e)}};function $r(r,e){return r[e]|r[e+1]<<16}function sO(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function bT(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}var hf=Ds.deserialize({version:14,states:"&fOVQPOOO!SQPO'#C^OVQPO'#CcQ!pQPOOO#OQPO'#CkO#TQPO'#CrOOQO'#Cy'#CyO#YQPO,58}OVQPO,59QOVQPO,59QOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO#kQPO1G.lO$fQPO'#CmO%WQQO1G.qOOQO'#C{'#C{O%cQPO,59`OOQO'#Cn'#CnO%wQPO,59XOVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO&`QPO1G.zOOQO1G.z1G.zO&hQQO'#C^O&rQQO1G.sO'ZQQO1G.uOOQO1G.v1G.vO'fQPO<<GwO'wQPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(]QQO1G.lO(tQPOG22}OOQOLD(iLD(iO%wQPO,59QO%wQPO,59Q",stateData:")[~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXeQX~OjQXXQXpQXqQXrQXsQXtQXuQX~PnOZWO[WO]XO^XO~OWYO~OWZO~OX]OZWO[WO]XO^XO~OZWO[WO]Yi^YijYiXYipYiqYirYisYitYiuYieYi~OZWO[WO]XO^XOpdOqdOrdOsdOtdOudO~OehOvfOwgO~OXkOZWO[WO]XO^XOeiO~ORUOSUOTUOUUOWQO`SOnlO~OXsOeiO~OvQXwQX~PnOZxO[xO]yO^yOeaivaiwai~OwgOecivci~OZWO[WO]XO^XOetO~OZWO[WO]XO^XOXiaeia~OZxO[xO]Yi^YieYivYiwYi~OXwOZWO[WO]XO^XO~O`UTn~",goto:"#spPPqPPPPqPPqPPPPqP!R!W!R!RPq!Z!k!nPPP!tP#jmUOQWXYZefghitxyVbYfgRe`mTOQWXYZefghitxyR[TQjcRrjQROQVQS^WxQ_XU`YfgQcZQmeQphQqiQuyRvtQaYQnfRog",nodeNames:"\u26A0 ColumnDefinitionExpression Column Number String True False ParenthesizedExpression OpenBrace CloseBrace ArithmeticExpression Divide Times Plus Minus ConditionalExpression If RelationalExpression RelationalOperator AndCondition OrCondition Comma CallExpression Function ArgList",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:".^~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$jz{$o{|$t|}$y}!O%O!O!P%T!P!Q%c!Q![%h!^!_%s!_!`&Q!`!a&V!c!}&d#R#S&d#T#U&u#U#Y&d#Y#Z(Y#Z#]&d#]#^*j#^#c&d#c#d+f#d#h&d#h#i,b#i#o&d~#USl~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOu~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_OS~~$bP;=`<%l#m~$jOW~~$oOX~~$tO[~~$yO]~~%OOe~~%TO^~~%WP!Q![%Z~%`PR~!Q![%Z~%hOZ~~%mQR~!O!P%Z!Q![%h~%xPr~!_!`%{~&QOt~~&VOp~~&[Pq~!_!`&_~&dOs~P&iSnP!Q![&d!c!}&d#R#S&d#T#o&dR&zUnP!Q![&d!c!}&d#R#S&d#T#b&d#b#c'^#c#o&dR'cUnP!Q![&d!c!}&d#R#S&d#T#W&d#W#X'u#X#o&dR'|SvQnP!Q![&d!c!}&d#R#S&d#T#o&d~(_TnP!Q![&d!c!}&d#R#S&d#T#U(n#U#o&d~(sUnP!Q![&d!c!}&d#R#S&d#T#`&d#`#a)V#a#o&d~)[UnP!Q![&d!c!}&d#R#S&d#T#g&d#g#h)n#h#o&d~)sUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y*V#Y#o&d~*^SU~nP!Q![&d!c!}&d#R#S&d#T#o&d~*oUnP!Q![&d!c!}&d#R#S&d#T#Y&d#Y#Z+R#Z#o&d~+YS`~nP!Q![&d!c!}&d#R#S&d#T#o&dR+kUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g+}#g#o&dR,USwQnP!Q![&d!c!}&d#R#S&d#T#o&d~,gUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g,y#g#o&d~-OUnP!Q![&d!c!}&d#R#S&d#T#i&d#i#j-b#j#o&d~-gUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y-y#Y#o&d~.QST~nP!Q![&d!c!}&d#R#S&d#T#o&d",tokenizers:[0,1],topRules:{ColumnDefinitionExpression:[0,1]},tokenPrec:375});var RZ=vo.define({name:"VuuColumnExpression",parser:hf.configure({props:[va({Function:$.variableName,String:$.string,Or:$.emphasis,Operator:$.operator})]})});var bm=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},ym=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},Pa,Rs,xT=class{constructor(e="unknown"){qt(this,Pa,[{type:"unknown"},{type:"unknown"}]);qt(this,Rs,void 0);this.type="arithmeticExpression";Pn(this,Rs,e)}get op(){return j(this,Rs)}set op(e){Pn(this,Rs,e)}get expressions(){return j(this,Pa)}toJSON(){return{type:this.type,op:j(this,Rs),expressions:j(this,Pa)}}};Pa=new WeakMap,Rs=new WeakMap;var Zi,xm=class{constructor(e){qt(this,Zi,[]);this.type="callExpression";this.functionName=e}get expressions(){return j(this,Zi)}get arguments(){return j(this,Zi)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:j(this,Zi).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};Zi=new WeakMap;var Ia,el,Yi=class{constructor(){qt(this,Ia,[{type:"unknown"},{type:"unknown"}]);qt(this,el,"unknown");this.type="relationalExpression"}get op(){return j(this,el)}set op(e){Pn(this,el,e)}get expressions(){return j(this,Ia)}toJSON(){return{type:this.type,op:j(this,el),expressions:j(this,Ia)}}};Ia=new WeakMap,el=new WeakMap;var Aa,tl,Ji=class{constructor(e){qt(this,Aa,[{type:"unknown"},{type:"unknown"}]);qt(this,tl,void 0);this.type="booleanCondition";Pn(this,tl,e)}get op(){return j(this,tl)}get expressions(){return j(this,Aa)}toJSON(){return{type:this.type,op:j(this,tl),expressions:j(this,Aa).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};Aa=new WeakMap,tl=new WeakMap;var pr,Ra=class{constructor(e){qt(this,pr,void 0);this.type="conditionalExpression";Pn(this,pr,[e?new Ji(e):new Yi,{type:"unknown"},{type:"unknown"}])}get expressions(){return j(this,pr)}get condition(){return j(this,pr)[0]}get truthyExpression(){return j(this,pr)[1]}set truthyExpression(e){j(this,pr)[1]=e}get falsyExpression(){return j(this,pr)[2]}set falsyExpression(e){j(this,pr)[2]=e}toJSON(){var e,t,n,o,s;return{type:this.type,condition:(t=(e=this.condition).toJSON)==null?void 0:t.call(e),truthyExpression:this.truthyExpression,falsyExpression:(s=(o=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:o.call(n))!=null?s:this.falsyExpression}}};pr=new WeakMap;var Ms=r=>r.type==="unknown",df=r=>r.type==="arithmeticExpression",iO=r=>r.type==="callExpression",Xi=r=>r.type==="conditionalExpression",lO=r=>r.type==="relationalExpression"||r.type==="booleanCondition";var aO=r=>r.type==="booleanCondition",vm=r=>(r==null?void 0:r.type)==="relationalExpression";var kn=r=>{if(Ms(r))return r;if(vm(r)){let[e,t]=r.expressions;if(kt(e))return kn(e);if(r.op==="unknown")return r;if(kt(t))return kn(t)}else if(lO(r)){let{expressions:e=[]}=r;for(let t of e)if(kt(t))return kn(t)}else if(Xi(r)){let{condition:e,truthyExpression:t,falsyExpression:n}=r;if(kt(e))return kn(e);if(kt(t))return kn(t);if(kt(n))return kn(n)}else if(df(r)){let{expressions:e=[]}=r;for(let t of e)if(kt(t))return kn(t)}},pf=(r,e,t)=>{let{expressions:n=[]}=r;if(n.includes(e)){let o=n.indexOf(e);return n.splice(o,1,t),!0}else for(let o of n)if(pf(o,e,t))return!0;return!1},kt=r=>Ms(r)?!0:Xi(r)?kt(r.condition)||kt(r.truthyExpression)||kt(r.falsyExpression):vm(r)||aO(r)?r.op===void 0||r.expressions.some(e=>kt(e)):!1,vT=(r,e)=>{let t=kn(r);t?t.expressions?t.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},be,Ps,CT=class{constructor(){qt(this,be,void 0);qt(this,Ps,[])}setCondition(e){if(j(this,be)===void 0)this.addExpression(new Ra(e));else if(Xi(j(this,be))){if(kt(j(this,be).condition)){let t=e?new Ji(e):new Yi;this.addExpression(t)}else if(Ms(j(this,be).truthyExpression))j(this,be).truthyExpression=new Ra(e);else if(kt(j(this,be).truthyExpression)){let t=e?new Ji(e):new Yi;this.addExpression(t)}else if(Ms(j(this,be).falsyExpression))j(this,be).falsyExpression=new Ra(e);else if(kt(j(this,be).falsyExpression)){let t=e?new Ji(e):new Yi;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(j(this,Ps).length>0){let t=j(this,Ps).at(-1);t==null||t.arguments.push(e)}else if(j(this,be)===void 0)Pn(this,be,e);else if(df(j(this,be))){let t=kn(j(this,be));t&&Ms(t)&&pf(j(this,be),t,e)}else if(Xi(j(this,be))&&kt(j(this,be))){let t=kn(j(this,be));t&&Ms(t)?pf(j(this,be),t,e):t&&vT(t,e)}}setFunction(e){let t=new xm(e);this.addExpression(t),j(this,Ps).push(t)}setColumn(e){this.addExpression(new ym(e))}setArithmeticOp(e){let t=e,n=j(this,be);df(n)&&(n.op=t)}setRelationalOperator(e){let t=e;if(j(this,be)&&Xi(j(this,be))){let n=kn(j(this,be));vm(n)?n.op=t:console.error(`no target expression found (op = ${e})`)}}setValue(e){let t=new bm(e);if(j(this,be)===void 0)Pn(this,be,t);else if(df(j(this,be)))this.addExpression(t);else if(iO(j(this,be)))j(this,be).arguments.push(t);else if(Xi(j(this,be)))if(kt(j(this,be))){let n=kn(j(this,be));n&&Ms(n)?pf(j(this,be),n,t):n&&vT(n,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){j(this,Ps).pop()}get expression(){return j(this,be)}toJSON(){var e;return(e=j(this,be))==null?void 0:e.toJSON()}};be=new WeakMap,Ps=new WeakMap;var OZ=hf.configure({strict:!0}),cO=["Number","String"],uO=[...cO,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"];var fO=Vr.define([{tag:$.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:$.comment,color:"green",fontStyle:"italic"}]),hO=ka(fO);var dO=ce.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"},"&.cm-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var pO=require("react");var gO=require("react/jsx-runtime");var TT=require("@vuu-ui/vuu-utils"),ET=require("react");var wT=[{accepts:"string",description:"Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.",example:{expression:'concatenate("example", "-test")',result:'"example-test"'},name:"concatenate",params:{description:"( string, string, [ string* ] )"},type:"string"},{accepts:["string","string"],description:"Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>",example:{expression:'contains("Royal Bank of Scotland", "bank")',result:"true"},name:"contains",params:{description:"( string )"},type:"boolean"},{accepts:["string","number"],description:"Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:'left("USD Benchmark Report", 3)',result:'"USD"'},name:"left",params:{count:2,description:"( string, number )"},type:"string"},{accepts:"string",description:"Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.",example:{expression:'len("example")',result:"7"},name:"len",params:{description:"(string)"},type:"number"},{accepts:"string",description:"Convert a string value to lowercase. Argument may be a string column or other string expression.",example:{expression:'lower("examPLE")',result:'"example"'},name:"lower",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Convert a string value to uppercase. Argument may be a string column or other string expression.",example:{expression:'upper("example")',result:'"EXAMPLE"'},name:"upper",params:{description:"( string )"},type:"string"},{accepts:["string","number"],description:"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:"blah",result:"blah"},name:"right",params:{description:"( string )"},type:"string"},{accepts:["string","string","string"],description:"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",example:{expression:"blah",result:"blah"},name:"replace",params:{description:"( string )"},type:"string"},{accepts:"number",description:"Converts a number to a string.",example:{expression:"blah",result:"blah"},name:"text",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",example:{expression:"blah",result:"blah"},name:"starts",params:{description:"( string )"},type:"boolean"},{accepts:"string",description:"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",example:{expression:"blah",result:"blah"},name:"ends",params:{description:"( string )"},type:"boolean"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"min",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"max",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"sum",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"round",params:{description:"( string )"},type:"number"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"or",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"and",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",example:{expression:"blah",result:"blah"},name:"if",params:{description:"( filterExpression, expression1, expression 2)"},type:"variable"}];var mr=require("@vuu-ui/vuu-utils"),ST=({name:r,description:e,example:t,params:n,type:o})=>{let s=(0,mr.createEl)("div","vuuFunctionDoc"),i=(0,mr.createEl)("div","function-heading"),l=(0,mr.createEl)("span","function-name",r),a=(0,mr.createEl)("span","param-list",n.description),c=(0,mr.createEl)("span","function-type",o);i.appendChild(l),i.appendChild(a),i.appendChild(c);let u=(0,mr.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(u),t){let f=(0,mr.createEl)("div","example-container","Example:"),h=(0,mr.createEl)("div","example-expression",t.expression),d=(0,mr.createEl)("div","example-result",t.result);f.appendChild(h),f.appendChild(d),s.appendChild(f)}return s};var bO=r=>({apply:`${r.name}( `,boost:2,expressionType:r.type,info:()=>ST(r),label:r.name,type:"function"});var $ee=wT.map(bO);var mf=require("@vuu-ui/vuu-utils"),wm=require("react");var DT=require("react/jsx-runtime");var RT=require("react/jsx-runtime");var PT=require("react"),yO=W(require("classnames"),1);var IT=require("react/jsx-runtime");var Tte=new Intl.NumberFormat;var nl=require("@salt-ds/core");var bf=require("@vuu-ui/vuu-utils"),Tm=require("react");var AT=require("react/jsx-runtime");var LT=require("@vuu-ui/vuu-utils"),gr=require("react"),OT=({availableColumns:r,onAvailableColumnsChange:e,onConfigChange:t,onCreateCalculatedColumn:n,onDataSourceConfigChange:o,tableConfig:s})=>{let i=fn(),l=(0,gr.useRef)(),[a,c]=(0,gr.useState)(r),u=(0,gr.useCallback)((p,m,g)=>{i({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:p,props:g},title:m}})},[i]),f=(0,gr.useCallback)(p=>{let m=a.concat({name:p.name,serverDataType:(0,LT.getCalculatedColumnType)(p)});c(m),e==null||e(m),requestAnimationFrame(()=>{var g;(g=l.current)==null||g.call(l)}),n(p)},[a,e,n]),h=(0,gr.useCallback)(p=>{u("ColumnSettings","Column Settings",{column:p.column,onConfigChange:t,onCreateCalculatedColumn:f,tableConfig:s,vuuTable:p.vuuTable})},[f,t,u,s]),d=(0,gr.useCallback)(()=>{h({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[h]);return l.current=(0,gr.useCallback)(()=>{u("TableSettings","DataGrid Settings",{availableColumns:a!=null?a:s.columns.map(({name:p,serverDataType:m})=>({name:p,serverDataType:m})),onAddCalculatedColumn:d,onConfigChange:t,onDataSourceConfigChange:o,tableConfig:s})},[a,d,t,o,u,s]),{showColumnSettingsPanel:h,showTableSettingsPanel:l.current}};var gt=require("react");var Em=r=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${r})`,km=(r,e)=>`.vuuTableNext-body > [aria-rowindex='${r}'] > [role='cell']:nth-child(${e+1})`,HT=(r,[e,t])=>{var s;let n=e===-1?Em(t):km(e,t),o=(s=r.current)==null?void 0:s.querySelector(n);return xO(o)&&o.querySelector("button")||o},xO=r=>r.classList.contains("vuuTableNextCell-editable"),NT=r=>r.querySelector(".vuuTableInputCell")!==null;var vO=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),CO=r=>vO.has(r),wO=["Home","End","PageUp","PageDown"],SO=r=>wO.includes(r),TO=[-1,-1],EO=[void 0,void 0],kO=r=>{var t,n;let e=(t=r.closest(".vuuTableNext"))==null?void 0:t.querySelector(".vuuTableNext-scrollbarContainer");if(e){let o=e==null?void 0:e.getBoundingClientRect(),s=(n=r.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(s)return s.bottom>o.bottom?["down",s.bottom-o.bottom]:s.top<o.top?["up",s.top-o.top]:s.right<o.right?["right",s.right-o.right]:s.left<o.left?["left",s.left-o.left]:EO;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function DO(r,[e,t],n,o){return r==="ArrowUp"?e>-1?[e-1,t]:[e,t]:r==="ArrowDown"?e===-1?[0,t]:e===o-1?[e,t]:[e+1,t]:r==="ArrowRight"?t<n-1?[e,t+1]:[e,t]:r==="ArrowLeft"?t>1?[e,t-1]:[e,t]:[e,t]}var BT=({columnCount:r=0,containerRef:e,disableHighlightOnFocus:t,requestScroll:n,rowCount:o=0,viewportRowCount:s})=>{var S;let i=(0,gt.useRef)([-1,-1]),l=(0,gt.useRef)(),a=(0,gt.useRef)([-1,0]),c=b=>b==null?void 0:b.closest("[role='columnHeader'],[role='cell']"),u=b=>{var w,k;if(b.role==="columnHeader")return[-1,parseInt((w=b.dataset.idx)!=null?w:"-1",10)];{let D=b.closest("[role='row']");if(D){let T=parseInt((k=D.ariaRowIndex)!=null?k:"-1",10),M=Array.from(D.childNodes).indexOf(b);return[T,M]}}return TO},f=(0,gt.useCallback)(b=>{var w;if(e.current){let k=HT(e,b);if(k){k!==l.current&&((w=l.current)==null||w.removeAttribute("tabindex"),l.current=k,k.setAttribute("tabindex","0"));let[D,T]=kO(k);D&&T&&(n==null||n({type:"scroll-distance",distance:T,direction:D})),k.focus()}}},[e,n]),h=(0,gt.useCallback)((b,w,k=!1)=>{let D=[b,w];a.current=D,f(D),k&&(i.current=D)},[f]),d=(0,gt.useCallback)((b,[w,k])=>new Promise(D=>{let T=w;switch(b){case"PageDown":T=Math.min(o-1,w+s),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":T=Math.max(0,w-s),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":T=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":T=o-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{D([T,k])},90)}),[n,o,s]),p=(0,gt.useCallback)(()=>{var b;if(t!==!0&&(b=e.current)!=null&&b.contains(document.activeElement)){let w=c(document.activeElement);w&&(console.log({focusedCell:w}),i.current=u(w))}},[t,e]),m=(0,gt.useCallback)(async b=>{console.log(`navigate child items ${b}`);let[w,k]=SO(b)?await d(b,a.current):DO(b,a.current,r,o);console.log(`nextRowIdx ${w} nextColIdx ${k}`);let[D,T]=a.current;(w!==D||k!==T)&&h(w,k,!0)},[r,d,o,h]),g=(0,gt.useCallback)(b=>{o>0&&CO(b.key)&&(b.preventDefault(),b.stopPropagation(),m(b.key))},[o,m]),y=(0,gt.useCallback)(b=>{let w=b.target,k=c(w);if(k){let[D,T]=u(k);h(D,T)}},[h]),C=(0,gt.useCallback)(()=>{m("ArrowDown")},[m]),v=(0,gt.useMemo)(()=>({navigate:C,onClick:y,onFocus:p,onKeyDown:g}),[y,p,g,C]),x=((S=e.current)==null?void 0:S.firstChild)!=null;return(0,gt.useEffect)(()=>{if(x&&l.current===void 0){let{current:b}=e,w=(b==null?void 0:b.querySelector(Em(0)))||(b==null?void 0:b.querySelector(km(0,0)));w&&(w.setAttribute("tabindex","0"),l.current=w)}},[e,x]),v};var bt=require("@vuu-ui/vuu-utils"),Te=require("react");var Oa=(r,e)=>{switch(e.type){case"col-size":return{...r,columns:r.columns.map(t=>t.name===e.column.name?{...t,width:e.width}:t)};case"column-prop":return{...r,columns:r.columns.map(t=>t.name===e.column.name?{...t,[e.property]:e.value}:t)};default:return r}};var Is=require("@vuu-ui/vuu-utils"),Dt=require("react");var xf=require("@vuu-ui/vuu-utils"),{SELECTED:MO}=xf.metadataKeys,yf=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 xf.WindowRange(e,t),this.data=new Array(t-e),this.rowCount=0}add(e){let[t]=e;if(this.isWithinRange(t)){let n=t-this.range.from;this.data[n]=e}}getAtIndex(e){return this.range.isWithin(e)&&this.data[e-this.range.from]!=null?this.data[e-this.range.from]:void 0}isWithinRange(e){return this.range.isWithin(e)}setRange({from:e,to:t}){if(e!==this.range.from||t!==this.range.to){let[n,o]=this.range.overlap(e,t),s=new Array(Math.max(0,t-e));for(let i=n;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[MO]===1)}};var FT=({dataSource:r,onFeatureEnabled:e,onFeatureInvocation:t,onSizeChange:n,onSubscribed:o,range:s=Is.NULL_RANGE,renderBufferSize:i=0})=>{let[,l]=(0,Dt.useState)(null),a=(0,Dt.useRef)([]),c=(0,Dt.useRef)(!0),u=(0,Dt.useRef)(!1),f=(0,Dt.useRef)(Is.NULL_RANGE),h=(0,Dt.useMemo)(()=>new yf((0,Is.getFullRange)(s,i)),[]),d=(0,Dt.useCallback)(g=>{for(let y of g)h.add(y);a.current=h.data,c.current&&l({})},[h]),p=(0,Dt.useCallback)(g=>{g.type==="subscribed"?o==null||o(g):g.type==="viewport-update"?(typeof g.size=="number"&&(n==null||n(g.size),h.setRowCount(g.size)),g.rows?d(g.rows):typeof g.size=="number"&&(a.current=h.data,u.current=!0)):ru(g)?e==null||e(g):ou(g)?t==null||t(g):console.log(`useDataSource unexpected message ${g.type}`)},[h,e,t,n,o,d]);(0,Dt.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,Dt.useEffect)(()=>{r==null||r.subscribe({range:(0,Is.getFullRange)(s,i)},p)},[r,p,s,i]);let m=(0,Dt.useCallback)(g=>{let y=(0,Is.getFullRange)(g,i);h.setRange(y),r.range=f.current=y,r.emit("range",g)},[r,h,i]);return{data:a.current,range:f.current,setRange:m}};var vf=require("react"),zT=r=>{let e=(0,vf.useRef)(r);return(0,vf.useMemo)(()=>e.current,[])};var VT=require("@vuu-ui/vuu-utils"),$T=require("react"),KT=require("@vuu-ui/vuu-popups"),WT=({columns:r,data:e})=>{let[t]=(0,KT.useContextMenu)();return(0,$T.useCallback)(o=>{var a;let s=o.target,i=s==null?void 0:s.closest("div[role='cell']"),l=s==null?void 0:s.closest("div[role='row']");if(i&&l){let c=(0,VT.buildColumnMap)(r),u=parseInt((a=l.ariaRowIndex)!=null?a:"-1"),f=Array.from(l.childNodes).indexOf(i),h=e.find(([p])=>p===u),d=r[f];t(o,"grid",{columnMap:c,columnName:d,row:h})}},[r,e,t])};var UT=require("@vuu-ui/vuu-utils"),Ha=require("react");var _T=({navigate:r})=>{let e=(0,Ha.useCallback)(()=>{r()},[r]),t=(0,Ha.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",e,!0)},[e]),n=(0,Ha.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",e,!0)},[e]);return{onKeyDown:(0,Ha.useCallback)(s=>{NT(s.target)&&((0,UT.isCharacterKey)(s.key)?t(s):s.key==="Enter"&&n(s))},[t,n])}};var xe=require("@vuu-ui/vuu-utils");var GT=require("react"),{info:Dm}=(0,xe.logger)("useTableModel"),RO=100,PO=xe.metadataKeys.count,IO=({serverDataType:r})=>r===void 0,AO=r=>{var e;if((0,xe.isTypeDescriptor)(r.type))return(0,xe.getCellRenderer)((e=r.type)==null?void 0:e.renderer)},LO=(r,e)=>{var n;let t=e.columns.find(({name:o})=>o===r.name);return t?t.serverDataType:(n=r.serverDataType)!=null?n:"string"},OO=["int","long","double"],QT=r=>r===void 0?void 0:OO.includes(r)?"right":"left",jT=r=>r.type==="columnSettings",qT=r=>r.type==="tableSettings",HO=(r,e)=>{switch(Dm==null||Dm(`TableModelReducer ${e.type}`),console.log(`TableModelReducer ${e.type}`),e.type){case"init":return console.log({init:e}),YT(e);case"moveColumn":return BO(r,e);case"resizeColumn":return VO(r,e);case"setTableSchema":return $O(r,e);case"hideColumns":return FO(r,e);case"showColumns":return zO(r,e);case"pinColumn":return KO(r,e);case"updateColumnProp":return ol(r,e);case"tableConfig":return ZT(r,e);default:return console.log(`unhandled action ${e.type}`),r}},XT=(r,e)=>{let[t,n]=(0,GT.useReducer)(HO,{tableConfig:r,dataSourceConfig:e},YT),{columns:o,headings:s,tableConfig:i,...l}=t;return{columns:o,dispatchColumnAction:n,headings:s,tableAttributes:l,tableConfig:i}};function YT({dataSourceConfig:r,tableConfig:e}){let{columns:t,...n}=e,o=t.filter((0,xe.subscribedOnly)(r==null?void 0:r.columns)).map(JT(n)),s=o.some(xe.isPinned)?(0,xe.sortPinnedColumns)(o):o,i={columns:s,headings:(0,xe.getTableHeadings)(s),tableConfig:e,...n};if(r){let{columns:l,...a}=r;i=ZT(i,{type:"tableConfig",...a})}return i}var NO=(r,e)=>e==="uppercase"?r.toUpperCase():e==="capitalize"?r[0].toUpperCase()+r.slice(1).toLowerCase():r,JT=r=>(e,t)=>{let{columnDefaultWidth:n=RO,columnFormatHeader:o}=r,{align:s=QT(e.serverDataType),key:i,name:l,label:a=l,width:c=n,...u}=e,f={...u,align:s,CellRenderer:AO(e),clientSideEditValidationCheck:(0,xe.hasValidationRules)(e.type)?ix(e.type.renderer.rules):void 0,label:NO(a,o),key:i!=null?i:t+PO,name:l,originalIdx:t,valueFormatter:(0,xe.getValueFormatter)(e),width:c};return(0,xe.isGroupColumn)(f)&&(f.columns=f.columns.map(h=>JT(r)(h,h.key))),f};function BO(r,{column:e,moveBy:t,moveTo:n}){let{columns:o}=r;if(typeof t=="number"){let s=o.indexOf(e),i=o.slice(),[l]=i.splice(s,1);return i.splice(s+t,0,l),{...r,columns:i}}else if(typeof n=="number"){let s=o.indexOf(e);return{...r,columns:(0,xe.moveItem)(o,s,n)}}return r}function FO(r,{columns:e}){return e.some(t=>t.hidden!==!0)?e.reduce((t,n)=>n.hidden!==!0?ol(t,{type:"updateColumnProp",column:n,hidden:!0}):t,r):r}function zO(r,{columns:e}){return e.some(t=>t.hidden)?e.reduce((t,n)=>n.hidden?ol(t,{type:"updateColumnProp",column:n,hidden:!1}):t,r):r}function VO(r,{column:e,phase:t,width:n}){let o="updateColumnProp",s=t!=="end";switch(t){case"begin":return ol(r,{type:o,column:e,resizing:s});case"end":return ol(r,{type:o,column:e,resizing:s,width:n});case"resize":return ol(r,{type:o,column:e,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${t}`)}}function $O(r,{tableSchema:e}){let{columns:t}=r;if(t.some(IO)){let n=t.map(o=>{var i;let s=LO(o,e);return{...o,align:(i=o.align)!=null?i:QT(s),serverDataType:s}});return{...r,columns:n}}else return r}function KO(r,e){let{columns:t}=r,{column:n,pin:o}=e,s=t.find(i=>i.name===n.name);return s?(t=rl(t,{...s,pin:o}),t=(0,xe.sortPinnedColumns)(t),{...r,columns:t}):r}function ol(r,e){let{columns:t}=r,{align:n,column:o,hidden:s,label:i,resizing:l,width:a}=e,c=t.find(u=>u.name===o.name);return c&&((n==="left"||n==="right")&&(t=rl(t,{...c,align:n})),typeof i=="string"&&(t=rl(t,{...c,label:i})),typeof l=="boolean"&&(t=rl(t,{...c,resizing:l})),typeof s=="boolean"&&(t=rl(t,{...c,hidden:s})),typeof a=="number"&&(t=rl(t,{...c,width:a}))),{...r,columns:t}}function ZT(r,{confirmed:e,filter:t,groupBy:n,sort:o}){let s=n!==void 0,i=typeof(t==null?void 0:t.filter)=="string",l=o&&o.sortDefs.length>0,a=r;return s&&(a={...r,columns:(0,xe.applyGroupByToColumns)(a.columns,n,e)}),l&&(a={...r,columns:(0,xe.applySortToColumns)(a.columns,o)}),i?a={...r,columns:(0,xe.applyFilterToColumns)(a.columns,t)}:a.columns.some(xe.isFilteredColumn)&&(a={...r,columns:(0,xe.stripFilterFromColumns)(a.columns)}),a}function rl(r,e){return r.map(t=>t.name===e.name?e:t)}var Bt=require("react"),eE=r=>{let{scrollLeft:e,scrollTop:t}=r,{clientHeight:n,clientWidth:o,scrollHeight:s,scrollWidth:i}=r,l=e/(i-o),a=t/(s-n);return[l,a]},tE=({onAttach:r,onDetach:e})=>{let t=(0,Bt.useRef)(null);return(0,Bt.useCallback)(o=>{if(o)t.current=o,r==null||r(o);else if(t.current){let{current:s}=t;t.current=o,e==null||e(s)}},[r,e])},nE=({maxScrollLeft:r,maxScrollTop:e,onHorizontalScroll:t,onVerticalScroll:n,rowHeight:o,viewportRowCount:s})=>{let i=(0,Bt.useRef)(!1),l=(0,Bt.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Bt.useRef)(null),c=(0,Bt.useRef)(null),u=(0,Bt.useCallback)(()=>{let{current:v}=c,{current:x}=a,{current:S}=i;if(S)i.current=!1;else if(v&&x){let[b,w]=eE(x),k=Math.round(b*r),D=Math.round(w*e);v.scrollTo({left:k,top:D,behavior:"auto"})}},[r,e]),f=(0,Bt.useCallback)(()=>{let{current:v}=c,{current:x}=a,{current:S}=l;if(v&&x){let{scrollLeft:b,scrollTop:w}=v,[k,D]=eE(v);i.current=!0,x.scrollLeft=Math.round(k*r),x.scrollTop=Math.round(D*e),S.scrollTop!==w&&(S.scrollTop=w,n==null||n(w,D)),S.scrollLeft!==b&&(S.scrollLeft=b,t==null||t(b))}},[r,e,t,n]),h=(0,Bt.useCallback)(v=>{a.current=v,v.addEventListener("scroll",u,{passive:!0})},[u]),d=(0,Bt.useCallback)(v=>{a.current=null,v.removeEventListener("scroll",u)},[u]),p=(0,Bt.useCallback)(v=>{c.current=v,v.addEventListener("scroll",f,{passive:!0})},[f]),m=(0,Bt.useCallback)(v=>{c.current=null,v.removeEventListener("scroll",f)},[f]),g=tE({onAttach:p,onDetach:m}),y=tE({onAttach:h,onDetach:d}),C=(0,Bt.useCallback)(v=>{let{current:x}=c;if(x){let{scrollLeft:S,scrollTop:b}=x;if(i.current=!1,v.type==="scroll-distance"){let w=S,k=b;v.direction==="up"||v.direction==="down"?k=Math.min(Math.max(0,b+v.distance),e):w=Math.min(Math.max(0,S+v.distance),r),x.scrollTo({top:k,left:w,behavior:"auto"})}else if(v.type==="scroll-page"){let{direction:w}=v,k=s*(w==="down"?o:-o),D=Math.min(Math.max(0,b+k),e);x.scrollTo({top:D,left:S,behavior:"auto"})}else if(v.type==="scroll-end"){let{direction:w}=v,k=w==="end"?e:0;x.scrollTo({top:k,left:x.scrollLeft,behavior:"auto"})}}},[r,e,o,s]);return{scrollbarContainerRef:y,contentContainerRef:g,requestScroll:C}};var sl=require("react"),rE=({columns:r,getRowAtPosition:e,setRange:t,viewportMeasurements:n})=>{let o=(0,sl.useRef)(0),{contentWidth:s,rowCount:i}=n,l=(0,sl.useCallback)(a=>{let c=e(a);c!==o.current&&(o.current=c,t({from:c,to:c+i}))},[e,t,i]);return(0,sl.useEffect)(()=>{let{current:a}=o,c={from:a,to:a+i};t(c)},[t,i]),{onVerticalScroll:l}};var{KEY:WO,IS_EXPANDED:oE,IS_LEAF:sE}=bt.metadataKeys,UO=(r,e)=>({...r,columns:r.columns.concat(e)}),iE=({availableColumns:r,config:e,containerRef:t,dataSource:n,headerHeight:o=25,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onRowClick:c,onSelectionChange:u,renderBufferSize:f=0,rowHeight:h=20,selectionModel:d})=>{let[p,m]=(0,Te.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[g,y]=(0,Te.useState)(),C=(0,Te.useCallback)(N=>{y(N)},[]),v=(0,Te.useMemo)(()=>ul(n),[n]),x=(0,Te.useCallback)(N=>{m(N)},[]),{columns:S,dispatchColumnAction:b,headings:w,tableAttributes:k,tableConfig:D}=XT(e,n.config);An(()=>{b({type:"init",dataSourceConfig:n.config,tableConfig:D})},[D,n.config,b]);let[T,M]=(0,Te.useState)(),[E,R]=(0,Te.useMemo)(()=>{let N=(K,ue)=>{let Oe=(0,bt.updateColumn)(S,K,{width:ue});M(Oe)};return[T!=null?T:S,N]},[S,T]),A=(0,Te.useMemo)(()=>(0,bt.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:O,getRowOffset:L,setPctScrollTop:P,...I}=jl({columns:E,headerHeight:o,headings:w,rowCount:p,rowHeight:h,size:g}),B=zT({from:0,to:I.rowCount}),H=(0,Te.useCallback)(({tableSchema:N})=>{N||console.log("usbscription message with no schema")},[]),{data:z,range:V,setRange:Q}=FT({dataSource:n,onFeatureEnabled:l,onFeatureInvocation:a,renderBufferSize:f,onSizeChange:x,onSubscribed:H,range:B}),q=(0,Te.useCallback)(N=>{console.log("useTableNext handleConfigChanged",{tableConfig:N}),b({type:"init",tableConfig:N,dataSourceConfig:n.config}),i==null||i(N)},[n.config,b,i]),Y=(0,Te.useCallback)(N=>{console.log("config changed",{dataSourceConfig:N}),n.config={...n.config,...N}},[n]),_=(0,Te.useCallback)(N=>{console.log("useTableNext handleCreateCalculatedColumn",{column:N}),n.columns=n.columns.concat(N.name);let K=UO(D,N);b({type:"init",tableConfig:K,dataSourceConfig:n.config}),i==null||i(K)},[n,b,i,D]);(0,Te.useEffect)(()=>{n.on("config",(N,K)=>{b({type:"tableConfig",...N,confirmed:K})})},[n,b]);let{showColumnSettingsPanel:J,showTableSettingsPanel:he}=OT({availableColumns:r!=null?r:D.columns.map(({name:N,serverDataType:K="string"})=>({name:N,serverDataType:K})),onAvailableColumnsChange:s,onConfigChange:q,onCreateCalculatedColumn:_,onDataSourceConfigChange:Y,tableConfig:D}),le=(0,Te.useCallback)(N=>{jT(N)?J(N):qT(N)?he():b(N)},[b,J,he]),Fe=fl({dataSource:n,onPersistentColumnOperation:le}),Ce=(0,Te.useCallback)((N,K=!1,ue)=>{n&&(n.sort=(0,bt.applySort)(n.sort,N,K,ue))},[n]),Le=(0,Te.useCallback)((N,K,ue)=>{let Oe=E.find(Ft=>Ft.name===K);if(Oe)N==="resize"?(0,bt.isValidNumber)(ue)&&R(K,ue):N==="end"?(0,bt.isValidNumber)(ue)&&(b({type:"resizeColumn",phase:N,column:Oe,width:ue}),i==null||i(Oa(D,{type:"col-size",column:Oe,width:ue}))):(M(void 0),b({type:"resizeColumn",phase:N,column:Oe,width:ue}));else throw Error(`useDataTable.handleColumnResize, column ${K} not found`)},[E,D,b,i,R]),De=(0,Te.useCallback)((N,K)=>{let ue=(0,bt.isJsonGroup)(K,N),Oe=N[WO];if(N[oE]){if(n.closeTreeNode(Oe,!0),ue){let Ft=E.indexOf(K);n.getRowsAtDepth(Ft+1).some(Mn=>Mn[oE]||Mn[sE])||b({type:"hideColumns",columns:E.slice(Ft+2)})}}else if(n.openTreeNode(Oe),ue){let Ft=n.getChildRows(Oe),To=E.indexOf(K)+1,Mn=[E[To]];Ft.some(As=>As[sE])&&Mn.push(E[To+1]),Mn.some(As=>As.hidden)&&b({type:"showColumns",columns:Mn})}},[E,n,b]),{onVerticalScroll:Pe}=rE({columns:E,getRowAtPosition:O,setRange:Q,viewportMeasurements:I}),Je=(0,Te.useCallback)(N=>{Pe(N)},[Pe]),{requestScroll:ne,...me}=nE({maxScrollLeft:I.maxScrollContainerScrollHorizontal,maxScrollTop:I.maxScrollContainerScrollVertical,rowHeight:h,onVerticalScroll:Je,viewportRowCount:I.rowCount}),{navigate:Ie,onKeyDown:ae,...Me}=BT({columnCount:E.filter(N=>N.hidden!==!0).length,containerRef:t,requestScroll:ne,rowCount:n==null?void 0:n.size,viewportRange:V,viewportRowCount:I.rowCount}),{onKeyDown:G}=_T({navigate:Ie}),Z=(0,Te.useCallback)(N=>{ae(N),N.defaultPrevented||G(N)},[ae,G]),re=WT({columns:E,data:z}),fe=(0,Te.useCallback)(N=>{var Mn;let ue=N.target.closest(".vuuTableNextHeaderCell"),Oe=parseInt((Mn=ue==null?void 0:ue.dataset.index)!=null?Mn:"-1"),Ft=(0,bt.visibleColumnAtIndex)(E,Oe),To=N.shiftKey;Ft&&Ce(Ft,To)},[E,Ce]),Ee=(0,Te.useCallback)(N=>{(0,bt.isGroupColumn)(N)?n.groupBy=[]:n&&n.groupBy.includes(N.name)&&(n.groupBy=n.groupBy.filter(K=>K!==N.name))},[n]),ze=(0,Te.useCallback)(N=>{n.select(N),u==null||u(N)},[n,u]),we=Ql({onSelectionChange:ze,selectionModel:d}),X=(0,Te.useCallback)((N,K,ue)=>{we(N,K,ue),c==null||c(N)},[c,we]);(0,Te.useEffect)(()=>{n.on("config",(N,K)=>{b({type:"tableConfig",...N,confirmed:K})})},[n,b]);let te=(0,Te.useCallback)((N,K)=>{let ue=E[N];b({type:"moveColumn",column:ue,moveTo:K})},[E,b]),oe=(0,Te.useCallback)((N,K,ue)=>n.applyEdit(N,K,ue),[n]),{onMouseDown:de,..._e}=Yn({allowDragDrop:!0,containerRef:t,draggableClassName:"vuuTableNext",onDrop:te,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...Me,onKeyDown:Z,columnMap:A,columns:E,data:z,handleContextMenuAction:Fe,headerProps:{onClick:fe,onMouseDown:de,onResize:Le},menuBuilder:v,onContextMenu:re,onDataEdited:oe,onRemoveGroupColumn:Ee,onResize:C,onRowClick:X,onToggleGroup:De,scrollProps:me,tableAttributes:k,viewportMeasurements:I,dragDropHook:_e}};var Dn=require("react/jsx-runtime"),Rm=require("react"),jn="vuuTableNext",{IDX:_O,RENDER_IDX:GO}=il.metadataKeys,Fc=({Row:r=Td,availableColumns:e,className:t,config:n,dataSource:o,id:s,onAvailableColumnsChange:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:f,onShowConfigEditor:h,renderBufferSize:d=0,rowHeight:p=20,selectionModel:m="extended",showColumnHeaders:g=!0,headerHeight:y=g?25:0,style:C,...v})=>{let x=ft(s),S=(0,aE.useRef)(null),{columnMap:b,columns:w,data:k,dragDropHook:D,handleContextMenuAction:T,headerProps:M,onDataEdited:E,onRemoveGroupColumn:R,onResize:A,onRowClick:O,onToggleGroup:L,menuBuilder:P,scrollProps:I,tableAttributes:B,viewportMeasurements:H,...z}=iE({availableColumns:e,config:n,containerRef:S,dataSource:o,headerHeight:y,onAvailableColumnsChange:i,onConfigChange:l,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:f,renderBufferSize:d,rowHeight:p,selectionModel:m}),V=()=>({...C,"--content-height":`${H.contentHeight}px`,"--horizontal-scrollbar-height":`${H.horizontalScrollbarHeight}px`,"--content-width":`${H.contentWidth}px`,"--pinned-width-left":`${H.pinnedWidthLeft}px`,"--pinned-width-right":`${H.pinnedWidthRight}px`,"--header-height":`${y}px`,"--row-height":`${p}px`,"--total-header-height":`${H.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${H.verticalScrollbarWidth}px`,"--viewport-body-height":`${H.viewportBodyHeight}px`}),Q=(0,Mm.default)(jn,t,{[`${jn}-colLines`]:B.columnSeparators,[`${jn}-rowLines`]:B.rowSeparators,[`${jn}-zebra`]:B.zebraStripes});return(0,Dn.jsx)(lE.ContextMenuProvider,{menuActionHandler:T,menuBuilder:P,children:(0,Dn.jsxs)(nc,{...v,className:Q,onResize:A,ref:S,style:V(),children:[(0,Dn.jsx)("div",{className:`${jn}-scrollbarContainer`,ref:I.scrollbarContainerRef,children:(0,Dn.jsx)("div",{className:`${jn}-scrollbarContent`})}),(0,Dn.jsx)("div",{className:`${jn}-contentContainer`,ref:I.contentContainerRef,children:(0,Dn.jsxs)("div",{...z,className:`${jn}-table`,tabIndex:-1,children:[g?(0,Dn.jsx)("div",{className:`${jn}-col-headings`,children:(0,Dn.jsxs)("div",{className:`${jn}-col-headers`,role:"row",children:[w.filter(il.notHidden).map((q,Y)=>(0,il.isGroupColumn)(q)?(0,Rm.createElement)(ea,{...M,column:q,"data-index":Y,key:q.name,onRemoveColumn:R}):(0,Rm.createElement)(U0,{...M,className:(0,Mm.default)({"vuuDraggable-dragAway":Y===D.draggedItemIndex}),column:q,"data-index":Y,id:`${x}-col-${Y}`,key:q.name})),D.draggable]})}):null,(0,Dn.jsx)("div",{className:`${jn}-body`,children:k.map(q=>(0,Dn.jsx)(r,{columnMap:b,columns:w,onClick:O,onDataEdited:E,row:q,offset:p*q[_O]+y,onToggleGroup:L,zebraStripes:B.zebraStripes},q[GO]))})]})})]})})};var ll=require("@vuu-ui/vuu-utils");var Cf=require("react"),cE=require("react/jsx-runtime"),QO="vuuTableDropdownCell",jO=["Enter"," "],qO=({column:r,columnMap:e,row:t})=>{var a,c,u;let n=(0,ll.isTypeDescriptor)(r.type)&&(0,ll.isColumnTypeRenderer)((a=r.type)==null?void 0:a.renderer)?(u=(c=r.type)==null?void 0:c.renderer)==null?void 0:u.values:[],o=e[r.name],[s,i]=(0,Cf.useState)(t[o]),l=(0,Cf.useCallback)((f,h)=>{h&&i(h)},[]);return(0,cE.jsx)(Lc,{className:QO,onSelectionChange:l,openKeys:jO,selected:s,source:n,width:r.width-17})};(0,ll.registerComponent)("dropdown-cell",qO,"cell-renderer",{});var uE=require("@vuu-ui/vuu-utils"),fE=require("@salt-ds/core");var hE=W(require("classnames"));var Sf=require("react/jsx-runtime"),wf="vuuTableInputCell",XO=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),YO=({column:r,columnMap:e,onCommit:t=XO,row:n})=>{let o=e[r.name],{align:s="left",clientSideEditValidationCheck:i,valueFormatter:l}=r,{warningMessage:a,...c}=ax({initialValue:l(n[o]),onCommit:t,clientSideEditValidationCheck:i}),u=a&&s==="left"?(0,Sf.jsx)("span",{className:`${wf}-icon`,"data-icon":"error"}):void 0,f=a&&s==="right"?(0,Sf.jsx)("span",{className:`${wf}-icon`,"data-icon":"error"}):void 0;return(0,Sf.jsx)(fE.Input,{...c,className:(0,hE.default)(wf,{[`${wf}-error`]:a!==void 0}),endAdornment:u,startAdornment:f})};(0,uE.registerComponent)("input-cell",YO,"cell-renderer",{});
1
+ "use strict";var ul=Object.create;var $t=Object.defineProperty;var ml=Object.getOwnPropertyDescriptor;var pl=Object.getOwnPropertyNames;var dl=Object.getPrototypeOf,fl=Object.prototype.hasOwnProperty;var Cl=(e,t)=>{for(var o in t)$t(e,o,{get:t[o],enumerable:!0})},Jo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of pl(t))!fl.call(e,r)&&r!==o&&$t(e,r,{get:()=>t[r],enumerable:!(n=ml(t,r))||n.enumerable});return e};var G=(e,t,o)=>(o=e!=null?ul(dl(e)):{},Jo(t||!e||!e.__esModule?$t(o,"default",{value:e,enumerable:!0}):o,e)),bl=e=>Jo($t({},"__esModule",{value:!0}),e);var fi={};Cl(fi,{ColumnResizer:()=>mt,GroupHeaderCellNext:()=>Ht,Table:()=>hs,TableNext:()=>tl,buildContextMenuDescriptors:()=>pt,isShowColumnSettings:()=>os,isShowTableSettings:()=>ns,updateTableConfig:()=>Qt,useMeasuredContainer:()=>ko,useSelection:()=>Tt,useTableColumnResize:()=>gt,useTableContextMenu:()=>dt,useTableModel:()=>Ko,useTableViewport:()=>wt});module.exports=bl(fi);var Ge=require("react");var Qo=require("react/jsx-runtime"),Xo=()=>{},gl="vuuColumnResizer",mt=({onDrag:e,onDragEnd:t=Xo,onDragStart:o=Xo})=>{let n=(0,Ge.useRef)(0),r=(0,Ge.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,Ge.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,Ge.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,Qo.jsx)("div",{className:gl,"data-align":"end",onMouseDown:s})};var Yo=require("@vuu-ui/vuu-utils"),pt=e=>(t,o)=>{let n=[];if(e===void 0)return n;if(t==="header"||t==="column-menu")n.push(...hl(o,e)),n.push(...Tl(o,e)),n.push(...vl(o,e)),n.push(...yl(o)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:o}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:o});else if(t==="filter"){let{column:r,filter:l}=o,s=(l==null?void 0:l.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:o}),n.push({label:"Remove filter",action:"filter-remove-column",options:o}),r&&!s&&n.push({label:"Remove all filters",action:"remove-filters",options:o})}return n};function hl(e,{sort:{sortDefs:t}}){let{column:o}=e,n=[];if(o===void 0)return n;let r=t.length>0;return o.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):o.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof o.sorted=="number"?(o.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(o.sorted)<t.length&&n.push({label:"Remove from sort",action:"sort-remove",options:e}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),n}function vl(e,t){let{column:o}=e;if(o===void 0||t.groupBy.length===0)return[];let{name:n,label:r=n}=o;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,Yo.isNumericColumn)(o)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var vo=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),bo=e=>vo(e,"left"),go=e=>vo(e,"floating"),ho=e=>vo(e,"right");function yl(e){let{column:t}=e;if(t===void 0)return[];let{pin:o}=t,n=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return o===void 0?n.push({label:"Pin column",children:[bo(e),go(e),ho(e)]}):o==="left"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[go(e),ho(e)]}):o==="right"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[bo(e),go(e)]}):o==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[bo(e),ho(e)]}),n}function Tl(e,{groupBy:t}){let{column:o}=e,n=[];if(o===void 0)return n;let{name:r,label:l=r}=o;return t.length===0?n.push({label:`Group by ${l}`,action:"group",options:e}):n.push({label:`Add ${l} to group by`,action:"group-add",options:e}),n}var Zo=require("@vuu-ui/vuu-utils"),W=require("@vuu-ui/vuu-utils"),wl=(e,t)=>{if(e.filterStruct&&t){let[o,n]=(0,Zo.removeColumnFromFilter)(t,e.filterStruct);return{filter:n,filterStruct:o}}else return e},{Average:Dl,Count:Ml,Distinct:Rl,High:xl,Low:Pl,Sum:Hl}=W.AggregationType,dt=({dataSource:e,onPersistentColumnOperation:t})=>n=>{let r=n.options;if(r.column&&e){let{column:l}=r;switch(n.menuId){case"sort-asc":return e.sort=(0,W.setSortColumn)(e.sort,l,"A"),!0;case"sort-dsc":return e.sort=(0,W.setSortColumn)(e.sort,l,"D"),!0;case"sort-add-asc":return e.sort=(0,W.addSortColumn)(e.sort,l,"A"),!0;case"sort-add-dsc":return e.sort=(0,W.addSortColumn)(e.sort,l,"D"),!0;case"group":return e.groupBy=(0,W.addGroupColumn)(e.groupBy,l),!0;case"group-add":return e.groupBy=(0,W.addGroupColumn)(e.groupBy,l),!0;case"column-hide":return t({type:"hideColumns",columns:[l]}),!0;case"column-remove":return e.columns=e.columns.filter(s=>s!==l.name),!0;case"filter-remove-column":return e.filter=wl(e.filter,l),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Dl),!0;case"agg-high":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,xl),!0;case"agg-low":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Pl),!0;case"agg-count":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Ml),!0;case"agg-distinct":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Rl),!0;case"agg-sum":return e.aggregations=(0,W.setAggregations)(e.aggregations,l,Hl),!0;case"column-pin-floating":return t({type:"pinColumn",column:l,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:l,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:l,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:l,pin:void 0}),!0;case"column-settings":return t({type:"columnSettings",column:l}),!0;case"table-settings":return t({type:"tableSettings"}),!0;default:}}return!1};var Jn=require("@vuu-ui/vuu-popups"),Wt=require("@salt-ds/core");var re=require("@vuu-ui/vuu-utils"),_e=require("react");var j=require("@vuu-ui/vuu-utils"),rn=G(require("classnames")),Ct=require("react");var Ft=require("@vuu-ui/vuu-utils"),qo=require("@vuu-ui/vuu-ui-controls"),en=G(require("classnames")),be=require("react");var ft=require("react/jsx-runtime"),{KEY:jo}=Ft.metadataKeys,yo=(0,be.memo)(({className:e,column:t,columnMap:o,onClick:n,row:r})=>{let l=(0,be.useRef)(null),{align:s,CellRenderer:i,key:a,pin:c,editable:u,resizing:d,valueFormatter:p}=t,[C,v]=(0,be.useState)(!1),h=p(r[a]),[w,R]=(0,be.useState)(h),b=()=>{var M;(M=l.current)==null||M.focus()},f=M=>{M.key==="Enter"&&v(!0)},T=(0,be.useCallback)(M=>{n==null||n(M,t)},[t,n]),x=()=>{v(!0)},m=(M="",y="",E=!0,H=!1)=>{var k;v(!1),H?R(M):y!==M&&R(y),E===!1&&((k=l.current)==null||k.focus())},g=(0,en.default)(e,{vuuAlignRight:s==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,P=(0,Ft.getColumnStyle)(t);return u?(0,ft.jsx)("div",{className:g,"data-editable":!0,role:"cell",style:P,onKeyDown:f,children:(0,ft.jsx)(qo.EditableLabel,{editing:C,value:w,onChange:R,onMouseDownCapture:b,onEnterEditMode:x,onExitEditMode:m,onKeyDown:f,ref:l,tabIndex:0},"title")}):(0,ft.jsx)("div",{className:g,role:"cell",style:P,onClick:T,children:i?(0,ft.jsx)(i,{column:t,columnMap:o,row:r}):h})},El);yo.displayName="TableCell";function El(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[jo]===t.row[jo]&&e.row[e.column.key]===t.row[t.column.key]}var Be=require("@vuu-ui/vuu-utils"),tn=require("react");var We=require("react/jsx-runtime"),{IS_LEAF:Sl}=Be.metadataKeys,on=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Be.getGroupValueAndOffset)(n,o),s=(0,tn.useCallback)(u=>{t==null||t(u,e)},[e,t]),i=(0,Be.getColumnStyle)(e),a=o[Sl],c=Array(l).fill(0).map((u,d)=>(0,We.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,We.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:s,role:"cell",style:i,children:[c,a?null:(0,We.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,We.jsx)("span",{children:r})]})};var bt=require("react/jsx-runtime"),{IDX:Al,IS_EXPANDED:Ll,SELECTED:kl}=j.metadataKeys,{True:nn,First:Kl,Last:Nl}=j.RowSelected,Ue="vuuTableRow",ln=(0,Ct.memo)(function({columnMap:t,columns:o,offset:n,onClick:r,onToggleGroup:l,virtualColSpan:s=0,row:i}){let{[Al]:a,[Ll]:c,[kl]:u}=i,d=(0,rn.default)(Ue,{[`${Ue}-even`]:a%2===0,[`${Ue}-expanded`]:c,[`${Ue}-selected`]:u&nn,[`${Ue}-selectedStart`]:u&Kl,[`${Ue}-selectedEnd`]:u&Nl}),p=(0,Ct.useCallback)(v=>{let h=v.shiftKey,w=v.ctrlKey||v.metaKey;r==null||r(i,h,w)},[r,i]),C=(0,Ct.useCallback)((v,h)=>{((0,j.isGroupColumn)(h)||(0,j.isJsonGroup)(h,i))&&(v.stopPropagation(),l==null||l(i,h))},[l,i]);return(0,bt.jsxs)("div",{"aria-selected":u&nn?!0:void 0,"aria-rowindex":a,className:d,onClick:p,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[s>0?(0,bt.jsx)("div",{role:"cell",style:{width:s}}):null,o.filter(j.notHidden).map(v=>{let h=(0,j.isGroupColumn)(v),w=(0,j.isJsonColumn)(v);return(0,bt.jsx)(h?on:yo,{column:v,columnMap:t,onClick:h||w?C:void 0,row:i},v.name)})]})});var To=G(require("classnames")),an=require("react");var Le=require("react"),gt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Le.useRef)(0),r=(0,Le.useRef)(!1),{name:l}=e,s=(0,Le.useCallback)(()=>{if(t&&o.current){console.log("handleResizeStart");let{width:c}=o.current.getBoundingClientRect();n.current=Math.round(c),r.current=!0,t==null||t("begin",l)}},[l,t,o]),i=(0,Le.useCallback)((c,u)=>{if(o.current&&t){let{width:d}=o.current.getBoundingClientRect(),p=Math.round(d)+u;p!==n.current&&p>0&&(t("resize",l,p),n.current=p)}},[l,t,o]),a=(0,Le.useCallback)(()=>{t&&(t("end",l,n.current),setTimeout(()=>{r.current=!1},100))},[l,t]);return{isResizing:r.current,onDrag:i,onDragStart:s,onDragEnd:a}};var ae=require("react/jsx-runtime"),Me="vuuTable-groupHeaderCell",sn=({column:e,onClick:t,...o})=>(0,ae.jsx)("span",{...o,className:`${Me}-close`,"data-icon":"close-circle",onClick:()=>t==null?void 0:t(e)}),zl=e=>{let{children:t,column:o,className:n}=e;return(0,ae.jsxs)("div",{className:(0,To.default)(`${Me}-col`,n),role:"columnheader",children:[(0,ae.jsx)("span",{className:`${Me}-label`,children:o.name}),t]})},cn=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,an.useRef)(null),{isResizing:s,...i}=gt({column:e,onResize:n,rootRef:l}),a=(0,To.default)(Me,t,{vuuPinLeft:e.pin==="left",[`${Me}-right`]:e.align==="right",[`${Me}-resizing`]:e.resizing,[`${Me}-pending`]:e.groupConfirmed===!1}),{columns:c}=e;return(0,ae.jsx)("div",{className:a,ref:l,...r,children:(0,ae.jsxs)("div",{className:`${Me}-inner`,children:[c.map(u=>(0,ae.jsx)(zl,{column:u,children:c.length>1?(0,ae.jsx)(sn,{column:u,onClick:o}):null},u.key)),(0,ae.jsx)(sn,{"data-align":"end",onClick:o}),e.resizeable!==!1?(0,ae.jsx)(mt,{...i}):null]})})};var gn=G(require("classnames")),Ke=require("react");var wo=G(require("classnames"));var ke=require("react/jsx-runtime"),un="vuuSortIndicator",mn=({sorted:e})=>{if(!e)return null;let t=typeof e=="number"?e<0?"dsc":"asc":e==="A"?"asc":"dsc";return typeof e=="number"?(0,ke.jsxs)("div",{className:(0,wo.default)(un,"multi-col",t),children:[(0,ke.jsx)("span",{"data-icon":`sorted-${t}`}),(0,ke.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e)})]}):(0,ke.jsx)("div",{className:(0,wo.default)(un,"single-col"),children:(0,ke.jsx)("span",{"data-icon":`sorted-${t}`})})};var hn=require("@vuu-ui/vuu-popups");var pn=require("@vuu-ui/vuu-popups"),dn=G(require("classnames")),fn=require("react");var bn=require("react/jsx-runtime");var Cn=({column:e,filter:t})=>{let[o]=(0,pn.useContextMenu)(),n=(0,fn.useCallback)(r=>{r.stopPropagation(),o(r,"filter",{column:e,filter:t})},[e,t,o]);return e.filter?(0,bn.jsx)("div",{className:(0,dn.default)("vuuFilterIndicator"),"data-icon":"filter",onClick:n}):null};var Re=require("react/jsx-runtime"),ht="vuuTable-headerCell",vn=({column:e,className:t,onClick:o,onDragStart:n,onResize:r,...l})=>{let s=(0,Ke.useRef)(null),{isResizing:i,...a}=gt({column:e,onResize:r,rootRef:s}),[c]=(0,hn.useContextMenu)(),u=(0,Ke.useRef)(null),d=w=>{c(w,"header",{column:e})},p=(0,Ke.useCallback)(w=>!i&&(o==null?void 0:o(w)),[i,o]),C=(0,Ke.useCallback)(w=>{u.current=window.setTimeout(()=>{n==null||n(w),u.current=null},500)},[n]),v=(0,Ke.useCallback)(()=>{u.current!==null&&(window.clearTimeout(u.current),u.current=null)},[]),h=(0,gn.default)(ht,t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:e.endPin,[`${ht}-resizing`]:e.resizing,[`${ht}-right`]:e.align==="right"});return(0,Re.jsx)("div",{className:h,...l,onClick:p,onContextMenu:d,onMouseDown:C,onMouseUp:v,ref:s,children:(0,Re.jsxs)("div",{className:`${ht}-inner`,children:[(0,Re.jsx)(Cn,{column:e}),(0,Re.jsx)("div",{className:`${ht}-label`,children:e.label}),(0,Re.jsx)(mn,{sorted:e.sorted}),e.resizeable!==!1?(0,Re.jsx)(mt,{...a}):null]})})};var ce=require("react/jsx-runtime"),Do="vuuTable",{RENDER_IDX:Il}=re.metadataKeys,yn=({columns:e,columnsWithinViewport:t,data:o,getRowOffset:n,headings:r,onColumnResize:l,onHeaderCellDragStart:s,onContextMenu:i,onRemoveColumnFromGroupBy:a,onRowClick:c,onSort:u,onToggleGroup:d,tableId:p,virtualColSpan:C=0,rowCount:v})=>{let h=(0,_e.useCallback)(f=>{s==null||s(f)},[s]),w=(0,_e.useMemo)(()=>e.filter(re.notHidden),[e]),R=(0,_e.useMemo)(()=>(0,re.buildColumnMap)(e),[e]),b=(0,_e.useCallback)(f=>{var M;let x=f.target.closest(".vuuTable-headerCell"),m=parseInt((M=x==null?void 0:x.dataset.idx)!=null?M:"-1"),g=(0,re.visibleColumnAtIndex)(e,m),P=f.shiftKey;g&&u(g,P)},[e,u]);return(0,ce.jsxs)("div",{"aria-rowcount":v,className:`${Do}-table`,role:"table",children:[(0,ce.jsxs)("div",{className:`${Do}-headers`,role:"rowGroup",children:[r.map((f,T)=>(0,ce.jsx)("div",{className:"vuuTable-heading",children:f.map(({label:x,width:m},g)=>(0,ce.jsx)("div",{className:"vuuTable-headingCell",style:{width:m},children:x},g))},T)),(0,ce.jsx)("div",{role:"row",children:w.map((f,T)=>{let x=(0,re.getColumnStyle)(f);return(0,re.isGroupColumn)(f)?(0,ce.jsx)(cn,{column:f,"data-idx":T,onRemoveColumn:a,onResize:l,role:"columnHeader",style:x},T):(0,ce.jsx)(vn,{column:f,"data-idx":T,id:`${p}-${T}`,onClick:b,onDragStart:h,onResize:l,role:"columnHeader",style:x},T)})})]}),(0,ce.jsx)("div",{className:`${Do}-body`,onContextMenu:i,role:"rowGroup",children:o==null?void 0:o.map(f=>(0,ce.jsx)(ln,{columnMap:R,columns:t,offset:n(f),onClick:c,virtualColSpan:C,onToggleGroup:d,row:f},f[Il]))})]})};var Un=require("@vuu-ui/vuu-popups"),de=require("@vuu-ui/vuu-utils"),I=require("react");var Ot=require("@vuu-ui/vuu-data-react"),xe=require("@vuu-ui/vuu-utils"),V=require("react"),{SELECTED:vt}=xe.metadataKeys;function Tn({dataSource:e,onConfigChange:t,onFeatureEnabled:o,onFeatureInvocation:n,onSizeChange:r,onSubscribed:l,range:s={from:0,to:0},renderBufferSize:i=0,viewportRowCount:a}){let[,c]=(0,V.useState)(null),u=(0,V.useRef)(!0),d=(0,V.useRef)(!1),p=(0,V.useRef)({from:0,to:0}),C=(0,V.useRef)(null),v=(0,V.useRef)([]),h=(0,V.useMemo)(()=>new Mo((0,xe.getFullRange)(s)),[]),w=(0,V.useCallback)(m=>{for(let g of m)h.add(g);v.current=h.data,d.current=!0},[h]),R=(0,V.useCallback)(m=>{m.type==="subscribed"?l==null||l(m):m.type==="viewport-update"?(typeof m.size=="number"&&(r==null||r(m.size),h.setRowCount(m.size)),m.rows?w(m.rows):typeof m.size=="number"&&(v.current=h.data,d.current=!0)):(0,Ot.isVuuFeatureAction)(m)?o==null||o(m):(0,Ot.isVuuFeatureInvocation)(m)?n==null||n(m):console.log(`useDataSource unexpected message ${m.type}`)},[h,o,n,r,l,w]);(0,V.useEffect)(()=>()=>{C.current&&(cancelAnimationFrame(C.current),C.current=null),u.current=!1},[]);let b=(0,V.useCallback)(()=>{u.current&&(d.current&&(c({}),d.current=!1),C.current=requestAnimationFrame(b))},[c]);(0,V.useEffect)(()=>{C.current=requestAnimationFrame(b)},[b]);let f=(0,V.useCallback)(m=>{let{from:g}=e.range,P={from:g,to:g+m},M=(0,xe.getFullRange)(P,i);h.setRange(M),e.range=p.current=M,e.emit("range",P)},[e,h,i]),T=(0,V.useCallback)(m=>{let g=(0,xe.getFullRange)(m,i);h.setRange(g),e.range=p.current=g,e.emit("range",m)},[e,h,i]),x=(0,V.useCallback)(()=>h.getSelectedRows(),[h]);return(0,V.useEffect)(()=>{e==null||e.subscribe({range:p.current},R)},[e,R,t]),(0,V.useEffect)(()=>{console.log(`adjust range as rowCount chnaged ${a}`),f(a)},[f,a]),{data:v.current,getSelectedRows:x,range:p.current,setRange:T,dataSource:e}}var Mo=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new xe.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){var n;let[o]=t;if(this.isWithinRange(o)){let r=o-this.range.from;this.data[r]=t;let l=t[vt],s=(n=this.data[r-1])==null?void 0:n[vt];s===0&&l?this.data[r-1][vt]=2:s===2&&!l&&(this.data[r-1][vt]=0)}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[vt]===1)}};var wn=require("@vuu-ui/vuu-ui-controls"),Je=require("react"),Dn=({onDrop:e})=>{let t=(0,Je.useRef)(),o=(0,Je.useRef)(null),n=(0,Je.useCallback)(()=>{console.log("handleDropSettle"),t.current=void 0,o.current=null},[]),{draggable:r,draggedItemIndex:l,onMouseDown:s}=(0,wn.useDragDropNext)({allowDragDrop:!0,draggableClassName:"vuuTable-headerCell",orientation:"horizontal",containerRef:o,itemQuery:".vuuTable-headerCell",onDrop:e,onDropSettle:n}),i=(0,Je.useCallback)(a=>{let{clientX:c,clientY:u}=a;console.log("useDraggableColumn handleHeaderCellDragStart means mouseDown fired on a column in RowBasedTable");let p=a.target.closest(".vuuTable-headerCell");o.current=p==null?void 0:p.closest("[role='row']");let{dataset:{idx:C="-1"}}=p;t.current={clientX:c,clientY:u,idx:C},s==null||s(a)},[s]);return{draggable:r,draggedItemIndex:l,onHeaderCellDragStart:i}};var Hn=require("@vuu-ui/vuu-utils"),O=require("react");function Vl(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var Ro="ArrowUp",xo="ArrowDown",Po="ArrowLeft",Ho="ArrowRight";var Eo="Home",So="End",Ao="PageUp",Lo="PageDown";var $l=new Set(["Enter","Delete"," "]),Fl=new Set(["Tab"]),Ol=new Set(["ArrowRight","ArrowLeft"]),Mn=new Set([Eo,So,Ao,Lo,xo,Po,Ho,Ro]),Gl=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Aa=Vl($l,Mn,Ol,Gl,Fl);var Wl=["Home","End","PageUp","PageDown"],Rn=e=>Wl.includes(e),xn=e=>Mn.has(e);var Pn=e=>`.vuuTable-headers .vuuTable-headerCell:nth-child(${e+1})`,Bl=(e,t)=>`.vuuTable-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Ul=[-1,-1];function _l(e,[t,o],n,r){return e===Ro?t>-1?[t-1,o]:[t,o]:e===xo?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e===Ho?o<n-1?[t,o+1]:[t,o]:e===Po?o>0?[t,o-1]:[t,o]:[t,o]}var En=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,data:n,requestScroll:r,rowCount:l=0,viewportRange:s})=>{var M;let{from:i,to:a}=s,c=(0,O.useRef)([-1,-1]),u=(0,O.useRef)(),d=(0,O.useRef)([-1,0]),p=(0,O.useCallback)(([y,E])=>{var k;let H=y===-1?Pn(E):Bl(y,E);return(k=t.current)==null?void 0:k.querySelector(H)},[t]),C=y=>y==null?void 0:y.closest("[role='columnHeader'],[role='cell']"),v=y=>{var E,H;if(y.role==="columnHeader")return[-1,parseInt((E=y.dataset.idx)!=null?E:"-1",10)];{let k=y.closest("[role='row']");if(k){let J=parseInt((H=k.ariaRowIndex)!=null?H:"-1",10),me=Array.from(k.childNodes).indexOf(y);return[J,me]}}return Ul},h=(0,O.useCallback)(y=>{var E;if(t.current){let H=p(y);H?(H!==u.current&&((E=u.current)==null||E.setAttribute("tabindex",""),u.current=H,H.setAttribute("tabindex","0")),H.focus()):(0,Hn.withinRange)(y[0],s)||(u.current=void 0,r==null||r({type:"scroll-page",direction:"up"}))}},[t,p,r,s]),w=(0,O.useCallback)((y,E,H=!1)=>{let k=[y,E];d.current=k,h(k),H&&(c.current=k)},[h]),R=(0,O.useCallback)(()=>{var y;(y=u.current)==null||y.setAttribute("tabindex",""),u.current=void 0},[]),b=(0,O.useCallback)(async(y,E)=>{switch(y){case Lo:r==null||r({type:"scroll-page",direction:"down"});break;case Ao:r==null||r({type:"scroll-page",direction:"up"});break;case Eo:r==null||r({type:"scroll-end",direction:"home"});break;case So:r==null||r({type:"scroll-end",direction:"end"});break}return E},[r]),f=(0,O.useCallback)(()=>{var y;if(o!==!0&&(y=t.current)!=null&&y.contains(document.activeElement)){let E=C(document.activeElement);E&&(c.current=v(E))}},[o,t]),T=(0,O.useCallback)(async y=>{let[E,H]=Rn(y)?await b(y,d.current):_l(y,d.current,e,l),[k,J]=d.current;(E!==k||H!==J)&&w(E,H,!0)},[e,b,l,w]),x=(0,O.useCallback)(y=>{n.length>0&&xn(y.key)&&(y.preventDefault(),y.stopPropagation(),T(y.key))},[n,T]),m=(0,O.useCallback)(y=>{let E=y.target,H=C(E);if(H){let[k,J]=v(H);w(k,J)}},[w]),g=(0,O.useMemo)(()=>({onClick:m,onFocus:f,onKeyDown:x}),[m,f,x]);(0,O.useLayoutEffect)(()=>{let{current:y}=d,E=y[0]>=i&&y[0]<=a;u.current&&!E?R():!u.current&&E&&h(y)},[h,i,a,R]);let P=((M=t.current)==null?void 0:M.firstChild)!=null;return(0,O.useEffect)(()=>{var y;if(P&&u.current===void 0){let E=(y=t.current)==null?void 0:y.querySelector(Pn(0));E&&(E.setAttribute("tabindex","0"),u.current=E)}},[t,P]),g};var ge=require("@vuu-ui/vuu-utils"),Pe=require("react");var ze=require("react");var Ne=new Map,An=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}},Sn=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,l=Ne.get(o);if(l){let[{blockSize:s,inlineSize:i}]=n,[{blockSize:a,inlineSize:c}]=r,{onResize:u,measurements:d}=l,p=!1;for(let[C,v]of Object.entries(d)){let h=An(o,{height:s,width:i,contentHeight:a,contentWidth:c},C);h!==v&&(p=!0,d[C]=h)}p&&u&&u(d)}}});function Ln(e,t,o,n=!1){let r=(0,ze.useRef)(t),l=(0,ze.useCallback)(s=>{let{width:i,height:a}=s.getBoundingClientRect(),{clientWidth:c,clientHeight:u}=s;return r.current.reduce((d,p)=>(d[p]=An(s,{width:i,height:a,contentHeight:u,contentWidth:c},p),d),{})},[]);(0,ze.useEffect)(()=>{let s=e.current;async function i(){Ne.set(s,{measurements:{}}),await document.fonts.ready;let a=Ne.get(s);if(a){let c=l(s);a.measurements=c,Sn.observe(s),n&&o(c)}else console.log("%cuseResizeObserver an target expected to be under observation wa snot found. This warrants investigation","font-weight:bold; color:red;")}if(s){if(Ne.has(s))throw Error("useResizeObserver attemping to observe same element twice");i()}return()=>{s&&Ne.has(s)&&(Sn.unobserve(s),Ne.delete(s))}},[l,e]),(0,ze.useEffect)(()=>{let s=e.current,i=Ne.get(s);if(i){if(r.current!==t){r.current=t;let a=l(s);i.measurements=a}i.onResize=o}},[t,l,e,o])}var Jl=["clientHeight","clientWidth"],kn=e=>Number.isFinite(e),Xl={height:"100%",width:"100%"},Ql=(e,t)=>(0,ge.isValidNumber)(e)&&(0,ge.isValidNumber)(t)?{height:`${e}px`,width:`${t}px`}:Xl,Yl=(e,t)=>{if((0,ge.isValidNumber)(e)&&(0,ge.isValidNumber)(t))return{height:e,width:t}},ko=({defaultHeight:e=0,defaultWidth:t=0,height:o,width:n})=>{let r=(0,Pe.useRef)(null),[l,s]=(0,Pe.useState)({css:Ql(o,n),inner:Yl(o,n),outer:{height:o!=null?o:"100%",width:n!=null?n:"100%"}});(0,Pe.useMemo)(()=>{s(a=>{let{inner:c,outer:u}=a;if((0,ge.isValidNumber)(o)&&(0,ge.isValidNumber)(n)&&c&&u){let{height:d,width:p}=c,{height:C,width:v}=u;if(C!==o||v!==n){let h=(0,ge.isValidNumber)(C)?C-d:0,w=(0,ge.isValidNumber)(v)?v-p:0;return{...a,outer:{height:o,width:n},inner:{height:o-h,width:n-w}}}}return a})},[o,n]);let i=(0,Pe.useCallback)(({clientWidth:a,clientHeight:c})=>{s(u=>{let{css:d,inner:p,outer:C}=u;return kn(c)&&kn(a)&&(a!==(p==null?void 0:p.width)||c!==(p==null?void 0:p.height))?{css:d,outer:C,inner:{width:Math.floor(a)||t,height:Math.floor(c)||e}}:u})},[e,t]);return Ln(r,Jl,i,!0),{containerRef:r,cssSize:l.css,outerSize:l.outer,innerSize:l.inner}};var He=require("@vuu-ui/vuu-utils"),yt=require("react"),{IDX:Zl}=He.metadataKeys,jl=[],Tt=({selectionModel:e,onSelectionChange:t})=>{let o=(0,yt.useRef)(-1),n=(0,yt.useRef)(jl);return(0,yt.useCallback)((l,s,i)=>{let{[Zl]:a}=l,{current:c}=o,{current:u}=n,p=((0,He.isRowSelected)(l)?He.deselectItem:He.selectItem)(e,u,a,s,i,c);n.current=p,o.current=a,t&&t(p)},[t,e])};var S=require("@vuu-ui/vuu-utils"),Kn=require("react"),ql=100,Nn=S.metadataKeys.count,es=({serverDataType:e})=>e===void 0,ts=e=>{var t;if((0,S.isTypeDescriptor)(e.type))return(0,S.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},zn=(e,t)=>{if(e.serverDataType)return e.serverDataType;if(t){let o=t.columns.find(n=>n.name===e.name);if(o)return o.serverDataType}return"string"},os=e=>e.type==="columnSettings",ns=e=>e.type==="tableSettings",rs=(e,t)=>{switch(t.type){case"init":return In(t);case"moveColumn":return ss(e,t);case"resizeColumn":return cs(e,t);case"setTableSchema":return us(e,t);case"hideColumns":return is(e,t);case"showColumns":return as(e,t);case"pinColumn":return ms(e,t);case"updateColumnProp":return Xe(e,t);case"tableConfig":return Vn(e,t);default:return console.log(`unhandled action ${t.type}`),e}},Ko=(e,t)=>{let[o,n]=(0,Kn.useReducer)(rs,{tableConfig:e,dataSourceConfig:t},In);return{columns:o.columns,dispatchColumnAction:n,headings:o.headings}};function In({dataSourceConfig:e,tableConfig:t}){let o=t.columns.map(No(t)),n=o.some(S.isPinned)?(0,S.sortPinnedColumns)(o):o,r={columns:n,headings:(0,S.getTableHeadings)(n)};if(e){let{columns:l,...s}=e;return Vn(r,{type:"tableConfig",...s})}else return r}var ls=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,No=e=>(t,o)=>{let n=zn(t,e.tableSchema),{columnDefaultWidth:r=ql,columnFormatHeader:l}=e,{align:s=(0,S.getDefaultAlignment)(n),key:i,name:a,label:c=a,width:u=r,...d}=t,p={...d,align:s,CellRenderer:ts(t),label:ls(c,l),key:i!=null?i:o+Nn,name:a,originalIdx:o,serverDataType:n,valueFormatter:(0,S.getValueFormatter)(t),width:u};return(0,S.isGroupColumn)(p)&&(p.columns=p.columns.map(C=>No(e)(C,C.key))),p};function ss(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number")return{...e,columns:(0,S.moveItemDeprecated)(r,t,n)};return e}function is(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?Xe(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function as(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?Xe(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function cs(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return Xe(e,{type:r,column:t,resizing:l});case"end":return Xe(e,{type:r,column:t,resizing:l,width:n});case"resize":return Xe(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function us(e,{tableSchema:t}){let{columns:o}=e;if(o.some(es)){let n=o.map(r=>{var s;let l=zn(r,t);return{...r,align:(s=r.align)!=null?s:(0,S.getDefaultAlignment)(l),serverDataType:l}});return{...e,columns:n,tableSchema:t}}else return{...e,tableSchema:t}}function ms(e,t){let{columns:o}=e,{column:n,pin:r}=t;return o=(0,S.updateColumn)(o,n.name,{pin:r}),o=(0,S.sortPinnedColumns)(o),console.log({withPins:o}),{...e,columns:o}}function Xe(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c={};return(n==="left"||n==="right")&&(c.align=n),typeof s=="string"&&(c.label=s),typeof i=="boolean"&&(c.resizing=i),typeof l=="boolean"&&(c.hidden=l),typeof a=="number"&&(c.width=a),o=(0,S.updateColumn)(o,r.name,c),{...e,columns:o}}function Vn(e,{columns:t,confirmed:o,filter:n,groupBy:r,sort:l}){let s=t&&t.length>0,i=r!==void 0,a=typeof(n==null?void 0:n.filter)=="string",c=l&&l.sortDefs.length>0,u=e;return s&&(u={...e,columns:t.map((d,p)=>{let C=(0,S.getColumnName)(d),v=p+Nn,h=(0,S.findColumn)(u.columns,C);return h?h.key===v?h:{...h,key:v}:No(e)({name:d},p)})}),i&&(u={...e,columns:(0,S.applyGroupByToColumns)(u.columns,r,o)}),c&&(u={...e,columns:(0,S.applySortToColumns)(u.columns,l)}),a?u={...e,columns:(0,S.applyFilterToColumns)(u.columns,n)}:u.columns.some(S.isFilteredColumn)&&(u={...e,columns:(0,S.stripFilterFromColumns)(u.columns)}),u}var X=require("react"),$n=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},ps=e=>{let{clientHeight:t,clientWidth:o,scrollHeight:n,scrollWidth:r}=e;return[r-o,n-t]},Fn=({onAttach:e,onDetach:t})=>{let o=(0,X.useRef)(null);return(0,X.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},On=({onHorizontalScroll:e,onVerticalScroll:t,viewport:o})=>{let n=(0,X.useRef)(!1),r=(0,X.useRef)({scrollTop:0,scrollLeft:0}),l=(0,X.useRef)(null),s=(0,X.useRef)(null),{maxScrollContainerScrollHorizontal:i,maxScrollContainerScrollVertical:a}=o,c=(0,X.useCallback)(()=>{let{current:b}=s,{current:f}=l,{current:T}=n;if(T)n.current=!1;else if(b&&f){let[x,m]=$n(f),[g,P]=ps(b),M=Math.round(x*g),y=Math.round(m*P);console.log(`pctScrollTop ${m}, maxScrollTop ${P} rootScrollTop ${y}`),b.scrollTo({left:M,top:y,behavior:"auto"})}},[]),u=(0,X.useCallback)(()=>{let{current:b}=s,{current:f}=l,{current:T}=r;if(b&&f){let{scrollLeft:x,scrollTop:m}=b,[g,P]=$n(b);n.current=!0,f.scrollLeft=Math.round(g*i),f.scrollTop=Math.round(P*a),T.scrollTop!==m&&(T.scrollTop=m,t==null||t(m,P)),T.scrollLeft!==x&&(T.scrollLeft=x,e==null||e(x))}},[i,a,e,t]),d=(0,X.useCallback)(b=>{l.current=b,b.addEventListener("scroll",c,{passive:!0})},[c]),p=(0,X.useCallback)(b=>{l.current=null,b.removeEventListener("scroll",c)},[c]),C=(0,X.useCallback)(b=>{s.current=b,b.addEventListener("scroll",u,{passive:!0})},[u]),v=(0,X.useCallback)(b=>{s.current=null,b.removeEventListener("scroll",u)},[u]),h=Fn({onAttach:C,onDetach:v}),w=Fn({onAttach:d,onDetach:p}),R=(0,X.useCallback)(b=>{let{current:f}=s;if(f){if(n.current=!1,b.type==="scroll-page"){let{clientHeight:T,scrollLeft:x,scrollTop:m}=f,{direction:g}=b,P=g==="down"?T:-T,M=Math.min(Math.max(0,m+P),a);f.scrollTo({top:M,left:x,behavior:"auto"})}else if(b.type==="scroll-end"){let{direction:T}=b,x=T==="end"?a:0;f.scrollTo({top:x,left:f.scrollLeft,behavior:"auto"})}}},[a]);return{scrollbarContainerRef:w,contentContainerRef:h,requestScroll:R}};var he=require("react"),Gt=require("@vuu-ui/vuu-utils"),ds=15e5,fs={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},Cs=e=>{let t=0,o=0,n=0;for(let r of e){let{hidden:l,pin:s,width:i}=r,a=l?0:i;s==="left"?t+=a:s==="right"?o+=a:n+=a}return{pinnedWidthLeft:t+4,pinnedWidthRight:o+4,unpinnedWidth:n}},wt=({columns:e,headerHeight:t,headings:o,rowCount:n,rowHeight:r,size:l})=>{let s=(0,he.useRef)(0),a=Math.min(n,ds)*r,u=n*r-a,{pinnedWidthLeft:d,pinnedWidthRight:p,unpinnedWidth:C}=(0,he.useMemo)(()=>Cs(e),[e]),[v,h]=(0,he.useMemo)(()=>(0,Gt.actualRowPositioning)(r),[r]),[w,R]=(0,he.useMemo)(()=>u?(0,Gt.virtualRowPositioning)(r,u,s):[v,h],[h,v,u,r]),b=(0,he.useCallback)(f=>{s.current=f},[]);return(0,he.useMemo)(()=>{var f;if(l){let T=o.length,x=15,m=d+C+p,g=m>l.width?x:0,P=t*(1+T),M=a-(((f=l==null?void 0:l.height)!=null?f:0)-g)+P,y=m-l.width+d,E=(l.height-t)/r,H=Number.isInteger(E)?E+1:Math.ceil(E),k=l.height-P,J=a>k?x:0;return{contentHeight:a,getRowAtPosition:R,getRowOffset:w,horizontalScrollbarHeight:g,maxScrollContainerScrollHorizontal:y,maxScrollContainerScrollVertical:M,pinnedWidthLeft:d,pinnedWidthRight:p,rowCount:H,contentWidth:m,setPctScrollTop:b,totalHeaderHeight:P,verticalScrollbarWidth:J,viewportBodyHeight:k}}else return fs},[l,o.length,d,C,p,a,t,r,R,w,b])};var Dt=require("@vuu-ui/vuu-utils"),q=require("react"),Gn=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,q.useRef)(-1),{rowCount:l,contentWidth:s,maxScrollContainerScrollHorizontal:i}=n,a=s-i,c=(0,q.useRef)(0),[u,d]=(0,q.useMemo)(()=>(0,Dt.getColumnsInViewport)(e,c.current,c.current+a),[a,e]),p=(0,q.useRef)(d);(0,q.useEffect)(()=>{v(u)},[u]);let[C,v]=(0,q.useState)(u),h=(0,q.useCallback)(R=>{c.current=R;let[b,f]=(0,Dt.getColumnsInViewport)(e,R,R+a);(0,Dt.itemsChanged)(C,b)&&(p.current=f,v(b))},[a,e,C]),w=(0,q.useCallback)(R=>{let b=t(R);b!==r.current&&(r.current=b,console.log("setRange from handleVerticalScroll"),o({from:b,to:b+l}))},[t,o,l]);return{columnsWithinViewport:C,onHorizontalScroll:h,onVerticalScroll:w,virtualColSpan:p.current}};var bs=[],{KEY:gs,IS_EXPANDED:Wn,IS_LEAF:Bn}=de.metadataKeys,_n=({config:e,dataSource:t,headerHeight:o,onConfigChange:n,onFeatureEnabled:r,onFeatureInvocation:l,onSelectionChange:s,renderBufferSize:i=0,rowHeight:a,selectionModel:c,...u})=>{var ct,It;let[d,p]=(0,I.useState)(t.size),C=(0,I.useRef)(!1),v=(0,I.useRef)();if(v.current=t,t===void 0)throw Error("no data source provided to Vuu Table");let h=ko(u),w=(0,I.useCallback)(L=>{p(L)},[]),{columns:R,dispatchColumnAction:b,headings:f}=Ko(e,t.config),{getRowAtPosition:T,getRowOffset:x,setPctScrollTop:m,...g}=wt({columns:R,headerHeight:o,headings:f,rowCount:d,rowHeight:a,size:h.innerSize});console.log(`rowCount from viewportMeasurements ${g.rowCount}`);let P=(0,I.useCallback)(({tableSchema:L})=>{L?(C.current=!0,b({type:"setTableSchema",tableSchema:L})):console.log("usbscription message with no schema")},[b]),M=(0,I.useCallback)(L=>{t.select(L),s==null||s(L)},[t,s]),y=Tt({onSelectionChange:M,selectionModel:c}),{data:E,getSelectedRows:H,range:k,setRange:J}=Tn({dataSource:t,onFeatureEnabled:r,onFeatureInvocation:l,onSubscribed:P,onSizeChange:w,renderBufferSize:i,viewportRowCount:g.rowCount}),me=(0,I.useRef)();me.current=E;let At=(0,I.useCallback)(L=>{C.current=!0,console.log("onPersistentColumnOperation, dispatchColumnAction",{action:L}),b(L)},[b]),Lt=dt({dataSource:t,onPersistentColumnOperation:At}),te=(0,I.useCallback)((L,$=!1,Z)=>{t&&(t.sort=(0,de.applySort)(t.sort,L,$,Z))},[t]),Te=(0,I.useCallback)((L,$,Z)=>{let F=R.find(se=>se.name===$);if(F)L==="end"&&(C.current=!0),b({type:"resizeColumn",phase:L,column:F,width:Z});else throw Error(`useDataTable.handleColumnResize, column ${$} not found`)},[R,b]),oe=(0,I.useCallback)((L,$)=>{let Z=(0,de.isJsonGroup)($,L),F=L[gs];if(L[Wn]){if(t.closeTreeNode(F,!0),Z){let se=R.indexOf($);t.getRowsAtDepth(se+1).some(ie=>ie[Wn]||ie[Bn])||b({type:"hideColumns",columns:R.slice(se+2)})}}else if(t.openTreeNode(F),Z){let se=t.getChildRows(F),pe=R.indexOf($)+1,ie=[R[pe]];se.some(De=>De[Bn])&&ie.push(R[pe+1]),ie.some(De=>De.hidden)&&b({type:"showColumns",columns:ie})}},[R,t,b]),{onVerticalScroll:Ae,onHorizontalScroll:it,columnsWithinViewport:at,virtualColSpan:Y}=Gn({columns:R,getRowAtPosition:T,setRange:J,viewportMeasurements:g}),we=(0,I.useCallback)((L,$)=>{m($),Ae(L)},[Ae,m]),{requestScroll:ro,...kt}=On({onHorizontalScroll:it,onVerticalScroll:we,viewport:g,viewportHeight:((It=(ct=h.innerSize)==null?void 0:ct.height)!=null?It:0)-o}),Kt=En({columnCount:R.length,containerRef:h.containerRef,data:E,requestScroll:ro,rowCount:t==null?void 0:t.size,viewportRange:k}),lo=(0,I.useCallback)(L=>{L?t&&t.groupBy.includes(L.name)&&(t.groupBy=t.groupBy.filter($=>$!==L.name)):t.groupBy=[]},[t]),so=(0,I.useCallback)((L,$)=>{let Z=t.columns[L],F=(0,de.moveItemDeprecated)(t.columns,Z,$);F!==t.columns&&(t.columns=F,b({type:"tableConfig",columns:F}))},[t,b]),Nt=Dn({onDrop:so});(0,I.useEffect)(()=>{v.current&&(C.current=!0,b({type:"init",tableConfig:e,dataSourceConfig:v.current.config}))},[e,b]),(0,I.useEffect)(()=>{t.on("config",(L,$)=>{C.current=!0,b({type:"tableConfig",...L,confirmed:$})})},[t,b]),(0,I.useMemo)(()=>{C.current&&(n==null||n({...e,columns:R}),C.current=!1)},[R,e,n]);let[zt]=(0,Un.useContextMenu)(),io=(0,I.useCallback)(L=>{var ie;let{current:$}=me,{current:Z}=v,F=L.target,se=F==null?void 0:F.closest("div[role='cell']"),pe=F==null?void 0:F.closest(".vuuTableRow");if(se&&pe&&$&&Z){let{columns:De,selectedRowsCount:ao}=Z,co=(0,de.buildColumnMap)(De),uo=parseInt((ie=pe.ariaRowIndex)!=null?ie:"-1"),Vt=Array.from(pe.childNodes).indexOf(se),mo=$.find(([fo])=>fo===uo),po=De[Vt];zt(L,"grid",{columnMap:co,columnName:po,row:mo,selectedRows:ao===0?bs:H(),viewport:t==null?void 0:t.viewport})}},[t==null?void 0:t.viewport,H,zt]);return{columns:R,columnsWithinViewport:at,containerMeasurements:h,containerProps:Kt,data:E,dispatchColumnAction:b,getRowOffset:x,handleContextMenuAction:Lt,headings:f,onColumnResize:Te,onContextMenu:io,onRemoveColumnFromGroupBy:lo,onRowClick:y,onSort:te,onToggleGroup:oe,virtualColSpan:Y,scrollProps:kt,rowCount:d,viewportMeasurements:g,...Nt}};var Xn=G(require("classnames"));var Qn=require("@vuu-ui/vuu-utils"),ve=require("react/jsx-runtime"),Ie="vuuTable",hs=({allowConfigEditing:e=!1,className:t,config:o,dataSource:n,headerHeight:r=25,height:l,id:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,onShowConfigEditor:d,renderBufferSize:p=0,rowHeight:C=20,selectionModel:v="extended",style:h,width:w,...R})=>{let b=(0,Wt.useIdMemo)(s),{containerMeasurements:{containerRef:f,innerSize:T,outerSize:x},containerProps:m,dispatchColumnAction:g,draggable:P,draggedItemIndex:M,handleContextMenuAction:y,scrollProps:E,viewportMeasurements:H,...k}=_n({config:o,dataSource:n,renderBufferSize:p,headerHeight:r,height:l,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onSelectionChange:u,rowHeight:C,selectionModel:v,width:w}),J={...x,"--content-height":`${H.contentHeight}px`,"--horizontal-scrollbar-height":`${H.horizontalScrollbarHeight}px`,"--content-width":`${H.contentWidth}px`,"--pinned-width-left":`${H.pinnedWidthLeft}px`,"--pinned-width-right":`${H.pinnedWidthRight}px`,"--header-height":`${r}px`,"--row-height":`${C}px`,"--table-height":`${T==null?void 0:T.height}px`,"--table-width":`${T==null?void 0:T.width}px`,"--total-header-height":`${H.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${H.verticalScrollbarWidth}px`,"--viewport-body-height":`${H.viewportBodyHeight}px`},me=(0,Xn.default)(Ie,t,{[`${Ie}-zebra`]:o.zebraStripes,[`${Ie}-loading`]:(0,Qn.isDataLoading)(k.columns)});return(0,ve.jsx)(Jn.ContextMenuProvider,{menuActionHandler:y,menuBuilder:pt(n),children:(0,ve.jsxs)("div",{...R,...m,className:me,id:b,ref:f,style:J,tabIndex:-1,children:[T?(0,ve.jsx)("div",{className:`${Ie}-scrollbarContainer`,ref:E.scrollbarContainerRef,children:(0,ve.jsx)("div",{className:`${Ie}-scrollbarContent`})}):null,T?(0,ve.jsxs)("div",{className:`${Ie}-contentContainer`,ref:E.contentContainerRef,children:[(0,ve.jsx)(yn,{...k,headerHeight:r,tableId:b}),P]}):null,e&&T?(0,ve.jsx)(Wt.Button,{className:`${Ie}-settings`,"data-icon":"settings",onClick:d,variant:"secondary"}):null]})})};var Yn=G(require("classnames")),Ye=require("@vuu-ui/vuu-utils");var Qe=require("react/jsx-runtime"),Mt="vuuJsonCell",{IS_EXPANDED:vs,KEY:ys}=Ye.metadataKeys,Ts=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},ws=({column:e,row:t})=>{let{key:o}=e,n=t[o],r=!1;(0,Ye.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let l=Ts(t[ys]),s=(0,Yn.default)({[`${Mt}-name`]:l===n,[`${Mt}-value`]:l!==n,[`${Mt}-group`]:r});if(r){let i=t[vs]?"minus-box":"plus-box";return(0,Qe.jsxs)("span",{className:s,children:[(0,Qe.jsx)("span",{className:`${Mt}-value`,children:n}),(0,Qe.jsx)("span",{className:`${Mt}-toggle`,"data-icon":i})]})}else return n?(0,Qe.jsx)("span",{className:s,children:n}):null};(0,Ye.registerComponent)("json",ws,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var Ms=G(require("classnames")),Rs=require("react");var Ze=require("react");var jn=require("react/jsx-runtime"),Zn=()=>{},Ds="vuuColumnResizerNext",Rt=({onDrag:e,onDragEnd:t=Zn,onDragStart:o=Zn})=>{let n=(0,Ze.useRef)(0),r=(0,Ze.useCallback)(i=>{i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault();let a=Math.round(i.clientX),c=a-n.current;n.current=a,c!==0&&e(i,c)},[e]),l=(0,Ze.useCallback)(i=>{window.removeEventListener("mouseup",l),window.removeEventListener("mousemove",r),t(i)},[t,r]),s=(0,Ze.useCallback)(i=>{o(i),n.current=Math.round(i.clientX),window.addEventListener("mouseup",l),window.addEventListener("mousemove",r),i.stopPropagation&&i.stopPropagation(),i.preventDefault&&i.preventDefault()},[o,r,l]);return(0,jn.jsx)("div",{className:Ds,onMouseDown:s})};var Ee=require("react"),xt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Ee.useRef)(0),[r,l]=(0,Ee.useState)(!1),{name:s}=e,i=(0,Ee.useCallback)(()=>{if(console.log("onResizeStart"),t&&o.current){console.log("handleResizeStart");let{width:u}=o.current.getBoundingClientRect();n.current=Math.round(u),l(!0),t==null||t("begin",s)}},[s,t,o]),a=(0,Ee.useCallback)((u,d)=>{if(o.current&&t){let{width:p}=o.current.getBoundingClientRect(),C=Math.round(p)+d;C!==n.current&&C>0&&(t("resize",s,C),n.current=C)}},[s,t,o]),c=(0,Ee.useCallback)(()=>{t&&(t("end",s,n.current),setTimeout(()=>{l(!1)},80))},[s,t]);return{isResizing:r,onDrag:a,onDragStart:i,onDragEnd:c}};var qn=require("@vuu-ui/vuu-utils"),er=G(require("classnames")),tr=require("react"),ye=(e,t,o)=>(0,tr.useMemo)(()=>{let n=(0,er.default)(t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:o&&e.endPin,[`${t}-editable`]:e.editable,[`${t}-right`]:e.align==="right"}),r=(0,qn.getColumnStyle)(e);return{className:n,style:r}},[e,t,o]);var nr=G(require("classnames")),rr=require("react");var Bt=require("react/jsx-runtime"),or="vuuColumnHeaderPill",Ve=({children:e,className:t,column:o,onRemove:n,removable:r,...l})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let s=(0,rr.useCallback)(i=>{i.preventDefault(),i.stopPropagation(),n==null||n(o)},[o,n]);return(0,Bt.jsxs)("div",{...l,className:(0,nr.default)(or,t),children:[e,r?(0,Bt.jsx)("span",{className:`${or}-removeButton`,role:"button","data-icon":"cross",onClick:s}):null]})};var je=require("react/jsx-runtime"),zo=({column:e,...t})=>{let{name:o,sorted:n}=e,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,je.jsxs)(Ve,{...t,column:e,children:[(0,je.jsx)("span",{className:"vuuGroupColumnPill-label",children:o}),r!==void 0?(0,je.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,je.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var Pt=require("react/jsx-runtime"),lr=({column:e})=>{if(!e.sorted)return null;let t=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,Pt.jsxs)(Ve,{column:e,children:[(0,Pt.jsx)("span",{"data-icon":t}),typeof e.sorted=="number"?(0,Pt.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var sr=require("react/jsx-runtime"),xs=require("react");var ir=G(require("classnames")),et=require("react");var Ut=require("@vuu-ui/vuu-layout");var qe=require("react/jsx-runtime"),ar=require("react"),Io="vuuTableNextGroupHeaderCell",Ps=(e,t)=>e===t?e:t,Ht=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let l=(0,et.useRef)(null),{isResizing:s,...i}=xt({column:e,onResize:n,rootRef:l}),[a,c]=(0,et.useState)(e.columns),{className:u,style:d}=ye(e,Io,!0),p=a.length>1?{removable:!0,onRemove:o}:void 0,C=(0,et.useCallback)((v,h)=>{c(w=>{let R=w.slice(),[b]=R.splice(v,1);return h===-1?R.concat(b):(R.splice(h,0,b),R)})},[]);return(0,Ut.useLayoutEffectSkipFirst)(()=>{c(v=>Ps(v,e.columns))},[e.columns]),(0,qe.jsxs)("div",{...r,className:(0,ir.default)(u,"vuuTableNextHeaderCell",t,{[`${Io}-pending`]:e.groupConfirmed===!1}),ref:l,role:"columnheader",style:d,children:[(0,qe.jsx)(Ut.OverflowContainer,{allowDragDrop:!0,className:`${Io}-inner`,height:24,onMoveItem:C,overflowPosition:"start",children:a.map(v=>(0,ar.createElement)(zo,{...p,column:v,key:v.key}))}),(0,qe.jsx)(Ve,{column:e,removable:!0,onRemove:o}),e.resizeable!==!1?(0,qe.jsx)(Rt,{...i}):null]})};var _t=require("react");var cr=require("@vuu-ui/vuu-popups"),ur=G(require("classnames")),$e=require("react");var pr=require("react/jsx-runtime"),Hs=e=>{if(e){let{bottom:t,left:o}=e.getBoundingClientRect();return{x:o,y:t+6}}},mr=({className:e,column:t,...o})=>{let n=(0,$e.useRef)(null),[r,l]=(0,$e.useState)(!1),[s]=(0,cr.useContextMenu)(),i=(0,$e.useCallback)(()=>{l(!1)},[]),a=(0,$e.useCallback)(c=>{l(!0),s(c,"column-menu",{column:t,ContextMenuProps:{className:"vuuColumnMenuList",onClose:i,position:Hs(n.current)}})},[t,i,s]);return(0,pr.jsx)("span",{...o,className:(0,ur.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var dr=G(require("classnames"));var Fe=require("react/jsx-runtime"),Vo="vuuTableNextHeaderCell",fr=({className:e,column:t,onClick:o,onResize:n,...r})=>{var h;let l=(0,_t.useRef)(null),{isResizing:s,...i}=xt({column:t,onResize:n,rootRef:l}),a=(0,_t.useCallback)(w=>{console.log(`click isResizing ${s}`),!s&&(o==null||o(w))},[s,o]),{className:c,style:u}=ye(t,Vo,!0),d=(0,Fe.jsx)(mr,{column:t}),p=(0,Fe.jsx)("div",{className:`${Vo}-label`,children:(h=t.label)!=null?h:t.name}),C=(0,Fe.jsx)(lr,{column:t}),v=t.align==="right"?[C,p,d]:[d,p,C];return(0,Fe.jsxs)("div",{...r,className:(0,dr.default)(c,e,{[`${Vo}-resizing`]:s}),onClick:a,ref:l,role:"columnheader",style:u,children:[...v,t.resizeable!==!1?(0,Fe.jsx)(Rt,{...i}):null]})};var qr=require("@vuu-ui/vuu-popups"),lt=require("@vuu-ui/vuu-utils"),Uo=G(require("classnames")),el=require("react");var ee=require("@vuu-ui/vuu-utils"),Tr=G(require("classnames")),Et=require("react");var Cr=require("@vuu-ui/vuu-utils"),br=require("react");var $o=require("react/jsx-runtime"),{IDX:Es}=Cr.metadataKeys,Ss="vuuTableNextCell",gr=({column:e,columnMap:t,onDataEdited:o,row:n})=>{let{className:r,style:l}=ye(e,Ss),{CellRenderer:s,name:i,valueFormatter:a}=e,c=t[i],u=(0,br.useCallback)(d=>(o==null||o(n[Es],i,d),!0),[i,o,n]);return(0,$o.jsx)("div",{className:r,role:"cell",style:l,children:s?(0,$o.jsx)(s,{column:e,columnMap:t,onCommit:u,row:n}):a(n[c])})};var Jt=require("@vuu-ui/vuu-utils"),hr=require("react");var vr=G(require("classnames"));var tt=require("react/jsx-runtime"),{IS_LEAF:As}=Jt.metadataKeys,Fo="vuuTableNextGroupCell",yr=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,l]=(0,Jt.getGroupValueAndOffset)(n,o),{className:s,style:i}=ye(e,Fo),a=(0,hr.useCallback)(d=>{t==null||t(d,e)},[e,t]),c=o[As],u=Array(l).fill(0).map((d,p)=>(0,tt.jsx)("span",{className:`${Fo}-spacer`},p));return(0,tt.jsxs)("div",{className:(0,vr.default)(s,"vuuTableNextCell"),role:"cell",style:i,onClick:c?void 0:a,children:[u,c?null:(0,tt.jsx)("span",{className:`${Fo}-toggle`,"data-icon":"triangle-right"}),(0,tt.jsx)("span",{children:r})]})};var Xt=require("react/jsx-runtime"),wr=require("react"),{IDX:Ls,IS_EXPANDED:ks,SELECTED:Ks}=ee.metadataKeys,Se="vuuTableNextRow",Oo=(0,Et.memo)(({className:e,columnMap:t,columns:o,row:n,offset:r,onClick:l,onDataEdited:s,onToggleGroup:i,zebraStripes:a=!1,...c})=>{let{[Ls]:u,[ks]:d,[Ks]:p}=n,C=(0,Et.useCallback)(T=>{let x=T.shiftKey,m=T.ctrlKey||T.metaKey;l==null||l(n,x,m)},[l,n]),{True:v,First:h,Last:w}=ee.RowSelected,R=(0,Tr.default)(Se,e,{[`${Se}-even`]:a&&u%2===0,[`${Se}-expanded`]:d,[`${Se}-selected`]:p&v,[`${Se}-selectedStart`]:p&h,[`${Se}-selectedEnd`]:p&w}),b={transform:`translate3d(0px, ${r}px, 0px)`},f=(0,Et.useCallback)((T,x)=>{((0,ee.isGroupColumn)(x)||(0,ee.isJsonGroup)(x,n))&&(T.stopPropagation(),i==null||i(n,x))},[i,n]);return(0,wr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:R,onClick:C,style:b},(0,Xt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyLeft`}),o.filter(ee.notHidden).map(T=>{let x=(0,ee.isGroupColumn)(T),m=(0,ee.isJsonColumn)(T);return(0,Xt.jsx)(x?yr:gr,{column:T,columnMap:t,onClick:x||m?f:void 0,onDataEdited:s,row:n},T.key)}),(0,Xt.jsx)("span",{className:`${Se}-selectionDecorator vuuStickyRight`}))});Oo.displayName="Row";var Qr=require("@vuu-ui/vuu-layout"),Yr=require("@vuu-ui/vuu-table-extras"),Zr=require("@vuu-ui/vuu-ui-controls");var B=require("react");var Go=e=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${e})`,Wo=(e,t)=>`.vuuTableNext-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Dr=(e,[t,o])=>{var l;let n=t===-1?Go(o):Wo(t,o),r=(l=e.current)==null?void 0:l.querySelector(n);return Ns(r)&&r.querySelector("button")||r},Ns=e=>e.classList.contains("vuuTableNextCell-editable"),Mr=e=>e.querySelector(".vuuTableInputCell")!==null;var zs=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),Is=e=>zs.has(e),Vs=["Home","End","PageUp","PageDown"],$s=e=>Vs.includes(e),Fs=[-1,-1],Os=[void 0,void 0],Gs=e=>{var o,n;let t=(o=e.closest(".vuuTableNext"))==null?void 0:o.querySelector(".vuuTableNext-scrollbarContainer");if(t){let r=t==null?void 0:t.getBoundingClientRect(),l=(n=e.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(l)return l.bottom>r.bottom?["down",l.bottom-r.bottom]:l.top<r.top?["up",l.top-r.top]:l.right<r.right?["right",l.right-r.right]:l.left<r.left?["left",l.left-r.left]:Os;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function Ws(e,[t,o],n,r){return e==="ArrowUp"?t>-1?[t-1,o]:[t,o]:e==="ArrowDown"?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e==="ArrowRight"?o<n-1?[t,o+1]:[t,o]:e==="ArrowLeft"?o>1?[t,o-1]:[t,o]:[t,o]}var Rr=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,requestScroll:n,rowCount:r=0,viewportRowCount:l})=>{var x;let s=(0,B.useRef)([-1,-1]),i=(0,B.useRef)(),a=(0,B.useRef)([-1,0]),c=m=>m==null?void 0:m.closest("[role='columnHeader'],[role='cell']"),u=m=>{var g,P;if(m.role==="columnHeader")return[-1,parseInt((g=m.dataset.idx)!=null?g:"-1",10)];{let M=m.closest("[role='row']");if(M){let y=parseInt((P=M.ariaRowIndex)!=null?P:"-1",10),E=Array.from(M.childNodes).indexOf(m);return[y,E]}}return Fs},d=(0,B.useCallback)(m=>{var g;if(t.current){let P=Dr(t,m);if(P){P!==i.current&&((g=i.current)==null||g.removeAttribute("tabindex"),i.current=P,P.setAttribute("tabindex","0"));let[M,y]=Gs(P);M&&y&&(n==null||n({type:"scroll-distance",distance:y,direction:M})),P.focus()}}},[t,n]),p=(0,B.useCallback)((m,g,P=!1)=>{let M=[m,g];a.current=M,d(M),P&&(s.current=M)},[d]),C=(0,B.useCallback)((m,[g,P])=>new Promise(M=>{let y=g;switch(m){case"PageDown":y=Math.min(r-1,g+l),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":y=Math.max(0,g-l),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":y=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":y=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{M([y,P])},90)}),[n,r,l]),v=(0,B.useCallback)(()=>{var m;if(o!==!0&&(m=t.current)!=null&&m.contains(document.activeElement)){let g=c(document.activeElement);g&&(console.log({focusedCell:g}),s.current=u(g))}},[o,t]),h=(0,B.useCallback)(async m=>{console.log(`navigate child items ${m}`);let[g,P]=$s(m)?await C(m,a.current):Ws(m,a.current,e,r);console.log(`nextRowIdx ${g} nextColIdx ${P}`);let[M,y]=a.current;(g!==M||P!==y)&&p(g,P,!0)},[e,C,r,p]),w=(0,B.useCallback)(m=>{r>0&&Is(m.key)&&(m.preventDefault(),m.stopPropagation(),h(m.key))},[r,h]),R=(0,B.useCallback)(m=>{let g=m.target,P=c(g);if(P){let[M,y]=u(P);p(M,y)}},[p]),b=(0,B.useCallback)(()=>{h("ArrowDown")},[h]),f=(0,B.useMemo)(()=>({navigate:b,onClick:R,onFocus:v,onKeyDown:w}),[R,v,w,b]),T=((x=t.current)==null?void 0:x.firstChild)!=null;return(0,B.useEffect)(()=>{if(T&&i.current===void 0){let{current:m}=t,g=(m==null?void 0:m.querySelector(Go(0)))||(m==null?void 0:m.querySelector(Wo(0,0)));g&&(g.setAttribute("tabindex","0"),i.current=g)}},[t,T]),f};var U=require("@vuu-ui/vuu-utils"),K=require("react");var Qt=(e,t)=>{switch(t.type){case"col-size":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,width:t.width}:o)};case"column-prop":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,[t.property]:t.value}:o)};default:return e}};var jt=require("@vuu-ui/vuu-data-react/src"),Oe=require("@vuu-ui/vuu-utils"),_=require("react");var Zt=require("@vuu-ui/vuu-utils"),{SELECTED:Bs}=Zt.metadataKeys,Yt=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new Zt.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){let[o]=t;if(this.isWithinRange(o)){let n=o-this.range.from;this.data[n]=t}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),l=new Array(Math.max(0,o-t));for(let s=n;s<r;s++){let i=this.getAtIndex(s);if(i){let a=s-t;l[a]=i}}this.data=l,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[Bs]===1)}};var xr=({dataSource:e,onFeatureEnabled:t,onFeatureInvocation:o,onSizeChange:n,onSubscribed:r,range:l=Oe.NULL_RANGE,renderBufferSize:s=0})=>{let[,i]=(0,_.useState)(null),a=(0,_.useRef)([]),c=(0,_.useRef)(!0),u=(0,_.useRef)(!1),d=(0,_.useRef)(Oe.NULL_RANGE),p=(0,_.useMemo)(()=>new Yt((0,Oe.getFullRange)(l,s)),[]),C=(0,_.useCallback)(w=>{for(let R of w)p.add(R);a.current=p.data,c.current&&i({})},[p]),v=(0,_.useCallback)(w=>{w.type==="subscribed"?r==null||r(w):w.type==="viewport-update"?(typeof w.size=="number"&&(n==null||n(w.size),p.setRowCount(w.size)),w.rows?C(w.rows):typeof w.size=="number"&&(a.current=p.data,u.current=!0)):(0,jt.isVuuFeatureAction)(w)?t==null||t(w):(0,jt.isVuuFeatureInvocation)(w)?o==null||o(w):console.log(`useDataSource unexpected message ${w.type}`)},[p,t,o,n,r,C]);(0,_.useEffect)(()=>()=>{c.current=!0,c.current=!1},[]),(0,_.useEffect)(()=>{e==null||e.subscribe({range:(0,Oe.getFullRange)(l,s)},v)},[e,v,l,s]);let h=(0,_.useCallback)(w=>{let R=(0,Oe.getFullRange)(w,s);p.setRange(R),e.range=d.current=R,e.emit("range",w)},[e,p,s]);return{data:a.current,range:d.current,setRange:h}};var qt=require("react"),Pr=e=>{let t=(0,qt.useRef)(e);return(0,qt.useMemo)(()=>t.current,[])};var Hr=require("@vuu-ui/vuu-utils"),Er=require("react"),Sr=require("@vuu-ui/vuu-popups"),Ar=({columns:e,data:t})=>{let[o]=(0,Sr.useContextMenu)();return(0,Er.useCallback)(r=>{var a;let l=r.target,s=l==null?void 0:l.closest("div[role='cell']"),i=l==null?void 0:l.closest("div[role='row']");if(s&&i){let c=(0,Hr.buildColumnMap)(e),u=parseInt((a=i.ariaRowIndex)!=null?a:"-1"),d=Array.from(i.childNodes).indexOf(s),p=t.find(([v])=>v===u),C=e[d];o(r,"grid",{columnMap:c,columnName:C,row:p})}},[e,t,o])};var Lr=require("@vuu-ui/vuu-utils"),St=require("react");var kr=({navigate:e})=>{let t=(0,St.useCallback)(()=>{e()},[e]),o=(0,St.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]),n=(0,St.useCallback)(l=>{let s=l.target,i=s.querySelector("input");i&&(i.focus(),i.select()),s.addEventListener("vuu-commit",t,!0)},[t]);return{onKeyDown:(0,St.useCallback)(l=>{Mr(l.target)&&((0,Lr.isCharacterKey)(l.key)?o(l):l.key==="Enter"&&n(l))},[o,n])}};var A=require("@vuu-ui/vuu-utils"),Kr=require("@vuu-ui/vuu-ui-controls"),Nr=require("react"),{info:Bo}=(0,A.logger)("useTableModel"),Us=100,_s=A.metadataKeys.count,Js=({serverDataType:e})=>e===void 0,Xs=e=>{var t;if((0,A.isTypeDescriptor)(e.type))return(0,A.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Qs=(e,t)=>{var n;let o=t.columns.find(({name:r})=>r===e.name);return o?o.serverDataType:(n=e.serverDataType)!=null?n:"string"},Ys=["int","long","double"],zr=e=>e===void 0?void 0:Ys.includes(e)?"right":"left",Ir=e=>e.type==="columnSettings",Vr=e=>e.type==="tableSettings",Zs=(e,t)=>{switch(Bo==null||Bo(`TableModelReducer ${t.type}`),console.log(`TableModelReducer ${t.type}`),t.type){case"init":return console.log({init:t}),Fr(t);case"moveColumn":return qs(e,t);case"resizeColumn":return oi(e,t);case"setTableSchema":return ni(e,t);case"hideColumns":return ei(e,t);case"showColumns":return ti(e,t);case"pinColumn":return ri(e,t);case"updateColumnProp":return nt(e,t);case"tableConfig":return Gr(e,t);default:return console.log(`unhandled action ${t.type}`),e}},$r=(e,t)=>{let[o,n]=(0,Nr.useReducer)(Zs,{tableConfig:e,dataSourceConfig:t},Fr),{columns:r,headings:l,tableConfig:s,...i}=o;return{columns:r,dispatchColumnAction:n,headings:l,tableAttributes:i,tableConfig:s}};function Fr({dataSourceConfig:e,tableConfig:t}){let{columns:o,...n}=t,r=o.filter((0,A.subscribedOnly)(e==null?void 0:e.columns)).map(Or(n)),l=r.some(A.isPinned)?(0,A.sortPinnedColumns)(r):r,s={columns:l,headings:(0,A.getTableHeadings)(l),tableConfig:t,...n};if(e){let{columns:i,...a}=e;s=Gr(s,{type:"tableConfig",...a})}return s}var js=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,Or=e=>(t,o)=>{let{columnDefaultWidth:n=Us,columnFormatHeader:r}=e,{align:l=zr(t.serverDataType),key:s,name:i,label:a=i,width:c=n,...u}=t,d={...u,align:l,CellRenderer:Xs(t),clientSideEditValidationCheck:(0,A.hasValidationRules)(t.type)?(0,Kr.buildValidationChecker)(t.type.renderer.rules):void 0,label:js(a,r),key:s!=null?s:o+_s,name:i,originalIdx:o,valueFormatter:(0,A.getValueFormatter)(t),width:c};return(0,A.isGroupColumn)(d)&&(d.columns=d.columns.map(p=>Or(e)(p,p.key))),d};function qs(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let l=r.indexOf(t),s=r.slice(),[i]=s.splice(l,1);return s.splice(l+o,0,i),{...e,columns:s}}else if(typeof n=="number"){let l=r.indexOf(t);return{...e,columns:(0,A.moveItem)(r,l,n)}}return e}function ei(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?nt(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function ti(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?nt(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function oi(e,{column:t,phase:o,width:n}){let r="updateColumnProp",l=o!=="end";switch(o){case"begin":return nt(e,{type:r,column:t,resizing:l});case"end":return nt(e,{type:r,column:t,resizing:l,width:n});case"resize":return nt(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function ni(e,{tableSchema:t}){let{columns:o}=e;if(o.some(Js)){let n=o.map(r=>{var s;let l=Qs(r,t);return{...r,align:(s=r.align)!=null?s:zr(l),serverDataType:l}});return{...e,columns:n}}else return e}function ri(e,t){let{columns:o}=e,{column:n,pin:r}=t,l=o.find(s=>s.name===n.name);return l?(o=ot(o,{...l,pin:r}),o=(0,A.sortPinnedColumns)(o),{...e,columns:o}):e}function nt(e,t){let{columns:o}=e,{align:n,column:r,hidden:l,label:s,resizing:i,width:a}=t,c=o.find(u=>u.name===r.name);return c&&((n==="left"||n==="right")&&(o=ot(o,{...c,align:n})),typeof s=="string"&&(o=ot(o,{...c,label:s})),typeof i=="boolean"&&(o=ot(o,{...c,resizing:i})),typeof l=="boolean"&&(o=ot(o,{...c,hidden:l})),typeof a=="number"&&(o=ot(o,{...c,width:a}))),{...e,columns:o}}function Gr(e,{confirmed:t,filter:o,groupBy:n,sort:r}){let l=n!==void 0,s=typeof(o==null?void 0:o.filter)=="string",i=r&&r.sortDefs.length>0,a=e;return l&&(a={...e,columns:(0,A.applyGroupByToColumns)(a.columns,n,t)}),i&&(a={...e,columns:(0,A.applySortToColumns)(a.columns,r)}),s?a={...e,columns:(0,A.applyFilterToColumns)(a.columns,o)}:a.columns.some(A.isFilteredColumn)&&(a={...e,columns:(0,A.stripFilterFromColumns)(a.columns)}),a}function ot(e,t){return e.map(o=>o.name===t.name?t:o)}var Q=require("react"),Wr=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:l,scrollWidth:s}=e,i=t/(s-r),a=o/(l-n);return[i,a]},Br=({onAttach:e,onDetach:t})=>{let o=(0,Q.useRef)(null);return(0,Q.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:l}=o;o.current=r,t==null||t(l)}},[e,t])},Ur=({maxScrollLeft:e,maxScrollTop:t,onHorizontalScroll:o,onVerticalScroll:n,rowHeight:r,viewportRowCount:l})=>{let s=(0,Q.useRef)(!1),i=(0,Q.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Q.useRef)(null),c=(0,Q.useRef)(null),u=(0,Q.useCallback)(()=>{let{current:f}=c,{current:T}=a,{current:x}=s;if(x)s.current=!1;else if(f&&T){let[m,g]=Wr(T),P=Math.round(m*e),M=Math.round(g*t);f.scrollTo({left:P,top:M,behavior:"auto"})}},[e,t]),d=(0,Q.useCallback)(()=>{let{current:f}=c,{current:T}=a,{current:x}=i;if(f&&T){let{scrollLeft:m,scrollTop:g}=f,[P,M]=Wr(f);s.current=!0,T.scrollLeft=Math.round(P*e),T.scrollTop=Math.round(M*t),x.scrollTop!==g&&(x.scrollTop=g,n==null||n(g,M)),x.scrollLeft!==m&&(x.scrollLeft=m,o==null||o(m))}},[e,t,o,n]),p=(0,Q.useCallback)(f=>{a.current=f,f.addEventListener("scroll",u,{passive:!0})},[u]),C=(0,Q.useCallback)(f=>{a.current=null,f.removeEventListener("scroll",u)},[u]),v=(0,Q.useCallback)(f=>{c.current=f,f.addEventListener("scroll",d,{passive:!0})},[d]),h=(0,Q.useCallback)(f=>{c.current=null,f.removeEventListener("scroll",d)},[d]),w=Br({onAttach:v,onDetach:h}),R=Br({onAttach:p,onDetach:C}),b=(0,Q.useCallback)(f=>{let{current:T}=c;if(T){let{scrollLeft:x,scrollTop:m}=T;if(s.current=!1,f.type==="scroll-distance"){let g=x,P=m;f.direction==="up"||f.direction==="down"?P=Math.min(Math.max(0,m+f.distance),t):g=Math.min(Math.max(0,x+f.distance),e),T.scrollTo({top:P,left:g,behavior:"auto"})}else if(f.type==="scroll-page"){let{direction:g}=f,P=l*(g==="down"?r:-r),M=Math.min(Math.max(0,m+P),t);T.scrollTo({top:M,left:x,behavior:"auto"})}else if(f.type==="scroll-end"){let{direction:g}=f,P=g==="end"?t:0;T.scrollTo({top:P,left:T.scrollLeft,behavior:"auto"})}}},[e,t,r,l]);return{scrollbarContainerRef:R,contentContainerRef:w,requestScroll:b}};var rt=require("react"),_r=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,rt.useRef)(0),{contentWidth:l,rowCount:s}=n,i=(0,rt.useCallback)(a=>{let c=t(a);c!==r.current&&(r.current=c,o({from:c,to:c+s}))},[t,o,s]);return(0,rt.useEffect)(()=>{let{current:a}=r,c={from:a,to:a+s};o(c)},[o,s]),{onVerticalScroll:i}};var{KEY:li,IS_EXPANDED:Jr,IS_LEAF:Xr}=U.metadataKeys,si=(e,t)=>({...e,columns:e.columns.concat(t)}),jr=({availableColumns:e,config:t,containerRef:o,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:l,onConfigChange:s,onFeatureEnabled:i,onFeatureInvocation:a,onRowClick:c,onSelectionChange:u,renderBufferSize:d=0,rowHeight:p=20,selectionModel:C})=>{let[v,h]=(0,K.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[w,R]=(0,K.useState)(),b=(0,K.useCallback)(D=>{R(D)},[]),f=(0,K.useMemo)(()=>pt(n),[n]),T=(0,K.useCallback)(D=>{h(D)},[]),{columns:x,dispatchColumnAction:m,headings:g,tableAttributes:P,tableConfig:M}=$r(t,n.config);(0,Qr.useLayoutEffectSkipFirst)(()=>{m({type:"init",dataSourceConfig:n.config,tableConfig:M})},[M,n.config,m]);let[y,E]=(0,K.useState)(),[H,k]=(0,K.useMemo)(()=>{let D=(N,z)=>{let ne=(0,U.updateColumn)(x,N,{width:z});E(ne)};return[y!=null?y:x,D]},[x,y]),J=(0,K.useMemo)(()=>(0,U.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:me,getRowOffset:At,setPctScrollTop:Lt,...te}=wt({columns:H,headerHeight:r,headings:g,rowCount:v,rowHeight:p,size:w}),Te=Pr({from:0,to:te.rowCount}),oe=(0,K.useCallback)(({tableSchema:D})=>{D||console.log("usbscription message with no schema")},[]),{data:Ae,range:it,setRange:at}=xr({dataSource:n,onFeatureEnabled:i,onFeatureInvocation:a,renderBufferSize:d,onSizeChange:T,onSubscribed:oe,range:Te}),Y=(0,K.useCallback)(D=>{console.log("useTableNext handleConfigChanged",{tableConfig:D}),m({type:"init",tableConfig:D,dataSourceConfig:n.config}),s==null||s(D)},[n.config,m,s]),we=(0,K.useCallback)(D=>{console.log("config changed",{dataSourceConfig:D}),n.config={...n.config,...D}},[n]),ro=(0,K.useCallback)(D=>{console.log("useTableNext handleCreateCalculatedColumn",{column:D}),n.columns=n.columns.concat(D.name);let N=si(M,D);m({type:"init",tableConfig:N,dataSourceConfig:n.config}),s==null||s(N)},[n,m,s,M]);(0,K.useEffect)(()=>{n.on("config",(D,N)=>{m({type:"tableConfig",...D,confirmed:N})})},[n,m]);let{showColumnSettingsPanel:kt,showTableSettingsPanel:Kt}=(0,Yr.useTableAndColumnSettings)({availableColumns:e!=null?e:M.columns.map(({name:D,serverDataType:N="string"})=>({name:D,serverDataType:N})),onAvailableColumnsChange:l,onConfigChange:Y,onCreateCalculatedColumn:ro,onDataSourceConfigChange:we,tableConfig:M}),lo=(0,K.useCallback)(D=>{Ir(D)?kt(D):Vr(D)?Kt():m(D)},[m,kt,Kt]),so=dt({dataSource:n,onPersistentColumnOperation:lo}),Nt=(0,K.useCallback)((D,N=!1,z)=>{n&&(n.sort=(0,U.applySort)(n.sort,D,N,z))},[n]),zt=(0,K.useCallback)((D,N,z)=>{let ne=H.find(fe=>fe.name===N);if(ne)D==="resize"?(0,U.isValidNumber)(z)&&k(N,z):D==="end"?(0,U.isValidNumber)(z)&&(m({type:"resizeColumn",phase:D,column:ne,width:z}),s==null||s(Qt(M,{type:"col-size",column:ne,width:z}))):(E(void 0),m({type:"resizeColumn",phase:D,column:ne,width:z}));else throw Error(`useDataTable.handleColumnResize, column ${N} not found`)},[H,M,m,s,k]),io=(0,K.useCallback)((D,N)=>{let z=(0,U.isJsonGroup)(N,D),ne=D[li];if(D[Jr]){if(n.closeTreeNode(ne,!0),z){let fe=H.indexOf(N);n.getRowsAtDepth(fe+1).some(Ce=>Ce[Jr]||Ce[Xr])||m({type:"hideColumns",columns:H.slice(fe+2)})}}else if(n.openTreeNode(ne),z){let fe=n.getChildRows(ne),ut=H.indexOf(N)+1,Ce=[H[ut]];fe.some(Co=>Co[Xr])&&Ce.push(H[ut+1]),Ce.some(Co=>Co.hidden)&&m({type:"showColumns",columns:Ce})}},[H,n,m]),{onVerticalScroll:ct}=_r({columns:H,getRowAtPosition:me,setRange:at,viewportMeasurements:te}),It=(0,K.useCallback)(D=>{ct(D)},[ct]),{requestScroll:L,...$}=Ur({maxScrollLeft:te.maxScrollContainerScrollHorizontal,maxScrollTop:te.maxScrollContainerScrollVertical,rowHeight:p,onVerticalScroll:It,viewportRowCount:te.rowCount}),{navigate:Z,onKeyDown:F,...se}=Rr({columnCount:H.filter(D=>D.hidden!==!0).length,containerRef:o,requestScroll:L,rowCount:n==null?void 0:n.size,viewportRange:it,viewportRowCount:te.rowCount}),{onKeyDown:pe}=kr({navigate:Z}),ie=(0,K.useCallback)(D=>{F(D),D.defaultPrevented||pe(D)},[F,pe]),De=Ar({columns:H,data:Ae}),ao=(0,K.useCallback)(D=>{var Ce;let z=D.target.closest(".vuuTableNextHeaderCell"),ne=parseInt((Ce=z==null?void 0:z.dataset.index)!=null?Ce:"-1"),fe=(0,U.visibleColumnAtIndex)(H,ne),ut=D.shiftKey;fe&&Nt(fe,ut)},[H,Nt]),co=(0,K.useCallback)(D=>{(0,U.isGroupColumn)(D)?n.groupBy=[]:n&&n.groupBy.includes(D.name)&&(n.groupBy=n.groupBy.filter(N=>N!==D.name))},[n]),uo=(0,K.useCallback)(D=>{n.select(D),u==null||u(D)},[n,u]),Vt=Tt({onSelectionChange:uo,selectionModel:C}),mo=(0,K.useCallback)((D,N,z)=>{Vt(D,N,z),c==null||c(D)},[c,Vt]);(0,K.useEffect)(()=>{n.on("config",(D,N)=>{m({type:"tableConfig",...D,confirmed:N})})},[n,m]);let po=(0,K.useCallback)((D,N)=>{let z=H[D];m({type:"moveColumn",column:z,moveTo:N})},[H,m]),fo=(0,K.useCallback)((D,N,z)=>n.applyEdit(D,N,z),[n]),{onMouseDown:al,...cl}=(0,Zr.useDragDropNext)({allowDragDrop:!0,containerRef:o,draggableClassName:"vuuTableNext",onDrop:po,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...se,onKeyDown:ie,columnMap:J,columns:H,data:Ae,handleContextMenuAction:so,headerProps:{onClick:ao,onMouseDown:al,onResize:zt},menuBuilder:f,onContextMenu:De,onDataEdited:fo,onRemoveGroupColumn:co,onResize:b,onRowClick:mo,onToggleGroup:io,scrollProps:$,tableAttributes:P,viewportMeasurements:te,dragDropHook:cl}};var eo=require("@vuu-ui/vuu-layout");var le=require("react/jsx-runtime"),_o=require("react"),ue="vuuTableNext",{IDX:ii,RENDER_IDX:ai}=lt.metadataKeys,tl=({Row:e=Oo,availableColumns:t,className:o,config:n,dataSource:r,id:l,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:d,onShowConfigEditor:p,renderBufferSize:C=0,rowHeight:v=20,selectionModel:h="extended",showColumnHeaders:w=!0,headerHeight:R=w?25:0,style:b,...f})=>{let T=(0,eo.useId)(l),x=(0,el.useRef)(null),{columnMap:m,columns:g,data:P,dragDropHook:M,handleContextMenuAction:y,headerProps:E,onDataEdited:H,onRemoveGroupColumn:k,onResize:J,onRowClick:me,onToggleGroup:At,menuBuilder:Lt,scrollProps:te,tableAttributes:Te,viewportMeasurements:oe,...Ae}=jr({availableColumns:t,config:n,containerRef:x,dataSource:r,headerHeight:R,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:a,onFeatureInvocation:c,onRowClick:u,onSelectionChange:d,renderBufferSize:C,rowHeight:v,selectionModel:h}),it=()=>({...b,"--content-height":`${oe.contentHeight}px`,"--horizontal-scrollbar-height":`${oe.horizontalScrollbarHeight}px`,"--content-width":`${oe.contentWidth}px`,"--pinned-width-left":`${oe.pinnedWidthLeft}px`,"--pinned-width-right":`${oe.pinnedWidthRight}px`,"--header-height":`${R}px`,"--row-height":`${v}px`,"--total-header-height":`${oe.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${oe.verticalScrollbarWidth}px`,"--viewport-body-height":`${oe.viewportBodyHeight}px`}),at=(0,Uo.default)(ue,o,{[`${ue}-colLines`]:Te.columnSeparators,[`${ue}-rowLines`]:Te.rowSeparators,[`${ue}-zebra`]:Te.zebraStripes});return(0,le.jsx)(qr.ContextMenuProvider,{menuActionHandler:y,menuBuilder:Lt,children:(0,le.jsxs)(eo.MeasuredContainer,{...f,className:at,onResize:J,ref:x,style:it(),children:[(0,le.jsx)("div",{className:`${ue}-scrollbarContainer`,ref:te.scrollbarContainerRef,children:(0,le.jsx)("div",{className:`${ue}-scrollbarContent`})}),(0,le.jsx)("div",{className:`${ue}-contentContainer`,ref:te.contentContainerRef,children:(0,le.jsxs)("div",{...Ae,className:`${ue}-table`,tabIndex:-1,children:[w?(0,le.jsx)("div",{className:`${ue}-col-headings`,children:(0,le.jsxs)("div",{className:`${ue}-col-headers`,role:"row",children:[g.filter(lt.notHidden).map((Y,we)=>(0,lt.isGroupColumn)(Y)?(0,_o.createElement)(Ht,{...E,column:Y,"data-index":we,key:Y.name,onRemoveColumn:k}):(0,_o.createElement)(fr,{...E,className:(0,Uo.default)({"vuuDraggable-dragAway":we===M.draggedItemIndex}),column:Y,"data-index":we,id:`${T}-col-${we}`,key:Y.name})),M.draggable]})}):null,(0,le.jsx)("div",{className:`${ue}-body`,children:P.map(Y=>(0,le.jsx)(e,{columnMap:m,columns:g,onClick:me,onDataEdited:H,row:Y,offset:v*Y[ii]+R,onToggleGroup:At,zebraStripes:Te.zebraStripes},Y[ai]))})]})})]})})};var ol=require("@vuu-ui/vuu-ui-controls"),st=require("@vuu-ui/vuu-utils");var to=require("react"),nl=require("react/jsx-runtime"),ci="vuuTableDropdownCell",ui=["Enter"," "],mi=({column:e,columnMap:t,row:o})=>{var a,c,u;let n=(0,st.isTypeDescriptor)(e.type)&&(0,st.isColumnTypeRenderer)((a=e.type)==null?void 0:a.renderer)?(u=(c=e.type)==null?void 0:c.renderer)==null?void 0:u.values:[],r=t[e.name],[l,s]=(0,to.useState)(o[r]),i=(0,to.useCallback)((d,p)=>{p&&s(p)},[]);return(0,nl.jsx)(ol.Dropdown,{className:ci,onSelectionChange:i,openKeys:ui,selected:l,source:n,width:e.width-17})};(0,st.registerComponent)("dropdown-cell",mi,"cell-renderer",{});var rl=require("@vuu-ui/vuu-utils"),ll=require("@salt-ds/core"),sl=require("@vuu-ui/vuu-ui-controls"),il=G(require("classnames"));var no=require("react/jsx-runtime"),oo="vuuTableInputCell",pi=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),di=({column:e,columnMap:t,onCommit:o=pi,row:n})=>{let r=t[e.name],{align:l="left",clientSideEditValidationCheck:s,valueFormatter:i}=e,{warningMessage:a,...c}=(0,sl.useEditableText)({initialValue:i(n[r]),onCommit:o,clientSideEditValidationCheck:s}),u=a&&l==="left"?(0,no.jsx)("span",{className:`${oo}-icon`,"data-icon":"error"}):void 0,d=a&&l==="right"?(0,no.jsx)("span",{className:`${oo}-icon`,"data-icon":"error"}):void 0;return(0,no.jsx)(ll.Input,{...c,className:(0,il.default)(oo,{[`${oo}-error`]:a!==void 0}),endAdornment:u,startAdornment:d})};(0,rl.registerComponent)("input-cell",di,"cell-renderer",{});
32
2
  //# sourceMappingURL=index.js.map