@vuu-ui/vuu-table-extras 0.8.23 → 0.8.24

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 Jo=Object.create;var Ke=Object.defineProperty;var Ko=Object.getOwnPropertyDescriptor;var jo=Object.getOwnPropertyNames;var en=Object.getPrototypeOf,tn=Object.prototype.hasOwnProperty;var on=(t,e)=>{for(var o in e)Ke(t,o,{get:e[o],enumerable:!0})},Jt=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of jo(e))!tn.call(t,i)&&i!==o&&Ke(t,i,{get:()=>e[i],enumerable:!(n=Ko(e,i))||n.enumerable});return t};var ge=(t,e,o)=>(o=t!=null?Jo(en(t)):{},Jt(e||!t||!t.__esModule?Ke(o,"default",{value:t,enumerable:!0}):o,t)),nn=t=>Jt(Ke({},"__esModule",{value:!0}),t);var Kt=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var f=(t,e,o)=>(Kt(t,e,"read from private field"),o?o.call(t):e.get(t)),Z=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)},le=(t,e,o,n)=>(Kt(t,e,"write to private field"),n?n.call(t,o):e.set(t,o),o);var ur={};on(ur,{BackgroundCell:()=>io,BackgroundCellConfigurationEditor:()=>po,BaseNumericFormattingSettings:()=>qe,CaseValidator:()=>eo,ColumnExpressionInput:()=>dt,ColumnExpressionPanel:()=>Zt,ColumnFormattingPanel:()=>Gt,ColumnList:()=>wt,ColumnNamedTerms:()=>pt,ColumnSettingsPanel:()=>rr,DataSourceStats:()=>sr,DateTimeFormattingSettings:()=>Xt,DropdownCell:()=>mo,LookupCell:()=>vo,PatternValidator:()=>oo,TableSettingsPanel:()=>lr,columnExpressionLanguageSupport:()=>Ot,isCompleteExpression:()=>Dt,isCompleteRelationalExpression:()=>Nt,lastNamedChild:()=>ct,useColumnExpressionEditor:()=>Mt,useColumnExpressionSuggestionProvider:()=>$t,useTableSettings:()=>qt,walkTree:()=>Bt});module.exports=nn(ur);var jt=require("@vuu-ui/vuu-utils"),rn=t=>typeof t=="string",eo=(t,e)=>rn(e)?e===""?!0:t.value==="lower"&&e.toLowerCase()!==e?"value must be all lowercase":t.value==="upper"&&e.toUpperCase()!==e?"value must be all uppercase":!0:"value must be a string";(0,jt.registerComponent)("vuu-case",eo,"data-edit-validator",{});var to=require("@vuu-ui/vuu-utils"),sn=t=>typeof t=="string",an="value does not match expected pattern",oo=(t,e)=>{if(typeof t.value!="string")throw Error("Pattern validation rule must provide pattern");if(sn(e)){if(e==="")return!0;{let{message:o=an}=t;return new RegExp(t.value).test(e)||o}}else return"value must be a string"};(0,to.registerComponent)("vuu-pattern",oo,"data-edit-validator",{});var D=require("@vuu-ui/vuu-utils"),ro=ge(require("clsx"),1),so=require("react");var fe=require("@vuu-ui/vuu-utils"),je=require("react"),ln=[void 0,void 0,void 0,void 0];function no(t,e,o){var g;let n=(0,je.useRef)(),[i,r,a,u]=n.current||ln,{type:l}=o,c=(0,fe.isTypeDescriptor)(l)?(g=l.formatting)==null?void 0:g.decimals:void 0,d=t===i&&(0,fe.isValidNumber)(e)&&(0,fe.isValidNumber)(r)&&o===a?(0,fe.getMovingValueDirection)(e,u,r,c):"";return(0,je.useEffect)(()=>{n.current=[t,e,o,d]}),d}var et=require("react/jsx-runtime"),un="\u2B06",pn="\u2B07",{KEY:cn}=D.metadataKeys,Ae="vuuBackgroundCell",Ee={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},mn=t=>(0,D.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Ee.BackgroundOnly,io=(0,so.memo)(function({column:e,columnMap:o,row:n}){let{name:i,type:r,valueFormatter:a}=e,u=o[i],l=n[u],c=mn(r),d=no(n[cn],l,e),g=c===Ee.ArrowOnly||c===Ee.ArrowBackground?d===D.UP1||d===D.UP2?un:d===D.DOWN1||d===D.DOWN2?pn:null:null,p=d?" "+d:"",s=(0,ro.default)(Ae,p,{[`${Ae}-backgroundOnly`]:c===Ee.BackgroundOnly,[`${Ae}-arrowOnly`]:c===Ee.ArrowOnly,[`${Ae}-arrowBackground`]:c===Ee.ArrowBackground});return(0,et.jsxs)("div",{className:s,tabIndex:-1,children:[(0,et.jsx)("div",{className:`${Ae}-arrow`,children:g}),a(n[u])]})},D.dataAndColumnUnchanged);(0,D.registerComponent)("vuu.price-move-background",io,"cell-renderer",{description:"Change background color of cell when value changes",configEditor:"BackgroundCellConfigurationEditor",label:"Background Flash",serverDataType:["long","int","double"]});var ao=require("@vuu-ui/vuu-ui-controls"),lo=require("@vuu-ui/vuu-utils"),tt=require("@salt-ds/core"),ot=require("react");var $e=require("react/jsx-runtime"),dn="vuuBackgroundCellConfiguration",yt=[{label:"Background Only",value:"bg-only"},{label:"Background and Arrow",value:"arrow-bg"},{label:"Arrow Only",value:"arrow"}],[uo]=yt,gn=t=>{let{flashStyle:e}=t.type.renderer;return yt.find(o=>o.value===e)||uo},po=({column:t,onChangeRendering:e})=>{let[o,n]=(0,ot.useState)(gn(t)),i=(0,ot.useCallback)((r,a)=>{var l;n(a);let u=t.type.renderer;e({...u,flashStyle:(l=a==null?void 0:a.value)!=null?l:uo.value})},[t.type,e]);return(0,$e.jsxs)(tt.FormField,{children:[(0,$e.jsx)(tt.FormFieldLabel,{children:"Flash Style"}),(0,$e.jsx)(ao.Dropdown,{className:`${dn}-flashStyle`,onSelectionChange:i,selected:o,source:yt,width:"100%"})]})};(0,lo.registerConfigurationEditor)("BackgroundCellConfigurationEditor",po);var co=require("@vuu-ui/vuu-data-react"),nt=require("@vuu-ui/vuu-ui-controls"),we=require("@vuu-ui/vuu-utils"),Oe=require("react");var go=require("react/jsx-runtime"),fn="vuuTableDropdownCell",Cn=["Enter"," "],mo=(0,Oe.memo)(function({column:e,columnMap:o,onCommit:n=nt.WarnCommit,row:i}){let r=o[e.name],{initialValue:a,values:u}=(0,co.useLookupValues)(e,i[r]),[l,c]=(0,Oe.useState)(null),d=(0,Oe.useCallback)((g,p)=>{p&&(c(p),n(p.value).then(s=>{s===!0&&g&&(0,we.dispatchCustomEvent)(g.target,"vuu-commit")}))},[n]);return(0,go.jsx)(nt.Dropdown,{className:fn,onSelectionChange:d,openKeys:Cn,selected:l!=null?l:a,source:u,width:e.width-17})},we.dataAndColumnUnchanged);(0,we.registerComponent)("dropdown-cell",mo,"cell-renderer",{});var fo=require("@vuu-ui/vuu-data-react"),rt=require("@vuu-ui/vuu-utils"),Co=require("react"),xo=require("react/jsx-runtime"),vo=(0,Co.memo)(function({column:e,columnMap:o,row:n}){let i=o[e.name],{initialValue:r}=(0,fo.useLookupValues)(e,n[i]);return(0,xo.jsx)("span",{children:r==null?void 0:r.label})},rt.dataAndColumnUnchanged);(0,rt.registerComponent)("lookup-cell",vo,"cell-renderer",{});var te=require("@vuu-ui/vuu-utils"),ho=ge(require("clsx"),1);var Ce=require("react/jsx-runtime"),Ze="vuuProgressCell",vn=({column:t,columnMap:e,row:o})=>{let{name:n,type:i}=t,r=o[e[n]],a=!1,u=0;if((0,te.isTypeDescriptor)(i)&&(0,te.isColumnTypeRenderer)(i.renderer)){let{associatedField:c}=i.renderer;if(c){let d=o[e[c]];if(typeof(0,te.isValidNumber)(r)&&(0,te.isValidNumber)(d))u=Math.min(Math.round(r/d*100),100),u=Math.min(Math.round(r/d*100),100),a=isFinite(u);else{let g=parseFloat(r);if(Number.isFinite(g)){let p=parseFloat(d);Number.isFinite(p)&&(u=Math.min(Math.round(g/p*100),100),a=isFinite(u))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,ho.default)(Ze,{});return(0,Ce.jsxs)("div",{className:l,tabIndex:-1,children:[a?(0,Ce.jsxs)("span",{className:`${Ze}-track`,children:[(0,Ce.jsx)("span",{className:`${Ze}-bg`}),(0,Ce.jsx)("span",{className:`${Ze}-bar`,style:{"--progress-bar-pct":`-${100-u}%`}})]}):null,(0,Ce.jsx)("span",{className:`${Ze}-text`,children:`${u} %`})]})};(0,te.registerComponent)("vuu.progress",vn,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var st=require("@vuu-ui/vuu-ui-controls"),it=require("@salt-ds/core"),bo=ge(require("clsx"),1),Et=require("react"),yo=require("@vuu-ui/vuu-utils");var R=require("react/jsx-runtime"),U="vuuColumnList",Eo="vuuColumnListItem",xn=({className:t,item:e,...o})=>(0,R.jsxs)(st.ListItem,{...o,className:(0,bo.default)(t,Eo),"data-name":e==null?void 0:e.name,children:[(0,R.jsx)("span",{className:`${U}-icon`,"data-icon":"draggable"}),e!=null&&e.isCalculated?(0,R.jsx)("span",{className:`${U}-icon`,"data-icon":"function"}):(0,R.jsx)(it.Switch,{className:`${U}-switch`,checked:e==null?void 0:e.subscribed}),(0,R.jsx)("span",{className:`${U}-text`,children:(0,yo.getColumnLabel)(e)}),(0,R.jsx)(it.Checkbox,{className:`${U}-checkBox`,checked:(e==null?void 0:e.hidden)!==!0,disabled:(e==null?void 0:e.subscribed)!==!0})]}),wt=({columnItems:t,onChange:e,onMoveListItem:o,onNavigateToColumn:n,...i})=>{let r=(0,Et.useCallback)(u=>{let l=u.target,c=l.closest(`.${Eo}`),{dataset:{name:d}}=c;if(d){let g=l.closest(`.${U}-switch`),p=l.closest(`.${U}-checkBox`);g?e(d,"subscribed",l.checked):p&&e(d,"hidden",l.checked===!1)}},[e]),a=(0,Et.useCallback)(u=>{let l=u.target;if(l.classList.contains("vuuColumnList-text")){let c=l.closest(".vuuListItem");c!=null&&c.dataset.name&&(n==null||n(c.dataset.name))}},[]);return(0,R.jsxs)("div",{...i,className:U,children:[(0,R.jsx)("div",{className:`${U}-header`,children:(0,R.jsx)("span",{children:"Column Selection"})}),(0,R.jsxs)("div",{className:`${U}-colHeadings`,children:[(0,R.jsx)("span",{children:"Column subscription"}),(0,R.jsx)("span",{children:"Visibility"})]}),(0,R.jsx)(st.List,{ListItem:xn,allowDragDrop:!0,height:"auto",onChange:r,onClick:a,onMoveListItem:o,selectionStrategy:"none",source:t,itemHeight:33})]})};var Wt=require("@vuu-ui/vuu-ui-controls"),Me=require("@vuu-ui/vuu-utils"),E=require("@salt-ds/core"),Yo=ge(require("clsx"),1);var Qo=require("@vuu-ui/vuu-ui-controls"),He=require("@vuu-ui/vuu-utils"),_=require("@salt-ds/core"),Ye=require("react");var Do=require("react");var k=require("@vuu-ui/vuu-codemirror"),Qt=require("@vuu-ui/vuu-utils"),W=require("react");var I=require("@vuu-ui/vuu-codemirror");var wo=require("@lezer/lr"),at=wo.LRParser.deserialize({version:14,states:"&xOVQPOOO!fQPO'#C^OVQPO'#CcQ!pQPOOO#bQPO'#CkO#gQPO'#CrOOQO'#Cy'#CyO#lQPO,58}OVQPO,59QOVQPO,59QOOQO'#Cn'#CnOVQPO,59XOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO$bQPO1G.lO%ZQPO1G.sO!pQPO'#CmO%qQQO1G.qO%|QQO'#C{OOQO'#C{'#C{O&wQPO,59`OVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO'RQPO1G.zOOQO1G.z1G.zO'ZQQO'#C^O'eQQO1G.sO'{QQO1G.uOOQO1G.v1G.vO(WQPO<<GwO(_QPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(iQQO1G.lO(yQPOG22}OOQOLD(iLD(iO)QQPO,59QO)QQPO,59QO)QQPO,59X",stateData:")n~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXpQXqQXrQXsQXtQXuQXeQX~OjQXXQX~PnOZWO[WO]XO^XOpYOqYOrYOsYOtYOuYO~OW[O~OW]O~OX_O~P!pO]Yi^YipYiqYirYisYitYiuYieYi~OZWO[WOjYiXYi~P#sOpaiqairaisaitaiuaieai~OZWO[WO]XO^XOjaiXai~P$rOejOvhOwiO~OZmX[mX]mX^mXeoXpmXqmXrmXsmXtmXumXvoXwoX~OXmOekO~P!pOXuOekO~OvQXwQX~PnOZzO[zO]{O^{Ovaiwai~P$rOwiOecivci~OevO~P!pOXiaeia~P!pOZzO[zOvYiwYi~P#sOXyO~P!pORUOSUOTUOUUOWQO`SOnnO~O`UTn~",goto:"$epPPqPPPPqPPqPPPPqP!S!g!r!rPq!w#Y#]PPP#cP$[oUOQWXZ[]hijkvz{|hUOQWXZ]jkvz{|Ve[hi[ZRVgrsxR|cVf[hioTOQWXZ[]hijkvz{|R^TQlgRtlQROQVQS`WzQaXQbZUc[hiQg]Qo|QrjQskQw{RxvQd[QphRqi",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:393});var hn=I.LRLanguage.define({name:"VuuColumnExpression",parser:at.configure({props:[(0,I.styleTags)({Column:I.tags.attributeValue,Function:I.tags.variableName,String:I.tags.string,Or:I.tags.emphasis,Operator:I.tags.operator})]})}),Ot=()=>new I.LanguageSupport(hn);var St=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},kt=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},ze,xe,Tt=class{constructor(e="unknown"){Z(this,ze,[{type:"unknown"},{type:"unknown"}]);Z(this,xe,void 0);this.type="arithmeticExpression";le(this,xe,e)}get op(){return f(this,xe)}set op(e){le(this,xe,e)}get expressions(){return f(this,ze)}toJSON(){return{type:this.type,op:f(this,xe),expressions:f(this,ze)}}};ze=new WeakMap,xe=new WeakMap;var Fe,Ft=class{constructor(e){Z(this,Fe,[]);this.type="callExpression";this.functionName=e}get expressions(){return f(this,Fe)}get arguments(){return f(this,Fe)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:f(this,Fe).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Fe=new WeakMap;var Ue,Pe,ke=class{constructor(){Z(this,Ue,[{type:"unknown"},{type:"unknown"}]);Z(this,Pe,"unknown");this.type="relationalExpression"}get op(){return f(this,Pe)}set op(e){le(this,Pe,e)}get expressions(){return f(this,Ue)}toJSON(){return{type:this.type,op:f(this,Pe),expressions:f(this,Ue)}}};Ue=new WeakMap,Pe=new WeakMap;var Ge,Le,Te=class{constructor(e){Z(this,Ge,[{type:"unknown"},{type:"unknown"}]);Z(this,Le,void 0);this.type="booleanCondition";le(this,Le,e)}get op(){return f(this,Le)}get expressions(){return f(this,Ge)}toJSON(){return{type:this.type,op:f(this,Le),expressions:f(this,Ge).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Ge=new WeakMap,Le=new WeakMap;var G,Xe=class{constructor(e){Z(this,G,void 0);this.type="conditionalExpression";le(this,G,[e?new Te(e):new ke,{type:"unknown"},{type:"unknown"}])}get expressions(){return f(this,G)}get condition(){return f(this,G)[0]}get truthyExpression(){return f(this,G)[1]}set truthyExpression(e){f(this,G)[1]=e}get falsyExpression(){return f(this,G)[2]}set falsyExpression(e){f(this,G)[2]=e}toJSON(){var e,o,n,i,r;return{type:this.type,condition:(o=(e=this.condition).toJSON)==null?void 0:o.call(e),truthyExpression:this.truthyExpression,falsyExpression:(r=(i=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:i.call(n))!=null?r:this.falsyExpression}}};G=new WeakMap;var ve=t=>t.type==="unknown",lt=t=>t.type==="arithmeticExpression",bn=t=>t.type==="callExpression",Se=t=>t.type==="conditionalExpression",yn=t=>t.type==="relationalExpression"||t.type==="booleanCondition";var En=t=>t.type==="booleanCondition",Lt=t=>(t==null?void 0:t.type)==="relationalExpression";var Q=t=>{if(ve(t))return t;if(Lt(t)){let[e,o]=t.expressions;if(N(e))return Q(e);if(t.op==="unknown")return t;if(N(o))return Q(o)}else if(yn(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return Q(o)}else if(Se(t)){let{condition:e,truthyExpression:o,falsyExpression:n}=t;if(N(e))return Q(e);if(N(o))return Q(o);if(N(n))return Q(n)}else if(lt(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return Q(o)}},ut=(t,e,o)=>{let{expressions:n=[]}=t;if(n.includes(e)){let i=n.indexOf(e);return n.splice(i,1,o),!0}else for(let i of n)if(ut(i,e,o))return!0;return!1},N=t=>ve(t)?!0:Se(t)?N(t.condition)||N(t.truthyExpression)||N(t.falsyExpression):Lt(t)||En(t)?t.op===void 0||t.expressions.some(e=>N(e)):!1,Oo=(t,e)=>{let o=Q(t);o?o.expressions?o.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},h,he,Pt=class{constructor(){Z(this,h,void 0);Z(this,he,[])}setCondition(e){if(f(this,h)===void 0)this.addExpression(new Xe(e));else if(Se(f(this,h))){if(N(f(this,h).condition)){let o=e?new Te(e):new ke;this.addExpression(o)}else if(ve(f(this,h).truthyExpression))f(this,h).truthyExpression=new Xe(e);else if(N(f(this,h).truthyExpression)){let o=e?new Te(e):new ke;this.addExpression(o)}else if(ve(f(this,h).falsyExpression))f(this,h).falsyExpression=new Xe(e);else if(N(f(this,h).falsyExpression)){let o=e?new Te(e):new ke;this.addExpression(o)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(f(this,he).length>0){let o=f(this,he).at(-1);o==null||o.arguments.push(e)}else if(f(this,h)===void 0)le(this,h,e);else if(lt(f(this,h))){let o=Q(f(this,h));o&&ve(o)&&ut(f(this,h),o,e)}else if(Se(f(this,h))&&N(f(this,h))){let o=Q(f(this,h));o&&ve(o)?ut(f(this,h),o,e):o&&Oo(o,e)}}setFunction(e){let o=new Ft(e);this.addExpression(o),f(this,he).push(o)}setColumn(e){this.addExpression(new kt(e))}setArithmeticOp(e){let o=e,n=f(this,h);lt(n)&&(n.op=o)}setRelationalOperator(e){let o=e;if(f(this,h)&&Se(f(this,h))){let n=Q(f(this,h));Lt(n)?n.op=o:console.error(`no target expression found (op = ${e})`)}}setValue(e){let o=new St(e);if(f(this,h)===void 0)le(this,h,o);else if(lt(f(this,h)))this.addExpression(o);else if(bn(f(this,h)))f(this,h).arguments.push(o);else if(Se(f(this,h)))if(N(f(this,h))){let n=Q(f(this,h));n&&ve(n)?ut(f(this,h),n,o):n&&Oo(n,o)}else console.log("what do we do with value, in a complete expression")}closeBrace(){f(this,he).pop()}get expression(){return f(this,h)}toJSON(){var e;return(e=f(this,h))==null?void 0:e.toJSON()}};h=new WeakMap,he=new WeakMap;var Bt=(t,e)=>{let o=new Pt,n=t.cursor();do{let{name:i,from:r,to:a}=n;switch(i){case"AndCondition":o.setCondition("and");break;case"OrCondition":o.setCondition("or");break;case"RelationalExpression":o.setCondition();break;case"ArithmeticExpression":o.addExpression(new Tt);break;case"Column":{let u=e.substring(r,a);o.setColumn(u)}break;case"Function":{let u=e.substring(r,a);o.setFunction(u)}break;case"Times":case"Divide":case"Plus":case"Minus":{let u=e.substring(r,a);o.setArithmeticOp(u)}break;case"RelationalOperator":{let u=e.substring(r,a);o.setRelationalOperator(u)}break;case"False":case"True":{let u=e.substring(r,a);o.setValue(u==="true")}break;case"String":o.setValue(e.substring(r+1,a-1));break;case"Number":o.setValue(parseFloat(e.substring(r,a)));break;case"CloseBrace":o.closeBrace();break;default:}}while(n.next());return o.toJSON()};var wn=at.configure({strict:!0}),So=["Number","String"],pt=[...So,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],Dt=t=>{try{return wn.parse(t),!0}catch{return!1}},ct=t=>{let{lastChild:e}=t;for(;e&&!pt.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},Nt=t=>{if((t==null?void 0:t.name)==="RelationalExpression"){let{firstChild:e}=t,o=ct(t);if((e==null?void 0:e.name)==="Column"&&typeof(o==null?void 0:o.name)=="string"&&So.includes(o.name))return!0}return!1};var ue=require("@vuu-ui/vuu-codemirror"),On=ue.HighlightStyle.define([{tag:ue.tags.attributeValue,color:"var(--vuuFilterEditor-variableColor);font-weight: bold"},{tag:ue.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:ue.tags.comment,color:"green",fontStyle:"italic"}]),ko=(0,ue.syntaxHighlighting)(On);var To=require("@vuu-ui/vuu-codemirror"),Fo=To.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-completionLabel":{color:"var(--vuu-color-gray-50)"},".cm-completionMatchedText":{color:"var(--vuu-color-gray-80)",fontWeight:700,textDecoration:"none"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",borderRadius:"4px",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 T=require("@vuu-ui/vuu-codemirror"),Vt=require("react");var Sn=(t,e)=>e?t.map(o=>{var n;return{...o,apply:typeof o.apply=="function"?o.apply:`${e}${(n=o.apply)!=null?n:o.label}`}}):t,kn=t=>t===void 0?!1:["Times","Divide","Plus","Minus"].includes(t.name),We=t=>({apply:()=>{t==null||t()},label:"Done",boost:10}),Be=(t,e)=>{var i;let{lastChild:o}=t,{pos:n}=e;for(;o;)if(o.from<n&&pt.includes(o.name)){if(o.name==="ParenthesizedExpression"){let a=(i=o.firstChild)==null?void 0:i.nextSibling;a&&(o=a)}return o}else o=o.prevSibling},Po=(t,e)=>{var o;if(t.name==="ArgList"){let n=t.prevSibling;if(n)return(0,T.getValue)(n,e)}else if(t.name==="OpenBrace"){let n=(o=t.parent)==null?void 0:o.prevSibling;if((n==null?void 0:n.name)==="Function")return(0,T.getValue)(n,e)}},Lo=(t,e)=>{if(t.name==="RelationalExpression"){let o=ct(t);if((o==null?void 0:o.name)==="RelationalOperator")return(0,T.getValue)(o,e)}else{let o=t.prevSibling;if((o==null?void 0:o.name)==="RelationalOperator")return(0,T.getValue)(o,e)}},It=(t,e)=>{var o;if(t.name==="RelationalExpression"){if(((o=t.firstChild)==null?void 0:o.name)==="Column")return(0,T.getValue)(t.firstChild,e)}else{let n=t.prevSibling;if((n==null?void 0:n.name)==="Column")return(0,T.getValue)(n,e);if((n==null?void 0:n.name)==="RelationalOperator")return It(n,e)}},Rt=async(t,e,o,n={})=>{let i=await e.getSuggestions(o,n),{startsWith:r=""}=n;return{from:t.pos-r.length,options:i}},Ht=(t,e,o,n,i)=>{let r=Be(t,e);switch(r==null?void 0:r.name){case"If":return Rt(e,o,"expression",{prefix:"( "});case"OpenBrace":return Rt(e,o,"expression");case"Condition":return Rt(e,o,"expression",{prefix:", "});case"CloseBrace":if(n){let a=[We(i)];return{from:e.pos,options:a}}}},Tn=(t,e)=>{let o=[We(e)];return{from:t.pos,options:o}},Bo=(t,e)=>{let o=(0,Vt.useCallback)(async(n,i,r={})=>{let a=await t.getSuggestions(i,r),{startsWith:u=""}=r;return{from:n.pos-u.length,options:a}},[t]);return(0,Vt.useCallback)(async n=>{var g,p;let{state:i,pos:r}=n,a=(g=n.matchBefore(/\w*/))!=null?g:{from:0,to:0,text:void 0},l=(0,T.syntaxTree)(i).resolveInner(r,-1),c=i.doc.toString(),d=Dt(c);switch(l.name){case"If":return o(n,"expression",{prefix:"( "});case"Condition":{let s=Be(l,n);if((s==null?void 0:s.name)==="Column"){let m=(0,T.getPreviousNode)(s);if((m==null?void 0:m.name)!=="RelationalOperator")return o(n,"condition-operator",{columnName:(0,T.getValue)(s,i)})}else if((s==null?void 0:s.name)==="RelationalOperator")return o(n,"expression")}break;case"ConditionalExpression":return Ht(l,n,t);case"RelationalExpression":{if(Nt(l))return{from:n.pos,options:T.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let s=Lo(l,i),m=It(l,i);if(s)return o(n,"expression");{let v=await t.getSuggestions("condition-operator",{columnName:m});return{from:n.pos,options:v}}}}break;case"RelationalOperator":return o(n,"expression");case"String":{let s=Lo(l,i),m=It(l,i),{from:v,to:C}=l;if(C-v===2&&n.pos===v+1){if(m&&s)return o(n,"columnValue",{columnName:m,operator:s,startsWith:a.text})}else if(C-v>2&&n.pos===C)return o(n,"expression",{prefix:", "})}break;case"ArithmeticExpression":{let s=Be(l,n);if((s==null?void 0:s.name)==="Column")return o(n,"expression");if(kn(s)){let m=s.name;return o(n,"column",{operator:m})}}break;case"OpenBrace":{let s=Po(l,i);return o(n,"expression",{functionName:s})}break;case"ArgList":{let s=Po(l,i),m=Be(l,n),v=(m==null?void 0:m.name)==="OpenBrace"||(m==null?void 0:m.name)==="Comma"?void 0:",",C=await t.getSuggestions("expression",{functionName:s});return C=v?Sn(C,", "):C,(m==null?void 0:m.name)!=="OpenBrace"&&(m==null?void 0:m.name)!=="Comma"&&(C=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(C)),{from:n.pos,options:C}}case"Equal":if(c.trim()==="=")return o(n,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(n.pos===0)return o(n,"expression");{let s=Be(l,n);if((s==null?void 0:s.name)==="Column"){if(d){let m=[We(e.current)],v=(0,T.getValue)(s,i),C=await t.getSuggestions("operator",{columnName:v});return{from:n.pos,options:m.concat(C)}}}else if((s==null?void 0:s.name)==="CallExpression"){if(d)return{from:n.pos,options:[We(e.current)]}}else if((s==null?void 0:s.name)==="ArithmeticExpression"){if(d){let m=[We(e.current)],v=Be(s,n);if((v==null?void 0:v.name)==="Column"){let C=(0,T.getValue)(v,i),x=await t.getSuggestions("operator",{columnName:C});m=m.concat(x)}return{from:n.pos,options:m}}}else if((s==null?void 0:s.name)==="ConditionalExpression")return Ht(s,n,t,d,e.current);break}case"Column":if(await t.isPartialMatch("expression",void 0,a.text))return o(n,"expression",{startsWith:a.text});break;case"Comma":{let s=(0,T.getNamedParentNode)(l);if((s==null?void 0:s.name)==="ConditionalExpression")return o(n,"expression")}break;case"CloseBrace":{let s=(0,T.getNamedParentNode)(l);if((s==null?void 0:s.name)==="ConditionalExpression")return Ht(s,n,t,d,e.current);if((s==null?void 0:s.name)==="ArgList"&&d)return Tn(n,e.current)}break;default:((p=l==null?void 0:l.prevSibling)==null?void 0:p.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[o,e,t])};var mt=t=>{if(t.current==null)throw Error("EditorView not defined");return t.current},Fn=()=>"vuuSuggestion",Pn=()=>console.log("noooop"),Ln=t=>"expressionType"in t,Bn=t=>{if(Ln(t)){let e=(0,Qt.createEl)("div","expression-type-container"),o=(0,Qt.createEl)("span","expression-type",t.expressionType);return e.appendChild(o),e}else return null},Mt=({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n})=>{let i=(0,W.useRef)(null),r=(0,W.useRef)(Pn),a=(0,W.useRef)(),u=Bo(n,r),[l,c,d]=(0,W.useMemo)(()=>{let p=()=>{let x=mt(a),b=x.state.doc.toString(),P=(0,k.ensureSyntaxTree)(x.state,x.state.doc.length,5e3);if(P){let ae=Bt(P,b);return[b,ae]}else return["",void 0]},s=()=>{mt(a).setState(C())},m=()=>{let[x,b]=p();e==null||e(x,b)},v=x=>k.keymap.of([{key:x,run(){return(0,k.startCompletion)(mt(a)),!0}}]),C=()=>k.EditorState.create({doc:o,extensions:[k.minimalSetup,(0,k.autocompletion)({addToOptions:[{render:Bn,position:70}],override:[u],optionClass:Fn}),Ot(),k.keymap.of(k.defaultKeymap),v("ArrowDown"),k.EditorView.updateListener.of(x=>{let b=mt(a);if(x.docChanged){(0,k.startCompletion)(b);let P=b.state.doc.toString();t==null||t(P)}}),k.EditorState.transactionFilter.of(x=>x.newDoc.lines>1?[]:x),Fo,ko]});return r.current=()=>{m()},[C,s,m]},[u,t,e,o]);(0,W.useEffect)(()=>{if(!i.current)throw Error("editor not in dom");return a.current=new k.EditorView({state:l(),parent:i.current}),()=>{var p;(p=a.current)==null||p.destroy()}},[u,l]);let g=(0,W.useCallback)(()=>{d()},[d]);return{editorRef:i,clearInput:c,onBlur:g}};var No=require("react/jsx-runtime"),Dn="vuuColumnExpressionInput",dt=(0,Do.memo)(({onChange:t,onSubmitExpression:e,source:o="",suggestionProvider:n})=>{let{editorRef:i,onBlur:r}=Mt({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n});return(0,No.jsx)("div",{className:`${Dn}`,onBlur:r,ref:i})},(t,e)=>t.source===e.source);dt.displayName="ColumnExpressionInput";var q=require("@vuu-ui/vuu-codemirror"),gt=require("@vuu-ui/vuu-data-react"),Re=require("@vuu-ui/vuu-utils"),Ne=require("react");var De=[{accepts:["boolean"],description:"Applies boolean and operator across supplied parameters to returns a single boolean result",example:{expression:'and(ccy="EUR",quantity=0)',result:"true | false"},name:"and",params:{description:"( boolean, [ boolean* ] )"},type:"boolean"},{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:["boolean"],description:"Applies boolean or operator across supplied parameters to returns a single boolean result",example:{expression:'or(status="cancelled",quantity=0)',result:"true | false"},name:"or",params:{description:"( boolean, [ boolean* ] )"},type:"boolean"},{accepts:"string",description:"Convert a string value to uppercase. Argument may be a string column or other string expression.",example:{expression:'upper("example")',result:'"EXAMPLE"'},name:"upper",params:{description:"( string )"},type:"string"},{accepts:["string","number"],description:"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:"blah",result:"blah"},name:"right",params:{description:"( string )"},type:"string"},{accepts:["string","string","string"],description:"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",example:{expression:"blah",result:"blah"},name:"replace",params:{description:"( string )"},type:"string"},{accepts:"number",description:"Converts a number to a string.",example:{expression:"blah",result:"blah"},name:"text",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",example:{expression:"blah",result:"blah"},name:"starts",params:{description:"( string )"},type:"boolean"},{accepts:"string",description:"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",example:{expression:"blah",result:"blah"},name:"ends",params:{description:"( string )"},type:"boolean"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"min",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"max",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"sum",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"round",params:{description:"( string )"},type:"number"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"or",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"and",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",example:{expression:"blah",result:"blah"},name:"if",params:{description:"( filterExpression, expression1, expression 2)"},type:"variable"}];var Y=require("@vuu-ui/vuu-utils"),Ro=({name:t,description:e,example:o,params:n,type:i})=>{let r=(0,Y.createEl)("div","vuuFunctionDoc"),a=(0,Y.createEl)("div","function-heading"),u=(0,Y.createEl)("span","function-name",t),l=(0,Y.createEl)("span","param-list",n.description),c=(0,Y.createEl)("span","function-type",i);a.appendChild(u),a.appendChild(l),a.appendChild(c);let d=(0,Y.createEl)("p",void 0,e);if(r.appendChild(a),r.appendChild(d),o){let g=(0,Y.createEl)("div","example-container"),p=(0,Y.createEl)("div","example-expression",o.expression),s=(0,Y.createEl)("div","example-result",o.result);g.appendChild(p),r.appendChild(g),r.appendChild(s)}return r};var Nn=[],be=t=>t.map(e=>{var o;return{...e,apply:((o=e.apply)!=null?o:e.label)+" "}}),Rn=(t,{functionName:e,operator:o})=>{if(o)return t.filter(Re.isNumericColumn);if(e){let n=De.find(i=>i.name===e);if(n)switch(n.accepts){case"string":return t.filter(Re.isTextColumn);case"number":return t.filter(Re.isNumericColumn);default:return t}}return t},Ho=(t,e)=>Rn(t,e).map(n=>{var r;let i=(r=n.label)!=null?r:n.name;return{apply:e.prefix?`${e.prefix}${n.name}`:n.name,label:i,boost:5,type:"column",expressionType:n.serverDataType}}),Hn=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Vn=t=>t===void 0||(0,Re.isNumericColumn)(t)?Hn:Nn,In=t=>{switch(t.serverDataType){case"string":case"char":return be(q.stringOperators);case"int":case"long":case"double":return be(q.numericOperators)}},At=t=>({apply:`${t.name}( `,boost:2,expressionType:t.type,info:()=>Ro(t),label:t.name,type:"function"}),Qn=t=>{if(t){if(typeof t.accepts=="string")return t.accepts;if(Array.isArray(t.accepts))return t.accepts.every(e=>e==="string")?"string":"any"}return"any"},Mn=De.map(At),An=({functionName:t})=>{if(t){let e=De.find(n=>n.name===t),o=Qn(e);if(e)switch(o){case"string":return De.filter(n=>n.type==="string"||n.type==="variable").map(At);case"number":return De.filter(n=>n.type==="number"||n.type==="variable").map(At);default:}}return Mn},$n={},$t=({columns:t,table:e})=>{let o=(0,Ne.useCallback)(u=>u?t.find(l=>l.name===u):void 0,[t]),n=(0,Ne.useRef)(),i=(0,gt.useTypeaheadSuggestions)(),r=(0,Ne.useCallback)(async(u,l=$n)=>{let{columnName:c,functionName:d,operator:g,prefix:p}=l;switch(u){case"expression":{let s=await be(Ho(t,{functionName:d,prefix:p})).concat(An(l));return n.current=s}case"column":{let s=await Ho(t,l);return n.current=be(s)}case"operator":{let s=await Vn(o(c));return n.current=be(s)}case"relational-operator":{let s=await(0,q.getRelationalOperators)(o(c));return n.current=be(s)}case"condition-operator":{let s=o(c);if(s){let m=await In(s);if(m)return n.current=be(m)}}break;case"columnValue":if(c&&g){let s=(0,gt.getTypeaheadParams)(e,c),m=await i(s);return n.current=(0,q.toSuggestions)(m,{suffix:""}),n.current.forEach(v=>{v.apply=(C,x,b)=>{let P=new q.AnnotationType,ae=b+x.label.length+1;C.dispatch({changes:{from:b,insert:x.label},selection:{anchor:ae,head:ae},annotations:P.of(x)})}}),n.current}break}return[]},[t,o,i,e]),a=(0,Ne.useCallback)(async(u,l,c)=>{let{current:d}=n,g=!1,p=d||await r(u,{columnName:l});if(c&&p)for(let s of p){if(s.label===c)return!1;s.label.startsWith(c)&&(g=!0)}return g},[r]);return{getSuggestions:r,isPartialMatch:a}};var pe=require("@vuu-ui/vuu-utils"),oe=require("react"),Zn=t=>{let[e,o,n]=(0,pe.getCalculatedColumnDetails)(t);return n===""?{...t,name:`${e}:string:${o}`}:t},Vo=({column:t,onChangeName:e})=>{let[o,n]=(0,oe.useState)(Zn(t)),i=(0,oe.useRef)(t),r=(0,oe.useCallback)(c=>{i.current=c,n(c)},[]),a=(0,oe.useCallback)(c=>{let{value:d}=c.target,g=(0,pe.setCalculatedColumnName)(o,d);r(g),e==null||e(g.name)},[o,e,r]),u=(0,oe.useCallback)(c=>{let d=c.trim(),{current:g}=i,p=(0,pe.setCalculatedColumnExpression)(g,d);r(p),e==null||e(p.name)},[e,r]),l=(0,oe.useCallback)((c,d)=>{if(typeof d=="string"){let g=(0,pe.setCalculatedColumnType)(o,d);r(g),e==null||e(g.name)}},[o,e,r]);return{column:o,onChangeExpression:u,onChangeName:a,onChangeType:l}};var H=require("react/jsx-runtime"),Io="vuuColumnExpressionPanel",Zt=({column:t,onChangeName:e,tableConfig:o,vuuTable:n})=>{let i=(0,Ye.useRef)(null),{column:r,onChangeExpression:a,onChangeName:u,onChangeType:l}=Vo({column:t,onChangeName:e}),c=(0,Ye.useRef)((0,He.getCalculatedColumnExpression)(r)),d=$t({columns:o.columns,table:n}),g=(0,Ye.useCallback)(()=>{var p,s;i.current&&((s=(p=i.current)==null?void 0:p.querySelector("button"))==null||s.focus())},[]);return(0,H.jsxs)("div",{className:Io,children:[(0,H.jsx)("div",{className:"vuuColumnSettingsPanel-header",children:(0,H.jsx)("span",{children:"Calculation"})}),(0,H.jsxs)(_.FormField,{"data-field":"column-name",children:[(0,H.jsx)(_.FormFieldLabel,{children:"Column Name"}),(0,H.jsx)(_.Input,{className:"vuuInput",onChange:u,value:(0,He.getCalculatedColumnName)(r)})]}),(0,H.jsxs)(_.FormField,{"data-field":"column-expression",children:[(0,H.jsx)(_.FormFieldLabel,{children:"Expression"}),(0,H.jsx)(dt,{onChange:a,onSubmitExpression:g,source:c.current,suggestionProvider:d})]}),(0,H.jsxs)(_.FormField,{"data-field":"type",children:[(0,H.jsx)(_.FormFieldLabel,{children:"Column type"}),(0,H.jsx)(Qo.Dropdown,{className:`${Io}-type`,onSelectionChange:l,ref:i,selected:(0,He.getCalculatedColumnType)(r)||null,source:["double","long","string"],width:"100%"})]})]})};var Xo=require("@vuu-ui/vuu-ui-controls"),K=require("@vuu-ui/vuu-utils"),Ct=require("@salt-ds/core"),Ut=ge(require("clsx"),1),Ve=require("react");var V=require("@salt-ds/core"),Mo=require("@vuu-ui/vuu-utils"),ye=require("react"),M=require("react/jsx-runtime"),Xn="vuuFormattingSettings",qe=({column:t,onChangeFormatting:e})=>{var l,c,d;let[o,n]=(0,ye.useState)((0,Mo.getTypeFormattingFromColumn)(t)),i=(0,ye.useCallback)(g=>{(g.key==="Enter"||g.key==="Tab")&&e(o)},[o,e]),r=(0,ye.useCallback)(g=>{let{value:p}=g.target,s=p===""||isNaN(parseInt(p))?void 0:parseInt(p),m={...o,decimals:s};n(m)},[o]),a=(0,ye.useCallback)(g=>{let{checked:p}=g.target,s={...o,alignOnDecimals:p};n(s),e(s)},[o,e]),u=(0,ye.useCallback)(g=>{let{checked:p}=g.target,s={...o,zeroPad:p};n(s),e(s)},[o,e]);return(0,M.jsxs)("div",{className:Xn,children:[(0,M.jsxs)(V.FormField,{"data-field":"decimals",children:[(0,M.jsx)(V.FormFieldLabel,{children:"Number of decimals"}),(0,M.jsx)(V.Input,{className:"vuuInput",onChange:r,onKeyDown:i,value:(l=o.decimals)!=null?l:""})]}),(0,M.jsxs)(V.FormField,{labelPlacement:"left",children:[(0,M.jsx)(V.FormFieldLabel,{children:"Align on decimals"}),(0,M.jsx)(V.Switch,{checked:(c=o.alignOnDecimals)!=null?c:!1,onChange:a,value:"align-decimals"})]}),(0,M.jsxs)(V.FormField,{labelPlacement:"left",children:[(0,M.jsx)(V.FormFieldLabel,{children:"Zero pad decimals"}),(0,M.jsx)(V.Switch,{checked:(d=o.zeroPad)!=null?d:!1,onChange:u,value:"zero-pad"})]})]})};var $o=require("react"),me=require("@salt-ds/core"),ft=require("@vuu-ui/vuu-utils");var ce=require("react"),Ao=require("@vuu-ui/vuu-ui-controls"),ne=require("@vuu-ui/vuu-utils"),J=require("@salt-ds/core"),A=require("react/jsx-runtime"),Xt=({column:t,onChangeFormatting:e})=>{var d,g;let o=(0,ne.getTypeFormattingFromColumn)(t),{pattern:n=ne.fallbackDateTimePattern}=o,i=(0,ce.useMemo)(()=>Gn(n),[n]),[r,a]=(0,ce.useState)({time:(d=n.time)!=null?d:ne.defaultPatternsByType.time,date:(g=n.date)!=null?g:ne.defaultPatternsByType.date}),u=(0,ce.useCallback)(p=>e({...o,pattern:p}),[e,o]),l=(0,ce.useCallback)(p=>(s,m)=>{let v={...n!=null?n:{},[p]:m};a(C=>{var x,b;return{time:(x=v.time)!=null?x:C.time,date:(b=v.date)!=null?b:C.date}}),u(v)},[u,n]),c=(0,ce.useCallback)(p=>{var m,v,C,x;let s=p.currentTarget.value;switch(s){case"time":return u({[s]:(m=n[s])!=null?m:r[s]});case"date":return u({[s]:(v=n[s])!=null?v:r[s]});case"both":return u({time:(C=n.time)!=null?C:r.time,date:(x=n.date)!=null?x:r.date})}},[u,n,r]);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(J.FormField,{labelPlacement:"left",children:[(0,A.jsx)(J.FormFieldLabel,{children:"Display"}),(0,A.jsx)(J.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:c,value:i,children:Un.map(p=>(0,A.jsx)(J.ToggleButton,{value:p,children:p.toUpperCase()},p))})]}),["date","time"].filter(p=>!!n[p]).map(p=>(0,A.jsxs)(J.FormField,{labelPlacement:"left",children:[(0,A.jsx)(J.FormFieldLabel,{children:`${zn[p]} pattern`}),(0,A.jsx)(Ao.Dropdown,{onSelectionChange:l(p),selected:n[p],source:ne.supportedDateTimePatterns[p],width:"100%"})]},p))]})},zn={date:"Date",time:"Time"},Un=["date","time","both"];function Gn(t){return t.time?t.date?"both":"time":"date"}var re=require("react/jsx-runtime"),Wn="vuuLongColumnFormattingSettings",Zo=t=>{let{column:e,onChangeType:o}=t,n=(0,ft.isTypeDescriptor)(e.type)?e.type.name:e.type,i=(0,$o.useCallback)(r=>{let a=r.currentTarget.value;o(a)},[o]);return(0,re.jsxs)("div",{className:Wn,children:[(0,re.jsxs)(me.FormField,{children:[(0,re.jsx)(me.FormFieldLabel,{children:"Type inferred as"}),(0,re.jsx)(me.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:i,value:n!=null?n:"number",children:Yn.map(r=>(0,re.jsx)(me.ToggleButton,{value:r,children:r.toUpperCase()},r))})]}),(0,ft.isDateTimeColumn)(e)?(0,re.jsx)(Xt,{...t,column:e}):(0,re.jsx)(qe,{...t})]})},Yn=["number","date/time"];var X=require("react/jsx-runtime"),zt="vuuColumnFormattingPanel",qn=t=>{var e;return(e=t.label)!=null?e:t.name},Gt=({availableRenderers:t,className:e,column:o,onChangeFormatting:n,onChangeType:i,onChangeRendering:r,...a})=>{let u=(0,Ve.useMemo)(()=>_n({column:o,onChangeFormatting:n,onChangeType:i}),[o,n,i]),l=(0,Ve.useMemo)(()=>{let{type:p}=o;if((0,K.isTypeDescriptor)(p)&&(0,K.isColumnTypeRenderer)(p.renderer)){let s=(0,K.getCellRendererOptions)(p.renderer.name);return(0,K.getConfigurationEditor)(s==null?void 0:s.configEditor)}},[o]),c=(0,Ve.useMemo)(()=>{let{type:p}=o,[s]=t,m=(0,K.isTypeDescriptor)(p)&&(0,K.isColumnTypeRenderer)(p.renderer)?p.renderer.name:void 0,v=t.find(C=>C.name===m);return v!=null?v:s},[t,o]),d=(0,Ve.useCallback)((p,s)=>{let m={name:s.name};r==null||r(m)},[r]),{serverDataType:g="string"}=o;return(0,X.jsxs)("div",{...a,className:"vuuColumnSettingsPanel-header",children:[(0,X.jsx)("div",{children:"Formatting"}),(0,X.jsxs)(Ct.FormField,{children:[(0,X.jsx)(Ct.FormFieldLabel,{children:`Renderer (data type ${o.serverDataType})`}),(0,X.jsx)(Xo.Dropdown,{className:(0,Ut.default)(`${zt}-renderer`),itemToString:qn,onSelectionChange:d,selected:c,source:t,width:"100%"})]}),(0,X.jsxs)("div",{className:(0,Ut.default)(zt,e,`${zt}-${g}`),children:[u,l?(0,X.jsx)(l,{column:o,onChangeRendering:r}):null]})]})};function _n(t){let{column:e}=t;switch(e.serverDataType){case"double":case"int":return(0,X.jsx)(qe,{...t});case"long":return(0,X.jsx)(Zo,{...t});default:return null}}var zo=ge(require("clsx"),1),vt=require("@vuu-ui/vuu-utils");var j=require("react/jsx-runtime"),Ie="vuuColumnNameLabel",Uo=({column:t,onClick:e})=>{if((0,vt.isCalculatedColumn)(t.name)){let[o,n,i]=(0,vt.getCalculatedColumnDetails)(t),r=o||"name",a="=expression",u=r==="name"?`${Ie}-placeholder`:void 0,l=i===""?`${Ie}-placeholder`:void 0;return(0,j.jsxs)("div",{className:(0,zo.default)(Ie,`${Ie}-calculated`),onClick:e,children:[(0,j.jsx)("span",{className:u,children:r}),(0,j.jsx)("span",{children:":"}),(0,j.jsx)("span",{children:n||"string"}),(0,j.jsx)("span",{children:":"}),(0,j.jsx)("span",{className:l,children:a}),(0,j.jsx)("span",{className:`${Ie}-edit`,"data-icon":"edit"})]})}else return(0,j.jsx)("div",{className:Ie,children:t.name})};var L=require("@vuu-ui/vuu-utils"),w=require("react"),Jn=[{description:"Default formatter for columns with data type integer",label:"Default Renderer (int, long)",name:"default-int"},...(0,L.getRegisteredCellRenderers)("int")],Kn=[{description:"Default formatter for columns with data type double",label:"Default Renderer (double)",name:"default-double"},...(0,L.getRegisteredCellRenderers)("double")],Go=[{description:"Default formatter for columns with data type string",label:"Default Renderer (string)",name:"default-string"},...(0,L.getRegisteredCellRenderers)("string")],jn=[...(0,L.getRegisteredCellRenderers)("boolean")],er=t=>{switch(t.serverDataType){case"char":case"string":return Go;case"int":case"long":return Jn;case"double":return Kn;case"boolean":return jn;default:return Go}},tr=t=>{let e=t.closest(".saltFormField");if(e&&e.dataset.field){let{dataset:{field:o}}=e;return o}else throw Error("named form field not found")},or=(t,e)=>{if(e.name==="::")return e;{let o=t.find(n=>n.name===e.name);if(o)return o;throw Error(`columns does not contain column ${name}`)}},Qe=(t,e)=>({...t,columns:t.columns.map(o=>o.name===e.name?e:o)}),Wo=({column:t,onCancelCreateColumn:e,onConfigChange:o,onCreateCalculatedColumn:n,tableConfig:i})=>{let[r,a]=(0,w.useState)(or(i.columns,t)),u=(0,w.useRef)(r),[l,c]=(0,w.useState)(r.name==="::"),d=(0,w.useCallback)(()=>{u.current=r,c(!0)},[r]);(0,w.useEffect)(()=>{a(t),c(t.name==="::")},[t]);let g=(0,w.useMemo)(()=>er(r),[r]),p=(0,w.useCallback)(()=>{o(Qe(i,r))},[r,o,i]),s=(0,w.useCallback)(B=>{let F=B.target,bt=tr(F),{value:z}=F;switch(bt){case"column-label":a($=>({...$,label:z}));break;case"column-name":a($=>(0,L.setCalculatedColumnName)($,z));break;case"column-width":a($=>({...$,width:parseInt(z)}));break;case"column-alignment":if((0,L.isValidColumnAlignment)(z)){let $={...r,align:z||void 0};a($),o(Qe(i,$))}break;case"column-pin":if((0,L.isValidPinLocation)(z)){let $={...r,pin:z||void 0};a($),o(Qe(i,$));break}}},[r,o,i]),m=(0,w.useCallback)(B=>{a(F=>({...F,name:B}))},[]),v=(0,w.useCallback)(B=>{let F=(0,L.updateColumnFormatting)(r,B);a(F),o(Qe(i,F))},[r,o,i]),C=(0,w.useCallback)(B=>{let F=(0,L.updateColumnType)(r,B);a(F),o(Qe(i,F))},[r,o,i]),x=(0,w.useCallback)(B=>{if(B){let F=(0,L.updateColumnRenderProps)(r,B);a(F),o(Qe(i,F))}},[r,o,i]),b=(0,w.useCallback)(({moveBy:B})=>{let{columns:F}=i,bt=F.indexOf(r)+B,z=F[bt];z&&a(z)},[r,i]),P=(0,w.useCallback)(()=>{b({moveBy:1})},[b]),ae=(0,w.useCallback)(()=>{b({moveBy:-1})},[b]),xt=(0,w.useCallback)(()=>{n(r)},[r,n]),ht=(0,w.useCallback)(()=>{t.name==="::"?e():(u.current!==void 0&&u.current!==r&&a(u.current),c(!1))},[r,t.name,e]);return{availableRenderers:g,editCalculatedColumn:l,column:r,navigateNextColumn:P,navigatePrevColumn:ae,onCancel:ht,onChange:s,onChangeCalculatedColumnName:m,onChangeFormatting:v,onChangeRendering:x,onChangeType:C,onEditCalculatedColumn:d,onInputCommit:p,onSave:xt}};var y=require("react/jsx-runtime"),de="vuuColumnSettingsPanel",nr=t=>{let{name:e,label:o}=t;return(0,Me.isCalculatedColumn)(e)?o!=null?o:(0,Me.getCalculatedColumnName)(t):o!=null?o:e},rr=({column:t,onCancelCreateColumn:e,onConfigChange:o,onCreateCalculatedColumn:n,tableConfig:i,vuuTable:r})=>{let a=t.name==="::",{availableRenderers:u,editCalculatedColumn:l,column:c,navigateNextColumn:d,navigatePrevColumn:g,onCancel:p,onChange:s,onChangeCalculatedColumnName:m,onChangeFormatting:v,onChangeRendering:C,onChangeType:x,onEditCalculatedColumn:b,onInputCommit:P,onSave:ae}=Wo({column:t,onCancelCreateColumn:e,onConfigChange:o,onCreateCalculatedColumn:n,tableConfig:i}),{serverDataType:xt,align:ht=(0,Me.getDefaultAlignment)(xt),pin:B,width:F}=c;return(0,y.jsxs)("div",{className:(0,Yo.default)(de,{[`${de}-editing`]:l}),children:[(0,y.jsx)("div",{className:`${de}-header`,children:(0,y.jsx)(Uo,{column:c,onClick:b})}),l?(0,y.jsx)(Zt,{column:c,onChangeName:m,tableConfig:i,vuuTable:r}):null,(0,y.jsxs)(E.FormField,{"data-field":"column-label",children:[(0,y.jsx)(E.FormFieldLabel,{children:"Column Label"}),(0,y.jsx)(Wt.VuuInput,{className:"vuuInput",onChange:s,onCommit:P,value:nr(c)})]}),(0,y.jsxs)(E.FormField,{"data-field":"column-width",children:[(0,y.jsx)(E.FormFieldLabel,{children:"Column Width"}),(0,y.jsx)(Wt.VuuInput,{className:"vuuInput",onChange:s,value:F,onCommit:P})]}),(0,y.jsxs)(E.FormField,{"data-field":"column-alignment",children:[(0,y.jsx)(E.FormFieldLabel,{children:"Alignment"}),(0,y.jsxs)(E.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:s,value:ht,children:[(0,y.jsx)(E.ToggleButton,{"data-icon":"align-left",className:"vuuIconToggleButton",value:"left"}),(0,y.jsx)(E.ToggleButton,{"data-icon":"align-right",className:"vuuIconToggleButton",value:"right"})]})]}),(0,y.jsxs)(E.FormField,{"data-field":"column-pin",children:[(0,y.jsx)(E.FormFieldLabel,{children:"Pin Column"}),(0,y.jsxs)(E.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:s,value:B!=null?B:"",children:[(0,y.jsx)(E.ToggleButton,{className:"vuuIconToggleButton","data-icon":"cross-circle",value:""}),(0,y.jsx)(E.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-left",value:"left"}),(0,y.jsx)(E.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-float",value:"floating"}),(0,y.jsx)(E.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-right",value:"right"})]})]}),(0,y.jsx)(Gt,{availableRenderers:u,column:c,onChangeFormatting:v,onChangeRendering:C,onChangeType:x}),l?(0,y.jsxs)("div",{className:"vuuColumnSettingsPanel-buttonBar","data-align":"right",children:[(0,y.jsx)(E.Button,{className:`${de}-buttonCancel`,onClick:p,tabIndex:-1,children:"cancel"}),(0,y.jsx)(E.Button,{className:`${de}-buttonSave`,onClick:ae,variant:"cta",children:"save"})]}):(0,y.jsxs)("div",{className:`${de}-buttonBar`,"data-align":a?"right":void 0,children:[(0,y.jsx)(E.Button,{className:`${de}-buttonNavPrev`,variant:"secondary","data-icon":"arrow-left",onClick:g,children:"PREVIOUS"}),(0,y.jsx)(E.Button,{className:`${de}-buttonNavNext`,variant:"secondary","data-icon":"arrow-right",onClick:d,children:"NEXT"})]})]})};var qo=ge(require("clsx"),1),Je=require("react");var se=require("react/jsx-runtime"),_e="vuuDatasourceStats",Yt=new Intl.NumberFormat,sr=({className:t,dataSource:e})=>{let[o,n]=(0,Je.useState)(e.range),[i,r]=(0,Je.useState)(e.size);(0,Je.useEffect)(()=>{r(e.size),e.on("resize",r),e.on("range",n)},[e]);let a=(0,qo.default)(_e,t),u=Yt.format(o.from+1),l=Yt.format(Math.min(o.to,i)),c=Yt.format(i);return(0,se.jsxs)("div",{className:a,children:[(0,se.jsx)("span",{className:`${_e}-label`,children:"Row count"}),(0,se.jsx)("span",{className:`${_e}-range`,children:u}),(0,se.jsx)("span",{children:"-"}),(0,se.jsx)("span",{className:`${_e}-range`,children:l}),(0,se.jsx)("span",{children:"of"}),(0,se.jsx)("span",{className:`${_e}-size`,children:c})]})};var S=require("@salt-ds/core");var _o=require("@vuu-ui/vuu-table"),ee=require("@vuu-ui/vuu-utils"),ie=require("react"),ir=(t,e)=>{let o=[];for(let{name:n}of t){let i=e.find(r=>r.name===n);i&&o.push(i)}return o},ar=(t,e)=>t.map(({name:o,serverDataType:n})=>{let i=e.find(r=>r.name===o);return{hidden:i==null?void 0:i.hidden,isCalculated:(0,ee.isCalculatedColumn)(o),label:i==null?void 0:i.label,name:o,serverDataType:n,subscribed:i!==void 0}}),qt=({availableColumns:t,onConfigChange:e,onDataSourceConfigChange:o,tableConfig:n})=>{let[{availableColumns:i,tableConfig:r},a]=(0,ie.useState)({availableColumns:t,tableConfig:n}),u=(0,ie.useMemo)(()=>ar(i,r.columns),[i,r.columns]),l=(0,ie.useCallback)((s,m)=>{a(v=>{let C=(0,ee.moveItem)(v.availableColumns,s,m),x=ir(C,r.columns);return{availableColumns:C,tableConfig:{...v.tableConfig,columns:x}}})},[r.columns]),c=(0,ie.useCallback)((s,m,v)=>{let C=u.find(x=>x.name===s);if(m==="subscribed")if(C!=null&&C.subscribed){let x=r.columns.filter(b=>b.name!==s).map(b=>b.name);a(b=>({...b,tableConfig:{...r,columns:r.columns.filter((0,ee.subscribedOnly)(x))}})),o({columns:x})}else{let x={...r,columns:(0,ee.addColumnToSubscribedColumns)(r.columns,i,s)};a(P=>({...P,tableConfig:x}));let b=x.columns.map(P=>P.name);o({columns:b})}else if(C!=null&&C.subscribed){let x=r.columns.find(b=>b.name===s);if(x){let b=(0,_o.updateTableConfig)(r,{type:"column-prop",property:m,column:x,value:v});a(P=>({...P,tableConfig:b}))}}},[i,u,o,r]),d=(0,ie.useCallback)(s=>{let{value:m}=s.target,v=m==="0"?void 0:m==="1"?"capitalize":"uppercase";a(C=>({...C,tableConfig:{...C.tableConfig,columnFormatHeader:v}}))},[]),g=(0,ie.useCallback)(s=>{let{ariaChecked:m,value:v}=s.target;a(C=>({...C,tableConfig:{...C.tableConfig,[v]:m!=="true"}}))},[]);(0,ee.useLayoutEffectSkipFirst)(()=>{e==null||e(r)},[e,r]);let p=r.columnFormatHeader===void 0?0:r.columnFormatHeader==="capitalize"?1:2;return{columnItems:u,columnLabelsValue:p,onChangeColumnLabels:d,onChangeTableAttribute:g,onColumnChange:c,onMoveListItem:l,tableConfig:r}};var O=require("react/jsx-runtime"),_t="vuuTableSettingsPanel",lr=({availableColumns:t,onAddCalculatedColumn:e,onConfigChange:o,onDataSourceConfigChange:n,onNavigateToColumn:i,tableConfig:r})=>{var s,m,v;let{columnItems:a,columnLabelsValue:u,onChangeColumnLabels:l,onChangeTableAttribute:c,onColumnChange:d,onMoveListItem:g,tableConfig:p}=qt({availableColumns:t,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r});return(0,O.jsxs)("div",{className:_t,children:[(0,O.jsxs)(S.FormField,{children:[(0,O.jsx)(S.FormFieldLabel,{children:"Column Labels"}),(0,O.jsxs)(S.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:l,value:u,children:[(0,O.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-strikethrough",value:0}),(0,O.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-Tt",value:1}),(0,O.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-T",value:2})]})]}),(0,O.jsxs)(S.FormField,{children:[(0,O.jsx)(S.FormFieldLabel,{children:"Grid separators"}),(0,O.jsxs)("div",{className:"saltToggleButtonGroup vuuToggleButtonGroup saltToggleButtonGroup-horizontal vuuGridSeparators",children:[(0,O.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-striping",selected:(s=p.zebraStripes)!=null?s:!1,onChange:c,value:"zebraStripes"}),(0,O.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-lines",selected:(m=p.rowSeparators)!=null?m:!1,onChange:c,value:"rowSeparators"}),(0,O.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"col-lines",selected:(v=p.columnSeparators)!=null?v:!1,onChange:c,value:"columnSeparators"})]})]}),(0,O.jsxs)(S.FormField,{children:[(0,O.jsx)(S.FormFieldLabel,{children:"Default Column Width"}),(0,O.jsx)(S.Input,{className:"vuuInput"})]}),(0,O.jsx)(wt,{columnItems:a,onChange:d,onMoveListItem:g,onNavigateToColumn:i}),(0,O.jsxs)("div",{className:`${_t}-calculatedButtonbar`,children:[(0,O.jsx)(S.Button,{"data-icon":"plus",onClick:e}),(0,O.jsx)("span",{className:`${_t}-calculatedLabel`,children:"Add calculated column"})]})]})};
1
+ "use strict";var ln=Object.create;var rt=Object.defineProperty;var un=Object.getOwnPropertyDescriptor;var pn=Object.getOwnPropertyNames;var cn=Object.getPrototypeOf,mn=Object.prototype.hasOwnProperty;var dn=(t,e)=>{for(var o in e)rt(t,o,{get:e[o],enumerable:!0})},ro=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of pn(e))!mn.call(t,s)&&s!==o&&rt(t,s,{get:()=>e[s],enumerable:!(n=un(e,s))||n.enumerable});return t};var pe=(t,e,o)=>(o=t!=null?ln(cn(t)):{},ro(e||!t||!t.__esModule?rt(o,"default",{value:t,enumerable:!0}):o,t)),gn=t=>ro(rt({},"__esModule",{value:!0}),t);var so=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var f=(t,e,o)=>(so(t,e,"read from private field"),o?o.call(t):e.get(t)),U=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)},ce=(t,e,o,n)=>(so(t,e,"write to private field"),n?n.call(t,o):e.set(t,o),o);var hr={};dn(hr,{BackgroundCell:()=>go,BackgroundCellConfigurationEditor:()=>xo,BaseNumericFormattingSettings:()=>et,CaseValidator:()=>ao,ColumnExpressionInput:()=>bt,ColumnExpressionPanel:()=>_t,ColumnFormattingPanel:()=>eo,ColumnList:()=>Lt,ColumnNamedTerms:()=>vt,ColumnSettingsPanel:()=>gr,DataSourceStats:()=>fr,DateTimeFormattingSettings:()=>Jt,DropdownCell:()=>ho,LookupCell:()=>wo,PatternValidator:()=>uo,PctProgressCell:()=>To,TableSettingsPanel:()=>xr,columnExpressionLanguageSupport:()=>Dt,isCompleteExpression:()=>$t,isCompleteRelationalExpression:()=>At,lastNamedChild:()=>xt,useColumnExpressionEditor:()=>Yt,useColumnExpressionSuggestionProvider:()=>qt,useTableSettings:()=>oo,walkTree:()=>It});module.exports=gn(hr);var io=require("@vuu-ui/vuu-utils"),fn=t=>typeof t=="string",ao=(t,e)=>fn(e)?e===""?!0:t.value==="lower"&&e.toLowerCase()!==e?"value must be all lowercase":t.value==="upper"&&e.toUpperCase()!==e?"value must be all uppercase":!0:"value must be a string";(0,io.registerComponent)("vuu-case",ao,"data-edit-validator",{});var lo=require("@vuu-ui/vuu-utils"),Cn=t=>typeof t=="string",vn="value does not match expected pattern",uo=(t,e)=>{if(typeof t.value!="string")throw Error("Pattern validation rule must provide pattern");if(Cn(e)){if(e==="")return!0;{let{message:o=vn}=t;return new RegExp(t.value).test(e)||o}}else return"value must be a string"};(0,lo.registerComponent)("vuu-pattern",uo,"data-edit-validator",{});var R=require("@vuu-ui/vuu-utils"),co=pe(require("clsx"),1),mo=require("react");var ve=require("@vuu-ui/vuu-utils"),st=require("react"),xn=[void 0,void 0,void 0,void 0];function po(t,e,o){var g;let n=(0,st.useRef)(),[s,r,a,l]=n.current||xn,{type:u}=o,m=(0,ve.isTypeDescriptor)(u)?(g=u.formatting)==null?void 0:g.decimals:void 0,d=t===s&&(0,ve.isValidNumber)(e)&&(0,ve.isValidNumber)(r)&&o===a?(0,ve.getMovingValueDirection)(e,l,r,m):"";return(0,st.useEffect)(()=>{n.current=[t,e,o,d]}),d}var it=require("react/jsx-runtime"),hn="\u2B06",bn="\u2B07",{KEY:yn}=R.metadataKeys,Ze="vuuBackgroundCell",Se={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},En=t=>(0,R.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Se.BackgroundOnly,go=(0,mo.memo)(function({column:e,columnMap:o,row:n}){let{name:s,type:r,valueFormatter:a}=e,l=o[s],u=n[l],m=En(r),d=po(n[yn],u,e),g=m===Se.ArrowOnly||m===Se.ArrowBackground?d===R.UP1||d===R.UP2?hn:d===R.DOWN1||d===R.DOWN2?bn:null:null,p=d?" "+d:"",i=(0,co.default)(Ze,p,{[`${Ze}-backgroundOnly`]:m===Se.BackgroundOnly,[`${Ze}-arrowOnly`]:m===Se.ArrowOnly,[`${Ze}-arrowBackground`]:m===Se.ArrowBackground});return(0,it.jsxs)("div",{className:i,tabIndex:-1,children:[(0,it.jsx)("div",{className:`${Ze}-arrow`,children:g}),a(n[l])]})},R.dataAndColumnUnchanged);(0,R.registerComponent)("vuu.price-move-background",go,"cell-renderer",{description:"Change background color of cell when value changes",configEditor:"BackgroundCellConfigurationEditor",label:"Background Flash",serverDataType:["long","int","double"]});var fo=require("@vuu-ui/vuu-ui-controls"),Co=require("@vuu-ui/vuu-utils"),at=require("@salt-ds/core"),lt=require("react");var Xe=require("react/jsx-runtime"),wn="vuuBackgroundCellConfiguration",Pt=[{label:"Background Only",value:"bg-only"},{label:"Background and Arrow",value:"arrow-bg"},{label:"Arrow Only",value:"arrow"}],[vo]=Pt,On=t=>{let{flashStyle:e}=t.type.renderer;return Pt.find(o=>o.value===e)||vo},xo=({column:t,onChangeRendering:e})=>{let[o,n]=(0,lt.useState)(On(t)),s=(0,lt.useCallback)((r,a)=>{var u;n(a);let l=t.type.renderer;e({...l,flashStyle:(u=a==null?void 0:a.value)!=null?u:vo.value})},[t.type,e]);return(0,Xe.jsxs)(at.FormField,{children:[(0,Xe.jsx)(at.FormFieldLabel,{children:"Flash Style"}),(0,Xe.jsx)(fo.Dropdown,{className:`${wn}-flashStyle`,onSelectionChange:s,selected:o,source:Pt,width:"100%"})]})};(0,Co.registerConfigurationEditor)("BackgroundCellConfigurationEditor",xo);var ut=require("@vuu-ui/vuu-data-react"),pt=require("@vuu-ui/vuu-ui-controls"),Te=require("@vuu-ui/vuu-utils"),me=require("react");var bo=require("react/jsx-runtime"),Sn="vuuTableDropdownCell",Tn=["Enter"," "],ho=(0,me.memo)(function({column:e,columnMap:o,onCommit:n=pt.WarnCommit,row:s}){let r=o[e.name],a=s[r],{values:l}=(0,ut.useLookupValues)(e,a),u=(0,me.useRef)(null);(0,me.useMemo)(()=>{u.current=(0,ut.getSelectedOption)(l,a)},[a,l]);let m=(0,me.useCallback)((d,g)=>{g&&n(g.value).then(p=>{p===!0&&d&&(0,Te.dispatchCustomEvent)(d.target,"vuu-commit")})},[n]);return(0,bo.jsx)(pt.Dropdown,{className:Sn,onSelectionChange:m,openKeys:Tn,selected:u.current,source:l,width:e.width-17})},Te.dataColumnAndKeyUnchanged);(0,Te.registerComponent)("dropdown-cell",ho,"cell-renderer",{userCanAssign:!1});var yo=require("@vuu-ui/vuu-data-react"),ct=require("@vuu-ui/vuu-utils"),Eo=require("react"),Oo=require("react/jsx-runtime"),wo=(0,Eo.memo)(function({column:e,columnMap:o,row:n}){let s=o[e.name],r=n[s],{initialValue:a}=(0,yo.useLookupValues)(e,r);return(0,Oo.jsx)("span",{children:a==null?void 0:a.label})},ct.dataAndColumnUnchanged);(0,ct.registerComponent)("lookup-cell",wo,"cell-renderer",{userCanAssign:!1});var So=require("@vuu-ui/vuu-utils"),Ft=pe(require("clsx"),1);var We=require("react/jsx-runtime"),Ue="vuuPctProgressCell",kn=t=>t>=0&&t<=1?t*100:t>2?0:t>1?100:0,To=({column:t,columnMap:e,row:o})=>{let n=o[e[t.name]],s=kn(n),r=(0,Ft.default)(Ue,{});return(0,We.jsxs)("div",{className:(0,Ft.default)(r,{[`${Ue}-zero`]:s===0,[`${Ue}-complete`]:s>=100}),tabIndex:-1,children:[(0,We.jsx)("span",{className:`${Ue}-progressBar`,style:{"--progress-bar-pct":`${s}%`}}),(0,We.jsx)("span",{className:`${Ue}-text`,children:`${s.toFixed(2)} %`})]})};(0,So.registerComponent)("vuu.pct-progress",To,"cell-renderer",{description:"Percentage formatter",label:"Percentage formatter",serverDataType:"double"});var se=require("@vuu-ui/vuu-utils"),ko=pe(require("clsx"),1);var xe=require("react/jsx-runtime"),Ye="vuuProgressCell",Pn=({column:t,columnMap:e,row:o})=>{let{name:n,type:s}=t,r=o[e[n]],a=!1,l=0;if((0,se.isTypeDescriptor)(s)&&(0,se.isColumnTypeRenderer)(s.renderer)){let{associatedField:m}=s.renderer;if(m){let d=o[e[m]];if((0,se.isValidNumber)(r)&&(0,se.isValidNumber)(d))l=Math.min(Math.round(r/d*100),100),l=Math.min(Math.round(r/d*100),100),a=isFinite(l);else{let g=parseFloat(r);if(Number.isFinite(g)){let p=parseFloat(d);Number.isFinite(p)&&(l=Math.min(Math.round(g/p*100),100),a=isFinite(l))}}}else throw Error("ProgressCell associatedField is required to render")}let u=(0,ko.default)(Ye,{});return(0,xe.jsxs)("div",{className:u,tabIndex:-1,children:[a?(0,xe.jsxs)("span",{className:`${Ye}-track`,children:[(0,xe.jsx)("span",{className:`${Ye}-bg`}),(0,xe.jsx)("span",{className:`${Ye}-bar`,style:{"--progress-bar-pct":`-${100-l}%`}})]}):null,(0,xe.jsx)("span",{className:`${Ye}-text`,children:`${l} %`})]})};(0,se.registerComponent)("vuu.progress",Pn,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"],userCanAssign:!1});var mt=require("@vuu-ui/vuu-ui-controls"),dt=require("@salt-ds/core"),Po=pe(require("clsx"),1),Bt=require("react"),Fo=require("@vuu-ui/vuu-utils");var H=require("react/jsx-runtime"),Y="vuuColumnList",Bo="vuuColumnListItem",Fn=({className:t,item:e,...o})=>(0,H.jsxs)(mt.ListItem,{...o,className:(0,Po.default)(t,Bo),"data-name":e==null?void 0:e.name,children:[(0,H.jsx)("span",{className:`${Y}-icon`,"data-icon":"draggable"}),e!=null&&e.isCalculated?(0,H.jsx)("span",{className:`${Y}-icon`,"data-icon":"function"}):(0,H.jsx)(dt.Switch,{className:`${Y}-switch`,checked:e==null?void 0:e.subscribed}),(0,H.jsx)("span",{className:`${Y}-text`,children:(0,Fo.getColumnLabel)(e)}),(0,H.jsx)(dt.Checkbox,{className:`${Y}-checkBox`,checked:(e==null?void 0:e.hidden)!==!0,disabled:(e==null?void 0:e.subscribed)!==!0})]}),Lt=({columnItems:t,onChange:e,onMoveListItem:o,onNavigateToColumn:n,...s})=>{let r=(0,Bt.useCallback)(l=>{let u=l.target,m=u.closest(`.${Bo}`),{dataset:{name:d}}=m;if(d){let g=u.closest(`.${Y}-switch`),p=u.closest(`.${Y}-checkBox`);g?e(d,"subscribed",u.checked):p&&e(d,"hidden",u.checked===!1)}},[e]),a=(0,Bt.useCallback)(l=>{let u=l.target;if(u.classList.contains("vuuColumnList-text")){let m=u.closest(".vuuListItem");m!=null&&m.dataset.name&&(n==null||n(m.dataset.name))}},[]);return(0,H.jsxs)("div",{...s,className:Y,children:[(0,H.jsx)("div",{className:`${Y}-header`,children:(0,H.jsx)("span",{children:"Column Selection"})}),(0,H.jsxs)("div",{className:`${Y}-colHeadings`,children:[(0,H.jsx)("span",{children:"Column subscription"}),(0,H.jsx)("span",{children:"Visibility"})]}),(0,H.jsx)(mt.List,{ListItem:Fn,allowDragDrop:!0,height:"auto",onChange:r,onClick:a,onMoveListItem:o,selectionStrategy:"none",source:t,itemHeight:33})]})};var ne=require("@vuu-ui/vuu-ui-controls"),Ae=require("@vuu-ui/vuu-utils"),w=require("@salt-ds/core"),nn=pe(require("clsx"),1);var Wo=require("@vuu-ui/vuu-ui-controls"),Me=require("@vuu-ui/vuu-utils"),j=require("@salt-ds/core"),je=require("react");var $o=require("react");var P=require("@vuu-ui/vuu-codemirror"),Wt=require("@vuu-ui/vuu-utils"),q=require("react");var I=require("@vuu-ui/vuu-codemirror");var Lo=require("@lezer/lr"),gt=Lo.LRParser.deserialize({version:14,states:"&xOVQPOOO!fQPO'#C^OVQPO'#CcQ!pQPOOO#bQPO'#CkO#gQPO'#CrOOQO'#Cy'#CyO#lQPO,58}OVQPO,59QOVQPO,59QOOQO'#Cn'#CnOVQPO,59XOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO$bQPO1G.lO%ZQPO1G.sO!pQPO'#CmO%qQQO1G.qO%|QQO'#C{OOQO'#C{'#C{O&wQPO,59`OVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO'RQPO1G.zOOQO1G.z1G.zO'ZQQO'#C^O'eQQO1G.sO'{QQO1G.uOOQO1G.v1G.vO(WQPO<<GwO(_QPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(iQQO1G.lO(yQPOG22}OOQOLD(iLD(iO)QQPO,59QO)QQPO,59QO)QQPO,59X",stateData:")n~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXpQXqQXrQXsQXtQXuQXeQX~OjQXXQX~PnOZWO[WO]XO^XOpYOqYOrYOsYOtYOuYO~OW[O~OW]O~OX_O~P!pO]Yi^YipYiqYirYisYitYiuYieYi~OZWO[WOjYiXYi~P#sOpaiqairaisaitaiuaieai~OZWO[WO]XO^XOjaiXai~P$rOejOvhOwiO~OZmX[mX]mX^mXeoXpmXqmXrmXsmXtmXumXvoXwoX~OXmOekO~P!pOXuOekO~OvQXwQX~PnOZzO[zO]{O^{Ovaiwai~P$rOwiOecivci~OevO~P!pOXiaeia~P!pOZzO[zOvYiwYi~P#sOXyO~P!pORUOSUOTUOUUOWQO`SOnnO~O`UTn~",goto:"$epPPqPPPPqPPqPPPPqP!S!g!r!rPq!w#Y#]PPP#cP$[oUOQWXZ[]hijkvz{|hUOQWXZ]jkvz{|Ve[hi[ZRVgrsxR|cVf[hioTOQWXZ[]hijkvz{|R^TQlgRtlQROQVQS`WzQaXQbZUc[hiQg]Qo|QrjQskQw{RxvQd[QphRqi",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:393});var Bn=I.LRLanguage.define({name:"VuuColumnExpression",parser:gt.configure({props:[(0,I.styleTags)({Column:I.tags.attributeValue,Function:I.tags.variableName,String:I.tags.string,Or:I.tags.emphasis,Operator:I.tags.operator})]})}),Dt=()=>new I.LanguageSupport(Bn);var Rt=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},Nt=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},qe,be,Ht=class{constructor(e="unknown"){U(this,qe,[{type:"unknown"},{type:"unknown"}]);U(this,be,void 0);this.type="arithmeticExpression";ce(this,be,e)}get op(){return f(this,be)}set op(e){ce(this,be,e)}get expressions(){return f(this,qe)}toJSON(){return{type:this.type,op:f(this,be),expressions:f(this,qe)}}};qe=new WeakMap,be=new WeakMap;var Be,Vt=class{constructor(e){U(this,Be,[]);this.type="callExpression";this.functionName=e}get expressions(){return f(this,Be)}get arguments(){return f(this,Be)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:f(this,Be).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Be=new WeakMap;var _e,Le,Pe=class{constructor(){U(this,_e,[{type:"unknown"},{type:"unknown"}]);U(this,Le,"unknown");this.type="relationalExpression"}get op(){return f(this,Le)}set op(e){ce(this,Le,e)}get expressions(){return f(this,_e)}toJSON(){return{type:this.type,op:f(this,Le),expressions:f(this,_e)}}};_e=new WeakMap,Le=new WeakMap;var Je,De,Fe=class{constructor(e){U(this,Je,[{type:"unknown"},{type:"unknown"}]);U(this,De,void 0);this.type="booleanCondition";ce(this,De,e)}get op(){return f(this,De)}get expressions(){return f(this,Je)}toJSON(){return{type:this.type,op:f(this,De),expressions:f(this,Je).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Je=new WeakMap,De=new WeakMap;var G,Ge=class{constructor(e){U(this,G,void 0);this.type="conditionalExpression";ce(this,G,[e?new Fe(e):new Pe,{type:"unknown"},{type:"unknown"}])}get expressions(){return f(this,G)}get condition(){return f(this,G)[0]}get truthyExpression(){return f(this,G)[1]}set truthyExpression(e){f(this,G)[1]=e}get falsyExpression(){return f(this,G)[2]}set falsyExpression(e){f(this,G)[2]=e}toJSON(){var e,o,n,s,r;return{type:this.type,condition:(o=(e=this.condition).toJSON)==null?void 0:o.call(e),truthyExpression:this.truthyExpression,falsyExpression:(r=(s=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:s.call(n))!=null?r:this.falsyExpression}}};G=new WeakMap;var he=t=>t.type==="unknown",ft=t=>t.type==="arithmeticExpression",Ln=t=>t.type==="callExpression",ke=t=>t.type==="conditionalExpression",Dn=t=>t.type==="relationalExpression"||t.type==="booleanCondition";var Rn=t=>t.type==="booleanCondition",Qt=t=>(t==null?void 0:t.type)==="relationalExpression";var $=t=>{if(he(t))return t;if(Qt(t)){let[e,o]=t.expressions;if(N(e))return $(e);if(t.op==="unknown")return t;if(N(o))return $(o)}else if(Dn(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return $(o)}else if(ke(t)){let{condition:e,truthyExpression:o,falsyExpression:n}=t;if(N(e))return $(e);if(N(o))return $(o);if(N(n))return $(n)}else if(ft(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return $(o)}},Ct=(t,e,o)=>{let{expressions:n=[]}=t;if(n.includes(e)){let s=n.indexOf(e);return n.splice(s,1,o),!0}else for(let s of n)if(Ct(s,e,o))return!0;return!1},N=t=>he(t)?!0:ke(t)?N(t.condition)||N(t.truthyExpression)||N(t.falsyExpression):Qt(t)||Rn(t)?t.op===void 0||t.expressions.some(e=>N(e)):!1,Do=(t,e)=>{let o=$(t);o?o.expressions?o.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},y,ye,Mt=class{constructor(){U(this,y,void 0);U(this,ye,[])}setCondition(e){if(f(this,y)===void 0)this.addExpression(new Ge(e));else if(ke(f(this,y))){if(N(f(this,y).condition)){let o=e?new Fe(e):new Pe;this.addExpression(o)}else if(he(f(this,y).truthyExpression))f(this,y).truthyExpression=new Ge(e);else if(N(f(this,y).truthyExpression)){let o=e?new Fe(e):new Pe;this.addExpression(o)}else if(he(f(this,y).falsyExpression))f(this,y).falsyExpression=new Ge(e);else if(N(f(this,y).falsyExpression)){let o=e?new Fe(e):new Pe;this.addExpression(o)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(f(this,ye).length>0){let o=f(this,ye).at(-1);o==null||o.arguments.push(e)}else if(f(this,y)===void 0)ce(this,y,e);else if(ft(f(this,y))){let o=$(f(this,y));o&&he(o)&&Ct(f(this,y),o,e)}else if(ke(f(this,y))&&N(f(this,y))){let o=$(f(this,y));o&&he(o)?Ct(f(this,y),o,e):o&&Do(o,e)}}setFunction(e){let o=new Vt(e);this.addExpression(o),f(this,ye).push(o)}setColumn(e){this.addExpression(new Nt(e))}setArithmeticOp(e){let o=e,n=f(this,y);ft(n)&&(n.op=o)}setRelationalOperator(e){let o=e;if(f(this,y)&&ke(f(this,y))){let n=$(f(this,y));Qt(n)?n.op=o:console.error(`no target expression found (op = ${e})`)}}setValue(e){let o=new Rt(e);if(f(this,y)===void 0)ce(this,y,o);else if(ft(f(this,y)))this.addExpression(o);else if(Ln(f(this,y)))f(this,y).arguments.push(o);else if(ke(f(this,y)))if(N(f(this,y))){let n=$(f(this,y));n&&he(n)?Ct(f(this,y),n,o):n&&Do(n,o)}else console.log("what do we do with value, in a complete expression")}closeBrace(){f(this,ye).pop()}get expression(){return f(this,y)}toJSON(){var e;return(e=f(this,y))==null?void 0:e.toJSON()}};y=new WeakMap,ye=new WeakMap;var It=(t,e)=>{let o=new Mt,n=t.cursor();do{let{name:s,from:r,to:a}=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 Ht);break;case"Column":{let l=e.substring(r,a);o.setColumn(l)}break;case"Function":{let l=e.substring(r,a);o.setFunction(l)}break;case"Times":case"Divide":case"Plus":case"Minus":{let l=e.substring(r,a);o.setArithmeticOp(l)}break;case"RelationalOperator":{let l=e.substring(r,a);o.setRelationalOperator(l)}break;case"False":case"True":{let l=e.substring(r,a);o.setValue(l==="true")}break;case"String":o.setValue(e.substring(r+1,a-1));break;case"Number":o.setValue(parseFloat(e.substring(r,a)));break;case"CloseBrace":o.closeBrace();break;default:}}while(n.next());return o.toJSON()};var Nn=gt.configure({strict:!0}),Ro=["Number","String"],vt=[...Ro,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],$t=t=>{try{return Nn.parse(t),!0}catch{return!1}},xt=t=>{let{lastChild:e}=t;for(;e&&!vt.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},At=t=>{if((t==null?void 0:t.name)==="RelationalExpression"){let{firstChild:e}=t,o=xt(t);if((e==null?void 0:e.name)==="Column"&&typeof(o==null?void 0:o.name)=="string"&&Ro.includes(o.name))return!0}return!1};var de=require("@vuu-ui/vuu-codemirror"),Hn=de.HighlightStyle.define([{tag:de.tags.attributeValue,color:"var(--vuuFilterEditor-variableColor);font-weight: bold"},{tag:de.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:de.tags.comment,color:"green",fontStyle:"italic"}]),No=(0,de.syntaxHighlighting)(Hn);var Ho=require("@vuu-ui/vuu-codemirror"),Vo=Ho.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-completionLabel":{color:"var(--vuu-color-gray-50)"},".cm-completionMatchedText":{color:"var(--vuu-color-gray-80)",fontWeight:700,textDecoration:"none"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",borderRadius:"4px",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 F=require("@vuu-ui/vuu-codemirror"),Xt=require("react");var Vn=(t,e)=>e?t.map(o=>{var n;return{...o,apply:typeof o.apply=="function"?o.apply:`${e}${(n=o.apply)!=null?n:o.label}`}}):t,Mn=t=>t===void 0?!1:["Times","Divide","Plus","Minus"].includes(t.name),Ke=t=>({apply:()=>{t==null||t()},label:"Done",boost:10}),Re=(t,e)=>{var s;let{lastChild:o}=t,{pos:n}=e;for(;o;)if(o.from<n&&vt.includes(o.name)){if(o.name==="ParenthesizedExpression"){let a=(s=o.firstChild)==null?void 0:s.nextSibling;a&&(o=a)}return o}else o=o.prevSibling},Mo=(t,e)=>{var o;if(t.name==="ArgList"){let n=t.prevSibling;if(n)return(0,F.getValue)(n,e)}else if(t.name==="OpenBrace"){let n=(o=t.parent)==null?void 0:o.prevSibling;if((n==null?void 0:n.name)==="Function")return(0,F.getValue)(n,e)}},Qo=(t,e)=>{if(t.name==="RelationalExpression"){let o=xt(t);if((o==null?void 0:o.name)==="RelationalOperator")return(0,F.getValue)(o,e)}else{let o=t.prevSibling;if((o==null?void 0:o.name)==="RelationalOperator")return(0,F.getValue)(o,e)}},Ut=(t,e)=>{var o;if(t.name==="RelationalExpression"){if(((o=t.firstChild)==null?void 0:o.name)==="Column")return(0,F.getValue)(t.firstChild,e)}else{let n=t.prevSibling;if((n==null?void 0:n.name)==="Column")return(0,F.getValue)(n,e);if((n==null?void 0:n.name)==="RelationalOperator")return Ut(n,e)}},zt=async(t,e,o,n={})=>{let s=await e.getSuggestions(o,n),{startsWith:r=""}=n;return{from:t.pos-r.length,options:s}},Zt=(t,e,o,n,s)=>{let r=Re(t,e);switch(r==null?void 0:r.name){case"If":return zt(e,o,"expression",{prefix:"( "});case"OpenBrace":return zt(e,o,"expression");case"Condition":return zt(e,o,"expression",{prefix:", "});case"CloseBrace":if(n){let a=[Ke(s)];return{from:e.pos,options:a}}}},Qn=(t,e)=>{let o=[Ke(e)];return{from:t.pos,options:o}},Io=(t,e)=>{let o=(0,Xt.useCallback)(async(n,s,r={})=>{let a=await t.getSuggestions(s,r),{startsWith:l=""}=r;return{from:n.pos-l.length,options:a}},[t]);return(0,Xt.useCallback)(async n=>{var g,p;let{state:s,pos:r}=n,a=(g=n.matchBefore(/\w*/))!=null?g:{from:0,to:0,text:void 0},u=(0,F.syntaxTree)(s).resolveInner(r,-1),m=s.doc.toString(),d=$t(m);switch(u.name){case"If":return o(n,"expression",{prefix:"( "});case"Condition":{let i=Re(u,n);if((i==null?void 0:i.name)==="Column"){let c=(0,F.getPreviousNode)(i);if((c==null?void 0:c.name)!=="RelationalOperator")return o(n,"condition-operator",{columnName:(0,F.getValue)(i,s)})}else if((i==null?void 0:i.name)==="RelationalOperator")return o(n,"expression")}break;case"ConditionalExpression":return Zt(u,n,t);case"RelationalExpression":{if(At(u))return{from:n.pos,options:F.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let i=Qo(u,s),c=Ut(u,s);if(i)return o(n,"expression");{let C=await t.getSuggestions("condition-operator",{columnName:c});return{from:n.pos,options:C}}}}break;case"RelationalOperator":return o(n,"expression");case"String":{let i=Qo(u,s),c=Ut(u,s),{from:C,to:v}=u;if(v-C===2&&n.pos===C+1){if(c&&i)return o(n,"columnValue",{columnName:c,operator:i,startsWith:a.text})}else if(v-C>2&&n.pos===v)return o(n,"expression",{prefix:", "})}break;case"ArithmeticExpression":{let i=Re(u,n);if((i==null?void 0:i.name)==="Column")return o(n,"expression");if(Mn(i)){let c=i.name;return o(n,"column",{operator:c})}}break;case"OpenBrace":{let i=Mo(u,s);return o(n,"expression",{functionName:i})}break;case"ArgList":{let i=Mo(u,s),c=Re(u,n),C=(c==null?void 0:c.name)==="OpenBrace"||(c==null?void 0:c.name)==="Comma"?void 0:",",v=await t.getSuggestions("expression",{functionName:i});return v=C?Vn(v,", "):v,(c==null?void 0:c.name)!=="OpenBrace"&&(c==null?void 0:c.name)!=="Comma"&&(v=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(v)),{from:n.pos,options:v}}case"Equal":if(m.trim()==="=")return o(n,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(n.pos===0)return o(n,"expression");{let i=Re(u,n);if((i==null?void 0:i.name)==="Column"){if(d){let c=[Ke(e.current)],C=(0,F.getValue)(i,s),v=await t.getSuggestions("operator",{columnName:C});return{from:n.pos,options:c.concat(v)}}}else if((i==null?void 0:i.name)==="CallExpression"){if(d)return{from:n.pos,options:[Ke(e.current)]}}else if((i==null?void 0:i.name)==="ArithmeticExpression"){if(d){let c=[Ke(e.current)],C=Re(i,n);if((C==null?void 0:C.name)==="Column"){let v=(0,F.getValue)(C,s),x=await t.getSuggestions("operator",{columnName:v});c=c.concat(x)}return{from:n.pos,options:c}}}else if((i==null?void 0:i.name)==="ConditionalExpression")return Zt(i,n,t,d,e.current);break}case"Column":if(await t.isPartialMatch("expression",void 0,a.text))return o(n,"expression",{startsWith:a.text});break;case"Comma":{let i=(0,F.getNamedParentNode)(u);if((i==null?void 0:i.name)==="ConditionalExpression")return o(n,"expression")}break;case"CloseBrace":{let i=(0,F.getNamedParentNode)(u);if((i==null?void 0:i.name)==="ConditionalExpression")return Zt(i,n,t,d,e.current);if((i==null?void 0:i.name)==="ArgList"&&d)return Qn(n,e.current)}break;default:((p=u==null?void 0:u.prevSibling)==null?void 0:p.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[o,e,t])};var ht=t=>{if(t.current==null)throw Error("EditorView not defined");return t.current},In=()=>"vuuSuggestion",$n=()=>console.log("noooop"),An=t=>"expressionType"in t,zn=t=>{if(An(t)){let e=(0,Wt.createEl)("div","expression-type-container"),o=(0,Wt.createEl)("span","expression-type",t.expressionType);return e.appendChild(o),e}else return null},Yt=({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n})=>{let s=(0,q.useRef)(null),r=(0,q.useRef)($n),a=(0,q.useRef)(),l=Io(n,r),[u,m,d]=(0,q.useMemo)(()=>{let p=()=>{let x=ht(a),h=x.state.doc.toString(),T=(0,P.ensureSyntaxTree)(x.state,x.state.doc.length,5e3);if(T){let D=It(T,h);return[h,D]}else return["",void 0]},i=()=>{ht(a).setState(v())},c=()=>{let[x,h]=p();e==null||e(x,h)},C=x=>P.keymap.of([{key:x,run(){return(0,P.startCompletion)(ht(a)),!0}}]),v=()=>P.EditorState.create({doc:o,extensions:[P.minimalSetup,(0,P.autocompletion)({addToOptions:[{render:zn,position:70}],override:[l],optionClass:In}),Dt(),P.keymap.of(P.defaultKeymap),C("ArrowDown"),P.EditorView.updateListener.of(x=>{let h=ht(a);if(x.docChanged){(0,P.startCompletion)(h);let T=h.state.doc.toString();t==null||t(T)}}),P.EditorState.transactionFilter.of(x=>x.newDoc.lines>1?[]:x),Vo,No]});return r.current=()=>{c()},[v,i,c]},[l,t,e,o]);(0,q.useEffect)(()=>{if(!s.current)throw Error("editor not in dom");return a.current=new P.EditorView({state:u(),parent:s.current}),()=>{var p;(p=a.current)==null||p.destroy()}},[l,u]);let g=(0,q.useCallback)(()=>{d()},[d]);return{editorRef:s,clearInput:m,onBlur:g}};var Ao=require("react/jsx-runtime"),Zn="vuuColumnExpressionInput",bt=(0,$o.memo)(({onChange:t,onSubmitExpression:e,source:o="",suggestionProvider:n})=>{let{editorRef:s,onBlur:r}=Yt({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n});return(0,Ao.jsx)("div",{className:`${Zn}`,onBlur:r,ref:s})},(t,e)=>t.source===e.source);bt.displayName="ColumnExpressionInput";var J=require("@vuu-ui/vuu-codemirror"),yt=require("@vuu-ui/vuu-data-react"),Ve=require("@vuu-ui/vuu-utils"),He=require("react");var Ne=[{accepts:["boolean"],description:"Applies boolean and operator across supplied parameters to returns a single boolean result",example:{expression:'and(ccy="EUR",quantity=0)',result:"true | false"},name:"and",params:{description:"( boolean, [ boolean* ] )"},type:"boolean"},{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:["boolean"],description:"Applies boolean or operator across supplied parameters to returns a single boolean result",example:{expression:'or(status="cancelled",quantity=0)',result:"true | false"},name:"or",params:{description:"( boolean, [ boolean* ] )"},type:"boolean"},{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 _=require("@vuu-ui/vuu-utils"),zo=({name:t,description:e,example:o,params:n,type:s})=>{let r=(0,_.createEl)("div","vuuFunctionDoc"),a=(0,_.createEl)("div","function-heading"),l=(0,_.createEl)("span","function-name",t),u=(0,_.createEl)("span","param-list",n.description),m=(0,_.createEl)("span","function-type",s);a.appendChild(l),a.appendChild(u),a.appendChild(m);let d=(0,_.createEl)("p",void 0,e);if(r.appendChild(a),r.appendChild(d),o){let g=(0,_.createEl)("div","example-container"),p=(0,_.createEl)("div","example-expression",o.expression),i=(0,_.createEl)("div","example-result",o.result);g.appendChild(p),r.appendChild(g),r.appendChild(i)}return r};var Xn=[],Ee=t=>t.map(e=>{var o;return{...e,apply:((o=e.apply)!=null?o:e.label)+" "}}),Un=(t,{functionName:e,operator:o})=>{if(o)return t.filter(Ve.isNumericColumn);if(e){let n=Ne.find(s=>s.name===e);if(n)switch(n.accepts){case"string":return t.filter(Ve.isTextColumn);case"number":return t.filter(Ve.isNumericColumn);default:return t}}return t},Zo=(t,e)=>Un(t,e).map(n=>{var r;let s=(r=n.label)!=null?r:n.name;return{apply:e.prefix?`${e.prefix}${n.name}`:n.name,label:s,boost:5,type:"column",expressionType:n.serverDataType}}),Wn=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Yn=t=>t===void 0||(0,Ve.isNumericColumn)(t)?Wn:Xn,Gn=t=>{switch(t.serverDataType){case"string":case"char":return Ee(J.stringOperators);case"int":case"long":case"double":return Ee(J.numericOperators)}},Gt=t=>({apply:`${t.name}( `,boost:2,expressionType:t.type,info:()=>zo(t),label:t.name,type:"function"}),qn=t=>{if(t){if(typeof t.accepts=="string")return t.accepts;if(Array.isArray(t.accepts))return t.accepts.every(e=>e==="string")?"string":"any"}return"any"},_n=Ne.map(Gt),Jn=({functionName:t})=>{if(t){let e=Ne.find(n=>n.name===t),o=qn(e);if(e)switch(o){case"string":return Ne.filter(n=>n.type==="string"||n.type==="variable").map(Gt);case"number":return Ne.filter(n=>n.type==="number"||n.type==="variable").map(Gt);default:}}return _n},Kn={},qt=({columns:t,table:e})=>{let o=(0,He.useCallback)(l=>l?t.find(u=>u.name===l):void 0,[t]),n=(0,He.useRef)(),s=(0,yt.useTypeaheadSuggestions)(),r=(0,He.useCallback)(async(l,u=Kn)=>{let{columnName:m,functionName:d,operator:g,prefix:p}=u;switch(l){case"expression":{let i=await Ee(Zo(t,{functionName:d,prefix:p})).concat(Jn(u));return n.current=i}case"column":{let i=await Zo(t,u);return n.current=Ee(i)}case"operator":{let i=await Yn(o(m));return n.current=Ee(i)}case"relational-operator":{let i=await(0,J.getRelationalOperators)(o(m));return n.current=Ee(i)}case"condition-operator":{let i=o(m);if(i){let c=await Gn(i);if(c)return n.current=Ee(c)}}break;case"columnValue":if(m&&g){let i=(0,yt.getTypeaheadParams)(e,m),c=await s(i);return n.current=(0,J.toSuggestions)(c,{suffix:""}),n.current.forEach(C=>{C.apply=(v,x,h)=>{let T=new J.AnnotationType,D=h+x.label.length+1;v.dispatch({changes:{from:h,insert:x.label},selection:{anchor:D,head:D},annotations:T.of(x)})}}),n.current}break}return[]},[t,o,s,e]),a=(0,He.useCallback)(async(l,u,m)=>{let{current:d}=n,g=!1,p=d||await r(l,{columnName:u});if(m&&p)for(let i of p){if(i.label===m)return!1;i.label.startsWith(m)&&(g=!0)}return g},[r]);return{getSuggestions:r,isPartialMatch:a}};var K=require("@vuu-ui/vuu-utils"),ie=require("react"),jn=t=>{let[e,o,n]=(0,K.getCalculatedColumnDetails)(t);return n===""?{...t,name:`${e}:string:${o}`}:t},Xo=({column:t,onChangeName:e,onChangeServerDataType:o})=>{let[n,s]=(0,ie.useState)(jn(t)),r=(0,ie.useRef)(t),a=(0,ie.useCallback)(d=>{r.current=d,s(d)},[]),l=(0,ie.useCallback)(d=>{let{value:g}=d.target,p=(0,K.setCalculatedColumnName)(n,g);a(p),e==null||e(p.name)},[n,e,a]),u=(0,ie.useCallback)(d=>{let g=d.trim(),{current:p}=r,i=(0,K.setCalculatedColumnExpression)(p,g);a(i),e==null||e(i.name)},[e,a]),m=(0,ie.useCallback)((d,g)=>{if((0,K.isVuuColumnDataType)(g)){let p=(0,K.setCalculatedColumnType)(n,g);a(p),e==null||e(p.name),o==null||o(g)}},[n,e,o,a]);return{column:n,onChangeExpression:u,onChangeName:l,onChangeServerDataType:m}};var V=require("react/jsx-runtime"),Uo="vuuColumnExpressionPanel",_t=({column:t,onChangeName:e,onChangeServerDataType:o,tableConfig:n,vuuTable:s})=>{let r=(0,je.useRef)(null),{column:a,onChangeExpression:l,onChangeName:u,onChangeServerDataType:m}=Xo({column:t,onChangeName:e,onChangeServerDataType:o}),d=(0,je.useRef)((0,Me.getCalculatedColumnExpression)(a)),g=qt({columns:n.columns,table:s}),p=(0,je.useCallback)(()=>{var i,c;r.current&&((c=(i=r.current)==null?void 0:i.querySelector("button"))==null||c.focus())},[]);return(0,V.jsxs)("div",{className:Uo,children:[(0,V.jsx)("div",{className:"vuuColumnSettingsPanel-header",children:(0,V.jsx)("span",{children:"Calculation"})}),(0,V.jsxs)(j.FormField,{"data-field":"column-name",children:[(0,V.jsx)(j.FormFieldLabel,{children:"Column Name"}),(0,V.jsx)(j.Input,{className:"vuuInput",onChange:u,value:(0,Me.getCalculatedColumnName)(a)})]}),(0,V.jsxs)(j.FormField,{"data-field":"column-expression",children:[(0,V.jsx)(j.FormFieldLabel,{children:"Expression"}),(0,V.jsx)(bt,{onChange:l,onSubmitExpression:p,source:d.current,suggestionProvider:g})]}),(0,V.jsxs)(j.FormField,{"data-field":"type",children:[(0,V.jsx)(j.FormFieldLabel,{children:"Column type"}),(0,V.jsx)(Wo.Dropdown,{className:`${Uo}-type`,onSelectionChange:m,ref:r,selected:(0,Me.getCalculatedColumnType)(a)||null,source:["double","long","string","boolean"],width:"100%"})]})]})};var Jo=require("@vuu-ui/vuu-ui-controls"),te=require("@vuu-ui/vuu-utils"),wt=require("@salt-ds/core"),jt=pe(require("clsx"),1),Qe=require("react");var M=require("@salt-ds/core"),Yo=require("@vuu-ui/vuu-utils"),we=require("react"),A=require("react/jsx-runtime"),er="vuuFormattingSettings",et=({column:t,onChangeFormatting:e})=>{var u,m,d;let[o,n]=(0,we.useState)((0,Yo.getTypeFormattingFromColumn)(t)),s=(0,we.useCallback)(g=>{(g.key==="Enter"||g.key==="Tab")&&e(o)},[o,e]),r=(0,we.useCallback)(g=>{let{value:p}=g.target,i=p===""||isNaN(parseInt(p))?void 0:parseInt(p),c={...o,decimals:i};n(c)},[o]),a=(0,we.useCallback)(g=>{let{checked:p}=g.target,i={...o,alignOnDecimals:p};n(i),e(i)},[o,e]),l=(0,we.useCallback)(g=>{let{checked:p}=g.target,i={...o,zeroPad:p};n(i),e(i)},[o,e]);return(0,A.jsxs)("div",{className:er,children:[(0,A.jsxs)(M.FormField,{"data-field":"decimals",children:[(0,A.jsx)(M.FormFieldLabel,{children:"Number of decimals"}),(0,A.jsx)(M.Input,{className:"vuuInput",onChange:r,onKeyDown:s,value:(u=o.decimals)!=null?u:""})]}),(0,A.jsxs)(M.FormField,{labelPlacement:"left",children:[(0,A.jsx)(M.FormFieldLabel,{children:"Align on decimals"}),(0,A.jsx)(M.Switch,{checked:(m=o.alignOnDecimals)!=null?m:!1,onChange:a,value:"align-decimals"})]}),(0,A.jsxs)(M.FormField,{labelPlacement:"left",children:[(0,A.jsx)(M.FormFieldLabel,{children:"Zero pad decimals"}),(0,A.jsx)(M.Switch,{checked:(d=o.zeroPad)!=null?d:!1,onChange:l,value:"zero-pad"})]})]})};var qo=require("react"),fe=require("@salt-ds/core"),Et=require("@vuu-ui/vuu-utils");var ge=require("react"),Go=require("@vuu-ui/vuu-ui-controls"),ae=require("@vuu-ui/vuu-utils"),ee=require("@salt-ds/core"),z=require("react/jsx-runtime"),Jt=({column:t,onChangeFormatting:e})=>{var d,g;let o=(0,ae.getTypeFormattingFromColumn)(t),{pattern:n=ae.fallbackDateTimePattern}=o,s=(0,ge.useMemo)(()=>nr(n),[n]),[r,a]=(0,ge.useState)({time:(d=n.time)!=null?d:ae.defaultPatternsByType.time,date:(g=n.date)!=null?g:ae.defaultPatternsByType.date}),l=(0,ge.useCallback)(p=>e({...o,pattern:p}),[e,o]),u=(0,ge.useCallback)(p=>(i,c)=>{let C={...n!=null?n:{},[p]:c};a(v=>{var x,h;return{time:(x=C.time)!=null?x:v.time,date:(h=C.date)!=null?h:v.date}}),l(C)},[l,n]),m=(0,ge.useCallback)(p=>{var c,C,v,x;let i=p.currentTarget.value;switch(i){case"time":return l({[i]:(c=n[i])!=null?c:r[i]});case"date":return l({[i]:(C=n[i])!=null?C:r[i]});case"both":return l({time:(v=n.time)!=null?v:r.time,date:(x=n.date)!=null?x:r.date})}},[l,n,r]);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsxs)(ee.FormField,{labelPlacement:"top",children:[(0,z.jsx)(ee.FormFieldLabel,{children:"Display"}),(0,z.jsx)(ee.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:m,value:s,"data-variant":"primary",children:or.map(p=>(0,z.jsx)(ee.ToggleButton,{value:p,children:p.toUpperCase()},p))})]}),["date","time"].filter(p=>!!n[p]).map(p=>(0,z.jsxs)(ee.FormField,{labelPlacement:"top",children:[(0,z.jsx)(ee.FormFieldLabel,{children:`${tr[p]} pattern`}),(0,z.jsx)(Go.Dropdown,{onSelectionChange:u(p),selected:n[p],source:ae.supportedDateTimePatterns[p],width:"100%"})]},p))]})},tr={date:"Date",time:"Time"},or=["date","time","both"];function nr(t){return t.time?t.date?"both":"time":"date"}var le=require("react/jsx-runtime"),rr="vuuLongColumnFormattingSettings",_o=t=>{let{column:e,onChangeColumnType:o}=t,n=(0,Et.isTypeDescriptor)(e.type)?e.type.name:e.type,s=(0,qo.useCallback)(r=>{let a=r.currentTarget.value;o(a)},[o]);return(0,le.jsxs)("div",{className:rr,children:[(0,le.jsxs)(fe.FormField,{children:[(0,le.jsx)(fe.FormFieldLabel,{children:"Type inferred as"}),(0,le.jsx)(fe.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:s,value:n!=null?n:"number",children:sr.map(r=>(0,le.jsx)(fe.ToggleButton,{value:r,children:r.toUpperCase()},r))})]}),(0,Et.isDateTimeColumn)(e)?(0,le.jsx)(Jt,{...t,column:e}):(0,le.jsx)(et,{...t})]})},sr=["number","date/time"];var W=require("react/jsx-runtime"),Kt="vuuColumnFormattingPanel",ir=t=>{var e;return(e=t.label)!=null?e:t.name},eo=({availableRenderers:t,className:e,column:o,onChangeFormatting:n,onChangeColumnType:s,onChangeRendering:r,...a})=>{let l=(0,Qe.useMemo)(()=>ar({column:o,onChangeFormatting:n,onChangeColumnType:s}),[o,s,n]);console.log({formattingSettingsComponent:l});let u=(0,Qe.useMemo)(()=>{let{type:p}=o;if((0,te.isTypeDescriptor)(p)&&(0,te.isColumnTypeRenderer)(p.renderer)){let i=(0,te.getCellRendererOptions)(p.renderer.name);return(0,te.getConfigurationEditor)(i==null?void 0:i.configEditor)}},[o]),m=(0,Qe.useMemo)(()=>{let{type:p}=o,[i]=t,c=(0,te.isTypeDescriptor)(p)&&(0,te.isColumnTypeRenderer)(p.renderer)?p.renderer.name:void 0,C=t.find(v=>v.name===c);return C!=null?C:i},[t,o]),d=(0,Qe.useCallback)((p,i)=>{let c={name:i.name};r==null||r(c)},[r]),{serverDataType:g="string"}=o;return(0,W.jsxs)("div",{...a,className:"vuuColumnSettingsPanel-header",children:[(0,W.jsx)("div",{children:"Formatting"}),(0,W.jsxs)(wt.FormField,{children:[(0,W.jsx)(wt.FormFieldLabel,{children:`Renderer (data type ${o.serverDataType})`}),(0,W.jsx)(Jo.Dropdown,{className:(0,jt.default)(`${Kt}-renderer`),itemToString:ir,onSelectionChange:d,selected:m,source:t,width:"100%"})]}),(0,W.jsxs)("div",{className:(0,jt.default)(Kt,e,`${Kt}-${g}`),children:[l,u?(0,W.jsx)(u,{column:o,onChangeRendering:r}):null]})]})};function ar(t){let{column:e}=t;switch(e.serverDataType){case"double":case"int":return(0,W.jsx)(et,{...t});case"long":return(0,W.jsx)(_o,{...t});default:return null}}var Ko=pe(require("clsx"),1),Ot=require("@vuu-ui/vuu-utils");var oe=require("react/jsx-runtime"),Ie="vuuColumnNameLabel",jo=({column:t,onClick:e})=>{if((0,Ot.isCalculatedColumn)(t.name)){let[o,n,s]=(0,Ot.getCalculatedColumnDetails)(t),r=o||"name",a="=expression",l=r==="name"?`${Ie}-placeholder`:void 0,u=s===""?`${Ie}-placeholder`:void 0;return(0,oe.jsxs)("div",{className:(0,Ko.default)(Ie,`${Ie}-calculated`),onClick:e,children:[(0,oe.jsx)("span",{className:l,children:r}),(0,oe.jsx)("span",{children:":"}),(0,oe.jsx)("span",{children:n||"string"}),(0,oe.jsx)("span",{children:":"}),(0,oe.jsx)("span",{className:u,children:a}),(0,oe.jsx)("span",{className:`${Ie}-edit`,"data-icon":"edit"})]})}else return(0,oe.jsx)("div",{className:Ie,children:t.name})};var B=require("@vuu-ui/vuu-utils"),S=require("react"),lr=[{description:"Default formatter for columns with data type integer",label:"Default Renderer (int, long)",name:"default-int"}],ur=[{description:"Default formatter for columns with data type double",label:"Default Renderer (double)",name:"default-double"}],en=[{description:"Default formatter for columns with data type string",label:"Default Renderer (string)",name:"default-string"}],pr=[],cr=t=>{switch(t.serverDataType){case"char":case"string":return en.concat((0,B.getRegisteredCellRenderers)("string"));case"int":case"long":return lr.concat((0,B.getRegisteredCellRenderers)("int"));case"double":return ur.concat((0,B.getRegisteredCellRenderers)("double"));case"boolean":return pr.concat((0,B.getRegisteredCellRenderers)("boolean"));default:return en}},tn=t=>{let e=t.closest(".saltFormField");if(e&&e.dataset.field){let{dataset:{field:o}}=e;return o}else throw Error("named form field not found")},mr=(t,e)=>{if(e.name==="::")return e;{let o=t.find(n=>n.name===e.name);if(o)return o;throw Error(`columns does not contain column ${name}`)}},$e=(t,e)=>({...t,columns:t.columns.map(o=>o.name===e.name?e:o)}),on=({column:t,onCancelCreateColumn:e,onConfigChange:o,onCreateCalculatedColumn:n,tableConfig:s})=>{let[r,a]=(0,S.useState)(mr(s.columns,t)),l=(0,S.useRef)(r),[u,m]=(0,S.useState)(r.name==="::"),d=(0,S.useCallback)(()=>{l.current=r,m(!0)},[r]);(0,S.useEffect)(()=>{a(t),m(t.name==="::")},[t]);let g=(0,S.useMemo)(()=>cr(r),[r]),p=(0,S.useCallback)(()=>{o($e(s,r))},[r,o,s]),i=(0,S.useCallback)(k=>{let O=(0,B.queryClosest)(k.target,"button");if(O){let ze=tn(O),{value:Z}=O;switch(ze){case"column-alignment":if((0,B.isValidColumnAlignment)(Z)){let X={...r,align:Z||void 0};a(X),o($e(s,X))}break;case"column-pin":if((0,B.isValidPinLocation)(Z)){let X={...r,pin:Z||void 0};a(X),o($e(s,X));break}}}},[r,o,s]),c=(0,S.useCallback)(k=>{let O=k.target,ze=tn(O),{value:Z}=O;switch(ze){case"column-label":a(X=>({...X,label:Z}));break;case"column-name":a(X=>(0,B.setCalculatedColumnName)(X,Z));break;case"column-width":a(X=>({...X,width:parseInt(Z)}));break}},[]),C=(0,S.useCallback)(k=>{a(O=>({...O,name:k}))},[]),v=(0,S.useCallback)(k=>{let O=(0,B.updateColumnFormatting)(r,k);a(O),o($e(s,O))},[r,o,s]),x=(0,S.useCallback)(k=>{let O=(0,B.updateColumnType)(r,k);a(O),o($e(s,O))},[r,o,s]),h=(0,S.useCallback)(k=>{a(O=>({...O,serverDataType:k}))},[]),T=(0,S.useCallback)(k=>{if(k){let O=(0,B.updateColumnRenderProps)(r,k);a(O),o($e(s,O))}},[r,o,s]),D=(0,S.useCallback)(({moveBy:k})=>{let{columns:O}=s,ze=O.indexOf(r)+k,Z=O[ze];Z&&a(Z)},[r,s]),nt=(0,S.useCallback)(()=>{D({moveBy:1})},[D]),St=(0,S.useCallback)(()=>{D({moveBy:-1})},[D]),Tt=(0,S.useCallback)(()=>{n(r)},[r,n]),kt=(0,S.useCallback)(()=>{t.name==="::"?e():(l.current!==void 0&&l.current!==r&&a(l.current),m(!1))},[r,t.name,e]);return{availableRenderers:g,editCalculatedColumn:u,column:r,navigateNextColumn:nt,navigatePrevColumn:St,onCancel:kt,onChange:c,onChangeCalculatedColumnName:C,onChangeFormatting:v,onChangeRendering:T,onChangeServerDataType:h,onChangeToggleButton:i,onChangeType:x,onEditCalculatedColumn:d,onInputCommit:p,onSave:Tt}};var b=require("react/jsx-runtime"),Ce="vuuColumnSettingsPanel",dr=t=>{let{name:e,label:o}=t;return(0,Ae.isCalculatedColumn)(e)?o!=null?o:(0,Ae.getCalculatedColumnName)(t):o!=null?o:e},gr=({column:t,onCancelCreateColumn:e,onConfigChange:o,onCreateCalculatedColumn:n,tableConfig:s,vuuTable:r})=>{let a=t.name==="::",{availableRenderers:l,editCalculatedColumn:u,column:m,navigateNextColumn:d,navigatePrevColumn:g,onCancel:p,onChange:i,onChangeCalculatedColumnName:c,onChangeFormatting:C,onChangeRendering:v,onChangeServerDataType:x,onChangeToggleButton:h,onChangeType:T,onEditCalculatedColumn:D,onInputCommit:nt,onSave:St}=on({column:t,onCancelCreateColumn:e,onConfigChange:o,onCreateCalculatedColumn:n,tableConfig:s}),{serverDataType:Tt,align:kt=(0,Ae.getDefaultAlignment)(Tt),pin:k,width:O}=m;return(0,b.jsxs)("div",{className:(0,nn.default)(Ce,{[`${Ce}-editing`]:u}),children:[(0,b.jsx)("div",{className:`${Ce}-header`,children:(0,b.jsx)(jo,{column:m,onClick:D})}),u?(0,b.jsx)(_t,{column:m,onChangeName:c,onChangeServerDataType:x,tableConfig:s,vuuTable:r}):null,(0,b.jsxs)(w.FormField,{"data-field":"column-label",children:[(0,b.jsx)(w.FormFieldLabel,{children:"Column Label"}),(0,b.jsx)(ne.VuuInput,{className:"vuuInput",onChange:i,onCommit:nt,value:dr(m)})]}),(0,b.jsxs)(w.FormField,{"data-field":"column-width",children:[(0,b.jsx)(w.FormFieldLabel,{children:"Column Width"}),(0,b.jsx)(ne.VuuInput,{className:"vuuInput",onChange:i,value:O,onCommit:nt})]}),(0,b.jsxs)(w.FormField,{"data-field":"column-alignment",children:[(0,b.jsx)(w.FormFieldLabel,{children:"Alignment"}),(0,b.jsxs)(w.ToggleButtonGroup,{onChange:h,value:kt,children:[(0,b.jsx)(w.ToggleButton,{value:"left",children:(0,b.jsx)(ne.Icon,{name:"align-left",size:16})}),(0,b.jsx)(w.ToggleButton,{value:"right",children:(0,b.jsx)(ne.Icon,{name:"align-right",size:16})})]})]}),(0,b.jsxs)(w.FormField,{"data-field":"column-pin",children:[(0,b.jsx)(w.FormFieldLabel,{children:"Pin Column"}),(0,b.jsxs)(w.ToggleButtonGroup,{onChange:h,value:k!=null?k:"",children:[(0,b.jsx)(w.ToggleButton,{value:"",children:(0,b.jsx)(ne.Icon,{name:"cross-circle",size:16})}),(0,b.jsx)(w.ToggleButton,{value:"left",children:(0,b.jsx)(ne.Icon,{name:"pin-left",size:16})}),(0,b.jsx)(w.ToggleButton,{value:"floating",children:(0,b.jsx)(ne.Icon,{name:"pin-float",size:16})}),(0,b.jsx)(w.ToggleButton,{value:"right",children:(0,b.jsx)(ne.Icon,{name:"pin-right",size:16})})]})]}),(0,b.jsx)(eo,{availableRenderers:l,column:m,onChangeFormatting:C,onChangeRendering:v,onChangeColumnType:T}),u?(0,b.jsxs)("div",{className:"vuuColumnSettingsPanel-buttonBar","data-align":"right",children:[(0,b.jsx)(w.Button,{className:`${Ce}-buttonCancel`,onClick:p,tabIndex:-1,children:"cancel"}),(0,b.jsx)(w.Button,{className:`${Ce}-buttonSave`,onClick:St,variant:"cta",children:"save"})]}):(0,b.jsxs)("div",{className:`${Ce}-buttonBar`,"data-align":a?"right":void 0,children:[(0,b.jsx)(w.Button,{className:`${Ce}-buttonNavPrev`,variant:"secondary","data-icon":"arrow-left",onClick:g,children:"PREVIOUS"}),(0,b.jsx)(w.Button,{className:`${Ce}-buttonNavNext`,variant:"secondary","data-icon":"arrow-right",onClick:d,children:"NEXT"})]})]})};var rn=pe(require("clsx"),1),ot=require("react");var ue=require("react/jsx-runtime"),tt="vuuDatasourceStats",to=new Intl.NumberFormat,fr=({className:t,dataSource:e})=>{let[o,n]=(0,ot.useState)(e.range),[s,r]=(0,ot.useState)(e.size);(0,ot.useEffect)(()=>(r(e.size),e.on("resize",r),e.on("range",n),()=>{e.removeListener("resize",r),e.removeListener("range",n)}),[e]);let a=(0,rn.default)(tt,t),l=to.format(o.from+1),u=to.format(Math.min(o.to,s)),m=to.format(s);return(0,ue.jsxs)("div",{className:a,children:[(0,ue.jsx)("span",{className:`${tt}-label`,children:"Row count"}),(0,ue.jsx)("span",{className:`${tt}-range`,children:l}),(0,ue.jsx)("span",{children:"-"}),(0,ue.jsx)("span",{className:`${tt}-range`,children:u}),(0,ue.jsx)("span",{children:"of"}),(0,ue.jsx)("span",{className:`${tt}-size`,children:m})]})};var L=require("@salt-ds/core");var sn=require("@vuu-ui/vuu-table"),Q=require("@vuu-ui/vuu-utils"),re=require("react"),Cr=(t,e)=>{let o=[];for(let{name:n}of t){let s=e.find(r=>r.name===n);s&&o.push(s)}return o},vr=(t,e)=>t.map(({name:o,serverDataType:n})=>{let s=e.find(r=>r.name===o);return{hidden:s==null?void 0:s.hidden,isCalculated:(0,Q.isCalculatedColumn)(o),label:s==null?void 0:s.label,name:o,serverDataType:n,subscribed:s!==void 0}}),oo=({availableColumns:t,onConfigChange:e,onDataSourceConfigChange:o,tableConfig:n})=>{let[{availableColumns:s,tableConfig:r},a]=(0,re.useState)({availableColumns:t,tableConfig:n}),l=(0,re.useMemo)(()=>vr(s,r.columns),[s,r.columns]),u=(0,re.useCallback)((c,C)=>{a(v=>{let x=(0,Q.moveItem)(v.availableColumns,c,C),h=Cr(x,r.columns);return{availableColumns:x,tableConfig:{...v.tableConfig,columns:h}}})},[r.columns]),m=(0,re.useCallback)((c,C,v)=>{let x=l.find(h=>h.name===c);if(C==="subscribed")if(x!=null&&x.subscribed){let h=r.columns.filter(T=>T.name!==c).map(T=>T.name);a(T=>({...T,tableConfig:{...r,columns:r.columns.filter((0,Q.subscribedOnly)(h))}})),o({columns:h})}else{let h={...r,columns:(0,Q.addColumnToSubscribedColumns)(r.columns,s,c)};a(D=>({...D,tableConfig:h}));let T=h.columns.map(D=>D.name);o({columns:T})}else if(x!=null&&x.subscribed){let h=r.columns.find(T=>T.name===c);if(h){let T=(0,sn.updateTableConfig)(r,{type:"column-prop",property:C,column:h,value:v});a(D=>({...D,tableConfig:T}))}}},[s,l,o,r]),d=(0,re.useCallback)(c=>{let C=(0,Q.queryClosest)(c.target,"button");if(C){let v=parseInt(C.value),x=v===0?void 0:v===1?"capitalize":"uppercase";a(h=>({...h,tableConfig:{...h.tableConfig,columnFormatHeader:x}}))}},[]),g=(0,re.useCallback)(c=>{let C=(0,Q.queryClosest)(c.target,"button"),{ariaPressed:v,value:x}=C;console.log({ariaPressed:v,value:x,button:C}),a(h=>({...h,tableConfig:{...h.tableConfig,[x]:v!=="true"}}))},[]),p=(0,re.useCallback)((c,C)=>{let v=parseInt(C);isNaN(v)||a(x=>({...x,tableConfig:{...x.tableConfig,columnDefaultWidth:v}})),console.log({value:C})},[]);(0,Q.useLayoutEffectSkipFirst)(()=>{e==null||e(r)},[e,r]);let i=r.columnFormatHeader===void 0?0:r.columnFormatHeader==="capitalize"?1:2;return{columnItems:l,columnLabelsValue:i,onChangeColumnLabels:d,onChangeTableAttribute:g,onColumnChange:m,onCommitColumnWidth:p,onMoveListItem:u,tableConfig:r}};var Oe=require("@vuu-ui/vuu-ui-controls"),an=require("@vuu-ui/vuu-ui-controls");var E=require("react/jsx-runtime"),no="vuuTableSettingsPanel",xr=({availableColumns:t,onAddCalculatedColumn:e,onConfigChange:o,onDataSourceConfigChange:n,onNavigateToColumn:s,tableConfig:r})=>{var c,C,v;let{columnItems:a,columnLabelsValue:l,onChangeColumnLabels:u,onChangeTableAttribute:m,onColumnChange:d,onCommitColumnWidth:g,onMoveListItem:p,tableConfig:i}=oo({availableColumns:t,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r});return(0,E.jsxs)("div",{className:no,children:[(0,E.jsxs)(L.FormField,{children:[(0,E.jsx)(L.FormFieldLabel,{children:"Column Labels"}),(0,E.jsxs)(L.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:u,value:l,children:[(0,E.jsx)(L.ToggleButton,{className:"vuuIconToggleButton",value:0,children:(0,E.jsx)(Oe.Icon,{name:"text-strikethrough",size:48})}),(0,E.jsx)(L.ToggleButton,{className:"vuuIconToggleButton",value:1,children:(0,E.jsx)(Oe.Icon,{name:"text-Tt",size:48})}),(0,E.jsx)(L.ToggleButton,{className:"vuuIconToggleButton",value:2,children:(0,E.jsx)(Oe.Icon,{name:"text-T",size:48})})]})]}),(0,E.jsxs)(L.FormField,{children:[(0,E.jsx)(L.FormFieldLabel,{children:"Grid separators"}),(0,E.jsxs)("div",{className:"saltToggleButtonGroup vuuStateButtonGroup saltToggleButtonGroup-horizontal",children:[(0,E.jsx)(L.ToggleButton,{selected:(c=i.zebraStripes)!=null?c:!1,onChange:m,value:"zebraStripes",children:(0,E.jsx)(Oe.Icon,{name:"row-striping",size:16})}),(0,E.jsx)(L.ToggleButton,{selected:(C=i.rowSeparators)!=null?C:!1,onChange:m,value:"rowSeparators",children:(0,E.jsx)(Oe.Icon,{name:"row-lines",size:16})}),(0,E.jsx)(L.ToggleButton,{selected:(v=i.columnSeparators)!=null?v:!1,onChange:m,value:"columnSeparators",children:(0,E.jsx)(Oe.Icon,{name:"col-lines",size:16})})]})]}),(0,E.jsxs)(L.FormField,{children:[(0,E.jsx)(L.FormFieldLabel,{children:"Default Column Width"}),(0,E.jsx)(an.VuuInput,{className:"vuuInput",onCommit:g})]}),(0,E.jsx)(Lt,{columnItems:a,onChange:d,onMoveListItem:p,onNavigateToColumn:s}),(0,E.jsxs)("div",{className:`${no}-calculatedButtonbar`,children:[(0,E.jsx)(L.Button,{"data-icon":"plus",onClick:e}),(0,E.jsx)("span",{className:`${no}-calculatedLabel`,children:"Add calculated column"})]})]})};
2
2
  //# sourceMappingURL=index.js.map