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

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