@vuu-ui/vuu-table-extras 0.8.10 → 0.8.11

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 Br=Object.create;var ft=Object.defineProperty;var Wr=Object.getOwnPropertyDescriptor;var Qr=Object.getOwnPropertyNames;var Gr=Object.getPrototypeOf,Ur=Object.prototype.hasOwnProperty;var Xr=(t,e)=>{for(var o in e)ft(t,o,{get:e[o],enumerable:!0})},Fo=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Qr(e))!Ur.call(t,r)&&r!==o&&ft(t,r,{get:()=>e[r],enumerable:!(n=Wr(e,r))||n.enumerable});return t};var w=(t,e,o)=>(o=t!=null?Br(Gr(t)):{},Fo(e||!t||!t.__esModule?ft(o,"default",{value:t,enumerable:!0}):o,t)),_r=t=>Fo(ft({},"__esModule",{value:!0}),t);var Io=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var C=(t,e,o)=>(Io(t,e,"read from private field"),o?o.call(t):e.get(t)),G=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)},ae=(t,e,o,n)=>(Io(t,e,"write to private field"),n?n.call(t,o):e.set(t,o),o);var vl={};Xr(vl,{BackgroundCell:()=>Xo,CaseValidator:()=>zo,ColumnExpressionInput:()=>fo,ColumnExpressionPanel:()=>bo,ColumnFormattingPanel:()=>Jt,ColumnList:()=>Gt,ColumnNamedTerms:()=>Rt,ColumnSettingsPanel:()=>$s,DataSourceStats:()=>Bs,NumericFormattingSettings:()=>Xt,PatternValidator:()=>$o,TableSettingsPanel:()=>yl,columnExpressionLanguageSupport:()=>Zt,isCompleteExpression:()=>so,isCompleteRelationalExpression:()=>io,lastNamedChild:()=>St,useColumnExpressionEditor:()=>po,useColumnExpressionSuggestionProvider:()=>Co,useTableAndColumnSettings:()=>Sr,useTableSettings:()=>Oo,walkTree:()=>ro});module.exports=_r(vl);var Ko=require("@vuu-ui/vuu-utils"),Yr=t=>typeof t=="string",zo=(t,e)=>Yr(e)?e===""?!0:t.value==="lower"&&e.toLowerCase()!==e?"value must be all lowercase":t.value==="upper"&&e.toUpperCase()!==e?"value must be all uppercase":!0:"value must be a string";(0,Ko.registerComponent)("vuu-case",zo,"data-edit-validator",{});var Vo=require("@vuu-ui/vuu-utils"),Jr=t=>typeof t=="string",Zr="value does not match expected pattern",$o=(t,e)=>{if(typeof t.value!="string")throw Error("Pattern validation rule must provide pattern");if(Jr(e)){if(e==="")return!0;{let{message:o=Zr}=t;return new RegExp(t.value).test(e)||o}}else return"value must be a string"};(0,Vo.registerComponent)("vuu-pattern",$o,"data-edit-validator",{});var F=require("@vuu-ui/vuu-utils"),Wo=w(require("classnames"),1);var pe=require("@vuu-ui/vuu-utils"),gt=require("react"),qr=[void 0,void 0,void 0,void 0];function Bo(t,e,o){var d;let n=(0,gt.useRef)(),[r,s,i,l]=n.current||qr,{type:u}=o,c=(0,pe.isTypeDescriptor)(u)?(d=u.formatting)==null?void 0:d.decimals:void 0,m=t===r&&(0,pe.isValidNumber)(e)&&(0,pe.isValidNumber)(s)&&o===i?(0,pe.getMovingValueDirection)(e,l,s,c):"";return(0,gt.useEffect)(()=>{n.current=[t,e,o,m]}),m}var bt=require("react/jsx-runtime"),jr=String.fromCharCode(11014),es=String.fromCharCode(11015),{KEY:ts}=F.metadataKeys,Ct="vuuBackgroundCellDeprecated",Qe={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},os=t=>(0,F.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Qe.BackgroundOnly,ns=({column:t,row:e})=>{let{key:o,type:n,valueFormatter:r}=t,s=e[o],i=os(n),l=Bo(e[ts],s,t),u=i===Qe.ArrowOnly||i===Qe.ArrowBackground?l===F.UP1||l===F.UP2?jr:l===F.DOWN1||l===F.DOWN2?es:null:null,c=l?" "+l:"",m=(0,Wo.default)(Ct,c,{[`${Ct}-arrowOnly`]:i===Qe.ArrowOnly,[`${Ct}-arrowBackground`]:i===Qe.ArrowBackground});return(0,bt.jsxs)("div",{className:m,tabIndex:-1,children:[(0,bt.jsx)("div",{className:`${Ct}-flasher`,children:u}),r(e[t.key])]})};(0,F.registerComponent)("background",ns,"cell-renderer",{description:"Background Cell renderer for VuuTable",label:"Background Cell (deprecated)",serverDataType:["long","int","double"]});var j=require("@vuu-ui/vuu-utils"),Qo=w(require("classnames"),1);var de=require("react/jsx-runtime"),Ge="vuuProgressCell",rs=({column:t,columnMap:e,row:o})=>{let{type:n}=t,r=o[t.key],s=!1,i=0;if((0,j.isTypeDescriptor)(n)&&(0,j.isColumnTypeRenderer)(n.renderer)){let{associatedField:u}=n.renderer;if(u){let c=o[e[u]];if(typeof(0,j.isValidNumber)(r)&&(0,j.isValidNumber)(c))i=Math.min(Math.round(r/c*100),100),i=Math.min(Math.round(r/c*100),100),s=isFinite(i);else{let m=parseFloat(r);if(Number.isFinite(m)){let d=parseFloat(c);Number.isFinite(d)&&(i=Math.min(Math.round(m/d*100),100),s=isFinite(i))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,Qo.default)(Ge,{});return(0,de.jsxs)("div",{className:l,tabIndex:-1,children:[s?(0,de.jsxs)("span",{className:`${Ge}-track`,children:[(0,de.jsx)("span",{className:`${Ge}-bg`}),(0,de.jsx)("span",{className:`${Ge}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,de.jsx)("span",{className:`${Ge}-text`,children:`${i} %`})]})};(0,j.registerComponent)("vuu.progress",rs,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var I=require("@vuu-ui/vuu-utils"),Uo=w(require("classnames"),1);var fe=require("@vuu-ui/vuu-utils"),ht=require("react"),ss=[void 0,void 0,void 0,void 0];function Go(t,e,o){var d;let n=(0,ht.useRef)(),[r,s,i,l]=n.current||ss,{type:u}=o,c=(0,fe.isTypeDescriptor)(u)?(d=u.formatting)==null?void 0:d.decimals:void 0,m=t===r&&(0,fe.isValidNumber)(e)&&(0,fe.isValidNumber)(s)&&o===i?(0,fe.getMovingValueDirection)(e,l,s,c):"";return(0,ht.useEffect)(()=>{n.current=[t,e,o,m]}),m}var yt=require("react/jsx-runtime"),is=String.fromCharCode(11014),ls=String.fromCharCode(11015),{KEY:as}=I.metadataKeys,xt="vuuBackgroundCell",Ue={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},us=t=>(0,I.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Ue.BackgroundOnly,Xo=({column:t,row:e})=>{let{key:o,type:n,valueFormatter:r}=t,s=e[o],i=us(n),l=Go(e[as],s,t),u=i===Ue.ArrowOnly||i===Ue.ArrowBackground?l===I.UP1||l===I.UP2?is:l===I.DOWN1||l===I.DOWN2?ls:null:null,c=l?" "+l:"",m=(0,Uo.default)(xt,c,{[`${xt}-arrowOnly`]:i===Ue.ArrowOnly,[`${xt}-arrowBackground`]:i===Ue.ArrowBackground});return(0,yt.jsxs)("div",{className:m,tabIndex:-1,children:[(0,yt.jsx)("div",{className:`${xt}-flasher`,children:u}),r(e[t.key])]})};console.log("register BackgroundCellNext");(0,I.registerComponent)("background-next",Xo,"cell-renderer",{description:"Change background color of cell when value changes",label:"Background Flash",serverDataType:["long","int","double"]});var vt=require("@vuu-ui/vuu-ui-controls"),_o=require("@salt-ds/core"),Yo=require("@salt-ds/lab"),Jo=w(require("classnames"),1),Zo=require("react");var K=require("react/jsx-runtime"),ee="vuuColumnList",qo="vuuColumnListItem",cs=({className:t,item:e,...o})=>{var n;return(0,K.jsxs)(vt.ListItem,{...o,className:(0,Jo.default)(t,qo),"data-name":e==null?void 0:e.name,children:[e!=null&&e.isCalculated?(0,K.jsx)("span",{className:`${ee}-icon`,"data-icon":"function"}):(0,K.jsx)(Yo.Switch,{className:`${ee}-switch`,checked:e==null?void 0:e.subscribed}),(0,K.jsx)("span",{className:`${ee}-text`,children:(n=e==null?void 0:e.label)!=null?n:e==null?void 0:e.name}),(0,K.jsx)(_o.Checkbox,{className:`${ee}-checkBox`,checked:(e==null?void 0:e.hidden)!==!0,disabled:(e==null?void 0:e.subscribed)!==!0})]})},Gt=({columnItems:t,onChange:e,onMoveListItem:o,...n})=>{let r=(0,Zo.useCallback)(s=>{let i=s.target,l=i.closest(`.${qo}`),{dataset:{name:u}}=l;if(u){let c=i.closest(`.${ee}-switch`),m=i.closest(`.${ee}-checkBox`);c?e(u,"subscribed",i.checked):m&&e(u,"hidden",i.checked===!1)}},[e]);return(0,K.jsxs)("div",{...n,className:ee,children:[(0,K.jsx)("div",{className:`${ee}-header`,children:(0,K.jsx)("span",{children:"Column Selection"})}),(0,K.jsxs)("div",{className:`${ee}-colHeadings`,children:[(0,K.jsx)("span",{children:"Column subscription"}),(0,K.jsx)("span",{children:"Visibility"})]}),(0,K.jsx)(vt.List,{ListItem:cs,allowDragDrop:!0,height:"100%",onChange:r,onMoveListItem:o,selectionStrategy:"none",source:t,itemHeight:33})]})};var Ot=require("@vuu-ui/vuu-utils"),D=require("@salt-ds/core");var en=require("@vuu-ui/vuu-ui-controls"),Tt=require("@salt-ds/core"),Yt=w(require("classnames"),1),tn=require("react");var X=require("@salt-ds/core"),Ut=require("@salt-ds/lab"),jo=require("@vuu-ui/vuu-utils"),ge=require("react"),W=require("react/jsx-runtime"),ms="vuuFormattingSettings",Xt=({column:t,onChange:e})=>{var u;let[o,n]=(0,ge.useState)((0,jo.getTypeSettingsFromColumn)(t)),r=(0,ge.useCallback)(c=>{(c.key==="Enter"||c.key==="Tab")&&e(o)},[o,e]),s=(0,ge.useCallback)(c=>{let{value:m}=c.target,d=m===""||isNaN(parseInt(m))?void 0:parseInt(m),b={...o,decimals:d};n(b)},[o]),i=(0,ge.useCallback)(c=>{let{checked:m}=c.target,d={...o,alignOnDecimals:m};n(d),e(d)},[o,e]),l=(0,ge.useCallback)(c=>{let{checked:m}=c.target,d={...o,zeroPad:m};n(d),e(d)},[o,e]);return(0,W.jsxs)("div",{className:ms,children:[(0,W.jsxs)(X.FormField,{"data-field":"decimals",children:[(0,W.jsx)(X.FormFieldLabel,{children:"Number of decimals"}),(0,W.jsx)(X.Input,{className:"vuuInput",onChange:s,onKeyDown:r,value:(u=o.decimals)!=null?u:""})]}),(0,W.jsxs)(X.FormField,{labelPlacement:"left",children:[(0,W.jsx)(X.FormFieldLabel,{children:"Align on decimals"}),(0,W.jsx)(Ut.Switch,{checked:o.alignOnDecimals,onChange:i,value:"align-decimals"})]}),(0,W.jsxs)(X.FormField,{labelPlacement:"left",children:[(0,W.jsx)(X.FormFieldLabel,{children:"Zero pad decimals"}),(0,W.jsx)(Ut.Switch,{checked:o.zeroPad,onChange:l,value:"zero-pad"})]})]})};var te=require("react/jsx-runtime"),_t="vuuColumnFormattingPanel",ps=t=>{var e;return(e=t.label)!=null?e:t.name},Jt=({availableRenderers:t,selectedCellRenderer:e,className:o,column:n,onChangeFormatting:r,onChangeRenderer:s,...i})=>{let l=(0,tn.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,te.jsx)(Xt,{column:n,onChange:r});default:return null}},[n,r]),{serverDataType:u="string"}=n;return(0,te.jsxs)("div",{...i,className:"vuuColumnSettingsPanel-header",children:[(0,te.jsx)("div",{children:"Formatting"}),(0,te.jsxs)(Tt.FormField,{children:[(0,te.jsx)(Tt.FormFieldLabel,{children:"Renderer"}),(0,te.jsx)(en.Dropdown,{className:(0,Yt.default)(`${_t}-renderer`),itemToString:ps,onSelectionChange:s,selected:e,source:t,width:"100%"})]}),(0,te.jsx)("div",{className:(0,Yt.default)(_t,o,`${_t}-${u}`),children:l})]})};var L=require("@vuu-ui/vuu-utils"),k=require("react"),ds=[{description:"Default formatter for columns with data type integer",label:"Default Renderer (data type int, long)",name:"default-int"}],fs=[{description:"Default formatter for columns with data type double",label:"Default Renderer (data type double)",name:"default-double"},...(0,L.getRegisteredCellRenderers)("double")],on=[{description:"Default formatter for columns with data type string",label:"Default Renderer (data type string)",name:"default-string"}],rn=t=>{switch(t.serverDataType){case"char":case"string":return on;case"int":case"long":return ds;case"double":return fs;default:return on}},nn=(t,e)=>{if((0,L.isTypeDescriptor)(e.type)){let{renderer:n}=e.type;if((0,L.isColumnTypeRenderer)(n)){let r=t.find(s=>s.name===n.name);if(r)return r}}return rn(e)[0]},gs=t=>{let e=t.closest(".saltFormField");if(e&&e.dataset.field){let{dataset:{field:o}}=e;return o}else throw Error("named form field not found")},Cs=(t,e)=>{if(e.name==="::")return e;{let o=t.find(n=>n.name===e.name);if(o)return o;throw Error(`columns does not contain column ${name}`)}},Xe=(t,e)=>({...t,columns:t.columns.map(o=>o.name===e.name?e:o)}),sn=({column:t,onConfigChange:e,onCreateCalculatedColumn:o,tableConfig:n})=>{let[r,s]=(0,k.useState)(Cs(n.columns,t)),i=(0,k.useMemo)(()=>rn(r),[r]),l=(0,k.useRef)(nn(i,r)),u=(0,k.useCallback)(()=>{e(Xe(n,r))},[r,e,n]),c=(0,k.useCallback)(f=>{let h=f.target,v=gs(h),{value:E}=h;switch(v){case"column-label":s(y=>({...y,label:E}));break;case"column-name":s(y=>(0,L.setCalculatedColumnName)(y,E));break;case"column-width":s(y=>({...y,width:parseInt(E)}));break;case"column-alignment":if((0,L.isValidColumnAlignment)(E)){let y={...r,align:E||void 0};s(y),e(Xe(n,y))}break;case"column-pin":if((0,L.isValidPinLocation)(E)){let y={...r,pin:E||void 0};s(y),e(Xe(n,y));break}}},[r,e,n]),m=(0,k.useCallback)((f,h)=>{if(h){let v=(0,L.updateColumnRenderer)(r,h);l.current=h,s(v),e(Xe(n,v))}},[r,e,n]),d=(0,k.useCallback)(f=>{let h=(0,L.updateColumnType)(r,f);s(h),e(Xe(n,h))},[r,e,n]),b=(0,k.useCallback)(({moveBy:f})=>{let{columns:h}=n,v=h.indexOf(r)+f,E=h[v];E&&(l.current=nn(i,E),s(E))},[i,r,n]),a=(0,k.useCallback)(()=>{b({moveBy:1})},[b]),p=(0,k.useCallback)(()=>{b({moveBy:-1})},[b]),g=(0,k.useCallback)(f=>{o({...r,...f})},[r,o]);return{availableRenderers:i,selectedCellRenderer:l.current,column:r,navigateNextColumn:a,navigatePrevColumn:p,onChange:c,onChangeFormatting:d,onChangeRenderer:m,onInputCommit:u,onSave:g}};var yn=require("@vuu-ui/vuu-ui-controls"),Le=require("@vuu-ui/vuu-utils"),z=require("@salt-ds/core"),Ht=require("react");var M=require("@vuu-ui/vuu-codemirror"),mo=require("@vuu-ui/vuu-utils"),ue=require("react");var U=require("@vuu-ui/vuu-codemirror");var ln=require("@lezer/lr"),Et=ln.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 bs=U.LRLanguage.define({name:"VuuColumnExpression",parser:Et.configure({props:[(0,U.styleTags)({Function:U.tags.variableName,String:U.tags.string,Or:U.tags.emphasis,Operator:U.tags.operator})]})}),Zt=()=>new U.LanguageSupport(bs);var qt=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},jt=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},Ye,be,eo=class{constructor(e="unknown"){G(this,Ye,[{type:"unknown"},{type:"unknown"}]);G(this,be,void 0);this.type="arithmeticExpression";ae(this,be,e)}get op(){return C(this,be)}set op(e){ae(this,be,e)}get expressions(){return C(this,Ye)}toJSON(){return{type:this.type,op:C(this,be),expressions:C(this,Ye)}}};Ye=new WeakMap,be=new WeakMap;var Re,to=class{constructor(e){G(this,Re,[]);this.type="callExpression";this.functionName=e}get expressions(){return C(this,Re)}get arguments(){return C(this,Re)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:C(this,Re).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Re=new WeakMap;var Je,Se,we=class{constructor(){G(this,Je,[{type:"unknown"},{type:"unknown"}]);G(this,Se,"unknown");this.type="relationalExpression"}get op(){return C(this,Se)}set op(e){ae(this,Se,e)}get expressions(){return C(this,Je)}toJSON(){return{type:this.type,op:C(this,Se),expressions:C(this,Je)}}};Je=new WeakMap,Se=new WeakMap;var Ze,Pe,De=class{constructor(e){G(this,Ze,[{type:"unknown"},{type:"unknown"}]);G(this,Pe,void 0);this.type="booleanCondition";ae(this,Pe,e)}get op(){return C(this,Pe)}get expressions(){return C(this,Ze)}toJSON(){return{type:this.type,op:C(this,Pe),expressions:C(this,Ze).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Ze=new WeakMap,Pe=new WeakMap;var _,_e=class{constructor(e){G(this,_,void 0);this.type="conditionalExpression";ae(this,_,[e?new De(e):new we,{type:"unknown"},{type:"unknown"}])}get expressions(){return C(this,_)}get condition(){return C(this,_)[0]}get truthyExpression(){return C(this,_)[1]}set truthyExpression(e){C(this,_)[1]=e}get falsyExpression(){return C(this,_)[2]}set falsyExpression(e){C(this,_)[2]=e}toJSON(){var e,o,n,r,s;return{type:this.type,condition:(o=(e=this.condition).toJSON)==null?void 0:o.call(e),truthyExpression:this.truthyExpression,falsyExpression:(s=(r=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:r.call(n))!=null?s:this.falsyExpression}}};_=new WeakMap;var Ce=t=>t.type==="unknown",wt=t=>t.type==="arithmeticExpression",hs=t=>t.type==="callExpression",Ee=t=>t.type==="conditionalExpression",xs=t=>t.type==="relationalExpression"||t.type==="booleanCondition";var ys=t=>t.type==="booleanCondition",no=t=>(t==null?void 0:t.type)==="relationalExpression";var Q=t=>{if(Ce(t))return t;if(no(t)){let[e,o]=t.expressions;if(N(e))return Q(e);if(t.op==="unknown")return t;if(N(o))return Q(o)}else if(xs(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return Q(o)}else if(Ee(t)){let{condition:e,truthyExpression:o,falsyExpression:n}=t;if(N(e))return Q(e);if(N(o))return Q(o);if(N(n))return Q(n)}else if(wt(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return Q(o)}},Dt=(t,e,o)=>{let{expressions:n=[]}=t;if(n.includes(e)){let r=n.indexOf(e);return n.splice(r,1,o),!0}else for(let r of n)if(Dt(r,e,o))return!0;return!1},N=t=>Ce(t)?!0:Ee(t)?N(t.condition)||N(t.truthyExpression)||N(t.falsyExpression):no(t)||ys(t)?t.op===void 0||t.expressions.some(e=>N(e)):!1,an=(t,e)=>{let o=Q(t);o?o.expressions?o.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},x,he,oo=class{constructor(){G(this,x,void 0);G(this,he,[])}setCondition(e){if(C(this,x)===void 0)this.addExpression(new _e(e));else if(Ee(C(this,x))){if(N(C(this,x).condition)){let o=e?new De(e):new we;this.addExpression(o)}else if(Ce(C(this,x).truthyExpression))C(this,x).truthyExpression=new _e(e);else if(N(C(this,x).truthyExpression)){let o=e?new De(e):new we;this.addExpression(o)}else if(Ce(C(this,x).falsyExpression))C(this,x).falsyExpression=new _e(e);else if(N(C(this,x).falsyExpression)){let o=e?new De(e):new we;this.addExpression(o)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(C(this,he).length>0){let o=C(this,he).at(-1);o==null||o.arguments.push(e)}else if(C(this,x)===void 0)ae(this,x,e);else if(wt(C(this,x))){let o=Q(C(this,x));o&&Ce(o)&&Dt(C(this,x),o,e)}else if(Ee(C(this,x))&&N(C(this,x))){let o=Q(C(this,x));o&&Ce(o)?Dt(C(this,x),o,e):o&&an(o,e)}}setFunction(e){let o=new to(e);this.addExpression(o),C(this,he).push(o)}setColumn(e){this.addExpression(new jt(e))}setArithmeticOp(e){let o=e,n=C(this,x);wt(n)&&(n.op=o)}setRelationalOperator(e){let o=e;if(C(this,x)&&Ee(C(this,x))){let n=Q(C(this,x));no(n)?n.op=o:console.error(`no target expression found (op = ${e})`)}}setValue(e){let o=new qt(e);if(C(this,x)===void 0)ae(this,x,o);else if(wt(C(this,x)))this.addExpression(o);else if(hs(C(this,x)))C(this,x).arguments.push(o);else if(Ee(C(this,x)))if(N(C(this,x))){let n=Q(C(this,x));n&&Ce(n)?Dt(C(this,x),n,o):n&&an(n,o)}else console.log("what do we do with value, in a complete expression")}closeBrace(){C(this,he).pop()}get expression(){return C(this,x)}toJSON(){var e;return(e=C(this,x))==null?void 0:e.toJSON()}};x=new WeakMap,he=new WeakMap;var ro=(t,e)=>{let o=new oo,n=t.cursor();do{let{name:r,from:s,to:i}=n;switch(r){case"AndCondition":o.setCondition("and");break;case"OrCondition":o.setCondition("or");break;case"RelationalExpression":o.setCondition();break;case"ArithmeticExpression":o.addExpression(new eo);break;case"Column":{let l=e.substring(s,i);o.setColumn(l)}break;case"Function":{let l=e.substring(s,i);o.setFunction(l)}break;case"Times":case"Divide":case"Plus":case"Minus":{let l=e.substring(s,i);o.setArithmeticOp(l)}break;case"RelationalOperator":{let l=e.substring(s,i);o.setRelationalOperator(l)}break;case"False":case"True":{let l=e.substring(s,i);o.setValue(l==="true")}break;case"String":o.setValue(e.substring(s+1,i-1));break;case"Number":o.setValue(parseFloat(e.substring(s,i)));break;case"CloseBrace":o.closeBrace();break;default:}}while(n.next());return o.toJSON()};var vs=Et.configure({strict:!0}),un=["Number","String"],Rt=[...un,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],so=t=>{try{return vs.parse(t),!0}catch{return!1}},St=t=>{let{lastChild:e}=t;for(;e&&!Rt.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},io=t=>{if((t==null?void 0:t.name)==="RelationalExpression"){let{firstChild:e}=t,o=St(t);if((e==null?void 0:e.name)==="Column"&&typeof(o==null?void 0:o.name)=="string"&&un.includes(o.name))return!0}return!1};var xe=require("@vuu-ui/vuu-codemirror"),Ts=xe.HighlightStyle.define([{tag:xe.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:xe.tags.comment,color:"green",fontStyle:"italic"}]),cn=(0,xe.syntaxHighlighting)(Ts);var mn=require("@vuu-ui/vuu-codemirror"),pn=mn.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 P=require("@vuu-ui/vuu-codemirror"),uo=require("react");var Es=(t,e)=>e?t.map(o=>{var n;return{...o,apply:typeof o.apply=="function"?o.apply:`${e}${(n=o.apply)!=null?n:o.label}`}}):t,ws=t=>t===void 0?!1:["Times","Divide","Plus","Minus"].includes(t.name),qe=t=>({apply:()=>{t==null||t()},label:"Done",boost:10}),Me=(t,e)=>{var r;let{lastChild:o}=t,{pos:n}=e;for(;o;)if(o.from<n&&Rt.includes(o.name)){if(o.name==="ParenthesizedExpression"){let i=(r=o.firstChild)==null?void 0:r.nextSibling;i&&(o=i)}return o}else o=o.prevSibling},dn=(t,e)=>{var o;if(t.name==="ArgList"){let n=t.prevSibling;if(n)return(0,P.getValue)(n,e)}else if(t.name==="OpenBrace"){let n=(o=t.parent)==null?void 0:o.prevSibling;if((n==null?void 0:n.name)==="Function")return(0,P.getValue)(n,e)}},fn=(t,e)=>{if(t.name==="RelationalExpression"){let o=St(t);if((o==null?void 0:o.name)==="RelationalOperator")return(0,P.getValue)(o,e)}else{let o=t.prevSibling;if((o==null?void 0:o.name)==="RelationalOperator")return(0,P.getValue)(o,e)}},co=(t,e)=>{var o;if(t.name==="RelationalExpression"){if(((o=t.firstChild)==null?void 0:o.name)==="Column")return(0,P.getValue)(t.firstChild,e)}else{let n=t.prevSibling;if((n==null?void 0:n.name)==="Column")return(0,P.getValue)(n,e);if((n==null?void 0:n.name)==="RelationalOperator")return co(n,e)}},lo=async(t,e,o,n={})=>{let r=await e.getSuggestions(o,n),{startsWith:s=""}=n;return{from:t.pos-s.length,options:r}},ao=(t,e,o,n,r)=>{let s=Me(t,e);switch(console.log(`conditional expression last child ${s==null?void 0:s.name}`),s==null?void 0:s.name){case"If":return lo(e,o,"expression",{prefix:"( "});case"OpenBrace":return lo(e,o,"expression");case"Condition":return lo(e,o,"expression",{prefix:", "});case"CloseBrace":if(n){let i=[qe(r)];return{from:e.pos,options:i}}}},Ds=(t,e)=>{let o=[qe(e)];return{from:t.pos,options:o}},gn=(t,e)=>{let o=(0,uo.useCallback)(async(n,r,s={})=>{let i=await t.getSuggestions(r,s),{startsWith:l=""}=s;return{from:n.pos-l.length,options:i}},[t]);return(0,uo.useCallback)(async n=>{var d,b;let{state:r,pos:s}=n,i=(d=n.matchBefore(/\w*/))!=null?d:{from:0,to:0,text:void 0},u=(0,P.syntaxTree)(r).resolveInner(s,-1),c=r.doc.toString(),m=so(c);switch(u.name){case"If":return console.log("conditional expression If"),o(n,"expression",{prefix:"( "});case"Condition":{let a=Me(u,n);if((a==null?void 0:a.name)==="Column"){let p=(0,P.getPreviousNode)(a);if((p==null?void 0:p.name)!=="RelationalOperator")return o(n,"condition-operator",{columnName:(0,P.getValue)(a,r)})}else if((a==null?void 0:a.name)==="RelationalOperator")return o(n,"expression");console.log(`condition last child ${a==null?void 0:a.name}`)}break;case"ConditionalExpression":return ao(u,n,t);case"RelationalExpression":{if(io(u))return{from:n.pos,options:P.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let a=fn(u,r),p=co(u,r);if(a)return o(n,"expression");{let g=await t.getSuggestions("condition-operator",{columnName:p});return{from:n.pos,options:g}}}}break;case"RelationalOperator":return o(n,"expression");case"String":{let a=fn(u,r),p=co(u,r),{from:g,to:f}=u;if(f-g===2&&n.pos===g+1){if(p&&a)return o(n,"columnValue",{columnName:p,operator:a,startsWith:i.text})}else if(f-g>2&&n.pos===f)return o(n,"expression",{prefix:", "})}break;case"ArithmeticExpression":{let a=Me(u,n);if((a==null?void 0:a.name)==="Column")return o(n,"expression");if(ws(a)){let p=a.name;return o(n,"column",{operator:p})}}break;case"OpenBrace":{let a=dn(u,r);return o(n,"expression",{functionName:a})}break;case"ArgList":{let a=dn(u,r),p=Me(u,n),g=(p==null?void 0:p.name)==="OpenBrace"?void 0:",",f=await t.getSuggestions("expression",{functionName:a});return f=g?Es(f,", "):f,(p==null?void 0:p.name)!=="OpenBrace"&&(p==null?void 0:p.name)!=="Comma"&&(f=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(f)),{from:n.pos,options:f}}case"Equal":if(c.trim()==="=")return o(n,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(n.pos===0)return o(n,"expression");{let a=Me(u,n);if((a==null?void 0:a.name)==="Column"){if(m){let p=[qe(e.current)],g=(0,P.getValue)(a,r),f=await t.getSuggestions("operator",{columnName:g});return{from:n.pos,options:p.concat(f)}}}else if((a==null?void 0:a.name)==="CallExpression"){if(m)return{from:n.pos,options:[qe(e.current)]}}else if((a==null?void 0:a.name)==="ArithmeticExpression"){if(m){let p=[qe(e.current)],g=Me(a,n);if((g==null?void 0:g.name)==="Column"){let f=(0,P.getValue)(g,r),h=await t.getSuggestions("operator",{columnName:f});p=p.concat(h)}return{from:n.pos,options:p}}}else if((a==null?void 0:a.name)==="ConditionalExpression")return ao(a,n,t,m,e.current);break}case"Column":if(await t.isPartialMatch("expression",void 0,i.text))return o(n,"expression",{startsWith:i.text});break;case"Comma":{let a=(0,P.getNamedParentNode)(u);if((a==null?void 0:a.name)==="ConditionalExpression")return o(n,"expression")}break;case"CloseBrace":{let a=(0,P.getNamedParentNode)(u);if((a==null?void 0:a.name)==="ConditionalExpression")return ao(a,n,t,m,e.current);if((a==null?void 0:a.name)==="ArgList"&&m)return Ds(n,e.current)}break;default:((b=u==null?void 0:u.prevSibling)==null?void 0:b.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[o,e,t])};var Pt=t=>{if(t.current==null)throw Error("EditorView not defined");return t.current},Rs=()=>"vuuSuggestion",Ss=()=>console.log("noooop"),Ps=t=>"expressionType"in t,Ms=t=>{if(Ps(t)){let e=(0,mo.createEl)("div","expression-type-container"),o=(0,mo.createEl)("span","expression-type",t.expressionType);return e.appendChild(o),e}else return null},po=({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n})=>{let r=(0,ue.useRef)(null),s=(0,ue.useRef)(Ss),i=(0,ue.useRef)(),l=gn(n,s),[u,c]=(0,ue.useMemo)(()=>{let m=()=>{let g=Pt(i),f=g.state.doc.toString(),h=(0,M.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(h){let v=ro(h,f);return[f,v]}else return["",void 0]},d=()=>{Pt(i).setState(p())},b=()=>{let[g,f]=m();e==null||e(g,f)},a=g=>M.keymap.of([{key:g,run(){return(0,M.startCompletion)(Pt(i)),!0}}]),p=()=>M.EditorState.create({doc:o,extensions:[M.minimalSetup,(0,M.autocompletion)({addToOptions:[{render:Ms,position:70}],override:[l],optionClass:Rs}),Zt(),M.keymap.of(M.defaultKeymap),a("ArrowDown"),M.EditorView.updateListener.of(g=>{let f=Pt(i);if(g.docChanged){(0,M.startCompletion)(f);let h=f.state.doc.toString();t==null||t(h)}}),pn,cn]});return s.current=()=>{b()},[p,d]},[l,t,e,o]);return(0,ue.useEffect)(()=>{if(!r.current)throw Error("editor not in dom");return i.current=new M.EditorView({state:u(),parent:r.current}),()=>{var m;(m=i.current)==null||m.destroy()}},[l,u]),{editorRef:r,clearInput:c}};var Cn=require("react/jsx-runtime"),Hs="vuuColumnExpressionInput",fo=({onChange:t,onSubmitExpression:e,source:o="",suggestionProvider:n})=>{let{editorRef:r}=po({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n});return(0,Cn.jsx)("div",{className:`${Hs}`,ref:r})};var J=require("@vuu-ui/vuu-codemirror"),Mt=require("@vuu-ui/vuu-data-react"),Ae=require("@vuu-ui/vuu-utils"),Oe=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 Y=require("@vuu-ui/vuu-utils"),bn=({name:t,description:e,example:o,params:n,type:r})=>{let s=(0,Y.createEl)("div","vuuFunctionDoc"),i=(0,Y.createEl)("div","function-heading"),l=(0,Y.createEl)("span","function-name",t),u=(0,Y.createEl)("span","param-list",n.description),c=(0,Y.createEl)("span","function-type",r);i.appendChild(l),i.appendChild(u),i.appendChild(c);let m=(0,Y.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(m),o){let d=(0,Y.createEl)("div","example-container","Example:"),b=(0,Y.createEl)("div","example-expression",o.expression),a=(0,Y.createEl)("div","example-result",o.result);d.appendChild(b),d.appendChild(a),s.appendChild(d)}return s};var Os=[],ye=t=>t.map(e=>{var o;return{...e,apply:((o=e.apply)!=null?o:e.label)+" "}}),As=(t,{functionName:e,operator:o})=>{if(o)return t.filter(Ae.isNumericColumn);if(e){let n=He.find(r=>r.name===e);if(n)switch(n.accepts){case"string":return t.filter(Ae.isTextColumn);case"number":return t.filter(Ae.isNumericColumn);default:return t}}return t},hn=(t,e)=>As(t,e).map(n=>{var s;let r=(s=n.label)!=null?s:n.name;return{apply:e.prefix?`${e.prefix}${r}`:r,label:r,boost:5,type:"column",expressionType:n.serverDataType}}),Ls=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Ns=t=>t===void 0||(0,Ae.isNumericColumn)(t)?Ls:Os,ks=t=>{switch(t.serverDataType){case"string":case"char":return ye(J.stringOperators);case"int":case"long":case"double":return ye(J.numericOperators)}},go=t=>({apply:`${t.name}( `,boost:2,expressionType:t.type,info:()=>bn(t),label:t.name,type:"function"}),Fs=t=>{if(t){if(typeof t.accepts=="string")return t.accepts;if(Array.isArray(t.accepts))return t.accepts.every(e=>e==="string")?"string":"any"}return"any"},Is=He.map(go),Ks=({functionName:t})=>{if(t){let e=He.find(n=>n.name===t),o=Fs(e);if(e)switch(o){case"string":return He.filter(n=>n.type==="string"||n.type==="variable").map(go);case"number":return He.filter(n=>n.type==="number"||n.type==="variable").map(go);default:}}return Is},zs={},Co=({columns:t,table:e})=>{let o=(0,Oe.useCallback)(l=>l?t.find(u=>u.name===l):void 0,[t]),n=(0,Oe.useRef)(),r=(0,Mt.useTypeaheadSuggestions)(),s=(0,Oe.useCallback)(async(l,u=zs)=>{let{columnName:c,functionName:m,operator:d,prefix:b}=u;switch(l){case"expression":{let a=await ye(hn(t,{functionName:m,prefix:b})).concat(Ks(u));return n.current=a}case"column":{let a=await hn(t,u);return n.current=ye(a)}case"operator":{let a=await Ns(o(c));return n.current=ye(a)}case"relational-operator":{let a=await(0,J.getRelationalOperators)(o(c));return n.current=ye(a)}case"condition-operator":{let a=o(c);if(a){let p=await ks(a);if(p)return n.current=ye(p)}}break;case"columnValue":if(c&&d){let a=(0,Mt.getTypeaheadParams)(e,c),p=await r(a);return n.current=(0,J.toSuggestions)(p,{suffix:""}),n.current.forEach(g=>{g.apply=(f,h,v)=>{let E=new J.AnnotationType,y=v+h.label.length+1;f.dispatch({changes:{from:v,insert:h.label},selection:{anchor:y,head:y},annotations:E.of(h)})}}),n.current}break}return[]},[t,o,r,e]),i=(0,Oe.useCallback)(async(l,u,c)=>{let{current:m}=n,d=!1,b=m||await s(l,{columnName:u});if(c&&b)for(let a of b){if(a.label===c)return!1;a.label.startsWith(c)&&(d=!0)}return d},[s]);return{getSuggestions:s,isPartialMatch:i}};var ne=require("@vuu-ui/vuu-utils"),oe=require("react"),Vs=t=>{let[e,o,n]=(0,ne.getCalculatedColumnDetails)(t);return n===""?{...t,name:`${e}:${o}:string`}:t},xn=({column:t,onSave:e})=>{let[o,n]=(0,oe.useState)(Vs(t)),r=(0,oe.useRef)((0,ne.getCalculatedColumnDetails)(o)[1]),s=(0,oe.useCallback)(c=>{let{value:m}=c.target;n(d=>(0,ne.setCalculatedColumnName)(d,m))},[]),i=(0,oe.useCallback)(c=>{r.current=c.trim()},[]),l=(0,oe.useCallback)((c,m)=>{typeof m=="string"&&n(d=>(0,ne.setCalculatedColumnType)(d,m))},[]),u=(0,oe.useCallback)(()=>{let c=(0,ne.setCalculatedColumnExpression)(o,r.current);n(c),e(c)},[o,e]);return{column:o,onChangeExpression:i,onChangeName:s,onChangeType:l,onSave:u}};var A=require("react/jsx-runtime"),je="vuuColumnExpressionPanel",bo=({column:t,onSave:e,tableConfig:o,vuuTable:n})=>{let r=(0,Ht.useRef)(null),{column:s,onChangeExpression:i,onChangeName:l,onChangeType:u,onSave:c}=xn({column:t,onSave:e}),m=Co({columns:o.columns,table:n}),d=(0,Ht.useCallback)(()=>{requestAnimationFrame(()=>{var b,a;(a=(b=r.current)==null?void 0:b.querySelector("button"))==null||a.focus()})},[]);return(0,A.jsxs)("div",{className:je,children:[(0,A.jsx)("div",{className:"vuuColumnSettingsPanel-header",children:(0,A.jsx)("span",{children:"Calculation"})}),(0,A.jsxs)(z.FormField,{"data-field":"column-name",children:[(0,A.jsx)(z.FormFieldLabel,{children:"Column Name"}),(0,A.jsx)(z.Input,{className:"vuuInput",onChange:l,value:(0,Le.getCalculatedColumnName)(s)})]}),(0,A.jsxs)(z.FormField,{"data-field":"column-expression",children:[(0,A.jsx)(z.FormFieldLabel,{children:"Expression"}),(0,A.jsx)(fo,{onChange:i,onSubmitExpression:d,source:(0,Le.getCalculatedColumnExpression)(s),suggestionProvider:m})]}),(0,A.jsxs)(z.FormField,{"data-field":"type",children:[(0,A.jsx)(z.FormFieldLabel,{children:"Column type"}),(0,A.jsx)(yn.Dropdown,{className:`${je}-type`,onSelectionChange:u,ref:r,selected:(0,Le.getCalculatedColumnType)(s)||null,source:["double","long","string"],width:"100%"})]}),(0,A.jsxs)("div",{className:"vuuColumnSettingsPanel-buttonBar","data-align":"right",children:[(0,A.jsx)(z.Button,{className:`${je}-buttonCancel`,tabIndex:-1,children:"cancel"}),(0,A.jsx)(z.Button,{className:`${je}-buttonApply`,tabIndex:-1,children:"apply"}),(0,A.jsx)(z.Button,{className:`${je}-buttonSave`,onClick:c,variant:"cta",children:"save"})]})]})};var ho=require("@vuu-ui/vuu-ui-controls");var T=require("react/jsx-runtime"),et="vuuColumnSettingsPanel",$s=({column:t,onConfigChange:e,onCreateCalculatedColumn:o,tableConfig:n,vuuTable:r})=>{let s=t.name==="::",{availableRenderers:i,selectedCellRenderer:l,column:u,navigateNextColumn:c,navigatePrevColumn:m,onChange:d,onChangeFormatting:b,onChangeRenderer:a,onInputCommit:p,onSave:g}=sn({column:t,onConfigChange:e,onCreateCalculatedColumn:o,tableConfig:n}),{serverDataType:f,align:h=(0,Ot.getDefaultAlignment)(f),name:v,label:E=v,pin:y,width:B}=u;return(0,T.jsxs)("div",{className:et,children:[(0,T.jsx)("div",{className:`${et}-header`,children:(0,T.jsx)("span",{children:v})}),(0,T.jsxs)(D.FormField,{"data-field":"column-label",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Column Label"}),(0,T.jsx)(ho.VuuInput,{className:"vuuInput",onChange:d,onCommit:p,value:E})]}),(0,T.jsxs)(D.FormField,{"data-field":"column-width",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Column Width"}),(0,T.jsx)(ho.VuuInput,{className:"vuuInput",onChange:d,value:B,onCommit:p})]}),(0,T.jsxs)(D.FormField,{"data-field":"column-alignment",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Alignment"}),(0,T.jsxs)(D.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:d,value:h,children:[(0,T.jsx)(D.ToggleButton,{"data-icon":"align-left",className:"vuuIconToggleButton",value:"left"}),(0,T.jsx)(D.ToggleButton,{"data-icon":"align-right",className:"vuuIconToggleButton",value:"right"})]})]}),(0,T.jsxs)(D.FormField,{"data-field":"column-pin",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Pin Column"}),(0,T.jsxs)(D.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:d,value:y!=null?y:"",children:[(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"cross-circle",value:""}),(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-left",value:"left"}),(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-float",value:"floating"}),(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-right",value:"right"})]})]}),(0,T.jsx)(Jt,{availableRenderers:i,selectedCellRenderer:l,column:u,onChangeFormatting:b,onChangeRenderer:a}),(0,Ot.isCalculatedColumn)(u.name)?(0,T.jsx)(bo,{column:u,onSave:g,tableConfig:n,vuuTable:r}):(0,T.jsxs)("div",{className:`${et}-buttonBar`,"data-align":s?"right":void 0,children:[(0,T.jsx)(D.Button,{className:`${et}-buttonNavPrev`,variant:"secondary","data-icon":"arrow-left",onClick:m,children:"PREVIOUS"}),(0,T.jsx)(D.Button,{className:`${et}-buttonNavNext`,variant:"secondary","data-icon":"arrow-right",onClick:c,children:"NEXT"})]})]})};var ot=require("react"),vn=w(require("classnames"),1);var re=require("react/jsx-runtime"),tt="vuuDatasourceStats",xo=new Intl.NumberFormat,Bs=({className:t,dataSource:e})=>{let[o,n]=(0,ot.useState)(e.range),[r,s]=(0,ot.useState)(e.size);(0,ot.useEffect)(()=>{s(e.size),e.on("resize",s),e.on("range",n)},[e]);let i=(0,vn.default)(tt,t),l=xo.format(o.from),u=xo.format(o.to-1),c=xo.format(r);return(0,re.jsxs)("div",{className:i,children:[(0,re.jsx)("span",{className:`${tt}-label`,children:"Row count"}),(0,re.jsx)("span",{className:`${tt}-range`,children:l}),(0,re.jsx)("span",{children:"-"}),(0,re.jsx)("span",{className:`${tt}-range`,children:u}),(0,re.jsx)("span",{children:"of"}),(0,re.jsx)("span",{className:`${tt}-size`,children:c})]})};var S=require("@salt-ds/core");var Ir=require("@vuu-ui/vuu-layout");var Tn=require("react");var Ws=require("react/jsx-runtime");var Qs=require("@vuu-ui/vuu-utils");var Gs=require("@vuu-ui/vuu-utils"),Ne=require("@vuu-ui/vuu-utils");var{Average:oc,Count:nc,Distinct:rc,High:sc,Low:ic,Sum:lc}=Ne.AggregationType;var Pi=require("@vuu-ui/vuu-popups"),Zn=require("@salt-ds/core");var ve=require("@vuu-ui/vuu-utils"),kn=require("react");var V=require("@vuu-ui/vuu-utils"),Mn=w(require("classnames")),rt=require("react");var At=require("@vuu-ui/vuu-utils"),wn=require("@vuu-ui/vuu-ui-controls"),Dn=w(require("classnames")),se=require("react");var nt=require("react/jsx-runtime"),{KEY:En}=At.metadataKeys,yo=(0,se.memo)(({className:t,column:e,columnMap:o,onClick:n,row:r})=>{let s=(0,se.useRef)(null),{align:i,CellRenderer:l,key:u,pin:c,editable:m,resizing:d,valueFormatter:b}=e,[a,p]=(0,se.useState)(!1),g=b(r[u]),[f,h]=(0,se.useState)(g),v=()=>{var q;(q=s.current)==null||q.focus()},E=q=>{q.key==="Enter"&&p(!0)},y=(0,se.useCallback)(q=>{n==null||n(q,e)},[e,n]),B=()=>{p(!0)},We=(q="",No="",Vr=!0,$r=!1)=>{var ko;p(!1),$r?h(q):No!==q&&h(No),Vr===!1&&((ko=s.current)==null||ko.focus())},Qt=(0,Dn.default)(t,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,Lo=(0,At.getColumnStyle)(e);return m?(0,nt.jsx)("div",{className:Qt,"data-editable":!0,role:"cell",style:Lo,onKeyDown:E,children:(0,nt.jsx)(wn.EditableLabel,{editing:a,value:f,onChange:h,onMouseDownCapture:v,onEnterEditMode:B,onExitEditMode:We,onKeyDown:E,ref:s,tabIndex:0},"title")}):(0,nt.jsx)("div",{className:Qt,role:"cell",style:Lo,onClick:y,children:l?(0,nt.jsx)(l,{column:e,columnMap:o,row:r}):g})},Us);yo.displayName="TableCell";function Us(t,e){return t.column===e.column&&t.onClick===e.onClick&&t.row[En]===e.row[En]&&t.row[t.column.key]===e.row[e.column.key]}var Fe=require("@vuu-ui/vuu-utils"),Rn=require("react");var ke=require("react/jsx-runtime"),{IS_LEAF:Xs}=Fe.metadataKeys,Sn=({column:t,onClick:e,row:o})=>{let{columns:n}=t,[r,s]=(0,Fe.getGroupValueAndOffset)(n,o),i=(0,Rn.useCallback)(m=>{e==null||e(m,t)},[t,e]),l=(0,Fe.getColumnStyle)(t),u=o[Xs],c=Array(s).fill(0).map((m,d)=>(0,ke.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,ke.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:u?void 0:i,role:"cell",style:l,children:[c,u?null:(0,ke.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,ke.jsx)("span",{children:r})]})};var st=require("react/jsx-runtime"),{IDX:_s,IS_EXPANDED:Ys,SELECTED:Js}=V.metadataKeys,{True:Pn,First:Zs,Last:qs}=V.RowSelected,Ie="vuuTableRow",js=(0,rt.memo)(function({columnMap:e,columns:o,offset:n,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[_s]:u,[Ys]:c,[Js]:m}=l,d=(0,Mn.default)(Ie,{[`${Ie}-even`]:u%2===0,[`${Ie}-expanded`]:c,[`${Ie}-selected`]:m&Pn,[`${Ie}-selectedStart`]:m&Zs,[`${Ie}-selectedEnd`]:m&qs}),b=(0,rt.useCallback)(p=>{let g=p.shiftKey,f=p.ctrlKey||p.metaKey;r==null||r(l,g,f)},[r,l]),a=(0,rt.useCallback)((p,g)=>{((0,V.isGroupColumn)(g)||(0,V.isJsonGroup)(g,l))&&(p.stopPropagation(),s==null||s(l,g))},[s,l]);return(0,st.jsxs)("div",{"aria-selected":m&Pn?!0:void 0,"aria-rowindex":u,className:d,onClick:b,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,st.jsx)("div",{role:"cell",style:{width:i}}):null,o.filter(V.notHidden).map(p=>{let g=(0,V.isGroupColumn)(p),f=(0,V.isJsonColumn)(p);return(0,st.jsx)(g?Sn:yo,{column:p,columnMap:e,onClick:g||f?a:void 0,row:l},p.name)})]})});var oi=w(require("classnames")),ni=require("react");var Hn=require("react");var On=require("react/jsx-runtime");var ui=w(require("classnames")),Ln=require("react");var ri=w(require("classnames"));var An=require("react/jsx-runtime");var ci=require("@vuu-ui/vuu-popups");var si=require("@vuu-ui/vuu-popups"),ii=w(require("classnames")),li=require("react");var ai=require("react/jsx-runtime");var Nn=require("react/jsx-runtime");var Fn=require("react/jsx-runtime");var{RENDER_IDX:bm}=ve.metadataKeys;var Ri=require("@vuu-ui/vuu-popups"),Ke=require("@vuu-ui/vuu-utils"),ct=require("react");var In=require("@vuu-ui/vuu-data-react"),Lt=require("@vuu-ui/vuu-utils"),it=require("react"),{SELECTED:xm}=Lt.metadataKeys;var mi=require("@vuu-ui/vuu-ui-controls"),Kn=require("react");var hi=require("@vuu-ui/vuu-utils"),lt=require("react");function pi(t,...e){let o=new Set(t);for(let n of e)for(let r of n)o.add(r);return o}var zn="ArrowUp",Vn="ArrowDown",$n="ArrowLeft",Bn="ArrowRight";var Wn="Home",Qn="End",Gn="PageUp",Un="PageDown";var di=new Set(["Enter","Delete"," "]),fi=new Set(["Tab"]),gi=new Set(["ArrowRight","ArrowLeft"]),Ci=new Set([Wn,Qn,Gn,Un,Vn,$n,Bn,zn]),bi=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Em=pi(di,Ci,gi,bi,fi);var vi=require("@vuu-ui/vuu-utils"),Nt=require("react");var vo=require("react");var xi=new Map,yi=(t,e,o)=>{switch(o){case"height":return e.height;case"clientHeight":return t.clientHeight;case"clientWidth":return t.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(t.scrollHeight);case"scrollWidth":return Math.ceil(t.scrollWidth);case"width":return e.width;default:return 0}},km=new ResizeObserver(t=>{for(let e of t){let{target:o,borderBoxSize:n,contentBoxSize:r}=e,s=xi.get(o);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:u,inlineSize:c}]=r,{onResize:m,measurements:d}=s,b=!1;for(let[a,p]of Object.entries(d)){let g=yi(o,{height:i,width:l,contentHeight:u,contentWidth:c},a);g!==p&&(b=!0,d[a]=g)}b&&m&&m(d)}}});var at=require("@vuu-ui/vuu-utils"),Xn=require("react"),{IDX:Bm}=at.metadataKeys;var H=require("@vuu-ui/vuu-utils"),Ti=require("react");var Gm=H.metadataKeys.count;var _n=require("react");var To=require("react"),Yn=require("@vuu-ui/vuu-utils");var Jn=require("@vuu-ui/vuu-utils"),ut=require("react");var{KEY:yp,IS_EXPANDED:vp,IS_LEAF:Tp}=Ke.metadataKeys;var Mi=w(require("classnames"));var Hi=require("@vuu-ui/vuu-utils"),qn=require("react/jsx-runtime");var jn=w(require("classnames")),Ve=require("@vuu-ui/vuu-utils");var ze=require("react/jsx-runtime"),mt="vuuJsonCell",{IS_EXPANDED:Oi,KEY:Ai}=Ve.metadataKeys,Li=t=>{let e=t.lastIndexOf("|");return e===-1?"":t.slice(e+1)},Ni=({column:t,row:e})=>{let{key:o}=t,n=e[o],r=!1;(0,Ve.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let s=Li(e[Ai]),i=(0,jn.default)({[`${mt}-name`]:s===n,[`${mt}-value`]:s!==n,[`${mt}-group`]:r});if(r){let l=e[Oi]?"minus-box":"plus-box";return(0,ze.jsxs)("span",{className:i,children:[(0,ze.jsx)("span",{className:`${mt}-value`,children:n}),(0,ze.jsx)("span",{className:`${mt}-toggle`,"data-icon":l})]})}else return n?(0,ze.jsx)("span",{className:i,children:n}):null};(0,Ve.registerComponent)("json",Ni,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var zi=w(require("classnames")),Vi=require("react");var er=require("react");var ki=require("react/jsx-runtime");var Eo=require("react");var tr=require("@vuu-ui/vuu-utils"),or=w(require("classnames")),nr=require("react"),Te=(t,e,o)=>(0,nr.useMemo)(()=>{let n=(0,or.default)(e,{vuuPinFloating:t.pin==="floating",vuuPinLeft:t.pin==="left",vuuPinRight:t.pin==="right",vuuEndPin:o&&t.endPin,[`${e}-editable`]:t.editable,[`${e}-right`]:t.align==="right"}),r=(0,tr.getColumnStyle)(t);return{className:n,style:r}},[t,e,o]);var Fi=w(require("classnames")),Ii=require("react");var rr=require("react/jsx-runtime");var sr=require("react/jsx-runtime");var ir=require("react/jsx-runtime");var ur=require("react/jsx-runtime"),$i=require("react");var Bi=w(require("classnames")),Do=require("react");var cr=require("@vuu-ui/vuu-layout");var mr=require("react/jsx-runtime"),Wi=require("react");var pr=require("react");var Qi=require("@vuu-ui/vuu-popups"),Gi=w(require("classnames")),Ro=require("react");var Ui=require("react/jsx-runtime");var Xi=w(require("classnames"));var dr=require("react/jsx-runtime");var ul=require("@vuu-ui/vuu-popups"),Vt=require("@vuu-ui/vuu-utils"),cl=w(require("classnames")),ml=require("react");var $=require("@vuu-ui/vuu-utils"),yr=w(require("classnames")),pt=require("react");var fr=require("@vuu-ui/vuu-utils"),gr=require("react");var So=require("react/jsx-runtime"),{IDX:_i}=fr.metadataKeys,Yi="vuuTableNextCell",Cr=({column:t,columnMap:e,onDataEdited:o,row:n})=>{let{className:r,style:s}=Te(t,Yi),{CellRenderer:i,name:l,valueFormatter:u}=t,c=e[l],m=(0,gr.useCallback)(d=>(o==null||o(n[_i],l,d),!0),[l,o,n]);return(0,So.jsx)("div",{className:r,role:"cell",style:s,children:i?(0,So.jsx)(i,{column:t,columnMap:e,onCommit:m,row:n}):u(n[c])})};var kt=require("@vuu-ui/vuu-utils"),br=require("react");var hr=w(require("classnames"));var $e=require("react/jsx-runtime"),{IS_LEAF:Ji}=kt.metadataKeys,Po="vuuTableNextGroupCell",xr=({column:t,onClick:e,row:o})=>{let{columns:n}=t,[r,s]=(0,kt.getGroupValueAndOffset)(n,o),{className:i,style:l}=Te(t,Po),u=(0,br.useCallback)(d=>{e==null||e(d,t)},[t,e]),c=o[Ji],m=Array(s).fill(0).map((d,b)=>(0,$e.jsx)("span",{className:`${Po}-spacer`},b));return(0,$e.jsxs)("div",{className:(0,hr.default)(i,"vuuTableNextCell"),role:"cell",style:l,onClick:c?void 0:u,children:[m,c?null:(0,$e.jsx)("span",{className:`${Po}-toggle`,"data-icon":"triangle-right"}),(0,$e.jsx)("span",{children:r})]})};var Ft=require("react/jsx-runtime"),Tr=require("react"),{IDX:Zi,IS_EXPANDED:qi,SELECTED:ji}=$.metadataKeys,ce="vuuTableNextRow",vr=(0,pt.memo)(({className:t,columnMap:e,columns:o,row:n,offset:r,onClick:s,onDataEdited:i,onToggleGroup:l,zebraStripes:u=!1,...c})=>{let{[Zi]:m,[qi]:d,[ji]:b}=n,a=(0,pt.useCallback)(y=>{let B=y.shiftKey,We=y.ctrlKey||y.metaKey;s==null||s(n,B,We)},[s,n]),{True:p,First:g,Last:f}=$.RowSelected,h=(0,yr.default)(ce,t,{[`${ce}-even`]:u&&m%2===0,[`${ce}-expanded`]:d,[`${ce}-selected`]:b&p,[`${ce}-selectedStart`]:b&g,[`${ce}-selectedEnd`]:b&f}),v={transform:`translate3d(0px, ${r}px, 0px)`},E=(0,pt.useCallback)((y,B)=>{((0,$.isGroupColumn)(B)||(0,$.isJsonGroup)(B,n))&&(y.stopPropagation(),l==null||l(n,B))},[l,n]);return(0,Tr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:h,onClick:a,style:v},(0,Ft.jsx)("span",{className:`${ce}-selectionDecorator vuuStickyLeft`}),o.filter($.notHidden).map(y=>{let B=(0,$.isGroupColumn)(y),We=(0,$.isJsonColumn)(y);return(0,Ft.jsx)(B?xr:Cr,{column:y,columnMap:e,onClick:B||We?E:void 0,onDataEdited:i,row:n},y.key)}),(0,Ft.jsx)("span",{className:`${ce}-selectionDecorator vuuStickyRight`}))});vr.displayName="Row";var ll=require("@vuu-ui/vuu-layout");var al=require("@vuu-ui/vuu-ui-controls");var It=require("react");var ie=require("@vuu-ui/vuu-utils"),zt=require("react");var Kt=(t,e)=>{switch(e.type){case"col-size":return{...t,columns:t.columns.map(o=>o.name===e.column.name?{...o,width:e.width}:o)};case"column-prop":return{...t,columns:t.columns.map(o=>o.name===e.column.name?{...o,[e.property]:e.value}:o)};default:return t}};var Er=require("@vuu-ui/vuu-data-react/src"),wr=require("@vuu-ui/vuu-utils"),dt=require("react");var Mo=require("@vuu-ui/vuu-utils"),{SELECTED:Uf}=Mo.metadataKeys;var Dr=require("react");var el=require("@vuu-ui/vuu-utils"),tl=require("react"),ol=require("@vuu-ui/vuu-popups");var nl=require("@vuu-ui/vuu-utils"),rl=require("react");var O=require("@vuu-ui/vuu-utils"),sl=require("@vuu-ui/vuu-ui-controls"),il=require("react"),{info:sg}=(0,O.logger)("useTableModel");var ig=O.metadataKeys.count;var Rr=require("react");var Ho=require("react");var{KEY:Vg,IS_EXPANDED:$g,IS_LEAF:Bg}=ie.metadataKeys;var Mr=require("@vuu-ui/vuu-layout");var Hr=require("react/jsx-runtime"),pl=require("react");var{IDX:eC,RENDER_IDX:tC}=Vt.metadataKeys;var Or=require("@vuu-ui/vuu-ui-controls"),Be=require("@vuu-ui/vuu-utils");var $t=require("react"),Ar=require("react/jsx-runtime"),dl="vuuTableDropdownCell",fl=["Enter"," "],gl=({column:t,columnMap:e,row:o})=>{var u,c,m;let n=(0,Be.isTypeDescriptor)(t.type)&&(0,Be.isColumnTypeRenderer)((u=t.type)==null?void 0:u.renderer)?(m=(c=t.type)==null?void 0:c.renderer)==null?void 0:m.values:[],r=e[t.name],[s,i]=(0,$t.useState)(o[r]),l=(0,$t.useCallback)((d,b)=>{b&&i(b)},[]);return(0,Ar.jsx)(Or.Dropdown,{className:dl,onSelectionChange:l,openKeys:fl,selected:s,source:n,width:t.width-17})};(0,Be.registerComponent)("dropdown-cell",gl,"cell-renderer",{});var Lr=require("@vuu-ui/vuu-utils"),Nr=require("@salt-ds/core"),kr=require("@vuu-ui/vuu-ui-controls"),Fr=w(require("classnames"));var Wt=require("react/jsx-runtime"),Bt="vuuTableInputCell",Cl=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),bl=({column:t,columnMap:e,onCommit:o=Cl,row:n})=>{let r=e[t.name],{align:s="left",clientSideEditValidationCheck:i,valueFormatter:l}=t,{warningMessage:u,...c}=(0,kr.useEditableText)({initialValue:l(n[r]),onCommit:o,clientSideEditValidationCheck:i}),m=u&&s==="left"?(0,Wt.jsx)("span",{className:`${Bt}-icon`,"data-icon":"error"}):void 0,d=u&&s==="right"?(0,Wt.jsx)("span",{className:`${Bt}-icon`,"data-icon":"error"}):void 0;return(0,Wt.jsx)(Nr.Input,{...c,className:(0,Fr.default)(Bt,{[`${Bt}-error`]:u!==void 0}),endAdornment:m,startAdornment:d})};(0,Lr.registerComponent)("input-cell",bl,"cell-renderer",{});var me=require("@vuu-ui/vuu-utils"),le=require("react"),hl=(t,e)=>{let o=[];for(let{name:n}of t){let r=e.find(s=>s.name===n);r&&o.push(r)}return o},xl=(t,e)=>t.map(({name:o,serverDataType:n})=>{let r=e.find(s=>s.name===o);return{hidden:r==null?void 0:r.hidden,isCalculated:(0,me.isCalculatedColumn)(o),label:r==null?void 0:r.label,name:o,serverDataType:n,subscribed:r!==void 0}}),Oo=({availableColumns:t,onConfigChange:e,onDataSourceConfigChange:o,tableConfig:n})=>{let[{availableColumns:r,tableConfig:s},i]=(0,le.useState)({availableColumns:t,tableConfig:n}),l=(0,le.useMemo)(()=>xl(r,s.columns),[r,s.columns]),u=(0,le.useCallback)((a,p)=>{i(g=>{let f=(0,me.moveItem)(g.availableColumns,a,p),h=hl(f,s.columns);return{availableColumns:f,tableConfig:{...g.tableConfig,columns:h}}})},[s.columns]),c=(0,le.useCallback)((a,p,g)=>{let f=l.find(h=>h.name===a);if(p==="subscribed")if(f!=null&&f.subscribed){let h=s.columns.filter(v=>v.name!==a).map(v=>v.name);i(v=>({...v,tableConfig:{...s,columns:s.columns.filter((0,me.subscribedOnly)(h))}})),o({columns:h})}else{let h={...s,columns:(0,me.addColumnToSubscribedColumns)(s.columns,r,a)};i(E=>({...E,tableConfig:h}));let v=h.columns.map(E=>E.name);o({columns:v})}else if(f!=null&&f.subscribed){let h=s.columns.find(v=>v.name===a);if(h){let v=Kt(s,{type:"column-prop",property:p,column:h,value:g});i(E=>({...E,tableConfig:v}))}}},[r,l,o,s]),m=(0,le.useCallback)(a=>{let{value:p}=a.target,g=p==="0"?void 0:p==="1"?"capitalize":"uppercase";i(f=>({...f,tableConfig:{...f.tableConfig,columnFormatHeader:g}}))},[]),d=(0,le.useCallback)(a=>{let{ariaChecked:p,value:g}=a.target;i(f=>({...f,tableConfig:{...f.tableConfig,[g]:p!=="true"}}))},[]);(0,Ir.useLayoutEffectSkipFirst)(()=>{e==null||e(s)},[e,s]);let b=s.columnFormatHeader===void 0?0:s.columnFormatHeader==="capitalize"?1:2;return{columnItems:l,columnLabelsValue:b,onChangeColumnLabels:m,onChangeTableAttribute:d,onColumnChange:c,onMoveListItem:u,tableConfig:s}};var R=require("react/jsx-runtime"),Ao="vuuTableSettingsPanel",yl=({availableColumns:t,onAddCalculatedColumn:e,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r,...s})=>{let{columnItems:i,columnLabelsValue:l,onChangeColumnLabels:u,onChangeTableAttribute:c,onColumnChange:m,onMoveListItem:d,tableConfig:b}=Oo({availableColumns:t,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r});return(0,R.jsxs)("div",{...s,className:Ao,children:[(0,R.jsxs)(S.FormField,{children:[(0,R.jsx)(S.FormFieldLabel,{children:"Column Labels"}),(0,R.jsxs)(S.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:u,value:l,children:[(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-strikethrough",value:0}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-Tt",value:1}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-T",value:2})]})]}),(0,R.jsxs)(S.FormField,{children:[(0,R.jsx)(S.FormFieldLabel,{children:"Grid separators"}),(0,R.jsxs)("div",{className:"saltToggleButtonGroup vuuToggleButtonGroup saltToggleButtonGroup-horizontal vuuGridSeparators",children:[(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-striping",selected:b.zebraStripes,onChange:c,value:"zebraStripes"}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-lines",selected:b.rowSeparators,onChange:c,value:"rowSeparators"}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"col-lines",selected:b.columnSeparators,onChange:c,value:"columnSeparators"})]})]}),(0,R.jsxs)(S.FormField,{children:[(0,R.jsx)(S.FormFieldLabel,{children:"Default Column Width"}),(0,R.jsx)(S.Input,{className:"vuuInput"})]}),(0,R.jsx)(Gt,{columnItems:i,onChange:m,onMoveListItem:d}),(0,R.jsxs)("div",{className:`${Ao}-calculatedButtonbar`,children:[(0,R.jsx)(S.Button,{"data-icon":"plus",onClick:e}),(0,R.jsx)("span",{className:`${Ao}-calculatedLabel`,children:"Add calculated column"})]})]})};var Kr=require("@vuu-ui/vuu-layout"),zr=require("@vuu-ui/vuu-utils"),Z=require("react"),Sr=({availableColumns:t,onAvailableColumnsChange:e,onConfigChange:o,onCreateCalculatedColumn:n,onDataSourceConfigChange:r,tableConfig:s})=>{let i=(0,Kr.useLayoutProviderDispatch)(),l=(0,Z.useRef)(),[u,c]=(0,Z.useState)(t),m=(0,Z.useCallback)((p,g,f)=>{i({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:p,props:f},title:g}})},[i]),d=(0,Z.useCallback)(p=>{let g=u.concat({name:p.name,serverDataType:(0,zr.getCalculatedColumnType)(p)});c(g),e==null||e(g),requestAnimationFrame(()=>{var f;(f=l.current)==null||f.call(l)}),n(p)},[u,e,n]),b=(0,Z.useCallback)(p=>{m("ColumnSettings","Column Settings",{column:p.column,onConfigChange:o,onCreateCalculatedColumn:d,tableConfig:s,vuuTable:p.vuuTable})},[d,o,m,s]),a=(0,Z.useCallback)(()=>{b({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[b]);return l.current=(0,Z.useCallback)(()=>{m("TableSettings","DataGrid Settings",{availableColumns:u!=null?u:s.columns.map(({name:p,serverDataType:g})=>({name:p,serverDataType:g})),onAddCalculatedColumn:a,onConfigChange:o,onDataSourceConfigChange:r,tableConfig:s})},[u,a,o,r,m,s]),{showColumnSettingsPanel:b,showTableSettingsPanel:l.current}};
1
+ "use strict";var Zi=Object.create;var so=Object.defineProperty;var qi=Object.getOwnPropertyDescriptor;var ji=Object.getOwnPropertyNames;var el=Object.getPrototypeOf,tl=Object.prototype.hasOwnProperty;var ol=(e,t)=>{for(var o in t)so(e,o,{get:t[o],enumerable:!0})},rr=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of ji(t))!tl.call(e,r)&&r!==o&&so(e,r,{get:()=>t[r],enumerable:!(n=qi(t,r))||n.enumerable});return e};var k=(e,t,o)=>(o=e!=null?Zi(el(e)):{},rr(t||!e||!e.__esModule?so(o,"default",{value:e,enumerable:!0}):o,e)),nl=e=>rr(so({},"__esModule",{value:!0}),e);var sr=(e,t,o)=>{if(!t.has(e))throw TypeError("Cannot "+o)};var T=(e,t,o)=>(sr(e,t,"read from private field"),o?o.call(e):t.get(e)),ce=(e,t,o)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,o)},Le=(e,t,o,n)=>(sr(e,t,"write to private field"),n?n.call(e,o):t.set(e,o),o);var Yu={};ol(Yu,{BackgroundCell:()=>gr,CaseValidator:()=>lr,ColumnExpressionInput:()=>xn,ColumnExpressionPanel:()=>Tn,ColumnFormattingPanel:()=>tn,ColumnList:()=>Jo,ColumnNamedTerms:()=>ho,ColumnSettingsPanel:()=>Jl,DataSourceStats:()=>Zl,NumericFormattingSettings:()=>qo,PatternValidator:()=>ur,TableSettingsPanel:()=>_u,columnExpressionLanguageSupport:()=>on,isCompleteExpression:()=>mn,isCompleteRelationalExpression:()=>pn,lastNamedChild:()=>xo,useColumnExpressionEditor:()=>hn,useColumnExpressionSuggestionProvider:()=>vn,useTableAndColumnSettings:()=>Gn,useTableSettings:()=>_n,walkTree:()=>cn});module.exports=nl(Yu);var ir=require("@vuu-ui/vuu-utils"),rl=e=>typeof e=="string",lr=(e,t)=>rl(t)?t===""?!0:e.value==="lower"&&t.toLowerCase()!==t?"value must be all lowercase":e.value==="upper"&&t.toUpperCase()!==t?"value must be all uppercase":!0:"value must be a string";(0,ir.registerComponent)("vuu-case",lr,"data-edit-validator",{});var ar=require("@vuu-ui/vuu-utils"),sl=e=>typeof e=="string",il="value does not match expected pattern",ur=(e,t)=>{if(typeof e.value!="string")throw Error("Pattern validation rule must provide pattern");if(sl(t)){if(t==="")return!0;{let{message:o=il}=e;return new RegExp(e.value).test(t)||o}}else return"value must be a string"};(0,ar.registerComponent)("vuu-pattern",ur,"data-edit-validator",{});var j=require("@vuu-ui/vuu-utils"),mr=k(require("classnames"),1);var Be=require("@vuu-ui/vuu-utils"),io=require("react"),ll=[void 0,void 0,void 0,void 0];function cr(e,t,o){var p;let n=(0,io.useRef)(),[r,s,i,l]=n.current||ll,{type:a}=o,u=(0,Be.isTypeDescriptor)(a)?(p=a.formatting)==null?void 0:p.decimals:void 0,m=e===r&&(0,Be.isValidNumber)(t)&&(0,Be.isValidNumber)(s)&&o===i?(0,Be.getMovingValueDirection)(t,l,s,u):"";return(0,io.useEffect)(()=>{n.current=[e,t,o,m]}),m}var ao=require("react/jsx-runtime"),al=String.fromCharCode(11014),ul=String.fromCharCode(11015),{KEY:cl}=j.metadataKeys,lo="vuuBackgroundCellDeprecated",Ht={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},ml=e=>(0,j.isTypeDescriptor)(e)&&e.renderer&&"flashStyle"in e.renderer?e.renderer.flashStyle:Ht.BackgroundOnly,pl=({column:e,row:t})=>{let{key:o,type:n,valueFormatter:r}=e,s=t[o],i=ml(n),l=cr(t[cl],s,e),a=i===Ht.ArrowOnly||i===Ht.ArrowBackground?l===j.UP1||l===j.UP2?al:l===j.DOWN1||l===j.DOWN2?ul:null:null,u=l?" "+l:"",m=(0,mr.default)(lo,u,{[`${lo}-arrowOnly`]:i===Ht.ArrowOnly,[`${lo}-arrowBackground`]:i===Ht.ArrowBackground});return(0,ao.jsxs)("div",{className:m,tabIndex:-1,children:[(0,ao.jsx)("div",{className:`${lo}-flasher`,children:a}),r(t[e.key])]})};(0,j.registerComponent)("background",pl,"cell-renderer",{description:"Background Cell renderer for VuuTable",label:"Background Cell (deprecated)",serverDataType:["long","int","double"]});var Ee=require("@vuu-ui/vuu-utils"),pr=k(require("classnames"),1);var We=require("react/jsx-runtime"),Ot="vuuProgressCell",dl=({column:e,columnMap:t,row:o})=>{let{type:n}=e,r=o[e.key],s=!1,i=0;if((0,Ee.isTypeDescriptor)(n)&&(0,Ee.isColumnTypeRenderer)(n.renderer)){let{associatedField:a}=n.renderer;if(a){let u=o[t[a]];if(typeof(0,Ee.isValidNumber)(r)&&(0,Ee.isValidNumber)(u))i=Math.min(Math.round(r/u*100),100),i=Math.min(Math.round(r/u*100),100),s=isFinite(i);else{let m=parseFloat(r);if(Number.isFinite(m)){let p=parseFloat(u);Number.isFinite(p)&&(i=Math.min(Math.round(m/p*100),100),s=isFinite(i))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,pr.default)(Ot,{});return(0,We.jsxs)("div",{className:l,tabIndex:-1,children:[s?(0,We.jsxs)("span",{className:`${Ot}-track`,children:[(0,We.jsx)("span",{className:`${Ot}-bg`}),(0,We.jsx)("span",{className:`${Ot}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,We.jsx)("span",{className:`${Ot}-text`,children:`${i} %`})]})};(0,Ee.registerComponent)("vuu.progress",dl,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var ee=require("@vuu-ui/vuu-utils"),fr=k(require("classnames"),1);var Qe=require("@vuu-ui/vuu-utils"),uo=require("react"),fl=[void 0,void 0,void 0,void 0];function dr(e,t,o){var p;let n=(0,uo.useRef)(),[r,s,i,l]=n.current||fl,{type:a}=o,u=(0,Qe.isTypeDescriptor)(a)?(p=a.formatting)==null?void 0:p.decimals:void 0,m=e===r&&(0,Qe.isValidNumber)(t)&&(0,Qe.isValidNumber)(s)&&o===i?(0,Qe.getMovingValueDirection)(t,l,s,u):"";return(0,uo.useEffect)(()=>{n.current=[e,t,o,m]}),m}var mo=require("react/jsx-runtime"),gl=String.fromCharCode(11014),Cl=String.fromCharCode(11015),{KEY:bl}=ee.metadataKeys,co="vuuBackgroundCell",At={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},hl=e=>(0,ee.isTypeDescriptor)(e)&&e.renderer&&"flashStyle"in e.renderer?e.renderer.flashStyle:At.BackgroundOnly,gr=({column:e,row:t})=>{let{key:o,type:n,valueFormatter:r}=e,s=t[o],i=hl(n),l=dr(t[bl],s,e),a=i===At.ArrowOnly||i===At.ArrowBackground?l===ee.UP1||l===ee.UP2?gl:l===ee.DOWN1||l===ee.DOWN2?Cl:null:null,u=l?" "+l:"",m=(0,fr.default)(co,u,{[`${co}-arrowOnly`]:i===At.ArrowOnly,[`${co}-arrowBackground`]:i===At.ArrowBackground});return(0,mo.jsxs)("div",{className:m,tabIndex:-1,children:[(0,mo.jsx)("div",{className:`${co}-flasher`,children:a}),r(t[e.key])]})};console.log("register BackgroundCellNext");(0,ee.registerComponent)("background-next",gr,"cell-renderer",{description:"Change background color of cell when value changes",label:"Background Flash",serverDataType:["long","int","double"]});var po=require("@vuu-ui/vuu-ui-controls"),Cr=require("@salt-ds/core"),br=require("@salt-ds/lab"),hr=k(require("classnames"),1),xr=require("react");var te=require("react/jsx-runtime"),we="vuuColumnList",yr="vuuColumnListItem",xl=({className:e,item:t,...o})=>{var n;return(0,te.jsxs)(po.ListItem,{...o,className:(0,hr.default)(e,yr),"data-name":t==null?void 0:t.name,children:[t!=null&&t.isCalculated?(0,te.jsx)("span",{className:`${we}-icon`,"data-icon":"function"}):(0,te.jsx)(br.Switch,{className:`${we}-switch`,checked:t==null?void 0:t.subscribed}),(0,te.jsx)("span",{className:`${we}-text`,children:(n=t==null?void 0:t.label)!=null?n:t==null?void 0:t.name}),(0,te.jsx)(Cr.Checkbox,{className:`${we}-checkBox`,checked:(t==null?void 0:t.hidden)!==!0,disabled:(t==null?void 0:t.subscribed)!==!0})]})},Jo=({columnItems:e,onChange:t,onMoveListItem:o,...n})=>{let r=(0,xr.useCallback)(s=>{let i=s.target,l=i.closest(`.${yr}`),{dataset:{name:a}}=l;if(a){let u=i.closest(`.${we}-switch`),m=i.closest(`.${we}-checkBox`);u?t(a,"subscribed",i.checked):m&&t(a,"hidden",i.checked===!1)}},[t]);return(0,te.jsxs)("div",{...n,className:we,children:[(0,te.jsx)("div",{className:`${we}-header`,children:(0,te.jsx)("span",{children:"Column Selection"})}),(0,te.jsxs)("div",{className:`${we}-colHeadings`,children:[(0,te.jsx)("span",{children:"Column subscription"}),(0,te.jsx)("span",{children:"Visibility"})]}),(0,te.jsx)(po.List,{ListItem:xl,allowDragDrop:!0,height:"100%",onChange:r,onMoveListItem:o,selectionStrategy:"none",source:e,itemHeight:33})]})};var Eo=require("@vuu-ui/vuu-utils"),I=require("@salt-ds/core");var Tr=require("@vuu-ui/vuu-ui-controls"),fo=require("@salt-ds/core"),en=k(require("classnames"),1),Er=require("react");var fe=require("@salt-ds/core"),Zo=require("@salt-ds/lab"),vr=require("@vuu-ui/vuu-utils"),Ge=require("react"),ie=require("react/jsx-runtime"),yl="vuuFormattingSettings",qo=({column:e,onChange:t})=>{var a;let[o,n]=(0,Ge.useState)((0,vr.getTypeSettingsFromColumn)(e)),r=(0,Ge.useCallback)(u=>{(u.key==="Enter"||u.key==="Tab")&&t(o)},[o,t]),s=(0,Ge.useCallback)(u=>{let{value:m}=u.target,p=m===""||isNaN(parseInt(m))?void 0:parseInt(m),g={...o,decimals:p};n(g)},[o]),i=(0,Ge.useCallback)(u=>{let{checked:m}=u.target,p={...o,alignOnDecimals:m};n(p),t(p)},[o,t]),l=(0,Ge.useCallback)(u=>{let{checked:m}=u.target,p={...o,zeroPad:m};n(p),t(p)},[o,t]);return(0,ie.jsxs)("div",{className:yl,children:[(0,ie.jsxs)(fe.FormField,{"data-field":"decimals",children:[(0,ie.jsx)(fe.FormFieldLabel,{children:"Number of decimals"}),(0,ie.jsx)(fe.Input,{className:"vuuInput",onChange:s,onKeyDown:r,value:(a=o.decimals)!=null?a:""})]}),(0,ie.jsxs)(fe.FormField,{labelPlacement:"left",children:[(0,ie.jsx)(fe.FormFieldLabel,{children:"Align on decimals"}),(0,ie.jsx)(Zo.Switch,{checked:o.alignOnDecimals,onChange:i,value:"align-decimals"})]}),(0,ie.jsxs)(fe.FormField,{labelPlacement:"left",children:[(0,ie.jsx)(fe.FormFieldLabel,{children:"Zero pad decimals"}),(0,ie.jsx)(Zo.Switch,{checked:o.zeroPad,onChange:l,value:"zero-pad"})]})]})};var De=require("react/jsx-runtime"),jo="vuuColumnFormattingPanel",vl=e=>{var t;return(t=e.label)!=null?t:e.name},tn=({availableRenderers:e,selectedCellRenderer:t,className:o,column:n,onChangeFormatting:r,onChangeRenderer:s,...i})=>{let l=(0,Er.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,De.jsx)(qo,{column:n,onChange:r});default:return null}},[n,r]),{serverDataType:a="string"}=n;return(0,De.jsxs)("div",{...i,className:"vuuColumnSettingsPanel-header",children:[(0,De.jsx)("div",{children:"Formatting"}),(0,De.jsxs)(fo.FormField,{children:[(0,De.jsx)(fo.FormFieldLabel,{children:"Renderer"}),(0,De.jsx)(Tr.Dropdown,{className:(0,en.default)(`${jo}-renderer`),itemToString:vl,onSelectionChange:s,selected:t,source:e,width:"100%"})]}),(0,De.jsx)("div",{className:(0,en.default)(jo,o,`${jo}-${a}`),children:l})]})};var X=require("@vuu-ui/vuu-utils"),J=require("react"),Tl=[{description:"Default formatter for columns with data type integer",label:"Default Renderer (data type int, long)",name:"default-int"}],El=[{description:"Default formatter for columns with data type double",label:"Default Renderer (data type double)",name:"default-double"},...(0,X.getRegisteredCellRenderers)("double")],wr=[{description:"Default formatter for columns with data type string",label:"Default Renderer (data type string)",name:"default-string"}],Rr=e=>{switch(e.serverDataType){case"char":case"string":return wr;case"int":case"long":return Tl;case"double":return El;default:return wr}},Dr=(e,t)=>{if((0,X.isTypeDescriptor)(t.type)){let{renderer:n}=t.type;if((0,X.isColumnTypeRenderer)(n)){let r=e.find(s=>s.name===n.name);if(r)return r}}return Rr(t)[0]},wl=e=>{let t=e.closest(".saltFormField");if(t&&t.dataset.field){let{dataset:{field:o}}=t;return o}else throw Error("named form field not found")},Dl=(e,t)=>{if(t.name==="::")return t;{let o=e.find(n=>n.name===t.name);if(o)return o;throw Error(`columns does not contain column ${name}`)}},Lt=(e,t)=>({...e,columns:e.columns.map(o=>o.name===t.name?t:o)}),Sr=({column:e,onConfigChange:t,onCreateCalculatedColumn:o,tableConfig:n})=>{let[r,s]=(0,J.useState)(Dl(n.columns,e)),i=(0,J.useMemo)(()=>Rr(r),[r]),l=(0,J.useRef)(Dr(i,r)),a=(0,J.useCallback)(()=>{t(Lt(n,r))},[r,t,n]),u=(0,J.useCallback)(f=>{let h=f.target,w=wl(h),{value:x}=h;switch(w){case"column-label":s(E=>({...E,label:x}));break;case"column-name":s(E=>(0,X.setCalculatedColumnName)(E,x));break;case"column-width":s(E=>({...E,width:parseInt(x)}));break;case"column-alignment":if((0,X.isValidColumnAlignment)(x)){let E={...r,align:x||void 0};s(E),t(Lt(n,E))}break;case"column-pin":if((0,X.isValidPinLocation)(x)){let E={...r,pin:x||void 0};s(E),t(Lt(n,E));break}}},[r,t,n]),m=(0,J.useCallback)((f,h)=>{if(h){let w=(0,X.updateColumnRenderer)(r,h);l.current=h,s(w),t(Lt(n,w))}},[r,t,n]),p=(0,J.useCallback)(f=>{let h=(0,X.updateColumnType)(r,f);s(h),t(Lt(n,h))},[r,t,n]),g=(0,J.useCallback)(({moveBy:f})=>{let{columns:h}=n,w=h.indexOf(r)+f,x=h[w];x&&(l.current=Dr(i,x),s(x))},[i,r,n]),c=(0,J.useCallback)(()=>{g({moveBy:1})},[g]),d=(0,J.useCallback)(()=>{g({moveBy:-1})},[g]),C=(0,J.useCallback)(f=>{o({...r,...f})},[r,o]);return{availableRenderers:i,selectedCellRenderer:l.current,column:r,navigateNextColumn:c,navigatePrevColumn:d,onChange:u,onChangeFormatting:p,onChangeRenderer:m,onInputCommit:a,onSave:C}};var $r=require("@vuu-ui/vuu-ui-controls"),pt=require("@vuu-ui/vuu-utils"),oe=require("@salt-ds/core"),To=require("react");var $=require("@vuu-ui/vuu-codemirror"),bn=require("@vuu-ui/vuu-utils"),Ne=require("react");var me=require("@vuu-ui/vuu-codemirror");var Pr=require("@lezer/lr"),go=Pr.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 Rl=me.LRLanguage.define({name:"VuuColumnExpression",parser:go.configure({props:[(0,me.styleTags)({Function:me.tags.variableName,String:me.tags.string,Or:me.tags.emphasis,Operator:me.tags.operator})]})}),on=()=>new me.LanguageSupport(Rl);var nn=class{constructor(t){switch(this.value=t,typeof t){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},rn=class{constructor(t){this.type="colExpression";this.column=t}toJSON(){return{type:this.type,column:this.column}}},kt,Xe,sn=class{constructor(t="unknown"){ce(this,kt,[{type:"unknown"},{type:"unknown"}]);ce(this,Xe,void 0);this.type="arithmeticExpression";Le(this,Xe,t)}get op(){return T(this,Xe)}set op(t){Le(this,Xe,t)}get expressions(){return T(this,kt)}toJSON(){return{type:this.type,op:T(this,Xe),expressions:T(this,kt)}}};kt=new WeakMap,Xe=new WeakMap;var st,ln=class{constructor(t){ce(this,st,[]);this.type="callExpression";this.functionName=t}get expressions(){return T(this,st)}get arguments(){return T(this,st)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:T(this,st).map(t=>{var o;return(o=t.toJSON)==null?void 0:o.call(t)})}}};st=new WeakMap;var Ft,it,nt=class{constructor(){ce(this,Ft,[{type:"unknown"},{type:"unknown"}]);ce(this,it,"unknown");this.type="relationalExpression"}get op(){return T(this,it)}set op(t){Le(this,it,t)}get expressions(){return T(this,Ft)}toJSON(){return{type:this.type,op:T(this,it),expressions:T(this,Ft)}}};Ft=new WeakMap,it=new WeakMap;var It,lt,rt=class{constructor(t){ce(this,It,[{type:"unknown"},{type:"unknown"}]);ce(this,lt,void 0);this.type="booleanCondition";Le(this,lt,t)}get op(){return T(this,lt)}get expressions(){return T(this,It)}toJSON(){return{type:this.type,op:T(this,lt),expressions:T(this,It).map(t=>{var o;return(o=t.toJSON)==null?void 0:o.call(t)})}}};It=new WeakMap,lt=new WeakMap;var ge,Nt=class{constructor(t){ce(this,ge,void 0);this.type="conditionalExpression";Le(this,ge,[t?new rt(t):new nt,{type:"unknown"},{type:"unknown"}])}get expressions(){return T(this,ge)}get condition(){return T(this,ge)[0]}get truthyExpression(){return T(this,ge)[1]}set truthyExpression(t){T(this,ge)[1]=t}get falsyExpression(){return T(this,ge)[2]}set falsyExpression(t){T(this,ge)[2]=t}toJSON(){var t,o,n,r,s;return{type:this.type,condition:(o=(t=this.condition).toJSON)==null?void 0:o.call(t),truthyExpression:this.truthyExpression,falsyExpression:(s=(r=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:r.call(n))!=null?s:this.falsyExpression}}};ge=new WeakMap;var Ue=e=>e.type==="unknown",Co=e=>e.type==="arithmeticExpression",Sl=e=>e.type==="callExpression",ot=e=>e.type==="conditionalExpression",Pl=e=>e.type==="relationalExpression"||e.type==="booleanCondition";var Ml=e=>e.type==="booleanCondition",un=e=>(e==null?void 0:e.type)==="relationalExpression";var le=e=>{if(Ue(e))return e;if(un(e)){let[t,o]=e.expressions;if(_(t))return le(t);if(e.op==="unknown")return e;if(_(o))return le(o)}else if(Pl(e)){let{expressions:t=[]}=e;for(let o of t)if(_(o))return le(o)}else if(ot(e)){let{condition:t,truthyExpression:o,falsyExpression:n}=e;if(_(t))return le(t);if(_(o))return le(o);if(_(n))return le(n)}else if(Co(e)){let{expressions:t=[]}=e;for(let o of t)if(_(o))return le(o)}},bo=(e,t,o)=>{let{expressions:n=[]}=e;if(n.includes(t)){let r=n.indexOf(t);return n.splice(r,1,o),!0}else for(let r of n)if(bo(r,t,o))return!0;return!1},_=e=>Ue(e)?!0:ot(e)?_(e.condition)||_(e.truthyExpression)||_(e.falsyExpression):un(e)||Ml(e)?e.op===void 0||e.expressions.some(t=>_(t)):!1,Mr=(e,t)=>{let o=le(e);o?o.expressions?o.expressions.push(t):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},S,_e,an=class{constructor(){ce(this,S,void 0);ce(this,_e,[])}setCondition(t){if(T(this,S)===void 0)this.addExpression(new Nt(t));else if(ot(T(this,S))){if(_(T(this,S).condition)){let o=t?new rt(t):new nt;this.addExpression(o)}else if(Ue(T(this,S).truthyExpression))T(this,S).truthyExpression=new Nt(t);else if(_(T(this,S).truthyExpression)){let o=t?new rt(t):new nt;this.addExpression(o)}else if(Ue(T(this,S).falsyExpression))T(this,S).falsyExpression=new Nt(t);else if(_(T(this,S).falsyExpression)){let o=t?new rt(t):new nt;this.addExpression(o)}}else console.error("setCondition called unexpectedly")}addExpression(t){if(T(this,_e).length>0){let o=T(this,_e).at(-1);o==null||o.arguments.push(t)}else if(T(this,S)===void 0)Le(this,S,t);else if(Co(T(this,S))){let o=le(T(this,S));o&&Ue(o)&&bo(T(this,S),o,t)}else if(ot(T(this,S))&&_(T(this,S))){let o=le(T(this,S));o&&Ue(o)?bo(T(this,S),o,t):o&&Mr(o,t)}}setFunction(t){let o=new ln(t);this.addExpression(o),T(this,_e).push(o)}setColumn(t){this.addExpression(new rn(t))}setArithmeticOp(t){let o=t,n=T(this,S);Co(n)&&(n.op=o)}setRelationalOperator(t){let o=t;if(T(this,S)&&ot(T(this,S))){let n=le(T(this,S));un(n)?n.op=o:console.error(`no target expression found (op = ${t})`)}}setValue(t){let o=new nn(t);if(T(this,S)===void 0)Le(this,S,o);else if(Co(T(this,S)))this.addExpression(o);else if(Sl(T(this,S)))T(this,S).arguments.push(o);else if(ot(T(this,S)))if(_(T(this,S))){let n=le(T(this,S));n&&Ue(n)?bo(T(this,S),n,o):n&&Mr(n,o)}else console.log("what do we do with value, in a complete expression")}closeBrace(){T(this,_e).pop()}get expression(){return T(this,S)}toJSON(){var t;return(t=T(this,S))==null?void 0:t.toJSON()}};S=new WeakMap,_e=new WeakMap;var cn=(e,t)=>{let o=new an,n=e.cursor();do{let{name:r,from:s,to:i}=n;switch(r){case"AndCondition":o.setCondition("and");break;case"OrCondition":o.setCondition("or");break;case"RelationalExpression":o.setCondition();break;case"ArithmeticExpression":o.addExpression(new sn);break;case"Column":{let l=t.substring(s,i);o.setColumn(l)}break;case"Function":{let l=t.substring(s,i);o.setFunction(l)}break;case"Times":case"Divide":case"Plus":case"Minus":{let l=t.substring(s,i);o.setArithmeticOp(l)}break;case"RelationalOperator":{let l=t.substring(s,i);o.setRelationalOperator(l)}break;case"False":case"True":{let l=t.substring(s,i);o.setValue(l==="true")}break;case"String":o.setValue(t.substring(s+1,i-1));break;case"Number":o.setValue(parseFloat(t.substring(s,i)));break;case"CloseBrace":o.closeBrace();break;default:}}while(n.next());return o.toJSON()};var Hl=go.configure({strict:!0}),Hr=["Number","String"],ho=[...Hr,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],mn=e=>{try{return Hl.parse(e),!0}catch{return!1}},xo=e=>{let{lastChild:t}=e;for(;t&&!ho.includes(t.name);)t=t.prevSibling,console.log(t==null?void 0:t.name);return t},pn=e=>{if((e==null?void 0:e.name)==="RelationalExpression"){let{firstChild:t}=e,o=xo(e);if((t==null?void 0:t.name)==="Column"&&typeof(o==null?void 0:o.name)=="string"&&Hr.includes(o.name))return!0}return!1};var Ye=require("@vuu-ui/vuu-codemirror"),Ol=Ye.HighlightStyle.define([{tag:Ye.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:Ye.tags.comment,color:"green",fontStyle:"italic"}]),Or=(0,Ye.syntaxHighlighting)(Ol);var Ar=require("@vuu-ui/vuu-codemirror"),Lr=Ar.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"),gn=require("react");var Al=(e,t)=>t?e.map(o=>{var n;return{...o,apply:typeof o.apply=="function"?o.apply:`${t}${(n=o.apply)!=null?n:o.label}`}}):e,Ll=e=>e===void 0?!1:["Times","Divide","Plus","Minus"].includes(e.name),Kt=e=>({apply:()=>{e==null||e()},label:"Done",boost:10}),at=(e,t)=>{var r;let{lastChild:o}=e,{pos:n}=t;for(;o;)if(o.from<n&&ho.includes(o.name)){if(o.name==="ParenthesizedExpression"){let i=(r=o.firstChild)==null?void 0:r.nextSibling;i&&(o=i)}return o}else o=o.prevSibling},Nr=(e,t)=>{var o;if(e.name==="ArgList"){let n=e.prevSibling;if(n)return(0,V.getValue)(n,t)}else if(e.name==="OpenBrace"){let n=(o=e.parent)==null?void 0:o.prevSibling;if((n==null?void 0:n.name)==="Function")return(0,V.getValue)(n,t)}},kr=(e,t)=>{if(e.name==="RelationalExpression"){let o=xo(e);if((o==null?void 0:o.name)==="RelationalOperator")return(0,V.getValue)(o,t)}else{let o=e.prevSibling;if((o==null?void 0:o.name)==="RelationalOperator")return(0,V.getValue)(o,t)}},Cn=(e,t)=>{var o;if(e.name==="RelationalExpression"){if(((o=e.firstChild)==null?void 0:o.name)==="Column")return(0,V.getValue)(e.firstChild,t)}else{let n=e.prevSibling;if((n==null?void 0:n.name)==="Column")return(0,V.getValue)(n,t);if((n==null?void 0:n.name)==="RelationalOperator")return Cn(n,t)}},dn=async(e,t,o,n={})=>{let r=await t.getSuggestions(o,n),{startsWith:s=""}=n;return{from:e.pos-s.length,options:r}},fn=(e,t,o,n,r)=>{let s=at(e,t);switch(console.log(`conditional expression last child ${s==null?void 0:s.name}`),s==null?void 0:s.name){case"If":return dn(t,o,"expression",{prefix:"( "});case"OpenBrace":return dn(t,o,"expression");case"Condition":return dn(t,o,"expression",{prefix:", "});case"CloseBrace":if(n){let i=[Kt(r)];return{from:t.pos,options:i}}}},Nl=(e,t)=>{let o=[Kt(t)];return{from:e.pos,options:o}},Fr=(e,t)=>{let o=(0,gn.useCallback)(async(n,r,s={})=>{let i=await e.getSuggestions(r,s),{startsWith:l=""}=s;return{from:n.pos-l.length,options:i}},[e]);return(0,gn.useCallback)(async n=>{var p,g;let{state:r,pos:s}=n,i=(p=n.matchBefore(/\w*/))!=null?p:{from:0,to:0,text:void 0},a=(0,V.syntaxTree)(r).resolveInner(s,-1),u=r.doc.toString(),m=mn(u);switch(a.name){case"If":return console.log("conditional expression If"),o(n,"expression",{prefix:"( "});case"Condition":{let c=at(a,n);if((c==null?void 0:c.name)==="Column"){let d=(0,V.getPreviousNode)(c);if((d==null?void 0:d.name)!=="RelationalOperator")return o(n,"condition-operator",{columnName:(0,V.getValue)(c,r)})}else if((c==null?void 0:c.name)==="RelationalOperator")return o(n,"expression");console.log(`condition last child ${c==null?void 0:c.name}`)}break;case"ConditionalExpression":return fn(a,n,e);case"RelationalExpression":{if(pn(a))return{from:n.pos,options:V.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let c=kr(a,r),d=Cn(a,r);if(c)return o(n,"expression");{let C=await e.getSuggestions("condition-operator",{columnName:d});return{from:n.pos,options:C}}}}break;case"RelationalOperator":return o(n,"expression");case"String":{let c=kr(a,r),d=Cn(a,r),{from:C,to:f}=a;if(f-C===2&&n.pos===C+1){if(d&&c)return o(n,"columnValue",{columnName:d,operator:c,startsWith:i.text})}else if(f-C>2&&n.pos===f)return o(n,"expression",{prefix:", "})}break;case"ArithmeticExpression":{let c=at(a,n);if((c==null?void 0:c.name)==="Column")return o(n,"expression");if(Ll(c)){let d=c.name;return o(n,"column",{operator:d})}}break;case"OpenBrace":{let c=Nr(a,r);return o(n,"expression",{functionName:c})}break;case"ArgList":{let c=Nr(a,r),d=at(a,n),C=(d==null?void 0:d.name)==="OpenBrace"?void 0:",",f=await e.getSuggestions("expression",{functionName:c});return f=C?Al(f,", "):f,(d==null?void 0:d.name)!=="OpenBrace"&&(d==null?void 0:d.name)!=="Comma"&&(f=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(f)),{from:n.pos,options:f}}case"Equal":if(u.trim()==="=")return o(n,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(n.pos===0)return o(n,"expression");{let c=at(a,n);if((c==null?void 0:c.name)==="Column"){if(m){let d=[Kt(t.current)],C=(0,V.getValue)(c,r),f=await e.getSuggestions("operator",{columnName:C});return{from:n.pos,options:d.concat(f)}}}else if((c==null?void 0:c.name)==="CallExpression"){if(m)return{from:n.pos,options:[Kt(t.current)]}}else if((c==null?void 0:c.name)==="ArithmeticExpression"){if(m){let d=[Kt(t.current)],C=at(c,n);if((C==null?void 0:C.name)==="Column"){let f=(0,V.getValue)(C,r),h=await e.getSuggestions("operator",{columnName:f});d=d.concat(h)}return{from:n.pos,options:d}}}else if((c==null?void 0:c.name)==="ConditionalExpression")return fn(c,n,e,m,t.current);break}case"Column":if(await e.isPartialMatch("expression",void 0,i.text))return o(n,"expression",{startsWith:i.text});break;case"Comma":{let c=(0,V.getNamedParentNode)(a);if((c==null?void 0:c.name)==="ConditionalExpression")return o(n,"expression")}break;case"CloseBrace":{let c=(0,V.getNamedParentNode)(a);if((c==null?void 0:c.name)==="ConditionalExpression")return fn(c,n,e,m,t.current);if((c==null?void 0:c.name)==="ArgList"&&m)return Nl(n,t.current)}break;default:((g=a==null?void 0:a.prevSibling)==null?void 0:g.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[o,t,e])};var yo=e=>{if(e.current==null)throw Error("EditorView not defined");return e.current},kl=()=>"vuuSuggestion",Fl=()=>console.log("noooop"),Il=e=>"expressionType"in e,Kl=e=>{if(Il(e)){let t=(0,bn.createEl)("div","expression-type-container"),o=(0,bn.createEl)("span","expression-type",e.expressionType);return t.appendChild(o),t}else return null},hn=({onChange:e,onSubmitExpression:t,source:o,suggestionProvider:n})=>{let r=(0,Ne.useRef)(null),s=(0,Ne.useRef)(Fl),i=(0,Ne.useRef)(),l=Fr(n,s),[a,u]=(0,Ne.useMemo)(()=>{let m=()=>{let C=yo(i),f=C.state.doc.toString(),h=(0,$.ensureSyntaxTree)(C.state,C.state.doc.length,5e3);if(h){let w=cn(h,f);return[f,w]}else return["",void 0]},p=()=>{yo(i).setState(d())},g=()=>{let[C,f]=m();t==null||t(C,f)},c=C=>$.keymap.of([{key:C,run(){return(0,$.startCompletion)(yo(i)),!0}}]),d=()=>$.EditorState.create({doc:o,extensions:[$.minimalSetup,(0,$.autocompletion)({addToOptions:[{render:Kl,position:70}],override:[l],optionClass:kl}),on(),$.keymap.of($.defaultKeymap),c("ArrowDown"),$.EditorView.updateListener.of(C=>{let f=yo(i);if(C.docChanged){(0,$.startCompletion)(f);let h=f.state.doc.toString();e==null||e(h)}}),Lr,Or]});return s.current=()=>{g()},[d,p]},[l,e,t,o]);return(0,Ne.useEffect)(()=>{if(!r.current)throw Error("editor not in dom");return i.current=new $.EditorView({state:a(),parent:r.current}),()=>{var m;(m=i.current)==null||m.destroy()}},[l,a]),{editorRef:r,clearInput:u}};var Ir=require("react/jsx-runtime"),zl="vuuColumnExpressionInput",xn=({onChange:e,onSubmitExpression:t,source:o="",suggestionProvider:n})=>{let{editorRef:r}=hn({onChange:e,onSubmitExpression:t,source:o,suggestionProvider:n});return(0,Ir.jsx)("div",{className:`${zl}`,ref:r})};var be=require("@vuu-ui/vuu-codemirror"),vo=require("@vuu-ui/vuu-data-react"),mt=require("@vuu-ui/vuu-utils"),ct=require("react");var ut=[{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 Ce=require("@vuu-ui/vuu-utils"),Kr=({name:e,description:t,example:o,params:n,type:r})=>{let s=(0,Ce.createEl)("div","vuuFunctionDoc"),i=(0,Ce.createEl)("div","function-heading"),l=(0,Ce.createEl)("span","function-name",e),a=(0,Ce.createEl)("span","param-list",n.description),u=(0,Ce.createEl)("span","function-type",r);i.appendChild(l),i.appendChild(a),i.appendChild(u);let m=(0,Ce.createEl)("p",void 0,t);if(s.appendChild(i),s.appendChild(m),o){let p=(0,Ce.createEl)("div","example-container","Example:"),g=(0,Ce.createEl)("div","example-expression",o.expression),c=(0,Ce.createEl)("div","example-result",o.result);p.appendChild(g),p.appendChild(c),s.appendChild(p)}return s};var Vl=[],Je=e=>e.map(t=>{var o;return{...t,apply:((o=t.apply)!=null?o:t.label)+" "}}),$l=(e,{functionName:t,operator:o})=>{if(o)return e.filter(mt.isNumericColumn);if(t){let n=ut.find(r=>r.name===t);if(n)switch(n.accepts){case"string":return e.filter(mt.isTextColumn);case"number":return e.filter(mt.isNumericColumn);default:return e}}return e},zr=(e,t)=>$l(e,t).map(n=>{var s;let r=(s=n.label)!=null?s:n.name;return{apply:t.prefix?`${t.prefix}${r}`:r,label:r,boost:5,type:"column",expressionType:n.serverDataType}}),Bl=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Wl=e=>e===void 0||(0,mt.isNumericColumn)(e)?Bl:Vl,Ql=e=>{switch(e.serverDataType){case"string":case"char":return Je(be.stringOperators);case"int":case"long":case"double":return Je(be.numericOperators)}},yn=e=>({apply:`${e.name}( `,boost:2,expressionType:e.type,info:()=>Kr(e),label:e.name,type:"function"}),Gl=e=>{if(e){if(typeof e.accepts=="string")return e.accepts;if(Array.isArray(e.accepts))return e.accepts.every(t=>t==="string")?"string":"any"}return"any"},Ul=ut.map(yn),Xl=({functionName:e})=>{if(e){let t=ut.find(n=>n.name===e),o=Gl(t);if(t)switch(o){case"string":return ut.filter(n=>n.type==="string"||n.type==="variable").map(yn);case"number":return ut.filter(n=>n.type==="number"||n.type==="variable").map(yn);default:}}return Ul},_l={},vn=({columns:e,table:t})=>{let o=(0,ct.useCallback)(l=>l?e.find(a=>a.name===l):void 0,[e]),n=(0,ct.useRef)(),r=(0,vo.useTypeaheadSuggestions)(),s=(0,ct.useCallback)(async(l,a=_l)=>{let{columnName:u,functionName:m,operator:p,prefix:g}=a;switch(l){case"expression":{let c=await Je(zr(e,{functionName:m,prefix:g})).concat(Xl(a));return n.current=c}case"column":{let c=await zr(e,a);return n.current=Je(c)}case"operator":{let c=await Wl(o(u));return n.current=Je(c)}case"relational-operator":{let c=await(0,be.getRelationalOperators)(o(u));return n.current=Je(c)}case"condition-operator":{let c=o(u);if(c){let d=await Ql(c);if(d)return n.current=Je(d)}}break;case"columnValue":if(u&&p){let c=(0,vo.getTypeaheadParams)(t,u),d=await r(c);return n.current=(0,be.toSuggestions)(d,{suffix:""}),n.current.forEach(C=>{C.apply=(f,h,w)=>{let x=new be.AnnotationType,E=w+h.label.length+1;f.dispatch({changes:{from:w,insert:h.label},selection:{anchor:E,head:E},annotations:x.of(h)})}}),n.current}break}return[]},[e,o,r,t]),i=(0,ct.useCallback)(async(l,a,u)=>{let{current:m}=n,p=!1,g=m||await s(l,{columnName:a});if(u&&g)for(let c of g){if(c.label===u)return!1;c.label.startsWith(u)&&(p=!0)}return p},[s]);return{getSuggestions:s,isPartialMatch:i}};var Se=require("@vuu-ui/vuu-utils"),Re=require("react"),Yl=e=>{let[t,o,n]=(0,Se.getCalculatedColumnDetails)(e);return n===""?{...e,name:`${t}:${o}:string`}:e},Vr=({column:e,onSave:t})=>{let[o,n]=(0,Re.useState)(Yl(e)),r=(0,Re.useRef)((0,Se.getCalculatedColumnDetails)(o)[1]),s=(0,Re.useCallback)(u=>{let{value:m}=u.target;n(p=>(0,Se.setCalculatedColumnName)(p,m))},[]),i=(0,Re.useCallback)(u=>{r.current=u.trim()},[]),l=(0,Re.useCallback)((u,m)=>{typeof m=="string"&&n(p=>(0,Se.setCalculatedColumnType)(p,m))},[]),a=(0,Re.useCallback)(()=>{let u=(0,Se.setCalculatedColumnExpression)(o,r.current);n(u),t(u)},[o,t]);return{column:o,onChangeExpression:i,onChangeName:s,onChangeType:l,onSave:a}};var W=require("react/jsx-runtime"),zt="vuuColumnExpressionPanel",Tn=({column:e,onSave:t,tableConfig:o,vuuTable:n})=>{let r=(0,To.useRef)(null),{column:s,onChangeExpression:i,onChangeName:l,onChangeType:a,onSave:u}=Vr({column:e,onSave:t}),m=vn({columns:o.columns,table:n}),p=(0,To.useCallback)(()=>{requestAnimationFrame(()=>{var g,c;(c=(g=r.current)==null?void 0:g.querySelector("button"))==null||c.focus()})},[]);return(0,W.jsxs)("div",{className:zt,children:[(0,W.jsx)("div",{className:"vuuColumnSettingsPanel-header",children:(0,W.jsx)("span",{children:"Calculation"})}),(0,W.jsxs)(oe.FormField,{"data-field":"column-name",children:[(0,W.jsx)(oe.FormFieldLabel,{children:"Column Name"}),(0,W.jsx)(oe.Input,{className:"vuuInput",onChange:l,value:(0,pt.getCalculatedColumnName)(s)})]}),(0,W.jsxs)(oe.FormField,{"data-field":"column-expression",children:[(0,W.jsx)(oe.FormFieldLabel,{children:"Expression"}),(0,W.jsx)(xn,{onChange:i,onSubmitExpression:p,source:(0,pt.getCalculatedColumnExpression)(s),suggestionProvider:m})]}),(0,W.jsxs)(oe.FormField,{"data-field":"type",children:[(0,W.jsx)(oe.FormFieldLabel,{children:"Column type"}),(0,W.jsx)($r.Dropdown,{className:`${zt}-type`,onSelectionChange:a,ref:r,selected:(0,pt.getCalculatedColumnType)(s)||null,source:["double","long","string"],width:"100%"})]}),(0,W.jsxs)("div",{className:"vuuColumnSettingsPanel-buttonBar","data-align":"right",children:[(0,W.jsx)(oe.Button,{className:`${zt}-buttonCancel`,tabIndex:-1,children:"cancel"}),(0,W.jsx)(oe.Button,{className:`${zt}-buttonApply`,tabIndex:-1,children:"apply"}),(0,W.jsx)(oe.Button,{className:`${zt}-buttonSave`,onClick:u,variant:"cta",children:"save"})]})]})};var En=require("@vuu-ui/vuu-ui-controls");var L=require("react/jsx-runtime"),Vt="vuuColumnSettingsPanel",Jl=({column:e,onConfigChange:t,onCreateCalculatedColumn:o,tableConfig:n,vuuTable:r})=>{let s=e.name==="::",{availableRenderers:i,selectedCellRenderer:l,column:a,navigateNextColumn:u,navigatePrevColumn:m,onChange:p,onChangeFormatting:g,onChangeRenderer:c,onInputCommit:d,onSave:C}=Sr({column:e,onConfigChange:t,onCreateCalculatedColumn:o,tableConfig:n}),{serverDataType:f,align:h=(0,Eo.getDefaultAlignment)(f),name:w,label:x=w,pin:E,width:M}=a;return(0,L.jsxs)("div",{className:Vt,children:[(0,L.jsx)("div",{className:`${Vt}-header`,children:(0,L.jsx)("span",{children:w})}),(0,L.jsxs)(I.FormField,{"data-field":"column-label",children:[(0,L.jsx)(I.FormFieldLabel,{children:"Column Label"}),(0,L.jsx)(En.VuuInput,{className:"vuuInput",onChange:p,onCommit:d,value:x})]}),(0,L.jsxs)(I.FormField,{"data-field":"column-width",children:[(0,L.jsx)(I.FormFieldLabel,{children:"Column Width"}),(0,L.jsx)(En.VuuInput,{className:"vuuInput",onChange:p,value:M,onCommit:d})]}),(0,L.jsxs)(I.FormField,{"data-field":"column-alignment",children:[(0,L.jsx)(I.FormFieldLabel,{children:"Alignment"}),(0,L.jsxs)(I.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:p,value:h,children:[(0,L.jsx)(I.ToggleButton,{"data-icon":"align-left",className:"vuuIconToggleButton",value:"left"}),(0,L.jsx)(I.ToggleButton,{"data-icon":"align-right",className:"vuuIconToggleButton",value:"right"})]})]}),(0,L.jsxs)(I.FormField,{"data-field":"column-pin",children:[(0,L.jsx)(I.FormFieldLabel,{children:"Pin Column"}),(0,L.jsxs)(I.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:p,value:E!=null?E:"",children:[(0,L.jsx)(I.ToggleButton,{className:"vuuIconToggleButton","data-icon":"cross-circle",value:""}),(0,L.jsx)(I.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-left",value:"left"}),(0,L.jsx)(I.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-float",value:"floating"}),(0,L.jsx)(I.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-right",value:"right"})]})]}),(0,L.jsx)(tn,{availableRenderers:i,selectedCellRenderer:l,column:a,onChangeFormatting:g,onChangeRenderer:c}),(0,Eo.isCalculatedColumn)(a.name)?(0,L.jsx)(Tn,{column:a,onSave:C,tableConfig:n,vuuTable:r}):(0,L.jsxs)("div",{className:`${Vt}-buttonBar`,"data-align":s?"right":void 0,children:[(0,L.jsx)(I.Button,{className:`${Vt}-buttonNavPrev`,variant:"secondary","data-icon":"arrow-left",onClick:m,children:"PREVIOUS"}),(0,L.jsx)(I.Button,{className:`${Vt}-buttonNavNext`,variant:"secondary","data-icon":"arrow-right",onClick:u,children:"NEXT"})]})]})};var Bt=require("react"),Br=k(require("classnames"),1);var Pe=require("react/jsx-runtime"),$t="vuuDatasourceStats",wn=new Intl.NumberFormat,Zl=({className:e,dataSource:t})=>{let[o,n]=(0,Bt.useState)(t.range),[r,s]=(0,Bt.useState)(t.size);(0,Bt.useEffect)(()=>{s(t.size),t.on("resize",s),t.on("range",n)},[t]);let i=(0,Br.default)($t,e),l=wn.format(o.from),a=wn.format(o.to-1),u=wn.format(r);return(0,Pe.jsxs)("div",{className:i,children:[(0,Pe.jsx)("span",{className:`${$t}-label`,children:"Row count"}),(0,Pe.jsx)("span",{className:`${$t}-range`,children:l}),(0,Pe.jsx)("span",{children:"-"}),(0,Pe.jsx)("span",{className:`${$t}-range`,children:a}),(0,Pe.jsx)("span",{children:"of"}),(0,Pe.jsx)("span",{className:`${$t}-size`,children:u})]})};var z=require("@salt-ds/core");var Mi=require("@vuu-ui/vuu-layout");var Wr=require("react");var ql=require("react/jsx-runtime");var Qr=require("@vuu-ui/vuu-utils"),Pn=e=>(t,o)=>{let n=[];if(e===void 0)return n;if(t==="header"||t==="column-menu")n.push(...jl(o,e)),n.push(...oa(o,e)),n.push(...ea(o,e)),n.push(...ta(o)),n.push({action:"column-settings",icon:"cog",label:"Column Settings",options:o}),n.push({action:"table-settings",icon:"cog",label:"DataGrid Settings",options:o});else if(t==="filter"){let{column:r,filter:s}=o,i=(s==null?void 0:s.column)===(r==null?void 0:r.name);n.push({label:"Edit filter",action:"filter-edit",options:o}),n.push({label:"Remove filter",action:"filter-remove-column",options:o}),r&&!i&&n.push({label:"Remove all filters",action:"remove-filters",options:o})}return n};function jl(e,{sort:{sortDefs:t}}){let{column:o}=e,n=[];if(o===void 0)return n;let r=t.length>0;return o.sorted==="A"?n.push({label:"Reverse Sort (DSC)",action:"sort-dsc",options:e}):o.sorted==="D"?n.push({label:"Reverse Sort (ASC)",action:"sort-asc",options:e}):typeof o.sorted=="number"?(o.sorted>0?n.push({label:"Reverse Sort (DSC)",action:"sort-add-dsc",options:e}):n.push({label:"Reverse Sort (ASC)",action:"sort-add-asc",options:e}),r&&Math.abs(o.sorted)<t.length&&n.push({label:"Remove from sort",action:"sort-remove",options:e}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):r?(n.push({label:"Add to sort",children:[{label:"Ascending",action:"sort-add-asc",options:e},{label:"Descending",action:"sort-add-dsc",options:e}]}),n.push({label:"New Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]})):n.push({label:"Sort",children:[{label:"Ascending",action:"sort-asc",options:e},{label:"Descending",action:"sort-dsc",options:e}]}),n}function ea(e,t){let{column:o}=e;if(o===void 0||t.groupBy.length===0)return[];let{name:n,label:r=n}=o;return[{label:`Aggregate ${r}`,children:[{label:"Count",action:"agg-count",options:e},{label:"Distinct",action:"agg-distinct",options:e}].concat((0,Qr.isNumericColumn)(o)?[{label:"Sum",action:"agg-sum",options:e},{label:"Avg",action:"agg-avg",options:e},{label:"High",action:"agg-high",options:e},{label:"Low",action:"agg-low",options:e}]:[])}]}var Mn=(e,t)=>({label:`Pin ${t}`,action:`column-pin-${t}`,options:e}),Dn=e=>Mn(e,"left"),Rn=e=>Mn(e,"floating"),Sn=e=>Mn(e,"right");function ta(e){let{column:t}=e;if(t===void 0)return[];let{pin:o}=t,n=[{label:"Hide column",action:"column-hide",options:e},{label:"Remove column",action:"column-remove",options:e}];return o===void 0?n.push({label:"Pin column",children:[Dn(e),Rn(e),Sn(e)]}):o==="left"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Rn(e),Sn(e)]}):o==="right"?n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Dn(e),Rn(e)]}):o==="floating"&&n.push({label:"Unpin column",action:"column-unpin",options:e},{label:"Pin column",children:[Dn(e),Sn(e)]}),n}function oa(e,{groupBy:t}){let{column:o}=e,n=[];if(o===void 0)return n;let{name:r,label:s=r}=o;return t.length===0?n.push({label:`Group by ${s}`,action:"group",options:e}):n.push({label:`Add ${s} to group by`,action:"group-add",options:e}),n}var Gr=require("@vuu-ui/vuu-utils"),Q=require("@vuu-ui/vuu-utils"),na=(e,t)=>{if(e.filterStruct&&t){let[o,n]=(0,Gr.removeColumnFromFilter)(t,e.filterStruct);return{filter:n,filterStruct:o}}else return e},{Average:ra,Count:sa,Distinct:ia,High:la,Low:aa,Sum:ua}=Q.AggregationType,Hn=({dataSource:e,onPersistentColumnOperation:t})=>n=>{let r=n.options;if(r.column&&e){let{column:s}=r;switch(n.menuId){case"sort-asc":return e.sort=(0,Q.setSortColumn)(e.sort,s,"A"),!0;case"sort-dsc":return e.sort=(0,Q.setSortColumn)(e.sort,s,"D"),!0;case"sort-add-asc":return e.sort=(0,Q.addSortColumn)(e.sort,s,"A"),!0;case"sort-add-dsc":return e.sort=(0,Q.addSortColumn)(e.sort,s,"D"),!0;case"group":return e.groupBy=(0,Q.addGroupColumn)(e.groupBy,s),!0;case"group-add":return e.groupBy=(0,Q.addGroupColumn)(e.groupBy,s),!0;case"column-hide":return t({type:"hideColumns",columns:[s]}),!0;case"column-remove":return e.columns=e.columns.filter(i=>i!==s.name),!0;case"filter-remove-column":return e.filter=na(e.filter,s),!0;case"remove-filters":return e.filter={filter:""},!0;case"agg-avg":return e.aggregations=(0,Q.setAggregations)(e.aggregations,s,ra),!0;case"agg-high":return e.aggregations=(0,Q.setAggregations)(e.aggregations,s,la),!0;case"agg-low":return e.aggregations=(0,Q.setAggregations)(e.aggregations,s,aa),!0;case"agg-count":return e.aggregations=(0,Q.setAggregations)(e.aggregations,s,sa),!0;case"agg-distinct":return e.aggregations=(0,Q.setAggregations)(e.aggregations,s,ia),!0;case"agg-sum":return e.aggregations=(0,Q.setAggregations)(e.aggregations,s,ua),!0;case"column-pin-floating":return t({type:"pinColumn",column:s,pin:"floating"}),!0;case"column-pin-left":return t({type:"pinColumn",column:s,pin:"left"}),!0;case"column-pin-right":return t({type:"pinColumn",column:s,pin:"right"}),!0;case"column-unpin":return t({type:"pinColumn",column:s,pin:void 0}),!0;case"column-settings":return t({type:"columnSettings",column:s}),!0;case"table-settings":return t({type:"tableSettings"}),!0;default:}}return!1};var Xa=require("@vuu-ui/vuu-popups"),hs=require("@salt-ds/core");var Ze=require("@vuu-ui/vuu-utils"),rs=require("react");var ne=require("@vuu-ui/vuu-utils"),qr=k(require("classnames")),Qt=require("react");var wo=require("@vuu-ui/vuu-utils"),Xr=require("@vuu-ui/vuu-ui-controls"),_r=k(require("classnames")),Me=require("react");var Wt=require("react/jsx-runtime"),{KEY:Ur}=wo.metadataKeys,On=(0,Me.memo)(({className:e,column:t,columnMap:o,onClick:n,row:r})=>{let s=(0,Me.useRef)(null),{align:i,CellRenderer:l,key:a,pin:u,editable:m,resizing:p,valueFormatter:g}=t,[c,d]=(0,Me.useState)(!1),C=g(r[a]),[f,h]=(0,Me.useState)(C),w=()=>{var R;(R=s.current)==null||R.focus()},x=R=>{R.key==="Enter"&&d(!0)},E=(0,Me.useCallback)(R=>{n==null||n(R,t)},[t,n]),M=()=>{d(!0)},y=(R="",H="",q=!0,xe=!1)=>{var N;d(!1),xe?h(R):H!==R&&h(H),q===!1&&((N=s.current)==null||N.focus())},b=(0,_r.default)(e,{vuuAlignRight:i==="right",vuuPinFloating:u==="floating",vuuPinLeft:u==="left",vuuPinRight:u==="right","vuuTableCell-resizing":p})||void 0,D=(0,wo.getColumnStyle)(t);return m?(0,Wt.jsx)("div",{className:b,"data-editable":!0,role:"cell",style:D,onKeyDown:x,children:(0,Wt.jsx)(Xr.EditableLabel,{editing:c,value:f,onChange:h,onMouseDownCapture:w,onEnterEditMode:M,onExitEditMode:y,onKeyDown:x,ref:s,tabIndex:0},"title")}):(0,Wt.jsx)("div",{className:b,role:"cell",style:D,onClick:E,children:l?(0,Wt.jsx)(l,{column:t,columnMap:o,row:r}):C})},ca);On.displayName="TableCell";function ca(e,t){return e.column===t.column&&e.onClick===t.onClick&&e.row[Ur]===t.row[Ur]&&e.row[e.column.key]===t.row[t.column.key]}var ft=require("@vuu-ui/vuu-utils"),Yr=require("react");var dt=require("react/jsx-runtime"),{IS_LEAF:ma}=ft.metadataKeys,Jr=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,s]=(0,ft.getGroupValueAndOffset)(n,o),i=(0,Yr.useCallback)(m=>{t==null||t(m,e)},[e,t]),l=(0,ft.getColumnStyle)(e),a=o[ma],u=Array(s).fill(0).map((m,p)=>(0,dt.jsx)("span",{className:"vuuTableGroupCell-spacer"},p));return(0,dt.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:l,children:[u,a?null:(0,dt.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,dt.jsx)("span",{children:r})]})};var Gt=require("react/jsx-runtime"),{IDX:pa,IS_EXPANDED:da,SELECTED:fa}=ne.metadataKeys,{True:Zr,First:ga,Last:Ca}=ne.RowSelected,gt="vuuTableRow",ba=(0,Qt.memo)(function({columnMap:t,columns:o,offset:n,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[pa]:a,[da]:u,[fa]:m}=l,p=(0,qr.default)(gt,{[`${gt}-even`]:a%2===0,[`${gt}-expanded`]:u,[`${gt}-selected`]:m&Zr,[`${gt}-selectedStart`]:m&ga,[`${gt}-selectedEnd`]:m&Ca}),g=(0,Qt.useCallback)(d=>{let C=d.shiftKey,f=d.ctrlKey||d.metaKey;r==null||r(l,C,f)},[r,l]),c=(0,Qt.useCallback)((d,C)=>{((0,ne.isGroupColumn)(C)||(0,ne.isJsonGroup)(C,l))&&(d.stopPropagation(),s==null||s(l,C))},[s,l]);return(0,Gt.jsxs)("div",{"aria-selected":m&Zr?!0:void 0,"aria-rowindex":a,className:p,onClick:g,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,Gt.jsx)("div",{role:"cell",style:{width:i}}):null,o.filter(ne.notHidden).map(d=>{let C=(0,ne.isGroupColumn)(d),f=(0,ne.isJsonColumn)(d);return(0,Gt.jsx)(C?Jr:On,{column:d,columnMap:t,onClick:C||f?c:void 0,row:l},d.name)})]})});var ya=k(require("classnames")),va=require("react");var jr=require("react");var es=require("react/jsx-runtime");var Sa=k(require("classnames")),os=require("react");var Ta=k(require("classnames"));var ts=require("react/jsx-runtime");var Pa=require("@vuu-ui/vuu-popups");var Ea=require("@vuu-ui/vuu-popups"),wa=k(require("classnames")),Da=require("react");var Ra=require("react/jsx-runtime");var ns=require("react/jsx-runtime");var ss=require("react/jsx-runtime");var{RENDER_IDX:Vd}=Ze.metadataKeys;var Ua=require("@vuu-ui/vuu-popups"),Ct=require("@vuu-ui/vuu-utils"),Jt=require("react");var is=require("@vuu-ui/vuu-data-react"),Do=require("@vuu-ui/vuu-utils"),Ut=require("react"),{SELECTED:Bd}=Do.metadataKeys;var Ma=require("@vuu-ui/vuu-ui-controls"),ls=require("react");var Fa=require("@vuu-ui/vuu-utils"),Xt=require("react");function Ha(e,...t){let o=new Set(e);for(let n of t)for(let r of n)o.add(r);return o}var as="ArrowUp",us="ArrowDown",cs="ArrowLeft",ms="ArrowRight";var ps="Home",ds="End",fs="PageUp",gs="PageDown";var Oa=new Set(["Enter","Delete"," "]),Aa=new Set(["Tab"]),La=new Set(["ArrowRight","ArrowLeft"]),Na=new Set([ps,ds,fs,gs,us,cs,ms,as]),ka=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Ud=Ha(Oa,Na,La,ka,Aa);var za=require("@vuu-ui/vuu-utils"),Ro=require("react");var An=require("react");var Ia=new Map,Ka=(e,t,o)=>{switch(o){case"height":return t.height;case"clientHeight":return e.clientHeight;case"clientWidth":return e.clientWidth;case"contentHeight":return t.contentHeight;case"contentWidth":return t.contentWidth;case"scrollHeight":return Math.ceil(e.scrollHeight);case"scrollWidth":return Math.ceil(e.scrollWidth);case"width":return t.width;default:return 0}},rf=new ResizeObserver(e=>{for(let t of e){let{target:o,borderBoxSize:n,contentBoxSize:r}=t,s=Ia.get(o);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:a,inlineSize:u}]=r,{onResize:m,measurements:p}=s,g=!1;for(let[c,d]of Object.entries(p)){let C=Ka(o,{height:i,width:l,contentHeight:a,contentWidth:u},c);C!==d&&(g=!0,p[c]=C)}g&&m&&m(p)}}});var ke=require("@vuu-ui/vuu-utils"),_t=require("react"),{IDX:Va}=ke.metadataKeys,$a=[],Ln=({selectionModel:e,onSelect:t,onSelectionChange:o})=>{let n=(0,_t.useRef)(-1),r=(0,_t.useRef)($a);return(0,_t.useCallback)((i,l,a)=>{let{[Va]:u}=i,{current:m}=n,{current:p}=r,c=((0,ke.isRowSelected)(i)?ke.deselectItem:ke.selectItem)(e,p,u,l,a,m);r.current=c,n.current=u,t==null||t(i),o==null||o(c)},[t,o,e])};var B=require("@vuu-ui/vuu-utils"),Ba=require("react");var ff=B.metadataKeys.count;var Cs=require("react");var He=require("react"),So=require("@vuu-ui/vuu-utils"),Wa=15e5,Qa={contentHeight:0,contentWidth:0,getRowAtPosition:()=>-1,getRowOffset:()=>-1,horizontalScrollbarHeight:0,maxScrollContainerScrollHorizontal:0,maxScrollContainerScrollVertical:0,pinnedWidthLeft:0,pinnedWidthRight:0,rowCount:0,setPctScrollTop:()=>{},totalHeaderHeight:0,verticalScrollbarWidth:0,viewportBodyHeight:0},Ga=e=>{let t=0,o=0,n=0;for(let r of e){let{hidden:s,pin:i,width:l}=r,a=s?0:l;i==="left"?t+=a:i==="right"?o+=a:n+=a}return{pinnedWidthLeft:t+4,pinnedWidthRight:o+4,unpinnedWidth:n}},Nn=({columns:e,headerHeight:t,headings:o,rowCount:n,rowHeight:r,size:s})=>{let i=(0,He.useRef)(0),a=Math.min(n,Wa)*r,m=n*r-a,{pinnedWidthLeft:p,pinnedWidthRight:g,unpinnedWidth:c}=(0,He.useMemo)(()=>Ga(e),[e]),[d,C]=(0,He.useMemo)(()=>(0,So.actualRowPositioning)(r),[r]),[f,h]=(0,He.useMemo)(()=>m?(0,So.virtualRowPositioning)(r,m,i):[d,C],[C,d,m,r]),w=(0,He.useCallback)(x=>{i.current=x},[]);return(0,He.useMemo)(()=>{var x;if(s){let E=o.length,M=15,y=p+c+g,b=y>s.width?M:0,D=t*(1+E),R=a-(((x=s==null?void 0:s.height)!=null?x:0)-b)+D,H=y-s.width+p,q=(s.height-t)/r,xe=Number.isInteger(q)?q+1:Math.ceil(q),N=s.height-D,ze=a>N?M:0;return{contentHeight:a,getRowAtPosition:h,getRowOffset:f,horizontalScrollbarHeight:b,maxScrollContainerScrollHorizontal:H,maxScrollContainerScrollVertical:R,pinnedWidthLeft:p,pinnedWidthRight:g,rowCount:xe,contentWidth:y,setPctScrollTop:w,totalHeaderHeight:D,verticalScrollbarWidth:ze,viewportBodyHeight:N}}else return Qa},[s,o.length,p,c,g,a,t,r,h,f,w])};var bs=require("@vuu-ui/vuu-utils"),Yt=require("react");var{KEY:Wf,IS_EXPANDED:Qf,IS_LEAF:Gf}=Ct.metadataKeys;var _a=k(require("classnames"));var Ya=require("@vuu-ui/vuu-utils"),xs=require("react/jsx-runtime");var ys=k(require("classnames")),ht=require("@vuu-ui/vuu-utils");var bt=require("react/jsx-runtime"),Zt="vuuJsonCell",{IS_EXPANDED:Ja,KEY:Za}=ht.metadataKeys,qa=e=>{let t=e.lastIndexOf("|");return t===-1?"":e.slice(t+1)},ja=({column:e,row:t})=>{let{key:o}=e,n=t[o],r=!1;(0,ht.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let s=qa(t[Za]),i=(0,ys.default)({[`${Zt}-name`]:s===n,[`${Zt}-value`]:s!==n,[`${Zt}-group`]:r});if(r){let l=t[Ja]?"minus-box":"plus-box";return(0,bt.jsxs)("span",{className:i,children:[(0,bt.jsx)("span",{className:`${Zt}-value`,children:n}),(0,bt.jsx)("span",{className:`${Zt}-toggle`,"data-icon":l})]})}else return n?(0,bt.jsx)("span",{className:i,children:n}):null};console.log("register JsonCell");(0,ht.registerComponent)("json",ja,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var tu=k(require("classnames")),ou=require("react");var xt=require("react");var Ts=require("react/jsx-runtime"),vs=()=>{},eu="vuuColumnResizerNext",qt=({onDrag:e,onDragEnd:t=vs,onDragStart:o=vs})=>{let n=(0,xt.useRef)(0),r=(0,xt.useCallback)(l=>{l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault();let a=Math.round(l.clientX),u=a-n.current;n.current=a,u!==0&&e(l,u)},[e]),s=(0,xt.useCallback)(l=>{window.removeEventListener("mouseup",s),window.removeEventListener("mousemove",r),t(l)},[t,r]),i=(0,xt.useCallback)(l=>{o(l),n.current=Math.round(l.clientX),window.addEventListener("mouseup",s),window.addEventListener("mousemove",r),l.stopPropagation&&l.stopPropagation(),l.preventDefault&&l.preventDefault()},[o,r,s]);return(0,Ts.jsx)("div",{className:eu,onMouseDown:i})};var Fe=require("react"),jt=({column:e,onResize:t,rootRef:o})=>{let n=(0,Fe.useRef)(0),[r,s]=(0,Fe.useState)(!1),{name:i}=e,l=(0,Fe.useCallback)(()=>{if(console.log("onResizeStart"),t&&o.current){console.log("handleResizeStart");let{width:m}=o.current.getBoundingClientRect();n.current=Math.round(m),s(!0),t==null||t("begin",i)}},[i,t,o]),a=(0,Fe.useCallback)((m,p)=>{if(o.current&&t){let{width:g}=o.current.getBoundingClientRect(),c=Math.round(g)+p;c!==n.current&&c>0&&(t("resize",i,c),n.current=c)}},[i,t,o]),u=(0,Fe.useCallback)(()=>{t&&(t("end",i,n.current),setTimeout(()=>{s(!1)},80))},[i,t]);return{isResizing:r,onDrag:a,onDragStart:l,onDragEnd:u}};var Es=require("@vuu-ui/vuu-utils"),ws=k(require("classnames")),Ds=require("react"),Oe=(e,t,o)=>(0,Ds.useMemo)(()=>{let n=(0,ws.default)(t,{vuuPinFloating:e.pin==="floating",vuuPinLeft:e.pin==="left",vuuPinRight:e.pin==="right",vuuEndPin:o&&e.endPin,[`${t}-editable`]:e.editable,[`${t}-right`]:e.align==="right"}),r=(0,Es.getColumnStyle)(e);return{className:n,style:r}},[e,t,o]);var Ss=k(require("classnames")),Ps=require("react");var Po=require("react/jsx-runtime"),Rs="vuuColumnHeaderPill",qe=({children:e,className:t,column:o,onRemove:n,removable:r,...s})=>{if(r&&typeof n!="function")throw Error("ColumnHeaderPill onRemove prop must be provided if Pill is removable");let i=(0,Ps.useCallback)(l=>{l.preventDefault(),l.stopPropagation(),n==null||n(o)},[o,n]);return(0,Po.jsxs)("div",{...s,className:(0,Ss.default)(Rs,t),children:[e,r?(0,Po.jsx)("span",{className:`${Rs}-removeButton`,role:"button","data-icon":"cross",onClick:i}):null]})};var yt=require("react/jsx-runtime"),kn=({column:e,...t})=>{let{name:o,sorted:n}=e,r=typeof n=="number"?n<0?"arrow-down":"arrow-up":n==="A"?"arrow-up":n==="D"?"arrow-down":void 0;return(0,yt.jsxs)(qe,{...t,column:e,children:[(0,yt.jsx)("span",{className:"vuuGroupColumnPill-label",children:o}),r!==void 0?(0,yt.jsx)("span",{"data-icon":r}):null,typeof n=="number"?(0,yt.jsx)("span",{className:"vuuSortPosition",children:Math.abs(n)}):null]})};var eo=require("react/jsx-runtime"),Ms=({column:e})=>{if(!e.sorted)return null;let t=typeof e.sorted=="number"?e.sorted<0?"arrow-down":"arrow-up":e.sorted==="A"?"arrow-up":"arrow-down";return(0,eo.jsxs)(qe,{column:e,children:[(0,eo.jsx)("span",{"data-icon":t}),typeof e.sorted=="number"?(0,eo.jsx)("span",{className:"vuuSortPosition",children:Math.abs(e.sorted)}):null]})};var Hs=require("react/jsx-runtime"),nu=require("react");var Os=k(require("classnames")),Tt=require("react");var Mo=require("@vuu-ui/vuu-layout");var vt=require("react/jsx-runtime"),As=require("react"),Fn="vuuTableNextGroupHeaderCell",ru=(e,t)=>e===t?e:t,Ho=({column:e,className:t,onRemoveColumn:o,onResize:n,...r})=>{let s=(0,Tt.useRef)(null),{isResizing:i,...l}=jt({column:e,onResize:n,rootRef:s}),[a,u]=(0,Tt.useState)(e.columns),{className:m,style:p}=Oe(e,Fn,!0),g=a.length>1?{removable:!0,onRemove:o}:void 0,c=(0,Tt.useCallback)((d,C)=>{u(f=>{let h=f.slice(),[w]=h.splice(d,1);return C===-1?h.concat(w):(h.splice(C,0,w),h)})},[]);return(0,Mo.useLayoutEffectSkipFirst)(()=>{u(d=>ru(d,e.columns))},[e.columns]),(0,vt.jsxs)("div",{...r,className:(0,Os.default)(m,"vuuTableNextHeaderCell",t,{[`${Fn}-pending`]:e.groupConfirmed===!1}),ref:s,role:"columnheader",style:p,children:[(0,vt.jsx)(Mo.OverflowContainer,{allowDragDrop:!0,className:`${Fn}-inner`,height:24,onMoveItem:c,overflowPosition:"start",children:a.map(d=>(0,As.createElement)(kn,{...g,column:d,key:d.key}))}),(0,vt.jsx)(qe,{column:e,removable:!0,onRemove:o}),e.resizeable!==!1?(0,vt.jsx)(qt,{...l}):null]})};var Oo=require("react");var Ls=require("@vuu-ui/vuu-popups"),Ns=k(require("classnames")),je=require("react");var Fs=require("react/jsx-runtime"),su=e=>{if(e){let{bottom:t,left:o}=e.getBoundingClientRect();return{x:o,y:t+6}}},ks=({className:e,column:t,...o})=>{let n=(0,je.useRef)(null),[r,s]=(0,je.useState)(!1),[i]=(0,Ls.useContextMenu)(),l=(0,je.useCallback)(()=>{s(!1)},[]),a=(0,je.useCallback)(u=>{s(!0),i(u,"column-menu",{column:t,ContextMenuProps:{onClose:l,position:su(n.current)}})},[t,l,i]);return(0,Fs.jsx)("span",{...o,className:(0,Ns.default)("vuuTable-columnMenu",e,{"vuuTable-columnMenu-open":r}),"data-icon":"more-vert",onClick:a,ref:n})};var Is=k(require("classnames"));var et=require("react/jsx-runtime"),In="vuuTableNextHeaderCell",Ks=({className:e,column:t,onClick:o,onResize:n,...r})=>{var C;let s=(0,Oo.useRef)(null),{isResizing:i,...l}=jt({column:t,onResize:n,rootRef:s}),a=(0,Oo.useCallback)(f=>{console.log(`click isResizing ${i}`),!i&&(o==null||o(f))},[i,o]),{className:u,style:m}=Oe(t,In,!0),p=(0,et.jsx)(ks,{column:t}),g=(0,et.jsx)("div",{className:`${In}-label`,children:(C=t.label)!=null?C:t.name}),c=(0,et.jsx)(Ms,{column:t}),d=t.align==="right"?[c,g,p]:[p,g,c];return(0,et.jsxs)("div",{...r,className:(0,Is.default)(u,e,{[`${In}-resizing`]:i}),onClick:a,ref:s,role:"columnheader",style:m,children:[...d,t.resizeable!==!1?(0,et.jsx)(qt,{...l}):null]})};var vi=require("@vuu-ui/vuu-popups"),St=require("@vuu-ui/vuu-utils"),Un=k(require("classnames")),Ko=require("react");var re=require("@vuu-ui/vuu-utils"),Qs=k(require("classnames")),to=require("react");var zs=require("@vuu-ui/vuu-utils"),Kn=require("react");var zn=require("react/jsx-runtime"),{IDX:iu}=zs.metadataKeys,lu="vuuTableNextCell",Vs=({column:e,columnMap:t,onClick:o,onDataEdited:n,row:r})=>{let{className:s,style:i}=Oe(e,lu),{CellRenderer:l,name:a,valueFormatter:u}=e,m=t[a],p=(0,Kn.useCallback)(c=>(n==null||n(r[iu],a,c),!0),[a,n,r]),g=(0,Kn.useCallback)(c=>{o==null||o(c,e)},[e,o]);return(0,zn.jsx)("div",{className:s,onClick:o?g:void 0,role:"cell",style:i,children:l?(0,zn.jsx)(l,{column:e,columnMap:t,onCommit:p,row:r}):u(r[m])})};var Ao=require("@vuu-ui/vuu-utils"),$s=require("react");var Bs=k(require("classnames"));var Et=require("react/jsx-runtime"),{IS_LEAF:au}=Ao.metadataKeys,Vn="vuuTableNextGroupCell",Ws=({column:e,onClick:t,row:o})=>{let{columns:n}=e,[r,s]=(0,Ao.getGroupValueAndOffset)(n,o),{className:i,style:l}=Oe(e,Vn),a=(0,$s.useCallback)(p=>{t==null||t(p,e)},[e,t]),u=o[au],m=Array(s).fill(0).map((p,g)=>(0,Et.jsx)("span",{className:`${Vn}-spacer`},g));return(0,Et.jsxs)("div",{className:(0,Bs.default)(i,"vuuTableNextCell"),role:"cell",style:l,onClick:u?void 0:a,children:[m,u?null:(0,Et.jsx)("span",{className:`${Vn}-toggle`,"data-icon":"triangle-right"}),(0,Et.jsx)("span",{children:r})]})};var Lo=require("react/jsx-runtime"),Gs=require("react"),{IDX:uu,IS_EXPANDED:cu,SELECTED:mu}=re.metadataKeys,Ie="vuuTableNextRow",$n=(0,to.memo)(({className:e,columnMap:t,columns:o,row:n,offset:r,onClick:s,onDataEdited:i,onToggleGroup:l,zebraStripes:a=!1,...u})=>{let{[uu]:m,[cu]:p,[mu]:g}=n,c=(0,to.useCallback)(E=>{let M=E.shiftKey,y=E.ctrlKey||E.metaKey;s==null||s(n,M,y)},[s,n]),{True:d,First:C,Last:f}=re.RowSelected,h=(0,Qs.default)(Ie,e,{[`${Ie}-even`]:a&&m%2===0,[`${Ie}-expanded`]:p,[`${Ie}-selected`]:g&d,[`${Ie}-selectedStart`]:g&C,[`${Ie}-selectedEnd`]:g&f}),w={transform:`translate3d(0px, ${r}px, 0px)`},x=(0,to.useCallback)((E,M)=>{((0,re.isGroupColumn)(M)||(0,re.isJsonGroup)(M,n))&&(E.stopPropagation(),l==null||l(n,M))},[l,n]);return(0,Gs.createElement)("div",{...u,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:h,onClick:c,style:w},(0,Lo.jsx)("span",{className:`${Ie}-selectionDecorator vuuStickyLeft`}),o.filter(re.notHidden).map(E=>{let M=(0,re.isGroupColumn)(E),y=(0,re.isJsonColumn)(E);return(0,Lo.jsx)(M?Ws:Vs,{column:E,columnMap:t,onClick:M||y?x:void 0,onDataEdited:i,row:n},E.key)}),(0,Lo.jsx)("span",{className:`${Ie}-selectionDecorator vuuStickyRight`}))});$n.displayName="Row";var hi=require("@vuu-ui/vuu-layout");var xi=require("@vuu-ui/vuu-ui-controls");var G=require("react");var Bn=e=>`.vuuTableNext-col-headers .vuuTableNextHeaderCell:nth-child(${e})`,Wn=(e,t)=>`.vuuTableNext-body > [aria-rowindex='${e}'] > [role='cell']:nth-child(${t+1})`,Us=(e,[t,o])=>{var s;let n=t===-1?Bn(o):Wn(t,o),r=(s=e.current)==null?void 0:s.querySelector(n);return pu(r)&&r.querySelector("button")||r},pu=e=>e.classList.contains("vuuTableNextCell-editable"),Xs=e=>e.querySelector(".vuuTableInputCell")!==null;var du=new Set(["Home","End","PageUp","PageDown","ArrowDown","ArrowLeft","ArrowRight","ArrowUp"]),fu=e=>du.has(e),gu=["Home","End","PageUp","PageDown"],Cu=e=>gu.includes(e),bu=[-1,-1],hu=[void 0,void 0],xu=e=>{var o,n;let t=(o=e.closest(".vuuTableNext"))==null?void 0:o.querySelector(".vuuTableNext-scrollbarContainer");if(t){let r=t==null?void 0:t.getBoundingClientRect(),s=(n=e.closest(".vuuTableNextCell"))==null?void 0:n.getBoundingClientRect();if(s)return s.bottom>r.bottom?["down",s.bottom-r.bottom]:s.top<r.top?["up",s.top-r.top]:s.right<r.right?["right",s.right-r.right]:s.left<r.left?["left",s.left-r.left]:hu;throw Error("Whats going on, cell not found")}else throw Error("Whats going on, scrollbar container not found")};function yu(e,[t,o],n,r){return e==="ArrowUp"?t>-1?[t-1,o]:[t,o]:e==="ArrowDown"?t===-1?[0,o]:t===r-1?[t,o]:[t+1,o]:e==="ArrowRight"?o<n-1?[t,o+1]:[t,o]:e==="ArrowLeft"?o>1?[t,o-1]:[t,o]:[t,o]}var _s=({columnCount:e=0,containerRef:t,disableHighlightOnFocus:o,requestScroll:n,rowCount:r=0,viewportRowCount:s})=>{var M;let i=(0,G.useRef)([-1,-1]),l=(0,G.useRef)(),a=(0,G.useRef)([-1,0]),u=y=>y==null?void 0:y.closest("[role='columnHeader'],[role='cell']"),m=y=>{var b,D;if(y.role==="columnHeader")return[-1,parseInt((b=y.dataset.idx)!=null?b:"-1",10)];{let R=y.closest("[role='row']");if(R){let H=parseInt((D=R.ariaRowIndex)!=null?D:"-1",10),q=Array.from(R.childNodes).indexOf(y);return[H,q]}}return bu},p=(0,G.useCallback)(y=>{var b;if(t.current){let D=Us(t,y);if(D){D!==l.current&&((b=l.current)==null||b.removeAttribute("tabindex"),l.current=D,D.setAttribute("tabindex","0"));let[R,H]=xu(D);R&&H&&(n==null||n({type:"scroll-distance",distance:H,direction:R})),D.focus()}}},[t,n]),g=(0,G.useCallback)((y,b,D=!1)=>{let R=[y,b];a.current=R,p(R),D&&(i.current=R)},[p]),c=(0,G.useCallback)((y,[b,D])=>new Promise(R=>{let H=b;switch(y){case"PageDown":H=Math.min(r-1,b+s),n==null||n({type:"scroll-page",direction:"down"});break;case"PageUp":H=Math.max(0,b-s),n==null||n({type:"scroll-page",direction:"up"});break;case"Home":H=0,n==null||n({type:"scroll-end",direction:"home"});break;case"End":H=r-1,n==null||n({type:"scroll-end",direction:"end"});break}setTimeout(()=>{R([H,D])},90)}),[n,r,s]),d=(0,G.useCallback)(()=>{var y;if(o!==!0&&(y=t.current)!=null&&y.contains(document.activeElement)){let b=u(document.activeElement);b&&(console.log({focusedCell:b}),i.current=m(b))}},[o,t]),C=(0,G.useCallback)(async y=>{console.log(`navigate child items ${y}`);let[b,D]=Cu(y)?await c(y,a.current):yu(y,a.current,e,r);console.log(`nextRowIdx ${b} nextColIdx ${D}`);let[R,H]=a.current;(b!==R||D!==H)&&g(b,D,!0)},[e,c,r,g]),f=(0,G.useCallback)(y=>{r>0&&fu(y.key)&&(y.preventDefault(),y.stopPropagation(),C(y.key))},[r,C]),h=(0,G.useCallback)(y=>{let b=y.target,D=u(b);if(D){let[R,H]=m(D);g(R,H)}},[g]),w=(0,G.useCallback)(()=>{C("ArrowDown")},[C]),x=(0,G.useMemo)(()=>({navigate:w,onClick:h,onFocus:d,onKeyDown:f}),[h,d,f,w]),E=((M=t.current)==null?void 0:M.firstChild)!=null;return(0,G.useEffect)(()=>{if(E&&l.current===void 0){let{current:y}=t,b=(y==null?void 0:y.querySelector(Bn(0)))||(y==null?void 0:y.querySelector(Wn(0,0)));b&&(b.setAttribute("tabindex","0"),l.current=b)}},[t,E]),x};var U=require("@vuu-ui/vuu-utils"),O=require("react");var oo=(e,t)=>{switch(t.type){case"col-size":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,width:t.width}:o)};case"column-prop":return{...e,columns:e.columns.map(o=>o.name===t.column.name?{...o,[t.property]:t.value}:o)};default:return e}};var Fo=require("@vuu-ui/vuu-data-react/src"),tt=require("@vuu-ui/vuu-utils"),Y=require("react");var ko=require("@vuu-ui/vuu-utils"),{SELECTED:vu}=ko.metadataKeys,No=class{constructor({from:t,to:o}){this.rowCount=0;this.setRowCount=t=>{t<this.data.length&&(this.data.length=t),this.rowCount=t};this.range=new ko.WindowRange(t,o),this.data=new Array(o-t),this.rowCount=0}add(t){let[o]=t;if(this.isWithinRange(o)){let n=o-this.range.from;this.data[n]=t}}getAtIndex(t){return this.range.isWithin(t)&&this.data[t-this.range.from]!=null?this.data[t-this.range.from]:void 0}isWithinRange(t){return this.range.isWithin(t)}setRange({from:t,to:o}){if(t!==this.range.from||o!==this.range.to){let[n,r]=this.range.overlap(t,o),s=new Array(Math.max(0,o-t));for(let i=n;i<r;i++){let l=this.getAtIndex(i);if(l){let a=i-t;s[a]=l}}this.data=s,this.range.from=t,this.range.to=o}}getSelectedRows(){return this.data.filter(t=>t[vu]!==0)}};var Ys=({dataSource:e,onFeatureEnabled:t,onFeatureInvocation:o,onSizeChange:n,onSubscribed:r,range:s=tt.NULL_RANGE,renderBufferSize:i=0})=>{let[,l]=(0,Y.useState)(null),a=(0,Y.useRef)([]),u=(0,Y.useRef)(!0),m=(0,Y.useRef)(!1),p=(0,Y.useRef)(tt.NULL_RANGE),g=(0,Y.useMemo)(()=>new No((0,tt.getFullRange)(s,i)),[]),c=(0,Y.useCallback)(f=>{for(let h of f)g.add(h);a.current=g.data,u.current&&l({})},[g]),d=(0,Y.useCallback)(f=>{f.type==="subscribed"?r==null||r(f):f.type==="viewport-update"?(typeof f.size=="number"&&(n==null||n(f.size),g.setRowCount(f.size)),f.rows?c(f.rows):typeof f.size=="number"&&(a.current=g.data,m.current=!0)):(0,Fo.isVuuFeatureAction)(f)?t==null||t(f):(0,Fo.isVuuFeatureInvocation)(f)?o==null||o(f):console.log(`useDataSource unexpected message ${f.type}`)},[g,t,o,n,r,c]);(0,Y.useEffect)(()=>()=>{u.current=!0,u.current=!1},[]),(0,Y.useEffect)(()=>{e==null||e.subscribe({range:(0,tt.getFullRange)(s,i)},d)},[e,d,s,i]);let C=(0,Y.useCallback)(f=>{let h=(0,tt.getFullRange)(f,i);g.setRange(h),e.range=p.current=h,e.emit("range",f)},[e,g,i]);return{data:a.current,range:p.current,setRange:C}};var Io=require("react"),Js=e=>{let t=(0,Io.useRef)(e);return(0,Io.useMemo)(()=>t.current,[])};var Zs=require("@vuu-ui/vuu-utils"),qs=require("react"),js=require("@vuu-ui/vuu-popups"),ei=({columns:e,data:t})=>{let[o]=(0,js.useContextMenu)();return(0,qs.useCallback)(r=>{var a;let s=r.target,i=s==null?void 0:s.closest("div[role='cell']"),l=s==null?void 0:s.closest("div[role='row']");if(i&&l){let u=(0,Zs.buildColumnMap)(e),m=parseInt((a=l.ariaRowIndex)!=null?a:"-1"),p=Array.from(l.childNodes).indexOf(i),g=t.find(([d])=>d===m),c=e[p];o(r,"grid",{columnMap:u,columnName:c,row:g})}},[e,t,o])};var ti=require("@vuu-ui/vuu-utils"),no=require("react");var oi=({navigate:e})=>{let t=(0,no.useCallback)(()=>{e()},[e]),o=(0,no.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",t,!0)},[t]),n=(0,no.useCallback)(s=>{let i=s.target,l=i.querySelector("input");l&&(l.focus(),l.select()),i.addEventListener("vuu-commit",t,!0)},[t]);return{onKeyDown:(0,no.useCallback)(s=>{Xs(s.target)&&((0,ti.isCharacterKey)(s.key)?o(s):s.key==="Enter"&&n(s))},[o,n])}};var P=require("@vuu-ui/vuu-utils"),ni=require("@vuu-ui/vuu-ui-controls"),ri=require("react"),{info:Qn}=(0,P.logger)("useTableModel"),Tu=100,Eu=P.metadataKeys.count,wu=({serverDataType:e})=>e===void 0,Du=e=>{var t;if((0,P.isTypeDescriptor)(e.type))return(0,P.getCellRenderer)((t=e.type)==null?void 0:t.renderer)},Ru=(e,t)=>{var n;let o=t.columns.find(({name:r})=>r===e.name);return o?o.serverDataType:(n=e.serverDataType)!=null?n:"string"},Su=["int","long","double"],si=e=>e===void 0?void 0:Su.includes(e)?"right":"left",ii=e=>e.type==="columnSettings",li=e=>e.type==="tableSettings",Pu=(e,t)=>{switch(Qn==null||Qn(`TableModelReducer ${t.type}`),console.log(`TableModelReducer ${t.type}`),t.type){case"init":return console.log({init:t}),ui(t);case"moveColumn":return Hu(e,t);case"resizeColumn":return Lu(e,t);case"setTableSchema":return Nu(e,t);case"hideColumns":return Ou(e,t);case"showColumns":return Au(e,t);case"pinColumn":return ku(e,t);case"updateColumnProp":return Dt(e,t);case"tableConfig":return mi(e,t);default:return console.log(`unhandled action ${t.type}`),e}},ai=(e,t)=>{let[o,n]=(0,ri.useReducer)(Pu,{tableConfig:e,dataSourceConfig:t},ui),{columns:r,headings:s,tableConfig:i,...l}=o;return{columns:r,dispatchColumnAction:n,headings:s,tableAttributes:l,tableConfig:i}};function ui({dataSourceConfig:e,tableConfig:t}){let{columns:o,...n}=t,r=o.filter((0,P.subscribedOnly)(e==null?void 0:e.columns)).map(ci(n)),s=r.some(P.isPinned)?(0,P.sortPinnedColumns)(r):r,i={columns:s,headings:(0,P.getTableHeadings)(s),tableConfig:t,...n};if(e){let{columns:l,...a}=e;i=mi(i,{type:"tableConfig",...a})}return i}var Mu=(e,t)=>t==="uppercase"?e.toUpperCase():t==="capitalize"?e[0].toUpperCase()+e.slice(1).toLowerCase():e,ci=e=>(t,o)=>{let{columnDefaultWidth:n=Tu,columnFormatHeader:r}=e,{align:s=si(t.serverDataType),key:i,name:l,label:a=l,width:u=n,...m}=t,p={...m,align:s,CellRenderer:Du(t),clientSideEditValidationCheck:(0,P.hasValidationRules)(t.type)?(0,ni.buildValidationChecker)(t.type.renderer.rules):void 0,label:Mu(a,r),key:i!=null?i:o+Eu,name:l,originalIdx:o,valueFormatter:(0,P.getValueFormatter)(t),width:u};return(0,P.isGroupColumn)(p)&&(p.columns=p.columns.map(g=>ci(e)(g,g.key))),p};function Hu(e,{column:t,moveBy:o,moveTo:n}){let{columns:r}=e;if(typeof o=="number"){let s=r.indexOf(t),i=r.slice(),[l]=i.splice(s,1);return i.splice(s+o,0,l),{...e,columns:i}}else if(typeof n=="number"){let s=r.indexOf(t);return{...e,columns:(0,P.moveItem)(r,s,n)}}return e}function Ou(e,{columns:t}){return t.some(o=>o.hidden!==!0)?t.reduce((o,n)=>n.hidden!==!0?Dt(o,{type:"updateColumnProp",column:n,hidden:!0}):o,e):e}function Au(e,{columns:t}){return t.some(o=>o.hidden)?t.reduce((o,n)=>n.hidden?Dt(o,{type:"updateColumnProp",column:n,hidden:!1}):o,e):e}function Lu(e,{column:t,phase:o,width:n}){let r="updateColumnProp",s=o!=="end";switch(o){case"begin":return Dt(e,{type:r,column:t,resizing:s});case"end":return Dt(e,{type:r,column:t,resizing:s,width:n});case"resize":return Dt(e,{type:r,column:t,width:n});default:throw Error(`useTableModel.resizeColumn, invalid resizePhase ${o}`)}}function Nu(e,{tableSchema:t}){let{columns:o}=e;if(o.some(wu)){let n=o.map(r=>{var i;let s=Ru(r,t);return{...r,align:(i=r.align)!=null?i:si(s),serverDataType:s}});return{...e,columns:n}}else return e}function ku(e,t){let{columns:o}=e,{column:n,pin:r}=t,s=o.find(i=>i.name===n.name);return s?(o=wt(o,{...s,pin:r}),o=(0,P.sortPinnedColumns)(o),{...e,columns:o}):e}function Dt(e,t){let{columns:o}=e,{align:n,column:r,hidden:s,label:i,resizing:l,width:a}=t,u=o.find(m=>m.name===r.name);return u&&((n==="left"||n==="right")&&(o=wt(o,{...u,align:n})),typeof i=="string"&&(o=wt(o,{...u,label:i})),typeof l=="boolean"&&(o=wt(o,{...u,resizing:l})),typeof s=="boolean"&&(o=wt(o,{...u,hidden:s})),typeof a=="number"&&(o=wt(o,{...u,width:a}))),{...e,columns:o}}function mi(e,{confirmed:t,filter:o,groupBy:n,sort:r}){let s=n!==void 0,i=typeof(o==null?void 0:o.filter)=="string",l=r&&r.sortDefs.length>0,a=e;return s&&(a={...e,columns:(0,P.applyGroupByToColumns)(a.columns,n,t)}),l&&(a={...e,columns:(0,P.applySortToColumns)(a.columns,r)}),i?a={...e,columns:(0,P.applyFilterToColumns)(a.columns,o)}:a.columns.some(P.isFilteredColumn)&&(a={...e,columns:(0,P.stripFilterFromColumns)(a.columns)}),a}function wt(e,t){return e.map(o=>o.name===t.name?t:o)}var Z=require("react"),pi=e=>{let{scrollLeft:t,scrollTop:o}=e,{clientHeight:n,clientWidth:r,scrollHeight:s,scrollWidth:i}=e,l=t/(i-r),a=o/(s-n);return[l,a]},di=({onAttach:e,onDetach:t})=>{let o=(0,Z.useRef)(null);return(0,Z.useCallback)(r=>{if(r)o.current=r,e==null||e(r);else if(o.current){let{current:s}=o;o.current=r,t==null||t(s)}},[e,t])},fi=({maxScrollLeft:e,maxScrollTop:t,onHorizontalScroll:o,onVerticalScroll:n,rowHeight:r,viewportRowCount:s})=>{let i=(0,Z.useRef)(!1),l=(0,Z.useRef)({scrollTop:0,scrollLeft:0}),a=(0,Z.useRef)(null),u=(0,Z.useRef)(null),m=(0,Z.useCallback)(()=>{let{current:x}=u,{current:E}=a,{current:M}=i;if(M)i.current=!1;else if(x&&E){let[y,b]=pi(E),D=Math.round(y*e),R=Math.round(b*t);x.scrollTo({left:D,top:R,behavior:"auto"})}},[e,t]),p=(0,Z.useCallback)(()=>{let{current:x}=u,{current:E}=a,{current:M}=l;if(x&&E){let{scrollLeft:y,scrollTop:b}=x,[D,R]=pi(x);i.current=!0,E.scrollLeft=Math.round(D*e),E.scrollTop=Math.round(R*t),M.scrollTop!==b&&(M.scrollTop=b,n==null||n(b,R)),M.scrollLeft!==y&&(M.scrollLeft=y,o==null||o(y))}},[e,t,o,n]),g=(0,Z.useCallback)(x=>{a.current=x,x.addEventListener("scroll",m,{passive:!0})},[m]),c=(0,Z.useCallback)(x=>{a.current=null,x.removeEventListener("scroll",m)},[m]),d=(0,Z.useCallback)(x=>{u.current=x,x.addEventListener("scroll",p,{passive:!0})},[p]),C=(0,Z.useCallback)(x=>{u.current=null,x.removeEventListener("scroll",p)},[p]),f=di({onAttach:d,onDetach:C}),h=di({onAttach:g,onDetach:c}),w=(0,Z.useCallback)(x=>{let{current:E}=u;if(E){let{scrollLeft:M,scrollTop:y}=E;if(i.current=!1,x.type==="scroll-distance"){let b=M,D=y;x.direction==="up"||x.direction==="down"?D=Math.min(Math.max(0,y+x.distance),t):b=Math.min(Math.max(0,M+x.distance),e),E.scrollTo({top:D,left:b,behavior:"auto"})}else if(x.type==="scroll-page"){let{direction:b}=x,D=s*(b==="down"?r:-r),R=Math.min(Math.max(0,y+D),t);E.scrollTo({top:R,left:M,behavior:"auto"})}else if(x.type==="scroll-end"){let{direction:b}=x,D=b==="end"?t:0;E.scrollTo({top:D,left:E.scrollLeft,behavior:"auto"})}}},[e,t,r,s]);return{scrollbarContainerRef:h,contentContainerRef:f,requestScroll:w}};var Rt=require("react"),gi=({columns:e,getRowAtPosition:t,setRange:o,viewportMeasurements:n})=>{let r=(0,Rt.useRef)(0),{contentWidth:s,rowCount:i}=n,l=(0,Rt.useCallback)(a=>{let u=t(a);u!==r.current&&(r.current=u,o({from:u,to:u+i}))},[t,o,i]);return(0,Rt.useEffect)(()=>{let{current:a}=r,u={from:a,to:a+i};o(u)},[o,i]),{onVerticalScroll:l}};var{KEY:Fu,IS_EXPANDED:Ci,IS_LEAF:bi}=U.metadataKeys,Iu=(e,t)=>({...e,columns:e.columns.concat(t)}),yi=({availableColumns:e,config:t,containerRef:o,dataSource:n,headerHeight:r=25,onAvailableColumnsChange:s,onConfigChange:i,onFeatureEnabled:l,onFeatureInvocation:a,onRowClick:u,onSelect:m,onSelectionChange:p,renderBufferSize:g=0,rowHeight:c=20,selectionModel:d})=>{let[C,f]=(0,O.useState)(n.size);if(n===void 0)throw Error("no data source provided to Vuu Table");let[h,w]=(0,O.useState)(),x=(0,O.useCallback)(v=>{w(v)},[]),E=(0,O.useMemo)(()=>Pn(n),[n]),M=(0,O.useCallback)(v=>{f(v)},[]),{columns:y,dispatchColumnAction:b,headings:D,tableAttributes:R,tableConfig:H}=ai(t,n.config);(0,hi.useLayoutEffectSkipFirst)(()=>{b({type:"init",dataSourceConfig:n.config,tableConfig:H})},[H,n.config,b]);let[q,xe]=(0,O.useState)(),[N,ze]=(0,O.useMemo)(()=>{let v=(A,F)=>{let se=(0,U.updateColumn)(y,A,{width:F});xe(se)};return[q!=null?q:y,v]},[y,q]),Wo=(0,O.useMemo)(()=>(0,U.buildColumnMap)(n.columns),[n.columns]),{getRowAtPosition:Qo,getRowOffset:Jn,setPctScrollTop:Zn,...ye}=Nn({columns:N,headerHeight:r,headings:D,rowCount:C,rowHeight:c,size:h}),Go=Js({from:0,to:ye.rowCount}),ro=(0,O.useCallback)(({tableSchema:v})=>{v||console.log("usbscription message with no schema")},[]),{data:Ve,range:de,setRange:Uo}=Ys({dataSource:n,onFeatureEnabled:l,onFeatureInvocation:a,renderBufferSize:g,onSizeChange:M,onSubscribed:ro,range:Go}),Xo=(0,O.useCallback)(v=>{b({type:"init",tableConfig:v,dataSourceConfig:n.config}),i==null||i(v)},[n.config,b,i]),_o=(0,O.useCallback)(v=>{n.config={...n.config,...v}},[n]),ue=(0,O.useCallback)(v=>{n.columns=n.columns.concat(v.name);let A=Iu(H,v);b({type:"init",tableConfig:A,dataSourceConfig:n.config}),i==null||i(A)},[n,b,i,H]);(0,O.useEffect)(()=>{n.on("config",(v,A)=>{b({type:"tableConfig",...v,confirmed:A})})},[n,b]);let{showColumnSettingsPanel:$e,showTableSettingsPanel:qn}=Gn({availableColumns:e!=null?e:H.columns.map(({name:v,serverDataType:A="string"})=>({name:v,serverDataType:A})),onAvailableColumnsChange:s,onConfigChange:Xo,onCreateCalculatedColumn:ue,onDataSourceConfigChange:_o,tableConfig:H}),Ai=(0,O.useCallback)(v=>{ii(v)?$e(v):li(v)?qn():b(v)},[b,$e,qn]),Li=Hn({dataSource:n,onPersistentColumnOperation:Ai}),jn=(0,O.useCallback)((v,A=!1,F)=>{n&&(n.sort=(0,U.applySort)(n.sort,v,A,F))},[n]),Ni=(0,O.useCallback)((v,A,F)=>{let se=N.find(ve=>ve.name===A);if(se)v==="resize"?(0,U.isValidNumber)(F)&&ze(A,F):v==="end"?(0,U.isValidNumber)(F)&&(b({type:"resizeColumn",phase:v,column:se,width:F}),i==null||i(oo(H,{type:"col-size",column:se,width:F}))):(xe(void 0),b({type:"resizeColumn",phase:v,column:se,width:F}));else throw Error(`useDataTable.handleColumnResize, column ${A} not found`)},[N,H,b,i,ze]),ki=(0,O.useCallback)((v,A)=>{let F=(0,U.isJsonGroup)(A,v),se=v[Fu];if(v[Ci]){if(n.closeTreeNode(se,!0),F){let ve=N.indexOf(A);n.getRowsAtDepth(ve+1).some(Te=>Te[Ci]||Te[bi])||b({type:"hideColumns",columns:N.slice(ve+2)})}}else if(n.openTreeNode(se),F){let ve=n.getChildRows(se),Mt=N.indexOf(A)+1,Te=[N[Mt]];ve.some(Yo=>Yo[bi])&&Te.push(N[Mt+1]),Te.some(Yo=>Yo.hidden)&&b({type:"showColumns",columns:Te})}},[N,n,b]),{onVerticalScroll:er}=gi({columns:N,getRowAtPosition:Qo,setRange:Uo,viewportMeasurements:ye}),Fi=(0,O.useCallback)(v=>{er(v)},[er]),{requestScroll:Ii,...Ki}=fi({maxScrollLeft:ye.maxScrollContainerScrollHorizontal,maxScrollTop:ye.maxScrollContainerScrollVertical,rowHeight:c,onVerticalScroll:Fi,viewportRowCount:ye.rowCount}),{navigate:zi,onKeyDown:tr,...Vi}=_s({columnCount:N.filter(v=>v.hidden!==!0).length,containerRef:o,requestScroll:Ii,rowCount:n==null?void 0:n.size,viewportRange:de,viewportRowCount:ye.rowCount}),{onKeyDown:or}=oi({navigate:zi}),$i=(0,O.useCallback)(v=>{tr(v),v.defaultPrevented||or(v)},[tr,or]),Bi=ei({columns:N,data:Ve}),Wi=(0,O.useCallback)(v=>{var Te;let F=v.target.closest(".vuuTableNextHeaderCell"),se=parseInt((Te=F==null?void 0:F.dataset.index)!=null?Te:"-1"),ve=(0,U.visibleColumnAtIndex)(N,se),Mt=v.shiftKey;ve&&jn(ve,Mt)},[N,jn]),Qi=(0,O.useCallback)(v=>{(0,U.isGroupColumn)(v)?n.groupBy=[]:n&&n.groupBy.includes(v.name)&&(n.groupBy=n.groupBy.filter(A=>A!==v.name))},[n]),Gi=(0,O.useCallback)(v=>{n.select(v),p==null||p(v)},[n,p]),nr=Ln({onSelect:m,onSelectionChange:Gi,selectionModel:d}),Ui=(0,O.useCallback)((v,A,F)=>{nr(v,A,F),u==null||u(v)},[u,nr]);(0,O.useEffect)(()=>{n.on("config",(v,A)=>{b({type:"tableConfig",...v,confirmed:A})})},[n,b]);let Xi=(0,O.useCallback)((v,A)=>{let F=N[v];b({type:"moveColumn",column:F,moveTo:A})},[N,b]),_i=(0,O.useCallback)((v,A,F)=>n.applyEdit(v,A,F),[n]),{onMouseDown:Yi,...Ji}=(0,xi.useDragDropNext)({allowDragDrop:!0,containerRef:o,draggableClassName:"vuuTableNext",onDrop:Xi,orientation:"horizontal",itemQuery:".vuuTableNextHeaderCell"});return{...Vi,onKeyDown:$i,columnMap:Wo,columns:N,data:Ve,handleContextMenuAction:Li,headerProps:{onClick:Wi,onMouseDown:Yi,onResize:Ni},menuBuilder:E,onContextMenu:Bi,onDataEdited:_i,onRemoveGroupColumn:Qi,onResize:x,onRowClick:Ui,onToggleGroup:ki,scrollProps:Ki,tableAttributes:R,viewportMeasurements:ye,dragDropHook:Ji}};var zo=require("@vuu-ui/vuu-layout"),Ti=require("@salt-ds/core");var ae=require("react/jsx-runtime"),Xn=require("react"),pe="vuuTableNext",{IDX:Ku,RENDER_IDX:zu}=St.metadataKeys,Vu=(0,Ko.forwardRef)(function({Row:t=$n,availableColumns:o,className:n,config:r,dataSource:s,id:i,onAvailableColumnsChange:l,onConfigChange:a,onFeatureEnabled:u,onFeatureInvocation:m,onRowClick:p,onSelect:g,onSelectionChange:c,onShowConfigEditor:d,renderBufferSize:C=0,rowHeight:f=20,selectionModel:h="extended",showColumnHeaders:w=!0,headerHeight:x=w?25:0,style:E,...M},y){let b=(0,zo.useId)(i),D=(0,Ko.useRef)(null),{columnMap:R,columns:H,data:q,dragDropHook:xe,handleContextMenuAction:N,headerProps:ze,onDataEdited:Wo,onRemoveGroupColumn:Qo,onResize:Jn,onRowClick:Zn,onToggleGroup:ye,menuBuilder:Go,scrollProps:ro,tableAttributes:Ve,viewportMeasurements:de,...Uo}=yi({availableColumns:o,config:r,containerRef:D,dataSource:s,headerHeight:x,onAvailableColumnsChange:l,onConfigChange:a,onFeatureEnabled:u,onFeatureInvocation:m,onRowClick:p,onSelect:g,onSelectionChange:c,renderBufferSize:C,rowHeight:f,selectionModel:h}),Xo=()=>({...E,"--content-height":`${de.contentHeight}px`,"--horizontal-scrollbar-height":`${de.horizontalScrollbarHeight}px`,"--content-width":`${de.contentWidth}px`,"--pinned-width-left":`${de.pinnedWidthLeft}px`,"--pinned-width-right":`${de.pinnedWidthRight}px`,"--header-height":`${x}px`,"--row-height":`${f}px`,"--total-header-height":`${de.totalHeaderHeight}px`,"--vertical-scrollbar-width":`${de.verticalScrollbarWidth}px`,"--viewport-body-height":`${de.viewportBodyHeight}px`}),_o=(0,Un.default)(pe,n,{[`${pe}-colLines`]:Ve.columnSeparators,[`${pe}-rowLines`]:Ve.rowSeparators,[`${pe}-zebra`]:Ve.zebraStripes});return(0,ae.jsx)(vi.ContextMenuProvider,{menuActionHandler:N,menuBuilder:Go,children:(0,ae.jsxs)(zo.MeasuredContainer,{...M,className:_o,onResize:Jn,ref:(0,Ti.useForkRef)(D,y),style:Xo(),children:[(0,ae.jsx)("div",{className:`${pe}-scrollbarContainer`,ref:ro.scrollbarContainerRef,children:(0,ae.jsx)("div",{className:`${pe}-scrollbarContent`})}),(0,ae.jsx)("div",{className:`${pe}-contentContainer`,ref:ro.contentContainerRef,children:(0,ae.jsxs)("div",{...Uo,className:`${pe}-table`,tabIndex:-1,children:[w?(0,ae.jsx)("div",{className:`${pe}-col-headings`,children:(0,ae.jsxs)("div",{className:`${pe}-col-headers`,role:"row",children:[H.filter(St.notHidden).map((ue,$e)=>(0,St.isGroupColumn)(ue)?(0,Xn.createElement)(Ho,{...ze,column:ue,"data-index":$e,key:ue.name,onRemoveColumn:Qo}):(0,Xn.createElement)(Ks,{...ze,className:(0,Un.default)({"vuuDraggable-dragAway":$e===xe.draggedItemIndex}),column:ue,"data-index":$e,id:`${b}-col-${$e}`,key:ue.name})),xe.draggable]})}):null,(0,ae.jsx)("div",{className:`${pe}-body`,children:q.map(ue=>(0,ae.jsx)(t,{columnMap:R,columns:H,onClick:Zn,onDataEdited:Wo,row:ue,offset:f*ue[Ku]+x,onToggleGroup:ye,zebraStripes:Ve.zebraStripes},ue[zu]))})]})})]})})});var Ei=require("@vuu-ui/vuu-ui-controls"),Pt=require("@vuu-ui/vuu-utils");var Vo=require("react"),wi=require("react/jsx-runtime"),$u="vuuTableDropdownCell",Bu=["Enter"," "],Wu=({column:e,columnMap:t,row:o})=>{var a,u,m;let n=(0,Pt.isTypeDescriptor)(e.type)&&(0,Pt.isColumnTypeRenderer)((a=e.type)==null?void 0:a.renderer)?(m=(u=e.type)==null?void 0:u.renderer)==null?void 0:m.values:[],r=t[e.name],[s,i]=(0,Vo.useState)(o[r]),l=(0,Vo.useCallback)((p,g)=>{g&&i(g)},[]);return(0,wi.jsx)(Ei.Dropdown,{className:$u,onSelectionChange:l,openKeys:Bu,selected:s,source:n,width:e.width-17})};(0,Pt.registerComponent)("dropdown-cell",Wu,"cell-renderer",{});var Di=require("@vuu-ui/vuu-utils"),Ri=require("@salt-ds/core"),Si=require("@vuu-ui/vuu-ui-controls"),Pi=k(require("classnames"));var Bo=require("react/jsx-runtime"),$o="vuuTableInputCell",Qu=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),Gu=({column:e,columnMap:t,onCommit:o=Qu,row:n})=>{let r=t[e.name],{align:s="left",clientSideEditValidationCheck:i,valueFormatter:l}=e,{warningMessage:a,...u}=(0,Si.useEditableText)({initialValue:l(n[r]),onCommit:o,clientSideEditValidationCheck:i}),m=a&&s==="left"?(0,Bo.jsx)("span",{className:`${$o}-icon`,"data-icon":"error"}):void 0,p=a&&s==="right"?(0,Bo.jsx)("span",{className:`${$o}-icon`,"data-icon":"error"}):void 0;return(0,Bo.jsx)(Ri.Input,{...u,className:(0,Pi.default)($o,{[`${$o}-error`]:a!==void 0}),endAdornment:m,startAdornment:p})};(0,Di.registerComponent)("input-cell",Gu,"cell-renderer",{});var Ke=require("@vuu-ui/vuu-utils"),Ae=require("react"),Uu=(e,t)=>{let o=[];for(let{name:n}of e){let r=t.find(s=>s.name===n);r&&o.push(r)}return o},Xu=(e,t)=>e.map(({name:o,serverDataType:n})=>{let r=t.find(s=>s.name===o);return{hidden:r==null?void 0:r.hidden,isCalculated:(0,Ke.isCalculatedColumn)(o),label:r==null?void 0:r.label,name:o,serverDataType:n,subscribed:r!==void 0}}),_n=({availableColumns:e,onConfigChange:t,onDataSourceConfigChange:o,tableConfig:n})=>{let[{availableColumns:r,tableConfig:s},i]=(0,Ae.useState)({availableColumns:e,tableConfig:n}),l=(0,Ae.useMemo)(()=>Xu(r,s.columns),[r,s.columns]),a=(0,Ae.useCallback)((c,d)=>{i(C=>{let f=(0,Ke.moveItem)(C.availableColumns,c,d),h=Uu(f,s.columns);return{availableColumns:f,tableConfig:{...C.tableConfig,columns:h}}})},[s.columns]),u=(0,Ae.useCallback)((c,d,C)=>{let f=l.find(h=>h.name===c);if(d==="subscribed")if(f!=null&&f.subscribed){let h=s.columns.filter(w=>w.name!==c).map(w=>w.name);i(w=>({...w,tableConfig:{...s,columns:s.columns.filter((0,Ke.subscribedOnly)(h))}})),o({columns:h})}else{let h={...s,columns:(0,Ke.addColumnToSubscribedColumns)(s.columns,r,c)};i(x=>({...x,tableConfig:h}));let w=h.columns.map(x=>x.name);o({columns:w})}else if(f!=null&&f.subscribed){let h=s.columns.find(w=>w.name===c);if(h){let w=oo(s,{type:"column-prop",property:d,column:h,value:C});i(x=>({...x,tableConfig:w}))}}},[r,l,o,s]),m=(0,Ae.useCallback)(c=>{let{value:d}=c.target,C=d==="0"?void 0:d==="1"?"capitalize":"uppercase";i(f=>({...f,tableConfig:{...f.tableConfig,columnFormatHeader:C}}))},[]),p=(0,Ae.useCallback)(c=>{let{ariaChecked:d,value:C}=c.target;i(f=>({...f,tableConfig:{...f.tableConfig,[C]:d!=="true"}}))},[]);(0,Mi.useLayoutEffectSkipFirst)(()=>{t==null||t(s)},[t,s]);let g=s.columnFormatHeader===void 0?0:s.columnFormatHeader==="capitalize"?1:2;return{columnItems:l,columnLabelsValue:g,onChangeColumnLabels:m,onChangeTableAttribute:p,onColumnChange:u,onMoveListItem:a,tableConfig:s}};var K=require("react/jsx-runtime"),Yn="vuuTableSettingsPanel",_u=({availableColumns:e,onAddCalculatedColumn:t,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r,...s})=>{let{columnItems:i,columnLabelsValue:l,onChangeColumnLabels:a,onChangeTableAttribute:u,onColumnChange:m,onMoveListItem:p,tableConfig:g}=_n({availableColumns:e,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r});return(0,K.jsxs)("div",{...s,className:Yn,children:[(0,K.jsxs)(z.FormField,{children:[(0,K.jsx)(z.FormFieldLabel,{children:"Column Labels"}),(0,K.jsxs)(z.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:a,value:l,children:[(0,K.jsx)(z.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-strikethrough",value:0}),(0,K.jsx)(z.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-Tt",value:1}),(0,K.jsx)(z.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-T",value:2})]})]}),(0,K.jsxs)(z.FormField,{children:[(0,K.jsx)(z.FormFieldLabel,{children:"Grid separators"}),(0,K.jsxs)("div",{className:"saltToggleButtonGroup vuuToggleButtonGroup saltToggleButtonGroup-horizontal vuuGridSeparators",children:[(0,K.jsx)(z.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-striping",selected:g.zebraStripes,onChange:u,value:"zebraStripes"}),(0,K.jsx)(z.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-lines",selected:g.rowSeparators,onChange:u,value:"rowSeparators"}),(0,K.jsx)(z.ToggleButton,{className:"vuuIconToggleButton","data-icon":"col-lines",selected:g.columnSeparators,onChange:u,value:"columnSeparators"})]})]}),(0,K.jsxs)(z.FormField,{children:[(0,K.jsx)(z.FormFieldLabel,{children:"Default Column Width"}),(0,K.jsx)(z.Input,{className:"vuuInput"})]}),(0,K.jsx)(Jo,{columnItems:i,onChange:m,onMoveListItem:p}),(0,K.jsxs)("div",{className:`${Yn}-calculatedButtonbar`,children:[(0,K.jsx)(z.Button,{"data-icon":"plus",onClick:t}),(0,K.jsx)("span",{className:`${Yn}-calculatedLabel`,children:"Add calculated column"})]})]})};var Hi=require("@vuu-ui/vuu-layout"),Oi=require("@vuu-ui/vuu-utils"),he=require("react"),Gn=({availableColumns:e,onAvailableColumnsChange:t,onConfigChange:o,onCreateCalculatedColumn:n,onDataSourceConfigChange:r,tableConfig:s})=>{let i=(0,Hi.useLayoutProviderDispatch)(),l=(0,he.useRef)(),[a,u]=(0,he.useState)(e),m=(0,he.useCallback)((d,C,f)=>{i({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:d,props:f},title:C}})},[i]),p=(0,he.useCallback)(d=>{let C=a.concat({name:d.name,serverDataType:(0,Oi.getCalculatedColumnType)(d)});u(C),t==null||t(C),requestAnimationFrame(()=>{var f;(f=l.current)==null||f.call(l)}),n(d)},[a,t,n]),g=(0,he.useCallback)(d=>{m("ColumnSettings","Column Settings",{column:d.column,onConfigChange:o,onCreateCalculatedColumn:p,tableConfig:s,vuuTable:d.vuuTable})},[p,o,m,s]),c=(0,he.useCallback)(()=>{g({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[g]);return l.current=(0,he.useCallback)(()=>{m("TableSettings","DataGrid Settings",{availableColumns:a!=null?a:s.columns.map(({name:d,serverDataType:C})=>({name:d,serverDataType:C})),onAddCalculatedColumn:c,onConfigChange:o,onDataSourceConfigChange:r,tableConfig:s})},[a,c,o,r,m,s]),{showColumnSettingsPanel:g,showTableSettingsPanel:l.current}};
2
2
  //# sourceMappingURL=index.js.map