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