@vuu-ui/vuu-table-extras 0.8.7 → 0.8.8

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.
Files changed (85) hide show
  1. package/cjs/index.js +1 -1
  2. package/cjs/index.js.map +4 -4
  3. package/esm/index.js +1 -1
  4. package/esm/index.js.map +4 -4
  5. package/index.css +1 -1
  6. package/index.css.map +3 -3
  7. package/package.json +13 -13
  8. package/types/vuu-data/src/array-data-source/array-data-source.d.ts +65 -0
  9. package/types/vuu-data/src/array-data-source/group-utils.d.ts +10 -0
  10. package/types/vuu-data/src/array-data-source/sort-utils.d.ts +4 -0
  11. package/types/vuu-data/src/authenticate.d.ts +1 -0
  12. package/types/vuu-data/src/connection-manager.d.ts +46 -0
  13. package/types/vuu-data/src/connectionTypes.d.ts +5 -0
  14. package/types/vuu-data/src/constants.d.ts +41 -0
  15. package/types/vuu-data/src/data-source.d.ts +172 -0
  16. package/types/vuu-data/src/index.d.ts +10 -0
  17. package/types/vuu-data/src/inlined-worker.d.ts +1 -0
  18. package/types/vuu-data/src/json-data-source.d.ts +53 -0
  19. package/types/vuu-data/src/message-utils.d.ts +26 -0
  20. package/types/vuu-data/src/remote-data-source.d.ts +56 -0
  21. package/types/vuu-data/src/server-proxy/messages.d.ts +43 -0
  22. package/types/vuu-data/src/vuuUIMessageTypes.d.ts +202 -0
  23. package/types/vuu-data/src/websocket-connection.d.ts +25 -0
  24. package/types/vuu-table-extras/src/column-list/ColumnList.d.ts +12 -0
  25. package/types/vuu-table-extras/src/column-list/index.d.ts +1 -0
  26. package/types/{index.d.ts → vuu-table-extras/src/index.d.ts} +1 -0
  27. package/types/vuu-table-extras/src/table-settings/TableSettingsPanel.d.ts +15 -0
  28. package/types/vuu-table-extras/src/table-settings/index.d.ts +2 -0
  29. package/types/vuu-table-extras/src/table-settings/useTableSettings.d.ts +14 -0
  30. package/types/table-settings/column-picker/ColumnListItem.d.ts +0 -4
  31. package/types/table-settings/column-picker/ColumnPicker.d.ts +0 -13
  32. package/types/table-settings/column-picker/index.d.ts +0 -1
  33. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/background-cell/BackgroundCell.d.ts +0 -0
  34. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/background-cell/index.d.ts +0 -0
  35. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/background-cell/useDirection.d.ts +0 -0
  36. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/index.d.ts +0 -0
  37. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/progress-cell/ProgressCell.d.ts +0 -0
  38. /package/types/{cell-renderers → vuu-table-extras/src/cell-renderers}/progress-cell/index.d.ts +0 -0
  39. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/ColumnExpressionInput.d.ts +0 -0
  40. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-function-descriptors.d.ts +0 -0
  41. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionLanguage.d.ts +0 -0
  42. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.d.ts +0 -0
  43. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/column-expression-parse-utils.d.ts +0 -0
  44. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.d.ts +0 -0
  45. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/generated/column-parser.terms.d.ts +0 -0
  46. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/index.d.ts +0 -0
  47. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/column-language-parser/test.d.mts +0 -0
  48. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/functionDocInfo.d.ts +0 -0
  49. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/highlighting.d.ts +0 -0
  50. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/index.d.ts +0 -0
  51. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/theme.d.ts +0 -0
  52. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/useColumnAutoComplete.d.ts +0 -0
  53. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/useColumnExpressionEditor.d.ts +0 -0
  54. /package/types/{column-expression-input → vuu-table-extras/src/column-expression-input}/useColumnExpressionSuggestionProvider.d.ts +0 -0
  55. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -0
  56. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/calculated-column-panel/index.d.ts +0 -0
  57. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-picker/ColumnListItem.d.ts +0 -0
  58. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-picker/ColumnPicker.d.ts +0 -0
  59. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-picker/index.d.ts +0 -0
  60. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-settings-panel/ColumnSettingsPanel.d.ts +0 -0
  61. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-settings-panel/index.d.ts +0 -0
  62. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/ColumnTypePanel.d.ts +0 -0
  63. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/NumericColumnPanel.d.ts +0 -0
  64. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/StringColumnPanel.d.ts +0 -0
  65. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/column-type-panel/index.d.ts +0 -0
  66. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/index.d.ts +0 -0
  67. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/DatagridSettingsPanel.d.ts +0 -0
  68. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/GridSettingsPanel.d.ts +0 -0
  69. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/index.d.ts +0 -0
  70. /package/types/{datagrid-configuration-ui → vuu-table-extras/src/datagrid-configuration-ui}/settings-panel/useGridSettings.d.ts +0 -0
  71. /package/types/{datasource-stats → vuu-table-extras/src/datasource-stats}/DatasourceStats.d.ts +0 -0
  72. /package/types/{datasource-stats → vuu-table-extras/src/datasource-stats}/index.d.ts +0 -0
  73. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -0
  74. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/calculated-column-panel/index.d.ts +0 -0
  75. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-settings-panel/ColumnSettingsPanel.d.ts +0 -0
  76. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-settings-panel/index.d.ts +0 -0
  77. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/ColumnTypePanel.d.ts +0 -0
  78. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/NumericColumnPanel.d.ts +0 -0
  79. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/StringColumnPanel.d.ts +0 -0
  80. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/column-type-panel/index.d.ts +0 -0
  81. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/index.d.ts +0 -0
  82. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/DatagridSettingsPanel.d.ts +0 -0
  83. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/GridSettingsPanel.d.ts +0 -0
  84. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/index.d.ts +0 -0
  85. /package/types/{table-settings → vuu-table-extras/src/table-settings-deprecated}/settings-panel/useGridSettings.d.ts +0 -0
package/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var Nt=Object.create;var Ue=Object.defineProperty;var kt=Object.getOwnPropertyDescriptor;var At=Object.getOwnPropertyNames;var Lt=Object.getPrototypeOf,Qt=Object.prototype.hasOwnProperty;var It=(e,n)=>{for(var t in n)Ue(e,t,{get:n[t],enumerable:!0})},wn=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of At(n))!Qt.call(e,i)&&i!==t&&Ue(e,i,{get:()=>n[i],enumerable:!(o=kt(n,i))||o.enumerable});return e};var Y=(e,n,t)=>(t=e!=null?Nt(Lt(e)):{},wn(n||!e||!e.__esModule?Ue(t,"default",{value:e,enumerable:!0}):t,e)),Bt=e=>wn(Ue({},"__esModule",{value:!0}),e);var Fn=(e,n,t)=>{if(!n.has(e))throw TypeError("Cannot "+t)};var c=(e,n,t)=>(Fn(e,n,"read from private field"),t?t.call(e):n.get(e)),I=(e,n,t)=>{if(n.has(e))throw TypeError("Cannot add the same private member more than once");n instanceof WeakSet?n.add(e):n.set(e,t)},j=(e,n,t,o)=>(Fn(e,n,"write to private field"),o?o.call(e,t):n.set(e,t),t);var Wo={};It(Wo,{ColumnExpressionInput:()=>bn,ColumnNamedTerms:()=>ze,ColumnSettingsPanel:()=>Go,DataSourceStats:()=>Qo,DatagridSettingsPanel:()=>Lo,columnExpressionLanguageSupport:()=>tn,isCompleteExpression:()=>cn,isCompleteRelationalExpression:()=>mn,lastNamedChild:()=>Ze,useColumnExpressionEditor:()=>hn,useColumnExpressionSuggestionProvider:()=>En,walkTree:()=>un});module.exports=Bt(Wo);var R=require("@vuu-ui/vuu-utils"),Nn=Y(require("classnames"),1);var te=require("@vuu-ui/vuu-utils"),He=require("react"),Mt=[void 0,void 0,void 0,void 0];function Rn(e,n,t){var E;let o=(0,He.useRef)(),[i,r,s,p]=o.current||Mt,{type:l}=t,u=(0,te.isTypeDescriptor)(l)?(E=l.formatting)==null?void 0:E.decimals:void 0,g=e===i&&(0,te.isValidNumber)(n)&&(0,te.isValidNumber)(r)&&t===s?(0,te.getMovingValueDirection)(n,p,r,u):"";return(0,He.useEffect)(()=>{o.current=[e,n,t,g]}),g}var We=require("react/jsx-runtime"),$t=String.fromCharCode(11014),Ut=String.fromCharCode(11015),{KEY:Ht}=R.metadataKeys,Ge="vuuBackgroundCell",De={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},Gt=e=>(0,R.isTypeDescriptor)(e)&&e.renderer&&"flashStyle"in e.renderer?e.renderer.flashStyle:De.BackgroundOnly,Wt=({column:e,row:n})=>{let{key:t,type:o,valueFormatter:i}=e,r=n[t],s=Gt(o),p=Rn(n[Ht],r,e),l=s===De.ArrowOnly||s===De.ArrowBackground?p===R.UP1||p===R.UP2?$t:p===R.DOWN1||p===R.DOWN2?Ut:null:null,u=p?" "+p:"",g=(0,Nn.default)(Ge,u,{[`${Ge}-arrowOnly`]:s===De.ArrowOnly,[`${Ge}-arrowBackground`]:s===De.ArrowBackground});return(0,We.jsxs)("div",{className:g,tabIndex:-1,children:[(0,We.jsx)("div",{className:`${Ge}-flasher`,children:l}),i(n[e.key])]})};(0,R.registerComponent)("background",Wt,"cell-renderer",{serverDataType:["long","int","double"]});var pe=require("@vuu-ui/vuu-utils"),kn=Y(require("classnames"),1);var oe=require("react/jsx-runtime"),we="vuuProgressCell",Xt=({column:e,columnMap:n,row:t})=>{let{type:o}=e,i=t[e.key],r=!1,s=0;if((0,pe.isTypeDescriptor)(o)&&(0,pe.isColumnTypeRenderer)(o.renderer)){let{associatedField:l}=o.renderer,u=t[n[l]];if(typeof i=="number"&&typeof u=="number")s=Math.min(Math.round(i/u*100),100),r=isFinite(s);else{let g=parseFloat(i);if(Number.isFinite(g)){let E=parseFloat(u);Number.isFinite(E)&&(s=Math.min(Math.round(g/E*100),100),r=isFinite(s))}}}let p=(0,kn.default)(we,{});return(0,oe.jsxs)("div",{className:p,tabIndex:-1,children:[r?(0,oe.jsxs)("span",{className:`${we}-track`,children:[(0,oe.jsx)("span",{className:`${we}-bg`}),(0,oe.jsx)("span",{className:`${we}-bar`,style:{"--progress-bar-pct":`-${100-s}%`}})]}):null,(0,oe.jsx)("span",{className:`${we}-text`,children:`${s} %`})]})};(0,pe.registerComponent)("vuu.progress",Xt,"cell-renderer",{serverDataType:["long","int","double"]});var P=require("@vuu-ui/vuu-codemirror"),xn=require("@vuu-ui/vuu-utils"),ee=require("react");var B=require("@vuu-ui/vuu-codemirror");var An=require("@lezer/lr"),Xe=An.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 Vt=B.LRLanguage.define({name:"VuuColumnExpression",parser:Xe.configure({props:[(0,B.styleTags)({Function:B.tags.variableName,String:B.tags.string,Or:B.tags.emphasis,Operator:B.tags.operator})]})}),tn=()=>new B.LanguageSupport(Vt);var on=class{constructor(n){switch(this.value=n,typeof n){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(n){this.type="colExpression";this.column=n}toJSON(){return{type:this.type,column:this.column}}},Re,se,sn=class{constructor(n="unknown"){I(this,Re,[{type:"unknown"},{type:"unknown"}]);I(this,se,void 0);this.type="arithmeticExpression";j(this,se,n)}get op(){return c(this,se)}set op(n){j(this,se,n)}get expressions(){return c(this,Re)}toJSON(){return{type:this.type,op:c(this,se),expressions:c(this,Re)}}};Re=new WeakMap,se=new WeakMap;var de,an=class{constructor(n){I(this,de,[]);this.type="callExpression";this.functionName=n}get expressions(){return c(this,de)}get arguments(){return c(this,de)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:c(this,de).map(n=>{var t;return(t=n.toJSON)==null?void 0:t.call(n)})}}};de=new WeakMap;var Ne,ge,ce=class{constructor(){I(this,Ne,[{type:"unknown"},{type:"unknown"}]);I(this,ge,"unknown");this.type="relationalExpression"}get op(){return c(this,ge)}set op(n){j(this,ge,n)}get expressions(){return c(this,Ne)}toJSON(){return{type:this.type,op:c(this,ge),expressions:c(this,Ne)}}};Ne=new WeakMap,ge=new WeakMap;var ke,fe,me=class{constructor(n){I(this,ke,[{type:"unknown"},{type:"unknown"}]);I(this,fe,void 0);this.type="booleanCondition";j(this,fe,n)}get op(){return c(this,fe)}get expressions(){return c(this,ke)}toJSON(){return{type:this.type,op:c(this,fe),expressions:c(this,ke).map(n=>{var t;return(t=n.toJSON)==null?void 0:t.call(n)})}}};ke=new WeakMap,fe=new WeakMap;var U,Fe=class{constructor(n){I(this,U,void 0);this.type="conditionalExpression";j(this,U,[n?new me(n):new ce,{type:"unknown"},{type:"unknown"}])}get expressions(){return c(this,U)}get condition(){return c(this,U)[0]}get truthyExpression(){return c(this,U)[1]}set truthyExpression(n){c(this,U)[1]=n}get falsyExpression(){return c(this,U)[2]}set falsyExpression(n){c(this,U)[2]=n}toJSON(){var n,t,o,i,r;return{type:this.type,condition:(t=(n=this.condition).toJSON)==null?void 0:t.call(n),truthyExpression:this.truthyExpression,falsyExpression:(r=(i=(o=this.falsyExpression)==null?void 0:o.toJSON)==null?void 0:i.call(o))!=null?r:this.falsyExpression}}};U=new WeakMap;var re=e=>e.type==="unknown",Ve=e=>e.type==="arithmeticExpression",Yt=e=>e.type==="callExpression",ue=e=>e.type==="conditionalExpression",zt=e=>e.type==="relationalExpression"||e.type==="booleanCondition";var Zt=e=>e.type==="booleanCondition",pn=e=>(e==null?void 0:e.type)==="relationalExpression";var L=e=>{if(re(e))return e;if(pn(e)){let[n,t]=e.expressions;if(D(n))return L(n);if(e.op==="unknown")return e;if(D(t))return L(t)}else if(zt(e)){let{expressions:n=[]}=e;for(let t of n)if(D(t))return L(t)}else if(ue(e)){let{condition:n,truthyExpression:t,falsyExpression:o}=e;if(D(n))return L(n);if(D(t))return L(t);if(D(o))return L(o)}else if(Ve(e)){let{expressions:n=[]}=e;for(let t of n)if(D(t))return L(t)}},Ye=(e,n,t)=>{let{expressions:o=[]}=e;if(o.includes(n)){let i=o.indexOf(n);return o.splice(i,1,t),!0}else for(let i of o)if(Ye(i,n,t))return!0;return!1},D=e=>re(e)?!0:ue(e)?D(e.condition)||D(e.truthyExpression)||D(e.falsyExpression):pn(e)||Zt(e)?e.op===void 0||e.expressions.some(n=>D(n)):!1,Ln=(e,n)=>{let t=L(e);t?t.expressions?t.expressions.push(n):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},C,ie,ln=class{constructor(){I(this,C,void 0);I(this,ie,[])}setCondition(n){if(c(this,C)===void 0)this.addExpression(new Fe(n));else if(ue(c(this,C))){if(D(c(this,C).condition)){let t=n?new me(n):new ce;this.addExpression(t)}else if(re(c(this,C).truthyExpression))c(this,C).truthyExpression=new Fe(n);else if(D(c(this,C).truthyExpression)){let t=n?new me(n):new ce;this.addExpression(t)}else if(re(c(this,C).falsyExpression))c(this,C).falsyExpression=new Fe(n);else if(D(c(this,C).falsyExpression)){let t=n?new me(n):new ce;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(n){if(c(this,ie).length>0){let t=c(this,ie).at(-1);t==null||t.arguments.push(n)}else if(c(this,C)===void 0)j(this,C,n);else if(Ve(c(this,C))){let t=L(c(this,C));t&&re(t)&&Ye(c(this,C),t,n)}else if(ue(c(this,C))&&D(c(this,C))){let t=L(c(this,C));t&&re(t)?Ye(c(this,C),t,n):t&&Ln(t,n)}}setFunction(n){let t=new an(n);this.addExpression(t),c(this,ie).push(t)}setColumn(n){this.addExpression(new rn(n))}setArithmeticOp(n){let t=n,o=c(this,C);Ve(o)&&(o.op=t)}setRelationalOperator(n){let t=n;if(c(this,C)&&ue(c(this,C))){let o=L(c(this,C));pn(o)?o.op=t:console.error(`no target expression found (op = ${n})`)}}setValue(n){let t=new on(n);if(c(this,C)===void 0)j(this,C,t);else if(Ve(c(this,C)))this.addExpression(t);else if(Yt(c(this,C)))c(this,C).arguments.push(t);else if(ue(c(this,C)))if(D(c(this,C))){let o=L(c(this,C));o&&re(o)?Ye(c(this,C),o,t):o&&Ln(o,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){c(this,ie).pop()}get expression(){return c(this,C)}toJSON(){var n;return(n=c(this,C))==null?void 0:n.toJSON()}};C=new WeakMap,ie=new WeakMap;var un=(e,n)=>{let t=new ln,o=e.cursor();do{let{name:i,from:r,to:s}=o;switch(i){case"AndCondition":t.setCondition("and");break;case"OrCondition":t.setCondition("or");break;case"RelationalExpression":t.setCondition();break;case"ArithmeticExpression":t.addExpression(new sn);break;case"Column":{let p=n.substring(r,s);t.setColumn(p)}break;case"Function":{let p=n.substring(r,s);t.setFunction(p)}break;case"Times":case"Divide":case"Plus":case"Minus":{let p=n.substring(r,s);t.setArithmeticOp(p)}break;case"RelationalOperator":{let p=n.substring(r,s);t.setRelationalOperator(p)}break;case"False":case"True":{let p=n.substring(r,s);t.setValue(p==="true")}break;case"String":t.setValue(n.substring(r+1,s-1));break;case"Number":t.setValue(parseFloat(n.substring(r,s)));break;case"CloseBrace":t.closeBrace();break;default:}}while(o.next());return t.toJSON()};var Jt=Xe.configure({strict:!0}),Qn=["Number","String"],ze=[...Qn,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],cn=e=>{try{return Jt.parse(e),!0}catch{return!1}},Ze=e=>{let{lastChild:n}=e;for(;n&&!ze.includes(n.name);)n=n.prevSibling,console.log(n==null?void 0:n.name);return n},mn=e=>{if((e==null?void 0:e.name)==="RelationalExpression"){let{firstChild:n}=e,t=Ze(e);if((n==null?void 0:n.name)==="Column"&&typeof(t==null?void 0:t.name)=="string"&&Qn.includes(t.name))return!0}return!1};var ae=require("@vuu-ui/vuu-codemirror"),qt=ae.HighlightStyle.define([{tag:ae.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:ae.tags.comment,color:"green",fontStyle:"italic"}]),In=(0,ae.syntaxHighlighting)(qt);var Bn=require("@vuu-ui/vuu-codemirror"),Mn=Bn.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 S=require("@vuu-ui/vuu-codemirror"),fn=require("react");var _t=(e,n)=>n?e.map(t=>{var o;return{...t,apply:typeof t.apply=="function"?t.apply:`${n}${(o=t.apply)!=null?o:t.label}`}}):e,Kt=e=>e===void 0?!1:["Times","Divide","Plus","Minus"].includes(e.name),Ce=(e,n)=>{var i;let{lastChild:t}=e,{pos:o}=n;for(;t;)if(t.from<o&&ze.includes(t.name)){if(t.name==="ParenthesizedExpression"){let s=(i=t.firstChild)==null?void 0:i.nextSibling;s&&(t=s)}return t}else t=t.prevSibling},$n=(e,n)=>{var t;if(e.name==="ArgList"){let o=e.prevSibling;if(o)return(0,S.getValue)(o,n)}else if(e.name==="OpenBrace"){let o=(t=e.parent)==null?void 0:t.prevSibling;if((o==null?void 0:o.name)==="Function")return(0,S.getValue)(o,n)}},Un=(e,n)=>{if(e.name==="RelationalExpression"){let t=Ze(e);if((t==null?void 0:t.name)==="RelationalOperator")return(0,S.getValue)(t,n)}else{let t=e.prevSibling;if((t==null?void 0:t.name)==="RelationalOperator")return(0,S.getValue)(t,n)}},Cn=(e,n)=>{var t;if(e.name==="RelationalExpression"){if(((t=e.firstChild)==null?void 0:t.name)==="Column")return(0,S.getValue)(e.firstChild,n)}else{let o=e.prevSibling;if((o==null?void 0:o.name)==="Column")return(0,S.getValue)(o,n);if((o==null?void 0:o.name)==="RelationalOperator")return Cn(o,n)}},dn=async(e,n,t,o={})=>{let i=await n.getSuggestions(t,o),{startsWith:r=""}=o;return{from:e.pos-r.length,options:i}},gn=(e,n,t,o,i)=>{let r=Ce(e,n);switch(console.log(`conditional expression last child ${r==null?void 0:r.name}`),r==null?void 0:r.name){case"If":return dn(n,t,"expression",{prefix:"( "});case"OpenBrace":return dn(n,t,"expression");case"Condition":return dn(n,t,"expression",{prefix:", "});case"CloseBrace":if(o){let s=[{apply:()=>{i==null||i()},label:"Save Expression",boost:10}];return{from:n.pos,options:s}}}},jt=(e,n)=>{let t=[{apply:()=>{n==null||n()},label:"Save Expression",boost:10}];return{from:e.pos,options:t}},Hn=(e,n)=>{let t=(0,fn.useCallback)(async(o,i,r={})=>{let s=await e.getSuggestions(i,r),{startsWith:p=""}=r;return{from:o.pos-p.length,options:s}},[e]);return(0,fn.useCallback)(async o=>{var E,v;let{state:i,pos:r}=o,s=(E=o.matchBefore(/\w*/))!=null?E:{from:0,to:0,text:void 0},l=(0,S.syntaxTree)(i).resolveInner(r,-1),u=i.doc.toString(),g=cn(u);switch(console.log({nodeBeforeName:l.name}),l.name){case"If":return console.log("conditional expression If"),t(o,"expression",{prefix:"( "});case"Condition":{let a=Ce(l,o);if((a==null?void 0:a.name)==="Column"){let d=(0,S.getPreviousNode)(a);if((d==null?void 0:d.name)!=="RelationalOperator")return t(o,"condition-operator",{columnName:(0,S.getValue)(a,i)});console.log(`Condition last child Column, prev child ${d==null?void 0:d.name}`)}else if((a==null?void 0:a.name)==="RelationalOperator")return t(o,"expression");console.log(`condition last child ${a==null?void 0:a.name}`)}break;case"ConditionalExpression":return gn(l,o,e);case"RelationalExpression":{if(mn(l))return{from:o.pos,options:S.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let a=Un(l,i),d=Cn(l,i);if(a)return t(o,"expression");{let f=await e.getSuggestions("condition-operator",{columnName:d});return{from:o.pos,options:f}}}}break;case"RelationalOperator":return t(o,"expression");case"String":{let a=Un(l,i),d=Cn(l,i),{from:f,to:m}=l;if(m-f===2&&o.pos===f+1){if(d&&a)return t(o,"columnValue",{columnName:d,operator:a,startsWith:s.text})}else if(m-f>2&&o.pos===m)return t(o,"expression",{prefix:", "});console.log(`we have a string, column is ${d} ${f} ${m}`)}break;case"ArithmeticExpression":{let a=Ce(l,o);if((a==null?void 0:a.name)==="Column")return t(o,"expression");if(Kt(a)){let d=a.name;return t(o,"column",{operator:d})}}break;case"OpenBrace":{let a=$n(l,i);return t(o,"expression",{functionName:a})}break;case"ArgList":{let a=$n(l,i),d=Ce(l,o),f=(d==null?void 0:d.name)==="OpenBrace"?void 0:",",m=await e.getSuggestions("expression",{functionName:a});return m=f?_t(m,", "):m,(d==null?void 0:d.name)!=="OpenBrace"&&(d==null?void 0:d.name)!=="Comma"&&(m=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(m)),{from:o.pos,options:m}}case"Equal":if(u.trim()==="=")return t(o,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(o.pos===0)return t(o,"expression");{let a=Ce(l,o);if((a==null?void 0:a.name)==="Column"){if(g){let d=[{apply:()=>{n.current()},label:"Save Expression",boost:10}],f=(0,S.getValue)(a,i),m=await e.getSuggestions("operator",{columnName:f});return{from:o.pos,options:d.concat(m)}}}else if((a==null?void 0:a.name)==="CallExpression"){if(g){let d=[{apply:()=>{n.current()},label:"Save Expression",boost:10}];return{from:o.pos,options:d}}}else if((a==null?void 0:a.name)==="ArithmeticExpression"){if(g){let d=[{apply:()=>{n.current()},label:"Save Expression",boost:10}],f=Ce(a,o);if((f==null?void 0:f.name)==="Column"){let m=(0,S.getValue)(f,i),T=await e.getSuggestions("operator",{columnName:m});d=d.concat(T)}return{from:o.pos,options:d}}}else if((a==null?void 0:a.name)==="ConditionalExpression")return gn(a,o,e,g,n.current);break}case"Column":if(await e.isPartialMatch("expression",void 0,s.text))return t(o,"expression",{startsWith:s.text});break;case"Comma":{let a=(0,S.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return t(o,"expression")}break;case"CloseBrace":{let a=(0,S.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return gn(a,o,e,g,n.current);if((a==null?void 0:a.name)==="ArgList"&&g)return jt(o,n.current);console.log(`does closebrace denote an ARgList or a parenthetised expression ? ${a}`)}break;default:((v=l==null?void 0:l.prevSibling)==null?void 0:v.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[t,n,e])};var Ae=e=>{if(e.current==null)throw Error("EditorView not defined");return e.current},eo=()=>"vuuSuggestion",no=()=>console.log("noooop"),to=e=>"expressionType"in e,oo=e=>{if(to(e)){let n=(0,xn.createEl)("div","expression-type-container"),t=(0,xn.createEl)("span","expression-type",e.expressionType);return n.appendChild(t),n}else return null},hn=({onChange:e,onSubmitExpression:n,suggestionProvider:t})=>{let o=(0,ee.useRef)(null),i=(0,ee.useRef)(no),r=(0,ee.useRef)(),s=Hn(t,i),[p,l]=(0,ee.useMemo)(()=>{let u=()=>{let f=Ae(r),m=f.state.doc.toString(),T=(0,P.ensureSyntaxTree)(f.state,f.state.doc.length,5e3);if(T){let $=un(T,m);return[m,$]}else return["",void 0]},g=()=>{Ae(r).setState(d())},E=()=>{let[f,m]=u();n==null||n(f,m),g()},v=f=>P.keymap.of([{key:f,run(){return E(),!0}}]),a=f=>P.keymap.of([{key:f,run(){return(0,P.startCompletion)(Ae(r)),!0}}]),d=()=>P.EditorState.create({doc:"",extensions:[P.minimalSetup,(0,P.autocompletion)({addToOptions:[{render:oo,position:70}],override:[s],optionClass:eo}),tn(),P.keymap.of(P.defaultKeymap),v("Ctrl-Enter"),a("ArrowDown"),P.EditorView.updateListener.of(f=>{let m=Ae(r);if(f.docChanged){(0,P.startCompletion)(m);let T=m.state.doc.toString();e==null||e(T,void 0)}}),Mn,In]});return i.current=()=>{E(),setTimeout(()=>{Ae(r).focus()},100)},[d,g]},[s,e,n]);return(0,ee.useEffect)(()=>{if(!o.current)throw Error("editor not in dom");return r.current=new P.EditorView({state:p(),parent:o.current}),()=>{var u;(u=r.current)==null||u.destroy()}},[s,p]),{editorRef:o,clearInput:l}};var Gn=require("react/jsx-runtime"),ro="vuuColumnExpressionInput",bn=({onChange:e,onSubmitExpression:n,suggestionProvider:t})=>{let{editorRef:o}=hn({onChange:e,onSubmitExpression:n,suggestionProvider:t});return(0,Gn.jsx)("div",{className:`${ro}`,ref:o})};var G=require("@vuu-ui/vuu-codemirror"),Je=require("@vuu-ui/vuu-data-react"),be=require("@vuu-ui/vuu-utils"),he=require("react");var xe=[{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 H=require("@vuu-ui/vuu-utils"),Wn=({name:e,description:n,example:t,params:o,type:i})=>{let r=(0,H.createEl)("div","vuuFunctionDoc"),s=(0,H.createEl)("div","function-heading"),p=(0,H.createEl)("span","function-name",e),l=(0,H.createEl)("span","param-list",o.description),u=(0,H.createEl)("span","function-type",i);s.appendChild(p),s.appendChild(l),s.appendChild(u);let g=(0,H.createEl)("p",void 0,n);if(r.appendChild(s),r.appendChild(g),t){let E=(0,H.createEl)("div","example-container","Example:"),v=(0,H.createEl)("div","example-expression",t.expression),a=(0,H.createEl)("div","example-result",t.result);E.appendChild(v),E.appendChild(a),r.appendChild(E)}return r};var so=[],le=e=>e.map(n=>{var t;return{...n,apply:((t=n.apply)!=null?t:n.label)+" "}}),io=(e,{functionName:n,operator:t})=>{if(t)return e.filter(be.isNumericColumn);if(n){let o=xe.find(i=>i.name===n);if(o)switch(o.accepts){case"string":return e.filter(be.isTextColumn);case"number":return e.filter(be.isNumericColumn);default:return e}}return e},Xn=(e,n)=>io(e,n).map(o=>{var r;let i=(r=o.label)!=null?r:o.name;return{apply:n.prefix?`${n.prefix}${i}`:i,label:i,boost:5,type:"column",expressionType:o.serverDataType}}),ao=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],lo=e=>e===void 0||(0,be.isNumericColumn)(e)?ao:so,po=e=>{switch(e.serverDataType){case"string":case"char":return le(G.stringOperators);case"int":case"long":case"double":return le(G.numericOperators)}},yn=e=>({apply:`${e.name}( `,boost:2,expressionType:e.type,info:()=>Wn(e),label:e.name,type:"function"}),uo=e=>{if(e){if(typeof e.accepts=="string")return e.accepts;if(Array.isArray(e.accepts))return e.accepts.every(n=>n==="string")?"string":"any"}return"any"},co=xe.map(yn),mo=({functionName:e})=>{if(e){let n=xe.find(o=>o.name===e),t=uo(n);if(n)switch(t){case"string":return xe.filter(o=>o.type==="string"||o.type==="variable").map(yn);case"number":return xe.filter(o=>o.type==="number"||o.type==="variable").map(yn);default:}}return co},go={},En=({columns:e,table:n})=>{let t=(0,he.useCallback)(p=>p?e.find(l=>l.name===p):void 0,[e]),o=(0,he.useRef)(),i=(0,Je.useTypeaheadSuggestions)(),r=(0,he.useCallback)(async(p,l=go)=>{let{columnName:u,functionName:g,operator:E,prefix:v}=l;switch(p){case"expression":{let a=await le(Xn(e,{functionName:g,prefix:v})).concat(mo(l));return o.current=a}case"column":{let a=await Xn(e,l);return o.current=le(a)}case"operator":{let a=await lo(t(u));return o.current=le(a)}case"relational-operator":{let a=await(0,G.getRelationalOperators)(t(u));return o.current=le(a)}case"condition-operator":{let a=t(u);if(a){let d=await po(a);if(d)return o.current=le(d)}}break;case"columnValue":if(u&&E){let a=(0,Je.getTypeaheadParams)(n,u),d=await i(a);return o.current=(0,G.toSuggestions)(d,{suffix:""}),o.current.forEach(f=>{f.apply=(m,T,$)=>{let nn=new G.AnnotationType,Te=$+T.label.length+1;m.dispatch({changes:{from:$,insert:T.label},selection:{anchor:Te,head:Te},annotations:nn.of(T)})}}),o.current}break}return[]},[e,t,i,n]),s=(0,he.useCallback)(async(p,l,u)=>{let{current:g}=o,E=!1,v=g||await r(p,{columnName:l});if(u&&v)for(let a of v){if(a.label===u)return!1;a.label.startsWith(u)&&(E=!0)}return E},[r]);return{getSuggestions:r,isPartialMatch:s}};var Pe=require("@salt-ds/core"),ft=Y(require("classnames"),1),q=require("react");var vn=require("@salt-ds/lab"),M=require("@salt-ds/core"),z=require("react");var Vn=require("@salt-ds/lab"),Yn=Y(require("classnames"),1);var Ee=require("react/jsx-runtime"),ye="vuuColumnListItem",zn=({className:e,item:n,label:t,style:o,...i})=>{let r=(0,Yn.default)(ye,e,{[`${ye}-calculated`]:n==null?void 0:n.expression,[`${ye}-hidden`]:n==null?void 0:n.hidden});return(0,Ee.jsxs)(Vn.ListItem,{className:r,...i,children:[(0,Ee.jsx)("span",{className:`${ye}-iconType`}),(0,Ee.jsx)("label",{className:`${ye}-label`,children:t}),(0,Ee.jsx)("span",{className:`${ye}-iconHidden`})]})};var O=require("react/jsx-runtime"),ve="vuuColumnPicker",fo=(e,n)=>e.filter(t=>n.find(o=>o.name===t.name)==null),Zn=({availableColumns:e,id:n,dispatchColumnAction:t,onAddCalculatedColumnClick:o,onSelectionChange:i,chosenColumns:r,selectedColumn:s})=>{let[p,l]=(0,z.useState)([]),u=(0,M.useIdMemo)(n),g=fo(e,r),E=(0,z.useCallback)(()=>{p.length>0&&(l([]),t({type:"addColumn",columns:p}))},[t,p]),v=(0,z.useCallback)(()=>s&&t({type:"removeColumn",column:s}),[s,t]),a=(0,z.useCallback)(()=>s&&t({type:"moveColumn",column:s,moveBy:-1}),[t,s]),d=(0,z.useCallback)(()=>s&&t({type:"moveColumn",column:s,moveBy:1}),[t,s]),f=(0,z.useCallback)((T,$)=>l($),[]),m=(0,z.useCallback)((T,$)=>i==null?void 0:i($),[i]);return(0,O.jsxs)("div",{className:ve,id:u,children:[(0,O.jsxs)("div",{className:`${ve}-listColumn`,children:[(0,O.jsx)("label",{htmlFor:`available-${u}`,children:(0,O.jsx)(M.Text,{as:"h4",children:"Available Columns"})}),(0,O.jsx)("div",{className:`${ve}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,O.jsx)(vn.List,{borderless:!0,checkable:!1,height:"100%",id:`available-${u}`,itemHeight:24,itemToString:T=>T.name,onSelectionChange:f,selected:p,selectionStrategy:"extended",source:g})}),(0,O.jsx)("div",{style:{display:"flex",alignItems:"center",flex:"0 0 32px",marginTop:"var(--salt-size-basis-unit)"},children:(0,O.jsxs)(M.Button,{onClick:E,disabled:p.length===0,children:["Show",(0,O.jsx)("span",{"data-icon":"arrow-thin-right",style:{marginLeft:8}})]})})]}),(0,O.jsxs)("div",{className:`${ve}-listColumn`,children:[(0,O.jsx)("label",{htmlFor:`selected-${u}`,children:(0,O.jsx)(M.Text,{as:"h4",children:"Included Columns"})}),(0,O.jsx)("div",{className:`${ve}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,O.jsx)(vn.List,{ListItem:zn,borderless:!0,height:"100%",id:`selected-${u}`,itemHeight:24,itemToString:T=>T.name,onSelectionChange:m,selected:s,style:{flex:1},source:r})}),(0,O.jsxs)("div",{style:{alignItems:"center",flex:"0 0 32px",display:"flex",gap:6,marginTop:"var(--salt-size-basis-unit)"},children:[(0,O.jsxs)(M.Button,{onClick:v,disabled:s===null,children:[(0,O.jsx)("span",{"data-icon":"arrow-thin-left",style:{marginRight:8}}),"Hide"]}),(0,O.jsx)(M.Button,{"aria-label":"Move column up",onClick:a,disabled:s===null||(r==null?void 0:r.indexOf(s))===0,style:{width:28},children:(0,O.jsx)("span",{"data-icon":"arrow-thin-up"})}),(0,O.jsx)(M.Button,{"aria-label":"Move column down",onClick:d,disabled:s===null||r.indexOf(s)===r.length-1,style:{width:28},children:(0,O.jsx)("span",{"data-icon":"arrow-thin-down"})}),(0,O.jsx)(M.Button,{"aria-label":"Add calculated column",className:`${ve}-addCalculatedColumn`,onClick:o,variant:"primary",children:(0,O.jsx)("span",{"data-icon":"add"})})]})]})]})};var rt=require("@vuu-ui/vuu-layout"),st=require("@salt-ds/lab"),x=require("@salt-ds/core"),it=Y(require("classnames"),1),J=require("react");var Kn=require("@vuu-ui/vuu-utils"),jn=require("@salt-ds/lab"),et=require("@salt-ds/core"),Pn=Y(require("classnames"),1),nt=require("react");var Qe=require("@salt-ds/lab"),Oe=require("@salt-ds/core"),Le=require("react");var k=require("react/jsx-runtime"),Co={alignOnDecimals:!1,decimals:4,zeroPad:!1},xo=(e,n)=>{let t=typeof e=="object"&&e.formatting?e.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((i,r)=>t[r]!==void 0?{...i,[r]:t[r]}:(n==null?void 0:n[r])!==void 0?{...i,[r]:n[r]}:i,Co)},Jn=({column:e,dispatchColumnAction:n})=>{let{decimals:t,alignOnDecimals:o,zeroPad:i}=xo(e==null?void 0:e.type),r=(0,Le.useCallback)(u=>n({type:"updateColumnTypeFormatting",column:e,...u}),[e,n]),s=(0,Le.useCallback)(u=>r({decimals:parseInt(u.toString(),10)}),[r]),p=(0,Le.useCallback)((u,g)=>r({alignOnDecimals:g}),[r]),l=(0,Le.useCallback)((u,g)=>r({zeroPad:g}),[r]);switch(e.serverDataType){case"double":return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(Oe.FormField,{labelPlacement:"top",children:[(0,k.jsx)(Oe.FormFieldLabel,{children:"No of Decimals"}),(0,k.jsx)(Qe.StepperInput,{value:t,onChange:s})]}),(0,k.jsx)(Qe.Switch,{checked:o,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:p}),(0,k.jsx)(Qe.Switch,{checked:i,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l})]});case"long":case"int":return(0,k.jsx)(k.Fragment,{children:(0,k.jsx)(Oe.Text,{children:"Work in progress"})});default:return null}};var qe=require("react/jsx-runtime"),qn=({column:e,dispatchColumnAction:n})=>(console.log({column:e,dispatchColumnAction:n}),(0,qe.jsx)(qe.Fragment,{children:"what"}));var Z=require("react/jsx-runtime"),On="vuuColumnTypePanel",ho=["Default Renderer (int, long)"],bo=["Default Renderer (double)"],_n=["Default Renderer (string)"],yo=e=>{let t=(0,Kn.getRegisteredCellRenderers)(e.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:t}),e.serverDataType){case"char":case"string":return _n;case"int":case"long":return ho;case"double":return bo.concat(t);default:return _n}},tt=({className:e,column:n,dispatchColumnAction:t,...o})=>{let i=(0,nt.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,Z.jsx)(Jn,{column:n,dispatchColumnAction:t});default:return(0,Z.jsx)(qn,{column:n,dispatchColumnAction:t})}},[n,t]),{serverDataType:r="string"}=n,s=yo(n);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(jn.Dropdown,{className:(0,Pn.default)(`${On}-renderer`),fullWidth:!0,selected:s[0],source:s}),(0,Z.jsx)(et.Panel,{...o,className:(0,Pn.default)(On,e,`${On}-${r}`),children:i})]})};var b=require("react/jsx-runtime"),ot="vuuColumnSettingsPanel",Eo={className:"salt-density-high"},at=({column:e,dispatchColumnAction:n,style:t,...o})=>{var v,a,d,f;let[i,r]=(0,J.useState)(0),s=(0,J.useCallback)(m=>n({type:"updateColumnProp",column:e,...m}),[e,n]),p=(0,J.useCallback)(m=>s({align:m.target.value}),[s]),l=(0,J.useCallback)(m=>s({pin:m.target.value}),[s]),u=(0,J.useCallback)(m=>s({hidden:m.target.checked}),[s]),g=(0,J.useCallback)(m=>s({label:m.target.value}),[s]),E=(0,J.useCallback)(m=>s({width:parseInt(m.toString(),10)}),[s]);return(0,b.jsxs)("div",{className:ot,...o,style:{...t},children:[(0,b.jsx)(x.Text,{as:"h4",children:"Column Settings"}),(0,b.jsxs)(rt.Stack,{active:i,className:(0,it.default)(`${ot}-columnTabs`),onTabSelectionChanged:r,TabstripProps:Eo,children:[(0,b.jsxs)(x.Panel,{title:"Column",children:[(0,b.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,b.jsx)(x.FormFieldLabel,{children:"Hidden"}),(0,b.jsx)(x.Checkbox,{checked:e.hidden===!0,onChange:u})]}),(0,b.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,b.jsx)(x.FormFieldLabel,{children:"Label"}),(0,b.jsx)(x.Input,{value:(v=e.label)!=null?v:e.name,onChange:g})]}),(0,b.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,b.jsx)(x.FormFieldLabel,{children:"Width"}),(0,b.jsx)(st.StepperInput,{value:(a=e.width)!=null?a:100,onChange:E})]}),(0,b.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,b.jsx)(x.FormFieldLabel,{children:"ALign"}),(0,b.jsxs)(x.RadioButtonGroup,{"aria-label":"Column Align",value:(d=e.align)!=null?d:"left",onChange:p,children:[(0,b.jsx)(x.RadioButton,{label:"Left",value:"left"}),(0,b.jsx)(x.RadioButton,{label:"Right",value:"right"})]})]}),(0,b.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,b.jsx)(x.FormFieldLabel,{children:"Pin Column"}),(0,b.jsxs)(x.RadioButtonGroup,{"aria-label":"Pin Column",value:(f=e.pin)!=null?f:"",onChange:l,children:[(0,b.jsx)(x.RadioButton,{label:"Do not pin",value:""}),(0,b.jsx)(x.RadioButton,{label:"Left",value:"left"}),(0,b.jsx)(x.RadioButton,{label:"Right",value:"right"})]})]})]}),(0,b.jsx)(tt,{column:e,dispatchColumnAction:n,title:"Data Cell"}),(0,b.jsxs)(x.Panel,{title:"Vuu",variant:"secondary",children:[(0,b.jsxs)(x.FormField,{labelPlacement:"top",readOnly:!0,children:[(0,b.jsx)(x.FormFieldLabel,{children:"Name"}),(0,b.jsx)(x.Input,{value:e.name})]}),(0,b.jsxs)(x.FormField,{labelPlacement:"top",readOnly:!0,children:[(0,b.jsx)(x.FormFieldLabel,{children:"Vuu Type"}),(0,b.jsx)(x.Input,{value:e.serverDataType})]})]})]})]})};var w=require("@salt-ds/core"),lt=require("@salt-ds/lab"),_e=require("react");var N=require("react/jsx-runtime"),vo="vuuGridSettingsPanel",pt=({config:e,dispatchColumnAction:n,style:t,...o})=>{var p;let i=(0,_e.useCallback)(l=>n({type:"updateGridSettings",...l}),[n]),r=(0,_e.useCallback)(l=>i({columnFormatHeader:l.target.value}),[i]),s=(0,_e.useCallback)(l=>i({columnDefaultWidth:parseInt(l.toString(),10)}),[i]);return(0,N.jsxs)("div",{className:vo,...o,style:{...t},children:[(0,N.jsx)(w.Text,{as:"h4",children:"Grid Settings"}),(0,N.jsxs)(w.Panel,{children:[(0,N.jsxs)(w.FormField,{labelPlacement:"left",children:[(0,N.jsx)(w.FormFieldLabel,{children:"Format column labels"}),(0,N.jsxs)(w.RadioButtonGroup,{"aria-label":"Format column labels",value:e.columnFormatHeader,onChange:r,children:[(0,N.jsx)(w.RadioButton,{label:"No Formatting",value:void 0}),(0,N.jsx)(w.RadioButton,{label:"Capitalize",value:"capitalize"}),(0,N.jsx)(w.RadioButton,{label:"Uppercase",value:"uppercase"})]})]}),(0,N.jsxs)(w.FormField,{labelPlacement:"left",children:[(0,N.jsx)(w.FormFieldLabel,{children:"Default Column Width"}),(0,N.jsx)(lt.StepperInput,{value:(p=e.columnDefaultWidth)!=null?p:100,onChange:s})]})]})]})};var ut=require("react"),ct=require("@vuu-ui/vuu-ui-controls"),mt=require("@vuu-ui/vuu-utils"),Oo=(e,n)=>{switch(console.log(`gridSettingsReducer ${n.type}`),n.type){case"addColumn":return Po(e,n);case"addCalculatedColumn":return So(e,n);case"moveColumn":return Do(e,n);case"removeColumn":return To(e,n);case"updateColumn":return e;case"updateColumnProp":return wo(e,n);case"updateGridSettings":return Fo(e,n);case"updateColumnTypeFormatting":return Ro(e,n);default:return e}},dt=e=>{let[n,t]=(0,ut.useReducer)(Oo,e);return{gridSettings:n,dispatchColumnAction:t}};function Po(e,{column:n,columns:t,index:o=-1}){let{columns:i}=e;if(o===-1){if(Array.isArray(t))return{...e,columns:i.concat(t)};if(n)return{...e,columns:i.concat(n)}}return e}function So(e,{columnName:n,columnType:t,expression:o}){let{columns:i}=e,r={name:n,expression:o,serverDataType:t};return{...e,columns:i.concat(r)}}function To(e,{column:n}){let{columns:t}=e;return{...e,columns:t.filter(o=>o.name!==n.name)}}function Do(e,{column:n,moveBy:t,moveFrom:o,moveTo:i}){let{columns:r}=e;if(n&&typeof t=="number"){let s=r.indexOf(n),p=r.slice(),[l]=p.splice(s,1);return p.splice(s+t,0,l),{...e,columns:p}}else return typeof o=="number"&&typeof i=="number"?{...e,columns:(0,ct.moveItem)(r,o,i)}:e}function wo(e,{align:n,column:t,hidden:o,label:i,width:r}){let{columns:s}=e;return(n==="left"||n==="right")&&(s=Ie(s,{...t,align:n})),typeof o=="boolean"&&(s=Ie(s,{...t,hidden:o})),typeof i=="string"&&(s=Ie(s,{...t,label:i})),typeof r=="number"&&(s=Ie(s,{...t,width:r})),{...e,columns:s}}function Fo(e,{columnFormatHeader:n}){return{...e,columnFormatHeader:n!=null?n:e.columnFormatHeader}}function Ro(e,{alignOnDecimals:n,column:t,decimals:o,zeroPad:i}){let{columns:r}=e;if(r.find(p=>p.name===t.name)){let{serverDataType:p="string",type:l=(0,mt.fromServerDataType)(p)}=t,u=typeof l=="string"?{name:l}:{...l};return typeof n=="boolean"&&(u.formatting={...u.formatting,alignOnDecimals:n}),typeof o=="number"&&(u.formatting={...u.formatting,decimals:o}),typeof i=="boolean"&&(u.formatting={...u.formatting,zeroPad:i}),{...e,columns:Ie(r,{...t,type:u})}}else return e}function Ie(e,n){return e.map(t=>t.name===n.name?n:t)}var Ct=require("@vuu-ui/vuu-layout");var Q=require("@salt-ds/core"),X=require("react");var W=require("react/jsx-runtime"),gt=({columns:e,dispatchColumnAction:n,table:t})=>{let[o,i]=(0,X.useState)(""),[,r]=(0,X.useState)(),s=(0,X.useRef)(""),p=En({columns:e,table:t}),l=(0,X.useCallback)(v=>{let{value:a}=v.target;i(a)},[]),u=(0,X.useCallback)(v=>{s.current=v},[]),g=(0,X.useCallback)((v,a)=>{console.log({source:v}),r(a)},[]),E=(0,X.useCallback)(()=>{s.current&&(console.log(`save expression ${JSON.stringify(s.current,null,2)}`),n({type:"addCalculatedColumn",columnName:o,expression:s.current,columnType:"string"}))},[o,n]);return(0,W.jsxs)(Q.Panel,{className:"vuuCalculatedColumnPanel",title:"Define Computed Column",children:[(0,W.jsx)(Q.Text,{styleAs:"h4",children:"Define Computed Column"}),(0,W.jsxs)(Q.FormField,{labelPlacement:"left",children:[(0,W.jsx)(Q.FormFieldLabel,{children:"Column Name"}),(0,W.jsx)(Q.Input,{value:o,onChange:l})]}),(0,W.jsx)(bn,{onChange:u,onSubmitExpression:g,suggestionProvider:p}),(0,W.jsx)("div",{style:{marginTop:12},children:(0,W.jsx)(Q.Button,{onClick:E,children:"Add Column"})})]})};var F=require("react/jsx-runtime"),Ke="vuuDatagridSettingsPanel",No=()=>{},ko=["table-settings","column-chooser","column-settings","define-column"],Ao=(e,n)=>ko[n],Lo=({availableColumns:e,className:n,gridConfig:t,onCancel:o,onConfigChange:i,...r})=>{var Te;console.log("DatagridSettingsPanel render");let[s,p]=(0,q.useState)(0),{gridSettings:l,dispatchColumnAction:u}=dt(t),[g,E]=(0,q.useState)(null),v=(0,q.useCallback)(V=>{E(V?V.name:null)},[]),a=(0,q.useCallback)((V,Rt=!1)=>{console.log("1) DataGridSettingsPanel fire onConfigChange"),i==null||i(l,Rt)},[l,i]),d=(0,q.useCallback)(V=>{p(V)},[]),f=(0,q.useCallback)(V=>a(V,!0),[a]),m=g===null?null:(Te=l.columns.find(V=>V.name===g))!=null?Te:null,T={activeTabIndex:s,allowRenameTab:!1,orientation:"vertical"},$=(0,q.useCallback)(()=>p(3),[]),nn=s===2?"right":void 0;return(0,F.jsxs)("div",{...r,className:(0,ft.default)(Ke,n),children:[(0,F.jsxs)(Ct.Stack,{TabstripProps:T,className:`${Ke}-stack`,getTabIcon:Ao,getTabLabel:No,active:s===2?1:s,onTabSelectionChanged:d,children:[(0,F.jsx)(pt,{config:l,dispatchColumnAction:u}),(0,F.jsxs)("div",{className:`${Ke}-columnPanels`,"data-align":nn,children:[(0,F.jsx)(Zn,{availableColumns:e,chosenColumns:l.columns,dispatchColumnAction:u,onSelectionChange:v,onAddCalculatedColumnClick:$,selectedColumn:m}),m===null?(0,F.jsx)(Pe.Panel,{className:"vuuColumnSettingsPanel",children:"Select a column"}):(0,F.jsx)(at,{column:m,dispatchColumnAction:u,style:{background:"white",flex:"1 0 150px"}})]}),(0,F.jsx)("div",{title:"Column Settings",children:"Column Settings"}),(0,F.jsx)(gt,{columns:l.columns,dispatchColumnAction:u,table:{module:"SIMUL",table:"instruments"}})]}),(0,F.jsxs)("div",{className:`${Ke}-buttonBar`,children:[(0,F.jsx)(Pe.Button,{onClick:o,children:"Cancel"}),(0,F.jsx)(Pe.Button,{onClick:a,children:"Apply"}),(0,F.jsx)(Pe.Button,{onClick:f,children:"Save"})]})]})};var Be=require("react"),xt=Y(require("classnames"),1);var ne=require("react/jsx-runtime"),je="vuuDatasourceStats",Sn=new Intl.NumberFormat,Qo=({className:e,dataSource:n})=>{let[t,o]=(0,Be.useState)(n.range),[i,r]=(0,Be.useState)(n.size);(0,Be.useEffect)(()=>{r(n.size),n.on("resize",r),n.on("range",o)},[n]);let s=(0,xt.default)(je,e),p=Sn.format(t.from),l=Sn.format(t.to-1),u=Sn.format(i);return(0,ne.jsxs)("div",{className:s,children:[(0,ne.jsx)("span",{children:"Showing rows"}),(0,ne.jsx)("span",{className:`${je}-range`,children:p}),(0,ne.jsx)("span",{className:`${je}-range`,children:l}),(0,ne.jsx)("span",{children:"of"}),(0,ne.jsx)("span",{className:`${je}-size`,children:u})]})};var Dt=require("@vuu-ui/vuu-layout"),wt=require("@salt-ds/lab"),h=require("@salt-ds/core"),Ft=Y(require("classnames"),1),K=require("react");var Et=require("@vuu-ui/vuu-utils"),vt=require("@salt-ds/lab"),Ot=require("@salt-ds/core"),Dn=Y(require("classnames"),1),Pt=require("react");var $e=require("@salt-ds/lab"),Se=require("@salt-ds/core"),Me=require("react");var A=require("react/jsx-runtime"),Io={alignOnDecimals:!1,decimals:4,zeroPad:!1},Bo=(e,n)=>{let t=typeof e=="object"&&e.formatting?e.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((i,r)=>t[r]!==void 0?{...i,[r]:t[r]}:(n==null?void 0:n[r])!==void 0?{...i,[r]:n[r]}:i,Io)},ht=({column:e,dispatchColumnAction:n})=>{let{decimals:t,alignOnDecimals:o,zeroPad:i}=Bo(e==null?void 0:e.type),r=(0,Me.useCallback)(u=>n({type:"updateColumnTypeFormatting",column:e,...u}),[e,n]),s=(0,Me.useCallback)(u=>r({decimals:parseInt(u.toString(),10)}),[r]),p=(0,Me.useCallback)((u,g)=>r({alignOnDecimals:g}),[r]),l=(0,Me.useCallback)((u,g)=>r({zeroPad:g}),[r]);switch(e.serverDataType){case"double":return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(Se.FormField,{labelPlacement:"top",children:[(0,A.jsx)(Se.FormFieldLabel,{children:"No of Decimals"}),(0,A.jsx)($e.StepperInput,{value:t,onChange:s})]}),(0,A.jsx)($e.Switch,{checked:o,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:p}),(0,A.jsx)($e.Switch,{checked:i,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l})]});case"long":case"int":return(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(Se.Text,{children:"Work in progress"})});default:return null}};var en=require("react/jsx-runtime"),bt=({column:e,dispatchColumnAction:n})=>(console.log(e,n),(0,en.jsx)(en.Fragment,{children:"what"}));var _=require("react/jsx-runtime"),Tn="vuuColumnTypePanel",Mo=["Default Renderer (int, long)"],$o=["Default Renderer (double)"],yt=["Default Renderer (string)"],Uo=e=>{let t=(0,Et.getRegisteredCellRenderers)(e.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:t}),e.serverDataType){case"char":case"string":return yt;case"int":case"long":return Mo;case"double":return $o.concat(t);default:return yt}},St=({className:e,column:n,dispatchColumnAction:t,...o})=>{let i=(0,Pt.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,_.jsx)(ht,{column:n,dispatchColumnAction:t});default:return(0,_.jsx)(bt,{column:n,dispatchColumnAction:t})}},[n,t]),{serverDataType:r="string"}=n,s=Uo(n);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(vt.Dropdown,{className:(0,Dn.default)(`${Tn}-renderer`),fullWidth:!0,selected:s[0],source:s}),(0,_.jsx)(Ot.Panel,{...o,className:(0,Dn.default)(Tn,e,`${Tn}-${r}`),children:i})]})};var y=require("react/jsx-runtime"),Tt="vuuColumnSettingsPanel",Ho={className:"salt-density-high"},Go=({column:e,dispatchColumnAction:n,style:t,...o})=>{var v,a,d,f;let[i,r]=(0,K.useState)(0),s=(0,K.useCallback)(m=>n({type:"updateColumnProp",column:e,...m}),[e,n]),p=(0,K.useCallback)(m=>s({align:m.target.value}),[s]),l=(0,K.useCallback)(m=>s({pin:m.target.value}),[s]),u=(0,K.useCallback)(m=>s({hidden:m.target.checked}),[s]),g=(0,K.useCallback)(m=>s({label:m.target.value}),[s]),E=(0,K.useCallback)(m=>s({width:parseInt(m.toString(),10)}),[s]);return(0,y.jsxs)("div",{className:Tt,...o,style:{...t},children:[(0,y.jsx)(h.Text,{as:"h4",children:"Column Settings"}),(0,y.jsxs)(Dt.Stack,{active:i,className:(0,Ft.default)(`${Tt}-columnTabs`),onTabSelectionChanged:r,TabstripProps:Ho,children:[(0,y.jsxs)(h.Panel,{title:"Column",children:[(0,y.jsxs)(h.FormField,{labelPlacement:"left",children:[(0,y.jsx)(h.FormFieldLabel,{children:"Hidden"}),(0,y.jsx)(h.Checkbox,{checked:e.hidden===!0,onChange:u})]}),(0,y.jsxs)(h.FormField,{labelPlacement:"left",children:[(0,y.jsx)(h.FormFieldLabel,{children:"Label"}),(0,y.jsx)(h.Input,{value:(v=e.label)!=null?v:e.name,onChange:g})]}),(0,y.jsxs)(h.FormField,{labelPlacement:"left",children:[(0,y.jsx)(h.FormFieldLabel,{children:"Width"}),(0,y.jsx)(wt.StepperInput,{value:(a=e.width)!=null?a:100,onChange:E})]}),(0,y.jsxs)(h.FormField,{labelPlacement:"left",children:[(0,y.jsx)(h.FormFieldLabel,{children:"Align"}),(0,y.jsxs)(h.RadioButtonGroup,{"aria-label":"Column Align",value:(d=e.align)!=null?d:"left",onChange:p,children:[(0,y.jsx)(h.RadioButton,{label:"Left",value:"left"}),(0,y.jsx)(h.RadioButton,{label:"Right",value:"right"})]})]}),(0,y.jsxs)(h.FormField,{labelPlacement:"left",children:[(0,y.jsx)(h.FormFieldLabel,{children:"Pin Column"}),(0,y.jsxs)(h.RadioButtonGroup,{"aria-label":"Pin Column",value:(f=e.pin)!=null?f:"",onChange:l,children:[(0,y.jsx)(h.RadioButton,{label:"Do not pin",value:""}),(0,y.jsx)(h.RadioButton,{label:"Left",value:"left"}),(0,y.jsx)(h.RadioButton,{label:"Right",value:"right"})]})]})]}),(0,y.jsx)(St,{column:e,dispatchColumnAction:n,title:"Data Cell"}),(0,y.jsxs)(h.Panel,{title:"Vuu",variant:"secondary",children:[(0,y.jsxs)(h.FormField,{labelPlacement:"top",readOnly:!0,children:[(0,y.jsx)(h.FormFieldLabel,{children:"Name"}),(0,y.jsx)(h.Input,{value:e.name})]}),(0,y.jsxs)(h.FormField,{labelPlacement:"top",readOnly:!0,children:[(0,y.jsx)(h.FormFieldLabel,{children:"Vuu Type"}),(0,y.jsx)(h.Input,{value:e.serverDataType})]})]})]})]})};
1
+ "use strict";var tr=Object.create;var rt=Object.defineProperty;var nr=Object.getOwnPropertyDescriptor;var or=Object.getOwnPropertyNames;var rr=Object.getPrototypeOf,sr=Object.prototype.hasOwnProperty;var ir=(t,e)=>{for(var n in e)rt(t,n,{get:e[n],enumerable:!0})},cn=(t,e,n,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of or(e))!sr.call(t,r)&&r!==n&&rt(t,r,{get:()=>e[r],enumerable:!(o=nr(e,r))||o.enumerable});return t};var S=(t,e,n)=>(n=t!=null?tr(rr(t)):{},cn(e||!t||!t.__esModule?rt(n,"default",{value:t,enumerable:!0}):n,t)),lr=t=>cn(rt({},"__esModule",{value:!0}),t);var mn=(t,e,n)=>{if(!e.has(t))throw TypeError("Cannot "+n)};var d=(t,e,n)=>(mn(t,e,"read from private field"),n?n.call(t):e.get(t)),$=(t,e,n)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,n)},ee=(t,e,n,o)=>(mn(t,e,"write to private field"),o?o.call(t,n):e.set(t,n),n);var pi={};ir(pi,{ColumnExpressionInput:()=>Qt,ColumnList:()=>Dt,ColumnNamedTerms:()=>pt,DataSourceStats:()=>rs,DatagridSettingsPanel:()=>os,TableSettingsPanel:()=>mi,columnExpressionLanguageSupport:()=>Mt,isCompleteExpression:()=>It,isCompleteRelationalExpression:()=>zt,lastNamedChild:()=>dt,useColumnExpressionEditor:()=>Gt,useColumnExpressionSuggestionProvider:()=>Xt,useTableSettings:()=>rn,walkTree:()=>Ft});module.exports=lr(pi);var M=require("@vuu-ui/vuu-utils"),dn=S(require("classnames"),1);var ae=require("@vuu-ui/vuu-utils"),st=require("react"),ar=[void 0,void 0,void 0,void 0];function pn(t,e,n){var g;let o=(0,st.useRef)(),[r,s,i,u]=o.current||ar,{type:a}=n,c=(0,ae.isTypeDescriptor)(a)?(g=a.formatting)==null?void 0:g.decimals:void 0,p=t===r&&(0,ae.isValidNumber)(e)&&(0,ae.isValidNumber)(s)&&n===i?(0,ae.getMovingValueDirection)(e,u,s,c):"";return(0,st.useEffect)(()=>{o.current=[t,e,n,p]}),p}var lt=require("react/jsx-runtime"),ur=String.fromCharCode(11014),cr=String.fromCharCode(11015),{KEY:mr}=M.metadataKeys,it="vuuBackgroundCell",Fe={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},pr=t=>(0,M.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Fe.BackgroundOnly,dr=({column:t,row:e})=>{let{key:n,type:o,valueFormatter:r}=t,s=e[n],i=pr(o),u=pn(e[mr],s,t),a=i===Fe.ArrowOnly||i===Fe.ArrowBackground?u===M.UP1||u===M.UP2?ur:u===M.DOWN1||u===M.DOWN2?cr:null:null,c=u?" "+u:"",p=(0,dn.default)(it,c,{[`${it}-arrowOnly`]:i===Fe.ArrowOnly,[`${it}-arrowBackground`]:i===Fe.ArrowBackground});return(0,lt.jsxs)("div",{className:p,tabIndex:-1,children:[(0,lt.jsx)("div",{className:`${it}-flasher`,children:a}),r(e[t.key])]})};(0,M.registerComponent)("background",dr,"cell-renderer",{serverDataType:["long","int","double"]});var Ce=require("@vuu-ui/vuu-utils"),fn=S(require("classnames"),1);var ue=require("react/jsx-runtime"),Ie="vuuProgressCell",fr=({column:t,columnMap:e,row:n})=>{let{type:o}=t,r=n[t.key],s=!1,i=0;if((0,Ce.isTypeDescriptor)(o)&&(0,Ce.isColumnTypeRenderer)(o.renderer)){let{associatedField:a}=o.renderer,c=n[e[a]];if(typeof r=="number"&&typeof c=="number")i=Math.min(Math.round(r/c*100),100),s=isFinite(i);else{let p=parseFloat(r);if(Number.isFinite(p)){let g=parseFloat(c);Number.isFinite(g)&&(i=Math.min(Math.round(p/g*100),100),s=isFinite(i))}}}let u=(0,fn.default)(Ie,{});return(0,ue.jsxs)("div",{className:u,tabIndex:-1,children:[s?(0,ue.jsxs)("span",{className:`${Ie}-track`,children:[(0,ue.jsx)("span",{className:`${Ie}-bg`}),(0,ue.jsx)("span",{className:`${Ie}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,ue.jsx)("span",{className:`${Ie}-text`,children:`${i} %`})]})};(0,Ce.registerComponent)("vuu.progress",fr,"cell-renderer",{serverDataType:["long","int","double"]});var at=require("@vuu-ui/vuu-ui-controls"),gn=require("@salt-ds/core"),Cn=require("@salt-ds/lab"),bn=S(require("classnames"),1),hn=require("react");var L=require("react/jsx-runtime"),te="vuuColumnList",xn="vuuColumnListItem",gr=({className:t,item:e,...n})=>{var o;return(0,L.jsxs)(at.ListItem,{...n,className:(0,bn.default)(t,xn),"data-name":e==null?void 0:e.name,children:[(0,L.jsx)(Cn.Switch,{className:`${te}-switch`,checked:e==null?void 0:e.subscribed}),(0,L.jsx)("span",{className:`${te}-text`,children:(o=e==null?void 0:e.label)!=null?o:e==null?void 0:e.name}),(0,L.jsx)(gn.Checkbox,{className:`${te}-checkBox`,checked:(e==null?void 0:e.hidden)!==!0,disabled:(e==null?void 0:e.subscribed)!==!0})]})},Dt=({columnItems:t,onChange:e,onMoveListItem:n,...o})=>{let r=(0,hn.useCallback)(s=>{let i=s.target,u=i.closest(`.${xn}`),{dataset:{name:a}}=u;if(a){let c=i.closest(`.${te}-switch`),p=i.closest(`.${te}-checkBox`);c?e(a,"subscribed",i.checked):p&&e(a,"hidden",i.checked===!1)}},[e]);return(0,L.jsxs)("div",{...o,className:te,children:[(0,L.jsx)("div",{className:`${te}-header`,children:(0,L.jsx)("span",{children:"Column Selection"})}),(0,L.jsxs)("div",{className:`${te}-colHeadings`,children:[(0,L.jsx)("span",{children:"Column subscription"}),(0,L.jsx)("span",{children:"Visibility"})]}),(0,L.jsx)(at.List,{ListItem:gr,allowDragDrop:!0,height:"100%",onChange:r,onMoveListItem:n,selectionStrategy:"none",source:t,itemHeight:33})]})};var T=require("@vuu-ui/vuu-codemirror"),Wt=require("@vuu-ui/vuu-utils"),ne=require("react");var V=require("@vuu-ui/vuu-codemirror");var yn=require("@lezer/lr"),ut=yn.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 Cr=V.LRLanguage.define({name:"VuuColumnExpression",parser:ut.configure({props:[(0,V.styleTags)({Function:V.tags.variableName,String:V.tags.string,Or:V.tags.emphasis,Operator:V.tags.operator})]})}),Mt=()=>new V.LanguageSupport(Cr);var Ot=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},At=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},$e,me,Ht=class{constructor(e="unknown"){$(this,$e,[{type:"unknown"},{type:"unknown"}]);$(this,me,void 0);this.type="arithmeticExpression";ee(this,me,e)}get op(){return d(this,me)}set op(e){ee(this,me,e)}get expressions(){return d(this,$e)}toJSON(){return{type:this.type,op:d(this,me),expressions:d(this,$e)}}};$e=new WeakMap,me=new WeakMap;var ye,Lt=class{constructor(e){$(this,ye,[]);this.type="callExpression";this.functionName=e}get expressions(){return d(this,ye)}get arguments(){return d(this,ye)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:d(this,ye).map(e=>{var n;return(n=e.toJSON)==null?void 0:n.call(e)})}}};ye=new WeakMap;var Ve,ve,he=class{constructor(){$(this,Ve,[{type:"unknown"},{type:"unknown"}]);$(this,ve,"unknown");this.type="relationalExpression"}get op(){return d(this,ve)}set op(e){ee(this,ve,e)}get expressions(){return d(this,Ve)}toJSON(){return{type:this.type,op:d(this,ve),expressions:d(this,Ve)}}};Ve=new WeakMap,ve=new WeakMap;var Ke,Te,xe=class{constructor(e){$(this,Ke,[{type:"unknown"},{type:"unknown"}]);$(this,Te,void 0);this.type="booleanCondition";ee(this,Te,e)}get op(){return d(this,Te)}get expressions(){return d(this,Ke)}toJSON(){return{type:this.type,op:d(this,Te),expressions:d(this,Ke).map(e=>{var n;return(n=e.toJSON)==null?void 0:n.call(e)})}}};Ke=new WeakMap,Te=new WeakMap;var G,ze=class{constructor(e){$(this,G,void 0);this.type="conditionalExpression";ee(this,G,[e?new xe(e):new he,{type:"unknown"},{type:"unknown"}])}get expressions(){return d(this,G)}get condition(){return d(this,G)[0]}get truthyExpression(){return d(this,G)[1]}set truthyExpression(e){d(this,G)[1]=e}get falsyExpression(){return d(this,G)[2]}set falsyExpression(e){d(this,G)[2]=e}toJSON(){var e,n,o,r,s;return{type:this.type,condition:(n=(e=this.condition).toJSON)==null?void 0:n.call(e),truthyExpression:this.truthyExpression,falsyExpression:(s=(r=(o=this.falsyExpression)==null?void 0:o.toJSON)==null?void 0:r.call(o))!=null?s:this.falsyExpression}}};G=new WeakMap;var ce=t=>t.type==="unknown",ct=t=>t.type==="arithmeticExpression",br=t=>t.type==="callExpression",be=t=>t.type==="conditionalExpression",hr=t=>t.type==="relationalExpression"||t.type==="booleanCondition";var xr=t=>t.type==="booleanCondition",Nt=t=>(t==null?void 0:t.type)==="relationalExpression";var F=t=>{if(ce(t))return t;if(Nt(t)){let[e,n]=t.expressions;if(R(e))return F(e);if(t.op==="unknown")return t;if(R(n))return F(n)}else if(hr(t)){let{expressions:e=[]}=t;for(let n of e)if(R(n))return F(n)}else if(be(t)){let{condition:e,truthyExpression:n,falsyExpression:o}=t;if(R(e))return F(e);if(R(n))return F(n);if(R(o))return F(o)}else if(ct(t)){let{expressions:e=[]}=t;for(let n of e)if(R(n))return F(n)}},mt=(t,e,n)=>{let{expressions:o=[]}=t;if(o.includes(e)){let r=o.indexOf(e);return o.splice(r,1,n),!0}else for(let r of o)if(mt(r,e,n))return!0;return!1},R=t=>ce(t)?!0:be(t)?R(t.condition)||R(t.truthyExpression)||R(t.falsyExpression):Nt(t)||xr(t)?t.op===void 0||t.expressions.some(e=>R(e)):!1,vn=(t,e)=>{let n=F(t);n?n.expressions?n.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},h,pe,kt=class{constructor(){$(this,h,void 0);$(this,pe,[])}setCondition(e){if(d(this,h)===void 0)this.addExpression(new ze(e));else if(be(d(this,h))){if(R(d(this,h).condition)){let n=e?new xe(e):new he;this.addExpression(n)}else if(ce(d(this,h).truthyExpression))d(this,h).truthyExpression=new ze(e);else if(R(d(this,h).truthyExpression)){let n=e?new xe(e):new he;this.addExpression(n)}else if(ce(d(this,h).falsyExpression))d(this,h).falsyExpression=new ze(e);else if(R(d(this,h).falsyExpression)){let n=e?new xe(e):new he;this.addExpression(n)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(d(this,pe).length>0){let n=d(this,pe).at(-1);n==null||n.arguments.push(e)}else if(d(this,h)===void 0)ee(this,h,e);else if(ct(d(this,h))){let n=F(d(this,h));n&&ce(n)&&mt(d(this,h),n,e)}else if(be(d(this,h))&&R(d(this,h))){let n=F(d(this,h));n&&ce(n)?mt(d(this,h),n,e):n&&vn(n,e)}}setFunction(e){let n=new Lt(e);this.addExpression(n),d(this,pe).push(n)}setColumn(e){this.addExpression(new At(e))}setArithmeticOp(e){let n=e,o=d(this,h);ct(o)&&(o.op=n)}setRelationalOperator(e){let n=e;if(d(this,h)&&be(d(this,h))){let o=F(d(this,h));Nt(o)?o.op=n:console.error(`no target expression found (op = ${e})`)}}setValue(e){let n=new Ot(e);if(d(this,h)===void 0)ee(this,h,n);else if(ct(d(this,h)))this.addExpression(n);else if(br(d(this,h)))d(this,h).arguments.push(n);else if(be(d(this,h)))if(R(d(this,h))){let o=F(d(this,h));o&&ce(o)?mt(d(this,h),o,n):o&&vn(o,n)}else console.log("what do we do with value, in a complete expression")}closeBrace(){d(this,pe).pop()}get expression(){return d(this,h)}toJSON(){var e;return(e=d(this,h))==null?void 0:e.toJSON()}};h=new WeakMap,pe=new WeakMap;var Ft=(t,e)=>{let n=new kt,o=t.cursor();do{let{name:r,from:s,to:i}=o;switch(r){case"AndCondition":n.setCondition("and");break;case"OrCondition":n.setCondition("or");break;case"RelationalExpression":n.setCondition();break;case"ArithmeticExpression":n.addExpression(new Ht);break;case"Column":{let u=e.substring(s,i);n.setColumn(u)}break;case"Function":{let u=e.substring(s,i);n.setFunction(u)}break;case"Times":case"Divide":case"Plus":case"Minus":{let u=e.substring(s,i);n.setArithmeticOp(u)}break;case"RelationalOperator":{let u=e.substring(s,i);n.setRelationalOperator(u)}break;case"False":case"True":{let u=e.substring(s,i);n.setValue(u==="true")}break;case"String":n.setValue(e.substring(s+1,i-1));break;case"Number":n.setValue(parseFloat(e.substring(s,i)));break;case"CloseBrace":n.closeBrace();break;default:}}while(o.next());return n.toJSON()};var yr=ut.configure({strict:!0}),Tn=["Number","String"],pt=[...Tn,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],It=t=>{try{return yr.parse(t),!0}catch{return!1}},dt=t=>{let{lastChild:e}=t;for(;e&&!pt.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},zt=t=>{if((t==null?void 0:t.name)==="RelationalExpression"){let{firstChild:e}=t,n=dt(t);if((e==null?void 0:e.name)==="Column"&&typeof(n==null?void 0:n.name)=="string"&&Tn.includes(n.name))return!0}return!1};var de=require("@vuu-ui/vuu-codemirror"),vr=de.HighlightStyle.define([{tag:de.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:de.tags.comment,color:"green",fontStyle:"italic"}]),En=(0,de.syntaxHighlighting)(vr);var Sn=require("@vuu-ui/vuu-codemirror"),wn=Sn.EditorView.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"},"&.cm-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var E=require("@vuu-ui/vuu-codemirror"),Kt=require("react");var Tr=(t,e)=>e?t.map(n=>{var o;return{...n,apply:typeof n.apply=="function"?n.apply:`${e}${(o=n.apply)!=null?o:n.label}`}}):t,Er=t=>t===void 0?!1:["Times","Divide","Plus","Minus"].includes(t.name),Ee=(t,e)=>{var r;let{lastChild:n}=t,{pos:o}=e;for(;n;)if(n.from<o&&pt.includes(n.name)){if(n.name==="ParenthesizedExpression"){let i=(r=n.firstChild)==null?void 0:r.nextSibling;i&&(n=i)}return n}else n=n.prevSibling},Pn=(t,e)=>{var n;if(t.name==="ArgList"){let o=t.prevSibling;if(o)return(0,E.getValue)(o,e)}else if(t.name==="OpenBrace"){let o=(n=t.parent)==null?void 0:n.prevSibling;if((o==null?void 0:o.name)==="Function")return(0,E.getValue)(o,e)}},Rn=(t,e)=>{if(t.name==="RelationalExpression"){let n=dt(t);if((n==null?void 0:n.name)==="RelationalOperator")return(0,E.getValue)(n,e)}else{let n=t.prevSibling;if((n==null?void 0:n.name)==="RelationalOperator")return(0,E.getValue)(n,e)}},Bt=(t,e)=>{var n;if(t.name==="RelationalExpression"){if(((n=t.firstChild)==null?void 0:n.name)==="Column")return(0,E.getValue)(t.firstChild,e)}else{let o=t.prevSibling;if((o==null?void 0:o.name)==="Column")return(0,E.getValue)(o,e);if((o==null?void 0:o.name)==="RelationalOperator")return Bt(o,e)}},$t=async(t,e,n,o={})=>{let r=await e.getSuggestions(n,o),{startsWith:s=""}=o;return{from:t.pos-s.length,options:r}},Vt=(t,e,n,o,r)=>{let s=Ee(t,e);switch(console.log(`conditional expression last child ${s==null?void 0:s.name}`),s==null?void 0:s.name){case"If":return $t(e,n,"expression",{prefix:"( "});case"OpenBrace":return $t(e,n,"expression");case"Condition":return $t(e,n,"expression",{prefix:", "});case"CloseBrace":if(o){let i=[{apply:()=>{r==null||r()},label:"Save Expression",boost:10}];return{from:e.pos,options:i}}}},Sr=(t,e)=>{let n=[{apply:()=>{e==null||e()},label:"Save Expression",boost:10}];return{from:t.pos,options:n}},Dn=(t,e)=>{let n=(0,Kt.useCallback)(async(o,r,s={})=>{let i=await t.getSuggestions(r,s),{startsWith:u=""}=s;return{from:o.pos-u.length,options:i}},[t]);return(0,Kt.useCallback)(async o=>{var g,b;let{state:r,pos:s}=o,i=(g=o.matchBefore(/\w*/))!=null?g:{from:0,to:0,text:void 0},a=(0,E.syntaxTree)(r).resolveInner(s,-1),c=r.doc.toString(),p=It(c);switch(console.log({nodeBeforeName:a.name}),a.name){case"If":return console.log("conditional expression If"),n(o,"expression",{prefix:"( "});case"Condition":{let l=Ee(a,o);if((l==null?void 0:l.name)==="Column"){let m=(0,E.getPreviousNode)(l);if((m==null?void 0:m.name)!=="RelationalOperator")return n(o,"condition-operator",{columnName:(0,E.getValue)(l,r)});console.log(`Condition last child Column, prev child ${m==null?void 0:m.name}`)}else if((l==null?void 0:l.name)==="RelationalOperator")return n(o,"expression");console.log(`condition last child ${l==null?void 0:l.name}`)}break;case"ConditionalExpression":return Vt(a,o,t);case"RelationalExpression":{if(zt(a))return{from:o.pos,options:E.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let l=Rn(a,r),m=Bt(a,r);if(l)return n(o,"expression");{let f=await t.getSuggestions("condition-operator",{columnName:m});return{from:o.pos,options:f}}}}break;case"RelationalOperator":return n(o,"expression");case"String":{let l=Rn(a,r),m=Bt(a,r),{from:f,to:C}=a;if(C-f===2&&o.pos===f+1){if(m&&l)return n(o,"columnValue",{columnName:m,operator:l,startsWith:i.text})}else if(C-f>2&&o.pos===C)return n(o,"expression",{prefix:", "});console.log(`we have a string, column is ${m} ${f} ${C}`)}break;case"ArithmeticExpression":{let l=Ee(a,o);if((l==null?void 0:l.name)==="Column")return n(o,"expression");if(Er(l)){let m=l.name;return n(o,"column",{operator:m})}}break;case"OpenBrace":{let l=Pn(a,r);return n(o,"expression",{functionName:l})}break;case"ArgList":{let l=Pn(a,r),m=Ee(a,o),f=(m==null?void 0:m.name)==="OpenBrace"?void 0:",",C=await t.getSuggestions("expression",{functionName:l});return C=f?Tr(C,", "):C,(m==null?void 0:m.name)!=="OpenBrace"&&(m==null?void 0:m.name)!=="Comma"&&(C=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(C)),{from:o.pos,options:C}}case"Equal":if(c.trim()==="=")return n(o,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(o.pos===0)return n(o,"expression");{let l=Ee(a,o);if((l==null?void 0:l.name)==="Column"){if(p){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],f=(0,E.getValue)(l,r),C=await t.getSuggestions("operator",{columnName:f});return{from:o.pos,options:m.concat(C)}}}else if((l==null?void 0:l.name)==="CallExpression"){if(p){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}];return{from:o.pos,options:m}}}else if((l==null?void 0:l.name)==="ArithmeticExpression"){if(p){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],f=Ee(l,o);if((f==null?void 0:f.name)==="Column"){let C=(0,E.getValue)(f,r),v=await t.getSuggestions("operator",{columnName:C});m=m.concat(v)}return{from:o.pos,options:m}}}else if((l==null?void 0:l.name)==="ConditionalExpression")return Vt(l,o,t,p,e.current);break}case"Column":if(await t.isPartialMatch("expression",void 0,i.text))return n(o,"expression",{startsWith:i.text});break;case"Comma":{let l=(0,E.getNamedParentNode)(a);if((l==null?void 0:l.name)==="ConditionalExpression")return n(o,"expression")}break;case"CloseBrace":{let l=(0,E.getNamedParentNode)(a);if((l==null?void 0:l.name)==="ConditionalExpression")return Vt(l,o,t,p,e.current);if((l==null?void 0:l.name)==="ArgList"&&p)return Sr(o,e.current);console.log(`does closebrace denote an ARgList or a parenthetised expression ? ${l}`)}break;default:((b=a==null?void 0:a.prevSibling)==null?void 0:b.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[n,e,t])};var Be=t=>{if(t.current==null)throw Error("EditorView not defined");return t.current},wr=()=>"vuuSuggestion",Pr=()=>console.log("noooop"),Rr=t=>"expressionType"in t,Dr=t=>{if(Rr(t)){let e=(0,Wt.createEl)("div","expression-type-container"),n=(0,Wt.createEl)("span","expression-type",t.expressionType);return e.appendChild(n),e}else return null},Gt=({onChange:t,onSubmitExpression:e,suggestionProvider:n})=>{let o=(0,ne.useRef)(null),r=(0,ne.useRef)(Pr),s=(0,ne.useRef)(),i=Dn(n,r),[u,a]=(0,ne.useMemo)(()=>{let c=()=>{let f=Be(s),C=f.state.doc.toString(),v=(0,T.ensureSyntaxTree)(f.state,f.state.doc.length,5e3);if(v){let B=Ft(v,C);return[C,B]}else return["",void 0]},p=()=>{Be(s).setState(m())},g=()=>{let[f,C]=c();e==null||e(f,C),p()},b=f=>T.keymap.of([{key:f,run(){return g(),!0}}]),l=f=>T.keymap.of([{key:f,run(){return(0,T.startCompletion)(Be(s)),!0}}]),m=()=>T.EditorState.create({doc:"",extensions:[T.minimalSetup,(0,T.autocompletion)({addToOptions:[{render:Dr,position:70}],override:[i],optionClass:wr}),Mt(),T.keymap.of(T.defaultKeymap),b("Ctrl-Enter"),l("ArrowDown"),T.EditorView.updateListener.of(f=>{let C=Be(s);if(f.docChanged){(0,T.startCompletion)(C);let v=C.state.doc.toString();t==null||t(v,void 0)}}),wn,En]});return r.current=()=>{g(),setTimeout(()=>{Be(s).focus()},100)},[m,p]},[i,t,e]);return(0,ne.useEffect)(()=>{if(!o.current)throw Error("editor not in dom");return s.current=new T.EditorView({state:u(),parent:o.current}),()=>{var c;(c=s.current)==null||c.destroy()}},[i,u]),{editorRef:o,clearInput:a}};var Mn=require("react/jsx-runtime"),Mr="vuuColumnExpressionInput",Qt=({onChange:t,onSubmitExpression:e,suggestionProvider:n})=>{let{editorRef:o}=Gt({onChange:t,onSubmitExpression:e,suggestionProvider:n});return(0,Mn.jsx)("div",{className:`${Mr}`,ref:o})};var U=require("@vuu-ui/vuu-codemirror"),ft=require("@vuu-ui/vuu-data-react"),Pe=require("@vuu-ui/vuu-utils"),we=require("react");var Se=[{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 Q=require("@vuu-ui/vuu-utils"),On=({name:t,description:e,example:n,params:o,type:r})=>{let s=(0,Q.createEl)("div","vuuFunctionDoc"),i=(0,Q.createEl)("div","function-heading"),u=(0,Q.createEl)("span","function-name",t),a=(0,Q.createEl)("span","param-list",o.description),c=(0,Q.createEl)("span","function-type",r);i.appendChild(u),i.appendChild(a),i.appendChild(c);let p=(0,Q.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(p),n){let g=(0,Q.createEl)("div","example-container","Example:"),b=(0,Q.createEl)("div","example-expression",n.expression),l=(0,Q.createEl)("div","example-result",n.result);g.appendChild(b),g.appendChild(l),s.appendChild(g)}return s};var Or=[],fe=t=>t.map(e=>{var n;return{...e,apply:((n=e.apply)!=null?n:e.label)+" "}}),Ar=(t,{functionName:e,operator:n})=>{if(n)return t.filter(Pe.isNumericColumn);if(e){let o=Se.find(r=>r.name===e);if(o)switch(o.accepts){case"string":return t.filter(Pe.isTextColumn);case"number":return t.filter(Pe.isNumericColumn);default:return t}}return t},An=(t,e)=>Ar(t,e).map(o=>{var s;let r=(s=o.label)!=null?s:o.name;return{apply:e.prefix?`${e.prefix}${r}`:r,label:r,boost:5,type:"column",expressionType:o.serverDataType}}),Hr=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Lr=t=>t===void 0||(0,Pe.isNumericColumn)(t)?Hr:Or,kr=t=>{switch(t.serverDataType){case"string":case"char":return fe(U.stringOperators);case"int":case"long":case"double":return fe(U.numericOperators)}},Ut=t=>({apply:`${t.name}( `,boost:2,expressionType:t.type,info:()=>On(t),label:t.name,type:"function"}),Nr=t=>{if(t){if(typeof t.accepts=="string")return t.accepts;if(Array.isArray(t.accepts))return t.accepts.every(e=>e==="string")?"string":"any"}return"any"},Fr=Se.map(Ut),Ir=({functionName:t})=>{if(t){let e=Se.find(o=>o.name===t),n=Nr(e);if(e)switch(n){case"string":return Se.filter(o=>o.type==="string"||o.type==="variable").map(Ut);case"number":return Se.filter(o=>o.type==="number"||o.type==="variable").map(Ut);default:}}return Fr},zr={},Xt=({columns:t,table:e})=>{let n=(0,we.useCallback)(u=>u?t.find(a=>a.name===u):void 0,[t]),o=(0,we.useRef)(),r=(0,ft.useTypeaheadSuggestions)(),s=(0,we.useCallback)(async(u,a=zr)=>{let{columnName:c,functionName:p,operator:g,prefix:b}=a;switch(u){case"expression":{let l=await fe(An(t,{functionName:p,prefix:b})).concat(Ir(a));return o.current=l}case"column":{let l=await An(t,a);return o.current=fe(l)}case"operator":{let l=await Lr(n(c));return o.current=fe(l)}case"relational-operator":{let l=await(0,U.getRelationalOperators)(n(c));return o.current=fe(l)}case"condition-operator":{let l=n(c);if(l){let m=await kr(l);if(m)return o.current=fe(m)}}break;case"columnValue":if(c&&g){let l=(0,ft.getTypeaheadParams)(e,c),m=await r(l);return o.current=(0,U.toSuggestions)(m,{suffix:""}),o.current.forEach(f=>{f.apply=(C,v,B)=>{let W=new U.AnnotationType,le=B+v.label.length+1;C.dispatch({changes:{from:B,insert:v.label},selection:{anchor:le,head:le},annotations:W.of(v)})}}),o.current}break}return[]},[t,n,r,e]),i=(0,we.useCallback)(async(u,a,c)=>{let{current:p}=o,g=!1,b=p||await s(u,{columnName:a});if(c&&b)for(let l of b){if(l.label===c)return!1;l.label.startsWith(c)&&(g=!0)}return g},[s]);return{getSuggestions:s,isPartialMatch:i}};var De=require("@salt-ds/core"),qn=S(require("classnames"),1),q=require("react");var Kn=require("@vuu-ui/vuu-layout"),Bn=require("@salt-ds/lab"),x=require("@salt-ds/core"),Wn=S(require("classnames"),1),J=require("react");var Nn=require("@vuu-ui/vuu-utils"),Fn=require("@salt-ds/lab"),In=require("@salt-ds/core"),_t=S(require("classnames"),1),zn=require("react");var Ge=require("@salt-ds/lab"),Re=require("@salt-ds/core"),We=require("react");var k=require("react/jsx-runtime"),$r={alignOnDecimals:!1,decimals:4,zeroPad:!1},Vr=(t,e)=>{let n=typeof t=="object"&&t.formatting?t.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((r,s)=>n[s]!==void 0?{...r,[s]:n[s]}:(e==null?void 0:e[s])!==void 0?{...r,[s]:e[s]}:r,$r)},Hn=({column:t,dispatchColumnAction:e})=>{let{decimals:n,alignOnDecimals:o,zeroPad:r}=Vr(t==null?void 0:t.type),s=(0,We.useCallback)(c=>e({type:"updateColumnTypeFormatting",column:t,...c}),[t,e]),i=(0,We.useCallback)(c=>s({decimals:parseInt(c.toString(),10)}),[s]),u=(0,We.useCallback)(c=>s({alignOnDecimals:!!c.target.value}),[s]),a=(0,We.useCallback)(c=>s({zeroPad:!!c.target.value}),[s]);switch(t.serverDataType){case"double":return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsxs)(Re.FormField,{labelPlacement:"top",children:[(0,k.jsx)(Re.FormFieldLabel,{children:"No of Decimals"}),(0,k.jsx)(Ge.StepperInput,{value:n,onChange:i})]}),(0,k.jsx)(Ge.Switch,{checked:o,label:"Align on decimals",onChange:u}),(0,k.jsx)(Ge.Switch,{checked:r,label:"Zero pad",onChange:a})]});case"long":case"int":return(0,k.jsx)(k.Fragment,{children:(0,k.jsx)(Re.Text,{children:"Work in progress"})});default:return null}};var gt=require("react/jsx-runtime"),Ln=({column:t,dispatchColumnAction:e})=>(console.log({column:t,dispatchColumnAction:e}),(0,gt.jsx)(gt.Fragment,{children:"what"}));var Z=require("react/jsx-runtime"),Yt="vuuColumnTypePanel",Kr=["Default Renderer (int, long)"],Br=["Default Renderer (double)"],kn=["Default Renderer (string)"],Wr=t=>{let n=(0,Nn.getRegisteredCellRenderers)(t.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:n}),t.serverDataType){case"char":case"string":return kn;case"int":case"long":return Kr;case"double":return Br.concat(n);default:return kn}},$n=({className:t,column:e,dispatchColumnAction:n,...o})=>{let r=(0,zn.useMemo)(()=>{switch(e.serverDataType){case"double":case"int":case"long":return(0,Z.jsx)(Hn,{column:e,dispatchColumnAction:n});default:return(0,Z.jsx)(Ln,{column:e,dispatchColumnAction:n})}},[e,n]),{serverDataType:s="string"}=e,i=Wr(e);return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Fn.Dropdown,{className:(0,_t.default)(`${Yt}-renderer`),fullWidth:!0,selected:i[0],source:i}),(0,Z.jsx)(In.Panel,{...o,className:(0,_t.default)(Yt,t,`${Yt}-${s}`),children:r})]})};var y=require("react/jsx-runtime"),Vn="vuuColumnSettingsPanel",Gr={className:"salt-density-high"},Gn=({column:t,dispatchColumnAction:e,style:n,...o})=>{var b,l,m,f;let[r,s]=(0,J.useState)(0),i=(0,J.useCallback)(C=>e({type:"updateColumnProp",column:t,...C}),[t,e]),u=(0,J.useCallback)(C=>i({align:C.target.value}),[i]),a=(0,J.useCallback)(C=>i({pin:C.target.value}),[i]),c=(0,J.useCallback)(C=>i({hidden:C.target.checked}),[i]),p=(0,J.useCallback)(C=>i({label:C.target.value}),[i]),g=(0,J.useCallback)(C=>i({width:parseInt(C.toString(),10)}),[i]);return(0,y.jsxs)("div",{className:Vn,...o,style:{...n},children:[(0,y.jsx)(x.Text,{as:"h4",children:"Column Settings"}),(0,y.jsxs)(Kn.Stack,{active:r,className:(0,Wn.default)(`${Vn}-columnTabs`),onTabSelectionChanged:s,TabstripProps:Gr,children:[(0,y.jsxs)(x.Panel,{title:"Column",children:[(0,y.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,y.jsx)(x.FormFieldLabel,{children:"Hidden"}),(0,y.jsx)(x.Checkbox,{checked:t.hidden===!0,onChange:c})]}),(0,y.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,y.jsx)(x.FormFieldLabel,{children:"Label"}),(0,y.jsx)(x.Input,{value:(b=t.label)!=null?b:t.name,onChange:p})]}),(0,y.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,y.jsx)(x.FormFieldLabel,{children:"Width"}),(0,y.jsx)(Bn.StepperInput,{value:(l=t.width)!=null?l:100,onChange:g})]}),(0,y.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,y.jsx)(x.FormFieldLabel,{children:"ALign"}),(0,y.jsxs)(x.RadioButtonGroup,{"aria-label":"Column Align",value:(m=t.align)!=null?m:"left",onChange:u,children:[(0,y.jsx)(x.RadioButton,{label:"Left",value:"left"}),(0,y.jsx)(x.RadioButton,{label:"Right",value:"right"})]})]}),(0,y.jsxs)(x.FormField,{labelPlacement:"left",children:[(0,y.jsx)(x.FormFieldLabel,{children:"Pin Column"}),(0,y.jsxs)(x.RadioButtonGroup,{"aria-label":"Pin Column",value:(f=t.pin)!=null?f:"",onChange:a,children:[(0,y.jsx)(x.RadioButton,{label:"Do not pin",value:""}),(0,y.jsx)(x.RadioButton,{label:"Left",value:"left"}),(0,y.jsx)(x.RadioButton,{label:"Right",value:"right"})]})]})]}),(0,y.jsx)($n,{column:t,dispatchColumnAction:e,title:"Data Cell"}),(0,y.jsxs)(x.Panel,{title:"Vuu",variant:"secondary",children:[(0,y.jsxs)(x.FormField,{labelPlacement:"top",readOnly:!0,children:[(0,y.jsx)(x.FormFieldLabel,{children:"Name"}),(0,y.jsx)(x.Input,{value:t.name})]}),(0,y.jsxs)(x.FormField,{labelPlacement:"top",readOnly:!0,children:[(0,y.jsx)(x.FormFieldLabel,{children:"Vuu Type"}),(0,y.jsx)(x.Input,{value:t.serverDataType})]})]})]})]})};var D=require("@salt-ds/core"),Qn=require("@salt-ds/lab"),Ct=require("react");var O=require("react/jsx-runtime"),Qr="vuuGridSettingsPanel",Un=({config:t,dispatchColumnAction:e,style:n,...o})=>{var u;let r=(0,Ct.useCallback)(a=>e({type:"updateGridSettings",...a}),[e]),s=(0,Ct.useCallback)(a=>r({columnFormatHeader:a.target.value}),[r]),i=(0,Ct.useCallback)(a=>r({columnDefaultWidth:parseInt(a.toString(),10)}),[r]);return(0,O.jsxs)("div",{className:Qr,...o,style:{...n},children:[(0,O.jsx)(D.Text,{as:"h4",children:"Grid Settings"}),(0,O.jsxs)(D.Panel,{children:[(0,O.jsxs)(D.FormField,{labelPlacement:"left",children:[(0,O.jsx)(D.FormFieldLabel,{children:"Format column labels"}),(0,O.jsxs)(D.RadioButtonGroup,{"aria-label":"Format column labels",value:t.columnFormatHeader,onChange:s,children:[(0,O.jsx)(D.RadioButton,{label:"No Formatting",value:void 0}),(0,O.jsx)(D.RadioButton,{label:"Capitalize",value:"capitalize"}),(0,O.jsx)(D.RadioButton,{label:"Uppercase",value:"uppercase"})]})]}),(0,O.jsxs)(D.FormField,{labelPlacement:"left",children:[(0,O.jsx)(D.FormFieldLabel,{children:"Default Column Width"}),(0,O.jsx)(Qn.StepperInput,{value:(u=t.columnDefaultWidth)!=null?u:100,onChange:i})]})]})]})};var Xn=require("react"),Yn=require("@vuu-ui/vuu-ui-controls"),_n=require("@vuu-ui/vuu-utils"),Ur=(t,e)=>{switch(console.log(`gridSettingsReducer ${e.type}`),e.type){case"addColumn":return Xr(t,e);case"addCalculatedColumn":return Yr(t,e);case"moveColumn":return Zr(t,e);case"removeColumn":return _r(t,e);case"updateColumn":return t;case"updateColumnProp":return Jr(t,e);case"updateGridSettings":return qr(t,e);case"updateColumnTypeFormatting":return jr(t,e);default:return t}},Zn=t=>{let[e,n]=(0,Xn.useReducer)(Ur,t);return{gridSettings:e,dispatchColumnAction:n}};function Xr(t,{column:e,columns:n,index:o=-1}){let{columns:r}=t;if(o===-1){if(Array.isArray(n))return{...t,columns:r.concat(n)};if(e)return{...t,columns:r.concat(e)}}return t}function Yr(t,{columnName:e,columnType:n,expression:o}){let{columns:r}=t,s={name:e,expression:o,serverDataType:n};return{...t,columns:r.concat(s)}}function _r(t,{column:e}){let{columns:n}=t;return{...t,columns:n.filter(o=>o.name!==e.name)}}function Zr(t,{column:e,moveBy:n,moveFrom:o,moveTo:r}){let{columns:s}=t;if(e&&typeof n=="number"){let i=s.indexOf(e),u=s.slice(),[a]=u.splice(i,1);return u.splice(i+n,0,a),{...t,columns:u}}else return typeof o=="number"&&typeof r=="number"?{...t,columns:(0,Yn.moveItem)(s,o,r)}:t}function Jr(t,{align:e,column:n,hidden:o,label:r,width:s}){let{columns:i}=t;return(e==="left"||e==="right")&&(i=Qe(i,{...n,align:e})),typeof o=="boolean"&&(i=Qe(i,{...n,hidden:o})),typeof r=="string"&&(i=Qe(i,{...n,label:r})),typeof s=="number"&&(i=Qe(i,{...n,width:s})),{...t,columns:i}}function qr(t,{columnFormatHeader:e}){return{...t,columnFormatHeader:e!=null?e:t.columnFormatHeader}}function jr(t,{alignOnDecimals:e,column:n,decimals:o,zeroPad:r}){let{columns:s}=t;if(s.find(u=>u.name===n.name)){let{serverDataType:u="string",type:a=(0,_n.fromServerDataType)(u)}=n,c=typeof a=="string"?{name:a}:{...a};return typeof e=="boolean"&&(c.formatting={...c.formatting,alignOnDecimals:e}),typeof o=="number"&&(c.formatting={...c.formatting,decimals:o}),typeof r=="boolean"&&(c.formatting={...c.formatting,zeroPad:r}),{...t,columns:Qe(s,{...n,type:c})}}else return t}function Qe(t,e){return t.map(n=>n.name===e.name?e:n)}var jn=require("@vuu-ui/vuu-layout");var I=require("@salt-ds/core"),Y=require("react");var X=require("react/jsx-runtime"),Jn=({columns:t,dispatchColumnAction:e,table:n})=>{let[o,r]=(0,Y.useState)(""),[,s]=(0,Y.useState)(),i=(0,Y.useRef)(""),u=Xt({columns:t,table:n}),a=(0,Y.useCallback)(b=>{let{value:l}=b.target;r(l)},[]),c=(0,Y.useCallback)(b=>{i.current=b},[]),p=(0,Y.useCallback)((b,l)=>{console.log({source:b}),s(l)},[]),g=(0,Y.useCallback)(()=>{i.current&&(console.log(`save expression ${JSON.stringify(i.current,null,2)}`),e({type:"addCalculatedColumn",columnName:o,expression:i.current,columnType:"string"}))},[o,e]);return(0,X.jsxs)(I.Panel,{className:"vuuCalculatedColumnPanel",title:"Define Computed Column",children:[(0,X.jsx)(I.Text,{styleAs:"h4",children:"Define Computed Column"}),(0,X.jsxs)(I.FormField,{labelPlacement:"left",children:[(0,X.jsx)(I.FormFieldLabel,{children:"Column Name"}),(0,X.jsx)(I.Input,{value:o,onChange:a})]}),(0,X.jsx)(Qt,{onChange:c,onSubmitExpression:p,suggestionProvider:u}),(0,X.jsx)("div",{style:{marginTop:12},children:(0,X.jsx)(I.Button,{onClick:g,children:"Add Column"})})]})};var A=require("react/jsx-runtime"),bt="vuuDatagridSettingsPanel",es=()=>{},ts=["table-settings","column-chooser","column-settings","define-column"],ns=(t,e)=>ts[e],os=({availableColumns:t,className:e,gridConfig:n,onCancel:o,onConfigChange:r,...s})=>{var le;console.log("DatagridSettingsPanel render");let[i,u]=(0,q.useState)(0),{gridSettings:a,dispatchColumnAction:c}=Zn(n),[p,g]=(0,q.useState)(null),b=(0,q.useCallback)(z=>{g(z?z.name:null)},[]),l=(0,q.useCallback)((z,Rt=!1)=>{console.log("1) DataGridSettingsPanel fire onConfigChange"),r==null||r(a,Rt)},[a,r]),m=(0,q.useCallback)(z=>{u(z)},[]),f=(0,q.useCallback)(z=>l(z,!0),[l]),C=p===null?null:(le=a.columns.find(z=>z.name===p))!=null?le:null,v={activeTabIndex:i,allowRenameTab:!1,orientation:"vertical"},B=(0,q.useCallback)(()=>u(3),[]),W=i===2?"right":void 0;return(0,A.jsxs)("div",{...s,className:(0,qn.default)(bt,e),children:[(0,A.jsxs)(jn.Stack,{TabstripProps:v,className:`${bt}-stack`,getTabIcon:ns,getTabLabel:es,active:i===2?1:i,onTabSelectionChanged:m,children:[(0,A.jsx)(Un,{config:a,dispatchColumnAction:c}),(0,A.jsx)("div",{className:`${bt}-columnPanels`,"data-align":W,children:C===null?(0,A.jsx)(De.Panel,{className:"vuuColumnSettingsPanel",children:"Select a column"}):(0,A.jsx)(Gn,{column:C,dispatchColumnAction:c,style:{background:"white",flex:"1 0 150px"}})}),(0,A.jsx)("div",{title:"Column Settings",children:"Column Settings"}),(0,A.jsx)(Jn,{columns:a.columns,dispatchColumnAction:c,table:{module:"SIMUL",table:"instruments"}})]}),(0,A.jsxs)("div",{className:`${bt}-buttonBar`,children:[(0,A.jsx)(De.Button,{onClick:o,children:"Cancel"}),(0,A.jsx)(De.Button,{onClick:l,children:"Apply"}),(0,A.jsx)(De.Button,{onClick:f,children:"Save"})]})]})};var Ue=require("react"),eo=S(require("classnames"),1);var oe=require("react/jsx-runtime"),ht="vuuDatasourceStats",Zt=new Intl.NumberFormat,rs=({className:t,dataSource:e})=>{let[n,o]=(0,Ue.useState)(e.range),[r,s]=(0,Ue.useState)(e.size);(0,Ue.useEffect)(()=>{s(e.size),e.on("resize",s),e.on("range",o)},[e]);let i=(0,eo.default)(ht,t),u=Zt.format(n.from),a=Zt.format(n.to-1),c=Zt.format(r);return(0,oe.jsxs)("div",{className:i,children:[(0,oe.jsx)("span",{children:"Showing rows"}),(0,oe.jsx)("span",{className:`${ht}-range`,children:u}),(0,oe.jsx)("span",{className:`${ht}-range`,children:a}),(0,oe.jsx)("span",{children:"of"}),(0,oe.jsx)("span",{className:`${ht}-size`,children:c})]})};var H=require("@salt-ds/core");var qo=require("@vuu-ui/vuu-layout");var to=require("react");var ss=require("react/jsx-runtime");var is=require("@vuu-ui/vuu-utils");var ls=require("@vuu-ui/vuu-utils"),Me=require("@vuu-ui/vuu-utils");var{Average:nu,Count:ou,Distinct:ru,High:su,Low:iu,Sum:lu}=Me.AggregationType;var Gs=require("@vuu-ui/vuu-popups"),Oo=require("@salt-ds/core");var ge=require("@vuu-ui/vuu-utils"),fo=require("react");var K=require("@vuu-ui/vuu-utils"),lo=S(require("classnames")),Ye=require("react");var xt=require("@vuu-ui/vuu-utils"),oo=require("@vuu-ui/vuu-ui-controls"),ro=S(require("classnames")),j=require("react");var Xe=require("react/jsx-runtime"),{KEY:no}=xt.metadataKeys,Jt=(0,j.memo)(({className:t,column:e,columnMap:n,onClick:o,row:r})=>{let s=(0,j.useRef)(null),{align:i,CellRenderer:u,key:a,pin:c,editable:p,resizing:g,valueFormatter:b}=e,[l,m]=(0,j.useState)(!1),f=b(r[a]),[C,v]=(0,j.useState)(f),B=()=>{var _;(_=s.current)==null||_.focus()},W=_=>{_.key==="Enter"&&m(!0)},le=(0,j.useCallback)(_=>{o==null||o(_,e)},[e,o]),z=()=>{m(!0)},Rt=(_="",an="",jo=!0,er=!1)=>{var un;m(!1),er?v(_):an!==_&&v(an),jo===!1&&((un=s.current)==null||un.focus())},sn=(0,ro.default)(t,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":g})||void 0,ln=(0,xt.getColumnStyle)(e);return p?(0,Xe.jsx)("div",{className:sn,"data-editable":!0,role:"cell",style:ln,onKeyDown:W,children:(0,Xe.jsx)(oo.EditableLabel,{editing:l,value:C,onChange:v,onMouseDownCapture:B,onEnterEditMode:z,onExitEditMode:Rt,onKeyDown:W,ref:s,tabIndex:0},"title")}):(0,Xe.jsx)("div",{className:sn,role:"cell",style:ln,onClick:le,children:u?(0,Xe.jsx)(u,{column:e,columnMap:n,row:r}):f})},as);Jt.displayName="TableCell";function as(t,e){return t.column===e.column&&t.onClick===e.onClick&&t.row[no]===e.row[no]&&t.row[t.column.key]===e.row[e.column.key]}var Ae=require("@vuu-ui/vuu-utils"),so=require("react");var Oe=require("react/jsx-runtime"),{IS_LEAF:us}=Ae.metadataKeys,io=({column:t,onClick:e,row:n})=>{let{columns:o}=t,[r,s]=(0,Ae.getGroupValueAndOffset)(o,n),i=(0,so.useCallback)(p=>{e==null||e(p,t)},[t,e]),u=(0,Ae.getColumnStyle)(t),a=n[us],c=Array(s).fill(0).map((p,g)=>(0,Oe.jsx)("span",{className:"vuuTableGroupCell-spacer"},g));return(0,Oe.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:a?void 0:i,role:"cell",style:u,children:[c,a?null:(0,Oe.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,Oe.jsx)("span",{children:r})]})};var _e=require("react/jsx-runtime"),{IDX:cs,IS_EXPANDED:ms,SELECTED:ps}=K.metadataKeys,yt="vuuTableRow",ds=(0,Ye.memo)(function({columnMap:e,columns:n,offset:o,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:u}){let{[cs]:a,[ms]:c,[ps]:p}=u,g=(0,lo.default)(yt,{[`${yt}-even`]:a%2===0,[`${yt}-expanded`]:c,[`${yt}-preSelected`]:p===2}),b=(0,Ye.useCallback)(m=>{let f=m.shiftKey,C=m.ctrlKey||m.metaKey;r==null||r(u,f,C)},[r,u]),l=(0,Ye.useCallback)((m,f)=>{((0,K.isGroupColumn)(f)||(0,K.isJsonGroup)(f,u))&&(m.stopPropagation(),s==null||s(u,f))},[s,u]);return(0,_e.jsxs)("div",{"aria-selected":p===1?!0:void 0,"aria-rowindex":a,className:g,onClick:b,role:"row",style:{transform:`translate3d(0px, ${o}px, 0px)`},children:[i>0?(0,_e.jsx)("div",{role:"cell",style:{width:i}}):null,n.filter(K.notHidden).map(m=>{let f=(0,K.isGroupColumn)(m),C=(0,K.isJsonColumn)(m);return(0,_e.jsx)(f?io:Jt,{column:m,columnMap:e,onClick:f||C?l:void 0,row:u},m.name)})]})});var Cs=S(require("classnames")),bs=require("react");var ao=require("react");var uo=require("react/jsx-runtime");var Ss=S(require("classnames")),mo=require("react");var hs=S(require("classnames"));var co=require("react/jsx-runtime");var ws=require("@vuu-ui/vuu-popups");var xs=require("@vuu-ui/vuu-popups"),ys=S(require("classnames")),vs=require("react");var Ts=require("react/jsx-runtime");var po=require("react/jsx-runtime");var go=require("react/jsx-runtime");var{RENDER_IDX:Cc}=ge.metadataKeys;var Bs=require("@vuu-ui/vuu-popups"),He=require("@vuu-ui/vuu-utils"),et=require("react");var Co=require("@vuu-ui/vuu-data-react"),vt=require("@vuu-ui/vuu-utils"),Ze=require("react"),{SELECTED:hc}=vt.metadataKeys;var Ps=require("@vuu-ui/vuu-ui-controls"),bo=require("react");var Ls=require("@vuu-ui/vuu-utils"),Je=require("react");function Rs(t,...e){let n=new Set(t);for(let o of e)for(let r of o)n.add(r);return n}var ho="ArrowUp",xo="ArrowDown",yo="ArrowLeft",vo="ArrowRight";var To="Home",Eo="End",So="PageUp",wo="PageDown";var Ds=new Set(["Enter","Delete"," "]),Ms=new Set(["Tab"]),Os=new Set(["ArrowRight","ArrowLeft"]),As=new Set([To,Eo,So,wo,xo,yo,vo,ho]),Hs=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Tc=Rs(Ds,As,Os,Hs,Ms);var Fs=require("@vuu-ui/vuu-utils"),Tt=require("react");var qt=require("react");var ks=new Map,Ns=(t,e,n)=>{switch(n){case"height":return e.height;case"clientHeight":return t.clientHeight;case"clientWidth":return t.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(t.scrollHeight);case"scrollWidth":return Math.ceil(t.scrollWidth);case"width":return e.width;default:return 0}},kc=new ResizeObserver(t=>{for(let e of t){let{target:n,borderBoxSize:o,contentBoxSize:r}=e,s=ks.get(n);if(s){let[{blockSize:i,inlineSize:u}]=o,[{blockSize:a,inlineSize:c}]=r,{onResize:p,measurements:g}=s,b=!1;for(let[l,m]of Object.entries(g)){let f=Ns(n,{height:i,width:u,contentHeight:a,contentWidth:c},l);f!==m&&(b=!0,g[l]=f)}b&&p&&p(g)}}});var qe=require("@vuu-ui/vuu-utils"),Po=require("react"),{IDX:Kc}=qe.metadataKeys;var w=require("@vuu-ui/vuu-utils"),Is=require("react");var Gc=w.metadataKeys.count;var Ro=require("react");var jt=require("react"),Do=require("@vuu-ui/vuu-utils");var Mo=require("@vuu-ui/vuu-utils"),je=require("react");var{KEY:hm,IS_EXPANDED:xm,IS_LEAF:ym}=He.metadataKeys;var Qs=S(require("classnames"));var Us=require("@vuu-ui/vuu-utils"),Ao=require("react/jsx-runtime");var Ho=S(require("classnames")),ke=require("@vuu-ui/vuu-utils");var Le=require("react/jsx-runtime"),tt="vuuJsonCell",{IS_EXPANDED:Xs,KEY:Ys}=ke.metadataKeys,_s=t=>{let e=t.lastIndexOf("|");return e===-1?"":t.slice(e+1)},Zs=({column:t,row:e})=>{let{key:n}=t,o=e[n],r=!1;(0,ke.isJsonAttribute)(o)&&(o=o.slice(0,-1),r=!0);let s=_s(e[Ys]),i=(0,Ho.default)({[`${tt}-name`]:s===o,[`${tt}-value`]:s!==o,[`${tt}-group`]:r});if(r){let u=e[Xs]?"minus-box":"plus-box";return(0,Le.jsxs)("span",{className:i,children:[(0,Le.jsx)("span",{className:`${tt}-value`,children:o}),(0,Le.jsx)("span",{className:`${tt}-toggle`,"data-icon":u})]})}else return o?(0,Le.jsx)("span",{className:i,children:o}):null};(0,ke.registerComponent)("json",Zs,"cell-renderer",{});var ai=require("@vuu-ui/vuu-popups"),on=require("@vuu-ui/vuu-utils");var zo=require("react");var Lo=require("@vuu-ui/vuu-utils"),ko=S(require("classnames")),No=require("react"),nt=(t,e,n)=>(0,No.useMemo)(()=>{let o=(0,ko.default)(e,{vuuPinFloating:t.pin==="floating",vuuPinLeft:t.pin==="left",vuuPinRight:t.pin==="right",vuuEndPin:n&&t.endPin,[`${e}-resizing`]:t.resizing,[`${e}-right`]:t.align==="right"}),r=(0,Lo.getColumnStyle)(t);return{className:o,style:r}},[t,e,n]);var Js=require("@vuu-ui/vuu-popups"),qs=S(require("classnames")),en=require("react");var js=require("react/jsx-runtime");var Fo=require("react");var ei=require("react/jsx-runtime");var Io=require("react");var $o=require("react/jsx-runtime");var se=require("@vuu-ui/vuu-utils"),Go=S(require("classnames")),wt=require("react");var Ko=require("react/jsx-runtime"),Vo=({column:t,row:e})=>{let{className:n,style:o}=nt(t,"vuuTableNextCell");return(0,Ko.jsx)("div",{className:n,role:"cell",style:o,children:e[t.key]})};var Et=require("@vuu-ui/vuu-utils"),Bo=require("react");var Ne=require("react/jsx-runtime"),{IS_LEAF:ti}=Et.metadataKeys,Wo=({column:t,onClick:e,row:n})=>{let{columns:o}=t,[r,s]=(0,Et.getGroupValueAndOffset)(o,n),{className:i,style:u}=nt(t,"vuuTable2-groupCell"),a=(0,Bo.useCallback)(g=>{e==null||e(g,t)},[t,e]),c=n[ti],p=Array(s).fill(0).map((g,b)=>(0,Ne.jsx)("span",{className:"vuuTable2-groupCell-spacer"},b));return(0,Ne.jsxs)("div",{className:i,role:"cell",style:u,onClick:c?void 0:a,children:[p,c?null:(0,Ne.jsx)("span",{className:"vuuTable2-groupCell-toggle","data-icon":"vuu-triangle-right"}),(0,Ne.jsx)("span",{children:r})]})};var St=require("react/jsx-runtime"),Uo=require("react"),{IDX:ni,IS_EXPANDED:oi,SELECTED:ri}=se.metadataKeys,re="vuuTableNextRow",Qo=(0,wt.memo)(({className:t,columnMap:e,columns:n,row:o,offset:r,onClick:s,onToggleGroup:i,...u})=>{let{[ni]:a,[oi]:c,[ri]:p}=o,g=(0,wt.useCallback)(v=>{let B=v.shiftKey,W=v.ctrlKey||v.metaKey;s==null||s(o,B,W)},[s,o]),{True:b,First:l,Last:m}=se.RowSelected,f=(0,Go.default)(re,t,{[`${re}-even`]:a%2===0,[`${re}-expanded`]:c,[`${re}-selected`]:p&b,[`${re}-selectedStart`]:p&l,[`${re}-selectedEnd`]:p&m}),C=typeof r=="number"?{transform:`translate3d(0px, ${r}px, 0px)`}:void 0;return(0,Uo.createElement)("div",{...u,key:`row-${o[0]}`,role:"row",className:f,onClick:g,style:C},(0,St.jsx)("span",{className:`${re}-selectionDecorator vuuStickyLeft`}),n.filter(se.notHidden).map(v=>{let W=(0,se.isGroupColumn)(v)?Wo:Vo;return(0,St.jsx)(W,{column:v,row:o},v.key)}),(0,St.jsx)("span",{className:`${re}-selectionDecorator vuuStickyRight`}))});Qo.displayName="Row";var Zo=require("@vuu-ui/vuu-layout"),li=require("@vuu-ui/vuu-popups"),ot=require("@vuu-ui/vuu-utils"),nn=require("react");var Pt=(t,e)=>{switch(e.type){case"col-size":return{...t,columns:t.columns.map(n=>n.name===e.column.name?{...n,width:e.width}:n)};case"column-prop":return{...t,columns:t.columns.map(n=>n.name===e.column.name?{...n,[e.property]:e.value}:n)};default:return t}};var tn=require("react");var Xo=require("react");var si=require("@vuu-ui/vuu-ui-controls"),P=require("@vuu-ui/vuu-utils"),ii=require("react"),{info:Gp}=(0,P.logger)("useTableModel");var Qp=P.metadataKeys.count;var Yo=require("react");var _o=require("react");var Jo=require("react/jsx-runtime");var{IDX:Ed,RENDER_IDX:Sd}=on.metadataKeys;var ie=require("react"),ui=(t,e)=>t.map(({name:n,serverDataType:o})=>{let r=e.find(s=>s.name===n);return{hidden:r==null?void 0:r.hidden,label:r==null?void 0:r.label,name:n,serverDataType:o,subscribed:r!==void 0}}),rn=({availableColumns:t,onConfigChange:e,tableConfig:n})=>{let[o,r]=(0,ie.useState)(n),s=(0,ie.useMemo)(()=>ui(t,o.columns),[t,o.columns]),i=(0,ie.useCallback)((p,g)=>{console.log(`move list item from ${p} to ${g}`)},[]),u=(0,ie.useCallback)((p,g,b)=>{let l=s.find(m=>m.name===p);if(g==="subscribed")console.log(`unsubscribe from ${p}`);else if(l!=null&&l.subscribed){let m=o.columns.find(f=>f.name===p);if(m){let f=Pt(o,{type:"column-prop",property:g,column:m,value:b});r(f)}}},[s,o]),a=(0,ie.useCallback)(p=>{let{value:g}=p.target,b=g==="0"?void 0:g==="1"?"capitalize":"uppercase";r(l=>({...l,columnFormatHeader:b}))},[]);(0,qo.useLayoutEffectSkipFirst)(()=>{e==null||e(o)},[e,o]);let c=o.columnFormatHeader===void 0?0:o.columnFormatHeader==="capitalize"?1:2;return{columnItems:s,columnLabelsValue:c,onChangeColumnLabels:a,onColumnChange:u,onMoveListItem:i}};var N=require("react/jsx-runtime"),ci="vuuTableSettingsPanel",mi=({availableColumns:t,onConfigChange:e,tableConfig:n,...o})=>{let{columnItems:r,columnLabelsValue:s,onChangeColumnLabels:i,onColumnChange:u,onMoveListItem:a}=rn({availableColumns:t,onConfigChange:e,tableConfig:n});return(0,N.jsxs)("div",{...o,className:ci,children:[(0,N.jsxs)(H.FormField,{children:[(0,N.jsx)(H.FormFieldLabel,{children:"Column Labels"}),(0,N.jsxs)(H.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:i,value:s,children:[(0,N.jsx)(H.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-strikethrough",value:0}),(0,N.jsx)(H.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-Tt",value:1}),(0,N.jsx)(H.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-T",value:2})]})]}),(0,N.jsxs)(H.FormField,{children:[(0,N.jsx)(H.FormFieldLabel,{children:"Default Column Width"}),(0,N.jsx)(H.Input,{className:"vuuInput"})]}),(0,N.jsx)(Dt,{columnItems:r,onChange:u,onMoveListItem:a})]})};
2
2
  //# sourceMappingURL=index.js.map