@vuu-ui/vuu-filters 0.8.26 → 0.8.27

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,2 +1,2 @@
1
- "use strict";var xt=Object.defineProperty;var Rn=Object.getOwnPropertyDescriptor;var Ln=Object.getOwnPropertyNames;var Hn=Object.prototype.hasOwnProperty;var Vn=(n,e)=>{for(var t in e)xt(n,t,{get:e[t],enumerable:!0})},_n=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ln(e))!Hn.call(n,i)&&i!==t&&xt(n,i,{get:()=>e[i],enumerable:!(r=Rn(e,i))||r.enumerable});return n};var Qn=n=>_n(xt({},"__esModule",{value:!0}),n);var tr=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var oe=(n,e,t)=>(tr(n,e,"read from private field"),t?t.call(n):e.get(n)),rr=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},Ct=(n,e,t,r)=>(tr(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);var es={};Vn(es,{AND:()=>W,ENDS_WITH:()=>ui,EQUALS:()=>je,ExpandoCombobox:()=>he,FilterBar:()=>Si,FilterBuilderMenu:()=>Ft,FilterClauseEditor:()=>kt,FilterClauseTextValueEditor:()=>St,FilterInput:()=>Hi,FilterPill:()=>At,GREATER_THAN:()=>ai,IN:()=>Lr,LESS_THAN:()=>li,OR:()=>Rr,STARTS_WITH:()=>Et,addClause:()=>et,addFilter:()=>ci,filterClauses:()=>Ee,filterEquals:()=>Xe,filterIncludesColumn:()=>Qr,getAllLocalEntity:()=>ji,getLocalEntity:()=>Zi,getNumericFilter:()=>vi,getTypeaheadFilter:()=>bi,overrideColName:()=>_r,removeFilter:()=>mi,removeLastClause:()=>Pt,replaceClause:()=>Ot,saveLocalEntity:()=>Xi,splitFilterOnColumn:()=>gi,updateFilter:()=>Yr,useCodeMirrorEditor:()=>Xt,useFilterSuggestionProvider:()=>Gi});module.exports=Qn(es);var nn=require("@vuu-ui/vuu-popups"),sn=require("@vuu-ui/vuu-ui-controls"),Nt=require("@salt-ds/core");function nr(n){var e,t,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n))for(e=0;e<n.length;e++)n[e]&&(t=nr(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function Un(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=nr(n))&&(r&&(r+=" "),r+=e);return r}var H=Un;var on=require("react");var De=require("react"),qe=require("@vuu-ui/vuu-popups"),we=require("@vuu-ui/vuu-ui-controls");var G=require("react/jsx-runtime"),ir="vuuFilterBuilderMenu",Ft=({ListProps:n,onMenuAction:e})=>{let t=(0,De.useRef)(null),r=(0,De.useCallback)(s=>{s&&requestAnimationFrame(()=>{s.focus()})},[]),i=(0,De.useCallback)((s,o)=>{let{props:{"data-action":a}}=o;e({type:"menu-action",menuId:a,options:{}})},[e]);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)("span",{className:`${ir}-trigger`,ref:t}),(0,G.jsx)(qe.Portal,{children:(0,G.jsx)(qe.PopupComponent,{anchorElement:t,placement:"right",children:(0,G.jsxs)(we.List,{...n,className:`${ir}List`,defaultHighlightedIndex:0,itemHeight:22,ref:r,onSelect:i,style:{position:"relative"},width:100,children:[(0,G.jsx)(we.ListItem,{"data-action":"apply-save",children:(0,G.jsx)("span",{className:"vuuMenuButton",children:"APPLY AND SAVE"})}),(0,G.jsx)(we.ListItem,{"data-action":"and-clause",children:"AND"}),(0,G.jsx)(we.ListItem,{"data-action":"or-clause",children:"OR"})]})})})]})};var or=require("@vuu-ui/vuu-utils"),ar=require("@vuu-ui/vuu-ui-controls");var Z=require("react");var $t=require("react/jsx-runtime"),sr="vuuExpandoCombobox",Yn={},he=(0,Z.forwardRef)(function({className:e,InputProps:t=Yn,ListProps:r,onInputChange:i,onSelectionChange:s,selectionStrategy:o,source:a,style:l,title:u,value:h="",...c},f){let[d,p]=(0,Z.useState)(h),{itemToString:g=or.itemToString}=c,F=(0,Z.useRef)(h),k=(0,Z.useCallback)(y=>{let[b,...P]=y;return P.length?`${g(b)} + ${P.length}`:g(b)},[g]),$=(0,Z.useCallback)(y=>{let{value:b}=y.target;p(b),i==null||i(y)},[i]),E=(0,Z.useCallback)(y=>{p(y)},[]),[x,S]=(0,Z.useMemo)(()=>{let{inputProps:y,...b}=t;return[{...b,className:`${sr}-Input`,endAdornment:null,inputProps:{...y,autoComplete:"off",onInput:$}},{...r,className:H("vuuMenuList",r==null?void 0:r.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:80,width:"content-width"}]},[t,$,r]),m=(0,Z.useCallback)((y,b)=>{Array.isArray(b)?s==null||s(null,b):b&&(p(g(b)),s==null||s(null,b))},[g,s]),v=()=>{if(F.current!==void 0)return Array.isArray(F.current)?a==null?void 0:a.filter(y=>F.current.includes(g(y))):a==null?void 0:a.find(y=>g(y)===F.current)},C={minWidth:"fit-content"};return(0,$t.jsx)("div",{className:H(sr,e),"data-text":d,ref:f,style:l,children:(0,$t.jsx)(ar.ComboBox,{...c,PopupProps:C,allowEnterCommitsText:!0,defaultSelected:v(),defaultValue:Array.isArray(F.current)?k(F.current):F.current,fullWidth:!0,ListProps:S,InputProps:x,itemsToString:k,onSelectionChange:m,onSetSelectedText:E,selectionStrategy:o,source:a})})});var Er=require("@salt-ds/core");var Mr=require("react");var Je=require("@vuu-ui/vuu-utils"),Wn=["=","in","!=","starts","ends"],zn=["=","!=",">",">=","<","<="],lr=n=>{if((0,Je.isTextColumn)(n))return Wn;if((0,Je.isNumericColumn)(n))return zn;throw Error("getOperators only supports text and numeric columns")};var me=require("react"),ur=require("@vuu-ui/vuu-ui-controls"),Ke=require("@vuu-ui/vuu-utils"),fr=require("react/jsx-runtime"),cr=(0,me.forwardRef)(function({InputProps:e,className:t,onInputComplete:r,value:i},s){let[o,a]=(0,me.useState)((0,Ke.isValidNumber)(i)?i.toString():""),l=(0,me.useCallback)(h=>{let{value:c}=h.target,f=parseFloat(c);(0,Ke.isValidNumber)(f)&&console.log("its valid"),a(c)},[]),u=(0,me.useCallback)(h=>{if(h.key==="Enter"){let{value:c}=h.target,f=parseFloat(c);(0,Ke.isValidNumber)(f)&&r(f)}},[r]);return(0,fr.jsx)(ur.ExpandoInput,{...e,className:t,value:o,ref:s,onChange:l,onKeyDown:u})});var z=require("react"),dr=require("@vuu-ui/vuu-data-react"),pr=require("@vuu-ui/vuu-ui-controls");var Ne=require("react/jsx-runtime"),qn=["Enter"," "],Jn=n=>{if(n.session){let{module:e,session:t}=n;return{module:e,table:t}}else return n},hr=["No matching data"],St=(0,z.forwardRef)(function({InputProps:e={},className:t,column:r,"data-field":i,onDeselect:s,onInputComplete:o,operator:a,suggestionProvider:l=dr.useTypeaheadSuggestions,table:u,value:h},c){var v;let f=a==="in",[d,p]=(0,z.useState)((v=h==null?void 0:h.toString())!=null?v:""),[g,F]=(0,z.useState)([]),k=l(),$=(0,z.useCallback)((C,y)=>o(y),[o]),E=(0,z.useCallback)((C,y)=>o(y),[o]);(0,z.useEffect)(()=>{if(u){let C=Jn(u),y=d&&!f?[C,r.name,d]:[C,r.name];k(y).then(b=>{b.length===0&&d?F(hr):F(b)}).catch(b=>{console.error("Error getting suggestions",b)})}},[u,r,d,k,f]);let x=(0,z.useCallback)(C=>{let{value:y}=C.target;p(y)},[]),S=(0,z.useMemo)(()=>{if(a!=="in"){let{inputProps:C,...y}=e;return{...y,inputProps:{...C,onKeyDown:b=>{var P;b.key==="Enter"&&d!==""?(b.stopPropagation(),b.preventDefault(),o(d)):(P=C==null?void 0:C.onKeyDown)==null||P.call(C,b)}}}}else return e},[e,o,a,d]);return(0,z.useCallback)(()=>{switch(a){case"in":return(0,Ne.jsx)(he,{InputProps:S,className:t,"data-field":i,initialHighlightedIndex:0,source:g,onInputChange:x,onSelectionChange:E,ref:c,selectionStrategy:"multiple",selectionKeys:qn,value:h});case"starts":return(0,Ne.jsx)(he,{InputProps:S,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,disableFilter:g===hr&&(d==null?void 0:d.length)>0,source:g,onInputChange:x,onSelectionChange:$,ref:c,value:h});case"ends":return(0,Ne.jsx)(pr.ExpandoInput,{...S,className:t,"data-field":i,value:d,ref:c,onChange:x});default:return(0,Ne.jsx)(he,{InputProps:S,allowBackspaceClearsSelection:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,source:g,title:"value",onInputChange:x,onDeselect:s,onSelectionChange:$,ref:c,value:h})}},[S,a,t,i,g,x,E,c,h,d,s,$])()});var Cr=require("@vuu-ui/vuu-utils");var Be=require("react");var wt=null;function mr(){return wt==null&&(wt=new Intl.DateTimeFormat().resolvedOptions().timeZone),wt}var Kn=["hours","minutes","seconds"],Vs=["years","months","weeks","days",...Kn];var gr=1080,Gn=24*gr,Zn=29,jn=12*gr+793,_s=Zn*Gn+jn;var yr=require("@vuu-ui/vuu-ui-controls"),br=require("@vuu-ui/vuu-utils"),xr=require("react/jsx-runtime"),vr=n=>{let{value:e,onInputComplete:t,operator:r}=n,i=ei(r),[s,o]=(0,Be.useState)(()=>Xn(e)),a=(0,Be.useCallback)(u=>{o(u)},[]),l=(0,Be.useCallback)(()=>{s&&t(i(s))},[s,t,i]);return(0,xr.jsx)(yr.DatePicker,{className:"vuuFilterClause-DatePicker",selectedDate:s,onBlur:l,onSelectedDateChange:a,closeOnSelection:!0,hideOutOfRangeDates:!0})};function Xn(n){return n?(0,br.toCalendarDate)(new Date(n)):void 0}var ei=n=>(e,t=mr())=>{let r=e.toDate(t);switch(n){case">":case"<=":return r.setHours(23,59,59,999),r.getTime();case">=":case"<":case"=":case"!=":return r.setHours(0,0,0,0),r.getTime()}};var Ze=require("react/jsx-runtime"),Ge="vuuFilterClause",Fr=({selectedColumn:n,operator:e,InputProps:t,onChangeValue:r,onDeselectValue:i,suggestionProvider:s,table:o,value:a})=>{if(n===void 0||e===void 0)return null;if((0,Cr.isDateTimeColumn)(n))return(0,Ze.jsx)(vr,{value:a,operator:e,onInputComplete:r});switch(n.serverDataType){case"string":case"char":return(0,Ze.jsx)(St,{InputProps:t,className:H(`${Ge}Field`,`${Ge}Value`),column:n,"data-field":"value",onDeselect:i,onInputComplete:r,operator:e,suggestionProvider:s,table:o,value:a});case"int":case"long":case"double":return(0,Ze.jsx)(cr,{InputProps:t,className:H(`${Ge}Field`,`${Ge}Value`),column:n,onInputComplete:r,operator:e});default:return console.log("returning null"),null}};var ke=require("@vuu-ui/vuu-utils"),N=require("react"),ti=n=>n.selectionStart===0,ri=n=>n.selectionStart===n.value.length,$r=n=>n!=null&&n.classList.contains("vuuFilterClauseColumn")?"column":n!=null&&n.classList.contains("vuuFilterClauseOperator")?"operator":"value",wr=()=>{let n=document.activeElement;return n!=null&&n.classList.contains("vuuFilterClause-clearButton")?n:n==null?void 0:n.closest(".vuuFilterClauseField")},Re=(n="fwd")=>{var r;let e=wr(),t=e==null?void 0:e.closest(".vuuFilterClause");if(n==="fwd"&&(t==null?void 0:t.lastChild)===e)requestAnimationFrame(()=>{Re()});else{let i=n==="fwd"?e==null?void 0:e.nextElementSibling:e==null?void 0:e.previousElementSibling;(r=i==null?void 0:i.querySelector("input"))==null||r.focus()}},ni=n=>{var t;let e=n.closest("[data-index]");if(e){let r=e.dataset.index;return((t=e==null?void 0:e.parentElement)==null?void 0:t.querySelector(`[data-index]:has(.vuuFilterClause):has(+[data-index="${r}"])`))!==null}},Sr=()=>{let n=wr(),e=n==null?void 0:n.closest(".vuuFilterClause");if(e&&n)if(n.classList.contains("vuuFilterClauseValue")){let t=e.querySelector(".vuuFilterClause-clearButton");t==null||t.focus()}else Re()},ii=n=>{let e=n.target,t=ti(e),r=ri(e),i=e.closest(".vuuFilterClauseField");if(n.key==="ArrowLeft"){if(t){if($r(i)==="column")return;{let o=i.previousSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}else if(n.key==="ArrowRight"){if(r){if($r(i)==="value")return;{let o=i.nextSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}},si=n=>(0,ke.isMultiValueFilter)(n)?n.values:(0,ke.isSingleValueFilter)(n)?n.value:void 0,kr=({filterClause:n,onCancel:e,onChange:t,columnsByName:r})=>{let i=(0,N.useRef)(null),s=(0,N.useRef)(null),[o,a]=(0,N.useState)(n.column?r[n.column]:void 0),[l,u]=(0,N.useState)(n.op),h=(0,N.useCallback)(m=>{u(m)},[]),[c,f]=(0,N.useState)(si(n)),d=(0,N.useCallback)((m,v)=>{a(v!=null?v:void 0),h(void 0),f(void 0),setTimeout(()=>{Sr()},100)},[h]),p=(0,N.useCallback)(m=>{var C;let v=m.target;if(v.value===""){let y=v.closest(".vuuFilterClauseField,[data-field]");switch((C=y==null?void 0:y.dataset)==null?void 0:C.field){case"operator":{h(void 0),a(void 0),Re("bwd");break}case"value":{h(void 0),Re("bwd");break}case"column":ni(v)&&(console.log("This is NOT the first clause"),e==null||e("Backspace"))}}},[e,h]),g=(0,N.useCallback)((m,v)=>{let C=v;if(C===void 0||(0,ke.isValidFilterClauseOp)(C))h(C),Sr();else throw Error(`FilterClauseEditor, invalid value ${C} for filter clause`)},[h]),F=(0,N.useCallback)(m=>{f(m),m!==null&&m!==""&&(Array.isArray(m)?t({column:o==null?void 0:o.name,op:l,values:m}):t({column:o==null?void 0:o.name,op:l,value:m}))},[t,l,o==null?void 0:o.name]),k=(0,N.useCallback)(()=>{f(void 0)},[]),$=(0,N.useCallback)(m=>{["ArrowLeft","ArrowRight"].includes(m.key)?ii(m):m.key==="Backspace"&&p(m)},[p]),E=(0,N.useCallback)(m=>{var y;let C=(y=m.target.closest(".vuuFilterClause"))==null?void 0:y.querySelector("input");a(void 0),h(void 0),f(void 0),setTimeout(()=>{C.select(),C==null||C.focus()},100)},[h]),x=(0,N.useCallback)(m=>{m.stopPropagation(),m.key==="Backspace"&&Re("bwd")},[]),S=(0,N.useMemo)(()=>({inputProps:{onKeyDownCapture:$}}),[$]);return(0,N.useEffect)(()=>{var v;let m=(v=i.current)==null?void 0:v.querySelector("input");m==null||m.focus()},[]),{InputProps:S,columnRef:i,onChangeValue:F,onClear:E,onClearKeyDown:x,onDeselectValue:k,onColumnSelect:d,onOperatorSelect:g,operator:l,operatorRef:s,selectedColumn:o,value:c}};var ye=require("react/jsx-runtime"),ge="vuuFilterClause",kt=({className:n,columnsByName:e,onCancel:t,onChange:r,onDropdownClose:i,onDropdownOpen:s,filterClause:o,suggestionProvider:a,tableSchema:l,...u})=>{var v;let{InputProps:h,columnRef:c,onChangeValue:f,onClear:d,onClearKeyDown:p,onDeselectValue:g,onColumnSelect:F,onOperatorSelect:k,operator:$,operatorRef:E,selectedColumn:x,value:S}=kr({filterClause:o,onCancel:t,onChange:r,columnsByName:e}),m=(0,Mr.useMemo)(()=>Object.values(e),[e]);return(0,ye.jsxs)("div",{className:H(ge,n),...u,tabIndex:0,children:[(0,ye.jsx)(he,{InputProps:h,allowBackspaceClearsSelection:!0,className:H(`${ge}Field`,`${ge}Column`),"data-field":"column",initialHighlightedIndex:0,itemToString:C=>C.name,onListItemSelect:F,ref:c,source:m,title:"column",value:(v=x==null?void 0:x.name)!=null?v:""}),x!=null&&x.name?(0,ye.jsx)(he,{InputProps:h,allowBackspaceClearsSelection:!0,className:H(`${ge}Field`,`${ge}Operator`,{[`${ge}Operator-hidden`]:x===null}),"data-field":"operator",initialHighlightedIndex:0,onListItemSelect:k,ref:E,source:lr(x),title:"operator",value:$!=null?$:""}):null,(0,ye.jsx)(Fr,{InputProps:h,onChangeValue:f,onDeselectValue:g,operator:$,selectedColumn:x,suggestionProvider:a,table:l==null?void 0:l.table,value:S}),S!==void 0?(0,ye.jsx)(Er.Button,{className:`${ge}-clearButton`,onClick:d,onKeyDown:p,"data-icon":"close"}):null]})};var nt=require("@vuu-ui/vuu-popups"),qr=require("@vuu-ui/vuu-ui-controls"),Jr=require("@vuu-ui/vuu-utils");var ve=require("react");var Ar=require("@vuu-ui/vuu-popups"),Dr=require("react");var Pr=n=>({label:"Close",location:"filter",action:"close-filter",options:n}),Or=n=>({label:"Delete",location:"filter",action:"delete-filter",options:n}),Ir=n=>({label:"Rename",location:"filter",action:"rename-filter",options:n}),Tr=n=>({label:"Edit",location:"filter",action:"edit-filter",options:n});var Br=require("react/jsx-runtime"),oi="vuuFilterPillMenu",Nr=({allowClose:n=!0,allowDelete:e=!0,allowEdit:t=!0,allowRename:r=!0,filter:i,location:s,onMenuAction:o,onMenuClose:a})=>{let[l,u]=(0,Dr.useMemo)(()=>[(h,c)=>{let f=[];return r&&f.push(Ir(c)),t&&f.push(Tr(c)),n&&f.push(Pr(c)),e&&f.push(Or(c)),f},{filter:i}],[n,e,t,r,i]);return(0,Br.jsx)(Ar.PopupMenu,{className:oi,menuBuilder:l,menuActionHandler:o,menuLocation:H("filter",s),menuOptions:u,onMenuClose:a,tabIndex:-1})};var rt=require("@vuu-ui/vuu-utils");var j=require("@vuu-ui/vuu-utils");var I=require("@vuu-ui/vuu-utils"),W="and",je="=",ai=">",li="<",Rr="or",Et="starts",ui="ends",Lr="in",Ee=(n,e=[])=>(n&&((0,I.isMultiClauseFilter)(n)?n.filters.forEach(t=>e.push(...Ee(t))):e.push(n)),e),Hr={combineWith:"and"},Pt=n=>{let{filters:e}=n;return e.length>2?{...n,filters:n.filters.slice(0,-1)}:n.filters[0]},et=(n,e,{combineWith:t=W}=Hr)=>(0,I.isMultiClauseFilter)(n)&&n.op===t?{...n,filters:n.filters.concat(e)}:{op:t,filters:[n,e]},Ot=(n,e,t)=>n===void 0?e:Vr(n,e,t).filter;function Vr(n,e,t,r=0){if((0,I.isMultiClauseFilter)(n)){let i=r,s=n.filters.map(o=>{let a=Vr(o,e,t,i);return i=a.nextIdx,a.filter});return{filter:{...n,filters:s},nextIdx:i}}else{if(t!==r)return{filter:n,nextIdx:r+1};{let{name:i}=n;return{filter:{...(0,I.isNotNullOrUndefined)(i)?{name:i}:{},...e},nextIdx:r+1}}}}var ci=(n,e,{combineWith:t=W}=Hr)=>{var r;if(It(e))(0,I.isMultiClauseFilter)(e)||(n=Mt(n,{name:e.column}));else if(fi(e))return(0,I.isMultiClauseFilter)(e),Mt(n,{name:(r=e.column)!=null?r:""});if(!n)return e;if(!e)return n;if(n.op===W&&e.op===W)return{op:W,filters:pi(n.filters,e.filters)};if(n.op===W){let i=hi(n.filters,e);return i.length>1?{op:W,filters:i}:i[0]}return e.op===W?{op:W,filters:e.filters.concat(n)}:Xe(n,e,!0)?e:Ur(n,e)?di(n,e):{op:t,filters:[n,e]}},It=n=>n?(0,I.isInFilter)(n)&&n.values.length===0?!0:(0,I.isAndFilter)(n)&&n.filters.some(e=>It(e)):!1,fi=n=>n?n.op===Et&&n.value===""?!0:n.op===Et&&n.value==="":!1,hi=(n,e)=>n.concat(e),di=(n,e)=>It(e)?e:(0,I.isInFilter)(n)&&(0,I.isInFilter)(e)?{...n,values:[...n.values,...e.values.filter(t=>!n.values.includes(t))]}:(0,I.isInFilter)(n)&&e.op===je?{...n,values:n.values.concat([e.value])}:n.op===je&&e.op===je?{column:n.column,op:Lr,values:[n.value,e.value]}:e,pi=(n,e)=>{let t=({op:s},{op:o})=>s===o||s[0]===">"&&o[0]===">"||s[0]==="<"&&o[0]==="<",r=(s,o)=>s.column===o.column&&t(s,o),i=s=>e.some(o=>r(s,o))===!1;return n.filter(i).concat(e)},mi=(n,e)=>{if(Xe(n,e,!0))return null;if(n.op!==W)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(n)}`);let t=n.filters.filter(r=>!Xe(r,e));return t.length>0?{type:W,filters:t}:null},gi=(n,e)=>{if(!e)return[void 0,void 0];if(e.column===n)return[e,void 0];if(e.op!==W)return[void 0,e];let[[t=void 0],r]=(0,I.partition)(e.filters,i=>i.column===n);return r.length===1?[t,r[0]]:[t,{op:W,filters:r}]},_r=(n,e)=>(0,I.isMultiClauseFilter)(n)?{op:n.op,filters:n.filters.map(t=>_r(t,e))}:{...n,column:e},Qr=(n,e)=>{if(!n)return!1;let{op:t,column:r}=n;switch(t){case W:case Rr:return n.filters!=null&&n.filters.some(i=>Qr(i,e));default:return r===e.name}},Mt=(n,e)=>{let t=e.name;if(n&&n.column!==t){if((0,I.isAndFilter)(n)||(0,I.isOrFilter)(n)){let{op:r}=n,s=n.filters.filter(o=>o.column!==t);switch(s.length){case 0:return;case 1:return s[0];default:return{op:r,filters:s}}}return n}},Ur=(n,e)=>n.column===e.column&&(n.op==="="||n.op==="in")&&(e.op==="="||e.op==="in"),yi=(n,e)=>{if(n===e)return!0;if(n.length===e.length){let t=n.slice().sort(),r=e.slice().sort();return t.join("|")===r.join("|")}return!1},Xe=(n,e,t=!1)=>t?n&&e&&Ur(n,e)?n.op===e.op&&((0,I.isSingleValueFilter)(n)&&(0,I.isSingleValueFilter)(e)&&n.value===e.value||(0,I.isMultiValueFilter)(n)&&(0,I.isMultiValueFilter)(e)&&yi(n.values,e.values)):!1:!0,Yr=(n,e,t)=>{if(n&&e){if(t==="replace")return e;if(n.op==="and")return{...n,filters:n.filters.concat(e)};let{column:r}=e;if(r&&(e.column?(0,I.extractFilterForColumn)(n,r):void 0)&&r){let s=Mt(n,{name:r});return Yr(s,e,"add")}return{op:"and",filters:[n,e]}}return e||n},bi=(n,e,t)=>{if(e.length!==0){if(t){let r=e[0].substring(0,e[0].length-3);return{column:n,op:"starts",value:`"${r}"`}}return{column:n,op:"in",values:e.map(r=>`"${r}"`)}}},vi=(n,e,t)=>{if(e!==void 0&&!(t===void 0||isNaN(t)))return{column:n,op:e,value:t}};function xi(n,e){return"value"in n?{...n,value:e(n.value)}:{...n,values:n.values.map(e)}}function Wr(n,e){let t=e==null?void 0:e[n.column];if(t&&(0,j.isDateTimeColumn)(t)){let r=(0,j.dateTimePattern)(t.type);return xi(n,s=>{var o;return(0,j.formatDate)({date:(o=r.date)!=null?o:j.defaultPatternsByType.date})(new Date(s))})}return n}var tt=n=>e=>{if((0,j.isMultiClauseFilter)(e)){let[t]=Ee(e),r=Wr(t,n);return`${(0,j.filterAsQuery)(r)} ${e.op} ...`}else return(0,j.filterAsQuery)(Wr(e,n))};var Le=require("react/jsx-runtime"),Tt=(n,e=tt())=>{if((0,rt.isMultiClauseFilter)(n)){let t=n.op==="and"?"Match all ...":"Match any ...";return(0,Le.jsxs)("ul",{children:[(0,Le.jsx)("span",{children:t}),n.filters.map((r,i)=>(0,Le.jsx)("li",{children:Tt(r,e)},i))]})}else if((0,rt.isMultiValueFilter)(n))if(n.values.length>3){let t=n.values.slice(0,3);return`${e({...n,values:t}).slice(0,-1)},...]`}else return e(n);else return e(n)};var be=require("react/jsx-runtime"),zr="vuuFilterPill",At=({className:n,columnsByName:e,editable:t=!0,filter:r,id:i,onBeginEdit:s,onExitEditMode:o,onMenuAction:a,showMenu:l=!0,...u})=>{let h=(0,ve.useRef)(null),c=(0,ve.useCallback)(()=>{s==null||s(r)},[r,s]),f=tt(e),d=(0,ve.useMemo)(()=>{var $;return($=r.name)!=null?$:f(r)},[f,r]),p=(0,Jr.useId)(i),g=(0,ve.useCallback)($=>{($==null?void 0:$.type)==="escape"&&requestAnimationFrame(()=>{h.current&&h.current.focus()})},[]),{anchorProps:F,tooltipProps:k}=(0,nt.useTooltip)({id:p,placement:"below",tooltipContent:Tt(r,f)});return(0,be.jsxs)("div",{...F,...u,className:H(zr,n),"data-text":d,ref:h,children:[t&&o?(0,be.jsx)(qr.EditableLabel,{defaultValue:d,onEnterEditMode:c,onExitEditMode:o},d):(0,be.jsx)("span",{className:`${zr}-label`,children:d}),l&&a?(0,be.jsx)(Nr,{filter:r,onMenuAction:a,onMenuClose:g}):null,k&&(0,be.jsx)(nt.Tooltip,{...k})]})};var Kr=require("@vuu-ui/vuu-popups"),Dt=require("react/jsx-runtime"),Gr=()=>(0,Dt.jsx)("div",{className:"vuuFilterBarMenu",children:(0,Dt.jsx)(Kr.PopupMenu,{icon:"tune",menuLocation:"filter-bar-menu",tabIndex:-1})});var st=require("@vuu-ui/vuu-utils"),O=require("react");var xe=require("react"),Zr=require("@vuu-ui/vuu-ui-controls"),jr=({defaultFilterState:n,onFilterDeleted:e,onFilterRenamed:t,onFilterStateChanged:r,filterState:i})=>{let[s,o]=(0,Zr.useControlled)({controlled:i,default:n!=null?n:{filters:[],activeIndices:[]},name:"useFilterState",state:"FilterState"}),a=(0,xe.useCallback)(d=>{o(d),r==null||r(d)},[r,o]),l=(0,xe.useCallback)(d=>{let p=s.filters.length,g=s.filters.concat(d),F=Ci(s.activeIndices,p);return a({filters:g,activeIndices:F}),p},[s,a]),u=(0,xe.useCallback)(d=>{let p=-1,g=s.filters.filter((k,$)=>k!==d?!0:(p=$,!1)),F=Fi(s.activeIndices,p);return a({filters:g,activeIndices:F}),e==null||e(d),p},[s.filters,s.activeIndices,a,e]),h=(0,xe.useCallback)((d,p)=>{let g=-1,F=s.filters.map((k,$)=>k===d?(g=$,{...d,name:p}):k);return a({...s,filters:F}),t==null||t(d,p),g},[s,a,t]),c=(0,xe.useCallback)((d,p)=>{let g=-1,F=s.filters.map((k,$)=>k===d?(g=$,p):k);return a({...s,filters:F}),g},[s,a]),f=(0,xe.useCallback)(d=>a({...s,activeIndices:d}),[s,a]);return{activeFilterIndex:s.activeIndices,filters:s.filters,onChangeActiveFilterIndex:f,onAddFilter:l,onChangeFilter:c,onDeleteFilter:u,onRenameFilter:h}},Ci=(n,e)=>n.includes(e)?n:n.concat(e),Fi=(n,e)=>n.reduce((t,r)=>r===e?t:t.concat(r>e?r-1:r),[]);var it=require("react"),Xr=require("@vuu-ui/vuu-utils");function en({activeFilterIndex:n,columnsByName:e,filters:t,onApplyFilter:r}){let i=(0,it.useCallback)(s=>{let o=s?(0,Xr.filterAsQuery)(s,{columnsByName:e}):"";r({filter:o,filterStruct:s})},[e,r]);(0,it.useEffect)(()=>{let s=n.map(o=>t[o]);if(s.length===0)i();else if(s.length===1){let[o]=s;i(o)}else i({op:"and",filters:s})},[n,i,t])}var tn={},rn=({columnDescriptors:n,containerRef:e,defaultFilterState:t,filterState:r,onApplyFilter:i,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a,showMenu:l})=>{let u=(0,O.useRef)(null),h=(0,O.useRef)(),[c,f]=(0,O.useState)(l),[d,p]=(0,O.useState)(),[g,F]=(0,O.useState)(null),k=(0,O.useMemo)(()=>$i(n),[n]),{activeFilterIndex:$,filters:E,onAddFilter:x,onChangeFilter:S,onDeleteFilter:m,onRenameFilter:v,onChangeActiveFilterIndex:C}=jr({defaultFilterState:t,filterState:r,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a});en({activeFilterIndex:$,columnsByName:k,filters:E,onApplyFilter:i});let y=(0,O.useCallback)(M=>{requestAnimationFrame(()=>{var T;let w=(T=e.current)==null?void 0:T.querySelectorAll(".vuuFilterPill");if(w!=null&&w[M]){let Q=w[M].querySelector(".vuuEditableLabel");Q&&(0,st.dispatchMouseEvent)(Q,"dblclick")}})},[e]),b=(0,O.useCallback)((M=0)=>{requestAnimationFrame(()=>{var T;let w=(T=e.current)==null?void 0:T.querySelector(".vuuFilterClause .saltInput-input");w&&w.focus()})},[e]),P=(0,O.useCallback)(M=>{requestAnimationFrame(()=>{var T,Q;let w=typeof M=="number"?(T=e.current)==null?void 0:T.querySelector(`.vuuOverflowContainer-item[data-index="${M}"] .vuuFilterPill`):(Q=e.current)==null?void 0:Q.querySelector(".vuuFilterPill[tabindex]");w&&w.focus()})},[e]),D=(0,O.useCallback)(M=>{m(M),requestAnimationFrame(()=>{E.length&&P(0)})},[E.length,P,m]),U=(0,O.useMemo)(()=>M=>{let w=()=>{F(null),P()};return{confirmButtonLabel:"Remove",icon:"warn-triangle",onCancel:w,onClose:w,onConfirm:()=>{F(null),D(M)},text:`Are you sure you want to delete ${M.name}`,title:"Remove Filter",variant:"warn"}},[D,P]),X=(0,O.useCallback)((M,w)=>{w?F(U(M)):D(M)},[D,U]),ee=(0,O.useCallback)(M=>{h.current=M},[]),K=(0,O.useCallback)((M,w="")=>{if(h.current){let T=v(h.current,w);h.current=void 0,P(T)}},[P,v]),Ae=(0,O.useCallback)(({menuId:M,options:w})=>{switch(M){case"delete-filter":{let{filter:T}=w;return X(T,!0),!0}case"rename-filter":{let{filter:T}=w,Q=E.indexOf(T);return y(Q),!0}case"edit-filter":{let{filter:T}=w;return h.current=T,p(T),b(),!0}default:return!1}},[X,y,E,b]),L=(0,O.useCallback)((M,w)=>{if(w===void 0){let T=x(M);y(T)}else S(w,M)},[y,x,S]),_=(0,O.useCallback)(({menuId:M})=>{switch(M){case"apply-save":return L(d,h.current),p(void 0),h.current=void 0,f(!1),!0;case"and-clause":{let w=et(d,tn);return p(w),f(!1),!0}case"or-clause":return p(w=>et(w,tn,{combineWith:"or"})),f(!1),!0;default:return!1}},[d,L]),Y=(0,O.useCallback)(()=>{p({})},[p]),te=(0,O.useCallback)(()=>{p(void 0)},[]),ce={onBeginEdit:ee,onMenuAction:Ae,onExitEditMode:K},Se=(0,O.useCallback)(M=>w=>{w!==void 0&&(p(T=>Ot(T,w,M)),f(!0))},[]),ze=(0,O.useCallback)(M=>{M==="Backspace"&&(0,st.isMultiClauseFilter)(d)&&p(Pt(d))},[d]),In=(0,O.useCallback)(M=>{let w=M.target,T=M.relatedTarget,Q=w.closest(".vuuFilterClause");if(!(Q!=null&&Q.contains(T))){let fe=w.getAttribute("aria-owns"),vt=fe?document.getElementById(fe):null;vt!=null&&vt.contains(T)||f(!0)}},[]),Tn=(0,O.useCallback)(()=>{f(!1)},[]),An=(0,O.useCallback)(M=>{M.key==="Escape"&&d!==void 0&&(p(void 0),requestAnimationFrame(()=>{}))},[d]),Dn=(0,O.useCallback)(M=>{var T;let{current:w}=e;if(M.key==="Backspace"&&w){M.preventDefault();let Q=Array.from(w.querySelectorAll(".vuuFilterClauseField"));if(Q.length>0){let fe=Q.at(-1);(T=fe==null?void 0:fe.querySelector("input"))==null||T.focus()}f(!1)}else if(M.key==="Tab")if(M.shiftKey&&w){let Q=Array.from(w.querySelectorAll(".vuuFilterClause-clearButton"));if(Q.length>0){let fe=Q.at(-1);setTimeout(()=>{fe.focus()},100)}}else console.log("apply current selection")},[e]),Nn=(0,O.useCallback)(M=>{M.key==="ArrowLeft"&&console.log("navgiate to the Toolbar")},[]),Bn=(0,O.useCallback)(M=>{var w;M==="end"&&((w=u.current)==null||w.focus())},[]);return{activeFilterIndex:$,addButtonProps:{ref:u,onKeyDown:Nn},columnsByName:k,editFilter:d,filters:E,onBlurFilterClause:In,onCancelFilterClause:ze,onChangeActiveFilterIndex:C,onClickAddFilter:Y,onClickRemoveFilter:te,onChangeFilterClause:Se,onFocusFilterClause:Tn,onKeyDownFilterbar:An,onKeyDownMenu:Dn,onMenuAction:_,onNavigateOutOfBounds:Bn,pillProps:ce,promptProps:g,showMenu:c}};function $i(n){return n.reduce((e,t)=>({...e,[t.name]:t}),{})}var le=require("react/jsx-runtime"),ot=require("react"),Me="vuuFilterBar",Si=({FilterClauseEditorProps:n,className:e,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterDeleted:o,onFilterRenamed:a,onFilterStateChanged:l,showMenu:u=!1,tableSchema:h,...c})=>{let f=(0,on.useRef)(null),{activeFilterIndex:d,addButtonProps:p,columnsByName:g,editFilter:F,filters:k,onBlurFilterClause:$,onCancelFilterClause:E,onClickAddFilter:x,onClickRemoveFilter:S,onChangeFilterClause:m,onChangeActiveFilterIndex:v,onFocusFilterClause:C,onNavigateOutOfBounds:y,onKeyDownFilterbar:b,onKeyDownMenu:P,onMenuAction:D,pillProps:U,promptProps:X,showMenu:ee}=rn({containerRef:f,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterStateChanged:l,onFilterDeleted:o,onFilterRenamed:a,showMenu:u}),K=H(Me,e,{[`${Me}-display`]:F===void 0,[`${Me}-edit`]:F!==void 0});return(0,le.jsxs)("div",{...c,className:K,onKeyDown:b,ref:f,children:[(0,le.jsx)(Gr,{}),(0,le.jsx)(sn.Toolbar,{activeItemIndex:d,onActiveChange:v,onNavigateOutOfBounds:y,selectionStrategy:"multiple-special-key",children:(()=>{let L=[];if(F===void 0)return k.forEach((_,Y)=>{L.push((0,ot.createElement)(At,{...U,columnsByName:g,filter:_,key:`filter-${Y}`}))}),L;if(F){let _=Ee(F);return L.push((0,le.jsx)("div",{className:`${Me}-Editor`,children:_.map((Y,te)=>(0,ot.createElement)(kt,{...n,columnsByName:g,filterClause:Y,key:`editor-${te}`,onCancel:E,onChange:m(te),onBlur:$,onFocus:C,tableSchema:h}))},"editor")),ee&&L.push((0,le.jsx)(Ft,{onMenuAction:D,ListProps:{onKeyDownCapture:P}},"menu")),L.push((0,le.jsx)(Nt.Button,{className:`${Me}-remove`,"data-align":"right","data-icon":"cross",onClick:S,variant:"primary"},"filter-remove")),L}})()}),F===void 0?(0,ot.createElement)(Nt.Button,{...p,className:`${Me}-add`,"data-icon":"plus","data-selectable":!1,key:"filter-add",onClick:x,tabIndex:0,variant:"primary"}):null,X?(0,le.jsx)(nn.Prompt,{...X,PopupProps:{anchorElement:f,offsetTop:16,placement:"below-center"}}):null]})};var er=require("@salt-ds/core");var B=require("@vuu-ui/vuu-codemirror");var wi=0,He=class{constructor(e,t){this.from=e,this.to=t}},A=class{constructor(e={}){this.id=wi++,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=re.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};A.closedBy=new A({deserialize:n=>n.split(" ")});A.openedBy=new A({deserialize:n=>n.split(" ")});A.group=new A({deserialize:n=>n.split(" ")});A.contextHash=new A({perNode:!0});A.lookAhead=new A({perNode:!0});A.mounted=new A({perNode:!0});var ki=Object.create(null),re=class n{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):ki,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new n(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),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 i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(A.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(A.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}};re.none=new re("",Object.create(null),0,8);var ut=class n{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let r of this.types){let i=null;for(let s of e){let o=s(r);o&&(i||(i=Object.assign({},r.props)),i[o[0].id]=o[1])}t.push(i?new re(r.name,i,r.id,r.flags):r)}return new n(t)}},at=new WeakMap,an=new WeakMap,V;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(V||(V={}));var q=class n{constructor(e,t,r,i,s){if(this.type=e,this.children=t,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=this.prop(A.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let i=r.toString();i&&(t&&(t+=","),t+=i)}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 Oe(this.topNode,e)}cursorAt(e,t=0,r=0){let i=at.get(this)||this.topNode,s=new Oe(i);return s.moveTo(e,t),at.set(this,s._tree),s}get topNode(){return new Fe(this,0,0,null)}resolve(e,t=0){let r=Pe(at.get(this)||this.topNode,e,t,!1);return at.set(this,r),r}resolveInner(e,t=0){let r=Pe(an.get(this)||this.topNode,e,t,!0);return an.set(this,r),r}iterate(e){let{enter:t,leave:r,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&V.IncludeAnonymous)>0;for(let l=this.cursor(o|V.IncludeAnonymous);;){let u=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;u=!0}for(;u&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Vt(re.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new n(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new n(re.none,t,r,i)))}static build(e){return Ei(e)}};q.empty=new q(re.none,[],[],0);var Bt=class n{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 n(this.buffer,this.index)}},Ce=class n{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return re.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],r=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let o=[];for(;e<r;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,r,i,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(un(s,i,o[l+1],o[l+2])&&(a=l,r>0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=i[a++],s[l++]=i[a++]-r;let u=s[l++]=i[a++]-r;s[l++]=i[a++]-e,o=Math.max(o,u)}return new n(s,o,this.set)}};function un(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function cn(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function Pe(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let o=!r&&n instanceof Fe&&n.index<0?null:n.parent;if(!o)return n;n=o}let s=r?0:V.IgnoreOverlays;if(r)for(let o=n,a=o.parent;a;o=a,a=o.parent)o instanceof Fe&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(n=a);for(;;){let o=n.enter(e,t,s);if(!o)return n;n=o}}var Fe=class n{constructor(e,t,r,i){this._tree=e,this.from=t,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,i,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,u=t>0?a.length:-1;e!=u;e+=t){let h=a[e],c=l[e]+o.from;if(un(i,r,c,c+h.length)){if(h instanceof Ce){if(s&V.ExcludeBuffers)continue;let f=h.findChild(0,h.buffer.length,t,r-c,i);if(f>-1)return new Ve(new Rt(o,h,e,c),null,f)}else if(s&V.IncludeAnonymous||!h.type.isAnonymous||Ht(h)){let f;if(!(s&V.IgnoreMounts)&&h.props&&(f=h.prop(A.mounted))&&!f.overlay)return new n(f.tree,c,e,o);let d=new n(h,c,e,o);return s&V.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?h.children.length-1:0,t,r,i)}}}if(s&V.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,r=0){let i;if(!(r&V.IgnoreOverlays)&&(i=this._tree.prop(A.mounted))&&i.overlay){let s=e-this.from;for(let{from:o,to:a}of i.overlay)if((t>0?o<=s:o<s)&&(t<0?a>=s:a>s))return new n(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Oe(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Pe(this,e,t,!1)}resolveInner(e,t=0){return Pe(this,e,t,!0)}enterUnfinishedNodesBefore(e){return cn(this,e)}getChild(e,t=null,r=null){let i=ct(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return ct(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return ft(this,e)}};function ct(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function ft(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Rt=class{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}},Ve=class n{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,r=0){if(r&V.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(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 n(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 n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Oe(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Pe(this,e,t,!1)}resolveInner(e,t=0){return Pe(this,e,t,!0)}enterUnfinishedNodesBefore(e){return cn(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let i=ct(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return ct(this,e,t,r)}get node(){return this}matchContext(e){return ft(this,e)}},Oe=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 Fe)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof Fe?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&V.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&V.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&V.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=i)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&V.IncludeAnonymous||a instanceof Ce||!a.type.isAnonymous||Ht(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,r=0;if(e&&e.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)t=new Ve(this.buffer,t,this.stack[i]);return this.bufferNode=new Ve(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,i=!0}}}matchContext(e){if(!this.buffer)return ft(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return ft(this.node,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function Ht(n){return n.children.some(e=>e instanceof Ce||!e.type.isAnonymous||Ht(e))}function Ei(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new Bt(t,t.length):t,l=r.types,u=0,h=0;function c(x,S,m,v,C){let{id:y,start:b,end:P,size:D}=a,U=h;for(;D<0;)if(a.next(),D==-1){let L=s[y];m.push(L),v.push(b-x);return}else if(D==-3){u=y;return}else if(D==-4){h=y;return}else throw new RangeError(`Unrecognized record size: ${D}`);let X=l[y],ee,K,Ae=b-x;if(P-b<=i&&(K=g(a.pos-S,C))){let L=new Uint16Array(K.size-K.skip),_=a.pos-K.size,Y=L.length;for(;a.pos>_;)Y=F(K.start,L,Y);ee=new Ce(L,P-K.start,r),Ae=K.start-x}else{let L=a.pos-D;a.next();let _=[],Y=[],te=y>=o?y:-1,ce=0,Se=P;for(;a.pos>L;)te>=0&&a.id==te&&a.size>=0?(a.end<=Se-i&&(d(_,Y,b,ce,a.end,Se,te,U),ce=_.length,Se=a.end),a.next()):c(b,L,_,Y,te);if(te>=0&&ce>0&&ce<_.length&&d(_,Y,b,ce,b,Se,te,U),_.reverse(),Y.reverse(),te>-1&&ce>0){let ze=f(X);ee=Vt(X,_,Y,0,_.length,0,P-b,ze,ze)}else ee=p(X,_,Y,P-b,U-P)}m.push(ee),v.push(Ae)}function f(x){return(S,m,v)=>{let C=0,y=S.length-1,b,P;if(y>=0&&(b=S[y])instanceof q){if(!y&&b.type==x&&b.length==v)return b;(P=b.prop(A.lookAhead))&&(C=m[y]+b.length+P)}return p(x,S,m,v,C)}}function d(x,S,m,v,C,y,b,P){let D=[],U=[];for(;x.length>v;)D.push(x.pop()),U.push(S.pop()+m-C);x.push(p(r.types[b],D,U,y-C,P-y)),S.push(C-m)}function p(x,S,m,v,C=0,y){if(u){let b=[A.contextHash,u];y=y?[b].concat(y):[b]}if(C>25){let b=[A.lookAhead,C];y=y?[b].concat(y):[b]}return new q(x,S,m,v,y)}function g(x,S){let m=a.fork(),v=0,C=0,y=0,b=m.end-i,P={size:0,start:0,skip:0};e:for(let D=m.pos-x;m.pos>D;){let U=m.size;if(m.id==S&&U>=0){P.size=v,P.start=C,P.skip=y,y+=4,v+=4,m.next();continue}let X=m.pos-U;if(U<0||X<D||m.start<b)break;let ee=m.id>=o?4:0,K=m.start;for(m.next();m.pos>X;){if(m.size<0)if(m.size==-3)ee+=4;else break e;else m.id>=o&&(ee+=4);m.next()}C=K,v+=U,y+=ee}return(S<0||v==x)&&(P.size=v,P.start=C,P.skip=y),P.size>4?P:void 0}function F(x,S,m){let{id:v,start:C,end:y,size:b}=a;if(a.next(),b>=0&&v<o){let P=m;if(b>4){let D=a.pos-(b-4);for(;a.pos>D;)m=F(x,S,m)}S[--m]=P,S[--m]=y-x,S[--m]=C-x,S[--m]=v}else b==-3?u=v:b==-4&&(h=v);return m}let k=[],$=[];for(;a.pos>0;)c(n.start||0,n.bufferStart||0,k,$,-1);let E=(e=n.length)!==null&&e!==void 0?e:k.length?$[0]+k[0].length:0;return new q(l[n.topID],k.reverse(),$.reverse(),E)}var ln=new WeakMap;function lt(n,e){if(!n.isAnonymous||e instanceof Ce||e.type!=n)return 1;let t=ln.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof q)){t=1;break}t+=lt(n,r)}ln.set(e,t)}return t}function Vt(n,e,t,r,i,s,o,a,l){let u=0;for(let p=r;p<i;p++)u+=lt(n,e[p]);let h=Math.ceil(u*1.5/8),c=[],f=[];function d(p,g,F,k,$){for(let E=F;E<k;){let x=E,S=g[E],m=lt(n,p[E]);for(E++;E<k;E++){let v=lt(n,p[E]);if(m+v>=h)break;m+=v}if(E==x+1){if(m>h){let v=p[x];d(v.children,v.positions,0,v.children.length,g[x]+$);continue}c.push(p[x])}else{let v=g[E-1]+p[E-1].length-S;c.push(Vt(n,p,g,x,E,S,v,null,l))}f.push(S+$-s)}}return d(e,t,r,i,0),(a||l)(c,f,o)}var ht=class{startParse(e,t,r){return typeof e=="string"&&(e=new Lt(e)),r=r?r.length?r.map(i=>new He(i.from,i.to)):[new He(0,0)]:[new He(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}},Lt=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 ba=new A({perNode:!0});var Qt=class n{constructor(e,t,r,i,s,o,a,l,u,h=0,c){this.p=e,this.stack=t,this.state=r,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=u,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let i=e.parser.context;return new n(e,[],t,r,r,0,[],0,i?new dt(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,i=e&65535,{parser:s}=this.p,o=s.dynamicPrecedence(i);if(o&&(this.score+=o),r==0){this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),this.reduceContext(i,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,u=this.reducePos-l;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=u));let h=a?this.stack[a-1]:0,c=this.bufferBase+this.buffer.length-h;if(i<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,f,c+4,!0)}if(e&262144)this.state=this.stack[a];else{let f=this.stack[a-3];this.state=s.getGoto(f,i,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(i,l)}storeNode(e,t,r,i=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==r)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>r;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4);this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=r,this.buffer[o+3]=i}}shift(e,t,r){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4);else{let s=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let r=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new n(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Ut(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&i.push(t[s],o);if(this.stack.length<120)for(let s=0;i.length<8&&s<t.length;s+=2){let o=t[s+1];i.some((a,l)=>l&1&&a==o)||i.push(t[s],o)}t=i}let r=[];for(let i=0;i<t.length&&r.length<4;i+=2){let s=t[i+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[i],this.pos),o.score-=200,r.push(o)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,i=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],i,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],r=(i,s)=>{if(!t.includes(i))return t.push(i),e.allActions(i,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,u=this.stack.length-a*3;if(u>=0&&e.getGoto(this.stack[u],l,!1)>=0)return a<<19|65536|l}}else{let a=r(o,s+1);if(a!=null)return a}})};return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new dt(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()}},dt=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},fn;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(fn||(fn={}));var Ut=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},Yt=class n{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new n(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 n(this.stack,this.pos,this.index)}};function _e(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,i=0;r<n.length;){let s=0;for(;;){let o=n.charCodeAt(r++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}var Ie=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},hn=new Ie,Wt=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=hn,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let r=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!i)return null;let o=this.ranges[--i];s-=r.from-o.to,r=o}for(;t<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-r.to,r=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,r,i;if(t>=0&&t<this.chunk.length)r=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=hn,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let r="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(r+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return r}},de=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;vn(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};de.prototype.contextual=de.prototype.fallback=de.prototype.extend=!1;var zt=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?_e(e):e}token(e,t){let r=e.pos,i=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(vn(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||i++,o==null)break;e.reset(o,e.token)}i&&(e.reset(r,e.token),e.acceptToken(this.elseToken,i))}};zt.prototype.contextual=de.prototype.fallback=de.prototype.extend=!1;function vn(n,e,t,r,i,s){let o=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[o];){let u=n[o+1];for(let d=o+3;d<u;d+=2)if((n[d+1]&a)>0){let p=n[d];if(l.allows(p)&&(e.token.value==-1||e.token.value==p||Pi(p,e.token.value,i,s))){e.acceptToken(p);break}}let h=e.next,c=0,f=n[o+2];if(e.next<0&&f>c&&n[u+f*3-3]==65535&&n[u+f*3-3]==65535){o=n[u+f*3-1];continue e}for(;c<f;){let d=c+f>>1,p=u+d+(d<<1),g=n[p],F=n[p+1]||65536;if(h<g)f=d;else if(h>=F)c=d+1;else{o=n[p+2],e.advance();continue e}}break}}function dn(n,e,t){for(let r=e,i;(i=n[r])!=65535;r++)if(i==t)return r-e;return-1}function Pi(n,e,t,r){let i=dn(t,r,e);return i<0||dn(t,r,n)<i}var ie=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),_t=null,pn;(function(n){n[n.Margin=25]="Margin"})(pn||(pn={}));function mn(n,e,t){let r=n.cursor(V.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var qt=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?mn(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?mn(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let r=this.trees[t],i=this.index[t];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],o=this.start[t]+r.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof q){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(A.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},Jt=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Ie)}getActions(e){let t=0,r=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let u=0;u<s.length;u++){if(!(1<<u&o))continue;let h=s[u],c=this.tokens[u];if(!(r&&!h.fallback)&&((h.contextual||c.start!=e.pos||c.mask!=o||c.context!=a)&&(this.updateCachedToken(c,h,e),c.mask=o,c.context=a),c.lookAhead>c.end+25&&(l=Math.max(c.lookAhead,l)),c.value!=0)){let f=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!h.extend&&(r=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Ie,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ie,{pos:r,p:i}=e;return t.start=r,t.end=Math.min(r+1,i.stream.end),t.value=r==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,r){let i=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(i,e),r),e.value>-1){let{parser:s}=r.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==e)return i;return this.actions[i++]=e,this.actions[i++]=t,this.actions[i++]=r,i}addActions(e,t,r,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let u=o.stateSlot(s,l?2:1);;u+=3){if(a[u]==65535)if(a[u+1]==1)u=ue(a,u+2);else{i==0&&a[u+1]==2&&(i=this.putAction(ue(a,u+2),t,r,i));break}a[u]==t&&(i=this.putAction(ue(a,u+1),t,r,i))}return i}},gn;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(gn||(gn={}));var Kt=class{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,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 Wt(t,i),this.tokens=new Jt(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[Qt.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new qt(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{i||(i=[],s=[]),i.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let o=i&&Oi(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw ie&&i&&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&&i){let o=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(r.length>o)for(r.sort((a,l)=>l.score-a.score);r.length>o;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let o=0;o<r.length-1;o++){let a=r[o];for(let l=o+1;l<r.length;l++){let u=r[l];if(a.sameState(u)||a.buffer.length>500&&u.buffer.length>500)if((a.score-u.score||a.buffer.length-u.buffer.length)>0)r.splice(l--,1);else{r.splice(o--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let o=1;o<r.length;o++)r[o].pos<this.minStackPos&&(this.minStackPos=r[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,r){let i=e.pos,{parser:s}=this,o=ie?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,h=u?e.curContext.hash:0;for(let c=this.fragments.nodeAt(i);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!u||(c.prop(A.contextHash)||0)==h))return e.useNode(c,f),ie&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof q)||c.children.length==0||c.positions[0]>0)break;let d=c.children[0];if(d instanceof q&&c.positions[0]==0)c=d;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),ie&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let u=0;u<l.length;){let h=l[u++],c=l[u++],f=l[u++],d=u==l.length||!r,p=d?e:e.split();if(p.apply(h,c,f),ie&&console.log(o+this.stackID(p)+` (via ${h&65536?`reduce of ${s.getName(h&65535)}`:"shift"} for ${s.getName(c)} @ ${i}${p==e?"":", split"})`),d)return!0;p.pos>i?t.push(p):r.push(p)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return yn(e,t),!0}}runRecovery(e,t,r){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],u=t[(o<<1)+1],h=ie?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),ie&&console.log(h+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let c=a.split(),f=h;for(let d=0;c.forceReduce()&&d<10&&(ie&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,r));d++)ie&&(f=this.stackID(c)+" -> ");for(let d of a.recoverByInsert(l))ie&&console.log(h+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,r);this.stream.end>a.pos?(u==a.pos&&(u++,l=0),a.recoverByDelete(l,u),ie&&console.log(h+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),yn(a,r)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),q.build({buffer:Yt.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=(_t||(_t=new WeakMap)).get(e);return t||_t.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function yn(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var Gt=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var pt=class n extends ht{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,l,u){i[a].push([l,l.deserialize(String(u))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=A[l]);for(let u=1;u<a.length;){let h=a[u++];if(h>=0)s(h,l,a[u++]);else{let c=a[u+-h];for(let f=-h;f>0;f--)s(a[u++],l,c);u++}}}this.nodeSet=new ut(t.map((a,l)=>re.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:i[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=_e(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(bn),this.states=_e(e.states,Uint32Array),this.data=_e(e.stateData),this.goto=_e(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new de(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,r){let i=new Kt(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}getGoto(e,t,r=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,l=i[s++];if(a&&r)return l;for(let u=s+(o>>1);s<u;s++)if(i[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=r[s])==65535)if(r[s+1]==1)o=r[s=ue(r,s+2)];else{if(r[s+1]==2)return ue(r,s+2);break}if(o==t||o==0)return ue(r,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),i=r?t(r):void 0;for(let s=this.stateSlot(e,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=ue(this.data,s+2);else break;i=t(ue(this.data,s+1))}return i}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=ue(this.data,r+2);else break;if(!(this.data[r+2]&1)){let i=this.data[r+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[r],i)}}return t}configure(e){let t=Object.assign(Object.create(n.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let i=e.tokenizers.find(s=>s.from==r);return i?i.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let o=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[i]=bn(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(r[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!r[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[a]=1;return new Gt(e,r,i)}static deserialize(e){return new n(e)}};function ue(n,e){return n[e]|n[e+1]<<16}function Oi(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function bn(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Qe=pt.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 ae=require("@vuu-ui/vuu-utils");var J,Zt=class{constructor(){rr(this,J,void 0)}setFilterCombinatorOp(e,t=oe(this,J)){(0,ae.isMultiClauseFilter)(t)&&t.op===e||Ct(this,J,{op:e,filters:[oe(this,J)]})}add(e){if(oe(this,J)===void 0)Ct(this,J,e);else if((0,ae.isMultiClauseFilter)(oe(this,J)))oe(this,J).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=oe(this,J)){if((0,ae.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=oe(this,J)){if((0,ae.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=oe(this,J)){var r;if((0,ae.isMultiClauseFilter)(t)){let i=t.filters.at(-1);i&&this.setValue(e,i)}else(0,ae.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,ae.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=oe(this,J)){return this.name?{...e,name:this.name}:e}};J=new WeakMap;var mt=(n,e)=>{let t=new Zt,r=n.cursor();do{let{name:i,from:s,to:o}=r;switch(i){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(s,o));break;case"Column":t.setColumn(e.substring(s,o));break;case"Operator":t.setOp(e.substring(s,o));break;case"String":t.setValue(e.substring(s+1,o-1));break;case"Number":t.setValue(parseFloat(e.substring(s,o)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(s,o);break;default:}}while(r.next());return t.toJSON()};var Ma=Qe.configure({strict:!0});var pe=require("react");var se=require("@vuu-ui/vuu-codemirror");var Ti=se.LRLanguage.define({name:"VuuFilterQuery",parser:Qe.configure({props:[(0,se.styleTags)({Identifier:se.tags.variableName,String:se.tags.string,Or:se.tags.emphasis,Operator:se.tags.operator})]})}),xn=()=>new se.LanguageSupport(Ti);var $e=require("@vuu-ui/vuu-codemirror"),Ai=$e.HighlightStyle.define([{tag:$e.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:$e.tags.comment,color:"green",fontStyle:"italic"}]),Cn=(0,$e.syntaxHighlighting)(Ai);var Fn=require("@vuu-ui/vuu-codemirror"),$n=Fn.EditorView.theme({"&":{color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)",fontSize:"var(--vuuFilterEditor-fontSize)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)",padding:0},".cm-line":{lineHeight:"var(--vuuFilterEditor-lineHeight)"},"&.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)",borderRadius:"4px",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{alignItems:"center",display:"flex",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-completionIcon":{height:"18px",flex:"0 0 16px"},".cm-completionLabel":{flex:"1 1 auto"},".cm-completionIcon-filter":{position:"relative","&:after":{background:"var(--salt-text-secondary-foreground)",content:"''","-webkit-mask":"var(--svg-filter) center center/13px 13px","-webkit-mask-repeat":"no-repeat",position:"absolute",height:"18px",left:"0px",top:"0px",width:"16px"}}},{dark:!1});var R=require("@vuu-ui/vuu-codemirror"),jt=require("react"),Sn=(n,e)=>{let t=n.prevSibling||n.parent;for(;t&&!["Column","Operator","In"].includes(t.name);)t=t.prevSibling||t.parent;if((t==null?void 0:t.name)==="In"||(t==null?void 0:t.name)==="Operator")return(0,R.getValue)(t,e)},Di=(n,e,t)=>{let r=(0,R.getValue)(n,e);if(!(t===void 0||r===t)&&["contains","ends","starts"].some(i=>i.startsWith(r.toLowerCase())))return r},wn=(n,e)=>{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name==="\u26A0";)t=t.prevSibling;if(t&&["As","Or","And"].includes(t.name))return(0,R.getValue)(t,e)},kn=(n,e)=>{if(n.name==="FilterName")return(0,R.getValue)(n,e);{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name!=="FilterName";)t=t.prevSibling;if(t&&t.name==="FilterName")return(0,R.getValue)(n,e)}},En=(n,e)=>{let t=n.prevSibling;if((t==null?void 0:t.name)==="Column")return(0,R.getValue)(t,e);if((t==null?void 0:t.name)==="Operator")return En(t,e)},Ni=(n,e)=>{let t=n.lastChild,r=[];for(;t&&t.name!=="In";){let i=(0,R.getValue)(t,e);if(i)r.push(i);else break;t=t.prevSibling}return r};var Mn=(n,e,t)=>{let r=(0,jt.useCallback)(async(i,s,o={})=>{let{startsWith:a=""}=o,l=await n.getSuggestions(s,o);return{from:i.pos-a.length,options:l}},[n]);return(0,jt.useCallback)(async i=>{var h,c;let{state:s,pos:o}=i,a=(h=i.matchBefore(/\w*/))!=null?h:{from:0,to:0,text:void 0},u=(0,R.syntaxTree)(s).resolveInner(o,-1);switch(console.log({nodeBeforeName:u.name}),u.name){case"Filter":if(i.pos===0)return r(i,"column");if(wn(u,s)==="as")return r(i,"name");{let d=kn(u,s);return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:d})}case"String":{let f=Sn(u,s),d=En(u,s),{from:p,to:g}=u;if(g-p===2&&i.pos===p+1){if(d&&f)return r(i,"columnValue",{columnName:d,operator:f,quoted:!0,startsWith:a.text})}else console.log(`we have a string, column is ${d} ${p} ${g}`)}break;case"As":return r(i,"name");case"FilterName":return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:kn(u,s)});case"Column":{let f=(0,R.getValue)(u,s);return await n.isPartialMatch("column",void 0,f)?r(i,"column",{startsWith:f}):r(i,"operator",{columnName:f})}case"\u26A0":{let f=(0,R.getNodeByName)(u,s),d=Sn(u,s),p=d?void 0:Di(u,s,f);return p?r(i,"operator",{columnName:f,startsWith:p}):r(i,"columnValue",{columnName:f,operator:d,startsWith:a.text})}case"Identifier":if(wn(u,s)==="as")return{from:i.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>e.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let f=(0,R.getNodeByName)(u,s),d=Ni(u,s);return r(i,"columnValue",{columnName:f,selection:d})}case"Comma":case"LBrack":{let f=(0,R.getNodeByName)(u,s);return r(i,"columnValue",{columnName:f})}case"ColumnValueExpression":{let f=(c=u.lastChild)==null?void 0:c.prevSibling;if((f==null?void 0:f.name)==="Column")return r(i,"operator",{columnName:(0,R.getNodeByName)(u,s)});if((f==null?void 0:f.name)==="Operator")return r(i,"columnValue",{columnName:(0,R.getNodeByName)(f,s),operator:(0,R.getValue)(f,s)})}break;case"In":return{from:i.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return r(i,"columnValue",{columnName:(0,R.getNodeByName)(u,s)});case"AndExpression":case"OrExpression":return r(i,"column");default:}},[t,r,e,n])};var Ue=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Bi=n=>H("vuuSuggestion",{vuuIllustration:n.isIllustration}),Ri=n=>{let e=n.lastIndexOf(" as ");return e!==-1?n.slice(0,e):n},Li=()=>console.log("noooop"),Xt=({existingFilter:n,onSubmitFilter:e,suggestionProvider:t})=>{let r=(0,pe.useRef)(null),i=(0,pe.useRef)(Li),s=(0,pe.useRef)(),o=Mn(t,i,n),[a,l]=(0,pe.useMemo)(()=>{let u=()=>{let g=Ue(s),F=g.state.doc.toString(),k=(0,B.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(k){let $=mt(k,F);return[$,Ri(F),$.name]}else return[void 0,"",void 0]},h=()=>{Ue(s).setState(p())},c=g=>{let[F,k,$]=u();e==null||e(F,k,g,$),h()},f=g=>B.keymap.of([{key:g,run(){return c(),!0}}]),d=g=>B.keymap.of([{key:g,run(){return(0,B.startCompletion)(Ue(s)),!0}}]),p=()=>B.EditorState.create({doc:"",extensions:[B.minimalSetup,(0,B.autocompletion)({override:[o],optionClass:Bi}),xn(),B.keymap.of(B.defaultKeymap),f("Ctrl-Enter"),d("ArrowDown"),B.EditorView.updateListener.of(g=>{let F=Ue(s);g.docChanged&&(0,B.startCompletion)(F)}),B.EditorState.transactionFilter.of(g=>g.newDoc.lines>1?[]:g),$n,Cn]});return i.current=g=>{c(g),setTimeout(()=>{Ue(s).focus()},100)},[p,h]},[o,e]);return(0,pe.useEffect)(()=>{if(!r.current)throw Error("editor not in dom");return s.current=new B.EditorView({state:a(),parent:r.current}),()=>{var u;(u=s.current)==null||u.destroy()}},[o,a]),{editorRef:r,clearInput:l}};var Te=require("react/jsx-runtime"),gt="vuuFilterInput",Hi=({existingFilter:n,iconName:e="filter",namedFilters:t,onSubmitFilter:r,suggestionProvider:i,...s})=>{let{editorRef:o,clearInput:a}=Xt({existingFilter:n,onSubmitFilter:r,suggestionProvider:i});return(0,Te.jsxs)("div",{...s,className:gt,children:[(0,Te.jsx)(er.Button,{className:`${gt}-FilterButton`,"data-icon":e,tabIndex:-1}),(0,Te.jsx)("div",{className:`${gt}-Editor`,ref:o}),(0,Te.jsx)(er.Button,{className:`${gt}-ClearButton`,"data-icon":"close-circle",onClick:a})]})};var ne=require("@vuu-ui/vuu-codemirror"),bt=require("@vuu-ui/vuu-data-react"),We=require("react");var Ye=require("@vuu-ui/vuu-utils"),Pn=(n,e)=>{let t=(0,Ye.createEl)("div","vuuFunctionDoc"),r=(0,Ye.createEl)("div","function-heading"),i=(0,Ye.createEl)("span","function-name",n);r.appendChild(i);let s=(0,Ye.createEl)("p",void 0,e);return t.appendChild(r),t.appendChild(s),t};var Vi=[],_i={},Qi=n=>[{label:"Press ENTER to create TAB",apply:()=>n("tab"),boost:6}],On=(n,e,t=!0)=>{let r=e?[{label:"REPLACE existing filter",apply:()=>n("replace"),boost:8},{label:"AND existing filter",apply:()=>n("and"),boost:7},{label:"OR existing filter",apply:()=>n("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>n(),boost:6}];return t?r.concat(ne.booleanJoinSuggestions).concat(ne.asNameSuggestion):r},Ui=(n,e)=>On(n,e,!0),Yi=n=>On(n,void 0),Wi=({existingFilter:n,filterName:e,onSubmit:t,saveOptions:r})=>{let i=e&&r.allowSaveAsTab,s=n?Ui(t,n):Yi(t);return i?s.concat(Qi(t)):s},zi=n=>n.map(e=>({boost:5,label:e.name})),qi=n=>n?Array.from(n.entries()).map(([e,t])=>({info:()=>Pn(e,t),label:e,type:"filter"})):Vi,Ji={label:"Done",apply:"] ",type:"keyword",boost:10},yt=(n,e="")=>n.filter(t=>e===""||t.label.startsWith(e)).map(t=>({...t,apply:t.label+" "})),Ki={allowReplace:!0},Gi=({columns:n,namedFilters:e,saveOptions:t=Ki,table:r,typeaheadHook:i=bt.useTypeaheadSuggestions})=>{let s=(0,We.useRef)(),o=i(),a=(0,We.useCallback)(async(u,h=_i)=>{let{columnName:c,existingFilter:f,filterName:d,operator:p,quoted:g,onSubmit:F,startsWith:k,selection:$}=h;switch(u){case"operator":{let E=n.find(x=>x.name===c);if(E)switch(E.serverDataType){case"string":case"char":return yt(ne.stringOperators,k);case"int":case"long":case"double":return yt(ne.numericOperators)}else console.warn(`'${c}' does not match any column name`)}break;case"column":{let E=await zi(n),x=await qi(e);return(s.current=yt(E)).concat(yt(x))}case"columnValue":if(c){let E=n.find(C=>C.name===c);if(!E)throw Error(`useFilterSUggestionProvider no column ${c}`);let x=Array.isArray($)?$.length===0?"[":",":"",S=(0,bt.getTypeaheadParams)(r,c,k),m=await o(S),v=p==="starts";return s.current=(0,ne.toSuggestions)(m,{moveCursorToEnd:g,quoted:(E==null?void 0:E.serverDataType)==="string"&&!g,suffix:g?"":" ",prefix:v?k:x,isIllustration:v}),Array.isArray($)&&($==null?void 0:$.length)>1?[Ji,...s.current]:s.current}break;case"save":{if(typeof F!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await Wi({existingFilter:f,filterName:d,onSubmit:F,saveOptions:t})}case"name":return await(0,ne.getNamePrompt)("filter");default:}return[]},[n,o,e,t,r]),l=(0,We.useCallback)(async(u,h,c)=>{let f=await a(u,{columnName:h});if(c&&f)for(let d of f){if(d.label===c)return!1;if(d.label.startsWith(c))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:l}};var Zi=n=>{let e=localStorage.getItem(n);return e?JSON.parse(e):void 0},ji=n=>Object.entries(localStorage).filter(([e])=>e.includes(n)).map(([,e])=>JSON.parse(e)),Xi=(n,e)=>{try{return localStorage.setItem(n,JSON.stringify(e)),e}catch{return}};
1
+ "use strict";var xt=Object.defineProperty;var Rn=Object.getOwnPropertyDescriptor;var Ln=Object.getOwnPropertyNames;var Hn=Object.prototype.hasOwnProperty;var Vn=(n,e)=>{for(var t in e)xt(n,t,{get:e[t],enumerable:!0})},_n=(n,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ln(e))!Hn.call(n,i)&&i!==t&&xt(n,i,{get:()=>e[i],enumerable:!(r=Rn(e,i))||r.enumerable});return n};var Qn=n=>_n(xt({},"__esModule",{value:!0}),n);var tr=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var oe=(n,e,t)=>(tr(n,e,"read from private field"),t?t.call(n):e.get(n)),rr=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},Ct=(n,e,t,r)=>(tr(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);var es={};Vn(es,{AND:()=>W,ENDS_WITH:()=>ui,EQUALS:()=>je,ExpandoCombobox:()=>he,FilterBar:()=>$i,FilterBuilderMenu:()=>Ft,FilterClauseEditor:()=>kt,FilterClauseTextValueEditor:()=>$t,FilterInput:()=>Hi,FilterPill:()=>At,GREATER_THAN:()=>ai,IN:()=>Lr,LESS_THAN:()=>li,OR:()=>Rr,STARTS_WITH:()=>Et,addClause:()=>et,addFilter:()=>ci,filterClauses:()=>Ee,filterEquals:()=>Xe,filterIncludesColumn:()=>Qr,getAllLocalEntity:()=>ji,getLocalEntity:()=>Zi,getNumericFilter:()=>vi,getTypeaheadFilter:()=>bi,overrideColName:()=>_r,removeFilter:()=>mi,removeLastClause:()=>Pt,replaceClause:()=>Ot,saveLocalEntity:()=>Xi,splitFilterOnColumn:()=>gi,updateFilter:()=>Yr,useCodeMirrorEditor:()=>Xt,useFilterSuggestionProvider:()=>Gi});module.exports=Qn(es);var nn=require("@vuu-ui/vuu-popups"),sn=require("@vuu-ui/vuu-ui-controls"),Nt=require("@salt-ds/core");function nr(n){var e,t,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n))for(e=0;e<n.length;e++)n[e]&&(t=nr(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function Un(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=nr(n))&&(r&&(r+=" "),r+=e);return r}var H=Un;var on=require("react");var De=require("react"),qe=require("@vuu-ui/vuu-popups"),we=require("@vuu-ui/vuu-ui-controls");var G=require("react/jsx-runtime"),ir="vuuFilterBuilderMenu",Ft=({ListProps:n,onMenuAction:e})=>{let t=(0,De.useRef)(null),r=(0,De.useCallback)(s=>{s&&requestAnimationFrame(()=>{s.focus()})},[]),i=(0,De.useCallback)((s,o)=>{let{props:{"data-action":a}}=o;e({type:"menu-action",menuId:a,options:{}})},[e]);return(0,G.jsxs)(G.Fragment,{children:[(0,G.jsx)("span",{className:`${ir}-trigger`,ref:t}),(0,G.jsx)(qe.Portal,{children:(0,G.jsx)(qe.PopupComponent,{anchorElement:t,placement:"right",children:(0,G.jsxs)(we.List,{...n,className:`${ir}List`,defaultHighlightedIndex:0,itemHeight:22,ref:r,onSelect:i,style:{position:"relative"},width:100,children:[(0,G.jsx)(we.ListItem,{"data-action":"apply-save",children:(0,G.jsx)("span",{className:"vuuMenuButton",children:"APPLY AND SAVE"})}),(0,G.jsx)(we.ListItem,{"data-action":"and-clause",children:"AND"}),(0,G.jsx)(we.ListItem,{"data-action":"or-clause",children:"OR"})]})})})]})};var or=require("@vuu-ui/vuu-utils"),ar=require("@vuu-ui/vuu-ui-controls");var Z=require("react");var St=require("react/jsx-runtime"),sr="vuuExpandoCombobox",Yn={},he=(0,Z.forwardRef)(function({className:e,InputProps:t=Yn,ListProps:r,onInputChange:i,onSelectionChange:s,selectionStrategy:o,source:a,style:l,title:u,value:h="",...c},f){let[d,p]=(0,Z.useState)(h),{itemToString:g=or.itemToString}=c,F=(0,Z.useRef)(h),k=(0,Z.useCallback)(y=>{let[b,...P]=y;return P.length?`${g(b)} + ${P.length}`:g(b)},[g]),S=(0,Z.useCallback)(y=>{let{value:b}=y.target;p(b),i==null||i(y)},[i]),E=(0,Z.useCallback)(y=>{p(y)},[]),[x,$]=(0,Z.useMemo)(()=>{let{inputProps:y,...b}=t;return[{...b,className:`${sr}-Input`,endAdornment:null,inputProps:{...y,autoComplete:"off",onInput:S}},{...r,className:H("vuuMenuList",r==null?void 0:r.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:80,width:"content-width"}]},[t,S,r]),m=(0,Z.useCallback)((y,b)=>{Array.isArray(b)?s==null||s(null,b):b&&(p(g(b)),s==null||s(null,b))},[g,s]),v=()=>{if(F.current!==void 0)return Array.isArray(F.current)?a==null?void 0:a.filter(y=>F.current.includes(g(y))):a==null?void 0:a.find(y=>g(y)===F.current)},C={minWidth:"fit-content"};return(0,St.jsx)("div",{className:H(sr,e),"data-text":d,ref:f,style:l,children:(0,St.jsx)(ar.ComboBox,{...c,PopupProps:C,allowEnterCommitsText:!0,defaultSelected:v(),defaultValue:Array.isArray(F.current)?k(F.current):F.current,fullWidth:!0,ListProps:$,InputProps:x,itemsToString:k,onSelectionChange:m,onSetSelectedText:E,selectionStrategy:o,source:a})})});var Er=require("@salt-ds/core");var Mr=require("react");var Je=require("@vuu-ui/vuu-utils"),Wn=["=","in","!=","starts","ends"],zn=["=","!=",">",">=","<","<="],lr=n=>{if((0,Je.isTextColumn)(n))return Wn;if((0,Je.isNumericColumn)(n))return zn;throw Error("getOperators only supports text and numeric columns")};var me=require("react"),ur=require("@vuu-ui/vuu-ui-controls"),Ke=require("@vuu-ui/vuu-utils"),fr=require("react/jsx-runtime"),cr=(0,me.forwardRef)(function({InputProps:e,className:t,onInputComplete:r,value:i},s){let[o,a]=(0,me.useState)((0,Ke.isValidNumber)(i)?i.toString():""),l=(0,me.useCallback)(h=>{let{value:c}=h.target,f=parseFloat(c);(0,Ke.isValidNumber)(f)&&console.log("its valid"),a(c)},[]),u=(0,me.useCallback)(h=>{if(h.key==="Enter"){let{value:c}=h.target,f=parseFloat(c);(0,Ke.isValidNumber)(f)&&r(f)}},[r]);return(0,fr.jsx)(ur.ExpandoInput,{...e,className:t,value:o,ref:s,onChange:l,onKeyDown:u})});var z=require("react"),dr=require("@vuu-ui/vuu-data-react"),pr=require("@vuu-ui/vuu-ui-controls");var Ne=require("react/jsx-runtime"),qn=["Enter"," "],Jn=n=>{if(n.session){let{module:e,session:t}=n;return{module:e,table:t}}else return n},hr=["No matching data"],$t=(0,z.forwardRef)(function({InputProps:e={},className:t,column:r,"data-field":i,onDeselect:s,onInputComplete:o,operator:a,suggestionProvider:l=dr.useTypeaheadSuggestions,table:u,value:h},c){var v;let f=a==="in",[d,p]=(0,z.useState)((v=h==null?void 0:h.toString())!=null?v:""),[g,F]=(0,z.useState)([]),k=l(),S=(0,z.useCallback)((C,y)=>o(y),[o]),E=(0,z.useCallback)((C,y)=>o(y),[o]);(0,z.useEffect)(()=>{if(u){let C=Jn(u),y=d&&!f?[C,r.name,d]:[C,r.name];k(y).then(b=>{b.length===0&&d?F(hr):F(b)}).catch(b=>{console.error("Error getting suggestions",b)})}},[u,r,d,k,f]);let x=(0,z.useCallback)(C=>{let{value:y}=C.target;p(y)},[]),$=(0,z.useMemo)(()=>{if(a!=="in"){let{inputProps:C,...y}=e;return{...y,inputProps:{...C,onKeyDown:b=>{var P;b.key==="Enter"&&d!==""?(b.stopPropagation(),b.preventDefault(),o(d)):(P=C==null?void 0:C.onKeyDown)==null||P.call(C,b)}}}}else return e},[e,o,a,d]);return(0,z.useCallback)(()=>{switch(a){case"in":return(0,Ne.jsx)(he,{InputProps:$,className:t,"data-field":i,initialHighlightedIndex:0,source:g,onInputChange:x,onSelectionChange:E,ref:c,selectionStrategy:"multiple",selectionKeys:qn,value:h});case"starts":return(0,Ne.jsx)(he,{InputProps:$,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,disableFilter:g===hr&&(d==null?void 0:d.length)>0,source:g,onInputChange:x,onSelectionChange:S,ref:c,value:h});case"ends":return(0,Ne.jsx)(pr.ExpandoInput,{...$,className:t,"data-field":i,value:d,ref:c,onChange:x});default:return(0,Ne.jsx)(he,{InputProps:$,allowBackspaceClearsSelection:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,source:g,title:"value",onInputChange:x,onDeselect:s,onSelectionChange:S,ref:c,value:h})}},[$,a,t,i,g,x,E,c,h,d,s,S])()});var Cr=require("@vuu-ui/vuu-utils");var Be=require("react");var wt=null;function mr(){return wt==null&&(wt=new Intl.DateTimeFormat().resolvedOptions().timeZone),wt}var Kn=["hours","minutes","seconds"],Vs=["years","months","weeks","days",...Kn];var gr=1080,Gn=24*gr,Zn=29,jn=12*gr+793,_s=Zn*Gn+jn;var yr=require("@vuu-ui/vuu-ui-controls"),br=require("@vuu-ui/vuu-utils"),xr=require("react/jsx-runtime"),vr=n=>{let{value:e,onInputComplete:t,operator:r}=n,i=ei(r),[s,o]=(0,Be.useState)(()=>Xn(e)),a=(0,Be.useCallback)(u=>{o(u)},[]),l=(0,Be.useCallback)(()=>{s&&t(i(s))},[s,t,i]);return(0,xr.jsx)(yr.DatePicker,{className:"vuuFilterClause-DatePicker",selectedDate:s,onBlur:l,onSelectedDateChange:a,closeOnSelection:!0,hideOutOfRangeDates:!0})};function Xn(n){return n?(0,br.toCalendarDate)(new Date(n)):void 0}var ei=n=>(e,t=mr())=>{let r=e.toDate(t);switch(n){case">":case"<=":return r.setHours(23,59,59,999),r.getTime();case">=":case"<":case"=":case"!=":return r.setHours(0,0,0,0),r.getTime()}};var Ze=require("react/jsx-runtime"),Ge="vuuFilterClause",Fr=({selectedColumn:n,operator:e,InputProps:t,onChangeValue:r,onDeselectValue:i,suggestionProvider:s,table:o,value:a})=>{if(n===void 0||e===void 0)return null;if((0,Cr.isDateTimeColumn)(n))return(0,Ze.jsx)(vr,{value:a,operator:e,onInputComplete:r});switch(n.serverDataType){case"string":case"char":return(0,Ze.jsx)($t,{InputProps:t,className:H(`${Ge}Field`,`${Ge}Value`),column:n,"data-field":"value",onDeselect:i,onInputComplete:r,operator:e,suggestionProvider:s,table:o,value:a});case"int":case"long":case"double":return(0,Ze.jsx)(cr,{InputProps:t,className:H(`${Ge}Field`,`${Ge}Value`),column:n,onInputComplete:r,operator:e});default:return console.log("returning null"),null}};var ke=require("@vuu-ui/vuu-utils"),N=require("react"),ti=n=>n.selectionStart===0,ri=n=>n.selectionStart===n.value.length,Sr=n=>n!=null&&n.classList.contains("vuuFilterClauseColumn")?"column":n!=null&&n.classList.contains("vuuFilterClauseOperator")?"operator":"value",wr=()=>{let n=document.activeElement;return n!=null&&n.classList.contains("vuuFilterClause-clearButton")?n:n==null?void 0:n.closest(".vuuFilterClauseField")},Re=(n="fwd")=>{var r;let e=wr(),t=e==null?void 0:e.closest(".vuuFilterClause");if(n==="fwd"&&(t==null?void 0:t.lastChild)===e)requestAnimationFrame(()=>{Re()});else{let i=n==="fwd"?e==null?void 0:e.nextElementSibling:e==null?void 0:e.previousElementSibling;(r=i==null?void 0:i.querySelector("input"))==null||r.focus()}},ni=n=>{var t;let e=n.closest("[data-index]");if(e){let r=e.dataset.index;return((t=e==null?void 0:e.parentElement)==null?void 0:t.querySelector(`[data-index]:has(.vuuFilterClause):has(+[data-index="${r}"])`))!==null}},$r=()=>{let n=wr(),e=n==null?void 0:n.closest(".vuuFilterClause");if(e&&n)if(n.classList.contains("vuuFilterClauseValue")){let t=e.querySelector(".vuuFilterClause-clearButton");t==null||t.focus()}else Re()},ii=n=>{let e=n.target,t=ti(e),r=ri(e),i=e.closest(".vuuFilterClauseField");if(n.key==="ArrowLeft"){if(t){if(Sr(i)==="column")return;{let o=i.previousSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}else if(n.key==="ArrowRight"){if(r){if(Sr(i)==="value")return;{let o=i.nextSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}},si=n=>(0,ke.isMultiValueFilter)(n)?n.values:(0,ke.isSingleValueFilter)(n)?n.value:void 0,kr=({filterClause:n,onCancel:e,onChange:t,columnsByName:r})=>{let i=(0,N.useRef)(null),s=(0,N.useRef)(null),[o,a]=(0,N.useState)(n.column?r[n.column]:void 0),[l,u]=(0,N.useState)(n.op),h=(0,N.useCallback)(m=>{u(m)},[]),[c,f]=(0,N.useState)(si(n)),d=(0,N.useCallback)((m,v)=>{a(v!=null?v:void 0),h(void 0),f(void 0),setTimeout(()=>{$r()},100)},[h]),p=(0,N.useCallback)(m=>{var C;let v=m.target;if(v.value===""){let y=v.closest(".vuuFilterClauseField,[data-field]");switch((C=y==null?void 0:y.dataset)==null?void 0:C.field){case"operator":{h(void 0),a(void 0),Re("bwd");break}case"value":{h(void 0),Re("bwd");break}case"column":ni(v)&&(console.log("This is NOT the first clause"),e==null||e("Backspace"))}}},[e,h]),g=(0,N.useCallback)((m,v)=>{let C=v;if(C===void 0||(0,ke.isValidFilterClauseOp)(C))h(C),$r();else throw Error(`FilterClauseEditor, invalid value ${C} for filter clause`)},[h]),F=(0,N.useCallback)(m=>{f(m),m!==null&&m!==""&&(Array.isArray(m)?t({column:o==null?void 0:o.name,op:l,values:m}):t({column:o==null?void 0:o.name,op:l,value:m}))},[t,l,o==null?void 0:o.name]),k=(0,N.useCallback)(()=>{f(void 0)},[]),S=(0,N.useCallback)(m=>{["ArrowLeft","ArrowRight"].includes(m.key)?ii(m):m.key==="Backspace"&&p(m)},[p]),E=(0,N.useCallback)(m=>{var y;let C=(y=m.target.closest(".vuuFilterClause"))==null?void 0:y.querySelector("input");a(void 0),h(void 0),f(void 0),setTimeout(()=>{C.select(),C==null||C.focus()},100)},[h]),x=(0,N.useCallback)(m=>{m.stopPropagation(),m.key==="Backspace"&&Re("bwd")},[]),$=(0,N.useMemo)(()=>({inputProps:{onKeyDownCapture:S}}),[S]);return(0,N.useEffect)(()=>{var v;let m=(v=i.current)==null?void 0:v.querySelector("input");m==null||m.focus()},[]),{InputProps:$,columnRef:i,onChangeValue:F,onClear:E,onClearKeyDown:x,onDeselectValue:k,onColumnSelect:d,onOperatorSelect:g,operator:l,operatorRef:s,selectedColumn:o,value:c}};var ye=require("react/jsx-runtime"),ge="vuuFilterClause",kt=({className:n,columnsByName:e,onCancel:t,onChange:r,onDropdownClose:i,onDropdownOpen:s,filterClause:o,suggestionProvider:a,tableSchema:l,...u})=>{var v;let{InputProps:h,columnRef:c,onChangeValue:f,onClear:d,onClearKeyDown:p,onDeselectValue:g,onColumnSelect:F,onOperatorSelect:k,operator:S,operatorRef:E,selectedColumn:x,value:$}=kr({filterClause:o,onCancel:t,onChange:r,columnsByName:e}),m=(0,Mr.useMemo)(()=>Object.values(e),[e]);return(0,ye.jsxs)("div",{className:H(ge,n),...u,tabIndex:0,children:[(0,ye.jsx)(he,{InputProps:h,allowBackspaceClearsSelection:!0,className:H(`${ge}Field`,`${ge}Column`),"data-field":"column",initialHighlightedIndex:0,itemToString:C=>C.name,onListItemSelect:F,ref:c,source:m,title:"column",value:(v=x==null?void 0:x.name)!=null?v:""}),x!=null&&x.name?(0,ye.jsx)(he,{InputProps:h,allowBackspaceClearsSelection:!0,className:H(`${ge}Field`,`${ge}Operator`,{[`${ge}Operator-hidden`]:x===null}),"data-field":"operator",initialHighlightedIndex:0,onListItemSelect:k,ref:E,source:lr(x),title:"operator",value:S!=null?S:""}):null,(0,ye.jsx)(Fr,{InputProps:h,onChangeValue:f,onDeselectValue:g,operator:S,selectedColumn:x,suggestionProvider:a,table:l==null?void 0:l.table,value:$}),$!==void 0?(0,ye.jsx)(Er.Button,{className:`${ge}-clearButton`,onClick:d,onKeyDown:p,"data-icon":"close"}):null]})};var nt=require("@vuu-ui/vuu-popups"),qr=require("@vuu-ui/vuu-ui-controls"),Jr=require("@vuu-ui/vuu-utils");var ve=require("react");var Ar=require("@vuu-ui/vuu-popups"),Dr=require("react");var Pr=n=>({label:"Close",location:"filter",action:"close-filter",options:n}),Or=n=>({label:"Delete",location:"filter",action:"delete-filter",options:n}),Ir=n=>({label:"Rename",location:"filter",action:"rename-filter",options:n}),Tr=n=>({label:"Edit",location:"filter",action:"edit-filter",options:n});var Br=require("react/jsx-runtime"),oi="vuuFilterPillMenu",Nr=({allowClose:n=!0,allowDelete:e=!0,allowEdit:t=!0,allowRename:r=!0,filter:i,location:s,onMenuAction:o,onMenuClose:a})=>{let[l,u]=(0,Dr.useMemo)(()=>[(h,c)=>{let f=[];return r&&f.push(Ir(c)),t&&f.push(Tr(c)),n&&f.push(Pr(c)),e&&f.push(Or(c)),f},{filter:i}],[n,e,t,r,i]);return(0,Br.jsx)(Ar.PopupMenu,{className:oi,menuBuilder:l,menuActionHandler:o,menuLocation:H("filter",s),menuOptions:u,onMenuClose:a,tabIndex:-1})};var rt=require("@vuu-ui/vuu-utils");var j=require("@vuu-ui/vuu-utils");var I=require("@vuu-ui/vuu-utils"),W="and",je="=",ai=">",li="<",Rr="or",Et="starts",ui="ends",Lr="in",Ee=(n,e=[])=>(n&&((0,I.isMultiClauseFilter)(n)?n.filters.forEach(t=>e.push(...Ee(t))):e.push(n)),e),Hr={combineWith:"and"},Pt=n=>{let{filters:e}=n;return e.length>2?{...n,filters:n.filters.slice(0,-1)}:n.filters[0]},et=(n,e,{combineWith:t=W}=Hr)=>(0,I.isMultiClauseFilter)(n)&&n.op===t?{...n,filters:n.filters.concat(e)}:{op:t,filters:[n,e]},Ot=(n,e,t)=>n===void 0?e:Vr(n,e,t).filter;function Vr(n,e,t,r=0){if((0,I.isMultiClauseFilter)(n)){let i=r,s=n.filters.map(o=>{let a=Vr(o,e,t,i);return i=a.nextIdx,a.filter});return{filter:{...n,filters:s},nextIdx:i}}else{if(t!==r)return{filter:n,nextIdx:r+1};{let{name:i}=n;return{filter:{...(0,I.isNotNullOrUndefined)(i)?{name:i}:{},...e},nextIdx:r+1}}}}var ci=(n,e,{combineWith:t=W}=Hr)=>{var r;if(It(e))(0,I.isMultiClauseFilter)(e)||(n=Mt(n,{name:e.column}));else if(fi(e))return(0,I.isMultiClauseFilter)(e),Mt(n,{name:(r=e.column)!=null?r:""});if(!n)return e;if(!e)return n;if(n.op===W&&e.op===W)return{op:W,filters:pi(n.filters,e.filters)};if(n.op===W){let i=hi(n.filters,e);return i.length>1?{op:W,filters:i}:i[0]}return e.op===W?{op:W,filters:e.filters.concat(n)}:Xe(n,e,!0)?e:Ur(n,e)?di(n,e):{op:t,filters:[n,e]}},It=n=>n?(0,I.isInFilter)(n)&&n.values.length===0?!0:(0,I.isAndFilter)(n)&&n.filters.some(e=>It(e)):!1,fi=n=>n?n.op===Et&&n.value===""?!0:n.op===Et&&n.value==="":!1,hi=(n,e)=>n.concat(e),di=(n,e)=>It(e)?e:(0,I.isInFilter)(n)&&(0,I.isInFilter)(e)?{...n,values:[...n.values,...e.values.filter(t=>!n.values.includes(t))]}:(0,I.isInFilter)(n)&&e.op===je?{...n,values:n.values.concat([e.value])}:n.op===je&&e.op===je?{column:n.column,op:Lr,values:[n.value,e.value]}:e,pi=(n,e)=>{let t=({op:s},{op:o})=>s===o||s[0]===">"&&o[0]===">"||s[0]==="<"&&o[0]==="<",r=(s,o)=>s.column===o.column&&t(s,o),i=s=>e.some(o=>r(s,o))===!1;return n.filter(i).concat(e)},mi=(n,e)=>{if(Xe(n,e,!0))return null;if(n.op!==W)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(n)}`);let t=n.filters.filter(r=>!Xe(r,e));return t.length>0?{type:W,filters:t}:null},gi=(n,e)=>{if(!e)return[void 0,void 0];if(e.column===n)return[e,void 0];if(e.op!==W)return[void 0,e];let[[t=void 0],r]=(0,I.partition)(e.filters,i=>i.column===n);return r.length===1?[t,r[0]]:[t,{op:W,filters:r}]},_r=(n,e)=>(0,I.isMultiClauseFilter)(n)?{op:n.op,filters:n.filters.map(t=>_r(t,e))}:{...n,column:e},Qr=(n,e)=>{if(!n)return!1;let{op:t,column:r}=n;switch(t){case W:case Rr:return n.filters!=null&&n.filters.some(i=>Qr(i,e));default:return r===e.name}},Mt=(n,e)=>{let t=e.name;if(n&&n.column!==t){if((0,I.isAndFilter)(n)||(0,I.isOrFilter)(n)){let{op:r}=n,s=n.filters.filter(o=>o.column!==t);switch(s.length){case 0:return;case 1:return s[0];default:return{op:r,filters:s}}}return n}},Ur=(n,e)=>n.column===e.column&&(n.op==="="||n.op==="in")&&(e.op==="="||e.op==="in"),yi=(n,e)=>{if(n===e)return!0;if(n.length===e.length){let t=n.slice().sort(),r=e.slice().sort();return t.join("|")===r.join("|")}return!1},Xe=(n,e,t=!1)=>t?n&&e&&Ur(n,e)?n.op===e.op&&((0,I.isSingleValueFilter)(n)&&(0,I.isSingleValueFilter)(e)&&n.value===e.value||(0,I.isMultiValueFilter)(n)&&(0,I.isMultiValueFilter)(e)&&yi(n.values,e.values)):!1:!0,Yr=(n,e,t)=>{if(n&&e){if(t==="replace")return e;if(n.op==="and")return{...n,filters:n.filters.concat(e)};let{column:r}=e;if(r&&(e.column?(0,I.extractFilterForColumn)(n,r):void 0)&&r){let s=Mt(n,{name:r});return Yr(s,e,"add")}return{op:"and",filters:[n,e]}}return e||n},bi=(n,e,t)=>{if(e.length!==0){if(t){let r=e[0].substring(0,e[0].length-3);return{column:n,op:"starts",value:`"${r}"`}}return{column:n,op:"in",values:e.map(r=>`"${r}"`)}}},vi=(n,e,t)=>{if(e!==void 0&&!(t===void 0||isNaN(t)))return{column:n,op:e,value:t}};function xi(n,e){return"value"in n?{...n,value:e(n.value)}:{...n,values:n.values.map(e)}}function Wr(n,e){let t=e==null?void 0:e[n.column];if(t&&(0,j.isDateTimeColumn)(t)){let r=(0,j.dateTimePattern)(t.type);return xi(n,s=>{var o;return(0,j.formatDate)({date:(o=r.date)!=null?o:j.defaultPatternsByType.date})(new Date(s))})}return n}var tt=n=>e=>{if((0,j.isMultiClauseFilter)(e)){let[t]=Ee(e),r=Wr(t,n);return`${(0,j.filterAsQuery)(r)} ${e.op} ...`}else return(0,j.filterAsQuery)(Wr(e,n))};var Le=require("react/jsx-runtime"),Tt=(n,e=tt())=>{if((0,rt.isMultiClauseFilter)(n)){let t=n.op==="and"?"Match all ...":"Match any ...";return(0,Le.jsxs)("ul",{children:[(0,Le.jsx)("span",{children:t}),n.filters.map((r,i)=>(0,Le.jsx)("li",{children:Tt(r,e)},i))]})}else if((0,rt.isMultiValueFilter)(n))if(n.values.length>3){let t=n.values.slice(0,3);return`${e({...n,values:t}).slice(0,-1)},...]`}else return e(n);else return e(n)};var be=require("react/jsx-runtime"),zr="vuuFilterPill",At=({className:n,columnsByName:e,editable:t=!0,filter:r,id:i,onBeginEdit:s,onExitEditMode:o,onMenuAction:a,showMenu:l=!0,...u})=>{let h=(0,ve.useRef)(null),c=(0,ve.useCallback)(()=>{s==null||s(r)},[r,s]),f=tt(e),d=(0,ve.useMemo)(()=>{var S;return(S=r.name)!=null?S:f(r)},[f,r]),p=(0,Jr.useId)(i),g=(0,ve.useCallback)(S=>{(S==null?void 0:S.type)==="escape"&&requestAnimationFrame(()=>{h.current&&h.current.focus()})},[]),{anchorProps:F,tooltipProps:k}=(0,nt.useTooltip)({id:p,placement:"below",tooltipContent:Tt(r,f)});return(0,be.jsxs)("div",{...F,...u,className:H(zr,n),"data-text":d,ref:h,children:[t&&o?(0,be.jsx)(qr.EditableLabel,{defaultValue:d,onEnterEditMode:c,onExitEditMode:o},d):(0,be.jsx)("span",{className:`${zr}-label`,children:d}),l&&a?(0,be.jsx)(Nr,{filter:r,onMenuAction:a,onMenuClose:g}):null,k&&(0,be.jsx)(nt.Tooltip,{...k})]})};var Kr=require("@vuu-ui/vuu-popups"),Dt=require("react/jsx-runtime"),Gr=()=>(0,Dt.jsx)("div",{className:"vuuFilterBarMenu",children:(0,Dt.jsx)(Kr.PopupMenu,{icon:"tune",menuLocation:"filter-bar-menu",tabIndex:-1})});var st=require("@vuu-ui/vuu-utils"),O=require("react");var xe=require("react"),Zr=require("@vuu-ui/vuu-ui-controls"),jr=({defaultFilterState:n,onFilterDeleted:e,onFilterRenamed:t,onFilterStateChanged:r,filterState:i})=>{let[s,o]=(0,Zr.useControlled)({controlled:i,default:n!=null?n:{filters:[],activeIndices:[]},name:"useFilterState",state:"FilterState"}),a=(0,xe.useCallback)(d=>{o(d),r==null||r(d)},[r,o]),l=(0,xe.useCallback)(d=>{let p=s.filters.length,g=s.filters.concat(d),F=Ci(s.activeIndices,p);return a({filters:g,activeIndices:F}),p},[s,a]),u=(0,xe.useCallback)(d=>{let p=-1,g=s.filters.filter((k,S)=>k!==d?!0:(p=S,!1)),F=Fi(s.activeIndices,p);return a({filters:g,activeIndices:F}),e==null||e(d),p},[s.filters,s.activeIndices,a,e]),h=(0,xe.useCallback)((d,p)=>{let g=-1,F=s.filters.map((k,S)=>k===d?(g=S,{...d,name:p}):k);return a({...s,filters:F}),t==null||t(d,p),g},[s,a,t]),c=(0,xe.useCallback)((d,p)=>{let g=-1,F=s.filters.map((k,S)=>k===d?(g=S,p):k);return a({...s,filters:F}),g},[s,a]),f=(0,xe.useCallback)(d=>a({...s,activeIndices:d}),[s,a]);return{activeFilterIndex:s.activeIndices,filters:s.filters,onChangeActiveFilterIndex:f,onAddFilter:l,onChangeFilter:c,onDeleteFilter:u,onRenameFilter:h}},Ci=(n,e)=>n.includes(e)?n:n.concat(e),Fi=(n,e)=>n.reduce((t,r)=>r===e?t:t.concat(r>e?r-1:r),[]);var it=require("react"),Xr=require("@vuu-ui/vuu-utils");function en({activeFilterIndex:n,columnsByName:e,filters:t,onApplyFilter:r}){let i=(0,it.useCallback)(s=>{let o=s?(0,Xr.filterAsQuery)(s,{columnsByName:e}):"";r({filter:o,filterStruct:s})},[e,r]);(0,it.useEffect)(()=>{let s=n.map(o=>t[o]);if(s.length===0)i();else if(s.length===1){let[o]=s;i(o)}else i({op:"and",filters:s})},[n,i,t])}var tn={},rn=({columnDescriptors:n,containerRef:e,defaultFilterState:t,filterState:r,onApplyFilter:i,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a,showMenu:l})=>{let u=(0,O.useRef)(null),h=(0,O.useRef)(),[c,f]=(0,O.useState)(l),[d,p]=(0,O.useState)(),[g,F]=(0,O.useState)(null),k=(0,O.useMemo)(()=>Si(n),[n]),{activeFilterIndex:S,filters:E,onAddFilter:x,onChangeFilter:$,onDeleteFilter:m,onRenameFilter:v,onChangeActiveFilterIndex:C}=jr({defaultFilterState:t,filterState:r,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a});en({activeFilterIndex:S,columnsByName:k,filters:E,onApplyFilter:i});let y=(0,O.useCallback)(M=>{requestAnimationFrame(()=>{var T;let w=(T=e.current)==null?void 0:T.querySelectorAll(".vuuFilterPill");if(w!=null&&w[M]){let Q=w[M].querySelector(".vuuEditableLabel");Q&&(0,st.dispatchMouseEvent)(Q,"dblclick")}})},[e]),b=(0,O.useCallback)((M=0)=>{requestAnimationFrame(()=>{var T;let w=(T=e.current)==null?void 0:T.querySelector(".vuuFilterClause .saltInput-input");w&&w.focus()})},[e]),P=(0,O.useCallback)(M=>{requestAnimationFrame(()=>{var T,Q;let w=typeof M=="number"?(T=e.current)==null?void 0:T.querySelector(`.vuuOverflowContainer-item[data-index="${M}"] .vuuFilterPill`):(Q=e.current)==null?void 0:Q.querySelector(".vuuFilterPill[tabindex]");w&&w.focus()})},[e]),D=(0,O.useCallback)(M=>{m(M),requestAnimationFrame(()=>{E.length&&P(0)})},[E.length,P,m]),U=(0,O.useMemo)(()=>M=>{let w=()=>{F(null),P()};return{confirmButtonLabel:"Remove",icon:"warn-triangle",onCancel:w,onClose:w,onConfirm:()=>{F(null),D(M)},text:`Are you sure you want to delete ${M.name}`,title:"Remove Filter",variant:"warn"}},[D,P]),X=(0,O.useCallback)((M,w)=>{w?F(U(M)):D(M)},[D,U]),ee=(0,O.useCallback)(M=>{h.current=M},[]),K=(0,O.useCallback)((M,w="")=>{if(h.current){let T=v(h.current,w);h.current=void 0,P(T)}},[P,v]),Ae=(0,O.useCallback)(({menuId:M,options:w})=>{switch(M){case"delete-filter":{let{filter:T}=w;return X(T,!0),!0}case"rename-filter":{let{filter:T}=w,Q=E.indexOf(T);return y(Q),!0}case"edit-filter":{let{filter:T}=w;return h.current=T,p(T),b(),!0}default:return!1}},[X,y,E,b]),L=(0,O.useCallback)((M,w)=>{if(w===void 0){let T=x(M);y(T)}else $(w,M)},[y,x,$]),_=(0,O.useCallback)(({menuId:M})=>{switch(M){case"apply-save":return L(d,h.current),p(void 0),h.current=void 0,f(!1),!0;case"and-clause":{let w=et(d,tn);return p(w),f(!1),!0}case"or-clause":return p(w=>et(w,tn,{combineWith:"or"})),f(!1),!0;default:return!1}},[d,L]),Y=(0,O.useCallback)(()=>{p({})},[p]),te=(0,O.useCallback)(()=>{p(void 0)},[]),ce={onBeginEdit:ee,onMenuAction:Ae,onExitEditMode:K},$e=(0,O.useCallback)(M=>w=>{w!==void 0&&(p(T=>Ot(T,w,M)),f(!0))},[]),ze=(0,O.useCallback)(M=>{M==="Backspace"&&(0,st.isMultiClauseFilter)(d)&&p(Pt(d))},[d]),In=(0,O.useCallback)(M=>{let w=M.target,T=M.relatedTarget,Q=w.closest(".vuuFilterClause");if(!(Q!=null&&Q.contains(T))){let fe=w.getAttribute("aria-owns"),vt=fe?document.getElementById(fe):null;vt!=null&&vt.contains(T)||f(!0)}},[]),Tn=(0,O.useCallback)(()=>{f(!1)},[]),An=(0,O.useCallback)(M=>{M.key==="Escape"&&d!==void 0&&(p(void 0),requestAnimationFrame(()=>{}))},[d]),Dn=(0,O.useCallback)(M=>{var T;let{current:w}=e;if(M.key==="Backspace"&&w){M.preventDefault();let Q=Array.from(w.querySelectorAll(".vuuFilterClauseField"));if(Q.length>0){let fe=Q.at(-1);(T=fe==null?void 0:fe.querySelector("input"))==null||T.focus()}f(!1)}else if(M.key==="Tab")if(M.shiftKey&&w){let Q=Array.from(w.querySelectorAll(".vuuFilterClause-clearButton"));if(Q.length>0){let fe=Q.at(-1);setTimeout(()=>{fe.focus()},100)}}else console.log("apply current selection")},[e]),Nn=(0,O.useCallback)(M=>{M.key==="ArrowLeft"&&console.log("navgiate to the Toolbar")},[]),Bn=(0,O.useCallback)(M=>{var w;M==="end"&&((w=u.current)==null||w.focus())},[]);return{activeFilterIndex:S,addButtonProps:{ref:u,onKeyDown:Nn},columnsByName:k,editFilter:d,filters:E,onBlurFilterClause:In,onCancelFilterClause:ze,onChangeActiveFilterIndex:C,onClickAddFilter:Y,onClickRemoveFilter:te,onChangeFilterClause:$e,onFocusFilterClause:Tn,onKeyDownFilterbar:An,onKeyDownMenu:Dn,onMenuAction:_,onNavigateOutOfBounds:Bn,pillProps:ce,promptProps:g,showMenu:c}};function Si(n){return n.reduce((e,t)=>({...e,[t.name]:t}),{})}var le=require("react/jsx-runtime"),ot=require("react"),Me="vuuFilterBar",$i=({FilterClauseEditorProps:n,className:e,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterDeleted:o,onFilterRenamed:a,onFilterStateChanged:l,showMenu:u=!1,tableSchema:h,...c})=>{let f=(0,on.useRef)(null),{activeFilterIndex:d,addButtonProps:p,columnsByName:g,editFilter:F,filters:k,onBlurFilterClause:S,onCancelFilterClause:E,onClickAddFilter:x,onClickRemoveFilter:$,onChangeFilterClause:m,onChangeActiveFilterIndex:v,onFocusFilterClause:C,onNavigateOutOfBounds:y,onKeyDownFilterbar:b,onKeyDownMenu:P,onMenuAction:D,pillProps:U,promptProps:X,showMenu:ee}=rn({containerRef:f,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterStateChanged:l,onFilterDeleted:o,onFilterRenamed:a,showMenu:u}),K=H(Me,e,{[`${Me}-display`]:F===void 0,[`${Me}-edit`]:F!==void 0});return(0,le.jsxs)("div",{...c,className:K,onKeyDown:b,ref:f,children:[(0,le.jsx)(Gr,{}),(0,le.jsx)(sn.Toolbar,{activeItemIndex:d,onActiveChange:v,onNavigateOutOfBounds:y,selectionStrategy:"multiple-special-key",children:(()=>{let L=[];if(F===void 0)return k.forEach((_,Y)=>{L.push((0,ot.createElement)(At,{...U,columnsByName:g,filter:_,key:`filter-${Y}`}))}),L;if(F){let _=Ee(F);return L.push((0,le.jsx)("div",{className:`${Me}-Editor`,children:_.map((Y,te)=>(0,ot.createElement)(kt,{...n,columnsByName:g,filterClause:Y,key:`editor-${te}`,onCancel:E,onChange:m(te),onBlur:S,onFocus:C,tableSchema:h}))},"editor")),ee&&L.push((0,le.jsx)(Ft,{onMenuAction:D,ListProps:{onKeyDownCapture:P}},"menu")),L.push((0,le.jsx)(Nt.Button,{className:`${Me}-remove`,"data-align":"right","data-icon":"cross",onClick:$,variant:"primary"},"filter-remove")),L}})()}),F===void 0?(0,ot.createElement)(Nt.Button,{...p,className:`${Me}-add`,"data-icon":"plus","data-selectable":!1,key:"filter-add",onClick:x,tabIndex:0,variant:"primary"}):null,X?(0,le.jsx)(nn.Prompt,{...X,PopupProps:{anchorElement:f,offsetTop:16,placement:"below-center"}}):null]})};var er=require("@salt-ds/core");var B=require("@vuu-ui/vuu-codemirror");var wi=0,He=class{constructor(e,t){this.from=e,this.to=t}},A=class{constructor(e={}){this.id=wi++,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=re.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};A.closedBy=new A({deserialize:n=>n.split(" ")});A.openedBy=new A({deserialize:n=>n.split(" ")});A.group=new A({deserialize:n=>n.split(" ")});A.contextHash=new A({perNode:!0});A.lookAhead=new A({perNode:!0});A.mounted=new A({perNode:!0});var ki=Object.create(null),re=class n{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):ki,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new n(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),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 i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(A.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(A.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}};re.none=new re("",Object.create(null),0,8);var ut=class n{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let r of this.types){let i=null;for(let s of e){let o=s(r);o&&(i||(i=Object.assign({},r.props)),i[o[0].id]=o[1])}t.push(i?new re(r.name,i,r.id,r.flags):r)}return new n(t)}},at=new WeakMap,an=new WeakMap,V;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(V||(V={}));var q=class n{constructor(e,t,r,i,s){if(this.type=e,this.children=t,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=this.prop(A.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let i=r.toString();i&&(t&&(t+=","),t+=i)}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 Oe(this.topNode,e)}cursorAt(e,t=0,r=0){let i=at.get(this)||this.topNode,s=new Oe(i);return s.moveTo(e,t),at.set(this,s._tree),s}get topNode(){return new Fe(this,0,0,null)}resolve(e,t=0){let r=Pe(at.get(this)||this.topNode,e,t,!1);return at.set(this,r),r}resolveInner(e,t=0){let r=Pe(an.get(this)||this.topNode,e,t,!0);return an.set(this,r),r}iterate(e){let{enter:t,leave:r,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&V.IncludeAnonymous)>0;for(let l=this.cursor(o|V.IncludeAnonymous);;){let u=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;u=!0}for(;u&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:Vt(re.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new n(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new n(re.none,t,r,i)))}static build(e){return Ei(e)}};q.empty=new q(re.none,[],[],0);var Bt=class n{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 n(this.buffer,this.index)}},Ce=class n{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return re.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],r=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let o=[];for(;e<r;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,r,i,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(un(s,i,o[l+1],o[l+2])&&(a=l,r>0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=i[a++],s[l++]=i[a++]-r;let u=s[l++]=i[a++]-r;s[l++]=i[a++]-e,o=Math.max(o,u)}return new n(s,o,this.set)}};function un(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function cn(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function Pe(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let o=!r&&n instanceof Fe&&n.index<0?null:n.parent;if(!o)return n;n=o}let s=r?0:V.IgnoreOverlays;if(r)for(let o=n,a=o.parent;a;o=a,a=o.parent)o instanceof Fe&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(n=a);for(;;){let o=n.enter(e,t,s);if(!o)return n;n=o}}var Fe=class n{constructor(e,t,r,i){this._tree=e,this.from=t,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,i,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,u=t>0?a.length:-1;e!=u;e+=t){let h=a[e],c=l[e]+o.from;if(un(i,r,c,c+h.length)){if(h instanceof Ce){if(s&V.ExcludeBuffers)continue;let f=h.findChild(0,h.buffer.length,t,r-c,i);if(f>-1)return new Ve(new Rt(o,h,e,c),null,f)}else if(s&V.IncludeAnonymous||!h.type.isAnonymous||Ht(h)){let f;if(!(s&V.IgnoreMounts)&&h.props&&(f=h.prop(A.mounted))&&!f.overlay)return new n(f.tree,c,e,o);let d=new n(h,c,e,o);return s&V.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?h.children.length-1:0,t,r,i)}}}if(s&V.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,r=0){let i;if(!(r&V.IgnoreOverlays)&&(i=this._tree.prop(A.mounted))&&i.overlay){let s=e-this.from;for(let{from:o,to:a}of i.overlay)if((t>0?o<=s:o<s)&&(t<0?a>=s:a>s))return new n(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Oe(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Pe(this,e,t,!1)}resolveInner(e,t=0){return Pe(this,e,t,!0)}enterUnfinishedNodesBefore(e){return cn(this,e)}getChild(e,t=null,r=null){let i=ct(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return ct(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return ft(this,e)}};function ct(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function ft(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var Rt=class{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}},Ve=class n{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,r=0){if(r&V.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(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 n(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 n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Oe(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Pe(this,e,t,!1)}resolveInner(e,t=0){return Pe(this,e,t,!0)}enterUnfinishedNodesBefore(e){return cn(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let i=ct(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return ct(this,e,t,r)}get node(){return this}matchContext(e){return ft(this,e)}},Oe=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 Fe)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof Fe?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&V.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&V.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&V.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=i)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&V.IncludeAnonymous||a instanceof Ce||!a.type.isAnonymous||Ht(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,r=0;if(e&&e.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)t=new Ve(this.buffer,t,this.stack[i]);return this.bufferNode=new Ve(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,i=!0}}}matchContext(e){if(!this.buffer)return ft(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return ft(this.node,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function Ht(n){return n.children.some(e=>e instanceof Ce||!e.type.isAnonymous||Ht(e))}function Ei(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new Bt(t,t.length):t,l=r.types,u=0,h=0;function c(x,$,m,v,C){let{id:y,start:b,end:P,size:D}=a,U=h;for(;D<0;)if(a.next(),D==-1){let L=s[y];m.push(L),v.push(b-x);return}else if(D==-3){u=y;return}else if(D==-4){h=y;return}else throw new RangeError(`Unrecognized record size: ${D}`);let X=l[y],ee,K,Ae=b-x;if(P-b<=i&&(K=g(a.pos-$,C))){let L=new Uint16Array(K.size-K.skip),_=a.pos-K.size,Y=L.length;for(;a.pos>_;)Y=F(K.start,L,Y);ee=new Ce(L,P-K.start,r),Ae=K.start-x}else{let L=a.pos-D;a.next();let _=[],Y=[],te=y>=o?y:-1,ce=0,$e=P;for(;a.pos>L;)te>=0&&a.id==te&&a.size>=0?(a.end<=$e-i&&(d(_,Y,b,ce,a.end,$e,te,U),ce=_.length,$e=a.end),a.next()):c(b,L,_,Y,te);if(te>=0&&ce>0&&ce<_.length&&d(_,Y,b,ce,b,$e,te,U),_.reverse(),Y.reverse(),te>-1&&ce>0){let ze=f(X);ee=Vt(X,_,Y,0,_.length,0,P-b,ze,ze)}else ee=p(X,_,Y,P-b,U-P)}m.push(ee),v.push(Ae)}function f(x){return($,m,v)=>{let C=0,y=$.length-1,b,P;if(y>=0&&(b=$[y])instanceof q){if(!y&&b.type==x&&b.length==v)return b;(P=b.prop(A.lookAhead))&&(C=m[y]+b.length+P)}return p(x,$,m,v,C)}}function d(x,$,m,v,C,y,b,P){let D=[],U=[];for(;x.length>v;)D.push(x.pop()),U.push($.pop()+m-C);x.push(p(r.types[b],D,U,y-C,P-y)),$.push(C-m)}function p(x,$,m,v,C=0,y){if(u){let b=[A.contextHash,u];y=y?[b].concat(y):[b]}if(C>25){let b=[A.lookAhead,C];y=y?[b].concat(y):[b]}return new q(x,$,m,v,y)}function g(x,$){let m=a.fork(),v=0,C=0,y=0,b=m.end-i,P={size:0,start:0,skip:0};e:for(let D=m.pos-x;m.pos>D;){let U=m.size;if(m.id==$&&U>=0){P.size=v,P.start=C,P.skip=y,y+=4,v+=4,m.next();continue}let X=m.pos-U;if(U<0||X<D||m.start<b)break;let ee=m.id>=o?4:0,K=m.start;for(m.next();m.pos>X;){if(m.size<0)if(m.size==-3)ee+=4;else break e;else m.id>=o&&(ee+=4);m.next()}C=K,v+=U,y+=ee}return($<0||v==x)&&(P.size=v,P.start=C,P.skip=y),P.size>4?P:void 0}function F(x,$,m){let{id:v,start:C,end:y,size:b}=a;if(a.next(),b>=0&&v<o){let P=m;if(b>4){let D=a.pos-(b-4);for(;a.pos>D;)m=F(x,$,m)}$[--m]=P,$[--m]=y-x,$[--m]=C-x,$[--m]=v}else b==-3?u=v:b==-4&&(h=v);return m}let k=[],S=[];for(;a.pos>0;)c(n.start||0,n.bufferStart||0,k,S,-1);let E=(e=n.length)!==null&&e!==void 0?e:k.length?S[0]+k[0].length:0;return new q(l[n.topID],k.reverse(),S.reverse(),E)}var ln=new WeakMap;function lt(n,e){if(!n.isAnonymous||e instanceof Ce||e.type!=n)return 1;let t=ln.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof q)){t=1;break}t+=lt(n,r)}ln.set(e,t)}return t}function Vt(n,e,t,r,i,s,o,a,l){let u=0;for(let p=r;p<i;p++)u+=lt(n,e[p]);let h=Math.ceil(u*1.5/8),c=[],f=[];function d(p,g,F,k,S){for(let E=F;E<k;){let x=E,$=g[E],m=lt(n,p[E]);for(E++;E<k;E++){let v=lt(n,p[E]);if(m+v>=h)break;m+=v}if(E==x+1){if(m>h){let v=p[x];d(v.children,v.positions,0,v.children.length,g[x]+S);continue}c.push(p[x])}else{let v=g[E-1]+p[E-1].length-$;c.push(Vt(n,p,g,x,E,$,v,null,l))}f.push($+S-s)}}return d(e,t,r,i,0),(a||l)(c,f,o)}var ht=class{startParse(e,t,r){return typeof e=="string"&&(e=new Lt(e)),r=r?r.length?r.map(i=>new He(i.from,i.to)):[new He(0,0)]:[new He(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}},Lt=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 ba=new A({perNode:!0});var Qt=class n{constructor(e,t,r,i,s,o,a,l,u,h=0,c){this.p=e,this.stack=t,this.state=r,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=u,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let i=e.parser.context;return new n(e,[],t,r,r,0,[],0,i?new dt(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,i=e&65535,{parser:s}=this.p,o=s.dynamicPrecedence(i);if(o&&(this.score+=o),r==0){this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),this.reduceContext(i,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,u=this.reducePos-l;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=u));let h=a?this.stack[a-1]:0,c=this.bufferBase+this.buffer.length-h;if(i<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,f,c+4,!0)}if(e&262144)this.state=this.stack[a];else{let f=this.stack[a-3];this.state=s.getGoto(f,i,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(i,l)}storeNode(e,t,r,i=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==r)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>r;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4);this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=r,this.buffer[o+3]=i}}shift(e,t,r){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4);else{let s=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let r=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new n(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new Ut(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&i.push(t[s],o);if(this.stack.length<120)for(let s=0;i.length<8&&s<t.length;s+=2){let o=t[s+1];i.some((a,l)=>l&1&&a==o)||i.push(t[s],o)}t=i}let r=[];for(let i=0;i<t.length&&r.length<4;i+=2){let s=t[i+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[i],this.pos),o.score-=200,r.push(o)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,i=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],i,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],r=(i,s)=>{if(!t.includes(i))return t.push(i),e.allActions(i,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,u=this.stack.length-a*3;if(u>=0&&e.getGoto(this.stack[u],l,!1)>=0)return a<<19|65536|l}}else{let a=r(o,s+1);if(a!=null)return a}})};return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new dt(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()}},dt=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},fn;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(fn||(fn={}));var Ut=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},Yt=class n{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new n(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 n(this.stack,this.pos,this.index)}};function _e(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,i=0;r<n.length;){let s=0;for(;;){let o=n.charCodeAt(r++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}var Ie=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},hn=new Ie,Wt=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=hn,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let r=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!i)return null;let o=this.ranges[--i];s-=r.from-o.to,r=o}for(;t<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-r.to,r=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,r,i;if(t>=0&&t<this.chunk.length)r=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=hn,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let r="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(r+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return r}},de=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;vn(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};de.prototype.contextual=de.prototype.fallback=de.prototype.extend=!1;var zt=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?_e(e):e}token(e,t){let r=e.pos,i=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(vn(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||i++,o==null)break;e.reset(o,e.token)}i&&(e.reset(r,e.token),e.acceptToken(this.elseToken,i))}};zt.prototype.contextual=de.prototype.fallback=de.prototype.extend=!1;function vn(n,e,t,r,i,s){let o=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[o];){let u=n[o+1];for(let d=o+3;d<u;d+=2)if((n[d+1]&a)>0){let p=n[d];if(l.allows(p)&&(e.token.value==-1||e.token.value==p||Pi(p,e.token.value,i,s))){e.acceptToken(p);break}}let h=e.next,c=0,f=n[o+2];if(e.next<0&&f>c&&n[u+f*3-3]==65535&&n[u+f*3-3]==65535){o=n[u+f*3-1];continue e}for(;c<f;){let d=c+f>>1,p=u+d+(d<<1),g=n[p],F=n[p+1]||65536;if(h<g)f=d;else if(h>=F)c=d+1;else{o=n[p+2],e.advance();continue e}}break}}function dn(n,e,t){for(let r=e,i;(i=n[r])!=65535;r++)if(i==t)return r-e;return-1}function Pi(n,e,t,r){let i=dn(t,r,e);return i<0||dn(t,r,n)<i}var ie=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),_t=null,pn;(function(n){n[n.Margin=25]="Margin"})(pn||(pn={}));function mn(n,e,t){let r=n.cursor(V.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var qt=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?mn(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?mn(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let r=this.trees[t],i=this.index[t];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],o=this.start[t]+r.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof q){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(A.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},Jt=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new Ie)}getActions(e){let t=0,r=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let u=0;u<s.length;u++){if(!(1<<u&o))continue;let h=s[u],c=this.tokens[u];if(!(r&&!h.fallback)&&((h.contextual||c.start!=e.pos||c.mask!=o||c.context!=a)&&(this.updateCachedToken(c,h,e),c.mask=o,c.context=a),c.lookAhead>c.end+25&&(l=Math.max(c.lookAhead,l)),c.value!=0)){let f=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!h.extend&&(r=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new Ie,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Ie,{pos:r,p:i}=e;return t.start=r,t.end=Math.min(r+1,i.stream.end),t.value=r==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,r){let i=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(i,e),r),e.value>-1){let{parser:s}=r.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==e)return i;return this.actions[i++]=e,this.actions[i++]=t,this.actions[i++]=r,i}addActions(e,t,r,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let u=o.stateSlot(s,l?2:1);;u+=3){if(a[u]==65535)if(a[u+1]==1)u=ue(a,u+2);else{i==0&&a[u+1]==2&&(i=this.putAction(ue(a,u+2),t,r,i));break}a[u]==t&&(i=this.putAction(ue(a,u+1),t,r,i))}return i}},gn;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(gn||(gn={}));var Kt=class{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,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 Wt(t,i),this.tokens=new Jt(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[Qt.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new qt(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{i||(i=[],s=[]),i.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let o=i&&Oi(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw ie&&i&&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&&i){let o=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(r.length>o)for(r.sort((a,l)=>l.score-a.score);r.length>o;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let o=0;o<r.length-1;o++){let a=r[o];for(let l=o+1;l<r.length;l++){let u=r[l];if(a.sameState(u)||a.buffer.length>500&&u.buffer.length>500)if((a.score-u.score||a.buffer.length-u.buffer.length)>0)r.splice(l--,1);else{r.splice(o--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let o=1;o<r.length;o++)r[o].pos<this.minStackPos&&(this.minStackPos=r[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,r){let i=e.pos,{parser:s}=this,o=ie?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,h=u?e.curContext.hash:0;for(let c=this.fragments.nodeAt(i);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!u||(c.prop(A.contextHash)||0)==h))return e.useNode(c,f),ie&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof q)||c.children.length==0||c.positions[0]>0)break;let d=c.children[0];if(d instanceof q&&c.positions[0]==0)c=d;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),ie&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let u=0;u<l.length;){let h=l[u++],c=l[u++],f=l[u++],d=u==l.length||!r,p=d?e:e.split();if(p.apply(h,c,f),ie&&console.log(o+this.stackID(p)+` (via ${h&65536?`reduce of ${s.getName(h&65535)}`:"shift"} for ${s.getName(c)} @ ${i}${p==e?"":", split"})`),d)return!0;p.pos>i?t.push(p):r.push(p)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return yn(e,t),!0}}runRecovery(e,t,r){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],u=t[(o<<1)+1],h=ie?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),ie&&console.log(h+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let c=a.split(),f=h;for(let d=0;c.forceReduce()&&d<10&&(ie&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,r));d++)ie&&(f=this.stackID(c)+" -> ");for(let d of a.recoverByInsert(l))ie&&console.log(h+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,r);this.stream.end>a.pos?(u==a.pos&&(u++,l=0),a.recoverByDelete(l,u),ie&&console.log(h+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),yn(a,r)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),q.build({buffer:Yt.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=(_t||(_t=new WeakMap)).get(e);return t||_t.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function yn(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var Gt=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var pt=class n extends ht{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,l,u){i[a].push([l,l.deserialize(String(u))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=A[l]);for(let u=1;u<a.length;){let h=a[u++];if(h>=0)s(h,l,a[u++]);else{let c=a[u+-h];for(let f=-h;f>0;f--)s(a[u++],l,c);u++}}}this.nodeSet=new ut(t.map((a,l)=>re.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:i[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=_e(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(bn),this.states=_e(e.states,Uint32Array),this.data=_e(e.stateData),this.goto=_e(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new de(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,r){let i=new Kt(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}getGoto(e,t,r=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,l=i[s++];if(a&&r)return l;for(let u=s+(o>>1);s<u;s++)if(i[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=r[s])==65535)if(r[s+1]==1)o=r[s=ue(r,s+2)];else{if(r[s+1]==2)return ue(r,s+2);break}if(o==t||o==0)return ue(r,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),i=r?t(r):void 0;for(let s=this.stateSlot(e,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=ue(this.data,s+2);else break;i=t(ue(this.data,s+1))}return i}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=ue(this.data,r+2);else break;if(!(this.data[r+2]&1)){let i=this.data[r+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[r],i)}}return t}configure(e){let t=Object.assign(Object.create(n.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let i=e.tokenizers.find(s=>s.from==r);return i?i.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let o=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[i]=bn(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(r[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!r[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[a]=1;return new Gt(e,r,i)}static deserialize(e){return new n(e)}};function ue(n,e){return n[e]|n[e+1]<<16}function Oi(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function bn(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Qe=pt.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 ae=require("@vuu-ui/vuu-utils");var J,Zt=class{constructor(){rr(this,J,void 0)}setFilterCombinatorOp(e,t=oe(this,J)){(0,ae.isMultiClauseFilter)(t)&&t.op===e||Ct(this,J,{op:e,filters:[oe(this,J)]})}add(e){if(oe(this,J)===void 0)Ct(this,J,e);else if((0,ae.isMultiClauseFilter)(oe(this,J)))oe(this,J).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=oe(this,J)){if((0,ae.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=oe(this,J)){if((0,ae.isMultiClauseFilter)(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=oe(this,J)){var r;if((0,ae.isMultiClauseFilter)(t)){let i=t.filters.at(-1);i&&this.setValue(e,i)}else(0,ae.isMultiValueFilter)(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):(0,ae.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=oe(this,J)){return this.name?{...e,name:this.name}:e}};J=new WeakMap;var mt=(n,e)=>{let t=new Zt,r=n.cursor();do{let{name:i,from:s,to:o}=r;switch(i){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(s,o));break;case"Column":t.setColumn(e.substring(s,o));break;case"Operator":t.setOp(e.substring(s,o));break;case"String":t.setValue(e.substring(s+1,o-1));break;case"Number":t.setValue(parseFloat(e.substring(s,o)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(s,o);break;default:}}while(r.next());return t.toJSON()};var Ma=Qe.configure({strict:!0});var pe=require("react");var se=require("@vuu-ui/vuu-codemirror");var Ti=se.LRLanguage.define({name:"VuuFilterQuery",parser:Qe.configure({props:[(0,se.styleTags)({Identifier:se.tags.variableName,String:se.tags.string,Or:se.tags.emphasis,Operator:se.tags.operator})]})}),xn=()=>new se.LanguageSupport(Ti);var Se=require("@vuu-ui/vuu-codemirror"),Ai=Se.HighlightStyle.define([{tag:Se.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Se.tags.comment,color:"green",fontStyle:"italic"}]),Cn=(0,Se.syntaxHighlighting)(Ai);var Fn=require("@vuu-ui/vuu-codemirror"),Sn=Fn.EditorView.theme({"&":{color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)",fontSize:"var(--vuuFilterEditor-fontSize)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)",padding:0},".cm-line":{lineHeight:"var(--vuuFilterEditor-lineHeight)"},"&.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)",borderRadius:"4px",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{alignItems:"center",display:"flex",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-completionIcon":{height:"18px",flex:"0 0 16px"},".cm-completionLabel":{flex:"1 1 auto"},".cm-completionIcon-filter":{position:"relative","&:after":{background:"var(--salt-text-secondary-foreground)",content:"''","-webkit-mask":"var(--svg-filter) center center/13px 13px","-webkit-mask-repeat":"no-repeat",position:"absolute",height:"18px",left:"0px",top:"0px",width:"16px"}}},{dark:!1});var R=require("@vuu-ui/vuu-codemirror"),jt=require("react"),$n=(n,e)=>{let t=n.prevSibling||n.parent;for(;t&&!["Column","Operator","In"].includes(t.name);)t=t.prevSibling||t.parent;if((t==null?void 0:t.name)==="In"||(t==null?void 0:t.name)==="Operator")return(0,R.getValue)(t,e)},Di=(n,e,t)=>{let r=(0,R.getValue)(n,e);if(!(t===void 0||r===t)&&["contains","ends","starts"].some(i=>i.startsWith(r.toLowerCase())))return r},wn=(n,e)=>{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name==="\u26A0";)t=t.prevSibling;if(t&&["As","Or","And"].includes(t.name))return(0,R.getValue)(t,e)},kn=(n,e)=>{if(n.name==="FilterName")return(0,R.getValue)(n,e);{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name!=="FilterName";)t=t.prevSibling;if(t&&t.name==="FilterName")return(0,R.getValue)(n,e)}},En=(n,e)=>{let t=n.prevSibling;if((t==null?void 0:t.name)==="Column")return(0,R.getValue)(t,e);if((t==null?void 0:t.name)==="Operator")return En(t,e)},Ni=(n,e)=>{let t=n.lastChild,r=[];for(;t&&t.name!=="In";){let i=(0,R.getValue)(t,e);if(i)r.push(i);else break;t=t.prevSibling}return r};var Mn=(n,e,t)=>{let r=(0,jt.useCallback)(async(i,s,o={})=>{let{startsWith:a=""}=o,l=await n.getSuggestions(s,o);return{from:i.pos-a.length,options:l}},[n]);return(0,jt.useCallback)(async i=>{var h,c;let{state:s,pos:o}=i,a=(h=i.matchBefore(/\w*/))!=null?h:{from:0,to:0,text:void 0},u=(0,R.syntaxTree)(s).resolveInner(o,-1);switch(console.log({nodeBeforeName:u.name}),u.name){case"Filter":if(i.pos===0)return r(i,"column");if(wn(u,s)==="as")return r(i,"name");{let d=kn(u,s);return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:d})}case"String":{let f=$n(u,s),d=En(u,s),{from:p,to:g}=u;if(g-p===2&&i.pos===p+1){if(d&&f)return r(i,"columnValue",{columnName:d,operator:f,quoted:!0,startsWith:a.text})}else console.log(`we have a string, column is ${d} ${p} ${g}`)}break;case"As":return r(i,"name");case"FilterName":return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:kn(u,s)});case"Column":{let f=(0,R.getValue)(u,s);return await n.isPartialMatch("column",void 0,f)?r(i,"column",{startsWith:f}):r(i,"operator",{columnName:f})}case"\u26A0":{let f=(0,R.getNodeByName)(u,s),d=$n(u,s),p=d?void 0:Di(u,s,f);return p?r(i,"operator",{columnName:f,startsWith:p}):r(i,"columnValue",{columnName:f,operator:d,startsWith:a.text})}case"Identifier":if(wn(u,s)==="as")return{from:i.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>e.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let f=(0,R.getNodeByName)(u,s),d=Ni(u,s);return r(i,"columnValue",{columnName:f,selection:d})}case"Comma":case"LBrack":{let f=(0,R.getNodeByName)(u,s);return r(i,"columnValue",{columnName:f})}case"ColumnValueExpression":{let f=(c=u.lastChild)==null?void 0:c.prevSibling;if((f==null?void 0:f.name)==="Column")return r(i,"operator",{columnName:(0,R.getNodeByName)(u,s)});if((f==null?void 0:f.name)==="Operator")return r(i,"columnValue",{columnName:(0,R.getNodeByName)(f,s),operator:(0,R.getValue)(f,s)})}break;case"In":return{from:i.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return r(i,"columnValue",{columnName:(0,R.getNodeByName)(u,s)});case"AndExpression":case"OrExpression":return r(i,"column");default:}},[t,r,e,n])};var Ue=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Bi=n=>H("vuuSuggestion",{vuuIllustration:n.isIllustration}),Ri=n=>{let e=n.lastIndexOf(" as ");return e!==-1?n.slice(0,e):n},Li=()=>console.log("noooop"),Xt=({existingFilter:n,onSubmitFilter:e,suggestionProvider:t})=>{let r=(0,pe.useRef)(null),i=(0,pe.useRef)(Li),s=(0,pe.useRef)(),o=Mn(t,i,n),[a,l]=(0,pe.useMemo)(()=>{let u=()=>{let g=Ue(s),F=g.state.doc.toString(),k=(0,B.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(k){let S=mt(k,F);return[S,Ri(F),S.name]}else return[void 0,"",void 0]},h=()=>{Ue(s).setState(p())},c=g=>{let[F,k,S]=u();e==null||e(F,k,g,S),h()},f=g=>B.keymap.of([{key:g,run(){return c(),!0}}]),d=g=>B.keymap.of([{key:g,run(){return(0,B.startCompletion)(Ue(s)),!0}}]),p=()=>B.EditorState.create({doc:"",extensions:[B.minimalSetup,(0,B.autocompletion)({override:[o],optionClass:Bi}),xn(),B.keymap.of(B.defaultKeymap),f("Ctrl-Enter"),d("ArrowDown"),B.EditorView.updateListener.of(g=>{let F=Ue(s);g.docChanged&&(0,B.startCompletion)(F)}),B.EditorState.transactionFilter.of(g=>g.newDoc.lines>1?[]:g),Sn,Cn]});return i.current=g=>{c(g),setTimeout(()=>{Ue(s).focus()},100)},[p,h]},[o,e]);return(0,pe.useEffect)(()=>{if(!r.current)throw Error("editor not in dom");return s.current=new B.EditorView({state:a(),parent:r.current}),()=>{var u;(u=s.current)==null||u.destroy()}},[o,a]),{editorRef:r,clearInput:l}};var Te=require("react/jsx-runtime"),gt="vuuFilterInput",Hi=({existingFilter:n,iconName:e="filter",namedFilters:t,onSubmitFilter:r,suggestionProvider:i,...s})=>{let{editorRef:o,clearInput:a}=Xt({existingFilter:n,onSubmitFilter:r,suggestionProvider:i});return(0,Te.jsxs)("div",{...s,className:gt,children:[(0,Te.jsx)(er.Button,{className:`${gt}-FilterButton`,"data-icon":e,tabIndex:-1}),(0,Te.jsx)("div",{className:`${gt}-Editor`,ref:o}),(0,Te.jsx)(er.Button,{className:`${gt}-ClearButton`,"data-icon":"close-circle",onClick:a})]})};var ne=require("@vuu-ui/vuu-codemirror"),bt=require("@vuu-ui/vuu-data-react"),We=require("react");var Ye=require("@vuu-ui/vuu-utils"),Pn=(n,e)=>{let t=(0,Ye.createEl)("div","vuuFunctionDoc"),r=(0,Ye.createEl)("div","function-heading"),i=(0,Ye.createEl)("span","function-name",n);r.appendChild(i);let s=(0,Ye.createEl)("p",void 0,e);return t.appendChild(r),t.appendChild(s),t};var Vi=[],_i={},Qi=n=>[{label:"Press ENTER to create TAB",apply:()=>n("tab"),boost:6}],On=(n,e,t=!0)=>{let r=e?[{label:"REPLACE existing filter",apply:()=>n("replace"),boost:8},{label:"AND existing filter",apply:()=>n("and"),boost:7},{label:"OR existing filter",apply:()=>n("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>n(),boost:6}];return t?r.concat(ne.booleanJoinSuggestions).concat(ne.asNameSuggestion):r},Ui=(n,e)=>On(n,e,!0),Yi=n=>On(n,void 0),Wi=({existingFilter:n,filterName:e,onSubmit:t,saveOptions:r})=>{let i=e&&r.allowSaveAsTab,s=n?Ui(t,n):Yi(t);return i?s.concat(Qi(t)):s},zi=n=>n.map(e=>({boost:5,label:e.name})),qi=n=>n?Array.from(n.entries()).map(([e,t])=>({info:()=>Pn(e,t),label:e,type:"filter"})):Vi,Ji={label:"Done",apply:"] ",type:"keyword",boost:10},yt=(n,e="")=>n.filter(t=>e===""||t.label.startsWith(e)).map(t=>({...t,apply:t.label+" "})),Ki={allowReplace:!0},Gi=({columns:n,namedFilters:e,saveOptions:t=Ki,table:r,typeaheadHook:i=bt.useTypeaheadSuggestions})=>{let s=(0,We.useRef)(),o=i(),a=(0,We.useCallback)(async(u,h=_i)=>{let{columnName:c,existingFilter:f,filterName:d,operator:p,quoted:g,onSubmit:F,startsWith:k,selection:S}=h;switch(u){case"operator":{let E=n.find(x=>x.name===c);if(E)switch(E.serverDataType){case"string":case"char":return yt(ne.stringOperators,k);case"int":case"long":case"double":return yt(ne.numericOperators)}else console.warn(`'${c}' does not match any column name`)}break;case"column":{let E=await zi(n),x=await qi(e);return(s.current=yt(E)).concat(yt(x))}case"columnValue":if(c){let E=n.find(C=>C.name===c);if(!E)throw Error(`useFilterSUggestionProvider no column ${c}`);let x=Array.isArray(S)?S.length===0?"[":",":"",$=(0,bt.getTypeaheadParams)(r,c,k),m=await o($),v=p==="starts";return s.current=(0,ne.toSuggestions)(m,{moveCursorToEnd:g,quoted:(E==null?void 0:E.serverDataType)==="string"&&!g,suffix:g?"":" ",prefix:v?k:x,isIllustration:v}),Array.isArray(S)&&(S==null?void 0:S.length)>1?[Ji,...s.current]:s.current}break;case"save":{if(typeof F!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await Wi({existingFilter:f,filterName:d,onSubmit:F,saveOptions:t})}case"name":return await(0,ne.getNamePrompt)("filter");default:}return[]},[n,o,e,t,r]),l=(0,We.useCallback)(async(u,h,c)=>{let f=await a(u,{columnName:h});if(c&&f)for(let d of f){if(d.label===c)return!1;if(d.label.startsWith(c))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:l}};var Zi=n=>{let e=localStorage.getItem(n);return e?JSON.parse(e):void 0},ji=n=>Object.entries(localStorage).filter(([e])=>e.includes(n)).map(([,e])=>JSON.parse(e)),Xi=(n,e)=>{try{return localStorage.setItem(n,JSON.stringify(e)),e}catch{return}};
2
2
  //# sourceMappingURL=index.js.map
package/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Mt=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var G=(n,e,t)=>(Mt(n,e,"read from private field"),t?t.call(n):e.get(n)),Pt=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},Ke=(n,e,t,r)=>(Mt(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);import{Prompt as ts}from"@vuu-ui/vuu-popups";import{Toolbar as rs}from"@vuu-ui/vuu-ui-controls";import{Button as Mr}from"@salt-ds/core";function Ot(n){var e,t,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n))for(e=0;e<n.length;e++)n[e]&&(t=Ot(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function dn(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=Ot(n))&&(r&&(r+=" "),r+=e);return r}var N=dn;import{useRef as ns}from"react";import{useCallback as It,useRef as pn}from"react";import{PopupComponent as mn,Portal as gn}from"@vuu-ui/vuu-popups";import{List as yn,ListItem as Ge}from"@vuu-ui/vuu-ui-controls";import{Fragment as bn,jsx as ne,jsxs as At}from"react/jsx-runtime";var Tt="vuuFilterBuilderMenu",Dt=({ListProps:n,onMenuAction:e})=>{let t=pn(null),r=It(s=>{s&&requestAnimationFrame(()=>{s.focus()})},[]),i=It((s,o)=>{let{props:{"data-action":a}}=o;e({type:"menu-action",menuId:a,options:{}})},[e]);return At(bn,{children:[ne("span",{className:`${Tt}-trigger`,ref:t}),ne(gn,{children:ne(mn,{anchorElement:t,placement:"right",children:At(yn,{...n,className:`${Tt}List`,defaultHighlightedIndex:0,itemHeight:22,ref:r,onSelect:i,style:{position:"relative"},width:100,children:[ne(Ge,{"data-action":"apply-save",children:ne("span",{className:"vuuMenuButton",children:"APPLY AND SAVE"})}),ne(Ge,{"data-action":"and-clause",children:"AND"}),ne(Ge,{"data-action":"or-clause",children:"OR"})]})})})]})};import{itemToString as vn}from"@vuu-ui/vuu-utils";import{ComboBox as xn}from"@vuu-ui/vuu-ui-controls";import{forwardRef as Cn,useCallback as Ee,useMemo as Fn,useRef as $n,useState as Sn}from"react";import{jsx as Bt}from"react/jsx-runtime";var Nt="vuuExpandoCombobox",wn={},ie=Cn(function({className:e,InputProps:t=wn,ListProps:r,onInputChange:i,onSelectionChange:s,selectionStrategy:o,source:a,style:l,title:u,value:h="",...c},f){let[d,p]=Sn(h),{itemToString:g=vn}=c,F=$n(h),k=Ee(y=>{let[b,...P]=y;return P.length?`${g(b)} + ${P.length}`:g(b)},[g]),$=Ee(y=>{let{value:b}=y.target;p(b),i==null||i(y)},[i]),E=Ee(y=>{p(y)},[]),[x,S]=Fn(()=>{let{inputProps:y,...b}=t;return[{...b,className:`${Nt}-Input`,endAdornment:null,inputProps:{...y,autoComplete:"off",onInput:$}},{...r,className:N("vuuMenuList",r==null?void 0:r.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:80,width:"content-width"}]},[t,$,r]),m=Ee((y,b)=>{Array.isArray(b)?s==null||s(null,b):b&&(p(g(b)),s==null||s(null,b))},[g,s]),v=()=>{if(F.current!==void 0)return Array.isArray(F.current)?a==null?void 0:a.filter(y=>F.current.includes(g(y))):a==null?void 0:a.find(y=>g(y)===F.current)},C={minWidth:"fit-content"};return Bt("div",{className:N(Nt,e),"data-text":d,ref:f,style:l,children:Bt(xn,{...c,PopupProps:C,allowEnterCommitsText:!0,defaultSelected:v(),defaultValue:Array.isArray(F.current)?k(F.current):F.current,fullWidth:!0,ListProps:S,InputProps:x,itemsToString:k,onSelectionChange:m,onSetSelectedText:E,selectionStrategy:o,source:a})})});import{Button as li}from"@salt-ds/core";import{useMemo as ui}from"react";import{isNumericColumn as kn,isTextColumn as En}from"@vuu-ui/vuu-utils";var Mn=["=","in","!=","starts","ends"],Pn=["=","!=",">",">=","<","<="],Rt=n=>{if(En(n))return Mn;if(kn(n))return Pn;throw Error("getOperators only supports text and numeric columns")};import{forwardRef as On,useState as In,useCallback as Lt}from"react";import{ExpandoInput as Tn}from"@vuu-ui/vuu-ui-controls";import{isValidNumber as Ze}from"@vuu-ui/vuu-utils";import{jsx as An}from"react/jsx-runtime";var Ht=On(function({InputProps:e,className:t,onInputComplete:r,value:i},s){let[o,a]=In(Ze(i)?i.toString():""),l=Lt(h=>{let{value:c}=h.target,f=parseFloat(c);Ze(f)&&console.log("its valid"),a(c)},[]),u=Lt(h=>{if(h.key==="Enter"){let{value:c}=h.target,f=parseFloat(c);Ze(f)&&r(f)}},[r]);return An(Tn,{...e,className:t,value:o,ref:s,onChange:l,onKeyDown:u})});import{forwardRef as Dn,useCallback as Me,useEffect as Nn,useMemo as Bn,useState as Vt}from"react";import{useTypeaheadSuggestions as Rn}from"@vuu-ui/vuu-data-react";import{ExpandoInput as Ln}from"@vuu-ui/vuu-ui-controls";import{jsx as Pe}from"react/jsx-runtime";var Hn=["Enter"," "],Vn=n=>{if(n.session){let{module:e,session:t}=n;return{module:e,table:t}}else return n},_t=["No matching data"],Qt=Dn(function({InputProps:e={},className:t,column:r,"data-field":i,onDeselect:s,onInputComplete:o,operator:a,suggestionProvider:l=Rn,table:u,value:h},c){var v;let f=a==="in",[d,p]=Vt((v=h==null?void 0:h.toString())!=null?v:""),[g,F]=Vt([]),k=l(),$=Me((C,y)=>o(y),[o]),E=Me((C,y)=>o(y),[o]);Nn(()=>{if(u){let C=Vn(u),y=d&&!f?[C,r.name,d]:[C,r.name];k(y).then(b=>{b.length===0&&d?F(_t):F(b)}).catch(b=>{console.error("Error getting suggestions",b)})}},[u,r,d,k,f]);let x=Me(C=>{let{value:y}=C.target;p(y)},[]),S=Bn(()=>{if(a!=="in"){let{inputProps:C,...y}=e;return{...y,inputProps:{...C,onKeyDown:b=>{var P;b.key==="Enter"&&d!==""?(b.stopPropagation(),b.preventDefault(),o(d)):(P=C==null?void 0:C.onKeyDown)==null||P.call(C,b)}}}}else return e},[e,o,a,d]);return Me(()=>{switch(a){case"in":return Pe(ie,{InputProps:S,className:t,"data-field":i,initialHighlightedIndex:0,source:g,onInputChange:x,onSelectionChange:E,ref:c,selectionStrategy:"multiple",selectionKeys:Hn,value:h});case"starts":return Pe(ie,{InputProps:S,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,disableFilter:g===_t&&(d==null?void 0:d.length)>0,source:g,onInputChange:x,onSelectionChange:$,ref:c,value:h});case"ends":return Pe(Ln,{...S,className:t,"data-field":i,value:d,ref:c,onChange:x});default:return Pe(ie,{InputProps:S,allowBackspaceClearsSelection:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,source:g,title:"value",onInputChange:x,onDeselect:s,onSelectionChange:$,ref:c,value:h})}},[S,a,t,i,g,x,E,c,h,d,s,$])()});import{isDateTimeColumn as Zn}from"@vuu-ui/vuu-utils";import{useCallback as Wt,useState as Wn}from"react";var je=null;function Ut(){return je==null&&(je=new Intl.DateTimeFormat().resolvedOptions().timeZone),je}var _n=["hours","minutes","seconds"],na=["years","months","weeks","days",..._n];var Yt=1080,Qn=24*Yt,Un=29,Yn=12*Yt+793,ia=Un*Qn+Yn;import{DatePicker as zn}from"@vuu-ui/vuu-ui-controls";import{toCalendarDate as qn}from"@vuu-ui/vuu-utils";import{jsx as Gn}from"react/jsx-runtime";var zt=n=>{let{value:e,onInputComplete:t,operator:r}=n,i=Kn(r),[s,o]=Wn(()=>Jn(e)),a=Wt(u=>{o(u)},[]),l=Wt(()=>{s&&t(i(s))},[s,t,i]);return Gn(zn,{className:"vuuFilterClause-DatePicker",selectedDate:s,onBlur:l,onSelectedDateChange:a,closeOnSelection:!0,hideOutOfRangeDates:!0})};function Jn(n){return n?qn(new Date(n)):void 0}var Kn=n=>(e,t=Ut())=>{let r=e.toDate(t);switch(n){case">":case"<=":return r.setHours(23,59,59,999),r.getTime();case">=":case"<":case"=":case"!=":return r.setHours(0,0,0,0),r.getTime()}};import{jsx as Xe}from"react/jsx-runtime";var Oe="vuuFilterClause",qt=({selectedColumn:n,operator:e,InputProps:t,onChangeValue:r,onDeselectValue:i,suggestionProvider:s,table:o,value:a})=>{if(n===void 0||e===void 0)return null;if(Zn(n))return Xe(zt,{value:a,operator:e,onInputComplete:r});switch(n.serverDataType){case"string":case"char":return Xe(Qt,{InputProps:t,className:N(`${Oe}Field`,`${Oe}Value`),column:n,"data-field":"value",onDeselect:i,onInputComplete:r,operator:e,suggestionProvider:s,table:o,value:a});case"int":case"long":case"double":return Xe(Ht,{InputProps:t,className:N(`${Oe}Field`,`${Oe}Value`),column:n,onInputComplete:r,operator:e});default:return console.log("returning null"),null}};import{isMultiValueFilter as jn,isSingleValueFilter as Xn,isValidFilterClauseOp as ei}from"@vuu-ui/vuu-utils";import{useCallback as Z,useEffect as ti,useMemo as ri,useRef as Jt,useState as et}from"react";var ni=n=>n.selectionStart===0,ii=n=>n.selectionStart===n.value.length,Kt=n=>n!=null&&n.classList.contains("vuuFilterClauseColumn")?"column":n!=null&&n.classList.contains("vuuFilterClauseOperator")?"operator":"value",Zt=()=>{let n=document.activeElement;return n!=null&&n.classList.contains("vuuFilterClause-clearButton")?n:n==null?void 0:n.closest(".vuuFilterClauseField")},be=(n="fwd")=>{var r;let e=Zt(),t=e==null?void 0:e.closest(".vuuFilterClause");if(n==="fwd"&&(t==null?void 0:t.lastChild)===e)requestAnimationFrame(()=>{be()});else{let i=n==="fwd"?e==null?void 0:e.nextElementSibling:e==null?void 0:e.previousElementSibling;(r=i==null?void 0:i.querySelector("input"))==null||r.focus()}},si=n=>{var t;let e=n.closest("[data-index]");if(e){let r=e.dataset.index;return((t=e==null?void 0:e.parentElement)==null?void 0:t.querySelector(`[data-index]:has(.vuuFilterClause):has(+[data-index="${r}"])`))!==null}},Gt=()=>{let n=Zt(),e=n==null?void 0:n.closest(".vuuFilterClause");if(e&&n)if(n.classList.contains("vuuFilterClauseValue")){let t=e.querySelector(".vuuFilterClause-clearButton");t==null||t.focus()}else be()},oi=n=>{let e=n.target,t=ni(e),r=ii(e),i=e.closest(".vuuFilterClauseField");if(n.key==="ArrowLeft"){if(t){if(Kt(i)==="column")return;{let o=i.previousSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}else if(n.key==="ArrowRight"){if(r){if(Kt(i)==="value")return;{let o=i.nextSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}},ai=n=>jn(n)?n.values:Xn(n)?n.value:void 0,jt=({filterClause:n,onCancel:e,onChange:t,columnsByName:r})=>{let i=Jt(null),s=Jt(null),[o,a]=et(n.column?r[n.column]:void 0),[l,u]=et(n.op),h=Z(m=>{u(m)},[]),[c,f]=et(ai(n)),d=Z((m,v)=>{a(v!=null?v:void 0),h(void 0),f(void 0),setTimeout(()=>{Gt()},100)},[h]),p=Z(m=>{var C;let v=m.target;if(v.value===""){let y=v.closest(".vuuFilterClauseField,[data-field]");switch((C=y==null?void 0:y.dataset)==null?void 0:C.field){case"operator":{h(void 0),a(void 0),be("bwd");break}case"value":{h(void 0),be("bwd");break}case"column":si(v)&&(console.log("This is NOT the first clause"),e==null||e("Backspace"))}}},[e,h]),g=Z((m,v)=>{let C=v;if(C===void 0||ei(C))h(C),Gt();else throw Error(`FilterClauseEditor, invalid value ${C} for filter clause`)},[h]),F=Z(m=>{f(m),m!==null&&m!==""&&(Array.isArray(m)?t({column:o==null?void 0:o.name,op:l,values:m}):t({column:o==null?void 0:o.name,op:l,value:m}))},[t,l,o==null?void 0:o.name]),k=Z(()=>{f(void 0)},[]),$=Z(m=>{["ArrowLeft","ArrowRight"].includes(m.key)?oi(m):m.key==="Backspace"&&p(m)},[p]),E=Z(m=>{var y;let C=(y=m.target.closest(".vuuFilterClause"))==null?void 0:y.querySelector("input");a(void 0),h(void 0),f(void 0),setTimeout(()=>{C.select(),C==null||C.focus()},100)},[h]),x=Z(m=>{m.stopPropagation(),m.key==="Backspace"&&be("bwd")},[]),S=ri(()=>({inputProps:{onKeyDownCapture:$}}),[$]);return ti(()=>{var v;let m=(v=i.current)==null?void 0:v.querySelector("input");m==null||m.focus()},[]),{InputProps:S,columnRef:i,onChangeValue:F,onClear:E,onClearKeyDown:x,onDeselectValue:k,onColumnSelect:d,onOperatorSelect:g,operator:l,operatorRef:s,selectedColumn:o,value:c}};import{jsx as Ie,jsxs as ci}from"react/jsx-runtime";var se="vuuFilterClause",Xt=({className:n,columnsByName:e,onCancel:t,onChange:r,onDropdownClose:i,onDropdownOpen:s,filterClause:o,suggestionProvider:a,tableSchema:l,...u})=>{var v;let{InputProps:h,columnRef:c,onChangeValue:f,onClear:d,onClearKeyDown:p,onDeselectValue:g,onColumnSelect:F,onOperatorSelect:k,operator:$,operatorRef:E,selectedColumn:x,value:S}=jt({filterClause:o,onCancel:t,onChange:r,columnsByName:e}),m=ui(()=>Object.values(e),[e]);return ci("div",{className:N(se,n),...u,tabIndex:0,children:[Ie(ie,{InputProps:h,allowBackspaceClearsSelection:!0,className:N(`${se}Field`,`${se}Column`),"data-field":"column",initialHighlightedIndex:0,itemToString:C=>C.name,onListItemSelect:F,ref:c,source:m,title:"column",value:(v=x==null?void 0:x.name)!=null?v:""}),x!=null&&x.name?Ie(ie,{InputProps:h,allowBackspaceClearsSelection:!0,className:N(`${se}Field`,`${se}Operator`,{[`${se}Operator-hidden`]:x===null}),"data-field":"operator",initialHighlightedIndex:0,onListItemSelect:k,ref:E,source:Rt(x),title:"operator",value:$!=null?$:""}):null,Ie(qt,{InputProps:h,onChangeValue:f,onDeselectValue:g,operator:$,selectedColumn:x,suggestionProvider:a,table:l==null?void 0:l.table,value:S}),S!==void 0?Ie(li,{className:`${se}-clearButton`,onClick:d,onKeyDown:p,"data-icon":"close"}):null]})};import{Tooltip as Li,useTooltip as Hi}from"@vuu-ui/vuu-popups";import{EditableLabel as Vi}from"@vuu-ui/vuu-ui-controls";import{useId as _i}from"@vuu-ui/vuu-utils";import{useCallback as yr,useMemo as Qi,useRef as Ui}from"react";import{PopupMenu as fi}from"@vuu-ui/vuu-popups";import{useMemo as hi}from"react";var er=n=>({label:"Close",location:"filter",action:"close-filter",options:n}),tr=n=>({label:"Delete",location:"filter",action:"delete-filter",options:n}),rr=n=>({label:"Rename",location:"filter",action:"rename-filter",options:n}),nr=n=>({label:"Edit",location:"filter",action:"edit-filter",options:n});import{jsx as pi}from"react/jsx-runtime";var di="vuuFilterPillMenu",ir=({allowClose:n=!0,allowDelete:e=!0,allowEdit:t=!0,allowRename:r=!0,filter:i,location:s,onMenuAction:o,onMenuClose:a})=>{let[l,u]=hi(()=>[(h,c)=>{let f=[];return r&&f.push(rr(c)),t&&f.push(nr(c)),n&&f.push(er(c)),e&&f.push(tr(c)),f},{filter:i}],[n,e,t,r,i]);return pi(fi,{className:di,menuBuilder:l,menuActionHandler:o,menuLocation:N("filter",s),menuOptions:u,onMenuClose:a,tabIndex:-1})};import{isMultiClauseFilter as Ni,isMultiValueFilter as Bi}from"@vuu-ui/vuu-utils";import{filterAsQuery as pr,formatDate as Pi,isDateTimeColumn as Oi,isMultiClauseFilter as Ii,dateTimePattern as Ti,defaultPatternsByType as Ai}from"@vuu-ui/vuu-utils";import{extractFilterForColumn as mi,isAndFilter as lr,isInFilter as Te,isMultiClauseFilter as ue,isMultiValueFilter as sr,isNotNullOrUndefined as gi,isOrFilter as yi,isSingleValueFilter as or,partition as bi}from"@vuu-ui/vuu-utils";var _="and",tt="=",il=">",sl="<",vi="or",ar="starts",ol="ends",xi="in",ve=(n,e=[])=>(n&&(ue(n)?n.filters.forEach(t=>e.push(...ve(t))):e.push(n)),e),ur={combineWith:"and"},cr=n=>{let{filters:e}=n;return e.length>2?{...n,filters:n.filters.slice(0,-1)}:n.filters[0]},it=(n,e,{combineWith:t=_}=ur)=>ue(n)&&n.op===t?{...n,filters:n.filters.concat(e)}:{op:t,filters:[n,e]},fr=(n,e,t)=>n===void 0?e:hr(n,e,t).filter;function hr(n,e,t,r=0){if(ue(n)){let i=r,s=n.filters.map(o=>{let a=hr(o,e,t,i);return i=a.nextIdx,a.filter});return{filter:{...n,filters:s},nextIdx:i}}else{if(t!==r)return{filter:n,nextIdx:r+1};{let{name:i}=n;return{filter:{...gi(i)?{name:i}:{},...e},nextIdx:r+1}}}}var al=(n,e,{combineWith:t=_}=ur)=>{var r;if(st(e))ue(e)||(n=rt(n,{name:e.column}));else if(Ci(e))return ue(e),rt(n,{name:(r=e.column)!=null?r:""});if(!n)return e;if(!e)return n;if(n.op===_&&e.op===_)return{op:_,filters:Si(n.filters,e.filters)};if(n.op===_){let i=Fi(n.filters,e);return i.length>1?{op:_,filters:i}:i[0]}return e.op===_?{op:_,filters:e.filters.concat(n)}:nt(n,e,!0)?e:dr(n,e)?$i(n,e):{op:t,filters:[n,e]}},st=n=>n?Te(n)&&n.values.length===0?!0:lr(n)&&n.filters.some(e=>st(e)):!1,Ci=n=>n?n.op===ar&&n.value===""?!0:n.op===ar&&n.value==="":!1,Fi=(n,e)=>n.concat(e),$i=(n,e)=>st(e)?e:Te(n)&&Te(e)?{...n,values:[...n.values,...e.values.filter(t=>!n.values.includes(t))]}:Te(n)&&e.op===tt?{...n,values:n.values.concat([e.value])}:n.op===tt&&e.op===tt?{column:n.column,op:xi,values:[n.value,e.value]}:e,Si=(n,e)=>{let t=({op:s},{op:o})=>s===o||s[0]===">"&&o[0]===">"||s[0]==="<"&&o[0]==="<",r=(s,o)=>s.column===o.column&&t(s,o),i=s=>e.some(o=>r(s,o))===!1;return n.filter(i).concat(e)},ll=(n,e)=>{if(nt(n,e,!0))return null;if(n.op!==_)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(n)}`);let t=n.filters.filter(r=>!nt(r,e));return t.length>0?{type:_,filters:t}:null},ul=(n,e)=>{if(!e)return[void 0,void 0];if(e.column===n)return[e,void 0];if(e.op!==_)return[void 0,e];let[[t=void 0],r]=bi(e.filters,i=>i.column===n);return r.length===1?[t,r[0]]:[t,{op:_,filters:r}]},wi=(n,e)=>ue(n)?{op:n.op,filters:n.filters.map(t=>wi(t,e))}:{...n,column:e},ki=(n,e)=>{if(!n)return!1;let{op:t,column:r}=n;switch(t){case _:case vi:return n.filters!=null&&n.filters.some(i=>ki(i,e));default:return r===e.name}},rt=(n,e)=>{let t=e.name;if(n&&n.column!==t){if(lr(n)||yi(n)){let{op:r}=n,s=n.filters.filter(o=>o.column!==t);switch(s.length){case 0:return;case 1:return s[0];default:return{op:r,filters:s}}}return n}},dr=(n,e)=>n.column===e.column&&(n.op==="="||n.op==="in")&&(e.op==="="||e.op==="in"),Ei=(n,e)=>{if(n===e)return!0;if(n.length===e.length){let t=n.slice().sort(),r=e.slice().sort();return t.join("|")===r.join("|")}return!1},nt=(n,e,t=!1)=>t?n&&e&&dr(n,e)?n.op===e.op&&(or(n)&&or(e)&&n.value===e.value||sr(n)&&sr(e)&&Ei(n.values,e.values)):!1:!0,Mi=(n,e,t)=>{if(n&&e){if(t==="replace")return e;if(n.op==="and")return{...n,filters:n.filters.concat(e)};let{column:r}=e;if(r&&(e.column?mi(n,r):void 0)&&r){let s=rt(n,{name:r});return Mi(s,e,"add")}return{op:"and",filters:[n,e]}}return e||n},cl=(n,e,t)=>{if(e.length!==0){if(t){let r=e[0].substring(0,e[0].length-3);return{column:n,op:"starts",value:`"${r}"`}}return{column:n,op:"in",values:e.map(r=>`"${r}"`)}}},fl=(n,e,t)=>{if(e!==void 0&&!(t===void 0||isNaN(t)))return{column:n,op:e,value:t}};function Di(n,e){return"value"in n?{...n,value:e(n.value)}:{...n,values:n.values.map(e)}}function mr(n,e){let t=e==null?void 0:e[n.column];if(t&&Oi(t)){let r=Ti(t.type);return Di(n,s=>{var o;return Pi({date:(o=r.date)!=null?o:Ai.date})(new Date(s))})}return n}var Ae=n=>e=>{if(Ii(e)){let[t]=ve(e),r=mr(t,n);return`${pr(r)} ${e.op} ...`}else return pr(mr(e,n))};import{jsx as gr,jsxs as Ri}from"react/jsx-runtime";var ot=(n,e=Ae())=>{if(Ni(n)){let t=n.op==="and"?"Match all ...":"Match any ...";return Ri("ul",{children:[gr("span",{children:t}),n.filters.map((r,i)=>gr("li",{children:ot(r,e)},i))]})}else if(Bi(n))if(n.values.length>3){let t=n.values.slice(0,3);return`${e({...n,values:t}).slice(0,-1)},...]`}else return e(n);else return e(n)};import{jsx as De,jsxs as Yi}from"react/jsx-runtime";var br="vuuFilterPill",vr=({className:n,columnsByName:e,editable:t=!0,filter:r,id:i,onBeginEdit:s,onExitEditMode:o,onMenuAction:a,showMenu:l=!0,...u})=>{let h=Ui(null),c=yr(()=>{s==null||s(r)},[r,s]),f=Ae(e),d=Qi(()=>{var $;return($=r.name)!=null?$:f(r)},[f,r]),p=_i(i),g=yr($=>{($==null?void 0:$.type)==="escape"&&requestAnimationFrame(()=>{h.current&&h.current.focus()})},[]),{anchorProps:F,tooltipProps:k}=Hi({id:p,placement:"below",tooltipContent:ot(r,f)});return Yi("div",{...F,...u,className:N(br,n),"data-text":d,ref:h,children:[t&&o?De(Vi,{defaultValue:d,onEnterEditMode:c,onExitEditMode:o},d):De("span",{className:`${br}-label`,children:d}),l&&a?De(ir,{filter:r,onMenuAction:a,onMenuClose:g}):null,k&&De(Li,{...k})]})};import{PopupMenu as Wi}from"@vuu-ui/vuu-popups";import{jsx as xr}from"react/jsx-runtime";var Cr=()=>xr("div",{className:"vuuFilterBarMenu",children:xr(Wi,{icon:"tune",menuLocation:"filter-bar-menu",tabIndex:-1})});import{dispatchMouseEvent as ji,isMultiClauseFilter as Xi}from"@vuu-ui/vuu-utils";import{useCallback as A,useMemo as Sr,useRef as wr,useState as at}from"react";import{useCallback as ce}from"react";import{useControlled as zi}from"@vuu-ui/vuu-ui-controls";var Fr=({defaultFilterState:n,onFilterDeleted:e,onFilterRenamed:t,onFilterStateChanged:r,filterState:i})=>{let[s,o]=zi({controlled:i,default:n!=null?n:{filters:[],activeIndices:[]},name:"useFilterState",state:"FilterState"}),a=ce(d=>{o(d),r==null||r(d)},[r,o]),l=ce(d=>{let p=s.filters.length,g=s.filters.concat(d),F=qi(s.activeIndices,p);return a({filters:g,activeIndices:F}),p},[s,a]),u=ce(d=>{let p=-1,g=s.filters.filter((k,$)=>k!==d?!0:(p=$,!1)),F=Ji(s.activeIndices,p);return a({filters:g,activeIndices:F}),e==null||e(d),p},[s.filters,s.activeIndices,a,e]),h=ce((d,p)=>{let g=-1,F=s.filters.map((k,$)=>k===d?(g=$,{...d,name:p}):k);return a({...s,filters:F}),t==null||t(d,p),g},[s,a,t]),c=ce((d,p)=>{let g=-1,F=s.filters.map((k,$)=>k===d?(g=$,p):k);return a({...s,filters:F}),g},[s,a]),f=ce(d=>a({...s,activeIndices:d}),[s,a]);return{activeFilterIndex:s.activeIndices,filters:s.filters,onChangeActiveFilterIndex:f,onAddFilter:l,onChangeFilter:c,onDeleteFilter:u,onRenameFilter:h}},qi=(n,e)=>n.includes(e)?n:n.concat(e),Ji=(n,e)=>n.reduce((t,r)=>r===e?t:t.concat(r>e?r-1:r),[]);import{useCallback as Ki,useEffect as Gi}from"react";import{filterAsQuery as Zi}from"@vuu-ui/vuu-utils";function $r({activeFilterIndex:n,columnsByName:e,filters:t,onApplyFilter:r}){let i=Ki(s=>{let o=s?Zi(s,{columnsByName:e}):"";r({filter:o,filterStruct:s})},[e,r]);Gi(()=>{let s=n.map(o=>t[o]);if(s.length===0)i();else if(s.length===1){let[o]=s;i(o)}else i({op:"and",filters:s})},[n,i,t])}var kr={},Er=({columnDescriptors:n,containerRef:e,defaultFilterState:t,filterState:r,onApplyFilter:i,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a,showMenu:l})=>{let u=wr(null),h=wr(),[c,f]=at(l),[d,p]=at(),[g,F]=at(null),k=Sr(()=>es(n),[n]),{activeFilterIndex:$,filters:E,onAddFilter:x,onChangeFilter:S,onDeleteFilter:m,onRenameFilter:v,onChangeActiveFilterIndex:C}=Fr({defaultFilterState:t,filterState:r,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a});$r({activeFilterIndex:$,columnsByName:k,filters:E,onApplyFilter:i});let y=A(M=>{requestAnimationFrame(()=>{var O;let w=(O=e.current)==null?void 0:O.querySelectorAll(".vuuFilterPill");if(w!=null&&w[M]){let L=w[M].querySelector(".vuuEditableLabel");L&&ji(L,"dblclick")}})},[e]),b=A((M=0)=>{requestAnimationFrame(()=>{var O;let w=(O=e.current)==null?void 0:O.querySelector(".vuuFilterClause .saltInput-input");w&&w.focus()})},[e]),P=A(M=>{requestAnimationFrame(()=>{var O,L;let w=typeof M=="number"?(O=e.current)==null?void 0:O.querySelector(`.vuuOverflowContainer-item[data-index="${M}"] .vuuFilterPill`):(L=e.current)==null?void 0:L.querySelector(".vuuFilterPill[tabindex]");w&&w.focus()})},[e]),T=A(M=>{m(M),requestAnimationFrame(()=>{E.length&&P(0)})},[E.length,P,m]),H=Sr(()=>M=>{let w=()=>{F(null),P()};return{confirmButtonLabel:"Remove",icon:"warn-triangle",onCancel:w,onClose:w,onConfirm:()=>{F(null),T(M)},text:`Are you sure you want to delete ${M.name}`,title:"Remove Filter",variant:"warn"}},[T,P]),W=A((M,w)=>{w?F(H(M)):T(M)},[T,H]),z=A(M=>{h.current=M},[]),Y=A((M,w="")=>{if(h.current){let O=v(h.current,w);h.current=void 0,P(O)}},[P,v]),ye=A(({menuId:M,options:w})=>{switch(M){case"delete-filter":{let{filter:O}=w;return W(O,!0),!0}case"rename-filter":{let{filter:O}=w,L=E.indexOf(O);return y(L),!0}case"edit-filter":{let{filter:O}=w;return h.current=O,p(O),b(),!0}default:return!1}},[W,y,E,b]),D=A((M,w)=>{if(w===void 0){let O=x(M);y(O)}else S(w,M)},[y,x,S]),R=A(({menuId:M})=>{switch(M){case"apply-save":return D(d,h.current),p(void 0),h.current=void 0,f(!1),!0;case"and-clause":{let w=it(d,kr);return p(w),f(!1),!0}case"or-clause":return p(w=>it(w,kr,{combineWith:"or"})),f(!1),!0;default:return!1}},[d,D]),V=A(()=>{p({})},[p]),q=A(()=>{p(void 0)},[]),ee={onBeginEdit:z,onMenuAction:ye,onExitEditMode:Y},le=A(M=>w=>{w!==void 0&&(p(O=>fr(O,w,M)),f(!0))},[]),ke=A(M=>{M==="Backspace"&&Xi(d)&&p(cr(d))},[d]),an=A(M=>{let w=M.target,O=M.relatedTarget,L=w.closest(".vuuFilterClause");if(!(L!=null&&L.contains(O))){let te=w.getAttribute("aria-owns"),Je=te?document.getElementById(te):null;Je!=null&&Je.contains(O)||f(!0)}},[]),ln=A(()=>{f(!1)},[]),un=A(M=>{M.key==="Escape"&&d!==void 0&&(p(void 0),requestAnimationFrame(()=>{}))},[d]),cn=A(M=>{var O;let{current:w}=e;if(M.key==="Backspace"&&w){M.preventDefault();let L=Array.from(w.querySelectorAll(".vuuFilterClauseField"));if(L.length>0){let te=L.at(-1);(O=te==null?void 0:te.querySelector("input"))==null||O.focus()}f(!1)}else if(M.key==="Tab")if(M.shiftKey&&w){let L=Array.from(w.querySelectorAll(".vuuFilterClause-clearButton"));if(L.length>0){let te=L.at(-1);setTimeout(()=>{te.focus()},100)}}else console.log("apply current selection")},[e]),fn=A(M=>{M.key==="ArrowLeft"&&console.log("navgiate to the Toolbar")},[]),hn=A(M=>{var w;M==="end"&&((w=u.current)==null||w.focus())},[]);return{activeFilterIndex:$,addButtonProps:{ref:u,onKeyDown:fn},columnsByName:k,editFilter:d,filters:E,onBlurFilterClause:an,onCancelFilterClause:ke,onChangeActiveFilterIndex:C,onClickAddFilter:V,onClickRemoveFilter:q,onChangeFilterClause:le,onFocusFilterClause:ln,onKeyDownFilterbar:un,onKeyDownMenu:cn,onMenuAction:R,onNavigateOutOfBounds:hn,pillProps:ee,promptProps:g,showMenu:c}};function es(n){return n.reduce((e,t)=>({...e,[t.name]:t}),{})}import{jsx as he,jsxs as is}from"react/jsx-runtime";import{createElement as lt}from"react";var fe="vuuFilterBar",xu=({FilterClauseEditorProps:n,className:e,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterDeleted:o,onFilterRenamed:a,onFilterStateChanged:l,showMenu:u=!1,tableSchema:h,...c})=>{let f=ns(null),{activeFilterIndex:d,addButtonProps:p,columnsByName:g,editFilter:F,filters:k,onBlurFilterClause:$,onCancelFilterClause:E,onClickAddFilter:x,onClickRemoveFilter:S,onChangeFilterClause:m,onChangeActiveFilterIndex:v,onFocusFilterClause:C,onNavigateOutOfBounds:y,onKeyDownFilterbar:b,onKeyDownMenu:P,onMenuAction:T,pillProps:H,promptProps:W,showMenu:z}=Er({containerRef:f,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterStateChanged:l,onFilterDeleted:o,onFilterRenamed:a,showMenu:u}),Y=N(fe,e,{[`${fe}-display`]:F===void 0,[`${fe}-edit`]:F!==void 0});return is("div",{...c,className:Y,onKeyDown:b,ref:f,children:[he(Cr,{}),he(rs,{activeItemIndex:d,onActiveChange:v,onNavigateOutOfBounds:y,selectionStrategy:"multiple-special-key",children:(()=>{let D=[];if(F===void 0)return k.forEach((R,V)=>{D.push(lt(vr,{...H,columnsByName:g,filter:R,key:`filter-${V}`}))}),D;if(F){let R=ve(F);return D.push(he("div",{className:`${fe}-Editor`,children:R.map((V,q)=>lt(Xt,{...n,columnsByName:g,filterClause:V,key:`editor-${q}`,onCancel:E,onChange:m(q),onBlur:$,onFocus:C,tableSchema:h}))},"editor")),z&&D.push(he(Dt,{onMenuAction:T,ListProps:{onKeyDownCapture:P}},"menu")),D.push(he(Mr,{className:`${fe}-remove`,"data-align":"right","data-icon":"cross",onClick:S,variant:"primary"},"filter-remove")),D}})()}),F===void 0?lt(Mr,{...p,className:`${fe}-add`,"data-icon":"plus","data-selectable":!1,key:"filter-add",onClick:x,tabIndex:0,variant:"primary"}):null,W?he(ts,{...W,PopupProps:{anchorElement:f,offsetTop:16,placement:"below-center"}}):null]})};import{Button as rn}from"@salt-ds/core";import{autocompletion as ws,defaultKeymap as ks,EditorState as jr,EditorView as Xr,ensureSyntaxTree as Es,keymap as wt,minimalSetup as Ms,startCompletion as en}from"@vuu-ui/vuu-codemirror";var ss=0,xe=class{constructor(e,t){this.from=e,this.to=t}},I=class{constructor(e={}){this.id=ss++,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=J.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};I.closedBy=new I({deserialize:n=>n.split(" ")});I.openedBy=new I({deserialize:n=>n.split(" ")});I.group=new I({deserialize:n=>n.split(" ")});I.contextHash=new I({perNode:!0});I.lookAhead=new I({perNode:!0});I.mounted=new I({perNode:!0});var os=Object.create(null),J=class n{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):os,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new n(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),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 i}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(I.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(I.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}};J.none=new J("",Object.create(null),0,8);var Re=class n{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let r of this.types){let i=null;for(let s of e){let o=s(r);o&&(i||(i=Object.assign({},r.props)),i[o[0].id]=o[1])}t.push(i?new J(r.name,i,r.id,r.flags):r)}return new n(t)}},Ne=new WeakMap,Pr=new WeakMap,B;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(B||(B={}));var Q=class n{constructor(e,t,r,i,s){if(this.type=e,this.children=t,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=this.prop(I.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let i=r.toString();i&&(t&&(t+=","),t+=i)}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 pe(this.topNode,e)}cursorAt(e,t=0,r=0){let i=Ne.get(this)||this.topNode,s=new pe(i);return s.moveTo(e,t),Ne.set(this,s._tree),s}get topNode(){return new ae(this,0,0,null)}resolve(e,t=0){let r=de(Ne.get(this)||this.topNode,e,t,!1);return Ne.set(this,r),r}resolveInner(e,t=0){let r=de(Pr.get(this)||this.topNode,e,t,!0);return Pr.set(this,r),r}iterate(e){let{enter:t,leave:r,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&B.IncludeAnonymous)>0;for(let l=this.cursor(o|B.IncludeAnonymous);;){let u=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;u=!0}for(;u&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:dt(J.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new n(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new n(J.none,t,r,i)))}static build(e){return as(e)}};Q.empty=new Q(J.none,[],[],0);var ut=class n{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 n(this.buffer,this.index)}},oe=class n{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return J.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],r=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let o=[];for(;e<r;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,r,i,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(Ir(s,i,o[l+1],o[l+2])&&(a=l,r>0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=i[a++],s[l++]=i[a++]-r;let u=s[l++]=i[a++]-r;s[l++]=i[a++]-e,o=Math.max(o,u)}return new n(s,o,this.set)}};function Ir(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function Tr(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function de(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let o=!r&&n instanceof ae&&n.index<0?null:n.parent;if(!o)return n;n=o}let s=r?0:B.IgnoreOverlays;if(r)for(let o=n,a=o.parent;a;o=a,a=o.parent)o instanceof ae&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(n=a);for(;;){let o=n.enter(e,t,s);if(!o)return n;n=o}}var ae=class n{constructor(e,t,r,i){this._tree=e,this.from=t,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,i,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,u=t>0?a.length:-1;e!=u;e+=t){let h=a[e],c=l[e]+o.from;if(Ir(i,r,c,c+h.length)){if(h instanceof oe){if(s&B.ExcludeBuffers)continue;let f=h.findChild(0,h.buffer.length,t,r-c,i);if(f>-1)return new Ce(new ct(o,h,e,c),null,f)}else if(s&B.IncludeAnonymous||!h.type.isAnonymous||ht(h)){let f;if(!(s&B.IgnoreMounts)&&h.props&&(f=h.prop(I.mounted))&&!f.overlay)return new n(f.tree,c,e,o);let d=new n(h,c,e,o);return s&B.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?h.children.length-1:0,t,r,i)}}}if(s&B.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,r=0){let i;if(!(r&B.IgnoreOverlays)&&(i=this._tree.prop(I.mounted))&&i.overlay){let s=e-this.from;for(let{from:o,to:a}of i.overlay)if((t>0?o<=s:o<s)&&(t<0?a>=s:a>s))return new n(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new pe(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return de(this,e,t,!1)}resolveInner(e,t=0){return de(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Tr(this,e)}getChild(e,t=null,r=null){let i=Le(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return Le(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return He(this,e)}};function Le(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function He(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var ct=class{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}},Ce=class n{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,r=0){if(r&B.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(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 n(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 n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new pe(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new Q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return de(this,e,t,!1)}resolveInner(e,t=0){return de(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Tr(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let i=Le(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return Le(this,e,t,r)}get node(){return this}matchContext(e){return He(this,e)}},pe=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 ae)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof ae?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&B.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&B.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&B.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=i)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&B.IncludeAnonymous||a instanceof oe||!a.type.isAnonymous||ht(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,r=0;if(e&&e.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)t=new Ce(this.buffer,t,this.stack[i]);return this.bufferNode=new Ce(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,i=!0}}}matchContext(e){if(!this.buffer)return He(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return He(this.node,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function ht(n){return n.children.some(e=>e instanceof oe||!e.type.isAnonymous||ht(e))}function as(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new ut(t,t.length):t,l=r.types,u=0,h=0;function c(x,S,m,v,C){let{id:y,start:b,end:P,size:T}=a,H=h;for(;T<0;)if(a.next(),T==-1){let D=s[y];m.push(D),v.push(b-x);return}else if(T==-3){u=y;return}else if(T==-4){h=y;return}else throw new RangeError(`Unrecognized record size: ${T}`);let W=l[y],z,Y,ye=b-x;if(P-b<=i&&(Y=g(a.pos-S,C))){let D=new Uint16Array(Y.size-Y.skip),R=a.pos-Y.size,V=D.length;for(;a.pos>R;)V=F(Y.start,D,V);z=new oe(D,P-Y.start,r),ye=Y.start-x}else{let D=a.pos-T;a.next();let R=[],V=[],q=y>=o?y:-1,ee=0,le=P;for(;a.pos>D;)q>=0&&a.id==q&&a.size>=0?(a.end<=le-i&&(d(R,V,b,ee,a.end,le,q,H),ee=R.length,le=a.end),a.next()):c(b,D,R,V,q);if(q>=0&&ee>0&&ee<R.length&&d(R,V,b,ee,b,le,q,H),R.reverse(),V.reverse(),q>-1&&ee>0){let ke=f(W);z=dt(W,R,V,0,R.length,0,P-b,ke,ke)}else z=p(W,R,V,P-b,H-P)}m.push(z),v.push(ye)}function f(x){return(S,m,v)=>{let C=0,y=S.length-1,b,P;if(y>=0&&(b=S[y])instanceof Q){if(!y&&b.type==x&&b.length==v)return b;(P=b.prop(I.lookAhead))&&(C=m[y]+b.length+P)}return p(x,S,m,v,C)}}function d(x,S,m,v,C,y,b,P){let T=[],H=[];for(;x.length>v;)T.push(x.pop()),H.push(S.pop()+m-C);x.push(p(r.types[b],T,H,y-C,P-y)),S.push(C-m)}function p(x,S,m,v,C=0,y){if(u){let b=[I.contextHash,u];y=y?[b].concat(y):[b]}if(C>25){let b=[I.lookAhead,C];y=y?[b].concat(y):[b]}return new Q(x,S,m,v,y)}function g(x,S){let m=a.fork(),v=0,C=0,y=0,b=m.end-i,P={size:0,start:0,skip:0};e:for(let T=m.pos-x;m.pos>T;){let H=m.size;if(m.id==S&&H>=0){P.size=v,P.start=C,P.skip=y,y+=4,v+=4,m.next();continue}let W=m.pos-H;if(H<0||W<T||m.start<b)break;let z=m.id>=o?4:0,Y=m.start;for(m.next();m.pos>W;){if(m.size<0)if(m.size==-3)z+=4;else break e;else m.id>=o&&(z+=4);m.next()}C=Y,v+=H,y+=z}return(S<0||v==x)&&(P.size=v,P.start=C,P.skip=y),P.size>4?P:void 0}function F(x,S,m){let{id:v,start:C,end:y,size:b}=a;if(a.next(),b>=0&&v<o){let P=m;if(b>4){let T=a.pos-(b-4);for(;a.pos>T;)m=F(x,S,m)}S[--m]=P,S[--m]=y-x,S[--m]=C-x,S[--m]=v}else b==-3?u=v:b==-4&&(h=v);return m}let k=[],$=[];for(;a.pos>0;)c(n.start||0,n.bufferStart||0,k,$,-1);let E=(e=n.length)!==null&&e!==void 0?e:k.length?$[0]+k[0].length:0;return new Q(l[n.topID],k.reverse(),$.reverse(),E)}var Or=new WeakMap;function Be(n,e){if(!n.isAnonymous||e instanceof oe||e.type!=n)return 1;let t=Or.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Q)){t=1;break}t+=Be(n,r)}Or.set(e,t)}return t}function dt(n,e,t,r,i,s,o,a,l){let u=0;for(let p=r;p<i;p++)u+=Be(n,e[p]);let h=Math.ceil(u*1.5/8),c=[],f=[];function d(p,g,F,k,$){for(let E=F;E<k;){let x=E,S=g[E],m=Be(n,p[E]);for(E++;E<k;E++){let v=Be(n,p[E]);if(m+v>=h)break;m+=v}if(E==x+1){if(m>h){let v=p[x];d(v.children,v.positions,0,v.children.length,g[x]+$);continue}c.push(p[x])}else{let v=g[E-1]+p[E-1].length-S;c.push(dt(n,p,g,x,E,S,v,null,l))}f.push(S+$-s)}}return d(e,t,r,i,0),(a||l)(c,f,o)}var Ve=class{startParse(e,t,r){return typeof e=="string"&&(e=new ft(e)),r=r?r.length?r.map(i=>new xe(i.from,i.to)):[new xe(0,0)]:[new xe(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}},ft=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var ku=new I({perNode:!0});var mt=class n{constructor(e,t,r,i,s,o,a,l,u,h=0,c){this.p=e,this.stack=t,this.state=r,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=u,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let i=e.parser.context;return new n(e,[],t,r,r,0,[],0,i?new _e(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,i=e&65535,{parser:s}=this.p,o=s.dynamicPrecedence(i);if(o&&(this.score+=o),r==0){this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),this.reduceContext(i,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,u=this.reducePos-l;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=u));let h=a?this.stack[a-1]:0,c=this.bufferBase+this.buffer.length-h;if(i<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,f,c+4,!0)}if(e&262144)this.state=this.stack[a];else{let f=this.stack[a-3];this.state=s.getGoto(f,i,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(i,l)}storeNode(e,t,r,i=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==r)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>r;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4);this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=r,this.buffer[o+3]=i}}shift(e,t,r){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4);else{let s=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let r=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new n(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new gt(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&i.push(t[s],o);if(this.stack.length<120)for(let s=0;i.length<8&&s<t.length;s+=2){let o=t[s+1];i.some((a,l)=>l&1&&a==o)||i.push(t[s],o)}t=i}let r=[];for(let i=0;i<t.length&&r.length<4;i+=2){let s=t[i+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[i],this.pos),o.score-=200,r.push(o)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,i=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],i,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],r=(i,s)=>{if(!t.includes(i))return t.push(i),e.allActions(i,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,u=this.stack.length-a*3;if(u>=0&&e.getGoto(this.stack[u],l,!1)>=0)return a<<19|65536|l}}else{let a=r(o,s+1);if(a!=null)return a}})};return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new _e(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()}},_e=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ar;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(Ar||(Ar={}));var gt=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},yt=class n{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new n(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 n(this.stack,this.pos,this.index)}};function Fe(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,i=0;r<n.length;){let s=0;for(;;){let o=n.charCodeAt(r++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}var me=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Dr=new me,bt=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=Dr,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let r=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!i)return null;let o=this.ranges[--i];s-=r.from-o.to,r=o}for(;t<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-r.to,r=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,r,i;if(t>=0&&t<this.chunk.length)r=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Dr,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let r="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(r+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return r}},re=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;_r(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};re.prototype.contextual=re.prototype.fallback=re.prototype.extend=!1;var vt=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?Fe(e):e}token(e,t){let r=e.pos,i=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(_r(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||i++,o==null)break;e.reset(o,e.token)}i&&(e.reset(r,e.token),e.acceptToken(this.elseToken,i))}};vt.prototype.contextual=re.prototype.fallback=re.prototype.extend=!1;function _r(n,e,t,r,i,s){let o=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[o];){let u=n[o+1];for(let d=o+3;d<u;d+=2)if((n[d+1]&a)>0){let p=n[d];if(l.allows(p)&&(e.token.value==-1||e.token.value==p||us(p,e.token.value,i,s))){e.acceptToken(p);break}}let h=e.next,c=0,f=n[o+2];if(e.next<0&&f>c&&n[u+f*3-3]==65535&&n[u+f*3-3]==65535){o=n[u+f*3-1];continue e}for(;c<f;){let d=c+f>>1,p=u+d+(d<<1),g=n[p],F=n[p+1]||65536;if(h<g)f=d;else if(h>=F)c=d+1;else{o=n[p+2],e.advance();continue e}}break}}function Nr(n,e,t){for(let r=e,i;(i=n[r])!=65535;r++)if(i==t)return r-e;return-1}function us(n,e,t,r){let i=Nr(t,r,e);return i<0||Nr(t,r,n)<i}var K=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),pt=null,Br;(function(n){n[n.Margin=25]="Margin"})(Br||(Br={}));function Rr(n,e,t){let r=n.cursor(B.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var xt=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?Rr(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Rr(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let r=this.trees[t],i=this.index[t];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],o=this.start[t]+r.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof Q){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(I.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},Ct=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new me)}getActions(e){let t=0,r=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let u=0;u<s.length;u++){if(!(1<<u&o))continue;let h=s[u],c=this.tokens[u];if(!(r&&!h.fallback)&&((h.contextual||c.start!=e.pos||c.mask!=o||c.context!=a)&&(this.updateCachedToken(c,h,e),c.mask=o,c.context=a),c.lookAhead>c.end+25&&(l=Math.max(c.lookAhead,l)),c.value!=0)){let f=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!h.extend&&(r=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new me,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new me,{pos:r,p:i}=e;return t.start=r,t.end=Math.min(r+1,i.stream.end),t.value=r==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,r){let i=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(i,e),r),e.value>-1){let{parser:s}=r.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==e)return i;return this.actions[i++]=e,this.actions[i++]=t,this.actions[i++]=r,i}addActions(e,t,r,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let u=o.stateSlot(s,l?2:1);;u+=3){if(a[u]==65535)if(a[u+1]==1)u=j(a,u+2);else{i==0&&a[u+1]==2&&(i=this.putAction(j(a,u+2),t,r,i));break}a[u]==t&&(i=this.putAction(j(a,u+1),t,r,i))}return i}},Lr;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(Lr||(Lr={}));var Ft=class{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,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 bt(t,i),this.tokens=new Ct(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[mt.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new xt(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{i||(i=[],s=[]),i.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let o=i&&cs(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw K&&i&&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&&i){let o=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(r.length>o)for(r.sort((a,l)=>l.score-a.score);r.length>o;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let o=0;o<r.length-1;o++){let a=r[o];for(let l=o+1;l<r.length;l++){let u=r[l];if(a.sameState(u)||a.buffer.length>500&&u.buffer.length>500)if((a.score-u.score||a.buffer.length-u.buffer.length)>0)r.splice(l--,1);else{r.splice(o--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let o=1;o<r.length;o++)r[o].pos<this.minStackPos&&(this.minStackPos=r[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,r){let i=e.pos,{parser:s}=this,o=K?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,h=u?e.curContext.hash:0;for(let c=this.fragments.nodeAt(i);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!u||(c.prop(I.contextHash)||0)==h))return e.useNode(c,f),K&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof Q)||c.children.length==0||c.positions[0]>0)break;let d=c.children[0];if(d instanceof Q&&c.positions[0]==0)c=d;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),K&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let u=0;u<l.length;){let h=l[u++],c=l[u++],f=l[u++],d=u==l.length||!r,p=d?e:e.split();if(p.apply(h,c,f),K&&console.log(o+this.stackID(p)+` (via ${h&65536?`reduce of ${s.getName(h&65535)}`:"shift"} for ${s.getName(c)} @ ${i}${p==e?"":", split"})`),d)return!0;p.pos>i?t.push(p):r.push(p)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return Hr(e,t),!0}}runRecovery(e,t,r){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],u=t[(o<<1)+1],h=K?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),K&&console.log(h+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let c=a.split(),f=h;for(let d=0;c.forceReduce()&&d<10&&(K&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,r));d++)K&&(f=this.stackID(c)+" -> ");for(let d of a.recoverByInsert(l))K&&console.log(h+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,r);this.stream.end>a.pos?(u==a.pos&&(u++,l=0),a.recoverByDelete(l,u),K&&console.log(h+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Hr(a,r)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),Q.build({buffer:yt.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=(pt||(pt=new WeakMap)).get(e);return t||pt.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Hr(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var $t=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var Qe=class n extends Ve{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,l,u){i[a].push([l,l.deserialize(String(u))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=I[l]);for(let u=1;u<a.length;){let h=a[u++];if(h>=0)s(h,l,a[u++]);else{let c=a[u+-h];for(let f=-h;f>0;f--)s(a[u++],l,c);u++}}}this.nodeSet=new Re(t.map((a,l)=>J.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:i[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Fe(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(Vr),this.states=Fe(e.states,Uint32Array),this.data=Fe(e.stateData),this.goto=Fe(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new re(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,r){let i=new Ft(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}getGoto(e,t,r=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,l=i[s++];if(a&&r)return l;for(let u=s+(o>>1);s<u;s++)if(i[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=r[s])==65535)if(r[s+1]==1)o=r[s=j(r,s+2)];else{if(r[s+1]==2)return j(r,s+2);break}if(o==t||o==0)return j(r,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),i=r?t(r):void 0;for(let s=this.stateSlot(e,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=j(this.data,s+2);else break;i=t(j(this.data,s+1))}return i}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=j(this.data,r+2);else break;if(!(this.data[r+2]&1)){let i=this.data[r+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[r],i)}}return t}configure(e){let t=Object.assign(Object.create(n.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let i=e.tokenizers.find(s=>s.from==r);return i?i.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let o=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[i]=Vr(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(r[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!r[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[a]=1;return new $t(e,r,i)}static deserialize(e){return new n(e)}};function j(n,e){return n[e]|n[e+1]<<16}function cs(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Vr(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var $e=Qe.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});import{isMultiClauseFilter as Se,isMultiValueFilter as fs,isSingleValueFilter as hs}from"@vuu-ui/vuu-utils";var U,St=class{constructor(){Pt(this,U,void 0)}setFilterCombinatorOp(e,t=G(this,U)){Se(t)&&t.op===e||Ke(this,U,{op:e,filters:[G(this,U)]})}add(e){if(G(this,U)===void 0)Ke(this,U,e);else if(Se(G(this,U)))G(this,U).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=G(this,U)){if(Se(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=G(this,U)){if(Se(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=G(this,U)){var r;if(Se(t)){let i=t.filters.at(-1);i&&this.setValue(e,i)}else fs(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):hs(t)&&(t.value=e)}toJSON(e=G(this,U)){return this.name?{...e,name:this.name}:e}};U=new WeakMap;var Ue=(n,e)=>{let t=new St,r=n.cursor();do{let{name:i,from:s,to:o}=r;switch(i){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(s,o));break;case"Column":t.setColumn(e.substring(s,o));break;case"Operator":t.setOp(e.substring(s,o));break;case"String":t.setValue(e.substring(s+1,o-1));break;case"Number":t.setValue(parseFloat(e.substring(s,o)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(s,o);break;default:}}while(r.next());return t.toJSON()};var Ru=$e.configure({strict:!0});import{useEffect as Ps,useMemo as Os,useRef as kt}from"react";import{LanguageSupport as ps,LRLanguage as ms,styleTags as gs,tags as Ye}from"@vuu-ui/vuu-codemirror";var ys=ms.define({name:"VuuFilterQuery",parser:$e.configure({props:[gs({Identifier:Ye.variableName,String:Ye.string,Or:Ye.emphasis,Operator:Ye.operator})]})}),Qr=()=>new ps(ys);import{HighlightStyle as bs,syntaxHighlighting as vs,tags as Ur}from"@vuu-ui/vuu-codemirror";var xs=bs.define([{tag:Ur.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Ur.comment,color:"green",fontStyle:"italic"}]),Yr=vs(xs);import{EditorView as Cs}from"@vuu-ui/vuu-codemirror";var Wr=Cs.theme({"&":{color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)",fontSize:"var(--vuuFilterEditor-fontSize)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)",padding:0},".cm-line":{lineHeight:"var(--vuuFilterEditor-lineHeight)"},"&.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)",borderRadius:"4px",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{alignItems:"center",display:"flex",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-completionIcon":{height:"18px",flex:"0 0 16px"},".cm-completionLabel":{flex:"1 1 auto"},".cm-completionIcon-filter":{position:"relative","&:after":{background:"var(--salt-text-secondary-foreground)",content:"''","-webkit-mask":"var(--svg-filter) center center/13px 13px","-webkit-mask-repeat":"no-repeat",position:"absolute",height:"18px",left:"0px",top:"0px",width:"16px"}}},{dark:!1});import{getNodeByName as ge,getValue as X,syntaxTree as Fs}from"@vuu-ui/vuu-codemirror";import{useCallback as zr}from"react";var qr=(n,e)=>{let t=n.prevSibling||n.parent;for(;t&&!["Column","Operator","In"].includes(t.name);)t=t.prevSibling||t.parent;if((t==null?void 0:t.name)==="In"||(t==null?void 0:t.name)==="Operator")return X(t,e)},$s=(n,e,t)=>{let r=X(n,e);if(!(t===void 0||r===t)&&["contains","ends","starts"].some(i=>i.startsWith(r.toLowerCase())))return r},Jr=(n,e)=>{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name==="\u26A0";)t=t.prevSibling;if(t&&["As","Or","And"].includes(t.name))return X(t,e)},Kr=(n,e)=>{if(n.name==="FilterName")return X(n,e);{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name!=="FilterName";)t=t.prevSibling;if(t&&t.name==="FilterName")return X(n,e)}},Gr=(n,e)=>{let t=n.prevSibling;if((t==null?void 0:t.name)==="Column")return X(t,e);if((t==null?void 0:t.name)==="Operator")return Gr(t,e)},Ss=(n,e)=>{let t=n.lastChild,r=[];for(;t&&t.name!=="In";){let i=X(t,e);if(i)r.push(i);else break;t=t.prevSibling}return r};var Zr=(n,e,t)=>{let r=zr(async(i,s,o={})=>{let{startsWith:a=""}=o,l=await n.getSuggestions(s,o);return{from:i.pos-a.length,options:l}},[n]);return zr(async i=>{var h,c;let{state:s,pos:o}=i,a=(h=i.matchBefore(/\w*/))!=null?h:{from:0,to:0,text:void 0},u=Fs(s).resolveInner(o,-1);switch(console.log({nodeBeforeName:u.name}),u.name){case"Filter":if(i.pos===0)return r(i,"column");if(Jr(u,s)==="as")return r(i,"name");{let d=Kr(u,s);return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:d})}case"String":{let f=qr(u,s),d=Gr(u,s),{from:p,to:g}=u;if(g-p===2&&i.pos===p+1){if(d&&f)return r(i,"columnValue",{columnName:d,operator:f,quoted:!0,startsWith:a.text})}else console.log(`we have a string, column is ${d} ${p} ${g}`)}break;case"As":return r(i,"name");case"FilterName":return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:Kr(u,s)});case"Column":{let f=X(u,s);return await n.isPartialMatch("column",void 0,f)?r(i,"column",{startsWith:f}):r(i,"operator",{columnName:f})}case"\u26A0":{let f=ge(u,s),d=qr(u,s),p=d?void 0:$s(u,s,f);return p?r(i,"operator",{columnName:f,startsWith:p}):r(i,"columnValue",{columnName:f,operator:d,startsWith:a.text})}case"Identifier":if(Jr(u,s)==="as")return{from:i.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>e.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let f=ge(u,s),d=Ss(u,s);return r(i,"columnValue",{columnName:f,selection:d})}case"Comma":case"LBrack":{let f=ge(u,s);return r(i,"columnValue",{columnName:f})}case"ColumnValueExpression":{let f=(c=u.lastChild)==null?void 0:c.prevSibling;if((f==null?void 0:f.name)==="Column")return r(i,"operator",{columnName:ge(u,s)});if((f==null?void 0:f.name)==="Operator")return r(i,"columnValue",{columnName:ge(f,s),operator:X(f,s)})}break;case"In":return{from:i.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return r(i,"columnValue",{columnName:ge(u,s)});case"AndExpression":case"OrExpression":return r(i,"column");default:}},[t,r,e,n])};var we=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Is=n=>N("vuuSuggestion",{vuuIllustration:n.isIllustration}),Ts=n=>{let e=n.lastIndexOf(" as ");return e!==-1?n.slice(0,e):n},As=()=>console.log("noooop"),tn=({existingFilter:n,onSubmitFilter:e,suggestionProvider:t})=>{let r=kt(null),i=kt(As),s=kt(),o=Zr(t,i,n),[a,l]=Os(()=>{let u=()=>{let g=we(s),F=g.state.doc.toString(),k=Es(g.state,g.state.doc.length,5e3);if(k){let $=Ue(k,F);return[$,Ts(F),$.name]}else return[void 0,"",void 0]},h=()=>{we(s).setState(p())},c=g=>{let[F,k,$]=u();e==null||e(F,k,g,$),h()},f=g=>wt.of([{key:g,run(){return c(),!0}}]),d=g=>wt.of([{key:g,run(){return en(we(s)),!0}}]),p=()=>jr.create({doc:"",extensions:[Ms,ws({override:[o],optionClass:Is}),Qr(),wt.of(ks),f("Ctrl-Enter"),d("ArrowDown"),Xr.updateListener.of(g=>{let F=we(s);g.docChanged&&en(F)}),jr.transactionFilter.of(g=>g.newDoc.lines>1?[]:g),Wr,Yr]});return i.current=g=>{c(g),setTimeout(()=>{we(s).focus()},100)},[p,h]},[o,e]);return Ps(()=>{if(!r.current)throw Error("editor not in dom");return s.current=new Xr({state:a(),parent:r.current}),()=>{var u;(u=s.current)==null||u.destroy()}},[o,a]),{editorRef:r,clearInput:l}};import{jsx as Et,jsxs as Ds}from"react/jsx-runtime";var We="vuuFilterInput",Mc=({existingFilter:n,iconName:e="filter",namedFilters:t,onSubmitFilter:r,suggestionProvider:i,...s})=>{let{editorRef:o,clearInput:a}=tn({existingFilter:n,onSubmitFilter:r,suggestionProvider:i});return Ds("div",{...s,className:We,children:[Et(rn,{className:`${We}-FilterButton`,"data-icon":e,tabIndex:-1}),Et("div",{className:`${We}-Editor`,ref:o}),Et(rn,{className:`${We}-ClearButton`,"data-icon":"close-circle",onClick:a})]})};import{asNameSuggestion as Ns,booleanJoinSuggestions as Bs,getNamePrompt as Rs,numericOperators as Ls,stringOperators as Hs,toSuggestions as Vs}from"@vuu-ui/vuu-codemirror";import{getTypeaheadParams as _s,useTypeaheadSuggestions as Qs}from"@vuu-ui/vuu-data-react";import{useCallback as sn,useRef as Us}from"react";import{createEl as ze}from"@vuu-ui/vuu-utils";var nn=(n,e)=>{let t=ze("div","vuuFunctionDoc"),r=ze("div","function-heading"),i=ze("span","function-name",n);r.appendChild(i);let s=ze("p",void 0,e);return t.appendChild(r),t.appendChild(s),t};var Ys=[],Ws={},zs=n=>[{label:"Press ENTER to create TAB",apply:()=>n("tab"),boost:6}],on=(n,e,t=!0)=>{let r=e?[{label:"REPLACE existing filter",apply:()=>n("replace"),boost:8},{label:"AND existing filter",apply:()=>n("and"),boost:7},{label:"OR existing filter",apply:()=>n("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>n(),boost:6}];return t?r.concat(Bs).concat(Ns):r},qs=(n,e)=>on(n,e,!0),Js=n=>on(n,void 0),Ks=({existingFilter:n,filterName:e,onSubmit:t,saveOptions:r})=>{let i=e&&r.allowSaveAsTab,s=n?qs(t,n):Js(t);return i?s.concat(zs(t)):s},Gs=n=>n.map(e=>({boost:5,label:e.name})),Zs=n=>n?Array.from(n.entries()).map(([e,t])=>({info:()=>nn(e,t),label:e,type:"filter"})):Ys,js={label:"Done",apply:"] ",type:"keyword",boost:10},qe=(n,e="")=>n.filter(t=>e===""||t.label.startsWith(e)).map(t=>({...t,apply:t.label+" "})),Xs={allowReplace:!0},Lc=({columns:n,namedFilters:e,saveOptions:t=Xs,table:r,typeaheadHook:i=Qs})=>{let s=Us(),o=i(),a=sn(async(u,h=Ws)=>{let{columnName:c,existingFilter:f,filterName:d,operator:p,quoted:g,onSubmit:F,startsWith:k,selection:$}=h;switch(u){case"operator":{let E=n.find(x=>x.name===c);if(E)switch(E.serverDataType){case"string":case"char":return qe(Hs,k);case"int":case"long":case"double":return qe(Ls)}else console.warn(`'${c}' does not match any column name`)}break;case"column":{let E=await Gs(n),x=await Zs(e);return(s.current=qe(E)).concat(qe(x))}case"columnValue":if(c){let E=n.find(C=>C.name===c);if(!E)throw Error(`useFilterSUggestionProvider no column ${c}`);let x=Array.isArray($)?$.length===0?"[":",":"",S=_s(r,c,k),m=await o(S),v=p==="starts";return s.current=Vs(m,{moveCursorToEnd:g,quoted:(E==null?void 0:E.serverDataType)==="string"&&!g,suffix:g?"":" ",prefix:v?k:x,isIllustration:v}),Array.isArray($)&&($==null?void 0:$.length)>1?[js,...s.current]:s.current}break;case"save":{if(typeof F!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await Ks({existingFilter:f,filterName:d,onSubmit:F,saveOptions:t})}case"name":return await Rs("filter");default:}return[]},[n,o,e,t,r]),l=sn(async(u,h,c)=>{let f=await a(u,{columnName:h});if(c&&f)for(let d of f){if(d.label===c)return!1;if(d.label.startsWith(c))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:l}};var Yc=n=>{let e=localStorage.getItem(n);return e?JSON.parse(e):void 0},Wc=n=>Object.entries(localStorage).filter(([e])=>e.includes(n)).map(([,e])=>JSON.parse(e)),zc=(n,e)=>{try{return localStorage.setItem(n,JSON.stringify(e)),e}catch{return}};export{_ as AND,ol as ENDS_WITH,tt as EQUALS,ie as ExpandoCombobox,xu as FilterBar,Dt as FilterBuilderMenu,Xt as FilterClauseEditor,Qt as FilterClauseTextValueEditor,Mc as FilterInput,vr as FilterPill,il as GREATER_THAN,xi as IN,sl as LESS_THAN,vi as OR,ar as STARTS_WITH,it as addClause,al as addFilter,ve as filterClauses,nt as filterEquals,ki as filterIncludesColumn,Wc as getAllLocalEntity,Yc as getLocalEntity,fl as getNumericFilter,cl as getTypeaheadFilter,wi as overrideColName,ll as removeFilter,cr as removeLastClause,fr as replaceClause,zc as saveLocalEntity,ul as splitFilterOnColumn,Mi as updateFilter,tn as useCodeMirrorEditor,Lc as useFilterSuggestionProvider};
1
+ var Mt=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var G=(n,e,t)=>(Mt(n,e,"read from private field"),t?t.call(n):e.get(n)),Pt=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},Ke=(n,e,t,r)=>(Mt(n,e,"write to private field"),r?r.call(n,t):e.set(n,t),t);import{Prompt as ts}from"@vuu-ui/vuu-popups";import{Toolbar as rs}from"@vuu-ui/vuu-ui-controls";import{Button as Mr}from"@salt-ds/core";function Ot(n){var e,t,r="";if(typeof n=="string"||typeof n=="number")r+=n;else if(typeof n=="object")if(Array.isArray(n))for(e=0;e<n.length;e++)n[e]&&(t=Ot(n[e]))&&(r&&(r+=" "),r+=t);else for(e in n)n[e]&&(r&&(r+=" "),r+=e);return r}function dn(){for(var n,e,t=0,r="";t<arguments.length;)(n=arguments[t++])&&(e=Ot(n))&&(r&&(r+=" "),r+=e);return r}var N=dn;import{useRef as ns}from"react";import{useCallback as It,useRef as pn}from"react";import{PopupComponent as mn,Portal as gn}from"@vuu-ui/vuu-popups";import{List as yn,ListItem as Ge}from"@vuu-ui/vuu-ui-controls";import{Fragment as bn,jsx as ne,jsxs as At}from"react/jsx-runtime";var Tt="vuuFilterBuilderMenu",Dt=({ListProps:n,onMenuAction:e})=>{let t=pn(null),r=It(s=>{s&&requestAnimationFrame(()=>{s.focus()})},[]),i=It((s,o)=>{let{props:{"data-action":a}}=o;e({type:"menu-action",menuId:a,options:{}})},[e]);return At(bn,{children:[ne("span",{className:`${Tt}-trigger`,ref:t}),ne(gn,{children:ne(mn,{anchorElement:t,placement:"right",children:At(yn,{...n,className:`${Tt}List`,defaultHighlightedIndex:0,itemHeight:22,ref:r,onSelect:i,style:{position:"relative"},width:100,children:[ne(Ge,{"data-action":"apply-save",children:ne("span",{className:"vuuMenuButton",children:"APPLY AND SAVE"})}),ne(Ge,{"data-action":"and-clause",children:"AND"}),ne(Ge,{"data-action":"or-clause",children:"OR"})]})})})]})};import{itemToString as vn}from"@vuu-ui/vuu-utils";import{ComboBox as xn}from"@vuu-ui/vuu-ui-controls";import{forwardRef as Cn,useCallback as Ee,useMemo as Fn,useRef as Sn,useState as $n}from"react";import{jsx as Bt}from"react/jsx-runtime";var Nt="vuuExpandoCombobox",wn={},ie=Cn(function({className:e,InputProps:t=wn,ListProps:r,onInputChange:i,onSelectionChange:s,selectionStrategy:o,source:a,style:l,title:u,value:h="",...c},f){let[d,p]=$n(h),{itemToString:g=vn}=c,F=Sn(h),k=Ee(y=>{let[b,...P]=y;return P.length?`${g(b)} + ${P.length}`:g(b)},[g]),S=Ee(y=>{let{value:b}=y.target;p(b),i==null||i(y)},[i]),E=Ee(y=>{p(y)},[]),[x,$]=Fn(()=>{let{inputProps:y,...b}=t;return[{...b,className:`${Nt}-Input`,endAdornment:null,inputProps:{...y,autoComplete:"off",onInput:S}},{...r,className:N("vuuMenuList",r==null?void 0:r.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:80,width:"content-width"}]},[t,S,r]),m=Ee((y,b)=>{Array.isArray(b)?s==null||s(null,b):b&&(p(g(b)),s==null||s(null,b))},[g,s]),v=()=>{if(F.current!==void 0)return Array.isArray(F.current)?a==null?void 0:a.filter(y=>F.current.includes(g(y))):a==null?void 0:a.find(y=>g(y)===F.current)},C={minWidth:"fit-content"};return Bt("div",{className:N(Nt,e),"data-text":d,ref:f,style:l,children:Bt(xn,{...c,PopupProps:C,allowEnterCommitsText:!0,defaultSelected:v(),defaultValue:Array.isArray(F.current)?k(F.current):F.current,fullWidth:!0,ListProps:$,InputProps:x,itemsToString:k,onSelectionChange:m,onSetSelectedText:E,selectionStrategy:o,source:a})})});import{Button as li}from"@salt-ds/core";import{useMemo as ui}from"react";import{isNumericColumn as kn,isTextColumn as En}from"@vuu-ui/vuu-utils";var Mn=["=","in","!=","starts","ends"],Pn=["=","!=",">",">=","<","<="],Rt=n=>{if(En(n))return Mn;if(kn(n))return Pn;throw Error("getOperators only supports text and numeric columns")};import{forwardRef as On,useState as In,useCallback as Lt}from"react";import{ExpandoInput as Tn}from"@vuu-ui/vuu-ui-controls";import{isValidNumber as Ze}from"@vuu-ui/vuu-utils";import{jsx as An}from"react/jsx-runtime";var Ht=On(function({InputProps:e,className:t,onInputComplete:r,value:i},s){let[o,a]=In(Ze(i)?i.toString():""),l=Lt(h=>{let{value:c}=h.target,f=parseFloat(c);Ze(f)&&console.log("its valid"),a(c)},[]),u=Lt(h=>{if(h.key==="Enter"){let{value:c}=h.target,f=parseFloat(c);Ze(f)&&r(f)}},[r]);return An(Tn,{...e,className:t,value:o,ref:s,onChange:l,onKeyDown:u})});import{forwardRef as Dn,useCallback as Me,useEffect as Nn,useMemo as Bn,useState as Vt}from"react";import{useTypeaheadSuggestions as Rn}from"@vuu-ui/vuu-data-react";import{ExpandoInput as Ln}from"@vuu-ui/vuu-ui-controls";import{jsx as Pe}from"react/jsx-runtime";var Hn=["Enter"," "],Vn=n=>{if(n.session){let{module:e,session:t}=n;return{module:e,table:t}}else return n},_t=["No matching data"],Qt=Dn(function({InputProps:e={},className:t,column:r,"data-field":i,onDeselect:s,onInputComplete:o,operator:a,suggestionProvider:l=Rn,table:u,value:h},c){var v;let f=a==="in",[d,p]=Vt((v=h==null?void 0:h.toString())!=null?v:""),[g,F]=Vt([]),k=l(),S=Me((C,y)=>o(y),[o]),E=Me((C,y)=>o(y),[o]);Nn(()=>{if(u){let C=Vn(u),y=d&&!f?[C,r.name,d]:[C,r.name];k(y).then(b=>{b.length===0&&d?F(_t):F(b)}).catch(b=>{console.error("Error getting suggestions",b)})}},[u,r,d,k,f]);let x=Me(C=>{let{value:y}=C.target;p(y)},[]),$=Bn(()=>{if(a!=="in"){let{inputProps:C,...y}=e;return{...y,inputProps:{...C,onKeyDown:b=>{var P;b.key==="Enter"&&d!==""?(b.stopPropagation(),b.preventDefault(),o(d)):(P=C==null?void 0:C.onKeyDown)==null||P.call(C,b)}}}}else return e},[e,o,a,d]);return Me(()=>{switch(a){case"in":return Pe(ie,{InputProps:$,className:t,"data-field":i,initialHighlightedIndex:0,source:g,onInputChange:x,onSelectionChange:E,ref:c,selectionStrategy:"multiple",selectionKeys:Hn,value:h});case"starts":return Pe(ie,{InputProps:$,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,disableFilter:g===_t&&(d==null?void 0:d.length)>0,source:g,onInputChange:x,onSelectionChange:S,ref:c,value:h});case"ends":return Pe(Ln,{...$,className:t,"data-field":i,value:d,ref:c,onChange:x});default:return Pe(ie,{InputProps:$,allowBackspaceClearsSelection:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,source:g,title:"value",onInputChange:x,onDeselect:s,onSelectionChange:S,ref:c,value:h})}},[$,a,t,i,g,x,E,c,h,d,s,S])()});import{isDateTimeColumn as Zn}from"@vuu-ui/vuu-utils";import{useCallback as Wt,useState as Wn}from"react";var je=null;function Ut(){return je==null&&(je=new Intl.DateTimeFormat().resolvedOptions().timeZone),je}var _n=["hours","minutes","seconds"],na=["years","months","weeks","days",..._n];var Yt=1080,Qn=24*Yt,Un=29,Yn=12*Yt+793,ia=Un*Qn+Yn;import{DatePicker as zn}from"@vuu-ui/vuu-ui-controls";import{toCalendarDate as qn}from"@vuu-ui/vuu-utils";import{jsx as Gn}from"react/jsx-runtime";var zt=n=>{let{value:e,onInputComplete:t,operator:r}=n,i=Kn(r),[s,o]=Wn(()=>Jn(e)),a=Wt(u=>{o(u)},[]),l=Wt(()=>{s&&t(i(s))},[s,t,i]);return Gn(zn,{className:"vuuFilterClause-DatePicker",selectedDate:s,onBlur:l,onSelectedDateChange:a,closeOnSelection:!0,hideOutOfRangeDates:!0})};function Jn(n){return n?qn(new Date(n)):void 0}var Kn=n=>(e,t=Ut())=>{let r=e.toDate(t);switch(n){case">":case"<=":return r.setHours(23,59,59,999),r.getTime();case">=":case"<":case"=":case"!=":return r.setHours(0,0,0,0),r.getTime()}};import{jsx as Xe}from"react/jsx-runtime";var Oe="vuuFilterClause",qt=({selectedColumn:n,operator:e,InputProps:t,onChangeValue:r,onDeselectValue:i,suggestionProvider:s,table:o,value:a})=>{if(n===void 0||e===void 0)return null;if(Zn(n))return Xe(zt,{value:a,operator:e,onInputComplete:r});switch(n.serverDataType){case"string":case"char":return Xe(Qt,{InputProps:t,className:N(`${Oe}Field`,`${Oe}Value`),column:n,"data-field":"value",onDeselect:i,onInputComplete:r,operator:e,suggestionProvider:s,table:o,value:a});case"int":case"long":case"double":return Xe(Ht,{InputProps:t,className:N(`${Oe}Field`,`${Oe}Value`),column:n,onInputComplete:r,operator:e});default:return console.log("returning null"),null}};import{isMultiValueFilter as jn,isSingleValueFilter as Xn,isValidFilterClauseOp as ei}from"@vuu-ui/vuu-utils";import{useCallback as Z,useEffect as ti,useMemo as ri,useRef as Jt,useState as et}from"react";var ni=n=>n.selectionStart===0,ii=n=>n.selectionStart===n.value.length,Kt=n=>n!=null&&n.classList.contains("vuuFilterClauseColumn")?"column":n!=null&&n.classList.contains("vuuFilterClauseOperator")?"operator":"value",Zt=()=>{let n=document.activeElement;return n!=null&&n.classList.contains("vuuFilterClause-clearButton")?n:n==null?void 0:n.closest(".vuuFilterClauseField")},be=(n="fwd")=>{var r;let e=Zt(),t=e==null?void 0:e.closest(".vuuFilterClause");if(n==="fwd"&&(t==null?void 0:t.lastChild)===e)requestAnimationFrame(()=>{be()});else{let i=n==="fwd"?e==null?void 0:e.nextElementSibling:e==null?void 0:e.previousElementSibling;(r=i==null?void 0:i.querySelector("input"))==null||r.focus()}},si=n=>{var t;let e=n.closest("[data-index]");if(e){let r=e.dataset.index;return((t=e==null?void 0:e.parentElement)==null?void 0:t.querySelector(`[data-index]:has(.vuuFilterClause):has(+[data-index="${r}"])`))!==null}},Gt=()=>{let n=Zt(),e=n==null?void 0:n.closest(".vuuFilterClause");if(e&&n)if(n.classList.contains("vuuFilterClauseValue")){let t=e.querySelector(".vuuFilterClause-clearButton");t==null||t.focus()}else be()},oi=n=>{let e=n.target,t=ni(e),r=ii(e),i=e.closest(".vuuFilterClauseField");if(n.key==="ArrowLeft"){if(t){if(Kt(i)==="column")return;{let o=i.previousSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}else if(n.key==="ArrowRight"){if(r){if(Kt(i)==="value")return;{let o=i.nextSibling,a=o==null?void 0:o.querySelector("input");n.preventDefault(),a==null||a.focus(),requestAnimationFrame(()=>{a==null||a.select()})}}n.stopPropagation()}},ai=n=>jn(n)?n.values:Xn(n)?n.value:void 0,jt=({filterClause:n,onCancel:e,onChange:t,columnsByName:r})=>{let i=Jt(null),s=Jt(null),[o,a]=et(n.column?r[n.column]:void 0),[l,u]=et(n.op),h=Z(m=>{u(m)},[]),[c,f]=et(ai(n)),d=Z((m,v)=>{a(v!=null?v:void 0),h(void 0),f(void 0),setTimeout(()=>{Gt()},100)},[h]),p=Z(m=>{var C;let v=m.target;if(v.value===""){let y=v.closest(".vuuFilterClauseField,[data-field]");switch((C=y==null?void 0:y.dataset)==null?void 0:C.field){case"operator":{h(void 0),a(void 0),be("bwd");break}case"value":{h(void 0),be("bwd");break}case"column":si(v)&&(console.log("This is NOT the first clause"),e==null||e("Backspace"))}}},[e,h]),g=Z((m,v)=>{let C=v;if(C===void 0||ei(C))h(C),Gt();else throw Error(`FilterClauseEditor, invalid value ${C} for filter clause`)},[h]),F=Z(m=>{f(m),m!==null&&m!==""&&(Array.isArray(m)?t({column:o==null?void 0:o.name,op:l,values:m}):t({column:o==null?void 0:o.name,op:l,value:m}))},[t,l,o==null?void 0:o.name]),k=Z(()=>{f(void 0)},[]),S=Z(m=>{["ArrowLeft","ArrowRight"].includes(m.key)?oi(m):m.key==="Backspace"&&p(m)},[p]),E=Z(m=>{var y;let C=(y=m.target.closest(".vuuFilterClause"))==null?void 0:y.querySelector("input");a(void 0),h(void 0),f(void 0),setTimeout(()=>{C.select(),C==null||C.focus()},100)},[h]),x=Z(m=>{m.stopPropagation(),m.key==="Backspace"&&be("bwd")},[]),$=ri(()=>({inputProps:{onKeyDownCapture:S}}),[S]);return ti(()=>{var v;let m=(v=i.current)==null?void 0:v.querySelector("input");m==null||m.focus()},[]),{InputProps:$,columnRef:i,onChangeValue:F,onClear:E,onClearKeyDown:x,onDeselectValue:k,onColumnSelect:d,onOperatorSelect:g,operator:l,operatorRef:s,selectedColumn:o,value:c}};import{jsx as Ie,jsxs as ci}from"react/jsx-runtime";var se="vuuFilterClause",Xt=({className:n,columnsByName:e,onCancel:t,onChange:r,onDropdownClose:i,onDropdownOpen:s,filterClause:o,suggestionProvider:a,tableSchema:l,...u})=>{var v;let{InputProps:h,columnRef:c,onChangeValue:f,onClear:d,onClearKeyDown:p,onDeselectValue:g,onColumnSelect:F,onOperatorSelect:k,operator:S,operatorRef:E,selectedColumn:x,value:$}=jt({filterClause:o,onCancel:t,onChange:r,columnsByName:e}),m=ui(()=>Object.values(e),[e]);return ci("div",{className:N(se,n),...u,tabIndex:0,children:[Ie(ie,{InputProps:h,allowBackspaceClearsSelection:!0,className:N(`${se}Field`,`${se}Column`),"data-field":"column",initialHighlightedIndex:0,itemToString:C=>C.name,onListItemSelect:F,ref:c,source:m,title:"column",value:(v=x==null?void 0:x.name)!=null?v:""}),x!=null&&x.name?Ie(ie,{InputProps:h,allowBackspaceClearsSelection:!0,className:N(`${se}Field`,`${se}Operator`,{[`${se}Operator-hidden`]:x===null}),"data-field":"operator",initialHighlightedIndex:0,onListItemSelect:k,ref:E,source:Rt(x),title:"operator",value:S!=null?S:""}):null,Ie(qt,{InputProps:h,onChangeValue:f,onDeselectValue:g,operator:S,selectedColumn:x,suggestionProvider:a,table:l==null?void 0:l.table,value:$}),$!==void 0?Ie(li,{className:`${se}-clearButton`,onClick:d,onKeyDown:p,"data-icon":"close"}):null]})};import{Tooltip as Li,useTooltip as Hi}from"@vuu-ui/vuu-popups";import{EditableLabel as Vi}from"@vuu-ui/vuu-ui-controls";import{useId as _i}from"@vuu-ui/vuu-utils";import{useCallback as yr,useMemo as Qi,useRef as Ui}from"react";import{PopupMenu as fi}from"@vuu-ui/vuu-popups";import{useMemo as hi}from"react";var er=n=>({label:"Close",location:"filter",action:"close-filter",options:n}),tr=n=>({label:"Delete",location:"filter",action:"delete-filter",options:n}),rr=n=>({label:"Rename",location:"filter",action:"rename-filter",options:n}),nr=n=>({label:"Edit",location:"filter",action:"edit-filter",options:n});import{jsx as pi}from"react/jsx-runtime";var di="vuuFilterPillMenu",ir=({allowClose:n=!0,allowDelete:e=!0,allowEdit:t=!0,allowRename:r=!0,filter:i,location:s,onMenuAction:o,onMenuClose:a})=>{let[l,u]=hi(()=>[(h,c)=>{let f=[];return r&&f.push(rr(c)),t&&f.push(nr(c)),n&&f.push(er(c)),e&&f.push(tr(c)),f},{filter:i}],[n,e,t,r,i]);return pi(fi,{className:di,menuBuilder:l,menuActionHandler:o,menuLocation:N("filter",s),menuOptions:u,onMenuClose:a,tabIndex:-1})};import{isMultiClauseFilter as Ni,isMultiValueFilter as Bi}from"@vuu-ui/vuu-utils";import{filterAsQuery as pr,formatDate as Pi,isDateTimeColumn as Oi,isMultiClauseFilter as Ii,dateTimePattern as Ti,defaultPatternsByType as Ai}from"@vuu-ui/vuu-utils";import{extractFilterForColumn as mi,isAndFilter as lr,isInFilter as Te,isMultiClauseFilter as ue,isMultiValueFilter as sr,isNotNullOrUndefined as gi,isOrFilter as yi,isSingleValueFilter as or,partition as bi}from"@vuu-ui/vuu-utils";var _="and",tt="=",il=">",sl="<",vi="or",ar="starts",ol="ends",xi="in",ve=(n,e=[])=>(n&&(ue(n)?n.filters.forEach(t=>e.push(...ve(t))):e.push(n)),e),ur={combineWith:"and"},cr=n=>{let{filters:e}=n;return e.length>2?{...n,filters:n.filters.slice(0,-1)}:n.filters[0]},it=(n,e,{combineWith:t=_}=ur)=>ue(n)&&n.op===t?{...n,filters:n.filters.concat(e)}:{op:t,filters:[n,e]},fr=(n,e,t)=>n===void 0?e:hr(n,e,t).filter;function hr(n,e,t,r=0){if(ue(n)){let i=r,s=n.filters.map(o=>{let a=hr(o,e,t,i);return i=a.nextIdx,a.filter});return{filter:{...n,filters:s},nextIdx:i}}else{if(t!==r)return{filter:n,nextIdx:r+1};{let{name:i}=n;return{filter:{...gi(i)?{name:i}:{},...e},nextIdx:r+1}}}}var al=(n,e,{combineWith:t=_}=ur)=>{var r;if(st(e))ue(e)||(n=rt(n,{name:e.column}));else if(Ci(e))return ue(e),rt(n,{name:(r=e.column)!=null?r:""});if(!n)return e;if(!e)return n;if(n.op===_&&e.op===_)return{op:_,filters:$i(n.filters,e.filters)};if(n.op===_){let i=Fi(n.filters,e);return i.length>1?{op:_,filters:i}:i[0]}return e.op===_?{op:_,filters:e.filters.concat(n)}:nt(n,e,!0)?e:dr(n,e)?Si(n,e):{op:t,filters:[n,e]}},st=n=>n?Te(n)&&n.values.length===0?!0:lr(n)&&n.filters.some(e=>st(e)):!1,Ci=n=>n?n.op===ar&&n.value===""?!0:n.op===ar&&n.value==="":!1,Fi=(n,e)=>n.concat(e),Si=(n,e)=>st(e)?e:Te(n)&&Te(e)?{...n,values:[...n.values,...e.values.filter(t=>!n.values.includes(t))]}:Te(n)&&e.op===tt?{...n,values:n.values.concat([e.value])}:n.op===tt&&e.op===tt?{column:n.column,op:xi,values:[n.value,e.value]}:e,$i=(n,e)=>{let t=({op:s},{op:o})=>s===o||s[0]===">"&&o[0]===">"||s[0]==="<"&&o[0]==="<",r=(s,o)=>s.column===o.column&&t(s,o),i=s=>e.some(o=>r(s,o))===!1;return n.filter(i).concat(e)},ll=(n,e)=>{if(nt(n,e,!0))return null;if(n.op!==_)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(n)}`);let t=n.filters.filter(r=>!nt(r,e));return t.length>0?{type:_,filters:t}:null},ul=(n,e)=>{if(!e)return[void 0,void 0];if(e.column===n)return[e,void 0];if(e.op!==_)return[void 0,e];let[[t=void 0],r]=bi(e.filters,i=>i.column===n);return r.length===1?[t,r[0]]:[t,{op:_,filters:r}]},wi=(n,e)=>ue(n)?{op:n.op,filters:n.filters.map(t=>wi(t,e))}:{...n,column:e},ki=(n,e)=>{if(!n)return!1;let{op:t,column:r}=n;switch(t){case _:case vi:return n.filters!=null&&n.filters.some(i=>ki(i,e));default:return r===e.name}},rt=(n,e)=>{let t=e.name;if(n&&n.column!==t){if(lr(n)||yi(n)){let{op:r}=n,s=n.filters.filter(o=>o.column!==t);switch(s.length){case 0:return;case 1:return s[0];default:return{op:r,filters:s}}}return n}},dr=(n,e)=>n.column===e.column&&(n.op==="="||n.op==="in")&&(e.op==="="||e.op==="in"),Ei=(n,e)=>{if(n===e)return!0;if(n.length===e.length){let t=n.slice().sort(),r=e.slice().sort();return t.join("|")===r.join("|")}return!1},nt=(n,e,t=!1)=>t?n&&e&&dr(n,e)?n.op===e.op&&(or(n)&&or(e)&&n.value===e.value||sr(n)&&sr(e)&&Ei(n.values,e.values)):!1:!0,Mi=(n,e,t)=>{if(n&&e){if(t==="replace")return e;if(n.op==="and")return{...n,filters:n.filters.concat(e)};let{column:r}=e;if(r&&(e.column?mi(n,r):void 0)&&r){let s=rt(n,{name:r});return Mi(s,e,"add")}return{op:"and",filters:[n,e]}}return e||n},cl=(n,e,t)=>{if(e.length!==0){if(t){let r=e[0].substring(0,e[0].length-3);return{column:n,op:"starts",value:`"${r}"`}}return{column:n,op:"in",values:e.map(r=>`"${r}"`)}}},fl=(n,e,t)=>{if(e!==void 0&&!(t===void 0||isNaN(t)))return{column:n,op:e,value:t}};function Di(n,e){return"value"in n?{...n,value:e(n.value)}:{...n,values:n.values.map(e)}}function mr(n,e){let t=e==null?void 0:e[n.column];if(t&&Oi(t)){let r=Ti(t.type);return Di(n,s=>{var o;return Pi({date:(o=r.date)!=null?o:Ai.date})(new Date(s))})}return n}var Ae=n=>e=>{if(Ii(e)){let[t]=ve(e),r=mr(t,n);return`${pr(r)} ${e.op} ...`}else return pr(mr(e,n))};import{jsx as gr,jsxs as Ri}from"react/jsx-runtime";var ot=(n,e=Ae())=>{if(Ni(n)){let t=n.op==="and"?"Match all ...":"Match any ...";return Ri("ul",{children:[gr("span",{children:t}),n.filters.map((r,i)=>gr("li",{children:ot(r,e)},i))]})}else if(Bi(n))if(n.values.length>3){let t=n.values.slice(0,3);return`${e({...n,values:t}).slice(0,-1)},...]`}else return e(n);else return e(n)};import{jsx as De,jsxs as Yi}from"react/jsx-runtime";var br="vuuFilterPill",vr=({className:n,columnsByName:e,editable:t=!0,filter:r,id:i,onBeginEdit:s,onExitEditMode:o,onMenuAction:a,showMenu:l=!0,...u})=>{let h=Ui(null),c=yr(()=>{s==null||s(r)},[r,s]),f=Ae(e),d=Qi(()=>{var S;return(S=r.name)!=null?S:f(r)},[f,r]),p=_i(i),g=yr(S=>{(S==null?void 0:S.type)==="escape"&&requestAnimationFrame(()=>{h.current&&h.current.focus()})},[]),{anchorProps:F,tooltipProps:k}=Hi({id:p,placement:"below",tooltipContent:ot(r,f)});return Yi("div",{...F,...u,className:N(br,n),"data-text":d,ref:h,children:[t&&o?De(Vi,{defaultValue:d,onEnterEditMode:c,onExitEditMode:o},d):De("span",{className:`${br}-label`,children:d}),l&&a?De(ir,{filter:r,onMenuAction:a,onMenuClose:g}):null,k&&De(Li,{...k})]})};import{PopupMenu as Wi}from"@vuu-ui/vuu-popups";import{jsx as xr}from"react/jsx-runtime";var Cr=()=>xr("div",{className:"vuuFilterBarMenu",children:xr(Wi,{icon:"tune",menuLocation:"filter-bar-menu",tabIndex:-1})});import{dispatchMouseEvent as ji,isMultiClauseFilter as Xi}from"@vuu-ui/vuu-utils";import{useCallback as A,useMemo as $r,useRef as wr,useState as at}from"react";import{useCallback as ce}from"react";import{useControlled as zi}from"@vuu-ui/vuu-ui-controls";var Fr=({defaultFilterState:n,onFilterDeleted:e,onFilterRenamed:t,onFilterStateChanged:r,filterState:i})=>{let[s,o]=zi({controlled:i,default:n!=null?n:{filters:[],activeIndices:[]},name:"useFilterState",state:"FilterState"}),a=ce(d=>{o(d),r==null||r(d)},[r,o]),l=ce(d=>{let p=s.filters.length,g=s.filters.concat(d),F=qi(s.activeIndices,p);return a({filters:g,activeIndices:F}),p},[s,a]),u=ce(d=>{let p=-1,g=s.filters.filter((k,S)=>k!==d?!0:(p=S,!1)),F=Ji(s.activeIndices,p);return a({filters:g,activeIndices:F}),e==null||e(d),p},[s.filters,s.activeIndices,a,e]),h=ce((d,p)=>{let g=-1,F=s.filters.map((k,S)=>k===d?(g=S,{...d,name:p}):k);return a({...s,filters:F}),t==null||t(d,p),g},[s,a,t]),c=ce((d,p)=>{let g=-1,F=s.filters.map((k,S)=>k===d?(g=S,p):k);return a({...s,filters:F}),g},[s,a]),f=ce(d=>a({...s,activeIndices:d}),[s,a]);return{activeFilterIndex:s.activeIndices,filters:s.filters,onChangeActiveFilterIndex:f,onAddFilter:l,onChangeFilter:c,onDeleteFilter:u,onRenameFilter:h}},qi=(n,e)=>n.includes(e)?n:n.concat(e),Ji=(n,e)=>n.reduce((t,r)=>r===e?t:t.concat(r>e?r-1:r),[]);import{useCallback as Ki,useEffect as Gi}from"react";import{filterAsQuery as Zi}from"@vuu-ui/vuu-utils";function Sr({activeFilterIndex:n,columnsByName:e,filters:t,onApplyFilter:r}){let i=Ki(s=>{let o=s?Zi(s,{columnsByName:e}):"";r({filter:o,filterStruct:s})},[e,r]);Gi(()=>{let s=n.map(o=>t[o]);if(s.length===0)i();else if(s.length===1){let[o]=s;i(o)}else i({op:"and",filters:s})},[n,i,t])}var kr={},Er=({columnDescriptors:n,containerRef:e,defaultFilterState:t,filterState:r,onApplyFilter:i,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a,showMenu:l})=>{let u=wr(null),h=wr(),[c,f]=at(l),[d,p]=at(),[g,F]=at(null),k=$r(()=>es(n),[n]),{activeFilterIndex:S,filters:E,onAddFilter:x,onChangeFilter:$,onDeleteFilter:m,onRenameFilter:v,onChangeActiveFilterIndex:C}=Fr({defaultFilterState:t,filterState:r,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a});Sr({activeFilterIndex:S,columnsByName:k,filters:E,onApplyFilter:i});let y=A(M=>{requestAnimationFrame(()=>{var O;let w=(O=e.current)==null?void 0:O.querySelectorAll(".vuuFilterPill");if(w!=null&&w[M]){let L=w[M].querySelector(".vuuEditableLabel");L&&ji(L,"dblclick")}})},[e]),b=A((M=0)=>{requestAnimationFrame(()=>{var O;let w=(O=e.current)==null?void 0:O.querySelector(".vuuFilterClause .saltInput-input");w&&w.focus()})},[e]),P=A(M=>{requestAnimationFrame(()=>{var O,L;let w=typeof M=="number"?(O=e.current)==null?void 0:O.querySelector(`.vuuOverflowContainer-item[data-index="${M}"] .vuuFilterPill`):(L=e.current)==null?void 0:L.querySelector(".vuuFilterPill[tabindex]");w&&w.focus()})},[e]),T=A(M=>{m(M),requestAnimationFrame(()=>{E.length&&P(0)})},[E.length,P,m]),H=$r(()=>M=>{let w=()=>{F(null),P()};return{confirmButtonLabel:"Remove",icon:"warn-triangle",onCancel:w,onClose:w,onConfirm:()=>{F(null),T(M)},text:`Are you sure you want to delete ${M.name}`,title:"Remove Filter",variant:"warn"}},[T,P]),W=A((M,w)=>{w?F(H(M)):T(M)},[T,H]),z=A(M=>{h.current=M},[]),Y=A((M,w="")=>{if(h.current){let O=v(h.current,w);h.current=void 0,P(O)}},[P,v]),ye=A(({menuId:M,options:w})=>{switch(M){case"delete-filter":{let{filter:O}=w;return W(O,!0),!0}case"rename-filter":{let{filter:O}=w,L=E.indexOf(O);return y(L),!0}case"edit-filter":{let{filter:O}=w;return h.current=O,p(O),b(),!0}default:return!1}},[W,y,E,b]),D=A((M,w)=>{if(w===void 0){let O=x(M);y(O)}else $(w,M)},[y,x,$]),R=A(({menuId:M})=>{switch(M){case"apply-save":return D(d,h.current),p(void 0),h.current=void 0,f(!1),!0;case"and-clause":{let w=it(d,kr);return p(w),f(!1),!0}case"or-clause":return p(w=>it(w,kr,{combineWith:"or"})),f(!1),!0;default:return!1}},[d,D]),V=A(()=>{p({})},[p]),q=A(()=>{p(void 0)},[]),ee={onBeginEdit:z,onMenuAction:ye,onExitEditMode:Y},le=A(M=>w=>{w!==void 0&&(p(O=>fr(O,w,M)),f(!0))},[]),ke=A(M=>{M==="Backspace"&&Xi(d)&&p(cr(d))},[d]),an=A(M=>{let w=M.target,O=M.relatedTarget,L=w.closest(".vuuFilterClause");if(!(L!=null&&L.contains(O))){let te=w.getAttribute("aria-owns"),Je=te?document.getElementById(te):null;Je!=null&&Je.contains(O)||f(!0)}},[]),ln=A(()=>{f(!1)},[]),un=A(M=>{M.key==="Escape"&&d!==void 0&&(p(void 0),requestAnimationFrame(()=>{}))},[d]),cn=A(M=>{var O;let{current:w}=e;if(M.key==="Backspace"&&w){M.preventDefault();let L=Array.from(w.querySelectorAll(".vuuFilterClauseField"));if(L.length>0){let te=L.at(-1);(O=te==null?void 0:te.querySelector("input"))==null||O.focus()}f(!1)}else if(M.key==="Tab")if(M.shiftKey&&w){let L=Array.from(w.querySelectorAll(".vuuFilterClause-clearButton"));if(L.length>0){let te=L.at(-1);setTimeout(()=>{te.focus()},100)}}else console.log("apply current selection")},[e]),fn=A(M=>{M.key==="ArrowLeft"&&console.log("navgiate to the Toolbar")},[]),hn=A(M=>{var w;M==="end"&&((w=u.current)==null||w.focus())},[]);return{activeFilterIndex:S,addButtonProps:{ref:u,onKeyDown:fn},columnsByName:k,editFilter:d,filters:E,onBlurFilterClause:an,onCancelFilterClause:ke,onChangeActiveFilterIndex:C,onClickAddFilter:V,onClickRemoveFilter:q,onChangeFilterClause:le,onFocusFilterClause:ln,onKeyDownFilterbar:un,onKeyDownMenu:cn,onMenuAction:R,onNavigateOutOfBounds:hn,pillProps:ee,promptProps:g,showMenu:c}};function es(n){return n.reduce((e,t)=>({...e,[t.name]:t}),{})}import{jsx as he,jsxs as is}from"react/jsx-runtime";import{createElement as lt}from"react";var fe="vuuFilterBar",xu=({FilterClauseEditorProps:n,className:e,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterDeleted:o,onFilterRenamed:a,onFilterStateChanged:l,showMenu:u=!1,tableSchema:h,...c})=>{let f=ns(null),{activeFilterIndex:d,addButtonProps:p,columnsByName:g,editFilter:F,filters:k,onBlurFilterClause:S,onCancelFilterClause:E,onClickAddFilter:x,onClickRemoveFilter:$,onChangeFilterClause:m,onChangeActiveFilterIndex:v,onFocusFilterClause:C,onNavigateOutOfBounds:y,onKeyDownFilterbar:b,onKeyDownMenu:P,onMenuAction:T,pillProps:H,promptProps:W,showMenu:z}=Er({containerRef:f,columnDescriptors:t,defaultFilterState:r,filterState:i,onApplyFilter:s,onFilterStateChanged:l,onFilterDeleted:o,onFilterRenamed:a,showMenu:u}),Y=N(fe,e,{[`${fe}-display`]:F===void 0,[`${fe}-edit`]:F!==void 0});return is("div",{...c,className:Y,onKeyDown:b,ref:f,children:[he(Cr,{}),he(rs,{activeItemIndex:d,onActiveChange:v,onNavigateOutOfBounds:y,selectionStrategy:"multiple-special-key",children:(()=>{let D=[];if(F===void 0)return k.forEach((R,V)=>{D.push(lt(vr,{...H,columnsByName:g,filter:R,key:`filter-${V}`}))}),D;if(F){let R=ve(F);return D.push(he("div",{className:`${fe}-Editor`,children:R.map((V,q)=>lt(Xt,{...n,columnsByName:g,filterClause:V,key:`editor-${q}`,onCancel:E,onChange:m(q),onBlur:S,onFocus:C,tableSchema:h}))},"editor")),z&&D.push(he(Dt,{onMenuAction:T,ListProps:{onKeyDownCapture:P}},"menu")),D.push(he(Mr,{className:`${fe}-remove`,"data-align":"right","data-icon":"cross",onClick:$,variant:"primary"},"filter-remove")),D}})()}),F===void 0?lt(Mr,{...p,className:`${fe}-add`,"data-icon":"plus","data-selectable":!1,key:"filter-add",onClick:x,tabIndex:0,variant:"primary"}):null,W?he(ts,{...W,PopupProps:{anchorElement:f,offsetTop:16,placement:"below-center"}}):null]})};import{Button as rn}from"@salt-ds/core";import{autocompletion as ws,defaultKeymap as ks,EditorState as jr,EditorView as Xr,ensureSyntaxTree as Es,keymap as wt,minimalSetup as Ms,startCompletion as en}from"@vuu-ui/vuu-codemirror";var ss=0,xe=class{constructor(e,t){this.from=e,this.to=t}},I=class{constructor(e={}){this.id=ss++,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=J.match(e)),t=>{let r=e(t);return r===void 0?null:[this,r]}}};I.closedBy=new I({deserialize:n=>n.split(" ")});I.openedBy=new I({deserialize:n=>n.split(" ")});I.group=new I({deserialize:n=>n.split(" ")});I.contextHash=new I({perNode:!0});I.lookAhead=new I({perNode:!0});I.mounted=new I({perNode:!0});var os=Object.create(null),J=class n{constructor(e,t,r,i=0){this.name=e,this.props=t,this.id=r,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):os,r=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new n(e.name||"",t,e.id,r);if(e.props){for(let s of e.props)if(Array.isArray(s)||(s=s(i)),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 i}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(I.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let r in e)for(let i of r.split(" "))t[i]=e[r];return r=>{for(let i=r.prop(I.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?r.name:i[s]];if(o)return o}}}};J.none=new J("",Object.create(null),0,8);var Re=class n{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let r of this.types){let i=null;for(let s of e){let o=s(r);o&&(i||(i=Object.assign({},r.props)),i[o[0].id]=o[1])}t.push(i?new J(r.name,i,r.id,r.flags):r)}return new n(t)}},Ne=new WeakMap,Pr=new WeakMap,B;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(B||(B={}));var Q=class n{constructor(e,t,r,i,s){if(this.type=e,this.children=t,this.positions=r,this.length=i,this.props=null,s&&s.length){this.props=Object.create(null);for(let[o,a]of s)this.props[typeof o=="number"?o:o.id]=a}}toString(){let e=this.prop(I.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let r of this.children){let i=r.toString();i&&(t&&(t+=","),t+=i)}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 pe(this.topNode,e)}cursorAt(e,t=0,r=0){let i=Ne.get(this)||this.topNode,s=new pe(i);return s.moveTo(e,t),Ne.set(this,s._tree),s}get topNode(){return new ae(this,0,0,null)}resolve(e,t=0){let r=de(Ne.get(this)||this.topNode,e,t,!1);return Ne.set(this,r),r}resolveInner(e,t=0){let r=de(Pr.get(this)||this.topNode,e,t,!0);return Pr.set(this,r),r}iterate(e){let{enter:t,leave:r,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&B.IncludeAnonymous)>0;for(let l=this.cursor(o|B.IncludeAnonymous);;){let u=!1;if(l.from<=s&&l.to>=i&&(!a&&l.type.isAnonymous||t(l)!==!1)){if(l.firstChild())continue;u=!0}for(;u&&r&&(a||!l.type.isAnonymous)&&r(l),!l.nextSibling();){if(!l.parent())return;u=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:dt(J.none,this.children,this.positions,0,this.children.length,0,this.length,(t,r,i)=>new n(this.type,t,r,i,this.propValues),e.makeTree||((t,r,i)=>new n(J.none,t,r,i)))}static build(e){return as(e)}};Q.empty=new Q(J.none,[],[],0);var ut=class n{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 n(this.buffer,this.index)}},oe=class n{constructor(e,t,r){this.buffer=e,this.length=t,this.set=r}get type(){return J.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],r=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,r==e)return s;let o=[];for(;e<r;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,r,i,s){let{buffer:o}=this,a=-1;for(let l=e;l!=t&&!(Ir(s,i,o[l+1],o[l+2])&&(a=l,r>0));l=o[l+3]);return a}slice(e,t,r){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,l=0;a<t;){s[l++]=i[a++],s[l++]=i[a++]-r;let u=s[l++]=i[a++]-r;s[l++]=i[a++]-e,o=Math.max(o,u)}return new n(s,o,this.set)}};function Ir(n,e,t,r){switch(n){case-2:return t<e;case-1:return r>=e&&t<e;case 0:return t<e&&r>e;case 1:return t<=e&&r>e;case 2:return r>e;case 4:return!0}}function Tr(n,e){let t=n.childBefore(e);for(;t;){let r=t.lastChild;if(!r||r.to!=t.to)break;r.type.isError&&r.from==r.to?(n=t,t=r.prevSibling):t=r}return n}function de(n,e,t,r){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let o=!r&&n instanceof ae&&n.index<0?null:n.parent;if(!o)return n;n=o}let s=r?0:B.IgnoreOverlays;if(r)for(let o=n,a=o.parent;a;o=a,a=o.parent)o instanceof ae&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(n=a);for(;;){let o=n.enter(e,t,s);if(!o)return n;n=o}}var ae=class n{constructor(e,t,r,i){this._tree=e,this.from=t,this.index=r,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,r,i,s=0){for(let o=this;;){for(let{children:a,positions:l}=o._tree,u=t>0?a.length:-1;e!=u;e+=t){let h=a[e],c=l[e]+o.from;if(Ir(i,r,c,c+h.length)){if(h instanceof oe){if(s&B.ExcludeBuffers)continue;let f=h.findChild(0,h.buffer.length,t,r-c,i);if(f>-1)return new Ce(new ct(o,h,e,c),null,f)}else if(s&B.IncludeAnonymous||!h.type.isAnonymous||ht(h)){let f;if(!(s&B.IgnoreMounts)&&h.props&&(f=h.prop(I.mounted))&&!f.overlay)return new n(f.tree,c,e,o);let d=new n(h,c,e,o);return s&B.IncludeAnonymous||!d.type.isAnonymous?d:d.nextChild(t<0?h.children.length-1:0,t,r,i)}}}if(s&B.IncludeAnonymous||!o.type.isAnonymous||(o.index>=0?e=o.index+t:e=t<0?-1:o._parent._tree.children.length,o=o._parent,!o))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,r=0){let i;if(!(r&B.IgnoreOverlays)&&(i=this._tree.prop(I.mounted))&&i.overlay){let s=e-this.from;for(let{from:o,to:a}of i.overlay)if((t>0?o<=s:o<s)&&(t<0?a>=s:a>s))return new n(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,r)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new pe(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return de(this,e,t,!1)}resolveInner(e,t=0){return de(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Tr(this,e)}getChild(e,t=null,r=null){let i=Le(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return Le(this,e,t,r)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return He(this,e)}};function Le(n,e,t,r){let i=n.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return s}for(;;){if(r!=null&&i.type.is(r))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return r==null?s:[]}}function He(n,e,t=e.length-1){for(let r=n.parent;t>=0;r=r.parent){if(!r)return!1;if(!r.type.isAnonymous){if(e[t]&&e[t]!=r.name)return!1;t--}}return!0}var ct=class{constructor(e,t,r,i){this.parent=e,this.buffer=t,this.index=r,this.start=i}},Ce=class n{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,r){this.context=e,this._parent=t,this.index=r,this.type=e.buffer.set.types[e.buffer.buffer[r]]}child(e,t,r){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,r);return s<0?null:new n(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,r=0){if(r&B.ExcludeBuffers)return null;let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return s<0?null:new n(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 n(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 n(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new pe(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:r}=this.context,i=this.index+4,s=r.buffer[this.index+3];if(s>i){let o=r.buffer[this.index+1];e.push(r.slice(i,s,o)),t.push(0)}return new Q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return de(this,e,t,!1)}resolveInner(e,t=0){return de(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Tr(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,r=null){let i=Le(this,e,t,r);return i.length?i[0]:null}getChildren(e,t=null,r=null){return Le(this,e,t,r)}get node(){return this}matchContext(e){return He(this,e)}},pe=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 ae)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let r=e._parent;r;r=r._parent)this.stack.unshift(r.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:r,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=r+i.buffer[e+1],this.to=r+i.buffer[e+2],!0}yield(e){return e?e instanceof ae?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,r){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,r,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,r);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,r=this.mode){return this.buffer?r&B.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,r))}parent(){if(!this.buffer)return this.yieldNode(this.mode&B.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&B.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,r=this.stack.length-1;if(e<0){let i=r<0?0:this.stack[r]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(r<0?t.buffer.length:t.buffer[this.stack[r]+3]))return this.yieldBuf(i)}return r<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,r,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let s=0;s<this.index;s++)if(i.buffer.buffer[s+3]<this.index)return!1;({index:t,parent:r}=i)}else({index:t,_parent:r}=this._tree);for(;r;{index:t,_parent:r}=r)if(t>-1)for(let s=t+e,o=e<0?-1:r._tree.children.length;s!=o;s+=e){let a=r._tree.children[s];if(this.mode&B.IncludeAnonymous||a instanceof oe||!a.type.isAnonymous||ht(a))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,r=0;if(e&&e.context==this.buffer)e:for(let i=this.index,s=this.stack.length;s>=0;){for(let o=e;o;o=o._parent)if(o.index==i){if(i==this.index)return o;t=o,r=s+1;break e}i=this.stack[--s]}for(let i=r;i<this.stack.length;i++)t=new Ce(this.buffer,t,this.stack[i]);return this.bufferNode=new Ce(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let r=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){r++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!r)return;this.parent(),r--,i=!0}}}matchContext(e){if(!this.buffer)return He(this.node,e);let{buffer:t}=this.buffer,{types:r}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return He(this.node,e,i);let o=r[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function ht(n){return n.children.some(e=>e instanceof oe||!e.type.isAnonymous||ht(e))}function as(n){var e;let{buffer:t,nodeSet:r,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=r.types.length}=n,a=Array.isArray(t)?new ut(t,t.length):t,l=r.types,u=0,h=0;function c(x,$,m,v,C){let{id:y,start:b,end:P,size:T}=a,H=h;for(;T<0;)if(a.next(),T==-1){let D=s[y];m.push(D),v.push(b-x);return}else if(T==-3){u=y;return}else if(T==-4){h=y;return}else throw new RangeError(`Unrecognized record size: ${T}`);let W=l[y],z,Y,ye=b-x;if(P-b<=i&&(Y=g(a.pos-$,C))){let D=new Uint16Array(Y.size-Y.skip),R=a.pos-Y.size,V=D.length;for(;a.pos>R;)V=F(Y.start,D,V);z=new oe(D,P-Y.start,r),ye=Y.start-x}else{let D=a.pos-T;a.next();let R=[],V=[],q=y>=o?y:-1,ee=0,le=P;for(;a.pos>D;)q>=0&&a.id==q&&a.size>=0?(a.end<=le-i&&(d(R,V,b,ee,a.end,le,q,H),ee=R.length,le=a.end),a.next()):c(b,D,R,V,q);if(q>=0&&ee>0&&ee<R.length&&d(R,V,b,ee,b,le,q,H),R.reverse(),V.reverse(),q>-1&&ee>0){let ke=f(W);z=dt(W,R,V,0,R.length,0,P-b,ke,ke)}else z=p(W,R,V,P-b,H-P)}m.push(z),v.push(ye)}function f(x){return($,m,v)=>{let C=0,y=$.length-1,b,P;if(y>=0&&(b=$[y])instanceof Q){if(!y&&b.type==x&&b.length==v)return b;(P=b.prop(I.lookAhead))&&(C=m[y]+b.length+P)}return p(x,$,m,v,C)}}function d(x,$,m,v,C,y,b,P){let T=[],H=[];for(;x.length>v;)T.push(x.pop()),H.push($.pop()+m-C);x.push(p(r.types[b],T,H,y-C,P-y)),$.push(C-m)}function p(x,$,m,v,C=0,y){if(u){let b=[I.contextHash,u];y=y?[b].concat(y):[b]}if(C>25){let b=[I.lookAhead,C];y=y?[b].concat(y):[b]}return new Q(x,$,m,v,y)}function g(x,$){let m=a.fork(),v=0,C=0,y=0,b=m.end-i,P={size:0,start:0,skip:0};e:for(let T=m.pos-x;m.pos>T;){let H=m.size;if(m.id==$&&H>=0){P.size=v,P.start=C,P.skip=y,y+=4,v+=4,m.next();continue}let W=m.pos-H;if(H<0||W<T||m.start<b)break;let z=m.id>=o?4:0,Y=m.start;for(m.next();m.pos>W;){if(m.size<0)if(m.size==-3)z+=4;else break e;else m.id>=o&&(z+=4);m.next()}C=Y,v+=H,y+=z}return($<0||v==x)&&(P.size=v,P.start=C,P.skip=y),P.size>4?P:void 0}function F(x,$,m){let{id:v,start:C,end:y,size:b}=a;if(a.next(),b>=0&&v<o){let P=m;if(b>4){let T=a.pos-(b-4);for(;a.pos>T;)m=F(x,$,m)}$[--m]=P,$[--m]=y-x,$[--m]=C-x,$[--m]=v}else b==-3?u=v:b==-4&&(h=v);return m}let k=[],S=[];for(;a.pos>0;)c(n.start||0,n.bufferStart||0,k,S,-1);let E=(e=n.length)!==null&&e!==void 0?e:k.length?S[0]+k[0].length:0;return new Q(l[n.topID],k.reverse(),S.reverse(),E)}var Or=new WeakMap;function Be(n,e){if(!n.isAnonymous||e instanceof oe||e.type!=n)return 1;let t=Or.get(e);if(t==null){t=1;for(let r of e.children){if(r.type!=n||!(r instanceof Q)){t=1;break}t+=Be(n,r)}Or.set(e,t)}return t}function dt(n,e,t,r,i,s,o,a,l){let u=0;for(let p=r;p<i;p++)u+=Be(n,e[p]);let h=Math.ceil(u*1.5/8),c=[],f=[];function d(p,g,F,k,S){for(let E=F;E<k;){let x=E,$=g[E],m=Be(n,p[E]);for(E++;E<k;E++){let v=Be(n,p[E]);if(m+v>=h)break;m+=v}if(E==x+1){if(m>h){let v=p[x];d(v.children,v.positions,0,v.children.length,g[x]+S);continue}c.push(p[x])}else{let v=g[E-1]+p[E-1].length-$;c.push(dt(n,p,g,x,E,$,v,null,l))}f.push($+S-s)}}return d(e,t,r,i,0),(a||l)(c,f,o)}var Ve=class{startParse(e,t,r){return typeof e=="string"&&(e=new ft(e)),r=r?r.length?r.map(i=>new xe(i.from,i.to)):[new xe(0,0)]:[new xe(0,e.length)],this.createParse(e,t||[],r)}parse(e,t,r){let i=this.startParse(e,t,r);for(;;){let s=i.advance();if(s)return s}}},ft=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var ku=new I({perNode:!0});var mt=class n{constructor(e,t,r,i,s,o,a,l,u,h=0,c){this.p=e,this.stack=t,this.state=r,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=l,this.curContext=u,this.lookAhead=h,this.parent=c}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,r=0){let i=e.parser.context;return new n(e,[],t,r,r,0,[],0,i?new _e(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let r=e>>19,i=e&65535,{parser:s}=this.p,o=s.dynamicPrecedence(i);if(o&&(this.score+=o),r==0){this.pushState(s.getGoto(this.state,i,!0),this.reducePos),i<s.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),this.reduceContext(i,this.reducePos);return}let a=this.stack.length-(r-1)*3-(e&262144?6:0),l=a?this.stack[a-2]:this.p.ranges[0].from,u=this.reducePos-l;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(l==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=l,this.p.lastBigReductionSize=u));let h=a?this.stack[a-1]:0,c=this.bufferBase+this.buffer.length-h;if(i<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,l,f,c+4,!0)}if(e&262144)this.state=this.stack[a];else{let f=this.stack[a-3];this.state=s.getGoto(f,i,!0)}for(;this.stack.length>a;)this.stack.pop();this.reduceContext(i,l)}storeNode(e,t,r,i=4,s=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let o=this,a=this.buffer.length;if(a==0&&o.parent&&(a=o.bufferBase-o.parent.bufferBase,o=o.parent),a>0&&o.buffer[a-4]==0&&o.buffer[a-1]>-1){if(t==r)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=r;return}}}if(!s||this.pos==r)this.buffer.push(e,t,r,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>r;)this.buffer[o]=this.buffer[o-4],this.buffer[o+1]=this.buffer[o-3],this.buffer[o+2]=this.buffer[o-2],this.buffer[o+3]=this.buffer[o-1],o-=4,i>4&&(i-=4);this.buffer[o]=e,this.buffer[o+1]=t,this.buffer[o+2]=r,this.buffer[o+3]=i}}shift(e,t,r){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=r,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,r,4);else{let s=e,{parser:o}=this.p;(r>this.pos||t<=o.maxNode)&&(this.pos=r,o.stateFlag(s,1)||(this.reducePos=r)),this.pushState(s,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,r,4)}}apply(e,t,r){e&65536?this.reduce(e):this.shift(e,t,r)}useNode(e,t){let r=this.p.reused.length-1;(r<0||this.p.reused[r]!=e)&&(this.p.reused.push(e),r++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(r,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let r=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new n(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,r,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let r=e<=this.p.parser.maxNode;r&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,r?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new gt(this);;){let r=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(r==0)return!1;if(!(r&65536))return!0;t.reduce(r)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>8||this.stack.length>=120){let i=[];for(let s=0,o;s<t.length;s+=2)(o=t[s+1])!=this.state&&this.p.parser.hasAction(o,e)&&i.push(t[s],o);if(this.stack.length<120)for(let s=0;i.length<8&&s<t.length;s+=2){let o=t[s+1];i.some((a,l)=>l&1&&a==o)||i.push(t[s],o)}t=i}let r=[];for(let i=0;i<t.length&&r.length<4;i+=2){let s=t[i+1];if(s==this.state)continue;let o=this.split();o.pushState(s,this.pos),o.storeNode(0,o.pos,o.pos,4,!0),o.shiftContext(t[i],this.pos),o.score-=200,r.push(o)}return r}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let r=t>>19,i=t&65535,s=this.stack.length-r*3;if(s<0||e.getGoto(this.stack[s],i,!1)<0){let o=this.findForcedReduction();if(o==null)return!1;t=o}this.storeNode(0,this.pos,this.pos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(t),!0}findForcedReduction(){let{parser:e}=this.p,t=[],r=(i,s)=>{if(!t.includes(i))return t.push(i),e.allActions(i,o=>{if(!(o&393216))if(o&65536){let a=(o>>19)-s;if(a>1){let l=o&65535,u=this.stack.length-a*3;if(u>=0&&e.getGoto(this.stack[u],l,!1)>=0)return a<<19|65536|l}}else{let a=r(o,s+1);if(a!=null)return a}})};return r(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new _e(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()}},_e=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Ar;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(Ar||(Ar={}));var gt=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,r=e>>19;r==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(r-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},yt=class n{constructor(e,t,r){this.stack=e,this.pos=t,this.index=r,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new n(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 n(this.stack,this.pos,this.index)}};function Fe(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let r=0,i=0;r<n.length;){let s=0;for(;;){let o=n.charCodeAt(r++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let l=o-32;if(l>=46&&(l-=46,a=!0),s+=l,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}var me=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Dr=new me,bt=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=Dr,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let r=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<r.from;){if(!i)return null;let o=this.ranges[--i];s-=r.from-o.to,r=o}for(;t<0?s>r.to:s>=r.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-r.to,r=o}return s}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,r,i;if(t>=0&&t<this.chunk.length)r=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(r=s,r>=this.chunk2Pos&&r<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(r-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=r;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=r),r+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-r)),i=this.chunk2.charCodeAt(0)}}return r>=this.token.lookAhead&&(this.token.lookAhead=r+1),i}acceptToken(e,t=0){let r=t?this.resolveOffset(t,-1):this.pos;if(r==null||r<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=r}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Dr,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let r="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(r+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return r}},re=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:r}=t.p;_r(this.data,e,t,this.id,r.data,r.tokenPrecTable)}};re.prototype.contextual=re.prototype.fallback=re.prototype.extend=!1;var vt=class{constructor(e,t,r){this.precTable=t,this.elseToken=r,this.data=typeof e=="string"?Fe(e):e}token(e,t){let r=e.pos,i=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(_r(this.data,e,t,0,this.data,this.precTable),e.token.value>-1)break;if(this.elseToken==null)return;if(s||i++,o==null)break;e.reset(o,e.token)}i&&(e.reset(r,e.token),e.acceptToken(this.elseToken,i))}};vt.prototype.contextual=re.prototype.fallback=re.prototype.extend=!1;function _r(n,e,t,r,i,s){let o=0,a=1<<r,{dialect:l}=t.p.parser;e:for(;a&n[o];){let u=n[o+1];for(let d=o+3;d<u;d+=2)if((n[d+1]&a)>0){let p=n[d];if(l.allows(p)&&(e.token.value==-1||e.token.value==p||us(p,e.token.value,i,s))){e.acceptToken(p);break}}let h=e.next,c=0,f=n[o+2];if(e.next<0&&f>c&&n[u+f*3-3]==65535&&n[u+f*3-3]==65535){o=n[u+f*3-1];continue e}for(;c<f;){let d=c+f>>1,p=u+d+(d<<1),g=n[p],F=n[p+1]||65536;if(h<g)f=d;else if(h>=F)c=d+1;else{o=n[p+2],e.advance();continue e}}break}}function Nr(n,e,t){for(let r=e,i;(i=n[r])!=65535;r++)if(i==t)return r-e;return-1}function us(n,e,t,r){let i=Nr(t,r,e);return i<0||Nr(t,r,n)<i}var K=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),pt=null,Br;(function(n){n[n.Margin=25]="Margin"})(Br||(Br={}));function Rr(n,e,t){let r=n.cursor(B.IncludeAnonymous);for(r.moveTo(e);;)if(!(t<0?r.childBefore(e):r.childAfter(e)))for(;;){if((t<0?r.to<e:r.from>e)&&!r.type.isError)return t<0?Math.max(0,Math.min(r.to-1,e-25)):Math.min(n.length,Math.max(r.from+1,e+25));if(t<0?r.prevSibling():r.nextSibling())break;if(!r.parent())return t<0?0:n.length}}var xt=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?Rr(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Rr(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let r=this.trees[t],i=this.index[t];if(i==r.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=r.children[i],o=this.start[t]+r.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof Q){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let l=s.prop(I.lookAhead);if(!l||a+l<this.fragment.to)return s}}this.index[t]++,o+s.length>=Math.max(this.safeFrom,e)&&(this.trees.push(s),this.start.push(o),this.index.push(0))}else this.index[t]++,this.nextStart=o+s.length}}},Ct=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(r=>new me)}getActions(e){let t=0,r=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,l=0;for(let u=0;u<s.length;u++){if(!(1<<u&o))continue;let h=s[u],c=this.tokens[u];if(!(r&&!h.fallback)&&((h.contextual||c.start!=e.pos||c.mask!=o||c.context!=a)&&(this.updateCachedToken(c,h,e),c.mask=o,c.context=a),c.lookAhead>c.end+25&&(l=Math.max(c.lookAhead,l)),c.value!=0)){let f=t;if(c.extended>-1&&(t=this.addActions(e,c.extended,c.end,t)),t=this.addActions(e,c.value,c.end,t),!h.extend&&(r=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return l&&e.setLookAhead(l),!r&&e.pos==this.stream.end&&(r=new me,r.value=e.p.parser.eofTerm,r.start=r.end=e.pos,t=this.addActions(e,r.value,r.end,t)),this.mainToken=r,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new me,{pos:r,p:i}=e;return t.start=r,t.end=Math.min(r+1,i.stream.end),t.value=r==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,r){let i=this.stream.clipPos(r.pos);if(t.token(this.stream.reset(i,e),r),e.value>-1){let{parser:s}=r.p;for(let o=0;o<s.specialized.length;o++)if(s.specialized[o]==e.value){let a=s.specializers[o](this.stream.read(e.start,e.end),r);if(a>=0&&r.p.parser.dialect.allows(a>>1)){a&1?e.extended=a>>1:e.value=a>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,r,i){for(let s=0;s<i;s+=3)if(this.actions[s]==e)return i;return this.actions[i++]=e,this.actions[i++]=t,this.actions[i++]=r,i}addActions(e,t,r,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let l=0;l<2;l++)for(let u=o.stateSlot(s,l?2:1);;u+=3){if(a[u]==65535)if(a[u+1]==1)u=j(a,u+2);else{i==0&&a[u+1]==2&&(i=this.putAction(j(a,u+2),t,r,i));break}a[u]==t&&(i=this.putAction(j(a,u+1),t,r,i))}return i}},Lr;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(Lr||(Lr={}));var Ft=class{constructor(e,t,r,i){this.parser=e,this.input=t,this.ranges=i,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 bt(t,i),this.tokens=new Ct(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[mt.start(this,e.top[0],s)],this.fragments=r.length&&this.stream.end-s>e.bufferLength*4?new xt(r,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,r=this.stacks=[],i,s;if(this.bigReductionCount>300&&e.length==1){let[o]=e;for(;o.forceReduce()&&o.stack.length&&o.stack[o.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let o=0;o<e.length;o++){let a=e[o];for(;;){if(this.tokens.mainToken=null,a.pos>t)r.push(a);else{if(this.advanceStack(a,r,e))continue;{i||(i=[],s=[]),i.push(a);let l=this.tokens.getMainToken(a);s.push(l.value,l.end)}}break}}if(!r.length){let o=i&&cs(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw K&&i&&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&&i){let o=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,s,r);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(r.length>o)for(r.sort((a,l)=>l.score-a.score);r.length>o;)r.pop();r.some(a=>a.reducePos>t)&&this.recovering--}else if(r.length>1){e:for(let o=0;o<r.length-1;o++){let a=r[o];for(let l=o+1;l<r.length;l++){let u=r[l];if(a.sameState(u)||a.buffer.length>500&&u.buffer.length>500)if((a.score-u.score||a.buffer.length-u.buffer.length)>0)r.splice(l--,1);else{r.splice(o--,1);continue e}}}r.length>12&&r.splice(12,r.length-12)}this.minStackPos=r[0].pos;for(let o=1;o<r.length;o++)r[o].pos<this.minStackPos&&(this.minStackPos=r[o].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,r){let i=e.pos,{parser:s}=this,o=K?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,h=u?e.curContext.hash:0;for(let c=this.fragments.nodeAt(i);c;){let f=this.parser.nodeSet.types[c.type.id]==c.type?s.getGoto(e.state,c.type.id):-1;if(f>-1&&c.length&&(!u||(c.prop(I.contextHash)||0)==h))return e.useNode(c,f),K&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof Q)||c.children.length==0||c.positions[0]>0)break;let d=c.children[0];if(d instanceof Q&&c.positions[0]==0)c=d;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),K&&console.log(o+this.stackID(e)+` (via always-reduce ${s.getName(a&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let l=this.tokens.getActions(e);for(let u=0;u<l.length;){let h=l[u++],c=l[u++],f=l[u++],d=u==l.length||!r,p=d?e:e.split();if(p.apply(h,c,f),K&&console.log(o+this.stackID(p)+` (via ${h&65536?`reduce of ${s.getName(h&65535)}`:"shift"} for ${s.getName(c)} @ ${i}${p==e?"":", split"})`),d)return!0;p.pos>i?t.push(p):r.push(p)}return!1}advanceFully(e,t){let r=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>r)return Hr(e,t),!0}}runRecovery(e,t,r){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],l=t[o<<1],u=t[(o<<1)+1],h=K?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),K&&console.log(h+this.stackID(a)+" (restarted)"),this.advanceFully(a,r))))continue;let c=a.split(),f=h;for(let d=0;c.forceReduce()&&d<10&&(K&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,r));d++)K&&(f=this.stackID(c)+" -> ");for(let d of a.recoverByInsert(l))K&&console.log(h+this.stackID(d)+" (via recover-insert)"),this.advanceFully(d,r);this.stream.end>a.pos?(u==a.pos&&(u++,l=0),a.recoverByDelete(l,u),K&&console.log(h+this.stackID(a)+` (via recover-delete ${this.parser.getName(l)})`),Hr(a,r)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),Q.build({buffer:yt.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=(pt||(pt=new WeakMap)).get(e);return t||pt.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Hr(n,e){for(let t=0;t<e.length;t++){let r=e[t];if(r.pos==n.pos&&r.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var St=class{constructor(e,t,r){this.source=e,this.flags=t,this.disabled=r}allows(e){return!this.disabled||this.disabled[e]==0}};var Qe=class n extends Ve{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let a=0;a<e.repeatNodeCount;a++)t.push("");let r=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,l,u){i[a].push([l,l.deserialize(String(u))])}if(e.nodeProps)for(let a of e.nodeProps){let l=a[0];typeof l=="string"&&(l=I[l]);for(let u=1;u<a.length;){let h=a[u++];if(h>=0)s(h,l,a[u++]);else{let c=a[u+-h];for(let f=-h;f>0;f--)s(a[u++],l,c);u++}}}this.nodeSet=new Re(t.map((a,l)=>J.define({name:l>=this.minRepeatTerm?void 0:a,id:l,props:i[l],top:r.indexOf(l)>-1,error:l==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(l)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Fe(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let a=0;a<this.specializerSpecs.length;a++)this.specialized[a]=this.specializerSpecs[a].term;this.specializers=this.specializerSpecs.map(Vr),this.states=Fe(e.states,Uint32Array),this.data=Fe(e.stateData),this.goto=Fe(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new re(o,a):a),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,r){let i=new Ft(this,e,t,r);for(let s of this.wrappers)i=s(i,e,t,r);return i}getGoto(e,t,r=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,l=i[s++];if(a&&r)return l;for(let u=s+(o>>1);s<u;s++)if(i[s]==e)return l;if(a)return-1}}hasAction(e,t){let r=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=r[s])==65535)if(r[s+1]==1)o=r[s=j(r,s+2)];else{if(r[s+1]==2)return j(r,s+2);break}if(o==t||o==0)return j(r,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,r=>r==t?!0:null)}allActions(e,t){let r=this.stateSlot(e,4),i=r?t(r):void 0;for(let s=this.stateSlot(e,1);i==null;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=j(this.data,s+2);else break;i=t(j(this.data,s+1))}return i}nextStates(e){let t=[];for(let r=this.stateSlot(e,1);;r+=3){if(this.data[r]==65535)if(this.data[r+1]==1)r=j(this.data,r+2);else break;if(!(this.data[r+2]&1)){let i=this.data[r+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[r],i)}}return t}configure(e){let t=Object.assign(Object.create(n.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let r=this.topRules[e.top];if(!r)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=r}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(r=>{let i=e.tokenizers.find(s=>s.from==r);return i?i.to:r})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((r,i)=>{let s=e.specializers.find(a=>a.from==r.external);if(!s)return r;let o=Object.assign(Object.assign({},r),{external:s.to});return t.specializers[i]=Vr(o),o})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),r=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(r[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!r[s])for(let o=this.dialects[t[s]],a;(a=this.data[o++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[a]=1;return new St(e,r,i)}static deserialize(e){return new n(e)}};function j(n,e){return n[e]|n[e+1]<<16}function cs(n){let e=null;for(let t of n){let r=t.p.stoppedAt;(t.pos==t.p.stream.end||r!=null&&t.pos>r)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Vr(n){if(n.external){let e=n.extend?1:0;return(t,r)=>n.external(t,r)<<1|e}return n.get}var Se=Qe.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});import{isMultiClauseFilter as $e,isMultiValueFilter as fs,isSingleValueFilter as hs}from"@vuu-ui/vuu-utils";var U,$t=class{constructor(){Pt(this,U,void 0)}setFilterCombinatorOp(e,t=G(this,U)){$e(t)&&t.op===e||Ke(this,U,{op:e,filters:[G(this,U)]})}add(e){if(G(this,U)===void 0)Ke(this,U,e);else if($e(G(this,U)))G(this,U).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=G(this,U)){if($e(t)){let r=t.filters.at(-1);r&&this.setColumn(e,r)}else t&&(t.column=e)}setOp(e,t=G(this,U)){if($e(t)){let r=t.filters.at(-1);r&&this.setOp(e,r)}else t&&(t.op=e)}setValue(e,t=G(this,U)){var r;if($e(t)){let i=t.filters.at(-1);i&&this.setValue(e,i)}else fs(t)?((r=t.values)!=null||(t.values=[]),t.values.push(e)):hs(t)&&(t.value=e)}toJSON(e=G(this,U)){return this.name?{...e,name:this.name}:e}};U=new WeakMap;var Ue=(n,e)=>{let t=new $t,r=n.cursor();do{let{name:i,from:s,to:o}=r;switch(i){case"ColumnValueExpression":t.add({});break;case"ColumnSetExpression":t.add({op:"in"});break;case"Or":case"And":t.setFilterCombinatorOp(e.substring(s,o));break;case"Column":t.setColumn(e.substring(s,o));break;case"Operator":t.setOp(e.substring(s,o));break;case"String":t.setValue(e.substring(s+1,o-1));break;case"Number":t.setValue(parseFloat(e.substring(s,o)));break;case"True":t.setValue(!0);break;case"False":t.setValue(!1);break;case"FilterName":t.name=e.substring(s,o);break;default:}}while(r.next());return t.toJSON()};var Ru=Se.configure({strict:!0});import{useEffect as Ps,useMemo as Os,useRef as kt}from"react";import{LanguageSupport as ps,LRLanguage as ms,styleTags as gs,tags as Ye}from"@vuu-ui/vuu-codemirror";var ys=ms.define({name:"VuuFilterQuery",parser:Se.configure({props:[gs({Identifier:Ye.variableName,String:Ye.string,Or:Ye.emphasis,Operator:Ye.operator})]})}),Qr=()=>new ps(ys);import{HighlightStyle as bs,syntaxHighlighting as vs,tags as Ur}from"@vuu-ui/vuu-codemirror";var xs=bs.define([{tag:Ur.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Ur.comment,color:"green",fontStyle:"italic"}]),Yr=vs(xs);import{EditorView as Cs}from"@vuu-ui/vuu-codemirror";var Wr=Cs.theme({"&":{color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)",fontSize:"var(--vuuFilterEditor-fontSize)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)",padding:0},".cm-line":{lineHeight:"var(--vuuFilterEditor-lineHeight)"},"&.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)",borderRadius:"4px",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{alignItems:"center",display:"flex",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-completionIcon":{height:"18px",flex:"0 0 16px"},".cm-completionLabel":{flex:"1 1 auto"},".cm-completionIcon-filter":{position:"relative","&:after":{background:"var(--salt-text-secondary-foreground)",content:"''","-webkit-mask":"var(--svg-filter) center center/13px 13px","-webkit-mask-repeat":"no-repeat",position:"absolute",height:"18px",left:"0px",top:"0px",width:"16px"}}},{dark:!1});import{getNodeByName as ge,getValue as X,syntaxTree as Fs}from"@vuu-ui/vuu-codemirror";import{useCallback as zr}from"react";var qr=(n,e)=>{let t=n.prevSibling||n.parent;for(;t&&!["Column","Operator","In"].includes(t.name);)t=t.prevSibling||t.parent;if((t==null?void 0:t.name)==="In"||(t==null?void 0:t.name)==="Operator")return X(t,e)},Ss=(n,e,t)=>{let r=X(n,e);if(!(t===void 0||r===t)&&["contains","ends","starts"].some(i=>i.startsWith(r.toLowerCase())))return r},Jr=(n,e)=>{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name==="\u26A0";)t=t.prevSibling;if(t&&["As","Or","And"].includes(t.name))return X(t,e)},Kr=(n,e)=>{if(n.name==="FilterName")return X(n,e);{let t=n.prevSibling||n.parent||n.lastChild;for(;t&&t.name!=="FilterName";)t=t.prevSibling;if(t&&t.name==="FilterName")return X(n,e)}},Gr=(n,e)=>{let t=n.prevSibling;if((t==null?void 0:t.name)==="Column")return X(t,e);if((t==null?void 0:t.name)==="Operator")return Gr(t,e)},$s=(n,e)=>{let t=n.lastChild,r=[];for(;t&&t.name!=="In";){let i=X(t,e);if(i)r.push(i);else break;t=t.prevSibling}return r};var Zr=(n,e,t)=>{let r=zr(async(i,s,o={})=>{let{startsWith:a=""}=o,l=await n.getSuggestions(s,o);return{from:i.pos-a.length,options:l}},[n]);return zr(async i=>{var h,c;let{state:s,pos:o}=i,a=(h=i.matchBefore(/\w*/))!=null?h:{from:0,to:0,text:void 0},u=Fs(s).resolveInner(o,-1);switch(console.log({nodeBeforeName:u.name}),u.name){case"Filter":if(i.pos===0)return r(i,"column");if(Jr(u,s)==="as")return r(i,"name");{let d=Kr(u,s);return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:d})}case"String":{let f=qr(u,s),d=Gr(u,s),{from:p,to:g}=u;if(g-p===2&&i.pos===p+1){if(d&&f)return r(i,"columnValue",{columnName:d,operator:f,quoted:!0,startsWith:a.text})}else console.log(`we have a string, column is ${d} ${p} ${g}`)}break;case"As":return r(i,"name");case"FilterName":return r(i,"save",{onSubmit:e.current,existingFilter:t,filterName:Kr(u,s)});case"Column":{let f=X(u,s);return await n.isPartialMatch("column",void 0,f)?r(i,"column",{startsWith:f}):r(i,"operator",{columnName:f})}case"\u26A0":{let f=ge(u,s),d=qr(u,s),p=d?void 0:Ss(u,s,f);return p?r(i,"operator",{columnName:f,startsWith:p}):r(i,"columnValue",{columnName:f,operator:d,startsWith:a.text})}case"Identifier":if(Jr(u,s)==="as")return{from:i.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>e.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let f=ge(u,s),d=$s(u,s);return r(i,"columnValue",{columnName:f,selection:d})}case"Comma":case"LBrack":{let f=ge(u,s);return r(i,"columnValue",{columnName:f})}case"ColumnValueExpression":{let f=(c=u.lastChild)==null?void 0:c.prevSibling;if((f==null?void 0:f.name)==="Column")return r(i,"operator",{columnName:ge(u,s)});if((f==null?void 0:f.name)==="Operator")return r(i,"columnValue",{columnName:ge(f,s),operator:X(f,s)})}break;case"In":return{from:i.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return r(i,"columnValue",{columnName:ge(u,s)});case"AndExpression":case"OrExpression":return r(i,"column");default:}},[t,r,e,n])};var we=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Is=n=>N("vuuSuggestion",{vuuIllustration:n.isIllustration}),Ts=n=>{let e=n.lastIndexOf(" as ");return e!==-1?n.slice(0,e):n},As=()=>console.log("noooop"),tn=({existingFilter:n,onSubmitFilter:e,suggestionProvider:t})=>{let r=kt(null),i=kt(As),s=kt(),o=Zr(t,i,n),[a,l]=Os(()=>{let u=()=>{let g=we(s),F=g.state.doc.toString(),k=Es(g.state,g.state.doc.length,5e3);if(k){let S=Ue(k,F);return[S,Ts(F),S.name]}else return[void 0,"",void 0]},h=()=>{we(s).setState(p())},c=g=>{let[F,k,S]=u();e==null||e(F,k,g,S),h()},f=g=>wt.of([{key:g,run(){return c(),!0}}]),d=g=>wt.of([{key:g,run(){return en(we(s)),!0}}]),p=()=>jr.create({doc:"",extensions:[Ms,ws({override:[o],optionClass:Is}),Qr(),wt.of(ks),f("Ctrl-Enter"),d("ArrowDown"),Xr.updateListener.of(g=>{let F=we(s);g.docChanged&&en(F)}),jr.transactionFilter.of(g=>g.newDoc.lines>1?[]:g),Wr,Yr]});return i.current=g=>{c(g),setTimeout(()=>{we(s).focus()},100)},[p,h]},[o,e]);return Ps(()=>{if(!r.current)throw Error("editor not in dom");return s.current=new Xr({state:a(),parent:r.current}),()=>{var u;(u=s.current)==null||u.destroy()}},[o,a]),{editorRef:r,clearInput:l}};import{jsx as Et,jsxs as Ds}from"react/jsx-runtime";var We="vuuFilterInput",Mc=({existingFilter:n,iconName:e="filter",namedFilters:t,onSubmitFilter:r,suggestionProvider:i,...s})=>{let{editorRef:o,clearInput:a}=tn({existingFilter:n,onSubmitFilter:r,suggestionProvider:i});return Ds("div",{...s,className:We,children:[Et(rn,{className:`${We}-FilterButton`,"data-icon":e,tabIndex:-1}),Et("div",{className:`${We}-Editor`,ref:o}),Et(rn,{className:`${We}-ClearButton`,"data-icon":"close-circle",onClick:a})]})};import{asNameSuggestion as Ns,booleanJoinSuggestions as Bs,getNamePrompt as Rs,numericOperators as Ls,stringOperators as Hs,toSuggestions as Vs}from"@vuu-ui/vuu-codemirror";import{getTypeaheadParams as _s,useTypeaheadSuggestions as Qs}from"@vuu-ui/vuu-data-react";import{useCallback as sn,useRef as Us}from"react";import{createEl as ze}from"@vuu-ui/vuu-utils";var nn=(n,e)=>{let t=ze("div","vuuFunctionDoc"),r=ze("div","function-heading"),i=ze("span","function-name",n);r.appendChild(i);let s=ze("p",void 0,e);return t.appendChild(r),t.appendChild(s),t};var Ys=[],Ws={},zs=n=>[{label:"Press ENTER to create TAB",apply:()=>n("tab"),boost:6}],on=(n,e,t=!0)=>{let r=e?[{label:"REPLACE existing filter",apply:()=>n("replace"),boost:8},{label:"AND existing filter",apply:()=>n("and"),boost:7},{label:"OR existing filter",apply:()=>n("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>n(),boost:6}];return t?r.concat(Bs).concat(Ns):r},qs=(n,e)=>on(n,e,!0),Js=n=>on(n,void 0),Ks=({existingFilter:n,filterName:e,onSubmit:t,saveOptions:r})=>{let i=e&&r.allowSaveAsTab,s=n?qs(t,n):Js(t);return i?s.concat(zs(t)):s},Gs=n=>n.map(e=>({boost:5,label:e.name})),Zs=n=>n?Array.from(n.entries()).map(([e,t])=>({info:()=>nn(e,t),label:e,type:"filter"})):Ys,js={label:"Done",apply:"] ",type:"keyword",boost:10},qe=(n,e="")=>n.filter(t=>e===""||t.label.startsWith(e)).map(t=>({...t,apply:t.label+" "})),Xs={allowReplace:!0},Lc=({columns:n,namedFilters:e,saveOptions:t=Xs,table:r,typeaheadHook:i=Qs})=>{let s=Us(),o=i(),a=sn(async(u,h=Ws)=>{let{columnName:c,existingFilter:f,filterName:d,operator:p,quoted:g,onSubmit:F,startsWith:k,selection:S}=h;switch(u){case"operator":{let E=n.find(x=>x.name===c);if(E)switch(E.serverDataType){case"string":case"char":return qe(Hs,k);case"int":case"long":case"double":return qe(Ls)}else console.warn(`'${c}' does not match any column name`)}break;case"column":{let E=await Gs(n),x=await Zs(e);return(s.current=qe(E)).concat(qe(x))}case"columnValue":if(c){let E=n.find(C=>C.name===c);if(!E)throw Error(`useFilterSUggestionProvider no column ${c}`);let x=Array.isArray(S)?S.length===0?"[":",":"",$=_s(r,c,k),m=await o($),v=p==="starts";return s.current=Vs(m,{moveCursorToEnd:g,quoted:(E==null?void 0:E.serverDataType)==="string"&&!g,suffix:g?"":" ",prefix:v?k:x,isIllustration:v}),Array.isArray(S)&&(S==null?void 0:S.length)>1?[js,...s.current]:s.current}break;case"save":{if(typeof F!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await Ks({existingFilter:f,filterName:d,onSubmit:F,saveOptions:t})}case"name":return await Rs("filter");default:}return[]},[n,o,e,t,r]),l=sn(async(u,h,c)=>{let f=await a(u,{columnName:h});if(c&&f)for(let d of f){if(d.label===c)return!1;if(d.label.startsWith(c))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:l}};var Yc=n=>{let e=localStorage.getItem(n);return e?JSON.parse(e):void 0},Wc=n=>Object.entries(localStorage).filter(([e])=>e.includes(n)).map(([,e])=>JSON.parse(e)),zc=(n,e)=>{try{return localStorage.setItem(n,JSON.stringify(e)),e}catch{return}};export{_ as AND,ol as ENDS_WITH,tt as EQUALS,ie as ExpandoCombobox,xu as FilterBar,Dt as FilterBuilderMenu,Xt as FilterClauseEditor,Qt as FilterClauseTextValueEditor,Mc as FilterInput,vr as FilterPill,il as GREATER_THAN,xi as IN,sl as LESS_THAN,vi as OR,ar as STARTS_WITH,it as addClause,al as addFilter,ve as filterClauses,nt as filterEquals,ki as filterIncludesColumn,Wc as getAllLocalEntity,Yc as getLocalEntity,fl as getNumericFilter,cl as getTypeaheadFilter,wi as overrideColName,ll as removeFilter,cr as removeLastClause,fr as replaceClause,zc as saveLocalEntity,ul as splitFilterOnColumn,Mi as updateFilter,tn as useCodeMirrorEditor,Lc as useFilterSuggestionProvider};
2
2
  //# sourceMappingURL=index.js.map
package/index.css CHANGED
@@ -1,2 +1,2 @@
1
- .vuuFilterBuilderMenu{margin:0}.vuuFilterBuilderMenu-trigger{display:inline-block;height:26px;width:0px}.vuuFilterBuilderMenuList{--vuuList-borderStyle: none}.vuuListItem:has(.vuuMenuButton){justify-content:center}.vuuMenuButton{background-color:#fff;border:solid 1px var(--salt-actionable-primary-foreground);border-radius:6px;color:var(--vuu-color-gray-50);font-size:9px;padding:1px 6px}.vuuExpandoCombobox{--expando-combobox-height: var(--vuuExpandoCombobox-height, 24px);--expando-combobox-fontSize: var(--vuuExpandoCombobox-fontSizew, 12px);--saltInput-outline: none;--saltInput-fontSize: var(--expando-combobox-fontSize);--saltInput-height: var(--expando-combobox-height);--saltInput-minWidth: 4px;display:inline-flex;flex-direction:column;height:var(--expando-combobox-height);min-width:4px;padding:0}.vuuExpandoCombobox .saltInput{background-color:transparent;position:absolute}.vuuExpandoCombobox .vuuDropdown{height:100%}.vuuExpandoCombobox-Input.saltInput{border:none;left:0;margin:0;min-height:100%;padding:0;right:0;width:auto}.vuuExpandoCombobox .saltInput-input{border:none;box-sizing:content-box;display:block;flex:1;font:inherit;margin:0;min-width:0;outline:none;padding:0}.vuuExpandoCombobox .saltInput-input::selection{background-color:var( --salt-text-background-selected, var(--vuu-color-blue-40) )}.vuuExpandoCombobox:before{content:attr(data-text);display:block;font-size:var(--expando-combobox-fontSize);height:0px;overflow:hidden;white-space:pre-wrap}.vuuFilterClause{--vuuExpandoInput-top: 0;--vuuExpandoInput-height: 16px;--vuuExpandoCombobox-height: 16px;--saltButton-height: 16px;--saltButton-width: 16px;display:flex;flex-direction:row;width:fit-content;border-color:var(--vuu-color-gray-45);border-radius:6px;border-width:1px;border-style:solid;background:#fff;--salt-focused-outlineStyle: dotted}.vuuFilterClause:focus-within{border-color:var(--vuu-color-purple-10)}.vuu-density-high .vuuFilterClause{padding:4px 8px;gap:4px;--salt-text-lineHeight: 12px;--saltInputLegacy-fontSize: 12px;--saltInputLegacy-minWidth: 12px}.vuu-density-high .vuuFilterClause .saltInput{padding:0;min-height:16px;height:16px}.vuuFilterClause .vuuExpandoCombobox{flex-basis:auto;flex-shrink:0;flex-grow:0}.vuuFilterClauseOperator-hidden{display:none}.vuuFilterClause .saltInput-focused,.vuuFilterClause .saltTokenizedInput-focused{outline:none;color:var(--salt-content-primary-foreground)}.vuuFilterClause .saltInput-input::selection{color:#fff}.vuu-theme .saltList{--list-borderWidth: 1px;--list-borderStyle: solid;border-radius:4px;box-shadow:0 2px 3px #0006}.saltListItem[aria-selected=true]:not(.saltListItem-checkbox){--list-item-background: var(--list-item-background-active);color:var(--list-item-text-color-active)}.saltTokenizedInput{height:16px;min-height:16px}.saltTokenizedInput .saltInputPill{--pill-fontSize: 12px;--saltButton-borderStyle: none;--pill-background: none;height:16px;margin:0}.saltTokenizedInput-pillGroup{padding:0;height:16px}.vuuFilterClause-DatePicker{border:none}.vuuFilterPillMenu{top:-1px}.vuuFilterPill{align-items:center;background:var(--salt-taggable-background);border:solid 1px var(--salt-taggable-foreground);border-radius:24px;color:var(--vuu-color-gray-50);display:inline-flex;max-width:var(--vuuFilterPill-maxWidth, 200px);padding:0 8px;position:relative;user-select:none;outline:none}.vuuFilterPill.vuuToolbarItem{height:24px}.vuuFilterPill[aria-selected=true]{--vuuPopupMenu-iconColor: white;--salt-text-background-selected: var(--vuu-color-blue-40);--salt-text-color-selected: var(--salt-content-primary-foreground);--saltInput-background-hover: var(--salt-taggable-background-active);--saltInput-color: var(--salt-taggable-foreground-active);background:var(--salt-taggable-background-active);color:#fff}.vuuFilterPill:not([aria-selected=true]):hover{--vuuPopupMenu-iconColor: var(--vuu-color-gray-80);background-color:var(--salt-taggable-background-hover);border-color:var(--salt-taggable-background-hover);color:var(--vuu-color-gray-80)}.vuuFilterBar{--vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z" /></svg>');--vuuToolbar-height: 28px;--salt-container-primary-borderColor: var(--vuu-color-purple-10);--vuuOverflowContainer-minWidth: 0;--saltButton-height: 26px;--saltButton-width: 26px;align-items:center;background-color:var(--salt-container-secondary-background);border-bottom:solid 1px #d6d7da;display:flex;flex:var(--vuuFilterBar-flex);gap:4px;height:33px;padding:0 8px}.vuuFilterbar-icon{display:inline-block;height:16px;width:16px}.vuuFilterBar [data-icon=tune]{--vuu-icon-size: 16px;--vuu-icon-svg: var(--vuu-svg-tune)}.vuuFilterBar [data-icon=plus]{--vuu-icon-size: 16px}.vuuFilterBar .vuuToolbar{flex:0 1 auto}.vuuFilterBar-Editor{display:flex;flex-direction:row;align-items:center;gap:4px}.salt-theme{--vuuFilterEditor-lineHeight: 28px}.salt-density-high{--vuuFilterEditor-buttonWidth: 20px;--vuuFilterEditor-height: 22px;--vuuFilterEditor-lineHeight: 20px}.vuuFilterInput{--vuuFilterEditor-background: var(--salt-container-primary-background);--vuuFilterEditor-color: var(--salt-content-primary-foreground);--vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);--vuuFilterEditor-fontSize: var(--salt-text-fontSize);--vuuFilterEditor-cursorColor: var(--salt-content-secondary-foreground);--vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);--vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);--vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle);--vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);--vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);--vuuFilterEditor-suggestion-selectedColor: var(--vuuFilterEditor-color);--vuuFilterEditor-suggestion-height: 24px;--vuuFilterEditor-variableColor: var(--vuu-color_purple-10);align-items:center;border-color:var(--salt-container-secondary-borderColor);border-style:solid none;border-width:1px;box-sizing:border-box;display:flex;height:var(--vuuFilterEditor-height, 30px)}.vuuFilterInput-Editor{flex:1 1 auto;height:100%}.vuuFilterInput-FilterButton,.vuuFilterInput-ClearButton{--vuu-icon-size: 12px;--saltButton-width: var(--vuuFilterEditor-buttonWidth, 28px)}.vuuIllustration{--vuuFilterEditor-suggestion-selectedBackground:var(--salt-container-secondary-background);background:var(--salt-container-secondary-background);color:var(--salt-text-secondary-foreground)}
1
+ .vuuFilterBuilderMenu{margin:0}.vuuFilterBuilderMenu-trigger{display:inline-block;height:26px;width:0px}.vuuFilterBuilderMenuList{--vuuList-borderStyle: none}.vuuListItem:has(.vuuMenuButton){justify-content:center}.vuuMenuButton{background-color:#fff;border:solid 1px var(--salt-actionable-primary-foreground);border-radius:6px;color:var(--vuu-color-gray-50);font-size:9px;padding:1px 6px}.vuuExpandoCombobox{--expando-combobox-height: var(--vuuExpandoCombobox-height, 24px);--expando-combobox-fontSize: var(--vuuExpandoCombobox-fontSizew, 12px);--saltInput-outline: none;--saltInput-fontSize: var(--expando-combobox-fontSize);--saltInput-height: var(--expando-combobox-height);--saltInput-minWidth: 4px;display:inline-flex;flex-direction:column;height:var(--expando-combobox-height);min-width:4px;padding:0}.vuuExpandoCombobox .saltInput{background-color:transparent;position:absolute}.vuuExpandoCombobox .vuuDropdown{height:100%}.vuuExpandoCombobox-Input.saltInput{border:none;left:0;margin:0;min-height:100%;padding:0;right:0;width:auto}.vuuExpandoCombobox .saltInput-input{border:none;box-sizing:content-box;display:block;flex:1;font:inherit;margin:0;min-width:0;outline:none;padding:0}.vuuExpandoCombobox .saltInput-input::selection{background-color:var( --salt-text-background-selected, var(--vuu-color-blue-40) )}.vuuExpandoCombobox:before{content:attr(data-text);display:block;font-size:var(--expando-combobox-fontSize);height:0px;overflow:hidden;white-space:pre-wrap}.vuuFilterClause{--vuuExpandoInput-top: 0;--vuuExpandoInput-height: 16px;--vuuExpandoCombobox-height: 16px;--saltButton-height: 16px;--saltButton-width: 16px;display:flex;flex-direction:row;width:fit-content;border-color:var(--vuu-color-gray-45);border-radius:6px;border-width:1px;border-style:solid;background:#fff;--salt-focused-outlineStyle: dotted}.vuuFilterClause:focus-within{border-color:var(--vuu-color-purple-10)}.vuu-density-high .vuuFilterClause{padding:4px 8px;gap:4px;--salt-text-lineHeight: 12px;--saltInputLegacy-fontSize: 12px;--saltInputLegacy-minWidth: 12px}.vuu-density-high .vuuFilterClause .saltInput{padding:0;min-height:16px;height:16px}.vuuFilterClause .vuuExpandoCombobox{flex-basis:auto;flex-shrink:0;flex-grow:0}.vuuFilterClauseOperator-hidden{display:none}.vuuFilterClause .saltInput-focused,.vuuFilterClause .saltTokenizedInput-focused{outline:none;color:var(--salt-content-primary-foreground)}.vuuFilterClause .saltInput-input::selection{color:#fff}.vuu-theme .saltList{--list-borderWidth: 1px;--list-borderStyle: solid;border-radius:4px;box-shadow:0 2px 3px #0006}.saltListItem[aria-selected=true]:not(.saltListItem-checkbox){--list-item-background: var(--list-item-background-active);color:var(--list-item-text-color-active)}.saltTokenizedInput{height:16px;min-height:16px}.saltTokenizedInput .saltInputPill{--pill-fontSize: 12px;--saltButton-borderStyle: none;--pill-background: none;height:16px;margin:0}.saltTokenizedInput-pillGroup{padding:0;height:16px}.vuuFilterClause-DatePicker{border:none}.vuuFilterPillMenu{top:-1px}.vuuFilterPill{align-items:center;background:var(--salt-taggable-background);border:solid 1px var(--salt-taggable-foreground);border-radius:24px;color:var(--vuu-color-gray-50);display:inline-flex;max-width:var(--vuuFilterPill-maxWidth, 200px);padding:0 8px;position:relative;user-select:none;outline:none}.vuuFilterPill.vuuToolbarItem{height:24px}.vuuFilterPill[aria-selected=true]{--vuuPopupMenu-iconColor: white;--salt-text-background-selected: var(--vuu-color-blue-40);--salt-text-color-selected: var(--salt-content-primary-foreground);--saltInput-background-hover: var(--salt-taggable-background-active);--saltInput-color: var(--salt-taggable-foreground-active);background:var(--salt-taggable-background-active);color:#fff}.vuuFilterPill:not([aria-selected=true]):hover{--vuuPopupMenu-iconColor: var(--vuu-color-gray-80);background-color:var(--salt-taggable-background-hover);border-color:var(--salt-taggable-background-hover);color:var(--vuu-color-gray-80)}.vuuFilterBar{--vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z" /></svg>');--vuuToolbar-height: 28px;--salt-container-primary-borderColor: var(--vuu-color-purple-10);--vuuOverflowContainer-minWidth: 0;--saltButton-height: 26px;--saltButton-width: 26px;align-items:center;background-color:var(--salt-container-secondary-background);border-color:var(--salt-container-primary-borderColor);border-style:var(--vuuFilterBar-borderStyle, none none solid none);border-width:1px;display:flex;flex:var(--vuuFilterBar-flex);gap:4px;height:33px;padding:0 8px}.vuuFilterbar-icon{display:inline-block;height:16px;width:16px}.vuuFilterBar [data-icon=tune]{--vuu-icon-size: 16px;--vuu-icon-svg: var(--vuu-svg-tune)}.vuuFilterBar [data-icon=plus]{--vuu-icon-size: 16px}.vuuFilterBar .vuuToolbar{flex:0 1 auto}.vuuFilterBar-Editor{display:flex;flex-direction:row;align-items:center;gap:4px}.salt-theme{--vuuFilterEditor-lineHeight: 28px}.salt-density-high{--vuuFilterEditor-buttonWidth: 20px;--vuuFilterEditor-height: 22px;--vuuFilterEditor-lineHeight: 20px}.vuuFilterInput{--vuuFilterEditor-background: var(--salt-container-primary-background);--vuuFilterEditor-color: var(--salt-content-primary-foreground);--vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);--vuuFilterEditor-fontSize: var(--salt-text-fontSize);--vuuFilterEditor-cursorColor: var(--salt-content-secondary-foreground);--vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);--vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);--vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle);--vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);--vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);--vuuFilterEditor-suggestion-selectedColor: var(--vuuFilterEditor-color);--vuuFilterEditor-suggestion-height: 24px;--vuuFilterEditor-variableColor: var(--vuu-color_purple-10);align-items:center;border-color:var(--salt-container-secondary-borderColor);border-style:solid none;border-width:1px;box-sizing:border-box;display:flex;height:var(--vuuFilterEditor-height, 30px)}.vuuFilterInput-Editor{flex:1 1 auto;height:100%}.vuuFilterInput-FilterButton,.vuuFilterInput-ClearButton{--vuu-icon-size: 12px;--saltButton-width: var(--vuuFilterEditor-buttonWidth, 28px)}.vuuIllustration{--vuuFilterEditor-suggestion-selectedBackground:var(--salt-container-secondary-background);background:var(--salt-container-secondary-background);color:var(--salt-text-secondary-foreground)}
2
2
  /*# sourceMappingURL=index.css.map */
package/index.css.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/vuu-filters/src/filter-builder-menu/FilterBuilderMenu.css", "../../../packages/vuu-filters/src/filter-clause/ExpandoCombobox.css", "../../../packages/vuu-filters/src/filter-clause/FilterClauseEditor.css", "../../../packages/vuu-filters/src/filter-pill-menu/FilterPillMenu.css", "../../../packages/vuu-filters/src/filter-pill/FilterPill.css", "../../../packages/vuu-filters/src/filter-bar/FilterBar.css", "../../../packages/vuu-filters/src/filter-input/FilterInput.css"],
4
- "sourcesContent": [".vuuFilterBuilderMenu {\n margin: 0; \n}\n\n.vuuFilterBuilderMenu-trigger {\n display: inline-block;\n height: 26px;\n width: 0px;\n}\n\n.vuuFilterBuilderMenuList {\n --vuuList-borderStyle: none; \n}\n\n \n .vuuListItem:has(.vuuMenuButton){\n justify-content: center;\n }\n\n .vuuMenuButton {\n background-color: white;\n border: solid 1px var(--salt-actionable-primary-foreground);\n border-radius: 6px;\n color: var(--vuu-color-gray-50);\n font-size: 9px;\n padding: 1px 6px;\n }\n\n", ".vuuExpandoCombobox {\n --expando-combobox-height: var(--vuuExpandoCombobox-height, 24px);\n --expando-combobox-fontSize: var(--vuuExpandoCombobox-fontSizew, 12px);\n\n --saltInput-outline: none;\n --saltInput-fontSize: var(--expando-combobox-fontSize);\n --saltInput-height: var(--expando-combobox-height);\n --saltInput-minWidth: 4px;\n\n display: inline-flex;\n flex-direction: column;\n height: var(--expando-combobox-height);\n min-width: 4px;\n padding: 0;\n}\n\n.vuuExpandoCombobox .saltInput {\n background-color: transparent;\n position: absolute;\n}\n\n.vuuExpandoCombobox .vuuDropdown {\n height: 100%;\n}\n\n/** double up the selector just to increase specificity, won't need when we use cascade layers */\n.vuuExpandoCombobox-Input.saltInput {\n border: none;\n left: 0px;\n margin: 0;\n min-height: 100%;\n padding: 0;\n right: 0px;\n width: auto;\n}\n\n.vuuExpandoCombobox .saltInput-input {\n border: none;\n box-sizing: content-box;\n display: block;\n flex: 1;\n font: inherit;\n margin: 0;\n min-width: 0;\n outline: none;\n padding: 0;\n}\n\n.vuuExpandoCombobox .saltInput-input::selection {\n background-color: var(\n --salt-text-background-selected,\n var(--vuu-color-blue-40)\n );\n}\n\n.vuuExpandoCombobox:before {\n content: attr(data-text);\n display: block;\n font-size: var(--expando-combobox-fontSize);\n height: 0px;\n overflow: hidden;\n /* visibility: hidden; */\n white-space: pre-wrap;\n /* position: absolute; */\n}\n", ".vuuFilterClause {\n --vuuExpandoInput-top: 0;\n --vuuExpandoInput-height: 16px;\n --vuuExpandoCombobox-height: 16px;\n --saltButton-height: 16px;\n --saltButton-width: 16px;\n\n display: flex;\n flex-direction: row;\n width: fit-content;\n border-color: var(--vuu-color-gray-45);\n border-radius: 6px;\n border-width: 1px;\n border-style: solid;\n background: #ffffff;\n --salt-focused-outlineStyle: dotted;\n}\n\n.vuuFilterClause:focus-within {\n border-color: var(--vuu-color-purple-10);\n}\n\n.vuu-density-high .vuuFilterClause {\n padding: 4px 8px;\n gap: 4px;\n --salt-text-lineHeight: 12px;\n --saltInputLegacy-fontSize: 12px;\n --saltInputLegacy-minWidth: 12px;\n}\n\n.vuu-density-high .vuuFilterClause .saltInput {\n padding: 0;\n min-height: 16px;\n height: 16px;\n}\n\n.vuuFilterClause .vuuExpandoCombobox {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n}\n\n.vuuFilterClauseOperator-hidden {\n display: none;\n}\n\n.vuuFilterClause :not(.vuuFilterClauseNumericValue) .saltInput {\n}\n\n.vuuFilterClause .saltInput-focused,\n.vuuFilterClause .saltTokenizedInput-focused {\n outline: none;\n color: var(--salt-content-primary-foreground);\n}\n\n.vuuFilterClause .saltInput-input::selection {\n color: #ffffff;\n}\n\n.vuu-theme .saltList {\n --list-borderWidth: 1px;\n --list-borderStyle: solid;\n border-radius: 4px;\n box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.4);\n}\n\n.saltListItem[aria-selected=\"true\"]:not(.saltListItem-checkbox) {\n --list-item-background: var(--list-item-background-active);\n color: var(--list-item-text-color-active);\n}\n\n.saltTokenizedInput {\n height: 16px;\n min-height: 16px;\n}\n\n.saltTokenizedInput .saltInputPill {\n --pill-fontSize: 12px;\n --saltButton-borderStyle: none;\n --pill-background: none;\n height: 16px;\n margin: 0;\n}\n\n.saltTokenizedInput-pillGroup {\n padding: 0;\n height: 16px;\n}\n\n.vuuFilterClause-DatePicker {\n border: none;\n}\n", ".vuuFilterPillMenu {\n top: -1px;\n}", ".vuuFilterPill {\n /* --vuuTooltip-background: var(--vuu-color-pink-10); */\n align-items: center;\n background: var(--salt-taggable-background);\n border: solid 1px var(--salt-taggable-foreground);\n border-radius: 24px;\n color: var(--vuu-color-gray-50);\n display: inline-flex;\n max-width: var(--vuuFilterPill-maxWidth, 200px);\n padding: 0 8px;\n position: relative;\n user-select: none;\n outline: none;\n}\n\n.vuuFilterPill.vuuToolbarItem {\n height: 24px;\n}\n\n.vuuFilterPill[aria-selected=\"true\"]{\n --vuuPopupMenu-iconColor: white;\n --salt-text-background-selected: var(--vuu-color-blue-40);\n --salt-text-color-selected: var(--salt-content-primary-foreground);\n --saltInput-background-hover: var(--salt-taggable-background-active);\n --saltInput-color: var(--salt-taggable-foreground-active);\n background: var(--salt-taggable-background-active);\n color: white;\n}\n\n.vuuFilterPill:not([aria-selected=\"true\"]):hover {\n --vuuPopupMenu-iconColor: var(--vuu-color-gray-80);\n background-color: var(--salt-taggable-background-hover);\n border-color: var(--salt-taggable-background-hover);\n color: var(--vuu-color-gray-80);\n}\n\n", ".vuuFilterBar {\n --vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z\" /></svg>');\n --vuuToolbar-height: 28px;\n --salt-container-primary-borderColor: var(--vuu-color-purple-10);\n --vuuOverflowContainer-minWidth: 0;\n --saltButton-height: 26px;\n --saltButton-width: 26px;\n\n align-items: center;\n background-color: var(--salt-container-secondary-background);\n border-bottom: solid 1px #d6d7da;\n display: flex;\n flex: var(--vuuFilterBar-flex);\n gap: 4px;\n height: 33px;\n padding: 0px 8px;\n}\n\n.vuuFilterbar-icon {\n display: inline-block;\n height: 16px;\n width: 16px;\n}\n\n.vuuFilterBar [data-icon=\"tune\"] {\n --vuu-icon-size: 16px;\n --vuu-icon-svg: var(--vuu-svg-tune);\n}\n\n.vuuFilterBar [data-icon=\"plus\"] {\n --vuu-icon-size: 16px;\n}\n\n.vuuFilterBar .vuuToolbar {\n flex: 0 1 auto;\n}\n\n.vuuFilterBar-Editor {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 4px;\n}\n", "\n.salt-theme {\n --vuuFilterEditor-lineHeight: 28px;\n}\n\n.salt-density-high {\n --vuuFilterEditor-buttonWidth: 20px;\n --vuuFilterEditor-height: 22px;\n --vuuFilterEditor-lineHeight: 20px;\n}\n\n.vuuFilterInput {\n --vuuFilterEditor-background: var(--salt-container-primary-background);\n --vuuFilterEditor-color: var(--salt-content-primary-foreground);\n --vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);\n --vuuFilterEditor-fontSize: var(--salt-text-fontSize);\n --vuuFilterEditor-cursorColor: var(--salt-content-secondary-foreground);\n --vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);\n --vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);\n --vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle); \n --vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);\n --vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);\n --vuuFilterEditor-suggestion-selectedColor: var(--vuuFilterEditor-color);\n --vuuFilterEditor-suggestion-height: 24px;\n --vuuFilterEditor-variableColor: var(--vuu-color_purple-10);\n\n align-items: center;\n border-color: var(--salt-container-secondary-borderColor);\n border-style: solid none;\n border-width: 1px;\n box-sizing: border-box;\n display: flex;\n height: var(--vuuFilterEditor-height, 30px);\n}\n\n.vuuFilterInput-Editor {\n flex: 1 1 auto;\n height: 100%;\n}\n\n.vuuFilterInput-FilterButton,\n.vuuFilterInput-ClearButton {\n --vuu-icon-size: 12px;\n --saltButton-width: var(--vuuFilterEditor-buttonWidth, 28px);\n}\n\n.vuuIllustration {\n --vuuFilterEditor-suggestion-selectedBackground:var(--salt-container-secondary-background);\n background: var(--salt-container-secondary-background);\n color: var(--salt-text-secondary-foreground);\n}\n\n\n"],
5
- "mappings": "AAAA,CAAC,qBAAD,OACY,CACZ,CAEA,CAAC,6BACG,QAAS,aACT,OAAQ,KACR,MAAO,GACX,CAEA,CAAC,yBACG,uBAAuB,IAC3B,CAGE,CAAC,WAAW,KAAK,CAAC,eAChB,gBAAiB,MACnB,CAEA,CAJkB,cAKhB,iBAAkB,KAClB,OAAQ,MAAM,IAAI,IAAI,sCArB1B,cAsBmB,IACf,MAAO,IAAI,qBACX,UAAW,IAxBf,QAyBa,IAAI,GACf,CC1BF,CAAC,mBACC,2BAA2B,IAAI,2BAA2B,EAAE,MAC5D,6BAA6B,IAAI,8BAA8B,EAAE,MAEjE,qBAAqB,KACrB,sBAAsB,IAAI,6BAC1B,oBAAoB,IAAI,2BACxB,sBAAsB,IAEtB,QAAS,YACT,eAAgB,OAChB,OAAQ,IAAI,2BACZ,UAAW,IAZb,QAaW,CACX,CAEA,CAhBC,mBAgBmB,CAAC,UACnB,iBAAkB,YAClB,SAAU,QACZ,CAEA,CArBC,mBAqBmB,CAAC,YACnB,OAAQ,IACV,CAGA,CAAC,wBAAwB,CAVJ,UAWnB,OAAQ,KACR,KAAM,EA5BR,OA6BU,EACR,WAAY,KA9Bd,QA+BW,EACT,MAAO,EACP,MAAO,IACT,CAEA,CApCC,mBAoCmB,CAAC,gBACnB,OAAQ,KACR,WAAY,YACZ,QAAS,MACT,KAAM,EACN,KAAM,QAzCR,OA0CU,EACR,UAAW,EACX,QAAS,KA5CX,QA6CW,CACX,CAEA,CAhDC,mBAgDmB,CAZC,eAYe,YAClC,iBAAkB,KAChB,+BAA+B,EAC/B,IAAI,sBAER,CAEA,CAvDC,kBAuDkB,QACjB,QAAS,KAAK,WACd,QAAS,MACT,UAAW,IAAI,6BACf,OAAQ,IACR,SAAU,OAEV,YAAa,QAEf,CChEA,CAAC,gBACC,uBAAuB,EACvB,0BAA0B,KAC1B,6BAA6B,KAC7B,qBAAqB,KACrB,oBAAoB,KAEpB,QAAS,KACT,eAAgB,IAChB,MAAO,YACP,aAAc,IAAI,qBAVpB,cAWiB,IACf,aAAc,IACd,aAAc,MACd,WAAY,KACZ,6BAA6B,MAC/B,CAEA,CAlBC,eAkBe,cACd,aAAc,IAAI,sBACpB,CAEA,CAAC,iBAAiB,CAtBjB,gBAAD,QAuBW,IAAI,IACb,IAAK,IACL,wBAAwB,KACxB,4BAA4B,KAC5B,4BAA4B,IAC9B,CAEA,CARC,iBAQiB,CA9BjB,gBA8BkC,CAAC,UA9BpC,QA+BW,EACT,WAAY,KACZ,OAAQ,IACV,CAEA,CApCC,gBAoCgB,CAAC,mBAChB,WAAY,KACZ,YAAa,EACb,UAAW,CACb,CAEA,CAAC,+BACC,QAAS,IACX,CAKA,CAjDC,gBAiDgB,CAAC,kBAClB,CAlDC,gBAkDgB,CAAC,2BAChB,QAAS,KACT,MAAO,IAAI,kCACb,CAEA,CAvDC,gBAuDgB,CAAC,eAAe,YAC/B,MAAO,IACT,CAEA,CAAC,UAAU,CAAC,SACV,oBAAoB,IACpB,oBAAoB,MA7DtB,cA8DiB,IACf,WAAY,EAAI,IAAI,IAAQ,KAC9B,CAEA,CAAC,YAAY,CAAC,mBAAqB,KAAK,CAAC,uBACvC,wBAAwB,IAAI,+BAC5B,MAAO,IAAI,8BACb,CAEA,CAAC,mBACC,OAAQ,KACR,WAAY,IACd,CAEA,CALC,mBAKmB,CAAC,cACnB,iBAAiB,KACjB,0BAA0B,KAC1B,mBAAmB,KACnB,OAAQ,KAhFV,OAiFU,CACV,CAEA,CAAC,6BApFD,QAqFW,EACT,OAAQ,IACV,CAEA,CAAC,2BACC,OAAQ,IACV,CC3FA,CAAC,kBACG,IAAK,IACT,CCFA,CAAC,cAEG,YAAa,OACb,WAAY,IAAI,4BAChB,OAAQ,MAAM,IAAI,IAAI,4BAJ1B,cAKmB,KACf,MAAO,IAAI,qBACX,QAAS,YACT,UAAW,IAAI,wBAAwB,EAAE,OAR7C,QASa,EAAE,IACX,SAAU,SACV,YAAa,KACb,QAAS,IACb,CAEA,CAfC,aAea,CAAC,eACX,OAAQ,IACZ,CAEA,CAnBC,aAmBa,CAAC,oBACX,0BAA0B,MAC1B,iCAAiC,IAAI,qBACrC,4BAA4B,IAAI,mCAChC,8BAA8B,IAAI,mCAClC,mBAAmB,IAAI,mCACvB,WAAY,IAAI,mCAChB,MAAO,IACX,CAEA,CA7BC,aA6Ba,KAAK,CAAC,oBAAsB,OACtC,0BAA0B,IAAI,qBAC9B,iBAAkB,IAAI,kCACtB,aAAc,IAAI,kCAClB,MAAO,IAAI,oBACf,CClCA,CAAC,aACC,gBAAgB,wtBAChB,qBAAqB,KACrB,sCAAsC,IAAI,uBAC1C,iCAAiC,EACjC,qBAAqB,KACrB,oBAAoB,KAEpB,YAAa,OACb,iBAAkB,IAAI,uCACtB,cAAe,MAAM,IAAI,QACzB,QAAS,KACT,KAAM,IAAI,qBACV,IAAK,IACL,OAAQ,KAdV,QAeW,EAAI,GACf,CAEA,CAAC,kBACC,QAAS,aACT,OAAQ,KACR,MAAO,IACT,CAEA,CAxBC,aAwBa,CAAC,gBACb,iBAAiB,KACjB,gBAAgB,IAAI,eACtB,CAEA,CA7BC,aA6Ba,CAAC,gBACb,iBAAiB,IACnB,CAEA,CAjCC,aAiCa,CAAC,WACb,KAAM,EAAE,EAAE,IACZ,CAEA,CAAC,oBACC,QAAS,KACT,eAAgB,IAChB,YAAa,OACb,IAAK,GACP,CCzCA,CAAC,WACG,8BAA8B,IAClC,CAEA,CAAC,kBACG,+BAA+B,KAC/B,0BAA0B,KAC1B,8BAA8B,IAClC,CAEA,CAAC,eACG,8BAA8B,IAAI,qCAClC,yBAAyB,IAAI,mCAC7B,8BAA8B,IAAI,8BAClC,4BAA4B,IAAI,sBAChC,+BAA+B,IAAI,qCACnC,uCAAuC,IAAI,iCAC3C,qCAAqC,IAAI,qCACzC,iCAAiC,IAAI,8BAA8B,IAAI,8BAA8B,IAAI,8BACzG,oCAAoC,IAAI,kCACxC,iDAAiD,IAAI,uCACrD,4CAA4C,IAAI,yBAChD,qCAAqC,KACrC,iCAAiC,IAAI,uBAErC,YAAa,OACb,aAAc,IAAI,wCAClB,aAAc,MAAM,KACpB,aAAc,IACd,WAAY,WACZ,QAAS,KACT,OAAQ,IAAI,wBAAwB,EAAE,KAC1C,CAEA,CAAC,sBACG,KAAM,EAAE,EAAE,KACV,OAAQ,IACZ,CAEA,CAAC,4BACD,CAAC,2BACG,iBAAiB,KACjB,oBAAoB,IAAI,6BAA6B,EAAE,KAC3D,CAEA,CAAC,gBACG,gDAAgD,IAAI,uCACpD,WAAY,IAAI,uCAChB,MAAO,IAAI,iCACf",
4
+ "sourcesContent": [".vuuFilterBuilderMenu {\n margin: 0; \n}\n\n.vuuFilterBuilderMenu-trigger {\n display: inline-block;\n height: 26px;\n width: 0px;\n}\n\n.vuuFilterBuilderMenuList {\n --vuuList-borderStyle: none; \n}\n\n \n .vuuListItem:has(.vuuMenuButton){\n justify-content: center;\n }\n\n .vuuMenuButton {\n background-color: white;\n border: solid 1px var(--salt-actionable-primary-foreground);\n border-radius: 6px;\n color: var(--vuu-color-gray-50);\n font-size: 9px;\n padding: 1px 6px;\n }\n\n", ".vuuExpandoCombobox {\n --expando-combobox-height: var(--vuuExpandoCombobox-height, 24px);\n --expando-combobox-fontSize: var(--vuuExpandoCombobox-fontSizew, 12px);\n\n --saltInput-outline: none;\n --saltInput-fontSize: var(--expando-combobox-fontSize);\n --saltInput-height: var(--expando-combobox-height);\n --saltInput-minWidth: 4px;\n\n display: inline-flex;\n flex-direction: column;\n height: var(--expando-combobox-height);\n min-width: 4px;\n padding: 0;\n}\n\n.vuuExpandoCombobox .saltInput {\n background-color: transparent;\n position: absolute;\n}\n\n.vuuExpandoCombobox .vuuDropdown {\n height: 100%;\n}\n\n/** double up the selector just to increase specificity, won't need when we use cascade layers */\n.vuuExpandoCombobox-Input.saltInput {\n border: none;\n left: 0px;\n margin: 0;\n min-height: 100%;\n padding: 0;\n right: 0px;\n width: auto;\n}\n\n.vuuExpandoCombobox .saltInput-input {\n border: none;\n box-sizing: content-box;\n display: block;\n flex: 1;\n font: inherit;\n margin: 0;\n min-width: 0;\n outline: none;\n padding: 0;\n}\n\n.vuuExpandoCombobox .saltInput-input::selection {\n background-color: var(\n --salt-text-background-selected,\n var(--vuu-color-blue-40)\n );\n}\n\n.vuuExpandoCombobox:before {\n content: attr(data-text);\n display: block;\n font-size: var(--expando-combobox-fontSize);\n height: 0px;\n overflow: hidden;\n /* visibility: hidden; */\n white-space: pre-wrap;\n /* position: absolute; */\n}\n", ".vuuFilterClause {\n --vuuExpandoInput-top: 0;\n --vuuExpandoInput-height: 16px;\n --vuuExpandoCombobox-height: 16px;\n --saltButton-height: 16px;\n --saltButton-width: 16px;\n\n display: flex;\n flex-direction: row;\n width: fit-content;\n border-color: var(--vuu-color-gray-45);\n border-radius: 6px;\n border-width: 1px;\n border-style: solid;\n background: #ffffff;\n --salt-focused-outlineStyle: dotted;\n}\n\n.vuuFilterClause:focus-within {\n border-color: var(--vuu-color-purple-10);\n}\n\n.vuu-density-high .vuuFilterClause {\n padding: 4px 8px;\n gap: 4px;\n --salt-text-lineHeight: 12px;\n --saltInputLegacy-fontSize: 12px;\n --saltInputLegacy-minWidth: 12px;\n}\n\n.vuu-density-high .vuuFilterClause .saltInput {\n padding: 0;\n min-height: 16px;\n height: 16px;\n}\n\n.vuuFilterClause .vuuExpandoCombobox {\n flex-basis: auto;\n flex-shrink: 0;\n flex-grow: 0;\n}\n\n.vuuFilterClauseOperator-hidden {\n display: none;\n}\n\n.vuuFilterClause :not(.vuuFilterClauseNumericValue) .saltInput {\n}\n\n.vuuFilterClause .saltInput-focused,\n.vuuFilterClause .saltTokenizedInput-focused {\n outline: none;\n color: var(--salt-content-primary-foreground);\n}\n\n.vuuFilterClause .saltInput-input::selection {\n color: #ffffff;\n}\n\n.vuu-theme .saltList {\n --list-borderWidth: 1px;\n --list-borderStyle: solid;\n border-radius: 4px;\n box-shadow: 0px 2px 3px 0px rgba(0, 0, 0, 0.4);\n}\n\n.saltListItem[aria-selected=\"true\"]:not(.saltListItem-checkbox) {\n --list-item-background: var(--list-item-background-active);\n color: var(--list-item-text-color-active);\n}\n\n.saltTokenizedInput {\n height: 16px;\n min-height: 16px;\n}\n\n.saltTokenizedInput .saltInputPill {\n --pill-fontSize: 12px;\n --saltButton-borderStyle: none;\n --pill-background: none;\n height: 16px;\n margin: 0;\n}\n\n.saltTokenizedInput-pillGroup {\n padding: 0;\n height: 16px;\n}\n\n.vuuFilterClause-DatePicker {\n border: none;\n}\n", ".vuuFilterPillMenu {\n top: -1px;\n}", ".vuuFilterPill {\n /* --vuuTooltip-background: var(--vuu-color-pink-10); */\n align-items: center;\n background: var(--salt-taggable-background);\n border: solid 1px var(--salt-taggable-foreground);\n border-radius: 24px;\n color: var(--vuu-color-gray-50);\n display: inline-flex;\n max-width: var(--vuuFilterPill-maxWidth, 200px);\n padding: 0 8px;\n position: relative;\n user-select: none;\n outline: none;\n}\n\n.vuuFilterPill.vuuToolbarItem {\n height: 24px;\n}\n\n.vuuFilterPill[aria-selected=\"true\"]{\n --vuuPopupMenu-iconColor: white;\n --salt-text-background-selected: var(--vuu-color-blue-40);\n --salt-text-color-selected: var(--salt-content-primary-foreground);\n --saltInput-background-hover: var(--salt-taggable-background-active);\n --saltInput-color: var(--salt-taggable-foreground-active);\n background: var(--salt-taggable-background-active);\n color: white;\n}\n\n.vuuFilterPill:not([aria-selected=\"true\"]):hover {\n --vuuPopupMenu-iconColor: var(--vuu-color-gray-80);\n background-color: var(--salt-taggable-background-hover);\n border-color: var(--salt-taggable-background-hover);\n color: var(--vuu-color-gray-80);\n}\n\n", ".vuuFilterBar {\n --vuu-svg-tune: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M3 18C3 18.55 3.45 19 4 19H9V17H4C3.45 17 3 17.45 3 18ZM3 6C3 6.55 3.45 7 4 7H13V5H4C3.45 5 3 5.45 3 6ZM13 20V19H20C20.55 19 21 18.55 21 18C21 17.45 20.55 17 20 17H13V16C13 15.45 12.55 15 12 15C11.45 15 11 15.45 11 16V20C11 20.55 11.45 21 12 21C12.55 21 13 20.55 13 20ZM7 10V11H4C3.45 11 3 11.45 3 12C3 12.55 3.45 13 4 13H7V14C7 14.55 7.45 15 8 15C8.55 15 9 14.55 9 14V10C9 9.45 8.55 9 8 9C7.45 9 7 9.45 7 10ZM21 12C21 11.45 20.55 11 20 11H11V13H20C20.55 13 21 12.55 21 12ZM16 9C16.55 9 17 8.55 17 8V7H20C20.55 7 21 6.55 21 6C21 5.45 20.55 5 20 5H17V4C17 3.45 16.55 3 16 3C15.45 3 15 3.45 15 4V8C15 8.55 15.45 9 16 9Z\" /></svg>');\n --vuuToolbar-height: 28px;\n --salt-container-primary-borderColor: var(--vuu-color-purple-10);\n --vuuOverflowContainer-minWidth: 0;\n --saltButton-height: 26px;\n --saltButton-width: 26px;\n\n align-items: center;\n background-color: var(--salt-container-secondary-background);\n border-color: var(--salt-container-primary-borderColor);\n border-style: var(--vuuFilterBar-borderStyle, none none solid none);\n border-width: 1px;\n display: flex;\n flex: var(--vuuFilterBar-flex);\n gap: 4px;\n height: 33px;\n padding: 0px 8px;\n}\n\n.vuuFilterbar-icon {\n display: inline-block;\n height: 16px;\n width: 16px;\n}\n\n.vuuFilterBar [data-icon=\"tune\"] {\n --vuu-icon-size: 16px;\n --vuu-icon-svg: var(--vuu-svg-tune);\n}\n\n.vuuFilterBar [data-icon=\"plus\"] {\n --vuu-icon-size: 16px;\n}\n\n.vuuFilterBar .vuuToolbar {\n flex: 0 1 auto;\n}\n\n.vuuFilterBar-Editor {\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 4px;\n}\n", "\n.salt-theme {\n --vuuFilterEditor-lineHeight: 28px;\n}\n\n.salt-density-high {\n --vuuFilterEditor-buttonWidth: 20px;\n --vuuFilterEditor-height: 22px;\n --vuuFilterEditor-lineHeight: 20px;\n}\n\n.vuuFilterInput {\n --vuuFilterEditor-background: var(--salt-container-primary-background);\n --vuuFilterEditor-color: var(--salt-content-primary-foreground);\n --vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);\n --vuuFilterEditor-fontSize: var(--salt-text-fontSize);\n --vuuFilterEditor-cursorColor: var(--salt-content-secondary-foreground);\n --vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);\n --vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);\n --vuuFilterEditor-tooltipBorder: var(--tooltip-status-borderColor) var(--salt-container-borderWidth) var(--salt-container-borderStyle); \n --vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);\n --vuuFilterEditor-suggestion-selectedBackground: var(--salt-selectable-background-selected);\n --vuuFilterEditor-suggestion-selectedColor: var(--vuuFilterEditor-color);\n --vuuFilterEditor-suggestion-height: 24px;\n --vuuFilterEditor-variableColor: var(--vuu-color_purple-10);\n\n align-items: center;\n border-color: var(--salt-container-secondary-borderColor);\n border-style: solid none;\n border-width: 1px;\n box-sizing: border-box;\n display: flex;\n height: var(--vuuFilterEditor-height, 30px);\n}\n\n.vuuFilterInput-Editor {\n flex: 1 1 auto;\n height: 100%;\n}\n\n.vuuFilterInput-FilterButton,\n.vuuFilterInput-ClearButton {\n --vuu-icon-size: 12px;\n --saltButton-width: var(--vuuFilterEditor-buttonWidth, 28px);\n}\n\n.vuuIllustration {\n --vuuFilterEditor-suggestion-selectedBackground:var(--salt-container-secondary-background);\n background: var(--salt-container-secondary-background);\n color: var(--salt-text-secondary-foreground);\n}\n\n\n"],
5
+ "mappings": "AAAA,CAAC,qBAAD,OACY,CACZ,CAEA,CAAC,6BACG,QAAS,aACT,OAAQ,KACR,MAAO,GACX,CAEA,CAAC,yBACG,uBAAuB,IAC3B,CAGE,CAAC,WAAW,KAAK,CAAC,eAChB,gBAAiB,MACnB,CAEA,CAJkB,cAKhB,iBAAkB,KAClB,OAAQ,MAAM,IAAI,IAAI,sCArB1B,cAsBmB,IACf,MAAO,IAAI,qBACX,UAAW,IAxBf,QAyBa,IAAI,GACf,CC1BF,CAAC,mBACC,2BAA2B,IAAI,2BAA2B,EAAE,MAC5D,6BAA6B,IAAI,8BAA8B,EAAE,MAEjE,qBAAqB,KACrB,sBAAsB,IAAI,6BAC1B,oBAAoB,IAAI,2BACxB,sBAAsB,IAEtB,QAAS,YACT,eAAgB,OAChB,OAAQ,IAAI,2BACZ,UAAW,IAZb,QAaW,CACX,CAEA,CAhBC,mBAgBmB,CAAC,UACnB,iBAAkB,YAClB,SAAU,QACZ,CAEA,CArBC,mBAqBmB,CAAC,YACnB,OAAQ,IACV,CAGA,CAAC,wBAAwB,CAVJ,UAWnB,OAAQ,KACR,KAAM,EA5BR,OA6BU,EACR,WAAY,KA9Bd,QA+BW,EACT,MAAO,EACP,MAAO,IACT,CAEA,CApCC,mBAoCmB,CAAC,gBACnB,OAAQ,KACR,WAAY,YACZ,QAAS,MACT,KAAM,EACN,KAAM,QAzCR,OA0CU,EACR,UAAW,EACX,QAAS,KA5CX,QA6CW,CACX,CAEA,CAhDC,mBAgDmB,CAZC,eAYe,YAClC,iBAAkB,KAChB,+BAA+B,EAC/B,IAAI,sBAER,CAEA,CAvDC,kBAuDkB,QACjB,QAAS,KAAK,WACd,QAAS,MACT,UAAW,IAAI,6BACf,OAAQ,IACR,SAAU,OAEV,YAAa,QAEf,CChEA,CAAC,gBACC,uBAAuB,EACvB,0BAA0B,KAC1B,6BAA6B,KAC7B,qBAAqB,KACrB,oBAAoB,KAEpB,QAAS,KACT,eAAgB,IAChB,MAAO,YACP,aAAc,IAAI,qBAVpB,cAWiB,IACf,aAAc,IACd,aAAc,MACd,WAAY,KACZ,6BAA6B,MAC/B,CAEA,CAlBC,eAkBe,cACd,aAAc,IAAI,sBACpB,CAEA,CAAC,iBAAiB,CAtBjB,gBAAD,QAuBW,IAAI,IACb,IAAK,IACL,wBAAwB,KACxB,4BAA4B,KAC5B,4BAA4B,IAC9B,CAEA,CARC,iBAQiB,CA9BjB,gBA8BkC,CAAC,UA9BpC,QA+BW,EACT,WAAY,KACZ,OAAQ,IACV,CAEA,CApCC,gBAoCgB,CAAC,mBAChB,WAAY,KACZ,YAAa,EACb,UAAW,CACb,CAEA,CAAC,+BACC,QAAS,IACX,CAKA,CAjDC,gBAiDgB,CAAC,kBAClB,CAlDC,gBAkDgB,CAAC,2BAChB,QAAS,KACT,MAAO,IAAI,kCACb,CAEA,CAvDC,gBAuDgB,CAAC,eAAe,YAC/B,MAAO,IACT,CAEA,CAAC,UAAU,CAAC,SACV,oBAAoB,IACpB,oBAAoB,MA7DtB,cA8DiB,IACf,WAAY,EAAI,IAAI,IAAQ,KAC9B,CAEA,CAAC,YAAY,CAAC,mBAAqB,KAAK,CAAC,uBACvC,wBAAwB,IAAI,+BAC5B,MAAO,IAAI,8BACb,CAEA,CAAC,mBACC,OAAQ,KACR,WAAY,IACd,CAEA,CALC,mBAKmB,CAAC,cACnB,iBAAiB,KACjB,0BAA0B,KAC1B,mBAAmB,KACnB,OAAQ,KAhFV,OAiFU,CACV,CAEA,CAAC,6BApFD,QAqFW,EACT,OAAQ,IACV,CAEA,CAAC,2BACC,OAAQ,IACV,CC3FA,CAAC,kBACG,IAAK,IACT,CCFA,CAAC,cAEG,YAAa,OACb,WAAY,IAAI,4BAChB,OAAQ,MAAM,IAAI,IAAI,4BAJ1B,cAKmB,KACf,MAAO,IAAI,qBACX,QAAS,YACT,UAAW,IAAI,wBAAwB,EAAE,OAR7C,QASa,EAAE,IACX,SAAU,SACV,YAAa,KACb,QAAS,IACb,CAEA,CAfC,aAea,CAAC,eACX,OAAQ,IACZ,CAEA,CAnBC,aAmBa,CAAC,oBACX,0BAA0B,MAC1B,iCAAiC,IAAI,qBACrC,4BAA4B,IAAI,mCAChC,8BAA8B,IAAI,mCAClC,mBAAmB,IAAI,mCACvB,WAAY,IAAI,mCAChB,MAAO,IACX,CAEA,CA7BC,aA6Ba,KAAK,CAAC,oBAAsB,OACtC,0BAA0B,IAAI,qBAC9B,iBAAkB,IAAI,kCACtB,aAAc,IAAI,kCAClB,MAAO,IAAI,oBACf,CClCA,CAAC,aACC,gBAAgB,wtBAChB,qBAAqB,KACrB,sCAAsC,IAAI,uBAC1C,iCAAiC,EACjC,qBAAqB,KACrB,oBAAoB,KAEpB,YAAa,OACb,iBAAkB,IAAI,uCACtB,aAAc,IAAI,sCAClB,aAAc,IAAI,0BAA0B,EAAE,KAAK,KAAK,MAAM,MAC9D,aAAc,IACd,QAAS,KACT,KAAM,IAAI,qBACV,IAAK,IACL,OAAQ,KAhBV,QAiBW,EAAI,GACf,CAEA,CAAC,kBACC,QAAS,aACT,OAAQ,KACR,MAAO,IACT,CAEA,CA1BC,aA0Ba,CAAC,gBACb,iBAAiB,KACjB,gBAAgB,IAAI,eACtB,CAEA,CA/BC,aA+Ba,CAAC,gBACb,iBAAiB,IACnB,CAEA,CAnCC,aAmCa,CAAC,WACb,KAAM,EAAE,EAAE,IACZ,CAEA,CAAC,oBACC,QAAS,KACT,eAAgB,IAChB,YAAa,OACb,IAAK,GACP,CC3CA,CAAC,WACG,8BAA8B,IAClC,CAEA,CAAC,kBACG,+BAA+B,KAC/B,0BAA0B,KAC1B,8BAA8B,IAClC,CAEA,CAAC,eACG,8BAA8B,IAAI,qCAClC,yBAAyB,IAAI,mCAC7B,8BAA8B,IAAI,8BAClC,4BAA4B,IAAI,sBAChC,+BAA+B,IAAI,qCACnC,uCAAuC,IAAI,iCAC3C,qCAAqC,IAAI,qCACzC,iCAAiC,IAAI,8BAA8B,IAAI,8BAA8B,IAAI,8BACzG,oCAAoC,IAAI,kCACxC,iDAAiD,IAAI,uCACrD,4CAA4C,IAAI,yBAChD,qCAAqC,KACrC,iCAAiC,IAAI,uBAErC,YAAa,OACb,aAAc,IAAI,wCAClB,aAAc,MAAM,KACpB,aAAc,IACd,WAAY,WACZ,QAAS,KACT,OAAQ,IAAI,wBAAwB,EAAE,KAC1C,CAEA,CAAC,sBACG,KAAM,EAAE,EAAE,KACV,OAAQ,IACZ,CAEA,CAAC,4BACD,CAAC,2BACG,iBAAiB,KACjB,oBAAoB,IAAI,6BAA6B,EAAE,KAC3D,CAEA,CAAC,gBACG,gDAAgD,IAAI,uCACpD,WAAY,IAAI,uCAChB,MAAO,IAAI,iCACf",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,21 +1,21 @@
1
1
  {
2
2
  "name": "@vuu-ui/vuu-filters",
3
- "version": "0.8.26",
3
+ "version": "0.8.27",
4
4
  "author": "heswell",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "devDependencies": {
8
- "@vuu-ui/vuu-data-types": "0.8.26",
9
- "@vuu-ui/vuu-table-types": "0.8.26",
10
- "@vuu-ui/vuu-filter-types": "0.8.26",
8
+ "@vuu-ui/vuu-data-types": "0.8.27",
9
+ "@vuu-ui/vuu-table-types": "0.8.27",
10
+ "@vuu-ui/vuu-filter-types": "0.8.27",
11
11
  "@types/uuid": "^9.0.2"
12
12
  },
13
13
  "dependencies": {
14
- "@vuu-ui/vuu-codemirror": "0.8.26",
15
- "@vuu-ui/vuu-data-react": "0.8.26",
16
- "@vuu-ui/vuu-popups": "0.8.26",
17
- "@vuu-ui/vuu-ui-controls": "0.8.26",
18
- "@vuu-ui/vuu-utils": "0.8.26",
14
+ "@vuu-ui/vuu-codemirror": "0.8.27",
15
+ "@vuu-ui/vuu-data-react": "0.8.27",
16
+ "@vuu-ui/vuu-popups": "0.8.27",
17
+ "@vuu-ui/vuu-ui-controls": "0.8.27",
18
+ "@vuu-ui/vuu-utils": "0.8.27",
19
19
  "@salt-ds/core": "1.17.0",
20
20
  "uuid": "9.0.0"
21
21
  },