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