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

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 (100) 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 +11 -11
  8. package/types/cell-edit-validators/CaseValidator.d.ts +2 -0
  9. package/types/cell-edit-validators/PatternValidator.d.ts +2 -0
  10. package/types/cell-edit-validators/index.d.ts +2 -0
  11. package/types/cell-renderers/background-cell/index.d.ts +1 -0
  12. package/types/cell-renderers/background-cell/useDirection.d.ts +3 -0
  13. package/types/cell-renderers-next/background-cell/BackgroundCell.d.ts +5 -0
  14. package/types/cell-renderers-next/index.d.ts +1 -0
  15. package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/ColumnExpressionInput.d.ts +4 -3
  16. package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/useColumnExpressionEditor.d.ts +2 -7
  17. package/types/column-expression-panel/ColumnExpressionPanel.d.ts +8 -0
  18. package/types/column-expression-panel/index.d.ts +1 -0
  19. package/types/column-expression-panel/useColumnExpression.d.ts +11 -0
  20. package/types/column-formatting-settings/ColumnFormattingPanel.d.ts +12 -0
  21. package/types/column-formatting-settings/NumericFormattingSettings.d.ts +7 -0
  22. package/types/column-formatting-settings/index.d.ts +2 -0
  23. package/types/column-settings/ColumnSettingsPanel.d.ts +12 -0
  24. package/types/column-settings/useColumnSettings.d.ts +17 -0
  25. package/types/index.d.ts +11 -0
  26. package/types/{vuu-table-extras/src/table-settings → table-settings}/TableSettingsPanel.d.ts +6 -4
  27. package/types/table-settings/useTableSettings.d.ts +17 -0
  28. package/types/useTableAndColumnSettings.d.ts +15 -0
  29. package/types/vuu-data/src/array-data-source/array-data-source.d.ts +0 -65
  30. package/types/vuu-data/src/array-data-source/group-utils.d.ts +0 -10
  31. package/types/vuu-data/src/array-data-source/sort-utils.d.ts +0 -4
  32. package/types/vuu-data/src/authenticate.d.ts +0 -1
  33. package/types/vuu-data/src/connection-manager.d.ts +0 -46
  34. package/types/vuu-data/src/connectionTypes.d.ts +0 -5
  35. package/types/vuu-data/src/constants.d.ts +0 -41
  36. package/types/vuu-data/src/data-source.d.ts +0 -172
  37. package/types/vuu-data/src/index.d.ts +0 -10
  38. package/types/vuu-data/src/inlined-worker.d.ts +0 -1
  39. package/types/vuu-data/src/json-data-source.d.ts +0 -53
  40. package/types/vuu-data/src/message-utils.d.ts +0 -26
  41. package/types/vuu-data/src/remote-data-source.d.ts +0 -56
  42. package/types/vuu-data/src/server-proxy/messages.d.ts +0 -43
  43. package/types/vuu-data/src/vuuUIMessageTypes.d.ts +0 -202
  44. package/types/vuu-data/src/websocket-connection.d.ts +0 -25
  45. package/types/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -11
  46. package/types/vuu-table-extras/src/datagrid-configuration-ui/calculated-column-panel/index.d.ts +0 -1
  47. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnListItem.d.ts +0 -4
  48. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/ColumnPicker.d.ts +0 -13
  49. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-picker/index.d.ts +0 -1
  50. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-settings-panel/ColumnSettingsPanel.d.ts +0 -9
  51. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.d.ts +0 -10
  52. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/NumericColumnPanel.d.ts +0 -4
  53. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/StringColumnPanel.d.ts +0 -4
  54. package/types/vuu-table-extras/src/datagrid-configuration-ui/column-type-panel/index.d.ts +0 -1
  55. package/types/vuu-table-extras/src/datagrid-configuration-ui/index.d.ts +0 -1
  56. package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/DatagridSettingsPanel.d.ts +0 -10
  57. package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/GridSettingsPanel.d.ts +0 -9
  58. package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/index.d.ts +0 -1
  59. package/types/vuu-table-extras/src/datagrid-configuration-ui/settings-panel/useGridSettings.d.ts +0 -59
  60. package/types/vuu-table-extras/src/index.d.ts +0 -6
  61. package/types/vuu-table-extras/src/table-settings/useTableSettings.d.ts +0 -14
  62. package/types/vuu-table-extras/src/table-settings-deprecated/calculated-column-panel/CalculatedColumnPanel.d.ts +0 -11
  63. package/types/vuu-table-extras/src/table-settings-deprecated/calculated-column-panel/index.d.ts +0 -1
  64. package/types/vuu-table-extras/src/table-settings-deprecated/column-settings-panel/ColumnSettingsPanel.d.ts +0 -9
  65. package/types/vuu-table-extras/src/table-settings-deprecated/column-settings-panel/index.d.ts +0 -1
  66. package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/ColumnTypePanel.d.ts +0 -10
  67. package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/NumericColumnPanel.d.ts +0 -4
  68. package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/StringColumnPanel.d.ts +0 -4
  69. package/types/vuu-table-extras/src/table-settings-deprecated/column-type-panel/index.d.ts +0 -1
  70. package/types/vuu-table-extras/src/table-settings-deprecated/index.d.ts +0 -1
  71. package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/DatagridSettingsPanel.d.ts +0 -10
  72. package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/GridSettingsPanel.d.ts +0 -9
  73. package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/index.d.ts +0 -1
  74. package/types/vuu-table-extras/src/table-settings-deprecated/settings-panel/useGridSettings.d.ts +0 -59
  75. /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/background-cell/BackgroundCell.d.ts +0 -0
  76. /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/index.d.ts +0 -0
  77. /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/progress-cell/ProgressCell.d.ts +0 -0
  78. /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers}/progress-cell/index.d.ts +0 -0
  79. /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers-next}/background-cell/index.d.ts +0 -0
  80. /package/types/{vuu-table-extras/src/cell-renderers → cell-renderers-next}/background-cell/useDirection.d.ts +0 -0
  81. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-function-descriptors.d.ts +0 -0
  82. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/ColumnExpressionLanguage.d.ts +0 -0
  83. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/ColumnExpressionTreeWalker.d.ts +0 -0
  84. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/column-expression-parse-utils.d.ts +0 -0
  85. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/generated/column-parser.d.ts +0 -0
  86. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/generated/column-parser.terms.d.ts +0 -0
  87. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/index.d.ts +0 -0
  88. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/column-language-parser/test.d.mts +0 -0
  89. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/functionDocInfo.d.ts +0 -0
  90. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/highlighting.d.ts +0 -0
  91. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/index.d.ts +0 -0
  92. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/theme.d.ts +0 -0
  93. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/useColumnAutoComplete.d.ts +0 -0
  94. /package/types/{vuu-table-extras/src/column-expression-input → column-expression-input}/useColumnExpressionSuggestionProvider.d.ts +0 -0
  95. /package/types/{vuu-table-extras/src/column-list → column-list}/ColumnList.d.ts +0 -0
  96. /package/types/{vuu-table-extras/src/column-list → column-list}/index.d.ts +0 -0
  97. /package/types/{vuu-table-extras/src/datagrid-configuration-ui/column-settings-panel → column-settings}/index.d.ts +0 -0
  98. /package/types/{vuu-table-extras/src/datasource-stats → datasource-stats}/DatasourceStats.d.ts +0 -0
  99. /package/types/{vuu-table-extras/src/datasource-stats → datasource-stats}/index.d.ts +0 -0
  100. /package/types/{vuu-table-extras/src/table-settings → table-settings}/index.d.ts +0 -0
package/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
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})]})};
1
+ "use strict";var Br=Object.create;var ft=Object.defineProperty;var Wr=Object.getOwnPropertyDescriptor;var Qr=Object.getOwnPropertyNames;var Gr=Object.getPrototypeOf,Ur=Object.prototype.hasOwnProperty;var Xr=(t,e)=>{for(var o in e)ft(t,o,{get:e[o],enumerable:!0})},Fo=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Qr(e))!Ur.call(t,r)&&r!==o&&ft(t,r,{get:()=>e[r],enumerable:!(n=Wr(e,r))||n.enumerable});return t};var w=(t,e,o)=>(o=t!=null?Br(Gr(t)):{},Fo(e||!t||!t.__esModule?ft(o,"default",{value:t,enumerable:!0}):o,t)),_r=t=>Fo(ft({},"__esModule",{value:!0}),t);var Io=(t,e,o)=>{if(!e.has(t))throw TypeError("Cannot "+o)};var C=(t,e,o)=>(Io(t,e,"read from private field"),o?o.call(t):e.get(t)),G=(t,e,o)=>{if(e.has(t))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(t):e.set(t,o)},ae=(t,e,o,n)=>(Io(t,e,"write to private field"),n?n.call(t,o):e.set(t,o),o);var vl={};Xr(vl,{BackgroundCell:()=>Xo,CaseValidator:()=>zo,ColumnExpressionInput:()=>fo,ColumnExpressionPanel:()=>bo,ColumnFormattingPanel:()=>Jt,ColumnList:()=>Gt,ColumnNamedTerms:()=>Rt,ColumnSettingsPanel:()=>$s,DataSourceStats:()=>Bs,NumericFormattingSettings:()=>Xt,PatternValidator:()=>$o,TableSettingsPanel:()=>yl,columnExpressionLanguageSupport:()=>Zt,isCompleteExpression:()=>so,isCompleteRelationalExpression:()=>io,lastNamedChild:()=>St,useColumnExpressionEditor:()=>po,useColumnExpressionSuggestionProvider:()=>Co,useTableAndColumnSettings:()=>Sr,useTableSettings:()=>Oo,walkTree:()=>ro});module.exports=_r(vl);var Ko=require("@vuu-ui/vuu-utils"),Yr=t=>typeof t=="string",zo=(t,e)=>Yr(e)?e===""?!0:t.value==="lower"&&e.toLowerCase()!==e?"value must be all lowercase":t.value==="upper"&&e.toUpperCase()!==e?"value must be all uppercase":!0:"value must be a string";(0,Ko.registerComponent)("vuu-case",zo,"data-edit-validator",{});var Vo=require("@vuu-ui/vuu-utils"),Jr=t=>typeof t=="string",Zr="value does not match expected pattern",$o=(t,e)=>{if(typeof t.value!="string")throw Error("Pattern validation rule must provide pattern");if(Jr(e)){if(e==="")return!0;{let{message:o=Zr}=t;return new RegExp(t.value).test(e)||o}}else return"value must be a string"};(0,Vo.registerComponent)("vuu-pattern",$o,"data-edit-validator",{});var F=require("@vuu-ui/vuu-utils"),Wo=w(require("classnames"),1);var pe=require("@vuu-ui/vuu-utils"),gt=require("react"),qr=[void 0,void 0,void 0,void 0];function Bo(t,e,o){var d;let n=(0,gt.useRef)(),[r,s,i,l]=n.current||qr,{type:u}=o,c=(0,pe.isTypeDescriptor)(u)?(d=u.formatting)==null?void 0:d.decimals:void 0,m=t===r&&(0,pe.isValidNumber)(e)&&(0,pe.isValidNumber)(s)&&o===i?(0,pe.getMovingValueDirection)(e,l,s,c):"";return(0,gt.useEffect)(()=>{n.current=[t,e,o,m]}),m}var bt=require("react/jsx-runtime"),jr=String.fromCharCode(11014),es=String.fromCharCode(11015),{KEY:ts}=F.metadataKeys,Ct="vuuBackgroundCellDeprecated",Qe={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},os=t=>(0,F.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Qe.BackgroundOnly,ns=({column:t,row:e})=>{let{key:o,type:n,valueFormatter:r}=t,s=e[o],i=os(n),l=Bo(e[ts],s,t),u=i===Qe.ArrowOnly||i===Qe.ArrowBackground?l===F.UP1||l===F.UP2?jr:l===F.DOWN1||l===F.DOWN2?es:null:null,c=l?" "+l:"",m=(0,Wo.default)(Ct,c,{[`${Ct}-arrowOnly`]:i===Qe.ArrowOnly,[`${Ct}-arrowBackground`]:i===Qe.ArrowBackground});return(0,bt.jsxs)("div",{className:m,tabIndex:-1,children:[(0,bt.jsx)("div",{className:`${Ct}-flasher`,children:u}),r(e[t.key])]})};(0,F.registerComponent)("background",ns,"cell-renderer",{description:"Background Cell renderer for VuuTable",label:"Background Cell (deprecated)",serverDataType:["long","int","double"]});var j=require("@vuu-ui/vuu-utils"),Qo=w(require("classnames"),1);var de=require("react/jsx-runtime"),Ge="vuuProgressCell",rs=({column:t,columnMap:e,row:o})=>{let{type:n}=t,r=o[t.key],s=!1,i=0;if((0,j.isTypeDescriptor)(n)&&(0,j.isColumnTypeRenderer)(n.renderer)){let{associatedField:u}=n.renderer;if(u){let c=o[e[u]];if(typeof(0,j.isValidNumber)(r)&&(0,j.isValidNumber)(c))i=Math.min(Math.round(r/c*100),100),i=Math.min(Math.round(r/c*100),100),s=isFinite(i);else{let m=parseFloat(r);if(Number.isFinite(m)){let d=parseFloat(c);Number.isFinite(d)&&(i=Math.min(Math.round(m/d*100),100),s=isFinite(i))}}}else throw Error("ProgressCell associatedField is required to render")}let l=(0,Qo.default)(Ge,{});return(0,de.jsxs)("div",{className:l,tabIndex:-1,children:[s?(0,de.jsxs)("span",{className:`${Ge}-track`,children:[(0,de.jsx)("span",{className:`${Ge}-bg`}),(0,de.jsx)("span",{className:`${Ge}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,de.jsx)("span",{className:`${Ge}-text`,children:`${i} %`})]})};(0,j.registerComponent)("vuu.progress",rs,"cell-renderer",{description:"Progress formatter",label:"Progress formatter",serverDataType:["long","int","double"]});var I=require("@vuu-ui/vuu-utils"),Uo=w(require("classnames"),1);var fe=require("@vuu-ui/vuu-utils"),ht=require("react"),ss=[void 0,void 0,void 0,void 0];function Go(t,e,o){var d;let n=(0,ht.useRef)(),[r,s,i,l]=n.current||ss,{type:u}=o,c=(0,fe.isTypeDescriptor)(u)?(d=u.formatting)==null?void 0:d.decimals:void 0,m=t===r&&(0,fe.isValidNumber)(e)&&(0,fe.isValidNumber)(s)&&o===i?(0,fe.getMovingValueDirection)(e,l,s,c):"";return(0,ht.useEffect)(()=>{n.current=[t,e,o,m]}),m}var yt=require("react/jsx-runtime"),is=String.fromCharCode(11014),ls=String.fromCharCode(11015),{KEY:as}=I.metadataKeys,xt="vuuBackgroundCell",Ue={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},us=t=>(0,I.isTypeDescriptor)(t)&&t.renderer&&"flashStyle"in t.renderer?t.renderer.flashStyle:Ue.BackgroundOnly,Xo=({column:t,row:e})=>{let{key:o,type:n,valueFormatter:r}=t,s=e[o],i=us(n),l=Go(e[as],s,t),u=i===Ue.ArrowOnly||i===Ue.ArrowBackground?l===I.UP1||l===I.UP2?is:l===I.DOWN1||l===I.DOWN2?ls:null:null,c=l?" "+l:"",m=(0,Uo.default)(xt,c,{[`${xt}-arrowOnly`]:i===Ue.ArrowOnly,[`${xt}-arrowBackground`]:i===Ue.ArrowBackground});return(0,yt.jsxs)("div",{className:m,tabIndex:-1,children:[(0,yt.jsx)("div",{className:`${xt}-flasher`,children:u}),r(e[t.key])]})};console.log("register BackgroundCellNext");(0,I.registerComponent)("background-next",Xo,"cell-renderer",{description:"Change background color of cell when value changes",label:"Background Flash",serverDataType:["long","int","double"]});var vt=require("@vuu-ui/vuu-ui-controls"),_o=require("@salt-ds/core"),Yo=require("@salt-ds/lab"),Jo=w(require("classnames"),1),Zo=require("react");var K=require("react/jsx-runtime"),ee="vuuColumnList",qo="vuuColumnListItem",cs=({className:t,item:e,...o})=>{var n;return(0,K.jsxs)(vt.ListItem,{...o,className:(0,Jo.default)(t,qo),"data-name":e==null?void 0:e.name,children:[e!=null&&e.isCalculated?(0,K.jsx)("span",{className:`${ee}-icon`,"data-icon":"function"}):(0,K.jsx)(Yo.Switch,{className:`${ee}-switch`,checked:e==null?void 0:e.subscribed}),(0,K.jsx)("span",{className:`${ee}-text`,children:(n=e==null?void 0:e.label)!=null?n:e==null?void 0:e.name}),(0,K.jsx)(_o.Checkbox,{className:`${ee}-checkBox`,checked:(e==null?void 0:e.hidden)!==!0,disabled:(e==null?void 0:e.subscribed)!==!0})]})},Gt=({columnItems:t,onChange:e,onMoveListItem:o,...n})=>{let r=(0,Zo.useCallback)(s=>{let i=s.target,l=i.closest(`.${qo}`),{dataset:{name:u}}=l;if(u){let c=i.closest(`.${ee}-switch`),m=i.closest(`.${ee}-checkBox`);c?e(u,"subscribed",i.checked):m&&e(u,"hidden",i.checked===!1)}},[e]);return(0,K.jsxs)("div",{...n,className:ee,children:[(0,K.jsx)("div",{className:`${ee}-header`,children:(0,K.jsx)("span",{children:"Column Selection"})}),(0,K.jsxs)("div",{className:`${ee}-colHeadings`,children:[(0,K.jsx)("span",{children:"Column subscription"}),(0,K.jsx)("span",{children:"Visibility"})]}),(0,K.jsx)(vt.List,{ListItem:cs,allowDragDrop:!0,height:"100%",onChange:r,onMoveListItem:o,selectionStrategy:"none",source:t,itemHeight:33})]})};var Ot=require("@vuu-ui/vuu-utils"),D=require("@salt-ds/core");var en=require("@vuu-ui/vuu-ui-controls"),Tt=require("@salt-ds/core"),Yt=w(require("classnames"),1),tn=require("react");var X=require("@salt-ds/core"),Ut=require("@salt-ds/lab"),jo=require("@vuu-ui/vuu-utils"),ge=require("react"),W=require("react/jsx-runtime"),ms="vuuFormattingSettings",Xt=({column:t,onChange:e})=>{var u;let[o,n]=(0,ge.useState)((0,jo.getTypeSettingsFromColumn)(t)),r=(0,ge.useCallback)(c=>{(c.key==="Enter"||c.key==="Tab")&&e(o)},[o,e]),s=(0,ge.useCallback)(c=>{let{value:m}=c.target,d=m===""||isNaN(parseInt(m))?void 0:parseInt(m),b={...o,decimals:d};n(b)},[o]),i=(0,ge.useCallback)(c=>{let{checked:m}=c.target,d={...o,alignOnDecimals:m};n(d),e(d)},[o,e]),l=(0,ge.useCallback)(c=>{let{checked:m}=c.target,d={...o,zeroPad:m};n(d),e(d)},[o,e]);return(0,W.jsxs)("div",{className:ms,children:[(0,W.jsxs)(X.FormField,{"data-field":"decimals",children:[(0,W.jsx)(X.FormFieldLabel,{children:"Number of decimals"}),(0,W.jsx)(X.Input,{className:"vuuInput",onChange:s,onKeyDown:r,value:(u=o.decimals)!=null?u:""})]}),(0,W.jsxs)(X.FormField,{labelPlacement:"left",children:[(0,W.jsx)(X.FormFieldLabel,{children:"Align on decimals"}),(0,W.jsx)(Ut.Switch,{checked:o.alignOnDecimals,onChange:i,value:"align-decimals"})]}),(0,W.jsxs)(X.FormField,{labelPlacement:"left",children:[(0,W.jsx)(X.FormFieldLabel,{children:"Zero pad decimals"}),(0,W.jsx)(Ut.Switch,{checked:o.zeroPad,onChange:l,value:"zero-pad"})]})]})};var te=require("react/jsx-runtime"),_t="vuuColumnFormattingPanel",ps=t=>{var e;return(e=t.label)!=null?e:t.name},Jt=({availableRenderers:t,selectedCellRenderer:e,className:o,column:n,onChangeFormatting:r,onChangeRenderer:s,...i})=>{let l=(0,tn.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,te.jsx)(Xt,{column:n,onChange:r});default:return null}},[n,r]),{serverDataType:u="string"}=n;return(0,te.jsxs)("div",{...i,className:"vuuColumnSettingsPanel-header",children:[(0,te.jsx)("div",{children:"Formatting"}),(0,te.jsxs)(Tt.FormField,{children:[(0,te.jsx)(Tt.FormFieldLabel,{children:"Renderer"}),(0,te.jsx)(en.Dropdown,{className:(0,Yt.default)(`${_t}-renderer`),itemToString:ps,onSelectionChange:s,selected:e,source:t,width:"100%"})]}),(0,te.jsx)("div",{className:(0,Yt.default)(_t,o,`${_t}-${u}`),children:l})]})};var L=require("@vuu-ui/vuu-utils"),k=require("react"),ds=[{description:"Default formatter for columns with data type integer",label:"Default Renderer (data type int, long)",name:"default-int"}],fs=[{description:"Default formatter for columns with data type double",label:"Default Renderer (data type double)",name:"default-double"},...(0,L.getRegisteredCellRenderers)("double")],on=[{description:"Default formatter for columns with data type string",label:"Default Renderer (data type string)",name:"default-string"}],rn=t=>{switch(t.serverDataType){case"char":case"string":return on;case"int":case"long":return ds;case"double":return fs;default:return on}},nn=(t,e)=>{if((0,L.isTypeDescriptor)(e.type)){let{renderer:n}=e.type;if((0,L.isColumnTypeRenderer)(n)){let r=t.find(s=>s.name===n.name);if(r)return r}}return rn(e)[0]},gs=t=>{let e=t.closest(".saltFormField");if(e&&e.dataset.field){let{dataset:{field:o}}=e;return o}else throw Error("named form field not found")},Cs=(t,e)=>{if(e.name==="::")return e;{let o=t.find(n=>n.name===e.name);if(o)return o;throw Error(`columns does not contain column ${name}`)}},Xe=(t,e)=>({...t,columns:t.columns.map(o=>o.name===e.name?e:o)}),sn=({column:t,onConfigChange:e,onCreateCalculatedColumn:o,tableConfig:n})=>{let[r,s]=(0,k.useState)(Cs(n.columns,t)),i=(0,k.useMemo)(()=>rn(r),[r]),l=(0,k.useRef)(nn(i,r)),u=(0,k.useCallback)(()=>{e(Xe(n,r))},[r,e,n]),c=(0,k.useCallback)(f=>{let h=f.target,v=gs(h),{value:E}=h;switch(v){case"column-label":s(y=>({...y,label:E}));break;case"column-name":s(y=>(0,L.setCalculatedColumnName)(y,E));break;case"column-width":s(y=>({...y,width:parseInt(E)}));break;case"column-alignment":if((0,L.isValidColumnAlignment)(E)){let y={...r,align:E||void 0};s(y),e(Xe(n,y))}break;case"column-pin":if((0,L.isValidPinLocation)(E)){let y={...r,pin:E||void 0};s(y),e(Xe(n,y));break}}},[r,e,n]),m=(0,k.useCallback)((f,h)=>{if(h){let v=(0,L.updateColumnRenderer)(r,h);l.current=h,s(v),e(Xe(n,v))}},[r,e,n]),d=(0,k.useCallback)(f=>{let h=(0,L.updateColumnType)(r,f);s(h),e(Xe(n,h))},[r,e,n]),b=(0,k.useCallback)(({moveBy:f})=>{let{columns:h}=n,v=h.indexOf(r)+f,E=h[v];E&&(l.current=nn(i,E),s(E))},[i,r,n]),a=(0,k.useCallback)(()=>{b({moveBy:1})},[b]),p=(0,k.useCallback)(()=>{b({moveBy:-1})},[b]),g=(0,k.useCallback)(f=>{o({...r,...f})},[r,o]);return{availableRenderers:i,selectedCellRenderer:l.current,column:r,navigateNextColumn:a,navigatePrevColumn:p,onChange:c,onChangeFormatting:d,onChangeRenderer:m,onInputCommit:u,onSave:g}};var yn=require("@vuu-ui/vuu-ui-controls"),Le=require("@vuu-ui/vuu-utils"),z=require("@salt-ds/core"),Ht=require("react");var M=require("@vuu-ui/vuu-codemirror"),mo=require("@vuu-ui/vuu-utils"),ue=require("react");var U=require("@vuu-ui/vuu-codemirror");var ln=require("@lezer/lr"),Et=ln.LRParser.deserialize({version:14,states:"&fOVQPOOO!SQPO'#C^OVQPO'#CcQ!pQPOOO#OQPO'#CkO#TQPO'#CrOOQO'#Cy'#CyO#YQPO,58}OVQPO,59QOVQPO,59QOVQPO,59VOVQPO'#CtOOQO,59^,59^OOQO1G.i1G.iOOQO1G.l1G.lO#kQPO1G.lO$fQPO'#CmO%WQQO1G.qOOQO'#C{'#C{O%cQPO,59`OOQO'#Cn'#CnO%wQPO,59XOVQPO,59ZOVQPO,59[OVQPO7+$]OVQPO'#CuO&`QPO1G.zOOQO1G.z1G.zO&hQQO'#C^O&rQQO1G.sO'ZQQO1G.uOOQO1G.v1G.vO'fQPO<<GwO'wQPO,59aOOQO-E6s-E6sOOQO7+$f7+$fOVQPOAN=cO(]QQO1G.lO(tQPOG22}OOQOLD(iLD(iO%wQPO,59QO%wQPO,59Q",stateData:")[~OlOS~ORUOSUOTUOUUOWQO`SOnPO~OWgXZQX[QX]QX^QXeQX~OjQXXQXpQXqQXrQXsQXtQXuQX~PnOZWO[WO]XO^XO~OWYO~OWZO~OX]OZWO[WO]XO^XO~OZWO[WO]Yi^YijYiXYipYiqYirYisYitYiuYieYi~OZWO[WO]XO^XOpdOqdOrdOsdOtdOudO~OehOvfOwgO~OXkOZWO[WO]XO^XOeiO~ORUOSUOTUOUUOWQO`SOnlO~OXsOeiO~OvQXwQX~PnOZxO[xO]yO^yOeaivaiwai~OwgOecivci~OZWO[WO]XO^XOetO~OZWO[WO]XO^XOXiaeia~OZxO[xO]Yi^YieYivYiwYi~OXwOZWO[WO]XO^XO~O`UTn~",goto:"#spPPqPPPPqPPqPPPPqP!R!W!R!RPq!Z!k!nPPP!tP#jmUOQWXYZefghitxyVbYfgRe`mTOQWXYZefghitxyR[TQjcRrjQROQVQS^WxQ_XU`YfgQcZQmeQphQqiQuyRvtQaYQnfRog",nodeNames:"\u26A0 ColumnDefinitionExpression Column Number String True False ParenthesizedExpression OpenBrace CloseBrace ArithmeticExpression Divide Times Plus Minus ConditionalExpression If RelationalExpression RelationalOperator AndCondition OrCondition Comma CallExpression Function ArgList",maxTerm:39,skippedNodes:[0],repeatNodeCount:1,tokenData:".^~RnXY#PYZ#P]^#Ppq#Pqr#brs#mxy$eyz$jz{$o{|$t|}$y}!O%O!O!P%T!P!Q%c!Q![%h!^!_%s!_!`&Q!`!a&V!c!}&d#R#S&d#T#U&u#U#Y&d#Y#Z(Y#Z#]&d#]#^*j#^#c&d#c#d+f#d#h&d#h#i,b#i#o&d~#USl~XY#PYZ#P]^#Ppq#P~#eP!_!`#h~#mOu~~#pWOX#mZ]#m^r#mrs$Ys#O#m#P;'S#m;'S;=`$_<%lO#m~$_OS~~$bP;=`<%l#m~$jOW~~$oOX~~$tO[~~$yO]~~%OOe~~%TO^~~%WP!Q![%Z~%`PR~!Q![%Z~%hOZ~~%mQR~!O!P%Z!Q![%h~%xPr~!_!`%{~&QOt~~&VOp~~&[Pq~!_!`&_~&dOs~P&iSnP!Q![&d!c!}&d#R#S&d#T#o&dR&zUnP!Q![&d!c!}&d#R#S&d#T#b&d#b#c'^#c#o&dR'cUnP!Q![&d!c!}&d#R#S&d#T#W&d#W#X'u#X#o&dR'|SvQnP!Q![&d!c!}&d#R#S&d#T#o&d~(_TnP!Q![&d!c!}&d#R#S&d#T#U(n#U#o&d~(sUnP!Q![&d!c!}&d#R#S&d#T#`&d#`#a)V#a#o&d~)[UnP!Q![&d!c!}&d#R#S&d#T#g&d#g#h)n#h#o&d~)sUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y*V#Y#o&d~*^SU~nP!Q![&d!c!}&d#R#S&d#T#o&d~*oUnP!Q![&d!c!}&d#R#S&d#T#Y&d#Y#Z+R#Z#o&d~+YS`~nP!Q![&d!c!}&d#R#S&d#T#o&dR+kUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g+}#g#o&dR,USwQnP!Q![&d!c!}&d#R#S&d#T#o&d~,gUnP!Q![&d!c!}&d#R#S&d#T#f&d#f#g,y#g#o&d~-OUnP!Q![&d!c!}&d#R#S&d#T#i&d#i#j-b#j#o&d~-gUnP!Q![&d!c!}&d#R#S&d#T#X&d#X#Y-y#Y#o&d~.QST~nP!Q![&d!c!}&d#R#S&d#T#o&d",tokenizers:[0,1],topRules:{ColumnDefinitionExpression:[0,1]},tokenPrec:375});var bs=U.LRLanguage.define({name:"VuuColumnExpression",parser:Et.configure({props:[(0,U.styleTags)({Function:U.tags.variableName,String:U.tags.string,Or:U.tags.emphasis,Operator:U.tags.operator})]})}),Zt=()=>new U.LanguageSupport(bs);var qt=class{constructor(e){switch(this.value=e,typeof e){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},jt=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},Ye,be,eo=class{constructor(e="unknown"){G(this,Ye,[{type:"unknown"},{type:"unknown"}]);G(this,be,void 0);this.type="arithmeticExpression";ae(this,be,e)}get op(){return C(this,be)}set op(e){ae(this,be,e)}get expressions(){return C(this,Ye)}toJSON(){return{type:this.type,op:C(this,be),expressions:C(this,Ye)}}};Ye=new WeakMap,be=new WeakMap;var Re,to=class{constructor(e){G(this,Re,[]);this.type="callExpression";this.functionName=e}get expressions(){return C(this,Re)}get arguments(){return C(this,Re)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:C(this,Re).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Re=new WeakMap;var Je,Se,we=class{constructor(){G(this,Je,[{type:"unknown"},{type:"unknown"}]);G(this,Se,"unknown");this.type="relationalExpression"}get op(){return C(this,Se)}set op(e){ae(this,Se,e)}get expressions(){return C(this,Je)}toJSON(){return{type:this.type,op:C(this,Se),expressions:C(this,Je)}}};Je=new WeakMap,Se=new WeakMap;var Ze,Pe,De=class{constructor(e){G(this,Ze,[{type:"unknown"},{type:"unknown"}]);G(this,Pe,void 0);this.type="booleanCondition";ae(this,Pe,e)}get op(){return C(this,Pe)}get expressions(){return C(this,Ze)}toJSON(){return{type:this.type,op:C(this,Pe),expressions:C(this,Ze).map(e=>{var o;return(o=e.toJSON)==null?void 0:o.call(e)})}}};Ze=new WeakMap,Pe=new WeakMap;var _,_e=class{constructor(e){G(this,_,void 0);this.type="conditionalExpression";ae(this,_,[e?new De(e):new we,{type:"unknown"},{type:"unknown"}])}get expressions(){return C(this,_)}get condition(){return C(this,_)[0]}get truthyExpression(){return C(this,_)[1]}set truthyExpression(e){C(this,_)[1]=e}get falsyExpression(){return C(this,_)[2]}set falsyExpression(e){C(this,_)[2]=e}toJSON(){var e,o,n,r,s;return{type:this.type,condition:(o=(e=this.condition).toJSON)==null?void 0:o.call(e),truthyExpression:this.truthyExpression,falsyExpression:(s=(r=(n=this.falsyExpression)==null?void 0:n.toJSON)==null?void 0:r.call(n))!=null?s:this.falsyExpression}}};_=new WeakMap;var Ce=t=>t.type==="unknown",wt=t=>t.type==="arithmeticExpression",hs=t=>t.type==="callExpression",Ee=t=>t.type==="conditionalExpression",xs=t=>t.type==="relationalExpression"||t.type==="booleanCondition";var ys=t=>t.type==="booleanCondition",no=t=>(t==null?void 0:t.type)==="relationalExpression";var Q=t=>{if(Ce(t))return t;if(no(t)){let[e,o]=t.expressions;if(N(e))return Q(e);if(t.op==="unknown")return t;if(N(o))return Q(o)}else if(xs(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return Q(o)}else if(Ee(t)){let{condition:e,truthyExpression:o,falsyExpression:n}=t;if(N(e))return Q(e);if(N(o))return Q(o);if(N(n))return Q(n)}else if(wt(t)){let{expressions:e=[]}=t;for(let o of e)if(N(o))return Q(o)}},Dt=(t,e,o)=>{let{expressions:n=[]}=t;if(n.includes(e)){let r=n.indexOf(e);return n.splice(r,1,o),!0}else for(let r of n)if(Dt(r,e,o))return!0;return!1},N=t=>Ce(t)?!0:Ee(t)?N(t.condition)||N(t.truthyExpression)||N(t.falsyExpression):no(t)||ys(t)?t.op===void 0||t.expressions.some(e=>N(e)):!1,an=(t,e)=>{let o=Q(t);o?o.expressions?o.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},x,he,oo=class{constructor(){G(this,x,void 0);G(this,he,[])}setCondition(e){if(C(this,x)===void 0)this.addExpression(new _e(e));else if(Ee(C(this,x))){if(N(C(this,x).condition)){let o=e?new De(e):new we;this.addExpression(o)}else if(Ce(C(this,x).truthyExpression))C(this,x).truthyExpression=new _e(e);else if(N(C(this,x).truthyExpression)){let o=e?new De(e):new we;this.addExpression(o)}else if(Ce(C(this,x).falsyExpression))C(this,x).falsyExpression=new _e(e);else if(N(C(this,x).falsyExpression)){let o=e?new De(e):new we;this.addExpression(o)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(C(this,he).length>0){let o=C(this,he).at(-1);o==null||o.arguments.push(e)}else if(C(this,x)===void 0)ae(this,x,e);else if(wt(C(this,x))){let o=Q(C(this,x));o&&Ce(o)&&Dt(C(this,x),o,e)}else if(Ee(C(this,x))&&N(C(this,x))){let o=Q(C(this,x));o&&Ce(o)?Dt(C(this,x),o,e):o&&an(o,e)}}setFunction(e){let o=new to(e);this.addExpression(o),C(this,he).push(o)}setColumn(e){this.addExpression(new jt(e))}setArithmeticOp(e){let o=e,n=C(this,x);wt(n)&&(n.op=o)}setRelationalOperator(e){let o=e;if(C(this,x)&&Ee(C(this,x))){let n=Q(C(this,x));no(n)?n.op=o:console.error(`no target expression found (op = ${e})`)}}setValue(e){let o=new qt(e);if(C(this,x)===void 0)ae(this,x,o);else if(wt(C(this,x)))this.addExpression(o);else if(hs(C(this,x)))C(this,x).arguments.push(o);else if(Ee(C(this,x)))if(N(C(this,x))){let n=Q(C(this,x));n&&Ce(n)?Dt(C(this,x),n,o):n&&an(n,o)}else console.log("what do we do with value, in a complete expression")}closeBrace(){C(this,he).pop()}get expression(){return C(this,x)}toJSON(){var e;return(e=C(this,x))==null?void 0:e.toJSON()}};x=new WeakMap,he=new WeakMap;var ro=(t,e)=>{let o=new oo,n=t.cursor();do{let{name:r,from:s,to:i}=n;switch(r){case"AndCondition":o.setCondition("and");break;case"OrCondition":o.setCondition("or");break;case"RelationalExpression":o.setCondition();break;case"ArithmeticExpression":o.addExpression(new eo);break;case"Column":{let l=e.substring(s,i);o.setColumn(l)}break;case"Function":{let l=e.substring(s,i);o.setFunction(l)}break;case"Times":case"Divide":case"Plus":case"Minus":{let l=e.substring(s,i);o.setArithmeticOp(l)}break;case"RelationalOperator":{let l=e.substring(s,i);o.setRelationalOperator(l)}break;case"False":case"True":{let l=e.substring(s,i);o.setValue(l==="true")}break;case"String":o.setValue(e.substring(s+1,i-1));break;case"Number":o.setValue(parseFloat(e.substring(s,i)));break;case"CloseBrace":o.closeBrace();break;default:}}while(n.next());return o.toJSON()};var vs=Et.configure({strict:!0}),un=["Number","String"],Rt=[...un,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],so=t=>{try{return vs.parse(t),!0}catch{return!1}},St=t=>{let{lastChild:e}=t;for(;e&&!Rt.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},io=t=>{if((t==null?void 0:t.name)==="RelationalExpression"){let{firstChild:e}=t,o=St(t);if((e==null?void 0:e.name)==="Column"&&typeof(o==null?void 0:o.name)=="string"&&un.includes(o.name))return!0}return!1};var xe=require("@vuu-ui/vuu-codemirror"),Ts=xe.HighlightStyle.define([{tag:xe.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:xe.tags.comment,color:"green",fontStyle:"italic"}]),cn=(0,xe.syntaxHighlighting)(Ts);var mn=require("@vuu-ui/vuu-codemirror"),pn=mn.EditorView.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"},"&.cm-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var P=require("@vuu-ui/vuu-codemirror"),uo=require("react");var Es=(t,e)=>e?t.map(o=>{var n;return{...o,apply:typeof o.apply=="function"?o.apply:`${e}${(n=o.apply)!=null?n:o.label}`}}):t,ws=t=>t===void 0?!1:["Times","Divide","Plus","Minus"].includes(t.name),qe=t=>({apply:()=>{t==null||t()},label:"Done",boost:10}),Me=(t,e)=>{var r;let{lastChild:o}=t,{pos:n}=e;for(;o;)if(o.from<n&&Rt.includes(o.name)){if(o.name==="ParenthesizedExpression"){let i=(r=o.firstChild)==null?void 0:r.nextSibling;i&&(o=i)}return o}else o=o.prevSibling},dn=(t,e)=>{var o;if(t.name==="ArgList"){let n=t.prevSibling;if(n)return(0,P.getValue)(n,e)}else if(t.name==="OpenBrace"){let n=(o=t.parent)==null?void 0:o.prevSibling;if((n==null?void 0:n.name)==="Function")return(0,P.getValue)(n,e)}},fn=(t,e)=>{if(t.name==="RelationalExpression"){let o=St(t);if((o==null?void 0:o.name)==="RelationalOperator")return(0,P.getValue)(o,e)}else{let o=t.prevSibling;if((o==null?void 0:o.name)==="RelationalOperator")return(0,P.getValue)(o,e)}},co=(t,e)=>{var o;if(t.name==="RelationalExpression"){if(((o=t.firstChild)==null?void 0:o.name)==="Column")return(0,P.getValue)(t.firstChild,e)}else{let n=t.prevSibling;if((n==null?void 0:n.name)==="Column")return(0,P.getValue)(n,e);if((n==null?void 0:n.name)==="RelationalOperator")return co(n,e)}},lo=async(t,e,o,n={})=>{let r=await e.getSuggestions(o,n),{startsWith:s=""}=n;return{from:t.pos-s.length,options:r}},ao=(t,e,o,n,r)=>{let s=Me(t,e);switch(console.log(`conditional expression last child ${s==null?void 0:s.name}`),s==null?void 0:s.name){case"If":return lo(e,o,"expression",{prefix:"( "});case"OpenBrace":return lo(e,o,"expression");case"Condition":return lo(e,o,"expression",{prefix:", "});case"CloseBrace":if(n){let i=[qe(r)];return{from:e.pos,options:i}}}},Ds=(t,e)=>{let o=[qe(e)];return{from:t.pos,options:o}},gn=(t,e)=>{let o=(0,uo.useCallback)(async(n,r,s={})=>{let i=await t.getSuggestions(r,s),{startsWith:l=""}=s;return{from:n.pos-l.length,options:i}},[t]);return(0,uo.useCallback)(async n=>{var d,b;let{state:r,pos:s}=n,i=(d=n.matchBefore(/\w*/))!=null?d:{from:0,to:0,text:void 0},u=(0,P.syntaxTree)(r).resolveInner(s,-1),c=r.doc.toString(),m=so(c);switch(u.name){case"If":return console.log("conditional expression If"),o(n,"expression",{prefix:"( "});case"Condition":{let a=Me(u,n);if((a==null?void 0:a.name)==="Column"){let p=(0,P.getPreviousNode)(a);if((p==null?void 0:p.name)!=="RelationalOperator")return o(n,"condition-operator",{columnName:(0,P.getValue)(a,r)})}else if((a==null?void 0:a.name)==="RelationalOperator")return o(n,"expression");console.log(`condition last child ${a==null?void 0:a.name}`)}break;case"ConditionalExpression":return ao(u,n,t);case"RelationalExpression":{if(io(u))return{from:n.pos,options:P.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let a=fn(u,r),p=co(u,r);if(a)return o(n,"expression");{let g=await t.getSuggestions("condition-operator",{columnName:p});return{from:n.pos,options:g}}}}break;case"RelationalOperator":return o(n,"expression");case"String":{let a=fn(u,r),p=co(u,r),{from:g,to:f}=u;if(f-g===2&&n.pos===g+1){if(p&&a)return o(n,"columnValue",{columnName:p,operator:a,startsWith:i.text})}else if(f-g>2&&n.pos===f)return o(n,"expression",{prefix:", "})}break;case"ArithmeticExpression":{let a=Me(u,n);if((a==null?void 0:a.name)==="Column")return o(n,"expression");if(ws(a)){let p=a.name;return o(n,"column",{operator:p})}}break;case"OpenBrace":{let a=dn(u,r);return o(n,"expression",{functionName:a})}break;case"ArgList":{let a=dn(u,r),p=Me(u,n),g=(p==null?void 0:p.name)==="OpenBrace"?void 0:",",f=await t.getSuggestions("expression",{functionName:a});return f=g?Es(f,", "):f,(p==null?void 0:p.name)!=="OpenBrace"&&(p==null?void 0:p.name)!=="Comma"&&(f=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(f)),{from:n.pos,options:f}}case"Equal":if(c.trim()==="=")return o(n,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(n.pos===0)return o(n,"expression");{let a=Me(u,n);if((a==null?void 0:a.name)==="Column"){if(m){let p=[qe(e.current)],g=(0,P.getValue)(a,r),f=await t.getSuggestions("operator",{columnName:g});return{from:n.pos,options:p.concat(f)}}}else if((a==null?void 0:a.name)==="CallExpression"){if(m)return{from:n.pos,options:[qe(e.current)]}}else if((a==null?void 0:a.name)==="ArithmeticExpression"){if(m){let p=[qe(e.current)],g=Me(a,n);if((g==null?void 0:g.name)==="Column"){let f=(0,P.getValue)(g,r),h=await t.getSuggestions("operator",{columnName:f});p=p.concat(h)}return{from:n.pos,options:p}}}else if((a==null?void 0:a.name)==="ConditionalExpression")return ao(a,n,t,m,e.current);break}case"Column":if(await t.isPartialMatch("expression",void 0,i.text))return o(n,"expression",{startsWith:i.text});break;case"Comma":{let a=(0,P.getNamedParentNode)(u);if((a==null?void 0:a.name)==="ConditionalExpression")return o(n,"expression")}break;case"CloseBrace":{let a=(0,P.getNamedParentNode)(u);if((a==null?void 0:a.name)==="ConditionalExpression")return ao(a,n,t,m,e.current);if((a==null?void 0:a.name)==="ArgList"&&m)return Ds(n,e.current)}break;default:((b=u==null?void 0:u.prevSibling)==null?void 0:b.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[o,e,t])};var Pt=t=>{if(t.current==null)throw Error("EditorView not defined");return t.current},Rs=()=>"vuuSuggestion",Ss=()=>console.log("noooop"),Ps=t=>"expressionType"in t,Ms=t=>{if(Ps(t)){let e=(0,mo.createEl)("div","expression-type-container"),o=(0,mo.createEl)("span","expression-type",t.expressionType);return e.appendChild(o),e}else return null},po=({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n})=>{let r=(0,ue.useRef)(null),s=(0,ue.useRef)(Ss),i=(0,ue.useRef)(),l=gn(n,s),[u,c]=(0,ue.useMemo)(()=>{let m=()=>{let g=Pt(i),f=g.state.doc.toString(),h=(0,M.ensureSyntaxTree)(g.state,g.state.doc.length,5e3);if(h){let v=ro(h,f);return[f,v]}else return["",void 0]},d=()=>{Pt(i).setState(p())},b=()=>{let[g,f]=m();e==null||e(g,f)},a=g=>M.keymap.of([{key:g,run(){return(0,M.startCompletion)(Pt(i)),!0}}]),p=()=>M.EditorState.create({doc:o,extensions:[M.minimalSetup,(0,M.autocompletion)({addToOptions:[{render:Ms,position:70}],override:[l],optionClass:Rs}),Zt(),M.keymap.of(M.defaultKeymap),a("ArrowDown"),M.EditorView.updateListener.of(g=>{let f=Pt(i);if(g.docChanged){(0,M.startCompletion)(f);let h=f.state.doc.toString();t==null||t(h)}}),pn,cn]});return s.current=()=>{b()},[p,d]},[l,t,e,o]);return(0,ue.useEffect)(()=>{if(!r.current)throw Error("editor not in dom");return i.current=new M.EditorView({state:u(),parent:r.current}),()=>{var m;(m=i.current)==null||m.destroy()}},[l,u]),{editorRef:r,clearInput:c}};var Cn=require("react/jsx-runtime"),Hs="vuuColumnExpressionInput",fo=({onChange:t,onSubmitExpression:e,source:o="",suggestionProvider:n})=>{let{editorRef:r}=po({onChange:t,onSubmitExpression:e,source:o,suggestionProvider:n});return(0,Cn.jsx)("div",{className:`${Hs}`,ref:r})};var J=require("@vuu-ui/vuu-codemirror"),Mt=require("@vuu-ui/vuu-data-react"),Ae=require("@vuu-ui/vuu-utils"),Oe=require("react");var He=[{accepts:"string",description:"Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.",example:{expression:'concatenate("example", "-test")',result:'"example-test"'},name:"concatenate",params:{description:"( string, string, [ string* ] )"},type:"string"},{accepts:["string","string"],description:"Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>",example:{expression:'contains("Royal Bank of Scotland", "bank")',result:"true"},name:"contains",params:{description:"( string )"},type:"boolean"},{accepts:["string","number"],description:"Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:'left("USD Benchmark Report", 3)',result:'"USD"'},name:"left",params:{count:2,description:"( string, number )"},type:"string"},{accepts:"string",description:"Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.",example:{expression:'len("example")',result:"7"},name:"len",params:{description:"(string)"},type:"number"},{accepts:"string",description:"Convert a string value to lowercase. Argument may be a string column or other string expression.",example:{expression:'lower("examPLE")',result:'"example"'},name:"lower",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Convert a string value to uppercase. Argument may be a string column or other string expression.",example:{expression:'upper("example")',result:'"EXAMPLE"'},name:"upper",params:{description:"( string )"},type:"string"},{accepts:["string","number"],description:"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",example:{expression:"blah",result:"blah"},name:"right",params:{description:"( string )"},type:"string"},{accepts:["string","string","string"],description:"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",example:{expression:"blah",result:"blah"},name:"replace",params:{description:"( string )"},type:"string"},{accepts:"number",description:"Converts a number to a string.",example:{expression:"blah",result:"blah"},name:"text",params:{description:"( string )"},type:"string"},{accepts:"string",description:"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",example:{expression:"blah",result:"blah"},name:"starts",params:{description:"( string )"},type:"boolean"},{accepts:"string",description:"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",example:{expression:"blah",result:"blah"},name:"ends",params:{description:"( string )"},type:"boolean"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"min",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"max",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"sum",params:{description:"( string )"},type:"number"},{accepts:"number",description:"blah",example:{expression:"blah",result:"blah"},name:"round",params:{description:"( string )"},type:"number"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"or",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"blah",example:{expression:"blah",result:"blah"},name:"and",params:{description:"( string )"},type:"boolean"},{accepts:"any",description:"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",example:{expression:"blah",result:"blah"},name:"if",params:{description:"( filterExpression, expression1, expression 2)"},type:"variable"}];var Y=require("@vuu-ui/vuu-utils"),bn=({name:t,description:e,example:o,params:n,type:r})=>{let s=(0,Y.createEl)("div","vuuFunctionDoc"),i=(0,Y.createEl)("div","function-heading"),l=(0,Y.createEl)("span","function-name",t),u=(0,Y.createEl)("span","param-list",n.description),c=(0,Y.createEl)("span","function-type",r);i.appendChild(l),i.appendChild(u),i.appendChild(c);let m=(0,Y.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(m),o){let d=(0,Y.createEl)("div","example-container","Example:"),b=(0,Y.createEl)("div","example-expression",o.expression),a=(0,Y.createEl)("div","example-result",o.result);d.appendChild(b),d.appendChild(a),s.appendChild(d)}return s};var Os=[],ye=t=>t.map(e=>{var o;return{...e,apply:((o=e.apply)!=null?o:e.label)+" "}}),As=(t,{functionName:e,operator:o})=>{if(o)return t.filter(Ae.isNumericColumn);if(e){let n=He.find(r=>r.name===e);if(n)switch(n.accepts){case"string":return t.filter(Ae.isTextColumn);case"number":return t.filter(Ae.isNumericColumn);default:return t}}return t},hn=(t,e)=>As(t,e).map(n=>{var s;let r=(s=n.label)!=null?s:n.name;return{apply:e.prefix?`${e.prefix}${r}`:r,label:r,boost:5,type:"column",expressionType:n.serverDataType}}),Ls=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Ns=t=>t===void 0||(0,Ae.isNumericColumn)(t)?Ls:Os,ks=t=>{switch(t.serverDataType){case"string":case"char":return ye(J.stringOperators);case"int":case"long":case"double":return ye(J.numericOperators)}},go=t=>({apply:`${t.name}( `,boost:2,expressionType:t.type,info:()=>bn(t),label:t.name,type:"function"}),Fs=t=>{if(t){if(typeof t.accepts=="string")return t.accepts;if(Array.isArray(t.accepts))return t.accepts.every(e=>e==="string")?"string":"any"}return"any"},Is=He.map(go),Ks=({functionName:t})=>{if(t){let e=He.find(n=>n.name===t),o=Fs(e);if(e)switch(o){case"string":return He.filter(n=>n.type==="string"||n.type==="variable").map(go);case"number":return He.filter(n=>n.type==="number"||n.type==="variable").map(go);default:}}return Is},zs={},Co=({columns:t,table:e})=>{let o=(0,Oe.useCallback)(l=>l?t.find(u=>u.name===l):void 0,[t]),n=(0,Oe.useRef)(),r=(0,Mt.useTypeaheadSuggestions)(),s=(0,Oe.useCallback)(async(l,u=zs)=>{let{columnName:c,functionName:m,operator:d,prefix:b}=u;switch(l){case"expression":{let a=await ye(hn(t,{functionName:m,prefix:b})).concat(Ks(u));return n.current=a}case"column":{let a=await hn(t,u);return n.current=ye(a)}case"operator":{let a=await Ns(o(c));return n.current=ye(a)}case"relational-operator":{let a=await(0,J.getRelationalOperators)(o(c));return n.current=ye(a)}case"condition-operator":{let a=o(c);if(a){let p=await ks(a);if(p)return n.current=ye(p)}}break;case"columnValue":if(c&&d){let a=(0,Mt.getTypeaheadParams)(e,c),p=await r(a);return n.current=(0,J.toSuggestions)(p,{suffix:""}),n.current.forEach(g=>{g.apply=(f,h,v)=>{let E=new J.AnnotationType,y=v+h.label.length+1;f.dispatch({changes:{from:v,insert:h.label},selection:{anchor:y,head:y},annotations:E.of(h)})}}),n.current}break}return[]},[t,o,r,e]),i=(0,Oe.useCallback)(async(l,u,c)=>{let{current:m}=n,d=!1,b=m||await s(l,{columnName:u});if(c&&b)for(let a of b){if(a.label===c)return!1;a.label.startsWith(c)&&(d=!0)}return d},[s]);return{getSuggestions:s,isPartialMatch:i}};var ne=require("@vuu-ui/vuu-utils"),oe=require("react"),Vs=t=>{let[e,o,n]=(0,ne.getCalculatedColumnDetails)(t);return n===""?{...t,name:`${e}:${o}:string`}:t},xn=({column:t,onSave:e})=>{let[o,n]=(0,oe.useState)(Vs(t)),r=(0,oe.useRef)((0,ne.getCalculatedColumnDetails)(o)[1]),s=(0,oe.useCallback)(c=>{let{value:m}=c.target;n(d=>(0,ne.setCalculatedColumnName)(d,m))},[]),i=(0,oe.useCallback)(c=>{r.current=c.trim()},[]),l=(0,oe.useCallback)((c,m)=>{typeof m=="string"&&n(d=>(0,ne.setCalculatedColumnType)(d,m))},[]),u=(0,oe.useCallback)(()=>{let c=(0,ne.setCalculatedColumnExpression)(o,r.current);n(c),e(c)},[o,e]);return{column:o,onChangeExpression:i,onChangeName:s,onChangeType:l,onSave:u}};var A=require("react/jsx-runtime"),je="vuuColumnExpressionPanel",bo=({column:t,onSave:e,tableConfig:o,vuuTable:n})=>{let r=(0,Ht.useRef)(null),{column:s,onChangeExpression:i,onChangeName:l,onChangeType:u,onSave:c}=xn({column:t,onSave:e}),m=Co({columns:o.columns,table:n}),d=(0,Ht.useCallback)(()=>{requestAnimationFrame(()=>{var b,a;(a=(b=r.current)==null?void 0:b.querySelector("button"))==null||a.focus()})},[]);return(0,A.jsxs)("div",{className:je,children:[(0,A.jsx)("div",{className:"vuuColumnSettingsPanel-header",children:(0,A.jsx)("span",{children:"Calculation"})}),(0,A.jsxs)(z.FormField,{"data-field":"column-name",children:[(0,A.jsx)(z.FormFieldLabel,{children:"Column Name"}),(0,A.jsx)(z.Input,{className:"vuuInput",onChange:l,value:(0,Le.getCalculatedColumnName)(s)})]}),(0,A.jsxs)(z.FormField,{"data-field":"column-expression",children:[(0,A.jsx)(z.FormFieldLabel,{children:"Expression"}),(0,A.jsx)(fo,{onChange:i,onSubmitExpression:d,source:(0,Le.getCalculatedColumnExpression)(s),suggestionProvider:m})]}),(0,A.jsxs)(z.FormField,{"data-field":"type",children:[(0,A.jsx)(z.FormFieldLabel,{children:"Column type"}),(0,A.jsx)(yn.Dropdown,{className:`${je}-type`,onSelectionChange:u,ref:r,selected:(0,Le.getCalculatedColumnType)(s)||null,source:["double","long","string"],width:"100%"})]}),(0,A.jsxs)("div",{className:"vuuColumnSettingsPanel-buttonBar","data-align":"right",children:[(0,A.jsx)(z.Button,{className:`${je}-buttonCancel`,tabIndex:-1,children:"cancel"}),(0,A.jsx)(z.Button,{className:`${je}-buttonApply`,tabIndex:-1,children:"apply"}),(0,A.jsx)(z.Button,{className:`${je}-buttonSave`,onClick:c,variant:"cta",children:"save"})]})]})};var ho=require("@vuu-ui/vuu-ui-controls");var T=require("react/jsx-runtime"),et="vuuColumnSettingsPanel",$s=({column:t,onConfigChange:e,onCreateCalculatedColumn:o,tableConfig:n,vuuTable:r})=>{let s=t.name==="::",{availableRenderers:i,selectedCellRenderer:l,column:u,navigateNextColumn:c,navigatePrevColumn:m,onChange:d,onChangeFormatting:b,onChangeRenderer:a,onInputCommit:p,onSave:g}=sn({column:t,onConfigChange:e,onCreateCalculatedColumn:o,tableConfig:n}),{serverDataType:f,align:h=(0,Ot.getDefaultAlignment)(f),name:v,label:E=v,pin:y,width:B}=u;return(0,T.jsxs)("div",{className:et,children:[(0,T.jsx)("div",{className:`${et}-header`,children:(0,T.jsx)("span",{children:v})}),(0,T.jsxs)(D.FormField,{"data-field":"column-label",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Column Label"}),(0,T.jsx)(ho.VuuInput,{className:"vuuInput",onChange:d,onCommit:p,value:E})]}),(0,T.jsxs)(D.FormField,{"data-field":"column-width",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Column Width"}),(0,T.jsx)(ho.VuuInput,{className:"vuuInput",onChange:d,value:B,onCommit:p})]}),(0,T.jsxs)(D.FormField,{"data-field":"column-alignment",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Alignment"}),(0,T.jsxs)(D.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:d,value:h,children:[(0,T.jsx)(D.ToggleButton,{"data-icon":"align-left",className:"vuuIconToggleButton",value:"left"}),(0,T.jsx)(D.ToggleButton,{"data-icon":"align-right",className:"vuuIconToggleButton",value:"right"})]})]}),(0,T.jsxs)(D.FormField,{"data-field":"column-pin",children:[(0,T.jsx)(D.FormFieldLabel,{children:"Pin Column"}),(0,T.jsxs)(D.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:d,value:y!=null?y:"",children:[(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"cross-circle",value:""}),(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-left",value:"left"}),(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-float",value:"floating"}),(0,T.jsx)(D.ToggleButton,{className:"vuuIconToggleButton","data-icon":"pin-right",value:"right"})]})]}),(0,T.jsx)(Jt,{availableRenderers:i,selectedCellRenderer:l,column:u,onChangeFormatting:b,onChangeRenderer:a}),(0,Ot.isCalculatedColumn)(u.name)?(0,T.jsx)(bo,{column:u,onSave:g,tableConfig:n,vuuTable:r}):(0,T.jsxs)("div",{className:`${et}-buttonBar`,"data-align":s?"right":void 0,children:[(0,T.jsx)(D.Button,{className:`${et}-buttonNavPrev`,variant:"secondary","data-icon":"arrow-left",onClick:m,children:"PREVIOUS"}),(0,T.jsx)(D.Button,{className:`${et}-buttonNavNext`,variant:"secondary","data-icon":"arrow-right",onClick:c,children:"NEXT"})]})]})};var ot=require("react"),vn=w(require("classnames"),1);var re=require("react/jsx-runtime"),tt="vuuDatasourceStats",xo=new Intl.NumberFormat,Bs=({className:t,dataSource:e})=>{let[o,n]=(0,ot.useState)(e.range),[r,s]=(0,ot.useState)(e.size);(0,ot.useEffect)(()=>{s(e.size),e.on("resize",s),e.on("range",n)},[e]);let i=(0,vn.default)(tt,t),l=xo.format(o.from),u=xo.format(o.to-1),c=xo.format(r);return(0,re.jsxs)("div",{className:i,children:[(0,re.jsx)("span",{className:`${tt}-label`,children:"Row count"}),(0,re.jsx)("span",{className:`${tt}-range`,children:l}),(0,re.jsx)("span",{children:"-"}),(0,re.jsx)("span",{className:`${tt}-range`,children:u}),(0,re.jsx)("span",{children:"of"}),(0,re.jsx)("span",{className:`${tt}-size`,children:c})]})};var S=require("@salt-ds/core");var Ir=require("@vuu-ui/vuu-layout");var Tn=require("react");var Ws=require("react/jsx-runtime");var Qs=require("@vuu-ui/vuu-utils");var Gs=require("@vuu-ui/vuu-utils"),Ne=require("@vuu-ui/vuu-utils");var{Average:oc,Count:nc,Distinct:rc,High:sc,Low:ic,Sum:lc}=Ne.AggregationType;var Pi=require("@vuu-ui/vuu-popups"),Zn=require("@salt-ds/core");var ve=require("@vuu-ui/vuu-utils"),kn=require("react");var V=require("@vuu-ui/vuu-utils"),Mn=w(require("classnames")),rt=require("react");var At=require("@vuu-ui/vuu-utils"),wn=require("@vuu-ui/vuu-ui-controls"),Dn=w(require("classnames")),se=require("react");var nt=require("react/jsx-runtime"),{KEY:En}=At.metadataKeys,yo=(0,se.memo)(({className:t,column:e,columnMap:o,onClick:n,row:r})=>{let s=(0,se.useRef)(null),{align:i,CellRenderer:l,key:u,pin:c,editable:m,resizing:d,valueFormatter:b}=e,[a,p]=(0,se.useState)(!1),g=b(r[u]),[f,h]=(0,se.useState)(g),v=()=>{var q;(q=s.current)==null||q.focus()},E=q=>{q.key==="Enter"&&p(!0)},y=(0,se.useCallback)(q=>{n==null||n(q,e)},[e,n]),B=()=>{p(!0)},We=(q="",No="",Vr=!0,$r=!1)=>{var ko;p(!1),$r?h(q):No!==q&&h(No),Vr===!1&&((ko=s.current)==null||ko.focus())},Qt=(0,Dn.default)(t,{vuuAlignRight:i==="right",vuuPinFloating:c==="floating",vuuPinLeft:c==="left",vuuPinRight:c==="right","vuuTableCell-resizing":d})||void 0,Lo=(0,At.getColumnStyle)(e);return m?(0,nt.jsx)("div",{className:Qt,"data-editable":!0,role:"cell",style:Lo,onKeyDown:E,children:(0,nt.jsx)(wn.EditableLabel,{editing:a,value:f,onChange:h,onMouseDownCapture:v,onEnterEditMode:B,onExitEditMode:We,onKeyDown:E,ref:s,tabIndex:0},"title")}):(0,nt.jsx)("div",{className:Qt,role:"cell",style:Lo,onClick:y,children:l?(0,nt.jsx)(l,{column:e,columnMap:o,row:r}):g})},Us);yo.displayName="TableCell";function Us(t,e){return t.column===e.column&&t.onClick===e.onClick&&t.row[En]===e.row[En]&&t.row[t.column.key]===e.row[e.column.key]}var Fe=require("@vuu-ui/vuu-utils"),Rn=require("react");var ke=require("react/jsx-runtime"),{IS_LEAF:Xs}=Fe.metadataKeys,Sn=({column:t,onClick:e,row:o})=>{let{columns:n}=t,[r,s]=(0,Fe.getGroupValueAndOffset)(n,o),i=(0,Rn.useCallback)(m=>{e==null||e(m,t)},[t,e]),l=(0,Fe.getColumnStyle)(t),u=o[Xs],c=Array(s).fill(0).map((m,d)=>(0,ke.jsx)("span",{className:"vuuTableGroupCell-spacer"},d));return(0,ke.jsxs)("div",{className:"vuuTableGroupCell vuuPinLeft",onClick:u?void 0:i,role:"cell",style:l,children:[c,u?null:(0,ke.jsx)("span",{className:"vuuTableGroupCell-toggle","data-icon":"triangle-right"}),(0,ke.jsx)("span",{children:r})]})};var st=require("react/jsx-runtime"),{IDX:_s,IS_EXPANDED:Ys,SELECTED:Js}=V.metadataKeys,{True:Pn,First:Zs,Last:qs}=V.RowSelected,Ie="vuuTableRow",js=(0,rt.memo)(function({columnMap:e,columns:o,offset:n,onClick:r,onToggleGroup:s,virtualColSpan:i=0,row:l}){let{[_s]:u,[Ys]:c,[Js]:m}=l,d=(0,Mn.default)(Ie,{[`${Ie}-even`]:u%2===0,[`${Ie}-expanded`]:c,[`${Ie}-selected`]:m&Pn,[`${Ie}-selectedStart`]:m&Zs,[`${Ie}-selectedEnd`]:m&qs}),b=(0,rt.useCallback)(p=>{let g=p.shiftKey,f=p.ctrlKey||p.metaKey;r==null||r(l,g,f)},[r,l]),a=(0,rt.useCallback)((p,g)=>{((0,V.isGroupColumn)(g)||(0,V.isJsonGroup)(g,l))&&(p.stopPropagation(),s==null||s(l,g))},[s,l]);return(0,st.jsxs)("div",{"aria-selected":m&Pn?!0:void 0,"aria-rowindex":u,className:d,onClick:b,role:"row",style:{transform:`translate3d(0px, ${n}px, 0px)`},children:[i>0?(0,st.jsx)("div",{role:"cell",style:{width:i}}):null,o.filter(V.notHidden).map(p=>{let g=(0,V.isGroupColumn)(p),f=(0,V.isJsonColumn)(p);return(0,st.jsx)(g?Sn:yo,{column:p,columnMap:e,onClick:g||f?a:void 0,row:l},p.name)})]})});var oi=w(require("classnames")),ni=require("react");var Hn=require("react");var On=require("react/jsx-runtime");var ui=w(require("classnames")),Ln=require("react");var ri=w(require("classnames"));var An=require("react/jsx-runtime");var ci=require("@vuu-ui/vuu-popups");var si=require("@vuu-ui/vuu-popups"),ii=w(require("classnames")),li=require("react");var ai=require("react/jsx-runtime");var Nn=require("react/jsx-runtime");var Fn=require("react/jsx-runtime");var{RENDER_IDX:bm}=ve.metadataKeys;var Ri=require("@vuu-ui/vuu-popups"),Ke=require("@vuu-ui/vuu-utils"),ct=require("react");var In=require("@vuu-ui/vuu-data-react"),Lt=require("@vuu-ui/vuu-utils"),it=require("react"),{SELECTED:xm}=Lt.metadataKeys;var mi=require("@vuu-ui/vuu-ui-controls"),Kn=require("react");var hi=require("@vuu-ui/vuu-utils"),lt=require("react");function pi(t,...e){let o=new Set(t);for(let n of e)for(let r of n)o.add(r);return o}var zn="ArrowUp",Vn="ArrowDown",$n="ArrowLeft",Bn="ArrowRight";var Wn="Home",Qn="End",Gn="PageUp",Un="PageDown";var di=new Set(["Enter","Delete"," "]),fi=new Set(["Tab"]),gi=new Set(["ArrowRight","ArrowLeft"]),Ci=new Set([Wn,Qn,Gn,Un,Vn,$n,Bn,zn]),bi=new Set(["F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"]),Em=pi(di,Ci,gi,bi,fi);var vi=require("@vuu-ui/vuu-utils"),Nt=require("react");var vo=require("react");var xi=new Map,yi=(t,e,o)=>{switch(o){case"height":return e.height;case"clientHeight":return t.clientHeight;case"clientWidth":return t.clientWidth;case"contentHeight":return e.contentHeight;case"contentWidth":return e.contentWidth;case"scrollHeight":return Math.ceil(t.scrollHeight);case"scrollWidth":return Math.ceil(t.scrollWidth);case"width":return e.width;default:return 0}},km=new ResizeObserver(t=>{for(let e of t){let{target:o,borderBoxSize:n,contentBoxSize:r}=e,s=xi.get(o);if(s){let[{blockSize:i,inlineSize:l}]=n,[{blockSize:u,inlineSize:c}]=r,{onResize:m,measurements:d}=s,b=!1;for(let[a,p]of Object.entries(d)){let g=yi(o,{height:i,width:l,contentHeight:u,contentWidth:c},a);g!==p&&(b=!0,d[a]=g)}b&&m&&m(d)}}});var at=require("@vuu-ui/vuu-utils"),Xn=require("react"),{IDX:Bm}=at.metadataKeys;var H=require("@vuu-ui/vuu-utils"),Ti=require("react");var Gm=H.metadataKeys.count;var _n=require("react");var To=require("react"),Yn=require("@vuu-ui/vuu-utils");var Jn=require("@vuu-ui/vuu-utils"),ut=require("react");var{KEY:yp,IS_EXPANDED:vp,IS_LEAF:Tp}=Ke.metadataKeys;var Mi=w(require("classnames"));var Hi=require("@vuu-ui/vuu-utils"),qn=require("react/jsx-runtime");var jn=w(require("classnames")),Ve=require("@vuu-ui/vuu-utils");var ze=require("react/jsx-runtime"),mt="vuuJsonCell",{IS_EXPANDED:Oi,KEY:Ai}=Ve.metadataKeys,Li=t=>{let e=t.lastIndexOf("|");return e===-1?"":t.slice(e+1)},Ni=({column:t,row:e})=>{let{key:o}=t,n=e[o],r=!1;(0,Ve.isJsonAttribute)(n)&&(n=n.slice(0,-1),r=!0);let s=Li(e[Ai]),i=(0,jn.default)({[`${mt}-name`]:s===n,[`${mt}-value`]:s!==n,[`${mt}-group`]:r});if(r){let l=e[Oi]?"minus-box":"plus-box";return(0,ze.jsxs)("span",{className:i,children:[(0,ze.jsx)("span",{className:`${mt}-value`,children:n}),(0,ze.jsx)("span",{className:`${mt}-toggle`,"data-icon":l})]})}else return n?(0,ze.jsx)("span",{className:i,children:n}):null};(0,Ve.registerComponent)("json",Ni,"cell-renderer",{description:"JSON formatter",label:"JSON formatter",serverDataType:"json"});var zi=w(require("classnames")),Vi=require("react");var er=require("react");var ki=require("react/jsx-runtime");var Eo=require("react");var tr=require("@vuu-ui/vuu-utils"),or=w(require("classnames")),nr=require("react"),Te=(t,e,o)=>(0,nr.useMemo)(()=>{let n=(0,or.default)(e,{vuuPinFloating:t.pin==="floating",vuuPinLeft:t.pin==="left",vuuPinRight:t.pin==="right",vuuEndPin:o&&t.endPin,[`${e}-editable`]:t.editable,[`${e}-right`]:t.align==="right"}),r=(0,tr.getColumnStyle)(t);return{className:n,style:r}},[t,e,o]);var Fi=w(require("classnames")),Ii=require("react");var rr=require("react/jsx-runtime");var sr=require("react/jsx-runtime");var ir=require("react/jsx-runtime");var ur=require("react/jsx-runtime"),$i=require("react");var Bi=w(require("classnames")),Do=require("react");var cr=require("@vuu-ui/vuu-layout");var mr=require("react/jsx-runtime"),Wi=require("react");var pr=require("react");var Qi=require("@vuu-ui/vuu-popups"),Gi=w(require("classnames")),Ro=require("react");var Ui=require("react/jsx-runtime");var Xi=w(require("classnames"));var dr=require("react/jsx-runtime");var ul=require("@vuu-ui/vuu-popups"),Vt=require("@vuu-ui/vuu-utils"),cl=w(require("classnames")),ml=require("react");var $=require("@vuu-ui/vuu-utils"),yr=w(require("classnames")),pt=require("react");var fr=require("@vuu-ui/vuu-utils"),gr=require("react");var So=require("react/jsx-runtime"),{IDX:_i}=fr.metadataKeys,Yi="vuuTableNextCell",Cr=({column:t,columnMap:e,onDataEdited:o,row:n})=>{let{className:r,style:s}=Te(t,Yi),{CellRenderer:i,name:l,valueFormatter:u}=t,c=e[l],m=(0,gr.useCallback)(d=>(o==null||o(n[_i],l,d),!0),[l,o,n]);return(0,So.jsx)("div",{className:r,role:"cell",style:s,children:i?(0,So.jsx)(i,{column:t,columnMap:e,onCommit:m,row:n}):u(n[c])})};var kt=require("@vuu-ui/vuu-utils"),br=require("react");var hr=w(require("classnames"));var $e=require("react/jsx-runtime"),{IS_LEAF:Ji}=kt.metadataKeys,Po="vuuTableNextGroupCell",xr=({column:t,onClick:e,row:o})=>{let{columns:n}=t,[r,s]=(0,kt.getGroupValueAndOffset)(n,o),{className:i,style:l}=Te(t,Po),u=(0,br.useCallback)(d=>{e==null||e(d,t)},[t,e]),c=o[Ji],m=Array(s).fill(0).map((d,b)=>(0,$e.jsx)("span",{className:`${Po}-spacer`},b));return(0,$e.jsxs)("div",{className:(0,hr.default)(i,"vuuTableNextCell"),role:"cell",style:l,onClick:c?void 0:u,children:[m,c?null:(0,$e.jsx)("span",{className:`${Po}-toggle`,"data-icon":"triangle-right"}),(0,$e.jsx)("span",{children:r})]})};var Ft=require("react/jsx-runtime"),Tr=require("react"),{IDX:Zi,IS_EXPANDED:qi,SELECTED:ji}=$.metadataKeys,ce="vuuTableNextRow",vr=(0,pt.memo)(({className:t,columnMap:e,columns:o,row:n,offset:r,onClick:s,onDataEdited:i,onToggleGroup:l,zebraStripes:u=!1,...c})=>{let{[Zi]:m,[qi]:d,[ji]:b}=n,a=(0,pt.useCallback)(y=>{let B=y.shiftKey,We=y.ctrlKey||y.metaKey;s==null||s(n,B,We)},[s,n]),{True:p,First:g,Last:f}=$.RowSelected,h=(0,yr.default)(ce,t,{[`${ce}-even`]:u&&m%2===0,[`${ce}-expanded`]:d,[`${ce}-selected`]:b&p,[`${ce}-selectedStart`]:b&g,[`${ce}-selectedEnd`]:b&f}),v={transform:`translate3d(0px, ${r}px, 0px)`},E=(0,pt.useCallback)((y,B)=>{((0,$.isGroupColumn)(B)||(0,$.isJsonGroup)(B,n))&&(y.stopPropagation(),l==null||l(n,B))},[l,n]);return(0,Tr.createElement)("div",{...c,"aria-rowindex":n[0],key:`row-${n[0]}`,role:"row",className:h,onClick:a,style:v},(0,Ft.jsx)("span",{className:`${ce}-selectionDecorator vuuStickyLeft`}),o.filter($.notHidden).map(y=>{let B=(0,$.isGroupColumn)(y),We=(0,$.isJsonColumn)(y);return(0,Ft.jsx)(B?xr:Cr,{column:y,columnMap:e,onClick:B||We?E:void 0,onDataEdited:i,row:n},y.key)}),(0,Ft.jsx)("span",{className:`${ce}-selectionDecorator vuuStickyRight`}))});vr.displayName="Row";var ll=require("@vuu-ui/vuu-layout");var al=require("@vuu-ui/vuu-ui-controls");var It=require("react");var ie=require("@vuu-ui/vuu-utils"),zt=require("react");var Kt=(t,e)=>{switch(e.type){case"col-size":return{...t,columns:t.columns.map(o=>o.name===e.column.name?{...o,width:e.width}:o)};case"column-prop":return{...t,columns:t.columns.map(o=>o.name===e.column.name?{...o,[e.property]:e.value}:o)};default:return t}};var Er=require("@vuu-ui/vuu-data-react/src"),wr=require("@vuu-ui/vuu-utils"),dt=require("react");var Mo=require("@vuu-ui/vuu-utils"),{SELECTED:Uf}=Mo.metadataKeys;var Dr=require("react");var el=require("@vuu-ui/vuu-utils"),tl=require("react"),ol=require("@vuu-ui/vuu-popups");var nl=require("@vuu-ui/vuu-utils"),rl=require("react");var O=require("@vuu-ui/vuu-utils"),sl=require("@vuu-ui/vuu-ui-controls"),il=require("react"),{info:sg}=(0,O.logger)("useTableModel");var ig=O.metadataKeys.count;var Rr=require("react");var Ho=require("react");var{KEY:Vg,IS_EXPANDED:$g,IS_LEAF:Bg}=ie.metadataKeys;var Mr=require("@vuu-ui/vuu-layout");var Hr=require("react/jsx-runtime"),pl=require("react");var{IDX:eC,RENDER_IDX:tC}=Vt.metadataKeys;var Or=require("@vuu-ui/vuu-ui-controls"),Be=require("@vuu-ui/vuu-utils");var $t=require("react"),Ar=require("react/jsx-runtime"),dl="vuuTableDropdownCell",fl=["Enter"," "],gl=({column:t,columnMap:e,row:o})=>{var u,c,m;let n=(0,Be.isTypeDescriptor)(t.type)&&(0,Be.isColumnTypeRenderer)((u=t.type)==null?void 0:u.renderer)?(m=(c=t.type)==null?void 0:c.renderer)==null?void 0:m.values:[],r=e[t.name],[s,i]=(0,$t.useState)(o[r]),l=(0,$t.useCallback)((d,b)=>{b&&i(b)},[]);return(0,Ar.jsx)(Or.Dropdown,{className:dl,onSelectionChange:l,openKeys:fl,selected:s,source:n,width:t.width-17})};(0,Be.registerComponent)("dropdown-cell",gl,"cell-renderer",{});var Lr=require("@vuu-ui/vuu-utils"),Nr=require("@salt-ds/core"),kr=require("@vuu-ui/vuu-ui-controls"),Fr=w(require("classnames"));var Wt=require("react/jsx-runtime"),Bt="vuuTableInputCell",Cl=()=>(console.warn("onCommit handler has not been provided to InputCell cell renderer"),!0),bl=({column:t,columnMap:e,onCommit:o=Cl,row:n})=>{let r=e[t.name],{align:s="left",clientSideEditValidationCheck:i,valueFormatter:l}=t,{warningMessage:u,...c}=(0,kr.useEditableText)({initialValue:l(n[r]),onCommit:o,clientSideEditValidationCheck:i}),m=u&&s==="left"?(0,Wt.jsx)("span",{className:`${Bt}-icon`,"data-icon":"error"}):void 0,d=u&&s==="right"?(0,Wt.jsx)("span",{className:`${Bt}-icon`,"data-icon":"error"}):void 0;return(0,Wt.jsx)(Nr.Input,{...c,className:(0,Fr.default)(Bt,{[`${Bt}-error`]:u!==void 0}),endAdornment:m,startAdornment:d})};(0,Lr.registerComponent)("input-cell",bl,"cell-renderer",{});var me=require("@vuu-ui/vuu-utils"),le=require("react"),hl=(t,e)=>{let o=[];for(let{name:n}of t){let r=e.find(s=>s.name===n);r&&o.push(r)}return o},xl=(t,e)=>t.map(({name:o,serverDataType:n})=>{let r=e.find(s=>s.name===o);return{hidden:r==null?void 0:r.hidden,isCalculated:(0,me.isCalculatedColumn)(o),label:r==null?void 0:r.label,name:o,serverDataType:n,subscribed:r!==void 0}}),Oo=({availableColumns:t,onConfigChange:e,onDataSourceConfigChange:o,tableConfig:n})=>{let[{availableColumns:r,tableConfig:s},i]=(0,le.useState)({availableColumns:t,tableConfig:n}),l=(0,le.useMemo)(()=>xl(r,s.columns),[r,s.columns]),u=(0,le.useCallback)((a,p)=>{i(g=>{let f=(0,me.moveItem)(g.availableColumns,a,p),h=hl(f,s.columns);return{availableColumns:f,tableConfig:{...g.tableConfig,columns:h}}})},[s.columns]),c=(0,le.useCallback)((a,p,g)=>{let f=l.find(h=>h.name===a);if(p==="subscribed")if(f!=null&&f.subscribed){let h=s.columns.filter(v=>v.name!==a).map(v=>v.name);i(v=>({...v,tableConfig:{...s,columns:s.columns.filter((0,me.subscribedOnly)(h))}})),o({columns:h})}else{let h={...s,columns:(0,me.addColumnToSubscribedColumns)(s.columns,r,a)};i(E=>({...E,tableConfig:h}));let v=h.columns.map(E=>E.name);o({columns:v})}else if(f!=null&&f.subscribed){let h=s.columns.find(v=>v.name===a);if(h){let v=Kt(s,{type:"column-prop",property:p,column:h,value:g});i(E=>({...E,tableConfig:v}))}}},[r,l,o,s]),m=(0,le.useCallback)(a=>{let{value:p}=a.target,g=p==="0"?void 0:p==="1"?"capitalize":"uppercase";i(f=>({...f,tableConfig:{...f.tableConfig,columnFormatHeader:g}}))},[]),d=(0,le.useCallback)(a=>{let{ariaChecked:p,value:g}=a.target;i(f=>({...f,tableConfig:{...f.tableConfig,[g]:p!=="true"}}))},[]);(0,Ir.useLayoutEffectSkipFirst)(()=>{e==null||e(s)},[e,s]);let b=s.columnFormatHeader===void 0?0:s.columnFormatHeader==="capitalize"?1:2;return{columnItems:l,columnLabelsValue:b,onChangeColumnLabels:m,onChangeTableAttribute:d,onColumnChange:c,onMoveListItem:u,tableConfig:s}};var R=require("react/jsx-runtime"),Ao="vuuTableSettingsPanel",yl=({availableColumns:t,onAddCalculatedColumn:e,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r,...s})=>{let{columnItems:i,columnLabelsValue:l,onChangeColumnLabels:u,onChangeTableAttribute:c,onColumnChange:m,onMoveListItem:d,tableConfig:b}=Oo({availableColumns:t,onConfigChange:o,onDataSourceConfigChange:n,tableConfig:r});return(0,R.jsxs)("div",{...s,className:Ao,children:[(0,R.jsxs)(S.FormField,{children:[(0,R.jsx)(S.FormFieldLabel,{children:"Column Labels"}),(0,R.jsxs)(S.ToggleButtonGroup,{className:"vuuToggleButtonGroup",onChange:u,value:l,children:[(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-strikethrough",value:0}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-Tt",value:1}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"text-T",value:2})]})]}),(0,R.jsxs)(S.FormField,{children:[(0,R.jsx)(S.FormFieldLabel,{children:"Grid separators"}),(0,R.jsxs)("div",{className:"saltToggleButtonGroup vuuToggleButtonGroup saltToggleButtonGroup-horizontal vuuGridSeparators",children:[(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-striping",selected:b.zebraStripes,onChange:c,value:"zebraStripes"}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"row-lines",selected:b.rowSeparators,onChange:c,value:"rowSeparators"}),(0,R.jsx)(S.ToggleButton,{className:"vuuIconToggleButton","data-icon":"col-lines",selected:b.columnSeparators,onChange:c,value:"columnSeparators"})]})]}),(0,R.jsxs)(S.FormField,{children:[(0,R.jsx)(S.FormFieldLabel,{children:"Default Column Width"}),(0,R.jsx)(S.Input,{className:"vuuInput"})]}),(0,R.jsx)(Gt,{columnItems:i,onChange:m,onMoveListItem:d}),(0,R.jsxs)("div",{className:`${Ao}-calculatedButtonbar`,children:[(0,R.jsx)(S.Button,{"data-icon":"plus",onClick:e}),(0,R.jsx)("span",{className:`${Ao}-calculatedLabel`,children:"Add calculated column"})]})]})};var Kr=require("@vuu-ui/vuu-layout"),zr=require("@vuu-ui/vuu-utils"),Z=require("react"),Sr=({availableColumns:t,onAvailableColumnsChange:e,onConfigChange:o,onCreateCalculatedColumn:n,onDataSourceConfigChange:r,tableConfig:s})=>{let i=(0,Kr.useLayoutProviderDispatch)(),l=(0,Z.useRef)(),[u,c]=(0,Z.useState)(t),m=(0,Z.useCallback)((p,g,f)=>{i({type:"set-props",path:"#context-panel",props:{expanded:!0,content:{type:p,props:f},title:g}})},[i]),d=(0,Z.useCallback)(p=>{let g=u.concat({name:p.name,serverDataType:(0,zr.getCalculatedColumnType)(p)});c(g),e==null||e(g),requestAnimationFrame(()=>{var f;(f=l.current)==null||f.call(l)}),n(p)},[u,e,n]),b=(0,Z.useCallback)(p=>{m("ColumnSettings","Column Settings",{column:p.column,onConfigChange:o,onCreateCalculatedColumn:d,tableConfig:s,vuuTable:p.vuuTable})},[d,o,m,s]),a=(0,Z.useCallback)(()=>{b({column:{name:"::",serverDataType:"string"},type:"columnSettings",vuuTable:{module:"SIMUL",table:"instruments"}})},[b]);return l.current=(0,Z.useCallback)(()=>{m("TableSettings","DataGrid Settings",{availableColumns:u!=null?u:s.columns.map(({name:p,serverDataType:g})=>({name:p,serverDataType:g})),onAddCalculatedColumn:a,onConfigChange:o,onDataSourceConfigChange:r,tableConfig:s})},[u,a,o,r,m,s]),{showColumnSettingsPanel:b,showTableSettingsPanel:l.current}};
2
2
  //# sourceMappingURL=index.js.map