@vuu-ui/vuu-filters 0.8.29 → 0.8.30
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 +1 -1
- package/cjs/index.js.map +4 -4
- package/esm/index.js +1 -1
- package/esm/index.js.map +4 -4
- package/package.json +9 -9
- package/types/index.d.ts +0 -1
- package/types/local-config.d.ts +0 -3
- package/types/use-filter-config.d.ts +0 -12
- package/types/use-rest-config.d.ts +0 -11
package/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Mt=Object.defineProperty;var Jn=Object.getOwnPropertyDescriptor;var Kn=Object.getOwnPropertyNames;var Zn=Object.prototype.hasOwnProperty;var Gn=(r,e)=>{for(var t in e)Mt(r,t,{get:e[t],enumerable:!0})},jn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Kn(e))!Zn.call(r,i)&&i!==t&&Mt(r,i,{get:()=>e[i],enumerable:!(n=Jn(e,i))||n.enumerable});return r};var Xn=r=>jn(Mt({},"__esModule",{value:!0}),r);var hr=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var w=(r,e,t)=>(hr(r,e,"read from private field"),t?t.call(r):e.get(r)),Ce=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Y=(r,e,t,n)=>(hr(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);var vs={};Gn(vs,{AND:()=>K,ENDS_WITH:()=>Ei,EQUALS:()=>ut,ExpandoCombobox:()=>ve,FilterBar:()=>Yi,FilterClause:()=>Nt,FilterClauseModel:()=>Qe,FilterClauseValueEditorText:()=>Tt,FilterEditor:()=>Rt,FilterInput:()=>ss,FilterModel:()=>$e,FilterPill:()=>Qt,GREATER_THAN:()=>$i,IN:()=>nn,LESS_THAN:()=>wi,OR:()=>rn,STARTS_WITH:()=>Lt,addClause:()=>Mi,addFilter:()=>Pi,filterClauses:()=>ft,filterEquals:()=>ct,filterIncludesColumn:()=>an,getAllLocalEntity:()=>bs,getLocalEntity:()=>ys,getNumericFilter:()=>Hi,getTypeaheadFilter:()=>Ri,overrideColName:()=>on,removeFilter:()=>Ai,removeLastClause:()=>ki,saveLocalEntity:()=>Cs,splitFilterOnColumn:()=>Ni,updateFilter:()=>un,useCodeMirrorEditor:()=>cr,useFilterSuggestionProvider:()=>gs});module.exports=Xn(vs);var ae=require("@vuu-ui/vuu-utils");var ei=({values:r})=>Array.isArray(r)&&r.length>0,_e=r=>{if(r.op===void 0||r.column===void 0)return!1;if((0,ae.isMultiValueFilter)(r))return ei(r);if((0,ae.isSingleValueFilter)(r))return r.value!==void 0&&r.value!=="";throw Error("isValidFilterClause should never reach this far")},dr=r=>r===void 0?!1:(0,ae.isMultiClauseFilter)(r)?r.filters.every(dr):_e(r),ti=r=>r.isMultiClauseFilter?r.filterClauses.every(e=>e.isValid):r.filterClauses.length===1&&r.filterClauses[0].isValid,R,fe,Qe=class extends ae.EventEmitter{constructor(t){super();Ce(this,R,void 0);Ce(this,fe,void 0);Y(this,R,t),Y(this,fe,_e(t))}get isValid(){return w(this,fe)}setIsValid(t){Y(this,fe,t),this.emit("isValid",t)}get column(){return w(this,R).column}set column(t){Y(this,R,{column:t});let n=_e(w(this,R));this.emit("filterClause",w(this,R),n),n!==w(this,fe)&&this.setIsValid(n)}get op(){return w(this,R).op}setOp(t){Y(this,R,{...w(this,R),op:t});let n=_e(w(this,R));this.emit("filterClause",w(this,R),n),n!==w(this,fe)&&this.setIsValid(n)}setValue(t,n=!0){console.log(`setValue ${t} isFinal(${n})`),(0,ae.isSingleValueFilter)(w(this,R))?Y(this,R,{...w(this,R),value:t}):Array.isArray(t)&&Y(this,R,{...w(this,R),values:t});let i=_e(w(this,R));i!==w(this,fe)&&this.setIsValid(i),n&&this.emit("filterClause",w(this,R),i)}asFilter(t=!0){if(t&&!w(this,fe))throw Error("Invalid filter model cannot be returned as Filter");return w(this,R)}};R=new WeakMap,fe=new WeakMap;var he,oe,z,$e=class extends ae.EventEmitter{constructor(t){super();Ce(this,he,[]);Ce(this,oe,void 0);Ce(this,z,void 0);this.onFilterClauseChange=()=>{this.emit("filter",this.asFilter(!1),w(this,oe))};this.onFilterClauseStatusChange=t=>{!t&&w(this,oe)?this.setIsValid(!1):this.checkValidStatus()};(0,ae.isMultiClauseFilter)(t)?(Y(this,z,t.op),t.filters.forEach(n=>this.addFilterClause(n))):t?this.addFilterClause(t):this.addNewFilterClause(),Y(this,oe,dr(t))}get isValid(){return w(this,oe)}setIsValid(t){Y(this,oe,t),this.emit("isValid",t)}addNewFilterClause(t){let n=w(this,he).length;if(!t&&!w(this,z)&&n===1)Y(this,z,"and");else if(t&&!w(this,z)&&n===1)Y(this,z,t);else if(t&&w(this,z)&&t!==w(this,z))throw Error("FilterModel: use setOp to change the Filter combinator operator");let i=new Qe({});i.on("isValid",this.onFilterClauseStatusChange),i.on("filterClause",this.onFilterClauseChange),w(this,he).push(i),this.setIsValid(!1)}addFilterClause(t={}){let n=new Qe(t);n.on("isValid",this.onFilterClauseStatusChange),n.on("filterClause",this.onFilterClauseChange),w(this,he).push(n)}removeFilterClause(t){if(this.isMultiClauseFilter){let n=this.filterClauses.indexOf(t);n!==-1&&(this.filterClauses.splice(n,1),this.filterClauses.length===1&&Y(this,z,void 0),this.checkValidStatus())}}checkValidStatus(){let t=ti(this);t!==w(this,oe)&&this.setIsValid(t)}getFilterClause(t){return w(this,he)[t]}get op(){return w(this,z)}setOp(t){Y(this,z,t),this.emit("filter",this.asFilter(!1),w(this,oe))}get filterClauses(){return w(this,he)}get isMultiClauseFilter(){return w(this,z)==="and"||w(this,z)==="or"}asFilter(t=!0){if(t&&!w(this,oe))throw Error("Invalid filter model cannot be returned as Filter");return w(this,z)==="and"||w(this,z)==="or"?{op:w(this,z),filters:w(this,he).map(n=>n.asFilter(t))}:w(this,he)[0].asFilter(t)}};he=new WeakMap,oe=new WeakMap,z=new WeakMap;var Ne=require("@vuu-ui/vuu-popups"),Fn=require("@vuu-ui/vuu-ui-controls");function pr(r){var e,t,n="";if(typeof r=="string"||typeof r=="number")n+=r;else if(typeof r=="object")if(Array.isArray(r))for(e=0;e<r.length;e++)r[e]&&(t=pr(r[e]))&&(n&&(n+=" "),n+=t);else for(e in r)r[e]&&(n&&(n+=" "),n+=e);return n}function ri(){for(var r,e,t=0,n="";t<arguments.length;)(r=arguments[t++])&&(e=pr(r))&&(n&&(n+=" "),n+=e);return n}var V=ri;var Sn=require("react");var Kr=require("@vuu-ui/vuu-ui-controls");var Ur=require("react");var gr=require("@vuu-ui/vuu-utils"),yr=require("@vuu-ui/vuu-ui-controls");var ee=require("react");var Pt=require("react/jsx-runtime"),mr="vuuExpandoCombobox",ni={},ve=(0,ee.forwardRef)(function({className:e,InputProps:t=ni,ListProps:n,onInputChange:i,onSelectionChange:s,selectionStrategy:o,source:a,style:u,title:l,value:p="",...c},f){let[h,y]=(0,ee.useState)(p),{itemToString:b=gr.itemToString}=c,d=(0,ee.useRef)(p),v=(0,ee.useCallback)(m=>{let[g,...k]=m;return k.length?`${b(g)} + ${k.length}`:b(g)},[b]),C=(0,ee.useCallback)(m=>{let{value:g}=m.target;y(g),i==null||i(m)},[i]),E=(0,ee.useCallback)(m=>{y(m)},[]),[S,M]=(0,ee.useMemo)(()=>{let{inputProps:m,...g}=t;return[{...g,className:`${mr}-Input`,endAdornment:null,inputProps:{...m,autoComplete:"off",onInput:C}},{...n,className:V("vuuMenuList",n==null?void 0:n.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:80,width:"content-width"}]},[t,C,n]),x=(0,ee.useCallback)((m,g)=>{Array.isArray(g)?s==null||s(null,g):g&&(y(b(g)),s==null||s(null,g))},[b,s]),$=()=>{if(d.current!==void 0)return Array.isArray(d.current)?a==null?void 0:a.filter(m=>d.current.includes(b(m))):a==null?void 0:a.find(m=>b(m)===d.current)},F={minWidth:"fit-content"};return(0,Pt.jsx)("div",{className:V(mr,e),"data-text":h,ref:f,style:u,children:(0,Pt.jsx)(yr.ComboBox,{...c,PopupProps:F,className:"vuuEmbedded",defaultSelected:$(),defaultValue:Array.isArray(d.current)?v(d.current):d.current,fullWidth:!0,ListProps:M,InputProps:S,itemsToString:v,onSelectionChange:x,onSetSelectedText:E,selectionStrategy:o,source:a})})});var we=require("react"),br=require("@vuu-ui/vuu-ui-controls"),nt=require("@vuu-ui/vuu-utils"),vr=require("react/jsx-runtime"),Cr=(0,we.forwardRef)(function({InputProps:e,className:t,"data-field":n,onChangeValue:i,value:s},o){let[a,u]=(0,we.useState)((0,nt.isValidNumber)(s)?s.toString():""),l=(0,we.useCallback)(c=>{let{value:f}=c.target,h=parseFloat(f);(0,nt.isValidNumber)(h)&&console.log("its valid"),u(f)},[]),p=(0,we.useCallback)(c=>{if(c.key==="Enter"||c.key==="Tab"){let{value:f}=c.target,h=parseFloat(f);(0,nt.isValidNumber)(h)&&i(h)}},[i]);return(0,vr.jsx)(br.ExpandoInput,{...e,className:t,"data-field":n,onChange:l,onKeyDown:p,ref:o,value:a})});var J=require("react"),Fr=require("@vuu-ui/vuu-data-react"),Sr=require("@vuu-ui/vuu-ui-controls");var Ue=require("react/jsx-runtime"),ii=["Enter"," "],si=r=>{if(r.session){let{module:e,session:t}=r;return{module:e,table:t}}else return r},xr=["No matching data"],Tt=(0,J.forwardRef)(function({InputProps:e={},className:t,column:n,"data-field":i,onDeselect:s,onChangeValue:o,operator:a,suggestionProvider:u=Fr.useTypeaheadSuggestions,table:l,value:p},c){var F;let f=a==="in",[h,y]=(0,J.useState)((F=p==null?void 0:p.toString())!=null?F:""),[b,d]=(0,J.useState)([]),v=u(),C=(0,J.useCallback)((m,g)=>o(g),[o]),E=(0,J.useCallback)((m,g)=>o(g),[o]);(0,J.useEffect)(()=>{if(l){let m=si(l),g=h&&!f?[m,n.name,h]:[m,n.name];v(g).then(k=>{k.length===0&&h?d(xr):d(k)}).catch(k=>{console.error("Error getting suggestions",k)})}},[l,n,h,v,f]);let S=(0,J.useCallback)(m=>{let{value:g}=m.target;console.log(`handleInputChange "${g}"`),y(g),(a==="starts"||a==="ends")&&o(g,!1)},[o,a]),M=(0,J.useCallback)(m=>{var g,k;console.log(`handleKeyDownFreeTextInput ${h}`),(m.key==="Enter"||m.key==="Tab")&&h!==""?(m.stopPropagation(),m.preventDefault(),console.log(`call onInputComplete ${h}`),o(h)):(k=(g=e==null?void 0:e.inputProps)==null?void 0:g.onKeyDown)==null||k.call(g,m)},[e,o,h]),x=(0,J.useMemo)(()=>{if(a==="starts"||a==="ends"){let{inputProps:m,...g}=e;return{...g,inputProps:{...m,onKeyDown:M}}}else return e},[e,M,a]);return(0,J.useCallback)(()=>{switch(a){case"in":return(0,Ue.jsx)(ve,{InputProps:x,className:t,"data-field":i,initialHighlightedIndex:0,source:b,onInputChange:S,onSelectionChange:E,ref:c,selectionStrategy:"multiple",selectionKeys:ii,value:p});case"starts":return(0,Ue.jsx)(ve,{InputProps:x,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowEnterCommitsText:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,disableFilter:b===xr&&(h==null?void 0:h.length)>0,source:b,onInputChange:S,onSelectionChange:C,ref:c,value:p});case"ends":return(0,Ue.jsx)(Sr.ExpandoInput,{...x,className:t,"data-field":i,value:h,ref:c,onChange:S});default:return b.length>0?(0,Ue.jsx)(ve,{InputProps:x,allowBackspaceClearsSelection:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,source:b,title:"value",onInputChange:S,onDeselect:s,onSelectionChange:C,ref:c,value:p}):null}},[x,a,t,i,b,S,E,c,p,h,s,C])()});var Pr=require("@vuu-ui/vuu-utils");var Te=require("react");var Ot=null;function $r(){return Ot==null&&(Ot=new Intl.DateTimeFormat().resolvedOptions().timeZone),Ot}var oi=["hours","minutes","seconds"],js=["years","months","weeks","days",...oi];var wr=1080,ai=24*wr,li=29,ui=12*wr+793,Xs=li*ai+ui;var Er=require("@vuu-ui/vuu-ui-controls"),it=require("@vuu-ui/vuu-utils"),Mr=require("react/jsx-runtime"),kr=r=>{let{InputProps:e,className:t,onChangeValue:n,operator:i,value:s}=r,o=fi(i),[a,u]=(0,Te.useState)(()=>ci(s)),l=(0,Te.useCallback)((f,h)=>{u(f),f&&h==="calendar"&&n(o(f))},[n,o]),p=(0,Te.useCallback)(()=>{a&&n(o(a))},[a,n,o]),c=(0,Te.useCallback)(f=>{f.key==="Enter"?a&&(0,it.queryClosest)(f.target,".vuuDatePopup")===null&&n(o(a)):f.key==="Tab"&&console.log("better handle tab")},[a,n,o]);return(0,Mr.jsx)(Er.DateInput,{inputProps:e==null?void 0:e.inputProps,className:V("vuuFilterClause-DatePicker",t),selectedDate:a,onBlur:p,onChange:l,onKeyDown:c})};function ci(r){return r?(0,it.toCalendarDate)(new Date(r)):void 0}var fi=r=>(e,t=$r())=>{let n=e.toDate(t);switch(r){case">":case"<=":return n.setHours(23,59,59,999),n.getTime();case">=":case"<":case"=":case"!=":return n.setHours(0,0,0,0),n.getTime()}};var st=require("react/jsx-runtime"),Oe="vuuFilterClause",Tr=({selectedColumn:r,operator:e,InputProps:t,onChangeValue:n,onDeselectValue:i,suggestionProvider:s,table:o,value:a})=>{if(r===void 0||e===void 0)return null;if((0,Pr.isDateTimeColumn)(r))return console.log("return DateInput"),(0,st.jsx)(kr,{InputProps:t,className:V(`${Oe}Field`,`${Oe}Value`),"data-field":"value",value:a,operator:e,onChangeValue:n});switch(r.serverDataType){case"string":case"char":return(0,st.jsx)(Tt,{InputProps:t,className:V(`${Oe}Field`,`${Oe}Value`),column:r,"data-field":"value",onDeselect:i,onChangeValue:n,operator:e,suggestionProvider:s,table:o,value:a});case"int":case"long":case"double":return(0,st.jsx)(Cr,{InputProps:t,className:V(`${Oe}Field`,`${Oe}Value`),column:r,"data-field":"value",onChangeValue:n,operator:e});default:return console.log("returning null"),null}};var ot=require("@vuu-ui/vuu-utils"),hi=["=","in","!=","starts","ends"],di=["=","!=",">",">=","<","<="],Or=r=>{if((0,ot.isTextColumn)(r))return hi;if((0,ot.isNumericColumn)(r))return di;throw Error("getOperators only supports text and numeric columns")};var _r=require("@vuu-ui/vuu-utils"),W=require("react");var De=require("@vuu-ui/vuu-utils"),xe=r=>r==null?void 0:r.closest(".vuuFilterClause"),Ir=r=>r==null?void 0:r.closest(".vuuFilterClauseField"),pi={column:"vuuFilterClauseColumn",operator:"vuuFilterClauseOperator",value:"vuuFilterClauseValue"},mi=({classList:r})=>{if(r.contains("vuuFilterClauseColumn"))return"column";if(r.contains("vuuFilterClauseOperator"))return"operator";if(r.contains("vuuFilterClauseValue"))return"value";throw Error("getFilterClauseField, filterClauseElemnent is missing required class name")},Ar=()=>{let r=document.activeElement,e=(0,De.queryClosest)(r,".vuuFilterClauseField"),t=(0,De.queryClosest)(e,".vuuFilterClause");return t&&e?[(0,De.getElementDataIndex)(t),mi(e)]:[]},ge=r=>{let e=r==null?void 0:r.querySelector("input");e&&(e.focus(),requestAnimationFrame(()=>{e==null||e.select()}))},gi=r=>r!==null&&r.classList.contains("vuuFilterClauseCombinator"),Dt=r=>r!==null&&r.classList.contains("vuuFilterClause"),Nr=(r,e,t="value")=>{if(r){let n=pi[t],i=r.querySelector(`.vuuFilterClause[data-index="${e}"] .${n}`);ge(i)}},Br=r=>{console.log("focusLastClauseValue");let e=Array.from(r==null?void 0:r.querySelectorAll(".vuuFilterClauseField")).at(-1);ge(e)},Ye=(r="fwd")=>{var n;let e=Rr(),t=xe(e);if(r==="fwd"&&(t==null?void 0:t.lastChild)===e)requestAnimationFrame(()=>{Ye()});else{let i=r==="fwd"?e==null?void 0:e.nextElementSibling:e==null?void 0:e.previousElementSibling;(n=i==null?void 0:i.querySelector("input"))==null||n.focus()}},Rr=()=>{let r=document.activeElement;return r!=null&&r.classList.contains("vuuFilterClause-clearButton")?r:Ir(r)},It=()=>{let r=Rr(),e=xe(r);if(e&&r)if(r.classList.contains("vuuFilterClauseValue")){let t=e.querySelector(".vuuFilterClause-clearButton");t==null||t.focus()}else Ye()},yi=r=>r.selectionStart===0,bi=r=>r.selectionStart===r.value.length,Dr=r=>r!=null&&r.classList.contains("vuuFilterClauseColumn")?"column":r!=null&&r.classList.contains("vuuFilterClauseOperator")?"operator":"value",At=r=>{let e=xe(r);if(e)return(0,De.getElementDataIndex)(e)>0},Ci=r=>{let e=xe(r),t=e==null?void 0:e.nextElementSibling;return t==null?void 0:t.classList.contains("vuuFilterClauseCombinator")},Hr=r=>{let t=xe(r).previousSibling;console.log("tab to previous combinator"),t==null||t.focus()},at=(r,e="fwd")=>{if(e==="bwd")if(gi(r)){let t=r.previousElementSibling;if(Dt(t)){let n=t.querySelector(".vuuFilterClauseValue");console.log(`focus field Value ${n==null?void 0:n.classList}`),ge(n)}}else{let i=xe(r).previousSibling.querySelector(".vuuFilterClauseValue");ge(i)}else{let t=r.nextSibling;ge(t)}},Lr=r=>{let e=r.target,t=Ir(e);if(r.key==="ArrowLeft"){if(yi(e))if(Dr(t)==="column"){if(At(e)){let s=xe(t).previousElementSibling;s==null||s.focus()}}else r.preventDefault(),ge(t.previousSibling);r.stopPropagation()}else if(r.key==="ArrowRight"){if(bi(e))if(Dr(t)==="value"){if(Ci(e)){let s=xe(t).nextElementSibling;s==null||s.focus()}return}else r.preventDefault(),ge(t.nextSibling);r.stopPropagation()}},Vr=r=>{let e=Array.from(r.querySelectorAll(".vuuFilterClauseColumn input"));e.every(t=>t.value.length>0)&&setTimeout(()=>{let t=e.at(0);t==null||t.select(),t==null||t.focus()},100)};var Qr=({filterClauseModel:r,onCancel:e,columnsByName:t})=>{var b;let[n,i]=(0,W.useState)(r.isValid?r.asFilter():{});(0,W.useMemo)(()=>{r.on("filterClause",d=>{i(d)})},[r]);let s=(0,W.useRef)(null),o=(0,W.useRef)(null),a=(0,W.useCallback)(d=>{var C;let v=d.target;if(v.value===""){let E=v.closest("[data-field]");switch((C=E==null?void 0:E.dataset)==null?void 0:C.field){case"operator":{r.column=void 0,Ye("bwd");break}case"value":{r.setOp(void 0),Ye("bwd");break}case"column":At(v)&&(d.preventDefault(),e==null||e(r,"Backspace"))}}},[r,e]),u=(0,W.useCallback)((d,v)=>{var C;if((d==null?void 0:d.type)==="keydown"){let{key:E}=d;if(E==="Tab"){if(r.column===v.name)return;d.preventDefault()}}r.column=(C=v==null?void 0:v.name)!=null?C:void 0,setTimeout(()=>{It()},100)},[r]),l=(0,W.useCallback)((d,v)=>{let C=v;if(C===void 0||(0,_r.isValidFilterClauseOp)(C))r.setOp(C),It();else throw Error(`FilterClauseEditor, invalid value ${C} for filter clause`)},[r]),p=(0,W.useCallback)((d,v)=>r.setValue(d,v),[r]),c=(0,W.useCallback)(()=>r.setValue(void 0),[r]),f=(0,W.useCallback)(d=>{["ArrowLeft","ArrowRight"].includes(d.key)?Lr(d):d.key==="Backspace"?a(d):d.key==="Escape"?e==null||e(r,"Escape"):d.key==="Tab"&&d.shiftKey&&(d.preventDefault(),Hr(d.target))},[r,e,a]),h=(0,W.useCallback)(d=>{Dt(d.target)&&ge(d.target)},[]),y=(0,W.useMemo)(()=>({inputProps:{onKeyDownCapture:f,tabIndex:-1}}),[f]);return(0,W.useEffect)(()=>{r.column===void 0&&requestAnimationFrame(()=>{var v;let d=(v=s==null?void 0:s.current)==null?void 0:v.querySelector("input");d==null||d.focus()})},[r]),{InputProps:y,columnRef:s,filterClause:n,onChangeValue:p,onDeselectValue:c,onColumnSelect:u,onFocus:h,onOperatorSelect:l,operatorRef:o,selectedColumn:t[(b=n.column)!=null?b:""]}};var Ae=require("react/jsx-runtime"),Ie="vuuFilterClause",Nt=({className:r,columnsByName:e,onCancel:t,onDropdownClose:n,onDropdownOpen:i,filterClauseModel:s,suggestionProvider:o,tableSchema:a,...u})=>{var S,M;let{InputProps:l,columnRef:p,filterClause:c,onChangeValue:f,onColumnSelect:h,onFocus:y,onDeselectValue:b,onOperatorSelect:d,operatorRef:v,selectedColumn:C}=Qr({filterClauseModel:s,onCancel:t,columnsByName:e}),E=(0,Ur.useMemo)(()=>Object.values(e),[e]);return(0,Ae.jsxs)("div",{className:V(Ie,r),...u,onFocus:y,tabIndex:0,children:[(0,Ae.jsx)(ve,{InputProps:l,allowBackspaceClearsSelection:!0,className:V(`${Ie}Field`,`${Ie}Column`),"data-field":"column",initialHighlightedIndex:0,itemToString:x=>x.name,onListItemSelect:h,ref:p,source:E,title:"column",value:c.column},"column-field"),C!=null&&C.name?(0,Ae.jsx)(ve,{InputProps:l,allowBackspaceClearsSelection:!0,className:V(`${Ie}Field`,`${Ie}Operator`,{[`${Ie}Operator-hidden`]:C===null}),"data-field":"operator",initialHighlightedIndex:0,onListItemSelect:d,ref:v,source:Or(C),title:"operator",value:(S=c.op)!=null?S:""},"operator-field"):null,(0,Ae.jsx)(Tr,{InputProps:l,onChangeValue:f,onDeselectValue:b,operator:c.op,selectedColumn:C,suggestionProvider:o,table:a.table,value:(M=c==null?void 0:c.values)!=null?M:c==null?void 0:c.value},"value-field")]})};var Yr=require("@vuu-ui/vuu-ui-controls"),zr=require("react");var qr=require("react/jsx-runtime"),vi="vuuFilterClauseCombinator",Wr=({onChange:r,onKeyDown:e,operator:t})=>{let n=(0,zr.useCallback)(i=>{r(i)},[r]);return(0,qr.jsx)(Yr.CycleStateButton,{className:vi,onChange:n,onKeyDown:e,value:t,values:["and","or"],variant:"primary"})};var B=require("react");var Jr=({columnDescriptors:r,filter:e,onCancel:t,onSave:n})=>{let i=(0,B.useMemo)(()=>new $e(e),[e]),[s,o]=(0,B.useState)({}),[a,u]=(0,B.useState)(i.isValid),l=(0,B.useRef)(void 0),p=(0,B.useRef)(null),c=(0,B.useRef)(null),f=(0,B.useCallback)(F=>{c.current=F,F&&Vr(F)},[]),h=(0,B.useCallback)((F,m)=>{switch(l.current){case"and":return[{action:"and-clause",label:"AND",options:m}];case"or":return[{action:"or-clause",label:"OR",options:m}];default:return[{action:"and-clause",label:"AND",options:m},{action:"or-clause",label:"OR",options:m}]}},[]),y=(0,B.useMemo)(()=>xi(r),[r]),b=(0,B.useCallback)(F=>F!==void 0&&i.filterClauses.length===F+1,[i]);(0,B.useMemo)(()=>{let F=g=>{u(g)},m=(g,k)=>{if(k){let[L,I]=Ar();I==="value"&&b(L)&&requestAnimationFrame(()=>{var _;(_=p.current)==null||_.focus()})}};i.on("isValid",F),i.on("filter",m)},[i,b]);let d=(0,B.useCallback)((F,m)=>{if(m==="Backspace"){let g=i.filterClauses.indexOf(F);i.removeFilterClause(F),o({}),m==="Backspace"&&c.current&&g>0&&Nr(c.current,g-1)}else console.log(`cancel because of Escape valid clause ${F.isValid}`),t(e)},[e,i,t]),v=(0,B.useCallback)(({menuId:F})=>{switch(F){case"save":{let m=i.asFilter(),g=e!=null&&e.name?{...m,name:e.name}:m;return n(g),!0}case"and-clause":return l.current="and",i.addNewFilterClause("and"),!0;case"or-clause":return l.current="or",i.addNewFilterClause("or"),!0;default:return!1}},[e==null?void 0:e.name,i,n]),C=(0,B.useCallback)(F=>{if(F.key==="Tab"&&F.shiftKey){F.preventDefault();let g=F.target.closest(".vuuFilterEditor");Br(g)}else F.key==="Escape"&&t(e)},[e,t]),E=(0,B.useCallback)(F=>{let{target:m,key:g,shiftKey:k}=F;g==="ArrowLeft"?(F.preventDefault(),at(m,"bwd")):g==="ArrowRight"?(F.preventDefault(),at(m,"fwd")):g==="Tab"&&k&&(F.preventDefault(),at(m,"bwd"))},[]),S=(0,B.useMemo)(()=>()=>v({menuId:"save",options:{},type:"menu-action"}),[v]),M={PopupMenuProps:{icon:"more-vert",menuBuilder:h,menuActionHandler:v,menuLocation:"filter-save-menu"},onClick:S,onKeyDown:C},x=(0,B.useCallback)(F=>{i.setOp(F),l.current=F,o({})},[i]),$=(0,B.useCallback)(()=>{t(e)},[e,t]);return{columnsByName:y,filterModel:i,isValid:a,onCancelFilterClause:d,onCancelFilterEdit:$,onChangeFilterCombinator:x,onKeyDownCombinator:E,saveButtonProps:M,saveButtonRef:p,setContainer:f}};function xi(r){return r.reduce((e,t)=>({...e,[t.name]:t}),{})}var Zr=require("@salt-ds/core"),ze=require("react/jsx-runtime"),Bt=require("react"),Fi="vuuFilterEditor",Rt=({FilterClauseEditorProps:r,columnDescriptors:e,filter:t,onCancel:n,onSave:i,tableSchema:s,...o})=>{let{columnsByName:a,filterModel:u,setContainer:l,onCancelFilterClause:p,onCancelFilterEdit:c,onChangeFilterCombinator:f,onKeyDownCombinator:h,saveButtonRef:y,saveButtonProps:b}=Jr({columnDescriptors:e,filter:t,onCancel:n,onSave:i});return(0,ze.jsxs)("div",{...o,className:Fi,ref:l,children:[(()=>{let{op:v}=u,C=[];return u.filterClauses.forEach((E,S)=>{S>0&&v&&C.push((0,ze.jsx)(Wr,{onChange:f,onKeyDown:h,operator:v},`filter-operator-${S}`)),C.push((0,Bt.createElement)(Nt,{...r,columnsByName:a,"data-index":S,filterClauseModel:E,key:`editor-${S}`,onCancel:p,tableSchema:s}))}),C})(),(0,Bt.createElement)(Kr.SplitButton,{...b,disabled:!u.isValid,key:"save-button",ref:y},"Save"),(0,ze.jsx)(Zr.Button,{onClick:c,variant:"secondary",children:"Cancel"})]})};var ht=require("@vuu-ui/vuu-popups"),dt=require("@vuu-ui/vuu-ui-controls"),dn=require("@vuu-ui/vuu-utils");var de=require("react");var lt=require("@vuu-ui/vuu-utils");var Gr=require("@vuu-ui/vuu-utils"),Si=(r,e)=>{var n;let t=e==null?void 0:e[r.column];return t?(n=t.label)!=null?n:t.name:r.column},We=r=>e=>(0,Gr.isMultiClauseFilter)(e)?e.filters.map(t=>We(r)(t)).join(", "):Si(e,r);var qe=require("react/jsx-runtime"),Ht=(r,e=We())=>{if((0,lt.isMultiClauseFilter)(r)){let t=r.op==="and"?"Match all ...":"Match any ...";return(0,qe.jsxs)("ul",{children:[(0,qe.jsx)("span",{children:t}),r.filters.map((n,i)=>(0,qe.jsx)("li",{children:Ht(n,e)},i))]})}else if((0,lt.isMultiValueFilter)(r))if(r.values.length>3){let t=r.values.slice(0,3);return`${e({...r,values:t}).slice(0,-1)},...]`}else return e(r);else return e(r)};var jr=r=>({label:"Close",location:"filter",action:"close-filter",options:r}),Xr=r=>({label:"Delete",location:"filter",action:"delete-filter",options:r}),en=r=>({label:"Rename",location:"filter",action:"rename-filter",options:r}),tn=r=>({label:"Edit",location:"filter",action:"edit-filter",options:r});var te=require("@vuu-ui/vuu-utils");var D=require("@vuu-ui/vuu-utils"),K="and",ut="=",$i=">",wi="<",rn="or",Lt="starts",Ei="ends",nn="in",ft=(r,e=[])=>(r&&((0,D.isMultiClauseFilter)(r)?r.filters.forEach(t=>e.push(...ft(t))):e.push(r)),e),sn={combineWith:"and"},ki=r=>{let{filters:e}=r;return e.length>2?{...r,filters:r.filters.slice(0,-1)}:r.filters[0]},Mi=(r,e,{combineWith:t=K}=sn)=>(0,D.isMultiClauseFilter)(r)&&r.op===t?{...r,filters:r.filters.concat(e)}:{op:t,filters:[r,e]},Pi=(r,e,{combineWith:t=K}=sn)=>{var n;if(_t(e))(0,D.isMultiClauseFilter)(e)||(r=Vt(r,{name:e.column}));else if(Ti(e))return(0,D.isMultiClauseFilter)(e),Vt(r,{name:(n=e.column)!=null?n:""});if(!r)return e;if(!e)return r;if(r.op===K&&e.op===K)return{op:K,filters:Ii(r.filters,e.filters)};if(r.op===K){let i=Oi(r.filters,e);return i.length>1?{op:K,filters:i}:i[0]}return e.op===K?{op:K,filters:e.filters.concat(r)}:ct(r,e,!0)?e:ln(r,e)?Di(r,e):{op:t,filters:[r,e]}},_t=r=>r?(0,D.isInFilter)(r)&&r.values.length===0?!0:(0,D.isAndFilter)(r)&&r.filters.some(e=>_t(e)):!1,Ti=r=>r?r.op===Lt&&r.value===""?!0:r.op===Lt&&r.value==="":!1,Oi=(r,e)=>r.concat(e),Di=(r,e)=>_t(e)?e:(0,D.isInFilter)(r)&&(0,D.isInFilter)(e)?{...r,values:[...r.values,...e.values.filter(t=>!r.values.includes(t))]}:(0,D.isInFilter)(r)&&e.op===ut?{...r,values:r.values.concat([e.value])}:r.op===ut&&e.op===ut?{column:r.column,op:nn,values:[r.value,e.value]}:e,Ii=(r,e)=>{let t=({op:s},{op:o})=>s===o||s[0]===">"&&o[0]===">"||s[0]==="<"&&o[0]==="<",n=(s,o)=>s.column===o.column&&t(s,o),i=s=>e.some(o=>n(s,o))===!1;return r.filter(i).concat(e)},Ai=(r,e)=>{if(ct(r,e,!0))return null;if(r.op!==K)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(r)}`);let t=r.filters.filter(n=>!ct(n,e));return t.length>0?{type:K,filters:t}:null},Ni=(r,e)=>{if(!e)return[void 0,void 0];if(e.column===r)return[e,void 0];if(e.op!==K)return[void 0,e];let[[t=void 0],n]=(0,D.partition)(e.filters,i=>i.column===r);return n.length===1?[t,n[0]]:[t,{op:K,filters:n}]},on=(r,e)=>(0,D.isMultiClauseFilter)(r)?{op:r.op,filters:r.filters.map(t=>on(t,e))}:{...r,column:e},an=(r,e)=>{if(!r)return!1;let{op:t,column:n}=r;switch(t){case K:case rn:return r.filters!=null&&r.filters.some(i=>an(i,e));default:return n===e.name}},Vt=(r,e)=>{let t=e.name;if(r&&r.column!==t){if((0,D.isAndFilter)(r)||(0,D.isOrFilter)(r)){let{op:n}=r,s=r.filters.filter(o=>o.column!==t);switch(s.length){case 0:return;case 1:return s[0];default:return{op:n,filters:s}}}return r}},ln=(r,e)=>r.column===e.column&&(r.op==="="||r.op==="in")&&(e.op==="="||e.op==="in"),Bi=(r,e)=>{if(r===e)return!0;if(r.length===e.length){let t=r.slice().sort(),n=e.slice().sort();return t.join("|")===n.join("|")}return!1},ct=(r,e,t=!1)=>t?r&&e&&ln(r,e)?r.op===e.op&&((0,D.isSingleValueFilter)(r)&&(0,D.isSingleValueFilter)(e)&&r.value===e.value||(0,D.isMultiValueFilter)(r)&&(0,D.isMultiValueFilter)(e)&&Bi(r.values,e.values)):!1:!0,un=(r,e,t)=>{if(r&&e){if(t==="replace")return e;if(r.op==="and")return{...r,filters:r.filters.concat(e)};let{column:n}=e;if(n&&(e.column?(0,D.extractFilterForColumn)(r,n):void 0)&&n){let s=Vt(r,{name:n});return un(s,e,"add")}return{op:"and",filters:[r,e]}}return e||r},Ri=(r,e,t)=>{if(e.length!==0){if(t){let n=e[0].substring(0,e[0].length-3);return{column:r,op:"starts",value:`"${n}"`}}return{column:r,op:"in",values:e.map(n=>`"${n}"`)}}},Hi=(r,e,t)=>{if(e!==void 0&&!(t===void 0||isNaN(t)))return{column:r,op:e,value:t}};function Li(r,e){return"value"in r?{...r,value:e(r.value)}:{...r,values:r.values.map(e)}}function cn(r,e){let t=e==null?void 0:e[r.column];if(t&&(0,te.isDateTimeColumn)(t)){let n=(0,te.dateTimePattern)(t.type);return Li(r,s=>{var o;return(0,te.formatDate)({date:(o=n.date)!=null?o:te.defaultPatternsByType.date})(new Date(s))})}return r}var fn=r=>e=>{if((0,te.isMultiClauseFilter)(e)){let[t]=ft(e),n=cn(t,r);return`${(0,te.filterAsQuery)(n)} ${e.op} ...`}else return(0,te.filterAsQuery)(cn(e,r))};var Je=require("react/jsx-runtime"),hn="vuuFilterPill",Qt=({allowClose:r=!0,allowDelete:e=!0,allowEdit:t=!0,allowRename:n=!0,className:i,columnsByName:s,editable:o=!0,editing:a=!1,editLabelApiRef:u,filter:l,id:p,onBeginEdit:c,onExitEditMode:f,onMenuAction:h,...y})=>{let b=(0,de.useRef)(null),d=(0,de.useCallback)(()=>{c==null||c(l)},[l,c]),v=We(s),C=(0,de.useMemo)(()=>{var I;return(I=l.name)!=null?I:v(l)},[v,l]),E=fn(s),S=(0,dn.useId)(p),M=(0,de.useCallback)(I=>{(I==null?void 0:I.type)==="escape"&&requestAnimationFrame(()=>{b.current&&b.current.focus()})},[]),x=(0,de.useMemo)(()=>({icon:"more-vert",menuBuilder:(I,_)=>{let Q=[];return n&&Q.push(en(_)),t&&Q.push(tn(_)),r&&Q.push(jr(_)),e&&Q.push(Xr(_)),Q},menuActionHandler:h,menuLocation:"filter-pill-menu",menuOptions:{filter:l},onMenuClose:M}),[r,e,t,n,l,M,h]),$=(0,de.useCallback)((I,_)=>{f==null||f(I,_),requestAnimationFrame(()=>{var Q,Z;(Z=(Q=b.current)==null?void 0:Q.querySelector("button"))==null||Z.focus()})},[f]),{anchorProps:F,hideTooltip:m,showTooltip:g,tooltipProps:k}=(0,ht.useTooltip)({anchorQuery:".vuuFilterPill",id:S,placement:["above","below"],tooltipContent:Ht(l,E)}),L={onBlur:m,onFocus:(0,de.useCallback)(()=>{g(b)},[g])};return(0,Je.jsxs)(dt.SplitStateButton,{...F,...y,ButtonProps:L,PopupMenuProps:x,className:V(hn,i),"data-text":C,ref:b,children:[o&&f?(0,Je.jsx)(dt.EditableLabel,{defaultValue:C,editing:a,editLabelApiRef:u,onEnterEditMode:d,onExitEditMode:$},C):C,k&&(0,Je.jsx)(ht.Tooltip,{className:`${hn}-tooltip`,...k})]})};var pn=require("@vuu-ui/vuu-popups"),Ut=require("react/jsx-runtime"),mn=()=>(0,Ut.jsx)("div",{className:"vuuFilterBarMenu",children:(0,Ut.jsx)(pn.PopupMenu,{icon:"tune",menuLocation:"filter-bar-menu",tabIndex:-1})});var vn=require("@vuu-ui/vuu-ui-controls"),mt=require("@vuu-ui/vuu-utils"),N=require("react");var Ee=require("react"),gn=require("@vuu-ui/vuu-ui-controls"),Vi=(r,e,t)=>r.includes(e)?t?r.filter(i=>i!==e):[]:t?r.concat(e):[e],yn=({defaultFilterState:r,onFilterDeleted:e,onFilterRenamed:t,onFilterStateChanged:n,filterState:i})=>{let[s,o]=(0,gn.useControlled)({controlled:i,default:r!=null?r:{filters:[],activeIndices:[]},name:"useFilterState",state:"FilterState"}),a=(0,Ee.useCallback)(h=>{o(h),n==null||n(h)},[n,o]),u=(0,Ee.useCallback)(h=>{let y=s.filters.length,b=s.filters.concat(h),d=_i(s.activeIndices,y);return a({filters:b,activeIndices:d}),y},[s,a]),l=(0,Ee.useCallback)(h=>{let y=-1,b=s.filters.filter((v,C)=>v!==h?!0:(y=C,!1)),d=Qi(s.activeIndices,y);return a({filters:b,activeIndices:d}),e==null||e(h),y},[s.filters,s.activeIndices,a,e]),p=(0,Ee.useCallback)((h,y)=>{let b=-1,d=s.filters.map((v,C)=>v===h?(b=C,{...h,name:y}):v);return a({...s,filters:d}),t==null||t(h,y),b},[s,a,t]),c=(0,Ee.useCallback)((h,y)=>{let b=-1,d=s.filters.map((v,C)=>v===h?(b=C,y):v);return a({...s,filters:d}),b},[s,a]),f=(0,Ee.useCallback)((h,y=!1)=>{a({...s,activeIndices:Vi(s.activeIndices,h,y)})},[s,a]);return{activeFilterIndex:s.activeIndices,filters:s.filters,onToggleFilterActive:f,onAddFilter:u,onChangeFilter:c,onDeleteFilter:l,onRenameFilter:p}},_i=(r,e)=>r.includes(e)?r:r.concat(e),Qi=(r,e)=>r.reduce((t,n)=>n===e?t:t.concat(n>e?n-1:n),[]);var pt=require("react"),bn=require("@vuu-ui/vuu-utils");function Cn({activeFilterIndex:r,columnsByName:e,filters:t,onApplyFilter:n}){let i=(0,pt.useCallback)(s=>{let o=s?(0,bn.filterAsQuery)(s,{columnsByName:e}):"";n({filter:o,filterStruct:s})},[e,n]);(0,pt.useEffect)(()=>{let s=r.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})},[r,i,t])}var pe=require("@vuu-ui/vuu-utils"),Yt=(r,e="fwd")=>{let t=(0,pe.queryClosest)(r,".vuuFilterPill");if(t){let n=(0,pe.getElementDataIndex)(t);if(typeof n=="number"){let i=e==="fwd"?(0,pe.getElementByDataIndex)(t.parentElement,n+1):(0,pe.getElementByDataIndex)(t.parentElement,n-1);if(i)i.focus();else if(e==="fwd"){console.log("to the button");let s=(0,pe.queryClosest)(r,".vuuFilterBar"),o=s==null?void 0:s.querySelector(".vuuFilterBar-add");o==null||o.focus()}}}else if((0,pe.queryClosest)(r,".vuuFilterBar-add")){let i=(0,pe.queryClosest)(r,".vuuFilterBar"),s=i==null?void 0:i.querySelector(".vuuFilterPill:last-child");s==null||s.focus()}};var xn=({columnDescriptors:r,containerRef:e,defaultFilterState:t,filterState:n,onApplyFilter:i,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a})=>{let u=(0,N.useRef)(null),[l,p]=(0,N.useState)(),[c,f]=(0,N.useState)(null),h=(0,N.useRef)(vn.NullEditAPI),y=(0,N.useMemo)(()=>Ui(r),[r]),{activeFilterIndex:b,filters:d,onAddFilter:v,onChangeFilter:C,onDeleteFilter:E,onRenameFilter:S,onToggleFilterActive:M}=yn({defaultFilterState:t,filterState:n,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a});Cn({activeFilterIndex:b,columnsByName:y,filters:d,onApplyFilter:i});let x=(0,N.useCallback)((P,T)=>{setTimeout(()=>{p({filter:T,index:P,state:"rename"})},100)},[]),$=(0,N.useCallback)((P=0)=>{requestAnimationFrame(()=>{var A;let T=(A=e.current)==null?void 0:A.querySelector(`.vuuFilterPill[data-index="${P}"] button`);T&&T.focus()})},[e]),F=(0,N.useCallback)(P=>{E(P),requestAnimationFrame(()=>{d.length&&$(0)})},[d.length,$,E]),m=(0,N.useMemo)(()=>P=>{let T=()=>{f(null),$()};return{confirmButtonLabel:"Remove",icon:"warn-triangle",onCancel:T,onClose:T,onConfirm:()=>{f(null),F(P)},text:`Are you sure you want to delete ${P.name}`,title:"Remove Filter",variant:"warn"}},[F,$]),g=(0,N.useCallback)((P,T)=>{T?f(m(P)):F(P)},[F,m]),k=(0,N.useCallback)((P,T="")=>{if((l==null?void 0:l.state)==="rename"&&l.filter){let{filter:A}=l,Ve=S(A,T);p(void 0),$(Ve)}p(void 0)},[$,l,S]),L=(0,N.useCallback)(({menuId:P,options:T})=>{switch(P){case"delete-filter":{let{filter:A}=T;return g(A,!0),!0}case"rename-filter":{let{filter:A}=T,Ve=d.indexOf(A);return x(Ve,A),!0}case"edit-filter":{let{filter:A}=T;return p({filter:A,index:d.indexOf(A),state:"edit"}),!0}default:return!1}},[g,x,d]),I=(0,N.useCallback)(P=>{(P.key==="ArrowRight"||P.key==="ArrowLeft")&&Yt(P.target,P.key==="ArrowLeft"?"bwd":"fwd")},[]),_=(0,N.useCallback)((P,T)=>{if(T===void 0){let A=v(P);$(A),x(A,P)}else{let A=C(T,P);$(A)}},[x,$,v,C]),Q=(0,N.useCallback)(P=>{if(l){let{filter:T}=l;p(void 0),_(P,T)}},[_,l]),Z=(0,N.useCallback)(P=>{if(!P.target.querySelector(".vuuEditableLabel-editing")){let A=(0,mt.queryClosest)(P.target,".vuuFilterPill");if(A){let Ve=(0,mt.getElementDataIndex)(A);M(Ve,P.shiftKey)}}},[M]),rt={editLabelApiRef:h,onClick:Z,onKeyDown:I,onMenuAction:L,onExitEditMode:k},ce=(0,N.useCallback)(()=>{p({index:-1,state:"create"})},[]),X=(0,N.useCallback)(P=>{P.key==="ArrowLeft"&&Yt(P.target,"bwd")},[]),se=(0,N.useCallback)(()=>{var P;if(l){let{index:T}=l;T===-1?(P=u.current)==null||P.focus():$(T),p(void 0)}},[$,l]);return{activeFilterIndex:b,addButtonProps:{ref:u,onClick:ce,onKeyDown:X},columnsByName:y,filters:d,interactedFilterState:l,onCancelEdit:se,onSave:Q,pillProps:rt,promptProps:c}};function Ui(r){return r.reduce((e,t)=>({...e,[t.name]:t}),{})}var re=require("react/jsx-runtime"),Wt=require("react"),zt="vuuFilterBar",Yi=({FilterClauseEditorProps:r,className:e,columnDescriptors:t,defaultFilterState:n,filterState:i,onApplyFilter:s,onFilterDeleted:o,onFilterRenamed:a,onFilterStateChanged:u,tableSchema:l,...p})=>{let c=(0,Sn.useRef)(null),{activeFilterIndex:f,addButtonProps:h,columnsByName:y,filters:b,interactedFilterState:d,onCancelEdit:v,onSave:C,pillProps:E,promptProps:S}=xn({containerRef:c,columnDescriptors:t,defaultFilterState:n,filterState:i,onApplyFilter:s,onFilterStateChanged:u,onFilterDeleted:o,onFilterRenamed:a}),M=V(zt,e),x=(d==null?void 0:d.state)==="rename"?d.index:-1,$=(d==null?void 0:d.state)==="edit"||(d==null?void 0:d.state)==="create"?new $e(d.filter):void 0,F=()=>{let m=[];return b.forEach((g,k)=>{m.push((0,Wt.createElement)(Qt,{...E,editing:x===k,columnsByName:y,"data-index":k,filter:g,key:`filter-${k}`,selected:f.includes(k)}))}),m};return(0,re.jsxs)("div",{...p,className:M,ref:c,children:[(0,re.jsx)(mn,{}),(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)("div",{className:`${zt}-filters`,children:F()}),(0,Wt.createElement)(Fn.IconButton,{...h,className:V("vuuIconButton",`${zt}-add`),"data-selectable":!1,icon:"plus",key:"filter-add",tabIndex:0,variant:"primary"})]}),$&&l&&(0,re.jsx)(Ne.Portal,{children:(0,re.jsx)(Ne.PopupComponent,{anchorElement:c,offsetTop:-10,offsetLeft:20,placement:"below",children:(0,re.jsx)(Rt,{FilterClauseEditorProps:r,columnDescriptors:t,onCancel:v,onSave:C,filter:d==null?void 0:d.filter,tableSchema:l},"filter-editor")})}),S?(0,re.jsx)(Ne.Prompt,{...S,PopupProps:{anchorElement:c,offsetTop:16,placement:"below-center"}}):null]})};var fr=require("@salt-ds/core");var H=require("@vuu-ui/vuu-codemirror");var zi=0,Ke=class{constructor(e,t){this.from=e,this.to=t}},O=class{constructor(e={}){this.id=zi++,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=ne.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};O.closedBy=new O({deserialize:r=>r.split(" ")});O.openedBy=new O({deserialize:r=>r.split(" ")});O.group=new O({deserialize:r=>r.split(" ")});O.contextHash=new O({perNode:!0});O.lookAhead=new O({perNode:!0});O.mounted=new O({perNode:!0});var Wi=Object.create(null),ne=class r{constructor(e,t,n,i=0){this.name=e,this.props=t,this.id=n,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):Wi,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new r(e.name||"",t,e.id,n);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(O.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let i of n.split(" "))t[i]=e[n];return n=>{for(let i=n.prop(O.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?n.name:i[s]];if(o)return o}}}};ne.none=new ne("",Object.create(null),0,8);var bt=class r{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let i=null;for(let s of e){let o=s(n);o&&(i||(i=Object.assign({},n.props)),i[o[0].id]=o[1])}t.push(i?new ne(n.name,i,n.id,n.flags):n)}return new r(t)}},gt=new WeakMap,$n=new WeakMap,q;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(q||(q={}));var G=class r{constructor(e,t,n,i,s){if(this.type=e,this.children=t,this.positions=n,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(O.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let i=n.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 Re(this.topNode,e)}cursorAt(e,t=0,n=0){let i=gt.get(this)||this.topNode,s=new Re(i);return s.moveTo(e,t),gt.set(this,s._tree),s}get topNode(){return new Me(this,0,0,null)}resolve(e,t=0){let n=Be(gt.get(this)||this.topNode,e,t,!1);return gt.set(this,n),n}resolveInner(e,t=0){let n=Be($n.get(this)||this.topNode,e,t,!0);return $n.set(this,n),n}iterate(e){let{enter:t,leave:n,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&q.IncludeAnonymous)>0;for(let u=this.cursor(o|q.IncludeAnonymous);;){let l=!1;if(u.from<=s&&u.to>=i&&(!a&&u.type.isAnonymous||t(u)!==!1)){if(u.firstChild())continue;l=!0}for(;l&&n&&(a||!u.type.isAnonymous)&&n(u),!u.nextSibling();){if(!u.parent())return;l=!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:Gt(ne.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,i)=>new r(this.type,t,n,i,this.propValues),e.makeTree||((t,n,i)=>new r(ne.none,t,n,i)))}static build(e){return qi(e)}};G.empty=new G(ne.none,[],[],0);var qt=class r{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 r(this.buffer,this.index)}},ke=class r{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return ne.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,n,i,s){let{buffer:o}=this,a=-1;for(let u=e;u!=t&&!(En(s,i,o[u+1],o[u+2])&&(a=u,n>0));u=o[u+3]);return a}slice(e,t,n){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,u=0;a<t;){s[u++]=i[a++],s[u++]=i[a++]-n;let l=s[u++]=i[a++]-n;s[u++]=i[a++]-e,o=Math.max(o,l)}return new r(s,o,this.set)}};function En(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function kn(r,e){let t=r.childBefore(e);for(;t;){let n=t.lastChild;if(!n||n.to!=t.to)break;n.type.isError&&n.from==n.to?(r=t,t=n.prevSibling):t=n}return r}function Be(r,e,t,n){for(var i;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let o=!n&&r instanceof Me&&r.index<0?null:r.parent;if(!o)return r;r=o}let s=n?0:q.IgnoreOverlays;if(n)for(let o=r,a=o.parent;a;o=a,a=o.parent)o instanceof Me&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(r=a);for(;;){let o=r.enter(e,t,s);if(!o)return r;r=o}}var Me=class r{constructor(e,t,n,i){this._tree=e,this.from=t,this.index=n,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,n,i,s=0){for(let o=this;;){for(let{children:a,positions:u}=o._tree,l=t>0?a.length:-1;e!=l;e+=t){let p=a[e],c=u[e]+o.from;if(En(i,n,c,c+p.length)){if(p instanceof ke){if(s&q.ExcludeBuffers)continue;let f=p.findChild(0,p.buffer.length,t,n-c,i);if(f>-1)return new Ze(new Jt(o,p,e,c),null,f)}else if(s&q.IncludeAnonymous||!p.type.isAnonymous||Zt(p)){let f;if(!(s&q.IgnoreMounts)&&p.props&&(f=p.prop(O.mounted))&&!f.overlay)return new r(f.tree,c,e,o);let h=new r(p,c,e,o);return s&q.IncludeAnonymous||!h.type.isAnonymous?h:h.nextChild(t<0?p.children.length-1:0,t,n,i)}}}if(s&q.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,n=0){let i;if(!(n&q.IgnoreOverlays)&&(i=this._tree.prop(O.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 r(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Re(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Be(this,e,t,!1)}resolveInner(e,t=0){return Be(this,e,t,!0)}enterUnfinishedNodesBefore(e){return kn(this,e)}getChild(e,t=null,n=null){let i=Ct(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return Ct(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return vt(this,e)}};function Ct(r,e,t,n){let i=r.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return s}for(;;){if(n!=null&&i.type.is(n))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return n==null?s:[]}}function vt(r,e,t=e.length-1){for(let n=r.parent;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Jt=class{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}},Ze=class r{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new r(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&q.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 r(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 r(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 r(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Re(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,s=n.buffer[this.index+3];if(s>i){let o=n.buffer[this.index+1];e.push(n.slice(i,s,o)),t.push(0)}return new G(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Be(this,e,t,!1)}resolveInner(e,t=0){return Be(this,e,t,!0)}enterUnfinishedNodesBefore(e){return kn(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let i=Ct(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return Ct(this,e,t,n)}get node(){return this}matchContext(e){return vt(this,e)}},Re=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 Me)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=n+i.buffer[e+1],this.to=n+i.buffer[e+2],!0}yield(e){return e?e instanceof Me?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&q.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&q.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&q.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let i=n<0?0:this.stack[n]+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<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(i)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer: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:n}=i)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let a=n._tree.children[s];if(this.mode&q.IncludeAnonymous||a instanceof ke||!a.type.isAnonymous||Zt(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,n=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,n=s+1;break e}i=this.stack[--s]}for(let i=n;i<this.stack.length;i++)t=new Ze(this.buffer,t,this.stack[i]);return this.bufferNode=new Ze(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,i=!0}}}matchContext(e){if(!this.buffer)return vt(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return vt(this.node,e,i);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function Zt(r){return r.children.some(e=>e instanceof ke||!e.type.isAnonymous||Zt(e))}function qi(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=n.types.length}=r,a=Array.isArray(t)?new qt(t,t.length):t,u=n.types,l=0,p=0;function c(S,M,x,$,F){let{id:m,start:g,end:k,size:L}=a,I=p;for(;L<0;)if(a.next(),L==-1){let ce=s[m];x.push(ce),$.push(g-S);return}else if(L==-3){l=m;return}else if(L==-4){p=m;return}else throw new RangeError(`Unrecognized record size: ${L}`);let _=u[m],Q,Z,rt=g-S;if(k-g<=i&&(Z=b(a.pos-M,F))){let ce=new Uint16Array(Z.size-Z.skip),X=a.pos-Z.size,se=ce.length;for(;a.pos>X;)se=d(Z.start,ce,se);Q=new ke(ce,k-Z.start,n),rt=Z.start-S}else{let ce=a.pos-L;a.next();let X=[],se=[],be=m>=o?m:-1,P=0,T=k;for(;a.pos>ce;)be>=0&&a.id==be&&a.size>=0?(a.end<=T-i&&(h(X,se,g,P,a.end,T,be,I),P=X.length,T=a.end),a.next()):c(g,ce,X,se,be);if(be>=0&&P>0&&P<X.length&&h(X,se,g,P,g,T,be,I),X.reverse(),se.reverse(),be>-1&&P>0){let A=f(_);Q=Gt(_,X,se,0,X.length,0,k-g,A,A)}else Q=y(_,X,se,k-g,I-k)}x.push(Q),$.push(rt)}function f(S){return(M,x,$)=>{let F=0,m=M.length-1,g,k;if(m>=0&&(g=M[m])instanceof G){if(!m&&g.type==S&&g.length==$)return g;(k=g.prop(O.lookAhead))&&(F=x[m]+g.length+k)}return y(S,M,x,$,F)}}function h(S,M,x,$,F,m,g,k){let L=[],I=[];for(;S.length>$;)L.push(S.pop()),I.push(M.pop()+x-F);S.push(y(n.types[g],L,I,m-F,k-m)),M.push(F-x)}function y(S,M,x,$,F=0,m){if(l){let g=[O.contextHash,l];m=m?[g].concat(m):[g]}if(F>25){let g=[O.lookAhead,F];m=m?[g].concat(m):[g]}return new G(S,M,x,$,m)}function b(S,M){let x=a.fork(),$=0,F=0,m=0,g=x.end-i,k={size:0,start:0,skip:0};e:for(let L=x.pos-S;x.pos>L;){let I=x.size;if(x.id==M&&I>=0){k.size=$,k.start=F,k.skip=m,m+=4,$+=4,x.next();continue}let _=x.pos-I;if(I<0||_<L||x.start<g)break;let Q=x.id>=o?4:0,Z=x.start;for(x.next();x.pos>_;){if(x.size<0)if(x.size==-3)Q+=4;else break e;else x.id>=o&&(Q+=4);x.next()}F=Z,$+=I,m+=Q}return(M<0||$==S)&&(k.size=$,k.start=F,k.skip=m),k.size>4?k:void 0}function d(S,M,x){let{id:$,start:F,end:m,size:g}=a;if(a.next(),g>=0&&$<o){let k=x;if(g>4){let L=a.pos-(g-4);for(;a.pos>L;)x=d(S,M,x)}M[--x]=k,M[--x]=m-S,M[--x]=F-S,M[--x]=$}else g==-3?l=$:g==-4&&(p=$);return x}let v=[],C=[];for(;a.pos>0;)c(r.start||0,r.bufferStart||0,v,C,-1);let E=(e=r.length)!==null&&e!==void 0?e:v.length?C[0]+v[0].length:0;return new G(u[r.topID],v.reverse(),C.reverse(),E)}var wn=new WeakMap;function yt(r,e){if(!r.isAnonymous||e instanceof ke||e.type!=r)return 1;let t=wn.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof G)){t=1;break}t+=yt(r,n)}wn.set(e,t)}return t}function Gt(r,e,t,n,i,s,o,a,u){let l=0;for(let y=n;y<i;y++)l+=yt(r,e[y]);let p=Math.ceil(l*1.5/8),c=[],f=[];function h(y,b,d,v,C){for(let E=d;E<v;){let S=E,M=b[E],x=yt(r,y[E]);for(E++;E<v;E++){let $=yt(r,y[E]);if(x+$>=p)break;x+=$}if(E==S+1){if(x>p){let $=y[S];h($.children,$.positions,0,$.children.length,b[S]+C);continue}c.push(y[S])}else{let $=b[E-1]+y[E-1].length-M;c.push(Gt(r,y,b,S,E,M,$,null,u))}f.push(M+C-s)}}return h(e,t,n,i,0),(a||u)(c,f,o)}var xt=class{startParse(e,t,n){return typeof e=="string"&&(e=new Kt(e)),n=n?n.length?n.map(i=>new Ke(i.from,i.to)):[new Ke(0,0)]:[new Ke(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let s=i.advance();if(s)return s}}},Kt=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 el=new O({perNode:!0});var Xt=class r{constructor(e,t,n,i,s,o,a,u,l,p=0,c){this.p=e,this.stack=t,this.state=n,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=u,this.curContext=l,this.lookAhead=p,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,n=0){let i=e.parser.context;return new r(e,[],t,n,n,0,[],0,i?new Ft(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 n=e>>19,i=e&65535,{parser:s}=this.p,o=s.dynamicPrecedence(i);if(o&&(this.score+=o),n==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-(n-1)*3-(e&262144?6:0),u=a?this.stack[a-2]:this.p.ranges[0].from,l=this.reducePos-u;l>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(u==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSize<l&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=u,this.p.lastBigReductionSize=l));let p=a?this.stack[a-1]:0,c=this.bufferBase+this.buffer.length-p;if(i<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,u,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,u)}storeNode(e,t,n,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==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>n;)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]=n,this.buffer[o+3]=i}}shift(e,t,n){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,n,4);else{let s=e,{parser:o}=this.p;(n>this.pos||t<=o.maxNode)&&(this.pos=n,o.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(n,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 n=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new r(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new er(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>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,u)=>u&1&&a==o)||i.push(t[s],o)}t=i}let n=[];for(let i=0;i<t.length&&n.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,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,i=t&65535,s=this.stack.length-n*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=[],n=(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 u=o&65535,l=this.stack.length-a*3;if(l>=0&&e.getGoto(this.stack[l],u,!1)>=0)return a<<19|65536|u}}else{let a=n(o,s+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ft(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()}},Ft=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Mn;(function(r){r[r.Insert=200]="Insert",r[r.Delete=190]="Delete",r[r.Reduce=100]="Reduce",r[r.MaxNext=4]="MaxNext",r[r.MaxInsertStackDepth=300]="MaxInsertStackDepth",r[r.DampenInsertStackDepth=120]="DampenInsertStackDepth",r[r.MinBigReduction=2e3]="MinBigReduction"})(Mn||(Mn={}));var er=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},tr=class r{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new r(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 r(this.stack,this.pos,this.index)}};function Ge(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,i=0;n<r.length;){let s=0;for(;;){let o=r.charCodeAt(n++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let u=o-32;if(u>=46&&(u-=46,a=!0),s+=u,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}var He=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Pn=new He,rr=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=Pn,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!i)return null;let o=this.ranges[--i];s-=n.from-o.to,n=o}for(;t<0?s>n.to:s>=n.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-n.to,n=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,n,i;if(t>=0&&t<this.chunk.length)n=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),i=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),i}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Pn,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(n+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return n}},Fe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Bn(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Fe.prototype.contextual=Fe.prototype.fallback=Fe.prototype.extend=!1;var nr=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Ge(e):e}token(e,t){let n=e.pos,i=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(Bn(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(n,e.token),e.acceptToken(this.elseToken,i))}};nr.prototype.contextual=Fe.prototype.fallback=Fe.prototype.extend=!1;function Bn(r,e,t,n,i,s){let o=0,a=1<<n,{dialect:u}=t.p.parser;e:for(;a&r[o];){let l=r[o+1];for(let h=o+3;h<l;h+=2)if((r[h+1]&a)>0){let y=r[h];if(u.allows(y)&&(e.token.value==-1||e.token.value==y||Ki(y,e.token.value,i,s))){e.acceptToken(y);break}}let p=e.next,c=0,f=r[o+2];if(e.next<0&&f>c&&r[l+f*3-3]==65535&&r[l+f*3-3]==65535){o=r[l+f*3-1];continue e}for(;c<f;){let h=c+f>>1,y=l+h+(h<<1),b=r[y],d=r[y+1]||65536;if(p<b)f=h;else if(p>=d)c=h+1;else{o=r[y+2],e.advance();continue e}}break}}function Tn(r,e,t){for(let n=e,i;(i=r[n])!=65535;n++)if(i==t)return n-e;return-1}function Ki(r,e,t,n){let i=Tn(t,n,e);return i<0||Tn(t,n,r)<i}var le=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),jt=null,On;(function(r){r[r.Margin=25]="Margin"})(On||(On={}));function Dn(r,e,t){let n=r.cursor(q.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}var ir=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Dn(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Dn(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],i=this.index[t];if(i==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[i],o=this.start[t]+n.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof G){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let u=s.prop(O.lookAhead);if(!u||a+u<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}}},sr=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new He)}getActions(e){let t=0,n=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,u=0;for(let l=0;l<s.length;l++){if(!(1<<l&o))continue;let p=s[l],c=this.tokens[l];if(!(n&&!p.fallback)&&((p.contextual||c.start!=e.pos||c.mask!=o||c.context!=a)&&(this.updateCachedToken(c,p,e),c.mask=o,c.context=a),c.lookAhead>c.end+25&&(u=Math.max(c.lookAhead,u)),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),!p.extend&&(n=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return u&&e.setLookAhead(u),!n&&e.pos==this.stream.end&&(n=new He,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new He,{pos:n,p:i}=e;return t.start=n,t.end=Math.min(n+1,i.stream.end),t.value=n==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,n){let i=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(i,e),n),e.value>-1){let{parser:s}=n.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),n);if(a>=0&&n.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,n,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++]=n,i}addActions(e,t,n,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let u=0;u<2;u++)for(let l=o.stateSlot(s,u?2:1);;l+=3){if(a[l]==65535)if(a[l+1]==1)l=ye(a,l+2);else{i==0&&a[l+1]==2&&(i=this.putAction(ye(a,l+2),t,n,i));break}a[l]==t&&(i=this.putAction(ye(a,l+1),t,n,i))}return i}},In;(function(r){r[r.Distance=5]="Distance",r[r.MaxRemainingPerStep=3]="MaxRemainingPerStep",r[r.MinBufferLengthPrune=500]="MinBufferLengthPrune",r[r.ForceReduceLimit=10]="ForceReduceLimit",r[r.CutDepth=15e3]="CutDepth",r[r.CutTo=9e3]="CutTo",r[r.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",r[r.MaxStackCount=12]="MaxStackCount"})(In||(In={}));var or=class{constructor(e,t,n,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 rr(t,i),this.tokens=new sr(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[Xt.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new ir(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=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)n.push(a);else{if(this.advanceStack(a,n,e))continue;{i||(i=[],s=[]),i.push(a);let u=this.tokens.getMainToken(a);s.push(u.value,u.end)}}break}}if(!n.length){let o=i&&Zi(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw le&&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,n);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,u)=>u.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let u=o+1;u<n.length;u++){let l=n[u];if(a.sameState(l)||a.buffer.length>500&&l.buffer.length>500)if((a.score-l.score||a.buffer.length-l.buffer.length)>0)n.splice(u--,1);else{n.splice(o--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[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,n){let i=e.pos,{parser:s}=this,o=le?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let l=e.curContext&&e.curContext.tracker.strict,p=l?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&&(!l||(c.prop(O.contextHash)||0)==p))return e.useNode(c,f),le&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof G)||c.children.length==0||c.positions[0]>0)break;let h=c.children[0];if(h instanceof G&&c.positions[0]==0)c=h;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),le&&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 u=this.tokens.getActions(e);for(let l=0;l<u.length;){let p=u[l++],c=u[l++],f=u[l++],h=l==u.length||!n,y=h?e:e.split();if(y.apply(p,c,f),le&&console.log(o+this.stackID(y)+` (via ${p&65536?`reduce of ${s.getName(p&65535)}`:"shift"} for ${s.getName(c)} @ ${i}${y==e?"":", split"})`),h)return!0;y.pos>i?t.push(y):n.push(y)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return An(e,t),!0}}runRecovery(e,t,n){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],u=t[o<<1],l=t[(o<<1)+1],p=le?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),le&&console.log(p+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let c=a.split(),f=p;for(let h=0;c.forceReduce()&&h<10&&(le&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,n));h++)le&&(f=this.stackID(c)+" -> ");for(let h of a.recoverByInsert(u))le&&console.log(p+this.stackID(h)+" (via recover-insert)"),this.advanceFully(h,n);this.stream.end>a.pos?(l==a.pos&&(l++,u=0),a.recoverByDelete(u,l),le&&console.log(p+this.stackID(a)+` (via recover-delete ${this.parser.getName(u)})`),An(a,n)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),G.build({buffer:tr.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=(jt||(jt=new WeakMap)).get(e);return t||jt.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function An(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}var ar=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var St=class r extends xt{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 n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,u,l){i[a].push([u,u.deserialize(String(l))])}if(e.nodeProps)for(let a of e.nodeProps){let u=a[0];typeof u=="string"&&(u=O[u]);for(let l=1;l<a.length;){let p=a[l++];if(p>=0)s(p,u,a[l++]);else{let c=a[l+-p];for(let f=-p;f>0;f--)s(a[l++],u,c);l++}}}this.nodeSet=new bt(t.map((a,u)=>ne.define({name:u>=this.minRepeatTerm?void 0:a,id:u,props:i[u],top:n.indexOf(u)>-1,error:u==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(u)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Ge(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(Nn),this.states=Ge(e.states,Uint32Array),this.data=Ge(e.stateData),this.goto=Ge(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Fe(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,n){let i=new or(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}getGoto(e,t,n=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,u=i[s++];if(a&&n)return u;for(let l=s+(o>>1);s<l;s++)if(i[s]==e)return u;if(a)return-1}}hasAction(e,t){let n=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=n[s])==65535)if(n[s+1]==1)o=n[s=ye(n,s+2)];else{if(n[s+1]==2)return ye(n,s+2);break}if(o==t||o==0)return ye(n,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),i=n?t(n):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=ye(this.data,s+2);else break;i=t(ye(this.data,s+1))}return i}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ye(this.data,n+2);else break;if(!(this.data[n+2]&1)){let i=this.data[n+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[n],i)}}return t}configure(e){let t=Object.assign(Object.create(r.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let i=e.tokenizers.find(s=>s.from==n);return i?i.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,i)=>{let s=e.specializers.find(a=>a.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[i]=Nn(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),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!n[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 ar(e,n,i)}static deserialize(e){return new r(e)}};function ye(r,e){return r[e]|r[e+1]<<16}function Zi(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Nn(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}var je=St.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 me=require("@vuu-ui/vuu-utils");var j,lr=class{constructor(){Ce(this,j,void 0)}setFilterCombinatorOp(e,t=w(this,j)){(0,me.isMultiClauseFilter)(t)&&t.op===e||Y(this,j,{op:e,filters:[w(this,j)]})}add(e){if(w(this,j)===void 0)Y(this,j,e);else if((0,me.isMultiClauseFilter)(w(this,j)))w(this,j).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=w(this,j)){if((0,me.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=w(this,j)){if((0,me.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=w(this,j)){var n;if((0,me.isMultiClauseFilter)(t)){let i=t.filters.at(-1);i&&this.setValue(e,i)}else(0,me.isMultiValueFilter)(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):(0,me.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=w(this,j)){return this.name?{...e,name:this.name}:e}};j=new WeakMap;var $t=(r,e)=>{let t=new lr,n=r.cursor();do{let{name:i,from:s,to:o}=n;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(n.next());return t.toJSON()};var cl=je.configure({strict:!0});var Se=require("react");var ue=require("@vuu-ui/vuu-codemirror");var ji=ue.LRLanguage.define({name:"VuuFilterQuery",parser:je.configure({props:[(0,ue.styleTags)({Identifier:ue.tags.variableName,String:ue.tags.string,Or:ue.tags.emphasis,Operator:ue.tags.operator})]})}),Rn=()=>new ue.LanguageSupport(ji);var Pe=require("@vuu-ui/vuu-codemirror"),Xi=Pe.HighlightStyle.define([{tag:Pe.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Pe.tags.comment,color:"green",fontStyle:"italic"}]),Hn=(0,Pe.syntaxHighlighting)(Xi);var Ln=require("@vuu-ui/vuu-codemirror"),Vn=Ln.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 U=require("@vuu-ui/vuu-codemirror"),ur=require("react"),_n=(r,e)=>{let t=r.prevSibling||r.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,U.getValue)(t,e)},es=(r,e,t)=>{let n=(0,U.getValue)(r,e);if(!(t===void 0||n===t)&&["contains","ends","starts"].some(i=>i.startsWith(n.toLowerCase())))return n},Qn=(r,e)=>{let t=r.prevSibling||r.parent||r.lastChild;for(;t&&t.name==="\u26A0";)t=t.prevSibling;if(t&&["As","Or","And"].includes(t.name))return(0,U.getValue)(t,e)},Un=(r,e)=>{if(r.name==="FilterName")return(0,U.getValue)(r,e);{let t=r.prevSibling||r.parent||r.lastChild;for(;t&&t.name!=="FilterName";)t=t.prevSibling;if(t&&t.name==="FilterName")return(0,U.getValue)(r,e)}},Yn=(r,e)=>{let t=r.prevSibling;if((t==null?void 0:t.name)==="Column")return(0,U.getValue)(t,e);if((t==null?void 0:t.name)==="Operator")return Yn(t,e)},ts=(r,e)=>{let t=r.lastChild,n=[];for(;t&&t.name!=="In";){let i=(0,U.getValue)(t,e);if(i)n.push(i);else break;t=t.prevSibling}return n};var zn=(r,e,t)=>{let n=(0,ur.useCallback)(async(i,s,o={})=>{let{startsWith:a=""}=o,u=await r.getSuggestions(s,o);return{from:i.pos-a.length,options:u}},[r]);return(0,ur.useCallback)(async i=>{var p,c;let{state:s,pos:o}=i,a=(p=i.matchBefore(/\w*/))!=null?p:{from:0,to:0,text:void 0},l=(0,U.syntaxTree)(s).resolveInner(o,-1);switch(console.log({nodeBeforeName:l.name}),l.name){case"Filter":if(i.pos===0)return n(i,"column");if(Qn(l,s)==="as")return n(i,"name");{let h=Un(l,s);return n(i,"save",{onSubmit:e.current,existingFilter:t,filterName:h})}case"String":{let f=_n(l,s),h=Yn(l,s),{from:y,to:b}=l;if(b-y===2&&i.pos===y+1){if(h&&f)return n(i,"columnValue",{columnName:h,operator:f,quoted:!0,startsWith:a.text})}else console.log(`we have a string, column is ${h} ${y} ${b}`)}break;case"As":return n(i,"name");case"FilterName":return n(i,"save",{onSubmit:e.current,existingFilter:t,filterName:Un(l,s)});case"Column":{let f=(0,U.getValue)(l,s);return await r.isPartialMatch("column",void 0,f)?n(i,"column",{startsWith:f}):n(i,"operator",{columnName:f})}case"\u26A0":{let f=(0,U.getNodeByName)(l,s),h=_n(l,s),y=h?void 0:es(l,s,f);return y?n(i,"operator",{columnName:f,startsWith:y}):n(i,"columnValue",{columnName:f,operator:h,startsWith:a.text})}case"Identifier":if(Qn(l,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,U.getNodeByName)(l,s),h=ts(l,s);return n(i,"columnValue",{columnName:f,selection:h})}case"Comma":case"LBrack":{let f=(0,U.getNodeByName)(l,s);return n(i,"columnValue",{columnName:f})}case"ColumnValueExpression":{let f=(c=l.lastChild)==null?void 0:c.prevSibling;if((f==null?void 0:f.name)==="Column")return n(i,"operator",{columnName:(0,U.getNodeByName)(l,s)});if((f==null?void 0:f.name)==="Operator")return n(i,"columnValue",{columnName:(0,U.getNodeByName)(f,s),operator:(0,U.getValue)(f,s)})}break;case"In":return{from:i.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return n(i,"columnValue",{columnName:(0,U.getNodeByName)(l,s)});case"AndExpression":case"OrExpression":return n(i,"column");default:}},[t,n,e,r])};var Xe=r=>{if(r.current==null)throw Error("EditorView not defined");return r.current},rs=r=>V("vuuSuggestion",{vuuIllustration:r.isIllustration}),ns=r=>{let e=r.lastIndexOf(" as ");return e!==-1?r.slice(0,e):r},is=()=>console.log("noooop"),cr=({existingFilter:r,onSubmitFilter:e,suggestionProvider:t})=>{let n=(0,Se.useRef)(null),i=(0,Se.useRef)(is),s=(0,Se.useRef)(),o=zn(t,i,r),[a,u]=(0,Se.useMemo)(()=>{let l=()=>{let b=Xe(s),d=b.state.doc.toString(),v=(0,H.ensureSyntaxTree)(b.state,b.state.doc.length,5e3);if(v){let C=$t(v,d);return[C,ns(d),C.name]}else return[void 0,"",void 0]},p=()=>{Xe(s).setState(y())},c=b=>{let[d,v,C]=l();e==null||e(d,v,b,C),p()},f=b=>H.keymap.of([{key:b,run(){return c(),!0}}]),h=b=>H.keymap.of([{key:b,run(){return(0,H.startCompletion)(Xe(s)),!0}}]),y=()=>H.EditorState.create({doc:"",extensions:[H.minimalSetup,(0,H.autocompletion)({override:[o],optionClass:rs}),Rn(),H.keymap.of(H.defaultKeymap),f("Ctrl-Enter"),h("ArrowDown"),H.EditorView.updateListener.of(b=>{let d=Xe(s);b.docChanged&&(0,H.startCompletion)(d)}),H.EditorState.transactionFilter.of(b=>b.newDoc.lines>1?[]:b),Vn,Hn]});return i.current=b=>{c(b),setTimeout(()=>{Xe(s).focus()},100)},[y,p]},[o,e]);return(0,Se.useEffect)(()=>{if(!n.current)throw Error("editor not in dom");return s.current=new H.EditorView({state:a(),parent:n.current}),()=>{var l;(l=s.current)==null||l.destroy()}},[o,a]),{editorRef:n,clearInput:u}};var Le=require("react/jsx-runtime"),wt="vuuFilterInput",ss=({existingFilter:r,iconName:e="filter",namedFilters:t,onSubmitFilter:n,suggestionProvider:i,...s})=>{let{editorRef:o,clearInput:a}=cr({existingFilter:r,onSubmitFilter:n,suggestionProvider:i});return(0,Le.jsxs)("div",{...s,className:wt,children:[(0,Le.jsx)(fr.Button,{className:`${wt}-FilterButton`,"data-icon":e,tabIndex:-1}),(0,Le.jsx)("div",{className:`${wt}-Editor`,ref:o}),(0,Le.jsx)(fr.Button,{className:`${wt}-ClearButton`,"data-icon":"close-circle",onClick:a})]})};var ie=require("@vuu-ui/vuu-codemirror"),kt=require("@vuu-ui/vuu-data-react"),tt=require("react");var et=require("@vuu-ui/vuu-utils"),Wn=(r,e)=>{let t=(0,et.createEl)("div","vuuFunctionDoc"),n=(0,et.createEl)("div","function-heading"),i=(0,et.createEl)("span","function-name",r);n.appendChild(i);let s=(0,et.createEl)("p",void 0,e);return t.appendChild(n),t.appendChild(s),t};var os=[],as={},ls=r=>[{label:"Press ENTER to create TAB",apply:()=>r("tab"),boost:6}],qn=(r,e,t=!0)=>{let n=e?[{label:"REPLACE existing filter",apply:()=>r("replace"),boost:8},{label:"AND existing filter",apply:()=>r("and"),boost:7},{label:"OR existing filter",apply:()=>r("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>r(),boost:6}];return t?n.concat(ie.booleanJoinSuggestions).concat(ie.asNameSuggestion):n},us=(r,e)=>qn(r,e,!0),cs=r=>qn(r,void 0),fs=({existingFilter:r,filterName:e,onSubmit:t,saveOptions:n})=>{let i=e&&n.allowSaveAsTab,s=r?us(t,r):cs(t);return i?s.concat(ls(t)):s},hs=r=>r.map(e=>({boost:5,label:e.name})),ds=r=>r?Array.from(r.entries()).map(([e,t])=>({info:()=>Wn(e,t),label:e,type:"filter"})):os,ps={label:"Done",apply:"] ",type:"keyword",boost:10},Et=(r,e="")=>r.filter(t=>e===""||t.label.startsWith(e)).map(t=>({...t,apply:t.label+" "})),ms={allowReplace:!0},gs=({columns:r,namedFilters:e,saveOptions:t=ms,table:n,typeaheadHook:i=kt.useTypeaheadSuggestions})=>{let s=(0,tt.useRef)(),o=i(),a=(0,tt.useCallback)(async(l,p=as)=>{let{columnName:c,existingFilter:f,filterName:h,operator:y,quoted:b,onSubmit:d,startsWith:v,selection:C}=p;switch(l){case"operator":{let E=r.find(S=>S.name===c);if(E)switch(E.serverDataType){case"string":case"char":return Et(ie.stringOperators,v);case"int":case"long":case"double":return Et(ie.numericOperators)}else console.warn(`'${c}' does not match any column name`)}break;case"column":{let E=await hs(r),S=await ds(e);return(s.current=Et(E)).concat(Et(S))}case"columnValue":if(c){let E=r.find(F=>F.name===c);if(!E)throw Error(`useFilterSUggestionProvider no column ${c}`);let S=Array.isArray(C)?C.length===0?"[":",":"",M=(0,kt.getTypeaheadParams)(n,c,v),x=await o(M),$=y==="starts";return s.current=(0,ie.toSuggestions)(x,{moveCursorToEnd:b,quoted:(E==null?void 0:E.serverDataType)==="string"&&!b,suffix:b?"":" ",prefix:$?v:S,isIllustration:$}),Array.isArray(C)&&(C==null?void 0:C.length)>1?[ps,...s.current]:s.current}break;case"save":{if(typeof d!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await fs({existingFilter:f,filterName:h,onSubmit:d,saveOptions:t})}case"name":return await(0,ie.getNamePrompt)("filter");default:}return[]},[r,o,e,t,n]),u=(0,tt.useCallback)(async(l,p,c)=>{let f=await a(l,{columnName:p});if(c&&f)for(let h of f){if(h.label===c)return!1;if(h.label.startsWith(c))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:u}};var ys=r=>{let e=localStorage.getItem(r);return e?JSON.parse(e):void 0},bs=r=>Object.entries(localStorage).filter(([e])=>e.includes(r)).map(([,e])=>JSON.parse(e)),Cs=(r,e)=>{try{return localStorage.setItem(r,JSON.stringify(e)),e}catch{return}};
|
|
1
|
+
"use strict";var Mt=Object.defineProperty;var Jn=Object.getOwnPropertyDescriptor;var Kn=Object.getOwnPropertyNames;var Zn=Object.prototype.hasOwnProperty;var Gn=(r,e)=>{for(var t in e)Mt(r,t,{get:e[t],enumerable:!0})},jn=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Kn(e))!Zn.call(r,i)&&i!==t&&Mt(r,i,{get:()=>e[i],enumerable:!(n=Jn(e,i))||n.enumerable});return r};var Xn=r=>jn(Mt({},"__esModule",{value:!0}),r);var hr=(r,e,t)=>{if(!e.has(r))throw TypeError("Cannot "+t)};var w=(r,e,t)=>(hr(r,e,"read from private field"),t?t.call(r):e.get(r)),Ce=(r,e,t)=>{if(e.has(r))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(r):e.set(r,t)},Y=(r,e,t,n)=>(hr(r,e,"write to private field"),n?n.call(r,t):e.set(r,t),t);var ys={};Gn(ys,{AND:()=>K,ENDS_WITH:()=>Ei,EQUALS:()=>ut,ExpandoCombobox:()=>ve,FilterBar:()=>Yi,FilterClause:()=>Nt,FilterClauseModel:()=>Qe,FilterClauseValueEditorText:()=>Tt,FilterEditor:()=>Rt,FilterInput:()=>ss,FilterModel:()=>$e,FilterPill:()=>Qt,GREATER_THAN:()=>$i,IN:()=>nn,LESS_THAN:()=>wi,OR:()=>rn,STARTS_WITH:()=>Lt,addClause:()=>Mi,addFilter:()=>Pi,filterClauses:()=>ft,filterEquals:()=>ct,filterIncludesColumn:()=>an,getNumericFilter:()=>Hi,getTypeaheadFilter:()=>Ri,overrideColName:()=>on,removeFilter:()=>Ai,removeLastClause:()=>ki,splitFilterOnColumn:()=>Ni,updateFilter:()=>un,useCodeMirrorEditor:()=>cr,useFilterSuggestionProvider:()=>gs});module.exports=Xn(ys);var ae=require("@vuu-ui/vuu-utils");var ei=({values:r})=>Array.isArray(r)&&r.length>0,_e=r=>{if(r.op===void 0||r.column===void 0)return!1;if((0,ae.isMultiValueFilter)(r))return ei(r);if((0,ae.isSingleValueFilter)(r))return r.value!==void 0&&r.value!=="";throw Error("isValidFilterClause should never reach this far")},dr=r=>r===void 0?!1:(0,ae.isMultiClauseFilter)(r)?r.filters.every(dr):_e(r),ti=r=>r.isMultiClauseFilter?r.filterClauses.every(e=>e.isValid):r.filterClauses.length===1&&r.filterClauses[0].isValid,R,fe,Qe=class extends ae.EventEmitter{constructor(t){super();Ce(this,R,void 0);Ce(this,fe,void 0);Y(this,R,t),Y(this,fe,_e(t))}get isValid(){return w(this,fe)}setIsValid(t){Y(this,fe,t),this.emit("isValid",t)}get column(){return w(this,R).column}set column(t){Y(this,R,{column:t});let n=_e(w(this,R));this.emit("filterClause",w(this,R),n),n!==w(this,fe)&&this.setIsValid(n)}get op(){return w(this,R).op}setOp(t){Y(this,R,{...w(this,R),op:t});let n=_e(w(this,R));this.emit("filterClause",w(this,R),n),n!==w(this,fe)&&this.setIsValid(n)}setValue(t,n=!0){console.log(`setValue ${t} isFinal(${n})`),(0,ae.isSingleValueFilter)(w(this,R))?Y(this,R,{...w(this,R),value:t}):Array.isArray(t)&&Y(this,R,{...w(this,R),values:t});let i=_e(w(this,R));i!==w(this,fe)&&this.setIsValid(i),n&&this.emit("filterClause",w(this,R),i)}asFilter(t=!0){if(t&&!w(this,fe))throw Error("Invalid filter model cannot be returned as Filter");return w(this,R)}};R=new WeakMap,fe=new WeakMap;var he,oe,z,$e=class extends ae.EventEmitter{constructor(t){super();Ce(this,he,[]);Ce(this,oe,void 0);Ce(this,z,void 0);this.onFilterClauseChange=()=>{this.emit("filter",this.asFilter(!1),w(this,oe))};this.onFilterClauseStatusChange=t=>{!t&&w(this,oe)?this.setIsValid(!1):this.checkValidStatus()};(0,ae.isMultiClauseFilter)(t)?(Y(this,z,t.op),t.filters.forEach(n=>this.addFilterClause(n))):t?this.addFilterClause(t):this.addNewFilterClause(),Y(this,oe,dr(t))}get isValid(){return w(this,oe)}setIsValid(t){Y(this,oe,t),this.emit("isValid",t)}addNewFilterClause(t){let n=w(this,he).length;if(!t&&!w(this,z)&&n===1)Y(this,z,"and");else if(t&&!w(this,z)&&n===1)Y(this,z,t);else if(t&&w(this,z)&&t!==w(this,z))throw Error("FilterModel: use setOp to change the Filter combinator operator");let i=new Qe({});i.on("isValid",this.onFilterClauseStatusChange),i.on("filterClause",this.onFilterClauseChange),w(this,he).push(i),this.setIsValid(!1)}addFilterClause(t={}){let n=new Qe(t);n.on("isValid",this.onFilterClauseStatusChange),n.on("filterClause",this.onFilterClauseChange),w(this,he).push(n)}removeFilterClause(t){if(this.isMultiClauseFilter){let n=this.filterClauses.indexOf(t);n!==-1&&(this.filterClauses.splice(n,1),this.filterClauses.length===1&&Y(this,z,void 0),this.checkValidStatus())}}checkValidStatus(){let t=ti(this);t!==w(this,oe)&&this.setIsValid(t)}getFilterClause(t){return w(this,he)[t]}get op(){return w(this,z)}setOp(t){Y(this,z,t),this.emit("filter",this.asFilter(!1),w(this,oe))}get filterClauses(){return w(this,he)}get isMultiClauseFilter(){return w(this,z)==="and"||w(this,z)==="or"}asFilter(t=!0){if(t&&!w(this,oe))throw Error("Invalid filter model cannot be returned as Filter");return w(this,z)==="and"||w(this,z)==="or"?{op:w(this,z),filters:w(this,he).map(n=>n.asFilter(t))}:w(this,he)[0].asFilter(t)}};he=new WeakMap,oe=new WeakMap,z=new WeakMap;var Ne=require("@vuu-ui/vuu-popups"),Fn=require("@vuu-ui/vuu-ui-controls");function pr(r){var e,t,n="";if(typeof r=="string"||typeof r=="number")n+=r;else if(typeof r=="object")if(Array.isArray(r))for(e=0;e<r.length;e++)r[e]&&(t=pr(r[e]))&&(n&&(n+=" "),n+=t);else for(e in r)r[e]&&(n&&(n+=" "),n+=e);return n}function ri(){for(var r,e,t=0,n="";t<arguments.length;)(r=arguments[t++])&&(e=pr(r))&&(n&&(n+=" "),n+=e);return n}var V=ri;var Sn=require("react");var Kr=require("@vuu-ui/vuu-ui-controls");var Ur=require("react");var gr=require("@vuu-ui/vuu-utils"),yr=require("@vuu-ui/vuu-ui-controls");var ee=require("react");var Pt=require("react/jsx-runtime"),mr="vuuExpandoCombobox",ni={},ve=(0,ee.forwardRef)(function({className:e,InputProps:t=ni,ListProps:n,onInputChange:i,onSelectionChange:s,selectionStrategy:o,source:a,style:u,title:l,value:p="",...c},f){let[h,y]=(0,ee.useState)(p),{itemToString:b=gr.itemToString}=c,d=(0,ee.useRef)(p),v=(0,ee.useCallback)(m=>{let[g,...k]=m;return k.length?`${b(g)} + ${k.length}`:b(g)},[b]),C=(0,ee.useCallback)(m=>{let{value:g}=m.target;y(g),i==null||i(m)},[i]),E=(0,ee.useCallback)(m=>{y(m)},[]),[S,M]=(0,ee.useMemo)(()=>{let{inputProps:m,...g}=t;return[{...g,className:`${mr}-Input`,endAdornment:null,inputProps:{...m,autoComplete:"off",onInput:C}},{...n,className:V("vuuMenuList",n==null?void 0:n.className),"data-mode":"light",displayedItemCount:10,itemHeight:22,maxWidth:300,minWidth:80,width:"content-width"}]},[t,C,n]),x=(0,ee.useCallback)((m,g)=>{Array.isArray(g)?s==null||s(null,g):g&&(y(b(g)),s==null||s(null,g))},[b,s]),$=()=>{if(d.current!==void 0)return Array.isArray(d.current)?a==null?void 0:a.filter(m=>d.current.includes(b(m))):a==null?void 0:a.find(m=>b(m)===d.current)},F={minWidth:"fit-content"};return(0,Pt.jsx)("div",{className:V(mr,e),"data-text":h,ref:f,style:u,children:(0,Pt.jsx)(yr.ComboBox,{...c,PopupProps:F,className:"vuuEmbedded",defaultSelected:$(),defaultValue:Array.isArray(d.current)?v(d.current):d.current,fullWidth:!0,ListProps:M,InputProps:S,itemsToString:v,onSelectionChange:x,onSetSelectedText:E,selectionStrategy:o,source:a})})});var we=require("react"),br=require("@vuu-ui/vuu-ui-controls"),nt=require("@vuu-ui/vuu-utils"),vr=require("react/jsx-runtime"),Cr=(0,we.forwardRef)(function({InputProps:e,className:t,"data-field":n,onChangeValue:i,value:s},o){let[a,u]=(0,we.useState)((0,nt.isValidNumber)(s)?s.toString():""),l=(0,we.useCallback)(c=>{let{value:f}=c.target,h=parseFloat(f);(0,nt.isValidNumber)(h)&&console.log("its valid"),u(f)},[]),p=(0,we.useCallback)(c=>{if(c.key==="Enter"||c.key==="Tab"){let{value:f}=c.target,h=parseFloat(f);(0,nt.isValidNumber)(h)&&i(h)}},[i]);return(0,vr.jsx)(br.ExpandoInput,{...e,className:t,"data-field":n,onChange:l,onKeyDown:p,ref:o,value:a})});var J=require("react"),Fr=require("@vuu-ui/vuu-data-react"),Sr=require("@vuu-ui/vuu-ui-controls");var Ue=require("react/jsx-runtime"),ii=["Enter"," "],si=r=>{if(r.session){let{module:e,session:t}=r;return{module:e,table:t}}else return r},xr=["No matching data"],Tt=(0,J.forwardRef)(function({InputProps:e={},className:t,column:n,"data-field":i,onDeselect:s,onChangeValue:o,operator:a,suggestionProvider:u=Fr.useTypeaheadSuggestions,table:l,value:p},c){var F;let f=a==="in",[h,y]=(0,J.useState)((F=p==null?void 0:p.toString())!=null?F:""),[b,d]=(0,J.useState)([]),v=u(),C=(0,J.useCallback)((m,g)=>o(g),[o]),E=(0,J.useCallback)((m,g)=>o(g),[o]);(0,J.useEffect)(()=>{if(l){let m=si(l),g=h&&!f?[m,n.name,h]:[m,n.name];v(g).then(k=>{k.length===0&&h?d(xr):d(k)}).catch(k=>{console.error("Error getting suggestions",k)})}},[l,n,h,v,f]);let S=(0,J.useCallback)(m=>{let{value:g}=m.target;console.log(`handleInputChange "${g}"`),y(g),(a==="starts"||a==="ends")&&o(g,!1)},[o,a]),M=(0,J.useCallback)(m=>{var g,k;console.log(`handleKeyDownFreeTextInput ${h}`),(m.key==="Enter"||m.key==="Tab")&&h!==""?(m.stopPropagation(),m.preventDefault(),console.log(`call onInputComplete ${h}`),o(h)):(k=(g=e==null?void 0:e.inputProps)==null?void 0:g.onKeyDown)==null||k.call(g,m)},[e,o,h]),x=(0,J.useMemo)(()=>{if(a==="starts"||a==="ends"){let{inputProps:m,...g}=e;return{...g,inputProps:{...m,onKeyDown:M}}}else return e},[e,M,a]);return(0,J.useCallback)(()=>{switch(a){case"in":return(0,Ue.jsx)(ve,{InputProps:x,className:t,"data-field":i,initialHighlightedIndex:0,source:b,onInputChange:S,onSelectionChange:E,ref:c,selectionStrategy:"multiple",selectionKeys:ii,value:p});case"starts":return(0,Ue.jsx)(ve,{InputProps:x,ListProps:{className:"vuuIllustrationsOnly",disabled:!0},allowEnterCommitsText:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,disableFilter:b===xr&&(h==null?void 0:h.length)>0,source:b,onInputChange:S,onSelectionChange:C,ref:c,value:p});case"ends":return(0,Ue.jsx)(Sr.ExpandoInput,{...x,className:t,"data-field":i,value:h,ref:c,onChange:S});default:return b.length>0?(0,Ue.jsx)(ve,{InputProps:x,allowBackspaceClearsSelection:!0,allowFreeText:!0,className:t,"data-field":i,initialHighlightedIndex:0,source:b,title:"value",onInputChange:S,onDeselect:s,onSelectionChange:C,ref:c,value:p}):null}},[x,a,t,i,b,S,E,c,p,h,s,C])()});var Pr=require("@vuu-ui/vuu-utils");var Te=require("react");var Ot=null;function $r(){return Ot==null&&(Ot=new Intl.DateTimeFormat().resolvedOptions().timeZone),Ot}var oi=["hours","minutes","seconds"],Ks=["years","months","weeks","days",...oi];var wr=1080,ai=24*wr,li=29,ui=12*wr+793,Zs=li*ai+ui;var Er=require("@vuu-ui/vuu-ui-controls"),it=require("@vuu-ui/vuu-utils"),Mr=require("react/jsx-runtime"),kr=r=>{let{InputProps:e,className:t,onChangeValue:n,operator:i,value:s}=r,o=fi(i),[a,u]=(0,Te.useState)(()=>ci(s)),l=(0,Te.useCallback)((f,h)=>{u(f),f&&h==="calendar"&&n(o(f))},[n,o]),p=(0,Te.useCallback)(()=>{a&&n(o(a))},[a,n,o]),c=(0,Te.useCallback)(f=>{f.key==="Enter"?a&&(0,it.queryClosest)(f.target,".vuuDatePopup")===null&&n(o(a)):f.key==="Tab"&&console.log("better handle tab")},[a,n,o]);return(0,Mr.jsx)(Er.DateInput,{inputProps:e==null?void 0:e.inputProps,className:V("vuuFilterClause-DatePicker",t),selectedDate:a,onBlur:p,onChange:l,onKeyDown:c})};function ci(r){return r?(0,it.toCalendarDate)(new Date(r)):void 0}var fi=r=>(e,t=$r())=>{let n=e.toDate(t);switch(r){case">":case"<=":return n.setHours(23,59,59,999),n.getTime();case">=":case"<":case"=":case"!=":return n.setHours(0,0,0,0),n.getTime()}};var st=require("react/jsx-runtime"),Oe="vuuFilterClause",Tr=({selectedColumn:r,operator:e,InputProps:t,onChangeValue:n,onDeselectValue:i,suggestionProvider:s,table:o,value:a})=>{if(r===void 0||e===void 0)return null;if((0,Pr.isDateTimeColumn)(r))return console.log("return DateInput"),(0,st.jsx)(kr,{InputProps:t,className:V(`${Oe}Field`,`${Oe}Value`),"data-field":"value",value:a,operator:e,onChangeValue:n});switch(r.serverDataType){case"string":case"char":return(0,st.jsx)(Tt,{InputProps:t,className:V(`${Oe}Field`,`${Oe}Value`),column:r,"data-field":"value",onDeselect:i,onChangeValue:n,operator:e,suggestionProvider:s,table:o,value:a});case"int":case"long":case"double":return(0,st.jsx)(Cr,{InputProps:t,className:V(`${Oe}Field`,`${Oe}Value`),column:r,"data-field":"value",onChangeValue:n,operator:e});default:return console.log("returning null"),null}};var ot=require("@vuu-ui/vuu-utils"),hi=["=","in","!=","starts","ends"],di=["=","!=",">",">=","<","<="],Or=r=>{if((0,ot.isTextColumn)(r))return hi;if((0,ot.isNumericColumn)(r))return di;throw Error("getOperators only supports text and numeric columns")};var _r=require("@vuu-ui/vuu-utils"),W=require("react");var De=require("@vuu-ui/vuu-utils"),xe=r=>r==null?void 0:r.closest(".vuuFilterClause"),Ir=r=>r==null?void 0:r.closest(".vuuFilterClauseField"),pi={column:"vuuFilterClauseColumn",operator:"vuuFilterClauseOperator",value:"vuuFilterClauseValue"},mi=({classList:r})=>{if(r.contains("vuuFilterClauseColumn"))return"column";if(r.contains("vuuFilterClauseOperator"))return"operator";if(r.contains("vuuFilterClauseValue"))return"value";throw Error("getFilterClauseField, filterClauseElemnent is missing required class name")},Ar=()=>{let r=document.activeElement,e=(0,De.queryClosest)(r,".vuuFilterClauseField"),t=(0,De.queryClosest)(e,".vuuFilterClause");return t&&e?[(0,De.getElementDataIndex)(t),mi(e)]:[]},ge=r=>{let e=r==null?void 0:r.querySelector("input");e&&(e.focus(),requestAnimationFrame(()=>{e==null||e.select()}))},gi=r=>r!==null&&r.classList.contains("vuuFilterClauseCombinator"),Dt=r=>r!==null&&r.classList.contains("vuuFilterClause"),Nr=(r,e,t="value")=>{if(r){let n=pi[t],i=r.querySelector(`.vuuFilterClause[data-index="${e}"] .${n}`);ge(i)}},Br=r=>{console.log("focusLastClauseValue");let e=Array.from(r==null?void 0:r.querySelectorAll(".vuuFilterClauseField")).at(-1);ge(e)},Ye=(r="fwd")=>{var n;let e=Rr(),t=xe(e);if(r==="fwd"&&(t==null?void 0:t.lastChild)===e)requestAnimationFrame(()=>{Ye()});else{let i=r==="fwd"?e==null?void 0:e.nextElementSibling:e==null?void 0:e.previousElementSibling;(n=i==null?void 0:i.querySelector("input"))==null||n.focus()}},Rr=()=>{let r=document.activeElement;return r!=null&&r.classList.contains("vuuFilterClause-clearButton")?r:Ir(r)},It=()=>{let r=Rr(),e=xe(r);if(e&&r)if(r.classList.contains("vuuFilterClauseValue")){let t=e.querySelector(".vuuFilterClause-clearButton");t==null||t.focus()}else Ye()},yi=r=>r.selectionStart===0,bi=r=>r.selectionStart===r.value.length,Dr=r=>r!=null&&r.classList.contains("vuuFilterClauseColumn")?"column":r!=null&&r.classList.contains("vuuFilterClauseOperator")?"operator":"value",At=r=>{let e=xe(r);if(e)return(0,De.getElementDataIndex)(e)>0},Ci=r=>{let e=xe(r),t=e==null?void 0:e.nextElementSibling;return t==null?void 0:t.classList.contains("vuuFilterClauseCombinator")},Hr=r=>{let t=xe(r).previousSibling;console.log("tab to previous combinator"),t==null||t.focus()},at=(r,e="fwd")=>{if(e==="bwd")if(gi(r)){let t=r.previousElementSibling;if(Dt(t)){let n=t.querySelector(".vuuFilterClauseValue");console.log(`focus field Value ${n==null?void 0:n.classList}`),ge(n)}}else{let i=xe(r).previousSibling.querySelector(".vuuFilterClauseValue");ge(i)}else{let t=r.nextSibling;ge(t)}},Lr=r=>{let e=r.target,t=Ir(e);if(r.key==="ArrowLeft"){if(yi(e))if(Dr(t)==="column"){if(At(e)){let s=xe(t).previousElementSibling;s==null||s.focus()}}else r.preventDefault(),ge(t.previousSibling);r.stopPropagation()}else if(r.key==="ArrowRight"){if(bi(e))if(Dr(t)==="value"){if(Ci(e)){let s=xe(t).nextElementSibling;s==null||s.focus()}return}else r.preventDefault(),ge(t.nextSibling);r.stopPropagation()}},Vr=r=>{let e=Array.from(r.querySelectorAll(".vuuFilterClauseColumn input"));e.every(t=>t.value.length>0)&&setTimeout(()=>{let t=e.at(0);t==null||t.select(),t==null||t.focus()},100)};var Qr=({filterClauseModel:r,onCancel:e,columnsByName:t})=>{var b;let[n,i]=(0,W.useState)(r.isValid?r.asFilter():{});(0,W.useMemo)(()=>{r.on("filterClause",d=>{i(d)})},[r]);let s=(0,W.useRef)(null),o=(0,W.useRef)(null),a=(0,W.useCallback)(d=>{var C;let v=d.target;if(v.value===""){let E=v.closest("[data-field]");switch((C=E==null?void 0:E.dataset)==null?void 0:C.field){case"operator":{r.column=void 0,Ye("bwd");break}case"value":{r.setOp(void 0),Ye("bwd");break}case"column":At(v)&&(d.preventDefault(),e==null||e(r,"Backspace"))}}},[r,e]),u=(0,W.useCallback)((d,v)=>{var C;if((d==null?void 0:d.type)==="keydown"){let{key:E}=d;if(E==="Tab"){if(r.column===v.name)return;d.preventDefault()}}r.column=(C=v==null?void 0:v.name)!=null?C:void 0,setTimeout(()=>{It()},100)},[r]),l=(0,W.useCallback)((d,v)=>{let C=v;if(C===void 0||(0,_r.isValidFilterClauseOp)(C))r.setOp(C),It();else throw Error(`FilterClauseEditor, invalid value ${C} for filter clause`)},[r]),p=(0,W.useCallback)((d,v)=>r.setValue(d,v),[r]),c=(0,W.useCallback)(()=>r.setValue(void 0),[r]),f=(0,W.useCallback)(d=>{["ArrowLeft","ArrowRight"].includes(d.key)?Lr(d):d.key==="Backspace"?a(d):d.key==="Escape"?e==null||e(r,"Escape"):d.key==="Tab"&&d.shiftKey&&(d.preventDefault(),Hr(d.target))},[r,e,a]),h=(0,W.useCallback)(d=>{Dt(d.target)&&ge(d.target)},[]),y=(0,W.useMemo)(()=>({inputProps:{onKeyDownCapture:f,tabIndex:-1}}),[f]);return(0,W.useEffect)(()=>{r.column===void 0&&requestAnimationFrame(()=>{var v;let d=(v=s==null?void 0:s.current)==null?void 0:v.querySelector("input");d==null||d.focus()})},[r]),{InputProps:y,columnRef:s,filterClause:n,onChangeValue:p,onDeselectValue:c,onColumnSelect:u,onFocus:h,onOperatorSelect:l,operatorRef:o,selectedColumn:t[(b=n.column)!=null?b:""]}};var Ae=require("react/jsx-runtime"),Ie="vuuFilterClause",Nt=({className:r,columnsByName:e,onCancel:t,onDropdownClose:n,onDropdownOpen:i,filterClauseModel:s,suggestionProvider:o,tableSchema:a,...u})=>{var S,M;let{InputProps:l,columnRef:p,filterClause:c,onChangeValue:f,onColumnSelect:h,onFocus:y,onDeselectValue:b,onOperatorSelect:d,operatorRef:v,selectedColumn:C}=Qr({filterClauseModel:s,onCancel:t,columnsByName:e}),E=(0,Ur.useMemo)(()=>Object.values(e),[e]);return(0,Ae.jsxs)("div",{className:V(Ie,r),...u,onFocus:y,tabIndex:0,children:[(0,Ae.jsx)(ve,{InputProps:l,allowBackspaceClearsSelection:!0,className:V(`${Ie}Field`,`${Ie}Column`),"data-field":"column",initialHighlightedIndex:0,itemToString:x=>x.name,onListItemSelect:h,ref:p,source:E,title:"column",value:c.column},"column-field"),C!=null&&C.name?(0,Ae.jsx)(ve,{InputProps:l,allowBackspaceClearsSelection:!0,className:V(`${Ie}Field`,`${Ie}Operator`,{[`${Ie}Operator-hidden`]:C===null}),"data-field":"operator",initialHighlightedIndex:0,onListItemSelect:d,ref:v,source:Or(C),title:"operator",value:(S=c.op)!=null?S:""},"operator-field"):null,(0,Ae.jsx)(Tr,{InputProps:l,onChangeValue:f,onDeselectValue:b,operator:c.op,selectedColumn:C,suggestionProvider:o,table:a.table,value:(M=c==null?void 0:c.values)!=null?M:c==null?void 0:c.value},"value-field")]})};var Yr=require("@vuu-ui/vuu-ui-controls"),zr=require("react");var qr=require("react/jsx-runtime"),vi="vuuFilterClauseCombinator",Wr=({onChange:r,onKeyDown:e,operator:t})=>{let n=(0,zr.useCallback)(i=>{r(i)},[r]);return(0,qr.jsx)(Yr.CycleStateButton,{className:vi,onChange:n,onKeyDown:e,value:t,values:["and","or"],variant:"primary"})};var B=require("react");var Jr=({columnDescriptors:r,filter:e,onCancel:t,onSave:n})=>{let i=(0,B.useMemo)(()=>new $e(e),[e]),[s,o]=(0,B.useState)({}),[a,u]=(0,B.useState)(i.isValid),l=(0,B.useRef)(void 0),p=(0,B.useRef)(null),c=(0,B.useRef)(null),f=(0,B.useCallback)(F=>{c.current=F,F&&Vr(F)},[]),h=(0,B.useCallback)((F,m)=>{switch(l.current){case"and":return[{action:"and-clause",label:"AND",options:m}];case"or":return[{action:"or-clause",label:"OR",options:m}];default:return[{action:"and-clause",label:"AND",options:m},{action:"or-clause",label:"OR",options:m}]}},[]),y=(0,B.useMemo)(()=>xi(r),[r]),b=(0,B.useCallback)(F=>F!==void 0&&i.filterClauses.length===F+1,[i]);(0,B.useMemo)(()=>{let F=g=>{u(g)},m=(g,k)=>{if(k){let[L,I]=Ar();I==="value"&&b(L)&&requestAnimationFrame(()=>{var _;(_=p.current)==null||_.focus()})}};i.on("isValid",F),i.on("filter",m)},[i,b]);let d=(0,B.useCallback)((F,m)=>{if(m==="Backspace"){let g=i.filterClauses.indexOf(F);i.removeFilterClause(F),o({}),m==="Backspace"&&c.current&&g>0&&Nr(c.current,g-1)}else console.log(`cancel because of Escape valid clause ${F.isValid}`),t(e)},[e,i,t]),v=(0,B.useCallback)(({menuId:F})=>{switch(F){case"save":{let m=i.asFilter(),g=e!=null&&e.name?{...m,name:e.name}:m;return n(g),!0}case"and-clause":return l.current="and",i.addNewFilterClause("and"),!0;case"or-clause":return l.current="or",i.addNewFilterClause("or"),!0;default:return!1}},[e==null?void 0:e.name,i,n]),C=(0,B.useCallback)(F=>{if(F.key==="Tab"&&F.shiftKey){F.preventDefault();let g=F.target.closest(".vuuFilterEditor");Br(g)}else F.key==="Escape"&&t(e)},[e,t]),E=(0,B.useCallback)(F=>{let{target:m,key:g,shiftKey:k}=F;g==="ArrowLeft"?(F.preventDefault(),at(m,"bwd")):g==="ArrowRight"?(F.preventDefault(),at(m,"fwd")):g==="Tab"&&k&&(F.preventDefault(),at(m,"bwd"))},[]),S=(0,B.useMemo)(()=>()=>v({menuId:"save",options:{},type:"menu-action"}),[v]),M={PopupMenuProps:{icon:"more-vert",menuBuilder:h,menuActionHandler:v,menuLocation:"filter-save-menu"},onClick:S,onKeyDown:C},x=(0,B.useCallback)(F=>{i.setOp(F),l.current=F,o({})},[i]),$=(0,B.useCallback)(()=>{t(e)},[e,t]);return{columnsByName:y,filterModel:i,isValid:a,onCancelFilterClause:d,onCancelFilterEdit:$,onChangeFilterCombinator:x,onKeyDownCombinator:E,saveButtonProps:M,saveButtonRef:p,setContainer:f}};function xi(r){return r.reduce((e,t)=>({...e,[t.name]:t}),{})}var Zr=require("@salt-ds/core"),ze=require("react/jsx-runtime"),Bt=require("react"),Fi="vuuFilterEditor",Rt=({FilterClauseEditorProps:r,columnDescriptors:e,filter:t,onCancel:n,onSave:i,tableSchema:s,...o})=>{let{columnsByName:a,filterModel:u,setContainer:l,onCancelFilterClause:p,onCancelFilterEdit:c,onChangeFilterCombinator:f,onKeyDownCombinator:h,saveButtonRef:y,saveButtonProps:b}=Jr({columnDescriptors:e,filter:t,onCancel:n,onSave:i});return(0,ze.jsxs)("div",{...o,className:Fi,ref:l,children:[(()=>{let{op:v}=u,C=[];return u.filterClauses.forEach((E,S)=>{S>0&&v&&C.push((0,ze.jsx)(Wr,{onChange:f,onKeyDown:h,operator:v},`filter-operator-${S}`)),C.push((0,Bt.createElement)(Nt,{...r,columnsByName:a,"data-index":S,filterClauseModel:E,key:`editor-${S}`,onCancel:p,tableSchema:s}))}),C})(),(0,Bt.createElement)(Kr.SplitButton,{...b,disabled:!u.isValid,key:"save-button",ref:y},"Save"),(0,ze.jsx)(Zr.Button,{onClick:c,variant:"secondary",children:"Cancel"})]})};var ht=require("@vuu-ui/vuu-popups"),dt=require("@vuu-ui/vuu-ui-controls"),dn=require("@vuu-ui/vuu-utils");var de=require("react");var lt=require("@vuu-ui/vuu-utils");var Gr=require("@vuu-ui/vuu-utils"),Si=(r,e)=>{var n;let t=e==null?void 0:e[r.column];return t?(n=t.label)!=null?n:t.name:r.column},We=r=>e=>(0,Gr.isMultiClauseFilter)(e)?e.filters.map(t=>We(r)(t)).join(", "):Si(e,r);var qe=require("react/jsx-runtime"),Ht=(r,e=We())=>{if((0,lt.isMultiClauseFilter)(r)){let t=r.op==="and"?"Match all ...":"Match any ...";return(0,qe.jsxs)("ul",{children:[(0,qe.jsx)("span",{children:t}),r.filters.map((n,i)=>(0,qe.jsx)("li",{children:Ht(n,e)},i))]})}else if((0,lt.isMultiValueFilter)(r))if(r.values.length>3){let t=r.values.slice(0,3);return`${e({...r,values:t}).slice(0,-1)},...]`}else return e(r);else return e(r)};var jr=r=>({label:"Close",location:"filter",action:"close-filter",options:r}),Xr=r=>({label:"Delete",location:"filter",action:"delete-filter",options:r}),en=r=>({label:"Rename",location:"filter",action:"rename-filter",options:r}),tn=r=>({label:"Edit",location:"filter",action:"edit-filter",options:r});var te=require("@vuu-ui/vuu-utils");var D=require("@vuu-ui/vuu-utils"),K="and",ut="=",$i=">",wi="<",rn="or",Lt="starts",Ei="ends",nn="in",ft=(r,e=[])=>(r&&((0,D.isMultiClauseFilter)(r)?r.filters.forEach(t=>e.push(...ft(t))):e.push(r)),e),sn={combineWith:"and"},ki=r=>{let{filters:e}=r;return e.length>2?{...r,filters:r.filters.slice(0,-1)}:r.filters[0]},Mi=(r,e,{combineWith:t=K}=sn)=>(0,D.isMultiClauseFilter)(r)&&r.op===t?{...r,filters:r.filters.concat(e)}:{op:t,filters:[r,e]},Pi=(r,e,{combineWith:t=K}=sn)=>{var n;if(_t(e))(0,D.isMultiClauseFilter)(e)||(r=Vt(r,{name:e.column}));else if(Ti(e))return(0,D.isMultiClauseFilter)(e),Vt(r,{name:(n=e.column)!=null?n:""});if(!r)return e;if(!e)return r;if(r.op===K&&e.op===K)return{op:K,filters:Ii(r.filters,e.filters)};if(r.op===K){let i=Oi(r.filters,e);return i.length>1?{op:K,filters:i}:i[0]}return e.op===K?{op:K,filters:e.filters.concat(r)}:ct(r,e,!0)?e:ln(r,e)?Di(r,e):{op:t,filters:[r,e]}},_t=r=>r?(0,D.isInFilter)(r)&&r.values.length===0?!0:(0,D.isAndFilter)(r)&&r.filters.some(e=>_t(e)):!1,Ti=r=>r?r.op===Lt&&r.value===""?!0:r.op===Lt&&r.value==="":!1,Oi=(r,e)=>r.concat(e),Di=(r,e)=>_t(e)?e:(0,D.isInFilter)(r)&&(0,D.isInFilter)(e)?{...r,values:[...r.values,...e.values.filter(t=>!r.values.includes(t))]}:(0,D.isInFilter)(r)&&e.op===ut?{...r,values:r.values.concat([e.value])}:r.op===ut&&e.op===ut?{column:r.column,op:nn,values:[r.value,e.value]}:e,Ii=(r,e)=>{let t=({op:s},{op:o})=>s===o||s[0]===">"&&o[0]===">"||s[0]==="<"&&o[0]==="<",n=(s,o)=>s.column===o.column&&t(s,o),i=s=>e.some(o=>n(s,o))===!1;return r.filter(i).concat(e)},Ai=(r,e)=>{if(ct(r,e,!0))return null;if(r.op!==K)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(r)}`);let t=r.filters.filter(n=>!ct(n,e));return t.length>0?{type:K,filters:t}:null},Ni=(r,e)=>{if(!e)return[void 0,void 0];if(e.column===r)return[e,void 0];if(e.op!==K)return[void 0,e];let[[t=void 0],n]=(0,D.partition)(e.filters,i=>i.column===r);return n.length===1?[t,n[0]]:[t,{op:K,filters:n}]},on=(r,e)=>(0,D.isMultiClauseFilter)(r)?{op:r.op,filters:r.filters.map(t=>on(t,e))}:{...r,column:e},an=(r,e)=>{if(!r)return!1;let{op:t,column:n}=r;switch(t){case K:case rn:return r.filters!=null&&r.filters.some(i=>an(i,e));default:return n===e.name}},Vt=(r,e)=>{let t=e.name;if(r&&r.column!==t){if((0,D.isAndFilter)(r)||(0,D.isOrFilter)(r)){let{op:n}=r,s=r.filters.filter(o=>o.column!==t);switch(s.length){case 0:return;case 1:return s[0];default:return{op:n,filters:s}}}return r}},ln=(r,e)=>r.column===e.column&&(r.op==="="||r.op==="in")&&(e.op==="="||e.op==="in"),Bi=(r,e)=>{if(r===e)return!0;if(r.length===e.length){let t=r.slice().sort(),n=e.slice().sort();return t.join("|")===n.join("|")}return!1},ct=(r,e,t=!1)=>t?r&&e&&ln(r,e)?r.op===e.op&&((0,D.isSingleValueFilter)(r)&&(0,D.isSingleValueFilter)(e)&&r.value===e.value||(0,D.isMultiValueFilter)(r)&&(0,D.isMultiValueFilter)(e)&&Bi(r.values,e.values)):!1:!0,un=(r,e,t)=>{if(r&&e){if(t==="replace")return e;if(r.op==="and")return{...r,filters:r.filters.concat(e)};let{column:n}=e;if(n&&(e.column?(0,D.extractFilterForColumn)(r,n):void 0)&&n){let s=Vt(r,{name:n});return un(s,e,"add")}return{op:"and",filters:[r,e]}}return e||r},Ri=(r,e,t)=>{if(e.length!==0){if(t){let n=e[0].substring(0,e[0].length-3);return{column:r,op:"starts",value:`"${n}"`}}return{column:r,op:"in",values:e.map(n=>`"${n}"`)}}},Hi=(r,e,t)=>{if(e!==void 0&&!(t===void 0||isNaN(t)))return{column:r,op:e,value:t}};function Li(r,e){return"value"in r?{...r,value:e(r.value)}:{...r,values:r.values.map(e)}}function cn(r,e){let t=e==null?void 0:e[r.column];if(t&&(0,te.isDateTimeColumn)(t)){let n=(0,te.dateTimePattern)(t.type);return Li(r,s=>{var o;return(0,te.formatDate)({date:(o=n.date)!=null?o:te.defaultPatternsByType.date})(new Date(s))})}return r}var fn=r=>e=>{if((0,te.isMultiClauseFilter)(e)){let[t]=ft(e),n=cn(t,r);return`${(0,te.filterAsQuery)(n)} ${e.op} ...`}else return(0,te.filterAsQuery)(cn(e,r))};var Je=require("react/jsx-runtime"),hn="vuuFilterPill",Qt=({allowClose:r=!0,allowDelete:e=!0,allowEdit:t=!0,allowRename:n=!0,className:i,columnsByName:s,editable:o=!0,editing:a=!1,editLabelApiRef:u,filter:l,id:p,onBeginEdit:c,onExitEditMode:f,onMenuAction:h,...y})=>{let b=(0,de.useRef)(null),d=(0,de.useCallback)(()=>{c==null||c(l)},[l,c]),v=We(s),C=(0,de.useMemo)(()=>{var I;return(I=l.name)!=null?I:v(l)},[v,l]),E=fn(s),S=(0,dn.useId)(p),M=(0,de.useCallback)(I=>{(I==null?void 0:I.type)==="escape"&&requestAnimationFrame(()=>{b.current&&b.current.focus()})},[]),x=(0,de.useMemo)(()=>({icon:"more-vert",menuBuilder:(I,_)=>{let Q=[];return n&&Q.push(en(_)),t&&Q.push(tn(_)),r&&Q.push(jr(_)),e&&Q.push(Xr(_)),Q},menuActionHandler:h,menuLocation:"filter-pill-menu",menuOptions:{filter:l},onMenuClose:M}),[r,e,t,n,l,M,h]),$=(0,de.useCallback)((I,_)=>{f==null||f(I,_),requestAnimationFrame(()=>{var Q,Z;(Z=(Q=b.current)==null?void 0:Q.querySelector("button"))==null||Z.focus()})},[f]),{anchorProps:F,hideTooltip:m,showTooltip:g,tooltipProps:k}=(0,ht.useTooltip)({anchorQuery:".vuuFilterPill",id:S,placement:["above","below"],tooltipContent:Ht(l,E)}),L={onBlur:m,onFocus:(0,de.useCallback)(()=>{g(b)},[g])};return(0,Je.jsxs)(dt.SplitStateButton,{...F,...y,ButtonProps:L,PopupMenuProps:x,className:V(hn,i),"data-text":C,ref:b,children:[o&&f?(0,Je.jsx)(dt.EditableLabel,{defaultValue:C,editing:a,editLabelApiRef:u,onEnterEditMode:d,onExitEditMode:$},C):C,k&&(0,Je.jsx)(ht.Tooltip,{className:`${hn}-tooltip`,...k})]})};var pn=require("@vuu-ui/vuu-popups"),Ut=require("react/jsx-runtime"),mn=()=>(0,Ut.jsx)("div",{className:"vuuFilterBarMenu",children:(0,Ut.jsx)(pn.PopupMenu,{icon:"tune",menuLocation:"filter-bar-menu",tabIndex:-1})});var vn=require("@vuu-ui/vuu-ui-controls"),mt=require("@vuu-ui/vuu-utils"),N=require("react");var Ee=require("react"),gn=require("@vuu-ui/vuu-ui-controls"),Vi=(r,e,t)=>r.includes(e)?t?r.filter(i=>i!==e):[]:t?r.concat(e):[e],yn=({defaultFilterState:r,onFilterDeleted:e,onFilterRenamed:t,onFilterStateChanged:n,filterState:i})=>{let[s,o]=(0,gn.useControlled)({controlled:i,default:r!=null?r:{filters:[],activeIndices:[]},name:"useFilterState",state:"FilterState"}),a=(0,Ee.useCallback)(h=>{o(h),n==null||n(h)},[n,o]),u=(0,Ee.useCallback)(h=>{let y=s.filters.length,b=s.filters.concat(h),d=_i(s.activeIndices,y);return a({filters:b,activeIndices:d}),y},[s,a]),l=(0,Ee.useCallback)(h=>{let y=-1,b=s.filters.filter((v,C)=>v!==h?!0:(y=C,!1)),d=Qi(s.activeIndices,y);return a({filters:b,activeIndices:d}),e==null||e(h),y},[s.filters,s.activeIndices,a,e]),p=(0,Ee.useCallback)((h,y)=>{let b=-1,d=s.filters.map((v,C)=>v===h?(b=C,{...h,name:y}):v);return a({...s,filters:d}),t==null||t(h,y),b},[s,a,t]),c=(0,Ee.useCallback)((h,y)=>{let b=-1,d=s.filters.map((v,C)=>v===h?(b=C,y):v);return a({...s,filters:d}),b},[s,a]),f=(0,Ee.useCallback)((h,y=!1)=>{a({...s,activeIndices:Vi(s.activeIndices,h,y)})},[s,a]);return{activeFilterIndex:s.activeIndices,filters:s.filters,onToggleFilterActive:f,onAddFilter:u,onChangeFilter:c,onDeleteFilter:l,onRenameFilter:p}},_i=(r,e)=>r.includes(e)?r:r.concat(e),Qi=(r,e)=>r.reduce((t,n)=>n===e?t:t.concat(n>e?n-1:n),[]);var pt=require("react"),bn=require("@vuu-ui/vuu-utils");function Cn({activeFilterIndex:r,columnsByName:e,filters:t,onApplyFilter:n}){let i=(0,pt.useCallback)(s=>{let o=s?(0,bn.filterAsQuery)(s,{columnsByName:e}):"";n({filter:o,filterStruct:s})},[e,n]);(0,pt.useEffect)(()=>{let s=r.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})},[r,i,t])}var pe=require("@vuu-ui/vuu-utils"),Yt=(r,e="fwd")=>{let t=(0,pe.queryClosest)(r,".vuuFilterPill");if(t){let n=(0,pe.getElementDataIndex)(t);if(typeof n=="number"){let i=e==="fwd"?(0,pe.getElementByDataIndex)(t.parentElement,n+1):(0,pe.getElementByDataIndex)(t.parentElement,n-1);if(i)i.focus();else if(e==="fwd"){console.log("to the button");let s=(0,pe.queryClosest)(r,".vuuFilterBar"),o=s==null?void 0:s.querySelector(".vuuFilterBar-add");o==null||o.focus()}}}else if((0,pe.queryClosest)(r,".vuuFilterBar-add")){let i=(0,pe.queryClosest)(r,".vuuFilterBar"),s=i==null?void 0:i.querySelector(".vuuFilterPill:last-child");s==null||s.focus()}};var xn=({columnDescriptors:r,containerRef:e,defaultFilterState:t,filterState:n,onApplyFilter:i,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a})=>{let u=(0,N.useRef)(null),[l,p]=(0,N.useState)(),[c,f]=(0,N.useState)(null),h=(0,N.useRef)(vn.NullEditAPI),y=(0,N.useMemo)(()=>Ui(r),[r]),{activeFilterIndex:b,filters:d,onAddFilter:v,onChangeFilter:C,onDeleteFilter:E,onRenameFilter:S,onToggleFilterActive:M}=yn({defaultFilterState:t,filterState:n,onFilterDeleted:s,onFilterRenamed:o,onFilterStateChanged:a});Cn({activeFilterIndex:b,columnsByName:y,filters:d,onApplyFilter:i});let x=(0,N.useCallback)((P,T)=>{setTimeout(()=>{p({filter:T,index:P,state:"rename"})},100)},[]),$=(0,N.useCallback)((P=0)=>{requestAnimationFrame(()=>{var A;let T=(A=e.current)==null?void 0:A.querySelector(`.vuuFilterPill[data-index="${P}"] button`);T&&T.focus()})},[e]),F=(0,N.useCallback)(P=>{E(P),requestAnimationFrame(()=>{d.length&&$(0)})},[d.length,$,E]),m=(0,N.useMemo)(()=>P=>{let T=()=>{f(null),$()};return{confirmButtonLabel:"Remove",icon:"warn-triangle",onCancel:T,onClose:T,onConfirm:()=>{f(null),F(P)},text:`Are you sure you want to delete ${P.name}`,title:"Remove Filter",variant:"warn"}},[F,$]),g=(0,N.useCallback)((P,T)=>{T?f(m(P)):F(P)},[F,m]),k=(0,N.useCallback)((P,T="")=>{if((l==null?void 0:l.state)==="rename"&&l.filter){let{filter:A}=l,Ve=S(A,T);p(void 0),$(Ve)}p(void 0)},[$,l,S]),L=(0,N.useCallback)(({menuId:P,options:T})=>{switch(P){case"delete-filter":{let{filter:A}=T;return g(A,!0),!0}case"rename-filter":{let{filter:A}=T,Ve=d.indexOf(A);return x(Ve,A),!0}case"edit-filter":{let{filter:A}=T;return p({filter:A,index:d.indexOf(A),state:"edit"}),!0}default:return!1}},[g,x,d]),I=(0,N.useCallback)(P=>{(P.key==="ArrowRight"||P.key==="ArrowLeft")&&Yt(P.target,P.key==="ArrowLeft"?"bwd":"fwd")},[]),_=(0,N.useCallback)((P,T)=>{if(T===void 0){let A=v(P);$(A),x(A,P)}else{let A=C(T,P);$(A)}},[x,$,v,C]),Q=(0,N.useCallback)(P=>{if(l){let{filter:T}=l;p(void 0),_(P,T)}},[_,l]),Z=(0,N.useCallback)(P=>{if(!P.target.querySelector(".vuuEditableLabel-editing")){let A=(0,mt.queryClosest)(P.target,".vuuFilterPill");if(A){let Ve=(0,mt.getElementDataIndex)(A);M(Ve,P.shiftKey)}}},[M]),rt={editLabelApiRef:h,onClick:Z,onKeyDown:I,onMenuAction:L,onExitEditMode:k},ce=(0,N.useCallback)(()=>{p({index:-1,state:"create"})},[]),X=(0,N.useCallback)(P=>{P.key==="ArrowLeft"&&Yt(P.target,"bwd")},[]),se=(0,N.useCallback)(()=>{var P;if(l){let{index:T}=l;T===-1?(P=u.current)==null||P.focus():$(T),p(void 0)}},[$,l]);return{activeFilterIndex:b,addButtonProps:{ref:u,onClick:ce,onKeyDown:X},columnsByName:y,filters:d,interactedFilterState:l,onCancelEdit:se,onSave:Q,pillProps:rt,promptProps:c}};function Ui(r){return r.reduce((e,t)=>({...e,[t.name]:t}),{})}var re=require("react/jsx-runtime"),Wt=require("react"),zt="vuuFilterBar",Yi=({FilterClauseEditorProps:r,className:e,columnDescriptors:t,defaultFilterState:n,filterState:i,onApplyFilter:s,onFilterDeleted:o,onFilterRenamed:a,onFilterStateChanged:u,tableSchema:l,...p})=>{let c=(0,Sn.useRef)(null),{activeFilterIndex:f,addButtonProps:h,columnsByName:y,filters:b,interactedFilterState:d,onCancelEdit:v,onSave:C,pillProps:E,promptProps:S}=xn({containerRef:c,columnDescriptors:t,defaultFilterState:n,filterState:i,onApplyFilter:s,onFilterStateChanged:u,onFilterDeleted:o,onFilterRenamed:a}),M=V(zt,e),x=(d==null?void 0:d.state)==="rename"?d.index:-1,$=(d==null?void 0:d.state)==="edit"||(d==null?void 0:d.state)==="create"?new $e(d.filter):void 0,F=()=>{let m=[];return b.forEach((g,k)=>{m.push((0,Wt.createElement)(Qt,{...E,editing:x===k,columnsByName:y,"data-index":k,filter:g,key:`filter-${k}`,selected:f.includes(k)}))}),m};return(0,re.jsxs)("div",{...p,className:M,ref:c,children:[(0,re.jsx)(mn,{}),(0,re.jsxs)(re.Fragment,{children:[(0,re.jsx)("div",{className:`${zt}-filters`,children:F()}),(0,Wt.createElement)(Fn.IconButton,{...h,className:V("vuuIconButton",`${zt}-add`),"data-selectable":!1,icon:"plus",key:"filter-add",tabIndex:0,variant:"primary"})]}),$&&l&&(0,re.jsx)(Ne.Portal,{children:(0,re.jsx)(Ne.PopupComponent,{anchorElement:c,offsetTop:-10,offsetLeft:20,placement:"below",children:(0,re.jsx)(Rt,{FilterClauseEditorProps:r,columnDescriptors:t,onCancel:v,onSave:C,filter:d==null?void 0:d.filter,tableSchema:l},"filter-editor")})}),S?(0,re.jsx)(Ne.Prompt,{...S,PopupProps:{anchorElement:c,offsetTop:16,placement:"below-center"}}):null]})};var fr=require("@salt-ds/core");var H=require("@vuu-ui/vuu-codemirror");var zi=0,Ke=class{constructor(e,t){this.from=e,this.to=t}},O=class{constructor(e={}){this.id=zi++,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=ne.match(e)),t=>{let n=e(t);return n===void 0?null:[this,n]}}};O.closedBy=new O({deserialize:r=>r.split(" ")});O.openedBy=new O({deserialize:r=>r.split(" ")});O.group=new O({deserialize:r=>r.split(" ")});O.contextHash=new O({perNode:!0});O.lookAhead=new O({perNode:!0});O.mounted=new O({perNode:!0});var Wi=Object.create(null),ne=class r{constructor(e,t,n,i=0){this.name=e,this.props=t,this.id=n,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):Wi,n=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new r(e.name||"",t,e.id,n);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(O.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let n in e)for(let i of n.split(" "))t[i]=e[n];return n=>{for(let i=n.prop(O.group),s=-1;s<(i?i.length:0);s++){let o=t[s<0?n.name:i[s]];if(o)return o}}}};ne.none=new ne("",Object.create(null),0,8);var bt=class r{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let n of this.types){let i=null;for(let s of e){let o=s(n);o&&(i||(i=Object.assign({},n.props)),i[o[0].id]=o[1])}t.push(i?new ne(n.name,i,n.id,n.flags):n)}return new r(t)}},gt=new WeakMap,$n=new WeakMap,q;(function(r){r[r.ExcludeBuffers=1]="ExcludeBuffers",r[r.IncludeAnonymous=2]="IncludeAnonymous",r[r.IgnoreMounts=4]="IgnoreMounts",r[r.IgnoreOverlays=8]="IgnoreOverlays"})(q||(q={}));var G=class r{constructor(e,t,n,i,s){if(this.type=e,this.children=t,this.positions=n,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(O.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let n of this.children){let i=n.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 Re(this.topNode,e)}cursorAt(e,t=0,n=0){let i=gt.get(this)||this.topNode,s=new Re(i);return s.moveTo(e,t),gt.set(this,s._tree),s}get topNode(){return new Me(this,0,0,null)}resolve(e,t=0){let n=Be(gt.get(this)||this.topNode,e,t,!1);return gt.set(this,n),n}resolveInner(e,t=0){let n=Be($n.get(this)||this.topNode,e,t,!0);return $n.set(this,n),n}iterate(e){let{enter:t,leave:n,from:i=0,to:s=this.length}=e,o=e.mode||0,a=(o&q.IncludeAnonymous)>0;for(let u=this.cursor(o|q.IncludeAnonymous);;){let l=!1;if(u.from<=s&&u.to>=i&&(!a&&u.type.isAnonymous||t(u)!==!1)){if(u.firstChild())continue;l=!0}for(;l&&n&&(a||!u.type.isAnonymous)&&n(u),!u.nextSibling();){if(!u.parent())return;l=!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:Gt(ne.none,this.children,this.positions,0,this.children.length,0,this.length,(t,n,i)=>new r(this.type,t,n,i,this.propValues),e.makeTree||((t,n,i)=>new r(ne.none,t,n,i)))}static build(e){return qi(e)}};G.empty=new G(ne.none,[],[],0);var qt=class r{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 r(this.buffer,this.index)}},ke=class r{constructor(e,t,n){this.buffer=e,this.length=t,this.set=n}get type(){return ne.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],n=this.buffer[e+3],i=this.set.types[t],s=i.name;if(/\W/.test(s)&&!i.isError&&(s=JSON.stringify(s)),e+=4,n==e)return s;let o=[];for(;e<n;)o.push(this.childString(e)),e=this.buffer[e+3];return s+"("+o.join(",")+")"}findChild(e,t,n,i,s){let{buffer:o}=this,a=-1;for(let u=e;u!=t&&!(En(s,i,o[u+1],o[u+2])&&(a=u,n>0));u=o[u+3]);return a}slice(e,t,n){let i=this.buffer,s=new Uint16Array(t-e),o=0;for(let a=e,u=0;a<t;){s[u++]=i[a++],s[u++]=i[a++]-n;let l=s[u++]=i[a++]-n;s[u++]=i[a++]-e,o=Math.max(o,l)}return new r(s,o,this.set)}};function En(r,e,t,n){switch(r){case-2:return t<e;case-1:return n>=e&&t<e;case 0:return t<e&&n>e;case 1:return t<=e&&n>e;case 2:return n>e;case 4:return!0}}function kn(r,e){let t=r.childBefore(e);for(;t;){let n=t.lastChild;if(!n||n.to!=t.to)break;n.type.isError&&n.from==n.to?(r=t,t=n.prevSibling):t=n}return r}function Be(r,e,t,n){for(var i;r.from==r.to||(t<1?r.from>=e:r.from>e)||(t>-1?r.to<=e:r.to<e);){let o=!n&&r instanceof Me&&r.index<0?null:r.parent;if(!o)return r;r=o}let s=n?0:q.IgnoreOverlays;if(n)for(let o=r,a=o.parent;a;o=a,a=o.parent)o instanceof Me&&o.index<0&&((i=a.enter(e,t,s))===null||i===void 0?void 0:i.from)!=o.from&&(r=a);for(;;){let o=r.enter(e,t,s);if(!o)return r;r=o}}var Me=class r{constructor(e,t,n,i){this._tree=e,this.from=t,this.index=n,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,n,i,s=0){for(let o=this;;){for(let{children:a,positions:u}=o._tree,l=t>0?a.length:-1;e!=l;e+=t){let p=a[e],c=u[e]+o.from;if(En(i,n,c,c+p.length)){if(p instanceof ke){if(s&q.ExcludeBuffers)continue;let f=p.findChild(0,p.buffer.length,t,n-c,i);if(f>-1)return new Ze(new Jt(o,p,e,c),null,f)}else if(s&q.IncludeAnonymous||!p.type.isAnonymous||Zt(p)){let f;if(!(s&q.IgnoreMounts)&&p.props&&(f=p.prop(O.mounted))&&!f.overlay)return new r(f.tree,c,e,o);let h=new r(p,c,e,o);return s&q.IncludeAnonymous||!h.type.isAnonymous?h:h.nextChild(t<0?p.children.length-1:0,t,n,i)}}}if(s&q.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,n=0){let i;if(!(n&q.IgnoreOverlays)&&(i=this._tree.prop(O.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 r(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,n)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Re(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Be(this,e,t,!1)}resolveInner(e,t=0){return Be(this,e,t,!0)}enterUnfinishedNodesBefore(e){return kn(this,e)}getChild(e,t=null,n=null){let i=Ct(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return Ct(this,e,t,n)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return vt(this,e)}};function Ct(r,e,t,n){let i=r.cursor(),s=[];if(!i.firstChild())return s;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return s}for(;;){if(n!=null&&i.type.is(n))return s;if(i.type.is(e)&&s.push(i.node),!i.nextSibling())return n==null?s:[]}}function vt(r,e,t=e.length-1){for(let n=r.parent;t>=0;n=n.parent){if(!n)return!1;if(!n.type.isAnonymous){if(e[t]&&e[t]!=n.name)return!1;t--}}return!0}var Jt=class{constructor(e,t,n,i){this.parent=e,this.buffer=t,this.index=n,this.start=i}},Ze=class r{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,n){this.context=e,this._parent=t,this.index=n,this.type=e.buffer.set.types[e.buffer.buffer[n]]}child(e,t,n){let{buffer:i}=this.context,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,n);return s<0?null:new r(this.context,this,s)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,n=0){if(n&q.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 r(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 r(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 r(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Re(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:n}=this.context,i=this.index+4,s=n.buffer[this.index+3];if(s>i){let o=n.buffer[this.index+1];e.push(n.slice(i,s,o)),t.push(0)}return new G(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Be(this,e,t,!1)}resolveInner(e,t=0){return Be(this,e,t,!0)}enterUnfinishedNodesBefore(e){return kn(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,n=null){let i=Ct(this,e,t,n);return i.length?i[0]:null}getChildren(e,t=null,n=null){return Ct(this,e,t,n)}get node(){return this}matchContext(e){return vt(this,e)}},Re=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 Me)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let n=e._parent;n;n=n._parent)this.stack.unshift(n.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:n,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=n+i.buffer[e+1],this.to=n+i.buffer[e+2],!0}yield(e){return e?e instanceof Me?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,n){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,n,this.mode));let{buffer:i}=this.buffer,s=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,n);return s<0?!1:(this.stack.push(this.index),this.yieldBuf(s))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,n=this.mode){return this.buffer?n&q.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,n))}parent(){if(!this.buffer)return this.yieldNode(this.mode&q.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&q.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,n=this.stack.length-1;if(e<0){let i=n<0?0:this.stack[n]+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<(n<0?t.buffer.length:t.buffer[this.stack[n]+3]))return this.yieldBuf(i)}return n<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,n,{buffer: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:n}=i)}else({index:t,_parent:n}=this._tree);for(;n;{index:t,_parent:n}=n)if(t>-1)for(let s=t+e,o=e<0?-1:n._tree.children.length;s!=o;s+=e){let a=n._tree.children[s];if(this.mode&q.IncludeAnonymous||a instanceof ke||!a.type.isAnonymous||Zt(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,n=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,n=s+1;break e}i=this.stack[--s]}for(let i=n;i<this.stack.length;i++)t=new Ze(this.buffer,t,this.stack[i]);return this.bufferNode=new Ze(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let n=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){n++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!n)return;this.parent(),n--,i=!0}}}matchContext(e){if(!this.buffer)return vt(this.node,e);let{buffer:t}=this.buffer,{types:n}=t.set;for(let i=e.length-1,s=this.stack.length-1;i>=0;s--){if(s<0)return vt(this.node,e,i);let o=n[t.buffer[this.stack[s]]];if(!o.isAnonymous){if(e[i]&&e[i]!=o.name)return!1;i--}}return!0}};function Zt(r){return r.children.some(e=>e instanceof ke||!e.type.isAnonymous||Zt(e))}function qi(r){var e;let{buffer:t,nodeSet:n,maxBufferLength:i=1024,reused:s=[],minRepeatType:o=n.types.length}=r,a=Array.isArray(t)?new qt(t,t.length):t,u=n.types,l=0,p=0;function c(S,M,x,$,F){let{id:m,start:g,end:k,size:L}=a,I=p;for(;L<0;)if(a.next(),L==-1){let ce=s[m];x.push(ce),$.push(g-S);return}else if(L==-3){l=m;return}else if(L==-4){p=m;return}else throw new RangeError(`Unrecognized record size: ${L}`);let _=u[m],Q,Z,rt=g-S;if(k-g<=i&&(Z=b(a.pos-M,F))){let ce=new Uint16Array(Z.size-Z.skip),X=a.pos-Z.size,se=ce.length;for(;a.pos>X;)se=d(Z.start,ce,se);Q=new ke(ce,k-Z.start,n),rt=Z.start-S}else{let ce=a.pos-L;a.next();let X=[],se=[],be=m>=o?m:-1,P=0,T=k;for(;a.pos>ce;)be>=0&&a.id==be&&a.size>=0?(a.end<=T-i&&(h(X,se,g,P,a.end,T,be,I),P=X.length,T=a.end),a.next()):c(g,ce,X,se,be);if(be>=0&&P>0&&P<X.length&&h(X,se,g,P,g,T,be,I),X.reverse(),se.reverse(),be>-1&&P>0){let A=f(_);Q=Gt(_,X,se,0,X.length,0,k-g,A,A)}else Q=y(_,X,se,k-g,I-k)}x.push(Q),$.push(rt)}function f(S){return(M,x,$)=>{let F=0,m=M.length-1,g,k;if(m>=0&&(g=M[m])instanceof G){if(!m&&g.type==S&&g.length==$)return g;(k=g.prop(O.lookAhead))&&(F=x[m]+g.length+k)}return y(S,M,x,$,F)}}function h(S,M,x,$,F,m,g,k){let L=[],I=[];for(;S.length>$;)L.push(S.pop()),I.push(M.pop()+x-F);S.push(y(n.types[g],L,I,m-F,k-m)),M.push(F-x)}function y(S,M,x,$,F=0,m){if(l){let g=[O.contextHash,l];m=m?[g].concat(m):[g]}if(F>25){let g=[O.lookAhead,F];m=m?[g].concat(m):[g]}return new G(S,M,x,$,m)}function b(S,M){let x=a.fork(),$=0,F=0,m=0,g=x.end-i,k={size:0,start:0,skip:0};e:for(let L=x.pos-S;x.pos>L;){let I=x.size;if(x.id==M&&I>=0){k.size=$,k.start=F,k.skip=m,m+=4,$+=4,x.next();continue}let _=x.pos-I;if(I<0||_<L||x.start<g)break;let Q=x.id>=o?4:0,Z=x.start;for(x.next();x.pos>_;){if(x.size<0)if(x.size==-3)Q+=4;else break e;else x.id>=o&&(Q+=4);x.next()}F=Z,$+=I,m+=Q}return(M<0||$==S)&&(k.size=$,k.start=F,k.skip=m),k.size>4?k:void 0}function d(S,M,x){let{id:$,start:F,end:m,size:g}=a;if(a.next(),g>=0&&$<o){let k=x;if(g>4){let L=a.pos-(g-4);for(;a.pos>L;)x=d(S,M,x)}M[--x]=k,M[--x]=m-S,M[--x]=F-S,M[--x]=$}else g==-3?l=$:g==-4&&(p=$);return x}let v=[],C=[];for(;a.pos>0;)c(r.start||0,r.bufferStart||0,v,C,-1);let E=(e=r.length)!==null&&e!==void 0?e:v.length?C[0]+v[0].length:0;return new G(u[r.topID],v.reverse(),C.reverse(),E)}var wn=new WeakMap;function yt(r,e){if(!r.isAnonymous||e instanceof ke||e.type!=r)return 1;let t=wn.get(e);if(t==null){t=1;for(let n of e.children){if(n.type!=r||!(n instanceof G)){t=1;break}t+=yt(r,n)}wn.set(e,t)}return t}function Gt(r,e,t,n,i,s,o,a,u){let l=0;for(let y=n;y<i;y++)l+=yt(r,e[y]);let p=Math.ceil(l*1.5/8),c=[],f=[];function h(y,b,d,v,C){for(let E=d;E<v;){let S=E,M=b[E],x=yt(r,y[E]);for(E++;E<v;E++){let $=yt(r,y[E]);if(x+$>=p)break;x+=$}if(E==S+1){if(x>p){let $=y[S];h($.children,$.positions,0,$.children.length,b[S]+C);continue}c.push(y[S])}else{let $=b[E-1]+y[E-1].length-M;c.push(Gt(r,y,b,S,E,M,$,null,u))}f.push(M+C-s)}}return h(e,t,n,i,0),(a||u)(c,f,o)}var xt=class{startParse(e,t,n){return typeof e=="string"&&(e=new Kt(e)),n=n?n.length?n.map(i=>new Ke(i.from,i.to)):[new Ke(0,0)]:[new Ke(0,e.length)],this.createParse(e,t||[],n)}parse(e,t,n){let i=this.startParse(e,t,n);for(;;){let s=i.advance();if(s)return s}}},Kt=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 Ga=new O({perNode:!0});var Xt=class r{constructor(e,t,n,i,s,o,a,u,l,p=0,c){this.p=e,this.stack=t,this.state=n,this.reducePos=i,this.pos=s,this.score=o,this.buffer=a,this.bufferBase=u,this.curContext=l,this.lookAhead=p,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,n=0){let i=e.parser.context;return new r(e,[],t,n,n,0,[],0,i?new Ft(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 n=e>>19,i=e&65535,{parser:s}=this.p,o=s.dynamicPrecedence(i);if(o&&(this.score+=o),n==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-(n-1)*3-(e&262144?6:0),u=a?this.stack[a-2]:this.p.ranges[0].from,l=this.reducePos-u;l>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(u==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=l):this.p.lastBigReductionSize<l&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=u,this.p.lastBigReductionSize=l));let p=a?this.stack[a-1]:0,c=this.bufferBase+this.buffer.length-p;if(i<s.minRepeatTerm||e&131072){let f=s.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,u,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,u)}storeNode(e,t,n,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==n)return;if(o.buffer[a-2]>=t){o.buffer[a-2]=n;return}}}if(!s||this.pos==n)this.buffer.push(e,t,n,i);else{let o=this.buffer.length;if(o>0&&this.buffer[o-4]!=0)for(;o>0&&this.buffer[o-2]>n;)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]=n,this.buffer[o+3]=i}}shift(e,t,n){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=n,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,n,4);else{let s=e,{parser:o}=this.p;(n>this.pos||t<=o.maxNode)&&(this.pos=n,o.stateFlag(s,1)||(this.reducePos=n)),this.pushState(s,i),this.shiftContext(t,i),t<=o.maxNode&&this.buffer.push(t,i,n,4)}}apply(e,t,n){e&65536?this.reduce(e):this.shift(e,t,n)}useNode(e,t){let n=this.p.reused.length-1;(n<0||this.p.reused[n]!=e)&&(this.p.reused.push(e),n++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(n,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 n=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new r(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,n,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let n=e<=this.p.parser.maxNode;n&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,n?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new er(this);;){let n=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(n==0)return!1;if(!(n&65536))return!0;t.reduce(n)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>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,u)=>u&1&&a==o)||i.push(t[s],o)}t=i}let n=[];for(let i=0;i<t.length&&n.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,n.push(o)}return n}forceReduce(){let{parser:e}=this.p,t=e.stateSlot(this.state,5);if(!(t&65536))return!1;if(!e.validAction(this.state,t)){let n=t>>19,i=t&65535,s=this.stack.length-n*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=[],n=(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 u=o&65535,l=this.stack.length-a*3;if(l>=0&&e.getGoto(this.stack[l],u,!1)>=0)return a<<19|65536|u}}else{let a=n(o,s+1);if(a!=null)return a}})};return n(this.state,0)}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.pos,this.pos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.pos,this.pos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Ft(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()}},Ft=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},Mn;(function(r){r[r.Insert=200]="Insert",r[r.Delete=190]="Delete",r[r.Reduce=100]="Reduce",r[r.MaxNext=4]="MaxNext",r[r.MaxInsertStackDepth=300]="MaxInsertStackDepth",r[r.DampenInsertStackDepth=120]="DampenInsertStackDepth",r[r.MinBigReduction=2e3]="MinBigReduction"})(Mn||(Mn={}));var er=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,n=e>>19;n==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(n-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},tr=class r{constructor(e,t,n){this.stack=e,this.pos=t,this.index=n,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new r(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 r(this.stack,this.pos,this.index)}};function Ge(r,e=Uint16Array){if(typeof r!="string")return r;let t=null;for(let n=0,i=0;n<r.length;){let s=0;for(;;){let o=r.charCodeAt(n++),a=!1;if(o==126){s=65535;break}o>=92&&o--,o>=34&&o--;let u=o-32;if(u>=46&&(u-=46,a=!0),s+=u,a)break;s*=46}t?t[i++]=s:t=new e(s)}return t}var He=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},Pn=new He,rr=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=Pn,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let n=this.range,i=this.rangeIndex,s=this.pos+e;for(;s<n.from;){if(!i)return null;let o=this.ranges[--i];s-=n.from-o.to,n=o}for(;t<0?s>n.to:s>=n.to;){if(i==this.ranges.length-1)return null;let o=this.ranges[++i];s+=o.from-n.to,n=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,n,i;if(t>=0&&t<this.chunk.length)n=this.pos+e,i=this.chunk.charCodeAt(t);else{let s=this.resolveOffset(e,1);if(s==null)return-1;if(n=s,n>=this.chunk2Pos&&n<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(n-this.chunk2Pos);else{let o=this.rangeIndex,a=this.range;for(;a.to<=n;)a=this.ranges[++o];this.chunk2=this.input.chunk(this.chunk2Pos=n),n+this.chunk2.length>a.to&&(this.chunk2=this.chunk2.slice(0,a.to-n)),i=this.chunk2.charCodeAt(0)}}return n>=this.token.lookAhead&&(this.token.lookAhead=n+1),i}acceptToken(e,t=0){let n=t?this.resolveOffset(t,-1):this.pos;if(n==null||n<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=n}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=Pn,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let n="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(n+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return n}},Fe=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:n}=t.p;Bn(this.data,e,t,this.id,n.data,n.tokenPrecTable)}};Fe.prototype.contextual=Fe.prototype.fallback=Fe.prototype.extend=!1;var nr=class{constructor(e,t,n){this.precTable=t,this.elseToken=n,this.data=typeof e=="string"?Ge(e):e}token(e,t){let n=e.pos,i=0;for(;;){let s=e.next<0,o=e.resolveOffset(1,1);if(Bn(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(n,e.token),e.acceptToken(this.elseToken,i))}};nr.prototype.contextual=Fe.prototype.fallback=Fe.prototype.extend=!1;function Bn(r,e,t,n,i,s){let o=0,a=1<<n,{dialect:u}=t.p.parser;e:for(;a&r[o];){let l=r[o+1];for(let h=o+3;h<l;h+=2)if((r[h+1]&a)>0){let y=r[h];if(u.allows(y)&&(e.token.value==-1||e.token.value==y||Ki(y,e.token.value,i,s))){e.acceptToken(y);break}}let p=e.next,c=0,f=r[o+2];if(e.next<0&&f>c&&r[l+f*3-3]==65535&&r[l+f*3-3]==65535){o=r[l+f*3-1];continue e}for(;c<f;){let h=c+f>>1,y=l+h+(h<<1),b=r[y],d=r[y+1]||65536;if(p<b)f=h;else if(p>=d)c=h+1;else{o=r[y+2],e.advance();continue e}}break}}function Tn(r,e,t){for(let n=e,i;(i=r[n])!=65535;n++)if(i==t)return n-e;return-1}function Ki(r,e,t,n){let i=Tn(t,n,e);return i<0||Tn(t,n,r)<i}var le=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),jt=null,On;(function(r){r[r.Margin=25]="Margin"})(On||(On={}));function Dn(r,e,t){let n=r.cursor(q.IncludeAnonymous);for(n.moveTo(e);;)if(!(t<0?n.childBefore(e):n.childAfter(e)))for(;;){if((t<0?n.to<e:n.from>e)&&!n.type.isError)return t<0?Math.max(0,Math.min(n.to-1,e-25)):Math.min(r.length,Math.max(n.from+1,e+25));if(t<0?n.prevSibling():n.nextSibling())break;if(!n.parent())return t<0?0:r.length}}var ir=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Dn(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Dn(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let n=this.trees[t],i=this.index[t];if(i==n.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let s=n.children[i],o=this.start[t]+n.positions[i];if(o>e)return this.nextStart=o,null;if(s instanceof G){if(o==e){if(o<this.safeFrom)return null;let a=o+s.length;if(a<=this.safeTo){let u=s.prop(O.lookAhead);if(!u||a+u<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}}},sr=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(n=>new He)}getActions(e){let t=0,n=null,{parser:i}=e.p,{tokenizers:s}=i,o=i.stateSlot(e.state,3),a=e.curContext?e.curContext.hash:0,u=0;for(let l=0;l<s.length;l++){if(!(1<<l&o))continue;let p=s[l],c=this.tokens[l];if(!(n&&!p.fallback)&&((p.contextual||c.start!=e.pos||c.mask!=o||c.context!=a)&&(this.updateCachedToken(c,p,e),c.mask=o,c.context=a),c.lookAhead>c.end+25&&(u=Math.max(c.lookAhead,u)),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),!p.extend&&(n=c,t>f))break}}for(;this.actions.length>t;)this.actions.pop();return u&&e.setLookAhead(u),!n&&e.pos==this.stream.end&&(n=new He,n.value=e.p.parser.eofTerm,n.start=n.end=e.pos,t=this.addActions(e,n.value,n.end,t)),this.mainToken=n,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new He,{pos:n,p:i}=e;return t.start=n,t.end=Math.min(n+1,i.stream.end),t.value=n==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,n){let i=this.stream.clipPos(n.pos);if(t.token(this.stream.reset(i,e),n),e.value>-1){let{parser:s}=n.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),n);if(a>=0&&n.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,n,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++]=n,i}addActions(e,t,n,i){let{state:s}=e,{parser:o}=e.p,{data:a}=o;for(let u=0;u<2;u++)for(let l=o.stateSlot(s,u?2:1);;l+=3){if(a[l]==65535)if(a[l+1]==1)l=ye(a,l+2);else{i==0&&a[l+1]==2&&(i=this.putAction(ye(a,l+2),t,n,i));break}a[l]==t&&(i=this.putAction(ye(a,l+1),t,n,i))}return i}},In;(function(r){r[r.Distance=5]="Distance",r[r.MaxRemainingPerStep=3]="MaxRemainingPerStep",r[r.MinBufferLengthPrune=500]="MinBufferLengthPrune",r[r.ForceReduceLimit=10]="ForceReduceLimit",r[r.CutDepth=15e3]="CutDepth",r[r.CutTo=9e3]="CutTo",r[r.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",r[r.MaxStackCount=12]="MaxStackCount"})(In||(In={}));var or=class{constructor(e,t,n,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 rr(t,i),this.tokens=new sr(e,this.stream),this.topTerm=e.top[1];let{from:s}=i[0];this.stacks=[Xt.start(this,e.top[0],s)],this.fragments=n.length&&this.stream.end-s>e.bufferLength*4?new ir(n,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,n=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)n.push(a);else{if(this.advanceStack(a,n,e))continue;{i||(i=[],s=[]),i.push(a);let u=this.tokens.getMainToken(a);s.push(u.value,u.end)}}break}}if(!n.length){let o=i&&Zi(i);if(o)return this.stackToTree(o);if(this.parser.strict)throw le&&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,n);if(o)return this.stackToTree(o.forceAll())}if(this.recovering){let o=this.recovering==1?1:this.recovering*3;if(n.length>o)for(n.sort((a,u)=>u.score-a.score);n.length>o;)n.pop();n.some(a=>a.reducePos>t)&&this.recovering--}else if(n.length>1){e:for(let o=0;o<n.length-1;o++){let a=n[o];for(let u=o+1;u<n.length;u++){let l=n[u];if(a.sameState(l)||a.buffer.length>500&&l.buffer.length>500)if((a.score-l.score||a.buffer.length-l.buffer.length)>0)n.splice(u--,1);else{n.splice(o--,1);continue e}}}n.length>12&&n.splice(12,n.length-12)}this.minStackPos=n[0].pos;for(let o=1;o<n.length;o++)n[o].pos<this.minStackPos&&(this.minStackPos=n[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,n){let i=e.pos,{parser:s}=this,o=le?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let l=e.curContext&&e.curContext.tracker.strict,p=l?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&&(!l||(c.prop(O.contextHash)||0)==p))return e.useNode(c,f),le&&console.log(o+this.stackID(e)+` (via reuse of ${s.getName(c.type.id)})`),!0;if(!(c instanceof G)||c.children.length==0||c.positions[0]>0)break;let h=c.children[0];if(h instanceof G&&c.positions[0]==0)c=h;else break}}let a=s.stateSlot(e.state,4);if(a>0)return e.reduce(a),le&&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 u=this.tokens.getActions(e);for(let l=0;l<u.length;){let p=u[l++],c=u[l++],f=u[l++],h=l==u.length||!n,y=h?e:e.split();if(y.apply(p,c,f),le&&console.log(o+this.stackID(y)+` (via ${p&65536?`reduce of ${s.getName(p&65535)}`:"shift"} for ${s.getName(c)} @ ${i}${y==e?"":", split"})`),h)return!0;y.pos>i?t.push(y):n.push(y)}return!1}advanceFully(e,t){let n=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>n)return An(e,t),!0}}runRecovery(e,t,n){let i=null,s=!1;for(let o=0;o<e.length;o++){let a=e[o],u=t[o<<1],l=t[(o<<1)+1],p=le?this.stackID(a)+" -> ":"";if(a.deadEnd&&(s||(s=!0,a.restart(),le&&console.log(p+this.stackID(a)+" (restarted)"),this.advanceFully(a,n))))continue;let c=a.split(),f=p;for(let h=0;c.forceReduce()&&h<10&&(le&&console.log(f+this.stackID(c)+" (via force-reduce)"),!this.advanceFully(c,n));h++)le&&(f=this.stackID(c)+" -> ");for(let h of a.recoverByInsert(u))le&&console.log(p+this.stackID(h)+" (via recover-insert)"),this.advanceFully(h,n);this.stream.end>a.pos?(l==a.pos&&(l++,u=0),a.recoverByDelete(u,l),le&&console.log(p+this.stackID(a)+` (via recover-delete ${this.parser.getName(u)})`),An(a,n)):(!i||i.score<a.score)&&(i=a)}return i}stackToTree(e){return e.close(),G.build({buffer:tr.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=(jt||(jt=new WeakMap)).get(e);return t||jt.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function An(r,e){for(let t=0;t<e.length;t++){let n=e[t];if(n.pos==r.pos&&n.sameState(r)){e[t].score<r.score&&(e[t]=r);return}}e.push(r)}var ar=class{constructor(e,t,n){this.source=e,this.flags=t,this.disabled=n}allows(e){return!this.disabled||this.disabled[e]==0}};var St=class r extends xt{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 n=Object.keys(e.topRules).map(a=>e.topRules[a][1]),i=[];for(let a=0;a<t.length;a++)i.push([]);function s(a,u,l){i[a].push([u,u.deserialize(String(l))])}if(e.nodeProps)for(let a of e.nodeProps){let u=a[0];typeof u=="string"&&(u=O[u]);for(let l=1;l<a.length;){let p=a[l++];if(p>=0)s(p,u,a[l++]);else{let c=a[l+-p];for(let f=-p;f>0;f--)s(a[l++],u,c);l++}}}this.nodeSet=new bt(t.map((a,u)=>ne.define({name:u>=this.minRepeatTerm?void 0:a,id:u,props:i[u],top:n.indexOf(u)>-1,error:u==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(u)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let o=Ge(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(Nn),this.states=Ge(e.states,Uint32Array),this.data=Ge(e.stateData),this.goto=Ge(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(a=>typeof a=="number"?new Fe(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,n){let i=new or(this,e,t,n);for(let s of this.wrappers)i=s(i,e,t,n);return i}getGoto(e,t,n=!1){let i=this.goto;if(t>=i[0])return-1;for(let s=i[t+1];;){let o=i[s++],a=o&1,u=i[s++];if(a&&n)return u;for(let l=s+(o>>1);s<l;s++)if(i[s]==e)return u;if(a)return-1}}hasAction(e,t){let n=this.data;for(let i=0;i<2;i++)for(let s=this.stateSlot(e,i?2:1),o;;s+=3){if((o=n[s])==65535)if(n[s+1]==1)o=n[s=ye(n,s+2)];else{if(n[s+1]==2)return ye(n,s+2);break}if(o==t||o==0)return ye(n,s+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){return!!this.allActions(e,n=>n==t?!0:null)}allActions(e,t){let n=this.stateSlot(e,4),i=n?t(n):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=ye(this.data,s+2);else break;i=t(ye(this.data,s+1))}return i}nextStates(e){let t=[];for(let n=this.stateSlot(e,1);;n+=3){if(this.data[n]==65535)if(this.data[n+1]==1)n=ye(this.data,n+2);else break;if(!(this.data[n+2]&1)){let i=this.data[n+1];t.some((s,o)=>o&1&&s==i)||t.push(this.data[n],i)}}return t}configure(e){let t=Object.assign(Object.create(r.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let n=this.topRules[e.top];if(!n)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=n}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(n=>{let i=e.tokenizers.find(s=>s.from==n);return i?i.to:n})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((n,i)=>{let s=e.specializers.find(a=>a.from==n.external);if(!s)return n;let o=Object.assign(Object.assign({},n),{external:s.to});return t.specializers[i]=Nn(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),n=t.map(()=>!1);if(e)for(let s of e.split(" ")){let o=t.indexOf(s);o>=0&&(n[o]=!0)}let i=null;for(let s=0;s<t.length;s++)if(!n[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 ar(e,n,i)}static deserialize(e){return new r(e)}};function ye(r,e){return r[e]|r[e+1]<<16}function Zi(r){let e=null;for(let t of r){let n=t.p.stoppedAt;(t.pos==t.p.stream.end||n!=null&&t.pos>n)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Nn(r){if(r.external){let e=r.extend?1:0;return(t,n)=>r.external(t,n)<<1|e}return r.get}var je=St.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 me=require("@vuu-ui/vuu-utils");var j,lr=class{constructor(){Ce(this,j,void 0)}setFilterCombinatorOp(e,t=w(this,j)){(0,me.isMultiClauseFilter)(t)&&t.op===e||Y(this,j,{op:e,filters:[w(this,j)]})}add(e){if(w(this,j)===void 0)Y(this,j,e);else if((0,me.isMultiClauseFilter)(w(this,j)))w(this,j).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,t=w(this,j)){if((0,me.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setColumn(e,n)}else t&&(t.column=e)}setOp(e,t=w(this,j)){if((0,me.isMultiClauseFilter)(t)){let n=t.filters.at(-1);n&&this.setOp(e,n)}else t&&(t.op=e)}setValue(e,t=w(this,j)){var n;if((0,me.isMultiClauseFilter)(t)){let i=t.filters.at(-1);i&&this.setValue(e,i)}else(0,me.isMultiValueFilter)(t)?((n=t.values)!=null||(t.values=[]),t.values.push(e)):(0,me.isSingleValueFilter)(t)&&(t.value=e)}toJSON(e=w(this,j)){return this.name?{...e,name:this.name}:e}};j=new WeakMap;var $t=(r,e)=>{let t=new lr,n=r.cursor();do{let{name:i,from:s,to:o}=n;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(n.next());return t.toJSON()};var al=je.configure({strict:!0});var Se=require("react");var ue=require("@vuu-ui/vuu-codemirror");var ji=ue.LRLanguage.define({name:"VuuFilterQuery",parser:je.configure({props:[(0,ue.styleTags)({Identifier:ue.tags.variableName,String:ue.tags.string,Or:ue.tags.emphasis,Operator:ue.tags.operator})]})}),Rn=()=>new ue.LanguageSupport(ji);var Pe=require("@vuu-ui/vuu-codemirror"),Xi=Pe.HighlightStyle.define([{tag:Pe.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Pe.tags.comment,color:"green",fontStyle:"italic"}]),Hn=(0,Pe.syntaxHighlighting)(Xi);var Ln=require("@vuu-ui/vuu-codemirror"),Vn=Ln.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 U=require("@vuu-ui/vuu-codemirror"),ur=require("react"),_n=(r,e)=>{let t=r.prevSibling||r.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,U.getValue)(t,e)},es=(r,e,t)=>{let n=(0,U.getValue)(r,e);if(!(t===void 0||n===t)&&["contains","ends","starts"].some(i=>i.startsWith(n.toLowerCase())))return n},Qn=(r,e)=>{let t=r.prevSibling||r.parent||r.lastChild;for(;t&&t.name==="\u26A0";)t=t.prevSibling;if(t&&["As","Or","And"].includes(t.name))return(0,U.getValue)(t,e)},Un=(r,e)=>{if(r.name==="FilterName")return(0,U.getValue)(r,e);{let t=r.prevSibling||r.parent||r.lastChild;for(;t&&t.name!=="FilterName";)t=t.prevSibling;if(t&&t.name==="FilterName")return(0,U.getValue)(r,e)}},Yn=(r,e)=>{let t=r.prevSibling;if((t==null?void 0:t.name)==="Column")return(0,U.getValue)(t,e);if((t==null?void 0:t.name)==="Operator")return Yn(t,e)},ts=(r,e)=>{let t=r.lastChild,n=[];for(;t&&t.name!=="In";){let i=(0,U.getValue)(t,e);if(i)n.push(i);else break;t=t.prevSibling}return n};var zn=(r,e,t)=>{let n=(0,ur.useCallback)(async(i,s,o={})=>{let{startsWith:a=""}=o,u=await r.getSuggestions(s,o);return{from:i.pos-a.length,options:u}},[r]);return(0,ur.useCallback)(async i=>{var p,c;let{state:s,pos:o}=i,a=(p=i.matchBefore(/\w*/))!=null?p:{from:0,to:0,text:void 0},l=(0,U.syntaxTree)(s).resolveInner(o,-1);switch(console.log({nodeBeforeName:l.name}),l.name){case"Filter":if(i.pos===0)return n(i,"column");if(Qn(l,s)==="as")return n(i,"name");{let h=Un(l,s);return n(i,"save",{onSubmit:e.current,existingFilter:t,filterName:h})}case"String":{let f=_n(l,s),h=Yn(l,s),{from:y,to:b}=l;if(b-y===2&&i.pos===y+1){if(h&&f)return n(i,"columnValue",{columnName:h,operator:f,quoted:!0,startsWith:a.text})}else console.log(`we have a string, column is ${h} ${y} ${b}`)}break;case"As":return n(i,"name");case"FilterName":return n(i,"save",{onSubmit:e.current,existingFilter:t,filterName:Un(l,s)});case"Column":{let f=(0,U.getValue)(l,s);return await r.isPartialMatch("column",void 0,f)?n(i,"column",{startsWith:f}):n(i,"operator",{columnName:f})}case"\u26A0":{let f=(0,U.getNodeByName)(l,s),h=_n(l,s),y=h?void 0:es(l,s,f);return y?n(i,"operator",{columnName:f,startsWith:y}):n(i,"columnValue",{columnName:f,operator:h,startsWith:a.text})}case"Identifier":if(Qn(l,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,U.getNodeByName)(l,s),h=ts(l,s);return n(i,"columnValue",{columnName:f,selection:h})}case"Comma":case"LBrack":{let f=(0,U.getNodeByName)(l,s);return n(i,"columnValue",{columnName:f})}case"ColumnValueExpression":{let f=(c=l.lastChild)==null?void 0:c.prevSibling;if((f==null?void 0:f.name)==="Column")return n(i,"operator",{columnName:(0,U.getNodeByName)(l,s)});if((f==null?void 0:f.name)==="Operator")return n(i,"columnValue",{columnName:(0,U.getNodeByName)(f,s),operator:(0,U.getValue)(f,s)})}break;case"In":return{from:i.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return n(i,"columnValue",{columnName:(0,U.getNodeByName)(l,s)});case"AndExpression":case"OrExpression":return n(i,"column");default:}},[t,n,e,r])};var Xe=r=>{if(r.current==null)throw Error("EditorView not defined");return r.current},rs=r=>V("vuuSuggestion",{vuuIllustration:r.isIllustration}),ns=r=>{let e=r.lastIndexOf(" as ");return e!==-1?r.slice(0,e):r},is=()=>console.log("noooop"),cr=({existingFilter:r,onSubmitFilter:e,suggestionProvider:t})=>{let n=(0,Se.useRef)(null),i=(0,Se.useRef)(is),s=(0,Se.useRef)(),o=zn(t,i,r),[a,u]=(0,Se.useMemo)(()=>{let l=()=>{let b=Xe(s),d=b.state.doc.toString(),v=(0,H.ensureSyntaxTree)(b.state,b.state.doc.length,5e3);if(v){let C=$t(v,d);return[C,ns(d),C.name]}else return[void 0,"",void 0]},p=()=>{Xe(s).setState(y())},c=b=>{let[d,v,C]=l();e==null||e(d,v,b,C),p()},f=b=>H.keymap.of([{key:b,run(){return c(),!0}}]),h=b=>H.keymap.of([{key:b,run(){return(0,H.startCompletion)(Xe(s)),!0}}]),y=()=>H.EditorState.create({doc:"",extensions:[H.minimalSetup,(0,H.autocompletion)({override:[o],optionClass:rs}),Rn(),H.keymap.of(H.defaultKeymap),f("Ctrl-Enter"),h("ArrowDown"),H.EditorView.updateListener.of(b=>{let d=Xe(s);b.docChanged&&(0,H.startCompletion)(d)}),H.EditorState.transactionFilter.of(b=>b.newDoc.lines>1?[]:b),Vn,Hn]});return i.current=b=>{c(b),setTimeout(()=>{Xe(s).focus()},100)},[y,p]},[o,e]);return(0,Se.useEffect)(()=>{if(!n.current)throw Error("editor not in dom");return s.current=new H.EditorView({state:a(),parent:n.current}),()=>{var l;(l=s.current)==null||l.destroy()}},[o,a]),{editorRef:n,clearInput:u}};var Le=require("react/jsx-runtime"),wt="vuuFilterInput",ss=({existingFilter:r,iconName:e="filter",namedFilters:t,onSubmitFilter:n,suggestionProvider:i,...s})=>{let{editorRef:o,clearInput:a}=cr({existingFilter:r,onSubmitFilter:n,suggestionProvider:i});return(0,Le.jsxs)("div",{...s,className:wt,children:[(0,Le.jsx)(fr.Button,{className:`${wt}-FilterButton`,"data-icon":e,tabIndex:-1}),(0,Le.jsx)("div",{className:`${wt}-Editor`,ref:o}),(0,Le.jsx)(fr.Button,{className:`${wt}-ClearButton`,"data-icon":"close-circle",onClick:a})]})};var ie=require("@vuu-ui/vuu-codemirror"),kt=require("@vuu-ui/vuu-data-react"),tt=require("react");var et=require("@vuu-ui/vuu-utils"),Wn=(r,e)=>{let t=(0,et.createEl)("div","vuuFunctionDoc"),n=(0,et.createEl)("div","function-heading"),i=(0,et.createEl)("span","function-name",r);n.appendChild(i);let s=(0,et.createEl)("p",void 0,e);return t.appendChild(n),t.appendChild(s),t};var os=[],as={},ls=r=>[{label:"Press ENTER to create TAB",apply:()=>r("tab"),boost:6}],qn=(r,e,t=!0)=>{let n=e?[{label:"REPLACE existing filter",apply:()=>r("replace"),boost:8},{label:"AND existing filter",apply:()=>r("and"),boost:7},{label:"OR existing filter",apply:()=>r("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>r(),boost:6}];return t?n.concat(ie.booleanJoinSuggestions).concat(ie.asNameSuggestion):n},us=(r,e)=>qn(r,e,!0),cs=r=>qn(r,void 0),fs=({existingFilter:r,filterName:e,onSubmit:t,saveOptions:n})=>{let i=e&&n.allowSaveAsTab,s=r?us(t,r):cs(t);return i?s.concat(ls(t)):s},hs=r=>r.map(e=>({boost:5,label:e.name})),ds=r=>r?Array.from(r.entries()).map(([e,t])=>({info:()=>Wn(e,t),label:e,type:"filter"})):os,ps={label:"Done",apply:"] ",type:"keyword",boost:10},Et=(r,e="")=>r.filter(t=>e===""||t.label.startsWith(e)).map(t=>({...t,apply:t.label+" "})),ms={allowReplace:!0},gs=({columns:r,namedFilters:e,saveOptions:t=ms,table:n,typeaheadHook:i=kt.useTypeaheadSuggestions})=>{let s=(0,tt.useRef)(),o=i(),a=(0,tt.useCallback)(async(l,p=as)=>{let{columnName:c,existingFilter:f,filterName:h,operator:y,quoted:b,onSubmit:d,startsWith:v,selection:C}=p;switch(l){case"operator":{let E=r.find(S=>S.name===c);if(E)switch(E.serverDataType){case"string":case"char":return Et(ie.stringOperators,v);case"int":case"long":case"double":return Et(ie.numericOperators)}else console.warn(`'${c}' does not match any column name`)}break;case"column":{let E=await hs(r),S=await ds(e);return(s.current=Et(E)).concat(Et(S))}case"columnValue":if(c){let E=r.find(F=>F.name===c);if(!E)throw Error(`useFilterSUggestionProvider no column ${c}`);let S=Array.isArray(C)?C.length===0?"[":",":"",M=(0,kt.getTypeaheadParams)(n,c,v),x=await o(M),$=y==="starts";return s.current=(0,ie.toSuggestions)(x,{moveCursorToEnd:b,quoted:(E==null?void 0:E.serverDataType)==="string"&&!b,suffix:b?"":" ",prefix:$?v:S,isIllustration:$}),Array.isArray(C)&&(C==null?void 0:C.length)>1?[ps,...s.current]:s.current}break;case"save":{if(typeof d!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await fs({existingFilter:f,filterName:h,onSubmit:d,saveOptions:t})}case"name":return await(0,ie.getNamePrompt)("filter");default:}return[]},[r,o,e,t,n]),u=(0,tt.useCallback)(async(l,p,c)=>{let f=await a(l,{columnName:p});if(c&&f)for(let h of f){if(h.label===c)return!1;if(h.label.startsWith(c))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:u}};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|