@vuu-ui/vuu-filters 0.6.13 → 0.6.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";var Ke=Object.create;var U=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty;var nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ot=(e,t)=>{for(var r in t)U(e,r,{get:t[r],enumerable:!0})},ce=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of et(t))!rt.call(e,o)&&o!==r&&U(e,o,{get:()=>t[o],enumerable:!(n=Je(t,o))||n.enumerable});return e};var me=(e,t,r)=>(r=e!=null?Ke(tt(e)):{},ce(t||!e||!e.__esModule?U(r,"default",{value:e,enumerable:!0}):r,e)),it=e=>ce(U({},"__esModule",{value:!0}),e);var de=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var P=(e,t,r)=>(de(e,t,"read from private field"),r?r.call(e):t.get(e)),ge=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},ee=(e,t,r,n)=>(de(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var te=nt((lr,L)=>{(function(){"use strict";var e={}.hasOwnProperty,t="[native code]";function r(){for(var n=[],o=0;o<arguments.length;o++){var i=arguments[o];if(i){var s=typeof i;if(s==="string"||s==="number")n.push(i);else if(Array.isArray(i)){if(i.length){var m=r.apply(null,i);m&&n.push(m)}}else if(s==="object"){if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes("[native code]")){n.push(i.toString());continue}for(var u in i)e.call(i,u)&&i[u]&&n.push(u)}}}return n.join(" ")}typeof L<"u"&&L.exports?(r.default=r,L.exports=r):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return r}):window.classNames=r})()});var ir={};ot(ir,{AND:()=>F,ENDS_WITH:()=>Yt,EQUALS:()=>z,FilterInput:()=>Ft,FilterToolbar:()=>Qt,GREATER_THAN:()=>jt,IN:()=>Be,LESS_THAN:()=>Bt,OR:()=>je,STARTS_WITH:()=>ae,addFilter:()=>qt,filterAsQuery:()=>Z,filterClauses:()=>Ye,filterEquals:()=>K,filterIncludesColumn:()=>qe,filterPredicate:()=>G,getFilterPredicate:()=>kt,isAndFilter:()=>q,isFilterClause:()=>_t,isInFilter:()=>A,isMultiClauseFilter:()=>x,isMultiValueFilter:()=>T,isNamedFilter:()=>se,isOrFilter:()=>le,isSingleValueFilter:()=>R,overrideColName:()=>Ge,removeColumnFromFilter:()=>tr,removeFilter:()=>rr,splitFilterOnColumn:()=>nr,updateFilter:()=>Ze,useCodeMirrorEditor:()=>oe,useFilterSuggestionProvider:()=>wt});module.exports=it(ir);var ie=require("@salt-ds/core");var c=require("@vuu-ui/vuu-codemirror"),xe=me(te(),1),y=require("react");var f=require("@vuu-ui/vuu-codemirror");var fe=(()=>[(0,f.highlightSpecialChars)(),(0,f.history)(),(0,f.drawSelection)(),(0,f.syntaxHighlighting)(f.defaultHighlightStyle,{fallback:!0}),f.keymap.of([...f.defaultKeymap,...f.historyKeymap])])();var C=require("@vuu-ui/vuu-codemirror");var Oe=require("@vuu-ui/vuu-codemirror"),X=Oe.LRParser.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 st=C.LRLanguage.define({name:"VuuFilterQuery",parser:X.configure({props:[(0,C.styleTags)({Identifier:C.tags.variableName,String:C.tags.string,Or:C.tags.emphasis,Operator:C.tags.operator})]})}),Fe=()=>new C.LanguageSupport(st);var b=require("@vuu-ui/vuu-utils");var O,re=class{constructor(){ge(this,O,void 0)}setFilterCombinatorOp(t,r=P(this,O)){(0,b.isMultiClauseFilter)(r)&&r.op===t||ee(this,O,{op:t,filters:[P(this,O)]})}add(t){if(P(this,O)===void 0)ee(this,O,t);else if((0,b.isMultiClauseFilter)(P(this,O)))P(this,O).filters.push(t);else throw Error("Invalid filter passed to FilterExpression")}setColumn(t,r=P(this,O)){if((0,b.isMultiClauseFilter)(r)){let n=r.filters.at(-1);n&&this.setColumn(t,n)}else r&&(r.column=t)}setOp(t,r=P(this,O)){if((0,b.isMultiClauseFilter)(r)){let n=r.filters.at(-1);n&&this.setOp(t,n)}else r&&(r.op=t)}setValue(t,r=P(this,O)){var n;if((0,b.isMultiClauseFilter)(r)){let o=r.filters.at(-1);o&&this.setValue(t,o)}else(0,b.isMultiValueFilter)(r)?((n=r.values)!=null||(r.values=[]),r.values.push(t)):(0,b.isSingleValueFilter)(r)&&(r.value=t)}toJSON(t=P(this,O)){return this.name?{...t,name:this.name}:t}};O=new WeakMap;var H=(e,t)=>{let r=new re,n=e.cursor();do{let{name:o,from:i,to:s}=n;switch(o){case"ColumnValueExpression":r.add({});break;case"ColumnSetExpression":r.add({op:"in"});break;case"Or":case"And":r.setFilterCombinatorOp(t.substring(i,s));break;case"Column":r.setColumn(t.substring(i,s));break;case"Operator":r.setOp(t.substring(i,s));break;case"String":r.setValue(t.substring(i+1,s-1));break;case"Number":r.setValue(parseFloat(t.substring(i,s)));break;case"True":r.setValue(!0);break;case"False":r.setValue(!1);break;case"FilterName":r.name=t.substring(i,s);break;default:}}while(n.next());return r.toJSON()};var E=require("@vuu-ui/vuu-codemirror"),lt=E.HighlightStyle.define([{tag:E.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:E.tags.comment,color:"green",fontStyle:"italic"}]),Se=(0,E.syntaxHighlighting)(lt);var Ce=require("@vuu-ui/vuu-codemirror"),Pe=Ce.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)",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 ve=require("@vuu-ui/vuu-codemirror"),ne=require("react"),v=(e,t)=>t.doc.sliceString(e.from,e.to),V=(e,t)=>{var r;if(((r=e.firstChild)==null?void 0:r.name)==="Column")return v(e.firstChild,t);{let n=e.prevSibling||e.parent;for(;n&&n.name!=="Column";)n=n.prevSibling||n.parent;if(n)return v(n,t)}},at=(e,t)=>{let r=e.prevSibling||e.parent;for(;r&&!["Column","Operator","In"].includes(r.name);)r=r.prevSibling||r.parent;if((r==null?void 0:r.name)==="In"||(r==null?void 0:r.name)==="Operator")return v(r,t)},ut=(e,t,r)=>{let n=v(e,t);if(!(r===void 0||n===r)&&["contains","ends","starts"].some(o=>o.startsWith(n.toLowerCase())))return n},be=(e,t)=>{let r=e.prevSibling||e.parent||e.lastChild;for(;r&&r.name==="\u26A0";)r=r.prevSibling;if(r&&["As","Or","And"].includes(r.name))return v(r,t)},pt=(e,t)=>{let r=e.lastChild,n=[];for(;r&&r.name!=="In";){let o=v(r,t);if(o)n.push(o);else break;r=r.prevSibling}return n},he=e=>({from:e.pos,options:[{label:"enter name for this filter",boost:5}]}),ct=[{label:"and",apply:"and ",boost:5},{label:"or",apply:"or ",boost:3},{label:"as",apply:"as ",boost:1}],ye=(e,t,r=!0)=>{let n=t?[{label:"REPLACE existing filter",apply:()=>e("replace"),boost:8},{label:"AND existing filter",apply:()=>e("and"),boost:7},{label:"OR existing filter",apply:()=>e("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>e(),boost:6}];return r?n.concat(ct):n},mt=(e,t,r)=>({from:e.pos,options:ye(t,r)}),dt=(e,t,r)=>({from:e.pos,options:ye(t,r,!1)}),Te=(e,t,r)=>{let n=(0,ne.useCallback)(async(o,i,s={})=>{let m=await e.getSuggestions(i,s),{startsWith:u=""}=s;return{from:o.pos-u.length,options:m}},[e]);return(0,ne.useCallback)(async o=>{var d,p;let{state:i,pos:s}=o,m=(d=o.matchBefore(/\w*/))!=null?d:{from:0,to:0,text:void 0},a=(0,ve.syntaxTree)(i).resolveInner(s,-1);switch(console.log({nodeBeforeName:a.name}),a.name){case"Filter":return o.pos===0?n(o,"column"):be(a,i)==="as"?he(o):mt(o,t.current,r);case"As":return he(o);case"FilterName":return dt(o,t.current,r);case"Column":{let l=v(a,i);return await e.isPartialMatch("column",void 0,l)?n(o,"column",{startsWith:l}):n(o,"operator",{columnName:l})}case"\u26A0":{let l=V(a,i),S=at(a,i),w=S?void 0:ut(a,i,l);return w?n(o,"operator",{columnName:l,startsWith:w}):n(o,"columnValue",{columnName:l,operator:S,startsWith:m.text})}case"Identifier":if(be(a,i)==="as")return{from:o.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>t.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let l=V(a,i),S=pt(a,i);return n(o,"columnValue",{columnName:l,selection:S})}case"Comma":case"LBrack":{let l=V(a,i);return n(o,"columnValue",{columnName:l})}case"ColumnValueExpression":{let l=(p=a.lastChild)==null?void 0:p.prevSibling;if((l==null?void 0:l.name)==="Column")return n(o,"operator",{columnName:V(a,i)});if((l==null?void 0:l.name)==="Operator")return n(o,"columnValue",{columnName:V(l,i),operator:v(l,i)})}break;case"In":return{from:o.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return n(o,"columnValue",{columnName:V(a,i)});case"AndExpression":case"OrExpression":return n(o,"column");default:}},[r,n,t,e])};var M=e=>{if(e.current==null)throw Error("EditorView not defined");return e.current},gt=e=>(0,xe.default)("vuuSuggestion",{vuuIllustration:e.isIllustration}),ft=e=>{let t=e.lastIndexOf(" as ");return t!==-1?e.slice(0,t):e},Ot=()=>console.log("noooop"),oe=({existingFilter:e,onSubmitFilter:t,suggestionProvider:r})=>{let n=(0,y.useRef)(null),o=(0,y.useRef)(Ot),i=(0,y.useRef)(),s=Te(r,o,e),[m,u]=(0,y.useMemo)(()=>{let a=()=>{let g=M(i),h=g.state.doc.toString(),Q=(0,c.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(Q){let $=H(Q,h);return[$,ft(h),$.name]}else return[void 0,"",void 0]},d=()=>{M(i).setState(w())},p=g=>{let[h,Q,$]=a();t==null||t(h,Q,g,$),d()},l=g=>c.keymap.of([{key:g,run(){return p(),!0}}]),S=g=>c.keymap.of([{key:g,run(){return(0,c.startCompletion)(M(i)),!0}}]),w=()=>c.EditorState.create({doc:"",extensions:[fe,(0,c.autocompletion)({override:[s],optionClass:gt}),Fe(),c.keymap.of(c.defaultKeymap),l("Ctrl-Enter"),S("ArrowDown"),c.EditorView.updateListener.of(g=>{let h=M(i);g.docChanged&&(0,c.startCompletion)(h)}),c.EditorState.transactionFilter.of(g=>g.newDoc.lines>1?[]:g),Pe,Se]});return o.current=g=>{p(g),setTimeout(()=>{M(i).focus()},100)},[w,d]},[s,t]);return(0,y.useEffect)(()=>{if(!n.current)throw Error("editor not in dom");return i.current=new c.EditorView({state:m(),parent:n.current}),()=>{var a;(a=i.current)==null||a.destroy()}},[s,m]),{editorRef:n,clearInput:u}};var N=require("react/jsx-runtime"),_="vuuFilterInput",Ft=({existingFilter:e,namedFilters:t,onSubmitFilter:r,suggestionProvider:n,...o})=>{let{editorRef:i,clearInput:s}=oe({existingFilter:e,onSubmitFilter:r,suggestionProvider:n});return(0,N.jsxs)("div",{...o,className:_,children:[(0,N.jsx)(ie.Button,{className:`${_}-FilterButton`,"data-icon":"filter"}),(0,N.jsx)("div",{className:`${_}-Editor`,ref:i}),(0,N.jsx)(ie.Button,{className:`${_}-ClearButton`,"data-icon":"close-circle",onClick:s})]})};var Ee=require("@vuu-ui/vuu-data"),D=require("react");var I=require("@vuu-ui/vuu-utils"),we=(e,t)=>{let r=(0,I.createEl)("div","vuuFunctionDoc"),n=(0,I.createEl)("div","function-heading"),o=(0,I.createEl)("span","function-name",e);n.appendChild(o);let i=(0,I.createEl)("p",void 0,t);return r.appendChild(n),r.appendChild(i),r};var St=[],Ct={},Pt=e=>e.map(t=>({boost:5,label:t.name})),bt=e=>e?Array.from(e.entries()).map(([t,r])=>({info:()=>we(t,r),label:t,type:"filter"})):St,ht={label:"Done",apply:"] ",type:"keyword",boost:10},Re=[{label:"=",boost:10},{label:"!=",boost:9}],vt=[...Re,{label:"in",boost:6},{label:"starts",boost:5},{label:"ends",boost:4}],yt=[...Re,{label:">",boost:8},{label:"<",boost:7}],Tt=(e,t=!1,r="",n=!1)=>{let o=t?'"':"";return e.map(i=>({isIllustration:n,label:i,apply:n?`${o}${r}${o}`:`${r}${o}${i}${o} `}))},j=(e,t="")=>e.filter(r=>t===""||r.label.startsWith(t)).map(r=>({...r,apply:r.label+" "})),xt=(e,t,r="",n=[])=>r!==""&&!n.includes(r.toLowerCase())?[e,t,r]:[e,t],wt=({columns:e,namedFilters:t,table:r})=>{let n=(0,D.useRef)(),o=(0,Ee.useTypeaheadSuggestions)(),i=(0,D.useCallback)(async(m,{columnName:u,operator:a,startsWith:d,selection:p}=Ct)=>{if(m==="operator"){let l=e.find(S=>S.name===u);if(l)switch(l.serverDataType){case"string":case"char":return j(vt,d);case"int":case"long":case"double":return j(yt)}else console.warn(`'${u}' does not match any column name`)}else if(m==="column"){let l=await Pt(e),S=await bt(t);return(n.current=j(l)).concat(j(S))}if(u){let l=e.find(Q=>Q.name===u),S=Array.isArray(p)?p.length===0?"[":",":"",w=xt(r,u,d),g=await o(w),h=a==="starts";return n.current=Tt(g,(l==null?void 0:l.serverDataType)==="string",h?d:S,h),Array.isArray(p)&&(p==null?void 0:p.length)>1?[ht,...n.current]:n.current}return[]},[e,o,t,r]),s=(0,D.useCallback)(async(m,u,a)=>{let d=await i(m,{columnName:u});if(a&&d)for(let p of d){if(p.label===a)return!1;if(p.label.startsWith(a))return!0}return!1},[i]);return{getSuggestions:i,isPartialMatch:s}};var Ue=require("@heswell/salt-lab"),Le=me(te(),1);var W=require("@heswell/salt-lab");var Qe=require("@heswell/salt-lab"),B=require("react"),ke=require("react/jsx-runtime"),Et=e=>typeof e=="string",Ve=e=>Et(e)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:e.map(Ve),Ne=({column:e,selected:t,suggestionProvider:r,...n})=>{let o=t!=null?Ve(t):void 0,i=Array.isArray(o)?o:o!=null?[o]:[],[s,m]=(0,B.useState)(i);console.log({initialValues:i});let u=(0,B.useCallback)(async a=>{if(a){let d=await r.getSuggestions("columnValue",{columnName:e});console.log({values:d}),m(d.map(p=>p.label))}},[e,r]);return(0,ke.jsx)(Qe.Dropdown,{...n,onOpenChange:u,selected:o,source:s})};var Ae=require("@heswell/salt-lab"),Y=require("react"),De=require("react/jsx-runtime"),Rt=e=>typeof e=="string",Me=e=>{if(e!==void 0)return Rt(e)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:e.map(Me)},Ie=({column:e,selected:t,suggestionProvider:r,...n})=>{let o=Me(t),i=Array.isArray(o)?o:o!=null?[o]:[],[s,m]=(0,Y.useState)(i),u=(0,Y.useCallback)(async a=>{if(a){let d=await r.getSuggestions("columnValue",{columnName:e});console.log({values:d}),m(d.map(p=>p.label))}},[e,r]);return(0,De.jsx)(Ae.Dropdown,{...n,onOpenChange:u,selected:o,selectionStrategy:"multiple",source:s})};var k=require("react/jsx-runtime"),We=(e,t)=>{if(se(e))return(0,k.jsx)(W.ToggleButton,{className:"vuuToggleButton",toggled:!0,variant:"secondary",children:e.name});if(R(e)){let{column:r,value:n}=e;return(0,k.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:r,labelPlacement:"top",children:(0,k.jsx)(Ne,{column:r,selected:n.toString(),selectionStrategy:"default",source:[n.toString()],suggestionProvider:t,style:{width:100}})},r)}if(T(e)){let r=e.values.map(n=>n.toString());return(0,k.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:e.column,labelPlacement:"top",children:(0,k.jsx)(Ie,{column:e.column,selected:r,source:r,suggestionProvider:t,style:{width:100}})},e.column)}return e.filters.map(r=>We(r,t))},$e=({filter:e,suggestionProvider:t})=>e?We(e,t):[];var Xe=require("react/jsx-runtime"),Qt=({className:e,filter:t,suggestionProvider:r,...n})=>{console.log(`FilterToolbar ${JSON.stringify(t,null,2)}`);let o=$e({filter:t,suggestionProvider:r});return(0,Xe.jsx)(Ue.Toolbar,{className:(0,Le.default)("vuuFilterToolbar",e),...n,children:o})};var Vt=X.configure({strict:!0}),He=e=>{let t=Vt.parse(e);return H(t,e)};var _e=new Map,Nt=()=>!1,kt=(e,t)=>{let r=_e.get(t);if(r)return r;try{let n=He(t);return r=G(e,n),_e.set(t,r),r}catch{return console.warn(`filter-evaluation-utils, failed to parse filter "${t}"`),Nt}};function G(e,t){switch(t.op){case"in":return At(e,t);case"=":return Mt(e,t);case">":return It(e,t);case">=":return Dt(e,t);case"<":return Wt(e,t);case"<=":return $t(e,t);case"starts":return Ut(e,t);case"and":return Lt(e,t);case"or":return Xt(e,t);default:return console.log(`unrecognized filter type ${t.op}`),()=>!0}}var At=(e,t)=>r=>t.values.indexOf(r[e[t.column]])!==-1,Mt=(e,t)=>r=>r[e[t.column]]===t.value,It=(e,t)=>r=>r[e[t.column]]>t.value,Dt=(e,t)=>r=>r[e[t.column]]>=t.value,Wt=(e,t)=>r=>r[e[t.column]]<t.value,$t=(e,t)=>r=>r[e[t.column]]<=t.value,Ut=(e,t)=>{let r=t.value;if(typeof r!="string")throw Error("string filter applied to value of wrong type");return n=>{let o=n[e[t.column]];if(typeof o!="string")throw Error("string filter applied to value of wrong type");return o.toLowerCase().startsWith(r.toLowerCase())}},Lt=(e,t)=>{let r=t.filters.map(n=>G(e,n));return n=>r.every(o=>o(n))};function Xt(e,t){let r=t.filters.map(n=>G(e,n));return n=>r.some(o=>o(n))}var J=require("@vuu-ui/vuu-utils");var Ht=new Set(["=","!=",">",">=","<","<=","starts","ends"]),se=e=>e!==void 0&&e.name!==void 0,R=e=>e!==void 0&&Ht.has(e.op),_t=e=>e!==void 0&&(R(e)||T(e)),T=e=>e!==void 0&&e.op==="in",A=e=>e.op==="in",q=e=>e.op==="and",le=e=>e.op==="or";function x(e){return e!==void 0&&(e.op==="and"||e.op==="or")}var F="and",z="=",jt=">",Bt="<",je="or",ae="starts",Yt="ends",Be="in",Ye=(e,t=[])=>(e&&(x(e)?e.filters.forEach(r=>t.push(...Ye(r))):t.push(e)),t),Gt={combineWith:"and"},qt=(e,t,{combineWith:r=F}=Gt)=>{var n;if(pe(t))x(t)||(e=ue(e,{name:t.column}));else if(Zt(t))return x(t),ue(e,{name:(n=t.column)!=null?n:""});if(!e)return t;if(!t)return e;if(e.op===F&&t.op===F)return{op:F,filters:er(e.filters,t.filters)};if(e.op===F){let o=Kt(e.filters,t);return o.length>1?{op:F,filters:o}:o[0]}return t.op===F?{op:F,filters:t.filters.concat(e)}:K(e,t,!0)?t:ze(e,t)?Jt(e,t):{op:r,filters:[e,t]}},pe=e=>e?A(e)&&e.values.length===0?!0:q(e)&&e.filters.some(t=>pe(t)):!1,zt=e=>typeof e=="string"?`"${e}"`:e,Z=(e,t={})=>x(e)?e.filters.map(r=>Z(r)).join(` ${e.op} `):T(e)?`${e.column} ${e.op} [${e.values.join(",")}]`:`${e.column} ${e.op} ${zt(e.value)}`,Zt=e=>e?e.op===ae&&e.value===""?!0:e.op===ae&&e.value==="":!1,Kt=(e,t)=>e.concat(t),Jt=(e,t)=>pe(t)?t:A(e)&&A(t)?{...e,values:[...e.values,...t.values.filter(r=>!e.values.includes(r))]}:A(e)&&t.op===z?{...e,values:e.values.concat([t.value])}:e.op===z&&t.op===z?{column:e.column,op:Be,values:[e.value,t.value]}:t,er=(e,t)=>{let r=({op:i},{op:s})=>i===s||i[0]===s[0],n=(i,s)=>i.column===s.column&&r(i,s),o=i=>t.some(s=>n(i,s))===!1;return e.filter(o).concat(t)},tr=(e,t)=>{if(x(t)){let[r,n]=t.filters;if(r.column===e.name)return[n,Z(n)];if(n.column===e.name)return[r,Z(r)]}return[void 0,""]},rr=(e,t)=>{if(K(e,t,!0))return null;if(e.op!==F)throw Error(`removeFilter cannot remove ${JSON.stringify(t)} from ${JSON.stringify(e)}`);let r=e.filters.filter(n=>!K(n,t));return r.length>0?{type:F,filters:r}:null},nr=(e,t)=>{if(!e)return[null,null];if(e.column===t)return[e,null];if(e.op!==F)return[null,e];let[[r=null],n]=(0,J.partition)(e.filters,o=>o.column===t);return n.length===1?[r,n[0]]:[r,{op:F,filters:n}]},Ge=(e,t)=>x(e)?{op:e.op,filters:e.filters.map(r=>Ge(r,t))}:{...e,column:t},qe=(e,t)=>{if(!e)return!1;let{op:r,column:n}=e;switch(r){case F:case je:return e.filters!=null&&e.filters.some(o=>qe(o,t));default:return n===t.name}},ue=(e,t)=>{let r=t.name;if(e&&e.column!==r){if(q(e)||le(e)){let{op:n}=e,i=e.filters.filter(s=>s.column!==r);switch(i.length){case 0:return;case 1:return i[0];default:return{op:n,filters:i}}}return e}},ze=(e,t)=>e.column===t.column&&(e.op==="="||e.op==="in")&&(t.op==="="||t.op==="in"),or=(e,t)=>{if(e===t)return!0;if(e.length===t.length){let r=e.slice().sort(),n=t.slice().sort();return r.join("|")===n.join("|")}return!1},K=(e,t,r=!1)=>r?e&&t&&ze(e,t)?e.op===t.op&&(R(e)&&R(t)&&e.value===t.value||T(e)&&T(t)&&or(e.values,t.values)):!1:!0,Ze=(e,t,r)=>{if(e&&t){if(r==="replace")return t;if(e.op==="and")return{...e,filters:e.filters.concat(t)};let{column:n}=t;if(n&&(t.column?(0,J.extractFilterForColumn)(e,n):void 0)&&n){let i=ue(e,{name:n});return Ze(i,t,"add")}return{op:"and",filters:[e,t]}}return t||e};
1
+ "use strict";var Ge=Object.create;var $=Object.defineProperty;var ze=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var qe=Object.getPrototypeOf,Je=Object.prototype.hasOwnProperty;var Ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),et=(e,t)=>{for(var r in t)$(e,r,{get:t[r],enumerable:!0})},pe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ze(t))!Je.call(e,o)&&o!==r&&$(e,o,{get:()=>t[o],enumerable:!(n=ze(t,o))||n.enumerable});return e};var me=(e,t,r)=>(r=e!=null?Ge(qe(e)):{},pe(t||!e||!e.__esModule?$(r,"default",{value:e,enumerable:!0}):r,e)),tt=e=>pe($({},"__esModule",{value:!0}),e);var de=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var v=(e,t,r)=>(de(e,t,"read from private field"),r?r.call(e):t.get(e)),ge=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},ee=(e,t,r,n)=>(de(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var te=Ke((Jt,U)=>{(function(){"use strict";var e={}.hasOwnProperty,t="[native code]";function r(){for(var n=[],o=0;o<arguments.length;o++){var i=arguments[o];if(i){var s=typeof i;if(s==="string"||s==="number")n.push(i);else if(Array.isArray(i)){if(i.length){var p=r.apply(null,i);p&&n.push(p)}}else if(s==="object"){if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes("[native code]")){n.push(i.toString());continue}for(var d in i)e.call(i,d)&&i[d]&&n.push(d)}}}return n.join(" ")}typeof U<"u"&&U.exports?(r.default=r,U.exports=r):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return r}):window.classNames=r})()});var Zt={};et(Zt,{AND:()=>S,ENDS_WITH:()=>Wt,EQUALS:()=>Z,FilterInput:()=>mt,FilterToolbar:()=>vt,GREATER_THAN:()=>It,IN:()=>Le,LESS_THAN:()=>Dt,OR:()=>Xe,STARTS_WITH:()=>ae,addFilter:()=>Ut,filterAsQuery:()=>q,filterClauses:()=>He,filterEquals:()=>J,filterIncludesColumn:()=>je,filterPredicate:()=>G,getFilterPredicate:()=>yt,isAndFilter:()=>z,isFilterClause:()=>kt,isInFilter:()=>M,isMultiClauseFilter:()=>x,isMultiValueFilter:()=>T,isNamedFilter:()=>se,isOrFilter:()=>le,isSingleValueFilter:()=>Q,overrideColName:()=>_e,removeColumnFromFilter:()=>Bt,removeFilter:()=>Yt,splitFilterOnColumn:()=>Gt,updateFilter:()=>Ye,useCodeMirrorEditor:()=>oe,useFilterSuggestionProvider:()=>St});module.exports=tt(Zt);var ie=require("@salt-ds/core");var u=require("@vuu-ui/vuu-codemirror"),ye=me(te(),1),y=require("react");var P=require("@vuu-ui/vuu-codemirror");var fe=require("@vuu-ui/vuu-codemirror"),X=fe.LRParser.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 rt=P.LRLanguage.define({name:"VuuFilterQuery",parser:X.configure({props:[(0,P.styleTags)({Identifier:P.tags.variableName,String:P.tags.string,Or:P.tags.emphasis,Operator:P.tags.operator})]})}),Oe=()=>new P.LanguageSupport(rt);var h=require("@vuu-ui/vuu-utils");var F,re=class{constructor(){ge(this,F,void 0)}setFilterCombinatorOp(t,r=v(this,F)){(0,h.isMultiClauseFilter)(r)&&r.op===t||ee(this,F,{op:t,filters:[v(this,F)]})}add(t){if(v(this,F)===void 0)ee(this,F,t);else if((0,h.isMultiClauseFilter)(v(this,F)))v(this,F).filters.push(t);else throw Error("Invalid filter passed to FilterExpression")}setColumn(t,r=v(this,F)){if((0,h.isMultiClauseFilter)(r)){let n=r.filters.at(-1);n&&this.setColumn(t,n)}else r&&(r.column=t)}setOp(t,r=v(this,F)){if((0,h.isMultiClauseFilter)(r)){let n=r.filters.at(-1);n&&this.setOp(t,n)}else r&&(r.op=t)}setValue(t,r=v(this,F)){var n;if((0,h.isMultiClauseFilter)(r)){let o=r.filters.at(-1);o&&this.setValue(t,o)}else(0,h.isMultiValueFilter)(r)?((n=r.values)!=null||(r.values=[]),r.values.push(t)):(0,h.isSingleValueFilter)(r)&&(r.value=t)}toJSON(t=v(this,F)){return this.name?{...t,name:this.name}:t}};F=new WeakMap;var L=(e,t)=>{let r=new re,n=e.cursor();do{let{name:o,from:i,to:s}=n;switch(o){case"ColumnValueExpression":r.add({});break;case"ColumnSetExpression":r.add({op:"in"});break;case"Or":case"And":r.setFilterCombinatorOp(t.substring(i,s));break;case"Column":r.setColumn(t.substring(i,s));break;case"Operator":r.setOp(t.substring(i,s));break;case"String":r.setValue(t.substring(i+1,s-1));break;case"Number":r.setValue(parseFloat(t.substring(i,s)));break;case"True":r.setValue(!0);break;case"False":r.setValue(!1);break;case"FilterName":r.name=t.substring(i,s);break;default:}}while(n.next());return r.toJSON()};var E=require("@vuu-ui/vuu-codemirror"),nt=E.HighlightStyle.define([{tag:E.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:E.tags.comment,color:"green",fontStyle:"italic"}]),Fe=(0,E.syntaxHighlighting)(nt);var Se=require("@vuu-ui/vuu-codemirror"),Ce=Se.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)",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 c=require("@vuu-ui/vuu-codemirror"),ne=require("react"),ot=(e,t)=>{let r=e.prevSibling||e.parent;for(;r&&!["Column","Operator","In"].includes(r.name);)r=r.prevSibling||r.parent;if((r==null?void 0:r.name)==="In"||(r==null?void 0:r.name)==="Operator")return(0,c.getValue)(r,t)},it=(e,t,r)=>{let n=(0,c.getValue)(e,t);if(!(r===void 0||n===r)&&["contains","ends","starts"].some(o=>o.startsWith(n.toLowerCase())))return n},Pe=(e,t)=>{let r=e.prevSibling||e.parent||e.lastChild;for(;r&&r.name==="\u26A0";)r=r.prevSibling;if(r&&["As","Or","And"].includes(r.name))return(0,c.getValue)(r,t)},st=(e,t)=>{let r=e.lastChild,n=[];for(;r&&r.name!=="In";){let o=(0,c.getValue)(r,t);if(o)n.push(o);else break;r=r.prevSibling}return n},ve=e=>({from:e.pos,options:[{label:"enter name for this filter",boost:5}]}),he=(e,t,r=!0)=>{let n=t?[{label:"REPLACE existing filter",apply:()=>e("replace"),boost:8},{label:"AND existing filter",apply:()=>e("and"),boost:7},{label:"OR existing filter",apply:()=>e("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>e(),boost:6}];return r?n.concat(c.booleanJoinSuggestions).concat(c.asNameSuggestion):n},lt=(e,t,r)=>({from:e.pos,options:he(t,r)}),at=(e,t,r)=>({from:e.pos,options:he(t,r,!1)}),be=(e,t,r)=>{let n=(0,ne.useCallback)(async(o,i,s={})=>{let p=await e.getSuggestions(i,s),{startsWith:d=""}=s;return{from:o.pos-d.length,options:p}},[e]);return(0,ne.useCallback)(async o=>{var g,f;let{state:i,pos:s}=o,p=(g=o.matchBefore(/\w*/))!=null?g:{from:0,to:0,text:void 0},l=(0,c.syntaxTree)(i).resolveInner(s,-1);switch(console.log({nodeBeforeName:l.name}),l.name){case"Filter":return o.pos===0?n(o,"column"):Pe(l,i)==="as"?ve(o):lt(o,t.current,r);case"As":return ve(o);case"FilterName":return at(o,t.current,r);case"Column":{let a=(0,c.getValue)(l,i);return await e.isPartialMatch("column",void 0,a)?n(o,"column",{startsWith:a}):n(o,"operator",{columnName:a})}case"\u26A0":{let a=(0,c.getNodeByName)(l,i),O=ot(l,i),C=O?void 0:it(l,i,a);return C?n(o,"operator",{columnName:a,startsWith:C}):n(o,"columnValue",{columnName:a,operator:O,startsWith:p.text})}case"Identifier":if(Pe(l,i)==="as")return{from:o.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>t.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let a=(0,c.getNodeByName)(l,i),O=st(l,i);return n(o,"columnValue",{columnName:a,selection:O})}case"Comma":case"LBrack":{let a=(0,c.getNodeByName)(l,i);return n(o,"columnValue",{columnName:a})}case"ColumnValueExpression":{let a=(f=l.lastChild)==null?void 0:f.prevSibling;if((a==null?void 0:a.name)==="Column")return n(o,"operator",{columnName:(0,c.getNodeByName)(l,i)});if((a==null?void 0:a.name)==="Operator")return n(o,"columnValue",{columnName:(0,c.getNodeByName)(a,i),operator:(0,c.getValue)(a,i)})}break;case"In":return{from:o.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return n(o,"columnValue",{columnName:(0,c.getNodeByName)(l,i)});case"AndExpression":case"OrExpression":return n(o,"column");default:}},[r,n,t,e])};var k=e=>{if(e.current==null)throw Error("EditorView not defined");return e.current},ut=e=>(0,ye.default)("vuuSuggestion",{vuuIllustration:e.isIllustration}),ct=e=>{let t=e.lastIndexOf(" as ");return t!==-1?e.slice(0,t):e},pt=()=>console.log("noooop"),oe=({existingFilter:e,onSubmitFilter:t,suggestionProvider:r})=>{let n=(0,y.useRef)(null),o=(0,y.useRef)(pt),i=(0,y.useRef)(),s=be(r,o,e),[p,d]=(0,y.useMemo)(()=>{let l=()=>{let m=k(i),b=m.state.doc.toString(),R=(0,u.ensureSyntaxTree)(m.state,m.state.doc.length,5e3);if(R){let w=L(R,b);return[w,ct(b),w.name]}else return[void 0,"",void 0]},g=()=>{k(i).setState(C())},f=m=>{let[b,R,w]=l();t==null||t(b,R,m,w),g()},a=m=>u.keymap.of([{key:m,run(){return f(),!0}}]),O=m=>u.keymap.of([{key:m,run(){return(0,u.startCompletion)(k(i)),!0}}]),C=()=>u.EditorState.create({doc:"",extensions:[u.minimalSetup,(0,u.autocompletion)({override:[s],optionClass:ut}),Oe(),u.keymap.of(u.defaultKeymap),a("Ctrl-Enter"),O("ArrowDown"),u.EditorView.updateListener.of(m=>{let b=k(i);m.docChanged&&(0,u.startCompletion)(b)}),u.EditorState.transactionFilter.of(m=>m.newDoc.lines>1?[]:m),Ce,Fe]});return o.current=m=>{f(m),setTimeout(()=>{k(i).focus()},100)},[C,g]},[s,t]);return(0,y.useEffect)(()=>{if(!n.current)throw Error("editor not in dom");return i.current=new u.EditorView({state:p(),parent:n.current}),()=>{var l;(l=i.current)==null||l.destroy()}},[s,p]),{editorRef:n,clearInput:d}};var V=require("react/jsx-runtime"),H="vuuFilterInput",mt=({existingFilter:e,namedFilters:t,onSubmitFilter:r,suggestionProvider:n,...o})=>{let{editorRef:i,clearInput:s}=oe({existingFilter:e,onSubmitFilter:r,suggestionProvider:n});return(0,V.jsxs)("div",{...o,className:H,children:[(0,V.jsx)(ie.Button,{className:`${H}-FilterButton`,"data-icon":"filter"}),(0,V.jsx)("div",{className:`${H}-Editor`,ref:i}),(0,V.jsx)(ie.Button,{className:`${H}-ClearButton`,"data-icon":"close-circle",onClick:s})]})};var N=require("@vuu-ui/vuu-codemirror"),j=require("@vuu-ui/vuu-data"),D=require("react");var I=require("@vuu-ui/vuu-utils"),Te=(e,t)=>{let r=(0,I.createEl)("div","vuuFunctionDoc"),n=(0,I.createEl)("div","function-heading"),o=(0,I.createEl)("span","function-name",e);n.appendChild(o);let i=(0,I.createEl)("p",void 0,t);return r.appendChild(n),r.appendChild(i),r};var dt=[],gt={},ft=e=>e.map(t=>({boost:5,label:t.name})),Ot=e=>e?Array.from(e.entries()).map(([t,r])=>({info:()=>Te(t,r),label:t,type:"filter"})):dt,Ft={label:"Done",apply:"] ",type:"keyword",boost:10},_=(e,t="")=>e.filter(r=>t===""||r.label.startsWith(t)).map(r=>({...r,apply:r.label+" "})),St=({columns:e,namedFilters:t,table:r})=>{let n=(0,D.useRef)(),o=(0,j.useTypeaheadSuggestions)(),i=(0,D.useCallback)(async(p,d=gt)=>{let{columnName:l,operator:g,startsWith:f,selection:a}=d;if(p==="operator"){let O=e.find(C=>C.name===l);if(O)switch(O.serverDataType){case"string":case"char":return _(N.stringOperators,f);case"int":case"long":case"double":return _(N.numericOperators)}else console.warn(`'${l}' does not match any column name`)}else if(p==="column"){let O=await ft(e),C=await Ot(t);return(n.current=_(O)).concat(_(C))}if(l){let O=e.find(w=>w.name===l),C=Array.isArray(a)?a.length===0?"[":",":"",m=(0,j.getTypeaheadParams)(r,l,f),b=await o(m),R=g==="starts";return n.current=(0,N.toSuggestions)(b,{quoted:(O==null?void 0:O.serverDataType)==="string",prefix:R?f:C,isIllustration:R}),Array.isArray(a)&&(a==null?void 0:a.length)>1?[Ft,...n.current]:n.current}return[]},[e,o,t,r]),s=(0,D.useCallback)(async(p,d,l)=>{let g=await i(p,{columnName:d});if(l&&g)for(let f of g){if(f.label===l)return!1;if(f.label.startsWith(l))return!0}return!1},[i]);return{getSuggestions:i,isPartialMatch:s}};var Ie=require("@heswell/salt-lab"),De=me(te(),1);var W=require("@heswell/salt-lab");var xe=require("@heswell/salt-lab"),B=require("react"),Qe=require("react/jsx-runtime"),Ct=e=>typeof e=="string",Re=e=>Ct(e)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:e.map(Re),Ee=({column:e,selected:t,suggestionProvider:r,...n})=>{let o=t!=null?Re(t):void 0,i=Array.isArray(o)?o:o!=null?[o]:[],[s,p]=(0,B.useState)(i);console.log({initialValues:i});let d=(0,B.useCallback)(async l=>{if(l){let g=await r.getSuggestions("columnValue",{columnName:e});console.log({values:g}),p(g.map(f=>f.label))}},[e,r]);return(0,Qe.jsx)(xe.Dropdown,{...n,onOpenChange:d,selected:o,source:s})};var we=require("@heswell/salt-lab"),Y=require("react"),Ae=require("react/jsx-runtime"),Pt=e=>typeof e=="string",Ve=e=>{if(e!==void 0)return Pt(e)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:e.map(Ve)},Ne=({column:e,selected:t,suggestionProvider:r,...n})=>{let o=Ve(t),i=Array.isArray(o)?o:o!=null?[o]:[],[s,p]=(0,Y.useState)(i),d=(0,Y.useCallback)(async l=>{if(l){let g=await r.getSuggestions("columnValue",{columnName:e});console.log({values:g}),p(g.map(f=>f.label))}},[e,r]);return(0,Ae.jsx)(we.Dropdown,{...n,onOpenChange:d,selected:o,selectionStrategy:"multiple",source:s})};var A=require("react/jsx-runtime"),Me=(e,t)=>{if(se(e))return(0,A.jsx)(W.ToggleButton,{className:"vuuToggleButton",toggled:!0,variant:"secondary",children:e.name});if(Q(e)){let{column:r,value:n}=e;return(0,A.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:r,labelPlacement:"top",children:(0,A.jsx)(Ee,{column:r,selected:n.toString(),selectionStrategy:"default",source:[n.toString()],suggestionProvider:t,style:{width:100}})},r)}if(T(e)){let r=e.values.map(n=>n.toString());return(0,A.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:e.column,labelPlacement:"top",children:(0,A.jsx)(Ne,{column:e.column,selected:r,source:r,suggestionProvider:t,style:{width:100}})},e.column)}return e.filters.map(r=>Me(r,t))},ke=({filter:e,suggestionProvider:t})=>e?Me(e,t):[];var We=require("react/jsx-runtime"),vt=({className:e,filter:t,suggestionProvider:r,...n})=>{console.log(`FilterToolbar ${JSON.stringify(t,null,2)}`);let o=ke({filter:t,suggestionProvider:r});return(0,We.jsx)(Ie.Toolbar,{className:(0,De.default)("vuuFilterToolbar",e),...n,children:o})};var ht=X.configure({strict:!0}),$e=e=>{let t=ht.parse(e);return L(t,e)};var Ue=new Map,bt=()=>!1,yt=(e,t)=>{let r=Ue.get(t);if(r)return r;try{let n=$e(t);return r=G(e,n),Ue.set(t,r),r}catch{return console.warn(`filter-evaluation-utils, failed to parse filter "${t}"`),bt}};function G(e,t){switch(t.op){case"in":return Tt(e,t);case"=":return xt(e,t);case">":return Rt(e,t);case">=":return Et(e,t);case"<":return Qt(e,t);case"<=":return wt(e,t);case"starts":return Vt(e,t);case"and":return Nt(e,t);case"or":return At(e,t);default:return console.log(`unrecognized filter type ${t.op}`),()=>!0}}var Tt=(e,t)=>r=>t.values.indexOf(r[e[t.column]])!==-1,xt=(e,t)=>r=>r[e[t.column]]===t.value,Rt=(e,t)=>r=>r[e[t.column]]>t.value,Et=(e,t)=>r=>r[e[t.column]]>=t.value,Qt=(e,t)=>r=>r[e[t.column]]<t.value,wt=(e,t)=>r=>r[e[t.column]]<=t.value,Vt=(e,t)=>{let r=t.value;if(typeof r!="string")throw Error("string filter applied to value of wrong type");return n=>{let o=n[e[t.column]];if(typeof o!="string")throw Error("string filter applied to value of wrong type");return o.toLowerCase().startsWith(r.toLowerCase())}},Nt=(e,t)=>{let r=t.filters.map(n=>G(e,n));return n=>r.every(o=>o(n))};function At(e,t){let r=t.filters.map(n=>G(e,n));return n=>r.some(o=>o(n))}var K=require("@vuu-ui/vuu-utils");var Mt=new Set(["=","!=",">",">=","<","<=","starts","ends"]),se=e=>e!==void 0&&e.name!==void 0,Q=e=>e!==void 0&&Mt.has(e.op),kt=e=>e!==void 0&&(Q(e)||T(e)),T=e=>e!==void 0&&e.op==="in",M=e=>e.op==="in",z=e=>e.op==="and",le=e=>e.op==="or";function x(e){return e!==void 0&&(e.op==="and"||e.op==="or")}var S="and",Z="=",It=">",Dt="<",Xe="or",ae="starts",Wt="ends",Le="in",He=(e,t=[])=>(e&&(x(e)?e.filters.forEach(r=>t.push(...He(r))):t.push(e)),t),$t={combineWith:"and"},Ut=(e,t,{combineWith:r=S}=$t)=>{var n;if(ce(t))x(t)||(e=ue(e,{name:t.column}));else if(Lt(t))return x(t),ue(e,{name:(n=t.column)!=null?n:""});if(!e)return t;if(!t)return e;if(e.op===S&&t.op===S)return{op:S,filters:jt(e.filters,t.filters)};if(e.op===S){let o=Ht(e.filters,t);return o.length>1?{op:S,filters:o}:o[0]}return t.op===S?{op:S,filters:t.filters.concat(e)}:J(e,t,!0)?t:Be(e,t)?_t(e,t):{op:r,filters:[e,t]}},ce=e=>e?M(e)&&e.values.length===0?!0:z(e)&&e.filters.some(t=>ce(t)):!1,Xt=e=>typeof e=="string"?`"${e}"`:e,q=e=>x(e)?e.filters.map(t=>q(t)).join(` ${e.op} `):T(e)?`${e.column} ${e.op} [${e.values.join(",")}]`:`${e.column} ${e.op} ${Xt(e.value)}`,Lt=e=>e?e.op===ae&&e.value===""?!0:e.op===ae&&e.value==="":!1,Ht=(e,t)=>e.concat(t),_t=(e,t)=>ce(t)?t:M(e)&&M(t)?{...e,values:[...e.values,...t.values.filter(r=>!e.values.includes(r))]}:M(e)&&t.op===Z?{...e,values:e.values.concat([t.value])}:e.op===Z&&t.op===Z?{column:e.column,op:Le,values:[e.value,t.value]}:t,jt=(e,t)=>{let r=({op:i},{op:s})=>i===s||i[0]===s[0],n=(i,s)=>i.column===s.column&&r(i,s),o=i=>t.some(s=>n(i,s))===!1;return e.filter(o).concat(t)},Bt=(e,t)=>{if(x(t)){let[r,n]=t.filters;if(r.column===e.name)return[n,q(n)];if(n.column===e.name)return[r,q(r)]}return[void 0,""]},Yt=(e,t)=>{if(J(e,t,!0))return null;if(e.op!==S)throw Error(`removeFilter cannot remove ${JSON.stringify(t)} from ${JSON.stringify(e)}`);let r=e.filters.filter(n=>!J(n,t));return r.length>0?{type:S,filters:r}:null},Gt=(e,t)=>{if(!e)return[null,null];if(e.column===t)return[e,null];if(e.op!==S)return[null,e];let[[r=null],n]=(0,K.partition)(e.filters,o=>o.column===t);return n.length===1?[r,n[0]]:[r,{op:S,filters:n}]},_e=(e,t)=>x(e)?{op:e.op,filters:e.filters.map(r=>_e(r,t))}:{...e,column:t},je=(e,t)=>{if(!e)return!1;let{op:r,column:n}=e;switch(r){case S:case Xe:return e.filters!=null&&e.filters.some(o=>je(o,t));default:return n===t.name}},ue=(e,t)=>{let r=t.name;if(e&&e.column!==r){if(z(e)||le(e)){let{op:n}=e,i=e.filters.filter(s=>s.column!==r);switch(i.length){case 0:return;case 1:return i[0];default:return{op:n,filters:i}}}return e}},Be=(e,t)=>e.column===t.column&&(e.op==="="||e.op==="in")&&(t.op==="="||t.op==="in"),zt=(e,t)=>{if(e===t)return!0;if(e.length===t.length){let r=e.slice().sort(),n=t.slice().sort();return r.join("|")===n.join("|")}return!1},J=(e,t,r=!1)=>r?e&&t&&Be(e,t)?e.op===t.op&&(Q(e)&&Q(t)&&e.value===t.value||T(e)&&T(t)&&zt(e.values,t.values)):!1:!0,Ye=(e,t,r)=>{if(e&&t){if(r==="replace")return t;if(e.op==="and")return{...e,filters:e.filters.concat(t)};let{column:n}=t;if(n&&(t.column?(0,K.extractFilterForColumn)(e,n):void 0)&&n){let i=ue(e,{name:n});return Ye(i,t,"add")}return{op:"and",filters:[e,t]}}return t||e};
2
2
  /*! Bundled license information:
3
3
 
4
4
  classnames/index.js: