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

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