@vuu-ui/vuu-table-extras 0.7.6 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/index.js +1 -1
- package/cjs/index.js.map +4 -4
- package/esm/index.js +1 -1
- package/esm/index.js.map +4 -4
- package/index.css +1 -1
- package/index.css.map +3 -3
- package/package.json +14 -11
- package/types/cell-renderers/background-cell/BackgroundCell.d.ts +2 -0
- package/types/cell-renderers/background-cell/index.d.ts +1 -0
- package/types/cell-renderers/background-cell/useDirection.d.ts +3 -0
- package/types/cell-renderers/index.d.ts +2 -0
- package/types/cell-renderers/progress-cell/ProgressCell.d.ts +1 -0
- package/types/cell-renderers/progress-cell/index.d.ts +1 -0
- package/types/column-expression-input/ColumnExpressionInput.d.ts +9 -0
- package/types/column-expression-input/column-function-descriptors.d.ts +15 -0
- package/types/column-expression-input/column-language-parser/ColumnExpressionLanguage.d.ts +2 -0
- package/types/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.d.ts +58 -0
- package/types/column-expression-input/column-language-parser/column-expression-parse-utils.d.ts +5 -0
- package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +2 -0
- package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +24 -0
- package/types/column-expression-input/column-language-parser/index.d.ts +3 -0
- package/types/column-expression-input/column-language-parser/test.d.mts +1 -0
- package/types/column-expression-input/functionDocInfo.d.ts +2 -0
- package/types/column-expression-input/highlighting.d.ts +1 -0
- package/types/column-expression-input/index.d.ts +4 -0
- package/types/column-expression-input/theme.d.ts +1 -0
- package/types/column-expression-input/useColumnAutoComplete.d.ts +6 -0
- package/types/column-expression-input/useColumnExpressionEditor.d.ts +29 -0
- package/types/column-expression-input/useColumnExpressionSuggestionProvider.d.ts +8 -0
- package/types/datagrid-configuration-ui/calculated-column-panel/CalculatedColumnPanel.d.ts +11 -0
- package/types/datagrid-configuration-ui/calculated-column-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/column-picker/ColumnListItem.d.ts +4 -0
- package/types/datagrid-configuration-ui/column-picker/ColumnPicker.d.ts +13 -0
- package/types/datagrid-configuration-ui/column-picker/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/column-settings-panel/ColumnSettingsPanel.d.ts +9 -0
- package/types/datagrid-configuration-ui/column-settings-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/column-type-panel/ColumnTypePanel.d.ts +10 -0
- package/types/datagrid-configuration-ui/column-type-panel/NumericColumnPanel.d.ts +4 -0
- package/types/datagrid-configuration-ui/column-type-panel/StringColumnPanel.d.ts +4 -0
- package/types/datagrid-configuration-ui/column-type-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/settings-panel/DatagridSettingsPanel.d.ts +10 -0
- package/types/datagrid-configuration-ui/settings-panel/GridSettingsPanel.d.ts +9 -0
- package/types/datagrid-configuration-ui/settings-panel/index.d.ts +1 -0
- package/types/datagrid-configuration-ui/settings-panel/useGridSettings.d.ts +59 -0
- package/types/datasource-stats/DatasourceStats.d.ts +8 -0
- package/types/datasource-stats/index.d.ts +1 -0
- package/types/index.d.ts +5 -0
- package/types/table-settings/calculated-column-panel/CalculatedColumnPanel.d.ts +11 -0
- package/types/table-settings/calculated-column-panel/index.d.ts +1 -0
- package/types/table-settings/column-picker/ColumnListItem.d.ts +4 -0
- package/types/table-settings/column-picker/ColumnPicker.d.ts +13 -0
- package/types/table-settings/column-picker/index.d.ts +1 -0
- package/types/table-settings/column-settings-panel/ColumnSettingsPanel.d.ts +9 -0
- package/types/table-settings/column-settings-panel/index.d.ts +1 -0
- package/types/table-settings/column-type-panel/ColumnTypePanel.d.ts +10 -0
- package/types/table-settings/column-type-panel/NumericColumnPanel.d.ts +4 -0
- package/types/table-settings/column-type-panel/StringColumnPanel.d.ts +4 -0
- package/types/table-settings/column-type-panel/index.d.ts +1 -0
- package/types/table-settings/index.d.ts +1 -0
- package/types/table-settings/settings-panel/DatagridSettingsPanel.d.ts +10 -0
- package/types/table-settings/settings-panel/GridSettingsPanel.d.ts +9 -0
- package/types/table-settings/settings-panel/index.d.ts +1 -0
- package/types/table-settings/settings-panel/useGridSettings.d.ts +59 -0
package/cjs/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var ut=Object.create;var Qe=Object.defineProperty;var mt=Object.getOwnPropertyDescriptor;var dt=Object.getOwnPropertyNames;var gt=Object.getPrototypeOf,ft=Object.prototype.hasOwnProperty;var Ct=(n,e)=>{for(var t in e)Qe(n,t,{get:e[t],enumerable:!0})},bn=(n,e,t,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of dt(e))!ft.call(n,r)&&r!==t&&Qe(n,r,{get:()=>e[r],enumerable:!(o=mt(e,r))||o.enumerable});return n};var q=(n,e,t)=>(t=n!=null?ut(gt(n)):{},bn(e||!n||!n.__esModule?Qe(t,"default",{value:n,enumerable:!0}):t,n)),xt=n=>bn(Qe({},"__esModule",{value:!0}),n);var yn=(n,e,t)=>{if(!e.has(n))throw TypeError("Cannot "+t)};var u=(n,e,t)=>(yn(n,e,"read from private field"),t?t.call(n):e.get(n)),N=(n,e,t)=>{if(e.has(n))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(n):e.set(n,t)},z=(n,e,t,o)=>(yn(n,e,"write to private field"),o?o.call(n,t):e.set(n,t),t);var xo={};Ct(xo,{ColumnExpressionInput:()=>mn,ColumnNamedTerms:()=>Me,DataSourceStats:()=>Co,DatagridSettingsPanel:()=>fo,columnExpressionLanguageSupport:()=>Je,isCompleteExpression:()=>on,isCompleteRelationalExpression:()=>rn,lastNamedChild:()=>Ge,useColumnExpressionEditor:()=>un,useColumnExpressionSuggestionProvider:()=>gn,walkTree:()=>tn});module.exports=xt(xo);var D=require("@vuu-ui/vuu-utils"),vn=q(require("classnames"),1);var Fe=require("react"),En=require("@vuu-ui/vuu-utils"),Ee=require("@vuu-ui/vuu-utils"),ht=[void 0,void 0,void 0,void 0];function On(n,e,t){var x;let o=(0,Fe.useRef)(),[r,s,i,p]=o.current||ht,{type:l}=t,c=(0,En.isTypeDescriptor)(l)?(x=l.formatting)==null?void 0:x.decimals:void 0,g=n===r&&(0,Ee.isValidNumber)(e)&&(0,Ee.isValidNumber)(s)&&t===i?(0,Ee.getMovingValueDirection)(e,p,s,c):"";return(0,Fe.useEffect)(()=>{o.current=[n,e,t,g]}),g}var Ie=require("react/jsx-runtime"),bt=String.fromCharCode(11014),yt=String.fromCharCode(11015),{KEY:Et}=D.metadataKeys,Le="vuuBackgroundCell",Oe={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},Ot=n=>(0,D.isTypeDescriptor)(n)&&n.renderer&&"flashStyle"in n.renderer?n.renderer.flashStyle:Oe.BackgroundOnly,vt=({column:n,row:e})=>{let{key:t,type:o,valueFormatter:r}=n,s=e[t],i=Ot(o),p=On(e[Et],s,n),l=i===Oe.ArrowOnly||i===Oe.ArrowBackground?p===D.UP1||p===D.UP2?bt:p===D.DOWN1||p===D.DOWN2?yt:null:null,c=p?" "+p:"",g=(0,vn.default)(Le,c,{[`${Le}-arrowOnly`]:i===Oe.ArrowOnly,[`${Le}-arrowBackground`]:i===Oe.ArrowBackground});return(0,Ie.jsxs)("div",{className:g,tabIndex:-1,children:[(0,Ie.jsx)("div",{className:`${Le}-flasher`,children:l}),r(e[n.key])]})};(0,D.registerComponent)("background",vt,"cell-renderer",{serverDataType:["long","int","double"]});var re=require("@vuu-ui/vuu-utils"),Pn=q(require("classnames"),1);var _=require("react/jsx-runtime"),ve="vuuProgressCell",Pt=({column:n,columnMap:e,row:t})=>{let{type:o}=n,r=t[n.key],s=!1,i=0;if((0,re.isTypeDescriptor)(o)&&(0,re.isColumnTypeRenderer)(o.renderer)){let{associatedField:l}=o.renderer,c=t[e[l]];if(typeof r=="number"&&typeof c=="number")i=Math.min(Math.round(r/c*100),100),s=isFinite(i);else{let g=parseFloat(r);if(Number.isFinite(g)){let x=parseFloat(c);Number.isFinite(x)&&(i=Math.min(Math.round(g/x*100),100),s=isFinite(i))}}}let p=(0,Pn.default)(ve,{});return(0,_.jsxs)("div",{className:p,tabIndex:-1,children:[s?(0,_.jsxs)("span",{className:`${ve}-track`,children:[(0,_.jsx)("span",{className:`${ve}-bg`}),(0,_.jsx)("span",{className:`${ve}-bar`,style:{"--progress-bar-pct":`-${100-i}%`}})]}):null,(0,_.jsx)("span",{className:`${ve}-text`,children:`${i} %`})]})};(0,re.registerComponent)("vuu.progress",Pt,"cell-renderer",{serverDataType:["long","int","double"]});var O=require("@vuu-ui/vuu-codemirror"),cn=require("@vuu-ui/vuu-utils"),Z=require("react");var Q=require("@vuu-ui/vuu-codemirror");var Sn=require("@lezer/lr"),Be=Sn.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 St=Q.LRLanguage.define({name:"VuuColumnExpression",parser:Be.configure({props:[(0,Q.styleTags)({Function:Q.tags.variableName,String:Q.tags.string,Or:Q.tags.emphasis,Operator:Q.tags.operator})]})}),Je=()=>new Q.LanguageSupport(St);var qe=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}}},_e=class{constructor(e){this.type="colExpression";this.column=e}toJSON(){return{type:this.type,column:this.column}}},Se,j,Ke=class{constructor(e="unknown"){N(this,Se,[{type:"unknown"},{type:"unknown"}]);N(this,j,void 0);this.type="arithmeticExpression";z(this,j,e)}get op(){return u(this,j)}set op(e){z(this,j,e)}get expressions(){return u(this,Se)}toJSON(){return{type:this.type,op:u(this,j),expressions:u(this,Se)}}};Se=new WeakMap,j=new WeakMap;var le,je=class{constructor(e){N(this,le,[]);this.type="callExpression";this.functionName=e}get expressions(){return u(this,le)}get arguments(){return u(this,le)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:u(this,le).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};le=new WeakMap;var Te,pe,ie=class{constructor(){N(this,Te,[{type:"unknown"},{type:"unknown"}]);N(this,pe,"unknown");this.type="relationalExpression"}get op(){return u(this,pe)}set op(e){z(this,pe,e)}get expressions(){return u(this,Te)}toJSON(){return{type:this.type,op:u(this,pe),expressions:u(this,Te)}}};Te=new WeakMap,pe=new WeakMap;var we,ce,ae=class{constructor(e){N(this,we,[{type:"unknown"},{type:"unknown"}]);N(this,ce,void 0);this.type="booleanCondition";z(this,ce,e)}get op(){return u(this,ce)}get expressions(){return u(this,we)}toJSON(){return{type:this.type,op:u(this,ce),expressions:u(this,we).map(e=>{var t;return(t=e.toJSON)==null?void 0:t.call(e)})}}};we=new WeakMap,ce=new WeakMap;var I,Pe=class{constructor(e){N(this,I,void 0);this.type="conditionalExpression";z(this,I,[e?new ae(e):new ie,{type:"unknown"},{type:"unknown"}])}get expressions(){return u(this,I)}get condition(){return u(this,I)[0]}get truthyExpression(){return u(this,I)[1]}set truthyExpression(e){u(this,I)[1]=e}get falsyExpression(){return u(this,I)[2]}set falsyExpression(e){u(this,I)[2]=e}toJSON(){var e,t,o,r,s;return{type:this.type,condition:(t=(e=this.condition).toJSON)==null?void 0:t.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}}};I=new WeakMap;var K=n=>n.type==="unknown",$e=n=>n.type==="arithmeticExpression",Tt=n=>n.type==="callExpression",se=n=>n.type==="conditionalExpression",wt=n=>n.type==="relationalExpression"||n.type==="booleanCondition";var Dt=n=>n.type==="booleanCondition",nn=n=>(n==null?void 0:n.type)==="relationalExpression";var R=n=>{if(K(n))return n;if(nn(n)){let[e,t]=n.expressions;if(S(e))return R(e);if(n.op==="unknown")return n;if(S(t))return R(t)}else if(wt(n)){let{expressions:e=[]}=n;for(let t of e)if(S(t))return R(t)}else if(se(n)){let{condition:e,truthyExpression:t,falsyExpression:o}=n;if(S(e))return R(e);if(S(t))return R(t);if(S(o))return R(o)}else if($e(n)){let{expressions:e=[]}=n;for(let t of e)if(S(t))return R(t)}},Ue=(n,e,t)=>{let{expressions:o=[]}=n;if(o.includes(e)){let r=o.indexOf(e);return o.splice(r,1,t),!0}else for(let r of o)if(Ue(r,e,t))return!0;return!1},S=n=>K(n)?!0:se(n)?S(n.condition)||S(n.truthyExpression)||S(n.falsyExpression):nn(n)||Dt(n)?n.op===void 0||n.expressions.some(e=>S(e)):!1,Tn=(n,e)=>{let t=R(n);t?t.expressions?t.expressions.push(e):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},C,ee,en=class{constructor(){N(this,C,void 0);N(this,ee,[])}setCondition(e){if(u(this,C)===void 0)this.addExpression(new Pe(e));else if(se(u(this,C))){if(S(u(this,C).condition)){let t=e?new ae(e):new ie;this.addExpression(t)}else if(K(u(this,C).truthyExpression))u(this,C).truthyExpression=new Pe(e);else if(S(u(this,C).truthyExpression)){let t=e?new ae(e):new ie;this.addExpression(t)}else if(K(u(this,C).falsyExpression))u(this,C).falsyExpression=new Pe(e);else if(S(u(this,C).falsyExpression)){let t=e?new ae(e):new ie;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(e){if(u(this,ee).length>0){let t=u(this,ee).at(-1);t==null||t.arguments.push(e)}else if(u(this,C)===void 0)z(this,C,e);else if($e(u(this,C))){let t=R(u(this,C));t&&K(t)&&Ue(u(this,C),t,e)}else if(se(u(this,C))&&S(u(this,C))){let t=R(u(this,C));t&&K(t)?Ue(u(this,C),t,e):t&&Tn(t,e)}}setFunction(e){let t=new je(e);this.addExpression(t),u(this,ee).push(t)}setColumn(e){this.addExpression(new _e(e))}setArithmeticOp(e){let t=e,o=u(this,C);$e(o)&&(o.op=t)}setRelationalOperator(e){let t=e;if(u(this,C)&&se(u(this,C))){let o=R(u(this,C));nn(o)?o.op=t:console.error(`no target expression found (op = ${e})`)}}setValue(e){let t=new qe(e);if(u(this,C)===void 0)z(this,C,t);else if($e(u(this,C)))this.addExpression(t);else if(Tt(u(this,C)))u(this,C).arguments.push(t);else if(se(u(this,C)))if(S(u(this,C))){let o=R(u(this,C));o&&K(o)?Ue(u(this,C),o,t):o&&Tn(o,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){u(this,ee).pop()}get expression(){return u(this,C)}toJSON(){var e;return(e=u(this,C))==null?void 0:e.toJSON()}};C=new WeakMap,ee=new WeakMap;var tn=(n,e)=>{let t=new en,o=n.cursor();do{let{name:r,from:s,to:i}=o;switch(r){case"AndCondition":t.setCondition("and");break;case"OrCondition":t.setCondition("or");break;case"RelationalExpression":t.setCondition();break;case"ArithmeticExpression":t.addExpression(new Ke);break;case"Column":{let p=e.substring(s,i);t.setColumn(p)}break;case"Function":{let p=e.substring(s,i);t.setFunction(p)}break;case"Times":case"Divide":case"Plus":case"Minus":{let p=e.substring(s,i);t.setArithmeticOp(p)}break;case"RelationalOperator":{let p=e.substring(s,i);t.setRelationalOperator(p)}break;case"False":case"True":{let p=e.substring(s,i);t.setValue(p==="true")}break;case"String":t.setValue(e.substring(s+1,i-1));break;case"Number":t.setValue(parseFloat(e.substring(s,i)));break;case"CloseBrace":t.closeBrace();break;default:}}while(o.next());return t.toJSON()};var Rt=Be.configure({strict:!0}),wn=["Number","String"],Me=[...wn,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],on=n=>{try{return Rt.parse(n),!0}catch{return!1}},Ge=n=>{let{lastChild:e}=n;for(;e&&!Me.includes(e.name);)e=e.prevSibling,console.log(e==null?void 0:e.name);return e},rn=n=>{if((n==null?void 0:n.name)==="RelationalExpression"){let{firstChild:e}=n,t=Ge(n);if((e==null?void 0:e.name)==="Column"&&typeof(t==null?void 0:t.name)=="string"&&wn.includes(t.name))return!0}return!1};var ne=require("@vuu-ui/vuu-codemirror"),At=ne.HighlightStyle.define([{tag:ne.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:ne.tags.comment,color:"green",fontStyle:"italic"}]),Dn=(0,ne.syntaxHighlighting)(At);var Rn=require("@vuu-ui/vuu-codemirror"),An=Rn.EditorView.theme({"&":{border:"solid 1px var(--salt-container-primary-borderColor)",color:"var(--vuuFilterEditor-color)",backgroundColor:"var(--vuuFilterEditor-background)"},".cm-content":{caretColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-cursor":{borderLeftColor:"var(--vuuFilterEditor-cursorColor)"},"&.cm-focused .cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-selectionBackground, ::selection":{backgroundColor:"var(--vuuFilterEditor-selectionBackground)"},".cm-scroller":{fontFamily:"var(--vuuFilterEditor-fontFamily)"},".cm-tooltip":{background:"var(--vuuFilterEditor-tooltipBackground)",border:"var(--vuuFilterEditor-tooltipBorder)",boxShadow:"var(--vuuFilterEditor-tooltipElevation)","&.cm-tooltip-autocomplete > ul":{fontFamily:"var(--vuuFilterEditor-fontFamily)",fontSize:"var(--vuuFilterEditor-fontSize)",maxHeight:"240px"},"&.cm-tooltip-autocomplete > ul > li":{height:"var(--vuuFilterEditor-suggestion-height)",padding:"0 3px",lineHeight:"var(--vuuFilterEditor-suggestion-height)"},"&.cm-tooltip-autocomplete li[aria-selected]":{background:"var(--vuuFilterEditor-suggestion-selectedBackground)",color:"var(--vuuFilterEditor-suggestion-selectedColor)"},"&.cm-tooltip-autocomplete li .cm-completionDetail":{color:"var(--vuuFilterEditor-suggestion-detailColor)"}}},{dark:!1});var v=require("@vuu-ui/vuu-codemirror"),ln=require("react");var kt=(n,e)=>e?n.map(t=>{var o;return{...t,apply:typeof t.apply=="function"?t.apply:`${e}${(o=t.apply)!=null?o:t.label}`}}):n,Nt=n=>n===void 0?!1:["Times","Divide","Plus","Minus"].includes(n.name),ue=(n,e)=>{var r;let{lastChild:t}=n,{pos:o}=e;for(;t;)if(t.from<o&&Me.includes(t.name)){if(t.name==="ParenthesizedExpression"){let i=(r=t.firstChild)==null?void 0:r.nextSibling;i&&(t=i)}return t}else t=t.prevSibling},kn=(n,e)=>{var t;if(n.name==="ArgList"){let o=n.prevSibling;if(o)return(0,v.getValue)(o,e)}else if(n.name==="OpenBrace"){let o=(t=n.parent)==null?void 0:t.prevSibling;if((o==null?void 0:o.name)==="Function")return(0,v.getValue)(o,e)}},Nn=(n,e)=>{if(n.name==="RelationalExpression"){let t=Ge(n);if((t==null?void 0:t.name)==="RelationalOperator")return(0,v.getValue)(t,e)}else{let t=n.prevSibling;if((t==null?void 0:t.name)==="RelationalOperator")return(0,v.getValue)(t,e)}},pn=(n,e)=>{var t;if(n.name==="RelationalExpression"){if(((t=n.firstChild)==null?void 0:t.name)==="Column")return(0,v.getValue)(n.firstChild,e)}else{let o=n.prevSibling;if((o==null?void 0:o.name)==="Column")return(0,v.getValue)(o,e);if((o==null?void 0:o.name)==="RelationalOperator")return pn(o,e)}},sn=async(n,e,t,o={})=>{let r=await e.getSuggestions(t,o),{startsWith:s=""}=o;return{from:n.pos-s.length,options:r}},an=(n,e,t,o,r)=>{let s=ue(n,e);switch(console.log(`conditional expression last child ${s==null?void 0:s.name}`),s==null?void 0:s.name){case"If":return sn(e,t,"expression",{prefix:"( "});case"OpenBrace":return sn(e,t,"expression");case"Condition":return sn(e,t,"expression",{prefix:", "});case"CloseBrace":if(o){let i=[{apply:()=>{r==null||r()},label:"Save Expression",boost:10}];return{from:e.pos,options:i}}}},Qt=(n,e)=>{let t=[{apply:()=>{e==null||e()},label:"Save Expression",boost:10}];return{from:n.pos,options:t}},Qn=(n,e)=>{let t=(0,ln.useCallback)(async(o,r,s={})=>{let i=await n.getSuggestions(r,s),{startsWith:p=""}=s;return{from:o.pos-p.length,options:i}},[n]);return(0,ln.useCallback)(async o=>{var x,E;let{state:r,pos:s}=o,i=(x=o.matchBefore(/\w*/))!=null?x:{from:0,to:0,text:void 0},l=(0,v.syntaxTree)(r).resolveInner(s,-1),c=r.doc.toString(),g=on(c);switch(console.log({nodeBeforeName:l.name}),l.name){case"If":return console.log("conditional expression If"),t(o,"expression",{prefix:"( "});case"Condition":{let a=ue(l,o);if((a==null?void 0:a.name)==="Column"){let m=(0,v.getPreviousNode)(a);if((m==null?void 0:m.name)!=="RelationalOperator")return t(o,"condition-operator",{columnName:(0,v.getValue)(a,r)});console.log(`Condition last child Column, prev child ${m==null?void 0:m.name}`)}else if((a==null?void 0:a.name)==="RelationalOperator")return t(o,"expression");console.log(`condition last child ${a==null?void 0:a.name}`)}break;case"ConditionalExpression":return an(l,o,n);case"RelationalExpression":{if(rn(l))return{from:o.pos,options:v.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let a=Nn(l,r),m=pn(l,r);if(a)return t(o,"expression");{let f=await n.getSuggestions("condition-operator",{columnName:m});return{from:o.pos,options:f}}}}break;case"RelationalOperator":return t(o,"expression");case"String":{let a=Nn(l,r),m=pn(l,r),{from:f,to:d}=l;if(d-f===2&&o.pos===f+1){if(m&&a)return t(o,"columnValue",{columnName:m,operator:a,startsWith:i.text})}else if(d-f>2&&o.pos===d)return t(o,"expression",{prefix:", "});console.log(`we have a string, column is ${m} ${f} ${d}`)}break;case"ArithmeticExpression":{let a=ue(l,o);if((a==null?void 0:a.name)==="Column")return t(o,"expression");if(Nt(a)){let m=a.name;return t(o,"column",{operator:m})}}break;case"OpenBrace":{let a=kn(l,r);return t(o,"expression",{functionName:a})}break;case"ArgList":{let a=kn(l,r),m=ue(l,o),f=(m==null?void 0:m.name)==="OpenBrace"?void 0:",",d=await n.getSuggestions("expression",{functionName:a});return d=f?kt(d,", "):d,(m==null?void 0:m.name)!=="OpenBrace"&&(m==null?void 0:m.name)!=="Comma"&&(d=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(d)),{from:o.pos,options:d}}case"Equal":if(c.trim()==="=")return t(o,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(o.pos===0)return t(o,"expression");{let a=ue(l,o);if((a==null?void 0:a.name)==="Column"){if(g){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],f=(0,v.getValue)(a,r),d=await n.getSuggestions("operator",{columnName:f});return{from:o.pos,options:m.concat(d)}}}else if((a==null?void 0:a.name)==="CallExpression"){if(g){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}];return{from:o.pos,options:m}}}else if((a==null?void 0:a.name)==="ArithmeticExpression"){if(g){let m=[{apply:()=>{e.current()},label:"Save Expression",boost:10}],f=ue(a,o);if((f==null?void 0:f.name)==="Column"){let d=(0,v.getValue)(f,r),P=await n.getSuggestions("operator",{columnName:d});m=m.concat(P)}return{from:o.pos,options:m}}}else if((a==null?void 0:a.name)==="ConditionalExpression")return an(a,o,n,g,e.current);break}case"Column":if(await n.isPartialMatch("expression",void 0,i.text))return t(o,"expression",{startsWith:i.text});break;case"Comma":{let a=(0,v.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return t(o,"expression")}break;case"CloseBrace":{let a=(0,v.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return an(a,o,n,g,e.current);if((a==null?void 0:a.name)==="ArgList"&&g)return Qt(o,e.current);console.log(`does closebrace denote an ARgList or a parenthetised expression ? ${a}`)}break;default:((E=l==null?void 0:l.prevSibling)==null?void 0:E.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[t,e,n])};var De=n=>{if(n.current==null)throw Error("EditorView not defined");return n.current},Ft=()=>"vuuSuggestion",Lt=()=>console.log("noooop"),It=n=>"expressionType"in n,Bt=n=>{if(It(n)){let e=(0,cn.createEl)("div","expression-type-container"),t=(0,cn.createEl)("span","expression-type",n.expressionType);return e.appendChild(t),e}else return null},un=({onChange:n,onSubmitExpression:e,suggestionProvider:t})=>{let o=(0,Z.useRef)(null),r=(0,Z.useRef)(Lt),s=(0,Z.useRef)(),i=Qn(t,r),[p,l]=(0,Z.useMemo)(()=>{let c=()=>{let f=De(s),d=f.state.doc.toString(),P=(0,O.ensureSyntaxTree)(f.state,f.state.doc.length,5e3);if(P){let w=tn(P,d);return[d,w]}else return["",void 0]},g=()=>{De(s).setState(m())},x=()=>{let[f,d]=c();e==null||e(f,d),g()},E=f=>O.keymap.of([{key:f,run(){return x(),!0}}]),a=f=>O.keymap.of([{key:f,run(){return(0,O.startCompletion)(De(s)),!0}}]),m=()=>O.EditorState.create({doc:"",extensions:[O.minimalSetup,(0,O.autocompletion)({addToOptions:[{render:Bt,position:70}],override:[i],optionClass:Ft}),Je(),O.keymap.of(O.defaultKeymap),E("Ctrl-Enter"),a("ArrowDown"),O.EditorView.updateListener.of(f=>{let d=De(s);if(f.docChanged){(0,O.startCompletion)(d);let P=d.state.doc.toString();n==null||n(P,void 0)}}),An,Dn]});return r.current=()=>{x(),setTimeout(()=>{De(s).focus()},100)},[m,g]},[i,n,e]);return(0,Z.useEffect)(()=>{if(!o.current)throw Error("editor not in dom");return s.current=new O.EditorView({state:p(),parent:o.current}),()=>{var c;(c=s.current)==null||c.destroy()}},[i,p]),{editorRef:o,clearInput:l}};var Fn=require("react/jsx-runtime"),$t="vuuColumnExpressionInput",mn=({onChange:n,onSubmitExpression:e,suggestionProvider:t})=>{let{editorRef:o}=un({onChange:n,onSubmitExpression:e,suggestionProvider:t});return(0,Fn.jsx)("div",{className:`${$t}`,ref:o})};var $=require("@vuu-ui/vuu-codemirror"),We=require("@vuu-ui/vuu-data"),ge=require("@vuu-ui/vuu-utils"),de=require("react");var me=[{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 B=require("@vuu-ui/vuu-utils"),Ln=({name:n,description:e,example:t,params:o,type:r})=>{let s=(0,B.createEl)("div","vuuFunctionDoc"),i=(0,B.createEl)("div","function-heading"),p=(0,B.createEl)("span","function-name",n),l=(0,B.createEl)("span","param-list",o.description),c=(0,B.createEl)("span","function-type",r);i.appendChild(p),i.appendChild(l),i.appendChild(c);let g=(0,B.createEl)("p",void 0,e);if(s.appendChild(i),s.appendChild(g),t){let x=(0,B.createEl)("div","example-container","Example:"),E=(0,B.createEl)("div","example-expression",t.expression),a=(0,B.createEl)("div","example-result",t.result);x.appendChild(E),x.appendChild(a),s.appendChild(x)}return s};var Ut=[],te=n=>n.map(e=>{var t;return{...e,apply:((t=e.apply)!=null?t:e.label)+" "}}),Mt=(n,{functionName:e,operator:t})=>{if(t)return n.filter(ge.isNumericColumn);if(e){let o=me.find(r=>r.name===e);if(o)switch(o.accepts){case"string":return n.filter(ge.isTextColumn);case"number":return n.filter(ge.isNumericColumn);default:return n}}return n},In=(n,e)=>Mt(n,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}}),Gt=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],Wt=n=>n===void 0||(0,ge.isNumericColumn)(n)?Gt:Ut,Xt=n=>{switch(n.serverDataType){case"string":case"char":return te($.stringOperators);case"int":case"long":case"double":return te($.numericOperators)}},dn=n=>({apply:`${n.name}( `,boost:2,expressionType:n.type,info:()=>Ln(n),label:n.name,type:"function"}),Ht=n=>{if(n){if(typeof n.accepts=="string")return n.accepts;if(Array.isArray(n.accepts))return n.accepts.every(e=>e==="string")?"string":"any"}return"any"},Vt=me.map(dn),Yt=({functionName:n})=>{if(n){let e=me.find(o=>o.name===n),t=Ht(e);if(e)switch(t){case"string":return me.filter(o=>o.type==="string"||o.type==="variable").map(dn);case"number":return me.filter(o=>o.type==="number"||o.type==="variable").map(dn);default:}}return Vt},zt={},gn=({columns:n,table:e})=>{let t=(0,de.useCallback)(p=>p?n.find(l=>l.name===p):void 0,[n]),o=(0,de.useRef)(),r=(0,We.useTypeaheadSuggestions)(),s=(0,de.useCallback)(async(p,l=zt)=>{let{columnName:c,functionName:g,operator:x,prefix:E}=l;switch(p){case"expression":{let a=await te(In(n,{functionName:g,prefix:E})).concat(Yt(l));return o.current=a}case"column":{let a=await In(n,l);return o.current=te(a)}case"operator":{let a=await Wt(t(c));return o.current=te(a)}case"relational-operator":{let a=await(0,$.getRelationalOperators)(t(c));return o.current=te(a)}case"condition-operator":{let a=t(c);if(a){let m=await Xt(a);if(m)return o.current=te(m)}}break;case"columnValue":if(c&&x){let a=(0,We.getTypeaheadParams)(e,c),m=await r(a);return o.current=(0,$.toSuggestions)(m,{suffix:""}),o.current.forEach(f=>{f.apply=(d,P,w)=>{let G=new $.AnnotationType,ye=w+P.label.length+1;d.dispatch({changes:{from:w,insert:P.label},selection:{anchor:ye,head:ye},annotations:G.of(P)})}}),o.current}break}return[]},[n,t,r,e]),i=(0,de.useCallback)(async(p,l,c)=>{let{current:g}=o,x=!1,E=g||await s(p,{columnName:l});if(c&&E)for(let a of E){if(a.label===c)return!1;a.label.startsWith(c)&&(x=!0)}return x},[s]);return{getSuggestions:s,isPartialMatch:i}};var be=require("@salt-ds/core"),at=q(require("classnames"),1),Y=require("react");var fn=require("@heswell/salt-lab"),F=require("@salt-ds/core"),U=require("react");var Bn=require("@heswell/salt-lab"),$n=q(require("classnames"),1);var Ce=require("react/jsx-runtime"),fe="vuuColumnListItem",Un=({className:n,item:e,label:t,style:o,...r})=>{let s=(0,$n.default)(fe,n,{[`${fe}-calculated`]:e==null?void 0:e.expression,[`${fe}-hidden`]:e==null?void 0:e.hidden});return(0,Ce.jsxs)(Bn.ListItem,{className:s,...r,children:[(0,Ce.jsx)("span",{className:`${fe}-iconType`}),(0,Ce.jsx)("label",{className:`${fe}-label`,children:t}),(0,Ce.jsx)("span",{className:`${fe}-iconHidden`})]})};var b=require("react/jsx-runtime"),xe="vuuColumnPicker",Zt=(n,e)=>n.filter(t=>e.find(o=>o.name===t.name)==null),Mn=({availableColumns:n,id:e,dispatchColumnAction:t,onAddCalculatedColumnClick:o,onSelectionChange:r,chosenColumns:s,selectedColumn:i})=>{let[p,l]=(0,U.useState)([]),c=(0,F.useIdMemo)(e),g=Zt(n,s),x=(0,U.useCallback)(()=>{p.length>0&&(l([]),t({type:"addColumn",columns:p}))},[t,p]),E=(0,U.useCallback)(()=>i&&t({type:"removeColumn",column:i}),[i,t]),a=(0,U.useCallback)(()=>i&&t({type:"moveColumn",column:i,moveBy:-1}),[t,i]),m=(0,U.useCallback)(()=>i&&t({type:"moveColumn",column:i,moveBy:1}),[t,i]),f=(0,U.useCallback)((w,G)=>l(G),[]),d=(0,U.useCallback)((w,G)=>r==null?void 0:r(G),[r]),P=(0,U.useCallback)((w,G)=>{t({type:"moveColumn",moveFrom:w,moveTo:G})},[t]);return(0,b.jsxs)("div",{className:xe,id:c,children:[(0,b.jsxs)("div",{className:`${xe}-listColumn`,children:[(0,b.jsx)("label",{htmlFor:`available-${c}`,children:(0,b.jsx)(F.Text,{as:"h4",children:"Available Columns"})}),(0,b.jsx)("div",{className:`${xe}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,b.jsx)(fn.List,{borderless:!0,checkable:!1,height:"100%",id:`available-${c}`,itemHeight:24,itemToString:w=>w.name,onSelectionChange:f,selected:p,selectionStrategy:"extended",source:g})}),(0,b.jsx)("div",{style:{display:"flex",alignItems:"center",flex:"0 0 32px",marginTop:"var(--salt-size-basis-unit)"},children:(0,b.jsxs)(F.Button,{onClick:x,disabled:p.length===0,children:["Show",(0,b.jsx)("span",{"data-icon":"arrow-thin-right",style:{marginLeft:8}})]})})]}),(0,b.jsxs)("div",{className:`${xe}-listColumn`,children:[(0,b.jsx)("label",{htmlFor:`selected-${c}`,children:(0,b.jsx)(F.Text,{as:"h4",children:"Included Columns"})}),(0,b.jsx)("div",{className:`${xe}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,b.jsx)(fn.List,{ListItem:Un,allowDragDrop:!0,borderless:!0,height:"100%",id:`selected-${c}`,itemHeight:24,itemToString:w=>w.name,onMoveListItem:P,onSelectionChange:d,selected:i,style:{flex:1},source:s})}),(0,b.jsxs)("div",{style:{alignItems:"center",flex:"0 0 32px",display:"flex",gap:6,marginTop:"var(--salt-size-basis-unit)"},children:[(0,b.jsxs)(F.Button,{onClick:E,disabled:i===null,children:[(0,b.jsx)("span",{"data-icon":"arrow-thin-left",style:{marginRight:8}}),"Hide"]}),(0,b.jsx)(F.Button,{"aria-label":"Move column up",onClick:a,disabled:i===null||(s==null?void 0:s.indexOf(i))===0,style:{width:28},children:(0,b.jsx)("span",{"data-icon":"arrow-thin-up"})}),(0,b.jsx)(F.Button,{"aria-label":"Move column down",onClick:m,disabled:i===null||s.indexOf(i)===s.length-1,style:{width:28},children:(0,b.jsx)("span",{"data-icon":"arrow-thin-down"})}),(0,b.jsx)(F.Button,{"aria-label":"Add calculated column",className:`${xe}-addCalculatedColumn`,onClick:o,variant:"primary",children:(0,b.jsx)("span",{"data-icon":"add"})})]})]})]})};var Kn=require("@vuu-ui/vuu-layout"),y=require("@heswell/salt-lab"),Ae=require("@salt-ds/core"),jn=q(require("classnames"),1),H=require("react");var Vn=require("@vuu-ui/vuu-utils"),Yn=require("@heswell/salt-lab"),zn=require("@salt-ds/core"),xn=q(require("classnames"),1),Zn=require("react");var oe=require("@heswell/salt-lab"),Gn=require("@salt-ds/core"),Re=require("react");var A=require("react/jsx-runtime"),Jt={alignOnDecimals:!1,decimals:4,zeroPad:!1},qt=(n,e)=>{let t=typeof n=="object"&&n.formatting?n.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((r,s)=>t[s]!==void 0?{...r,[s]:t[s]}:(e==null?void 0:e[s])!==void 0?{...r,[s]:e[s]}:r,Jt)},Wn=({column:n,dispatchColumnAction:e})=>{let{decimals:t,alignOnDecimals:o,zeroPad:r}=qt(n==null?void 0:n.type),s=(0,Re.useCallback)(c=>e({type:"updateColumnTypeFormatting",column:n,...c}),[n,e]),i=(0,Re.useCallback)(c=>s({decimals:parseInt(c.toString(),10)}),[s]),p=(0,Re.useCallback)((c,g)=>s({alignOnDecimals:g}),[s]),l=(0,Re.useCallback)((c,g)=>s({zeroPad:g}),[s]);switch(n.serverDataType){case"double":return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(oe.FormField,{label:"No of Decimals",labelPlacement:"top",children:(0,A.jsx)(oe.StepperInput,{value:t,onChange:i})}),(0,A.jsx)(oe.Switch,{checked:o,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:p}),(0,A.jsx)(oe.Switch,{checked:r,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l})]});case"long":case"int":return(0,A.jsx)(A.Fragment,{children:(0,A.jsx)(Gn.Text,{children:"Work in progress"})});default:return null}};var Xe=require("react/jsx-runtime"),Xn=({column:n,dispatchColumnAction:e})=>(0,Xe.jsx)(Xe.Fragment,{children:"String"});var X=require("react/jsx-runtime"),Cn="vuuColumnTypePanel",_t=["Default Renderer (int, long)"],Kt=["Default Renderer (double)"],Hn=["Default Renderer (string)"],jt=n=>{let t=(0,Vn.getRegisteredCellRenderers)(n.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:t}),n.serverDataType){case"char":case"string":return Hn;case"int":case"long":return _t;case"double":return Kt.concat(t);default:return Hn}},Jn=({className:n,column:e,dispatchColumnAction:t,...o})=>{let r=(0,Zn.useMemo)(()=>{switch(e.serverDataType){case"double":case"int":case"long":return(0,X.jsx)(Wn,{column:e,dispatchColumnAction:t});default:return(0,X.jsx)(Xn,{column:e,dispatchColumnAction:t})}},[e,t]),{serverDataType:s="string"}=e,i=jt(e);return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(Yn.Dropdown,{className:(0,xn.default)(`${Cn}-renderer`),fullWidth:!0,selected:i[0],source:i}),(0,X.jsx)(zn.Panel,{...o,className:(0,xn.default)(Cn,n,`${Cn}-${s}`),children:r})]})};var h=require("react/jsx-runtime"),qn="vuuColumnSettingsPanel",eo={className:"salt-density-high"},_n=()=>null,et=({column:n,dispatchColumnAction:e,style:t,...o})=>{var E,a,m,f;let[r,s]=(0,H.useState)(0),i=(0,H.useCallback)(d=>e({type:"updateColumnProp",column:n,...d}),[n,e]),p=(0,H.useCallback)(d=>i({align:d.target.value}),[i]),l=(0,H.useCallback)(d=>i({pin:d.target.value}),[i]),c=(0,H.useCallback)((d,P)=>i({hidden:P}),[i]),g=(0,H.useCallback)((d,P)=>i({label:P}),[i]),x=(0,H.useCallback)(d=>i({width:parseInt(d.toString(),10)}),[i]);return(0,h.jsxs)("div",{className:qn,...o,style:{...t},children:[(0,h.jsx)(Ae.Text,{as:"h4",children:"Column Settings"}),(0,h.jsxs)(Kn.Stack,{active:r,showTabs:!0,className:(0,jn.default)(`${qn}-columnTabs`),onTabSelectionChanged:s,TabstripProps:eo,children:[(0,h.jsxs)(Ae.Panel,{title:"Column",children:[(0,h.jsx)(y.FormField,{label:"Hidden",labelPlacement:"left",children:(0,h.jsx)(y.Checkbox,{checked:n.hidden===!0,onChange:c})}),(0,h.jsx)(y.FormField,{label:"Label",labelPlacement:"left",children:(0,h.jsx)(y.Input,{value:(E=n.label)!=null?E:n.name,onChange:g})}),(0,h.jsx)(y.FormField,{label:"Width",labelPlacement:"left",children:(0,h.jsx)(y.StepperInput,{value:(a=n.width)!=null?a:100,onChange:x})}),(0,h.jsx)(y.FormField,{label:"Align",labelPlacement:"left",ActivationIndicatorComponent:_n,children:(0,h.jsxs)(y.RadioButtonGroup,{"aria-label":"Column Align",value:(m=n.align)!=null?m:"left",legend:"Align",onChange:p,children:[(0,h.jsx)(y.RadioButton,{label:"Left",value:"left"}),(0,h.jsx)(y.RadioButton,{label:"Right",value:"right"})]})}),(0,h.jsx)(y.FormField,{label:"Pin Column",labelPlacement:"left",ActivationIndicatorComponent:_n,children:(0,h.jsxs)(y.RadioButtonGroup,{"aria-label":"Pin Column",value:(f=n.pin)!=null?f:"",legend:"Pin Column",onChange:l,children:[(0,h.jsx)(y.RadioButton,{label:"Do not pin",value:""}),(0,h.jsx)(y.RadioButton,{label:"Left",value:"left"}),(0,h.jsx)(y.RadioButton,{label:"Right",value:"right"})]})})]}),(0,h.jsx)(Jn,{column:n,dispatchColumnAction:e,title:"Data Cell"}),(0,h.jsxs)(Ae.Panel,{title:"Vuu",variant:"secondary",children:[(0,h.jsx)(y.FormField,{label:"Name",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,h.jsx)(y.Input,{value:n.name})}),(0,h.jsx)(y.FormField,{label:"Vuu type",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,h.jsx)(y.Input,{value:n.serverDataType})})]})]})]})};var L=require("@heswell/salt-lab"),Ve=require("@salt-ds/core"),He=require("react");var k=require("react/jsx-runtime"),no="vuuGridSettingsPanel",to=()=>null,nt=({config:n,dispatchColumnAction:e,style:t,...o})=>{var p;let r=(0,He.useCallback)(l=>e({type:"updateGridSettings",...l}),[e]),s=(0,He.useCallback)(l=>r({columnFormatHeader:l.target.value}),[r]),i=(0,He.useCallback)(l=>r({columnDefaultWidth:parseInt(l.toString(),10)}),[r]);return(0,k.jsxs)("div",{className:no,...o,style:{...t},children:[(0,k.jsx)(Ve.Text,{as:"h4",children:"Grid Settings"}),(0,k.jsxs)(Ve.Panel,{children:[(0,k.jsx)(L.FormField,{label:"Format column labels",labelPlacement:"left",ActivationIndicatorComponent:to,children:(0,k.jsxs)(L.RadioButtonGroup,{"aria-label":"Format column labels",value:n.columnFormatHeader,legend:"Format column labels",onChange:s,children:[(0,k.jsx)(L.RadioButton,{label:"No Formatting",value:void 0}),(0,k.jsx)(L.RadioButton,{label:"Capitalize",value:"capitalize"}),(0,k.jsx)(L.RadioButton,{label:"Uppercase",value:"uppercase"})]})}),(0,k.jsx)(L.FormField,{label:"Default Column Width",labelPlacement:"left",children:(0,k.jsx)(L.StepperInput,{value:(p=n.columnDefaultWidth)!=null?p:100,onChange:i})})]})]})};var tt=require("react"),ot=require("@heswell/salt-lab"),rt=require("@vuu-ui/vuu-utils"),oo=(n,e)=>{switch(console.log(`gridSettingsReducer ${e.type}`),e.type){case"addColumn":return ro(n,e);case"addCalculatedColumn":return so(n,e);case"moveColumn":return ao(n,e);case"removeColumn":return io(n,e);case"updateColumn":return n;case"updateColumnProp":return lo(n,e);case"updateGridSettings":return po(n,e);case"updateColumnTypeFormatting":return co(n,e);default:return n}},st=n=>{let[e,t]=(0,tt.useReducer)(oo,n);return{gridSettings:e,dispatchColumnAction:t}};function ro(n,{column:e,columns:t,index:o=-1}){let{columns:r}=n;if(o===-1){if(Array.isArray(t))return{...n,columns:r.concat(t)};if(e)return{...n,columns:r.concat(e)}}return n}function so(n,{columnName:e,columnType:t,expression:o}){let{columns:r}=n,s={name:e,expression:o,serverDataType:t};return{...n,columns:r.concat(s)}}function io(n,{column:e}){let{columns:t}=n;return{...n,columns:t.filter(o=>o.name!==e.name)}}function ao(n,{column:e,moveBy:t,moveFrom:o,moveTo:r}){let{columns:s}=n;if(e&&typeof t=="number"){let i=s.indexOf(e),p=s.slice(),[l]=p.splice(i,1);return p.splice(i+t,0,l),{...n,columns:p}}else return typeof o=="number"&&typeof r=="number"?{...n,columns:(0,ot.moveItem)(s,o,r)}:n}function lo(n,{align:e,column:t,hidden:o,label:r,width:s}){let{columns:i}=n;return(e==="left"||e==="right")&&(i=ke(i,{...t,align:e})),typeof o=="boolean"&&(i=ke(i,{...t,hidden:o})),typeof r=="string"&&(i=ke(i,{...t,label:r})),typeof s=="number"&&(i=ke(i,{...t,width:s})),{...n,columns:i}}function po(n,{columnFormatHeader:e}){return{...n,columnFormatHeader:e!=null?e:n.columnFormatHeader}}function co(n,{alignOnDecimals:e,column:t,decimals:o,zeroPad:r}){let{columns:s}=n;if(s.find(p=>p.name===t.name)){let{serverDataType:p="string",type:l=(0,rt.fromServerDataType)(p)}=t,c=typeof l=="string"?{name:l}:{...l};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}),{...n,columns:ke(s,{...t,type:c})}}else return n}function ke(n,e){return n.map(t=>t.name===e.name?e:t)}var lt=require("@vuu-ui/vuu-layout");var Ye=require("@heswell/salt-lab"),he=require("@salt-ds/core"),M=require("react");var V=require("react/jsx-runtime"),it=({columns:n,dispatchColumnAction:e,table:t})=>{let[o,r]=(0,M.useState)(""),[,s]=(0,M.useState)(),i=(0,M.useRef)(""),p=gn({columns:n,table:t}),l=(0,M.useCallback)(E=>{let{value:a}=E.target;r(a)},[]),c=(0,M.useCallback)(E=>{i.current=E},[]),g=(0,M.useCallback)((E,a)=>{console.log({source:E}),s(a)},[]),x=(0,M.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,V.jsxs)(he.Panel,{className:"vuuCalculatedColumnPanel",title:"Define Computed Column",children:[(0,V.jsx)(he.Text,{styleAs:"h4",children:"Define Computed Column"}),(0,V.jsx)(Ye.FormField,{label:"Column Name",labelPlacement:"left",children:(0,V.jsx)(Ye.Input,{value:o,onChange:l})}),(0,V.jsx)(mn,{onChange:c,onSubmitExpression:g,suggestionProvider:p}),(0,V.jsx)("div",{style:{marginTop:12},children:(0,V.jsx)(he.Button,{onClick:x,children:"Add Column"})})]})};var T=require("react/jsx-runtime"),ze="vuuDatagridSettingsPanel",uo=()=>{},mo=["table-settings","column-chooser","column-settings","define-column"],go=(n,e)=>mo[e],fo=({availableColumns:n,className:e,gridConfig:t,onCancel:o,onConfigChange:r,...s})=>{var ye;console.log("DatagridSettingsPanel render");let[i,p]=(0,Y.useState)(0),{gridSettings:l,dispatchColumnAction:c}=st(t),[g,x]=(0,Y.useState)(null),E=(0,Y.useCallback)(W=>{x(W?W.name:null)},[]),a=(0,Y.useCallback)((W,ct=!1)=>{console.log("1) DataGridSettingsPanel fire onConfigChange"),r==null||r(l,ct)},[l,r]),m=(0,Y.useCallback)(W=>{p(W)},[]),f=(0,Y.useCallback)(W=>a(W,!0),[a]),d=g===null?null:(ye=l.columns.find(W=>W.name===g))!=null?ye:null,P={activeTabIndex:i,enableRenameTab:!1,orientation:"vertical"},w=(0,Y.useCallback)(()=>p(3),[]),G=i===2?"right":void 0;return(0,T.jsxs)("div",{...s,className:(0,at.default)(ze,e),children:[(0,T.jsxs)(lt.Stack,{TabstripProps:P,className:`${ze}-stack`,getTabIcon:go,getTabLabel:uo,active:i===2?1:i,onTabSelectionChanged:m,showTabs:!0,children:[(0,T.jsx)(nt,{config:l,dispatchColumnAction:c}),(0,T.jsxs)("div",{className:`${ze}-columnPanels`,"data-align":G,children:[(0,T.jsx)(Mn,{availableColumns:n,chosenColumns:l.columns,dispatchColumnAction:c,onSelectionChange:E,onAddCalculatedColumnClick:w,selectedColumn:d}),d===null?(0,T.jsx)(be.Panel,{className:"vuuColumnSettingsPanel",children:"Select a column"}):(0,T.jsx)(et,{column:d,dispatchColumnAction:c,style:{background:"white",flex:"1 0 150px"}})]}),(0,T.jsx)("div",{title:"Column Settings",children:"Column Settings"}),(0,T.jsx)(it,{columns:l.columns,dispatchColumnAction:c,table:{module:"SIMUL",table:"instruments"}})]}),(0,T.jsxs)("div",{className:`${ze}-buttonBar`,children:[(0,T.jsx)(be.Button,{onClick:o,children:"Cancel"}),(0,T.jsx)(be.Button,{onClick:a,children:"Apply"}),(0,T.jsx)(be.Button,{onClick:f,children:"Save"})]})]})};var Ne=require("react"),pt=q(require("classnames"),1);var J=require("react/jsx-runtime"),Ze="vuuDatasourceStats",hn=new Intl.NumberFormat,Co=({className:n,dataSource:e})=>{let[t,o]=(0,Ne.useState)(e.range),[r,s]=(0,Ne.useState)(e.size);(0,Ne.useEffect)(()=>{s(e.size),e.on("resize",s),e.on("range",o)},[e]);let i=(0,pt.default)(Ze,n),p=hn.format(t.from),l=hn.format(t.to-1),c=hn.format(r);return(0,J.jsxs)("div",{className:i,children:[(0,J.jsx)("span",{children:"Showing rows"}),(0,J.jsx)("span",{className:`${Ze}-range`,children:p}),(0,J.jsx)("span",{className:`${Ze}-range`,children:l}),(0,J.jsx)("span",{children:"of"}),(0,J.jsx)("span",{className:`${Ze}-size`,children:c})]})};
|
|
1
|
+
"use strict";var Qt=Object.create;var Ge=Object.defineProperty;var Lt=Object.getOwnPropertyDescriptor;var It=Object.getOwnPropertyNames;var Bt=Object.getPrototypeOf,$t=Object.prototype.hasOwnProperty;var Mt=(e,n)=>{for(var t in n)Ge(e,t,{get:n[t],enumerable:!0})},An=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of It(n))!$t.call(e,i)&&i!==t&&Ge(e,i,{get:()=>n[i],enumerable:!(o=Lt(n,i))||o.enumerable});return e};var Y=(e,n,t)=>(t=e!=null?Qt(Bt(e)):{},An(n||!e||!e.__esModule?Ge(t,"default",{value:e,enumerable:!0}):t,e)),Ut=e=>An(Ge({},"__esModule",{value:!0}),e);var Nn=(e,n,t)=>{if(!n.has(e))throw TypeError("Cannot "+t)};var u=(e,n,t)=>(Nn(e,n,"read from private field"),t?t.call(e):n.get(e)),L=(e,n,t)=>{if(n.has(e))throw TypeError("Cannot add the same private member more than once");n instanceof WeakSet?n.add(e):n.set(e,t)},j=(e,n,t,o)=>(Nn(e,n,"write to private field"),o?o.call(e,t):n.set(e,t),t);var zo={};Mt(zo,{ColumnExpressionInput:()=>En,ColumnNamedTerms:()=>Ze,ColumnSettingsPanel:()=>Yo,DataSourceStats:()=>Mo,DatagridSettingsPanel:()=>$o,columnExpressionLanguageSupport:()=>rn,isCompleteExpression:()=>dn,isCompleteRelationalExpression:()=>gn,lastNamedChild:()=>Je,useColumnExpressionEditor:()=>yn,useColumnExpressionSuggestionProvider:()=>On,walkTree:()=>mn});module.exports=Ut(zo);var A=require("@vuu-ui/vuu-utils"),Fn=Y(require("classnames"),1);var te=require("@vuu-ui/vuu-utils"),We=require("react"),Gt=[void 0,void 0,void 0,void 0];function kn(e,n,t){var x;let o=(0,We.useRef)(),[i,r,s,p]=o.current||Gt,{type:l}=t,c=(0,te.isTypeDescriptor)(l)?(x=l.formatting)==null?void 0:x.decimals:void 0,g=e===i&&(0,te.isValidNumber)(n)&&(0,te.isValidNumber)(r)&&t===s?(0,te.getMovingValueDirection)(n,p,r,c):"";return(0,We.useEffect)(()=>{o.current=[e,n,t,g]}),g}var Xe=require("react/jsx-runtime"),Wt=String.fromCharCode(11014),Ht=String.fromCharCode(11015),{KEY:Xt}=A.metadataKeys,He="vuuBackgroundCell",we={ArrowOnly:"arrow",BackgroundOnly:"bg-only",ArrowBackground:"arrow-bg"},Vt=e=>(0,A.isTypeDescriptor)(e)&&e.renderer&&"flashStyle"in e.renderer?e.renderer.flashStyle:we.BackgroundOnly,Yt=({column:e,row:n})=>{let{key:t,type:o,valueFormatter:i}=e,r=n[t],s=Vt(o),p=kn(n[Xt],r,e),l=s===we.ArrowOnly||s===we.ArrowBackground?p===A.UP1||p===A.UP2?Wt:p===A.DOWN1||p===A.DOWN2?Ht:null:null,c=p?" "+p:"",g=(0,Fn.default)(He,c,{[`${He}-arrowOnly`]:s===we.ArrowOnly,[`${He}-arrowBackground`]:s===we.ArrowBackground});return(0,Xe.jsxs)("div",{className:g,tabIndex:-1,children:[(0,Xe.jsx)("div",{className:`${He}-flasher`,children:l}),i(n[e.key])]})};(0,A.registerComponent)("background",Yt,"cell-renderer",{serverDataType:["long","int","double"]});var ue=require("@vuu-ui/vuu-utils"),Qn=Y(require("classnames"),1);var oe=require("react/jsx-runtime"),Re="vuuProgressCell",zt=({column:e,columnMap:n,row:t})=>{let{type:o}=e,i=t[e.key],r=!1,s=0;if((0,ue.isTypeDescriptor)(o)&&(0,ue.isColumnTypeRenderer)(o.renderer)){let{associatedField:l}=o.renderer,c=t[n[l]];if(typeof i=="number"&&typeof c=="number")s=Math.min(Math.round(i/c*100),100),r=isFinite(s);else{let g=parseFloat(i);if(Number.isFinite(g)){let x=parseFloat(c);Number.isFinite(x)&&(s=Math.min(Math.round(g/x*100),100),r=isFinite(s))}}}let p=(0,Qn.default)(Re,{});return(0,oe.jsxs)("div",{className:p,tabIndex:-1,children:[r?(0,oe.jsxs)("span",{className:`${Re}-track`,children:[(0,oe.jsx)("span",{className:`${Re}-bg`}),(0,oe.jsx)("span",{className:`${Re}-bar`,style:{"--progress-bar-pct":`-${100-s}%`}})]}):null,(0,oe.jsx)("span",{className:`${Re}-text`,children:`${s} %`})]})};(0,ue.registerComponent)("vuu.progress",zt,"cell-renderer",{serverDataType:["long","int","double"]});var S=require("@vuu-ui/vuu-codemirror"),bn=require("@vuu-ui/vuu-utils"),ee=require("react");var I=require("@vuu-ui/vuu-codemirror");var Ln=require("@lezer/lr"),Ve=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 Zt=I.LRLanguage.define({name:"VuuColumnExpression",parser:Ve.configure({props:[(0,I.styleTags)({Function:I.tags.variableName,String:I.tags.string,Or:I.tags.emphasis,Operator:I.tags.operator})]})}),rn=()=>new I.LanguageSupport(Zt);var sn=class{constructor(n){switch(this.value=n,typeof n){case"boolean":this.type="booleanLiteralExpression";break;case"number":this.type="numericLiteralExpression";break;default:this.type="stringLiteralExpression"}}toJSON(){return{type:this.type,value:this.value}}},an=class{constructor(n){this.type="colExpression";this.column=n}toJSON(){return{type:this.type,column:this.column}}},Ne,se,ln=class{constructor(n="unknown"){L(this,Ne,[{type:"unknown"},{type:"unknown"}]);L(this,se,void 0);this.type="arithmeticExpression";j(this,se,n)}get op(){return u(this,se)}set op(n){j(this,se,n)}get expressions(){return u(this,Ne)}toJSON(){return{type:this.type,op:u(this,se),expressions:u(this,Ne)}}};Ne=new WeakMap,se=new WeakMap;var fe,pn=class{constructor(n){L(this,fe,[]);this.type="callExpression";this.functionName=n}get expressions(){return u(this,fe)}get arguments(){return u(this,fe)}toJSON(){return{type:this.type,functionName:this.functionName,arguments:u(this,fe).map(n=>{var t;return(t=n.toJSON)==null?void 0:t.call(n)})}}};fe=new WeakMap;var ke,Ce,de=class{constructor(){L(this,ke,[{type:"unknown"},{type:"unknown"}]);L(this,Ce,"unknown");this.type="relationalExpression"}get op(){return u(this,Ce)}set op(n){j(this,Ce,n)}get expressions(){return u(this,ke)}toJSON(){return{type:this.type,op:u(this,Ce),expressions:u(this,ke)}}};ke=new WeakMap,Ce=new WeakMap;var Fe,xe,ge=class{constructor(n){L(this,Fe,[{type:"unknown"},{type:"unknown"}]);L(this,xe,void 0);this.type="booleanCondition";j(this,xe,n)}get op(){return u(this,xe)}get expressions(){return u(this,Fe)}toJSON(){return{type:this.type,op:u(this,xe),expressions:u(this,Fe).map(n=>{var t;return(t=n.toJSON)==null?void 0:t.call(n)})}}};Fe=new WeakMap,xe=new WeakMap;var M,Ae=class{constructor(n){L(this,M,void 0);this.type="conditionalExpression";j(this,M,[n?new ge(n):new de,{type:"unknown"},{type:"unknown"}])}get expressions(){return u(this,M)}get condition(){return u(this,M)[0]}get truthyExpression(){return u(this,M)[1]}set truthyExpression(n){u(this,M)[1]=n}get falsyExpression(){return u(this,M)[2]}set falsyExpression(n){u(this,M)[2]=n}toJSON(){var n,t,o,i,r;return{type:this.type,condition:(t=(n=this.condition).toJSON)==null?void 0:t.call(n),truthyExpression:this.truthyExpression,falsyExpression:(r=(i=(o=this.falsyExpression)==null?void 0:o.toJSON)==null?void 0:i.call(o))!=null?r:this.falsyExpression}}};M=new WeakMap;var re=e=>e.type==="unknown",Ye=e=>e.type==="arithmeticExpression",Jt=e=>e.type==="callExpression",me=e=>e.type==="conditionalExpression",qt=e=>e.type==="relationalExpression"||e.type==="booleanCondition";var _t=e=>e.type==="booleanCondition",un=e=>(e==null?void 0:e.type)==="relationalExpression";var N=e=>{if(re(e))return e;if(un(e)){let[n,t]=e.expressions;if(D(n))return N(n);if(e.op==="unknown")return e;if(D(t))return N(t)}else if(qt(e)){let{expressions:n=[]}=e;for(let t of n)if(D(t))return N(t)}else if(me(e)){let{condition:n,truthyExpression:t,falsyExpression:o}=e;if(D(n))return N(n);if(D(t))return N(t);if(D(o))return N(o)}else if(Ye(e)){let{expressions:n=[]}=e;for(let t of n)if(D(t))return N(t)}},ze=(e,n,t)=>{let{expressions:o=[]}=e;if(o.includes(n)){let i=o.indexOf(n);return o.splice(i,1,t),!0}else for(let i of o)if(ze(i,n,t))return!0;return!1},D=e=>re(e)?!0:me(e)?D(e.condition)||D(e.truthyExpression)||D(e.falsyExpression):un(e)||_t(e)?e.op===void 0||e.expressions.some(n=>D(n)):!1,In=(e,n)=>{let t=N(e);t?t.expressions?t.expressions.push(n):console.warn("don't know how to treat targetExpression"):console.error("no target expression found")},C,ie,cn=class{constructor(){L(this,C,void 0);L(this,ie,[])}setCondition(n){if(u(this,C)===void 0)this.addExpression(new Ae(n));else if(me(u(this,C))){if(D(u(this,C).condition)){let t=n?new ge(n):new de;this.addExpression(t)}else if(re(u(this,C).truthyExpression))u(this,C).truthyExpression=new Ae(n);else if(D(u(this,C).truthyExpression)){let t=n?new ge(n):new de;this.addExpression(t)}else if(re(u(this,C).falsyExpression))u(this,C).falsyExpression=new Ae(n);else if(D(u(this,C).falsyExpression)){let t=n?new ge(n):new de;this.addExpression(t)}}else console.error("setCondition called unexpectedly")}addExpression(n){if(u(this,ie).length>0){let t=u(this,ie).at(-1);t==null||t.arguments.push(n)}else if(u(this,C)===void 0)j(this,C,n);else if(Ye(u(this,C))){let t=N(u(this,C));t&&re(t)&&ze(u(this,C),t,n)}else if(me(u(this,C))&&D(u(this,C))){let t=N(u(this,C));t&&re(t)?ze(u(this,C),t,n):t&&In(t,n)}}setFunction(n){let t=new pn(n);this.addExpression(t),u(this,ie).push(t)}setColumn(n){this.addExpression(new an(n))}setArithmeticOp(n){let t=n,o=u(this,C);Ye(o)&&(o.op=t)}setRelationalOperator(n){let t=n;if(u(this,C)&&me(u(this,C))){let o=N(u(this,C));un(o)?o.op=t:console.error(`no target expression found (op = ${n})`)}}setValue(n){let t=new sn(n);if(u(this,C)===void 0)j(this,C,t);else if(Ye(u(this,C)))this.addExpression(t);else if(Jt(u(this,C)))u(this,C).arguments.push(t);else if(me(u(this,C)))if(D(u(this,C))){let o=N(u(this,C));o&&re(o)?ze(u(this,C),o,t):o&&In(o,t)}else console.log("what do we do with value, in a complete expression")}closeBrace(){u(this,ie).pop()}get expression(){return u(this,C)}toJSON(){var n;return(n=u(this,C))==null?void 0:n.toJSON()}};C=new WeakMap,ie=new WeakMap;var mn=(e,n)=>{let t=new cn,o=e.cursor();do{let{name:i,from:r,to:s}=o;switch(i){case"AndCondition":t.setCondition("and");break;case"OrCondition":t.setCondition("or");break;case"RelationalExpression":t.setCondition();break;case"ArithmeticExpression":t.addExpression(new ln);break;case"Column":{let p=n.substring(r,s);t.setColumn(p)}break;case"Function":{let p=n.substring(r,s);t.setFunction(p)}break;case"Times":case"Divide":case"Plus":case"Minus":{let p=n.substring(r,s);t.setArithmeticOp(p)}break;case"RelationalOperator":{let p=n.substring(r,s);t.setRelationalOperator(p)}break;case"False":case"True":{let p=n.substring(r,s);t.setValue(p==="true")}break;case"String":t.setValue(n.substring(r+1,s-1));break;case"Number":t.setValue(parseFloat(n.substring(r,s)));break;case"CloseBrace":t.closeBrace();break;default:}}while(o.next());return t.toJSON()};var Kt=Ve.configure({strict:!0}),Bn=["Number","String"],Ze=[...Bn,"AndCondition","ArithmeticExpression","BooleanOperator","RelationalOperatorOperator","CallExpression","CloseBrace","Column","Comma","ConditionalExpression","Divide","Equal","If","Minus","OpenBrace","OrCondition","ParenthesizedExpression","Plus","RelationalExpression","RelationalOperator","Times"],dn=e=>{try{return Kt.parse(e),!0}catch{return!1}},Je=e=>{let{lastChild:n}=e;for(;n&&!Ze.includes(n.name);)n=n.prevSibling,console.log(n==null?void 0:n.name);return n},gn=e=>{if((e==null?void 0:e.name)==="RelationalExpression"){let{firstChild:n}=e,t=Je(e);if((n==null?void 0:n.name)==="Column"&&typeof(t==null?void 0:t.name)=="string"&&Bn.includes(t.name))return!0}return!1};var ae=require("@vuu-ui/vuu-codemirror"),jt=ae.HighlightStyle.define([{tag:ae.tags.variableName,color:"var(--vuuFilterEditor-variableColor)"},{tag:ae.tags.comment,color:"green",fontStyle:"italic"}]),$n=(0,ae.syntaxHighlighting)(jt);var Mn=require("@vuu-ui/vuu-codemirror"),Un=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 T=require("@vuu-ui/vuu-codemirror"),xn=require("react");var eo=(e,n)=>n?e.map(t=>{var o;return{...t,apply:typeof t.apply=="function"?t.apply:`${n}${(o=t.apply)!=null?o:t.label}`}}):e,no=e=>e===void 0?!1:["Times","Divide","Plus","Minus"].includes(e.name),he=(e,n)=>{var i;let{lastChild:t}=e,{pos:o}=n;for(;t;)if(t.from<o&&Ze.includes(t.name)){if(t.name==="ParenthesizedExpression"){let s=(i=t.firstChild)==null?void 0:i.nextSibling;s&&(t=s)}return t}else t=t.prevSibling},Gn=(e,n)=>{var t;if(e.name==="ArgList"){let o=e.prevSibling;if(o)return(0,T.getValue)(o,n)}else if(e.name==="OpenBrace"){let o=(t=e.parent)==null?void 0:t.prevSibling;if((o==null?void 0:o.name)==="Function")return(0,T.getValue)(o,n)}},Wn=(e,n)=>{if(e.name==="RelationalExpression"){let t=Je(e);if((t==null?void 0:t.name)==="RelationalOperator")return(0,T.getValue)(t,n)}else{let t=e.prevSibling;if((t==null?void 0:t.name)==="RelationalOperator")return(0,T.getValue)(t,n)}},hn=(e,n)=>{var t;if(e.name==="RelationalExpression"){if(((t=e.firstChild)==null?void 0:t.name)==="Column")return(0,T.getValue)(e.firstChild,n)}else{let o=e.prevSibling;if((o==null?void 0:o.name)==="Column")return(0,T.getValue)(o,n);if((o==null?void 0:o.name)==="RelationalOperator")return hn(o,n)}},fn=async(e,n,t,o={})=>{let i=await n.getSuggestions(t,o),{startsWith:r=""}=o;return{from:e.pos-r.length,options:i}},Cn=(e,n,t,o,i)=>{let r=he(e,n);switch(console.log(`conditional expression last child ${r==null?void 0:r.name}`),r==null?void 0:r.name){case"If":return fn(n,t,"expression",{prefix:"( "});case"OpenBrace":return fn(n,t,"expression");case"Condition":return fn(n,t,"expression",{prefix:", "});case"CloseBrace":if(o){let s=[{apply:()=>{i==null||i()},label:"Save Expression",boost:10}];return{from:n.pos,options:s}}}},to=(e,n)=>{let t=[{apply:()=>{n==null||n()},label:"Save Expression",boost:10}];return{from:e.pos,options:t}},Hn=(e,n)=>{let t=(0,xn.useCallback)(async(o,i,r={})=>{let s=await e.getSuggestions(i,r),{startsWith:p=""}=r;return{from:o.pos-p.length,options:s}},[e]);return(0,xn.useCallback)(async o=>{var x,h;let{state:i,pos:r}=o,s=(x=o.matchBefore(/\w*/))!=null?x:{from:0,to:0,text:void 0},l=(0,T.syntaxTree)(i).resolveInner(r,-1),c=i.doc.toString(),g=dn(c);switch(console.log({nodeBeforeName:l.name}),l.name){case"If":return console.log("conditional expression If"),t(o,"expression",{prefix:"( "});case"Condition":{let a=he(l,o);if((a==null?void 0:a.name)==="Column"){let d=(0,T.getPreviousNode)(a);if((d==null?void 0:d.name)!=="RelationalOperator")return t(o,"condition-operator",{columnName:(0,T.getValue)(a,i)});console.log(`Condition last child Column, prev child ${d==null?void 0:d.name}`)}else if((a==null?void 0:a.name)==="RelationalOperator")return t(o,"expression");console.log(`condition last child ${a==null?void 0:a.name}`)}break;case"ConditionalExpression":return Cn(l,o,e);case"RelationalExpression":{if(gn(l))return{from:o.pos,options:T.booleanJoinSuggestions.concat({label:", <truthy expression>, <falsy expression>",apply:", "})};{let a=Wn(l,i),d=hn(l,i);if(a)return t(o,"expression");{let f=await e.getSuggestions("condition-operator",{columnName:d});return{from:o.pos,options:f}}}}break;case"RelationalOperator":return t(o,"expression");case"String":{let a=Wn(l,i),d=hn(l,i),{from:f,to:m}=l;if(m-f===2&&o.pos===f+1){if(d&&a)return t(o,"columnValue",{columnName:d,operator:a,startsWith:s.text})}else if(m-f>2&&o.pos===m)return t(o,"expression",{prefix:", "});console.log(`we have a string, column is ${d} ${f} ${m}`)}break;case"ArithmeticExpression":{let a=he(l,o);if((a==null?void 0:a.name)==="Column")return t(o,"expression");if(no(a)){let d=a.name;return t(o,"column",{operator:d})}}break;case"OpenBrace":{let a=Gn(l,i);return t(o,"expression",{functionName:a})}break;case"ArgList":{let a=Gn(l,i),d=he(l,o),f=(d==null?void 0:d.name)==="OpenBrace"?void 0:",",m=await e.getSuggestions("expression",{functionName:a});return m=f?eo(m,", "):m,(d==null?void 0:d.name)!=="OpenBrace"&&(d==null?void 0:d.name)!=="Comma"&&(m=[{apply:") ",boost:10,label:"Done - no more arguments"}].concat(m)),{from:o.pos,options:m}}case"Equal":if(c.trim()==="=")return t(o,"expression");break;case"ParenthesizedExpression":case"ColumnDefinitionExpression":if(o.pos===0)return t(o,"expression");{let a=he(l,o);if((a==null?void 0:a.name)==="Column"){if(g){let d=[{apply:()=>{n.current()},label:"Save Expression",boost:10}],f=(0,T.getValue)(a,i),m=await e.getSuggestions("operator",{columnName:f});return{from:o.pos,options:d.concat(m)}}}else if((a==null?void 0:a.name)==="CallExpression"){if(g){let d=[{apply:()=>{n.current()},label:"Save Expression",boost:10}];return{from:o.pos,options:d}}}else if((a==null?void 0:a.name)==="ArithmeticExpression"){if(g){let d=[{apply:()=>{n.current()},label:"Save Expression",boost:10}],f=he(a,o);if((f==null?void 0:f.name)==="Column"){let m=(0,T.getValue)(f,i),P=await e.getSuggestions("operator",{columnName:m});d=d.concat(P)}return{from:o.pos,options:d}}}else if((a==null?void 0:a.name)==="ConditionalExpression")return Cn(a,o,e,g,n.current);break}case"Column":if(await e.isPartialMatch("expression",void 0,s.text))return t(o,"expression",{startsWith:s.text});break;case"Comma":{let a=(0,T.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return t(o,"expression")}break;case"CloseBrace":{let a=(0,T.getNamedParentNode)(l);if((a==null?void 0:a.name)==="ConditionalExpression")return Cn(a,o,e,g,n.current);if((a==null?void 0:a.name)==="ArgList"&&g)return to(o,n.current);console.log(`does closebrace denote an ARgList or a parenthetised expression ? ${a}`)}break;default:((h=l==null?void 0:l.prevSibling)==null?void 0:h.name)==="FilterClause"&&console.log("looks like we ight be a or|and operator")}},[t,n,e])};var Qe=e=>{if(e.current==null)throw Error("EditorView not defined");return e.current},oo=()=>"vuuSuggestion",ro=()=>console.log("noooop"),so=e=>"expressionType"in e,io=e=>{if(so(e)){let n=(0,bn.createEl)("div","expression-type-container"),t=(0,bn.createEl)("span","expression-type",e.expressionType);return n.appendChild(t),n}else return null},yn=({onChange:e,onSubmitExpression:n,suggestionProvider:t})=>{let o=(0,ee.useRef)(null),i=(0,ee.useRef)(ro),r=(0,ee.useRef)(),s=Hn(t,i),[p,l]=(0,ee.useMemo)(()=>{let c=()=>{let f=Qe(r),m=f.state.doc.toString(),P=(0,S.ensureSyntaxTree)(f.state,f.state.doc.length,5e3);if(P){let R=mn(P,m);return[m,R]}else return["",void 0]},g=()=>{Qe(r).setState(d())},x=()=>{let[f,m]=c();n==null||n(f,m),g()},h=f=>S.keymap.of([{key:f,run(){return x(),!0}}]),a=f=>S.keymap.of([{key:f,run(){return(0,S.startCompletion)(Qe(r)),!0}}]),d=()=>S.EditorState.create({doc:"",extensions:[S.minimalSetup,(0,S.autocompletion)({addToOptions:[{render:io,position:70}],override:[s],optionClass:oo}),rn(),S.keymap.of(S.defaultKeymap),h("Ctrl-Enter"),a("ArrowDown"),S.EditorView.updateListener.of(f=>{let m=Qe(r);if(f.docChanged){(0,S.startCompletion)(m);let P=m.state.doc.toString();e==null||e(P,void 0)}}),Un,$n]});return i.current=()=>{x(),setTimeout(()=>{Qe(r).focus()},100)},[d,g]},[s,e,n]);return(0,ee.useEffect)(()=>{if(!o.current)throw Error("editor not in dom");return r.current=new S.EditorView({state:p(),parent:o.current}),()=>{var c;(c=r.current)==null||c.destroy()}},[s,p]),{editorRef:o,clearInput:l}};var Xn=require("react/jsx-runtime"),ao="vuuColumnExpressionInput",En=({onChange:e,onSubmitExpression:n,suggestionProvider:t})=>{let{editorRef:o}=yn({onChange:e,onSubmitExpression:n,suggestionProvider:t});return(0,Xn.jsx)("div",{className:`${ao}`,ref:o})};var G=require("@vuu-ui/vuu-codemirror"),qe=require("@vuu-ui/vuu-data-react"),Ee=require("@vuu-ui/vuu-utils"),ye=require("react");var be=[{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 U=require("@vuu-ui/vuu-utils"),Vn=({name:e,description:n,example:t,params:o,type:i})=>{let r=(0,U.createEl)("div","vuuFunctionDoc"),s=(0,U.createEl)("div","function-heading"),p=(0,U.createEl)("span","function-name",e),l=(0,U.createEl)("span","param-list",o.description),c=(0,U.createEl)("span","function-type",i);s.appendChild(p),s.appendChild(l),s.appendChild(c);let g=(0,U.createEl)("p",void 0,n);if(r.appendChild(s),r.appendChild(g),t){let x=(0,U.createEl)("div","example-container","Example:"),h=(0,U.createEl)("div","example-expression",t.expression),a=(0,U.createEl)("div","example-result",t.result);x.appendChild(h),x.appendChild(a),r.appendChild(x)}return r};var lo=[],le=e=>e.map(n=>{var t;return{...n,apply:((t=n.apply)!=null?t:n.label)+" "}}),po=(e,{functionName:n,operator:t})=>{if(t)return e.filter(Ee.isNumericColumn);if(n){let o=be.find(i=>i.name===n);if(o)switch(o.accepts){case"string":return e.filter(Ee.isTextColumn);case"number":return e.filter(Ee.isNumericColumn);default:return e}}return e},Yn=(e,n)=>po(e,n).map(o=>{var r;let i=(r=o.label)!=null?r:o.name;return{apply:n.prefix?`${n.prefix}${i}`:i,label:i,boost:5,type:"column",expressionType:o.serverDataType}}),co=[{apply:"* ",boost:2,label:"*",type:"operator"},{apply:"/ ",boost:2,label:"/",type:"operator"},{apply:"+ ",boost:2,label:"+",type:"operator"},{apply:"- ",boost:2,label:"-",type:"operator"}],uo=e=>e===void 0||(0,Ee.isNumericColumn)(e)?co:lo,mo=e=>{switch(e.serverDataType){case"string":case"char":return le(G.stringOperators);case"int":case"long":case"double":return le(G.numericOperators)}},vn=e=>({apply:`${e.name}( `,boost:2,expressionType:e.type,info:()=>Vn(e),label:e.name,type:"function"}),go=e=>{if(e){if(typeof e.accepts=="string")return e.accepts;if(Array.isArray(e.accepts))return e.accepts.every(n=>n==="string")?"string":"any"}return"any"},fo=be.map(vn),Co=({functionName:e})=>{if(e){let n=be.find(o=>o.name===e),t=go(n);if(n)switch(t){case"string":return be.filter(o=>o.type==="string"||o.type==="variable").map(vn);case"number":return be.filter(o=>o.type==="number"||o.type==="variable").map(vn);default:}}return fo},xo={},On=({columns:e,table:n})=>{let t=(0,ye.useCallback)(p=>p?e.find(l=>l.name===p):void 0,[e]),o=(0,ye.useRef)(),i=(0,qe.useTypeaheadSuggestions)(),r=(0,ye.useCallback)(async(p,l=xo)=>{let{columnName:c,functionName:g,operator:x,prefix:h}=l;switch(p){case"expression":{let a=await le(Yn(e,{functionName:g,prefix:h})).concat(Co(l));return o.current=a}case"column":{let a=await Yn(e,l);return o.current=le(a)}case"operator":{let a=await uo(t(c));return o.current=le(a)}case"relational-operator":{let a=await(0,G.getRelationalOperators)(t(c));return o.current=le(a)}case"condition-operator":{let a=t(c);if(a){let d=await mo(a);if(d)return o.current=le(d)}}break;case"columnValue":if(c&&x){let a=(0,qe.getTypeaheadParams)(n,c),d=await i(a);return o.current=(0,G.toSuggestions)(d,{suffix:""}),o.current.forEach(f=>{f.apply=(m,P,R)=>{let X=new G.AnnotationType,De=R+P.label.length+1;m.dispatch({changes:{from:R,insert:P.label},selection:{anchor:De,head:De},annotations:X.of(P)})}}),o.current}break}return[]},[e,t,i,n]),s=(0,ye.useCallback)(async(p,l,c)=>{let{current:g}=o,x=!1,h=g||await r(p,{columnName:l});if(c&&h)for(let a of h){if(a.label===c)return!1;a.label.startsWith(c)&&(x=!0)}return x},[r]);return{getSuggestions:r,isPartialMatch:s}};var Te=require("@salt-ds/core"),xt=Y(require("classnames"),1),q=require("react");var Pn=require("@heswell/salt-lab"),B=require("@salt-ds/core"),W=require("react");var zn=require("@heswell/salt-lab"),Zn=Y(require("classnames"),1);var Oe=require("react/jsx-runtime"),ve="vuuColumnListItem",Jn=({className:e,item:n,label:t,style:o,...i})=>{let r=(0,Zn.default)(ve,e,{[`${ve}-calculated`]:n==null?void 0:n.expression,[`${ve}-hidden`]:n==null?void 0:n.hidden});return(0,Oe.jsxs)(zn.ListItem,{className:r,...i,children:[(0,Oe.jsx)("span",{className:`${ve}-iconType`}),(0,Oe.jsx)("label",{className:`${ve}-label`,children:t}),(0,Oe.jsx)("span",{className:`${ve}-iconHidden`})]})};var E=require("react/jsx-runtime"),Pe="vuuColumnPicker",ho=(e,n)=>e.filter(t=>n.find(o=>o.name===t.name)==null),qn=({availableColumns:e,id:n,dispatchColumnAction:t,onAddCalculatedColumnClick:o,onSelectionChange:i,chosenColumns:r,selectedColumn:s})=>{let[p,l]=(0,W.useState)([]),c=(0,B.useIdMemo)(n),g=ho(e,r),x=(0,W.useCallback)(()=>{p.length>0&&(l([]),t({type:"addColumn",columns:p}))},[t,p]),h=(0,W.useCallback)(()=>s&&t({type:"removeColumn",column:s}),[s,t]),a=(0,W.useCallback)(()=>s&&t({type:"moveColumn",column:s,moveBy:-1}),[t,s]),d=(0,W.useCallback)(()=>s&&t({type:"moveColumn",column:s,moveBy:1}),[t,s]),f=(0,W.useCallback)((R,X)=>l(X),[]),m=(0,W.useCallback)((R,X)=>i==null?void 0:i(X),[i]),P=(0,W.useCallback)((R,X)=>{t({type:"moveColumn",moveFrom:R,moveTo:X})},[t]);return(0,E.jsxs)("div",{className:Pe,id:c,children:[(0,E.jsxs)("div",{className:`${Pe}-listColumn`,children:[(0,E.jsx)("label",{htmlFor:`available-${c}`,children:(0,E.jsx)(B.Text,{as:"h4",children:"Available Columns"})}),(0,E.jsx)("div",{className:`${Pe}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,E.jsx)(Pn.List,{borderless:!0,checkable:!1,height:"100%",id:`available-${c}`,itemHeight:24,itemToString:R=>R.name,onSelectionChange:f,selected:p,selectionStrategy:"extended",source:g})}),(0,E.jsx)("div",{style:{display:"flex",alignItems:"center",flex:"0 0 32px",marginTop:"var(--salt-size-basis-unit)"},children:(0,E.jsxs)(B.Button,{onClick:x,disabled:p.length===0,children:["Show",(0,E.jsx)("span",{"data-icon":"arrow-thin-right",style:{marginLeft:8}})]})})]}),(0,E.jsxs)("div",{className:`${Pe}-listColumn`,children:[(0,E.jsx)("label",{htmlFor:`selected-${c}`,children:(0,E.jsx)(B.Text,{as:"h4",children:"Included Columns"})}),(0,E.jsx)("div",{className:`${Pe}-listContainer`,style:{flex:1,overflow:"hidden"},children:(0,E.jsx)(Pn.List,{ListItem:Jn,allowDragDrop:!0,borderless:!0,height:"100%",id:`selected-${c}`,itemHeight:24,itemToString:R=>R.name,onMoveListItem:P,onSelectionChange:m,selected:s,style:{flex:1},source:r})}),(0,E.jsxs)("div",{style:{alignItems:"center",flex:"0 0 32px",display:"flex",gap:6,marginTop:"var(--salt-size-basis-unit)"},children:[(0,E.jsxs)(B.Button,{onClick:h,disabled:s===null,children:[(0,E.jsx)("span",{"data-icon":"arrow-thin-left",style:{marginRight:8}}),"Hide"]}),(0,E.jsx)(B.Button,{"aria-label":"Move column up",onClick:a,disabled:s===null||(r==null?void 0:r.indexOf(s))===0,style:{width:28},children:(0,E.jsx)("span",{"data-icon":"arrow-thin-up"})}),(0,E.jsx)(B.Button,{"aria-label":"Move column down",onClick:d,disabled:s===null||r.indexOf(s)===r.length-1,style:{width:28},children:(0,E.jsx)("span",{"data-icon":"arrow-thin-down"})}),(0,E.jsx)(B.Button,{"aria-label":"Add calculated column",className:`${Pe}-addCalculatedColumn`,onClick:o,variant:"primary",children:(0,E.jsx)("span",{"data-icon":"add"})})]})]})]})};var lt=require("@vuu-ui/vuu-layout"),v=require("@heswell/salt-lab"),Ie=require("@salt-ds/core"),pt=Y(require("classnames"),1),Z=require("react");var nt=require("@vuu-ui/vuu-utils"),tt=require("@heswell/salt-lab"),ot=require("@salt-ds/core"),Tn=Y(require("classnames"),1),rt=require("react");var pe=require("@heswell/salt-lab"),_n=require("@salt-ds/core"),Le=require("react");var k=require("react/jsx-runtime"),bo={alignOnDecimals:!1,decimals:4,zeroPad:!1},yo=(e,n)=>{let t=typeof e=="object"&&e.formatting?e.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((i,r)=>t[r]!==void 0?{...i,[r]:t[r]}:(n==null?void 0:n[r])!==void 0?{...i,[r]:n[r]}:i,bo)},Kn=({column:e,dispatchColumnAction:n})=>{let{decimals:t,alignOnDecimals:o,zeroPad:i}=yo(e==null?void 0:e.type),r=(0,Le.useCallback)(c=>n({type:"updateColumnTypeFormatting",column:e,...c}),[e,n]),s=(0,Le.useCallback)(c=>r({decimals:parseInt(c.toString(),10)}),[r]),p=(0,Le.useCallback)((c,g)=>r({alignOnDecimals:g}),[r]),l=(0,Le.useCallback)((c,g)=>r({zeroPad:g}),[r]);switch(e.serverDataType){case"double":return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(pe.FormField,{label:"No of Decimals",labelPlacement:"top",children:(0,k.jsx)(pe.StepperInput,{value:t,onChange:s})}),(0,k.jsx)(pe.Switch,{checked:o,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:p}),(0,k.jsx)(pe.Switch,{checked:i,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l})]});case"long":case"int":return(0,k.jsx)(k.Fragment,{children:(0,k.jsx)(_n.Text,{children:"Work in progress"})});default:return null}};var _e=require("react/jsx-runtime"),jn=({column:e,dispatchColumnAction:n})=>(console.log({column:e,dispatchColumnAction:n}),(0,_e.jsx)(_e.Fragment,{children:"what"}));var z=require("react/jsx-runtime"),Sn="vuuColumnTypePanel",Eo=["Default Renderer (int, long)"],vo=["Default Renderer (double)"],et=["Default Renderer (string)"],Oo=e=>{let t=(0,nt.getRegisteredCellRenderers)(e.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:t}),e.serverDataType){case"char":case"string":return et;case"int":case"long":return Eo;case"double":return vo.concat(t);default:return et}},st=({className:e,column:n,dispatchColumnAction:t,...o})=>{let i=(0,rt.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,z.jsx)(Kn,{column:n,dispatchColumnAction:t});default:return(0,z.jsx)(jn,{column:n,dispatchColumnAction:t})}},[n,t]),{serverDataType:r="string"}=n,s=Oo(n);return(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(tt.Dropdown,{className:(0,Tn.default)(`${Sn}-renderer`),fullWidth:!0,selected:s[0],source:s}),(0,z.jsx)(ot.Panel,{...o,className:(0,Tn.default)(Sn,e,`${Sn}-${r}`),children:i})]})};var b=require("react/jsx-runtime"),it="vuuColumnSettingsPanel",Po={className:"salt-density-high"},at=()=>null,ct=({column:e,dispatchColumnAction:n,style:t,...o})=>{var h,a,d,f;let[i,r]=(0,Z.useState)(0),s=(0,Z.useCallback)(m=>n({type:"updateColumnProp",column:e,...m}),[e,n]),p=(0,Z.useCallback)(m=>s({align:m.target.value}),[s]),l=(0,Z.useCallback)(m=>s({pin:m.target.value}),[s]),c=(0,Z.useCallback)((m,P)=>s({hidden:P}),[s]),g=(0,Z.useCallback)((m,P)=>s({label:P}),[s]),x=(0,Z.useCallback)(m=>s({width:parseInt(m.toString(),10)}),[s]);return(0,b.jsxs)("div",{className:it,...o,style:{...t},children:[(0,b.jsx)(Ie.Text,{as:"h4",children:"Column Settings"}),(0,b.jsxs)(lt.Stack,{active:i,showTabs:!0,className:(0,pt.default)(`${it}-columnTabs`),onTabSelectionChanged:r,TabstripProps:Po,children:[(0,b.jsxs)(Ie.Panel,{title:"Column",children:[(0,b.jsx)(v.FormField,{label:"Hidden",labelPlacement:"left",children:(0,b.jsx)(v.Checkbox,{checked:e.hidden===!0,onChange:c})}),(0,b.jsx)(v.FormField,{label:"Label",labelPlacement:"left",children:(0,b.jsx)(v.Input,{value:(h=e.label)!=null?h:e.name,onChange:g})}),(0,b.jsx)(v.FormField,{label:"Width",labelPlacement:"left",children:(0,b.jsx)(v.StepperInput,{value:(a=e.width)!=null?a:100,onChange:x})}),(0,b.jsx)(v.FormField,{label:"Align",labelPlacement:"left",ActivationIndicatorComponent:at,children:(0,b.jsxs)(v.RadioButtonGroup,{"aria-label":"Column Align",value:(d=e.align)!=null?d:"left",legend:"Align",onChange:p,children:[(0,b.jsx)(v.RadioButton,{label:"Left",value:"left"}),(0,b.jsx)(v.RadioButton,{label:"Right",value:"right"})]})}),(0,b.jsx)(v.FormField,{label:"Pin Column",labelPlacement:"left",ActivationIndicatorComponent:at,children:(0,b.jsxs)(v.RadioButtonGroup,{"aria-label":"Pin Column",value:(f=e.pin)!=null?f:"",legend:"Pin Column",onChange:l,children:[(0,b.jsx)(v.RadioButton,{label:"Do not pin",value:""}),(0,b.jsx)(v.RadioButton,{label:"Left",value:"left"}),(0,b.jsx)(v.RadioButton,{label:"Right",value:"right"})]})})]}),(0,b.jsx)(st,{column:e,dispatchColumnAction:n,title:"Data Cell"}),(0,b.jsxs)(Ie.Panel,{title:"Vuu",variant:"secondary",children:[(0,b.jsx)(v.FormField,{label:"Name",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,b.jsx)(v.Input,{value:e.name})}),(0,b.jsx)(v.FormField,{label:"Vuu type",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,b.jsx)(v.Input,{value:e.serverDataType})})]})]})]})};var $=require("@heswell/salt-lab"),je=require("@salt-ds/core"),Ke=require("react");var F=require("react/jsx-runtime"),So="vuuGridSettingsPanel",To=()=>null,ut=({config:e,dispatchColumnAction:n,style:t,...o})=>{var p;let i=(0,Ke.useCallback)(l=>n({type:"updateGridSettings",...l}),[n]),r=(0,Ke.useCallback)(l=>i({columnFormatHeader:l.target.value}),[i]),s=(0,Ke.useCallback)(l=>i({columnDefaultWidth:parseInt(l.toString(),10)}),[i]);return(0,F.jsxs)("div",{className:So,...o,style:{...t},children:[(0,F.jsx)(je.Text,{as:"h4",children:"Grid Settings"}),(0,F.jsxs)(je.Panel,{children:[(0,F.jsx)($.FormField,{label:"Format column labels",labelPlacement:"left",ActivationIndicatorComponent:To,children:(0,F.jsxs)($.RadioButtonGroup,{"aria-label":"Format column labels",value:e.columnFormatHeader,legend:"Format column labels",onChange:r,children:[(0,F.jsx)($.RadioButton,{label:"No Formatting",value:void 0}),(0,F.jsx)($.RadioButton,{label:"Capitalize",value:"capitalize"}),(0,F.jsx)($.RadioButton,{label:"Uppercase",value:"uppercase"})]})}),(0,F.jsx)($.FormField,{label:"Default Column Width",labelPlacement:"left",children:(0,F.jsx)($.StepperInput,{value:(p=e.columnDefaultWidth)!=null?p:100,onChange:s})})]})]})};var mt=require("react"),dt=require("@heswell/salt-lab"),gt=require("@vuu-ui/vuu-utils"),Do=(e,n)=>{switch(console.log(`gridSettingsReducer ${n.type}`),n.type){case"addColumn":return wo(e,n);case"addCalculatedColumn":return Ro(e,n);case"moveColumn":return No(e,n);case"removeColumn":return Ao(e,n);case"updateColumn":return e;case"updateColumnProp":return ko(e,n);case"updateGridSettings":return Fo(e,n);case"updateColumnTypeFormatting":return Qo(e,n);default:return e}},ft=e=>{let[n,t]=(0,mt.useReducer)(Do,e);return{gridSettings:n,dispatchColumnAction:t}};function wo(e,{column:n,columns:t,index:o=-1}){let{columns:i}=e;if(o===-1){if(Array.isArray(t))return{...e,columns:i.concat(t)};if(n)return{...e,columns:i.concat(n)}}return e}function Ro(e,{columnName:n,columnType:t,expression:o}){let{columns:i}=e,r={name:n,expression:o,serverDataType:t};return{...e,columns:i.concat(r)}}function Ao(e,{column:n}){let{columns:t}=e;return{...e,columns:t.filter(o=>o.name!==n.name)}}function No(e,{column:n,moveBy:t,moveFrom:o,moveTo:i}){let{columns:r}=e;if(n&&typeof t=="number"){let s=r.indexOf(n),p=r.slice(),[l]=p.splice(s,1);return p.splice(s+t,0,l),{...e,columns:p}}else return typeof o=="number"&&typeof i=="number"?{...e,columns:(0,dt.moveItem)(r,o,i)}:e}function ko(e,{align:n,column:t,hidden:o,label:i,width:r}){let{columns:s}=e;return(n==="left"||n==="right")&&(s=Be(s,{...t,align:n})),typeof o=="boolean"&&(s=Be(s,{...t,hidden:o})),typeof i=="string"&&(s=Be(s,{...t,label:i})),typeof r=="number"&&(s=Be(s,{...t,width:r})),{...e,columns:s}}function Fo(e,{columnFormatHeader:n}){return{...e,columnFormatHeader:n!=null?n:e.columnFormatHeader}}function Qo(e,{alignOnDecimals:n,column:t,decimals:o,zeroPad:i}){let{columns:r}=e;if(r.find(p=>p.name===t.name)){let{serverDataType:p="string",type:l=(0,gt.fromServerDataType)(p)}=t,c=typeof l=="string"?{name:l}:{...l};return typeof n=="boolean"&&(c.formatting={...c.formatting,alignOnDecimals:n}),typeof o=="number"&&(c.formatting={...c.formatting,decimals:o}),typeof i=="boolean"&&(c.formatting={...c.formatting,zeroPad:i}),{...e,columns:Be(r,{...t,type:c})}}else return e}function Be(e,n){return e.map(t=>t.name===n.name?n:t)}var ht=require("@vuu-ui/vuu-layout");var en=require("@heswell/salt-lab"),Se=require("@salt-ds/core"),H=require("react");var J=require("react/jsx-runtime"),Ct=({columns:e,dispatchColumnAction:n,table:t})=>{let[o,i]=(0,H.useState)(""),[,r]=(0,H.useState)(),s=(0,H.useRef)(""),p=On({columns:e,table:t}),l=(0,H.useCallback)(h=>{let{value:a}=h.target;i(a)},[]),c=(0,H.useCallback)(h=>{s.current=h},[]),g=(0,H.useCallback)((h,a)=>{console.log({source:h}),r(a)},[]),x=(0,H.useCallback)(()=>{s.current&&(console.log(`save expression ${JSON.stringify(s.current,null,2)}`),n({type:"addCalculatedColumn",columnName:o,expression:s.current,columnType:"string"}))},[o,n]);return(0,J.jsxs)(Se.Panel,{className:"vuuCalculatedColumnPanel",title:"Define Computed Column",children:[(0,J.jsx)(Se.Text,{styleAs:"h4",children:"Define Computed Column"}),(0,J.jsx)(en.FormField,{label:"Column Name",labelPlacement:"left",children:(0,J.jsx)(en.Input,{value:o,onChange:l})}),(0,J.jsx)(En,{onChange:c,onSubmitExpression:g,suggestionProvider:p}),(0,J.jsx)("div",{style:{marginTop:12},children:(0,J.jsx)(Se.Button,{onClick:x,children:"Add Column"})})]})};var w=require("react/jsx-runtime"),nn="vuuDatagridSettingsPanel",Lo=()=>{},Io=["table-settings","column-chooser","column-settings","define-column"],Bo=(e,n)=>Io[n],$o=({availableColumns:e,className:n,gridConfig:t,onCancel:o,onConfigChange:i,...r})=>{var De;console.log("DatagridSettingsPanel render");let[s,p]=(0,q.useState)(0),{gridSettings:l,dispatchColumnAction:c}=ft(t),[g,x]=(0,q.useState)(null),h=(0,q.useCallback)(V=>{x(V?V.name:null)},[]),a=(0,q.useCallback)((V,Ft=!1)=>{console.log("1) DataGridSettingsPanel fire onConfigChange"),i==null||i(l,Ft)},[l,i]),d=(0,q.useCallback)(V=>{p(V)},[]),f=(0,q.useCallback)(V=>a(V,!0),[a]),m=g===null?null:(De=l.columns.find(V=>V.name===g))!=null?De:null,P={activeTabIndex:s,enableRenameTab:!1,orientation:"vertical"},R=(0,q.useCallback)(()=>p(3),[]),X=s===2?"right":void 0;return(0,w.jsxs)("div",{...r,className:(0,xt.default)(nn,n),children:[(0,w.jsxs)(ht.Stack,{TabstripProps:P,className:`${nn}-stack`,getTabIcon:Bo,getTabLabel:Lo,active:s===2?1:s,onTabSelectionChanged:d,showTabs:!0,children:[(0,w.jsx)(ut,{config:l,dispatchColumnAction:c}),(0,w.jsxs)("div",{className:`${nn}-columnPanels`,"data-align":X,children:[(0,w.jsx)(qn,{availableColumns:e,chosenColumns:l.columns,dispatchColumnAction:c,onSelectionChange:h,onAddCalculatedColumnClick:R,selectedColumn:m}),m===null?(0,w.jsx)(Te.Panel,{className:"vuuColumnSettingsPanel",children:"Select a column"}):(0,w.jsx)(ct,{column:m,dispatchColumnAction:c,style:{background:"white",flex:"1 0 150px"}})]}),(0,w.jsx)("div",{title:"Column Settings",children:"Column Settings"}),(0,w.jsx)(Ct,{columns:l.columns,dispatchColumnAction:c,table:{module:"SIMUL",table:"instruments"}})]}),(0,w.jsxs)("div",{className:`${nn}-buttonBar`,children:[(0,w.jsx)(Te.Button,{onClick:o,children:"Cancel"}),(0,w.jsx)(Te.Button,{onClick:a,children:"Apply"}),(0,w.jsx)(Te.Button,{onClick:f,children:"Save"})]})]})};var $e=require("react"),bt=Y(require("classnames"),1);var ne=require("react/jsx-runtime"),tn="vuuDatasourceStats",Dn=new Intl.NumberFormat,Mo=({className:e,dataSource:n})=>{let[t,o]=(0,$e.useState)(n.range),[i,r]=(0,$e.useState)(n.size);(0,$e.useEffect)(()=>{r(n.size),n.on("resize",r),n.on("range",o)},[n]);let s=(0,bt.default)(tn,e),p=Dn.format(t.from),l=Dn.format(t.to-1),c=Dn.format(i);return(0,ne.jsxs)("div",{className:s,children:[(0,ne.jsx)("span",{children:"Showing rows"}),(0,ne.jsx)("span",{className:`${tn}-range`,children:p}),(0,ne.jsx)("span",{className:`${tn}-range`,children:l}),(0,ne.jsx)("span",{children:"of"}),(0,ne.jsx)("span",{className:`${tn}-size`,children:c})]})};var Nt=require("@vuu-ui/vuu-layout"),O=require("@heswell/salt-lab"),Ue=require("@salt-ds/core"),kt=Y(require("classnames"),1),K=require("react");var Pt=require("@vuu-ui/vuu-utils"),St=require("@heswell/salt-lab"),Tt=require("@salt-ds/core"),Rn=Y(require("classnames"),1),Dt=require("react");var ce=require("@heswell/salt-lab"),yt=require("@salt-ds/core"),Me=require("react");var Q=require("react/jsx-runtime"),Uo={alignOnDecimals:!1,decimals:4,zeroPad:!1},Go=(e,n)=>{let t=typeof e=="object"&&e.formatting?e.formatting:{};return["alignOnDecimals","decimals","zeroPad"].reduce((i,r)=>t[r]!==void 0?{...i,[r]:t[r]}:(n==null?void 0:n[r])!==void 0?{...i,[r]:n[r]}:i,Uo)},Et=({column:e,dispatchColumnAction:n})=>{let{decimals:t,alignOnDecimals:o,zeroPad:i}=Go(e==null?void 0:e.type),r=(0,Me.useCallback)(c=>n({type:"updateColumnTypeFormatting",column:e,...c}),[e,n]),s=(0,Me.useCallback)(c=>r({decimals:parseInt(c.toString(),10)}),[r]),p=(0,Me.useCallback)((c,g)=>r({alignOnDecimals:g}),[r]),l=(0,Me.useCallback)((c,g)=>r({zeroPad:g}),[r]);switch(e.serverDataType){case"double":return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(ce.FormField,{label:"No of Decimals",labelPlacement:"top",children:(0,Q.jsx)(ce.StepperInput,{value:t,onChange:s})}),(0,Q.jsx)(ce.Switch,{checked:o,label:"Align on decimals",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:p}),(0,Q.jsx)(ce.Switch,{checked:i,label:"Zero pad",LabelProps:{className:"vuuColumnPanelSwitch"},onChange:l})]});case"long":case"int":return(0,Q.jsx)(Q.Fragment,{children:(0,Q.jsx)(yt.Text,{children:"Work in progress"})});default:return null}};var on=require("react/jsx-runtime"),vt=({column:e,dispatchColumnAction:n})=>(console.log(e,n),(0,on.jsx)(on.Fragment,{children:"what"}));var _=require("react/jsx-runtime"),wn="vuuColumnTypePanel",Wo=["Default Renderer (int, long)"],Ho=["Default Renderer (double)"],Ot=["Default Renderer (string)"],Xo=e=>{let t=(0,Pt.getRegisteredCellRenderers)(e.serverDataType).map(o=>o.name);switch(console.log({customRendererNames:t}),e.serverDataType){case"char":case"string":return Ot;case"int":case"long":return Wo;case"double":return Ho.concat(t);default:return Ot}},wt=({className:e,column:n,dispatchColumnAction:t,...o})=>{let i=(0,Dt.useMemo)(()=>{switch(n.serverDataType){case"double":case"int":case"long":return(0,_.jsx)(Et,{column:n,dispatchColumnAction:t});default:return(0,_.jsx)(vt,{column:n,dispatchColumnAction:t})}},[n,t]),{serverDataType:r="string"}=n,s=Xo(n);return(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(St.Dropdown,{className:(0,Rn.default)(`${wn}-renderer`),fullWidth:!0,selected:s[0],source:s}),(0,_.jsx)(Tt.Panel,{...o,className:(0,Rn.default)(wn,e,`${wn}-${r}`),children:i})]})};var y=require("react/jsx-runtime"),Rt="vuuColumnSettingsPanel",Vo={className:"salt-density-high"},At=()=>null,Yo=({column:e,dispatchColumnAction:n,style:t,...o})=>{var h,a,d,f;let[i,r]=(0,K.useState)(0),s=(0,K.useCallback)(m=>n({type:"updateColumnProp",column:e,...m}),[e,n]),p=(0,K.useCallback)(m=>s({align:m.target.value}),[s]),l=(0,K.useCallback)(m=>s({pin:m.target.value}),[s]),c=(0,K.useCallback)((m,P)=>s({hidden:P}),[s]),g=(0,K.useCallback)((m,P)=>s({label:P}),[s]),x=(0,K.useCallback)(m=>s({width:parseInt(m.toString(),10)}),[s]);return(0,y.jsxs)("div",{className:Rt,...o,style:{...t},children:[(0,y.jsx)(Ue.Text,{as:"h4",children:"Column Settings"}),(0,y.jsxs)(Nt.Stack,{active:i,showTabs:!0,className:(0,kt.default)(`${Rt}-columnTabs`),onTabSelectionChanged:r,TabstripProps:Vo,children:[(0,y.jsxs)(Ue.Panel,{title:"Column",children:[(0,y.jsx)(O.FormField,{label:"Hidden",labelPlacement:"left",children:(0,y.jsx)(O.Checkbox,{checked:e.hidden===!0,onChange:c})}),(0,y.jsx)(O.FormField,{label:"Label",labelPlacement:"left",children:(0,y.jsx)(O.Input,{value:(h=e.label)!=null?h:e.name,onChange:g})}),(0,y.jsx)(O.FormField,{label:"Width",labelPlacement:"left",children:(0,y.jsx)(O.StepperInput,{value:(a=e.width)!=null?a:100,onChange:x})}),(0,y.jsx)(O.FormField,{label:"Align",labelPlacement:"left",ActivationIndicatorComponent:At,children:(0,y.jsxs)(O.RadioButtonGroup,{"aria-label":"Column Align",value:(d=e.align)!=null?d:"left",legend:"Align",onChange:p,children:[(0,y.jsx)(O.RadioButton,{label:"Left",value:"left"}),(0,y.jsx)(O.RadioButton,{label:"Right",value:"right"})]})}),(0,y.jsx)(O.FormField,{label:"Pin Column",labelPlacement:"left",ActivationIndicatorComponent:At,children:(0,y.jsxs)(O.RadioButtonGroup,{"aria-label":"Pin Column",value:(f=e.pin)!=null?f:"",legend:"Pin Column",onChange:l,children:[(0,y.jsx)(O.RadioButton,{label:"Do not pin",value:""}),(0,y.jsx)(O.RadioButton,{label:"Left",value:"left"}),(0,y.jsx)(O.RadioButton,{label:"Right",value:"right"})]})})]}),(0,y.jsx)(wt,{column:e,dispatchColumnAction:n,title:"Data Cell"}),(0,y.jsxs)(Ue.Panel,{title:"Vuu",variant:"secondary",children:[(0,y.jsx)(O.FormField,{label:"Name",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,y.jsx)(O.Input,{value:e.name})}),(0,y.jsx)(O.FormField,{label:"Vuu type",labelPlacement:"top",readOnly:!0,variant:"secondary",children:(0,y.jsx)(O.Input,{value:e.serverDataType})})]})]})]})};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|