@vuu-ui/vuu-table-extras 0.6.18 → 0.6.19

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,2 +1,2 @@
1
- "use strict";var vn=Object.create;var dt=Object.defineProperty;var kn=Object.getOwnPropertyDescriptor;var En=Object.getOwnPropertyNames;var On=Object.getPrototypeOf,Sn=Object.prototype.hasOwnProperty;var Pn=(n,e)=>{for(var t in e)dt(n,t,{get:e[t],enumerable:!0})},Cs=(n,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of En(e))!Sn.call(n,i)&&i!==t&&dt(n,i,{get:()=>e[i],enumerable:!(s=kn(e,i))||s.enumerable});return n};var De=(n,e,t)=>(t=n!=null?vn(On(n)):{},Cs(e||!n||!n.__esModule?dt(t,"default",{value:n,enumerable:!0}):t,n)),wn=n=>Cs(dt({},"__esModule",{value:!0}),n);var bs=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var m=(n,e,t)=>(bs(n,e,"read from private field"),t?t.call(n):e.get(n)),Y=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},xe=(n,e,t,s)=>(bs(n,e,"write to private field"),s?s.call(n,t):e.set(n,t),t);var Ni={};Pn(Ni,{ColumnExpressionInput:()=>us,ColumnNamedTerms:()=>wt,DataSourceStats:()=>Di,DatagridSettingsPanel:()=>Ti,columnExpressionLanguageSupport:()=>Vt,isCompleteExpression:()=>ts,isCompleteRelationalExpression:()=>ss,lastNamedChild:()=>At,useColumnExpressionEditor:()=>as,useColumnExpressionSuggestionProvider:()=>hs,walkTree:()=>es});module.exports=wn(Ni);var G=require("@vuu-ui/vuu-utils"),ks=De(require("classnames"),1);var mt=require("react"),ys=require("@vuu-ui/vuu-utils"),et=require("@vuu-ui/vuu-utils"),An=[void 0,void 0,void 0,void 0];function vs(n,e,t){var h;let s=(0,mt.useRef)(),[i,o,r,l]=s.current||An,{type:a}=t,u=(0,ys.isTypeDescriptor)(a)?(h=a.formatting)==null?void 0:h.decimals:void 0,c=n===i&&(0,et.isValidNumber)(e)&&(0,et.isValidNumber)(o)&&t===r?(0,et.getMovingValueDirection)(e,l,o,u):"";return(0,mt.useEffect)(()=>{s.current=[n,e,t,c]}),c}var xt=require("react/jsx-runtime"),Tn=String.fromCharCode(11014),Dn=String.fromCharCode(11015),{KEY:Nn}=G.metadataKeys,gt="vuuBackgroundCell",Ne={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},Rn=n=>{if(typeof n=="string")return Ne.BackgroundOnly;if(n){let{renderer:e}=n;return e&&e.flashStyle||Ne.BackgroundOnly}},In=({column:n,row:e})=>{let{key:t,type:s,valueFormatter:i}=n,o=e[t],r=Rn(s),l=vs(e[Nn],o,n),a=r===Ne.ArrowOnly||r===Ne.ArrowBackground?l===G.UP1||l===G.UP2?Tn:l===G.DOWN1||l===G.DOWN2?Dn:null:null,u=l?" "+l:"",c=(0,ks.default)(gt,u,{[`${gt}-arrowOnly`]:r===Ne.ArrowOnly,[`${gt}-arrowBackground`]:r===Ne.ArrowBackground});return(0,xt.jsxs)("div",{className:c,tabIndex:-1,children:[(0,xt.jsx)("div",{className:`${gt}-flasher`,children:a}),i(e[n.key])]})};(0,G.registerComponent)("background",In,"cell-renderer",{serverDataType:["long","int","double"]});var I=require("@vuu-ui/vuu-codemirror"),ls=require("@vuu-ui/vuu-utils"),be=require("react");var J=require("@vuu-ui/vuu-codemirror");var Bn=0,tt=class{constructor(e,t){this.from=e,this.to=t}},S=class{constructor(e={}){this.id=Bn++,this.perNode=!!e.perNode,this.deserialize=e.deserialize||(()=>{throw new Error("This node type doesn't define a deserialize function")})}add(e){if(this.perNode)throw new RangeError("Can't add per-node props to node types");return typeof e!="function"&&(e=U.match(e)),t=>{let s=e(t);return s===void 0?null:[this,s]}}};S.closedBy=new S({deserialize:n=>n.split(" ")});S.openedBy=new S({deserialize:n=>n.split(" ")});S.group=new S({deserialize:n=>n.split(" ")});S.contextHash=new S({perNode:!0});S.lookAhead=new S({perNode:!0});S.mounted=new S({perNode:!0});var Fn=Object.create(null),U=class{constructor(e,t,s,i=0){this.name=e,this.props=t,this.id=s,this.flags=i}static define(e){let t=e.props&&e.props.length?Object.create(null):Fn,s=(e.top?1:0)|(e.skipped?2:0)|(e.error?4:0)|(e.name==null?8:0),i=new U(e.name||"",t,e.id,s);if(e.props){for(let o of e.props)if(Array.isArray(o)||(o=o(i)),o){if(o[0].perNode)throw new RangeError("Can't store a per-node prop on a node type");t[o[0].id]=o[1]}}return i}prop(e){return this.props[e.id]}get isTop(){return(this.flags&1)>0}get isSkipped(){return(this.flags&2)>0}get isError(){return(this.flags&4)>0}get isAnonymous(){return(this.flags&8)>0}is(e){if(typeof e=="string"){if(this.name==e)return!0;let t=this.prop(S.group);return t?t.indexOf(e)>-1:!1}return this.id==e}static match(e){let t=Object.create(null);for(let s in e)for(let i of s.split(" "))t[i]=e[s];return s=>{for(let i=s.prop(S.group),o=-1;o<(i?i.length:0);o++){let r=t[o<0?s.name:i[o]];if(r)return r}}}};U.none=new U("",Object.create(null),0,8);var Re=class{constructor(e){this.types=e;for(let t=0;t<e.length;t++)if(e[t].id!=t)throw new RangeError("Node type ids should correspond to array positions when creating a node set")}extend(...e){let t=[];for(let s of this.types){let i=null;for(let o of e){let r=o(s);r&&(i||(i=Object.assign({},s.props)),i[r[0].id]=r[1])}t.push(i?new U(s.name,i,s.id,s.flags):s)}return new Re(t)}},Ct=new WeakMap,Es=new WeakMap,L;(function(n){n[n.ExcludeBuffers=1]="ExcludeBuffers",n[n.IncludeAnonymous=2]="IncludeAnonymous",n[n.IgnoreMounts=4]="IgnoreMounts",n[n.IgnoreOverlays=8]="IgnoreOverlays"})(L||(L={}));var Q=class{constructor(e,t,s,i,o){if(this.type=e,this.children=t,this.positions=s,this.length=i,this.props=null,o&&o.length){this.props=Object.create(null);for(let[r,l]of o)this.props[typeof r=="number"?r:r.id]=l}}toString(){let e=this.prop(S.mounted);if(e&&!e.overlay)return e.tree.toString();let t="";for(let s of this.children){let i=s.toString();i&&(t&&(t+=","),t+=i)}return this.type.name?(/\W/.test(this.type.name)&&!this.type.isError?JSON.stringify(this.type.name):this.type.name)+(t.length?"("+t+")":""):t}cursor(e=0){return new Be(this.topNode,e)}cursorAt(e,t=0,s=0){let i=Ct.get(this)||this.topNode,o=new Be(i);return o.moveTo(e,t),Ct.set(this,o._tree),o}get topNode(){return new Z(this,0,0,null)}resolve(e,t=0){let s=Ie(Ct.get(this)||this.topNode,e,t,!1);return Ct.set(this,s),s}resolveInner(e,t=0){let s=Ie(Es.get(this)||this.topNode,e,t,!0);return Es.set(this,s),s}iterate(e){let{enter:t,leave:s,from:i=0,to:o=this.length}=e;for(let r=this.cursor((e.mode||0)|L.IncludeAnonymous);;){let l=!1;if(r.from<=o&&r.to>=i&&(r.type.isAnonymous||t(r)!==!1)){if(r.firstChild())continue;l=!0}for(;l&&s&&!r.type.isAnonymous&&s(r),!r.nextSibling();){if(!r.parent())return;l=!0}}}prop(e){return e.perNode?this.props?this.props[e.id]:void 0:this.type.prop(e)}get propValues(){let e=[];if(this.props)for(let t in this.props)e.push([+t,this.props[t]]);return e}balance(e={}){return this.children.length<=8?this:zt(U.none,this.children,this.positions,0,this.children.length,0,this.length,(t,s,i)=>new Q(this.type,t,s,i,this.propValues),e.makeTree||((t,s,i)=>new Q(U.none,t,s,i)))}static build(e){return Ln(e)}};Q.empty=new Q(U.none,[],[],0);var st=class{constructor(e,t){this.buffer=e,this.index=t}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}get pos(){return this.index}next(){this.index-=4}fork(){return new st(this.buffer,this.index)}},ae=class{constructor(e,t,s){this.buffer=e,this.length=t,this.set=s}get type(){return U.none}toString(){let e=[];for(let t=0;t<this.buffer.length;)e.push(this.childString(t)),t=this.buffer[t+3];return e.join(",")}childString(e){let t=this.buffer[e],s=this.buffer[e+3],i=this.set.types[t],o=i.name;if(/\W/.test(o)&&!i.isError&&(o=JSON.stringify(o)),e+=4,s==e)return o;let r=[];for(;e<s;)r.push(this.childString(e)),e=this.buffer[e+3];return o+"("+r.join(",")+")"}findChild(e,t,s,i,o){let{buffer:r}=this,l=-1;for(let a=e;a!=t&&!(Ss(o,i,r[a+1],r[a+2])&&(l=a,s>0));a=r[a+3]);return l}slice(e,t,s){let i=this.buffer,o=new Uint16Array(t-e),r=0;for(let l=e,a=0;l<t;){o[a++]=i[l++],o[a++]=i[l++]-s;let u=o[a++]=i[l++]-s;o[a++]=i[l++]-e,r=Math.max(r,u)}return new ae(o,r,this.set)}};function Ss(n,e,t,s){switch(n){case-2:return t<e;case-1:return s>=e&&t<e;case 0:return t<e&&s>e;case 1:return t<=e&&s>e;case 2:return s>e;case 4:return!0}}function Ps(n,e){let t=n.childBefore(e);for(;t;){let s=t.lastChild;if(!s||s.to!=t.to)break;s.type.isError&&s.from==s.to?(n=t,t=s.prevSibling):t=s}return n}function Ie(n,e,t,s){for(var i;n.from==n.to||(t<1?n.from>=e:n.from>e)||(t>-1?n.to<=e:n.to<e);){let r=!s&&n instanceof Z&&n.index<0?null:n.parent;if(!r)return n;n=r}let o=s?0:L.IgnoreOverlays;if(s)for(let r=n,l=r.parent;l;r=l,l=r.parent)r instanceof Z&&r.index<0&&((i=l.enter(e,t,o))===null||i===void 0?void 0:i.from)!=r.from&&(n=l);for(;;){let r=n.enter(e,t,o);if(!r)return n;n=r}}var Z=class{constructor(e,t,s,i){this._tree=e,this.from=t,this.index=s,this._parent=i}get type(){return this._tree.type}get name(){return this._tree.type.name}get to(){return this.from+this._tree.length}nextChild(e,t,s,i,o=0){for(let r=this;;){for(let{children:l,positions:a}=r._tree,u=t>0?l.length:-1;e!=u;e+=t){let c=l[e],h=a[e]+r.from;if(Ss(i,s,h,h+c.length)){if(c instanceof ae){if(o&L.ExcludeBuffers)continue;let d=c.findChild(0,c.buffer.length,t,s-h,i);if(d>-1)return new ee(new Ft(r,c,e,h),null,d)}else if(o&L.IncludeAnonymous||!c.type.isAnonymous||Qt(c)){let d;if(!(o&L.IgnoreMounts)&&c.props&&(d=c.prop(S.mounted))&&!d.overlay)return new Z(d.tree,h,e,r);let p=new Z(c,h,e,r);return o&L.IncludeAnonymous||!p.type.isAnonymous?p:p.nextChild(t<0?c.children.length-1:0,t,s,i)}}}if(o&L.IncludeAnonymous||!r.type.isAnonymous||(r.index>=0?e=r.index+t:e=t<0?-1:r._parent._tree.children.length,r=r._parent,!r))return null}}get firstChild(){return this.nextChild(0,1,0,4)}get lastChild(){return this.nextChild(this._tree.children.length-1,-1,0,4)}childAfter(e){return this.nextChild(0,1,e,2)}childBefore(e){return this.nextChild(this._tree.children.length-1,-1,e,-2)}enter(e,t,s=0){let i;if(!(s&L.IgnoreOverlays)&&(i=this._tree.prop(S.mounted))&&i.overlay){let o=e-this.from;for(let{from:r,to:l}of i.overlay)if((t>0?r<=o:r<o)&&(t<0?l>=o:l>o))return new Z(i.tree,i.overlay[0].from+this.from,-1,this)}return this.nextChild(0,1,e,t,s)}nextSignificantParent(){let e=this;for(;e.type.isAnonymous&&e._parent;)e=e._parent;return e}get parent(){return this._parent?this._parent.nextSignificantParent():null}get nextSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index+1,1,0,4):null}get prevSibling(){return this._parent&&this.index>=0?this._parent.nextChild(this.index-1,-1,0,4):null}cursor(e=0){return new Be(this,e)}get tree(){return this._tree}toTree(){return this._tree}resolve(e,t=0){return Ie(this,e,t,!1)}resolveInner(e,t=0){return Ie(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ps(this,e)}getChild(e,t=null,s=null){let i=yt(this,e,t,s);return i.length?i[0]:null}getChildren(e,t=null,s=null){return yt(this,e,t,s)}toString(){return this._tree.toString()}get node(){return this}matchContext(e){return vt(this,e)}};function yt(n,e,t,s){let i=n.cursor(),o=[];if(!i.firstChild())return o;if(t!=null){for(;!i.type.is(t);)if(!i.nextSibling())return o}for(;;){if(s!=null&&i.type.is(s))return o;if(i.type.is(e)&&o.push(i.node),!i.nextSibling())return s==null?o:[]}}function vt(n,e,t=e.length-1){for(let s=n.parent;t>=0;s=s.parent){if(!s)return!1;if(!s.type.isAnonymous){if(e[t]&&e[t]!=s.name)return!1;t--}}return!0}var Ft=class{constructor(e,t,s,i){this.parent=e,this.buffer=t,this.index=s,this.start=i}},ee=class{get name(){return this.type.name}get from(){return this.context.start+this.context.buffer.buffer[this.index+1]}get to(){return this.context.start+this.context.buffer.buffer[this.index+2]}constructor(e,t,s){this.context=e,this._parent=t,this.index=s,this.type=e.buffer.set.types[e.buffer.buffer[s]]}child(e,t,s){let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.context.start,s);return o<0?null:new ee(this.context,this,o)}get firstChild(){return this.child(1,0,4)}get lastChild(){return this.child(-1,0,4)}childAfter(e){return this.child(1,e,2)}childBefore(e){return this.child(-1,e,-2)}enter(e,t,s=0){if(s&L.ExcludeBuffers)return null;let{buffer:i}=this.context,o=i.findChild(this.index+4,i.buffer[this.index+3],t>0?1:-1,e-this.context.start,t);return o<0?null:new ee(this.context,this,o)}get parent(){return this._parent||this.context.parent.nextSignificantParent()}externalSibling(e){return this._parent?null:this.context.parent.nextChild(this.context.index+e,e,0,4)}get nextSibling(){let{buffer:e}=this.context,t=e.buffer[this.index+3];return t<(this._parent?e.buffer[this._parent.index+3]:e.buffer.length)?new ee(this.context,this._parent,t):this.externalSibling(1)}get prevSibling(){let{buffer:e}=this.context,t=this._parent?this._parent.index+4:0;return this.index==t?this.externalSibling(-1):new ee(this.context,this._parent,e.findChild(t,this.index,-1,0,4))}cursor(e=0){return new Be(this,e)}get tree(){return null}toTree(){let e=[],t=[],{buffer:s}=this.context,i=this.index+4,o=s.buffer[this.index+3];if(o>i){let r=s.buffer[this.index+1];e.push(s.slice(i,o,r)),t.push(0)}return new Q(this.type,e,t,this.to-this.from)}resolve(e,t=0){return Ie(this,e,t,!1)}resolveInner(e,t=0){return Ie(this,e,t,!0)}enterUnfinishedNodesBefore(e){return Ps(this,e)}toString(){return this.context.buffer.childString(this.index)}getChild(e,t=null,s=null){let i=yt(this,e,t,s);return i.length?i[0]:null}getChildren(e,t=null,s=null){return yt(this,e,t,s)}get node(){return this}matchContext(e){return vt(this,e)}},Be=class{get name(){return this.type.name}constructor(e,t=0){if(this.mode=t,this.buffer=null,this.stack=[],this.index=0,this.bufferNode=null,e instanceof Z)this.yieldNode(e);else{this._tree=e.context.parent,this.buffer=e.context;for(let s=e._parent;s;s=s._parent)this.stack.unshift(s.index);this.bufferNode=e,this.yieldBuf(e.index)}}yieldNode(e){return e?(this._tree=e,this.type=e.type,this.from=e.from,this.to=e.to,!0):!1}yieldBuf(e,t){this.index=e;let{start:s,buffer:i}=this.buffer;return this.type=t||i.set.types[i.buffer[e]],this.from=s+i.buffer[e+1],this.to=s+i.buffer[e+2],!0}yield(e){return e?e instanceof Z?(this.buffer=null,this.yieldNode(e)):(this.buffer=e.context,this.yieldBuf(e.index,e.type)):!1}toString(){return this.buffer?this.buffer.buffer.childString(this.index):this._tree.toString()}enterChild(e,t,s){if(!this.buffer)return this.yield(this._tree.nextChild(e<0?this._tree._tree.children.length-1:0,e,t,s,this.mode));let{buffer:i}=this.buffer,o=i.findChild(this.index+4,i.buffer[this.index+3],e,t-this.buffer.start,s);return o<0?!1:(this.stack.push(this.index),this.yieldBuf(o))}firstChild(){return this.enterChild(1,0,4)}lastChild(){return this.enterChild(-1,0,4)}childAfter(e){return this.enterChild(1,e,2)}childBefore(e){return this.enterChild(-1,e,-2)}enter(e,t,s=this.mode){return this.buffer?s&L.ExcludeBuffers?!1:this.enterChild(1,e,t):this.yield(this._tree.enter(e,t,s))}parent(){if(!this.buffer)return this.yieldNode(this.mode&L.IncludeAnonymous?this._tree._parent:this._tree.parent);if(this.stack.length)return this.yieldBuf(this.stack.pop());let e=this.mode&L.IncludeAnonymous?this.buffer.parent:this.buffer.parent.nextSignificantParent();return this.buffer=null,this.yieldNode(e)}sibling(e){if(!this.buffer)return this._tree._parent?this.yield(this._tree.index<0?null:this._tree._parent.nextChild(this._tree.index+e,e,0,4,this.mode)):!1;let{buffer:t}=this.buffer,s=this.stack.length-1;if(e<0){let i=s<0?0:this.stack[s]+4;if(this.index!=i)return this.yieldBuf(t.findChild(i,this.index,-1,0,4))}else{let i=t.buffer[this.index+3];if(i<(s<0?t.buffer.length:t.buffer[this.stack[s]+3]))return this.yieldBuf(i)}return s<0?this.yield(this.buffer.parent.nextChild(this.buffer.index+e,e,0,4,this.mode)):!1}nextSibling(){return this.sibling(1)}prevSibling(){return this.sibling(-1)}atLastNode(e){let t,s,{buffer:i}=this;if(i){if(e>0){if(this.index<i.buffer.buffer.length)return!1}else for(let o=0;o<this.index;o++)if(i.buffer.buffer[o+3]<this.index)return!1;({index:t,parent:s}=i)}else({index:t,_parent:s}=this._tree);for(;s;{index:t,_parent:s}=s)if(t>-1)for(let o=t+e,r=e<0?-1:s._tree.children.length;o!=r;o+=e){let l=s._tree.children[o];if(this.mode&L.IncludeAnonymous||l instanceof ae||!l.type.isAnonymous||Qt(l))return!1}return!0}move(e,t){if(t&&this.enterChild(e,0,4))return!0;for(;;){if(this.sibling(e))return!0;if(this.atLastNode(e)||!this.parent())return!1}}next(e=!0){return this.move(1,e)}prev(e=!0){return this.move(-1,e)}moveTo(e,t=0){for(;(this.from==this.to||(t<1?this.from>=e:this.from>e)||(t>-1?this.to<=e:this.to<e))&&this.parent(););for(;this.enterChild(1,e,t););return this}get node(){if(!this.buffer)return this._tree;let e=this.bufferNode,t=null,s=0;if(e&&e.context==this.buffer)e:for(let i=this.index,o=this.stack.length;o>=0;){for(let r=e;r;r=r._parent)if(r.index==i){if(i==this.index)return r;t=r,s=o+1;break e}i=this.stack[--o]}for(let i=s;i<this.stack.length;i++)t=new ee(this.buffer,t,this.stack[i]);return this.bufferNode=new ee(this.buffer,t,this.index)}get tree(){return this.buffer?null:this._tree._tree}iterate(e,t){for(let s=0;;){let i=!1;if(this.type.isAnonymous||e(this)!==!1){if(this.firstChild()){s++;continue}this.type.isAnonymous||(i=!0)}for(;i&&t&&t(this),i=this.type.isAnonymous,!this.nextSibling();){if(!s)return;this.parent(),s--,i=!0}}}matchContext(e){if(!this.buffer)return vt(this.node,e);let{buffer:t}=this.buffer,{types:s}=t.set;for(let i=e.length-1,o=this.stack.length-1;i>=0;o--){if(o<0)return vt(this.node,e,i);let r=s[t.buffer[this.stack[o]]];if(!r.isAnonymous){if(e[i]&&e[i]!=r.name)return!1;i--}}return!0}};function Qt(n){return n.children.some(e=>e instanceof ae||!e.type.isAnonymous||Qt(e))}function Ln(n){var e;let{buffer:t,nodeSet:s,maxBufferLength:i=1024,reused:o=[],minRepeatType:r=s.types.length}=n,l=Array.isArray(t)?new st(t,t.length):t,a=s.types,u=0,c=0;function h(k,y,C,E,F){let{id:O,start:v,end:N,size:$}=l,X=c;for(;$<0;)if(l.next(),$==-1){let ge=o[O];C.push(ge),E.push(v-k);return}else if($==-3){u=O;return}else if($==-4){c=O;return}else throw new RangeError(`Unrecognized record size: ${$}`);let Ae=a[O],me,oe,gs=v-k;if(N-v<=i&&(oe=x(l.pos-y,F))){let ge=new Uint16Array(oe.size-oe.skip),V=l.pos-oe.size,le=ge.length;for(;l.pos>V;)le=g(oe.start,ge,le);me=new ae(ge,N-oe.start,s),gs=oe.start-k}else{let ge=l.pos-$;l.next();let V=[],le=[],ye=O>=r?O:-1,Te=0,ft=N;for(;l.pos>ge;)ye>=0&&l.id==ye&&l.size>=0?(l.end<=ft-i&&(p(V,le,v,Te,l.end,ft,ye,X),Te=V.length,ft=l.end),l.next()):h(v,ge,V,le,ye);if(ye>=0&&Te>0&&Te<V.length&&p(V,le,v,Te,v,ft,ye,X),V.reverse(),le.reverse(),ye>-1&&Te>0){let xs=d(Ae);me=zt(Ae,V,le,0,V.length,0,N-v,xs,xs)}else me=f(Ae,V,le,N-v,X-N)}C.push(me),E.push(gs)}function d(k){return(y,C,E)=>{let F=0,O=y.length-1,v,N;if(O>=0&&(v=y[O])instanceof Q){if(!O&&v.type==k&&v.length==E)return v;(N=v.prop(S.lookAhead))&&(F=C[O]+v.length+N)}return f(k,y,C,E,F)}}function p(k,y,C,E,F,O,v,N){let $=[],X=[];for(;k.length>E;)$.push(k.pop()),X.push(y.pop()+C-F);k.push(f(s.types[v],$,X,O-F,N-O)),y.push(F-C)}function f(k,y,C,E,F=0,O){if(u){let v=[S.contextHash,u];O=O?[v].concat(O):[v]}if(F>25){let v=[S.lookAhead,F];O=O?[v].concat(O):[v]}return new Q(k,y,C,E,O)}function x(k,y){let C=l.fork(),E=0,F=0,O=0,v=C.end-i,N={size:0,start:0,skip:0};e:for(let $=C.pos-k;C.pos>$;){let X=C.size;if(C.id==y&&X>=0){N.size=E,N.start=F,N.skip=O,O+=4,E+=4,C.next();continue}let Ae=C.pos-X;if(X<0||Ae<$||C.start<v)break;let me=C.id>=r?4:0,oe=C.start;for(C.next();C.pos>Ae;){if(C.size<0)if(C.size==-3)me+=4;else break e;else C.id>=r&&(me+=4);C.next()}F=oe,E+=X,O+=me}return(y<0||E==k)&&(N.size=E,N.start=F,N.skip=O),N.size>4?N:void 0}function g(k,y,C){let{id:E,start:F,end:O,size:v}=l;if(l.next(),v>=0&&E<r){let N=C;if(v>4){let $=l.pos-(v-4);for(;l.pos>$;)C=g(k,y,C)}y[--C]=N,y[--C]=O-k,y[--C]=F-k,y[--C]=E}else v==-3?u=E:v==-4&&(c=E);return C}let w=[],R=[];for(;l.pos>0;)h(n.start||0,n.bufferStart||0,w,R,-1);let D=(e=n.length)!==null&&e!==void 0?e:w.length?R[0]+w[0].length:0;return new Q(a[n.topID],w.reverse(),R.reverse(),D)}var Os=new WeakMap;function bt(n,e){if(!n.isAnonymous||e instanceof ae||e.type!=n)return 1;let t=Os.get(e);if(t==null){t=1;for(let s of e.children){if(s.type!=n||!(s instanceof Q)){t=1;break}t+=bt(n,s)}Os.set(e,t)}return t}function zt(n,e,t,s,i,o,r,l,a){let u=0;for(let f=s;f<i;f++)u+=bt(n,e[f]);let c=Math.ceil(u*1.5/8),h=[],d=[];function p(f,x,g,w,R){for(let D=g;D<w;){let k=D,y=x[D],C=bt(n,f[D]);for(D++;D<w;D++){let E=bt(n,f[D]);if(C+E>=c)break;C+=E}if(D==k+1){if(C>c){let E=f[k];p(E.children,E.positions,0,E.children.length,x[k]+R);continue}h.push(f[k])}else{let E=x[D-1]+f[D-1].length-y;h.push(zt(n,f,x,k,D,y,E,null,a))}d.push(y+R-o)}}return p(e,t,s,i,0),(l||a)(h,d,r)}var kt=class{startParse(e,t,s){return typeof e=="string"&&(e=new Lt(e)),s=s?s.length?s.map(i=>new tt(i.from,i.to)):[new tt(0,0)]:[new tt(0,e.length)],this.createParse(e,t||[],s)}parse(e,t,s){let i=this.startParse(e,t,s);for(;;){let o=i.advance();if(o)return o}}},Lt=class{constructor(e){this.string=e}get length(){return this.string.length}chunk(e){return this.string.slice(e)}get lineChunks(){return!1}read(e,t){return this.string.slice(e,t)}};var Wi=new S({perNode:!0});var Le=class{constructor(e,t,s,i,o,r,l,a,u,c=0,h){this.p=e,this.stack=t,this.state=s,this.reducePos=i,this.pos=o,this.score=r,this.buffer=l,this.bufferBase=a,this.curContext=u,this.lookAhead=c,this.parent=h}toString(){return`[${this.stack.filter((e,t)=>t%3==0).concat(this.state)}]@${this.pos}${this.score?"!"+this.score:""}`}static start(e,t,s=0){let i=e.parser.context;return new Le(e,[],t,s,s,0,[],0,i?new Et(i,i.start):null,0,null)}get context(){return this.curContext?this.curContext.context:null}pushState(e,t){this.stack.push(this.state,t,this.bufferBase+this.buffer.length),this.state=e}reduce(e){var t;let s=e>>19,i=e&65535,{parser:o}=this.p,r=o.dynamicPrecedence(i);if(r&&(this.score+=r),s==0){this.pushState(o.getGoto(this.state,i,!0),this.reducePos),i<o.minRepeatTerm&&this.storeNode(i,this.reducePos,this.reducePos,4,!0),this.reduceContext(i,this.reducePos);return}let l=this.stack.length-(s-1)*3-(e&262144?6:0),a=l?this.stack[l-2]:this.p.ranges[0].from,u=this.reducePos-a;u>=2e3&&!(!((t=this.p.parser.nodeSet.types[i])===null||t===void 0)&&t.isAnonymous)&&(a==this.p.lastBigReductionStart?(this.p.bigReductionCount++,this.p.lastBigReductionSize=u):this.p.lastBigReductionSize<u&&(this.p.bigReductionCount=1,this.p.lastBigReductionStart=a,this.p.lastBigReductionSize=u));let c=l?this.stack[l-1]:0,h=this.bufferBase+this.buffer.length-c;if(i<o.minRepeatTerm||e&131072){let d=o.stateFlag(this.state,1)?this.pos:this.reducePos;this.storeNode(i,a,d,h+4,!0)}if(e&262144)this.state=this.stack[l];else{let d=this.stack[l-3];this.state=o.getGoto(d,i,!0)}for(;this.stack.length>l;)this.stack.pop();this.reduceContext(i,a)}storeNode(e,t,s,i=4,o=!1){if(e==0&&(!this.stack.length||this.stack[this.stack.length-1]<this.buffer.length+this.bufferBase)){let r=this,l=this.buffer.length;if(l==0&&r.parent&&(l=r.bufferBase-r.parent.bufferBase,r=r.parent),l>0&&r.buffer[l-4]==0&&r.buffer[l-1]>-1){if(t==s)return;if(r.buffer[l-2]>=t){r.buffer[l-2]=s;return}}}if(!o||this.pos==s)this.buffer.push(e,t,s,i);else{let r=this.buffer.length;if(r>0&&this.buffer[r-4]!=0)for(;r>0&&this.buffer[r-2]>s;)this.buffer[r]=this.buffer[r-4],this.buffer[r+1]=this.buffer[r-3],this.buffer[r+2]=this.buffer[r-2],this.buffer[r+3]=this.buffer[r-1],r-=4,i>4&&(i-=4);this.buffer[r]=e,this.buffer[r+1]=t,this.buffer[r+2]=s,this.buffer[r+3]=i}}shift(e,t,s){let i=this.pos;if(e&131072)this.pushState(e&65535,this.pos);else if(e&262144)this.pos=s,this.shiftContext(t,i),t<=this.p.parser.maxNode&&this.buffer.push(t,i,s,4);else{let o=e,{parser:r}=this.p;(s>this.pos||t<=r.maxNode)&&(this.pos=s,r.stateFlag(o,1)||(this.reducePos=s)),this.pushState(o,i),this.shiftContext(t,i),t<=r.maxNode&&this.buffer.push(t,i,s,4)}}apply(e,t,s){e&65536?this.reduce(e):this.shift(e,t,s)}useNode(e,t){let s=this.p.reused.length-1;(s<0||this.p.reused[s]!=e)&&(this.p.reused.push(e),s++);let i=this.pos;this.reducePos=this.pos=i+e.length,this.pushState(t,i),this.buffer.push(s,i,this.reducePos,-1),this.curContext&&this.updateContext(this.curContext.tracker.reuse(this.curContext.context,e,this,this.p.stream.reset(this.pos-e.length)))}split(){let e=this,t=e.buffer.length;for(;t>0&&e.buffer[t-2]>e.reducePos;)t-=4;let s=e.buffer.slice(t),i=e.bufferBase+t;for(;e&&i==e.bufferBase;)e=e.parent;return new Le(this.p,this.stack.slice(),this.state,this.reducePos,this.pos,this.score,s,i,this.curContext,this.lookAhead,e)}recoverByDelete(e,t){let s=e<=this.p.parser.maxNode;s&&this.storeNode(e,this.pos,t,4),this.storeNode(0,this.pos,t,s?8:4),this.pos=this.reducePos=t,this.score-=190}canShift(e){for(let t=new $t(this);;){let s=this.p.parser.stateSlot(t.state,4)||this.p.parser.hasAction(t.state,e);if(s==0)return!1;if(!(s&65536))return!0;t.reduce(s)}}recoverByInsert(e){if(this.stack.length>=300)return[];let t=this.p.parser.nextStates(this.state);if(t.length>4<<1||this.stack.length>=120){let i=[];for(let o=0,r;o<t.length;o+=2)(r=t[o+1])!=this.state&&this.p.parser.hasAction(r,e)&&i.push(t[o],r);if(this.stack.length<120)for(let o=0;i.length<4<<1&&o<t.length;o+=2){let r=t[o+1];i.some((l,a)=>a&1&&l==r)||i.push(t[o],r)}t=i}let s=[];for(let i=0;i<t.length&&s.length<4;i+=2){let o=t[i+1];if(o==this.state)continue;let r=this.split();r.pushState(o,this.pos),r.storeNode(0,r.pos,r.pos,4,!0),r.shiftContext(t[i],this.pos),r.score-=200,s.push(r)}return s}forceReduce(){let e=this.p.parser.stateSlot(this.state,5);if(!(e&65536))return!1;let{parser:t}=this.p;if(!t.validAction(this.state,e)){let s=e>>19,i=e&65535,o=this.stack.length-s*3;if(o<0||t.getGoto(this.stack[o],i,!1)<0)return!1;this.storeNode(0,this.reducePos,this.reducePos,4,!0),this.score-=100}return this.reducePos=this.pos,this.reduce(e),!0}forceAll(){for(;!this.p.parser.stateFlag(this.state,2);)if(!this.forceReduce()){this.storeNode(0,this.pos,this.pos,4,!0);break}return this}get deadEnd(){if(this.stack.length!=3)return!1;let{parser:e}=this.p;return e.data[e.stateSlot(this.state,1)]==65535&&!e.stateSlot(this.state,4)}restart(){this.state=this.stack[0],this.stack.length=0}sameState(e){if(this.state!=e.state||this.stack.length!=e.stack.length)return!1;for(let t=0;t<this.stack.length;t+=3)if(this.stack[t]!=e.stack[t])return!1;return!0}get parser(){return this.p.parser}dialectEnabled(e){return this.p.parser.dialect.flags[e]}shiftContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.shift(this.curContext.context,e,this,this.p.stream.reset(t)))}reduceContext(e,t){this.curContext&&this.updateContext(this.curContext.tracker.reduce(this.curContext.context,e,this,this.p.stream.reset(t)))}emitContext(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-3)&&this.buffer.push(this.curContext.hash,this.reducePos,this.reducePos,-3)}emitLookAhead(){let e=this.buffer.length-1;(e<0||this.buffer[e]!=-4)&&this.buffer.push(this.lookAhead,this.reducePos,this.reducePos,-4)}updateContext(e){if(e!=this.curContext.context){let t=new Et(this.curContext.tracker,e);t.hash!=this.curContext.hash&&this.emitContext(),this.curContext=t}}setLookAhead(e){e>this.lookAhead&&(this.emitLookAhead(),this.lookAhead=e)}close(){this.curContext&&this.curContext.tracker.strict&&this.emitContext(),this.lookAhead>0&&this.emitLookAhead()}},Et=class{constructor(e,t){this.tracker=e,this.context=t,this.hash=e.strict?e.hash(t):0}},ws;(function(n){n[n.Insert=200]="Insert",n[n.Delete=190]="Delete",n[n.Reduce=100]="Reduce",n[n.MaxNext=4]="MaxNext",n[n.MaxInsertStackDepth=300]="MaxInsertStackDepth",n[n.DampenInsertStackDepth=120]="DampenInsertStackDepth",n[n.MinBigReduction=2e3]="MinBigReduction"})(ws||(ws={}));var $t=class{constructor(e){this.start=e,this.state=e.state,this.stack=e.stack,this.base=this.stack.length}reduce(e){let t=e&65535,s=e>>19;s==0?(this.stack==this.start.stack&&(this.stack=this.stack.slice()),this.stack.push(this.state,0,0),this.base+=3):this.base-=(s-1)*3;let i=this.start.p.parser.getGoto(this.stack[this.base-3],t,!0);this.state=i}},Qe=class{constructor(e,t,s){this.stack=e,this.pos=t,this.index=s,this.buffer=e.buffer,this.index==0&&this.maybeNext()}static create(e,t=e.bufferBase+e.buffer.length){return new Qe(e,t,t-e.bufferBase)}maybeNext(){let e=this.stack.parent;e!=null&&(this.index=this.stack.bufferBase-e.bufferBase,this.stack=e,this.buffer=e.buffer)}get id(){return this.buffer[this.index-4]}get start(){return this.buffer[this.index-3]}get end(){return this.buffer[this.index-2]}get size(){return this.buffer[this.index-1]}next(){this.index-=4,this.pos-=4,this.index==0&&this.maybeNext()}fork(){return new Qe(this.stack,this.pos,this.index)}};function nt(n,e=Uint16Array){if(typeof n!="string")return n;let t=null;for(let s=0,i=0;s<n.length;){let o=0;for(;;){let r=n.charCodeAt(s++),l=!1;if(r==126){o=65535;break}r>=92&&r--,r>=34&&r--;let a=r-32;if(a>=46&&(a-=46,l=!0),o+=a,l)break;o*=46}t?t[i++]=o:t=new e(o)}return t}var Fe=class{constructor(){this.start=-1,this.value=-1,this.end=-1,this.extended=-1,this.lookAhead=0,this.mask=0,this.context=0}},As=new Fe,Ut=class{constructor(e,t){this.input=e,this.ranges=t,this.chunk="",this.chunkOff=0,this.chunk2="",this.chunk2Pos=0,this.next=-1,this.token=As,this.rangeIndex=0,this.pos=this.chunkPos=t[0].from,this.range=t[0],this.end=t[t.length-1].to,this.readNext()}resolveOffset(e,t){let s=this.range,i=this.rangeIndex,o=this.pos+e;for(;o<s.from;){if(!i)return null;let r=this.ranges[--i];o-=s.from-r.to,s=r}for(;t<0?o>s.to:o>=s.to;){if(i==this.ranges.length-1)return null;let r=this.ranges[++i];o+=r.from-s.to,s=r}return o}clipPos(e){if(e>=this.range.from&&e<this.range.to)return e;for(let t of this.ranges)if(t.to>e)return Math.max(e,t.from);return this.end}peek(e){let t=this.chunkOff+e,s,i;if(t>=0&&t<this.chunk.length)s=this.pos+e,i=this.chunk.charCodeAt(t);else{let o=this.resolveOffset(e,1);if(o==null)return-1;if(s=o,s>=this.chunk2Pos&&s<this.chunk2Pos+this.chunk2.length)i=this.chunk2.charCodeAt(s-this.chunk2Pos);else{let r=this.rangeIndex,l=this.range;for(;l.to<=s;)l=this.ranges[++r];this.chunk2=this.input.chunk(this.chunk2Pos=s),s+this.chunk2.length>l.to&&(this.chunk2=this.chunk2.slice(0,l.to-s)),i=this.chunk2.charCodeAt(0)}}return s>=this.token.lookAhead&&(this.token.lookAhead=s+1),i}acceptToken(e,t=0){let s=t?this.resolveOffset(t,-1):this.pos;if(s==null||s<this.token.start)throw new RangeError("Token end out of bounds");this.token.value=e,this.token.end=s}getChunk(){if(this.pos>=this.chunk2Pos&&this.pos<this.chunk2Pos+this.chunk2.length){let{chunk:e,chunkPos:t}=this;this.chunk=this.chunk2,this.chunkPos=this.chunk2Pos,this.chunk2=e,this.chunk2Pos=t,this.chunkOff=this.pos-this.chunkPos}else{this.chunk2=this.chunk,this.chunk2Pos=this.chunkPos;let e=this.input.chunk(this.pos),t=this.pos+e.length;this.chunk=t>this.range.to?e.slice(0,this.range.to-this.pos):e,this.chunkPos=this.pos,this.chunkOff=0}}readNext(){return this.chunkOff>=this.chunk.length&&(this.getChunk(),this.chunkOff==this.chunk.length)?this.next=-1:this.next=this.chunk.charCodeAt(this.chunkOff)}advance(e=1){for(this.chunkOff+=e;this.pos+e>=this.range.to;){if(this.rangeIndex==this.ranges.length-1)return this.setDone();e-=this.range.to-this.pos,this.range=this.ranges[++this.rangeIndex],this.pos=this.range.from}return this.pos+=e,this.pos>=this.token.lookAhead&&(this.token.lookAhead=this.pos+1),this.readNext()}setDone(){return this.pos=this.chunkPos=this.end,this.range=this.ranges[this.rangeIndex=this.ranges.length-1],this.chunk="",this.next=-1}reset(e,t){if(t?(this.token=t,t.start=e,t.lookAhead=e+1,t.value=t.extended=-1):this.token=As,this.pos!=e){if(this.pos=e,e==this.end)return this.setDone(),this;for(;e<this.range.from;)this.range=this.ranges[--this.rangeIndex];for(;e>=this.range.to;)this.range=this.ranges[++this.rangeIndex];e>=this.chunkPos&&e<this.chunkPos+this.chunk.length?this.chunkOff=e-this.chunkPos:(this.chunk="",this.chunkOff=0),this.readNext()}return this}read(e,t){if(e>=this.chunkPos&&t<=this.chunkPos+this.chunk.length)return this.chunk.slice(e-this.chunkPos,t-this.chunkPos);if(e>=this.chunk2Pos&&t<=this.chunk2Pos+this.chunk2.length)return this.chunk2.slice(e-this.chunk2Pos,t-this.chunk2Pos);if(e>=this.range.from&&t<=this.range.to)return this.input.read(e,t);let s="";for(let i of this.ranges){if(i.from>=t)break;i.to>e&&(s+=this.input.read(Math.max(i.from,e),Math.min(i.to,t)))}return s}},Ce=class{constructor(e,t){this.data=e,this.id=t}token(e,t){let{parser:s}=t.p;Fs(this.data,e,t,this.id,s.data,s.tokenPrecTable)}};Ce.prototype.contextual=Ce.prototype.fallback=Ce.prototype.extend=!1;var Gt=class{constructor(e,t,s){this.precTable=t,this.elseToken=s,this.data=typeof e=="string"?nt(e):e}token(e,t){let s=e.pos,i;for(;i=e.pos,Fs(this.data,e,t,0,this.data,this.precTable),!(e.token.value>-1);){if(this.elseToken==null)return;if(e.next<0)break;e.advance(),e.reset(i+1,e.token)}i>s&&(e.reset(s,e.token),e.acceptToken(this.elseToken,i-s))}};Gt.prototype.contextual=Ce.prototype.fallback=Ce.prototype.extend=!1;function Fs(n,e,t,s,i,o){let r=0,l=1<<s,{dialect:a}=t.p.parser;e:for(;l&n[r];){let u=n[r+1];for(let p=r+3;p<u;p+=2)if((n[p+1]&l)>0){let f=n[p];if(a.allows(f)&&(e.token.value==-1||e.token.value==f||zn(f,e.token.value,i,o))){e.acceptToken(f);break}}let c=e.next,h=0,d=n[r+2];if(e.next<0&&d>h&&n[u+d*3-3]==65535&&n[u+d*3-3]==65535){r=n[u+d*3-1];continue e}for(;h<d;){let p=h+d>>1,f=u+p+(p<<1),x=n[f],g=n[f+1]||65536;if(c<x)d=p;else if(c>=g)h=p+1;else{r=n[f+2],e.advance();continue e}}break}}function Ts(n,e,t){for(let s=e,i;(i=n[s])!=65535;s++)if(i==t)return s-e;return-1}function zn(n,e,t,s){let i=Ts(t,s,e);return i<0||Ts(t,s,n)<i}var j=typeof process<"u"&&process.env&&/\bparse\b/.test(process.env.LOG),Mt=null,Ds;(function(n){n[n.Margin=25]="Margin"})(Ds||(Ds={}));function Ns(n,e,t){let s=n.cursor(L.IncludeAnonymous);for(s.moveTo(e);;)if(!(t<0?s.childBefore(e):s.childAfter(e)))for(;;){if((t<0?s.to<e:s.from>e)&&!s.type.isError)return t<0?Math.max(0,Math.min(s.to-1,e-25)):Math.min(n.length,Math.max(s.from+1,e+25));if(t<0?s.prevSibling():s.nextSibling())break;if(!s.parent())return t<0?0:n.length}}var _t=class{constructor(e,t){this.fragments=e,this.nodeSet=t,this.i=0,this.fragment=null,this.safeFrom=-1,this.safeTo=-1,this.trees=[],this.start=[],this.index=[],this.nextFragment()}nextFragment(){let e=this.fragment=this.i==this.fragments.length?null:this.fragments[this.i++];if(e){for(this.safeFrom=e.openStart?Ns(e.tree,e.from+e.offset,1)-e.offset:e.from,this.safeTo=e.openEnd?Ns(e.tree,e.to+e.offset,-1)-e.offset:e.to;this.trees.length;)this.trees.pop(),this.start.pop(),this.index.pop();this.trees.push(e.tree),this.start.push(-e.offset),this.index.push(0),this.nextStart=this.safeFrom}else this.nextStart=1e9}nodeAt(e){if(e<this.nextStart)return null;for(;this.fragment&&this.safeTo<=e;)this.nextFragment();if(!this.fragment)return null;for(;;){let t=this.trees.length-1;if(t<0)return this.nextFragment(),null;let s=this.trees[t],i=this.index[t];if(i==s.children.length){this.trees.pop(),this.start.pop(),this.index.pop();continue}let o=s.children[i],r=this.start[t]+s.positions[i];if(r>e)return this.nextStart=r,null;if(o instanceof Q){if(r==e){if(r<this.safeFrom)return null;let l=r+o.length;if(l<=this.safeTo){let a=o.prop(S.lookAhead);if(!a||l+a<this.fragment.to)return o}}this.index[t]++,r+o.length>=Math.max(this.safeFrom,e)&&(this.trees.push(o),this.start.push(r),this.index.push(0))}else this.index[t]++,this.nextStart=r+o.length}}},Wt=class{constructor(e,t){this.stream=t,this.tokens=[],this.mainToken=null,this.actions=[],this.tokens=e.tokenizers.map(s=>new Fe)}getActions(e){let t=0,s=null,{parser:i}=e.p,{tokenizers:o}=i,r=i.stateSlot(e.state,3),l=e.curContext?e.curContext.hash:0,a=0;for(let u=0;u<o.length;u++){if(!(1<<u&r))continue;let c=o[u],h=this.tokens[u];if(!(s&&!c.fallback)&&((c.contextual||h.start!=e.pos||h.mask!=r||h.context!=l)&&(this.updateCachedToken(h,c,e),h.mask=r,h.context=l),h.lookAhead>h.end+25&&(a=Math.max(h.lookAhead,a)),h.value!=0)){let d=t;if(h.extended>-1&&(t=this.addActions(e,h.extended,h.end,t)),t=this.addActions(e,h.value,h.end,t),!c.extend&&(s=h,t>d))break}}for(;this.actions.length>t;)this.actions.pop();return a&&e.setLookAhead(a),!s&&e.pos==this.stream.end&&(s=new Fe,s.value=e.p.parser.eofTerm,s.start=s.end=e.pos,t=this.addActions(e,s.value,s.end,t)),this.mainToken=s,this.actions}getMainToken(e){if(this.mainToken)return this.mainToken;let t=new Fe,{pos:s,p:i}=e;return t.start=s,t.end=Math.min(s+1,i.stream.end),t.value=s==i.stream.end?i.parser.eofTerm:0,t}updateCachedToken(e,t,s){let i=this.stream.clipPos(s.pos);if(t.token(this.stream.reset(i,e),s),e.value>-1){let{parser:o}=s.p;for(let r=0;r<o.specialized.length;r++)if(o.specialized[r]==e.value){let l=o.specializers[r](this.stream.read(e.start,e.end),s);if(l>=0&&s.p.parser.dialect.allows(l>>1)){l&1?e.extended=l>>1:e.value=l>>1;break}}}else e.value=0,e.end=this.stream.clipPos(i+1)}putAction(e,t,s,i){for(let o=0;o<i;o+=3)if(this.actions[o]==e)return i;return this.actions[i++]=e,this.actions[i++]=t,this.actions[i++]=s,i}addActions(e,t,s,i){let{state:o}=e,{parser:r}=e.p,{data:l}=r;for(let a=0;a<2;a++)for(let u=r.stateSlot(o,a?2:1);;u+=3){if(l[u]==65535)if(l[u+1]==1)u=ue(l,u+2);else{i==0&&l[u+1]==2&&(i=this.putAction(ue(l,u+2),t,s,i));break}l[u]==t&&(i=this.putAction(ue(l,u+1),t,s,i))}return i}},Rs;(function(n){n[n.Distance=5]="Distance",n[n.MaxRemainingPerStep=3]="MaxRemainingPerStep",n[n.MinBufferLengthPrune=500]="MinBufferLengthPrune",n[n.ForceReduceLimit=10]="ForceReduceLimit",n[n.CutDepth=15e3]="CutDepth",n[n.CutTo=9e3]="CutTo",n[n.MaxLeftAssociativeReductionCount=300]="MaxLeftAssociativeReductionCount",n[n.MaxStackCount=12]="MaxStackCount"})(Rs||(Rs={}));var Ht=class{constructor(e,t,s,i){this.parser=e,this.input=t,this.ranges=i,this.recovering=0,this.nextStackID=9812,this.minStackPos=0,this.reused=[],this.stoppedAt=null,this.lastBigReductionStart=-1,this.lastBigReductionSize=0,this.bigReductionCount=0,this.stream=new Ut(t,i),this.tokens=new Wt(e,this.stream),this.topTerm=e.top[1];let{from:o}=i[0];this.stacks=[Le.start(this,e.top[0],o)],this.fragments=s.length&&this.stream.end-o>e.bufferLength*4?new _t(s,e.nodeSet):null}get parsedPos(){return this.minStackPos}advance(){let e=this.stacks,t=this.minStackPos,s=this.stacks=[],i,o;if(this.bigReductionCount>300&&e.length==1){let[r]=e;for(;r.forceReduce()&&r.stack.length&&r.stack[r.stack.length-2]>=this.lastBigReductionStart;);this.bigReductionCount=this.lastBigReductionSize=0}for(let r=0;r<e.length;r++){let l=e[r];for(;;){if(this.tokens.mainToken=null,l.pos>t)s.push(l);else{if(this.advanceStack(l,s,e))continue;{i||(i=[],o=[]),i.push(l);let a=this.tokens.getMainToken(l);o.push(a.value,a.end)}}break}}if(!s.length){let r=i&&Mn(i);if(r)return this.stackToTree(r);if(this.parser.strict)throw j&&i&&console.log("Stuck with token "+(this.tokens.mainToken?this.parser.getName(this.tokens.mainToken.value):"none")),new SyntaxError("No parse at "+t);this.recovering||(this.recovering=5)}if(this.recovering&&i){let r=this.stoppedAt!=null&&i[0].pos>this.stoppedAt?i[0]:this.runRecovery(i,o,s);if(r)return this.stackToTree(r.forceAll())}if(this.recovering){let r=this.recovering==1?1:this.recovering*3;if(s.length>r)for(s.sort((l,a)=>a.score-l.score);s.length>r;)s.pop();s.some(l=>l.reducePos>t)&&this.recovering--}else if(s.length>1){e:for(let r=0;r<s.length-1;r++){let l=s[r];for(let a=r+1;a<s.length;a++){let u=s[a];if(l.sameState(u)||l.buffer.length>500&&u.buffer.length>500)if((l.score-u.score||l.buffer.length-u.buffer.length)>0)s.splice(a--,1);else{s.splice(r--,1);continue e}}}s.length>12&&s.splice(12,s.length-12)}this.minStackPos=s[0].pos;for(let r=1;r<s.length;r++)s[r].pos<this.minStackPos&&(this.minStackPos=s[r].pos);return null}stopAt(e){if(this.stoppedAt!=null&&this.stoppedAt<e)throw new RangeError("Can't move stoppedAt forward");this.stoppedAt=e}advanceStack(e,t,s){let i=e.pos,{parser:o}=this,r=j?this.stackID(e)+" -> ":"";if(this.stoppedAt!=null&&i>this.stoppedAt)return e.forceReduce()?e:null;if(this.fragments){let u=e.curContext&&e.curContext.tracker.strict,c=u?e.curContext.hash:0;for(let h=this.fragments.nodeAt(i);h;){let d=this.parser.nodeSet.types[h.type.id]==h.type?o.getGoto(e.state,h.type.id):-1;if(d>-1&&h.length&&(!u||(h.prop(S.contextHash)||0)==c))return e.useNode(h,d),j&&console.log(r+this.stackID(e)+` (via reuse of ${o.getName(h.type.id)})`),!0;if(!(h instanceof Q)||h.children.length==0||h.positions[0]>0)break;let p=h.children[0];if(p instanceof Q&&h.positions[0]==0)h=p;else break}}let l=o.stateSlot(e.state,4);if(l>0)return e.reduce(l),j&&console.log(r+this.stackID(e)+` (via always-reduce ${o.getName(l&65535)})`),!0;if(e.stack.length>=15e3)for(;e.stack.length>9e3&&e.forceReduce(););let a=this.tokens.getActions(e);for(let u=0;u<a.length;){let c=a[u++],h=a[u++],d=a[u++],p=u==a.length||!s,f=p?e:e.split();if(f.apply(c,h,d),j&&console.log(r+this.stackID(f)+` (via ${c&65536?`reduce of ${o.getName(c&65535)}`:"shift"} for ${o.getName(h)} @ ${i}${f==e?"":", split"})`),p)return!0;f.pos>i?t.push(f):s.push(f)}return!1}advanceFully(e,t){let s=e.pos;for(;;){if(!this.advanceStack(e,null,null))return!1;if(e.pos>s)return Is(e,t),!0}}runRecovery(e,t,s){let i=null,o=!1;for(let r=0;r<e.length;r++){let l=e[r],a=t[r<<1],u=t[(r<<1)+1],c=j?this.stackID(l)+" -> ":"";if(l.deadEnd&&(o||(o=!0,l.restart(),j&&console.log(c+this.stackID(l)+" (restarted)"),this.advanceFully(l,s))))continue;let h=l.split(),d=c;for(let p=0;h.forceReduce()&&p<10&&(j&&console.log(d+this.stackID(h)+" (via force-reduce)"),!this.advanceFully(h,s));p++)j&&(d=this.stackID(h)+" -> ");for(let p of l.recoverByInsert(a))j&&console.log(c+this.stackID(p)+" (via recover-insert)"),this.advanceFully(p,s);this.stream.end>l.pos?(u==l.pos&&(u++,a=0),l.recoverByDelete(a,u),j&&console.log(c+this.stackID(l)+` (via recover-delete ${this.parser.getName(a)})`),Is(l,s)):(!i||i.score<l.score)&&(i=l)}return i}stackToTree(e){return e.close(),Q.build({buffer:Qe.create(e),nodeSet:this.parser.nodeSet,topID:this.topTerm,maxBufferLength:this.parser.bufferLength,reused:this.reused,start:this.ranges[0].from,length:e.pos-this.ranges[0].from,minRepeatType:this.parser.minRepeatTerm})}stackID(e){let t=(Mt||(Mt=new WeakMap)).get(e);return t||Mt.set(e,t=String.fromCodePoint(this.nextStackID++)),t+e}};function Is(n,e){for(let t=0;t<e.length;t++){let s=e[t];if(s.pos==n.pos&&s.sameState(n)){e[t].score<n.score&&(e[t]=n);return}}e.push(n)}var Xt=class{constructor(e,t,s){this.source=e,this.flags=t,this.disabled=s}allows(e){return!this.disabled||this.disabled[e]==0}};var ve=class extends kt{constructor(e){if(super(),this.wrappers=[],e.version!=14)throw new RangeError(`Parser version (${e.version}) doesn't match runtime version (14)`);let t=e.nodeNames.split(" ");this.minRepeatTerm=t.length;for(let l=0;l<e.repeatNodeCount;l++)t.push("");let s=Object.keys(e.topRules).map(l=>e.topRules[l][1]),i=[];for(let l=0;l<t.length;l++)i.push([]);function o(l,a,u){i[l].push([a,a.deserialize(String(u))])}if(e.nodeProps)for(let l of e.nodeProps){let a=l[0];typeof a=="string"&&(a=S[a]);for(let u=1;u<l.length;){let c=l[u++];if(c>=0)o(c,a,l[u++]);else{let h=l[u+-c];for(let d=-c;d>0;d--)o(l[u++],a,h);u++}}}this.nodeSet=new Re(t.map((l,a)=>U.define({name:a>=this.minRepeatTerm?void 0:l,id:a,props:i[a],top:s.indexOf(a)>-1,error:a==0,skipped:e.skippedNodes&&e.skippedNodes.indexOf(a)>-1}))),e.propSources&&(this.nodeSet=this.nodeSet.extend(...e.propSources)),this.strict=!1,this.bufferLength=1024;let r=nt(e.tokenData);this.context=e.context,this.specializerSpecs=e.specialized||[],this.specialized=new Uint16Array(this.specializerSpecs.length);for(let l=0;l<this.specializerSpecs.length;l++)this.specialized[l]=this.specializerSpecs[l].term;this.specializers=this.specializerSpecs.map(Bs),this.states=nt(e.states,Uint32Array),this.data=nt(e.stateData),this.goto=nt(e.goto),this.maxTerm=e.maxTerm,this.tokenizers=e.tokenizers.map(l=>typeof l=="number"?new Ce(r,l):l),this.topRules=e.topRules,this.dialects=e.dialects||{},this.dynamicPrecedences=e.dynamicPrecedences||null,this.tokenPrecTable=e.tokenPrec,this.termNames=e.termNames||null,this.maxNode=this.nodeSet.types.length-1,this.dialect=this.parseDialect(),this.top=this.topRules[Object.keys(this.topRules)[0]]}createParse(e,t,s){let i=new Ht(this,e,t,s);for(let o of this.wrappers)i=o(i,e,t,s);return i}getGoto(e,t,s=!1){let i=this.goto;if(t>=i[0])return-1;for(let o=i[t+1];;){let r=i[o++],l=r&1,a=i[o++];if(l&&s)return a;for(let u=o+(r>>1);o<u;o++)if(i[o]==e)return a;if(l)return-1}}hasAction(e,t){let s=this.data;for(let i=0;i<2;i++)for(let o=this.stateSlot(e,i?2:1),r;;o+=3){if((r=s[o])==65535)if(s[o+1]==1)r=s[o=ue(s,o+2)];else{if(s[o+1]==2)return ue(s,o+2);break}if(r==t||r==0)return ue(s,o+1)}return 0}stateSlot(e,t){return this.states[e*6+t]}stateFlag(e,t){return(this.stateSlot(e,0)&t)>0}validAction(e,t){if(t==this.stateSlot(e,4))return!0;for(let s=this.stateSlot(e,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=ue(this.data,s+2);else return!1;if(t==ue(this.data,s+1))return!0}}nextStates(e){let t=[];for(let s=this.stateSlot(e,1);;s+=3){if(this.data[s]==65535)if(this.data[s+1]==1)s=ue(this.data,s+2);else break;if(!(this.data[s+2]&1)){let i=this.data[s+1];t.some((o,r)=>r&1&&o==i)||t.push(this.data[s],i)}}return t}configure(e){let t=Object.assign(Object.create(ve.prototype),this);if(e.props&&(t.nodeSet=this.nodeSet.extend(...e.props)),e.top){let s=this.topRules[e.top];if(!s)throw new RangeError(`Invalid top rule name ${e.top}`);t.top=s}return e.tokenizers&&(t.tokenizers=this.tokenizers.map(s=>{let i=e.tokenizers.find(o=>o.from==s);return i?i.to:s})),e.specializers&&(t.specializers=this.specializers.slice(),t.specializerSpecs=this.specializerSpecs.map((s,i)=>{let o=e.specializers.find(l=>l.from==s.external);if(!o)return s;let r=Object.assign(Object.assign({},s),{external:o.to});return t.specializers[i]=Bs(r),r})),e.contextTracker&&(t.context=e.contextTracker),e.dialect&&(t.dialect=this.parseDialect(e.dialect)),e.strict!=null&&(t.strict=e.strict),e.wrap&&(t.wrappers=t.wrappers.concat(e.wrap)),e.bufferLength!=null&&(t.bufferLength=e.bufferLength),t}hasWrappers(){return this.wrappers.length>0}getName(e){return this.termNames?this.termNames[e]:String(e<=this.maxNode&&this.nodeSet.types[e].name||e)}get eofTerm(){return this.maxNode+1}get topNode(){return this.nodeSet.types[this.top[1]]}dynamicPrecedence(e){let t=this.dynamicPrecedences;return t==null?0:t[e]||0}parseDialect(e){let t=Object.keys(this.dialects),s=t.map(()=>!1);if(e)for(let o of e.split(" ")){let r=t.indexOf(o);r>=0&&(s[r]=!0)}let i=null;for(let o=0;o<t.length;o++)if(!s[o])for(let r=this.dialects[t[o]],l;(l=this.data[r++])!=65535;)(i||(i=new Uint8Array(this.maxTerm+1)))[l]=1;return new Xt(e,s,i)}static deserialize(e){return new ve(e)}};function ue(n,e){return n[e]|n[e+1]<<16}function Mn(n){let e=null;for(let t of n){let s=t.p.stoppedAt;(t.pos==t.p.stream.end||s!=null&&t.pos>s)&&t.p.parser.stateFlag(t.state,2)&&(!e||e.score<t.score)&&(e=t)}return e}function Bs(n){if(n.external){let e=n.extend?1:0;return(t,s)=>n.external(t,s)<<1|e}return n.get}var Ot=ve.deserialize({version:14,states:"&fOVQPOOO!SQPO'#C^OVQPO'#CcQ!pQPOOO#OQPO'#CkO#TQPO'#CrOOQO'#Cy'#CyO#YQPO,58}OVQPO,59QOVQPO,59QOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO#kQPO1G.lO$fQPO'#CmO%WQQO1G.qOOQO'#C{'#C{O%cQPO,59`OOQO'#Cn'#CnO%wQPO,59XOVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO&`QPO1G.zOOQO1G.z1G.zO&hQQO'#C^O&rQQO1G.sO'ZQQO1G.uOOQO1G.v1G.vO'fQPO<<GwO'wQPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(]QQO1G.lO(tQPOG22}OOQOLD(iLD(iO%wQPO,59QO%wQPO,59Q",stateData:")[~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXeQX~OjQXXQXpQXqQXrQXsQXtQXuQX~PnOZWO[WO]XO^XO~OWYO~OWZO~OX]OZWO[WO]XO^XO~OZWO[WO]Yi^YijYiXYipYiqYirYisYitYiuYieYi~OZWO[WO]XO^XOpdOqdOrdOsdOtdOudO~OehOvfOwgO~OXkOZWO[WO]XO^XOeiO~ORUOSUOTUOUUOWQO`SOnlO~OXsOeiO~OvQXwQX~PnOZxO[xO]yO^yOeaivaiwai~OwgOecivci~OZWO[WO]XO^XOetO~OZWO[WO]XO^XOXiaeia~OZxO[xO]Yi^YieYivYiwYi~OXwOZWO[WO]XO^XO~O`UTn~",goto:"#spPPqPPPPqPPqPPPPqP!R!W!R!RPq!Z!k!nPPP!tP#jmUOQWXYZefghitxyVbYfgRe`mTOQWXYZefghitxyR[TQjcRrjQROQVQS^WxQ_XU`YfgQcZQmeQphQqiQuyRvtQaYQnfRog",nodeNames:"\u26A0 ColumnDefinitionExpression Column Number String True False ParenthesizedExpression OpenBrace CloseBrace ArithmeticExpression Divide Times Plus Minus ConditionalExpression If RelationalExpression RelationalOperator AndCondition OrCondition Comma CallExpression Function ArgList",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:".^~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$jz{$o{|$t|}$y}!O%O!O!P%T!P!Q%c!Q![%h!^!_%s!_!`&Q!`!a&V!c!}&d#R#S&d#T#U&u#U#Y&d#Y#Z(Y#Z#]&d#]#^*j#^#c&d#c#d+f#d#h&d#h#i,b#i#o&d~#USl~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOu~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_OS~~$bP;=`<%l#m~$jOW~~$oOX~~$tO[~~$yO]~~%OOe~~%TO^~~%WP!Q![%Z~%`PR~!Q![%Z~%hOZ~~%mQR~!O!P%Z!Q![%h~%xPr~!_!`%{~&QOt~~&VOp~~&[Pq~!_!`&_~&dOs~P&iSnP!Q![&d!c!}&d#R#S&d#T#o&dR&zUnP!Q![&d!c!}&d#R#S&d#T#b&d#b#c'^#c#o&dR'cUnP!Q![&d!c!}&d#R#S&d#T#W&d#W#X'u#X#o&dR'|SvQnP!Q![&d!c!}&d#R#S&d#T#o&d~(_TnP!Q![&d!c!}&d#R#S&d#T#U(n#U#o&d~(sUnP!Q![&d!c!}&d#R#S&d#T#`&d#`#a)V#a#o&d~)[UnP!Q![&d!c!}&d#R#S&d#T#g&d#g#h)n#h#o&d~)sUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y*V#Y#o&d~*^SU~nP!Q![&d!c!}&d#R#S&d#T#o&d~*oUnP!Q![&d!c!}&d#R#S&d#T#Y&d#Y#Z+R#Z#o&d~+YS`~nP!Q![&d!c!}&d#R#S&d#T#o&dR+kUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g+}#g#o&dR,USwQnP!Q![&d!c!}&d#R#S&d#T#o&d~,gUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g,y#g#o&d~-OUnP!Q![&d!c!}&d#R#S&d#T#i&d#i#j-b#j#o&d~-gUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y-y#Y#o&d~.QST~nP!Q![&d!c!}&d#R#S&d#T#o&d",tokenizers:[0,1],topRules:{ColumnDefinitionExpression:[0,1]},tokenPrec:375});var $n=J.LRLanguage.define({name:"VuuColumnExpression",parser:Ot.configure({props:[(0,J.styleTags)({Function:J.tags.variableName,String:J.tags.string,Or:J.tags.emphasis,Operator:J.tags.operator})]})}),Vt=()=>new J.LanguageSupport($n);var Yt=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numberLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},Zt=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},rt,Ee,jt=class{constructor(e="unknown"){Y(this,rt,[{type:"unknown"},{type:"unknown"}]);Y(this,Ee,void 0);this.type="arithmeticExpression";xe(this,Ee,e)}get op(){return m(this,Ee)}set op(e){xe(this,Ee,e)}get expressions(){return m(this,rt)}toJSON(){return{type:this.type,op:m(this,Ee),expressions:m(this,rt)}}};rt=new WeakMap,Ee=new WeakMap;var Ue,Jt=class{constructor(e){Y(this,Ue,[]);this.type="callExpression";this.functionName=e}get expressions(){return m(this,Ue)}get arguments(){return m(this,Ue)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:m(this,Ue).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};Ue=new WeakMap;var ot,Ge,Me=class{constructor(){Y(this,ot,[{type:"unknown"},{type:"unknown"}]);Y(this,Ge,"unknown");this.type="relationalExpression"}get op(){return m(this,Ge)}set op(e){xe(this,Ge,e)}get expressions(){return m(this,ot)}toJSON(){return{type:this.type,op:m(this,Ge),expressions:m(this,ot)}}};ot=new WeakMap,Ge=new WeakMap;var lt,_e,$e=class{constructor(e){Y(this,lt,[{type:"unknown"},{type:"unknown"}]);Y(this,_e,void 0);this.type="booleanCondition";xe(this,_e,e)}get op(){return m(this,_e)}get expressions(){return m(this,lt)}toJSON(){return{type:this.type,op:m(this,_e),expressions:m(this,lt).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};lt=new WeakMap,_e=new WeakMap;var te,it=class{constructor(e){Y(this,te,void 0);this.type="conditionalExpression";xe(this,te,[e?new $e(e):new Me,{type:"unknown"},{type:"unknown"}])}get expressions(){return m(this,te)}get condition(){return m(this,te)[0]}get truthyExpression(){return m(this,te)[1]}set truthyExpression(e){m(this,te)[1]=e}get falsyExpression(){return m(this,te)[2]}set falsyExpression(e){m(this,te)[2]=e}toJSON(){var e,t,s,i,o;return{type:this.type,condition:(t=(e=this.condition).toJSON)==null?void 0:t.call(e),truthyExpression:this.truthyExpression,falsyExpression:(o=(i=(s=this.falsyExpression)==null?void 0:s.toJSON)==null?void 0:i.call(s))!=null?o:this.falsyExpression}}};te=new WeakMap;var ke=n=>n.type==="unknown",St=n=>n.type==="arithmeticExpression",Un=n=>n.type==="callExpression",ze=n=>n.type==="conditionalExpression",Gn=n=>n.type==="relationalExpression"||n.type==="booleanCondition";var _n=n=>n.type==="booleanCondition",Kt=n=>(n==null?void 0:n.type)==="relationalExpression";var _=n=>{if(ke(n))return n;if(Kt(n)){let[e,t]=n.expressions;if(z(e))return _(e);if(n.op==="unknown")return n;if(z(t))return _(t)}else if(Gn(n)){let{expressions:e=[]}=n;for(let t of e)if(z(t))return _(t)}else if(ze(n)){let{condition:e,truthyExpression:t,falsyExpression:s}=n;if(z(e))return _(e);if(z(t))return _(t);if(z(s))return _(s)}else if(St(n)){let{expressions:e=[]}=n;for(let t of e)if(z(t))return _(t)}},Pt=(n,e,t)=>{let{expressions:s=[]}=n;if(s.includes(e)){let i=s.indexOf(e);return s.splice(i,1,t),!0}else for(let i of s)if(Pt(i,e,t))return!0;return!1},z=n=>ke(n)?!0:ze(n)?z(n.condition)||z(n.truthyExpression)||z(n.falsyExpression):Kt(n)||_n(n)?n.op===void 0||n.expressions.some(e=>z(e)):!1,Ls=(n,e)=>{let t=_(n);t?t.expressions?t.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},b,Oe,qt=class{constructor(){Y(this,b,void 0);Y(this,Oe,[])}setCondition(e){if(m(this,b)===void 0)this.addExpression(new it(e));else if(ze(m(this,b))){if(z(m(this,b).condition)){let t=e?new $e(e):new Me;this.addExpression(t)}else if(ke(m(this,b).truthyExpression))m(this,b).truthyExpression=new it(e);else if(z(m(this,b).truthyExpression)){let t=e?new $e(e):new Me;this.addExpression(t)}else if(ke(m(this,b).falsyExpression))m(this,b).falsyExpression=new it(e);else if(z(m(this,b).falsyExpression)){let t=e?new $e(e):new Me;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(m(this,Oe).length>0){let t=m(this,Oe).at(-1);t==null||t.arguments.push(e)}else if(m(this,b)===void 0)xe(this,b,e);else if(St(m(this,b))){let t=_(m(this,b));t&&ke(t)&&Pt(m(this,b),t,e)}else if(ze(m(this,b))&&z(m(this,b))){let t=_(m(this,b));t&&ke(t)?Pt(m(this,b),t,e):t&&Ls(t,e)}}setFunction(e){let t=new Jt(e);this.addExpression(t),m(this,Oe).push(t)}setColumn(e){this.addExpression(new Zt(e))}setArithmeticOp(e){let t=e,s=m(this,b);St(s)&&(s.op=t)}setRelationalOperator(e){let t=e;if(m(this,b)&&ze(m(this,b))){let s=_(m(this,b));Kt(s)?s.op=t:console.error(`no target expression found (op = ${e})`)}}setValue(e){let t=new Yt(e);if(m(this,b)===void 0)xe(this,b,t);else if(St(m(this,b)))this.addExpression(t);else if(Un(m(this,b)))m(this,b).arguments.push(t);else if(ze(m(this,b)))if(z(m(this,b))){let s=_(m(this,b));s&&ke(s)?Pt(m(this,b),s,t):s&&Ls(s,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){m(this,Oe).pop()}get expression(){return m(this,b)}toJSON(){var e;return(e=m(this,b))==null?void 0:e.toJSON()}};b=new WeakMap,Oe=new WeakMap;var es=(n,e)=>{let t=new qt,s=n.cursor();do{let{name:i,from:o,to:r}=s;switch(i){case"AndCondition":t.setCondition("and");break;case"OrCondition":t.setCondition("or");break;case"RelationalExpression":t.setCondition();break;case"ArithmeticExpression":t.addExpression(new jt);break;case"Column":{let l=e.substring(o,r);t.setColumn(l)}break;case"Function":{let l=e.substring(o,r);t.setFunction(l)}break;case"Times":case"Divide":case"Plus":case"Minus":{let l=e.substring(o,r);t.setArithmeticOp(l)}break;case"RelationalOperator":{let l=e.substring(o,r);t.setRelationalOperator(l)}break;case"False":case"True":{let l=e.substring(o,r);t.setValue(l==="true")}break;case"String":t.setValue(e.substring(o+1,r-1));break;case"Number":t.setValue(parseFloat(e.substring(o,r)));break;case"CloseBrace":t.closeBrace();break;default:}}while(s.next());return t.toJSON()};var Wn=Ot.configure({strict:!0}),Qs=["Number","String"],wt=[...Qs,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],ts=n=>{try{return Wn.parse(n),!0}catch{return!1}},At=n=>{let{lastChild:e}=n;for(;e&&!wt.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},ss=n=>{if((n==null?void 0:n.name)==="RelationalExpression"){let{firstChild:e}=n,t=At(n);if((e==null?void 0:e.name)==="Column"&&typeof(t==null?void 0:t.name)=="string"&&Qs.includes(t.name))return!0}return!1};var Se=require("@vuu-ui/vuu-codemirror"),Hn=Se.HighlightStyle.define([{tag:Se.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Se.tags.comment,color:"green",fontStyle:"italic"}]),zs=(0,Se.syntaxHighlighting)(Hn);var Ms=require("@vuu-ui/vuu-codemirror"),$s=Ms.EditorView.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.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":{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-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var B=require("@vuu-ui/vuu-codemirror"),rs=require("react");var Xn=(n,e)=>e?n.map(t=>{var s;return{...t,apply:typeof t.apply=="function"?t.apply:`${e}${(s=t.apply)!=null?s:t.label}`}}):n,Vn=n=>n===void 0?!1:["Times","Divide","Plus","Minus"].includes(n.name),We=(n,e)=>{var i;let{lastChild:t}=n,{pos:s}=e;for(;t;)if(t.from<s&&wt.includes(t.name)){if(t.name==="ParenthesizedExpression"){let r=(i=t.firstChild)==null?void 0:i.nextSibling;r&&(t=r)}return t}else t=t.prevSibling},Us=(n,e)=>{var t;if(n.name==="ArgList"){let s=n.prevSibling;if(s)return(0,B.getValue)(s,e)}else if(n.name==="OpenBrace"){let s=(t=n.parent)==null?void 0:t.prevSibling;if((s==null?void 0:s.name)==="Function")return(0,B.getValue)(s,e)}},Gs=(n,e)=>{if(n.name==="RelationalExpression"){let t=At(n);if((t==null?void 0:t.name)==="RelationalOperator")return(0,B.getValue)(t,e)}else{let t=n.prevSibling;if((t==null?void 0:t.name)==="RelationalOperator")return(0,B.getValue)(t,e)}},os=(n,e)=>{var t;if(n.name==="RelationalExpression"){if(((t=n.firstChild)==null?void 0:t.name)==="Column")return(0,B.getValue)(n.firstChild,e)}else{let s=n.prevSibling;if((s==null?void 0:s.name)==="Column")return(0,B.getValue)(s,e);if((s==null?void 0:s.name)==="RelationalOperator")return os(s,e)}},ns=async(n,e,t,s={})=>{let i=await e.getSuggestions(t,s),{startsWith:o=""}=s;return{from:n.pos-o.length,options:i}},is=(n,e,t,s,i)=>{let o=We(n,e);switch(console.log(`conditional expression last child ${o==null?void 0:o.name}`),o==null?void 0:o.name){case"If":return ns(e,t,"expression",{prefix:"( "});case"OpenBrace":return ns(e,t,"expression");case"Condition":return ns(e,t,"expression",{prefix:", "});case"CloseBrace":if(s){let r=[{apply:()=>{i==null||i()},label:"Save Expression",boost:10}];return{from:e.pos,options:r}}}},Yn=(n,e)=>{let t=[{apply:()=>{e==null||e()},label:"Save Expression",boost:10}];return{from:n.pos,options:t}},_s=(n,e)=>{let t=(0,rs.useCallback)(async(s,i,o={})=>{let r=await n.getSuggestions(i,o),{startsWith:l=""}=o;return{from:s.pos-l.length,options:r}},[n]);return(0,rs.useCallback)(async s=>{var h,d;let{state:i,pos:o}=s,r=(h=s.matchBefore(/\w*/))!=null?h:{from:0,to:0,text:void 0},a=(0,B.syntaxTree)(i).resolveInner(o,-1),u=i.doc.toString(),c=ts(u);switch(console.log({nodeBeforeName:a.name}),a.name){case"If":return console.log("conditional expression If"),t(s,"expression",{prefix:"( "});case"Condition":{let p=We(a,s);if((p==null?void 0:p.name)==="Column"){let f=(0,B.getPreviousNode)(p);if((f==null?void 0:f.name)!=="RelationalOperator")return t(s,"condition-operator",{columnName:(0,B.getValue)(p,i)});console.log(`Condition last child Column, prev child ${f==null?void 0:f.name}`)}else if((p==null?void 0:p.name)==="RelationalOperator")return t(s,"expression");console.log(`condition last child ${p==null?void 0:p.name}`)}break;case"ConditionalExpression":return is(a,s,n);case"RelationalExpression":{if(ss(a))return{from:s.pos,options:B.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let p=Gs(a,i),f=os(a,i);if(p)return t(s,"expression");{let x=await n.getSuggestions("condition-operator",{columnName:f});return{from:s.pos,options:x}}}}break;case"RelationalOperator":return t(s,"expression");case"String":{let p=Gs(a,i),f=os(a,i),{from:x,to:g}=a;if(g-x===2&&s.pos===x+1){if(f&&p)return t(s,"columnValue",{columnName:f,operator:p,startsWith:r.text})}else if(g-x>2&&s.pos===g)return t(s,"expression",{prefix:", "});console.log(`we have a string, column is ${f} ${x} ${g}`)}break;case"ArithmeticExpression":{let p=We(a,s);if((p==null?void 0:p.name)==="Column")return t(s,"expression");if(Vn(p)){let f=p.name;return t(s,"column",{operator:f})}}break;case"OpenBrace":{let p=Us(a,i);return t(s,"expression",{functionName:p})}break;case"ArgList":{let p=Us(a,i),f=We(a,s),x=(f==null?void 0:f.name)==="OpenBrace"?void 0:",",g=await n.getSuggestions("expression",{functionName:p});return g=x?Xn(g,", "):g,(f==null?void 0:f.name)!=="OpenBrace"&&(f==null?void 0:f.name)!=="Comma"&&(g=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(g)),{from:s.pos,options:g}}case"Equal":if(u.trim()==="=")return t(s,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(s.pos===0)return t(s,"expression");{let p=We(a,s);if((p==null?void 0:p.name)==="Column"){if(c){let f=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],x=(0,B.getValue)(p,i),g=await n.getSuggestions("operator",{columnName:x});return{from:s.pos,options:f.concat(g)}}}else if((p==null?void 0:p.name)==="CallExpression"){if(c){let f=[{apply:()=>{e.current()},label:"Save Expression",boost:10}];return{from:s.pos,options:f}}}else if((p==null?void 0:p.name)==="ArithmeticExpression"){if(c){let f=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],x=We(p,s);if((x==null?void 0:x.name)==="Column"){let g=(0,B.getValue)(x,i),w=await n.getSuggestions("operator",{columnName:g});f=f.concat(w)}return{from:s.pos,options:f}}}else if((p==null?void 0:p.name)==="ConditionalExpression")return is(p,s,n,c,e.current);break}case"Column":if(await n.isPartialMatch("expression",void 0,r.text))return t(s,"expression",{startsWith:r.text});break;case"Comma":{let p=(0,B.getNamedParentNode)(a);if((p==null?void 0:p.name)==="ConditionalExpression")return t(s,"expression")}break;case"CloseBrace":{let p=(0,B.getNamedParentNode)(a);if((p==null?void 0:p.name)==="ConditionalExpression")return is(p,s,n,c,e.current);if((p==null?void 0:p.name)==="ArgList"&&c)return Yn(s,e.current);console.log(`does closebrace denote an ARgList or a parenthetised expression ? ${p}`)}break;default:((d=a==null?void 0:a.prevSibling)==null?void 0:d.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[t,e,n])};var at=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Zn=()=>"vuuSuggestion",jn=()=>console.log("noooop"),Jn=n=>"expressionType"in n,qn=n=>{if(Jn(n)){let e=(0,ls.createEl)("div","expression-type-container"),t=(0,ls.createEl)("span","expression-type",n.expressionType);return e.appendChild(t),e}else return null},as=({onChange:n,onSubmitExpression:e,suggestionProvider:t})=>{let s=(0,be.useRef)(null),i=(0,be.useRef)(jn),o=(0,be.useRef)(),r=_s(t,i),[l,a]=(0,be.useMemo)(()=>{let u=()=>{let x=at(o),g=x.state.doc.toString(),w=(0,I.ensureSyntaxTree)(x.state,x.state.doc.length,5e3);if(w){let R=es(w,g);return[g,R]}else return["",void 0]},c=()=>{at(o).setState(f())},h=()=>{let[x,g]=u();e==null||e(x,g),c()},d=x=>I.keymap.of([{key:x,run(){return h(),!0}}]),p=x=>I.keymap.of([{key:x,run(){return(0,I.startCompletion)(at(o)),!0}}]),f=()=>I.EditorState.create({doc:"",extensions:[I.minimalSetup,(0,I.autocompletion)({addToOptions:[{render:qn,position:70}],override:[r],optionClass:Zn}),Vt(),I.keymap.of(I.defaultKeymap),d("Ctrl-Enter"),p("ArrowDown"),I.EditorView.updateListener.of(x=>{let g=at(o);if(x.docChanged){(0,I.startCompletion)(g);let w=g.state.doc.toString();n==null||n(w,void 0)}}),$s,zs]});return i.current=()=>{h(),setTimeout(()=>{at(o).focus()},100)},[f,c]},[r,n,e]);return(0,be.useEffect)(()=>{if(!s.current)throw Error("editor not in dom");return o.current=new I.EditorView({state:l(),parent:s.current}),()=>{var u;(u=o.current)==null||u.destroy()}},[r,l]),{editorRef:s,clearInput:a}};var Ws=require("react/jsx-runtime"),Kn="vuuColumnExpressionInput",us=({onChange:n,onSubmitExpression:e,suggestionProvider:t})=>{let{editorRef:s}=as({onChange:n,onSubmitExpression:e,suggestionProvider:t});return(0,Ws.jsx)("div",{className:`${Kn}`,ref:s})};var ne=require("@vuu-ui/vuu-codemirror"),Tt=require("@vuu-ui/vuu-data"),Ve=require("@vuu-ui/vuu-utils"),Xe=require("react");var He=[{accepts:"string",description:"Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.",example:{expression:'concatenate("example", "-test")',result:'"example-test"'},name:"concatenate",params:{description:"( string, string, [ string* ] )"},type:"string"},{accepts:["string","string"],description:"Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>",example:{expression:'contains("Royal Bank of Scotland", "bank")',result:"true"},name:"contains",params:{description:"( string )"},type:"boolean"},{accepts:["string","number"],description:"Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:'left("USD Benchmark Report", 3)',result:'"USD"'},name:"left",params:{count:2,description:"( string, number )"},type:"string"},{accepts:"string",description:"Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.",example:{expression:'len("example")',result:"7"},name:"len",params:{description:"(string)"},type:"number"},{accepts:"string",description:"Convert a string value to lowercase. Argument may be a string column or other string expression.",example:{expression:'lower("examPLE")',result:'"example"'},name:"lower",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Convert a string value to uppercase. Argument may be a string column or other string expression.",example:{expression:'upper("example")',result:'"EXAMPLE"'},name:"upper",params:{description:"( string )"},type:"string"},{accepts:["string","number"],description:"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:"blah",result:"blah"},name:"right",params:{description:"( string )"},type:"string"},{accepts:["string","string","string"],description:"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",example:{expression:"blah",result:"blah"},name:"replace",params:{description:"( string )"},type:"string"},{accepts:"number",description:"Converts a number to a string.",example:{expression:"blah",result:"blah"},name:"text",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",example:{expression:"blah",result:"blah"},name:"starts",params:{description:"( string )"},type:"boolean"},{accepts:"string",description:"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",example:{expression:"blah",result:"blah"},name:"ends",params:{description:"( string )"},type:"boolean"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"min",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"max",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"sum",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"round",params:{description:"( string )"},type:"number"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"or",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"and",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",example:{expression:"blah",result:"blah"},name:"if",params:{description:"( filterExpression, expression1, expression 2)"},type:"variable"}];var se=require("@vuu-ui/vuu-utils"),Hs=({name:n,description:e,example:t,params:s,type:i})=>{let o=(0,se.createEl)("div","vuuFunctionDoc"),r=(0,se.createEl)("div","function-heading"),l=(0,se.createEl)("span","function-name",n),a=(0,se.createEl)("span","param-list",s.description),u=(0,se.createEl)("span","function-type",i);r.appendChild(l),r.appendChild(a),r.appendChild(u);let c=(0,se.createEl)("p",void 0,e);if(o.appendChild(r),o.appendChild(c),t){let h=(0,se.createEl)("div","example-container","Example:"),d=(0,se.createEl)("div","example-expression",t.expression),p=(0,se.createEl)("div","example-result",t.result);h.appendChild(d),h.appendChild(p),o.appendChild(h)}return o};var ei=[],Pe=n=>n.map(e=>{var t;return{...e,apply:((t=e.apply)!=null?t:e.label)+" "}}),ti=(n,{functionName:e,operator:t})=>{if(t)return n.filter(Ve.isNumericColumn);if(e){let s=He.find(i=>i.name===e);if(s)switch(s.accepts){case"string":return n.filter(Ve.isTextColumn);case"number":return n.filter(Ve.isNumericColumn);default:return n}}return n},Xs=(n,e)=>ti(n,e).map(s=>{var o;let i=(o=s.label)!=null?o:s.name;return{apply:e.prefix?`${e.prefix}${i}`:i,label:i,boost:5,type:"column",expressionType:s.serverDataType}}),si=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],ni=n=>n===void 0||(0,Ve.isNumericColumn)(n)?si:ei,ii=n=>{switch(n.serverDataType){case"string":case"char":return Pe(ne.stringOperators);case"int":case"long":case"double":return Pe(ne.numericOperators)}},ps=n=>({apply:`${n.name}( `,boost:2,expressionType:n.type,info:()=>Hs(n),label:n.name,type:"function"}),ri=n=>{if(n){if(typeof n.accepts=="string")return n.accepts;if(Array.isArray(n.accepts))return n.accepts.every(e=>e==="string")?"string":"any"}return"any"},oi=He.map(ps),li=({functionName:n})=>{if(n){let e=He.find(s=>s.name===n),t=ri(e);if(e)switch(t){case"string":return He.filter(s=>s.type==="string"||s.type==="variable").map(ps);case"number":return He.filter(s=>s.type==="number"||s.type==="variable").map(ps);default:}}return oi},ai={},hs=({columns:n,table:e})=>{let t=(0,Xe.useCallback)(l=>l?n.find(a=>a.name===l):void 0,[n]),s=(0,Xe.useRef)(),i=(0,Tt.useTypeaheadSuggestions)(),o=(0,Xe.useCallback)(async(l,a=ai)=>{let{columnName:u,functionName:c,operator:h,prefix:d}=a;switch(l){case"expression":{let p=await Pe(Xs(n,{functionName:c,prefix:d})).concat(li(a));return s.current=p}case"column":{let p=await Xs(n,a);return s.current=Pe(p)}case"operator":{let p=await ni(t(u));return s.current=Pe(p)}case"relational-operator":{let p=await(0,ne.getRelationalOperators)(t(u));return s.current=Pe(p)}case"condition-operator":{let p=t(u);if(p){let f=await ii(p);if(f)return s.current=Pe(f)}}break;case"columnValue":if(u&&h){let p=(0,Tt.getTypeaheadParams)(e,u),f=await i(p);return s.current=(0,ne.toSuggestions)(f,{suffix:""}),s.current.forEach(x=>{x.apply=(g,w,R)=>{let D=new ne.AnnotationType,k=R+w.label.length+1;g.dispatch({changes:{from:R,insert:w.label},selection:{anchor:k,head:k},annotations:D.of(w)})}}),s.current}break}return[]},[n,t,i,e]),r=(0,Xe.useCallback)(async(l,a,u)=>{let{current:c}=s,h=!1,d=c||await o(l,{columnName:a});if(u&&d)for(let p of d){if(p.label===u)return!1;p.label.startsWith(u)&&(h=!0)}return h},[o]);return{getSuggestions:o,isPartialMatch:r}};var qe=require("@salt-ds/core"),Cn=De(require("classnames"),1),fe=require("react");var cs=require("@heswell/salt-lab"),q=require("@salt-ds/core"),ie=require("react");var Vs=require("@heswell/salt-lab"),Ys=De(require("classnames"),1);var Ze=require("react/jsx-runtime"),Ye="vuuColumnListItem",Zs=({className:n,item:e,label:t,style:s,...i})=>{let o=(0,Ys.default)(Ye,n,{[`${Ye}-calculated`]:e==null?void 0:e.expression,[`${Ye}-hidden`]:e==null?void 0:e.hidden});return(0,Ze.jsxs)(Vs.ListItem,{className:o,...i,children:[(0,Ze.jsx)("span",{className:`${Ye}-iconType`}),(0,Ze.jsx)("label",{className:`${Ye}-label`,children:t}),(0,Ze.jsx)("span",{className:`${Ye}-iconHidden`})]})};var A=require("react/jsx-runtime"),je="vuuColumnPicker",ui=(n,e)=>n.filter(t=>e.find(s=>s.name===t.name)==null),js=({availableColumns:n,id:e,dispatchColumnAction:t,onAddCalculatedColumnClick:s,onSelectionChange:i,chosenColumns:o,selectedColumn:r})=>{let[l,a]=(0,ie.useState)([]),u=(0,q.useIdMemo)(e),c=ui(n,o),h=(0,ie.useCallback)(()=>{l.length>0&&(a([]),t({type:"addColumn",columns:l}))},[t,l]),d=(0,ie.useCallback)(()=>r&&t({type:"removeColumn",column:r}),[r,t]),p=(0,ie.useCallback)(()=>r&&t({type:"moveColumn",column:r,moveBy:-1}),[t,r]),f=(0,ie.useCallback)(()=>r&&t({type:"moveColumn",column:r,moveBy:1}),[t,r]),x=(0,ie.useCallback)((R,D)=>a(D),[]),g=(0,ie.useCallback)((R,D)=>i==null?void 0:i(D),[i]),w=(0,ie.useCallback)((R,D)=>{t({type:"moveColumn",moveFrom:R,moveTo:D})},[t]);return(0,A.jsxs)("div",{className:je,id:u,children:[(0,A.jsxs)("div",{className:`${je}-listColumn`,children:[(0,A.jsx)("label",{htmlFor:`available-${u}`,children:(0,A.jsx)(q.Text,{as:"h4",children:"Available Columns"})}),(0,A.jsx)("div",{className:`${je}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,A.jsx)(cs.List,{borderless:!0,checkable:!1,height:"100%",id:`available-${u}`,itemHeight:24,itemToString:R=>R.name,onSelectionChange:x,selected:l,selectionStrategy:"extended",source:c})}),(0,A.jsx)("div",{style:{display:"flex",alignItems:"center",flex:"0 0 32px",marginTop:"var(--salt-size-basis-unit)"},children:(0,A.jsxs)(q.Button,{onClick:h,disabled:l.length===0,children:["Show",(0,A.jsx)("span",{"data-icon":"arrow-thin-right",style:{marginLeft:8}})]})})]}),(0,A.jsxs)("div",{className:`${je}-listColumn`,children:[(0,A.jsx)("label",{htmlFor:`selected-${u}`,children:(0,A.jsx)(q.Text,{as:"h4",children:"Included Columns"})}),(0,A.jsx)("div",{className:`${je}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,A.jsx)(cs.List,{ListItem:Zs,allowDragDrop:!0,borderless:!0,height:"100%",id:`selected-${u}`,itemHeight:24,itemToString:R=>R.name,onMoveListItem:w,onSelectionChange:g,selected:r,style:{flex:1},source:o})}),(0,A.jsxs)("div",{style:{alignItems:"center",flex:"0 0 32px",display:"flex",gap:6,marginTop:"var(--salt-size-basis-unit)"},children:[(0,A.jsxs)(q.Button,{onClick:d,disabled:r===null,children:[(0,A.jsx)("span",{"data-icon":"arrow-thin-left",style:{marginRight:8}}),"Hide"]}),(0,A.jsx)(q.Button,{"aria-label":"Move column up",onClick:p,disabled:r===null||(o==null?void 0:o.indexOf(r))===0,style:{width:28},children:(0,A.jsx)("span",{"data-icon":"arrow-thin-up"})}),(0,A.jsx)(q.Button,{"aria-label":"Move column down",onClick:f,disabled:r===null||o.indexOf(r)===o.length-1,style:{width:28},children:(0,A.jsx)("span",{"data-icon":"arrow-thin-down"})}),(0,A.jsx)(q.Button,{"aria-label":"Add calculated column",className:`${je}-addCalculatedColumn`,onClick:s,variant:"primary",children:(0,A.jsx)("span",{"data-icon":"add"})})]})]})]})};var un=require("@vuu-ui/vuu-layout"),T=require("@heswell/salt-lab"),pt=require("@salt-ds/core"),pn=De(require("classnames"),1),he=require("react");var tn=require("@vuu-ui/vuu-utils"),sn=require("@heswell/salt-lab"),nn=require("@salt-ds/core"),ds=De(require("classnames"),1),rn=require("react");var we=require("@heswell/salt-lab"),Js=require("@salt-ds/core"),ut=require("react");var W=require("react/jsx-runtime"),pi={alignOnDecimals:!1,decimals:4,zeroPad:!1},hi=(n,e)=>{let t=typeof n=="object"&&n.formatting?n.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((i,o)=>t[o]!==void 0?{...i,[o]:t[o]}:(e==null?void 0:e[o])!==void 0?{...i,[o]:e[o]}:i,pi)},qs=({column:n,dispatchColumnAction:e})=>{let{decimals:t,alignOnDecimals:s,zeroPad:i}=hi(n==null?void 0:n.type),o=(0,ut.useCallback)(u=>e({type:"updateColumnTypeFormatting",column:n,...u}),[n,e]),r=(0,ut.useCallback)(u=>o({decimals:parseInt(u.toString(),10)}),[o]),l=(0,ut.useCallback)((u,c)=>o({alignOnDecimals:c}),[o]),a=(0,ut.useCallback)((u,c)=>o({zeroPad:c}),[o]);switch(n.serverDataType){case"double":return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(we.FormField,{label:"No of Decimals",labelPlacement:"top",children:(0,W.jsx)(we.StepperInput,{value:t,onChange:r})}),(0,W.jsx)(we.Switch,{checked:s,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l}),(0,W.jsx)(we.Switch,{checked:i,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:a})]});case"long":case"int":return(0,W.jsx)(W.Fragment,{children:(0,W.jsx)(Js.Text,{children:"Work in progress"})});default:return null}};var Dt=require("react/jsx-runtime"),Ks=({column:n,dispatchColumnAction:e})=>(0,Dt.jsx)(Dt.Fragment,{children:"String"});var pe=require("react/jsx-runtime"),fs="vuuColumnTypePanel",ci=["Default Renderer (int, long)"],fi=["Default Renderer (double)"],en=["Default Renderer (string)"],di=n=>{let t=(0,tn.getRegisteredCellRenderers)(n.serverDataType).map(s=>s.name);switch(console.log({customRendererNames:t}),n.serverDataType){case"char":case"string":return en;case"int":case"long":return ci;case"double":return fi.concat(t);default:return en}},on=({className:n,column:e,dispatchColumnAction:t,...s})=>{let i=(0,rn.useMemo)(()=>{switch(e.serverDataType){case"double":case"int":case"long":return(0,pe.jsx)(qs,{column:e,dispatchColumnAction:t});default:return(0,pe.jsx)(Ks,{column:e,dispatchColumnAction:t})}},[e,t]),{serverDataType:o="string"}=e,r=di(e);return(0,pe.jsxs)(pe.Fragment,{children:[(0,pe.jsx)(sn.Dropdown,{className:(0,ds.default)(`${fs}-renderer`),fullWidth:!0,selected:r[0],source:r}),(0,pe.jsx)(nn.Panel,{...s,className:(0,ds.default)(fs,n,`${fs}-${o}`),children:i})]})};var P=require("react/jsx-runtime"),ln="vuuColumnSettingsPanel",mi={className:"salt-density-high"},an=()=>null,hn=({column:n,dispatchColumnAction:e,style:t,...s})=>{var d,p,f,x;let[i,o]=(0,he.useState)(0),r=(0,he.useCallback)(g=>e({type:"updateColumnProp",column:n,...g}),[n,e]),l=(0,he.useCallback)(g=>r({align:g.target.value}),[r]),a=(0,he.useCallback)(g=>r({pin:g.target.value}),[r]),u=(0,he.useCallback)((g,w)=>r({hidden:w}),[r]),c=(0,he.useCallback)((g,w)=>r({label:w}),[r]),h=(0,he.useCallback)(g=>r({width:parseInt(g.toString(),10)}),[r]);return(0,P.jsxs)("div",{className:ln,...s,style:{...t},children:[(0,P.jsx)(pt.Text,{as:"h4",children:"Column Settings"}),(0,P.jsxs)(un.Stack,{active:i,showTabs:!0,className:(0,pn.default)(`${ln}-columnTabs`),onTabSelectionChanged:o,TabstripProps:mi,children:[(0,P.jsxs)(pt.Panel,{title:"Column",children:[(0,P.jsx)(T.FormField,{label:"Hidden",labelPlacement:"left",children:(0,P.jsx)(T.Checkbox,{checked:n.hidden===!0,onChange:u})}),(0,P.jsx)(T.FormField,{label:"Label",labelPlacement:"left",children:(0,P.jsx)(T.Input,{value:(d=n.label)!=null?d:n.name,onChange:c})}),(0,P.jsx)(T.FormField,{label:"Width",labelPlacement:"left",children:(0,P.jsx)(T.StepperInput,{value:(p=n.width)!=null?p:100,onChange:h})}),(0,P.jsx)(T.FormField,{label:"Align",labelPlacement:"left",ActivationIndicatorComponent:an,children:(0,P.jsxs)(T.RadioButtonGroup,{"aria-label":"Column Align",value:(f=n.align)!=null?f:"left",legend:"Align",onChange:l,children:[(0,P.jsx)(T.RadioButton,{label:"Left",value:"left"}),(0,P.jsx)(T.RadioButton,{label:"Right",value:"right"})]})}),(0,P.jsx)(T.FormField,{label:"Pin Column",labelPlacement:"left",ActivationIndicatorComponent:an,children:(0,P.jsxs)(T.RadioButtonGroup,{"aria-label":"Pin Column",value:(x=n.pin)!=null?x:"",legend:"Pin Column",onChange:a,children:[(0,P.jsx)(T.RadioButton,{label:"Do not pin",value:""}),(0,P.jsx)(T.RadioButton,{label:"Left",value:"left"}),(0,P.jsx)(T.RadioButton,{label:"Right",value:"right"})]})})]}),(0,P.jsx)(on,{column:n,dispatchColumnAction:e,title:"Data Cell"}),(0,P.jsxs)(pt.Panel,{title:"Vuu",variant:"secondary",children:[(0,P.jsx)(T.FormField,{label:"Name",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,P.jsx)(T.Input,{value:n.name})}),(0,P.jsx)(T.FormField,{label:"Vuu type",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,P.jsx)(T.Input,{value:n.serverDataType})})]})]})]})};var K=require("@heswell/salt-lab"),Rt=require("@salt-ds/core"),Nt=require("react");var H=require("react/jsx-runtime"),gi="vuuGridSettingsPanel",xi=()=>null,cn=({config:n,dispatchColumnAction:e,style:t,...s})=>{var l;let i=(0,Nt.useCallback)(a=>e({type:"updateGridSettings",...a}),[e]),o=(0,Nt.useCallback)(a=>i({columnFormatHeader:a.target.value}),[i]),r=(0,Nt.useCallback)(a=>i({columnDefaultWidth:parseInt(a.toString(),10)}),[i]);return console.log(`GridSettingsPanel ${JSON.stringify(n.columns,null,2)}`),(0,H.jsxs)("div",{className:gi,...s,style:{...t},children:[(0,H.jsx)(Rt.Text,{as:"h4",children:"Grid Settings"}),(0,H.jsxs)(Rt.Panel,{children:[(0,H.jsx)(K.FormField,{label:"Format column labels",labelPlacement:"left",ActivationIndicatorComponent:xi,children:(0,H.jsxs)(K.RadioButtonGroup,{"aria-label":"Format column labels",value:n.columnFormatHeader,legend:"Format column labels",onChange:o,children:[(0,H.jsx)(K.RadioButton,{label:"No Formatting",value:void 0}),(0,H.jsx)(K.RadioButton,{label:"Capitalize",value:"capitalize"}),(0,H.jsx)(K.RadioButton,{label:"Uppercase",value:"uppercase"})]})}),(0,H.jsx)(K.FormField,{label:"Default Column Width",labelPlacement:"left",children:(0,H.jsx)(K.StepperInput,{value:(l=n.columnDefaultWidth)!=null?l:100,onChange:r})})]})]})};var fn=require("react"),dn=require("@heswell/salt-lab"),mn=require("@vuu-ui/vuu-utils"),Ci=(n,e)=>{switch(console.log(`gridSettingsReducer ${e.type}`),e.type){case"addColumn":return bi(n,e);case"addCalculatedColumn":return yi(n,e);case"moveColumn":return ki(n,e);case"removeColumn":return vi(n,e);case"updateColumn":return n;case"updateColumnProp":return Ei(n,e);case"updateGridSettings":return Oi(n,e);case"updateColumnTypeFormatting":return Si(n,e);default:return n}},gn=n=>{let[e,t]=(0,fn.useReducer)(Ci,n);return{gridSettings:e,dispatchColumnAction:t}};function bi(n,{column:e,columns:t,index:s=-1}){let{columns:i}=n;if(s===-1){if(Array.isArray(t))return{...n,columns:i.concat(t)};if(e)return{...n,columns:i.concat(e)}}return n}function yi(n,{columnName:e,columnType:t,expression:s}){let{columns:i}=n,o={name:e,expression:s,serverDataType:t};return{...n,columns:i.concat(o)}}function vi(n,{column:e}){let{columns:t}=n;return{...n,columns:t.filter(s=>s.name!==e.name)}}function ki(n,{column:e,moveBy:t,moveFrom:s,moveTo:i}){let{columns:o}=n;if(e&&typeof t=="number"){let r=o.indexOf(e),l=o.slice(),[a]=l.splice(r,1);return l.splice(r+t,0,a),{...n,columns:l}}else return typeof s=="number"&&typeof i=="number"?{...n,columns:(0,dn.moveItem)(o,s,i)}:n}function Ei(n,{align:e,column:t,hidden:s,label:i,width:o}){let{columns:r}=n;return(e==="left"||e==="right")&&(r=ht(r,{...t,align:e})),typeof s=="boolean"&&(r=ht(r,{...t,hidden:s})),typeof i=="string"&&(r=ht(r,{...t,label:i})),typeof o=="number"&&(r=ht(r,{...t,width:o})),{...n,columns:r}}function Oi(n,{columnFormatHeader:e}){return{...n,columnFormatHeader:e!=null?e:n.columnFormatHeader}}function Si(n,{alignOnDecimals:e,column:t,decimals:s,zeroPad:i}){let{columns:o}=n;if(o.find(l=>l.name===t.name)){let{serverDataType:l="string",type:a=(0,mn.fromServerDataType)(l)}=t,u=typeof a=="string"?{name:a}:{...a};return typeof e=="boolean"&&(u.formatting={...u.formatting,alignOnDecimals:e}),typeof s=="number"&&(u.formatting={...u.formatting,decimals:s}),typeof i=="boolean"&&(u.formatting={...u.formatting,zeroPad:i}),{...n,columns:ht(o,{...t,type:u})}}else return n}function ht(n,e){return n.map(t=>t.name===e.name?e:t)}var bn=require("@vuu-ui/vuu-layout");var It=require("@heswell/salt-lab"),Je=require("@salt-ds/core"),re=require("react");var ce=require("react/jsx-runtime"),xn=({columns:n,dispatchColumnAction:e,table:t})=>{let[s,i]=(0,re.useState)(""),[,o]=(0,re.useState)(),r=(0,re.useRef)(""),l=hs({columns:n,table:t}),a=(0,re.useCallback)(d=>{let{value:p}=d.target;i(p)},[]),u=(0,re.useCallback)(d=>{r.current=d},[]),c=(0,re.useCallback)((d,p)=>{console.log({source:d}),o(p)},[]),h=(0,re.useCallback)(()=>{r.current&&(console.log(`save expression ${JSON.stringify(r.current,null,2)}`),e({type:"addCalculatedColumn",columnName:s,expression:r.current,columnType:"string"}))},[s,e]);return(0,ce.jsxs)(Je.Panel,{className:"vuuCalculatedColumnPanel",title:"Define Computed Column",children:[(0,ce.jsx)(Je.Text,{styleAs:"h4",children:"Define Computed Column"}),(0,ce.jsx)(It.FormField,{label:"Column Name",labelPlacement:"left",children:(0,ce.jsx)(It.Input,{value:s,onChange:a})}),(0,ce.jsx)(us,{onChange:u,onSubmitExpression:c,suggestionProvider:l}),(0,ce.jsx)("div",{style:{marginTop:12},children:(0,ce.jsx)(Je.Button,{onClick:h,children:"Add Column"})})]})};var M=require("react/jsx-runtime"),Bt="vuuDatagridSettingsPanel",Pi=()=>{},wi=["table-settings","column-chooser","column-settings","define-column"],Ai=(n,e)=>wi[e],Ti=({availableColumns:n,className:e,gridConfig:t,onCancel:s,onConfigChange:i,...o})=>{var k;console.log("DatagridSettingsPanel render");let[r,l]=(0,fe.useState)(0),{gridSettings:a,dispatchColumnAction:u}=gn(t),[c,h]=(0,fe.useState)(null),d=(0,fe.useCallback)(y=>{h(y?y.name:null)},[]),p=(0,fe.useCallback)((y,C=!1)=>{console.log("1) DataGridSettingsPanel fire onConfigChange"),i==null||i(a,C)},[a,i]),f=(0,fe.useCallback)(y=>{l(y)},[]),x=(0,fe.useCallback)(y=>p(y,!0),[p]),g=c===null?null:(k=a.columns.find(y=>y.name===c))!=null?k:null,w={activeTabIndex:r,enableRenameTab:!1,orientation:"vertical"},R=(0,fe.useCallback)(()=>l(3),[]),D=r===2?"right":void 0;return(0,M.jsxs)("div",{...o,className:(0,Cn.default)(Bt,e),children:[(0,M.jsxs)(bn.Stack,{TabstripProps:w,className:`${Bt}-stack`,getTabIcon:Ai,getTabLabel:Pi,active:r===2?1:r,onTabSelectionChanged:f,showTabs:!0,children:[(0,M.jsx)(cn,{config:a,dispatchColumnAction:u}),(0,M.jsxs)("div",{className:`${Bt}-columnPanels`,"data-align":D,children:[(0,M.jsx)(js,{availableColumns:n,chosenColumns:a.columns,dispatchColumnAction:u,onSelectionChange:d,onAddCalculatedColumnClick:R,selectedColumn:g}),g===null?(0,M.jsx)(qe.Panel,{className:"vuuColumnSettingsPanel",children:"Select a column"}):(0,M.jsx)(hn,{column:g,dispatchColumnAction:u,style:{background:"white",flex:"1 0 150px"}})]}),(0,M.jsx)("div",{title:"Column Settings",children:"Column Settings"}),(0,M.jsx)(xn,{columns:a.columns,dispatchColumnAction:u,table:{module:"SIMUL",table:"instruments"}})]}),(0,M.jsxs)("div",{className:`${Bt}-buttonBar`,children:[(0,M.jsx)(qe.Button,{onClick:s,children:"Cancel"}),(0,M.jsx)(qe.Button,{onClick:p,children:"Apply"}),(0,M.jsx)(qe.Button,{onClick:x,children:"Save"})]})]})};var Ke=require("react"),yn=De(require("classnames"),1);var de=require("react/jsx-runtime"),ct="vuuDatasourceStats",ms=new Intl.NumberFormat,Di=({className:n,dataSource:e})=>{let[t,s]=(0,Ke.useState)(e.optimize),[i,o]=(0,Ke.useState)(e.range),[r,l]=(0,Ke.useState)(e.size);(0,Ke.useEffect)(()=>{s(e.optimize),l(e.size),e.on("optimize",s),e.on("resize",l),e.on("range",o)},[e]);let a=(0,yn.default)(ct,n),u=ms.format(i.from),c=ms.format(i.to-1),h=ms.format(r);return(0,de.jsxs)("div",{className:a,children:[(0,de.jsx)("span",{children:"Showing rows"}),(0,de.jsx)("span",{className:`${ct}-range`,children:u}),(0,de.jsx)("span",{className:`${ct}-range`,children:c}),(0,de.jsx)("span",{children:"of"}),(0,de.jsx)("span",{className:`${ct}-size`,children:h}),(0,de.jsx)("span",{className:`${ct}-optimize`,children:t})]})};
1
+ "use strict";var at=Object.create;var ke=Object.defineProperty;var lt=Object.getOwnPropertyDescriptor;var pt=Object.getOwnPropertyNames;var ut=Object.getPrototypeOf,ct=Object.prototype.hasOwnProperty;var mt=(n,e)=>{for(var t in e)ke(n,t,{get:e[t],enumerable:!0})},Cn=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of pt(e))!ct.call(n,r)&&r!==t&&ke(n,r,{get:()=>e[r],enumerable:!(o=lt(e,r))||o.enumerable});return n};var te=(n,e,t)=>(t=n!=null?at(ut(n)):{},Cn(e||!n||!n.__esModule?ke(t,"default",{value:n,enumerable:!0}):t,n)),dt=n=>Cn(ke({},"__esModule",{value:!0}),n);var xn=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var u=(n,e,t)=>(xn(n,e,"read from private field"),t?t.call(n):e.get(n)),N=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},Z=(n,e,t,o)=>(xn(n,e,"write to private field"),o?o.call(n,t):e.set(n,t),t);var co={};mt(co,{ColumnExpressionInput:()=>pn,ColumnNamedTerms:()=>Ue,DataSourceStats:()=>uo,DatagridSettingsPanel:()=>po,columnExpressionLanguageSupport:()=>ze,isCompleteExpression:()=>en,isCompleteRelationalExpression:()=>nn,lastNamedChild:()=>$e,useColumnExpressionEditor:()=>ln,useColumnExpressionSuggestionProvider:()=>cn,walkTree:()=>je});module.exports=dt(co);var D=require("@vuu-ui/vuu-utils"),bn=te(require("classnames"),1);var Ne=require("react"),hn=require("@vuu-ui/vuu-utils"),Ee=require("@vuu-ui/vuu-utils"),gt=[void 0,void 0,void 0,void 0];function yn(n,e,t){var x;let o=(0,Ne.useRef)(),[r,s,i,p]=o.current||gt,{type:l}=t,c=(0,hn.isTypeDescriptor)(l)?(x=l.formatting)==null?void 0:x.decimals:void 0,C=n===r&&(0,Ee.isValidNumber)(e)&&(0,Ee.isValidNumber)(s)&&t===i?(0,Ee.getMovingValueDirection)(e,p,s,c):"";return(0,Ne.useEffect)(()=>{o.current=[n,e,t,C]}),C}var Fe=require("react/jsx-runtime"),ft=String.fromCharCode(11014),Ct=String.fromCharCode(11015),{KEY:xt}=D.metadataKeys,Qe="vuuBackgroundCell",oe={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},ht=n=>{if(typeof n=="string")return oe.BackgroundOnly;if(n){let{renderer:e}=n;return e&&e.flashStyle||oe.BackgroundOnly}},yt=({column:n,row:e})=>{let{key:t,type:o,valueFormatter:r}=n,s=e[t],i=ht(o),p=yn(e[xt],s,n),l=i===oe.ArrowOnly||i===oe.ArrowBackground?p===D.UP1||p===D.UP2?ft:p===D.DOWN1||p===D.DOWN2?Ct:null:null,c=p?" "+p:"",C=(0,bn.default)(Qe,c,{[`${Qe}-arrowOnly`]:i===oe.ArrowOnly,[`${Qe}-arrowBackground`]:i===oe.ArrowBackground});return(0,Fe.jsxs)("div",{className:C,tabIndex:-1,children:[(0,Fe.jsx)("div",{className:`${Qe}-flasher`,children:l}),r(e[n.key])]})};(0,D.registerComponent)("background",yt,"cell-renderer",{serverDataType:["long","int","double"]});var O=require("@vuu-ui/vuu-codemirror"),an=require("@vuu-ui/vuu-utils"),J=require("react");var Q=require("@vuu-ui/vuu-codemirror");var En=require("@lezer/lr"),Le=En.LRParser.deserialize({version:14,states:"&fOVQPOOO!SQPO'#C^OVQPO'#CcQ!pQPOOO#OQPO'#CkO#TQPO'#CrOOQO'#Cy'#CyO#YQPO,58}OVQPO,59QOVQPO,59QOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO#kQPO1G.lO$fQPO'#CmO%WQQO1G.qOOQO'#C{'#C{O%cQPO,59`OOQO'#Cn'#CnO%wQPO,59XOVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO&`QPO1G.zOOQO1G.z1G.zO&hQQO'#C^O&rQQO1G.sO'ZQQO1G.uOOQO1G.v1G.vO'fQPO<<GwO'wQPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(]QQO1G.lO(tQPOG22}OOQOLD(iLD(iO%wQPO,59QO%wQPO,59Q",stateData:")[~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXeQX~OjQXXQXpQXqQXrQXsQXtQXuQX~PnOZWO[WO]XO^XO~OWYO~OWZO~OX]OZWO[WO]XO^XO~OZWO[WO]Yi^YijYiXYipYiqYirYisYitYiuYieYi~OZWO[WO]XO^XOpdOqdOrdOsdOtdOudO~OehOvfOwgO~OXkOZWO[WO]XO^XOeiO~ORUOSUOTUOUUOWQO`SOnlO~OXsOeiO~OvQXwQX~PnOZxO[xO]yO^yOeaivaiwai~OwgOecivci~OZWO[WO]XO^XOetO~OZWO[WO]XO^XOXiaeia~OZxO[xO]Yi^YieYivYiwYi~OXwOZWO[WO]XO^XO~O`UTn~",goto:"#spPPqPPPPqPPqPPPPqP!R!W!R!RPq!Z!k!nPPP!tP#jmUOQWXYZefghitxyVbYfgRe`mTOQWXYZefghitxyR[TQjcRrjQROQVQS^WxQ_XU`YfgQcZQmeQphQqiQuyRvtQaYQnfRog",nodeNames:"\u26A0 ColumnDefinitionExpression Column Number String True False ParenthesizedExpression OpenBrace CloseBrace ArithmeticExpression Divide Times Plus Minus ConditionalExpression If RelationalExpression RelationalOperator AndCondition OrCondition Comma CallExpression Function ArgList",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:".^~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$jz{$o{|$t|}$y}!O%O!O!P%T!P!Q%c!Q![%h!^!_%s!_!`&Q!`!a&V!c!}&d#R#S&d#T#U&u#U#Y&d#Y#Z(Y#Z#]&d#]#^*j#^#c&d#c#d+f#d#h&d#h#i,b#i#o&d~#USl~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOu~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_OS~~$bP;=`<%l#m~$jOW~~$oOX~~$tO[~~$yO]~~%OOe~~%TO^~~%WP!Q![%Z~%`PR~!Q![%Z~%hOZ~~%mQR~!O!P%Z!Q![%h~%xPr~!_!`%{~&QOt~~&VOp~~&[Pq~!_!`&_~&dOs~P&iSnP!Q![&d!c!}&d#R#S&d#T#o&dR&zUnP!Q![&d!c!}&d#R#S&d#T#b&d#b#c'^#c#o&dR'cUnP!Q![&d!c!}&d#R#S&d#T#W&d#W#X'u#X#o&dR'|SvQnP!Q![&d!c!}&d#R#S&d#T#o&d~(_TnP!Q![&d!c!}&d#R#S&d#T#U(n#U#o&d~(sUnP!Q![&d!c!}&d#R#S&d#T#`&d#`#a)V#a#o&d~)[UnP!Q![&d!c!}&d#R#S&d#T#g&d#g#h)n#h#o&d~)sUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y*V#Y#o&d~*^SU~nP!Q![&d!c!}&d#R#S&d#T#o&d~*oUnP!Q![&d!c!}&d#R#S&d#T#Y&d#Y#Z+R#Z#o&d~+YS`~nP!Q![&d!c!}&d#R#S&d#T#o&dR+kUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g+}#g#o&dR,USwQnP!Q![&d!c!}&d#R#S&d#T#o&d~,gUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g,y#g#o&d~-OUnP!Q![&d!c!}&d#R#S&d#T#i&d#i#j-b#j#o&d~-gUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y-y#Y#o&d~.QST~nP!Q![&d!c!}&d#R#S&d#T#o&d",tokenizers:[0,1],topRules:{ColumnDefinitionExpression:[0,1]},tokenPrec:375});var bt=Q.LRLanguage.define({name:"VuuColumnExpression",parser:Le.configure({props:[(0,Q.styleTags)({Function:Q.tags.variableName,String:Q.tags.string,Or:Q.tags.emphasis,Operator:Q.tags.operator})]})}),ze=()=>new Q.LanguageSupport(bt);var Ye=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numberLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},Ze=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},ve,_,Je=class{constructor(e="unknown"){N(this,ve,[{type:"unknown"},{type:"unknown"}]);N(this,_,void 0);this.type="arithmeticExpression";Z(this,_,e)}get op(){return u(this,_)}set op(e){Z(this,_,e)}get expressions(){return u(this,ve)}toJSON(){return{type:this.type,op:u(this,_),expressions:u(this,ve)}}};ve=new WeakMap,_=new WeakMap;var ae,qe=class{constructor(e){N(this,ae,[]);this.type="callExpression";this.functionName=e}get expressions(){return u(this,ae)}get arguments(){return u(this,ae)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:u(this,ae).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};ae=new WeakMap;var Pe,le,se=class{constructor(){N(this,Pe,[{type:"unknown"},{type:"unknown"}]);N(this,le,"unknown");this.type="relationalExpression"}get op(){return u(this,le)}set op(e){Z(this,le,e)}get expressions(){return u(this,Pe)}toJSON(){return{type:this.type,op:u(this,le),expressions:u(this,Pe)}}};Pe=new WeakMap,le=new WeakMap;var Se,pe,ie=class{constructor(e){N(this,Se,[{type:"unknown"},{type:"unknown"}]);N(this,pe,void 0);this.type="booleanCondition";Z(this,pe,e)}get op(){return u(this,pe)}get expressions(){return u(this,Se)}toJSON(){return{type:this.type,op:u(this,pe),expressions:u(this,Se).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};Se=new WeakMap,pe=new WeakMap;var I,Oe=class{constructor(e){N(this,I,void 0);this.type="conditionalExpression";Z(this,I,[e?new ie(e):new se,{type:"unknown"},{type:"unknown"}])}get expressions(){return u(this,I)}get condition(){return u(this,I)[0]}get truthyExpression(){return u(this,I)[1]}set truthyExpression(e){u(this,I)[1]=e}get falsyExpression(){return u(this,I)[2]}set falsyExpression(e){u(this,I)[2]=e}toJSON(){var e,t,o,r,s;return{type:this.type,condition:(t=(e=this.condition).toJSON)==null?void 0:t.call(e),truthyExpression:this.truthyExpression,falsyExpression:(s=(r=(o=this.falsyExpression)==null?void 0:o.toJSON)==null?void 0:r.call(o))!=null?s:this.falsyExpression}}};I=new WeakMap;var q=n=>n.type==="unknown",Ie=n=>n.type==="arithmeticExpression",Et=n=>n.type==="callExpression",re=n=>n.type==="conditionalExpression",Ot=n=>n.type==="relationalExpression"||n.type==="booleanCondition";var vt=n=>n.type==="booleanCondition",Ke=n=>(n==null?void 0:n.type)==="relationalExpression";var R=n=>{if(q(n))return n;if(Ke(n)){let[e,t]=n.expressions;if(S(e))return R(e);if(n.op==="unknown")return n;if(S(t))return R(t)}else if(Ot(n)){let{expressions:e=[]}=n;for(let t of e)if(S(t))return R(t)}else if(re(n)){let{condition:e,truthyExpression:t,falsyExpression:o}=n;if(S(e))return R(e);if(S(t))return R(t);if(S(o))return R(o)}else if(Ie(n)){let{expressions:e=[]}=n;for(let t of e)if(S(t))return R(t)}},Be=(n,e,t)=>{let{expressions:o=[]}=n;if(o.includes(e)){let r=o.indexOf(e);return o.splice(r,1,t),!0}else for(let r of o)if(Be(r,e,t))return!0;return!1},S=n=>q(n)?!0:re(n)?S(n.condition)||S(n.truthyExpression)||S(n.falsyExpression):Ke(n)||vt(n)?n.op===void 0||n.expressions.some(e=>S(e)):!1,On=(n,e)=>{let t=R(n);t?t.expressions?t.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},f,K,_e=class{constructor(){N(this,f,void 0);N(this,K,[])}setCondition(e){if(u(this,f)===void 0)this.addExpression(new Oe(e));else if(re(u(this,f))){if(S(u(this,f).condition)){let t=e?new ie(e):new se;this.addExpression(t)}else if(q(u(this,f).truthyExpression))u(this,f).truthyExpression=new Oe(e);else if(S(u(this,f).truthyExpression)){let t=e?new ie(e):new se;this.addExpression(t)}else if(q(u(this,f).falsyExpression))u(this,f).falsyExpression=new Oe(e);else if(S(u(this,f).falsyExpression)){let t=e?new ie(e):new se;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(u(this,K).length>0){let t=u(this,K).at(-1);t==null||t.arguments.push(e)}else if(u(this,f)===void 0)Z(this,f,e);else if(Ie(u(this,f))){let t=R(u(this,f));t&&q(t)&&Be(u(this,f),t,e)}else if(re(u(this,f))&&S(u(this,f))){let t=R(u(this,f));t&&q(t)?Be(u(this,f),t,e):t&&On(t,e)}}setFunction(e){let t=new qe(e);this.addExpression(t),u(this,K).push(t)}setColumn(e){this.addExpression(new Ze(e))}setArithmeticOp(e){let t=e,o=u(this,f);Ie(o)&&(o.op=t)}setRelationalOperator(e){let t=e;if(u(this,f)&&re(u(this,f))){let o=R(u(this,f));Ke(o)?o.op=t:console.error(`no target expression found (op = ${e})`)}}setValue(e){let t=new Ye(e);if(u(this,f)===void 0)Z(this,f,t);else if(Ie(u(this,f)))this.addExpression(t);else if(Et(u(this,f)))u(this,f).arguments.push(t);else if(re(u(this,f)))if(S(u(this,f))){let o=R(u(this,f));o&&q(o)?Be(u(this,f),o,t):o&&On(o,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){u(this,K).pop()}get expression(){return u(this,f)}toJSON(){var e;return(e=u(this,f))==null?void 0:e.toJSON()}};f=new WeakMap,K=new WeakMap;var je=(n,e)=>{let t=new _e,o=n.cursor();do{let{name:r,from:s,to:i}=o;switch(r){case"AndCondition":t.setCondition("and");break;case"OrCondition":t.setCondition("or");break;case"RelationalExpression":t.setCondition();break;case"ArithmeticExpression":t.addExpression(new Je);break;case"Column":{let p=e.substring(s,i);t.setColumn(p)}break;case"Function":{let p=e.substring(s,i);t.setFunction(p)}break;case"Times":case"Divide":case"Plus":case"Minus":{let p=e.substring(s,i);t.setArithmeticOp(p)}break;case"RelationalOperator":{let p=e.substring(s,i);t.setRelationalOperator(p)}break;case"False":case"True":{let p=e.substring(s,i);t.setValue(p==="true")}break;case"String":t.setValue(e.substring(s+1,i-1));break;case"Number":t.setValue(parseFloat(e.substring(s,i)));break;case"CloseBrace":t.closeBrace();break;default:}}while(o.next());return t.toJSON()};var Pt=Le.configure({strict:!0}),vn=["Number","String"],Ue=[...vn,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],en=n=>{try{return Pt.parse(n),!0}catch{return!1}},$e=n=>{let{lastChild:e}=n;for(;e&&!Ue.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},nn=n=>{if((n==null?void 0:n.name)==="RelationalExpression"){let{firstChild:e}=n,t=$e(n);if((e==null?void 0:e.name)==="Column"&&typeof(t==null?void 0:t.name)=="string"&&vn.includes(t.name))return!0}return!1};var j=require("@vuu-ui/vuu-codemirror"),St=j.HighlightStyle.define([{tag:j.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:j.tags.comment,color:"green",fontStyle:"italic"}]),Pn=(0,j.syntaxHighlighting)(St);var Sn=require("@vuu-ui/vuu-codemirror"),Tn=Sn.EditorView.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.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":{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-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var v=require("@vuu-ui/vuu-codemirror"),rn=require("react");var Tt=(n,e)=>e?n.map(t=>{var o;return{...t,apply:typeof t.apply=="function"?t.apply:`${e}${(o=t.apply)!=null?o:t.label}`}}):n,wt=n=>n===void 0?!1:["Times","Divide","Plus","Minus"].includes(n.name),ue=(n,e)=>{var r;let{lastChild:t}=n,{pos:o}=e;for(;t;)if(t.from<o&&Ue.includes(t.name)){if(t.name==="ParenthesizedExpression"){let i=(r=t.firstChild)==null?void 0:r.nextSibling;i&&(t=i)}return t}else t=t.prevSibling},wn=(n,e)=>{var t;if(n.name==="ArgList"){let o=n.prevSibling;if(o)return(0,v.getValue)(o,e)}else if(n.name==="OpenBrace"){let o=(t=n.parent)==null?void 0:t.prevSibling;if((o==null?void 0:o.name)==="Function")return(0,v.getValue)(o,e)}},Dn=(n,e)=>{if(n.name==="RelationalExpression"){let t=$e(n);if((t==null?void 0:t.name)==="RelationalOperator")return(0,v.getValue)(t,e)}else{let t=n.prevSibling;if((t==null?void 0:t.name)==="RelationalOperator")return(0,v.getValue)(t,e)}},sn=(n,e)=>{var t;if(n.name==="RelationalExpression"){if(((t=n.firstChild)==null?void 0:t.name)==="Column")return(0,v.getValue)(n.firstChild,e)}else{let o=n.prevSibling;if((o==null?void 0:o.name)==="Column")return(0,v.getValue)(o,e);if((o==null?void 0:o.name)==="RelationalOperator")return sn(o,e)}},tn=async(n,e,t,o={})=>{let r=await e.getSuggestions(t,o),{startsWith:s=""}=o;return{from:n.pos-s.length,options:r}},on=(n,e,t,o,r)=>{let s=ue(n,e);switch(console.log(`conditional expression last child ${s==null?void 0:s.name}`),s==null?void 0:s.name){case"If":return tn(e,t,"expression",{prefix:"( "});case"OpenBrace":return tn(e,t,"expression");case"Condition":return tn(e,t,"expression",{prefix:", "});case"CloseBrace":if(o){let i=[{apply:()=>{r==null||r()},label:"Save Expression",boost:10}];return{from:e.pos,options:i}}}},Dt=(n,e)=>{let t=[{apply:()=>{e==null||e()},label:"Save Expression",boost:10}];return{from:n.pos,options:t}},Rn=(n,e)=>{let t=(0,rn.useCallback)(async(o,r,s={})=>{let i=await n.getSuggestions(r,s),{startsWith:p=""}=s;return{from:o.pos-p.length,options:i}},[n]);return(0,rn.useCallback)(async o=>{var x,E;let{state:r,pos:s}=o,i=(x=o.matchBefore(/\w*/))!=null?x:{from:0,to:0,text:void 0},l=(0,v.syntaxTree)(r).resolveInner(s,-1),c=r.doc.toString(),C=en(c);switch(console.log({nodeBeforeName:l.name}),l.name){case"If":return console.log("conditional expression If"),t(o,"expression",{prefix:"( "});case"Condition":{let a=ue(l,o);if((a==null?void 0:a.name)==="Column"){let m=(0,v.getPreviousNode)(a);if((m==null?void 0:m.name)!=="RelationalOperator")return t(o,"condition-operator",{columnName:(0,v.getValue)(a,r)});console.log(`Condition last child Column, prev child ${m==null?void 0:m.name}`)}else if((a==null?void 0:a.name)==="RelationalOperator")return t(o,"expression");console.log(`condition last child ${a==null?void 0:a.name}`)}break;case"ConditionalExpression":return on(l,o,n);case"RelationalExpression":{if(nn(l))return{from:o.pos,options:v.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let a=Dn(l,r),m=sn(l,r);if(a)return t(o,"expression");{let g=await n.getSuggestions("condition-operator",{columnName:m});return{from:o.pos,options:g}}}}break;case"RelationalOperator":return t(o,"expression");case"String":{let a=Dn(l,r),m=sn(l,r),{from:g,to:d}=l;if(d-g===2&&o.pos===g+1){if(m&&a)return t(o,"columnValue",{columnName:m,operator:a,startsWith:i.text})}else if(d-g>2&&o.pos===d)return t(o,"expression",{prefix:", "});console.log(`we have a string, column is ${m} ${g} ${d}`)}break;case"ArithmeticExpression":{let a=ue(l,o);if((a==null?void 0:a.name)==="Column")return t(o,"expression");if(wt(a)){let m=a.name;return t(o,"column",{operator:m})}}break;case"OpenBrace":{let a=wn(l,r);return t(o,"expression",{functionName:a})}break;case"ArgList":{let a=wn(l,r),m=ue(l,o),g=(m==null?void 0:m.name)==="OpenBrace"?void 0:",",d=await n.getSuggestions("expression",{functionName:a});return d=g?Tt(d,", "):d,(m==null?void 0:m.name)!=="OpenBrace"&&(m==null?void 0:m.name)!=="Comma"&&(d=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(d)),{from:o.pos,options:d}}case"Equal":if(c.trim()==="=")return t(o,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(o.pos===0)return t(o,"expression");{let a=ue(l,o);if((a==null?void 0:a.name)==="Column"){if(C){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],g=(0,v.getValue)(a,r),d=await n.getSuggestions("operator",{columnName:g});return{from:o.pos,options:m.concat(d)}}}else if((a==null?void 0:a.name)==="CallExpression"){if(C){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}];return{from:o.pos,options:m}}}else if((a==null?void 0:a.name)==="ArithmeticExpression"){if(C){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],g=ue(a,o);if((g==null?void 0:g.name)==="Column"){let d=(0,v.getValue)(g,r),P=await n.getSuggestions("operator",{columnName:d});m=m.concat(P)}return{from:o.pos,options:m}}}else if((a==null?void 0:a.name)==="ConditionalExpression")return on(a,o,n,C,e.current);break}case"Column":if(await n.isPartialMatch("expression",void 0,i.text))return t(o,"expression",{startsWith:i.text});break;case"Comma":{let a=(0,v.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return t(o,"expression")}break;case"CloseBrace":{let a=(0,v.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return on(a,o,n,C,e.current);if((a==null?void 0:a.name)==="ArgList"&&C)return Dt(o,e.current);console.log(`does closebrace denote an ARgList or a parenthetised expression ? ${a}`)}break;default:((E=l==null?void 0:l.prevSibling)==null?void 0:E.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[t,e,n])};var Te=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Rt=()=>"vuuSuggestion",At=()=>console.log("noooop"),kt=n=>"expressionType"in n,Nt=n=>{if(kt(n)){let e=(0,an.createEl)("div","expression-type-container"),t=(0,an.createEl)("span","expression-type",n.expressionType);return e.appendChild(t),e}else return null},ln=({onChange:n,onSubmitExpression:e,suggestionProvider:t})=>{let o=(0,J.useRef)(null),r=(0,J.useRef)(At),s=(0,J.useRef)(),i=Rn(t,r),[p,l]=(0,J.useMemo)(()=>{let c=()=>{let g=Te(s),d=g.state.doc.toString(),P=(0,O.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(P){let w=je(P,d);return[d,w]}else return["",void 0]},C=()=>{Te(s).setState(m())},x=()=>{let[g,d]=c();e==null||e(g,d),C()},E=g=>O.keymap.of([{key:g,run(){return x(),!0}}]),a=g=>O.keymap.of([{key:g,run(){return(0,O.startCompletion)(Te(s)),!0}}]),m=()=>O.EditorState.create({doc:"",extensions:[O.minimalSetup,(0,O.autocompletion)({addToOptions:[{render:Nt,position:70}],override:[i],optionClass:Rt}),ze(),O.keymap.of(O.defaultKeymap),E("Ctrl-Enter"),a("ArrowDown"),O.EditorView.updateListener.of(g=>{let d=Te(s);if(g.docChanged){(0,O.startCompletion)(d);let P=d.state.doc.toString();n==null||n(P,void 0)}}),Tn,Pn]});return r.current=()=>{x(),setTimeout(()=>{Te(s).focus()},100)},[m,C]},[i,n,e]);return(0,J.useEffect)(()=>{if(!o.current)throw Error("editor not in dom");return s.current=new O.EditorView({state:p(),parent:o.current}),()=>{var c;(c=s.current)==null||c.destroy()}},[i,p]),{editorRef:o,clearInput:l}};var An=require("react/jsx-runtime"),Qt="vuuColumnExpressionInput",pn=({onChange:n,onSubmitExpression:e,suggestionProvider:t})=>{let{editorRef:o}=ln({onChange:n,onSubmitExpression:e,suggestionProvider:t});return(0,An.jsx)("div",{className:`${Qt}`,ref:o})};var U=require("@vuu-ui/vuu-codemirror"),Ge=require("@vuu-ui/vuu-data"),de=require("@vuu-ui/vuu-utils"),me=require("react");var ce=[{accepts:"string",description:"Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.",example:{expression:'concatenate("example", "-test")',result:'"example-test"'},name:"concatenate",params:{description:"( string, string, [ string* ] )"},type:"string"},{accepts:["string","string"],description:"Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>",example:{expression:'contains("Royal Bank of Scotland", "bank")',result:"true"},name:"contains",params:{description:"( string )"},type:"boolean"},{accepts:["string","number"],description:"Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:'left("USD Benchmark Report", 3)',result:'"USD"'},name:"left",params:{count:2,description:"( string, number )"},type:"string"},{accepts:"string",description:"Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.",example:{expression:'len("example")',result:"7"},name:"len",params:{description:"(string)"},type:"number"},{accepts:"string",description:"Convert a string value to lowercase. Argument may be a string column or other string expression.",example:{expression:'lower("examPLE")',result:'"example"'},name:"lower",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Convert a string value to uppercase. Argument may be a string column or other string expression.",example:{expression:'upper("example")',result:'"EXAMPLE"'},name:"upper",params:{description:"( string )"},type:"string"},{accepts:["string","number"],description:"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:"blah",result:"blah"},name:"right",params:{description:"( string )"},type:"string"},{accepts:["string","string","string"],description:"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",example:{expression:"blah",result:"blah"},name:"replace",params:{description:"( string )"},type:"string"},{accepts:"number",description:"Converts a number to a string.",example:{expression:"blah",result:"blah"},name:"text",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",example:{expression:"blah",result:"blah"},name:"starts",params:{description:"( string )"},type:"boolean"},{accepts:"string",description:"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",example:{expression:"blah",result:"blah"},name:"ends",params:{description:"( string )"},type:"boolean"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"min",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"max",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"sum",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"round",params:{description:"( string )"},type:"number"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"or",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"and",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",example:{expression:"blah",result:"blah"},name:"if",params:{description:"( filterExpression, expression1, expression 2)"},type:"variable"}];var B=require("@vuu-ui/vuu-utils"),kn=({name:n,description:e,example:t,params:o,type:r})=>{let s=(0,B.createEl)("div","vuuFunctionDoc"),i=(0,B.createEl)("div","function-heading"),p=(0,B.createEl)("span","function-name",n),l=(0,B.createEl)("span","param-list",o.description),c=(0,B.createEl)("span","function-type",r);i.appendChild(p),i.appendChild(l),i.appendChild(c);let C=(0,B.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(C),t){let x=(0,B.createEl)("div","example-container","Example:"),E=(0,B.createEl)("div","example-expression",t.expression),a=(0,B.createEl)("div","example-result",t.result);x.appendChild(E),x.appendChild(a),s.appendChild(x)}return s};var Ft=[],ee=n=>n.map(e=>{var t;return{...e,apply:((t=e.apply)!=null?t:e.label)+" "}}),Lt=(n,{functionName:e,operator:t})=>{if(t)return n.filter(de.isNumericColumn);if(e){let o=ce.find(r=>r.name===e);if(o)switch(o.accepts){case"string":return n.filter(de.isTextColumn);case"number":return n.filter(de.isNumericColumn);default:return n}}return n},Nn=(n,e)=>Lt(n,e).map(o=>{var s;let r=(s=o.label)!=null?s:o.name;return{apply:e.prefix?`${e.prefix}${r}`:r,label:r,boost:5,type:"column",expressionType:o.serverDataType}}),It=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Bt=n=>n===void 0||(0,de.isNumericColumn)(n)?It:Ft,Ut=n=>{switch(n.serverDataType){case"string":case"char":return ee(U.stringOperators);case"int":case"long":case"double":return ee(U.numericOperators)}},un=n=>({apply:`${n.name}( `,boost:2,expressionType:n.type,info:()=>kn(n),label:n.name,type:"function"}),$t=n=>{if(n){if(typeof n.accepts=="string")return n.accepts;if(Array.isArray(n.accepts))return n.accepts.every(e=>e==="string")?"string":"any"}return"any"},Gt=ce.map(un),Mt=({functionName:n})=>{if(n){let e=ce.find(o=>o.name===n),t=$t(e);if(e)switch(t){case"string":return ce.filter(o=>o.type==="string"||o.type==="variable").map(un);case"number":return ce.filter(o=>o.type==="number"||o.type==="variable").map(un);default:}}return Gt},Wt={},cn=({columns:n,table:e})=>{let t=(0,me.useCallback)(p=>p?n.find(l=>l.name===p):void 0,[n]),o=(0,me.useRef)(),r=(0,Ge.useTypeaheadSuggestions)(),s=(0,me.useCallback)(async(p,l=Wt)=>{let{columnName:c,functionName:C,operator:x,prefix:E}=l;switch(p){case"expression":{let a=await ee(Nn(n,{functionName:C,prefix:E})).concat(Mt(l));return o.current=a}case"column":{let a=await Nn(n,l);return o.current=ee(a)}case"operator":{let a=await Bt(t(c));return o.current=ee(a)}case"relational-operator":{let a=await(0,U.getRelationalOperators)(t(c));return o.current=ee(a)}case"condition-operator":{let a=t(c);if(a){let m=await Ut(a);if(m)return o.current=ee(m)}}break;case"columnValue":if(c&&x){let a=(0,Ge.getTypeaheadParams)(e,c),m=await r(a);return o.current=(0,U.toSuggestions)(m,{suffix:""}),o.current.forEach(g=>{g.apply=(d,P,w)=>{let M=new U.AnnotationType,be=w+P.label.length+1;d.dispatch({changes:{from:w,insert:P.label},selection:{anchor:be,head:be},annotations:M.of(P)})}}),o.current}break}return[]},[n,t,r,e]),i=(0,me.useCallback)(async(p,l,c)=>{let{current:C}=o,x=!1,E=C||await s(p,{columnName:l});if(c&&E)for(let a of E){if(a.label===c)return!1;a.label.startsWith(c)&&(x=!0)}return x},[s]);return{getSuggestions:s,isPartialMatch:i}};var he=require("@salt-ds/core"),ot=te(require("classnames"),1),z=require("react");var mn=require("@heswell/salt-lab"),F=require("@salt-ds/core"),$=require("react");var Qn=require("@heswell/salt-lab"),Fn=te(require("classnames"),1);var fe=require("react/jsx-runtime"),ge="vuuColumnListItem",Ln=({className:n,item:e,label:t,style:o,...r})=>{let s=(0,Fn.default)(ge,n,{[`${ge}-calculated`]:e==null?void 0:e.expression,[`${ge}-hidden`]:e==null?void 0:e.hidden});return(0,fe.jsxs)(Qn.ListItem,{className:s,...r,children:[(0,fe.jsx)("span",{className:`${ge}-iconType`}),(0,fe.jsx)("label",{className:`${ge}-label`,children:t}),(0,fe.jsx)("span",{className:`${ge}-iconHidden`})]})};var y=require("react/jsx-runtime"),Ce="vuuColumnPicker",Xt=(n,e)=>n.filter(t=>e.find(o=>o.name===t.name)==null),In=({availableColumns:n,id:e,dispatchColumnAction:t,onAddCalculatedColumnClick:o,onSelectionChange:r,chosenColumns:s,selectedColumn:i})=>{let[p,l]=(0,$.useState)([]),c=(0,F.useIdMemo)(e),C=Xt(n,s),x=(0,$.useCallback)(()=>{p.length>0&&(l([]),t({type:"addColumn",columns:p}))},[t,p]),E=(0,$.useCallback)(()=>i&&t({type:"removeColumn",column:i}),[i,t]),a=(0,$.useCallback)(()=>i&&t({type:"moveColumn",column:i,moveBy:-1}),[t,i]),m=(0,$.useCallback)(()=>i&&t({type:"moveColumn",column:i,moveBy:1}),[t,i]),g=(0,$.useCallback)((w,M)=>l(M),[]),d=(0,$.useCallback)((w,M)=>r==null?void 0:r(M),[r]),P=(0,$.useCallback)((w,M)=>{t({type:"moveColumn",moveFrom:w,moveTo:M})},[t]);return(0,y.jsxs)("div",{className:Ce,id:c,children:[(0,y.jsxs)("div",{className:`${Ce}-listColumn`,children:[(0,y.jsx)("label",{htmlFor:`available-${c}`,children:(0,y.jsx)(F.Text,{as:"h4",children:"Available Columns"})}),(0,y.jsx)("div",{className:`${Ce}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,y.jsx)(mn.List,{borderless:!0,checkable:!1,height:"100%",id:`available-${c}`,itemHeight:24,itemToString:w=>w.name,onSelectionChange:g,selected:p,selectionStrategy:"extended",source:C})}),(0,y.jsx)("div",{style:{display:"flex",alignItems:"center",flex:"0 0 32px",marginTop:"var(--salt-size-basis-unit)"},children:(0,y.jsxs)(F.Button,{onClick:x,disabled:p.length===0,children:["Show",(0,y.jsx)("span",{"data-icon":"arrow-thin-right",style:{marginLeft:8}})]})})]}),(0,y.jsxs)("div",{className:`${Ce}-listColumn`,children:[(0,y.jsx)("label",{htmlFor:`selected-${c}`,children:(0,y.jsx)(F.Text,{as:"h4",children:"Included Columns"})}),(0,y.jsx)("div",{className:`${Ce}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,y.jsx)(mn.List,{ListItem:Ln,allowDragDrop:!0,borderless:!0,height:"100%",id:`selected-${c}`,itemHeight:24,itemToString:w=>w.name,onMoveListItem:P,onSelectionChange:d,selected:i,style:{flex:1},source:s})}),(0,y.jsxs)("div",{style:{alignItems:"center",flex:"0 0 32px",display:"flex",gap:6,marginTop:"var(--salt-size-basis-unit)"},children:[(0,y.jsxs)(F.Button,{onClick:E,disabled:i===null,children:[(0,y.jsx)("span",{"data-icon":"arrow-thin-left",style:{marginRight:8}}),"Hide"]}),(0,y.jsx)(F.Button,{"aria-label":"Move column up",onClick:a,disabled:i===null||(s==null?void 0:s.indexOf(i))===0,style:{width:28},children:(0,y.jsx)("span",{"data-icon":"arrow-thin-up"})}),(0,y.jsx)(F.Button,{"aria-label":"Move column down",onClick:m,disabled:i===null||s.indexOf(i)===s.length-1,style:{width:28},children:(0,y.jsx)("span",{"data-icon":"arrow-thin-down"})}),(0,y.jsx)(F.Button,{"aria-label":"Add calculated column",className:`${Ce}-addCalculatedColumn`,onClick:o,variant:"primary",children:(0,y.jsx)("span",{"data-icon":"add"})})]})]})]})};var Zn=require("@vuu-ui/vuu-layout"),b=require("@heswell/salt-lab"),De=require("@salt-ds/core"),Jn=te(require("classnames"),1),H=require("react");var Mn=require("@vuu-ui/vuu-utils"),Wn=require("@heswell/salt-lab"),Xn=require("@salt-ds/core"),gn=te(require("classnames"),1),Hn=require("react");var ne=require("@heswell/salt-lab"),Bn=require("@salt-ds/core"),we=require("react");var A=require("react/jsx-runtime"),Ht={alignOnDecimals:!1,decimals:4,zeroPad:!1},Vt=(n,e)=>{let t=typeof n=="object"&&n.formatting?n.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((r,s)=>t[s]!==void 0?{...r,[s]:t[s]}:(e==null?void 0:e[s])!==void 0?{...r,[s]:e[s]}:r,Ht)},Un=({column:n,dispatchColumnAction:e})=>{let{decimals:t,alignOnDecimals:o,zeroPad:r}=Vt(n==null?void 0:n.type),s=(0,we.useCallback)(c=>e({type:"updateColumnTypeFormatting",column:n,...c}),[n,e]),i=(0,we.useCallback)(c=>s({decimals:parseInt(c.toString(),10)}),[s]),p=(0,we.useCallback)((c,C)=>s({alignOnDecimals:C}),[s]),l=(0,we.useCallback)((c,C)=>s({zeroPad:C}),[s]);switch(n.serverDataType){case"double":return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(ne.FormField,{label:"No of Decimals",labelPlacement:"top",children:(0,A.jsx)(ne.StepperInput,{value:t,onChange:i})}),(0,A.jsx)(ne.Switch,{checked:o,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:p}),(0,A.jsx)(ne.Switch,{checked:r,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l})]});case"long":case"int":return(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(Bn.Text,{children:"Work in progress"})});default:return null}};var Me=require("react/jsx-runtime"),$n=({column:n,dispatchColumnAction:e})=>(0,Me.jsx)(Me.Fragment,{children:"String"});var X=require("react/jsx-runtime"),dn="vuuColumnTypePanel",zt=["Default Renderer (int, long)"],Yt=["Default Renderer (double)"],Gn=["Default Renderer (string)"],Zt=n=>{let t=(0,Mn.getRegisteredCellRenderers)(n.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:t}),n.serverDataType){case"char":case"string":return Gn;case"int":case"long":return zt;case"double":return Yt.concat(t);default:return Gn}},Vn=({className:n,column:e,dispatchColumnAction:t,...o})=>{let r=(0,Hn.useMemo)(()=>{switch(e.serverDataType){case"double":case"int":case"long":return(0,X.jsx)(Un,{column:e,dispatchColumnAction:t});default:return(0,X.jsx)($n,{column:e,dispatchColumnAction:t})}},[e,t]),{serverDataType:s="string"}=e,i=Zt(e);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Wn.Dropdown,{className:(0,gn.default)(`${dn}-renderer`),fullWidth:!0,selected:i[0],source:i}),(0,X.jsx)(Xn.Panel,{...o,className:(0,gn.default)(dn,n,`${dn}-${s}`),children:r})]})};var h=require("react/jsx-runtime"),zn="vuuColumnSettingsPanel",Jt={className:"salt-density-high"},Yn=()=>null,qn=({column:n,dispatchColumnAction:e,style:t,...o})=>{var E,a,m,g;let[r,s]=(0,H.useState)(0),i=(0,H.useCallback)(d=>e({type:"updateColumnProp",column:n,...d}),[n,e]),p=(0,H.useCallback)(d=>i({align:d.target.value}),[i]),l=(0,H.useCallback)(d=>i({pin:d.target.value}),[i]),c=(0,H.useCallback)((d,P)=>i({hidden:P}),[i]),C=(0,H.useCallback)((d,P)=>i({label:P}),[i]),x=(0,H.useCallback)(d=>i({width:parseInt(d.toString(),10)}),[i]);return(0,h.jsxs)("div",{className:zn,...o,style:{...t},children:[(0,h.jsx)(De.Text,{as:"h4",children:"Column Settings"}),(0,h.jsxs)(Zn.Stack,{active:r,showTabs:!0,className:(0,Jn.default)(`${zn}-columnTabs`),onTabSelectionChanged:s,TabstripProps:Jt,children:[(0,h.jsxs)(De.Panel,{title:"Column",children:[(0,h.jsx)(b.FormField,{label:"Hidden",labelPlacement:"left",children:(0,h.jsx)(b.Checkbox,{checked:n.hidden===!0,onChange:c})}),(0,h.jsx)(b.FormField,{label:"Label",labelPlacement:"left",children:(0,h.jsx)(b.Input,{value:(E=n.label)!=null?E:n.name,onChange:C})}),(0,h.jsx)(b.FormField,{label:"Width",labelPlacement:"left",children:(0,h.jsx)(b.StepperInput,{value:(a=n.width)!=null?a:100,onChange:x})}),(0,h.jsx)(b.FormField,{label:"Align",labelPlacement:"left",ActivationIndicatorComponent:Yn,children:(0,h.jsxs)(b.RadioButtonGroup,{"aria-label":"Column Align",value:(m=n.align)!=null?m:"left",legend:"Align",onChange:p,children:[(0,h.jsx)(b.RadioButton,{label:"Left",value:"left"}),(0,h.jsx)(b.RadioButton,{label:"Right",value:"right"})]})}),(0,h.jsx)(b.FormField,{label:"Pin Column",labelPlacement:"left",ActivationIndicatorComponent:Yn,children:(0,h.jsxs)(b.RadioButtonGroup,{"aria-label":"Pin Column",value:(g=n.pin)!=null?g:"",legend:"Pin Column",onChange:l,children:[(0,h.jsx)(b.RadioButton,{label:"Do not pin",value:""}),(0,h.jsx)(b.RadioButton,{label:"Left",value:"left"}),(0,h.jsx)(b.RadioButton,{label:"Right",value:"right"})]})})]}),(0,h.jsx)(Vn,{column:n,dispatchColumnAction:e,title:"Data Cell"}),(0,h.jsxs)(De.Panel,{title:"Vuu",variant:"secondary",children:[(0,h.jsx)(b.FormField,{label:"Name",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,h.jsx)(b.Input,{value:n.name})}),(0,h.jsx)(b.FormField,{label:"Vuu type",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,h.jsx)(b.Input,{value:n.serverDataType})})]})]})]})};var L=require("@heswell/salt-lab"),Xe=require("@salt-ds/core"),We=require("react");var k=require("react/jsx-runtime"),qt="vuuGridSettingsPanel",_t=()=>null,_n=({config:n,dispatchColumnAction:e,style:t,...o})=>{var p;let r=(0,We.useCallback)(l=>e({type:"updateGridSettings",...l}),[e]),s=(0,We.useCallback)(l=>r({columnFormatHeader:l.target.value}),[r]),i=(0,We.useCallback)(l=>r({columnDefaultWidth:parseInt(l.toString(),10)}),[r]);return console.log(`GridSettingsPanel ${JSON.stringify(n.columns,null,2)}`),(0,k.jsxs)("div",{className:qt,...o,style:{...t},children:[(0,k.jsx)(Xe.Text,{as:"h4",children:"Grid Settings"}),(0,k.jsxs)(Xe.Panel,{children:[(0,k.jsx)(L.FormField,{label:"Format column labels",labelPlacement:"left",ActivationIndicatorComponent:_t,children:(0,k.jsxs)(L.RadioButtonGroup,{"aria-label":"Format column labels",value:n.columnFormatHeader,legend:"Format column labels",onChange:s,children:[(0,k.jsx)(L.RadioButton,{label:"No Formatting",value:void 0}),(0,k.jsx)(L.RadioButton,{label:"Capitalize",value:"capitalize"}),(0,k.jsx)(L.RadioButton,{label:"Uppercase",value:"uppercase"})]})}),(0,k.jsx)(L.FormField,{label:"Default Column Width",labelPlacement:"left",children:(0,k.jsx)(L.StepperInput,{value:(p=n.columnDefaultWidth)!=null?p:100,onChange:i})})]})]})};var Kn=require("react"),jn=require("@heswell/salt-lab"),et=require("@vuu-ui/vuu-utils"),Kt=(n,e)=>{switch(console.log(`gridSettingsReducer ${e.type}`),e.type){case"addColumn":return jt(n,e);case"addCalculatedColumn":return eo(n,e);case"moveColumn":return to(n,e);case"removeColumn":return no(n,e);case"updateColumn":return n;case"updateColumnProp":return oo(n,e);case"updateGridSettings":return ro(n,e);case"updateColumnTypeFormatting":return so(n,e);default:return n}},nt=n=>{let[e,t]=(0,Kn.useReducer)(Kt,n);return{gridSettings:e,dispatchColumnAction:t}};function jt(n,{column:e,columns:t,index:o=-1}){let{columns:r}=n;if(o===-1){if(Array.isArray(t))return{...n,columns:r.concat(t)};if(e)return{...n,columns:r.concat(e)}}return n}function eo(n,{columnName:e,columnType:t,expression:o}){let{columns:r}=n,s={name:e,expression:o,serverDataType:t};return{...n,columns:r.concat(s)}}function no(n,{column:e}){let{columns:t}=n;return{...n,columns:t.filter(o=>o.name!==e.name)}}function to(n,{column:e,moveBy:t,moveFrom:o,moveTo:r}){let{columns:s}=n;if(e&&typeof t=="number"){let i=s.indexOf(e),p=s.slice(),[l]=p.splice(i,1);return p.splice(i+t,0,l),{...n,columns:p}}else return typeof o=="number"&&typeof r=="number"?{...n,columns:(0,jn.moveItem)(s,o,r)}:n}function oo(n,{align:e,column:t,hidden:o,label:r,width:s}){let{columns:i}=n;return(e==="left"||e==="right")&&(i=Re(i,{...t,align:e})),typeof o=="boolean"&&(i=Re(i,{...t,hidden:o})),typeof r=="string"&&(i=Re(i,{...t,label:r})),typeof s=="number"&&(i=Re(i,{...t,width:s})),{...n,columns:i}}function ro(n,{columnFormatHeader:e}){return{...n,columnFormatHeader:e!=null?e:n.columnFormatHeader}}function so(n,{alignOnDecimals:e,column:t,decimals:o,zeroPad:r}){let{columns:s}=n;if(s.find(p=>p.name===t.name)){let{serverDataType:p="string",type:l=(0,et.fromServerDataType)(p)}=t,c=typeof l=="string"?{name:l}:{...l};return typeof e=="boolean"&&(c.formatting={...c.formatting,alignOnDecimals:e}),typeof o=="number"&&(c.formatting={...c.formatting,decimals:o}),typeof r=="boolean"&&(c.formatting={...c.formatting,zeroPad:r}),{...n,columns:Re(s,{...t,type:c})}}else return n}function Re(n,e){return n.map(t=>t.name===e.name?e:t)}var rt=require("@vuu-ui/vuu-layout");var He=require("@heswell/salt-lab"),xe=require("@salt-ds/core"),G=require("react");var V=require("react/jsx-runtime"),tt=({columns:n,dispatchColumnAction:e,table:t})=>{let[o,r]=(0,G.useState)(""),[,s]=(0,G.useState)(),i=(0,G.useRef)(""),p=cn({columns:n,table:t}),l=(0,G.useCallback)(E=>{let{value:a}=E.target;r(a)},[]),c=(0,G.useCallback)(E=>{i.current=E},[]),C=(0,G.useCallback)((E,a)=>{console.log({source:E}),s(a)},[]),x=(0,G.useCallback)(()=>{i.current&&(console.log(`save expression ${JSON.stringify(i.current,null,2)}`),e({type:"addCalculatedColumn",columnName:o,expression:i.current,columnType:"string"}))},[o,e]);return(0,V.jsxs)(xe.Panel,{className:"vuuCalculatedColumnPanel",title:"Define Computed Column",children:[(0,V.jsx)(xe.Text,{styleAs:"h4",children:"Define Computed Column"}),(0,V.jsx)(He.FormField,{label:"Column Name",labelPlacement:"left",children:(0,V.jsx)(He.Input,{value:o,onChange:l})}),(0,V.jsx)(pn,{onChange:c,onSubmitExpression:C,suggestionProvider:p}),(0,V.jsx)("div",{style:{marginTop:12},children:(0,V.jsx)(xe.Button,{onClick:x,children:"Add Column"})})]})};var T=require("react/jsx-runtime"),Ve="vuuDatagridSettingsPanel",io=()=>{},ao=["table-settings","column-chooser","column-settings","define-column"],lo=(n,e)=>ao[e],po=({availableColumns:n,className:e,gridConfig:t,onCancel:o,onConfigChange:r,...s})=>{var be;console.log("DatagridSettingsPanel render");let[i,p]=(0,z.useState)(0),{gridSettings:l,dispatchColumnAction:c}=nt(t),[C,x]=(0,z.useState)(null),E=(0,z.useCallback)(W=>{x(W?W.name:null)},[]),a=(0,z.useCallback)((W,it=!1)=>{console.log("1) DataGridSettingsPanel fire onConfigChange"),r==null||r(l,it)},[l,r]),m=(0,z.useCallback)(W=>{p(W)},[]),g=(0,z.useCallback)(W=>a(W,!0),[a]),d=C===null?null:(be=l.columns.find(W=>W.name===C))!=null?be:null,P={activeTabIndex:i,enableRenameTab:!1,orientation:"vertical"},w=(0,z.useCallback)(()=>p(3),[]),M=i===2?"right":void 0;return(0,T.jsxs)("div",{...s,className:(0,ot.default)(Ve,e),children:[(0,T.jsxs)(rt.Stack,{TabstripProps:P,className:`${Ve}-stack`,getTabIcon:lo,getTabLabel:io,active:i===2?1:i,onTabSelectionChanged:m,showTabs:!0,children:[(0,T.jsx)(_n,{config:l,dispatchColumnAction:c}),(0,T.jsxs)("div",{className:`${Ve}-columnPanels`,"data-align":M,children:[(0,T.jsx)(In,{availableColumns:n,chosenColumns:l.columns,dispatchColumnAction:c,onSelectionChange:E,onAddCalculatedColumnClick:w,selectedColumn:d}),d===null?(0,T.jsx)(he.Panel,{className:"vuuColumnSettingsPanel",children:"Select a column"}):(0,T.jsx)(qn,{column:d,dispatchColumnAction:c,style:{background:"white",flex:"1 0 150px"}})]}),(0,T.jsx)("div",{title:"Column Settings",children:"Column Settings"}),(0,T.jsx)(tt,{columns:l.columns,dispatchColumnAction:c,table:{module:"SIMUL",table:"instruments"}})]}),(0,T.jsxs)("div",{className:`${Ve}-buttonBar`,children:[(0,T.jsx)(he.Button,{onClick:o,children:"Cancel"}),(0,T.jsx)(he.Button,{onClick:a,children:"Apply"}),(0,T.jsx)(he.Button,{onClick:g,children:"Save"})]})]})};var ye=require("react"),st=te(require("classnames"),1);var Y=require("react/jsx-runtime"),Ae="vuuDatasourceStats",fn=new Intl.NumberFormat,uo=({className:n,dataSource:e})=>{let[t,o]=(0,ye.useState)(e.optimize),[r,s]=(0,ye.useState)(e.range),[i,p]=(0,ye.useState)(e.size);(0,ye.useEffect)(()=>{o(e.optimize),p(e.size),e.on("optimize",o),e.on("resize",p),e.on("range",s)},[e]);let l=(0,st.default)(Ae,n),c=fn.format(r.from),C=fn.format(r.to-1),x=fn.format(i);return(0,Y.jsxs)("div",{className:l,children:[(0,Y.jsx)("span",{children:"Showing rows"}),(0,Y.jsx)("span",{className:`${Ae}-range`,children:c}),(0,Y.jsx)("span",{className:`${Ae}-range`,children:C}),(0,Y.jsx)("span",{children:"of"}),(0,Y.jsx)("span",{className:`${Ae}-size`,children:x}),(0,Y.jsx)("span",{className:`${Ae}-optimize`,children:t})]})};
2
2
  //# sourceMappingURL=index.js.map