@vuu-ui/vuu-filters 0.6.6 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/index.js CHANGED
@@ -1,169 +1,4 @@
1
- "use strict";var ne=Object.create;var _=Object.defineProperty;var re=Object.getOwnPropertyDescriptor;var ae=Object.getOwnPropertyNames;var ie=Object.getPrototypeOf,se=Object.prototype.hasOwnProperty;var le=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),ue=(t,e)=>{for(var o in e)_(t,o,{get:e[o],enumerable:!0})},pt=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of ae(e))!se.call(t,r)&&r!==o&&_(t,r,{get:()=>e[r],enumerable:!(n=re(e,r))||n.enumerable});return t};var et=(t,e,o)=>(o=t!=null?ne(ie(t)):{},pt(e||!t||!t.__esModule?_(o,"default",{value:t,enumerable:!0}):o,t)),ce=t=>pt(_({},"__esModule",{value:!0}),t);var dt=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var F=(t,e,o)=>(dt(t,e,"read from private field"),o?o.call(t):e.get(t)),mt=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)},ot=(t,e,o,n)=>(dt(t,e,"write to private field"),n?n.call(t,o):e.set(t,o),o);var U=le((eo,$)=>{(function(){"use strict";var t={}.hasOwnProperty,e="[native code]";function o(){for(var n=[],r=0;r<arguments.length;r++){var a=arguments[r];if(a){var i=typeof a;if(i==="string"||i==="number")n.push(a);else if(Array.isArray(a)){if(a.length){var p=o.apply(null,a);p&&n.push(p)}}else if(i==="object"){if(a.toString!==Object.prototype.toString&&!a.toString.toString().includes("[native code]")){n.push(a.toString());continue}for(var u in a)t.call(a,u)&&a[u]&&n.push(u)}}}return n.join(" ")}typeof $<"u"&&$.exports?(o.default=o,$.exports=o):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return o}):window.classNames=o})()});var Je={};ue(Je,{AND:()=>h,ENDS_WITH:()=>_e,EQUALS:()=>Z,FilterInput:()=>Fe,FilterToolbar:()=>Ae,GREATER_THAN:()=>We,IN:()=>Zt,LESS_THAN:()=>Le,OR:()=>qt,STARTS_WITH:()=>lt,addFilter:()=>Ue,filterAsQuery:()=>K,filterClauses:()=>Kt,filterEquals:()=>J,filterIncludesColumn:()=>te,isAndFilter:()=>q,isFilterClause:()=>Me,isInFilter:()=>V,isMultiClauseFilter:()=>E,isMultiValueFilter:()=>B,isNamedFilter:()=>it,isOrFilter:()=>st,isSingleValueFilter:()=>w,overrideColName:()=>Jt,removeColumnFromFilter:()=>ze,removeFilter:()=>qe,splitFilterOnColumn:()=>Ze,updateFilter:()=>oe,useCodeMirrorEditor:()=>at,useFilterSuggestionProvider:()=>Qe});module.exports=ce(Je);function gt(t,e){e===void 0&&(e={});var o=e.insertAt;if(!(!t||typeof document>"u")){var n=document.head||document.getElementsByTagName("head")[0],r=document.createElement("style");r.type="text/css",o==="top"&&n.firstChild?n.insertBefore(r,n.firstChild):n.appendChild(r),r.styleSheet?r.styleSheet.cssText=t:r.appendChild(document.createTextNode(t))}}var ft=t=>(...e)=>[t,...e].join("-");var vt=require("react/jsx-runtime"),Ot=require("react"),ht=et(U());var pe=`/* Styles applied to the root element if variant="cta" */
2
- .saltButton-cta {
3
- --button-background: var(--salt-actionable-cta-background);
4
- --button-background-active: var(--salt-actionable-cta-background-active);
5
- --button-background-disabled: var(--salt-actionable-cta-background-disabled);
6
- --button-background-hover: var(--salt-actionable-cta-background-hover);
7
- --button-fontWeight: var(--salt-actionable-cta-fontWeight);
8
- --button-text-color: var(--salt-actionable-cta-foreground);
9
- --button-text-color-active: var(--salt-actionable-cta-foreground-active);
10
- --button-text-color-disabled: var(--salt-actionable-cta-foreground-disabled);
11
- --button-text-color-hover: var(--salt-actionable-cta-foreground-hover);
12
- }
13
-
14
- /* Icon API in "CTA" variant @ignore */
15
- .saltButton-cta {
16
- --saltIcon-color: var(--salt-actionable-cta-foreground);
17
- }
18
- .saltButton-cta:hover {
19
- --saltIcon-color: var(--salt-actionable-cta-foreground-hover);
20
- }
21
- .saltButton-cta:active,
22
- .saltButton-cta.saltButton-active {
23
- --saltIcon-color: var(--salt-actionable-cta-foreground-active);
24
- }
25
- .saltButton-cta.saltButton-disabled {
26
- --saltIcon-color: var(--salt-actionable-cta-foreground-disabled);
27
- }
28
-
29
- /* Styles applied to the root element if variant="primary" (or no variant specified) */
30
- .saltButton-primary {
31
- --button-background: var(--salt-actionable-primary-background);
32
- --button-background-active: var(--salt-actionable-primary-background-active);
33
- --button-background-disabled: var(--salt-actionable-primary-background-disabled);
34
- --button-background-hover: var(--salt-actionable-primary-background-hover);
35
- --button-fontWeight: var(--salt-actionable-primary-fontWeight);
36
- --button-text-color: var(--salt-actionable-primary-foreground);
37
- --button-text-color-active: var(--salt-actionable-primary-foreground-active);
38
- --button-text-color-disabled: var(--salt-actionable-primary-foreground-disabled);
39
- --button-text-color-hover: var(--salt-actionable-primary-foreground-hover);
40
- }
41
-
42
- /* Icon API in "primary" variant @ignore */
43
- .saltButton-primary {
44
- --saltIcon-color: var(--salt-actionable-primary-foreground);
45
- }
46
- .saltButton-primary:hover {
47
- --saltIcon-color: var(--salt-actionable-primary-foreground-hover);
48
- }
49
- .saltButton-primary:active,
50
- .saltButton-primary.saltButton-active {
51
- --saltIcon-color: var(--salt-actionable-primary-foreground-active);
52
- }
53
- .saltButton-primary.saltButton-disabled {
54
- --saltIcon-color: var(--salt-actionable-primary-foreground-disabled);
55
- }
56
-
57
- /* Styles applied to the root element if variant="secondary" */
58
- .saltButton-secondary {
59
- --button-background: var(--salt-actionable-secondary-background);
60
- --button-background-active: var(--salt-actionable-secondary-background-active);
61
- --button-background-disabled: var(--salt-actionable-secondary-background-disabled);
62
- --button-background-hover: var(--salt-actionable-secondary-background-hover);
63
- --button-fontWeight: var(--salt-actionable-secondary-fontWeight);
64
- --button-text-color: var(--salt-actionable-secondary-foreground);
65
- --button-text-color-active: var(--salt-actionable-secondary-foreground-active);
66
- --button-text-color-disabled: var(--salt-actionable-secondary-foreground-disabled);
67
- --button-text-color-hover: var(--salt-actionable-secondary-foreground-hover);
68
- }
69
-
70
- /* Icon API in "secondary" variant @ignore */
71
- .saltButton-secondary {
72
- --saltIcon-color: var(--salt-actionable-secondary-foreground);
73
- }
74
-
75
- .saltButton-secondary:hover {
76
- --saltIcon-color: var(--salt-actionable-secondary-foreground-hover);
77
- }
78
- .saltButton-secondary:active,
79
- .saltButton-secondary.saltButton-active {
80
- --saltIcon-color: var(--salt-actionable-secondary-foreground-active);
81
- }
82
- .saltButton-secondary.saltButton-disabled {
83
- --saltIcon-color: var(--salt-actionable-secondary-foreground-disabled);
84
- }
85
-
86
- .saltButton {
87
- align-items: var(--saltButton-alignItems, center);
88
- appearance: none;
89
- background: var(--saltButton-background, var(--button-background));
90
- border-color: var(--saltButton-borderColor, transparent);
91
- border-style: var(--saltButton-borderStyle, solid);
92
- border-width: var(--saltButton-borderWidth, 0);
93
- border-radius: var(--saltButton-borderRadius, 0);
94
- color: var(--saltButton-text-color, var(--button-text-color));
95
- cursor: var(--saltButton-cursor, pointer);
96
- display: inline-flex;
97
- justify-content: var(--saltButton-justifyContent, center);
98
- font-size: var(--saltButton-fontSize, var(--salt-text-fontSize));
99
- font-family: var(--saltButton-fontFamily, var(--salt-text-fontFamily));
100
- line-height: var(--saltButton-lineHeight, var(--salt-text-lineHeight));
101
- letter-spacing: var(--saltButton-letterSpacing, var(--salt-actionable-letterSpacing));
102
- text-transform: var(--saltButton-textTransform, var(--salt-actionable-textTransform));
103
- padding: 0 var(--saltButton-padding, var(--salt-size-unit));
104
- margin: var(--saltButton-margin, 0);
105
- height: var(--saltButton-height, var(--salt-size-base));
106
- min-width: var(--saltButton-minWidth, unset);
107
- min-height: 0;
108
- position: relative;
109
- text-align: var(--saltButton-textAlign, var(--salt-actionable-textAlign));
110
- text-decoration: none;
111
- transition: none;
112
- user-select: none;
113
- width: var(--saltButton-width, auto);
114
- -webkit-appearance: none;
115
- -webkit-tap-highlight-color: transparent;
116
- /* Styles applied to align children*/
117
- font-weight: var(--saltButton-fontWeight, var(--button-fontWeight));
118
- white-space: pre;
119
- }
120
-
121
- /* Pseudo-class applied to the root element on focus */
122
- .saltButton:focus-visible {
123
- outline-style: var(--salt-focused-outlineStyle);
124
- outline-width: var(--salt-focused-outlineWidth);
125
- outline-color: var(--salt-focused-outlineColor);
126
- outline-offset: var(--salt-focused-outlineOffset);
127
- background: var(--saltButton-background-hover, var(--button-background-hover));
128
- color: var(--saltButton-text-color-hover, var(--button-text-color-hover));
129
- }
130
-
131
- /* Pseudo-class applied to the root element on focus when Button is active */
132
- .saltButton.saltButton-active:focus-visible,
133
- .saltButton:focus-visible(:active) {
134
- background: var(--saltButton-background-active-hover, var(--button-background));
135
- color: var(--saltButton-text-color-active-hover, var(--button-text-color));
136
- }
137
-
138
- /* Pseudo-class applied to the root element on hover when Button is not active or disabled */
139
- .saltButton:hover {
140
- background: var(--saltButton-background-hover, var(--button-background-hover));
141
- color: var(--saltButton-text-color-hover, var(--button-text-color-hover));
142
- }
143
-
144
- /* Pseudo-class applied to the root element when Button is active and not disabled */
145
- .saltButton:active,
146
- .saltButton.saltButton-active {
147
- background: var(--saltButton-background-active, var(--button-background-active));
148
- color: var(--saltButton-text-color-active, var(--button-text-color-active));
149
- }
150
-
151
- /* Pseudo-class applied to the root element if disabled={true} */
152
- .saltButton:disabled,
153
- .saltButton-disabled,
154
- /* Overrides to apply the disabled style when the button is focusable while also disabled */
155
- .saltButton-disabled:active,
156
- .saltButton-disabled:focus-visible,
157
- .saltButton-disabled:hover {
158
- background: var(--saltButton-background-disabled, var(--button-background-disabled));
159
- color: var(--saltButton-text-color-disabled, var(--button-text-color-disabled));
160
- cursor: var(--saltButton-cursor-disabled, var(--salt-actionable-cursor-disabled));
161
- }
162
-
163
- .saltButton[href] {
164
- display: inline-flex;
165
- }
166
- `;gt(pe);var N=require("react"),bt=({disabled:t,focusableWhenDisabled:e,onKeyUp:o,onKeyDown:n,onClick:r,onBlur:a})=>{let[i,p]=(0,N.useState)(""),[u,s]=(0,N.useState)(!1),d="Enter",c=" ";return(0,N.useEffect)(()=>{let g=setTimeout(()=>{i!==d&&i!==c&&s(!1)},0);return()=>{clearTimeout(g)}},[u,i]),{active:u,buttonProps:{"aria-disabled":t&&e?!0:void 0,disabled:t&&!e,tabIndex:t&&!e?-1:0,onBlur:g=>{s(!1),a==null||a(g)},onClick:t?void 0:g=>{s(!0),r==null||r(g)},onKeyDown:g=>{(g.key===d||g.key===c)&&(p(g.key),s(!0)),n==null||n(g)},onKeyUp:g=>{p(""),s(!1),o==null||o(g)}}}};var X=ft("saltButton");var H=(0,Ot.forwardRef)(function({children:e,className:o,disabled:n,focusableWhenDisabled:r,onKeyUp:a,onKeyDown:i,onBlur:p,onClick:u,type:s="button",variant:d="primary",...c},l){let{active:b,buttonProps:x}=bt({disabled:n,focusableWhenDisabled:r,onKeyUp:a,onKeyDown:i,onBlur:p,onClick:u}),{tabIndex:m,...y}=x;return(0,vt.jsx)("button",{...y,className:(0,ht.default)(X(),o,X(d),{[X("disabled")]:n,[X("active")]:b}),...c,ref:l,type:s,children:e})});var f=require("@vuu-ui/vuu-codemirror"),Qt=et(U(),1),T=require("react");var v=require("@vuu-ui/vuu-codemirror");var yt=(()=>[(0,v.highlightSpecialChars)(),(0,v.history)(),(0,v.drawSelection)(),(0,v.syntaxHighlighting)(v.defaultHighlightStyle,{fallback:!0}),v.keymap.of([...v.defaultKeymap,...v.historyKeymap])])();var S=require("@vuu-ui/vuu-codemirror");var St=require("@vuu-ui/vuu-codemirror"),xt=St.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 de=S.LRLanguage.define({name:"VuuFilterQuery",parser:xt.configure({props:[(0,S.styleTags)({Identifier:S.tags.variableName,String:S.tags.string,Or:S.tags.emphasis,Operator:S.tags.operator})]})}),Ft=()=>new S.LanguageSupport(de);var C=require("@vuu-ui/vuu-utils");var O,nt=class{constructor(){mt(this,O,void 0)}setFilterCombinatorOp(e,o=F(this,O)){(0,C.isMultiClauseFilter)(o)&&o.op===e||ot(this,O,{op:e,filters:[F(this,O)]})}add(e){if(F(this,O)===void 0)ot(this,O,e);else if((0,C.isMultiClauseFilter)(F(this,O)))F(this,O).filters.push(e);else throw Error("Invalid filter passed to FilterExpression")}setColumn(e,o=F(this,O)){if((0,C.isMultiClauseFilter)(o)){let n=o.filters.at(-1);n&&this.setColumn(e,n)}else o&&(o.column=e)}setOp(e,o=F(this,O)){if((0,C.isMultiClauseFilter)(o)){let n=o.filters.at(-1);n&&this.setOp(e,n)}else o&&(o.op=e)}setValue(e,o=F(this,O)){var n;if((0,C.isMultiClauseFilter)(o)){let r=o.filters.at(-1);r&&this.setValue(e,r)}else(0,C.isMultiValueFilter)(o)?((n=o.values)!=null||(o.values=[]),o.values.push(e)):(0,C.isSingleValueFilter)(o)&&(o.value=e)}toJSON(e=F(this,O)){return this.name?{...e,name:this.name}:e}};O=new WeakMap;var Ct=(t,e)=>{let o=new nt,n=t.cursor();do{let{name:r,from:a,to:i}=n;switch(r){case"ColumnValueExpression":o.add({});break;case"ColumnSetExpression":o.add({op:"in"});break;case"Or":case"And":o.setFilterCombinatorOp(e.substring(a,i));break;case"Column":o.setColumn(e.substring(a,i));break;case"Operator":o.setOp(e.substring(a,i));break;case"String":o.setValue(e.substring(a+1,i-1));break;case"Number":o.setValue(parseFloat(e.substring(a,i)));break;case"True":o.setValue(!0);break;case"False":o.setValue(!1);break;case"FilterName":o.name=e.substring(a,i);break;default:}}while(n.next());return o.toJSON()};var k=require("@vuu-ui/vuu-codemirror"),me=k.HighlightStyle.define([{tag:k.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:k.tags.comment,color:"green",fontStyle:"italic"}]),Pt=(0,k.syntaxHighlighting)(me);var Tt=require("@vuu-ui/vuu-codemirror"),Bt=Tt.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 wt=require("@vuu-ui/vuu-codemirror"),rt=require("react"),P=(t,e)=>e.doc.sliceString(t.from,t.to),R=(t,e)=>{var o;if(((o=t.firstChild)==null?void 0:o.name)==="Column")return P(t.firstChild,e);{let n=t.prevSibling||t.parent;for(;n&&n.name!=="Column";)n=n.prevSibling||n.parent;if(n)return P(n,e)}},ge=(t,e)=>{let o=t.prevSibling||t.parent;for(;o&&!["Column","Operator","In"].includes(o.name);)o=o.prevSibling||o.parent;if((o==null?void 0:o.name)==="In"||(o==null?void 0:o.name)==="Operator")return P(o,e)},fe=(t,e,o)=>{let n=P(t,e);if(!(o===void 0||n===o)&&["contains","ends","starts"].some(r=>r.startsWith(n.toLowerCase())))return n},Et=(t,e)=>{let o=t.prevSibling||t.parent||t.lastChild;for(;o&&o.name==="\u26A0";)o=o.prevSibling;if(o&&["As","Or","And"].includes(o.name))return P(o,e)},be=(t,e)=>{let o=t.lastChild,n=[];for(;o&&o.name!=="In";){let r=P(o,e);if(r)n.push(r);else break;o=o.prevSibling}return n},kt=t=>({from:t.pos,options:[{label:"enter name for this filter",boost:5}]}),ve=[{label:"and",apply:"and ",boost:5},{label:"or",apply:"or ",boost:3},{label:"as",apply:"as ",boost:1}],Rt=(t,e,o=!0)=>{let n=e?[{label:"REPLACE existing filter",apply:()=>t("replace"),boost:8},{label:"AND existing filter",apply:()=>t("and"),boost:7},{label:"OR existing filter",apply:()=>t("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>t(),boost:6}];return o?n.concat(ve):n},Oe=(t,e,o)=>({from:t.pos,options:Rt(e,o)}),he=(t,e,o)=>({from:t.pos,options:Rt(e,o,!1)}),It=(t,e,o)=>{let n=(0,rt.useCallback)(async(r,a,i={})=>{let p=await t.getSuggestions(a,i),{startsWith:u=""}=i;return{from:r.pos-u.length,options:p}},[t]);return(0,rt.useCallback)(async r=>{var d,c;let{state:a,pos:i}=r,p=(d=r.matchBefore(/\w*/))!=null?d:{from:0,to:0,text:void 0},s=(0,wt.syntaxTree)(a).resolveInner(i,-1);switch(console.log({nodeBeforeName:s.name}),s.name){case"Filter":return r.pos===0?n(r,"column"):Et(s,a)==="as"?kt(r):Oe(r,e.current,o);case"As":return kt(r);case"FilterName":return he(r,e.current,o);case"Column":{let l=P(s,a);return await t.isPartialMatch("column",void 0,l)?n(r,"column",{startsWith:l}):n(r,"operator",{columnName:l})}case"\u26A0":{let l=R(s,a),b=ge(s,a),x=b?void 0:fe(s,a,l);return x?n(r,"operator",{columnName:l,startsWith:x}):n(r,"columnValue",{columnName:l,operator:b,startsWith:p.text})}case"Identifier":if(Et(s,a)==="as")return{from:r.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>e.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let l=R(s,a),b=be(s,a);return n(r,"columnValue",{columnName:l,selection:b})}case"Comma":case"LBrack":{let l=R(s,a);return n(r,"columnValue",{columnName:l})}case"ColumnValueExpression":{let l=(c=s.lastChild)==null?void 0:c.prevSibling;if((l==null?void 0:l.name)==="Column")return n(r,"operator",{columnName:R(s,a)});if((l==null?void 0:l.name)==="Operator")return n(r,"columnValue",{columnName:R(l,a),operator:P(l,a)})}break;case"In":return{from:r.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return n(r,"columnValue",{columnName:R(s,a)});case"AndExpression":case"OrExpression":return n(r,"column");default:}},[o,n,e,t])};var A=t=>{if(t.current==null)throw Error("EditorView not defined");return t.current},ye=t=>(0,Qt.default)("vuuSuggestion",{vuuIllustration:t.isIllustration}),Se=t=>{let e=t.lastIndexOf(" as ");return e!==-1?t.slice(0,e):t},xe=()=>console.log("noooop"),at=({existingFilter:t,onSubmitFilter:e,suggestionProvider:o})=>{let n=(0,T.useRef)(null),r=(0,T.useRef)(xe),a=(0,T.useRef)(),i=It(o,r,t),[p,u]=(0,T.useMemo)(()=>{let s=()=>{let m=A(a),y=m.state.doc.toString(),g=(0,f.ensureSyntaxTree)(m.state,m.state.doc.length,5e3);if(g){let L=Ct(g,y);return[L,Se(y),L.name]}else return[void 0,"",void 0]},d=()=>{A(a).setState(x())},c=m=>{let[y,g,L]=s();e==null||e(y,g,m,L),d()},l=m=>f.keymap.of([{key:m,run(){return c(),!0}}]),b=m=>f.keymap.of([{key:m,run(){return(0,f.startCompletion)(A(a)),!0}}]),x=()=>f.EditorState.create({doc:"",extensions:[yt,(0,f.autocompletion)({override:[i],optionClass:ye}),Ft(),f.keymap.of(f.defaultKeymap),l("Ctrl-Enter"),b("ArrowDown"),f.EditorView.updateListener.of(m=>{let y=A(a);m.docChanged&&(0,f.startCompletion)(y)}),f.EditorState.transactionFilter.of(m=>m.newDoc.lines>1?[]:m),Bt,Pt]});return r.current=m=>{c(m),setTimeout(()=>{A(a).focus()},100)},[x,d]},[i,e]);return(0,T.useEffect)(()=>{if(!n.current)throw Error("editor not in dom");return a.current=new f.EditorView({state:p(),parent:n.current}),()=>{var s;(s=a.current)==null||s.destroy()}},[i,p]),{editorRef:n,clearInput:u}};var I=require("react/jsx-runtime"),j="vuuFilterInput",Fe=({existingFilter:t,namedFilters:e,onSubmitFilter:o,suggestionProvider:n,...r})=>{let{editorRef:a,clearInput:i}=at({existingFilter:t,onSubmitFilter:o,suggestionProvider:n});return(0,I.jsxs)("div",{...r,className:j,children:[(0,I.jsx)(H,{className:`${j}-FilterButton`,"data-icon":"filter"}),(0,I.jsx)("div",{className:`${j}-Editor`,ref:a}),(0,I.jsx)(H,{className:`${j}-ClearButton`,"data-icon":"close-circle",onClick:i})]})};var Nt=require("@vuu-ui/vuu-data"),M=require("react");var D=require("@vuu-ui/vuu-utils"),Vt=(t,e)=>{let o=(0,D.createEl)("div","vuuFunctionDoc"),n=(0,D.createEl)("div","function-heading"),r=(0,D.createEl)("span","function-name",t);n.appendChild(r);let a=(0,D.createEl)("p",void 0,e);return o.appendChild(n),o.appendChild(a),o};var Ce=[],Pe={},Te=t=>t.map(e=>({boost:5,label:e.name})),Be=t=>t?Array.from(t.entries()).map(([e,o])=>({info:()=>Vt(e,o),label:e,type:"filter"})):Ce,Ee={label:"Done",apply:"] ",type:"keyword",boost:10},At=[{label:"=",boost:10},{label:"!=",boost:9}],ke=[...At,{label:"in",boost:6},{label:"starts",boost:5},{label:"ends",boost:4}],we=[...At,{label:">",boost:8},{label:"<",boost:7}],Re=(t,e=!1,o="",n=!1)=>{let r=e?'"':"";return t.map(a=>({isIllustration:n,label:a,apply:n?`${r}${o}${r}`:`${o}${r}${a}${r} `}))},Y=(t,e="")=>t.filter(o=>e===""||o.label.startsWith(e)).map(o=>({...o,apply:o.label+" "})),Ie=(t,e,o="",n=[])=>o!==""&&!n.includes(o.toLowerCase())?[t,e,o]:[t,e],Qe=({columns:t,namedFilters:e,table:o})=>{let n=(0,M.useRef)(),r=(0,Nt.useTypeaheadSuggestions)(),a=(0,M.useCallback)(async(p,{columnName:u,operator:s,startsWith:d,selection:c}=Pe)=>{if(p==="operator"){let l=t.find(b=>b.name===u);if(l)switch(l.serverDataType){case"string":case"char":return Y(ke,d);case"int":case"long":case"double":return Y(we)}else console.warn(`'${u}' does not match any column name`)}else if(p==="column"){let l=await Te(t),b=await Be(e);return(n.current=Y(l)).concat(Y(b))}if(u){let l=t.find(g=>g.name===u),b=Array.isArray(c)?c.length===0?"[":",":"",x=Ie(o,u,d),m=await r(x),y=s==="starts";return n.current=Re(m,(l==null?void 0:l.serverDataType)==="string",y?d:b,y),Array.isArray(c)&&(c==null?void 0:c.length)>1?[Ee,...n.current]:n.current}return[]},[t,r,e,o]),i=(0,M.useCallback)(async(p,u,s)=>{let d=await a(p,{columnName:u});if(s&&d)for(let c of d){if(c.label===s)return!1;if(c.label.startsWith(s))return!0}return!1},[a]);return{getSuggestions:a,isPartialMatch:i}};var Yt=require("@heswell/salt-lab"),Gt=et(U(),1);var W=require("@heswell/salt-lab");var Dt=require("@heswell/salt-lab"),G=require("react"),Lt=require("react/jsx-runtime"),Ve=t=>typeof t=="string",Mt=t=>Ve(t)?t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t:t.map(Mt),Wt=({column:t,selected:e,suggestionProvider:o,...n})=>{let r=e!=null?Mt(e):void 0,a=Array.isArray(r)?r:r!=null?[r]:[],[i,p]=(0,G.useState)(a);console.log({initialValues:a});let u=(0,G.useCallback)(async s=>{if(s){let d=await o.getSuggestions("columnValue",{columnName:t});console.log({values:d}),p(d.map(c=>c.label))}},[t,o]);return(0,Lt.jsx)(Dt.Dropdown,{...n,onOpenChange:u,selected:r,source:i})};var _t=require("@heswell/salt-lab"),z=require("react"),Xt=require("react/jsx-runtime"),Ne=t=>typeof t=="string",$t=t=>{if(t!==void 0)return Ne(t)?t.startsWith('"')&&t.endsWith('"')?t.slice(1,-1):t:t.map($t)},Ut=({column:t,selected:e,suggestionProvider:o,...n})=>{let r=$t(e),a=Array.isArray(r)?r:r!=null?[r]:[],[i,p]=(0,z.useState)(a),u=(0,z.useCallback)(async s=>{if(s){let d=await o.getSuggestions("columnValue",{columnName:t});console.log({values:d}),p(d.map(c=>c.label))}},[t,o]);return(0,Xt.jsx)(_t.Dropdown,{...n,onOpenChange:u,selected:r,selectionStrategy:"multiple",source:i})};var Q=require("react/jsx-runtime"),Ht=(t,e)=>{if(it(t))return(0,Q.jsx)(W.ToggleButton,{className:"vuuToggleButton",toggled:!0,variant:"secondary",children:t.name});if(w(t)){let{column:o,value:n}=t;return(0,Q.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:o,labelPlacement:"top",children:(0,Q.jsx)(Wt,{column:o,selected:n.toString(),selectionStrategy:"default",source:[n.toString()],suggestionProvider:e,style:{width:100}})},o)}if(B(t)){let o=t.values.map(n=>n.toString());return(0,Q.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:t.column,labelPlacement:"top",children:(0,Q.jsx)(Ut,{column:t.column,selected:o,source:o,suggestionProvider:e,style:{width:100}})},t.column)}return t.filters.map(o=>Ht(o,e))},jt=({filter:t,suggestionProvider:e})=>t?Ht(t,e):[];var zt=require("react/jsx-runtime"),Ae=({className:t,filter:e,suggestionProvider:o,...n})=>{console.log(`FilterToolbar ${JSON.stringify(e,null,2)}`);let r=jt({filter:e,suggestionProvider:o});return(0,zt.jsx)(Yt.Toolbar,{className:(0,Gt.default)("vuuFilterToolbar",t),...n,children:r})};var tt=require("@vuu-ui/vuu-utils");var De=new Set(["=","!=",">",">=","<","<=","starts","ends"]),it=t=>t!==void 0&&t.name!==void 0,w=t=>t!==void 0&&De.has(t.op),Me=t=>t!==void 0&&(w(t)||B(t)),B=t=>t!==void 0&&t.op==="in",V=t=>t.op==="in",q=t=>t.op==="and",st=t=>t.op==="or";function E(t){return t!==void 0&&(t.op==="and"||t.op==="or")}var h="and",Z="=",We=">",Le="<",qt="or",lt="starts",_e="ends",Zt="in",Kt=(t,e=[])=>(t&&(E(t)?t.filters.forEach(o=>e.push(...Kt(o))):e.push(t)),e),$e={combineWith:"and"},Ue=(t,e,{combineWith:o=h}=$e)=>{var n;if(ct(e))E(e)||(t=ut(t,{name:e.column}));else if(He(e))return E(e),ut(t,{name:(n=e.column)!=null?n:""});if(!t)return e;if(!e)return t;if(t.op===h&&e.op===h)return{op:h,filters:Ge(t.filters,e.filters)};if(t.op===h){let r=je(t.filters,e);return r.length>1?{op:h,filters:r}:r[0]}return e.op===h?{op:h,filters:e.filters.concat(t)}:J(t,e,!0)?e:ee(t,e)?Ye(t,e):{op:o,filters:[t,e]}},ct=t=>t?V(t)&&t.values.length===0?!0:q(t)&&t.filters.some(e=>ct(e)):!1,Xe=t=>typeof t=="string"?`"${t}"`:t,K=(t,e={})=>E(t)?t.filters.map(o=>K(o)).join(` ${t.op} `):B(t)?`${t.column} ${t.op} [${t.values.join(",")}]`:`${t.column} ${t.op} ${Xe(t.value)}`,He=t=>t?t.op===lt&&t.value===""?!0:t.op===lt&&t.value==="":!1,je=(t,e)=>t.concat(e),Ye=(t,e)=>ct(e)?e:V(t)&&V(e)?{...t,values:[...t.values,...e.values.filter(o=>!t.values.includes(o))]}:V(t)&&e.op===Z?{...t,values:t.values.concat([e.value])}:t.op===Z&&e.op===Z?{column:t.column,op:Zt,values:[t.value,e.value]}:e,Ge=(t,e)=>{let o=({op:a},{op:i})=>a===i||a[0]===i[0],n=(a,i)=>a.column===i.column&&o(a,i),r=a=>e.some(i=>n(a,i))===!1;return t.filter(r).concat(e)},ze=(t,e)=>{if(E(e)){let[o,n]=e.filters;if(o.column===t.name)return[n,K(n)];if(n.column===t.name)return[o,K(o)]}return[void 0,""]},qe=(t,e)=>{if(J(t,e,!0))return null;if(t.op!==h)throw Error(`removeFilter cannot remove ${JSON.stringify(e)} from ${JSON.stringify(t)}`);let o=t.filters.filter(n=>!J(n,e));return o.length>0?{type:h,filters:o}:null},Ze=(t,e)=>{if(!t)return[null,null];if(t.column===e)return[t,null];if(t.op!==h)return[null,t];let[[o=null],n]=(0,tt.partition)(t.filters,r=>r.column===e);return n.length===1?[o,n[0]]:[o,{op:h,filters:n}]},Jt=(t,e)=>E(t)?{op:t.op,filters:t.filters.map(o=>Jt(o,e))}:{...t,column:e},te=(t,e)=>{if(!t)return!1;let{op:o,column:n}=t;switch(o){case h:case qt:return t.filters!=null&&t.filters.some(r=>te(r,e));default:return n===e.name}},ut=(t,e)=>{let o=e.name;if(t&&t.column!==o){if(q(t)||st(t)){let{op:n}=t,a=t.filters.filter(i=>i.column!==o);switch(a.length){case 0:return;case 1:return a[0];default:return{op:n,filters:a}}}return t}},ee=(t,e)=>t.column===e.column&&(t.op==="="||t.op==="in")&&(e.op==="="||e.op==="in"),Ke=(t,e)=>{if(t===e)return!0;if(t.length===e.length){let o=t.slice().sort(),n=e.slice().sort();return o.join("|")===n.join("|")}return!1},J=(t,e,o=!1)=>o?t&&e&&ee(t,e)?t.op===e.op&&(w(t)&&w(e)&&t.value===e.value||B(t)&&B(e)&&Ke(t.values,e.values)):!1:!0,oe=(t,e,o)=>{if(t&&e){if(o==="replace")return e;if(t.op==="and")return{...t,filters:t.filters.concat(e)};let{column:n}=e;if(n&&(e.column?(0,tt.extractFilterForColumn)(t,n):void 0)&&n){let a=ut(t,{name:n});return oe(a,e,"add")}return{op:"and",filters:[t,e]}}return e||t};
1
+ "use strict";var Ke=Object.create;var U=Object.defineProperty;var Je=Object.getOwnPropertyDescriptor;var et=Object.getOwnPropertyNames;var tt=Object.getPrototypeOf,rt=Object.prototype.hasOwnProperty;var nt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),ot=(e,t)=>{for(var r in t)U(e,r,{get:t[r],enumerable:!0})},ce=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of et(t))!rt.call(e,o)&&o!==r&&U(e,o,{get:()=>t[o],enumerable:!(n=Je(t,o))||n.enumerable});return e};var me=(e,t,r)=>(r=e!=null?Ke(tt(e)):{},ce(t||!e||!e.__esModule?U(r,"default",{value:e,enumerable:!0}):r,e)),it=e=>ce(U({},"__esModule",{value:!0}),e);var de=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)};var P=(e,t,r)=>(de(e,t,"read from private field"),r?r.call(e):t.get(e)),ge=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},ee=(e,t,r,n)=>(de(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r);var te=nt((sr,L)=>{(function(){"use strict";var e={}.hasOwnProperty,t="[native code]";function r(){for(var n=[],o=0;o<arguments.length;o++){var i=arguments[o];if(i){var s=typeof i;if(s==="string"||s==="number")n.push(i);else if(Array.isArray(i)){if(i.length){var m=r.apply(null,i);m&&n.push(m)}}else if(s==="object"){if(i.toString!==Object.prototype.toString&&!i.toString.toString().includes("[native code]")){n.push(i.toString());continue}for(var u in i)e.call(i,u)&&i[u]&&n.push(u)}}}return n.join(" ")}typeof L<"u"&&L.exports?(r.default=r,L.exports=r):typeof define=="function"&&typeof define.amd=="object"&&define.amd?define("classnames",[],function(){return r}):window.classNames=r})()});var or={};ot(or,{AND:()=>F,ENDS_WITH:()=>Bt,EQUALS:()=>z,FilterInput:()=>Ft,FilterToolbar:()=>Qt,GREATER_THAN:()=>_t,IN:()=>Be,LESS_THAN:()=>jt,OR:()=>je,STARTS_WITH:()=>ae,addFilter:()=>Gt,filterAsQuery:()=>Z,filterClauses:()=>Ye,filterEquals:()=>K,filterIncludesColumn:()=>qe,filterPredicate:()=>G,getFilterPredicate:()=>Nt,isAndFilter:()=>q,isFilterClause:()=>Ht,isInFilter:()=>A,isMultiClauseFilter:()=>x,isMultiValueFilter:()=>T,isNamedFilter:()=>se,isOrFilter:()=>le,isSingleValueFilter:()=>R,overrideColName:()=>Ge,removeColumnFromFilter:()=>er,removeFilter:()=>tr,splitFilterOnColumn:()=>rr,updateFilter:()=>Ze,useCodeMirrorEditor:()=>oe,useFilterSuggestionProvider:()=>Et});module.exports=it(or);var ie=require("@salt-ds/core");var c=require("@vuu-ui/vuu-codemirror"),xe=me(te(),1),y=require("react");var f=require("@vuu-ui/vuu-codemirror");var fe=(()=>[(0,f.highlightSpecialChars)(),(0,f.history)(),(0,f.drawSelection)(),(0,f.syntaxHighlighting)(f.defaultHighlightStyle,{fallback:!0}),f.keymap.of([...f.defaultKeymap,...f.historyKeymap])])();var C=require("@vuu-ui/vuu-codemirror");var Oe=require("@vuu-ui/vuu-codemirror"),X=Oe.LRParser.deserialize({version:14,states:"%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DO'#DOOvQQO'#C|OOQO'#DR'#DROVQPO'#CuOOQO'#C}'#C}QOQPOOOOQO'#C`'#C`O!UQQO,58xO!dQPO,59VOVQPO,59]OVQPO,59_O!iQPO,59hO!nQQO,59aOOQO'#DQ'#DQOOQO1G.d1G.dO!UQQO1G.qO!yQQO1G.wOOQO1G.y1G.yOOQO'#Cw'#CwOOQO1G/S1G/SOOQO1G.{1G.{O#[QPO'#CnO#dQPO7+$]O!UQQO'#CxO#iQPO,59YOOQO<<Gw<<GwOOQO,59d,59dOOQO-E6v-E6v",stateData:"#q~OoOS~OsPOvUO~OTXOUXOVXOWXOXXOYXO`ZO~Of[Oh]Oj^OmpX~OZ`O[`O]`O^`O~OabO~OseO~Of[Oh]OwgO~Oh]Ofeijeimeiwei~OcjOdbX~OdlO~OcjOdba~O",goto:"#YvPPw}!TPPPPPPPPPPwPP!WPP!ZP!ZP!aP!g!jPPP!p!s!aP#P!aXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",nodeNames:"\u26A0 Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:"6p~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$j|}$o!O!P$t!Q![%S!^!_%_!_!`%d!`!a%i!c!}%n!}#O&V#P#Q&[#R#S%n#T#U&a#U#X%n#X#Y(w#Y#Z+]#Z#]%n#]#^.]#^#c%n#c#d/e#d#g%n#g#h0m#h#i4[#i#o%n~#USo~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOU~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_O[~~$bP;=`<%l#m~$jOv~~$oOw~~$tOc~~$wP!Q![$z~%PPZ~!Q![$z~%XQZ~!O!P$t!Q![%S~%dOW~~%iOT~~%nOV~P%sUsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n~&[Oa~~&aOd~R&fYsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c'U#c#g%n#g#h(^#h#o%nR'ZWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X's#X#o%nR'zUfQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(eUjQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR(|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c)f#c#o%nR)kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#W%n#W#X*T#X#o%nR*YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h*r#h#o%nR*yUYQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR+bVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U+w#U#o%nR+|WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#`%n#`#a,f#a#o%nR,kWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h-T#h#o%nR-YWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y-r#Y#o%nR-yU^QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR.bWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#b%n#b#c.z#c#o%nR/RU`QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR/jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g0S#g#o%nR0ZUhQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR0rWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i1[#i#o%nR1aVsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#U1v#U#o%nR1{WsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g2e#g#o%nR2jWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#h%n#h#i3S#i#o%nR3XWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#g%n#g#h3q#h#o%nR3xUXQsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%nR4aWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#f%n#f#g4y#g#o%nR5OWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#i%n#i#j5h#j#o%nR5mWsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#X%n#X#Y6V#Y#o%nR6^U]QsP}!O%n!O!P%n!Q![%n!c!}%n#R#S%n#T#o%n",tokenizers:[0,1],topRules:{Filter:[0,1]},tokenPrec:0});var st=C.LRLanguage.define({name:"VuuFilterQuery",parser:X.configure({props:[(0,C.styleTags)({Identifier:C.tags.variableName,String:C.tags.string,Or:C.tags.emphasis,Operator:C.tags.operator})]})}),Fe=()=>new C.LanguageSupport(st);var b=require("@vuu-ui/vuu-utils");var O,re=class{constructor(){ge(this,O,void 0)}setFilterCombinatorOp(t,r=P(this,O)){(0,b.isMultiClauseFilter)(r)&&r.op===t||ee(this,O,{op:t,filters:[P(this,O)]})}add(t){if(P(this,O)===void 0)ee(this,O,t);else if((0,b.isMultiClauseFilter)(P(this,O)))P(this,O).filters.push(t);else throw Error("Invalid filter passed to FilterExpression")}setColumn(t,r=P(this,O)){if((0,b.isMultiClauseFilter)(r)){let n=r.filters.at(-1);n&&this.setColumn(t,n)}else r&&(r.column=t)}setOp(t,r=P(this,O)){if((0,b.isMultiClauseFilter)(r)){let n=r.filters.at(-1);n&&this.setOp(t,n)}else r&&(r.op=t)}setValue(t,r=P(this,O)){var n;if((0,b.isMultiClauseFilter)(r)){let o=r.filters.at(-1);o&&this.setValue(t,o)}else(0,b.isMultiValueFilter)(r)?((n=r.values)!=null||(r.values=[]),r.values.push(t)):(0,b.isSingleValueFilter)(r)&&(r.value=t)}toJSON(t=P(this,O)){return this.name?{...t,name:this.name}:t}};O=new WeakMap;var H=(e,t)=>{let r=new re,n=e.cursor();do{let{name:o,from:i,to:s}=n;switch(o){case"ColumnValueExpression":r.add({});break;case"ColumnSetExpression":r.add({op:"in"});break;case"Or":case"And":r.setFilterCombinatorOp(t.substring(i,s));break;case"Column":r.setColumn(t.substring(i,s));break;case"Operator":r.setOp(t.substring(i,s));break;case"String":r.setValue(t.substring(i+1,s-1));break;case"Number":r.setValue(parseFloat(t.substring(i,s)));break;case"True":r.setValue(!0);break;case"False":r.setValue(!1);break;case"FilterName":r.name=t.substring(i,s);break;default:}}while(n.next());return r.toJSON()};var w=require("@vuu-ui/vuu-codemirror"),lt=w.HighlightStyle.define([{tag:w.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:w.tags.comment,color:"green",fontStyle:"italic"}]),Se=(0,w.syntaxHighlighting)(lt);var Ce=require("@vuu-ui/vuu-codemirror"),Pe=Ce.EditorView.theme({"&":{color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)",fontSize:"var(--vuuFilterEditor-fontSize)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)",padding:0},".cm-line":{lineHeight:"var(--vuuFilterEditor-lineHeight)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{alignItems:"center",display:"flex",height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"}},".cm-completionIcon":{height:"18px",flex:"0 0 16px"},".cm-completionLabel":{flex:"1 1 auto"},".cm-completionIcon-filter":{position:"relative","&:after":{background:"var(--salt-text-secondary-foreground)",content:"''","-webkit-mask":"var(--svg-filter) center center/13px 13px","-webkit-mask-repeat":"no-repeat",position:"absolute",height:"18px",left:"0px",top:"0px",width:"16px"}}},{dark:!1});var ve=require("@vuu-ui/vuu-codemirror"),ne=require("react"),v=(e,t)=>t.doc.sliceString(e.from,e.to),V=(e,t)=>{var r;if(((r=e.firstChild)==null?void 0:r.name)==="Column")return v(e.firstChild,t);{let n=e.prevSibling||e.parent;for(;n&&n.name!=="Column";)n=n.prevSibling||n.parent;if(n)return v(n,t)}},at=(e,t)=>{let r=e.prevSibling||e.parent;for(;r&&!["Column","Operator","In"].includes(r.name);)r=r.prevSibling||r.parent;if((r==null?void 0:r.name)==="In"||(r==null?void 0:r.name)==="Operator")return v(r,t)},ut=(e,t,r)=>{let n=v(e,t);if(!(r===void 0||n===r)&&["contains","ends","starts"].some(o=>o.startsWith(n.toLowerCase())))return n},be=(e,t)=>{let r=e.prevSibling||e.parent||e.lastChild;for(;r&&r.name==="\u26A0";)r=r.prevSibling;if(r&&["As","Or","And"].includes(r.name))return v(r,t)},pt=(e,t)=>{let r=e.lastChild,n=[];for(;r&&r.name!=="In";){let o=v(r,t);if(o)n.push(o);else break;r=r.prevSibling}return n},he=e=>({from:e.pos,options:[{label:"enter name for this filter",boost:5}]}),ct=[{label:"and",apply:"and ",boost:5},{label:"or",apply:"or ",boost:3},{label:"as",apply:"as ",boost:1}],ye=(e,t,r=!0)=>{let n=t?[{label:"REPLACE existing filter",apply:()=>e("replace"),boost:8},{label:"AND existing filter",apply:()=>e("and"),boost:7},{label:"OR existing filter",apply:()=>e("or"),boost:7}]:[{label:"Press ENTER to submit",apply:()=>e(),boost:6}];return r?n.concat(ct):n},mt=(e,t,r)=>({from:e.pos,options:ye(t,r)}),dt=(e,t,r)=>({from:e.pos,options:ye(t,r,!1)}),Te=(e,t,r)=>{let n=(0,ne.useCallback)(async(o,i,s={})=>{let m=await e.getSuggestions(i,s),{startsWith:u=""}=s;return{from:o.pos-u.length,options:m}},[e]);return(0,ne.useCallback)(async o=>{var d,p;let{state:i,pos:s}=o,m=(d=o.matchBefore(/\w*/))!=null?d:{from:0,to:0,text:void 0},a=(0,ve.syntaxTree)(i).resolveInner(s,-1);switch(console.log({nodeBeforeName:a.name}),a.name){case"Filter":return o.pos===0?n(o,"column"):be(a,i)==="as"?he(o):mt(o,t.current,r);case"As":return he(o);case"FilterName":return dt(o,t.current,r);case"Column":{let l=v(a,i);return await e.isPartialMatch("column",void 0,l)?n(o,"column",{startsWith:l}):n(o,"operator",{columnName:l})}case"\u26A0":{let l=V(a,i),S=at(a,i),E=S?void 0:ut(a,i,l);return E?n(o,"operator",{columnName:l,startsWith:E}):n(o,"columnValue",{columnName:l,operator:S,startsWith:m.text})}case"Identifier":if(be(a,i)==="as")return{from:o.pos,options:[{label:"press ENTER to apply filter and save",apply:()=>t.current(),boost:5}]};break;case"ColumnSetExpression":case"Values":{let l=V(a,i),S=pt(a,i);return n(o,"columnValue",{columnName:l,selection:S})}case"Comma":case"LBrack":{let l=V(a,i);return n(o,"columnValue",{columnName:l})}case"ColumnValueExpression":{let l=(p=a.lastChild)==null?void 0:p.prevSibling;if((l==null?void 0:l.name)==="Column")return n(o,"operator",{columnName:V(a,i)});if((l==null?void 0:l.name)==="Operator")return n(o,"columnValue",{columnName:V(l,i),operator:v(l,i)})}break;case"In":return{from:o.pos,options:[{label:"[",apply:" [",type:"text"}]};case"Eq":return n(o,"columnValue",{columnName:V(a,i)});case"AndExpression":case"OrExpression":return n(o,"column");default:}},[r,n,t,e])};var M=e=>{if(e.current==null)throw Error("EditorView not defined");return e.current},gt=e=>(0,xe.default)("vuuSuggestion",{vuuIllustration:e.isIllustration}),ft=e=>{let t=e.lastIndexOf(" as ");return t!==-1?e.slice(0,t):e},Ot=()=>console.log("noooop"),oe=({existingFilter:e,onSubmitFilter:t,suggestionProvider:r})=>{let n=(0,y.useRef)(null),o=(0,y.useRef)(Ot),i=(0,y.useRef)(),s=Te(r,o,e),[m,u]=(0,y.useMemo)(()=>{let a=()=>{let g=M(i),h=g.state.doc.toString(),Q=(0,c.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(Q){let $=H(Q,h);return[$,ft(h),$.name]}else return[void 0,"",void 0]},d=()=>{M(i).setState(E())},p=g=>{let[h,Q,$]=a();t==null||t(h,Q,g,$),d()},l=g=>c.keymap.of([{key:g,run(){return p(),!0}}]),S=g=>c.keymap.of([{key:g,run(){return(0,c.startCompletion)(M(i)),!0}}]),E=()=>c.EditorState.create({doc:"",extensions:[fe,(0,c.autocompletion)({override:[s],optionClass:gt}),Fe(),c.keymap.of(c.defaultKeymap),l("Ctrl-Enter"),S("ArrowDown"),c.EditorView.updateListener.of(g=>{let h=M(i);g.docChanged&&(0,c.startCompletion)(h)}),c.EditorState.transactionFilter.of(g=>g.newDoc.lines>1?[]:g),Pe,Se]});return o.current=g=>{p(g),setTimeout(()=>{M(i).focus()},100)},[E,d]},[s,t]);return(0,y.useEffect)(()=>{if(!n.current)throw Error("editor not in dom");return i.current=new c.EditorView({state:m(),parent:n.current}),()=>{var a;(a=i.current)==null||a.destroy()}},[s,m]),{editorRef:n,clearInput:u}};var N=require("react/jsx-runtime"),_="vuuFilterInput",Ft=({existingFilter:e,namedFilters:t,onSubmitFilter:r,suggestionProvider:n,...o})=>{let{editorRef:i,clearInput:s}=oe({existingFilter:e,onSubmitFilter:r,suggestionProvider:n});return(0,N.jsxs)("div",{...o,className:_,children:[(0,N.jsx)(ie.Button,{className:`${_}-FilterButton`,"data-icon":"filter"}),(0,N.jsx)("div",{className:`${_}-Editor`,ref:i}),(0,N.jsx)(ie.Button,{className:`${_}-ClearButton`,"data-icon":"close-circle",onClick:s})]})};var we=require("@vuu-ui/vuu-data"),D=require("react");var I=require("@vuu-ui/vuu-utils"),Ee=(e,t)=>{let r=(0,I.createEl)("div","vuuFunctionDoc"),n=(0,I.createEl)("div","function-heading"),o=(0,I.createEl)("span","function-name",e);n.appendChild(o);let i=(0,I.createEl)("p",void 0,t);return r.appendChild(n),r.appendChild(i),r};var St=[],Ct={},Pt=e=>e.map(t=>({boost:5,label:t.name})),bt=e=>e?Array.from(e.entries()).map(([t,r])=>({info:()=>Ee(t,r),label:t,type:"filter"})):St,ht={label:"Done",apply:"] ",type:"keyword",boost:10},Re=[{label:"=",boost:10},{label:"!=",boost:9}],vt=[...Re,{label:"in",boost:6},{label:"starts",boost:5},{label:"ends",boost:4}],yt=[...Re,{label:">",boost:8},{label:"<",boost:7}],Tt=(e,t=!1,r="",n=!1)=>{let o=t?'"':"";return e.map(i=>({isIllustration:n,label:i,apply:n?`${o}${r}${o}`:`${r}${o}${i}${o} `}))},j=(e,t="")=>e.filter(r=>t===""||r.label.startsWith(t)).map(r=>({...r,apply:r.label+" "})),xt=(e,t,r="",n=[])=>r!==""&&!n.includes(r.toLowerCase())?[e,t,r]:[e,t],Et=({columns:e,namedFilters:t,table:r})=>{let n=(0,D.useRef)(),o=(0,we.useTypeaheadSuggestions)(),i=(0,D.useCallback)(async(m,{columnName:u,operator:a,startsWith:d,selection:p}=Ct)=>{if(m==="operator"){let l=e.find(S=>S.name===u);if(l)switch(l.serverDataType){case"string":case"char":return j(vt,d);case"int":case"long":case"double":return j(yt)}else console.warn(`'${u}' does not match any column name`)}else if(m==="column"){let l=await Pt(e),S=await bt(t);return(n.current=j(l)).concat(j(S))}if(u){let l=e.find(Q=>Q.name===u),S=Array.isArray(p)?p.length===0?"[":",":"",E=xt(r,u,d),g=await o(E),h=a==="starts";return n.current=Tt(g,(l==null?void 0:l.serverDataType)==="string",h?d:S,h),Array.isArray(p)&&(p==null?void 0:p.length)>1?[ht,...n.current]:n.current}return[]},[e,o,t,r]),s=(0,D.useCallback)(async(m,u,a)=>{let d=await i(m,{columnName:u});if(a&&d)for(let p of d){if(p.label===a)return!1;if(p.label.startsWith(a))return!0}return!1},[i]);return{getSuggestions:i,isPartialMatch:s}};var Ue=require("@heswell/salt-lab"),Le=me(te(),1);var W=require("@heswell/salt-lab");var Qe=require("@heswell/salt-lab"),B=require("react"),ke=require("react/jsx-runtime"),wt=e=>typeof e=="string",Ve=e=>wt(e)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:e.map(Ve),Ne=({column:e,selected:t,suggestionProvider:r,...n})=>{let o=t!=null?Ve(t):void 0,i=Array.isArray(o)?o:o!=null?[o]:[],[s,m]=(0,B.useState)(i);console.log({initialValues:i});let u=(0,B.useCallback)(async a=>{if(a){let d=await r.getSuggestions("columnValue",{columnName:e});console.log({values:d}),m(d.map(p=>p.label))}},[e,r]);return(0,ke.jsx)(Qe.Dropdown,{...n,onOpenChange:u,selected:o,source:s})};var Ae=require("@heswell/salt-lab"),Y=require("react"),De=require("react/jsx-runtime"),Rt=e=>typeof e=="string",Me=e=>{if(e!==void 0)return Rt(e)?e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1):e:e.map(Me)},Ie=({column:e,selected:t,suggestionProvider:r,...n})=>{let o=Me(t),i=Array.isArray(o)?o:o!=null?[o]:[],[s,m]=(0,Y.useState)(i),u=(0,Y.useCallback)(async a=>{if(a){let d=await r.getSuggestions("columnValue",{columnName:e});console.log({values:d}),m(d.map(p=>p.label))}},[e,r]);return(0,De.jsx)(Ae.Dropdown,{...n,onOpenChange:u,selected:o,selectionStrategy:"multiple",source:s})};var k=require("react/jsx-runtime"),We=(e,t)=>{if(se(e))return(0,k.jsx)(W.ToggleButton,{className:"vuuToggleButton",toggled:!0,variant:"secondary",children:e.name});if(R(e)){let{column:r,value:n}=e;return(0,k.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:r,labelPlacement:"top",children:(0,k.jsx)(Ne,{column:r,selected:n.toString(),selectionStrategy:"default",source:[n.toString()],suggestionProvider:t,style:{width:100}})},r)}if(T(e)){let r=e.values.map(n=>n.toString());return(0,k.jsx)(W.ToolbarField,{className:"vuuFilterDropdown",label:e.column,labelPlacement:"top",children:(0,k.jsx)(Ie,{column:e.column,selected:r,source:r,suggestionProvider:t,style:{width:100}})},e.column)}return e.filters.map(r=>We(r,t))},$e=({filter:e,suggestionProvider:t})=>e?We(e,t):[];var Xe=require("react/jsx-runtime"),Qt=({className:e,filter:t,suggestionProvider:r,...n})=>{console.log(`FilterToolbar ${JSON.stringify(t,null,2)}`);let o=$e({filter:t,suggestionProvider:r});return(0,Xe.jsx)(Ue.Toolbar,{className:(0,Le.default)("vuuFilterToolbar",e),...n,children:o})};var Vt=X.configure({strict:!0}),He=e=>{let t=Vt.parse(e);return H(t,e)};var _e=new Map,Nt=(e,t)=>{let r=_e.get(t);if(r)return r;let n=He(t);return r=G(e,n),_e.set(t,r),r};function G(e,t){switch(t.op){case"in":return kt(e,t);case"=":return At(e,t);case">":return Mt(e,t);case">=":return It(e,t);case"<":return Dt(e,t);case"<=":return Wt(e,t);case"starts":return $t(e,t);case"and":return Ut(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,At=(e,t)=>r=>r[e[t.column]]===t.value,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)=>{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())}},Ut=(e,t)=>{let r=t.filters.map(n=>G(e,n));return n=>r.every(o=>o(n))};function Lt(e,t){let r=t.filters.map(n=>G(e,n));return n=>r.some(o=>o(n))}var J=require("@vuu-ui/vuu-utils");var Xt=new Set(["=","!=",">",">=","<","<=","starts","ends"]),se=e=>e!==void 0&&e.name!==void 0,R=e=>e!==void 0&&Xt.has(e.op),Ht=e=>e!==void 0&&(R(e)||T(e)),T=e=>e!==void 0&&e.op==="in",A=e=>e.op==="in",q=e=>e.op==="and",le=e=>e.op==="or";function x(e){return e!==void 0&&(e.op==="and"||e.op==="or")}var F="and",z="=",_t=">",jt="<",je="or",ae="starts",Bt="ends",Be="in",Ye=(e,t=[])=>(e&&(x(e)?e.filters.forEach(r=>t.push(...Ye(r))):t.push(e)),t),Yt={combineWith:"and"},Gt=(e,t,{combineWith:r=F}=Yt)=>{var n;if(pe(t))x(t)||(e=ue(e,{name:t.column}));else if(zt(t))return x(t),ue(e,{name:(n=t.column)!=null?n:""});if(!e)return t;if(!t)return e;if(e.op===F&&t.op===F)return{op:F,filters:Jt(e.filters,t.filters)};if(e.op===F){let o=Zt(e.filters,t);return o.length>1?{op:F,filters:o}:o[0]}return t.op===F?{op:F,filters:t.filters.concat(e)}:K(e,t,!0)?t:ze(e,t)?Kt(e,t):{op:r,filters:[e,t]}},pe=e=>e?A(e)&&e.values.length===0?!0:q(e)&&e.filters.some(t=>pe(t)):!1,qt=e=>typeof e=="string"?`"${e}"`:e,Z=(e,t={})=>x(e)?e.filters.map(r=>Z(r)).join(` ${e.op} `):T(e)?`${e.column} ${e.op} [${e.values.join(",")}]`:`${e.column} ${e.op} ${qt(e.value)}`,zt=e=>e?e.op===ae&&e.value===""?!0:e.op===ae&&e.value==="":!1,Zt=(e,t)=>e.concat(t),Kt=(e,t)=>pe(t)?t:A(e)&&A(t)?{...e,values:[...e.values,...t.values.filter(r=>!e.values.includes(r))]}:A(e)&&t.op===z?{...e,values:e.values.concat([t.value])}:e.op===z&&t.op===z?{column:e.column,op:Be,values:[e.value,t.value]}:t,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)},er=(e,t)=>{if(x(t)){let[r,n]=t.filters;if(r.column===e.name)return[n,Z(n)];if(n.column===e.name)return[r,Z(r)]}return[void 0,""]},tr=(e,t)=>{if(K(e,t,!0))return null;if(e.op!==F)throw Error(`removeFilter cannot remove ${JSON.stringify(t)} from ${JSON.stringify(e)}`);let r=e.filters.filter(n=>!K(n,t));return r.length>0?{type:F,filters:r}:null},rr=(e,t)=>{if(!e)return[null,null];if(e.column===t)return[e,null];if(e.op!==F)return[null,e];let[[r=null],n]=(0,J.partition)(e.filters,o=>o.column===t);return n.length===1?[r,n[0]]:[r,{op:F,filters:n}]},Ge=(e,t)=>x(e)?{op:e.op,filters:e.filters.map(r=>Ge(r,t))}:{...e,column:t},qe=(e,t)=>{if(!e)return!1;let{op:r,column:n}=e;switch(r){case F:case je:return e.filters!=null&&e.filters.some(o=>qe(o,t));default:return n===t.name}},ue=(e,t)=>{let r=t.name;if(e&&e.column!==r){if(q(e)||le(e)){let{op:n}=e,i=e.filters.filter(s=>s.column!==r);switch(i.length){case 0:return;case 1:return i[0];default:return{op:n,filters:i}}}return e}},ze=(e,t)=>e.column===t.column&&(e.op==="="||e.op==="in")&&(t.op==="="||t.op==="in"),nr=(e,t)=>{if(e===t)return!0;if(e.length===t.length){let r=e.slice().sort(),n=t.slice().sort();return r.join("|")===n.join("|")}return!1},K=(e,t,r=!1)=>r?e&&t&&ze(e,t)?e.op===t.op&&(R(e)&&R(t)&&e.value===t.value||T(e)&&T(t)&&nr(e.values,t.values)):!1:!0,Ze=(e,t,r)=>{if(e&&t){if(r==="replace")return t;if(e.op==="and")return{...e,filters:e.filters.concat(t)};let{column:n}=t;if(n&&(t.column?(0,J.extractFilterForColumn)(e,n):void 0)&&n){let i=ue(e,{name:n});return Ze(i,t,"add")}return{op:"and",filters:[e,t]}}return t||e};
167
2
  /*! Bundled license information:
168
3
 
169
4
  classnames/index.js: