@vuu-ui/vuu-filters 0.6.25 → 0.6.26
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/FilterInput.d.ts +2 -1
package/cjs/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
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:()=>v,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 S,oe=class{constructor(){Fe(this,S,void 0)}setFilterCombinatorOp(t,r=T(this,S)){(0,x.isMultiClauseFilter)(r)&&r.op===t||re(this,S,{op:t,filters:[T(this,S)]})}add(t){if(T(this,S)===void 0)re(this,S,t);else if((0,x.isMultiClauseFilter)(T(this,S)))T(this,S).filters.push(t);else throw Error("Invalid filter passed to FilterExpression")}setColumn(t,r=T(this,S)){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,S)){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,S)){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,S)){return this.name?{...t,name:this.name}:t}};S=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 u,O;let{state:i,pos:s}=o,d=(u=o.matchBefore(/\w*/))!=null?u:{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:C,to:p}=l;if(p-C===2&&o.pos===C+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} ${C} ${p}`)}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),C=f?void 0:mt(l,i,a);return C?n(o,"operator",{columnName:a,startsWith:C}):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 p=D(i),y=p.state.doc.toString(),b=(0,c.ensureSyntaxTree)(p.state,p.state.doc.length,5e3);if(b){let F=B(b,y);return[F,ft(y),F.name]}else return[void 0,"",void 0]},u=()=>{D(i).setState(C())},O=p=>{let[y,b,F]=l();t==null||t(y,b,p,F),u()},a=p=>c.keymap.of([{key:p,run(){return O(),!0}}]),f=p=>c.keymap.of([{key:p,run(){return(0,c.startCompletion)(D(i)),!0}}]),C=()=>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(p=>{let y=D(i);p.docChanged&&(0,c.startCompletion)(y)}),c.EditorState.transactionFilter.of(p=>p.newDoc.lines>1?[]:p),be,Ce]});return o.current=p=>{O(p),setTimeout(()=>{D(i).focus()},100)},[C,u]},[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:u,existingFilter:O,filterName:a,operator:f,quoted:C,onSubmit:p,startsWith:y,selection:b}=l;switch(g){case"operator":{let F=e.find(M=>M.name===u);if(F)switch(F.serverDataType){case"string":case"char":return j(P.stringOperators,y);case"int":case"long":case"double":return j(P.numericOperators)}else console.warn(`'${u}' does not match any column name`)}break;case"column":{let F=await yt(e),M=await Tt(t);return(o.current=j(F)).concat(j(M))}case"columnValue":if(u){let F=e.find(et=>et.name===u);if(!F)throw Error(`useFilterSUggestionProvider no column ${u}`);let M=Array.isArray(b)?b.length===0?"[":",":"",Je=(0,Y.getTypeaheadParams)(n,u,y),Ke=await i(Je),de=f==="starts";return o.current=(0,P.toSuggestions)(Ke,{moveCursorToEnd:C,quoted:(F==null?void 0:F.serverDataType)==="string"&&!C,suffix:C?"":" ",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 p!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await ht({existingFilter:O,filterName:a,onSubmit:p,saveOptions:r})}case"name":return await(0,P.getNamePrompt)("filter");default:}return[]},[e,i,t,r,n]),d=(0,$.useCallback)(async(g,l,u)=>{let O=await s(g,{columnName:l});if(u&&O)for(let a of O){if(a.label===u)return!1;if(a.label.startsWith(u))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 u=await r.getSuggestions("columnValue",{columnName:e});console.log({values:u}),d(u.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 u=await r.getSuggestions("columnValue",{columnName:e});console.log({values:u}),d(u.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 v="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=v}=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===v&&t.op===v)return{op:v,filters:er(e.filters,t.filters)};if(e.op===v){let o=Jt(e.filters,t);return o.length>1?{op:v,filters:o}:o[0]}return t.op===v?{op:v,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!==v)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:v,filters:r}:null},nr=(e,t)=>{if(!e)return[null,null];if(e.column===t)return[e,null];if(e.op!==v)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:v,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 v: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};
|
|
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:()=>v,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 S,oe=class{constructor(){Fe(this,S,void 0)}setFilterCombinatorOp(t,r=T(this,S)){(0,x.isMultiClauseFilter)(r)&&r.op===t||re(this,S,{op:t,filters:[T(this,S)]})}add(t){if(T(this,S)===void 0)re(this,S,t);else if((0,x.isMultiClauseFilter)(T(this,S)))T(this,S).filters.push(t);else throw Error("Invalid filter passed to FilterExpression")}setColumn(t,r=T(this,S)){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,S)){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,S)){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,S)){return this.name?{...t,name:this.name}:t}};S=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 u,O;let{state:i,pos:s}=o,d=(u=o.matchBefore(/\w*/))!=null?u:{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:C,to:p}=l;if(p-C===2&&o.pos===C+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} ${C} ${p}`)}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),C=f?void 0:mt(l,i,a);return C?n(o,"operator",{columnName:a,startsWith:C}):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 p=D(i),y=p.state.doc.toString(),b=(0,c.ensureSyntaxTree)(p.state,p.state.doc.length,5e3);if(b){let F=B(b,y);return[F,ft(y),F.name]}else return[void 0,"",void 0]},u=()=>{D(i).setState(C())},O=p=>{let[y,b,F]=l();t==null||t(y,b,p,F),u()},a=p=>c.keymap.of([{key:p,run(){return O(),!0}}]),f=p=>c.keymap.of([{key:p,run(){return(0,c.startCompletion)(D(i)),!0}}]),C=()=>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(p=>{let y=D(i);p.docChanged&&(0,c.startCompletion)(y)}),c.EditorState.transactionFilter.of(p=>p.newDoc.lines>1?[]:p),be,Ce]});return o.current=p=>{O(p),setTimeout(()=>{D(i).focus()},100)},[C,u]},[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,iconName:t="filter",namedFilters:r,onSubmitFilter:n,suggestionProvider:o,...i})=>{let{editorRef:s,clearInput:d}=se({existingFilter:e,onSubmitFilter:n,suggestionProvider:o});return(0,V.jsxs)("div",{...i,className:_,children:[(0,V.jsx)(le.Button,{className:`${_}-FilterButton`,"data-icon":t,tabIndex:-1}),(0,V.jsx)("div",{className:`${_}-Editor`,ref:s}),(0,V.jsx)(le.Button,{className:`${_}-ClearButton`,"data-icon":"close-circle",onClick:d})]})};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:u,existingFilter:O,filterName:a,operator:f,quoted:C,onSubmit:p,startsWith:y,selection:b}=l;switch(g){case"operator":{let F=e.find(M=>M.name===u);if(F)switch(F.serverDataType){case"string":case"char":return j(P.stringOperators,y);case"int":case"long":case"double":return j(P.numericOperators)}else console.warn(`'${u}' does not match any column name`)}break;case"column":{let F=await yt(e),M=await Tt(t);return(o.current=j(F)).concat(j(M))}case"columnValue":if(u){let F=e.find(et=>et.name===u);if(!F)throw Error(`useFilterSUggestionProvider no column ${u}`);let M=Array.isArray(b)?b.length===0?"[":",":"",Je=(0,Y.getTypeaheadParams)(n,u,y),Ke=await i(Je),de=f==="starts";return o.current=(0,P.toSuggestions)(Ke,{moveCursorToEnd:C,quoted:(F==null?void 0:F.serverDataType)==="string"&&!C,suffix:C?"":" ",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 p!="function")throw Error("useFilterSuggestionProvider, onSubmit must be supplied for 'save' suggestions");return await ht({existingFilter:O,filterName:a,onSubmit:p,saveOptions:r})}case"name":return await(0,P.getNamePrompt)("filter");default:}return[]},[e,i,t,r,n]),d=(0,$.useCallback)(async(g,l,u)=>{let O=await s(g,{columnName:l});if(u&&O)for(let a of O){if(a.label===u)return!1;if(a.label.startsWith(u))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 u=await r.getSuggestions("columnValue",{columnName:e});console.log({values:u}),d(u.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 u=await r.getSuggestions("columnValue",{columnName:e});console.log({values:u}),d(u.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 v="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=v}=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===v&&t.op===v)return{op:v,filters:er(e.filters,t.filters)};if(e.op===v){let o=Jt(e.filters,t);return o.length>1?{op:v,filters:o}:o[0]}return t.op===v?{op:v,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!==v)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:v,filters:r}:null},nr=(e,t)=>{if(!e)return[null,null];if(e.column===t)return[e,null];if(e.op!==v)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:v,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 v: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:
|