@deephaven/embed-grid 0.25.1-beta.2 → 0.25.1-beta.5
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.
|
@@ -11,7 +11,7 @@ import{B as D,A as T,R as J,P as Ic,C as h,D as lt,E as G,F as R,G as rr,H as he
|
|
|
11
11
|
making ${Math.min(_n.SNAPSHOT_BUFFER_SIZE-this.snapshotsBuffer.size-this.snapshotPending,this.snapshotsTotal-this.snapshotCounter)} more snapshots
|
|
12
12
|
`),this.makeSnapshot(Math.min(_n.SNAPSHOT_BUFFER_SIZE-this.snapshotsBuffer.size-this.snapshotPending,this.snapshotsTotal-this.snapshotCounter)))}updateDownloadProgress(e){if(e!=null&&this.snapshotsTotal!=null&&this.downloadStartTime!=null){const{onDownloadProgressUpdate:t}=this.props,n=Math.floor(e*100/this.snapshotsTotal),s=e>1?Math.floor((Date.now()-this.downloadStartTime)*(this.snapshotsTotal-e)/e/1e3):null;t(n,s)}}convertSnapshotIntoCsv(e){var r;let t="";const n=e.added.iterator(),{formatter:s}=this.props,o=[];for(;n.hasNext();)o.push(n.next().value);O(this.columns);const{useUnformattedValues:i}=this;for(let l=0;l<o.length;l+=1){const a=o[l];for(let c=0;c<this.columns.length;c+=1){const{type:d,name:u}=this.columns[c];let m=null;if(i){let p=(r=e.getData(a,this.columns[c]))!=null?r:"";p!==""&&A.isDateType(d)&&(p=I.i18n.DateTimeFormat.format(wp,p,I.i18n.TimeZone.getTimeZone(s.timeZone))),m=p.toString()}else{const p=this.getCachedCustomColumnFormatFlag(s,u,d);let g=null;if(!p){const f=e.getFormat(a,this.columns[c]);g=(f==null?void 0:f.formatString)!=null?f:null}g?m=s.getFormattedString(e.getData(a,this.columns[c]),d,u,g):m=s.getFormattedString(e.getData(a,this.columns[c]),d,u)}t+=_n.csvEscapeString(m),t+=c===this.columns.length-1?`
|
|
13
13
|
`:","}}return t}makeSnapshot(e){if(e<=0)return;O(this.gridRangeCounter);let t=0,n=this.gridRanges[this.gridRangeCounter];for(O(this.tableSubscription),O(this.columns);t<e;){O(n),O(n.startRow),O(n.endRow),O(this.rangedSnapshotCounter),O(this.chunkRows);const s=n.startRow+this.rangedSnapshotCounter*this.chunkRows,o=Math.min(s+this.chunkRows-1,n.endRow),i=this.snapshotCounter;this.cancelableSnapshots.push(Pe.makeCancelable(this.tableSubscription.snapshot(I.RangeSet.ofRange(s,o),this.columns).then(r=>(bp(r),this.handleSnapshotResolved(r,i,s,o),i)).catch(r=>{cn.error(r)}),r=>{cn.info(`snapshot ${r} has been canceled`)})),this.rangedSnapshotCounter+=1,this.snapshotCounter+=1,this.snapshotPending+=1,this.rangedSnapshotCounter>=this.rangedSnapshotsTotal[this.gridRangeCounter]&&(this.gridRangeCounter+=1,this.rangedSnapshotCounter=0,n=this.gridRanges[this.gridRangeCounter]),t+=1}}handlePortMessage({data:e}){const{download:t,readableStreamPulling:n}=e;if(!this.useBlobFallback){if(t!=null){const{includeColumnHeaders:s}=this;this.makeIframe(`${t}`),this.writeCsvTable(s)}n!=null&&(this.useBlobFallback||(this.streamTimeout!=null&&clearTimeout(this.streamTimeout),this.streamTimeout=setTimeout(this.handleDownloadTimeout,_n.STREAM_TIMEOUT)))}}handleSnapshotResolved(e,t,n,s){this.snapshotHandlerTimeout=setTimeout(()=>{this.snapshotsBuffer.set(t,e),this.snapshotPending-=1,this.writeSnapshot(t,n,s),this.cancelableSnapshots[t]=null},_n.SNAPSHOT_HANDLER_TIMEOUT)}makeIframe(e){const t=document.createElement("iframe");t.hidden=!0,t.src=`download/${e}`,t.name="iframe",document.body.appendChild(t),this.iframes.push(t)}render(){return null}};let Ws=_n;Ws.DOWNLOAD_CELL_CHUNK=6e3;Ws.SNAPSHOT_BUFFER_SIZE=5;Ws.STREAM_TIMEOUT=8e3;Ws.SNAPSHOT_HANDLER_TIMEOUT=5;Ws.defaultProps={getDownloadWorker:()=>Promise.reject(new Error("Download worker not provided")),isDownloading:!1,onDownloadCompleted:()=>{},onDownloadCanceled:()=>{},onDownloadProgressUpdate:()=>{}};function vp(e){var v;const{group:t,onDelete:n,onColorChange:s,onNameChange:o,validateName:i}=e,{isNew:r}=t,l=T.exports.useRef(t),a=T.exports.useRef(null),c=T.exports.useRef(null),[d,u]=T.exports.useState(r?"":t.name),[m,p]=T.exports.useState(r),[g,f]=T.exports.useState(!1),C=d!==t.name?i(d):"",w=r&&!g||C==="";T.exports.useEffect(function(){m&&a.current&&(a.current.focus(),a.current.select())},[m]),T.exports.useEffect(function(){return()=>{l.current.isNew&&n(l.current)}},[n]);const S=()=>{w&&(o(t,d),p(!1))},b=()=>{if(r){n(t);return}u(t.name),p(!1)},y=E=>{f(!0),E.key==="Enter"&&(E.stopPropagation(),S()),E.key===" "&&E.stopPropagation(),E.key==="Escape"&&b()};return m?R(Fe,{children:[R("div",{className:"editing-container",children:[h("input",{ref:a,className:G("form-control",{"is-invalid":!w}),value:d,placeholder:"Group Name",onChange:E=>u(E.target.value),onKeyDown:y}),h(K,{kind:"ghost",icon:$n,tooltip:"Confirm",onClick:S}),h(K,{kind:"ghost",icon:_d,tooltip:"Cancel",onClick:b})]}),!w&&h("p",{className:"mb-0 validate-label-error text-danger",children:C})]}):R("div",{className:"group-name-wrapper",children:[h("span",{className:"column-name",children:d}),h(K,{className:"p-1 mx-1",kind:"ghost",icon:hr,tooltip:"Edit",onClick:()=>{p(!0)}}),R("span",{className:"right-buttons",children:[h(K,{kind:"ghost",icon:bn,tooltip:"Delete group",onClick:()=>n(t)}),h(K,{kind:"ghost",className:"color-swatch mr-1",icon:t.color!==void 0?R("span",{className:"fa-layers",children:[h(Q,{className:"color-swatch",icon:ti,color:xe.white,transform:"down-1"}),h(Q,{className:"color-swatch",icon:ti,color:t.color,transform:"shrink-2 down-1"})]}):Zd,tooltip:"Set color",onClick:()=>{var E,M;(E=c.current)==null||E.click(),(M=c.current)==null||M.focus()}}),h("input",{"aria-label":"Color input",ref:c,type:"color",list:"presetColors",value:(v=t.color)!=null?v:xe["content-bg"],style:{visibility:"hidden",width:0,height:0,padding:0,border:0},onChange:E=>{t.color=E.target.value,s(t,E.target.value)}}),R("datalist",{id:"presetColors",children:[h("option",{children:xe["content-bg"]}),h("option",{children:xe.primary}),h("option",{children:xe.foreground}),h("option",{children:xe.green}),h("option",{children:xe.yellow}),h("option",{children:xe.orange}),h("option",{children:xe.red}),h("option",{children:xe.purple}),h("option",{children:xe.blue}),h("option",{children:xe["gray-400"]})]})]})]})}function Tp(){}const Ep=T.exports.forwardRef(function(t,n){const{value:s,clone:o,childCount:i,item:r,onVisibilityChange:l,onClick:a,onGroupDelete:c,onGroupColorChange:d,onGroupNameChange:u,validateGroupName:m,handleProps:p}=t,{group:g,modelIndex:f,isVisible:C}=r.data,w=T.exports.useRef(null),S=T.exports.useCallback(y=>{var v;y.buttons===1&&(l([f].flat(),!C),(v=w.current)==null||v.focus())},[l,f,C]),b=T.exports.useCallback(y=>{a(s,y)},[a,s]);return R("div",{ref:n,className:G("tree-item",{isSelected:r.selected,"two-dragged":i===2,"multiple-dragged":i>2}),onClick:b,...p,children:[h(K,{ref:w,kind:"ghost",className:"px-1",onClick:Tp,onMouseDown:S,onMouseEnter:S,icon:C?mr:oa,tooltip:"Toggle visibility"}),h("span",{className:G("column-name",g&&"column-group"),children:g&&!o?h(vp,{group:g,onDelete:c,onColorChange:d,onNameChange:u,validateName:m}):s}),R("div",{children:[o&&i>1&&h("span",{className:"item-count",children:i}),h(Be,{children:"Drag to re-order"}),h(Q,{icon:pi})]})]})});function yp(e){return e.parentId!==void 0}function Rp(e,t){return Math.round(e/t)}function Ka(e,t,n,s,o,i){var l;const r=e.findIndex(a=>a.name===s);if(r===-1){const a=n.get(s);if(a==null)throw new Error(`Column or header group not found: ${s}`);const c=a.childIndexes.flat();return{id:s,selected:i.has(s),children:a.children.map(d=>Ka(e,t,n,d,o,i)).sort((d,u)=>{const m=Array.isArray(d.data.visibleIndex)?d.data.visibleIndex[0]:d.data.visibleIndex,p=Array.isArray(u.data.visibleIndex)?u.data.visibleIndex[0]:u.data.visibleIndex;return m-p}),data:{modelIndex:c,visibleIndex:a.getVisibleRange(t),group:a,isVisible:c.some(d=>{var u;return((u=o.get(d))!=null?u:1)>0})}}}return{id:s,children:[],selected:i.has(s),data:{modelIndex:r,visibleIndex:B.getVisibleIndex(r,t),isVisible:((l=o.get(r))!=null?l:1)>0}}}function Ip(e,t,n,s,o){const i=[],r=new Set(o),l=new Map(n.map(c=>[c.name,c]));let a=0;for(;a<e.length;){const c=B.getModelIndex(a,t),d=e[c].name;let u=n.find(({children:p})=>p.includes(d));for(;u!==void 0&&u.parent!==void 0;)u=l.get(u.parent);const m=Ka(e,t,l,u?u.name:d,s,r);i.push(m),Array.isArray(m.data.visibleIndex)?a+=m.data.visibleIndex[1]-m.data.visibleIndex[0]+1:a+=1}return i}function ii(e,t,n,s,o){const i=e.findIndex(({id:w})=>w===n),r=e.findIndex(({id:w})=>w===t),l=e[r],a=Fc(e,r,i),c=a[i-1],d=a[i+1],u=Rp(s,o),m=l.depth+u,p=Mp({previousItem:c,nextItem:d}),g=Dp({nextItem:d});let f=m;return m>=p?f=p:m<g&&(f=g),{depth:f,maxDepth:p,minDepth:g,parentId:C()};function C(){var S;if(f===0||!c)return null;if(f===c.depth)return c.parentId;if(f>c.depth)return c.id;const w=(S=a.slice(0,i).reverse().find(b=>b.depth===f))==null?void 0:S.parentId;return w!=null?w:null}}function Mp({previousItem:e,nextItem:t}){var n,s;return Math.max((n=e==null?void 0:e.depth)!=null?n:0,(s=t==null?void 0:t.depth)!=null?s:0)}function Dp({nextItem:e}){return e?e.depth:0}function Xa(e,t=null,n=0){return e.reduce((s,o,i)=>[...s,{...o,parentId:t,depth:n,index:i},...Xa(o.children,o.id,n+1)],[])}function Dt(e){return e.every(yp)?e:Xa(e)}function Ya(e,t){for(let n=0;n<e.length;n+=1){const s=e[n],{id:o,children:i}=s;if(o===t)return s;if(i.length){const r=Ya(i,t);if(r)return r}}}function Qa(e,t=0){return e.reduce((n,{children:s})=>s.length?Qa(s,n+1):n+1,t)}function Np(e,t){const n=Ya(e,t);return n?Qa(n.children):0}const Fp=[Zt.Down,Zt.Right,Zt.Up,Zt.Left],xp=[Zt.Left,Zt.Right];function Ap(e,t,n){return(s,{currentCoordinates:o,context:{active:i,over:r,collisionRect:l,droppableRects:a,droppableContainers:c}})=>{if(Fp.includes(s.code)){if(!i||!l)return;s.preventDefault();const{current:{items:d,offset:u}}=e;if(xp.includes(s.code)&&(r==null?void 0:r.id)!=null){const{depth:f,maxDepth:C,minDepth:w}=ii(d,i.id,r.id,u,n);switch(s.code){case Zt.Left:if(f>w)return{...o,x:o.x-n};break;case Zt.Right:if(f<C)return{...o,x:o.x+n};break}return}const m=[];c.forEach(f=>{if((f==null?void 0:f.disabled)||f.id===(r==null?void 0:r.id))return;const C=a.get(f.id);if(!!C)switch(s.code){case Zt.Down:l.top<C.top&&m.push(f);break;case Zt.Up:l.top>C.top&&m.push(f);break}});const p=xc({active:i,collisionRect:l,pointerCoordinates:null,droppableRects:a,droppableContainers:m});let g=Ac(p,"id");if(g===(r==null?void 0:r.id)&&p.length>1&&(g=p[1].id),g!=null&&(r==null?void 0:r.id)!=null){const f=a.get(i.id),C=a.get(g),w=c.get(g);if(f&&C&&w){const S=d.findIndex(({id:E})=>E===g),b=d[S],y=d.findIndex(({id:E})=>E===i.id),v=d[y];if(b!=null&&v!=null){const{depth:E}=ii(d,i.id,g,(b.depth-v.depth)*n,n),F=S>y?1:-1,x=t?(l.height-f.height)/2:0;return{x:C.left+E*n,y:C.top+F*x}}}}}}}class ja extends Oc{}ja.activators=[{eventName:"onPointerDown",handler:({nativeEvent:e})=>!(!e.isPrimary||e.button!==0||kp(e.target))}];const Op=["button","input","textarea","select","option"];function kp(e){return!!((e==null?void 0:e.tagName)!=null&&Op.includes(e.tagName.toLowerCase()))}function Za(e){const{clone:t=!1,depth:n,disableInteraction:s=!1,ghost:o=!1,handleProps:i,value:r,dragRef:l=null,wrapperRef:a=null,renderItem:c,item:d,childCount:u}=e,m=T.exports.useMemo(()=>Array(n).fill(0).map((g,f)=>h("span",{className:"depth-line"},`depth-line-${f}`)),[n]),p=T.exports.useMemo(()=>({ref:l,clone:t,value:r,item:d,childCount:u,handleProps:i}),[l,t,r,d,u,i]);return R("li",{className:G("item-wrapper",{clone:t,ghost:o,disableInteraction:s}),ref:a,children:[!t&&m,c(p)]},r)}Za.displayName="TreeItem";const Lp=({isSorting:e,wasDragging:t})=>!(e||t);function Ml({id:e,depth:t,...n}){const{attributes:s,isDragging:o,isSorting:i,listeners:r,setDraggableNodeRef:l,setDroppableNodeRef:a,transform:c,transition:d}=kc({id:e,animateLayoutChanges:Lp}),u=ji.Translate.toString(c),m=T.exports.useMemo(()=>({transform:u,transition:d}),[u,d]),p=T.exports.useMemo(()=>({...s,...r,style:m}),[s,r,m]);return h(Za,{dragRef:l,wrapperRef:a,depth:t,ghost:o,disableInteraction:i,handleProps:p,...n})}const Pp={keyframes({transform:e}){return[{opacity:1,transform:ji.Transform.toString(e.initial)},{opacity:0,transform:ji.Transform.toString({...e.final,x:e.final.x+5,y:e.final.y+5})}]},easing:"ease-out",sideEffects({active:e}){e.node.animate([{opacity:0},{opacity:1}],{duration:Kr.duration,easing:Kr.easing})}};let Rs=null;function Hp(e){return Rs==null&&e.activeNodeRect&&e.activatorEvent instanceof PointerEvent&&(Rs=Math.floor((e.activatorEvent.clientY-e.activeNodeRect.top)/e.activeNodeRect.height)*e.activeNodeRect.height),e.activeNodeRect||(Rs=null),{...e.transform,y:e.transform.y+(Rs!=null?Rs:0)}}function _p({items:e,renderItem:t,indentationWidth:n=30,indicator:s=!1,activeId:o,overId:i,offsetLeft:r}){const l=Lc(),a=T.exports.useRef(l);T.exports.useEffect(function(){a.current=l},[l]),T.exports.useEffect(function(){a.current.measureDroppableContainers(e.map(({id:p})=>p))},[e]);const c=o!=null&&i!=null?ii(e,o,i,r,n):null,d=T.exports.useRef({items:e,offset:r}),u=o!=null?e.find(({id:m})=>m===o):null;return T.exports.useEffect(()=>{d.current={items:e,offset:r}},[e,r]),R(Fe,{children:[h("div",{className:G("tree-container",o!=null&&"marching-ants"),children:e.map(m=>{const{id:p,depth:g}=m;return h(Ml,{id:p,value:p,depth:p===o&&c?c.depth:g,item:m,renderItem:t},p)})}),Pc.exports.createPortal(h(Hc,{dropAnimation:Pp,modifiers:[Hp],className:"visibility-ordering-list",children:o!=null&&u?h(Ml,{id:o,depth:u.depth,clone:!0,childCount:Np(e,o)+1,value:o.toString(),renderItem:t,item:u}):null}),document.body)]})}const Vp={droppable:{strategy:_c.Always}},Up={activationConstraint:{distance:5}};function Bp({items:e,indicator:t=!1,indentationWidth:n=30,onDragStart:s,onDragEnd:o,renderItem:i}){const[r,l]=T.exports.useState(null),[a,c]=T.exports.useState(null),[d,u]=T.exports.useState(0),m=T.exports.useMemo(()=>{const F=Dt(e);return r!=null?F.filter(({id:x,selected:V})=>x===r||!V):F},[r,e]),p=r!=null&&a!=null?ii(m,r,a,d,n):null,g=T.exports.useRef({items:m,offset:d}),f=T.exports.useMemo(()=>({coordinateGetter:Ap(g,t,n)}),[n,t]),C=Vc(Xr(ja,Up),Xr(Wc,f)),w=T.exports.useMemo(()=>m.map(({id:F})=>F),[m]);T.exports.useEffect(()=>{g.current={items:m,offset:d}},[m,d]);const S=T.exports.useCallback(({active:{id:F}})=>{l(F),c(F),s==null||s(F),document.body.style.setProperty("cursor","grabbing")},[s]),b=T.exports.useCallback(({delta:F})=>{u(F.x)},[]),y=T.exports.useCallback(({over:F})=>{var x;c((x=F==null?void 0:F.id)!=null?x:null)},[]),v=T.exports.useCallback(()=>{c(null),l(null),u(0),document.body.style.setProperty("cursor","")},[]),E=T.exports.useCallback(({active:F,over:x})=>{if(v(),p&&x){const{depth:V,parentId:_}=p,N=JSON.parse(JSON.stringify(Dt(e))),H=N.findIndex(({id:P})=>P===x.id),k=N.findIndex(({id:P})=>P===F.id),z=N[k];N[k]={...z,depth:V,parentId:_},o==null||o(z,{...N[H],parentId:p.parentId})}},[e,o,p,v]),M=T.exports.useCallback(()=>{v()},[v]);return h(Uc,{sensors:C,collisionDetection:Bc,measuring:Vp,onDragStart:S,onDragMove:b,onDragOver:y,onDragEnd:E,onDragCancel:M,children:h(Gc,{items:w,strategy:zc,children:h(_p,{items:m,renderItem:i,indicator:t,indentationWidth:n,activeId:r,overId:a,offsetLeft:d})})})}function Gp(e,t,n,s,o,i,r,l){const a=o.map((S,b)=>({...S,index:b}));let c=[],d=s;const u=i[0].data.visibleIndex,m=a.findIndex(({id:S})=>S===e.id),p=a.findIndex(({id:S})=>S===t.id);let g=Array.isArray(u)?u[1]+1:u+1;d=Bn(i[0],t.parentId,d);for(let S=1;S<i.length;S+=1){const{data:{visibleIndex:b}}=i[S];c=B.moveItemOrRange(b,g,c,!0),g+=Array.isArray(b)?b[1]-b[0]+1:1,d=Bn(i[S],t.parentId,d)}const f=[Array.isArray(u)?u[0]:u,g-1],C=Array.isArray(t.data.visibleIndex)?t.data.visibleIndex[0]:t.data.visibleIndex;let w=B.getVisibleIndex(C,c);return m>p&&w>C&&(w-=1),t.children.length>0&&(Array.isArray(u)?u[0]:u)<w&&(w-=1),f[0]<w&&(w-=f[1]-f[0]),c=B.moveItemOrRange(f,Ue(w,r,l),c),{groups:d,movedColumns:n.concat(c)}}function Bn(e,t,n){var a;if(e.parentId===t)return n;let s=n.map(c=>new Yt(c));const o=new Map(s.map(c=>[c.name,c])),i=s.find(c=>c.name===e.parentId),r=s.find(c=>c.name===t),l=s.find(c=>c.name===e.id);if(i!=null&&(i.children=i.children.filter(c=>c!==e.id),i.children.length===0)){const c=new Set([i.name]),{parent:d=""}=i;let u=o.get(d);for(u==null||u.removeChildren([i.name]);u&&u.children.length===0;){c.add(u.name);const m=(a=u==null?void 0:u.parent)!=null?a:"",p=o.get(m);p==null||p.removeChildren([u.name]),u=p}s=s.filter(({name:m})=>!c.has(m))}return r!=null&&r.addChildren([e.id]),l==null||l.setParent(t!=null?t:void 0),s}const zp=150,je=class extends T.exports.Component{constructor(e){super(e),this.debouncedSearchColumns=Tt(this.searchColumns,zp),this.handleGroupColorChange=Yn((t,n)=>{const{columnHeaderGroups:s,onColumnHeaderGroupChanged:o}=this.props,i=[...s],r=new Yt({...t,color:n});i.splice(i.findIndex(({name:l})=>l===t.name),1,r),o(i)},250),this.renderItem=he(({value:t,clone:n,item:s,ref:o,handleProps:i})=>{const{onColumnVisibilityChanged:r}=this.props,{selectedColumns:l}=this.state;let a=t;return n&&(a=this.getSelectedParentItems().map(({id:d})=>d).join(", ")),h(Ep,{ref:o,value:a,clone:n,item:s,childCount:l.size,onVisibilityChange:r,onClick:this.handleItemClick,onGroupDelete:this.handleGroupDelete,onGroupColorChange:this.handleGroupColorChange,onGroupNameChange:this.handleGroupNameChange,validateGroupName:this.validateGroupName,handleProps:i})}),this.getMemoizedFirstMovableIndex=he((t,n,s)=>{for(let o=0;o<n.length;o+=1){const i=B.getModelIndex(o,s);if(t.isColumnMovable(i))return o}return null}),this.getMemoizedLastMovableIndex=he((t,n,s)=>{for(let o=n.length-1;o>=0;o-=1){const i=B.getModelIndex(o,s);if(t.isColumnMovable(i))return o}return null}),this.memoizedGetTreeItems=he((t,n,s,o,i)=>Ip(t,n,s,o,[...i.values()])),this.makeVisibilityOrderingList=he((t,n)=>{const{movedColumns:s}=this.props,o=[],i=this.getFirstMovableIndex(),r=this.getLastMovableIndex(),l=n.findIndex(({data:d})=>Array.isArray(d.visibleIndex)?d.visibleIndex[0]===i:d.visibleIndex===i),a=n.findIndex(({data:d})=>Array.isArray(d.visibleIndex)?d.visibleIndex[1]===r:d.visibleIndex===r),c=n.slice(l,a+1);if(i==null||r===null){for(let d=0;d<t.length;d+=1){const u=B.getModelIndex(d,s),m=t[u];o.push(this.renderImmovableItem(m.name))}return o}for(let d=0;d<i;d+=1){const u=B.getModelIndex(d,s),m=t[u];o.push(this.renderImmovableItem(m.name))}i!==null&&i>0&&o.push(h("hr",{},"top-horizontal-divider")),o.push(h(Bp,{items:c,renderItem:this.renderItem,onDragStart:this.handleDragStart,onDragEnd:this.handleDragEnd},"movable-items")),r!=null&&r<t.length-1&&o.push(h("hr",{},"bottom-horizontal-divider"));for(let d=r+1;d<t.length;d+=1){const u=B.getModelIndex(d,s),m=t[u];o.push(this.renderImmovableItem(m.name))}return o}),this.renderImmovableItem=he(t=>h("div",{className:"visibility-ordering-list-item immovable",children:h("div",{className:"column-item",children:h("span",{className:"column-name",children:t})})},t)),this.handleSearchInputChange=this.handleSearchInputChange.bind(this),this.searchColumns=this.searchColumns.bind(this),this.handleItemClick=this.handleItemClick.bind(this),this.handleDragEnd=this.handleDragEnd.bind(this),this.handleGroupDelete=this.handleGroupDelete.bind(this),this.handleGroupNameChange=this.handleGroupNameChange.bind(this),this.handleGroupCreate=this.handleGroupCreate.bind(this),this.validateGroupName=this.validateGroupName.bind(this),this.addColumnToSelected=this.addColumnToSelected.bind(this),this.handleDragStart=this.handleDragStart.bind(this),this.state={selectedColumns:new Set,lastSelectedColumn:"",searchFilter:""},this.list=null}componentWillUnmount(){this.debouncedSearchColumns.cancel()}resetVisibilityOrdering(){const{model:e,onColumnVisibilityChanged:t,onMovedColumnsChanged:n,onColumnHeaderGroupChanged:s}=this.props,{columns:o}=e;t(o.map((i,r)=>r),!0),this.setState({selectedColumns:new Set,lastSelectedColumn:"",searchFilter:""}),s(e.initialColumnHeaderGroups),n(e.initialMovedColumns)}resetSelection(){this.setState({selectedColumns:new Set,lastSelectedColumn:""})}handleSearchInputChange(e){const t=e.target.value;if(this.setState({searchFilter:t}),!t){this.debouncedSearchColumns.cancel(),this.resetSelection();return}this.debouncedSearchColumns(t)}searchColumns(e){var i;const t=Dt(this.getTreeItems()),s=t.filter(({id:r})=>r.toLowerCase().includes(e.toLowerCase())).map(({id:r})=>r),o=t.findIndex(({id:r})=>r.toLowerCase().includes(e.toLowerCase()));if(this.addColumnToSelected(s,!1),s.length>0){const r=(i=this.list)==null?void 0:i.querySelectorAll(".item-wrapper")[o];r==null||r.scrollIntoView({block:"center"})}}moveSelectedColumns(e){var d;const{columnHeaderGroups:t}=this.props,{selectedColumns:n}=this.state,s=Dt(this.getTreeItems());let o=this.getFirstMovableIndex(),i=this.getLastMovableIndex();O(o),O(i);const r=this.getSelectedParentItems();e===je.MOVE_OPTIONS.UP||e===je.MOVE_OPTIONS.TOP||r.reverse();let a=[],c=t;for(let u=0;u<r.length;u+=1){const{id:m,parentId:p,depth:g,data:{visibleIndex:f}}=r[u];switch(e){case je.MOVE_OPTIONS.TOP:{a=B.moveItemOrRange(f,o,a,!0),o+=Array.isArray(f)?f[1]-f[0]+1:1,c=Bn(r[u],null,c);break}case je.MOVE_OPTIONS.BOTTOM:{a=B.moveItemOrRange(f,i,a,!0),i-=Array.isArray(f)?f[1]-f[0]+1:1,c=Bn(r[u],null,c);break}case je.MOVE_OPTIONS.UP:{const C=s.findIndex(b=>b.id===m),w=s.map((b,y)=>y<C&&!n.has(b.id)).lastIndexOf(!0),S=s[w];if(S!=null&&S.parentId!==p)if(Math.abs(S.depth-g)>1){const b=s.map((v,E)=>E<w&&v.depth===g).lastIndexOf(!0),y=s[b];c=Bn(r[u],y.id,c)}else c=Bn(r[u],S.parentId,c);else{const b=Ue(Array.isArray(f)?f[0]-1:f-1,o,i);a=B.moveItemOrRange(f,b,a,!1),o+=Array.isArray(f)?f[1]-f[0]+1:1}break}case je.MOVE_OPTIONS.DOWN:{const C=s.findIndex(y=>y.id===m),w=s.find((y,v)=>v>C&&!n.has(y.id));if((w==null?void 0:w.parentId)!==p){const y=s.find(v=>v.id===p);c=Bn(r[u],(d=y==null?void 0:y.parentId)!=null?d:null,c);break}else if((w==null?void 0:w.children.length)>0){c=Bn(r[u],w.id,c);break}const S=Ue(Array.isArray(f)?f[0]+1:f+1,o,i);a=B.moveItemOrRange(f,S,a,!1),i-=Array.isArray(f)?f[1]-f[0]+1:1;break}}}return{newMoves:a,groups:c}}handleMoveColumns(e){const{onMovedColumnsChanged:t,movedColumns:n,onColumnHeaderGroupChanged:s}=this.props,{newMoves:o,groups:i}=this.moveSelectedColumns(e);let r;e===je.MOVE_OPTIONS.TOP&&(r=()=>{var l,a;(a=(l=this.list)==null?void 0:l.parentElement)==null||a.scroll({top:0})}),e===je.MOVE_OPTIONS.BOTTOM&&(r=()=>{var l,a;(a=(l=this.list)==null?void 0:l.parentElement)==null||a.scroll({top:this.list.parentElement.scrollHeight})}),s(i),o.length>0&&t(n.concat(o),r)}getSortMoves(e,t,n){const s=[...e],o=t===je.SORTING_OPTIONS.ASC;s.sort((l,a)=>{const c=l.id.toUpperCase(),d=a.id.toUpperCase();return br.sort(c,d,o)});let i=[...n],r=Math.min(...s.flatMap(l=>{const{modelIndex:a}=l.data;return Array.isArray(a)?B.getVisibleIndexes(a,i):B.getVisibleIndex(a,i)}));for(let l=0;l<s.length;l+=1){const a=s[l],{modelIndex:c}=a.data,d=Array.isArray(c)?B.getVisibleIndexes(c,i):B.getVisibleIndex(c,i);i=Array.isArray(d)?B.moveRange([Math.min(...d),Math.max(...d)],r,i,!0):B.moveItem(d,r,i),Array.isArray(d)&&(i=this.getSortMoves(a.children,t,i)),r+=Array.isArray(c)?c.length:1}return i}handleSortColumns(e){const{model:t,onMovedColumnsChanged:n}=this.props,s=this.getSortMoves(this.getTreeItems(),e,t.initialMovedColumns);n(s)}handleItemClick(e,t){if(t.stopPropagation(),t.target instanceof HTMLElement&&(t.target.tagName==="BUTTON"||t.target.tagName==="INPUT"))return;t.currentTarget.focus();const{selectedColumns:n,lastSelectedColumn:s}=this.state,o=B.isModifierKeyDown(t),i=t.shiftKey,r=n.has(e),l=[e];if(r&&o){this.removeColumnFromSelected(e);return}const a=Dt(this.getTreeItems());if(r&&!i&&s===e){const c=a.find(({id:u})=>u===e);if(O(c),Dt(c.children).length+1===n.size){this.resetSelection();return}}if(i){const c=a.findIndex(u=>u.id===e),d=a.findIndex(u=>u.id===s);l.push(...a.slice(Math.min(d,c),Math.max(d,c)+1).map(u=>u.id))}this.addColumnToSelected(l,o||i),this.setState({lastSelectedColumn:e})}addColumnToSelected(e,t){const{selectedColumns:n}=this.state,s=new Set(t?[...n.values()].concat(e):e);Dt(this.getTreeItems()).forEach(({id:i,children:r})=>{s.has(i)&&r.forEach(l=>s.add(l.id))}),this.setState({selectedColumns:s})}removeColumnFromSelected(e){const{selectedColumns:t}=this.state,n=Dt(this.getTreeItems()),s=n.find(({id:i})=>i===e);O(s);let o=n.find(({id:i})=>i===s.parentId);for(Dt(s==null?void 0:s.children).forEach(i=>t.delete(i.id));o!=null;){t.delete(o.id);const i=o.parentId;o=n.find(({id:r})=>r===i)}t.delete(e),this.setState({selectedColumns:new Set(t)})}handleDragStart(e){const{selectedColumns:t}=this.state;t.has(e)||this.addColumnToSelected([e],!1)}handleDragEnd(e,t){const{movedColumns:n,onMovedColumnsChanged:s,columnHeaderGroups:o,onColumnHeaderGroupChanged:i}=this.props,r=this.getSelectedParentItems(),l=Dt(this.getTreeItems()).map((m,p)=>({...m,index:p})),a=this.getFirstMovableIndex(),c=this.getLastMovableIndex();O(a),O(c);const{groups:d,movedColumns:u}=Gp(e,t,n,o,l,r,a,c);i(d),s(u)}handleGroupNameChange(e,t){const{columnHeaderGroups:n,onColumnHeaderGroupChanged:s}=this.props,o=[...n],i=e.name,r=o.findIndex(({name:d})=>d===i),l=o[r];O(l);const a=new Yt(l);a.name=t,o.splice(r,1,a);const c=o.findIndex(({name:d})=>d===a.parent);if(c>=0){const d=new Yt(o[c]);d.removeChildren([i]),d.addChildren([t]),o.splice(c,1,d)}s(o)}handleGroupDelete(e){const{columnHeaderGroups:t,onColumnHeaderGroupChanged:n}=this.props,s=t.filter(i=>i.name!==e.name),o=s.findIndex(i=>i.name===e.parent);if(o>=0){const i=new Yt(s[o]);i.addChildren(e.children),i.removeChildren([e.name]),s.splice(o,1,i)}n(s)}handleGroupCreate(){const{movedColumns:e,onMovedColumnsChanged:t,onColumnHeaderGroupChanged:n}=this.props,{newMoves:s,groups:o}=this.moveSelectedColumns(je.MOVE_OPTIONS.TOP),i=o.filter(d=>!d.isNew),r=this.getSelectedParentItems(),l=r.map(d=>d.data.modelIndex).flat().filter(d=>d>=0),a=`${Yt.NEW_GROUP_PREFIX}-${Date.now()}`,c=new Yt({name:a,children:r.map(({id:d})=>d),depth:0,childIndexes:[...new Set(l)]});t(e.concat(s),()=>{var d,u;(u=(d=this.list)==null?void 0:d.parentElement)==null||u.scroll({top:0})}),n(i.concat([c])),this.resetSelection()}validateGroupName(e){const{model:t,columnHeaderGroups:n}=this.props,{columns:s}=t;return vn.isValidColumnName(e)?s.some(({name:o})=>o===e)||n.some(({name:o})=>o===e)?"Duplicate name":"":"Invalid name"}getFirstMovableIndex(){const{model:e,movedColumns:t}=this.props;return this.getMemoizedFirstMovableIndex(e,e.columns,t)}getLastMovableIndex(){const{model:e,movedColumns:t}=this.props;return this.getMemoizedLastMovableIndex(e,e.columns,t)}getTreeItems(){const{model:e,movedColumns:t,userColumnWidths:n,columnHeaderGroups:s}=this.props,{selectedColumns:o}=this.state;return this.memoizedGetTreeItems(e.columns,t,s,n,o)}getSelectedParentItems(){const{selectedColumns:e}=this.state;return Dt(this.getTreeItems()).filter(({id:n,parentId:s})=>e.has(n)&&!e.has(s!=null?s:""))}render(){const{model:e,userColumnWidths:t,onColumnVisibilityChanged:n}=this.props,{selectedColumns:s,searchFilter:o}=this.state,i=s.size>0,r=this.getTreeItems(),l=new Map(Dt(r).map(p=>[p.id,p.data.modelIndex])),a=[...new Set(i?[...s.values()].map(p=>l.get(p)).filter(p=>p!=null).flat():r.map(p=>p.data.modelIndex).flat())],c=!B.checkAllColumnsHidden(a,t),d=c?"Hide All":"Show All",u=c?"Hide Selected":"Show Selected",m=this.makeVisibilityOrderingList(e.columns,r);return R("div",{role:"menu",className:"visibility-ordering-builder",tabIndex:0,children:[R("div",{className:"top-menu",children:[h(K,{kind:"ghost",className:"toggle-visibility-btn",onClick:()=>{n(a,!c)},icon:c?mr:oa,tooltip:"Toggle column visibility",children:i?u:d}),h(jn,{className:"visibility-search",value:o,matchCount:o?s.size:void 0,onChange:this.handleSearchInputChange})]}),R("div",{className:"top-menu",children:[h(K,{kind:"ghost",icon:nu,tooltip:"Reset to default",onClick:()=>{this.resetVisibilityOrdering()},children:"Reset"}),h("span",{className:"vertical-divider"}),h(K,{kind:"ghost",icon:gr,tooltip:"Sort ascending",onClick:()=>{this.handleSortColumns(je.SORTING_OPTIONS.ASC)}}),h(K,{kind:"ghost",icon:fr,tooltip:"Sort descending",onClick:()=>{this.handleSortColumns(je.SORTING_OPTIONS.DSC)}}),h("span",{className:"vertical-divider"}),R(K,{kind:"ghost",tooltip:"Create group from selection",disabled:!i,onClick:this.handleGroupCreate,children:[R("span",{className:"fa-layers",style:{marginRight:"0.75rem"},children:[h(Q,{mask:lu,icon:mi,transform:"right-7 down-5 shrink-6"}),h(Q,{icon:Od,transform:"right-8 down-6 shrink-8"})]}),"Group"]}),h("span",{className:"vertical-divider"}),h(K,{kind:"ghost",icon:Hd,tooltip:"Move selection up",onClick:()=>{this.handleMoveColumns(je.MOVE_OPTIONS.UP)},disabled:!i}),h(K,{kind:"ghost",icon:Ld,tooltip:"Move selection down",onClick:()=>{this.handleMoveColumns(je.MOVE_OPTIONS.DOWN)},disabled:!i}),h(K,{kind:"ghost",icon:du,tooltip:"Move selection to top",onClick:()=>{this.handleMoveColumns(je.MOVE_OPTIONS.TOP)},disabled:!i}),h(K,{kind:"ghost",icon:cu,tooltip:"Move selection to bottom",onClick:()=>{this.handleMoveColumns(je.MOVE_OPTIONS.BOTTOM)},disabled:!i})]}),h("div",{role:"menu",className:G("visibility-ordering-list"),children:h("div",{className:"column-list",ref:p=>{this.list=p},children:m})})]})}};let _r=je;_r.SORTING_OPTIONS={DSC:"DSC",ASC:"ASC"};_r.MOVE_OPTIONS={TOP:"TOP",BOTTOM:"BOTTOM",UP:"UP",DOWN:"DOWN"};class qo extends T.exports.PureComponent{constructor(t){super(t),this.handleSearchValueChange=this.handleSearchValueChange.bind(this),this.toggleColumn=this.toggleColumn.bind(this),this.selectAll=this.selectAll.bind(this),this.clear=this.clear.bind(this),this.selectNumbers=this.selectNumbers.bind(this),this.searchField=J.createRef(),this.state={isConfigureColumnsShown:!1}}static createSearchFilter(t,n,s,o){const i=o?s.filter(r=>!n.includes(r.name)).map(r=>r.name):n;if(t&&i.length>0){const r=I.FilterValue.ofString(t);return i.length===s.length?I.FilterCondition.search(r):I.FilterCondition.search(r,s.filter(a=>i.includes(a.name)).map(a=>a.filter()))}}focus(){var t;(t=this.searchField.current)==null||t.focus()}handleSearchValueChange(t){const{onChange:n,selectedColumns:s,invertSelection:o}=this.props;n(t.target.value,s,o)}sendColumnChange(t,n){const{onChange:s,value:o}=this.props;s(o,t,n)}setInvertSelection(t){const{onChange:n,value:s}=this.props;n(s,[],t)}toggleColumn(t){const{selectedColumns:n,invertSelection:s}=this.props;if(n.includes(t))this.sendColumnChange(n.filter(o=>o!==t),s);else{const o=n.slice();o.push(t),this.sendColumnChange(o,s)}}selectAll(){this.setInvertSelection(!0)}clear(){this.setInvertSelection(!1)}selectNumbers(){const{columns:t}=this.props;this.sendColumnChange(t.filter(n=>A.isNumberType(n.type)).map(n=>n.name),!1)}render(){const{value:t,selectedColumns:n,invertSelection:s,columns:o}=this.props,{isConfigureColumnsShown:i}=this.state,r=n.length===0&&s===!0||n.length===o.length&&s===!1,l=n.length===0&&s===!1||n.length===o.length&&s===!0;let a;return r?a=R(Fe,{children:[h(Q,{icon:ti,mask:Hi,transform:"shrink-2 down-5 right-7"}),h(Q,{icon:uu,className:"text-primary",transform:"shrink-4 down-5 right-7"})]}):l?a=R(Fe,{children:[h(Q,{icon:mi,mask:Hi,transform:"shrink-1 down-5 right-7"}),h(Q,{icon:nl,className:"text-danger",transform:"shrink-4 down-5 right-7"})]}):a=R(Fe,{children:[h(Q,{icon:ti,mask:Hi,transform:"shrink-2 down-5 right-7"}),h(Q,{icon:vu,className:"text-primary",transform:"shrink-4 down-5 right-7"})]}),R("div",{className:"cross-column-container",children:[h(jn,{className:"cross-column-search",placeholder:"Search Data...",value:t,onChange:this.handleSearchValueChange,ref:this.searchField}),R("button",{type:"button",className:"btn btn-link btn-link-icon px-2",onClick:()=>{i?this.setState({isConfigureColumnsShown:!1}):this.setState({isConfigureColumnsShown:!0})},children:[h("div",{className:"fa-layers",children:a}),h(Be,{children:"Configure Columns"}),h(Sn,{isShown:i,className:"cross-column-popper",onExited:()=>{this.setState({isConfigureColumnsShown:!1})},closeOnBlur:!0,interactive:!0,children:R("div",{className:"cross-column-popup",children:["Searched Columns",h("div",{className:"cross-column-scroll",children:o.map(c=>R(J.Fragment,{children:[h(at,{className:"cross-column-checkbox",checked:s?!n.includes(c.name):n.includes(c.name),onChange:()=>this.toggleColumn(c.name),children:c.name}),c.type.substring(c.type.lastIndexOf(".")+1)]},c.name))}),R("div",{className:"cross-column-button-bar",children:[h("button",{type:"button",className:"btn btn-link",onClick:this.selectAll,children:"Select All"}),h("button",{type:"button",className:"btn btn-link",onClick:this.clear,children:"Clear"}),h("button",{type:"button",className:"btn btn-link",onClick:this.selectNumbers,children:"Numbers Only"})]}),l&&R("p",{className:"text-danger",children:[h(Q,{icon:nl})," Select at least one column to search."]})]})})]})]})}}const An=ne.module("PartitionSelectorSearch"),Wp=150,Ja=class extends T.exports.Component{constructor(e){super(e),this.debounceUpdateFilter=Tt(()=>{this.updateFilter()},Wp),this.handleFilterChange=this.handleFilterChange.bind(this),this.handleInputFocus=this.handleInputFocus.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleListKeydown=this.handleListKeydown.bind(this),this.handleSelect=this.handleSelect.bind(this),this.handleTableUpdate=this.handleTableUpdate.bind(this),this.handleTextChange=this.handleTextChange.bind(this),this.handleViewportChange=this.handleViewportChange.bind(this),this.itemList=null,this.searchInput=null,this.timer=null,this.state={offset:0,itemCount:0,items:[],text:"",isLoading:!0}}static handleError(e){e instanceof ks||An.error(e)}componentDidMount(){this.startListening()}componentDidUpdate(e,t){const{isLoading:n,itemCount:s}=this.state,{onListResized:o}=this.props;(s!==t.itemCount||n!==t.isLoading)&&o()}componentWillUnmount(){this.debounceUpdateFilter.cancel(),this.stopListening()}handleKeyDown(e){if(this.itemList==null)return!1;const{items:t,itemCount:n}=this.state;switch(e.key){case"Enter":{let s=null;if(t.length>0)s=t[0].value;else{const{text:o}=this.state;s=o.trim()}if(s.length>0){const{onSelect:o}=this.props;o(s)}return e.stopPropagation(),e.preventDefault(),!0}case"ArrowDown":return n>0&&this.itemList.focusItem(1),e.stopPropagation(),e.preventDefault(),!0;default:return!1}}handleListKeydown(e){switch(e.key){case"Escape":break;default:this.focus();break}}handleFilterChange(){An.debug2("handleFilterChange");const{table:e}=this.props,t=e.size;this.setState({itemCount:t,isLoading:!0})}handleInputFocus(){this.itemList&&this.itemList.focusItem(0)}handleSelect(e){An.debug2("handleSelect",e);const{onSelect:t}=this.props,{offset:n,items:s}=this.state,o=e-n;if(o<0||s.length<=o){An.error("No data for item",e);return}const{value:i}=s[o];t(i)}handleTableUpdate(e){const t=e.detail,{offset:n}=t,s=[],{getFormattedString:o,table:i}=this.props,r=i.columns[0];for(let a=0;a<t.rows.length;a+=1){const d=t.rows[a].get(r),u=o(d,r.type,r.name);s.push({displayValue:u,value:d})}const l=i.size;An.debug2("handleTableUpdate",l,n,s.length),this.setState({itemCount:l,items:s,offset:n,isLoading:!1})}handleTextChange(e){An.debug2("handleTextChange");const{value:t}=e.target;this.setState({text:t}),this.debounceUpdateFilter()}handleViewportChange(e,t){An.debug2("handleViewportChange",e,t);const n=Math.max(1,t-e),s=Math.max(0,e-n),o=t+n,{table:i}=this.props;i.setViewport(s,o)}focus(){this.searchInput&&this.searchInput.focus()}startListening(){const{initialPageSize:e,table:t}=this.props;t.addEventListener(I.Table.EVENT_UPDATED,this.handleTableUpdate),t.addEventListener(I.Table.EVENT_FILTERCHANGED,this.handleFilterChange),t.setViewport(0,e)}stopListening(){const{table:e}=this.props;e.removeEventListener(I.Table.EVENT_UPDATED,this.handleTableUpdate),e.removeEventListener(I.Table.EVENT_FILTERCHANGED,this.handleFilterChange)}updateFilter(){const{initialPageSize:e,table:t}=this.props,{text:n}=this.state,s=n.trim(),o=[];if(s.length>0){const r=t.columns[0].filter().invoke("matches",I.FilterValue.ofString(`(?s)(?i).*\\Q${s}\\E.*`));o.push(r)}An.debug2("updateFilter",o),t.applyFilter(o),t.setViewport(0,e)}render(){const{isLoading:e,itemCount:t,items:n,offset:s,text:o}=this.state,i=Math.min(t,Ja.MAX_VISIBLE_ITEMS)*nn.DEFAULT_ROW_HEIGHT+11;return R("div",{className:"iris-grid-partition-selector-search",children:[h("div",{className:"search-container",children:h("input",{type:"text",ref:r=>{this.searchInput=r},value:o,placeholder:"Available Partitions",onChange:this.handleTextChange,onFocus:this.handleInputFocus,onKeyDown:this.handleKeyDown,className:"form-control input-partition"})}),!e&&t>0&&h("div",{className:"iris-grid-partition-selector-search-list",onKeyDown:this.handleListKeydown,role:"presentation",style:{height:i},children:h(nn,{ref:r=>{this.itemList=r},itemCount:t,items:n,offset:s,onSelect:this.handleSelect,onViewportChange:this.handleViewportChange})}),!e&&t===0&&h("div",{className:"iris-grid-partition-selector-search-empty",children:"No results"}),e&&R("div",{className:"iris-grid-partition-selector-loading",children:[h(Ht,{}),"\xA0Loading..."]})]})}};let Ri=Ja;Ri.MAX_VISIBLE_ITEMS=12;Ri.defaultProps={initialPageSize:100,onSelect:()=>{},onListResized:()=>{}};Ri.propTypes={getFormattedString:D.exports.func.isRequired,table:D.exports.shape({addEventListener:D.exports.func.isRequired,removeEventListener:D.exports.func.isRequired,columns:D.exports.arrayOf(D.exports.shape({name:D.exports.string.isRequired,type:D.exports.string.isRequired,filter:D.exports.func.isRequired})),size:D.exports.number.isRequired,applyFilter:D.exports.func.isRequired,setViewport:D.exports.func.isRequired}).isRequired,initialPageSize:D.exports.number,onSelect:D.exports.func,onListResized:D.exports.func};const Is=ne.module("IrisGridPartitionSelector"),$p=250;class ec extends T.exports.Component{constructor(t){super(t),this.debounceUpdate=Tt(()=>{this.sendUpdate()},$p),this.handleAppendClick=this.handleAppendClick.bind(this),this.handleCloseClick=this.handleCloseClick.bind(this),this.handleIgnoreClick=this.handleIgnoreClick.bind(this),this.handlePartitionChange=this.handlePartitionChange.bind(this),this.handlePartitionSelect=this.handlePartitionSelect.bind(this),this.handlePartitionListResized=this.handlePartitionListResized.bind(this),this.handleSearchOpened=this.handleSearchOpened.bind(this),this.handleSearchClosed=this.handleSearchClosed.bind(this),this.searchMenu=null,this.selectorSearch=null;const{partition:n}=t;this.state={partition:n}}componentWillUnmount(){this.debounceUpdate.cancel()}handleAppendClick(){Is.debug2("handleAppendClick");const{onAppend:t}=this.props,{partition:n}=this.state;t(n)}handleCloseClick(){Is.debug2("handleCloseClick"),this.sendDone()}handleIgnoreClick(){Is.debug2("handleIgnoreClick"),this.sendFetchAll()}handlePartitionChange(t){Is.debug2("handlePartitionChange");const{value:n}=t.target;this.setState({partition:n}),this.debounceUpdate()}handlePartitionSelect(t){this.searchMenu&&this.searchMenu.closeMenu(),this.setState({partition:t},()=>{this.sendUpdate()})}handlePartitionListResized(){this.searchMenu&&this.searchMenu.scheduleUpdate()}handleSearchClosed(){const{table:t}=this.props;t.applyFilter([])}handleSearchOpened(){this.selectorSearch&&this.selectorSearch.focus()}sendDone(){this.debounceUpdate.flush();const{onDone:t}=this.props;t()}sendUpdate(){Is.debug2("sendUpdate");const{onChange:t}=this.props,{partition:n}=this.state;t(n)}sendFetchAll(){Is.debug2("sendFetchAll"),this.debounceUpdate.cancel();const{onFetchAll:t}=this.props;t()}render(){const{columnName:t,getFormattedString:n,onDone:s,table:o}=this.props,{partition:i}=this.state,r=h(Ri,{getFormattedString:n,table:o,onSelect:this.handlePartitionSelect,onListResized:this.handlePartitionListResized,ref:l=>{this.selectorSearch=l}},"search");return R("div",{className:"iris-grid-partition-selector",children:[h("div",{className:"status-message",children:R("span",{children:['Filtering "',t,'" partition to']})}),R("div",{className:"input-group",children:[h("input",{type:"text",value:i,onChange:this.handlePartitionChange,className:"form-control input-partition"}),h("div",{className:"input-group-append",children:R("button",{type:"button",className:"btn btn-outline-primary",children:[h(Q,{icon:Gn}),h(Be,{children:"Partitions"}),h(Kn,{ref:l=>{this.searchMenu=l},actions:[{menuElement:r}],onMenuOpened:this.handleSearchOpened,onMenuClosed:this.handleSearchClosed})]})})]}),h("div",{className:"iris-grid-partition-selector-spacer"}),h("button",{type:"button",className:"btn btn-outline-primary btn-ignore",onClick:this.handleIgnoreClick,children:"Ignore & Fetch All"}),h("button",{type:"button",className:"btn btn-outline-primary btn-append",onClick:this.handleAppendClick,children:"Append Command"}),h("button",{type:"button",className:"btn btn-link btn-link-icon btn-close",onClick:s,children:h(Q,{icon:mo})})]})}}ec.defaultProps={onAppend:()=>{},onChange:()=>{},onFetchAll:()=>{},onDone:()=>{},partition:""};const qp=ne.module("SelectDistinctBuilder");class tc extends T.exports.Component{constructor(t){super(t),this.handleAddColumnClick=this.handleAddColumnClick.bind(this),this.handleDeleteColumn=this.handleDeleteColumn.bind(this),this.handleDropdownChanged=this.handleDropdownChanged.bind(this);const{model:n,selectDistinctColumns:s}=this.props;this.state={inputs:s.length>0?[...s]:[""],columns:n.originalColumns}}componentDidUpdate(t,n){const{inputs:s}=this.state,{onChange:o}=this.props;if(n.inputs!==s){const i=s.filter(r=>r!=="");ht(n.inputs.filter(r=>r!==""),i)||o(i)}}handleAddColumnClick(){this.setState(({inputs:t})=>({inputs:[...t,""]}))}handleDeleteColumn(t){this.setState(({inputs:n})=>({inputs:n.length===1&&t===0?[""]:n.filter((s,o)=>t!==o)}))}handleDropdownChanged(t,n){qp.debug("handleDropdownChanged",t,n);const{value:s}=n.target;this.setState(({inputs:o})=>{const i=[...o];return i[t]=s,{inputs:i}})}renderInputs(){const{columns:t,inputs:n}=this.state;return n.map((s,o)=>{const i=t.filter(({name:r})=>r===s||!n.includes(r)).map(({name:r})=>h("option",{value:r,children:r},r));return R("div",{className:"form-inline px-3 pb-3",children:[R("select",{className:"form-control custom-select col",value:s,onChange:r=>this.handleDropdownChanged(o,r),children:[h("option",{value:"",children:"Select a column"}),i]}),(n.length>1||s!=="")&&h(K,{kind:"ghost",className:"ml-1 px-2",onClick:()=>{this.handleDeleteColumn(o)},icon:h(Q,{icon:bn,transform:"grow-3"}),tooltip:"Delete column"})]},o)})}render(){const{columns:t,inputs:n}=this.state,s=n.length>=t.length;return R("div",{role:"presentation",className:"select-distinct-builder-container h-100",children:[h("div",{className:"select-distinct-title",children:"Display Unique Values From"}),this.renderInputs(),h("hr",{}),h("div",{className:"pt-1 px-3",children:h(K,{kind:"ghost",className:"btn-add-column",onClick:this.handleAddColumnClick,disabled:s,icon:Vs,children:"Add Additional Column"})}),h("div",{className:"select-distinct-builder-footer",children:R("div",{className:"select-distinct-builder-hint",children:["Modifies a table to show unique value from a column, same as"," ",h("span",{className:"inline-code-snippet",children:'selectDistinct("Column")'}),". Filters will be reset and the resulting table will contain only the selected columns above."]})})]})}}tc.defaultProps={selectDistinctColumns:[],onChange:()=>{}};function Vr({items:e,onChange:t=()=>{}}){return h(ya,{items:Array.from(e.entries()).map(([n,s])=>({title:Vr.getAdvancedSettingsTitleForKey(n),isOn:s,onChange:o=>t(n,o)}))})}Vr.getAdvancedSettingsTitleForKey=e=>{switch(e){case ms.FILTER_CONTROL_CHANGE_CLEARS_ALL_FILTERS:return"Control filters clear existing table filters";case ms.LINK_CHANGE_CLEARS_ALL_FILTERS:return"Inbound links clear existing table filters"}};const Dl=ne.module("ConditionalFormattingMenu"),zi=()=>{};function Kp(e){const{column:{type:t}}=e;if(A.isNumberType(t))return e.condition===De.IS_NULL||e.condition===De.IS_NOT_NULL?"":`${e.value}`;if(A.isCharType(t))return e.condition===rt.IS_NULL||e.condition===rt.IS_NOT_NULL?"":`${e.value}`;if(A.isStringType(t))return e.condition===wt.IS_NULL||e.condition===wt.IS_NOT_NULL?"":`"${e.value}"`;if(A.isDateType(t))return e.condition===rt.IS_NULL||e.condition===rt.IS_NOT_NULL?"":`${e.value}`;if(A.isBooleanType(t))return"";throw new Error(`Invalid column type ${t} in getRuleValue`)}function Xp(e){return A.isNumberType(e.column.type)&&e.condition===De.IS_BETWEEN?`${e.start} < ${e.column.name} < ${e.end}`:`${e.column.name} ${Im(e.column.type,e.condition)}
|
|
14
|
-
${Kp(e)}`}function Yp(e){const{rules:t=[],onChange:n=zi,onCreate:s=zi,onSelect:o=zi}=e,i=T.exports.useCallback((c,d,u)=>{c.stopPropagation(),Dl.debug("Rule clicked",d,u),o(u)},[o]),r=T.exports.useCallback((c,d,u)=>{c.stopPropagation(),Dl.debug("Delete button clicked",d,u);const m=[...t];m.splice(u,1),n(m)},[n,t]),l=T.exports.useCallback(c=>{c.stopPropagation()},[]),a=T.exports.useCallback(c=>{if(mt.stopDragging(),c.destination==null)return;const d=c.source.index,u=c.destination.index,m=[...t],p=t[d];m.splice(d,1),m.splice(u,0,p),n(m)},[n,t]);return R("div",{className:"conditional-formatting-rules",children:[h(hi,{onDragStart:mt.startDragging,onDragEnd:a,children:h(ui,{droppableId:"droppable-custom-columns",children:(c,d)=>R("div",{ref:c.innerRef,...c.droppableProps,className:G("droppable-container",{dragging:d.draggingFromThisWith}),children:[t.length===0&&h("div",{className:"text-muted pl-2",children:"No formats defined"}),t.map((u,m)=>h(lr,{draggableId:`${m}-${u.type}`,index:m,disableInteractiveElementBlocking:!0,children:(p,g)=>h("div",{role:"menuitem",tabIndex:0,onClick:f=>i(f,u,m),className:G("draggable-container",{dragging:g.isDragging}),ref:p.innerRef,...p.draggableProps,children:h("div",{className:"conditional-formatting-list-item",children:R("div",{className:"formatting-item",children:[h("div",{className:"rule-icon",children:h("span",{className:"rule-icon-bg",style:{backgroundColor:si(u.config.style),color:oi(u.config.style)},children:u.type===sn.ROWS?"row":"col"})}),h("div",{className:"rule-title",children:Xp(u.config)}),h(K,{kind:"ghost",className:"ml-1 px-2",onClick:f=>r(f,u,m),icon:bn,tooltip:"Delete rule"}),R("button",{type:"button",className:"btn btn-link btn-link-icon px-2 btn-drag-handle",onClick:l,...p.dragHandleProps,children:[h(Be,{children:"Drag to re-order"}),h(Q,{icon:pi})]})]})})})},`${m}-${u.type}`)),c.placeholder]})})}),h("hr",{}),h(K,{kind:"ghost",onClick:s,icon:Vs,children:"Add New Rule"})]})}const Ms=ne.module("ConditionEditor"),Qp=()=>{},jp=[De.IS_EQUAL,De.IS_NOT_EQUAL,De.IS_BETWEEN,De.GREATER_THAN,De.GREATER_THAN_OR_EQUAL,De.LESS_THAN,De.LESS_THAN_OR_EQUAL,De.IS_NULL,De.IS_NOT_NULL].map(e=>h("option",{value:e,children:dm(e)},e)),Zp=[wt.IS_EXACTLY,wt.IS_NOT_EXACTLY,wt.CONTAINS,wt.DOES_NOT_CONTAIN,wt.STARTS_WITH,wt.ENDS_WITH,wt.IS_NULL,wt.IS_NOT_NULL].map(e=>h("option",{value:e,children:um(e)},e)),Jp=[rt.IS_EXACTLY,rt.IS_NOT_EXACTLY,rt.IS_BEFORE,rt.IS_BEFORE_OR_EQUAL,rt.IS_AFTER,rt.IS_AFTER_OR_EQUAL,rt.IS_NULL,rt.IS_NOT_NULL].map(e=>h("option",{value:e,children:hm(e)},e)),eg=[ro.IS_TRUE,ro.IS_FALSE,ro.IS_NULL,ro.IS_NOT_NULL].map(e=>h("option",{value:e,children:mm(e)},e)),tg=[ds.IS_EQUAL,ds.IS_NOT_EQUAL,ds.IS_NULL,ds.IS_NOT_NULL].map(e=>h("option",{value:e,children:pm(e)},e));function ng(e,t,n,s){return e===De.IS_NULL||e===De.IS_NOT_NULL||e===De.IS_BETWEEN&&n!=null&&n!==""&&!Number.isNaN(Number.parseFloat(n))&&s!=null&&s!==""&&!Number.isNaN(Number.parseFloat(s))||e!==De.IS_BETWEEN&&t!==void 0&&t!==""&&!Number.isNaN(Number.parseFloat(t))}function sg(e,t,n,s,o,i,r){switch(e){case De.IS_EQUAL:case De.IS_NOT_EQUAL:case De.GREATER_THAN:case De.GREATER_THAN_OR_EQUAL:case De.LESS_THAN:case De.LESS_THAN_OR_EQUAL:return h("input",{type:"number",className:"form-control",placeholder:"Enter value",value:o!=null?o:"",onChange:t});case De.IS_BETWEEN:return R("div",{className:"d-flex flex-row",children:[h("input",{type:"number",className:"form-control d-flex mr-2",placeholder:"Start value",value:i!=null?i:"",onChange:n}),h("input",{type:"number",className:"form-control d-flex",placeholder:"End value",value:r!=null?r:"",onChange:s})]});case De.IS_NULL:case De.IS_NOT_NULL:return null}}function og(e,t,n){switch(e){case wt.IS_NULL:case wt.IS_NOT_NULL:return null;default:return h("input",{type:"text",className:"form-control",placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function ig(e,t,n){switch(e){case rt.IS_NULL:case rt.IS_NOT_NULL:return null;default:return h("input",{type:"text",className:"form-control",placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function rg(){return null}function lg(e,t,n){switch(e){case ds.IS_NULL:case ds.IS_NOT_NULL:return null;default:return h("input",{type:"text",className:"form-control",maxLength:1,placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function nc(e){const{column:t,config:n,onChange:s=Qp}=e,o=t.type,[i,r]=T.exports.useState(o),[l,a]=T.exports.useState(n.condition),[c,d]=T.exports.useState(n.value),[u,m]=T.exports.useState(n.start),[p,g]=T.exports.useState(n.end);o!==i&&(a(Oa(o)),d(void 0),m(void 0),g(void 0),r(o));const f=T.exports.useMemo(()=>{if(o===void 0)return[];if(A.isNumberType(o))return jp;if(A.isCharType(o))return tg;if(A.isStringType(o))return Zp;if(A.isDateType(o))return Jp;if(A.isBooleanType(o))return eg},[o]),C=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleConditionChange",E),a(E)},[]),w=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleValueChange",E),d(E)},[]),S=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleStartValueChange",E),m(E)},[]),b=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleEndValueChange",E),g(E)},[]);T.exports.useEffect(function(){let E=!0;l===void 0&&(Ms.debug("Unable to create formatting rule. Condition is not selected."),E=!1),A.isNumberType(t.type)&&!ng(l,c,u,p)&&(Ms.debug("Unable to create formatting rule. Invalid value",c),E=!1),s({condition:l,value:c,start:u,end:p},E)},[s,t.type,l,c,u,p]);const y=T.exports.useMemo(()=>{if(o===void 0)return null;if(A.isNumberType(o))return sg(l,w,S,b,c,u,p);if(A.isCharType(o))return lg(l,w,c);if(A.isStringType(o))return og(l,w,c);if(A.isDateType(o))return ig(l,w,c);if(A.isBooleanType(o))return rg()},[o,l,c,u,p,w,S,b]);return R("div",{className:"condition-editor mb-2",children:[h("select",{value:l,id:"condition-select",className:"custom-select mb-2",onChange:C,children:f}),y]})}const ag=ne.module("StyleEditor"),cg="#fcfcfa",dg="#f0f0ee",ug="#1a171a",hg=200,mg=()=>{};function sc(e){var b,y;const{config:t,onChange:n=mg}=e,[s,o]=T.exports.useState(t.type),[i,r]=T.exports.useState((y=(b=t.customConfig)==null?void 0:b.background)!=null?y:cg),[l,a]=T.exports.useState(!1),[c,d]=T.exports.useState(hg),u=T.exports.useRef(null),m=T.exports.useCallback(v=>{const{value:E}=v.target;ag.debug("handleBackgroundChange",E),r(E)},[]),p=T.exports.useCallback(()=>{l&&a(!1)},[l]),g=T.exports.useCallback(()=>{l||C(),a(!l)},[l]),f=T.exports.useMemo(()=>[$t.NO_FORMATTING,$t.POSITIVE,$t.NEGATIVE,$t.WARN,$t.NEUTRAL,$t.ACCENT_1,$t.ACCENT_2,$t.CUSTOM],[]);function C(){u.current&&d(u.current.getBoundingClientRect().width)}T.exports.useEffect(function(){n({type:s,customConfig:{color:fi.isDark(i)?dg:ug,background:i}})},[n,s,i]);const w=T.exports.useCallback(()=>{const v=[];for(let E=0;E<f.length;E+=1){const M=f[E],F=`option-${E}-${M}`;v.push(R(K,{kind:"inline",className:"style-option-btn",onClick:()=>{o(M),a(!1)},style:{color:oi({type:M}),background:si({type:M})},children:[M===s&&h(Q,{icon:$n,className:"mr-2"}),M!==s&&h("span",{className:"mr-4"}),vl(M)]},F))}return v},[f,s]),S=T.exports.useCallback(()=>h("div",{className:"style-menu-container",role:"presentation",style:{width:c},children:h("div",{className:"style-options",children:w()})}),[c,w]);return R("div",{className:"style-editor",children:[R("div",{className:"mb-2",ref:u,children:[h("label",{className:"mb-0",children:"Style"}),R(K,{kind:"inline",className:"cs-dropdown",style:{color:oi({type:s}),background:si({type:s})},onClick:g,children:[vl(s),h("span",{children:h(Q,{icon:Cr,className:"cs-caret"})}),h(Kn,{isShown:l,actions:{menuElement:S()},popperOptions:{placement:"bottom-start"},popperClassName:"style-dropdown-menu",onMenuClosed:p,menuStyle:{maxWidth:"100rem"}})]})]}),s===$t.CUSTOM&&R("div",{className:"mb-2",children:[h("label",{className:"mb-0",children:"Background"}),h("input",{type:"color",value:i,className:"custom-select color-select",onChange:m})]})]})}const so=ne.module("ColumnFormatEditor"),pg=()=>{};function gg(e){const{type:t,name:n}=e[0];return{column:{type:t,name:n},style:La(),...vi(t)}}function fg(e){var C;const{columns:t,config:n=gg(t),onChange:s=pg}=e,[o,i]=T.exports.useState((C=t.find(w=>w.name===n.column.name&&w.type===n.column.type))!=null?C:t[0]),[r,l]=T.exports.useState(ka(n)),[a,c]=T.exports.useState(!1),[d,u]=T.exports.useState(n.style),m=T.exports.useCallback(w=>{const S=t.find(({name:b})=>b===w);S!==void 0?(i(S),o.type!==S.type&&(l(vi(S.type)),c(!1))):so.error(`Column ${w} not found.`)},[t,o]),p=T.exports.useCallback((w,S)=>{so.debug("handleConditionChange",w,S),l(w),c(S)},[]),g=T.exports.useCallback(w=>{so.debug("handleStyleChange",w),u(w)},[]);T.exports.useEffect(function(){if(o===void 0){so.debug("Column is not selected, skip update.");return}if(d===void 0){so.debug("Style is not selected, skip update.");return}const{type:S,name:b}=o;s({column:{type:S,name:b},style:d,...r},a)},[s,o,d,r,a]);const f=t.map(({name:w})=>({title:w,value:w}));return R("div",{className:"conditional-rule-editor form",children:[R("div",{className:"mb-2",children:[h("label",{className:"mb-0",children:"Format Cell If"}),h(Bs,{defaultValue:o==null?void 0:o.name,options:f,inputPlaceholder:"Select a column",spellCheck:!1,onChange:m,searchPlaceholder:"Filter columns"})]}),o!==void 0&&R(Fe,{children:[h(nc,{column:o,config:r,onChange:p}),h(sc,{config:d,onChange:g})]})]})}const oo=ne.module("RowFormatEditor"),Cg=()=>{};function wg(e){const{type:t,name:n}=e[0];return{column:{type:t,name:n},style:La(),...vi(t)}}function Sg(e){var C;const{columns:t,config:n=wg(t),onChange:s=Cg}=e,[o,i]=T.exports.useState((C=t.find(w=>w.name===n.column.name&&w.type===n.column.type))!=null?C:t[0]),[r,l]=T.exports.useState(ka(n)),[a,c]=T.exports.useState(!1),[d,u]=T.exports.useState(n.style),m=T.exports.useCallback(w=>{const S=t.find(({name:b})=>b===w);S!==void 0?(i(S),o.type!==S.type&&(l(vi(S.type)),c(!1))):oo.error(`Column ${w} not found.`)},[t,o]),p=T.exports.useCallback((w,S)=>{oo.debug("handleConditionChange",w,S),l(w),c(S)},[]),g=T.exports.useCallback(w=>{oo.debug("handleStyleChange",w),u(w)},[]);T.exports.useEffect(function(){if(o===void 0){oo.debug("Column is not selected, skip update.");return}if(d===void 0){oo.debug("Style is not selected, skip update.");return}const{type:S,name:b}=o;s({column:{type:S,name:b},style:d,...r},a)},[s,o,d,r,a]);const f=t.map(({name:w})=>({title:w,value:w}));return R("div",{className:"conditional-rule-editor form",children:[R("div",{className:"mb-2",children:[h("label",{className:"mb-0",children:"Format Row If"}),h(Bs,{defaultValue:o==null?void 0:o.name,options:f,inputPlaceholder:"Select a column",spellCheck:!1,onChange:m,searchPlaceholder:"Filter columns"})]}),o!==void 0&&R(Fe,{children:[h(nc,{column:o,config:r,onChange:p}),h(sc,{config:d,onChange:g})]})]})}const Wi=ne.module("ConditionalFormatEditor"),$i=()=>{};function bg(e){switch(e){case sn.CONDITIONAL:return h(pp,{});case sn.ROWS:return h(gp,{})}}function vg(e){switch(e){case sn.CONDITIONAL:return"Conditional";case sn.ROWS:return"Rows"}}const Nl=[sn.CONDITIONAL,sn.ROWS];function Tg(e){var w;const{columns:t,onSave:n=$i,onUpdate:s=$i,onCancel:o=$i,rule:i}=e,r=t.filter(Dm),[l,a]=T.exports.useState((w=i==null?void 0:i.type)!=null?w:Nl[0]),[c,d]=T.exports.useState(i),[u,m]=T.exports.useState(!1),p=T.exports.useCallback(()=>{o()},[o]),g=T.exports.useCallback(()=>{if(c===void 0){Wi.error("Rule is not defined.");return}n(c)},[n,c]),f=T.exports.useCallback(S=>{Wi.debug("handleFormatterChange",S),a(S)},[]),C=T.exports.useCallback((S,b)=>{Wi.debug("handleRuleChange",S,b,l);const y={type:l,config:S};d(y),m(b),s(b?y:void 0)},[s,l]);return R("div",{className:"conditional-format-editor form",children:[R("div",{className:"mb-2",children:[h("label",{className:"mb-0",htmlFor:"formatter-select",children:"Select Formatter"}),h("div",{className:"formatter-list",children:Nl.map((S,b)=>h("div",{className:"formatter-type",children:R("button",{type:"button",className:G("btn","btn-icon","btn-formatter-type",{active:S===l}),"data-index":b,onClick:()=>f(S),children:[bg(S),vg(S)]})},S))})]}),l===sn.CONDITIONAL&&h(fg,{columns:r,config:c==null?void 0:c.config,onChange:C}),l===sn.ROWS&&h(Sg,{columns:r,config:c==null?void 0:c.config,onChange:C}),h("hr",{}),R("div",{className:"d-flex justify-content-end my-3",children:[h(K,{kind:"secondary",onClick:p,className:"mr-2",children:"Cancel"}),h(K,{kind:"primary",onClick:g,disabled:c===void 0||!u,children:"Done"})]})]})}function Eg({type:e}){switch(e){case I.VariableType.TABLE:case I.VariableType.TABLEMAP:case I.VariableType.TREETABLE:return h(Q,{icon:wr});case I.VariableType.FIGURE:return h(Q,{icon:Zl});case I.VariableType.PANDAS:return h(Q,{icon:Su});default:return h(Q,{icon:tu})}}class oc extends T.exports.Component{constructor(t){super(t),this.container=null}componentDidMount(){this.colorize()}colorize(){const{children:t}=this.props;this.container&&t!=null&&Cn.colorizeElement(this.container,{theme:"dh-dark"})}render(){const{children:t,language:n}=this.props;return h("div",{children:h("div",{"data-lang":n,ref:s=>{this.container=s},style:{pointerEvents:"none"},children:t})})}}class yg{static get LANGUAGE_MAP(){return new Map([["python","Python"],["groovy","Groovy"],["scala","Scala"]])}}class _s{static hasComment(t){return t.comment!==void 0}static hasPattern(t){return t.pattern!==void 0}static hasOp(t){return t.op!==void 0}static parseArguments(t){return t==null||!(typeof t=="string"||t instanceof String)?[]:$c.parse(t).filter(n=>!this.hasComment(n)).map(n=>this.hasPattern(n)?n.pattern:this.hasOp(n)?n.op:`${n}`)}static formatTimestamp(t){if(t==null||!(t instanceof Date))return null;const n=`${t.getHours()}`.padStart(2,"0"),s=`${t.getMinutes()}`.padStart(2,"0"),o=`${t.getSeconds()}`.padStart(2,"0"),i=`${t.getMilliseconds()}`.padStart(3,"0");return`${n}:${s}:${o}.${i}`}static isTableType(t){return t===I.VariableType.TABLE||t===I.VariableType.TREETABLE}static isWidgetType(t){return t===I.VariableType.FIGURE||t===I.VariableType.OTHERWIDGET||t===I.VariableType.PANDAS}static isOpenableType(t){return _s.isTableType(t)||_s.isWidgetType(t)}static isFigureType(t){return t===I.VariableType.FIGURE}static isPandas(t){return t===I.VariableType.PANDAS}}function ic({children:e}){return R("div",{className:"console-history-item-result",children:[h("div",{className:"console-history-gutter",children:"-"}),h("div",{className:"console-history-content",children:e})]})}ic.propTypes={children:D.exports.node.isRequired};class rc extends T.exports.Component{constructor(t){super(t),this.updateElapsed=this.updateElapsed.bind(this),this.startTime=Date.now(),this.state={elapsed:0}}componentDidMount(){this.timer=setInterval(this.updateElapsed,1e3)}componentWillUnmount(){this.timer&&clearInterval(this.timer),this.timer=void 0}updateElapsed(){this.setState({elapsed:Math.round((Date.now()-this.startTime)/1e3)})}render(){const{disabled:t,onCancelClick:n}=this.props,{elapsed:s}=this.state;return h("div",{className:G("console-history-result-in-progress",{disabled:t}),children:R("span",{className:"badge",children:[h(Ht,{}),"\xA0Running... ",Jt.formatElapsedTime(s),"\xA0",h(K,{className:"console-history-result-in-progress-cancel",kind:"ghost",icon:mo,tooltip:"Cancel",onClick:n,disabled:t})]})})}}rc.defaultProps={disabled:!1};const or=class extends T.exports.PureComponent{constructor(e){super(e),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleToggleError=this.handleToggleError.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.mouseX=null,this.mouseY=null,this.isClicking=!1,this.state={isExpanded:!1,isTriggerHovered:!1}}handleKeyPress(e){switch(e.key){case"Enter":case" ":this.handleToggleError(),e.stopPropagation(),e.preventDefault();break}}handleMouseDown(e){this.mouseX=e.clientX,this.mouseY=e.clientY,this.isClicking=!0}handleMouseMove(e){this.mouseX!=null&&this.mouseY!=null?(Math.abs(e.clientX-this.mouseX)>=or.mouseDragThreshold||Math.abs(e.clientY-this.mouseY)>=or.mouseDragThreshold)&&(this.isClicking=!1):this.isClicking&&(this.isClicking=!1)}handleMouseUp(e){this.isClicking&&!e.shiftKey&&!e.metaKey&&!e.altKey&&this.handleToggleError(),this.mouseX=null,this.mouseY=null,this.isClicking=!1}handleToggleError(){this.setState(e=>({isExpanded:!e.isExpanded}))}handleMouseEnter(){this.setState({isTriggerHovered:!0})}handleMouseLeave(){this.setState({isTriggerHovered:!1})}render(){const{isExpanded:e,isTriggerHovered:t}=this.state,{message:n}=this.props;O(n);const s=n.indexOf(`
|
|
14
|
+
${Kp(e)}`}function Yp(e){const{rules:t=[],onChange:n=zi,onCreate:s=zi,onSelect:o=zi}=e,i=T.exports.useCallback((c,d,u)=>{c.stopPropagation(),Dl.debug("Rule clicked",d,u),o(u)},[o]),r=T.exports.useCallback((c,d,u)=>{c.stopPropagation(),Dl.debug("Delete button clicked",d,u);const m=[...t];m.splice(u,1),n(m)},[n,t]),l=T.exports.useCallback(c=>{c.stopPropagation()},[]),a=T.exports.useCallback(c=>{if(mt.stopDragging(),c.destination==null)return;const d=c.source.index,u=c.destination.index,m=[...t],p=t[d];m.splice(d,1),m.splice(u,0,p),n(m)},[n,t]);return R("div",{className:"conditional-formatting-rules",children:[h(hi,{onDragStart:mt.startDragging,onDragEnd:a,children:h(ui,{droppableId:"droppable-custom-columns",children:(c,d)=>R("div",{ref:c.innerRef,...c.droppableProps,className:G("droppable-container",{dragging:d.draggingFromThisWith}),children:[t.length===0&&h("div",{className:"text-muted pl-2",children:"No formats defined"}),t.map((u,m)=>h(lr,{draggableId:`${m}-${u.type}`,index:m,disableInteractiveElementBlocking:!0,children:(p,g)=>h("div",{role:"menuitem",tabIndex:0,onClick:f=>i(f,u,m),className:G("draggable-container",{dragging:g.isDragging}),ref:p.innerRef,...p.draggableProps,children:h("div",{className:"conditional-formatting-list-item",children:R("div",{className:"formatting-item",children:[h("div",{className:"rule-icon",children:h("span",{className:"rule-icon-bg",style:{backgroundColor:si(u.config.style),color:oi(u.config.style)},children:u.type===sn.ROWS?"row":"col"})}),h("div",{className:"rule-title",children:Xp(u.config)}),h(K,{kind:"ghost",className:"ml-1 px-2",onClick:f=>r(f,u,m),icon:bn,tooltip:"Delete rule"}),R("button",{type:"button",className:"btn btn-link btn-link-icon px-2 btn-drag-handle",onClick:l,...p.dragHandleProps,children:[h(Be,{children:"Drag to re-order"}),h(Q,{icon:pi})]})]})})})},`${m}-${u.type}`)),c.placeholder]})})}),h("hr",{}),h(K,{kind:"ghost",onClick:s,icon:Vs,children:"Add New Rule"})]})}const Ms=ne.module("ConditionEditor"),Qp=()=>{},jp=[De.IS_EQUAL,De.IS_NOT_EQUAL,De.IS_BETWEEN,De.GREATER_THAN,De.GREATER_THAN_OR_EQUAL,De.LESS_THAN,De.LESS_THAN_OR_EQUAL,De.IS_NULL,De.IS_NOT_NULL].map(e=>h("option",{value:e,children:dm(e)},e)),Zp=[wt.IS_EXACTLY,wt.IS_NOT_EXACTLY,wt.CONTAINS,wt.DOES_NOT_CONTAIN,wt.STARTS_WITH,wt.ENDS_WITH,wt.IS_NULL,wt.IS_NOT_NULL].map(e=>h("option",{value:e,children:um(e)},e)),Jp=[rt.IS_EXACTLY,rt.IS_NOT_EXACTLY,rt.IS_BEFORE,rt.IS_BEFORE_OR_EQUAL,rt.IS_AFTER,rt.IS_AFTER_OR_EQUAL,rt.IS_NULL,rt.IS_NOT_NULL].map(e=>h("option",{value:e,children:hm(e)},e)),eg=[ro.IS_TRUE,ro.IS_FALSE,ro.IS_NULL,ro.IS_NOT_NULL].map(e=>h("option",{value:e,children:mm(e)},e)),tg=[ds.IS_EQUAL,ds.IS_NOT_EQUAL,ds.IS_NULL,ds.IS_NOT_NULL].map(e=>h("option",{value:e,children:pm(e)},e));function ng(e,t,n,s){return e===De.IS_NULL||e===De.IS_NOT_NULL||e===De.IS_BETWEEN&&n!=null&&n!==""&&!Number.isNaN(Number.parseFloat(n))&&s!=null&&s!==""&&!Number.isNaN(Number.parseFloat(s))||e!==De.IS_BETWEEN&&t!==void 0&&t!==""&&!Number.isNaN(Number.parseFloat(t))}function sg(e,t,n,s,o,i,r){switch(e){case De.IS_EQUAL:case De.IS_NOT_EQUAL:case De.GREATER_THAN:case De.GREATER_THAN_OR_EQUAL:case De.LESS_THAN:case De.LESS_THAN_OR_EQUAL:return h("input",{type:"number",className:"form-control",placeholder:"Enter value",value:o!=null?o:"",onChange:t});case De.IS_BETWEEN:return R("div",{className:"d-flex flex-row",children:[h("input",{type:"number",className:"form-control d-flex mr-2",placeholder:"Start value",value:i!=null?i:"",onChange:n}),h("input",{type:"number",className:"form-control d-flex",placeholder:"End value",value:r!=null?r:"",onChange:s})]});case De.IS_NULL:case De.IS_NOT_NULL:return null}}function og(e,t,n){switch(e){case wt.IS_NULL:case wt.IS_NOT_NULL:return null;default:return h("input",{type:"text",className:"form-control",placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function ig(e,t,n){switch(e){case rt.IS_NULL:case rt.IS_NOT_NULL:return null;default:return h("input",{type:"text",className:"form-control",placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function rg(){return null}function lg(e,t,n){switch(e){case ds.IS_NULL:case ds.IS_NOT_NULL:return null;default:return h("input",{type:"text",className:"form-control",maxLength:1,placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function nc(e){const{column:t,config:n,onChange:s=Qp}=e,o=t.type,[i,r]=T.exports.useState(o),[l,a]=T.exports.useState(n.condition),[c,d]=T.exports.useState(n.value),[u,m]=T.exports.useState(n.start),[p,g]=T.exports.useState(n.end);o!==i&&(a(Oa(o)),d(void 0),m(void 0),g(void 0),r(o));const f=T.exports.useMemo(()=>{if(o===void 0)return[];if(A.isNumberType(o))return jp;if(A.isCharType(o))return tg;if(A.isStringType(o))return Zp;if(A.isDateType(o))return Jp;if(A.isBooleanType(o))return eg},[o]),C=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleConditionChange",E),a(E)},[]),w=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleValueChange",E),d(E)},[]),S=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleStartValueChange",E),m(E)},[]),b=T.exports.useCallback(v=>{const{value:E}=v.target;Ms.debug("handleEndValueChange",E),g(E)},[]);T.exports.useEffect(function(){let E=!0;l===void 0&&(Ms.debug("Unable to create formatting rule. Condition is not selected."),E=!1),A.isNumberType(t.type)&&!ng(l,c,u,p)&&(Ms.debug("Unable to create formatting rule. Invalid value",c),E=!1),s({condition:l,value:c,start:u,end:p},E)},[s,t.type,l,c,u,p]);const y=T.exports.useMemo(()=>{if(o===void 0)return null;if(A.isNumberType(o))return sg(l,w,S,b,c,u,p);if(A.isCharType(o))return lg(l,w,c);if(A.isStringType(o))return og(l,w,c);if(A.isDateType(o))return ig(l,w,c);if(A.isBooleanType(o))return rg()},[o,l,c,u,p,w,S,b]);return R("div",{className:"condition-editor mb-2",children:[h("select",{value:l,id:"condition-select",className:"custom-select mb-2",onChange:C,children:f}),y]})}const ag=ne.module("StyleEditor"),cg="#fcfcfa",dg="#f0f0ee",ug="#1a171a",hg=200,mg=()=>{};function sc(e){var b,y;const{config:t,onChange:n=mg}=e,[s,o]=T.exports.useState(t.type),[i,r]=T.exports.useState((y=(b=t.customConfig)==null?void 0:b.background)!=null?y:cg),[l,a]=T.exports.useState(!1),[c,d]=T.exports.useState(hg),u=T.exports.useRef(null),m=T.exports.useCallback(v=>{const{value:E}=v.target;ag.debug("handleBackgroundChange",E),r(E)},[]),p=T.exports.useCallback(()=>{l&&a(!1)},[l]),g=T.exports.useCallback(()=>{l||C(),a(!l)},[l]),f=T.exports.useMemo(()=>[$t.NO_FORMATTING,$t.POSITIVE,$t.NEGATIVE,$t.WARN,$t.NEUTRAL,$t.ACCENT_1,$t.ACCENT_2,$t.CUSTOM],[]);function C(){u.current&&d(u.current.getBoundingClientRect().width)}T.exports.useEffect(function(){n({type:s,customConfig:{color:fi.isDark(i)?dg:ug,background:i}})},[n,s,i]);const w=T.exports.useCallback(()=>{const v=[];for(let E=0;E<f.length;E+=1){const M=f[E],F=`option-${E}-${M}`;v.push(R(K,{kind:"inline",className:"style-option-btn",onClick:()=>{o(M),a(!1)},style:{color:oi({type:M}),background:si({type:M})},children:[M===s&&h(Q,{icon:$n,className:"mr-2"}),M!==s&&h("span",{className:"mr-4"}),vl(M)]},F))}return v},[f,s]),S=T.exports.useCallback(()=>h("div",{className:"style-menu-container",role:"presentation",style:{width:c},children:h("div",{className:"style-options",children:w()})}),[c,w]);return R("div",{className:"style-editor",children:[R("div",{className:"mb-2",ref:u,children:[h("label",{className:"mb-0",children:"Style"}),R(K,{kind:"inline",className:"cs-dropdown",style:{color:oi({type:s}),background:si({type:s})},onClick:g,children:[vl(s),h("span",{children:h(Q,{icon:Cr,className:"cs-caret"})}),h(Kn,{isShown:l,actions:{menuElement:S()},popperOptions:{placement:"bottom-start"},popperClassName:"style-dropdown-menu",onMenuClosed:p,menuStyle:{maxWidth:"100rem"}})]})]}),s===$t.CUSTOM&&R("div",{className:"mb-2",children:[h("label",{className:"mb-0",children:"Background"}),h("input",{type:"color",value:i,className:"custom-select color-select",onChange:m})]})]})}const so=ne.module("ColumnFormatEditor"),pg=()=>{};function gg(e){const{type:t,name:n}=e[0];return{column:{type:t,name:n},style:La(),...vi(t)}}function fg(e){var C;const{columns:t,config:n=gg(t),onChange:s=pg}=e,[o,i]=T.exports.useState((C=t.find(w=>w.name===n.column.name&&w.type===n.column.type))!=null?C:t[0]),[r,l]=T.exports.useState(ka(n)),[a,c]=T.exports.useState(!1),[d,u]=T.exports.useState(n.style),m=T.exports.useCallback(w=>{const S=t.find(({name:b})=>b===w);S!==void 0?(i(S),o.type!==S.type&&(l(vi(S.type)),c(!1))):so.error(`Column ${w} not found.`)},[t,o]),p=T.exports.useCallback((w,S)=>{so.debug("handleConditionChange",w,S),l(w),c(S)},[]),g=T.exports.useCallback(w=>{so.debug("handleStyleChange",w),u(w)},[]);T.exports.useEffect(function(){if(o===void 0){so.debug("Column is not selected, skip update.");return}if(d===void 0){so.debug("Style is not selected, skip update.");return}const{type:S,name:b}=o;s({column:{type:S,name:b},style:d,...r},a)},[s,o,d,r,a]);const f=t.map(({name:w})=>({title:w,value:w}));return R("div",{className:"conditional-rule-editor form",children:[R("div",{className:"mb-2",children:[h("label",{className:"mb-0",children:"Format Cell If"}),h(Bs,{defaultValue:o==null?void 0:o.name,options:f,inputPlaceholder:"Select a column",spellCheck:!1,onChange:m,searchPlaceholder:"Filter columns"})]}),o!==void 0&&R(Fe,{children:[h(nc,{column:o,config:r,onChange:p}),h(sc,{config:d,onChange:g})]})]})}const oo=ne.module("RowFormatEditor"),Cg=()=>{};function wg(e){const{type:t,name:n}=e[0];return{column:{type:t,name:n},style:La(),...vi(t)}}function Sg(e){var C;const{columns:t,config:n=wg(t),onChange:s=Cg}=e,[o,i]=T.exports.useState((C=t.find(w=>w.name===n.column.name&&w.type===n.column.type))!=null?C:t[0]),[r,l]=T.exports.useState(ka(n)),[a,c]=T.exports.useState(!1),[d,u]=T.exports.useState(n.style),m=T.exports.useCallback(w=>{const S=t.find(({name:b})=>b===w);S!==void 0?(i(S),o.type!==S.type&&(l(vi(S.type)),c(!1))):oo.error(`Column ${w} not found.`)},[t,o]),p=T.exports.useCallback((w,S)=>{oo.debug("handleConditionChange",w,S),l(w),c(S)},[]),g=T.exports.useCallback(w=>{oo.debug("handleStyleChange",w),u(w)},[]);T.exports.useEffect(function(){if(o===void 0){oo.debug("Column is not selected, skip update.");return}if(d===void 0){oo.debug("Style is not selected, skip update.");return}const{type:S,name:b}=o;s({column:{type:S,name:b},style:d,...r},a)},[s,o,d,r,a]);const f=t.map(({name:w})=>({title:w,value:w}));return R("div",{className:"conditional-rule-editor form",children:[R("div",{className:"mb-2",children:[h("label",{className:"mb-0",children:"Format Row If"}),h(Bs,{defaultValue:o==null?void 0:o.name,options:f,inputPlaceholder:"Select a column",spellCheck:!1,onChange:m,searchPlaceholder:"Filter columns"})]}),o!==void 0&&R(Fe,{children:[h(nc,{column:o,config:r,onChange:p}),h(sc,{config:d,onChange:g})]})]})}const Wi=ne.module("ConditionalFormatEditor"),$i=()=>{};function bg(e){switch(e){case sn.CONDITIONAL:return h(pp,{});case sn.ROWS:return h(gp,{})}}function vg(e){switch(e){case sn.CONDITIONAL:return"Conditional";case sn.ROWS:return"Rows"}}const Nl=[sn.CONDITIONAL,sn.ROWS];function Tg(e){var w;const{columns:t,onSave:n=$i,onUpdate:s=$i,onCancel:o=$i,rule:i}=e,r=t.filter(Dm),[l,a]=T.exports.useState((w=i==null?void 0:i.type)!=null?w:Nl[0]),[c,d]=T.exports.useState(i),[u,m]=T.exports.useState(!1),p=T.exports.useCallback(()=>{o()},[o]),g=T.exports.useCallback(()=>{if(c===void 0){Wi.error("Rule is not defined.");return}n(c)},[n,c]),f=T.exports.useCallback(S=>{Wi.debug("handleFormatterChange",S),a(S)},[]),C=T.exports.useCallback((S,b)=>{Wi.debug("handleRuleChange",S,b,l);const y={type:l,config:S};d(y),m(b),s(b?y:void 0)},[s,l]);return R("div",{className:"conditional-format-editor form",children:[R("div",{className:"mb-2",children:[h("label",{className:"mb-0",htmlFor:"formatter-select",children:"Select Formatter"}),h("div",{className:"formatter-list",children:Nl.map((S,b)=>h("div",{className:"formatter-type",children:R("button",{type:"button",className:G("btn","btn-icon","btn-formatter-type",{active:S===l}),"data-index":b,onClick:()=>f(S),children:[bg(S),vg(S)]})},S))})]}),l===sn.CONDITIONAL&&h(fg,{columns:r,config:c==null?void 0:c.config,onChange:C}),l===sn.ROWS&&h(Sg,{columns:r,config:c==null?void 0:c.config,onChange:C}),h("hr",{}),R("div",{className:"d-flex justify-content-end my-3",children:[h(K,{kind:"secondary",onClick:p,className:"mr-2",children:"Cancel"}),h(K,{kind:"primary",onClick:g,disabled:c===void 0||!u,children:"Done"})]})]})}function Eg({type:e}){switch(e){case I.VariableType.TABLE:case I.VariableType.TABLEMAP:case I.VariableType.TREETABLE:case I.VariableType.HIERARCHICALTABLE:return h(Q,{icon:wr});case I.VariableType.FIGURE:return h(Q,{icon:Zl});case I.VariableType.PANDAS:return h(Q,{icon:Su});default:return h(Q,{icon:tu})}}class oc extends T.exports.Component{constructor(t){super(t),this.container=null}componentDidMount(){this.colorize()}colorize(){const{children:t}=this.props;this.container&&t!=null&&Cn.colorizeElement(this.container,{theme:"dh-dark"})}render(){const{children:t,language:n}=this.props;return h("div",{children:h("div",{"data-lang":n,ref:s=>{this.container=s},style:{pointerEvents:"none"},children:t})})}}class yg{static get LANGUAGE_MAP(){return new Map([["python","Python"],["groovy","Groovy"],["scala","Scala"]])}}class _s{static hasComment(t){return t.comment!==void 0}static hasPattern(t){return t.pattern!==void 0}static hasOp(t){return t.op!==void 0}static parseArguments(t){return t==null||!(typeof t=="string"||t instanceof String)?[]:$c.parse(t).filter(n=>!this.hasComment(n)).map(n=>this.hasPattern(n)?n.pattern:this.hasOp(n)?n.op:`${n}`)}static formatTimestamp(t){if(t==null||!(t instanceof Date))return null;const n=`${t.getHours()}`.padStart(2,"0"),s=`${t.getMinutes()}`.padStart(2,"0"),o=`${t.getSeconds()}`.padStart(2,"0"),i=`${t.getMilliseconds()}`.padStart(3,"0");return`${n}:${s}:${o}.${i}`}static isTableType(t){return t===I.VariableType.TABLE||t===I.VariableType.TREETABLE||t===I.VariableType.HIERARCHICALTABLE}static isWidgetType(t){return t===I.VariableType.FIGURE||t===I.VariableType.OTHERWIDGET||t===I.VariableType.PANDAS}static isOpenableType(t){return _s.isTableType(t)||_s.isWidgetType(t)}static isFigureType(t){return t===I.VariableType.FIGURE}static isPandas(t){return t===I.VariableType.PANDAS}}function ic({children:e}){return R("div",{className:"console-history-item-result",children:[h("div",{className:"console-history-gutter",children:"-"}),h("div",{className:"console-history-content",children:e})]})}ic.propTypes={children:D.exports.node.isRequired};class rc extends T.exports.Component{constructor(t){super(t),this.updateElapsed=this.updateElapsed.bind(this),this.startTime=Date.now(),this.state={elapsed:0}}componentDidMount(){this.timer=setInterval(this.updateElapsed,1e3)}componentWillUnmount(){this.timer&&clearInterval(this.timer),this.timer=void 0}updateElapsed(){this.setState({elapsed:Math.round((Date.now()-this.startTime)/1e3)})}render(){const{disabled:t,onCancelClick:n}=this.props,{elapsed:s}=this.state;return h("div",{className:G("console-history-result-in-progress",{disabled:t}),children:R("span",{className:"badge",children:[h(Ht,{}),"\xA0Running... ",Jt.formatElapsedTime(s),"\xA0",h(K,{className:"console-history-result-in-progress-cancel",kind:"ghost",icon:mo,tooltip:"Cancel",onClick:n,disabled:t})]})})}}rc.defaultProps={disabled:!1};const or=class extends T.exports.PureComponent{constructor(e){super(e),this.handleKeyPress=this.handleKeyPress.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleToggleError=this.handleToggleError.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.mouseX=null,this.mouseY=null,this.isClicking=!1,this.state={isExpanded:!1,isTriggerHovered:!1}}handleKeyPress(e){switch(e.key){case"Enter":case" ":this.handleToggleError(),e.stopPropagation(),e.preventDefault();break}}handleMouseDown(e){this.mouseX=e.clientX,this.mouseY=e.clientY,this.isClicking=!0}handleMouseMove(e){this.mouseX!=null&&this.mouseY!=null?(Math.abs(e.clientX-this.mouseX)>=or.mouseDragThreshold||Math.abs(e.clientY-this.mouseY)>=or.mouseDragThreshold)&&(this.isClicking=!1):this.isClicking&&(this.isClicking=!1)}handleMouseUp(e){this.isClicking&&!e.shiftKey&&!e.metaKey&&!e.altKey&&this.handleToggleError(),this.mouseX=null,this.mouseY=null,this.isClicking=!1}handleToggleError(){this.setState(e=>({isExpanded:!e.isExpanded}))}handleMouseEnter(){this.setState({isTriggerHovered:!0})}handleMouseLeave(){this.setState({isTriggerHovered:!1})}render(){const{isExpanded:e,isTriggerHovered:t}=this.state,{message:n}=this.props;O(n);const s=n.indexOf(`
|
|
15
15
|
`),o=s>-1;let i=n;o&&(i=n.slice(0,s));const r=n.slice(s),l=t?"error-btn-link error-btn-link--active":"error-btn-link";return R("div",{className:G("error-message",{expanded:e}),children:[o&&R(Fe,{children:[h("div",{className:"error-gutter",children:h("button",{type:"button",onClick:this.handleToggleError,className:l,tabIndex:-1,children:h(Q,{icon:e?Gn:sa,transform:"left-3"})})}),R("div",{className:"error-content",children:[h("div",{className:"console-error-text-trigger",role:"button",tabIndex:0,onKeyPress:this.handleKeyPress,onMouseDown:this.handleMouseDown,onMouseMove:this.handleMouseMove,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,onMouseUp:this.handleMouseUp,children:i}),e?r:""]})]}),!o&&h("div",{className:"error-content",children:h("div",{className:"console-error-text",children:i})})]},"error")}};let Ur=or;Ur.defaultProps={message:""};Ur.mouseDragThreshold=5;const Fl=ne.module("ConsoleHistoryItem");class lc extends T.exports.PureComponent{constructor(t){super(t),this.handleCancelClick=this.handleCancelClick.bind(this),this.handleObjectClick=this.handleObjectClick.bind(this)}handleObjectClick(t){Fl.debug("handleObjectClick",t);const{openObject:n}=this.props;n(t)}handleCancelClick(){const{item:t}=this.props;t!=null&&t.cancelResult&&(Fl.debug(`Cancelling command: ${t.command}`),t.cancelResult())}render(){var d;const{disabled:t,item:n,language:s}=this.props,{disabledObjects:o,result:i}=n;let r=null;n.command!=null&&n.command!==""&&(r=R("div",{className:"console-history-item-command",children:[h("div",{className:"console-history-gutter",children:">"}),h("div",{className:"console-history-content",children:h(oc,{language:s,children:n.command})})]}));const l=[];let a=!1;if(i){const{error:u,message:m,changes:p}=i;if(p){const{created:g,updated:f}=p;[...g,...f].forEach(C=>{a=!0;const{title:w}=C,S=`${w}`,b=t===void 0||t||(o!=null?o:[]).indexOf(S)>=0,y=h(K,{kind:"primary",onClick:()=>this.handleObjectClick(C),className:"btn-console-object",disabled:b,icon:h(Eg,{type:C.type}),children:w},S);l.push(y)})}if(u!=null&&n.command==null){let g=`${(d=u.message)!=null?d:u}`;g||(g=u);const f=h(Ur,{message:g},"result-error");l.push(f)}if(m!==void 0&&m!==""){const g=h("div",{className:"log-message",children:m},"log-message");l.push(g)}}else{a=!0;const u=h(rc,{onCancelClick:this.handleCancelClick,disabled:t},"in_progress");l.push(u)}let c=null;return l.length>0&&(c=h(ic,{children:l})),R("div",{className:G("console-command-result",{"console-result-buttons":a}),children:[r,c]})}}lc.defaultProps={disabled:!1};const ac=class extends T.exports.Component{static itemKey(e,t){return`${e}.${t.command}.${t.result&&t.result.message}.${t.result&&t.result.error}`}render(){const{disabled:e,items:t,language:n,openObject:s}=this.props,o=[];for(let i=0;i<t.length;i+=1){const r=t[i],l=h(lc,{disabled:e,item:r,openObject:s,language:n},ac.itemKey(i,r));o.push(l)}return h("div",{className:"container-fluid console-history",children:o})}};let cc=ac;cc.defaultProps={disabled:!1};const Rg={name:"Console",CLEAR:Ie.createAndAdd({id:"CONSOLE.CLEAR",name:"Clear",shortcut:[oe.CTRL,ae.L],macShortcut:[oe.CTRL,ae.C]}),FOCUS_HISTORY:Ie.createAndAdd({id:"CONSOLE.FOCUS_HISTORY",name:"Focus History",shortcut:[oe.CTRL,ae.H],macShortcut:[oe.CTRL,oe.OPTION,ae.H]})},Ig={name:"Command History",FOCUS_HISTORY:Ie.createAndAdd({id:"COMMAND_HISTORY.FOCUS_HISTORY",name:"Focus History Search",shortcut:[oe.CTRL,ae.H],macShortcut:[oe.CTRL,oe.OPTION,ae.H]}),SEND_TO_CONSOLE:Ie.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_CONSOLE",name:"Send to Console",shortcut:[ae.ENTER],macShortcut:[ae.ENTER]}),SEND_TO_NOTEBOOK:Ie.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_NOTEBOOK",name:"Send to Notebook",shortcut:[oe.CTRL,ae.ENTER],macShortcut:[oe.CMD,ae.ENTER]}),RUN:Ie.createAndAdd({id:"COMMAND_HISTORY.RUN",name:"Run",shortcut:[oe.ALT,ae.R],macShortcut:[oe.OPTION,ae.R]})},Mg={name:"Notebook",RUN:Ie.createAndAdd({id:"NOTEBOOK.RUN",name:"Run",shortcut:[oe.ALT,ae.R],macShortcut:[oe.OPTION,ae.R]}),RUN_SELECTED:Ie.createAndAdd({id:"NOTEBOOK.RUN_SELECTED",name:"Run Selected",shortcut:[oe.ALT,oe.SHIFT,ae.R],macShortcut:[oe.OPTION,oe.SHIFT,ae.R]}),FIND:Ie.createAndAdd({id:"NOTEBOOK.FIND",name:"Find",shortcut:[oe.CTRL,ae.F],macShortcut:[oe.CMD,ae.F],isEditable:!1}),MINIMAP:Ie.createAndAdd({id:"NOTEBOOK.MINIMAP",name:"Show Minimap",shortcut:[oe.ALT,ae.M],macShortcut:[oe.OPTION,ae.M]}),WORDWRAP:Ie.createAndAdd({id:"NOTEBOOK.WORDWRAP",name:"Word Wrap",shortcut:[oe.ALT,ae.Z],macShortcut:[oe.OPTION,ae.Z]})},hs={CONSOLE:Rg,COMMAND_HISTORY:Ig,NOTEBOOK:Mg},Ze=Object.freeze({FATAL:"FATAL",STDERR:"STDERR",ERROR:"ERROR",WARN:"WARN",STDOUT:"STDOUT",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}),Dg="#2d2a2e",Ng="#fcfcfa",Fg="#fcd65b",xg="#b2b1b2",Ag="#9edc6f",Og="#76d9e4",kg="#f95d84",Lg="#aa9af4",Pg="#f95d84",Hg="#fcfcfa",_g="#7c7b7c",ce={"error-foreground":"#f95d84",background:Dg,foreground:Ng,"line-height":"19px",string:Fg,"string-delim":"#929192",delimiter:xg,predefined:Ag,keyword:Og,storage:kg,number:Lg,operator:Pg,identifier:Hg,"namespace-identifier":"#f95d84","identifier-js":"#fcd65b",comment:_g,"input-option-active-border":"#929192","focus-border":"rgba(72, 120, 234, 0.85)","input-background":"#555356","input-foreground":"#f0f0ee","input-border":"#929192","editor-line-number-foreground":"#929192","editor-selection-background":"#676368","editor-line-highlight-bg":"#373438","context-menu-background":"#555356","context-menu-foreground":"#f0f0ee","menu-selection-background":"#4878ea","log-date":"#929192","log-error":"#f95d84","log-info":"#76d9e4","log-stdout":"#f0f0ee","log-warn":"#fcd65b","log-debug":"#aa9af4","log-trace":"#9edc6f","editor-find-match-background":"#3c5595","editor-find-match-highlight-background":"#343e5d","editor-widget-background":"#403e41","input-option-active-background":"#4878ea","input-option-active-foreground":"#f0f0ee","editor-suggest-widget-background":"#403e41","editor-suggest-widget-border":"#5b5a5c","editor-suggest-widget-foreground":"#f0f0ee","editor-suggest-widget-selected-background":"#41475a","editor-suggest-widget-highlightForeground":"#4878ea","list-hover-background":"#555356"},Vg="python",Ug={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,action:{indentAction:1}}],folding:{offSide:!0,markers:{start:/^\s*#region\b/,end:/^\s*#endregion\b/}}},Bg={keywords:["and","del","from","not","while","as","elif","global","or","with","assert","else","if","pass","yield","break","except","import","print","exec","in","raise","continue","finally","is","return","for","try",":","=","isinstance","__debug__"],storage:["class","def","async","lambda"],operators:["+","-","*","**","/","//","%","<<",">>","&","|","^","~","<",">","<=",">=","==","!=","<>","+=","-=","*=","/","//=","%=","&=","|=","^=",">>=","<<=","**="],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~&|+\-*/^%]+/,delimiters:/[;=.@:,`]/,escapes:/\\(?:[abfnrtv\\"'\n\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{\w+\})/,rawpre:/(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,strpre:/(?:[buBU])/,tokenizer:{root:[[/@strpre?("""|''')/,{token:"string.delim",bracket:"@open",next:"@mstring.$1"}],[/@strpre?"([^"\\]|\\.)*$/,"string.invalid"],[/@strpre?'([^'\\]|\\.)*$/,"string.invalid"],[/@strpre?(["])/,{token:"string.delim",bracket:"@open",next:"@sstring.$1",nextEmbedded:"deephavenDb"}],[/@strpre?(["'])/,{token:"string.delim",bracket:"@open",next:"@string.$1"}],[/@rawpre("""|''')/,{token:"string.delim",bracket:"@open",next:"@mrawstring.$1"}],[/@rawpre"([^"\\]|\\.)*$/,"string.invalid"],[/@rawpre'([^'\\]|\\.)*$/,"string.invalid"],[/@rawpre(["'])/,{token:"string.delim",bracket:"@open",next:"@rawstring.$1"}],[/__[\w$]*/,"predefined"],[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@storage":"storage","@default":"identifier"}}],[/[A-Z][\w]*/,{cases:{"~[A-Z0-9_]+":"constructor.identifier","@default":"namespace.identifier"}}],{include:"@whitespace"},[/[{}()[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywords":"keyword","@operators":"operator","@default":""}}],[/\d*\.\d+([eE][-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+[lL]?/,"number.hex"],[/0[bB][0-1]+[lL]?/,"number.binary"],[/(0[oO][0-7]+|0[0-7]+)[lL]?/,"number.octal"],[/(0|[1-9]\d*)[lL]?/,"number"],[":",{token:"keyword",bracket:"@open"}],[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}]],comment:[[/[^/*]+/,"comment"],[/\/\*/,"comment","@push"],["\\*/","comment","@pop"],[/[/*]/,"comment"]],mstring:[{include:"@strcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],sstring:[{include:"@strcontent"},[/["]/,{token:"string.delim",bracket:"@close",next:"@pop",nextEmbedded:"@pop"}],[/./,"string.invalid"]],string:[{include:"@strcontent"},[/[']/,{token:"string.delim",bracket:"@close",next:"@pop"}],[/./,"string.invalid"]],strcontent:[[/[^\\"']+/,"string"],[/\\$/,"string.escape"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"]],mrawstring:[{include:"@rawstrcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],rawstring:[{include:"@rawstrcontent"},[/["']/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/./,"string.invalid"]],rawstrcontent:[[/[^\\"']+/,"string"],[/\\["']/,"string"],[/\\u[0-9A-Fa-f]{4}/,"string.escape"],[/\\/,"string"]],whitespace:[[/\s+/,"white"],[/(^#.*$)/,"comment"],[/'''/,"string","@endDocString"],[/"""/,"string","@endDblDocString"]],endDocString:[[/[^']+/,"string"],[/\\'/,"string"],[/'''/,"string","@popall"],[/'/,"string"]],endDblDocString:[[/[^"]+/,"string"],[/\\"/,"string"],[/"""/,"string","@popall"],[/"/,"string"]]}},Gg={id:Vg,conf:Ug,language:Bg},zg="groovy",Wg={comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,action:{indentAction:1}}],folding:{offSide:!0,markers:{start:/^\s*#region\b/,end:/^\s*#endregion\b/}}},$g={keywords:["and","del","from","not","while","as","elif","global","or","with","assert","else","if","pass","yield","break","except","import","print","println","class","exec","in","raise","continue","finally","is","return","def","for","lambda","try",":","=","isinstance","__debug__"],operators:["+","-","*","**","/","//","%","<<",">>","&","|","^","~","<",">","<=",">=","==","!=","<>","+=","-=","*=","/","//=","%=","&=","|=","^=",">>=","<<=","**="],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[=><!~&|+\-*/^%]+/,delimiters:/[;=.@:,`]/,escapes:/\\(?:[abfnrtv\\"'\n\r]|x[0-9A-Fa-f]{2}|[0-7]{3}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8}|N\{\w+\})/,rawpre:/(?:[rR]|ur|Ur|uR|UR|br|Br|bR|BR)/,strpre:/(?:[buBU])/,tokenizer:{root:[[/@strpre?("""|''')/,{token:"string.delim",bracket:"@open",next:"@mstring.$1"}],[/@strpre?"([^"\\]|\\.)*$/,"string.invalid"],[/@strpre?'([^'\\]|\\.)*$/,"string.invalid"],[/@strpre?(["])/,{token:"string.delim",bracket:"@open",next:"@sstring.$1",nextEmbedded:"deephavenDb"}],[/@strpre?(["'])/,{token:"string.delim",bracket:"@open",next:"@string.$1"}],[/@rawpre("""|''')/,{token:"string.delim",bracket:"@open",next:"@mrawstring.$1"}],[/@rawpre"([^"\\]|\\.)*$/,"string.invalid"],[/@rawpre'([^'\\]|\\.)*$/,"string.invalid"],[/@rawpre(["'])/,{token:"string.delim",bracket:"@open",next:"@rawstring.$1"}],[/__[\w$]*/,"predefined"],[/[a-z_$][\w$]*/,{cases:{"@keywords":"keyword","@default":"identifier"}}],[/[A-Z][\w]*/,{cases:{"~[A-Z0-9_]+":"constructor.identifier","@default":"namespace.identifier"}}],{include:"@whitespace"},[/[{}()[\]]/,"@brackets"],[/@symbols/,{cases:{"@keywords":"keyword","@operators":"operator","@default":""}}],[/\d*\.\d+([eE][-+]?\d+)?/,"number.float"],[/0[xX][0-9a-fA-F]+[lL]?/,"number.hex"],[/0[bB][0-1]+[lL]?/,"number.binary"],[/(0[oO][0-7]+|0[0-7]+)[lL]?/,"number.octal"],[/(0|[1-9]\d*)[lL]?/,"number"],[":",{token:"keyword",bracket:"@open"}],[/@delimiters/,{cases:{"@keywords":"keyword","@default":"delimiter"}}]],mstring:[{include:"@strcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],sstring:[{include:"@strcontent"},[/["]/,{token:"string.delim",bracket:"@close",next:"@pop",nextEmbedded:"@pop"}],[/./,"string.invalid"]],string:[{include:"@strcontent"},[/[']/,{token:"string.delim",bracket:"@close",next:"@pop"}],[/./,"string.invalid"]],strcontent:[[/[^\\"']+/,"string"],[/\\$/,"string.escape"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"]],mrawstring:[{include:"@rawstrcontent"},[/"""|'''/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/["']/,"string"],[/./,"string.invalid"]],rawstring:[{include:"@rawstrcontent"},[/["']/,{cases:{"$#==$S2":{token:"string.delim",bracket:"@close",next:"@pop"},"@default":{token:"string"}}}],[/./,"string.invalid"]],rawstrcontent:[[/[^\\"']+/,"string"],[/\\["']/,"string"],[/\\u[0-9A-Fa-f]{4}/,"string.escape"],[/\\/,"string"]],whitespace:[[/[ \t\r\n]+/,""],[/\/\*\*(?!\/)/,"comment.doc","@doccomment"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^/*]+/,"comment"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],doccomment:[[/[^/*]+/,"comment.doc"],[/\*\//,"comment.doc","@pop"],[/[/*]/,"comment.doc"]]}},qg={id:zg,conf:Wg,language:$g},Kg="scala",Xg={wordPattern:/(unary_[@~!#%^&*()\-=+\\|:<>/?]+)|([a-zA-Z_$][\w$]*?_=)|(`[^`]+`)|([a-zA-Z_$][\w$]*)/g,comments:{lineComment:"//",blockComment:["/*","*/"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],folding:{markers:{start:/^\s*\/\/\s*(?:(?:#?region\b)|(?:<editor-fold\b))/,end:/^\s*\/\/\s*(?:(?:#?endregion\b)|(?:<\/editor-fold>))/}}},Yg={keywords:["asInstanceOf","catch","class","classOf","def","do","else","extends","finally","for","foreach","forSome","if","import","isInstanceOf","macro","match","new","object","package","return","throw","trait","try","type","until","val","var","while","with","yield","given","enum","then"],softKeywords:["as","export","extension","end","derives","on"],constants:["true","false","null","this","super"],modifiers:["abstract","final","implicit","lazy","override","private","protected","sealed"],softModifiers:["inline","opaque","open","transparent","using"],name:/(?:[a-z_$][\w$]*|`[^`]+`)/,type:/(?:[A-Z][\w$]*)/,symbols:/[=><!~?:&|+\-*/^\\%@#]+/,digits:/\d+(_+\d+)*/,hexdigits:/[[0-9a-fA-F]+(_+[0-9a-fA-F]+)*/,escapes:/\\(?:[btnfr\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,fstring_conv:/[bBhHsScCdoxXeEfgGaAt]|[Tn](?:[HIklMSLNpzZsQ]|[BbhAaCYyjmde]|[RTrDFC])/,tokenizer:{root:[[/\braw"""/,{token:"string.quote",bracket:"@open",next:"@rawstringt"}],[/\braw"/,{token:"string.quote",bracket:"@open",next:"@rawstring"}],[/\bs"""/,{token:"string.quote",bracket:"@open",next:"@sstringt"}],[/\bs"/,{token:"string.quote",bracket:"@open",next:"@sstring"}],[/\bf""""/,{token:"string.quote",bracket:"@open",next:"@fstringt"}],[/\bf"/,{token:"string.quote",bracket:"@open",next:"@fstring"}],[/"""/,{token:"string.quote",bracket:"@open",next:"@stringt"}],[/"/,{token:"string.quote",bracket:"@open",next:"@string"}],[/(@digits)[eE]([-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/(@digits)\.(@digits)([eE][-+]?(@digits))?[fFdD]?/,"number.float","@allowMethod"],[/0[xX](@hexdigits)[Ll]?/,"number.hex","@allowMethod"],[/(@digits)[fFdD]/,"number.float","@allowMethod"],[/(@digits)[lL]?/,"number","@allowMethod"],[/\b_\*/,"key"],[/\b(_)\b/,"keyword","@allowMethod"],[/\bimport\b/,"keyword","@import"],[/\b(case)([ \t]+)(class)\b/,["keyword.modifier","white","keyword"]],[/\bcase\b/,"keyword","@case"],[/\bva[lr]\b/,"keyword","@vardef"],[/\b(def)([ \t]+)((?:unary_)?@symbols|@name(?:_=)|@name)/,["keyword","white","identifier"]],[/@name(?=[ \t]*:(?!:))/,"variable"],[/(\.)(@name|@symbols)/,[{token:"operator"},{token:"@rematch",next:"@allowMethod"}]],[/([{(])(\s*)(@name(?=\s*=>))/,["@brackets","white","variable"]],[/@name/,{cases:{"@keywords":"keyword","@softKeywords":"keyword","@modifiers":"keyword.modifier","@softModifiers":"keyword.modifier","@constants":{token:"constant",next:"@allowMethod"},"@default":{token:"identifier",next:"@allowMethod"}}}],[/@type/,"type","@allowMethod"],{include:"@whitespace"},[/@[a-zA-Z_$][\w$]*(?:\.[a-zA-Z_$][\w$]*)*/,"annotation"],[/[{(]/,"@brackets"],[/[})]/,"@brackets","@allowMethod"],[/\[/,"operator.square"],[/](?!\s*(?:va[rl]|def|type)\b)/,"operator.square","@allowMethod"],[/]/,"operator.square"],[/([=-]>|<-|>:|<:|:>|<%)(?=[\s\w()[\]{},."'`])/,"keyword"],[/@symbols/,"operator"],[/[;,.]/,"delimiter"],[/'[a-zA-Z$][\w$]*(?!')/,"attribute.name"],[/'[^\\']'/,"string","@allowMethod"],[/(')(@escapes)(')/,[{token:"string"},{token:"string.escape"},{token:"string",next:"@allowMethod"}]],[/'/,"string.invalid"]],import:[[/;/,"delimiter","@pop"],[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/@name|@type/,"type"],[/[(){}]/,"@brackets"],[/[[\]]/,"operator.square"],[/[.,]/,"delimiter"]],allowMethod:[[/^|$/,"","@pop"],[/[ \t]+/,"white"],[/[\n\r]+/,"white","@pop"],[/\/\*/,"comment","@comment"],[/(?==>[\s\w([{])/,"keyword","@pop"],[/(@name|@symbols)(?=[ \t]*[[({"'`]|[ \t]+(?:[+-]?\.?\d|\w))/,{cases:{"@keywords":{token:"keyword",next:"@pop"},"->|<-|>:|<:|<%":{token:"keyword",next:"@pop"},"@default":{token:"@rematch",next:"@pop"}}}],["","","@pop"]],comment:[[/[^/*]+/,"comment"],[/\/\*/,"comment","@push"],[/\*\//,"comment","@pop"],[/[/*]/,"comment"]],case:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword","@allowMethod"],[/\bif\b|=>/,"keyword","@pop"],[/`[^`]+`/,"identifier","@allowMethod"],[/@name/,"variable","@allowMethod"],[/:::?|\||@(?![a-z_$])/,"keyword"],{include:"@root"}],vardef:[[/\b_\*/,"key"],[/\b(_|true|false|null|this|super)\b/,"keyword"],[/@name/,"variable"],[/:::?|\||@(?![a-z_$])/,"keyword"],[/=|:(?!:)/,"operator","@pop"],[/$/,"white","@pop"],{include:"@root"}],string:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],stringt:[[/[^\\"\n\r]+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],fstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],fstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/%%/,"string"],[/(%)([-#+ 0,(])(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","keyword.modifier","number","metatag"]],[/(%)(\d+|\.\d+|\d+\.\d+)(@fstring_conv)/,["metatag","number","metatag"]],[/(%)([-#+ 0,(])(@fstring_conv)/,["metatag","keyword.modifier","metatag"]],[/(%)(@fstring_conv)/,["metatag","metatag"]],[/./,"string"]],sstring:[[/@escapes/,"string.escape"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],sstringt:[[/@escapes/,"string.escape"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/\$\$/,"string"],[/(\$)([a-z_]\w*)/,["operator","identifier"]],[/\$\{/,"operator","@interp"],[/./,"string"]],interp:[[/{/,"operator","@push"],[/}/,"operator","@pop"],{include:"@root"}],rawstring:[[/[^"]/,"string"],[/"/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}]],rawstringt:[[/[^"]/,"string"],[/"(?=""")/,"string"],[/"""/,{token:"string.quote",bracket:"@close",switchTo:"@allowMethod"}],[/"/,"string"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]]}},Qg={id:Kg,conf:Xg,language:Yg},jg="deephavenDb",Zg={comments:{lineComment:"#",blockComment:["'''","'''"]},brackets:[["{","}"],["[","]"],["(",")"]],autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string","comment"]}],surroundingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"'},{open:"'",close:"'"}],onEnterRules:[{beforeText:/^\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\s*$/,action:{indentAction:1}}],folding:{offSide:!0,markers:{start:/^\s*#region\b/,end:/^\s*#endregion\b/}}},Jg={tokenPostfix:".js",keywords:["boolean","break","byte","case","catch","char","class","const","continue","debugger","default","delete","do","double","else","enum","export","extends","false","final","finally","float","for","function","goto","if","implements","import","in","instanceof","int","interface","long","native","new","null","package","private","protected","public","return","short","static","super","switch","synchronized","this","throw","throws","transient","true","try","typeof","var","void","volatile","while","with"],builtins:["define","require","window","document","undefined"],operators:["=",">","<","!","~","?",":","==","<=",">=","!=","&&","||","++","--","+","-","*","/","&","|","^","%","<<",">>",">>>","+=","-=","*=","/=","&=","|=","^=","%=","<<=",">>=",">>>="],brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.bracket"},{open:"(",close:")",token:"delimiter.parenthesis"}],symbols:/[~!@#%\^&*-+=|\\:`<>.?\/]+/,escapes:/\\(?:[btnfr\\"']|[0-7][0-7]?|[0-3][0-7]{2})/,exponent:/[eE][\-+]?[0-9]+/,regexpctl:/[(){}\[\]\$\^|\-*+?\.]/,regexpesc:/\\(?:[bBdDfnrstvwWn0\\\/]|@regexpctl|c[A-Z]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4})/,tokenizer:{root:[[/([a-zA-Z_\$][\w\$]*)(\s*)(:?)/,{cases:{"$1@keywords":["keyword","white","delimiter"],$3:["key.identifier","white","delimiter"],"$1@builtins":["predefined.identifier","white","delimiter"],"@default":["identifier","white","delimiter"]}}],{include:"@whitespace"},[/\/(?=([^\\\/]|\\.)+\/)/,{token:"regexp.slash",bracket:"@open",next:"@regexp"}],[/[{}()\[\]]/,"@brackets"],[/[;,.]/,"delimiter"],[/@symbols/,{cases:{"@operators":"operator","@default":""}}],[/\d+\.\d*(@exponent)?/,"number.float"],[/\.\d+(@exponent)?/,"number.float"],[/\d+@exponent/,"number.float"],[/0[xX][\da-fA-F]+/,"number.hex"],[/0[0-7]+/,"number.octal"],[/\d+/,"number"],[/"([^"\\]|\\.)*$/,"string.invalid"],[/'([^'\\]|\\.)*$/,"string.invalid"],[/"/,"string",'@string."'],[/'/,"string","@string.'"]],whitespace:[[/[ \t\r\n]+/,"white"],[/\/\*/,"comment","@comment"],[/\/\/.*$/,"comment"]],comment:[[/[^\/*]+/,"comment"],[/\/\*/,"comment.invalid"],["\\*/","comment","@pop"],[/[\/*]/,"comment"]],string:[[/[^\\"']+/,"string"],[/@escapes/,"string.escape"],[/\\./,"string.escape.invalid"],[/["']/,{cases:{"$#==$S2":{token:"string",next:"@pop"},"@default":"string"}}]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,["@brackets.regexp.escape.control","regexp.escape.control","@brackets.regexp.escape.control"]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[{token:"@brackets.regexp.escape.control"},{token:"regexp.escape.control",next:"@regexrange"}]],[/(\()(\?:|\?=|\?!)/,["@brackets.regexp.escape.control","regexp.escape.control"]],[/[()]/,"@brackets.regexp.escape.control"],[/@regexpctl/,"regexp.escape.control"],[/[^\\\/]/,"regexp"],[/@regexpesc/,"regexp.escape"],[/\\\./,"regexp.invalid"],["/",{token:"regexp.slash",bracket:"@close"},"@pop"]],regexrange:[[/-/,"regexp.escape.control"],[/\^/,"regexp.invalid"],[/@regexpesc/,"regexp.escape"],[/[^\]]/,"regexp"],[/\]/,"@brackets.regexp.escape.control","@pop"]]}},ef={id:jg,conf:Zg,language:Jg},tf="log",nf={},sf={tokenizer:{root:[[/ FATAL[\s\S]*/,{token:"error",next:"@error"}],[/ ERROR[\s\S]*/,{token:"error",next:"@error"}],[/ STDERR[\s\S]*/,{token:"error",next:"@error"}],[/ STDOUT.*/,{token:"stdout",next:"@stdout"}],[/ INFO[\s\S]*/,{token:"info",next:"@info"}],[/ WARN.*/,{token:"warn",next:"@warn"}],[/ TRACE[\s\S]*/,{token:"trace",next:"@trace"}],[/ DEBUG[.\s\S]*/,{token:"debug",next:"@debug"}],[/^\d{2}:\d{2}:\d{2}.\d{3}/,"date"]],error:[{include:"@body"}],info:[{include:"@body"}],warn:[{include:"@body"}],stdout:[{include:"@body"}],trace:[{include:"@body"}],debug:[{include:"@body"}],body:[[/^\d{2}:\d{2}:\d{2}.\d{3}/,{token:"date",next:"@pop"}],[/[\s\S]*/,{token:"$S0"}]]}},of={id:tf,conf:nf,language:sf},Wt=ne.module("MonacoUtils");class _e{static init({getWorker:t}={}){Wt.debug("Initializing Monaco..."),t!==void 0&&_e.registerGetWorker(t);const{registerLanguages:n,removeHashtag:s}=_e,o=[{token:"",foreground:s(ce.foreground)},{token:"string",foreground:s(ce.string)},{token:"string.delim",foreground:s(ce["string-delim"])},{token:"keyword",foreground:s(ce.keyword)},{token:"identifier.js",foreground:s(ce["identifier-js"])},{token:"delimiter",foreground:s(ce.delimiter)},{token:"comment",foreground:s(ce.comment)},{token:"number",foreground:s(ce.number)},{token:"storage",foreground:s(ce.storage)},{token:"identifier",foreground:s(ce.identifier)},{token:"namespace.identifier",foreground:s(ce["namespace-identifier"])},{token:"operator",foreground:s(ce.operator)},{token:"predefined",foreground:s(ce.predefined)},{token:"error.log",foreground:ce["log-error"].substring(1)},{token:"warn.log",foreground:s(ce["log-warn"])},{token:"info.log",foreground:s(ce["log-info"])},{token:"stdout.log",foreground:s(ce["log-stdout"])},{token:"trace.log",foreground:s(ce["log-trace"])},{token:"debug.log",foreground:s(ce["log-debug"])},{token:"date.log",foreground:s(ce["log-date"])}],i={errorForeground:ce["error-foreground"],"inputOption.activeBorder":ce["input-option-active-border"],"editor.background":ce.background,"editor.foreground":ce.foreground,"editor.lineHighlightBackground":ce["editor-line-highlight-bg"],"editorLineNumber.foreground":ce["editor-line-number-foreground"],"editor.selectionBackground":ce["editor-selection-background"],"editor.findMatchBackground":ce["editor-find-match-background"],"editor.findMatchHighlightBackground":ce["editor-find-match-highlight-background"],"editorSuggestWidget.background":ce["editor-suggest-widget-background"],"editorSuggestWidget.border":ce["editor-suggest-widget-border"],"editorSuggestWidget.foreground":ce["editor-suggest-widget-foreground"],"editorSuggestWidget.selectedBackground":ce["editor-suggest-widget-selected-background"],"editorSuggestWidget.highlightForeground":ce["editor-suggest-widget-highlightForeground"],"list.hoverBackground":ce["list-hover-background"],"dropdown.background":ce["context-menu-background"],"dropdown.foreground":ce["context-menu-foreground"],"menu.selectionBackground":ce["menu-selection-background"],"list.focusBackground":ce["menu-selection-background"],"editorWidget.background":ce["editor-widget-background"],"inputOption.activeBackground":ce["input-option-active-background"],"inputOption.activeForeground":ce["input-option-active-foreground"],focusBorder:ce["focus-border"],"input.background":ce["input-background"],"input.foreground":ce["input-foreground"],"input.border":ce["input-border"]};Cn.defineTheme("dh-dark",{base:"vs-dark",inherit:!0,rules:o,colors:i}),Wt.debug2("monaco theme: ",ce),Cn.setTheme("dh-dark"),n([ef,Gg,qg,of,Qg]),Wt.debug("Monaco initialized.")}static registerGetWorker(t){window.MonacoEnvironment={...window.MonacoEnvironment,getWorker:t}}static removeHashtag(t){return t.substring(1)}static registerLanguages(t){const n=t.map(({id:s})=>s);Ns.getLanguages().filter(({id:s})=>n.includes(s)).forEach(s=>{const o=s;Wt.debug2("Overriding default language loader:",o.id)}),t.forEach(s=>{_e.registerLanguage(s)})}static registerLanguage(t){Wt.debug2("Registering language: ",t.id),Ns.register(t),Ns.onLanguage(t.id,()=>{Ns.setLanguageConfiguration(t.id,t.conf),Ns.setMonarchTokensProvider(t.id,t.language)})}static setEOL(t,n=Cn.EndOfLineSequence.LF){var s;(s=t.getModel())==null||s.setEOL(n)}static openDocument(t,n){const s=t.getModel();O(s);const o={textDocument:{uri:`${s.uri}`,languageId:s.getLanguageId(),version:s.getVersionId(),text:s.getValue()}};return Wt.debug2("didOpenDocumentParams: ",o),n.openDocument(o),t.onDidChangeModelContent(r=>{const{changes:l,versionId:a}=r,c=[];for(let d=0;d<l.length;d+=1){const u=l[d],{range:m,rangeLength:p,text:g}=u,f={range:{start:{line:m.startLineNumber-1,character:m.startColumn-1},end:{line:m.endLineNumber-1,character:m.endColumn-1}},rangeLength:p,text:g};c.push(f)}if(c.length>0){const d={textDocument:{version:a,uri:`${s.uri}`},contentChanges:c};Wt.debug2("didChangeDocumentParams",d),n.changeDocument(d)}})}static closeDocument(t,n){const s=t.getModel();O(s);const o={textDocument:{uri:`${s.uri}`}};n.closeDocument(o)}static registerPasteHandler(t){t.onDidPaste(n=>{const s=/“|”/g,o=/\u200b/g,i=/\u00A0/g,r=t.getModel();O(r);const l=r.getValueInRange(n.range);(s.test(l)||o.test(l)||i.test(l))&&r.applyEdits([{range:n.range,text:l.replace(s,'"').replace(o,"").replace(i," ")}])})}static isMacPlatform(){const{platform:t}=window.navigator;return t.startsWith("Mac")}static removeConflictingKeybindings(t){const n=[{windows:"ctrl+D",mac:"meta+D"},{windows:"ctrl+H"}];try{n.forEach(s=>{_e.isMacPlatform()&&s.mac===""||!_e.isMacPlatform()&&s.windows===""||_e.removeKeybinding(t,_e.isMacPlatform()?s.mac:s.windows)})}catch(s){Wt.error(s)}}static removeKeybinding(t,n){if(n===void 0)return;const s=t._standaloneKeybindingService._getResolver()._map.get(n);s!=null?s.forEach(o=>{Wt.debug2(`Removing Monaco keybinding ${n} for ${o.command}`),t._standaloneKeybindingService.addDynamicKeybinding(`-${o.command}`,null,()=>{})}):Wt.warn(`Did not find any keybindings to remove for ${n}`)}static getMonacoKeyCodeFromShortcut(t){const{keyState:n}=t,{keyValue:s}=n;return s===null?0:_e.isMacPlatform()?(n.metaKey?Nt.CtrlCmd:0)|(n.shiftKey?Nt.Shift:0)|(n.altKey?Nt.Alt:0)|(n.ctrlKey?Nt.WinCtrl:0)|Yr.fromString(s):(n.ctrlKey?Nt.CtrlCmd:0)|(n.shiftKey?Nt.Shift:0)|(n.altKey?Nt.Alt:0)|(n.metaKey?Nt.WinCtrl:0)|Yr.fromString(s)}}const xl=ne.module("MonacoCompletionProvider");class dc extends T.exports.PureComponent{constructor(t){super(t),this.handleCompletionRequest=this.handleCompletionRequest.bind(this)}componentDidMount(){const{language:t}=this.props;this.registeredCompletionProvider=Ns.registerCompletionItemProvider(t!=null?t:"",{provideCompletionItems:this.handleCompletionRequest,triggerCharacters:['"',".","'","(","[","{",","]})}componentWillUnmount(){var t;(t=this.registeredCompletionProvider)==null||t.dispose()}handleCompletionRequest(t,n,s){const{model:o,session:i}=this.props;if(t!==o)return null;const r={textDocument:{uri:`${t.uri}`,version:t.getVersionId()},position:{line:n.lineNumber-1,character:n.column-1},context:s},l=i.getCompletionItems(r);return xl.debug("Completion items received: ",r,l),l.then(c=>{const d=c.map(u=>{const{label:m,kind:p,detail:g,documentation:f,sortText:C,filterText:w,textEdit:S,insertTextFormat:b}=u,{start:y,end:v}=S.range,E={startLineNumber:y.line+1,startColumn:y.character+1,endLineNumber:v.line+1,endColumn:v.character+1};return{label:m,kind:p,detail:g,documentation:f,sortText:C,filterText:w,insertText:S.text,insertTextRules:b===2?4:b,range:E}});return{incomplete:!0,suggestions:d}}).catch(c=>(xl.error("There was an error retrieving completion items",c),{suggestions:[]}))}render(){return null}}const qi=ne.module("ConsoleInput"),ri=parseInt(ce["line-height"],10),uc=6,hc=6,rf=ri+uc+hc,Ki=100,mc=class extends T.exports.PureComponent{constructor(e){super(e),this.handleWindowResize=this.handleWindowResize.bind(this),this.commandContainer=J.createRef(),this.commandHistoryIndex=null,this.timestamp=Date.now(),this.bufferIndex=0,this.history=[],this.modifiedCommands=new Map,this.state={commandEditorHeight:ri,isFocused:!1,model:null}}componentDidMount(){this.initCommandEditor(),window.addEventListener("resize",this.handleWindowResize),this.loadMoreHistory()}componentDidUpdate(){this.layoutEditor()}componentWillUnmount(){window.removeEventListener("resize",this.handleWindowResize),this.loadingPromise!=null&&this.loadingPromise.cancel(),this.destroyCommandEditor()}setConsoleText(e,t=!0,n=!1){var s;!e||(qi.debug("Command received: ",e),n||(this.commandHistoryIndex=null,(s=this.commandEditor)==null||s.setValue(e)),t&&this.focusEnd(),this.updateDimensions(),n&&this.processCommand(e))}initCommandEditor(){const{language:e,session:t}=this.props,n={copyWithSyntaxHighlighting:!1,cursorStyle:"block",fixedOverflowWidgets:!0,folding:!1,fontFamily:"Fira Mono",glyphMargin:!1,language:e,lineHeight:ri,lineDecorationsWidth:3,lineNumbers:"off",minimap:{enabled:!1},renderLineHighlight:"none",scrollBeyondLastLine:!1,scrollbar:{arrowSize:0,horizontal:"hidden",horizontalScrollbarSize:0},padding:{top:uc,bottom:hc},tabCompletion:"on",value:"",wordWrap:"on"},s=this.commandContainer.current;O(s),this.commandEditor=Cn.create(s,n),_e.setEOL(this.commandEditor),_e.openDocument(this.commandEditor,t),this.commandEditor.onDidChangeModelContent(()=>{var i;const o=(i=this.commandEditor)==null?void 0:i.getValue();this.modifiedCommands.set(this.commandHistoryIndex,o!=null?o:null),this.updateDimensions()}),this.commandEditor.onDidFocusEditorText(()=>{this.setState({isFocused:!0})}),this.commandEditor.onDidBlurEditorText(()=>{this.setState({isFocused:!1})}),this.commandEditor.onKeyDown(o=>{var d,u,m;const{commandEditor:i,commandHistoryIndex:r}=this,l=i==null?void 0:i.getPosition();O(l);const{lineNumber:a}=l,c=i==null?void 0:i.getModel();if(o.keyCode===Qt.UpArrow&&!this.isSuggestionMenuPopulated()&&a===1){r!=null?this.loadCommand(r+1):this.loadCommand(0),this.focusStart(),o.stopPropagation(),o.preventDefault();return}if(o.keyCode===Qt.DownArrow&&!this.isSuggestionMenuPopulated()&&a===(c==null?void 0:c.getLineCount())){r!=null&&r>0?this.loadCommand(r-1):this.loadCommand(null),this.focusEnd(),o.stopPropagation(),o.preventDefault();return}if(!o.altKey&&!o.shiftKey&&!o.metaKey)if(o.keyCode===Qt.Enter){if(!this.isSuggestionMenuPopulated()){o.stopPropagation(),o.preventDefault();const p=(d=this.commandEditor)==null?void 0:d.getValue().trim();p!==void 0&&(this.processCommand(p),(u=this.commandEditor)==null||u.setValue(""))}}else o.keyCode===Qt.Tab&&(this.isSuggestionMenuActive()?this.isSuggestionMenuPopulated()||(o.stopPropagation(),o.preventDefault()):(o.stopPropagation(),o.preventDefault(),(m=this.commandEditor)==null||m.trigger("Tab key trigger suggestions","editor.action.triggerSuggest",{})))}),this.commandEditor.addCommand(Nt.CtrlCmd|Qt.KeyF,()=>{}),_e.removeConflictingKeybindings(this.commandEditor),_e.registerPasteHandler(this.commandEditor),this.commandEditor.focus(),this.updateDimensions(),this.setState({model:this.commandEditor.getModel()})}destroyCommandEditor(){const{session:e}=this.props;this.commandEditor&&(_e.closeDocument(this.commandEditor,e),this.commandEditor.dispose(),this.commandEditor=void 0)}handleWindowResize(){this.updateDimensions()}isSuggestionMenuActive(){var e,t,n;return this.commandSuggestionContainer||(this.commandSuggestionContainer=(t=(e=this.commandEditor)==null?void 0:e.getDomNode())==null?void 0:t.querySelector(".suggest-widget")),(n=this.commandSuggestionContainer&&this.commandSuggestionContainer.classList.contains("visible"))!=null?n:!1}isSuggestionMenuPopulated(){var e,t,n;return this.isSuggestionMenuActive()&&((n=(t=(e=this.commandSuggestionContainer)==null?void 0:e.querySelector(".monaco-list-rows"))==null?void 0:t.childElementCount)!=null?n:0)>0}focus(){var e;(e=this.commandEditor)==null||e.focus()}focusStart(){var s,o,i,r,l;const e=(s=this.commandEditor)==null?void 0:s.getModel();O(e);const t=e.getLineLength(1)+1,n=(o=this.commandEditor)==null?void 0:o.getTopForPosition(1,t);O(n),(i=this.commandEditor)==null||i.setPosition({lineNumber:1,column:t}),(r=this.commandEditor)==null||r.setScrollTop(n),(l=this.commandEditor)==null||l.focus()}focusEnd(){var o,i,r,l,a;const e=(o=this.commandEditor)==null?void 0:o.getModel();O(e);const t=e.getLineCount(),n=e.getLineLength(t)+1,s=(i=this.commandEditor)==null?void 0:i.getTopForPosition(t,n);O(s),(r=this.commandEditor)==null||r.setPosition({lineNumber:t,column:n}),(l=this.commandEditor)==null||l.setScrollTop(s),(a=this.commandEditor)==null||a.focus()}clear(){var e,t,n;(e=this.commandEditor)==null||e.focus(),(n=(t=this.commandEditor)==null?void 0:t.getModel())==null||n.setValue(""),this.commandHistoryIndex=null}layoutEditor(){this.commandEditor&&this.commandEditor.layout()}loadCommand(e){var s,o;if(e===null||e>=this.history.length)return;const t=this.modifiedCommands.get(e),n=e===null?"":this.history[this.history.length-e-1];this.commandHistoryIndex=e,(o=(s=this.commandEditor)==null?void 0:s.getModel())==null||o.setValue(t!=null?t:n),e!==null&&e>this.history.length-Ki&&this.loadMoreHistory()}async loadMoreHistory(){try{if(this.loadingPromise!=null||this.bufferIndex==null)return;const{commandHistoryStorage:e,language:t,scope:n}=this.props;this.loadingPromise=Pe.makeCancelable(e.getTable(t,n!=null?n:"",this.timestamp),i=>i.close());const s=await this.loadingPromise;s.setReversed(!0),s.setViewport({top:this.bufferIndex,bottom:this.bufferIndex+Ki-1}),this.loadingPromise=Pe.makeCancelable(s.getViewportData(),()=>s.close());const o=await this.loadingPromise;this.bufferIndex+=Ki,this.bufferIndex>=s.size&&(this.bufferIndex=null),this.history=[...o.items.filter(({name:i},r,l)=>r===0||i!==l[r-1].name).map(({name:i})=>i).reverse(),...this.history],this.loadingPromise=void 0,s.close()}catch(e){if(this.loadingPromise=void 0,Pe.isCanceled(e)){qi.debug2("Promise canceled, not loading history");return}qi.error("Error fetching history",e)}}processCommand(e){this.commandHistoryIndex=null,this.modifiedCommands.clear(),O(e),e!==""&&(this.history.length===0||e!==this.history[this.history.length-1])&&this.history.push(e),this.updateDimensions();const{onSubmit:t}=this.props;t(e)}updateDimensions(){if(!this.commandEditor)return;const{maxHeight:e}=this.props;O(e);const t=this.commandEditor.getContentHeight(),n=Math.max(Math.min(t,e),rf),o={overviewRulerLanes:t>n?void 0:0};this.setState({commandEditorHeight:n},()=>{var i,r;(i=this.commandEditor)==null||i.updateOptions(o),(r=this.commandEditor)==null||r.layout()})}render(){const{disabled:e,language:t,session:n}=this.props,{commandEditorHeight:s,isFocused:o,model:i}=this.state;return h("div",{className:G("console-input-wrapper",{disabled:e}),children:R("div",{className:G("console-input-inner-wrapper",{focus:o}),children:[h("div",{className:mc.INPUT_CLASS_NAME,ref:this.commandContainer,style:{height:s}}),i&&h(dc,{model:i,language:t,session:n})]})})}};let li=mc;li.defaultProps={maxHeight:ri*10,scope:null,disabled:!1};li.INPUT_CLASS_NAME="console-input";const Al="pasted values",lf=[/^audio.*/,/^font.*/,/^image.*/,/^video.*/],Xi=[".csv",".tsv",".tab",".psv",".dsv",".txt"],Ol=[".zip"],As=class extends T.exports.Component{constructor(e){super(e),this.getValidExtensions=Ee(t=>t?[...Xi,...Ol]:[...Xi]),this.getAcceptString=Ee(t=>this.getValidExtensions(t).join(", ")),this.getFileTypeErrorString=Ee(t=>br.join(this.getValidExtensions(t),"or")),this.handleSelectFile=this.handleSelectFile.bind(this),this.handleFiles=this.handleFiles.bind(this),this.handleDrop=this.handleDrop.bind(this),this.unstageFile=this.unstageFile.bind(this),this.handleMenuPaste=this.handleMenuPaste.bind(this),this.handlePasteEvent=this.handlePasteEvent.bind(this),this.fileElem=J.createRef(),this.divElem=J.createRef(),this.state={selectedFileName:""}}static isValidDropItem(e){return e!=null&&e.kind==="file"&&!lf.find(t=>t.test(e.type))}static isValidExtension(e,t=!1){return Xi.some(n=>e.endsWith(n))||t&&Ol.some(n=>e.endsWith(n))}static handleDragOver(e){e.preventDefault(),e.stopPropagation()}static getIcon(e){return e===Al?Zr:e.endsWith(".csv")?mu:e.endsWith(".zip")?Gd:gu}componentDidMount(){var e,t;(e=this.divElem.current)==null||e.addEventListener("paste",this.handlePasteEvent),(t=this.divElem.current)==null||t.focus()}componentWillUnmount(){var e;(e=this.divElem.current)==null||e.removeEventListener("paste",this.handlePasteEvent)}handleSelectFile(){var e;this.fileElem.current&&(this.fileElem.current.value="",(e=this.fileElem.current)==null||e.click())}handleFiles(e){e.stopPropagation(),e.preventDefault();const{files:t}=e.target;t!=null&&this.handleFile(t[0])}handleDrop(e){const{allowZip:t,clearDragError:n,dragError:s}=this.props;if(e.preventDefault(),e.stopPropagation(),s!=null){n();return}if(e.dataTransfer==null||e.dataTransfer.items==null||e.dataTransfer.items.length===0)return;const o=e.dataTransfer.items[0].getAsFile();O(o),As.isValidExtension(o.name,t)?this.handleFile(o):this.setState({dropError:As.FILE_TYPE_ERROR})}unstageFile(e){const{onCancel:t}=this.props;e.stopPropagation(),e.preventDefault(),t(),this.setState({selectedFileName:"",dropError:void 0})}handleFile(e){const{onFileOpened:t}=this.props;t(e),this.setState({selectedFileName:e.name,dropError:void 0})}handleMenuPaste(){const{onPaste:e,onError:t,uploadInProgress:n}=this.props;n||navigator.clipboard.readText().then(s=>{e(s),this.setState({selectedFileName:Al,dropError:void 0})}).catch(s=>t(s))}handlePasteEvent(e){e.stopPropagation(),e.preventDefault(),this.handleMenuPaste()}makeContextMenuItems(){const{uploadInProgress:e}=this.props;return[{title:"Paste",icon:Zr,action:this.handleMenuPaste,shortcut:Ir.PASTE,disabled:e}]}render(){const{allowZip:e,dragError:t,uploadInProgress:n}=this.props,{selectedFileName:s,dropError:o}=this.state,i=t!=null?t:o,r=this.makeContextMenuItems();return R("div",{ref:this.divElem,className:"csv-overlay fill-parent-absolute",onDragOver:As.handleDragOver,onDrop:this.handleDrop,tabIndex:-1,children:[h(re,{actions:r}),h("input",{ref:this.fileElem,type:"file",id:"fileElem",accept:this.getAcceptString(e),style:{display:"none"},onChange:this.handleFiles,"data-testid":"fileElem"}),!s&&(i===void 0||i==="")&&R("div",{className:"message-content",children:[h("div",{className:"message-icon",children:h(Q,{icon:pu})}),h("label",{children:"Drop file (or paste values) here to import"}),h("div",{className:"message-small",children:h("label",{children:"or"})}),h(K,{kind:"primary",onClick:this.handleSelectFile,children:"Select File..."})]}),s&&(i===void 0||i==="")&&R("div",{className:"selected-content",children:[h("div",{className:"selected-icon",children:h(Q,{icon:As.getIcon(s)})}),R("div",{className:"selected-text",children:[h("label",{children:"Selected File"}),R("label",{className:"selected-name",children:[s,!n&&h(K,{kind:"ghost",className:"ml-2",onClick:this.unstageFile,icon:bn,tooltip:"Remove"})]})]})]}),Boolean(i)&&R("div",{className:"message-content",children:[h("div",{className:"message-icon",children:h(Q,{icon:qn})}),h("label",{children:i}),i===As.FILE_TYPE_ERROR&&h("div",{className:"message-small",children:h("label",{children:this.getFileTypeErrorString(e)})})]})]})}};let fn=As;fn.defaultProps={allowZip:!1,dragError:null};fn.MULTIPLE_FILE_ERROR="Please select only one file";fn.FILE_TYPE_ERROR="Filetype not supported.";class we{}we.INTEGER="int";we.LONG="long";we.DOUBLE="double";we.BOOLEAN="bool";we.STRING="string";we.DATE_TIME="datetime";we.LOCAL_TIME="localtime";const kl="unknown",af=2147483647,cf=-2147483648,Ll=/^[0-9]{4}-[0-1][0-9]-[0-3][0-9][ T][0-2][0-9]:[0-5][0-9]:[0-6][0-9](?:\.[0-9]{1,9})?(?: [a-zA-Z]+)?$/,Pl=/^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\.[0-9]{1,9})?$/;class nt{static determineType(t,n,s){if(!t||t===s)return n;switch(n){case we.STRING:return we.STRING;case we.INTEGER:return nt.checkInteger(t);case we.LONG:return nt.checkLong(t);case we.DOUBLE:return nt.checkDouble(t);case we.BOOLEAN:return nt.checkBoolean(t);case we.DATE_TIME:return nt.checkDateTime(t);case we.LOCAL_TIME:return nt.checkLocalTime(t);default:return nt.getTypeFromUnknown(t)}}static isNotParsableNumber(t){return isNaN(t)||t==="Infinity"||t==="-Infinity"}static checkInteger(t){const n=t.replace(/,/g,"");return nt.isNotParsableNumber(n)?we.STRING:nt.getNumberType(n)}static checkLong(t){const n=t.replace(/,/g,"");return nt.isNotParsableNumber(n)?we.STRING:n.includes(".")?we.DOUBLE:we.LONG}static checkDouble(t){const n=t.replace(/,/g,"");return nt.isNotParsableNumber(n)?we.STRING:we.DOUBLE}static checkBoolean(t){const n=t.toLowerCase();return n==="true"||n==="false"?we.BOOLEAN:we.STRING}static checkDateTime(t){return Ll.test(t)?we.DATE_TIME:we.STRING}static checkLocalTime(t){return Pl.test(t)?we.LOCAL_TIME:we.STRING}static getTypeFromUnknown(t){const n=t.replace(/,/g,"");if(nt.isNotParsableNumber(n)){const s=t.toLowerCase();return s==="true"||s==="false"?we.BOOLEAN:Ll.test(t)&&t.includes(":")?we.DATE_TIME:Pl.test(t)?we.LOCAL_TIME:we.STRING}return nt.getNumberType(n)}static getNumberType(t){if(t.includes("."))return we.DOUBLE;const n=t.startsWith("-")?11:10;if(t.length>n)return we.LONG;const s=parseInt(t,10);return s>af||s<cf?we.LONG:we.INTEGER}constructor(t,n,s,o,i,r,l,a,c,d){this.onFileCompleted=t,this.file=n,this.readHeaders=s,this.nullString=i,this.onProgress=r,this.onError=l,this.chunks=0,this.totalChunks=a,this.isZip=c,this.shouldTrim=d,this.zipProgress=0,this.handleChunk=this.handleChunk.bind(this),this.handleComplete=this.handleComplete.bind(this),this.handleError=this.handleError.bind(this),this.handleNodeUpdate=this.handleNodeUpdate.bind(this),this.config={...o,error:this.handleError,chunk:this.handleChunk,complete:this.handleComplete}}parse(){const t=this.isZip?this.file.nodeStream("nodebuffer",this.handleNodeUpdate):this.file;Zi.parse(t,this.config)}handleChunk(t,n){let{data:s}=t;if(!this.types){if(s==null||s.length===0){n.abort(),this.onError("Error parsing CSV: no data in file.");return}this.types=new Array(s[0].length).fill(kl),this.readHeaders&&(s=s.slice(1))}O(this.types);const o=[...this.types];s.forEach(l=>{if(l.length>=o.length){for(let a=0;a<o.length;a+=1)o[a]=nt.determineType(this.shouldTrim?l[a].trim():l[a],o[a],this.nullString);this.types=o}else n.abort(),this.onError(`Error parsing CSV: Insufficient data in row.
|
|
16
16
|
Expected length ${o.length} but found ${l.length}.
|
|
17
17
|
Row = ${l}`)}),this.chunks+=1;let i=0;this.totalChunks>0?i=Math.round(this.chunks/this.totalChunks*50):i=Math.round(this.zipProgress/2),this.onProgress(i)&&n.abort()}handleComplete(t){const{types:n,onFileCompleted:s}=this;O(n),(t==null||!t.meta.aborted)&&s(n.map(o=>o===kl?we.STRING:o))}handleError(t){const{onError:n}=this;n(t)}handleNodeUpdate(t){this.zipProgress=t.percent}}const Ko=ne.module("CsvParser"),df=650,ai=class{static generateHeaderRecursive(e){let t="",n=e;return e>=26&&(t=t.concat(ai.generateHeaderRecursive(Math.floor(e/26)-1)),n=e%26),t.concat(String.fromCharCode(65+n))}constructor({onFileCompleted:e,session:t,file:n,type:s,readHeaders:o=!0,onProgress:i,onError:r,timeZone:l,isZip:a}){this.onFileCompleted=e,this.session=t,this.file=n,this.isZip=a,this.type=s,this.readHeaders=o,this.timeZone=l,this.onProgress=i,this.onError=r,this.tables=[],this.chunks=0,this.totalChunks=a?0:Math.ceil(n.size/Zi.LocalChunkSize),this.isComplete=!1,this.zipProgress=0,this.numConsolidated=0,this.isCancelled=!1,this.handleChunk=this.handleChunk.bind(this),this.handleError=this.handleError.bind(this),this.handleComplete=this.handleComplete.bind(this),this.handleNodeUpdate=this.handleNodeUpdate.bind(this),this.handleCreateTable=this.handleCreateTable.bind(this),this.config={delimiter:s.delimiter,newline:s.newline,escapeChar:s.escapeChar,dynamicTyping:!1,error:this.handleError,skipEmptyLines:s.skipEmptyLines,chunk:this.handleChunk,complete:this.handleComplete,fastMode:!1}}cancel(){this.isCancelled=!0}transpose(e,t){const n=t.length,s=new Array(e).fill(null).map(()=>new Array(n));for(let o=0;o<n;o+=1){const i=t[o];if(i.length<e)throw new Error(`Insufficient columns. Expected ${e} but found ${i.length}
|
|
@@ -29,5 +29,5 @@ ${t}`):s.setValue(`${t}`);const i=s.getLineCount(),r=s.getLineLength(i)+1;this.e
|
|
|
29
29
|
`))}}if(n=n.trimRight(),this.editor.setValue(n),t){const o=(s=this.editor.getModel())==null?void 0:s.getLineCount();O(o),this.editor.revealLine(o,1)}this.stopFlushTimer(),this.bufferedMessages=[]}truncateLogIfNecessary(){this.messages.length>it.maxLogSize&&(this.messages=this.messages.splice(this.messages.length-it.truncateSize))}scrollToBottom(){var t,n,s;if(!this.editor)return;const e=(s=(n=(t=this.editor)==null?void 0:t.getModel)==null?void 0:n.call(t))==null?void 0:s.getLineCount();O(e),this.editor.revealLine(e,1)}isBottomVisible(){if(!this.editor)return!0;const e=this.editor.getModel(),t=e==null?void 0:e.getLineCount();return O(t),this.isLineVisible(t)}isLineVisible(e){var n;const t=(n=this.editor)==null?void 0:n.getVisibleRanges();if(t==null||t.length===0)return!1;for(let s=0;s<t.length;s+=1){const o=t[s];if(o.startLineNumber<=e&&e<=o.endLineNumber)return!0}return!1}isLogItemVisible(e){const{shownLogLevels:t}=this.state;return t[e.logLevel]}flush(){let e="";for(let t=0;t<this.bufferedMessages.length;t+=1){const n=this.bufferedMessages[t],s=it.getLogText(n);e+=s,s.charAt(s.length-1)!==`
|
|
30
30
|
`&&(e+=`
|
|
31
31
|
`)}this.bufferedMessages=[],this.appendLogText(e)}queue(e){this.bufferedMessages.push(e),this.bufferedMessages.length===1&&(this.flushTimer=setTimeout(this.handleFlushTimeout,it.bufferTimeout))}stopFlushTimer(){this.flushTimer&&(clearTimeout(this.flushTimer),this.flushTimer=void 0)}updateDimensions(){this.editor&&this.editor.layout()}handleClearClick(){this.clearLogs()}clearLogs(){this.messages=[],this.refreshLogText()}handleFlushTimeout(){this.stopFlushTimer(),this.flush()}handleLogMessage(e){this.messages.push(e),this.editor&&this.isLogItemVisible(e)&&this.queue(e)}handleMenuItemClick(e){this.toggleLogLevel(e)}handleResetClick(){this.resetLogLevels()}handleResize(){this.updateDimensions()}handleToggleAllClick(){this.toggleAll()}render(){const e={placement:"bottom-end"},{shownLogLevels:t}=this.state,n=this.getMenuActions(t);return R("div",{className:"log-pane h-100 w-100",children:[R("div",{className:"log-pane-menu",children:[h(K,{kind:"ghost",className:"btn-clear-logs",onClick:this.handleClearClick,icon:yu,tooltip:"Clear log"}),h(K,{kind:"ghost",className:"btn-link-icon btn-overflow",icon:Wd,tooltip:"Log Settings",onClick:()=>{},children:h(Kn,{actions:n,popperClassName:"log-level-menu-popper",popperOptions:e})})]}),h("div",{className:"log-pane-editor h-100 w-100",ref:s=>{this.editorContainer=s}})]})}};let wo=it;wo.DefaultLogLevels=[Ze.STDOUT,Ze.ERROR,Ze.FATAL,Ze.STDERR,Ze.WARN];wo.AllLogLevels=[Ze.INFO,Ze.STDOUT,Ze.ERROR,Ze.FATAL,Ze.STDERR,Ze.WARN,Ze.DEBUG,Ze.TRACE];wo.bufferTimeout=16;wo.maxLogSize=131072;wo.truncateSize=65536;Jo.register([qc,Kc,Xc,Yc,Qc,jc]);const Sf=typeof Li=="function"?Li(Jo):Li.default(Jo),gn=class{constructor(){this.listeners=[],this.isDownsamplingDisabled=!1}getData(){return[]}getDefaultTitle(){return""}getLayout(){return{}}getFilterColumnMap(){return new Map}isFilterRequired(){return!1}setFilter(e){}close(){}setFormatter(e){this.formatter=e}setDownsamplingDisabled(e){this.isDownsamplingDisabled=e}setDimensions(e){this.rect=e}setTitle(e){this.title=e}subscribe(e){this.listeners.push(e)}unsubscribe(e){this.listeners=this.listeners.filter(t=>t!==e)}fireEvent(e){for(let t=0;t<this.listeners.length;t+=1)this.listeners[t](e)}fireUpdate(e){this.fireEvent(new CustomEvent(gn.EVENT_UPDATED,{detail:e}))}fireDisconnect(){this.fireEvent(new CustomEvent(gn.EVENT_DISCONNECT))}fireReconnect(){this.fireEvent(new CustomEvent(gn.EVENT_RECONNECT))}fireDownsampleStart(e){this.fireEvent(new CustomEvent(gn.EVENT_DOWNSAMPLESTARTED,{detail:e}))}fireDownsampleFinish(e){this.fireEvent(new CustomEvent(gn.EVENT_DOWNSAMPLEFINISHED,{detail:e}))}fireDownsampleFail(e){this.fireEvent(new CustomEvent(gn.EVENT_DOWNSAMPLEFAILED,{detail:e}))}fireDownsampleNeeded(e){this.fireEvent(new CustomEvent(gn.EVENT_DOWNSAMPLENEEDED,{detail:e}))}fireLoadFinished(){this.fireEvent(new CustomEvent(gn.EVENT_LOADFINISHED))}};let Je=gn;Je.EVENT_UPDATED="ChartModel.EVENT_UPDATED";Je.EVENT_DISCONNECT="ChartModel.EVENT_DISCONNECT";Je.EVENT_RECONNECT="ChartModel.EVENT_RECONNECT";Je.EVENT_DOWNSAMPLESTARTED="ChartModel.EVENT_DOWNSAMPLESTARTED";Je.EVENT_DOWNSAMPLEFINISHED="ChartModel.EVENT_DOWNSAMPLEFINISHED";Je.EVENT_DOWNSAMPLEFAILED="ChartModel.EVENT_DOWNSAMPLEFAILED";Je.EVENT_DOWNSAMPLENEEDED="ChartModel.EVENT_DOWNSAMPLENEEDED";Je.EVENT_LOADFINISHED="ChartModel.EVENT_LOADFINISHED";const bf="#76d9e4 #9edc6f #fcd65b #aa9af4 #f37e3f #f95d84 #f0f0ee",vf="#403e41",Tf="#5b5a5c",Ef="#c0bfbf",yf="#4878ea",Rf="rgba(91, 90, 92, 0.7)",tt={"paper-bgcolor":"#2d2a2e","plot-bgcolor":"#322f33","title-color":"#f0f0ee",colorway:bf,gridcolor:vf,linecolor:Tf,zerolinecolor:Ef,activecolor:yf,rangebgcolor:Rf,"area-color":"#76d9e4","trend-color":"#d5f0c1","line-color":"#9edc6f","error-band-line-color":"white","error-band-fill-color":"rgba(213, 240, 193, 0.1)","ohlc-increasing":"#9edc6f","ohlc-decreasing":"#f95d84"},Vn=Object.freeze({paper_bgcolor:tt["paper-bgcolor"],plot_bgcolor:tt["plot-bgcolor"],title_color:tt["title-color"],colorway:tt.colorway,gridcolor:tt.gridcolor,linecolor:tt.linecolor,zerolinecolor:tt.zerolinecolor,activecolor:tt.activecolor,rangebgcolor:tt.rangebgcolor,area_color:tt["area-color"],trend_color:tt["trend-color"],line_color:tt["line-color"],error_band_line_color:tt["error-band-line-color"],error_band_fill_color:tt["error-band-fill-color"],ohlc_increasing:tt["ohlc-increasing"],ohlc_decreasing:tt["ohlc-decreasing"]}),Xo=ne.module("ChartUtils"),kn=Object.freeze(I.calendar.DayOfWeek.values()),Gl="io.deephaven.time.DateTime",If=36e5,Mf=1e6;function Df(e){return e.asDate!==void 0}function Nf(e){return e.asNumber!==void 0}function zl(e){return e.dhTimeZone!==void 0}function Ff(e){return e!=null&&e.range!=null&&(e.autorange===!1||e.autorange===void 0)}const j=class{static getPlotlyChartType(e,t){switch(e){case I.plot.SeriesPlotStyle.SCATTER:return t?"scatter":"scattergl";case I.plot.SeriesPlotStyle.LINE:return"scatter";case I.plot.SeriesPlotStyle.BAR:case I.plot.SeriesPlotStyle.STACKED_BAR:return"bar";case I.plot.SeriesPlotStyle.PIE:return"pie";case I.plot.SeriesPlotStyle.TREEMAP:return"treemap";case I.plot.SeriesPlotStyle.HISTOGRAM:return"histogram";case I.plot.SeriesPlotStyle.OHLC:return"ohlc";default:return}}static getPlotlyChartMode(e){switch(e){case I.plot.SeriesPlotStyle.SCATTER:return"markers";case I.plot.SeriesPlotStyle.LINE:return"lines";default:return}}static getPlotlyProperty(e,t){switch(e){case I.plot.SeriesPlotStyle.PIE:switch(t){case I.plot.SourceType.X:return"labels";case I.plot.SourceType.Y:return"values"}break;case I.plot.SeriesPlotStyle.OHLC:switch(t){case I.plot.SourceType.TIME:return"x"}break;case I.plot.SeriesPlotStyle.TREEMAP:switch(t){case I.plot.SourceType.X:return"ids";case I.plot.SourceType.Y:return"values";case I.plot.SourceType.LABEL:return"labels";case I.plot.SourceType.PARENT:return"parents";case I.plot.SourceType.COLOR:return"marker.colors"}break}switch(t){case I.plot.SourceType.X:return"x";case I.plot.SourceType.Y:return"y";case I.plot.SourceType.Z:return"z";case I.plot.SourceType.X_LOW:return"xLow";case I.plot.SourceType.X_HIGH:return"xHigh";case I.plot.SourceType.Y_LOW:return"yLow";case I.plot.SourceType.Y_HIGH:return"yHigh";case I.plot.SourceType.TIME:return"time";case I.plot.SourceType.OPEN:return"open";case I.plot.SourceType.HIGH:return"high";case I.plot.SourceType.LOW:return"low";case I.plot.SourceType.CLOSE:return"close";case I.plot.SourceType.SHAPE:return"shape";case I.plot.SourceType.SIZE:return"size";case I.plot.SourceType.LABEL:return"label";case I.plot.SourceType.COLOR:return"color";case I.plot.SourceType.PARENT:return"parent";case I.plot.SourceType.HOVER_TEXT:return"hovertext";case I.plot.SourceType.TEXT:return"text";default:throw new Error(`Unrecognized source type: ${t}`)}}static getPlotlySeriesOrientation(e){var n,s;const{sources:t}=e;return t.length===2&&((s=(n=t[0])==null?void 0:n.axis)==null?void 0:s.type)===I.plot.AxisType.Y?j.ORIENTATION.HORIZONTAL:j.ORIENTATION.VERTICAL}static getPlotlyErrorBars(e,t,n){const s=n.map((i,r)=>i-e[r]),o=t.map((i,r)=>e[r]-i);return{type:"data",symmetric:!1,array:s,arrayminus:o}}static getPlotlyDateFormat(e,t,n){const s=n==null?void 0:n.replace("%","%%").replace(/S{9}/g,"%9f").replace(/S{8}/g,"%8f").replace(/S{7}/g,"%7f").replace(/S{6}/g,"%6f").replace(/S{5}/g,"%5f").replace(/S{4}/g,"%4f").replace(/S{3}/g,"%3f").replace(/S{2}/g,"%2f").replace(/S{1}/g,"%1f").replace(/y{4}/g,"%Y").replace(/y{2}/g,"%y").replace(/M{4}/g,"%B").replace(/M{3}/g,"%b").replace(/M{2}/g,"%m").replace(/M{1}/g,"%-m").replace(/E{4,}/g,"%A").replace(/E{1,}/g,"%a").replace(/d{2}/g,"%d").replace(/([^%]|^)d{1}/g,"$1%-d").replace(/H{2}/g,"%H").replace(/h{2}/g,"%I").replace(/h{1}/g,"%-I").replace(/m{2}/g,"%M").replace(/s{2}/g,"%S").replace("'T'","T").replace(" z","");let o;const i=e==null?void 0:e.getColumnTypeFormatter(t);return i!=null&&zl(i)&&i.dhTimeZone!=null&&i.showTimeZone&&(o=I.i18n.DateTimeFormat.format(" z",new Date,i.dhTimeZone)),{tickformat:s,ticksuffix:o,automargin:!0}}static convertNumberPrefix(e){return e.replace(/\u00A4\u00A4/g,"USD").replace(/\u00A4/g,"$")}static getPlotlyNumberFormat(e,t,n){if(!n)return null;const o=n.split(";")[0].match(/^([^#,0.]*)([#,]*)([0,]*)(\.?)(0*)(#*)(E?0*)(%?)(.*)/);O(o);const[,i,r,l,,a,c,d,u,m]=o,p=l.replace(",","").length,f=r.indexOf(",")>=0||l.indexOf(",")>=0?",":"",C=d!=null&&d!==""?"e":"f",w=u!==""?u:C,S=a.length+c.length,y=`0${p}${f}.${S}${w}`,v=j.convertNumberPrefix(i),E=j.convertNumberPrefix(m);return{tickformat:y,tickprefix:v,ticksuffix:E,automargin:!0}}static getPlotlyAxisFormat(e,t=null){const{axis:n,columnType:s}=e,{formatPattern:o}=n;let i=null;return A.isDateType(s)?(i=j.getPlotlyDateFormat(t,s,o),i=j.addTickSpacing(i,n,!0)):A.isNumberType(s)&&(i=j.getPlotlyNumberFormat(t,s,o),i=j.addTickSpacing(i,n,!1)),n.formatType===I.plot.AxisFormatType.CATEGORY&&(i?i.type="category":i={type:"category",tickformat:void 0,ticksuffix:void 0}),i}static addTickSpacing(e,t,n){const{gapBetweenMajorTicks:s}=t;if(s>0){const o=e||{};let i=s;return n&&(i=s/Mf),t.log&&(i=Math.log(i)),o.tickmode="linear",o.dtick=i,o}return e}static getSourceForAxis(e,t){for(let n=0;n<e.series.length;n+=1){const s=e.series[n];for(let o=0;o<s.sources.length;o+=1){const i=s.sources[o];if(i.axis===t)return i}}return null}static getSeriesVisibility(e,t){return t!=null&&t.hiddenSeries!=null&&t.hiddenSeries.includes(e)?"legendonly":!0}static getHiddenLabels(e){return e!=null&&e.hiddenSeries?[...e.hiddenSeries]:[]}static makeSeriesData(e,t,n,s,o=j.ORIENTATION.VERTICAL){return{type:e,mode:t,name:n,orientation:o,showlegend:s!=null?s:void 0}}static makeSeriesDataFromSeries(e,t,n,s=null,o=Vn){const{name:i,plotStyle:r,lineColor:l,shapeColor:a,sources:c}=e,d=c.some(f=>{var C;return(C=f.axis)==null?void 0:C.businessCalendar}),u=j.getChartType(r,d),m=j.getPlotlyChartMode(r),p=j.getPlotlySeriesOrientation(e),g=j.makeSeriesData(u,m,i,s,p);return j.addSourcesToSeriesData(g,r,c,t),j.addStylingToSeriesData(g,r,o,l,a,n),g}static addSourcesToSeriesData(e,t,n,s){const o=e;for(let i=0;i<n.length;i+=1){const r=n[i],{axis:l,type:a}=r,c=j.getPlotlyProperty(t,a);$l(o,c,[]);const d=l!=null?j.getAxisPropertyName(l.type):null;if(d!=null){const u=s.get(l.type);if(u){const m=u.indexOf(l),p=m>0?`${m+1}`:"";o[`${d}axis`]=`${d}${p}`}}}}static addStylingToSeriesData(e,t,n=Vn,s=null,o=null,i=null){const r=e;r.marker={line:{}},r.line={width:1},t===I.plot.SeriesPlotStyle.AREA?r.fill="tozeroy":t===I.plot.SeriesPlotStyle.STACKED_AREA?r.stackgroup="stack":t===I.plot.SeriesPlotStyle.STEP?r.line.shape="hv":t===I.plot.SeriesPlotStyle.HISTOGRAM?(r.width=[],r.marker.line!==void 0&&Object.assign(r.marker.line,{color:n.paper_bgcolor,width:1})):t===I.plot.SeriesPlotStyle.OHLC?(r.increasing={line:{color:n.ohlc_increasing}},r.decreasing={line:{color:n.ohlc_decreasing}}):t===I.plot.SeriesPlotStyle.PIE?(r.textinfo="label+percent",r.outsidetextfont={color:n.title_color}):t===I.plot.SeriesPlotStyle.TREEMAP&&(r.hoverinfo="text",r.textinfo="label+text",r.tiling={packing:"squarify",pad:0},r.textposition="middle center",r.outsidetextfont={color:n.title_color}),s!=null&&(t===I.plot.SeriesPlotStyle.BAR?r.marker.color=s:r.line.color=s),o!=null&&(r.marker.color=o),i!=null&&t!==I.plot.SeriesPlotStyle.PIE&&(r.visible=i)}static getAxisFormats(e,t){const n=new Map,s={tickformat:null,ticksuffix:null},o=j.getAllAxes(e),i=j.groupArray(o,"type"),{charts:r}=e;for(let l=0;l<r.length;l+=1){const a=r[l];for(let c=0;c<a.series.length;c+=1){const d=a.series[c],{sources:u}=d,m=u.filter(p=>p.axis);for(let p=0;p<m.length;p+=1){const g=m[p],{axis:f}=g,{type:C}=f,w=i.get(C);O(w);const S=w.indexOf(f),b=j.getAxisPropertyName(C);if(b!=null){const y=j.getAxisLayoutProperty(b,S);if(n.has(y))Xo.debug(`${y} already added.`);else{Xo.debug(`Adding ${y} to axisFormats.`);const v=j.getPlotlyAxisFormat(g,t);if(v===null)n.set(y,s);else{n.set(y,v);const{businessCalendar:E}=f;if(E!=null){const M=[],{businessPeriods:F,businessDays:x,holidays:V,timeZone:_}=E,N=t==null?void 0:t.getColumnTypeFormatter(Gl);let H;zl(N)&&(H=N.dhTimeZone);const k=H?(_.standardOffset-H.standardOffset)/60:0;V.length>0&&M.push(...j.createRangeBreakValuesFromHolidays(V,_,H)),F.forEach(z=>M.push({pattern:"hour",bounds:[j.periodToDecimal(z.close)+k,j.periodToDecimal(z.open)+k]})),x.length<kn.length&&j.createBoundsFromDays(x).forEach(z=>M.push({pattern:"day of week",bounds:z})),v.rangebreaks=M}if(n.size===a.axes.length)return n}}}}}}return n}static getChartType(e,t){switch(e){case I.plot.SeriesPlotStyle.HISTOGRAM:return"bar";default:return j.getPlotlyChartType(e,t)}}static getAxisPropertyName(e){switch(e){case I.plot.AxisType.X:return"x";case I.plot.AxisType.Y:return"y";default:return null}}static getAxisSide(e){switch(e){case I.plot.AxisPosition.BOTTOM:return"bottom";case I.plot.AxisPosition.TOP:return"top";case I.plot.AxisPosition.LEFT:return"left";case I.plot.AxisPosition.RIGHT:return"right";default:return}}static getAllAxes(e){return e.charts.reduce((t,n)=>[...t,...n.axes],[])}static getChartForSeries(e,t){const{charts:n}=e;for(let s=0;s<n.length;s+=1){const o=n[s];for(let i=0;i<o.series.length;i+=1)if(t===o.series[i])return o}return null}static getLayoutRanges(e){const t={},n=Object.keys(e).filter(s=>s.indexOf("axis")>=0);for(let s=0;s<n.length;s+=1){const o=n[s],i=e[o];Ff(i)&&(t[o]=[...i.range])}return t}static updateFigureAxes(e,t,n,s=0,o=0,i=Vn){const r=e,l=j.getAllAxes(t);for(let a=0;a<t.charts.length;a+=1){const c=t.charts[a],d=n==null?void 0:n(c),u=j.getChartBounds(t,c,s,o);j.updateLayoutAxes(r,c.axes,l,s,o,u,d,i)}j.removeStaleAxes(r,l)}static getChartBounds(e,t,n=0,s=0){var b;const{cols:o,rows:i}=e,{column:r,colspan:l,row:a,rowspan:c}=t,d=r+l,u=a+c,m=1/o,p=1/i,g=j.AXIS_SIZE_PX/n,f=j.AXIS_SIZE_PX/s,C={left:r*m+(r>0?g/2:0),bottom:a*p+(a>0?f/2:0),top:u*p-(u<i?f/2:0),right:d*m-(d<o?g/2:0)};return((b=j.groupArray(t.axes,"position").get(I.plot.AxisPosition.RIGHT))!=null?b:[]).length>0&&(n>0?C.right-=(C.right-C.left)*Math.max(0,Math.min(j.LEGEND_WIDTH_PX/n,j.MAX_LEGEND_SIZE)):C.right-=(C.right-C.left)*j.DEFAULT_AXIS_SIZE),C}static updateLayoutAxes(e,t,n,s=0,o=0,i={left:0,top:0,right:1,bottom:1},r,l=Vn){const a=s>0?Math.max(j.MIN_AXIS_SIZE,Math.min(j.AXIS_SIZE_PX/o,j.MAX_AXIS_SIZE)):j.DEFAULT_AXIS_SIZE,c=o>0?Math.max(j.MIN_AXIS_SIZE,Math.min(j.AXIS_SIZE_PX/s,j.MAX_AXIS_SIZE)):j.DEFAULT_AXIS_SIZE,d=e,u=j.groupArray(t,"position"),m=j.groupArray(t,"type"),p=[...m.keys()],g=j.groupArray(n,"type");for(let f=0;f<p.length;f+=1){const C=p[f],w=j.getAxisPropertyName(C);if(w!=null){const S=m.get(C),b=g.get(C),v=C===I.plot.AxisType.Y?o:s;O(S),O(b);for(let E=0;E<S.length;E+=1){const M=S[E],F=b.indexOf(M),x=j.getAxisLayoutProperty(w,F);d[x]==null&&(d[x]=j.makeLayoutAxis(C,l));const V=d[x];if(V!=null){j.updateLayoutAxis(V,M,E,u,a,c,i);const{range:_,autorange:N}=V;if(r!=null&&_!==void 0&&(N===void 0||N===!1)){const H=r(M),[k,z]=H(_);Xo.debug("Setting downsample range",v,k,z),M.range(v,k,z)}else M.range(v)}}}}}static removeStaleAxes(e,t){const n=e,s=j.groupArray(t,"type"),o=[...s.keys()];for(let i=0;i<o.length;i+=1){const r=o[i],l=s.get(r);O(l);let a=l.length;const c=j.getAxisPropertyName(r);if(c!=null){let d=j.getAxisLayoutProperty(c,a);for(;n[d]!=null;)delete n[d],a+=1,d=j.getAxisLayoutProperty(c,a)}}}static getAxisLayoutProperty(e,t){const n=t>0?`${t+1}`:"";return`${e!=null?e:""}axis${n}`}static updateLayoutAxis(e,t,n,s,o,i,r){var u,m,p;const a=t.type===I.plot.AxisType.Y?i:o,c=e,d=(u=t.label)!=null?u:"";if(c.title!==void 0&&typeof c.title!="string"?c.title.text=d:c.title={text:d},t.log&&(c.type="log"),c.side=j.getAxisSide(t.position),n>0){c.overlaying=(m=j.getAxisPropertyName(t.type))!=null?m:void 0;const g=(p=s.get(t.position))!=null?p:[],f=g.indexOf(t);f>0&&(c.anchor="free",t.position===I.plot.AxisPosition.RIGHT?c.position=r.right+(f-g.length+1)*a:t.position===I.plot.AxisPosition.TOP?c.position=r.top+(f-g.length+1)*a:t.position===I.plot.AxisPosition.BOTTOM?c.position=r.bottom+(g.length-f+1)*a:t.position===I.plot.AxisPosition.LEFT&&(c.position=r.left+(g.length-f+1)*a))}else if(t.type===I.plot.AxisType.X){const g=s.get(I.plot.AxisPosition.LEFT)||[],f=s.get(I.plot.AxisPosition.RIGHT)||[],C=Math.max(r.left,r.left+(g.length-1)*i),w=Math.min(r.right-(f.length-1)*i,r.right);c.domain=[C,w]}else if(t.type===I.plot.AxisType.Y){const g=s.get(I.plot.AxisPosition.BOTTOM)||[],f=s.get(I.plot.AxisPosition.TOP)||[],C=Math.max(r.bottom,r.bottom+(g.length-1)*o),w=Math.min(r.top-(f.length-1)*o,r.top);c.domain=[C,w]}}static periodToDecimal(e){const t=e.split(":");return Number(t[0])+Number(t[1])/60}static createBoundsFromDays(e){const t=e.map(i=>kn.indexOf(i)),n=kn.filter(i=>!e.includes(i)).map(i=>kn.indexOf(i)),s=new Set;n.forEach(i=>{for(let r=i+1;r<i+kn.length;r+=1){const l=r%kn.length;if(t.includes(l)){s.add(l);break}}});const o=[];return s.forEach(i=>{for(let r=i-1;r>i-kn.length;r-=1){const l=r<0?r+kn.length:r;if(t.includes(l)){const a=(l+1)%7;o.push([a,i]);break}}}),o}static createRangeBreakValuesFromHolidays(e,t,n){const s=[],o=[];return e.forEach(i=>{i.businessPeriods.length>0?o.push(...j.createPartialHoliday(i,t,n)):s.push(j.createFullHoliday(i,t,n))}),[{values:s},...o]}static createFullHoliday(e,t,n){return j.adjustDateForTimeZone(`${e.date.toString()} 00:00:00.000000`,t,n)}static createPartialHoliday(e,t,n){const s=e.date.toString(),o=["00:00"];e.businessPeriods.forEach(r=>{o.push(r.open),o.push(r.close)}),o.push("24:00");const i=[];for(let r=0;r<o.length;r+=2){const l=o[r],a=o[r+1];if(l!==a){const c=[j.adjustDateForTimeZone(`${s} ${l}:00.000000`,t,n)],d=If*(j.periodToDecimal(a)-j.periodToDecimal(l));i.push({values:c,dvalue:d})}}return i}static adjustDateForTimeZone(e,t,n){return n&&n.standardOffset!==t.standardOffset?j.unwrapValue(j.wrapValue(e,Gl,t),n):e}static groupArray(e,t){return e.reduce((n,s)=>{var r;const o=s[t],i=(r=n.get(o))!=null?r:[];return i.push(s),n.set(o,i),n},new Map)}static unwrapValue(e,t){if(e!=null){if(Df(e))return I.i18n.DateTimeFormat.format(j.DATE_FORMAT,e,t);if(Nf(e))return e.asNumber()}return e}static wrapValue(e,t,n=null){if(A.isDateType(t)&&typeof e=="string"){const s=e,o=j.DATE_FORMAT.substr(0,e.length),i=I.i18n.DateTimeFormat.parse(o,s);if(!n)return i;const r=`${o} Z`,l=I.i18n.DateTimeFormat.format("Z",i,n),a=I.i18n.DateTimeFormat.parse(r,`${s} ${l}`),c=I.i18n.DateTimeFormat.format("Z",a,n);return I.i18n.DateTimeFormat.parse(r,`${s} ${c}`)}return e}static makeLayoutAxis(e,t=Vn){const n={automargin:!0,gridcolor:t.gridcolor,linecolor:t.linecolor,rangeslider:{visible:!1},showline:!0,ticklen:5,tickcolor:t.paper_bgcolor,tickfont:{color:t.zerolinecolor},title:{font:{color:t.title_color}}};return e===I.plot.AxisType.X?Object.assign(n,{showgrid:!0}):e===I.plot.AxisType.Y&&Object.assign(n,{zerolinecolor:t.zerolinecolor,zerolinewidth:2}),n}static getColorwayFromTheme(e=Vn){let t=[];return e.colorway&&(Array.isArray(e.colorway)?t=e.colorway:typeof e.colorway=="string"?t=e.colorway.split(" "):Xo.warn(`Unable to handle colorway property: ${e.colorway}`)),t}static makeDefaultLayout(e=Vn){const t={...e,autosize:!0,colorway:j.getColorwayFromTheme(e),font:{family:"'Fira Sans', sans-serif"},title:{font:{color:e.title_color},yanchor:"top",pad:{...j.DEFAULT_TITLE_PADDING},y:1},legend:{font:{color:e.title_color}},margin:{...j.DEFAULT_MARGIN},xaxis:j.makeLayoutAxis(I.plot.AxisType.X,e),yaxis:j.makeLayoutAxis(I.plot.AxisType.Y,e)};return t.datarevision=0,t}static hydrateSettings(e){return{...e,type:I.plot.SeriesPlotStyle[e.type]}}static titleFromSettings(e){const{series:t,xAxis:n,title:s=`${t.join(", ")} by ${n}`}=e;return s}static makeFigureSettings(e,t){const{series:n,xAxis:s,type:o}=e,i=j.titleFromSettings(e),r={formatType:`${I.plot.AxisFormatType.NUMBER}`,type:`${I.plot.AxisType.X}`,position:`${I.plot.AxisPosition.BOTTOM}`},l={formatType:`${I.plot.AxisFormatType.NUMBER}`,type:`${I.plot.AxisType.Y}`,position:`${I.plot.AxisPosition.LEFT}`};return{charts:[{chartType:`${I.plot.ChartType.XY}`,axes:[r,l],series:n.map(a=>({plotStyle:`${o}`,name:a,dataSources:[{type:`${I.plot.SourceType.X}`,columnName:s,axis:r,table:t},{type:`${I.plot.SourceType.Y}`,columnName:a,axis:l,table:t}]}))}],title:i}}};let ve=j;ve.DEFAULT_AXIS_SIZE=.15;ve.MIN_AXIS_SIZE=.025;ve.MAX_AXIS_SIZE=.2;ve.AXIS_SIZE_PX=75;ve.LEGEND_WIDTH_PX=50;ve.MAX_LEGEND_SIZE=.25;ve.ORIENTATION=Object.freeze({HORIZONTAL:"h",VERTICAL:"v"});ve.DATE_FORMAT="yyyy-MM-dd HH:mm:ss.SSSSSS";ve.DEFAULT_MARGIN=Object.freeze({l:60,r:50,t:30,b:60,pad:0});ve.DEFAULT_TITLE_PADDING=Object.freeze({t:8});ve.SUBTITLE_LINE_HEIGHT=25;const Ln=ne.module("Chart"),co=class extends T.exports.Component{constructor(e){super(e),this.getCachedConfig=Ee((t,n,s,o)=>{const i=[],r=Boolean(t);if(r&&i.push({name:`Downsampling failed: ${t}`,click:()=>{},icon:co.convertIcon(ia),attr:"fill-warning"}),n||s||o||r){const l=co.downsampleButtonTitle(s,o),a=co.downsampleButtonAttr(s,o),c=s?ea:Cu;i.push({name:l,icon:co.convertIcon(c),click:this.handleDownsampleClick,attr:a})}return{displaylogo:!1,displayModeBar:s||r?!0:"hover",modeBarButtons:[i,["toImage"],["zoom2d","pan2d"],["zoomIn2d","zoomOut2d","autoScale2d","resetScale2d"]]}}),this.handleAfterPlot=this.handleAfterPlot.bind(this),this.handleDownsampleClick=this.handleDownsampleClick.bind(this),this.handleModelEvent=this.handleModelEvent.bind(this),this.handlePlotUpdate=this.handlePlotUpdate.bind(this),this.handleRelayout=this.handleRelayout.bind(this),this.handleRestyle=this.handleRestyle.bind(this),this.plot=J.createRef(),this.plotWrapper=J.createRef(),this.columnFormats=[],this.dateTimeFormatterOptions={},this.decimalFormatOptions={},this.integerFormatOptions={},this.isSubscribed=!1,this.isLoadedFired=!1,this.currentSeries=0,this.state={data:null,downsamplingError:null,isDownsampleFinished:!1,isDownsampleInProgress:!1,isDownsamplingDisabled:!1,layout:{datarevision:0},revision:0}}static convertIcon(e){const[t,,,,n]=e.icon,s=`${n}`;return{width:t,path:s,ascent:t,descent:0,transform:"matrix(1, 0, 0, 1, 0, 0)"}}static downsampleButtonTitle(e,t){return e?"Downsampling in progress...":t?"Downsampling disabled, click to enable":"Downsampling enabled, click to disable"}static downsampleButtonAttr(e,t){return e?"animation-spin":t?void 0:"fill-active"}componentDidMount(){this.updateDimensions(),this.updateModelDimensions(),this.initData(),this.initFormatter();const{isActive:e}=this.props;e&&this.subscribe()}componentDidUpdate(e){const{isActive:t,settings:n}=this.props;this.updateFormatterSettings(n),t!==e.isActive&&(t?this.subscribe():this.unsubscribe())}componentWillUnmount(){this.unsubscribe()}getPlotRect(){var e,t;return(t=(e=this.plotWrapper.current)==null?void 0:e.getBoundingClientRect())!=null?t:null}initData(){const{model:e}=this.props,{layout:t}=this.state;this.setState({data:e.getData(),layout:{...t,...e.getLayout()}})}subscribe(){if(this.isSubscribed)return;const{model:e}=this.props;if(!this.rect||this.rect.width===0||this.rect.height===0){Ln.debug2("Delaying subscription until model dimensions are set");return}e.subscribe(this.handleModelEvent),this.isSubscribed=!0}unsubscribe(){if(!this.isSubscribed)return;const{model:e}=this.props;e.unsubscribe(this.handleModelEvent),this.isSubscribed=!1}handleAfterPlot(){this.plot.current!=null}handleDownsampleClick(){this.setState(({isDownsamplingDisabled:e})=>({downsamplingError:null,isDownsampleInProgress:!1,isDownsampleFinished:!1,isDownsamplingDisabled:!e}),()=>{const{model:e}=this.props,{isDownsamplingDisabled:t}=this.state;e.setDownsamplingDisabled(t)})}handleModelEvent(e){var s;const{type:t,detail:n}=e;switch(Ln.debug2("Received data update",t,n),t){case Je.EVENT_UPDATED:{this.currentSeries+=1,this.setState(i=>{const{layout:r,revision:l}=i;return typeof r.datarevision=="number"&&(r.datarevision+=1),{data:n,layout:r,revision:l+1}});const{onUpdate:o}=this.props;o({isLoading:!this.isLoadedFired});break}case Je.EVENT_LOADFINISHED:{const{onUpdate:o}=this.props;this.isLoadedFired=!0,o({isLoading:!1});break}case Je.EVENT_DISCONNECT:{const{onDisconnect:o}=this.props;o();break}case Je.EVENT_RECONNECT:{const{onReconnect:o}=this.props;o();break}case Je.EVENT_DOWNSAMPLESTARTED:{this.setState({isDownsampleFinished:!1,isDownsampleInProgress:!0,downsamplingError:null});break}case Je.EVENT_DOWNSAMPLEFINISHED:{this.setState({isDownsampleFinished:!0,isDownsampleInProgress:!1,downsamplingError:null});break}case Je.EVENT_DOWNSAMPLENEEDED:case Je.EVENT_DOWNSAMPLEFAILED:{const o=(s=n.message)!=null?s:n;this.setState({isDownsampleFinished:!1,isDownsampleInProgress:!1,isDownsamplingDisabled:!1,downsamplingError:o});const{onError:i}=this.props;i(new Error(o));break}default:Ln.debug("Unknown event type",t,e)}}handlePlotUpdate(e){const{layout:t}=e,n=ve.getLayoutRanges(t);!ht(n,this.ranges)&&(this.ranges=n,this.updateModelDimensions(!0))}handleRelayout(e){if(Ln.debug("handleRelayout",e),e.hiddenlabels!=null){const{onSettingsChanged:t}=this.props,n=[...e.hiddenlabels];t({hiddenSeries:n})}this.updateModelDimensions()}handleRestyle([e,t]){if(Ln.debug("handleRestyle",e,t),Object.keys(e).includes("visible")){const{data:n}=this.state,{onSettingsChanged:s}=this.props;if(n!=null){const o=n.reduce((i,{name:r,visible:l})=>r!=null&&l==="legendonly"?[...i,r]:i,[]);s({hiddenSeries:o})}}}updateModelDimensions(e=!1){const t=this.getPlotRect();if(!t){Ln.warn("Unable to get plotting rect");return}if(!this.rect||this.rect.width!==t.width||this.rect.height!==t.height||e){this.rect=t;const{isActive:s,model:o}=this.props;o.setDimensions(t),s&&this.subscribe()}}initFormatter(){const{settings:e}=this.props;this.updateFormatterSettings(e)}updateFormatterSettings(e){const t=us.getColumnFormats(e),n=us.getDateTimeFormatterOptions(e),{decimalFormatOptions:s={},integerFormatOptions:o={}}=e;(!ht(this.columnFormats,t)||!ht(this.dateTimeFormatterOptions,n)||!ht(this.decimalFormatOptions,s)||!ht(this.integerFormatOptions,o))&&(this.columnFormats=us.getColumnFormats(e),this.dateTimeFormatterOptions=n,this.decimalFormatOptions=s,this.integerFormatOptions=o,this.updateFormatter())}updateFormatter(){const e=new en(this.columnFormats,this.dateTimeFormatterOptions,this.decimalFormatOptions,this.integerFormatOptions),{model:t}=this.props;t.setFormatter(e)}updateDimensions(){const e=this.getPlotRect();this.plot.current!=null&&e!=null&&e.width>0&&e.height>0&&Jo.relayout(this.plot.current.el,{autosize:!0}).catch(t=>{Ln.debug("Unable to resize, promise rejected",t)})}render(){const{data:e,downsamplingError:t,isDownsampleFinished:n,isDownsampleInProgress:s,isDownsamplingDisabled:o,layout:i,revision:r}=this.state,l=this.getCachedConfig(t,n,s,o),a=e!=null;return h("div",{className:"h-100 w-100 chart-wrapper",ref:this.plotWrapper,children:a&&h(Sf,{ref:this.plot,data:e,layout:i,revision:r,config:l,onAfterPlot:this.handleAfterPlot,onError:Ln.error,onRelayout:this.handleRelayout,onUpdate:this.handlePlotUpdate,onRestyle:this.handleRestyle,useResizeHandler:!0,style:{height:"100%",width:"100%"}})})}};let xf=co;xf.defaultProps={isActive:!0,settings:{timeZone:"America/New_York",defaultDateTimeFormat:Qn.FULL_DATE_FORMAT,showTimeZone:!1,showTSeparator:!0,formatter:[]},onDisconnect:()=>{},onReconnect:()=>{},onUpdate:()=>{},onError:()=>{},onSettingsChanged:()=>{}};const ot=ne.module("FigureChartModel"),vc=class extends Je{constructor(e,t={},n=Vn){super(),this.addPendingSeries=Tt(()=>{var r;const o=ve.getAllAxes(this.figure),{pendingSeries:i}=this;for(let l=0;l<i.length;l+=1){const a=i[l],c=this.figure.charts.find(d=>d.series.includes(a));this.addSeries(a,o,(r=c==null?void 0:c.showLegend)!=null?r:null),a.subscribe()}this.pendingSeries=[]},vc.ADD_SERIES_DEBOUNCE),this.getTimeZone=he((o,i)=>{if(i!=null){const r=i.getColumnTypeFormatter(o);if(r!=null)return r.dhTimeZone}}),this.getValueTranslator=he((o,i)=>{const r=this.getTimeZone(o,i);return l=>ve.unwrapValue(l,r)}),this.getValueParser=he((o,i)=>{const r=this.getTimeZone(o,i);return l=>ve.wrapValue(l,o,r)}),this.getRangeParser=he((o,i)=>r=>{let[l,a]=r;const c=this.getValueParser(o,i);return l=c(l),a=c(a),[l,a]}),this.getAxisRangeParser=he((o,i)=>r=>{const l=ve.getSourceForAxis(o,r);return l?this.getRangeParser(l.columnType,i):a=>a}),this.handleFigureUpdated=this.handleFigureUpdated.bind(this),this.handleFigureDisconnected=this.handleFigureDisconnected.bind(this),this.handleFigureReconnected=this.handleFigureReconnected.bind(this),this.handleFigureSeriesAdded=this.handleFigureSeriesAdded.bind(this),this.handleDownsampleStart=this.handleDownsampleStart.bind(this),this.handleDownsampleFinish=this.handleDownsampleFinish.bind(this),this.handleDownsampleFail=this.handleDownsampleFail.bind(this),this.handleDownsampleNeeded=this.handleDownsampleNeeded.bind(this),this.handleRequestFailed=this.handleRequestFailed.bind(this),this.figure=e,this.settings=t,this.theme=n,this.data=[];const s={data:{},layout:ve.makeDefaultLayout(n)};this.layout={grid:{rows:e.rows,columns:e.cols,pattern:"independent"},template:s},this.seriesDataMap=new Map,this.pendingSeries=[],this.oneClicks=[],this.filterColumnMap=new Map,this.lastFilter=new Map,this.isConnected=!0,this.seriesToProcess=new Set,this.setTitle(this.getDefaultTitle()),this.initAllSeries(),this.updateAxisPositions(),this.startListeningFigure()}close(){this.figure.close(),this.addPendingSeries.cancel(),this.stopListeningFigure()}getDefaultTitle(){return this.figure.charts.length>0?this.figure.charts[0].title:""}initAllSeries(){this.oneClicks=[],this.filterColumnMap.clear();const{charts:e}=this.figure,t=ve.getAllAxes(this.figure),n=[];for(let i=0;i<e.length;i+=1){const r=e[i];for(let l=0;l<r.series.length;l+=1){const a=r.series[l];n.push(a.name),this.addSeries(a,t,r.showLegend)}}const o=[...this.seriesDataMap.keys()].filter(i=>n.indexOf(i)<0);for(let i=0;i<o.length;i+=1){const r=o[i];this.seriesDataMap.delete(r)}this.seriesToProcess=new Set([...this.seriesDataMap.keys()])}addSeries(e,t,n){const s=ve.groupArray(t,"type"),o=ve.makeSeriesDataFromSeries(e,s,ve.getSeriesVisibility(e.name,this.settings),n,this.theme);if(this.seriesDataMap.set(e.name,o),this.data=[...this.seriesDataMap.values()],e.plotStyle===I.plot.SeriesPlotStyle.STACKED_BAR?this.layout.barmode="stack":e.plotStyle===I.plot.SeriesPlotStyle.PIE&&(this.layout.hiddenlabels=ve.getHiddenLabels(this.settings)),this.layout.showlegend=this.data.length>1||e.plotStyle===I.plot.SeriesPlotStyle.PIE?n!=null?n:void 0:!1,e.oneClick!=null){const{oneClick:i}=e,{columns:r}=i;for(let l=0;l<r.length;l+=1)this.filterColumnMap.set(r[l].name,r[l]);this.oneClicks.push(i)}this.updateLayoutFormats()}subscribe(e){super.subscribe(e),this.listeners.length===1&&(this.initAllSeries(),this.subscribeFigure())}unsubscribe(e){super.unsubscribe(e),this.listeners.length===0&&this.unsubscribeFigure()}subscribeFigure(){if(!this.isConnected){ot.debug("Ignoring subscribe when figure in disconnected state");return}this.figure.subscribe(this.isDownsamplingDisabled?I.plot.DownsampleOptions.DISABLE:I.plot.DownsampleOptions.DEFAULT)}unsubscribeFigure(){this.figure.unsubscribe()}startListeningFigure(){this.figure.addEventListener(I.plot.Figure.EVENT_UPDATED,this.handleFigureUpdated),this.figure.addEventListener(I.plot.Figure.EVENT_SERIES_ADDED,this.handleFigureSeriesAdded),this.figure.addEventListener(I.plot.Figure.EVENT_DISCONNECT,this.handleFigureDisconnected),this.figure.addEventListener(I.plot.Figure.EVENT_RECONNECT,this.handleFigureReconnected),this.figure.addEventListener(I.plot.Figure.EVENT_DOWNSAMPLESTARTED,this.handleDownsampleStart),this.figure.addEventListener(I.plot.Figure.EVENT_DOWNSAMPLEFINISHED,this.handleDownsampleFinish),this.figure.addEventListener(I.plot.Figure.EVENT_DOWNSAMPLEFAILED,this.handleDownsampleFail),this.figure.addEventListener(I.plot.Figure.EVENT_DOWNSAMPLENEEDED,this.handleDownsampleNeeded),this.figure.addEventListener(I.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed)}stopListeningFigure(){this.figure.removeEventListener(I.plot.Figure.EVENT_UPDATED,this.handleFigureUpdated),this.figure.removeEventListener(I.plot.Figure.EVENT_SERIES_ADDED,this.handleFigureSeriesAdded),this.figure.removeEventListener(I.plot.Figure.EVENT_DISCONNECT,this.handleFigureDisconnected),this.figure.removeEventListener(I.plot.Figure.EVENT_RECONNECT,this.handleFigureReconnected),this.figure.removeEventListener(I.plot.Figure.EVENT_DOWNSAMPLESTARTED,this.handleDownsampleStart),this.figure.removeEventListener(I.plot.Figure.EVENT_DOWNSAMPLEFINISHED,this.handleDownsampleFinish),this.figure.removeEventListener(I.plot.Figure.EVENT_DOWNSAMPLEFAILED,this.handleDownsampleFail),this.figure.removeEventListener(I.plot.Figure.EVENT_DOWNSAMPLENEEDED,this.handleDownsampleNeeded),this.figure.removeEventListener(I.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed)}handleDownsampleStart(e){ot.debug("Downsample started",e),this.fireDownsampleStart(e.detail)}handleDownsampleFinish(e){ot.debug("Downsample finished",e),this.fireDownsampleFinish(e.detail)}handleDownsampleFail(e){ot.error("Downsample failed",e),this.fireDownsampleFail(e.detail)}handleDownsampleNeeded(e){ot.info("Downsample needed",e),this.fireDownsampleNeeded(e.detail)}handleFigureUpdated(e){const{detail:t}=e,{series:n}=t;ot.debug2("handleFigureUpdated",n);for(let o=0;o<n.length;o+=1){const i=n[o];ot.debug2("handleFigureUpdated updating series",i.name);const{sources:r}=i;for(let l=0;l<r.length;l+=1){const a=r[l],{columnType:c,type:d}=a,u=this.getValueTranslator(c,this.formatter),m=t.getArray(i,d,u);this.setDataArrayForSeries(i,d,m)}this.seriesToProcess.delete(i.name),this.seriesToProcess.size===0&&this.fireLoadFinished(),this.cleanSeries(i)}const{data:s}=this;this.fireUpdate(s)}handleRequestFailed(e){ot.error("Request failed",e)}resubscribe(){this.listeners.length>0&&(this.unsubscribeFigure(),this.subscribeFigure())}setFormatter(e){super.setFormatter(e),this.updateLayoutFormats(),this.resubscribe()}setDownsamplingDisabled(e){super.setDownsamplingDisabled(e),this.resubscribe()}handleFigureDisconnected(e){ot.debug("Figure disconnected",e),this.isConnected=!1,this.listeners.length>0&&this.unsubscribeFigure(),this.fireDisconnect()}handleFigureReconnected(e){ot.debug("Figure reconnected",e),this.isConnected=!0,this.initAllSeries(),this.fireReconnect(),this.listeners.length>0&&this.subscribeFigure()}handleFigureSeriesAdded(e){const{detail:t}=e;ot.debug("handleFigureSeriesAdded",t),this.pendingSeries.push(t),this.addPendingSeries()}setDimensions(e){super.setDimensions(e),this.updateAxisPositions()}setTitle(e){var s,o;super.setTitle(e);const t=(o=(s=(e!=null?e:"").match(/<br>/g))==null?void 0:s.length)!=null?o:0,n=ve.DEFAULT_MARGIN.t+t*ve.SUBTITLE_LINE_HEIGHT;this.layout.margin?this.layout.margin.t=n:this.layout.margin={t:n},typeof this.layout.title=="string"?this.layout.title=e:(this.layout.title={...this.layout.title},this.layout.title.text=e,this.layout.title.pad={...this.layout.title.pad},this.layout.title.pad.t=ve.DEFAULT_TITLE_PADDING.t+t*ve.SUBTITLE_LINE_HEIGHT*.5)}getPlotWidth(){var e,t,n,s;return!this.rect||!this.rect.width?0:Math.max(this.rect.width-((t=(e=this.layout.margin)==null?void 0:e.l)!=null?t:0)-((s=(n=this.layout.margin)==null?void 0:n.r)!=null?s:0),0)}getPlotHeight(){var e,t,n,s;return!this.rect||!this.rect.height?0:Math.max(this.rect.height-((t=(e=this.layout.margin)==null?void 0:e.t)!=null?t:0)-((s=(n=this.layout.margin)==null?void 0:n.b)!=null?s:0),0)}updateAxisPositions(){const e=this.getPlotWidth(),t=this.getPlotHeight();ve.updateFigureAxes(this.layout,this.figure,n=>this.getAxisRangeParser(n,this.formatter),e,t,this.theme)}updateLayoutFormats(){if(!this.formatter)return;ve.getAxisFormats(this.figure,this.formatter).forEach((t,n)=>{ot.debug(`Assigning ${n}`,this.layout[n],t);const s=this.layout[n];s!=null?Object.assign(s,t):ot.debug(`Ignoring null layout.${n}`)})}setDataArrayForSeries(e,t,n){const{name:s,plotStyle:o}=e,i=this.seriesDataMap.get(s),r=ve.getPlotlyProperty(o,t);i&&$l(i,r,n)}cleanSeries(e){const{name:t,plotStyle:n}=e,s=this.seriesDataMap.get(t);if(s!=null){if(n===I.plot.SeriesPlotStyle.HISTOGRAM){const{xLow:o,xHigh:i}=s;if(o&&i&&o.length===i.length){const r=[];for(let l=0;l<o.length;l+=1)r.push(i[l]-o[l]);s.width=r}}else if(n===I.plot.SeriesPlotStyle.LINE){const{x:o,xLow:i,xHigh:r,y:l,yLow:a,yHigh:c}=s;i&&r&&i!==o&&(s.error_x=ve.getPlotlyErrorBars(o,i,r)),a&&c&&a!==l&&(s.error_y=ve.getPlotlyErrorBars(l,a,c))}else if(n===I.plot.SeriesPlotStyle.TREEMAP){const{ids:o,labels:i}=s;o!==void 0&&i===void 0&&(s.labels=o)}}}getData(){return this.data}getLayout(){return this.layout}getFilterColumnMap(){return new Map(this.filterColumnMap)}isFilterRequired(){return this.oneClicks.find(e=>e.requireAllFiltersToDisplay)!=null}setFilter(e){if(this.oneClicks.length===0){ot.warn("Trying to set a filter, but no one click!");return}ot.debug("setFilter",e);for(let t=0;t<this.oneClicks.length;t+=1){const n=this.oneClicks[t],{columns:s}=n;new Set([...e.keys(),...this.lastFilter.keys()]).forEach(i=>{const r=e.get(i);this.lastFilter.get(i)!==r&&s.find(l=>l.name===i)!=null&&n.setValueForColumn(i,r)})}this.lastFilter=new Map(e)}setFigure(e){this.close(),this.figure=e,this.setTitle(this.getDefaultTitle()),this.initAllSeries(),this.updateAxisPositions(),this.startListeningFigure(),this.listeners.length>0&&this.subscribeFigure()}updateSettings(e){this.settings=e}};let Af=vc;Af.ADD_SERIES_DEBOUNCE=50;function Of({text:e,isOpen:t,onClose:n}){var b,y;const[s,o]=T.exports.useState(!1),[i,r]=T.exports.useState(0),[l,a]=T.exports.useState(!1),[c,d]=T.exports.useState(!1),[u,m]=T.exports.useState(!1),p=T.exports.useRef();T.exports.useEffect(function(){if(!!t){try{JSON.parse(e),m(!0)}catch{m(!1)}d(!1)}},[t,e]),T.exports.useEffect(function(){p.current&&p.current.layout()},[i]),T.exports.useEffect(function(){p.current&&p.current.updateOptions({lineNumbers:l?"on":"off"})},[l]);function g(){a(!l)}function f(){var E;const v=(E=p.current)==null?void 0:E.getModel();!u||!v||(c?(v.setValue(e),d(!1)):(v.setValue(JSON.stringify(JSON.parse(e),void 0,2)),d(!0)),C())}function C(){var E,M;const v=p.current;!v||a(((M=(E=v.getModel())==null?void 0:E.getLineCount())!=null?M:0)>1)}function w(){s&&(p.current=void 0,n())}function S(v){p.current=v,v.onDidContentSizeChange(({contentHeight:E})=>r(E)),C()}return!t&&!s?null:R(Dd,{isOpen:t,centered:!0,keyboard:!0,toggle:w,onOpened:()=>o(!0),onClosed:()=>{o(!1),r(0)},className:"theme-bg-dark cell-overflow-modal",children:[R(Fd,{toggle:n,children:[h("h5",{className:"overflow-modal-title",children:"Cell Contents"}),h(ha,{kind:"inline",tooltip:"Copy cell contents",copy:(y=(b=p.current)==null?void 0:b.getValue())!=null?y:e}),h(K,{kind:"inline",active:l,icon:Xd,tooltip:"Toggle line numbers",onClick:g}),u&&h(K,{kind:"inline",icon:$d,active:c,tooltip:"Format as JSON",onClick:f})]}),h(Nd,{style:{height:i},children:h(Br,{onEditorInitialized:S,settings:{value:e,readOnly:!0,wordWrap:"on",language:u?"typescript":"plaintext",folding:u,padding:{bottom:16},lineNumbers:l?"on":"off",overviewRulerLanes:0,renderLineHighlight:"none",find:{seedSearchStringFromSelection:"never"}}})})]})}const kf="###,##0";function Lf({gotoRow:e,gotoRowError:t,onSubmit:n,isShown:s,onEntering:o,onEntered:i,onExiting:r,onExited:l,model:a,onGotoRowNumberChanged:c,onClose:d}){const u=T.exports.useRef(null),m="Row number",{rowCount:p}=a;return T.exports.useEffect(()=>{var g;document.activeElement!==u.current&&((g=u.current)==null||g.select())},[e]),h(Ti,{isShown:s,className:G("goto-row"),onEntering:o,onEntered:()=>{var g;i(),(g=u.current)==null||g.select()},onExiting:r,onExited:l,children:R(Fe,{children:[R("div",{className:"goto-row-wrapper",children:[h("div",{className:"goto-row-text",children:"Go to row"}),h("div",{className:"goto-row-input",children:h("input",{ref:u,type:"number",onKeyDown:g=>{g.key==="Enter"&&(g.stopPropagation(),g.preventDefault(),n())},className:G("form-control",{"is-invalid":t!==""}),placeholder:m,onChange:g=>{c(g)},value:e})}),R("div",{className:"goto-row-text",children:["of ",dh.i18n.NumberFormat.format(kf,p)]}),t&&h("div",{className:"goto-row-error text-danger",children:t})]}),h("div",{className:"goto-row-close",children:h(K,{kind:"ghost",onClick:d,children:h(Q,{icon:mo,style:{marginRight:"0"}})})})]})})}const le=ne.module("IrisGrid"),Pf=500,Hf=250,_f=250,Tc=Object.freeze({aggregations:[],showOnTop:!1}),Vf="yyyy-MM-dd'T'HH:mm:ss.SSSSSSSSS z";function Wl({advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:o,rollupConfig:i,searchFilter:r,selectDistinctColumns:l,sorts:a}){return e.size===0&&t.aggregations.length===0&&n.length===0&&s.size===0&&o===A.REVERSE_TYPE.NONE&&i==null&&r==null&&l.length===0&&a.length===0}const Un=class extends T.exports.Component{constructor(e){super(e),this.getAdvancedMenuOpenedHandler=he(P=>this.handleAdvancedMenuOpened.bind(this,P),{max:100}),this.getCachedAdvancedFilterMenuActions=he((P,U,$,X,ee)=>h(kr,{model:P,column:U,onFilterChange:this.handleAdvancedFilterChange,onSortChange:this.handleAdvancedFilterSortChange,onDone:this.handleAdvancedFilterDone,options:$,sortDirection:X,formatter:ee}),{max:50}),this.getCachedOptionItems=he((P,U,$,X,ee,ie,ge,fe,de,ye,Xe,_t,Ye,We,Vt,Et)=>{const Ve=[];return P&&Ve.push({type:Se.CHART_BUILDER,title:"Chart Builder",icon:wu}),Ve.push({type:Se.VISIBILITY_ORDERING_BUILDER,title:"Hide, Group, and Order Columns",icon:mr}),$&&Ve.push({type:Se.CONDITIONAL_FORMATTING,title:"Conditional Formatting",icon:hr}),U&&Ve.push({type:Se.CUSTOM_COLUMN_BUILDER,title:"Custom Columns",icon:iu}),X&&Ve.push({type:Se.ROLLUP_ROWS,title:"Rollup Rows",icon:Ru}),ee&&Ve.push({type:Se.AGGREGATIONS,title:"Aggregate Columns",icon:ru}),ie&&Ve.push({type:Se.SELECT_DISTINCT,title:"Select Distinct Values",icon:ou}),ge&&Ye&&Ve.push({type:Se.TABLE_EXPORTER,title:"Download CSV",icon:Ud}),Et&&Ve.push({type:Se.ADVANCED_SETTINGS,title:"Advanced Settings",icon:au}),Ve.push({type:Se.QUICK_FILTERS,title:"Quick Filters",subtitle:fe.shortcut.getDisplayText(),icon:ei,isOn:Xe,onChange:fe.action}),We&&Ve.push({type:Se.SEARCH_BAR,title:"Search Bar",subtitle:de.shortcut.getDisplayText(),icon:na,isOn:_t,onChange:de.action}),Ve.push({type:Se.GOTO,title:"Go to",subtitle:ye.shortcut.getDisplayText(),icon:su,isOn:Vt,onChange:ye.action}),Ve},{max:1}),this.getCachedHiddenColumns=he(P=>P,{max:1,normalizer:([P])=>P.join()}),this.getAggregationMap=he((P,U)=>{const $={};return U.forEach(({operation:X,selected:ee,invert:ie})=>{$[X]=zn.getOperationColumnNames(P,X,ee,ie)}),$}),this.getOperationMap=he((P,U)=>{const $={};return U.filter(X=>!zn.isRollupOperation(X.operation)).forEach(({operation:X,selected:ee,invert:ie})=>{zn.getOperationColumnNames(P,X,ee,ie).forEach(ge=>{var de;const fe=[...(de=$[ge])!=null?de:[],X];$[ge]=fe})}),$}),this.getOperationOrder=he(P=>P.map(U=>U.operation).filter(U=>!zn.isRollupOperation(U))),this.getCachedFormatColumns=he((P,U)=>Mm(P,U)),this.getCachedModelColumns=he((P,U)=>P.columns),this.getCachedPreviewFormatColumns=he((P,U,$,X)=>{if(le.debug("getCachedPreviewFormatColumns",U,$,X),$!==void 0&&X!==void 0){const ee=[...U];return ee[X]=$,this.getCachedFormatColumns(P,ee)}return this.getCachedFormatColumns(P,U)}),this.getModelRollupConfig=he((P,U,$)=>te.getModelRollupConfig(P,U,$)),this.getModelTotalsConfig=he((P,U,$)=>{var fe,de,ye;const{aggregations:X,showOnTop:ee}=$;if(((de=(fe=U==null?void 0:U.columns)==null?void 0:fe.length)!=null?de:0)>0||((ye=X==null?void 0:X.length)!=null?ye:0)===0)return null;const ie=this.getOperationMap(P,X),ge=this.getOperationOrder(X);return{operationMap:ie,operationOrder:ge,showOnTop:ee}}),this.getCachedStateOverride=he((P,U,$,X,ee,ie,ge,fe,de,ye)=>({hoverSelectColumn:P,isFilterBarShown:U,isSelectingColumn:$,loadingScrimProgress:X,quickFilters:ee,advancedFilters:ie,sorts:ge,reverseType:fe,rollupConfig:de,isMenuShown:ye}),{max:1}),this.getCachedFilter=he((P,U,$,X,ee)=>[...P!=null?P:[],...X!=null?X:[],...te.getFiltersFromFilterMap(U),...te.getFiltersFromFilterMap($),...ee!==void 0?[ee]:[]],{max:1}),this.getCachedTheme=he((P,U,$)=>({...Ba,...P,autoSelectRow:!U,rowFooterWidth:$>0?P.rowFooterWidth:0}),{max:1}),this.getAlwaysFetchColumns=he((P,U,$,X,ee,ie)=>{const ge=[];for(let de=0;de<X;de+=1)ge.push(U[B.getModelIndex(de,$)].name);for(let de=0;de<ee;de+=1)ge.push(U[B.getModelIndex(U.length-1-de,$)].name);if(ie)for(let de=ie[0];de<=ie[1];de+=1)ge.push(U[B.getModelIndex(de,$)].name);return[...new Set([...P,...ge])]}),this.updateSearchFilter=Tt((P,U,$,X)=>{const ee=qo.createSearchFilter(P,U,$,X);this.setState({searchFilter:ee})},Hf),this.handleConditionalFormatEditorUpdate=Tt(P=>{this.setState({conditionalFormatPreview:P})},_f),this.handleDownloadProgressUpdate=Yn((P,U)=>{const{tableDownloadStatus:$}=this.state;$===St.DOWNLOAD_STATUS.DOWNLOADING&&this.setState({tableDownloadProgress:P,tableDownloadEstimatedTime:U})},Pf),this.getOverflowButtonTooltip=he(P=>{if(P==null)return null;const U={position:"absolute",...P,pointerEvents:"none"};return h("div",{style:U,children:h(Be,{options:{placement:"left",modifiers:{flip:{behavior:["left","right"]}}},ref:this.handleTooltipRef,children:"View full contents"},Date.now())})}),this.handleAdvancedFilterChange=this.handleAdvancedFilterChange.bind(this),this.handleAdvancedFilterSortChange=this.handleAdvancedFilterSortChange.bind(this),this.handleAdvancedFilterDone=this.handleAdvancedFilterDone.bind(this),this.handleAdvancedMenuOpened=this.handleAdvancedMenuOpened.bind(this),this.handleGotoRowOpened=this.handleGotoRowOpened.bind(this),this.handleGotoRowClosed=this.handleGotoRowClosed.bind(this),this.handleAdvancedMenuClosed=this.handleAdvancedMenuClosed.bind(this),this.handleAggregationChange=this.handleAggregationChange.bind(this),this.handleAggregationsChange=this.handleAggregationsChange.bind(this),this.handleAggregationEdit=this.handleAggregationEdit.bind(this),this.handleAnimationLoop=this.handleAnimationLoop.bind(this),this.handleAnimationStart=this.handleAnimationStart.bind(this),this.handleAnimationEnd=this.handleAnimationEnd.bind(this),this.handleChartChange=this.handleChartChange.bind(this),this.handleChartCreate=this.handleChartCreate.bind(this),this.handleGridError=this.handleGridError.bind(this),this.handleFilterBarChange=this.handleFilterBarChange.bind(this),this.handleFilterBarDone=this.handleFilterBarDone.bind(this),this.handleFilterBarTab=this.handleFilterBarTab.bind(this),this.handleCancel=this.handleCancel.bind(this),this.handleMenu=this.handleMenu.bind(this),this.handleMenuClose=this.handleMenuClose.bind(this),this.handleMenuSelect=this.handleMenuSelect.bind(this),this.handleMenuBack=this.handleMenuBack.bind(this),this.handleRequestFailed=this.handleRequestFailed.bind(this),this.handleSelectionChanged=this.handleSelectionChanged.bind(this),this.handleMovedColumnsChanged=this.handleMovedColumnsChanged.bind(this),this.handleHeaderGroupsChanged=this.handleHeaderGroupsChanged.bind(this),this.handleUpdate=this.handleUpdate.bind(this),this.handleTooltipRef=this.handleTooltipRef.bind(this),this.handleViewChanged=this.handleViewChanged.bind(this),this.handleFormatSelection=this.handleFormatSelection.bind(this),this.handleConditionalFormatCreate=this.handleConditionalFormatCreate.bind(this),this.handleConditionalFormatEdit=this.handleConditionalFormatEdit.bind(this),this.handleConditionalFormatsChange=this.handleConditionalFormatsChange.bind(this),this.handleConditionalFormatEditorSave=this.handleConditionalFormatEditorSave.bind(this),this.handleConditionalFormatEditorCancel=this.handleConditionalFormatEditorCancel.bind(this),this.handleUpdateCustomColumns=this.handleUpdateCustomColumns.bind(this),this.handleCustomColumnsChanged=this.handleCustomColumnsChanged.bind(this),this.handleSelectDistinctChanged=this.handleSelectDistinctChanged.bind(this),this.handlePendingDataUpdated=this.handlePendingDataUpdated.bind(this),this.handlePendingCommitClicked=this.handlePendingCommitClicked.bind(this),this.handlePendingDiscardClicked=this.handlePendingDiscardClicked.bind(this),this.handleGotoRowSelectedRowNumberSubmit=this.handleGotoRowSelectedRowNumberSubmit.bind(this),this.focusRowInGrid=this.focusRowInGrid.bind(this),this.handleDownloadTable=this.handleDownloadTable.bind(this),this.handleDownloadTableStart=this.handleDownloadTableStart.bind(this),this.handleCancelDownloadTable=this.handleCancelDownloadTable.bind(this),this.handleDownloadCanceled=this.handleDownloadCanceled.bind(this),this.handleDownloadCompleted=this.handleDownloadCompleted.bind(this),this.handlePartitionAppend=this.handlePartitionAppend.bind(this),this.handlePartitionChange=this.handlePartitionChange.bind(this),this.handlePartitionFetchAll=this.handlePartitionFetchAll.bind(this),this.handlePartitionDone=this.handlePartitionDone.bind(this),this.handleColumnVisibilityChanged=this.handleColumnVisibilityChanged.bind(this),this.handleCrossColumnSearch=this.handleCrossColumnSearch.bind(this),this.handleRollupChange=this.handleRollupChange.bind(this),this.handleOverflowClose=this.handleOverflowClose.bind(this),this.getColumnBoundingRect=this.getColumnBoundingRect.bind(this),this.handleGotoRowSelectedRowNumberChanged=this.handleGotoRowSelectedRowNumberChanged.bind(this),this.grid=null,this.gridWrapper=null,this.lastLoadedConfig=null,this.pending=new Ci,this.globalColumnFormats=[],this.decimalFormatOptions={},this.integerFormatOptions={},this.truncateNumbersWithPound=!1,this.renderer=new ho,this.tableSaver=null,this.crossColumnRef=J.createRef(),this.isAnimating=!1,this.filterInputRef=J.createRef(),this.toggleFilterBarAction={action:()=>this.toggleFilterBar(),shortcut:kt.TABLE.TOGGLE_QUICK_FILTER},this.toggleSearchBarAction={action:()=>this.toggleSearchBar(),shortcut:kt.TABLE.TOGGLE_SEARCH},this.toggleGotoRowAction={action:()=>this.toggleGotoRow(),shortcut:kt.TABLE.GOTO_ROW},this.discardAction={action:()=>{const{model:P}=this.props;Oe(P)&&P.isEditable&&P.pendingDataMap.size>0&&this.discardPending().catch(le.error)},shortcut:kt.INPUT_TABLE.DISCARD},this.commitAction={action:()=>{const{model:P}=this.props;Oe(P)&&P.isEditable&&P.pendingDataMap.size>0&&P.pendingDataErrors.size===0&&this.commitPending().catch(le.error)},shortcut:kt.INPUT_TABLE.COMMIT},this.contextActions=[this.toggleFilterBarAction,this.toggleSearchBarAction,this.toggleGotoRowAction,this.discardAction,this.commitAction];const{aggregationSettings:t,conditionalFormats:n,customColumnFormatMap:s,isFilterBarShown:o,isSelectingPartition:i,model:r,movedColumns:l,movedRows:a,partition:c,partitionColumn:d,rollupConfig:u,userColumnWidths:m,userRowHeights:p,showSearchBar:g,searchValue:f,selectedSearchColumns:C,invertSearchColumns:w,advancedFilters:S,quickFilters:b,selectDistinctColumns:y,pendingDataMap:v,canCopy:E,frozenColumns:M,columnHeaderGroups:F}=e,x=[new Bm(this),new Gm(this)];E&&x.push(new _m(this));const V=[new zm(this),new Wm(this),new $m(this),new Ym(this),new Xm(this),new Tn(this),new Km(this),new Qm(this)],_=l.length>0?l:r.initialMovedColumns,N=a.length>0?a:r.initialMovedRows,H=new Jm({userColumnWidths:new Map(m),userRowHeights:new Map(p),movedColumns:_}),k=C!=null?C:[],z=qo.createSearchFilter(f,k,r.columns,w);this.state={isFilterBarShown:o,isSelectingPartition:i,focusedFilterBarColumn:null,metricCalculator:H,metrics:void 0,keyHandlers:x,mouseHandlers:V,partition:c,partitionColumn:d,partitionTable:null,partitionFilters:[],quickFilters:b?new Map(b):new Map,advancedFilters:new Map(S),shownAdvancedFilter:null,hoverAdvancedFilter:null,sorts:[],reverseType:A.REVERSE_TYPE.NONE,customColumns:[],selectDistinctColumns:y,selectedRanges:[],copyOperation:null,loadingText:null,loadingScrimProgress:null,loadingSpinnerShown:!1,movedColumns:_,movedRows:N,shownColumnTooltip:null,formatter:new en,isMenuShown:!1,customColumnFormatMap:new Map(s),conditionalFormats:n,conditionalFormatEditIndex:null,conditionalFormatPreview:void 0,hoverSelectColumn:null,isTableDownloading:!1,isReady:!1,tableDownloadStatus:"",tableDownloadProgress:0,tableDownloadEstimatedTime:0,showSearchBar:g,searchFilter:z,searchValue:f,selectedSearchColumns:k,invertSearchColumns:w,rollupConfig:u,rollupSelectedColumns:[],aggregationSettings:t,selectedAggregation:null,openOptions:[],pendingRowCount:0,pendingDataMap:v!=null?v:new Map,pendingDataErrors:new Map,pendingSavePromise:null,pendingSaveError:null,toastMessage:null,frozenColumns:M,showOverflowModal:!1,overflowText:"",overflowButtonTooltipProps:null,isGotoRowShown:!1,gotoRow:"",gotoRowError:"",columnHeaderGroups:F!=null?F:r.initialColumnHeaderGroups}}static makeQuickFilter(e,t,n){try{return A.makeQuickFilter(e,t,n)}catch(s){le.error("Error creating quick filter",s)}return null}componentDidMount(){const{partitionColumn:e,model:t}=this.props,n=e!=null?e:t.columns.find(s=>s.isPartitionColumn);t.isFilterRequired&&t.isValuesTableAvailable&&n!=null?this.loadPartitionsTable(n):this.initState(),this.startListening(t)}componentDidUpdate(e){var d;const{inputFilters:t,isSelectingColumn:n,settings:s,model:o,customFilters:i,sorts:r}=this.props;o!==e.model&&(this.stopListening(e.model),this.startListening(o));const l=t!==e.inputFilters?t.filter(u=>!e.inputFilters.includes(u)):[];if(l.length>0){const{advancedSettings:u}=this.props,m=(d=u.get(ms.FILTER_CONTROL_CHANGE_CLEARS_ALL_FILTERS))!=null?d:!1;m&&(this.clearGridInputField(),this.clearCrossColumSearch()),this.startLoading("Filtering...",!0),this.applyInputFilters(l,m)}n!==e.isSelectingColumn&&this.resetColumnSelection(),s!==e.settings&&this.updateFormatterSettings(s),i!==e.customFilters&&this.startLoading("Filtering...",!0),r!==e.sorts&&this.updateSorts(r);const{loadingScrimStartTime:a,loadingScrimFinishTime:c}=this;a!=null&&c!=null&&window.requestAnimationFrame(()=>{const u=Date.now(),m=u-a,p=c-a,g=Math.min(m/p,1);c<u&&(this.loadingScrimStartTime=void 0,this.loadingScrimFinishTime=void 0),this.setState(f=>f.loadingScrimProgress==null?(le.debug2("Ignoring scrim update because loading cancelled."),null):{loadingScrimProgress:g})}),this.sendStateChange()}componentWillUnmount(){const{model:e}=this.props;this.stopListening(e),this.pending.cancel(),this.updateSearchFilter.cancel(),this.loadingTimer&&clearTimeout(this.loadingTimer),this.handleDownloadProgressUpdate.cancel(),this.animationFrame!==void 0&&cancelAnimationFrame(this.animationFrame)}getValueForCell(e,t,n=!1){const{model:s}=this.props,o=this.getModelColumn(e),i=this.getModelRow(t);if(n&&o!=null&&i!=null){const r=s.valueForCell(o,i);if(A.isDateType(s.columns[o].type)){const{formatter:l}=s;return I.i18n.DateTimeFormat.format(Vf,r,I.i18n.TimeZone.getTimeZone(l.timeZone))}return r}return n?null:o!=null&&i!=null?s.textForCell(o,i):""}getModelColumn(e){const{metrics:t}=this.state;O(t);const{modelColumns:n}=t;return n==null?null:e!=null?n.get(e):null}getModelRow(e){const{metrics:t}=this.state;O(t);const{modelRows:n}=t;return n==null?null:e!=null?n.get(e):null}getTheme(){var n;const{model:e,theme:t}=this.props;return this.getCachedTheme(t,(n=Oe(e)&&e.isEditable)!=null?n:!1,e.floatingTopRowCount+e.floatingBottomRowCount)}getVisibleColumn(e){const{movedColumns:t}=this.state;return B.getVisibleIndex(e,t)}applyInputFilters(e,t=!1){const{model:n}=this.props,{advancedFilters:s,quickFilters:o}=this.state,i=t?new Map:new Map(s),r=t?new Map:new Map(o);let l=t&&s.size>0;e.forEach(({name:a,type:c,value:d})=>{const u=n.columns.findIndex(({name:m,type:p})=>m===a&&p===c);u>=0?(l=i.delete(u)||l,l=this.applyQuickFilter(u,d,r)||l):le.error("Unable to find column for inputFilter",a,c,d)}),l&&this.setState({quickFilters:r,advancedFilters:i})}applyQuickFilter(e,t,n){const{model:s}=this.props,{formatter:o}=s,i=s.columns[e];if(t!=null&&`${t}`.trim().length>0){const r=n.get(e);if(r!=null){const{text:l}=r;if(l===t)return le.debug2("Ignoring change to existing filter"),!1}return n.set(e,{text:t,filter:Un.makeQuickFilter(i,t,o.timeZone)}),!0}return n.delete(e)}setAdvancedFilterMap(e){this.setState({advancedFilters:e})}setAdvancedFilter(e,t,n){le.debug("Setting advanced filter",e,t),this.startLoading("Filtering...",!0),this.setState(({advancedFilters:s})=>{const o=new Map(s);return t==null?o.delete(e):o.set(e,{filter:t,options:n}),{advancedFilters:o}})}setQuickFilter(e,t,n){le.debug("Setting quick filter",e,t,n),this.startLoading("Filtering...",!0),this.setState(({quickFilters:s})=>{const o=new Map(s);return o.set(e,{filter:t,text:n}),{quickFilters:o}})}setFilterMap(e){var o;le.debug("setFilterMap",e);const{advancedSettings:t}=this.props;((o=t.get(ms.LINK_CHANGE_CLEARS_ALL_FILTERS))!=null?o:!1)&&this.clearAllFilters();const{model:s}=this.props;e.forEach(({columnType:i,filterList:r},l)=>{const a=s.columns.find(u=>u.name===l&&u.type===i);if(a==null)return;const c=s.getColumnIndexByName(a.name);O(c);const d=te.combineFiltersFromList(i,r);if(d.length===0)this.removeQuickFilter(c);else{const{formatter:u}=s;this.setQuickFilter(c,Un.makeQuickFilter(a,d,u.timeZone),`${d}`)}})}removeColumnFilter(e){this.startLoading("Filtering...",!0),this.setState(({advancedFilters:t,quickFilters:n})=>{const s=t?new Map(t):new Map,o=n?new Map(n):new Map;return o.delete(e),s.delete(e),{quickFilters:o,advancedFilters:s}})}removeQuickFilter(e){this.startLoading("Clearing Filter...",!0),this.setState(({quickFilters:t})=>{const n=new Map(t);return n.delete(e),{quickFilters:n}})}clearAllFilters(){le.debug("Clearing all filters");const{advancedFilters:e,quickFilters:t,searchFilter:n}=this.state;t.size===0&&e.size===0&&n===null||(this.clearGridInputField(),this.startLoading("Clearing Filters...",!0),this.setState({quickFilters:new Map,advancedFilters:new Map,searchValue:"",searchFilter:void 0}))}clearCrossColumSearch(){le.debug("Clearing cross-column search"),this.setState({searchValue:"",searchFilter:void 0})}clearGridInputField(){this.filterInputRef.current!=null&&this.filterInputRef.current.setValue("")}rebuildFilters(){le.debug("Rebuilding filters");const{model:e}=this.props,{advancedFilters:t,quickFilters:n}=this.state,{columns:s,formatter:o}=e,i=new Map,r=new Map;t.forEach((l,a)=>{const{options:c}=l,d=s[a],u=A.makeAdvancedFilter(d,c,o.timeZone);i.set(a,{options:c,filter:u})}),n.forEach((l,a)=>{const{text:c}=l,d=s[a];r.set(a,{text:c,filter:Un.makeQuickFilter(d,c,o.timeZone)})}),this.startLoading("Rebuilding filters...",!0),this.setState({quickFilters:r,advancedFilters:i})}setFilters({quickFilters:e,advancedFilters:t}){this.setState({quickFilters:e,advancedFilters:t})}updateFormatterSettings(e,t=!0){var m,p,g;const n=us.getColumnFormats(e),s=us.getDateTimeFormatterOptions(e),o=(m=e==null?void 0:e.defaultDecimalFormatOptions)!=null?m:{},i=(p=e==null?void 0:e.defaultIntegerFormatOptions)!=null?p:{},r=(g=e==null?void 0:e.truncateNumbersWithPound)!=null?g:!1,l=!ht(this.globalColumnFormats,n),a=!ht(this.dateTimeFormatterOptions,s),c=!ht(this.decimalFormatOptions,e==null?void 0:e.defaultDecimalFormatOptions),d=!ht(this.integerFormatOptions,i),u=this.truncateNumbersWithPound!==r;(l||a||c||d||u)&&(this.globalColumnFormats=n,this.dateTimeFormatterOptions=s,this.decimalFormatOptions=o,this.integerFormatOptions=i,this.truncateNumbersWithPound=r,this.updateFormatter({},t),a&&t&&this.rebuildFilters())}updateFormatter(e,t=!0){var r;const{customColumnFormatMap:n}=this.state,s={customColumnFormatMap:n,...e},o=[...(r=this.globalColumnFormats)!=null?r:[],...s.customColumnFormatMap.values()],i=new en(o,this.dateTimeFormatterOptions,this.decimalFormatOptions,this.integerFormatOptions,this.truncateNumbersWithPound);le.debug("updateFormatter",this.globalColumnFormats,o),this.setState({...s,formatter:i},()=>{t&&this.grid&&this.grid.forceUpdate()})}initFormatter(){const{settings:e}=this.props;this.updateFormatterSettings(e)}initState(){const{applyInputFiltersOnInit:e,inputFilters:t,sorts:n,model:s,reverseType:o,customColumns:i,searchValue:r,selectedSearchColumns:l,invertSearchColumns:a}=this.props,c=l!=null?l:[],d=qo.createSearchFilter(r,c,s.columns,a);if(e){const u=t.filter(m=>m.value!=null);this.applyInputFilters(u)}this.setState({sorts:n,reverseType:o,customColumns:i,isReady:!0,searchFilter:d}),this.initFormatter()}async loadPartitionsTable(e){const{model:t}=this.props;this.setState({isSelectingPartition:!0});try{const n=await this.pending.add(t.valuesTable(e),r=>r.close()),s=n.columns[0],o=s.sort().desc();n.applySort([o]),n.setViewport(0,0,[s]);const i=await this.pending.add(n.getViewportData());if(i.rows.length>0){const l=i.rows[0].get(s);this.updatePartition(l,e),this.setState({isSelectingPartition:!0})}else le.info("Table does not have any data, just fetching all"),this.setState({isSelectingPartition:!1}),this.handlePartitionFetchAll();this.setState({partitionTable:n,partitionColumn:e},()=>{this.initState()})}catch(n){this.handleTableLoadError(n)}}updatePartition(e,t){const s=[t.filter().eq(I.FilterValue.ofString(e))];this.setState({partition:e,partitionFilters:s})}copyCell(e,t,n=!1){const{canCopy:s}=this.props;if(s){const o=String(this.getValueForCell(e,t,n));po(o).catch(i=>le.error("Unable to copy cell",i))}else le.error("Attempted to copyCell for user without copy permission.")}copyRanges(e,t=!1,n=!0,s){const{model:o,canCopy:i}=this.props,{metricCalculator:r,movedColumns:l}=this.state,a=r.getUserColumnWidths();if(i){const c={ranges:Z.boundedRanges(e,o.columnCount,o.rowCount),includeHeaders:t,formatValues:n,movedColumns:l,userColumnWidths:a,error:s};this.setState({copyOperation:c})}else le.error("Attempted copyRanges for user without copy permission.")}startLoading(e,t=!1){var s,o;this.setState({loadingText:e});const n=this.getTheme();if(t&&this.grid&&(this.grid.clearSelectedRanges(),this.grid.setViewState({top:0},!0)),this.loadingScrimStartTime==null){const{minScrimTransitionTime:i,maxScrimTransitionTime:r}=n;O(i),O(r);const l=(o=(s=this.gridWrapper)==null?void 0:s.getBoundingClientRect().height)!=null?o:0,a=Math.max(i,Math.min(l/2,r));this.loadingScrimStartTime=Date.now(),this.loadingScrimFinishTime=this.loadingScrimStartTime+a,this.setState({loadingScrimProgress:0}),this.loadingTimer=setTimeout(()=>{this.setState({loadingSpinnerShown:!0})},Un.loadingSpinnerDelay)}}stopLoading(){this.loadingScrimStartTime=void 0,this.loadingScrimFinishTime=void 0,this.setState({loadingText:null,loadingScrimProgress:null,loadingSpinnerShown:!1}),this.loadingTimer!=null&&(clearTimeout(this.loadingTimer),this.loadingTimer=void 0)}rollback(){if(this.lastLoadedConfig){le.debug("loading last loading config",this.lastLoadedConfig);const{advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:o,rollupConfig:i,searchFilter:r,selectDistinctColumns:l,sorts:a}=this.lastLoadedConfig;this.lastLoadedConfig=null,this.setState({advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:o,rollupConfig:i,searchFilter:r,selectDistinctColumns:l,sorts:a})}else le.debug("remove all sorts, filters, and custom columns"),this.setState({advancedFilters:new Map,aggregationSettings:Tc,customColumns:[],quickFilters:new Map,reverseType:A.REVERSE_TYPE.NONE,rollupConfig:void 0,selectDistinctColumns:[],sorts:[]})}canRollback(){return this.lastLoadedConfig!=null||!Wl(this.state)}startListening(e){e.addEventListener(me.EVENT.UPDATED,this.handleUpdate),e.addEventListener(me.EVENT.REQUEST_FAILED,this.handleRequestFailed),e.addEventListener(me.EVENT.COLUMNS_CHANGED,this.handleCustomColumnsChanged),e.addEventListener(me.EVENT.PENDING_DATA_UPDATED,this.handlePendingDataUpdated)}stopListening(e){e.removeEventListener(me.EVENT.UPDATED,this.handleUpdate),e.removeEventListener(me.EVENT.REQUEST_FAILED,this.handleRequestFailed),e.removeEventListener(me.EVENT.COLUMNS_CHANGED,this.handleCustomColumnsChanged),e.removeEventListener(me.EVENT.PENDING_DATA_UPDATED,this.handlePendingDataUpdated)}focus(){var e;(e=this.grid)==null||e.focus()}focusFilterBar(e){var d,u,m;const{movedColumns:t}=this.state,{model:n}=this.props,{columnCount:s}=n,o=B.getModelIndex(e,t);if(e==null||e<0||s<=e||!n.isFilterable(o)){this.setState({focusedFilterBarColumn:null});return}const{metricCalculator:i,metrics:r}=this.state;O(r);const{left:l,rightVisible:a,lastLeft:c}=r;if(e<l)(d=this.grid)==null||d.setViewState({left:e},!0);else if(a<e){const p=(u=this.grid)==null?void 0:u.getMetricState();O(p);const g=i.getLastLeft(p,e,i.getVisibleWidth(p));(m=this.grid)==null||m.setViewState({left:Math.min(g,c),leftOffset:0},!0)}this.lastFocusedFilterBarColumn=e,this.setState({focusedFilterBarColumn:e,isFilterBarShown:!0})}hideColumnByVisibleIndex(e){var s;const{metricCalculator:t,movedColumns:n}=this.state;t.setColumnWidth(B.getModelIndex(e,n),0),(s=this.grid)==null||s.forceUpdate()}freezeColumnByColumnName(e){const{frozenColumns:t,movedColumns:n}=this.state,{model:s}=this.props;le.debug2("freezing column",e);const o=t==null?new Set(s.frozenColumns):new Set(t);o.add(e);const i=s.getColumnIndexByName(e);O(i);const r=B.getVisibleIndex(i,n),l=B.moveItem(r,o.size-1,n);this.setState({frozenColumns:[...o],movedColumns:l})}unFreezeColumnByColumnName(e){const{frozenColumns:t,movedColumns:n}=this.state,{model:s}=this.props;le.debug2("unfreezing column",e);const o=t==null?new Set(s.frozenColumns):new Set(t);o.delete(e);const i=s.getColumnIndexByName(e);O(i);const r=B.getVisibleIndex(i,n),l=B.moveItem(r,o.size+s.frontColumns.length,n);this.setState({frozenColumns:[...o],movedColumns:l})}handleColumnVisibilityChanged(e,t){var s;const{metricCalculator:n}=this.state;t?e.forEach(o=>{n.resetColumnWidth(o)}):e.forEach(o=>{n.setColumnWidth(o,0)}),(s=this.grid)==null||s.forceUpdate()}handleCrossColumnSearch(e,t,n){const{model:s}=this.props;this.updateSearchFilter(e,t,s.columns,n),this.setState({searchValue:e,selectedSearchColumns:t,invertSearchColumns:n})}handleAnimationLoop(){var e,t;(e=this.grid)==null||e.updateCanvasScale(),(t=this.grid)==null||t.updateCanvas(),this.isAnimating&&(this.animationFrame=requestAnimationFrame(this.handleAnimationLoop))}handleAnimationStart(){le.debug2("handleAnimationStart"),this.isAnimating=!0,this.animationFrame=requestAnimationFrame(this.handleAnimationLoop)}handleAnimationEnd(){le.debug2("handleAnimationEnd"),this.isAnimating=!1}handlePartitionAppend(e){const{onPartitionAppend:t}=this.props,{partitionColumn:n}=this.state;!n||t(n,e)}handlePartitionChange(e){const{partitionColumn:t}=this.state;!t||this.updatePartition(e,t)}handlePartitionFetchAll(){this.setState({partitionFilters:[],isSelectingPartition:!1})}handlePartitionDone(){this.setState({isSelectingPartition:!1})}handleTableLoadError(e){if(Pe.isCanceled(e))return;le.error(e);const{onError:t}=this.props;t(e)}showAllColumns(){var s;const{metricCalculator:e}=this.state,n=[...e.getUserColumnWidths().entries()];for(let o=0;o<n.length;o+=1){const[i,r]=n[o];r===0&&e.resetColumnWidth(i)}(s=this.grid)==null||s.forceUpdate()}toggleSort(e,t){le.info("Toggling sort for column",e);const{model:n}=this.props,{sorts:s}=this.state,o=this.getModelColumn(e);O(o);const i=A.toggleSortForColumn(s,n.columns,o,t);this.updateSorts(i)}updateSorts(e){var t;this.startLoading("Sorting..."),this.setState({sorts:e}),(t=this.grid)==null||t.forceUpdate()}sortColumn(e,t=A.sortDirection.none,n=!1,s=!1){var r;O(e);const{model:o}=this.props,i=A.sortColumn(o.sort,o.columns,e,t,n,s);this.startLoading("Sorting..."),this.setState({sorts:i}),(r=this.grid)==null||r.forceUpdate()}reverse(e){var t;this.startLoading("Reversing..."),this.setState({reverseType:e}),(t=this.grid)==null||t.forceUpdate()}isReversible(){const{model:e}=this.props;return e.isReversible}toggleFilterBar(e=this.lastFocusedFilterBarColumn){var n;let{isFilterBarShown:t}=this.state;if(t=!t,this.setState({isFilterBarShown:t}),t)if(e!=null)this.focusFilterBar(e);else{let s=0;const{model:o}=this.props,{columnCount:i}=o;for(let r=0;r<i;r+=1){const l=this.getModelColumn(r);if(l!=null){const a=o.columns[l];if(a!=null&&A.isTextType(a.type)){s=r;break}}}this.focusFilterBar(s)}else(n=this.grid)==null||n.focus()}isTableSearchAvailable(){var s,o,i;const{model:e,canToggleSearch:t}=this.props,n=(s=e==null?void 0:e.layoutHints)==null?void 0:s.searchDisplayMode;return n===((o=I.SearchDisplayMode)==null?void 0:o.SEARCH_DISPLAY_HIDE)?!1:n===((i=I.SearchDisplayMode)==null?void 0:i.SEARCH_DISPLAY_SHOW)?!0:t}toggleSearchBar(){const{showSearchBar:e}=this.state;if(!this.isTableSearchAvailable())return;const t=!e;this.setState({showSearchBar:t},()=>{var n,s,o;t&&((n=this.crossColumnRef)==null?void 0:n.current)?(s=this.crossColumnRef)==null||s.current.focus():(o=this.grid)==null||o.focus()})}toggleGotoRow(e=""){const{isGotoRowShown:t}=this.state;if(e){this.setState({isGotoRowShown:!0,gotoRow:e,gotoRowError:""});return}this.setState({isGotoRowShown:!t,gotoRow:"",gotoRowError:""})}async commitPending(){var o,i;const{model:e}=this.props;if(!Oe(e)||!e.isEditable)throw new Error("Cannot save, table is not editable");const{pendingSavePromise:t}=this.state;if(t!=null)throw new Error("Save already in progress");const n=(o=document==null?void 0:document.activeElement)==null?void 0:o.classList.contains("grid-cell-input-field");if(n!=null&&n){if(document.activeElement!=null&&document.activeElement.classList.contains("error"))throw new ku("Current input is invalid");(i=this.grid)==null||i.focus()}const s=this.pending.add(e.commitPending()).then(()=>{this.setState({pendingSaveError:null,pendingSavePromise:null})}).catch(r=>{Pe.isCanceled(r)||this.setState({pendingSaveError:r,pendingSavePromise:null})});return this.setState({pendingSavePromise:s}),s}async discardPending(){const{pendingSavePromise:e}=this.state;if(e!=null)throw new Error("Cannot cancel a save in progress");this.setState({pendingSavePromise:null,pendingSaveError:null,pendingDataMap:new Map,pendingDataErrors:new Map})}selectColumn(e){const{onColumnSelected:t}=this.props;t(e)}selectData(e,t){const{model:n}=this.props,{columns:s,groupedColumns:o}=n,i={};for(let l=0;l<s.length;l+=1){const a=s[l],{name:c,type:d}=a,u=n.valueForCell(l,t),m=n.textForCell(l,t),p=this.getVisibleColumn(l),g=ze(n)&&n.isRowExpandable(t),f=o.find(C=>C.name===c)!=null;i[c]={value:u,text:m,type:d,isGrouped:f,isExpandable:g,visibleIndex:p}}const{onDataSelected:r}=this.props;r(t,i)}handleAdvancedFilterChange(e,t,n){const{model:s}=this.props,o=s.getColumnIndexByName(e.name);O(o),this.setAdvancedFilter(o,t,n)}handleAdvancedFilterSortChange(e,t,n=!1){var a;const{model:s}=this.props,o=s.getColumnIndexByName(e.name);O(o);const i=A.getSortForColumn(s.sort,o);let r=null;(i==null||i.direction!==t)&&(t===A.sortDirection.descending?r=e.sort().desc():r=e.sort().asc());const l=A.setSortForColumn(s.sort,o,r,n);le.info("Setting table sorts",l),this.startLoading("Sorting..."),this.setState({sorts:l}),(a=this.grid)==null||a.forceUpdate()}handleAdvancedFilterDone(){var e;(e=this.grid)==null||e.focus()}handleAdvancedMenuOpened(e){this.setState({shownAdvancedFilter:e})}handleGotoRowOpened(){this.setState({isGotoRowShown:!0})}handleGotoRowClosed(){this.setState({isGotoRowShown:!1})}handleAdvancedMenuClosed(e){var s,o;const{focusedFilterBarColumn:t,isFilterBarShown:n}=this.state;n&&t===e&&((s=this.filterInputRef)==null?void 0:s.current)!==null?((o=this.filterInputRef)==null||o.current.focus(),this.setState({shownAdvancedFilter:null})):this.setState({focusedFilterBarColumn:null,shownAdvancedFilter:null})}handleCancel(){this.rollback()}handleChartChange(){}handleChartCreate(e){const{model:t,onCreateChart:n}=this.props;n(e,t)}handleGridError(e){le.warn("Grid Error",e),this.setState({toastMessage:h("div",{className:"error-message",children:`${e}`})})}handleFilterBarChange(e){this.startLoading("Filtering...",!0),this.setState(({focusedFilterBarColumn:t,quickFilters:n})=>{const s=new Map(n);if(t!=null){const o=this.getModelColumn(t);O(o),this.applyQuickFilter(o,e,s)}return{quickFilters:s}})}handleFilterBarDone(e=!0,t=!0){var n;e&&((n=this.grid)==null||n.focus()),t&&this.setState({focusedFilterBarColumn:null})}handleFilterBarTab(e){const{focusedFilterBarColumn:t}=this.state;O(t),e?this.focusFilterBar(t-1):this.focusFilterBar(t+1)}handleFormatSelection(e,t){const{model:n}=this.props,s=n.columns[e],{customColumnFormatMap:o}=this.state,i=new Map(o);if(t!=null){const r=A.getNormalizedType(s.type);O(r);const l=en.makeColumnFormattingRule(r,s.name,t);i.set(s.name,l)}else i.delete(s.name);this.updateFormatter({customColumnFormatMap:i})}handleMenu(e){e.stopPropagation(),this.setState({isMenuShown:!0})}handleMenuClose(){this.setState({isMenuShown:!1,openOptions:[]})}handleMenuBack(){this.setState(({openOptions:e})=>{const t=[...e];return t.pop(),{openOptions:t}})}handleMenuSelect(e){this.setState(({openOptions:t})=>({openOptions:[...t,e]}))}handleRequestFailed(e){const t=e;if(le.error("request failed:",t.detail),this.stopLoading(),this.canRollback())this.startLoading("Rolling back changes...",!0),this.rollback();else{le.error("Table failed and unable to rollback");const{onError:n}=this.props;n(new Error(`Error displaying table: ${t.detail}`))}}handleUpdate(){var d;this.stopLoading(),le.debug2("Received model update");const{advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:o,rollupConfig:i,searchFilter:r,selectDistinctColumns:l,sorts:a}=this.state,c={advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:o,rollupConfig:i,searchFilter:r,selectDistinctColumns:l,sorts:a};Wl(c)?this.lastLoadedConfig=null:this.lastLoadedConfig=c,(d=this.grid)==null||d.forceUpdate()}handleViewChanged(e){var o,i;const{model:t}=this.props,{selectionEndRow:n=0}=(i=(o=this.grid)==null?void 0:o.state)!=null?i:{};let s=0;if(Oe(t)&&t.isEditable){O(e);const{bottomViewport:r}=e,l=t.rowCount-t.floatingBottomRowCount;n===l-1?s=t.pendingRowCount+1:n===l-2?s=t.pendingRowCount:s=Math.max(0,r-(t.rowCount-t.pendingRowCount)-t.floatingTopRowCount-t.floatingBottomRowCount-1)}this.setState({metrics:e,pendingRowCount:s})}handleSelectionChanged(e){O(e);const{onSelectionChanged:t}=this.props,{copyOperation:n}=this.state;this.setState({selectedRanges:e}),n!=null&&this.setState({copyOperation:null}),t(e)}handleMovedColumnsChanged(e,t){this.setState({movedColumns:e},t)}handleHeaderGroupsChanged(e){const{model:t}=this.props;this.setState({columnHeaderGroups:te.parseColumnHeaderGroups(t,e).groups},()=>{var n;return(n=this.grid)==null?void 0:n.forceUpdate()})}handleTooltipRef(e){e!=null&&e.startTimer(),this.tooltip=e}handleConditionalFormatsChange(e){le.debug("Updated conditional formats",e),this.setState({conditionalFormats:e})}handleConditionalFormatCreate(){le.debug("Create new conditional format");const{openOptions:e,conditionalFormats:t}=this.state;this.setState({openOptions:[...e,{type:Se.CONDITIONAL_FORMATTING_EDIT,title:"Create Formatting Rule"}],conditionalFormatEditIndex:t.length,conditionalFormatPreview:void 0})}handleConditionalFormatEdit(e){le.debug("Edit conditional format",e);const{openOptions:t,conditionalFormats:n}=this.state;this.setState({openOptions:[...t,{type:Se.CONDITIONAL_FORMATTING_EDIT,title:"Edit Formatting Rule"}],conditionalFormatEditIndex:e,conditionalFormatPreview:{...n[e]}})}handleConditionalFormatEditorSave(e){le.debug("Save conditional format changes",e),this.setState(t=>{if(t.conditionalFormatEditIndex===null)return le.debug("Invalid format index"),null;const n=[...t.conditionalFormats];return n[t.conditionalFormatEditIndex]=e,{conditionalFormats:n}},()=>{this.handleMenuBack()})}handleConditionalFormatEditorCancel(){this.handleMenuBack(),this.setState({conditionalFormatEditIndex:null})}handleUpdateCustomColumns(e){le.info("handleUpdateCustomColumns:",e);const{model:t}=this.props,{movedColumns:n,sorts:s,quickFilters:o,advancedFilters:i,selectDistinctColumns:r}=this.state,{columns:l}=t,a=t.customColumns.map(d=>`${d}`),c=te.getRemovedCustomColumnNames(a,e);if(c.length>0){const d=te.removeSortsInColumns(s,c),u=te.removeFiltersInColumns(l,o,c),m=te.removeFiltersInColumns(l,i,c),p=te.removeColumnFromMovedColumns(l,n,c),g=te.removeColumnsFromSelectDistinctColumns(r,c);d.length!==s.length&&(le.debug("removing sorts from removed custom columns..."),this.setState({sorts:d})),(u.size!==o.size||m.size!==i.size)&&(le.debug("removing filters from removed custom columns..."),this.setState({quickFilters:u,advancedFilters:m})),ht(n,p)||(le.debug("change moved columns for removed custom columns",p),this.setState({movedColumns:p})),ht(r,g)||(le.debug("change selectDistinct columns for removed custom columns",p),this.setState({selectDistinctColumns:g}))}this.setState({customColumns:e}),this.startLoading("Applying custom columns...")}handleCustomColumnsChanged(){var t;le.debug("custom columns changed");const{isReady:e}=this.state;e?(this.stopLoading(),(t=this.grid)==null||t.forceUpdate()):this.initState()}handlePendingCommitClicked(){return this.commitPending()}handlePendingDiscardClicked(){return this.discardPending()}handlePendingDataUpdated(){var s;le.debug("pending data updated");const{model:e}=this.props,{pendingDataMap:t,pendingDataErrors:n}=e;this.setState({pendingDataMap:t,pendingDataErrors:n,pendingSaveError:null}),(s=this.grid)==null||s.forceUpdate()}handleAggregationsChange(e){le.debug("handleAggregationsChange",e),this.startLoading(`Aggregating ${e.aggregations.map(t=>t.operation).join(", ")}...`),this.setState({aggregationSettings:e})}handleAggregationChange(e){le.debug("handleAggregationChange",e),this.startLoading(`Aggregating ${e.operation}...`),this.setState(({aggregationSettings:t})=>({selectedAggregation:e,aggregationSettings:{...t,aggregations:t.aggregations.map(n=>n.operation===e.operation?e:n)}}))}handleAggregationEdit(e){le.debug("handleAggregationEdit",e);const{openOptions:t}=this.state;this.setState({openOptions:[...t,{type:Se.AGGREGATION_EDIT,title:`Edit Columns to ${e.operation}`}],selectedAggregation:e})}handleRollupChange(e){var t,n;le.info("Rollup change",e),this.resetGridViewState(),this.showAllColumns(),this.clearAllFilters(),this.startLoading(`Grouping by columns ${(n=(t=e==null?void 0:e.columns)==null?void 0:t.join(", "))!=null?n:""}...`),this.setState({rollupConfig:e,movedColumns:[],sorts:[],reverseType:A.REVERSE_TYPE.NONE,selectDistinctColumns:[]})}handleSelectDistinctChanged(e){le.debug("SelectDistinct change",e),this.resetGridViewState(),this.showAllColumns(),this.clearAllFilters(),this.startLoading(`Selecting distinct values in ${e.length>0?e.join(", "):""}...`),this.setState({selectDistinctColumns:e,movedColumns:[],sorts:[],reverseType:A.REVERSE_TYPE.NONE})}handleDownloadTableStart(){const{canDownloadCsv:e}=this.props;e?this.setState({isTableDownloading:!0,tableDownloadProgress:0,tableDownloadEstimatedTime:null,tableDownloadStatus:St.DOWNLOAD_STATUS.INITIATING}):le.error("Attempted to handleDownloadTableStart for user without download CSV permission.")}handleDownloadTable(e,t,n,s,o,i,r){const{canDownloadCsv:l}=this.props;l?(le.info("start table downloading",e,t,n,s,o,i,r),this.setState(()=>(this.tableSaver&&this.tableSaver.startDownload(e,t,n,s,o,i,r),{tableDownloadStatus:St.DOWNLOAD_STATUS.DOWNLOADING}))):le.error("Attempted to handleDownloadTable for user without download CSV permission.")}handleCancelDownloadTable(){var e;(e=this.tableSaver)==null||e.cancelDownload(),this.setState({isTableDownloading:!1})}handleDownloadCompleted(){this.setState({isTableDownloading:!1,tableDownloadProgress:100,tableDownloadStatus:St.DOWNLOAD_STATUS.FINISHED})}handleDownloadCanceled(){this.setState({isTableDownloading:!1,tableDownloadProgress:0,tableDownloadStatus:St.DOWNLOAD_STATUS.CANCELED})}deleteRanges(e){const{model:t}=this.props;this.pending.add(t.delete(e)).catch(n=>{Pe.isCanceled(n)||le.error("Unable to delete ranges",e,n)})}resetColumnSelection(){if(this.grid==null)return;const{isSelectingColumn:e}=this.props;if(e){const{columnAllowedCursor:t}=this.props;this.grid.setState({cursor:t})}else this.grid.setState({cursor:null}),this.setState({hoverSelectColumn:null})}resetGridViewState(e=!0){!this.grid||(this.grid.clearSelectedRanges(),this.grid.setViewState({left:0,top:0,topOffset:0,leftOffset:0},e))}sendStateChange(){if(!this.grid)return;const{state:e}=this,{state:t}=this.grid,{onStateChange:n}=this.props;n(e,t)}handleOverflowClose(){this.setState({showOverflowModal:!1})}getColumnBoundingRect(){var m;const{metrics:e,shownColumnTooltip:t}=this.state;O(e),O(t);const n=(m=this.gridWrapper)==null?void 0:m.getBoundingClientRect(),s=20;O(n);const{columnHeaderHeight:o,allColumnXs:i,allColumnWidths:r,width:l,columnHeaderMaxDepth:a}=e,c=i.get(t),d=r.get(t);O(c),O(d);const u=n.left+Ue(c+d/2,s,l-s);return{top:n.top+(a-1)*o,left:n.left+Ue(c+d/2,s,l-s),bottom:n.top+a*o,right:n.left+Ue(c+d/2,s,l-s)+1,width:1,height:o,x:u,y:n.top,toJSON:()=>{throw new Error("not implemented")}}}handleGotoRowSelectedRowNumberSubmit(){const{gotoRow:e}=this.state;this.focusRowInGrid(e)}focusRowInGrid(e){var o,i,r;const{model:t}=this.props,{rowCount:n}=t;if(this.setState({gotoRow:e}),e===""){this.setState({gotoRowError:""});return}const s=parseInt(e,10);s>n||s<-n?this.setState({gotoRowError:"Invalid row index"}):s===0?(this.setState({gotoRowError:""}),(o=this.grid)==null||o.setFocusRow(0)):s<0?(this.setState({gotoRowError:""}),(i=this.grid)==null||i.setFocusRow(s+n)):((r=this.grid)==null||r.setFocusRow(s-1),this.setState({gotoRowError:""}))}handleGotoRowSelectedRowNumberChanged(e){const t=e.target.value;this.focusRowInGrid(t)}getColumnTooltip(e,t,n){const{columnHeaderHeight:s,columnHeaderMaxDepth:o,allColumnXs:i,allColumnWidths:r,width:l}=t,a=i.get(e),c=r.get(e);if(a==null||c==null)return null;const d=Math.max(0,a);let u=c;a+c>l?u=l-a:a<0&&(u=c-Math.abs(a));const m={position:"absolute",top:(o-1)*s,left:d,width:u,height:s,pointerEvents:"none"},p={clientWidth:1,clientHeight:s,getBoundingClientRect:this.getColumnBoundingRect},g={placement:"bottom",modifiers:{flip:{behavior:["bottom","top"]}}},f=this.getModelColumn(e);if(f==null)return null;const C=n.columns[f];return C==null?null:h("div",{style:m,children:h(Be,{timeout:400,interactive:!0,options:g,ref:this.handleTooltipRef,referenceObject:p,onExited:()=>{this.setState({shownColumnTooltip:null})},children:h(Ga,{model:n,column:C,onStatistics:()=>{var w;(w=this.tooltip)==null||w.update()}})},C.name)})}render(){var Fo,xo,Ao,Oo,ko,Lo,Po,Ge,ws;const{children:e,customFilters:t,getDownloadWorker:n,isSelectingColumn:s,isStuckToBottom:o,isStuckToRight:i,model:r,name:l,onlyFetchVisibleColumns:a,alwaysFetchColumns:c,advancedSettings:d,onAdvancedSettingsChange:u,canDownloadCsv:m,onCreateChart:p}=this.props,{metricCalculator:g,metrics:f,isFilterBarShown:C,isSelectingPartition:w,isMenuShown:S,isReady:b,copyOperation:y,focusedFilterBarColumn:v,loadingText:E,loadingScrimProgress:M,loadingSpinnerShown:F,keyHandlers:x,mouseHandlers:V,shownColumnTooltip:_,hoverAdvancedFilter:N,shownAdvancedFilter:H,hoverSelectColumn:k,quickFilters:z,advancedFilters:P,partition:U,partitionFilters:$,partitionTable:X,partitionColumn:ee,searchFilter:ie,selectDistinctColumns:ge,movedColumns:fe,movedRows:de,formatter:ye,conditionalFormats:Xe,conditionalFormatPreview:_t,conditionalFormatEditIndex:Ye,sorts:We,reverseType:Vt,customColumns:Et,selectedRanges:Ve,isTableDownloading:En,tableDownloadStatus:yt,tableDownloadProgress:Ce,tableDownloadEstimatedTime:Qe,showSearchBar:$e,searchValue:ct,selectedSearchColumns:Rt,invertSearchColumns:yn,aggregationSettings:Ut,selectedAggregation:bo,rollupConfig:on,openOptions:It,pendingSavePromise:Rn,pendingSaveError:gs,pendingRowCount:$s,pendingDataErrors:fs,pendingDataMap:Cs,toastMessage:Zn,frozenColumns:Jn,columnHeaderGroups:vo,showOverflowModal:Ii,overflowText:Mi,overflowButtonTooltipProps:To,isGotoRowShown:qs,gotoRow:Eo,gotoRowError:yo}=this.state;if(!b)return null;const In=this.getTheme(),Di=this.getCachedFilter(t,z,P,$,ie),Ks=g.getUserColumnWidths(),Ni=this.getCachedStateOverride(k,C,s,M,z,P,We,Vt,on,S),Fi=f?f.top:0,xi=f?f.bottomViewport:0;let Ro=null,Xs=null;a&&(Ro=f?f.left:0,Xs=f?f.right:0);const Ys=f!=null&&f.width>0&&f.height>0,Io=((xo=(Fo=on==null?void 0:on.columns)==null?void 0:Fo.length)!=null?xo:0)>0;let Mn=null;const Mo=f?Math.min(Math.max(Un.minDebounce,Math.round(f.rowCount/200)),Un.maxDebounce):Un.maxDebounce;if(C&&v!=null&&f!=null){const{gridX:Ae,gridY:pt,allColumnXs:Dn,allColumnWidths:Js,width:Ss}=f,Bt=Dn.get(v),dt=Js.get(v);if(Bt!=null&&dt!=null){const st=Ae+Bt,rn=pt-((Ao=In.filterBarHeight)!=null?Ao:0),es=dt+1,ts=((Oo=In.filterBarHeight)!=null?Oo:0)-1,Ho={top:rn,left:st,minWidth:Math.min(es,Ss-st),height:ts};let Gt="",bs=!0;const ns=this.getModelColumn(v);O(ns);const vs=z.get(ns),Nn=P.get(ns);vs!=null&&(Gt=vs.text,bs=vs.filter!=null);const Ts=z.size!==0||P.size!==0;Mn=h(Ha,{ref:this.filterInputRef,style:Ho,className:G({error:!bs,active:Gt!==""||Nn!=null,"iris-grid-has-filter":Ts}),isAdvancedFilterSet:Nn!=null,onAdvancedFiltersTriggered:()=>{this.setState({shownAdvancedFilter:v})},onChange:this.handleFilterBarChange,onDone:this.handleFilterBarDone,onTab:this.handleFilterBarTab,onContextMenu:(ko=this.grid)==null?void 0:ko.handleContextMenu,debounceMs:Mo,value:Gt},v)}}let Qs=null;if(E!=null){const Ae=R("div",{className:"iris-grid-loading-status",children:[h("div",{className:G("iris-grid-loading-status-bar",{show:F}),children:E}),R("button",{type:"button",onClick:this.handleCancel,className:G("iris-grid-btn-cancel",{show:F}),children:[h(Q,{icon:mo,transform:"down-1"}),"Cancel"]})]}),pt=f?f.gridY:0;Qs=h("div",{className:"iris-grid-loading",style:{top:pt},children:Ae})}let js=null;_!=null&&f&&(js=this.getColumnTooltip(_,f,r),(Lo=this.tooltip)==null||Lo.update());const Zs=[];if(f&&C){const{gridX:Ae,gridY:pt,visibleColumns:Dn,allColumnXs:Js,allColumnWidths:Ss}=f,{filterBarHeight:Bt}=In;for(let dt=0;dt<Dn.length;dt+=1){const st=Dn[dt],rn=Js.get(st),es=Ss.get(st),ts=this.getModelColumn(st);if(ts!=null&&r.isFilterable(ts)&&rn!=null&&es!=null&&es>0){const Gt=Ae+rn+es-24,bs=pt-(Bt!=null?Bt:0)+2,ns={position:"absolute",top:bs,left:Gt},Nn=P.get(ts)!=null,Ts=st===N||st===v||Nn,ki=h("div",{className:G("advanced-filter-button-container",{hidden:!Ts}),style:ns,children:Ts&&h(K,{kind:"ghost",className:G("btn-link-icon advanced-filter-button",{"filter-set":Nn}),onClick:()=>{this.setState({shownAdvancedFilter:st})},onContextMenu:Rc=>{var $r;($r=this.grid)==null||$r.handleContextMenu(Rc)},onMouseEnter:()=>{this.setState({hoverAdvancedFilter:st})},onMouseLeave:()=>{this.setState({hoverAdvancedFilter:null})},children:R("div",{className:"fa-layers",children:[h(Q,{icon:pr,className:"filter-solid"}),h(Q,{icon:ei,className:"filter-light"})]})})},st);Zs.push(ki)}}}const Do=[];if(f){const{gridX:Ae,visibleColumns:pt,allColumnXs:Dn,allColumnWidths:Js,columnHeaderHeight:Ss}=f;for(let Bt=0;Bt<pt.length;Bt+=1){const dt=pt[Bt],st=Dn.get(dt),rn=Js.get(dt);if(st!=null&&rn!=null&&rn>0){const es=Ae+st,ts=Ae+st+rn-20,Ho=C?{position:"absolute",top:Ss,left:ts,width:20,height:In.filterBarHeight}:{position:"absolute",top:0,left:es,width:rn,height:Ss},Gt=this.getModelColumn(dt);if(Gt!=null){const bs=r.columns[Gt],ns=P.get(Gt),{options:vs}=ns||{},Nn=A.getSortForColumn(r.sort,Gt),Ts=Nn?Nn.direction:null,ki=h("div",{className:"advanced-filter-menu-container",style:Ho,children:h(Sn,{className:"advanced-filter-menu-popper",onEntered:this.getAdvancedMenuOpenedHandler(dt),onExited:()=>{this.handleAdvancedMenuClosed(dt)},isShown:H===dt,interactive:!0,closeOnBlur:!0,options:{positionFixed:!0},children:this.getCachedAdvancedFilterMenuActions(r,bs,vs,Ts,ye)})},dt);Do.push(ki)}}}}const No=this.getCachedOptionItems(p!==void 0&&r.isChartBuilderAvailable,r.isCustomColumnsAvailable,r.isFormatColumnsAvailable,r.isRollupAvailable,r.isTotalsAvailable,r.isSelectDistinctAvailable,r.isExportAvailable,this.toggleFilterBarAction,this.toggleSearchBarAction,this.toggleGotoRowAction,C,$e,m,this.isTableSearchAvailable(),qs,d.size>0),Ai=It.map(Ae=>{switch(Ae.type){case Se.CHART_BUILDER:return h($a,{model:r,onChange:this.handleChartChange,onSubmit:this.handleChartCreate},Se.CHART_BUILDER);case Se.VISIBILITY_ORDERING_BUILDER:return h(_r,{model:r,movedColumns:fe,userColumnWidths:Ks,columnHeaderGroups:vo,onColumnVisibilityChanged:this.handleColumnVisibilityChanged,onMovedColumnsChanged:this.handleMovedColumnsChanged,onColumnHeaderGroupChanged:this.handleHeaderGroupsChanged},Se.VISIBILITY_ORDERING_BUILDER);case Se.CONDITIONAL_FORMATTING:return h(Yp,{rules:Xe,onChange:this.handleConditionalFormatsChange,onCreate:this.handleConditionalFormatCreate,onSelect:this.handleConditionalFormatEdit});case Se.CONDITIONAL_FORMATTING_EDIT:return O(r.columns),O(this.handleConditionalFormatEditorUpdate),h(Tg,{columns:r.columns,rule:_t,onUpdate:this.handleConditionalFormatEditorUpdate,onSave:this.handleConditionalFormatEditorSave,onCancel:this.handleConditionalFormatEditorCancel});case Se.CUSTOM_COLUMN_BUILDER:return h(Pr,{model:r,customColumns:Et,onSave:this.handleUpdateCustomColumns,onCancel:this.handleMenuBack},Se.CUSTOM_COLUMN_BUILDER);case Se.ROLLUP_ROWS:return h(Hr,{model:r,onChange:this.handleRollupChange,config:on},Se.ROLLUP_ROWS);case Se.AGGREGATIONS:return h(rp,{settings:Ut,isRollup:Io,onChange:this.handleAggregationsChange,onEdit:this.handleAggregationEdit});case Se.AGGREGATION_EDIT:return bo&&h(ap,{aggregation:bo,columns:r.originalColumns,onChange:this.handleAggregationChange});case Se.TABLE_EXPORTER:return h(St,{model:r,name:l,userColumnWidths:Ks,movedColumns:fe,isDownloading:En,tableDownloadStatus:yt,tableDownloadProgress:Ce,tableDownloadEstimatedTime:Qe!=null?Qe:void 0,onDownload:this.handleDownloadTable,onDownloadStart:this.handleDownloadTableStart,onCancel:this.handleCancelDownloadTable,selectedRanges:Ve},Se.TABLE_EXPORTER);case Se.SELECT_DISTINCT:return h(tc,{model:r,selectDistinctColumns:ge,onChange:this.handleSelectDistinctChanged});case Se.ADVANCED_SETTINGS:return h(Vr,{items:d,onChange:u});default:throw Error(`Unexpected option type ${Ae.type}`)}}),Oi=this.getCachedHiddenColumns(te.getHiddenColumns(Ks));return R("div",{className:"iris-grid",role:"presentation",children:[R("div",{className:"iris-grid-column",children:[e!=null&&h("div",{className:"iris-grid-bar",children:e}),h(lt,{in:w,timeout:xe.transitionSlowMs,classNames:"iris-grid-bar-horizontal",onEnter:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExit:this.handleAnimationStart,onExited:this.handleAnimationEnd,mountOnEnter:!0,unmountOnExit:!0,children:h("div",{className:"iris-grid-partition-selector-wrapper iris-grid-bar iris-grid-bar-primary",children:X&&ee&&U!=null&&h(ec,{table:X,getFormattedString:(Ae,pt,Dn)=>r.displayString(Ae,pt,Dn),columnName:ee.name,partition:U,onChange:this.handlePartitionChange,onFetchAll:this.handlePartitionFetchAll,onAppend:this.handlePartitionAppend,onDone:this.handlePartitionDone})})}),h(lt,{in:$e,timeout:xe.transitionSlowMs,classNames:"iris-grid-bar-horizontal",onEnter:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExit:this.handleAnimationStart,onExited:this.handleAnimationEnd,mountOnEnter:!0,unmountOnExit:!0,children:h("div",{className:"iris-grid-bar",children:h(qo,{value:ct,selectedColumns:Rt,invertSelection:yn,onChange:this.handleCrossColumnSearch,columns:r.columns,ref:this.crossColumnRef})})}),R("div",{className:"grid-wrapper",ref:Ae=>{this.gridWrapper=Ae},children:[h(Gs,{ref:Ae=>{this.grid=Ae},isStickyBottom:!Oe(r)||!r.isEditable,isStuckToBottom:o,isStuckToRight:i,metricCalculator:g,model:r,keyHandlers:x,mouseHandlers:V,movedColumns:fe,movedRows:de,onError:this.handleGridError,onViewChanged:this.handleViewChanged,onSelectionChanged:this.handleSelectionChanged,onMovedColumnsChanged:this.handleMovedColumnsChanged,renderer:this.renderer,stateOverride:Ni,theme:In}),h(Of,{isOpen:Ii,text:Mi,onClose:this.handleOverflowClose}),Ys&&h(Ua,{model:r,modelColumns:r.columns,top:Fi,bottom:xi,left:Ro,right:Xs,filter:Di,formatter:ye,sorts:We,reverseType:Vt,movedColumns:fe,customColumns:Et,hiddenColumns:Oi,alwaysFetchColumns:this.getAlwaysFetchColumns(c,r.columns,fe,r.floatingLeftColumnCount,r.floatingRightColumnCount,(Ge=(Po=this.grid)==null?void 0:Po.state.draggingColumn)==null?void 0:Ge.range),formatColumns:this.getCachedPreviewFormatColumns(this.getCachedModelColumns(r,Et),Xe,_t,((ws=It[It.length-1])==null?void 0:ws.type)===Se.CONDITIONAL_FORMATTING_EDIT&&Ye!=null?Ye:void 0),rollupConfig:this.getModelRollupConfig(r.originalColumns,on,Ut),totalsConfig:this.getModelTotalsConfig(r.columns,on,Ut),selectDistinctColumns:ge,pendingRowCount:$s,pendingDataMap:Cs,frozenColumns:Jn,columnHeaderGroups:vo}),!S&&h("div",{className:"grid-settings-button",children:h(K,{kind:"ghost","data-testid":`btn-iris-grid-settings-button-${l}`,onClick:this.handleMenu,icon:h(Q,{icon:Qd,transform:"up-1"}),tooltip:"Table Options"})}),Mn,Qs,Zs,js,Do,To&&this.getOverflowButtonTooltip(To)]}),h(Lf,{model:r,isShown:qs,gotoRow:Eo,gotoRowError:yo,onSubmit:this.handleGotoRowSelectedRowNumberSubmit,onGotoRowNumberChanged:this.handleGotoRowSelectedRowNumberChanged,onClose:this.handleGotoRowClosed,onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:()=>{this.handleAnimationStart(),this.focus()},onExited:this.handleAnimationEnd}),h(xm,{error:gs,isSaving:Rn!=null,saveTooltip:`Commit (${this.commitAction.shortcut.getDisplayText()})`,discardTooltip:`Discard (${this.discardAction.shortcut.getDisplayText()})`,pendingDataErrors:fs,pendingDataMap:Cs,onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:this.handleAnimationStart,onExited:this.handleAnimationEnd,onSave:this.handlePendingCommitClicked,onDiscard:this.handlePendingDiscardClicked}),h(Zm,{children:Zn}),h(zs,{model:r,copyOperation:y!=null?y:void 0,onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:this.handleAnimationStart,onExited:this.handleAnimationEnd}),h(Ws,{ref:Ae=>{this.tableSaver=Ae},getDownloadWorker:n,onDownloadCompleted:this.handleDownloadCompleted,onDownloadCanceled:this.handleDownloadCanceled,onDownloadProgressUpdate:this.handleDownloadProgressUpdate,isDownloading:yt===St.DOWNLOAD_STATUS.DOWNLOADING,formatter:ye})]}),h(lt,{in:S,timeout:xe.transitionMidMs,classNames:"slide-left",onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:this.handleAnimationStart,onExited:this.handleAnimationEnd,mountOnEnter:!0,unmountOnExit:!0,children:h("div",{className:"table-sidebar",children:R(sh,{children:[h(ul,{title:"Table Options",onClose:this.handleMenuClose,children:h(ya,{onSelect:Ae=>this.handleMenuSelect(No[Ae]),items:No})}),Ai.map((Ae,pt)=>h(ul,{title:It[pt].title,onBack:this.handleMenuBack,onClose:this.handleMenuClose,children:Ae},It[pt].type))]})})}),h(re,{actions:this.contextActions})]})}};let So=Un;So.minDebounce=150;So.maxDebounce=500;So.loadingSpinnerDelay=800;So.defaultProps={children:null,advancedFilters:new Map,advancedSettings:new Map,alwaysFetchColumns:[],conditionalFormats:[],customColumnFormatMap:new Map,isFilterBarShown:!1,applyInputFiltersOnInit:!1,movedColumns:[],movedRows:[],inputFilters:[],customFilters:[],onCreateChart:void 0,onColumnSelected:()=>{},onDataSelected:()=>{},onError:()=>{},onStateChange:()=>{},onPartitionAppend:()=>{},onAdvancedSettingsChange:()=>{},partition:null,partitionColumn:null,quickFilters:new Map,selectDistinctColumns:[],sorts:[],reverseType:A.REVERSE_TYPE.NONE,customColumns:[],aggregationSettings:Tc,rollupConfig:void 0,userColumnWidths:new Map,userRowHeights:new Map,onSelectionChanged:()=>{},isSelectingColumn:!1,isSelectingPartition:!1,isStuckToBottom:!1,isStuckToRight:!1,columnSelectionValidator:null,columnAllowedCursor:null,columnNotAllowedCursor:null,name:"table",onlyFetchVisibleColumns:!0,showSearchBar:!1,searchValue:"",selectedSearchColumns:null,invertSearchColumns:!0,onContextMenu:()=>{},pendingDataMap:new Map,getDownloadWorker:void 0,settings:{timeZone:"America/New_York",defaultDateTimeFormat:Qn.FULL_DATE_FORMAT,showTimeZone:!1,showTSeparator:!0,truncateNumbersWithPound:!1,formatter:[],decimalFormatOptions:D.exports.shape({defaultFormatString:D.exports.string}),integerFormatOptions:D.exports.shape({defaultFormatString:D.exports.string})},canCopy:!0,canDownloadCsv:!0,frozenColumns:null,theme:Ba,canToggleSearch:!0};class Uf extends Error{constructor(t,n){super(`${n} can't be empty (on pending row ${t+1})`),this.isMissingKey=!0,this.rowIndex=t,this.columnName=n}}const Le=ne.module("IrisGridTableModel"),Bf=150,Gf=0,zf=[];function Yo(e){return e.table!==void 0}const ir=class extends me{constructor(e,t=new en,n=null){var s,o;super(),this.pendingNewRowCount=0,this._columnHeaderGroupMap=new Map,this.columnHeaderParentMap=new Map,this._columnHeaderMaxDepth=null,this._columnHeaderGroups=[],this._movedColumns=null,this.getMemoizedInitialMovedColumns=Ee(i=>{var u;if(!i)return[];let r=[];const{groupMap:l}=te.parseColumnHeaderGroups(this,(u=i==null?void 0:i.columnGroups)!=null?u:[]),a=(m,p)=>{const g=this.getColumnIndexByName(m);if(g==null)throw new Error(`Unknown layout hint column: ${m}`);const f=B.getVisibleIndex(g,r);r=B.moveItem(f,p,r)},c=(m,p)=>{const g=l.get(m);if(g==null)throw new Error(`Unknown layout hint group: ${m}`);const f=g.getVisibleRange(r);r=B.moveRange(f,p,r)};if(this.frontColumns.length||this.backColumns.length||this.frozenColumns.length){const m=new Set;let p=0;this.frozenColumns.forEach(f=>{if(m.has(f))throw new Error(`Column specified in multiple layout hints: ${f}`);a(f,p),p+=1}),this.frontColumns.forEach(f=>{if(m.has(f))throw new Error(`Column specified in multiple layout hints: ${f}`);a(f,p),p+=1});let g=this.columnMap.size-1;this.backColumns.forEach(f=>{if(m.has(f))throw new Error(`Column specified in multiple layout hints: ${f}`);a(f,g),g-=1})}if(i==null?void 0:i.columnGroups){const m=[...l.values()];m.sort((p,g)=>p.depth-g.depth),m.forEach(p=>{const g=p.children[0],f=this.getColumnIndexByName(g);let C;if(f!=null)C=B.getVisibleIndex(f,r);else{const w=l.get(g);if(!w)throw new Error(`Unknown column ${g} in group ${p.name}`);[,C]=w.getVisibleRange(r)}for(let w=1;w<p.children.length;w+=1){const S=p.children[w],b=l.get(S),y=this.getColumnIndexByName(S);if(b){const E=b.getVisibleRange(r)[0]<C?C-b.childIndexes.length+1:C+1;c(S,E),C=E+b.childIndexes.length-1}else if(y!=null){const E=B.getVisibleIndex(y,r)<C?C:C+1;a(S,E),C=E}}})}return this._movedColumns=r,r}),this.getMemoizedInitialColumnHeaderGroups=Ee(i=>{var r;return te.parseColumnHeaderGroups(this,(r=i==null?void 0:i.columnGroups)!=null?r:[]).groups}),this.getMemoizedColumnMap=Ee(i=>{const r=new Map;return i.forEach(l=>r.set(l.name,l)),r}),this.getColumnIndicesByNameMap=Ee(i=>{const r=new Map;return i.forEach(({name:l},a)=>r.set(l,a)),r}),this.setViewport=Yn((i,r,l)=>{if(r<i){Le.error("Invalid viewport",i,r);return}const{viewport:a}=this;if(a!=null&&a.top===i&&a.bottom===r&&a.columns===l){Le.debug2("Ignoring duplicate viewport",a);return}this.viewport={top:i,bottom:r,columns:l},Le.debug2("setViewport",this.viewport),this.applyViewport()},Bf),this.applyViewport=Yn(()=>{if(!this.viewport)return;Le.debug2("applyViewport",this.viewport);const{top:i,bottom:r,columns:l}=this.viewport,[a,c]=this.getCachedViewportRowRange(i,r);this.applyBufferedViewport(a,c,l)},Gf,{leading:!1}),this.getCachedFormattedString=bt((i,r,l,a,c)=>i.getFormattedString(r,l,a,c),{max:1e4}),this.getCachedCustomColumnFormatFlag=bt(us.isCustomColumnFormatDefined,{max:1e4}),this.getCachedViewportRowRange=Ee((i,r)=>{const l=r-i,a=Math.max(0,i-l*ir.ROW_BUFFER_PAGES),c=r+l*ir.ROW_BUFFER_PAGES;return[a,c]}),this.getCachedPendingErrors=Ee((i,r,l)=>{const a=new Map;return i.forEach((c,d)=>{var m;const{data:u}=c;for(let p=0;p<l;p+=1)u.has(p)||(a.has(d)||a.set(d,[]),(m=a.get(d))==null||m.push(new Uf(d,r[p].name)))}),a}),this.handleTableDisconnect=this.handleTableDisconnect.bind(this),this.handleTableReconnect=this.handleTableReconnect.bind(this),this.handleTableUpdate=this.handleTableUpdate.bind(this),this.handleTotalsUpdate=this.handleTotalsUpdate.bind(this),this.handleRequestFailed=this.handleRequestFailed.bind(this),this.handleCustomColumnsChanged=this.handleCustomColumnsChanged.bind(this),this.irisFormatter=t,this.inputTable=n,this.subscription=null,this.table=e,this.viewport=null,this.viewportData=null,this.formattedStringData=[],this.pendingStringData=[],this.isSaveInProgress=!1,this.totalsTable=null,this.totalsTablePromise=null,this.totals=null,this.totalsDataMap=null,this.pendingNewDataMap=new Map,this.pendingNewRowCount=0,this.columnHeaderGroups=te.parseColumnHeaderGroups(this,(o=(s=this.layoutHints)==null?void 0:s.columnGroups)!=null?o:[]).groups}export(){throw new Error("Method not implemented.")}columnStatistics(e){throw new Error("Method not implemented.")}get customColumns(){return[]}set customColumns(e){throw new Error("Method not implemented.")}get formatColumns(){return[]}set formatColumns(e){throw new Error("Method not implemented.")}updateFrozenColumns(e){throw new Error("Method not implemented.")}get rollupConfig(){throw new Error("Method not implemented.")}set rollupConfig(e){throw new Error("Method not implemented.")}get selectDistinctColumns(){throw new Error("Method not implemented.")}set selectDistinctColumns(e){throw new Error("Method not implemented.")}get columns(){return this.table.columns}close(){this.table.close(),this.totalsTable!==null&&this.totalsTable.close(),this.totalsTablePromise!==null&&this.totalsTablePromise.cancel()}startListening(){super.startListening(),this.table.addEventListener(I.Table.EVENT_DISCONNECT,this.handleTableDisconnect),this.table.addEventListener(I.Table.EVENT_RECONNECT,this.handleTableReconnect),this.table.addEventListener(I.Table.EVENT_UPDATED,this.handleTableUpdate),this.table.addEventListener(I.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed),this.table.addEventListener(I.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleCustomColumnsChanged),this.totalsTable!=null&&this.addTotalsListeners(this.totalsTable),this.applyViewport()}stopListening(){super.stopListening(),this.table.removeEventListener(I.Table.EVENT_DISCONNECT,this.handleTableDisconnect),this.table.removeEventListener(I.Table.EVENT_RECONNECT,this.handleTableReconnect),this.table.removeEventListener(I.Table.EVENT_UPDATED,this.handleTableUpdate),this.table.removeEventListener(I.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed),this.table.removeEventListener(I.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleCustomColumnsChanged),this.totalsTable!=null&&this.removeTotalsListeners(this.totalsTable),this.closeSubscription()}addTotalsListeners(e){e.addEventListener(I.Table.EVENT_UPDATED,this.handleTotalsUpdate),e.setViewport(0,0)}removeTotalsListeners(e){e.removeEventListener(I.Table.EVENT_UPDATED,this.handleTotalsUpdate)}handleTableDisconnect(){this.dispatchEvent(new Re(me.EVENT.DISCONNECT))}handleTableReconnect(){this.dispatchEvent(new Re(me.EVENT.RECONNECT))}handleTableUpdate(e){this.copyViewportData(e.detail),this.dispatchEvent(new Re(me.EVENT.UPDATED))}handleTotalsUpdate(e){this.copyTotalsData(e.detail),this.dispatchEvent(new Re(me.EVENT.UPDATED))}handleRequestFailed(e){this.dispatchEvent(new Re(me.EVENT.REQUEST_FAILED,e))}handleCustomColumnsChanged(){this.dispatchEvent(new Re(me.EVENT.COLUMNS_CHANGED,{detail:this.columns}))}get rowCount(){var e,t,n;return this.table.size+this.pendingNewRowCount+((n=(t=(e=this.totals)==null?void 0:e.operationOrder)==null?void 0:t.length)!=null?n:0)}get pendingDataErrors(){var e,t;return this.getCachedPendingErrors(this.pendingNewDataMap,this.columns,(t=(e=this.inputTable)==null?void 0:e.keyColumns.length)!=null?t:0)}get pendingDataMap(){return this.pendingNewDataMap}set pendingDataMap(e){e!==this.pendingNewDataMap&&(e.forEach((t,n)=>{if(!te.isValidIndex(n))throw new Error(`Invalid rowIndex ${n}`);const{data:s}=t;s.forEach((o,i)=>{if(!te.isValidIndex(i))throw new Error(`Invalid columnIndex ${i}`)})}),this.pendingNewDataMap=e,this.pendingNewRowCount=Math.max(this.pendingNewRowCount,this.maxPendingDataRow),this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED)))}get pendingRowCount(){return this.pendingNewRowCount}set pendingRowCount(e){e!==this.pendingNewRowCount&&(this.pendingNewRowCount=Math.max(0,e,this.maxPendingDataRow),this.dispatchEvent(new Re(me.EVENT.UPDATED)))}get maxPendingDataRow(){return this.pendingNewDataMap.size>0?Math.max(...this.pendingNewDataMap.keys())+1:0}get columnCount(){return this.columns.length}get floatingBottomRowCount(){var e,t,n;return this.totals!=null&&this.totals.showOnTop?0:(n=(t=(e=this.totals)==null?void 0:e.operationOrder)==null?void 0:t.length)!=null?n:0}get floatingTopRowCount(){var e,t,n;return this.totals!=null&&this.totals.showOnTop&&(n=(t=(e=this.totals)==null?void 0:e.operationOrder)==null?void 0:t.length)!=null?n:0}get isChartBuilderAvailable(){return!0}get isTotalsAvailable(){return this.table.getTotalsTable!=null}get isEditable(){return!this.isSaveInProgress&&this.inputTable!=null}cacheFormattedValue(e,t,n){this.formattedStringData[e]==null&&(this.formattedStringData[e]=[]),this.formattedStringData[e][t]=n}cachePendingValue(e,t,n){this.pendingStringData[e]==null&&(this.pendingStringData[e]=[]),this.pendingStringData[e][t]=n}clearPendingValue(e,t){const n=this.pendingStringData[e];n!=null&&delete n[t]}textValueForCell(e,t){var n,s,o;if(((n=this.pendingStringData[e])==null?void 0:n[t])!==void 0)return this.pendingStringData[e][t];if(((s=this.formattedStringData[e])==null?void 0:s[t])===void 0){const i=this.valueForCell(e,t);if(i==null)return null;const r=(o=this.totalsColumn(e,t))!=null?o:this.columns[e],l=this.getCachedCustomColumnFormatFlag(this.formatter,r.name,r.type);let a;if(!l){const d=this.formatForCell(e,t);(d==null?void 0:d.formatString)!=null&&(a=d)}const c=this.displayString(i,r.type,r.name,a);this.cacheFormattedValue(e,t,c)}return this.formattedStringData[e][t]}textForCell(e,t){const n=this.textValueForCell(e,t);if(n==null&&this.isKeyColumn(e)){const s=this.pendingRow(t);if(s!=null&&this.pendingDataMap.has(s))return"*"}return n!=null?n:""}truncationCharForCell(e){const t=this.columns[e],{type:n}=t;if(A.isNumberType(n)&&this.formatter.truncateNumbersWithPound)return"#"}colorForCell(e,t,n){var o;const s=this.dataForCell(e,t);if(s){const{format:i,value:r}=s;if(r==null||r==="")return O(n.nullStringColor),n.nullStringColor;if(i&&i.color)return i.color;if(this.isPendingRow(t))return O(n.pendingTextColor),n.pendingTextColor;if(r!=null){const l=(o=this.totalsColumn(e,t))!=null?o:this.columns[e];if(A.isDateType(l.type)||l.name==="Date")return O(n.dateColor),n.dateColor;if(A.isNumberType(l.type))return r>0?(O(n.positiveNumberColor),n.positiveNumberColor):r<0?(O(n.negativeNumberColor),n.negativeNumberColor):(O(n.zeroNumberColor),n.zeroNumberColor)}}else if(this.isPendingRow(t)&&this.isKeyColumn(e))return O(n.errorTextColor),n.errorTextColor;return n.textColor}backgroundColorForCell(e,t){var n,s;return(s=(n=this.formatForCell(e,t))==null?void 0:n.backgroundColor)!=null?s:null}textAlignForCell(e){const t=this.columns[e],{type:n}=t;return A.isNumberType(n)?"right":A.isDateType(n)||t.name==="Date"?"center":"left"}textForColumnHeader(e,t=0){const n=this.columnAtDepth(e,t);return Ui(n)?n.isNew?"":n.name:n==null?void 0:n.name}colorForColumnHeader(e,t=0){var s;const n=this.columnAtDepth(e,t);return Ui(n)&&(s=n.color)!=null?s:null}getColumnHeaderGroup(e,t){const n=this.columnAtDepth(e,t);if(Ui(n))return n}getColumnHeaderParentGroup(e,t){var n,s;return this.columnHeaderParentMap.get((s=(n=this.columnAtDepth(e,t))==null?void 0:n.name)!=null?s:"")}columnAtDepth(e,t=0){var i;if(t===0)return this.columns[e];const n=(i=this.columns[e])==null?void 0:i.name;let s=this.columnHeaderParentMap.get(n);if(!s)return;let o=s.depth;for(;o<t;){if(s=this.columnHeaderParentMap.get(s.name),!s)return;o=s.depth}if(s.depth===t)return s}textForRowFooter(e){const t=this.totalsRow(e);return t!=null&&this.totals?this.totals.operationOrder[t]:""}get initialMovedColumns(){var e;return this.getMemoizedInitialMovedColumns((e=this.layoutHints)!=null?e:void 0)}get initialMovedRows(){return zf}get initialColumnHeaderGroups(){var e;return this.getMemoizedInitialColumnHeaderGroups((e=this.layoutHints)!=null?e:void 0)}get columnMap(){return this.getMemoizedColumnMap(this.table.columns)}get columnHeaderMaxDepth(){var e;return(e=this._columnHeaderMaxDepth)!=null?e:1}set columnHeaderMaxDepth(e){this._columnHeaderMaxDepth=e}get columnHeaderGroupMap(){return this._columnHeaderGroupMap}get columnHeaderGroups(){return this._columnHeaderGroups}set columnHeaderGroups(e){if(e===this._columnHeaderGroups)return;const{groups:t,maxDepth:n,parentMap:s,groupMap:o}=te.parseColumnHeaderGroups(this,e!=null?e:this.initialColumnHeaderGroups);this._columnHeaderGroups=t,this.columnHeaderMaxDepth=n,this.columnHeaderParentMap=s,this._columnHeaderGroupMap=o}get groupedColumns(){return[]}row(e){var l,a,c,d,u,m,p,g,f,C,w,S,b,y;const t=(c=(a=(l=this.totals)==null?void 0:l.operationOrder)==null?void 0:a.length)!=null?c:0,n=(u=(d=this.totals)==null?void 0:d.showOnTop)!=null?u:!1,s=this.totalsRow(e);if(s!=null){const v=(m=this.totals)==null?void 0:m.operationOrder[s];return O(v),(g=(p=this.totalsDataMap)==null?void 0:p.get(v))!=null?g:null}const o=this.pendingRow(e);if(o!=null)return(f=this.pendingNewDataMap.get(o))!=null?f:null;const i=(w=(C=this.viewportData)==null?void 0:C.offset)!=null?w:0,r=(n?e-t:e)-i;return(y=(b=(S=this.viewportData)==null?void 0:S.rows)==null?void 0:b[r])!=null?y:null}totalsColumn(e,t){var r,l,a,c;const n=this.totalsRow(t);if(n==null)return null;const s=(r=this.totals)==null?void 0:r.operationOrder[n],o=(a=(l=this.totals)==null?void 0:l.defaultOperation)!=null?a:be.SUM,i=this.columns[e];return(c=this.totalsTable)==null?void 0:c.columns.find(d=>{var u;return d.name===`${i.name}__${s}`||(s===o||((u=this.totals)==null?void 0:u.operationOrder.length)===1)&&d.name===i.name})}totalsRow(e){var o,i,r,l,a;const t=(r=(i=(o=this.totals)==null?void 0:o.operationOrder)==null?void 0:i.length)!=null?r:0,s=((a=(l=this.totals)==null?void 0:l.showOnTop)!=null?a:!1)?e:e-this.table.size;return s>=0&&s<t?s:null}pendingRow(e){const t=e-this.floatingTopRowCount-this.table.size;return t>=0&&t<this.pendingNewRowCount?t:null}isTotalsRow(e){return this.totalsRow(e)!=null}isPendingRow(e){return this.pendingRow(e)!=null}dataForCell(e,t){var n;return(n=this.row(t))==null?void 0:n.data.get(e)}formatForCell(e,t){var n;return(n=this.dataForCell(e,t))==null?void 0:n.format}valueForCell(e,t){var s;const n=this.dataForCell(e,t);if(n)return(s=n.value)!=null?s:null}copyViewportData(e){if(e==null){Le.warn("invalid data!");return}this.viewportData=this.extractViewportData(e),this.formattedStringData=[]}copyTotalsData(e){var l,a,c,d,u;if(e==null){Le.warn("invalid data!");return}const{columns:t,rows:n}=e;if(n.length!==1){Le.error("Unexpected number of rows received for totals table, ignoring update");return}const s=new Map,o=n[0],i=(a=(l=this.totals)==null?void 0:l.defaultOperation)!=null?a:be.SUM,r=(c=this.totals)==null?void 0:c.operationMap;for(let m=0;m<t.length;m+=1){const p=t[m],[g,f=(u=(d=r==null?void 0:r[g])==null?void 0:d[0])!=null?u:i]=p.name.split("__");s.has(f)||s.set(f,{data:new Map});const{data:C}=s.get(f),w=this.columns.findIndex(S=>S.name===g);C.set(w,{value:o.get(p),format:o.getFormat(p)})}Le.debug2("copyTotalsData",s),this.totalsDataMap=s,this.formattedStringData=[]}getColumnIndexByName(e){return this.getColumnIndicesByNameMap(this.columns).get(e)}extractViewportData(e){const t={offset:e.offset,rows:[]},{columns:n}=e;for(let s=0;s<e.rows.length;s+=1){const o=e.rows[s],i=this.extractViewportRow(o,n);t.rows.push(i)}return t}extractViewportRow(e,t){const n=new Map;for(let s=0;s<t.length;s+=1){const o=t[s],i=this.getColumnIndexByName(o.name);O(i),n.set(i,{value:e.get(o),format:e.getFormat(o)})}return{data:n}}closeSubscription(){Le.debug2("closeSubscription",this.subscription),this.subscription&&(this.subscription.close(),this.subscription=null),this.setViewport.cancel(),this.applyViewport.cancel()}get filter(){return this.table.filter}set filter(e){this.closeSubscription(),this.table.applyFilter(e),this.applyViewport()}get formatter(){return this.irisFormatter}set formatter(e){this.irisFormatter=e,this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.FORMATTER_UPDATED))}displayString(e,t,n="",s){return this.getCachedFormattedString(this.formatter,e,t,n,s)}get sort(){return this.table.sort}set sort(e){this.closeSubscription(),this.table.applySort(e),this.applyViewport()}set totalsConfig(e){if(Le.debug("set totalsConfig",e),e!==this.totals){if(this.totals=e,this.formattedStringData=[],this.totalsTablePromise!=null&&this.totalsTablePromise.cancel(),this.setTotalsTable(null),e==null){this.dispatchEvent(new Re(me.EVENT.UPDATED));return}this.totalsTablePromise=Pe.makeCancelable(this.table.getTotalsTable(e),t=>t.close()),this.totalsTablePromise.then(t=>{this.totalsTablePromise=null,this.setTotalsTable(t)}).catch(t=>{Pe.isCanceled(t)||(Le.error("Unable to set next totalsTable",t),this.totalsTablePromise=null,this.dispatchEvent(new Re(me.EVENT.REQUEST_FAILED,{detail:t})))})}}setTotalsTable(e){Le.debug("setTotalsTable",e),this.totalsTable!==null&&(this.listenerCount>0&&this.removeTotalsListeners(this.totalsTable),this.totalsTable.close()),this.totalsTable=e,this.totalsDataMap=null,this.listenerCount>0&&this.totalsTable!=null&&this.addTotalsListeners(this.totalsTable)}applyBufferedViewport(e,t,n){Le.debug2("applyBufferedViewport",e,t,n),this.subscription==null?(Le.debug2("applyBufferedViewport creating new subscription"),this.subscription=this.table.setViewport(e,t,n)):(Le.debug2("applyBufferedViewport using existing subscription"),this.subscription.setViewport(e,t,n))}async snapshot(e,t=!1,n=o=>o,s=!0){if(this.subscription==null)throw new Error("No subscription available");const o=s?Z.consolidate(e):e;if(!te.isValidSnapshotRanges(o))throw new Error(`Invalid snapshot ranges ${e}`);const i=new Set,r=[],l=new Set;for(let m=0;m<o.length;m+=1){const p=o[m];O(p.endRow),O(p.startRow);for(let g=p.startRow;g<=p.endRow&&g<this.floatingTopRowCount;g+=1)i.add(g);p.endRow>=this.floatingTopRowCount&&p.startRow<=this.floatingTopRowCount+this.table.size&&r.push(new Z(p.startColumn,Math.min(Math.max(0,p.startRow-this.floatingTopRowCount)),p.endColumn,Math.min(Math.max(0,p.endRow-this.floatingTopRowCount),this.table.size-this.floatingTopRowCount)));for(let g=Math.max(p.startRow,this.floatingTopRowCount+this.table.size);g<=p.endRow&&g<this.floatingTopRowCount+this.table.size+this.floatingBottomRowCount;g+=1)l.add(g)}const a=te.columnsFromRanges(o,this.columns),c=[];t&&c.push(a.map(m=>m.name));const d=[...i].sort();for(let m=0;m<d.length;m+=1){const p=d[m],g=a.map(f=>{const C=this.getColumnIndexByName(f.name);return O(C),n(this.valueForCell(C,p),f)});t&&g.push(this.textForRowFooter(p)),c.push(g)}if(r.length>0){const m=te.rangeSetFromRanges(r),p=await this.subscription.snapshot(m,a);c.push(...p.rows.map(g=>a.map(f=>n(g.get(f),f))))}const u=[...l].sort();for(let m=0;m<u.length;m+=1){const p=u[m],g=a.map(f=>{const C=this.getColumnIndexByName(f.name);return O(C),n(this.valueForCell(C,p),f)});t&&g.push(this.textForRowFooter(p)),c.push(g)}return c}async textSnapshot(e,t=!1,n=s=>`${s}`){return Le.debug2("textSnapshot",e,t),(await this.snapshot(e,t,n,!1)).map(o=>o.join(" ")).join(`
|
|
32
|
-
`)}async valuesTable(e){let t=null;try{return t=await this.table.copy(),t.applyFilter([]),t.applySort([]),t.selectDistinct([e])}finally{t!=null&&t.close()}}isColumnMovable(e,t){if(e<0||e>=this.columnCount)return!1;if(t>0)return!0;const n=this.columns[e].name;return this.frontColumns.includes(n)||this.backColumns.includes(n)||this.frozenColumns.includes(n)||!n?!1:!this.isKeyColumn(e)}isKeyColumn(e){var t,n;return e<((n=(t=this.inputTable)==null?void 0:t.keyColumns.length)!=null?n:0)}isRowMovable(){return!1}isEditableRange(e){return this.inputTable!=null&&Z.isBounded(e)&&(this.isPendingRow(e.startRow)&&this.isPendingRow(e.endRow)||e.startColumn>=this.inputTable.keyColumns.length&&e.endColumn>=this.inputTable.keyColumns.length)&&e.startRow>=this.floatingTopRowCount&&e.startRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount&&e.endRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount}isDeletableRange(e){return this.inputTable!=null&&e.startRow!=null&&e.endRow!=null&&e.startRow>=this.floatingTopRowCount&&e.startRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount&&e.endRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount}isEditableRanges(e){return e.every(t=>this.isEditableRange(t))}isDeletableRanges(e){return e.every(t=>this.isDeletableRange(t))}getTableAreaRange(){return new Z(null,this.floatingTopRowCount,null,this.floatingTopRowCount+this.table.size-1)}getPendingAreaRange(){return new Z(null,this.floatingTopRowCount+this.table.size,null,this.floatingTopRowCount+this.table.size+this.pendingNewRowCount-1)}async setValueForCell(e,t,n){return this.setValueForRanges([new Z(e,t,e,t)],n)}async setValueForRanges(e,t){var n;if(!this.isEditableRanges(e))throw new Error(`Uneditable ranges ${e}`);try{const s=new Set,o=[];Z.forEachCell(e,(c,d)=>{const u=this.columns[c];if(s.add(u),o[c]===void 0){const m=A.makeValue(u.type,t,this.formatter.timeZone);o[c]=m!=null?this.displayString(m,u.type,u.name):null}this.cachePendingValue(c,d,o[c])});const i=this.getPendingAreaRange(),r=e.map(c=>Z.intersection(i,c)).filter(c=>c!=null).map(c=>(O(c),Z.offset(c,0,-(this.floatingTopRowCount+this.table.size))));if(r.length>0){const c=new Map(this.pendingNewDataMap);Z.forEachCell(r,(d,u)=>{c.has(u)||c.set(u,{data:new Map});const m=this.columns[d],p=c.get(u);O(p);const{data:g}=p,f=new Map(g),C=A.makeValue(m.type,t,this.formatter.timeZone);C!=null?f.set(d,{value:C}):f.delete(d),f.size>0?c.set(u,{...p,data:f}):c.delete(u)}),this.pendingDataMap=c}this.dispatchEvent(new Re(me.EVENT.UPDATED));const l=this.getTableAreaRange(),a=e.map(c=>Z.intersection(l,c)).filter(c=>c!=null);if(a.length>0){const d=(await this.snapshot(a.map(m=>{var p,g;return new Z(null,(p=m==null?void 0:m.startRow)!=null?p:null,null,(g=m==null?void 0:m.endRow)!=null?g:null)}))).map(m=>{const p={};for(let g=0;g<this.columns.length;g+=1)p[this.columns[g].name]=m[g];return s.forEach(g=>{p[g.name]=A.makeValue(g.type,t,this.formatter.timeZone)}),p}),u=await((n=this.inputTable)==null?void 0:n.addRows(d));Le.debug("setValueForRanges(",e,",",t,") set tableRanges",a,"result",u)}Z.forEachCell(e,(c,d)=>{const u=o[c];O(u),this.cacheFormattedValue(c,d,u)})}catch(s){Le.error("Unable to set ranges",e,t,s)}finally{Z.forEachCell(e,(s,o)=>{this.clearPendingValue(s,o)})}}async setValues(e=[]){var t;if(Le.debug("setValues(",e,")"),!e.every(n=>{var s,o;return this.isEditableRange(Z.makeCell((s=n.column)!=null?s:n.x,(o=n.row)!=null?o:n.y))}))throw new Error(`Uneditable ranges ${e}`);try{const n=new Map(this.pendingNewDataMap);e.forEach(l=>{var f,C;const{text:a}=l,c=(f=l.column)!=null?f:l.x,d=(C=l.row)!=null?C:l.y,u=this.columns[c],m=A.makeValue(u.type,a,this.formatter.timeZone),p=m!=null?this.displayString(m,u.type,u.name):null;this.cachePendingValue(c,d,p);const g=this.pendingRow(d);if(g!=null){n.has(g)||n.set(g,{data:new Map});const w=n.get(g);O(w);const{data:S}=w,b=new Map(S);m!=null?b.set(c,{value:m}):b.delete(c),b.size>0?n.set(g,{...w,data:b}):n.delete(g)}}),this.pendingDataMap=n,this.dispatchEvent(new Re(me.EVENT.UPDATED));const s=e.reduce((l,a)=>{var d,u;const c=(d=a.row)!=null?d:a.y;return l.has(c)||l.set(c,[]),(u=l.get(c))==null||u.push(a),l},new Map),o=Z.consolidate(e.map(l=>{var a,c;return Z.makeCell((a=l.column)!=null?a:l.x,(c=l.row)!=null?c:l.y)})),i=this.getTableAreaRange(),r=o.map(l=>Z.intersection(i,l)).filter(l=>l!=null);if(r.length>0){const a=(await this.snapshot(r.map(d=>(O(d),new Z(null,d.startRow,null,d.endRow))))).map((d,u)=>{let m=null,p=u;for(let C=0;C<r.length;C+=1){const w=r[C];O(w);const S=Z.rowCount([w]);if(p<S){O(w.startRow),m=w.startRow+p;break}p-=S}const g={};for(let C=0;C<this.columns.length;C+=1)g[this.columns[C].name]=d[C];O(m);const f=s.get(m);return f!=null&&f.forEach(C=>{var S;const w=this.columns[(S=C.column)!=null?S:C.x];g[w.name]=A.makeValue(w.type,C.text,this.formatter.timeZone)}),g});Le.info("setValues setting tableRanges",r);const c=await((t=this.inputTable)==null?void 0:t.addRows(a));Le.info("setValues set tableRanges",r,"SUCCESS",c)}e.forEach(l=>{var g,f;const{text:a}=l,c=(g=l.column)!=null?g:l.x,d=(f=l.row)!=null?f:l.y,u=this.columns[c],m=A.makeValue(u.type,a,this.formatter.timeZone),p=m!=null?this.displayString(m,u.type,u.name):null;this.cacheFormattedValue(c,d,p)})}finally{e.forEach(n=>{this.clearPendingValue(n.column,n.row)})}}async commitPending(){var e,t,n;if(this.pendingNewDataMap.size<=0)throw new Error("No pending changes to commit");try{this.isSaveInProgress=!0;const s=[];this.pendingNewDataMap.forEach(i=>{const r={};i.data.forEach(({value:l},a)=>{const c=this.columns[a];r[c.name]=l}),s.push(r)});const o=await((e=this.inputTable)==null?void 0:e.addRows(s));Le.debug("commitPending()",this.pendingNewDataMap,"result",o),this.pendingNewDataMap=new Map,this.pendingNewRowCount=Math.max(0,((n=(t=this.viewport)==null?void 0:t.bottom)!=null?n:0)-this.table.size),this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED))}finally{this.isSaveInProgress=!1}}editValueForCell(e,t){return this.textValueForCell(e,t)}async delete(e){if(!this.isDeletableRanges(e))throw new Error(`Undeletable ranges ${e}`);O(this.inputTable);const{keyColumns:t}=this.inputTable;if(t.length===0)throw new Error("No key columns to allow deletion");const n=this.getPendingAreaRange(),s=e.map(d=>Z.intersection(n,d)).filter(d=>d!=null).map(d=>(O(d),Z.offset(d,0,-(this.floatingTopRowCount+this.table.size))));if(s.length>0){const d=new Map(this.pendingNewDataMap);for(let u=0;u<s.length;u+=1){const m=s[u];O(m.startRow),O(m.endRow);for(let p=m.startRow;p<=m.endRow;p+=1)d.delete(p)}this.pendingNewDataMap=d,this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED)),this.dispatchEvent(new Re(me.EVENT.UPDATED))}const o=this.getTableAreaRange(),i=e.map(d=>Z.intersection(o,d)).filter(d=>d!=null);if(i.length<=0)return;const[r,l]=await Promise.all([this.snapshot(i.map(d=>(O(d),new Z(0,d.startRow,t.length-1,d.endRow)))),this.table.copy()]),c=r.map(d=>{const u=[];for(let m=0;m<t.length;m+=1){const p=t[m],g=d[m],f=A.makeFilterRawValue(p.type,g),C=p.filter().eq(f);u.push(C)}return u.reduce((m,p)=>{var g;return(g=m==null?void 0:m.and(p))!=null?g:p})}).reduce((d,u)=>{var m;return(m=d==null?void 0:d.or(u))!=null?m:u});l.applyFilter([c]),l.close()}isValidForCell(e,t,n){try{const s=this.columns[e];return A.makeValue(s.type,n,this.formatter.timeZone),!0}catch{return!1}}};let zr=ir;zr.ROW_BUFFER_PAGES=1;const Pn=ne.module("IrisGridTableModel");class Wf extends zr{constructor(t,n=new en,s=null){super(t,n,s),this.getMemoizedFrontColumns=Ee(o=>o!=null?o:[]),this.getMemoizedBackColumns=Ee(o=>o!=null?o:[]),this.getMemoizedFrozenColumns=Ee((o,i)=>{var r;return(r=i!=null?i:o)!=null?r:[]}),this.getCachedFilterableColumnSet=Ee(o=>new Set(o.map((i,r)=>r))),this.customColumnList=[],this.formatColumnList=[]}get isExportAvailable(){return this.table.freeze!=null}get isColumnStatisticsAvailable(){return this.table.getColumnStatistics!=null}get isValuesTableAvailable(){return this.table.selectDistinct!=null&&this.table.copy!=null}get isRollupAvailable(){return this.table.rollup!=null}get isSelectDistinctAvailable(){return this.table.selectDistinct!=null}get isCustomColumnsAvailable(){return this.table.applyCustomColumns!=null}get isFormatColumnsAvailable(){return this.table.applyCustomColumns!=null}get frontColumns(){var t;return this.getMemoizedFrontColumns((t=this.layoutHints)==null?void 0:t.frontColumns)}get backColumns(){var t;return this.getMemoizedBackColumns((t=this.layoutHints)==null?void 0:t.backColumns)}get frozenColumns(){var t;return this.getMemoizedFrozenColumns((t=this.layoutHints)==null?void 0:t.frozenColumns,this.userFrozenColumns)}get layoutHints(){return this.table.layoutHints}get floatingLeftColumnCount(){return this.frozenColumns.length}get description(){return this.table.description}get customColumns(){return this.customColumnList}set customColumns(t){if(Pn.debug2("set customColumns",t,this.customColumnList,t===this.customColumnList),this.customColumnList.length===0&&t.length===0){Pn.debug("Ignore empty initial customColumns"),this.customColumnList=t;return}if(this.customColumnList===t){Pn.debug("Ignore same customColumns");return}this.closeSubscription(),this.customColumnList=t,this.table.applyCustomColumns([...t,...this.formatColumns]),this.applyViewport()}get formatColumns(){return this.formatColumnList}set formatColumns(t){if(Pn.debug2("set formatColumns",t,this.formatColumnList,t===this.formatColumnList),this.formatColumnList.length===0&&t.length===0){Pn.debug("Ignore empty initial formatColumns"),this.formatColumnList=t;return}if(this.formatColumnList===t){Pn.debug("Ignore same formatColumns");return}this.closeSubscription(),this.formatColumnList=t,this.table.applyCustomColumns([...this.customColumns,...t]),this.applyViewport()}updateFrozenColumns(t){this.userFrozenColumns=t,this.dispatchEvent(new Re(me.EVENT.TABLE_CHANGED,{detail:this.table}))}set totalsConfig(t){if(Pn.debug("set totalsConfig",t),t!==this.totals){if(this.totals=t,this.formattedStringData=[],this.totalsTablePromise!=null&&this.totalsTablePromise.cancel(),this.setTotalsTable(null),t==null){this.dispatchEvent(new Re(me.EVENT.UPDATED));return}this.totalsTablePromise=Pe.makeCancelable(this.table.getTotalsTable(t),n=>n.close()),this.totalsTablePromise.then(n=>{this.totalsTablePromise=null,this.setTotalsTable(n)}).catch(n=>{Pe.isCanceled(n)||(Pn.error("Unable to set next totalsTable",n),this.totalsTablePromise=null,this.dispatchEvent(new Re(me.EVENT.REQUEST_FAILED,{detail:n})))})}}get isFilterRequired(){return this.table.isUncoalesced}isFilterable(t){return this.getCachedFilterableColumnSet(this.columns).has(t)}async export(){return this.table.freeze()}columnStatistics(t){return this.table.getColumnStatistics(t)}isColumnMovable(t){const n=this.columns[t].name;return this.frontColumns.includes(n)||this.backColumns.includes(n)||this.frozenColumns.includes(n)?!1:!this.isKeyColumn(t)}isColumnFrozen(t){return this.frozenColumns.includes(this.columns[t].name)}async delete(t){var u;if(!this.isDeletableRanges(t))throw new Error(`Undeletable ranges ${t}`);O(this.inputTable);const{keyColumns:n}=this.inputTable;if(n.length===0)throw new Error("No key columns to allow deletion");const s=this.getPendingAreaRange(),o=t.map(m=>Z.intersection(s,m)).filter(m=>m!=null).map(m=>(O(m),Z.offset(m,0,-(this.floatingTopRowCount+this.table.size))));if(o.length>0){const m=new Map(super.pendingDataMap);for(let p=0;p<o.length;p+=1){const g=o[p];O(g.startRow),O(g.endRow);for(let f=g.startRow;f<=g.endRow;f+=1)m.delete(f)}super.pendingDataMap=m,this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED)),this.dispatchEvent(new Re(me.EVENT.UPDATED))}const i=this.getTableAreaRange(),r=t.map(m=>Z.intersection(i,m)).filter(m=>m!=null);if(r.length<=0)return;const[l,a]=await Promise.all([this.snapshot(r.map(m=>(O(m),new Z(0,m.startRow,n.length-1,m.endRow)))),this.table.copy()]),d=l.map(m=>{const p=[];for(let g=0;g<n.length;g+=1){const f=n[g],C=m[g],w=A.makeFilterRawValue(f.type,C),S=f.filter().eq(w);p.push(S)}return p.reduce((g,f)=>{var C;return(C=g==null?void 0:g.and(f))!=null?C:f})}).reduce((m,p)=>{var g;return(g=m==null?void 0:m.or(p))!=null?g:p});a.applyFilter([d]),await((u=this.inputTable)==null?void 0:u.deleteTable(a)),a.close()}}class $f extends zr{constructor(){super(...arguments),this.getCachedFilterableColumnSet=Ee((t,n)=>new Set(((n==null?void 0:n.length)>0?n:t).map(s=>t.findIndex(o=>s.name===o.name))))}applyBufferedViewport(t,n,s){this.table.setViewport(t,n,s)}textForCell(t,n){const s=this.columns[t],o=this.row(n);if(o!=null&&s!=null&&!o.hasChildren&&s.constituentType!=null){const i=this.valueForCell(t,n);return this.displayString(i,s.constituentType,s.name)}return super.textForCell(t,n)}extractViewportRow(t,n){const{isExpanded:s,hasChildren:o,depth:i}=t;return{...super.extractViewportRow(t,n),isExpanded:s,hasChildren:o,depth:i}}async snapshot(t,n,s){var l,a;O(this.viewport),O(this.viewportData);const{columns:o}=this.viewport,i=[];n!=null&&n&&i.push(o.map(c=>c.name));const r=new Z(0,(l=this.viewportData)==null?void 0:l.offset,o.length,this.viewportData.offset+this.viewportData.rows.length);for(let c=0;c<t.length;c+=1){const d=Z.intersection(r,t[c]);O(d),O(d.startRow),O(d.endRow);for(let u=d.startRow;u<=d.endRow;u+=1){const m=[],p=this.viewportData.rows[u-this.viewportData.offset];O(d.startColumn),O(d.endColumn);for(let g=d.startColumn;g<=d.endColumn;g+=1)O(s),m.push(s((a=p.data.get(g))==null?void 0:a.value,this.columns[g]));i.push(m)}}return i}get groupedColumns(){return[]}get hasExpandableRows(){return!0}get isChartBuilderAvailable(){return!1}get isSelectDistinctAvailable(){return!1}get isReversible(){return!1}isFilterable(t){return this.getCachedFilterableColumnSet(this.columns,this.groupedColumns).has(t)}isColumnMovable(t){return t>=this.groupedColumns.length}isRowExpandable(t){var s;const n=this.row(t);return(s=n==null?void 0:n.hasChildren)!=null?s:!1}isRowExpanded(t){var s;const n=this.row(t);return(s=n==null?void 0:n.isExpanded)!=null?s:!1}setRowExpanded(t,n){this.table.setExpanded(t,n)}depthForRow(t){var s;const n=this.row(t);return((s=n==null?void 0:n.depth)!=null?s:1)-1}}const Hn=ne.module("IrisGridProxyModel");function Yi(e,t,n){return A.isTreeTable(e)?new $f(e,t):new Wf(e,t,n)}class qf extends me{constructor(t,n=new en,s=null){super(),this.textForCell=(...i)=>this.model.textForCell(...i),this.truncationCharForCell=(...i)=>this.model.truncationCharForCell(...i),this.textAlignForCell=(...i)=>this.model.textAlignForCell(...i),this.colorForCell=(...i)=>this.model.colorForCell(...i),this.backgroundColorForCell=(...i)=>this.model.backgroundColorForCell(...i),this.textForColumnHeader=(...i)=>this.model.textForColumnHeader(...i),this.colorForColumnHeader=(...i)=>this.model.colorForColumnHeader(...i),this.textForRowHeader=(...i)=>this.model.textForRowHeader(...i),this.textForRowFooter=(...i)=>this.model.textForRowFooter(...i),this.isRowMovable=(...i)=>this.model.isRowMovable(...i),this.isColumnMovable=(...i)=>this.model.isColumnMovable(...i),this.isRowExpandable=(...i)=>ze(this.model)?this.model.isRowExpandable(...i):!1,this.isRowExpanded=(...i)=>ze(this.model)?this.model.isRowExpanded(...i):!1,this.setRowExpanded=(...i)=>{if(ze(this.model))return this.model.setRowExpanded(...i);throw Error("Function setRowExpanded does not exist on IrisGridTableModel")},this.depthForRow=(...i)=>ze(this.model)?this.model.depthForRow(...i):0,this.getColumnHeaderGroup=(...i)=>this.model.getColumnHeaderGroup(...i),this.getColumnHeaderParentGroup=(...i)=>this.model.getColumnHeaderParentGroup(...i),this.formatForCell=(...i)=>this.model.formatForCell(...i),this.valueForCell=(...i)=>this.model.valueForCell(...i),this.displayString=(...i)=>this.model.displayString(...i),this.isEditableRange=(...i)=>Oe(this.model)?this.model.isEditableRange(...i):!1,this.isFilterable=(...i)=>this.model.isFilterable(...i),this.setViewport=(i,r,l)=>this.model.setViewport(i,r,l),this.snapshot=(...i)=>this.model.snapshot(...i),this.textSnapshot=(...i)=>this.model.textSnapshot(...i),this.valuesTable=(...i)=>this.model.valuesTable(...i),this.editValueForCell=(...i)=>(Oe(this.model)&&this.model.editValueForCell(...i),""),this.setValueForCell=(...i)=>Oe(this.model)?this.model.setValueForCell(...i):Promise.reject(new Error("Model is not editable")),this.setValueForRanges=(...i)=>Oe(this.model)?this.model.setValueForRanges(...i):Promise.reject(new Error("Model is not editable")),this.setValues=(...i)=>Oe(this.model)?this.model.setValues(...i):Promise.resolve(),this.isValidForCell=(...i)=>Oe(this.model)?this.model.isValidForCell(...i):!1,this.delete=(...i)=>this.model.delete(...i),this.commitPending=(...i)=>this.model.commitPending(...i),this.handleModelEvent=this.handleModelEvent.bind(this);const o=Yi(t,n,s);this.originalModel=o,this.model=o,this.modelPromise=null,this.rollup=null,this.selectDistinct=[]}close(){this.originalModel.close(),this.model!==this.originalModel&&this.model.close(),this.modelPromise!=null&&this.modelPromise.cancel()}handleModelEvent(t){Hn.debug2("handleModelEvent",t);const{detail:n,type:s}=t;this.dispatchEvent(new Re(s,{detail:n}))}setModel(t){Hn.debug("setModel",t);const n=this.model;n!==this.originalModel&&n.close(),this.model=t,this.listenerCount>0&&this.addListeners(t),this.dispatchEvent(new Re(me.EVENT.COLUMNS_CHANGED,{detail:t.columns})),Yo(t)&&this.dispatchEvent(new Re(me.EVENT.TABLE_CHANGED,{detail:t.table}))}setNextModel(t){Hn.debug2("setNextModel"),this.modelPromise&&this.modelPromise.cancel(),this.listenerCount>0&&this.removeListeners(this.model),this.modelPromise=Pe.makeCancelable(t,n=>n.close()),this.modelPromise.then(n=>{this.modelPromise=null,this.setModel(n)}).catch(n=>{if(Pe.isCanceled(n)){Hn.debug2("setNextModel cancelled");return}Hn.error("Unable to set next model",n),this.modelPromise=null,this.dispatchEvent(new Re(me.EVENT.REQUEST_FAILED,{detail:n}))})}startListening(){super.startListening(),this.addListeners(this.model)}stopListening(){super.stopListening(),this.removeListeners(this.model)}addListeners(t){const n=Object.keys(me.EVENT);for(let s=0;s<n.length;s+=1)t.addEventListener(n[s],this.handleModelEvent)}removeListeners(t){const n=Object.keys(me.EVENT);for(let s=0;s<n.length;s+=1)t.removeEventListener(n[s],this.handleModelEvent)}get rowCount(){return this.model.rowCount}get columnCount(){return this.model.columnCount}get floatingTopRowCount(){return this.model.floatingTopRowCount}get floatingBottomRowCount(){return this.model.floatingBottomRowCount}get floatingLeftColumnCount(){return this.model.floatingLeftColumnCount}get floatingRightColumnCount(){return this.model.floatingRightColumnCount}isColumnFrozen(t){return this.model.isColumnFrozen(t)}get hasExpandableRows(){return ze(this.model)?this.model.hasExpandableRows:!1}get isExportAvailable(){return this.model.isExportAvailable}get isColumnStatisticsAvailable(){return this.model.isColumnStatisticsAvailable}get isValuesTableAvailable(){return this.model.isValuesTableAvailable}get isCustomColumnsAvailable(){return this.model.isCustomColumnsAvailable&&!(this.isSelectDistinctAvailable&&this.selectDistinctColumns.length>0)}get isFormatColumnsAvailable(){return this.model.isFormatColumnsAvailable}get isChartBuilderAvailable(){return this.model.isChartBuilderAvailable}get isRollupAvailable(){return(this.originalModel.isRollupAvailable||this.rollup!=null)&&this.selectDistinct.length===0}get isSelectDistinctAvailable(){return(this.originalModel.isSelectDistinctAvailable||this.selectDistinct.length>0)&&this.rollup==null}get isTotalsAvailable(){return this.model.isTotalsAvailable}get isReversible(){return this.model.isReversible}get columns(){return this.model.columns}get initialMovedColumns(){return this.model.initialMovedColumns}get initialMovedRows(){return this.model.initialMovedRows}get layoutHints(){return this.model.layoutHints}get frontColumns(){return this.model.frontColumns}get backColumns(){return this.model.backColumns}get frozenColumns(){return this.model.frozenColumns}get columnHeaderGroups(){return this.model.columnHeaderGroups}set columnHeaderGroups(t){this.model.columnHeaderGroups=t}get initialColumnHeaderGroups(){return this.model.initialColumnHeaderGroups}get columnHeaderGroupMap(){return this.model.columnHeaderGroupMap}get columnHeaderMaxDepth(){return this.model.columnHeaderMaxDepth}updateFrozenColumns(t){return this.model.updateFrozenColumns(t)}get originalColumns(){return this.originalModel.columns}get groupedColumns(){return this.model.groupedColumns}get description(){return this.model.description}get filter(){return this.model.filter}set filter(t){this.model.filter=t}get formatter(){return this.model.formatter}set formatter(t){this.model.formatter=t}get sort(){return this.model.sort}set sort(t){this.model.sort=t}get customColumns(){return this.model.customColumns}set customColumns(t){this.model.customColumns=t}get formatColumns(){return this.model.formatColumns}set formatColumns(t){this.model.formatColumns=t}get rollupConfig(){return this.rollup}set rollupConfig(t){if(Hn.debug("set rollupConfig",t),!this.isRollupAvailable)throw new Error("Rollup Rows are not available");if(ht(t,this.rollup))return;this.rollup=t;let n=Promise.resolve(this.originalModel);Yo(this.originalModel)&&t!=null&&(n=this.originalModel.table.rollup(t).then(s=>Yi(s,this.formatter))),this.setNextModel(n)}get selectDistinctColumns(){return this.selectDistinct}set selectDistinctColumns(t){if(Hn.debug("set selectDistinctColumns",t),!this.isSelectDistinctAvailable)throw new Error("Select distinct is not available");if(t===this.selectDistinctColumns||t.length===0&&this.selectDistinctColumns.length===0){Hn.debug("Ignore same selectDistinctColumns",t);return}this.selectDistinct=t;const n=t.map(o=>this.originalColumns.find(i=>i.name===o)).filter(o=>o!=null);let s=Promise.resolve(this.originalModel);Yo(this.originalModel)&&n.length>0&&(s=this.originalModel.table.selectDistinct(n).then(o=>Yi(o,this.formatter))),this.setNextModel(s)}get table(){if(Yo(this.model))return this.model.table}get totalsConfig(){return this.model.totalsConfig}set totalsConfig(t){this.model.totalsConfig=t}get isFilterRequired(){return this.model.isFilterRequired}get isEditable(){return Oe(this.model)&&this.model.isEditable}export(){if(A.isTreeTable(this.model))throw new Error("TreeTable has no 'export' property");return this.model.export()}columnStatistics(t){if(A.isTreeTable(this.model))throw new Error("TreeTable has no 'columnStatistics' function");return this.model.columnStatistics(t)}get pendingDataMap(){return this.model.pendingDataMap}set pendingDataMap(t){this.model.pendingDataMap=t}get pendingRowCount(){return this.model.pendingRowCount}set pendingRowCount(t){this.model.pendingRowCount=t}get pendingDataErrors(){return this.model.pendingDataErrors}getColumnIndexByName(t){return this.model.getColumnIndexByName(t)}}class Kf{static async makeModel(t,n=new en){let s=null;return!A.isTreeTable(t)&&t.hasInputTable&&(s=await t.inputTable()),new qf(t,n,s)}}const un=ne.module("TableViewportUpdater"),Xf=150,uo=class extends T.exports.PureComponent{constructor(){super(...arguments),this.getViewportRowRange=Ee((e,t,n)=>{const s=n-t,o=Math.max(0,t-s*uo.ROW_BUFFER_PAGES),i=n+s*uo.ROW_BUFFER_PAGES;return[o,i]}),this.getViewportColumns=Ee((e,t,n,s)=>{if(t==null||n==null)return null;const o=n-t,i=Math.max(0,t-o*uo.COLUMN_BUFFER_PAGES),r=Math.min(n+o*uo.COLUMN_BUFFER_PAGES,e.columns.length-1),l=[];for(let a=i;a<=r;a+=1){const c=B.getModelIndex(a,s);l.push(e.columns[c])}return l}),this.updateViewport=Yn((e,t,n,s,o)=>{if(t<e){un.error("Invalid viewport",e,t);return}if(e===0&&t===0){un.debug2("Ignoring 0-0 viewport");return}const{movedColumns:i,table:r}=this.props,[l,a]=this.getViewportRowRange(r,e,t),c=o!=null?o:this.getViewportColumns(r,n,s,i);if(un.debug2("Setting Viewport Top:",l,"Bottom:",a,"Columns:",c),this.subscription==null){un.debug2("updateViewport creating new subscription"),this.subscription=r.setViewport(l,a,c);const{onSubscription:d}=this.props;d(this.subscription)}else un.debug2("updateViewport using existing subscription"),this.subscription.setViewport(l,a,c)},Xf)}componentDidMount(){const{top:e,bottom:t,left:n,right:s,table:o,filters:i,sorts:r,columns:l,customColumns:a}=this.props;o.applyFilter(i),o.applySort(r),o.applyCustomColumns(a),this.updateViewport(e,t,n,s,l)}componentDidUpdate(e){const{top:t,bottom:n,left:s,right:o,table:i,filters:r,sorts:l,customColumns:a,columns:c}=this.props,d=r!==e.filters,u=l!==e.sorts,m=a!==e.customColumns,p=i!==e.table;(d||u||m||p)&&this.closeSubscription(),(d||p)&&(un.debug("update table filter",r),i.applyFilter(r)),(u||p)&&(un.debug("update table sort",l),i.applySort(l)),(m||p)&&(un.debug("update table custom columns",a),i.applyCustomColumns(a)),this.updateViewport(t,n,s,o,c)}componentWillUnmount(){this.closeSubscription()}closeSubscription(){if(un.debug2("closeSubscription",this.subscription),this.subscription){this.subscription.close(),this.subscription=void 0;const{onSubscription:e}=this.props;e()}this.updateViewport.cancel()}render(){return null}};let Wr=uo;Wr.ROW_BUFFER_PAGES=3;Wr.COLUMN_BUFFER_PAGES=1;Wr.defaultProps={top:0,bottom:0,left:null,right:null,columns:null,onSubscription:()=>{},filters:[],sorts:[],customColumns:[],movedColumns:[]};const Ds=ne.module("TreeTableViewportUpdater"),Yf=150,Ec=class extends T.exports.PureComponent{constructor(e){super(e),this.updateViewport=Yn((t,n)=>{if(n<t){Ds.error("Invalid viewport",t,n);return}if(t===0&&n===0){Ds.debug2("Ignoring 0-0 viewport");return}const{table:s,updateInterval:o}=this.props,i=n-t,r=Math.max(0,t-i*3),l=n+i*3+1;if(Ds.debug2("Setting Viewport Top:",r,"Bottom:",l,s),!this.listenerCleanup){const{onViewportUpdate:a}=this.props;this.listenerCleanup=s.addEventListener(I.TreeTable.EVENT_UPDATED,a)}s.setViewport(r,l,void 0,o)},Yf),this.listenerCleanup=null}componentDidMount(){const{top:e,bottom:t,table:n,filters:s,sorts:o}=this.props;Ds.debug("componentDidMount",this.props),n.applyFilter(s),n.applySort(o),this.updateViewport(e,t)}componentDidUpdate(e){const{top:t,bottom:n,table:s,filters:o,sorts:i}=this.props;o!==e.filters&&(Ds.debug("update table filter",o),s.applyFilter(o)),i!==e.sorts&&(Ds.debug("update table sort",i),s.applySort(i)),this.updateViewport(t,n)}componentWillUnmount(){this.updateViewport.cancel(),this.listenerCleanup&&this.listenerCleanup()}render(){return null}};let yc=Ec;yc.UPDATE_INTERVAL=1e3;yc.defaultProps={top:0,bottom:0,onViewportUpdate:()=>{},filters:[],sorts:[],updateInterval:Ec.UPDATE_INTERVAL};ne.setLogLevel(parseInt("2",10));const Os=ne.module("EmbedGrid.App"),Qf=[I.VariableType.TABLE,I.VariableType.TREETABLE,I.VariableType.PANDAS];async function jf(e,t){Os.info(`Fetching table ${t}...`);const n=await Vh(e,t);if(!Qf.includes(n.type))throw new Error(`Unsupported type '${n.type}' for variable named '${t}'`);return await e.getObject(n)}function Zf(){const[e,t]=T.exports.useState(),[n,s]=T.exports.useState(),[o,i]=T.exports.useState(),[r,l]=T.exports.useState(),[a,c]=T.exports.useState(!0),d=T.exports.useMemo(()=>new URLSearchParams(window.location.search),[]),u=d.get("canCopy")!=null,m=d.get("canDownloadCsv")!=null;T.exports.useEffect(function(){async function f(){try{const C=d.get("name");if(C==null)throw new Error("No name param provided");const w=new URL("/jsapi",`${window.location}`),S=`${w.protocol}//${w.host}`;Os.debug("Starting connection...");const b=new I.IdeConnection(S);Os.debug("Loading table",C,"...");const y=await jf(b,C);Os.debug("Creating model...");const v=await Kf.makeModel(y);t(v),Os.debug("Table successfully loaded!")}catch(C){Os.error("Unable to load table",C),s(`${C}`)}c(!1)}f()},[d]),T.exports.useEffect(function(){function f(C){const{command:w,value:S}=C.data;switch(w){case"filter":{const y=S.map(({name:v,value:E})=>{const M=e==null?void 0:e.columns.find(F=>F.name===v);if(M==null)throw new Error(`Could not find column named ${v}`);return{name:v,value:E,type:A.getNormalizedType(M.type)}});i(y);break}case"sort":{const y=S.map(({name:v,direction:E})=>{const M=e==null?void 0:e.columns.find(F=>F.name===v);if(M==null)throw new Error(`Could not find column named ${v}`);return E==="DESC"?M.sort().desc():M.sort().asc()});l(y);break}}}return window.addEventListener("message",f),()=>{window.removeEventListener("message",f)}},[e]);const p=e!=null;return R("div",{className:"App",children:[p&&h(So,{canCopy:u,canDownloadCsv:m,model:e,inputFilters:o,sorts:r}),!p&&h(Ta,{isLoaded:p,isLoading:a,errorMessage:n!=null?n:null}),h(Lu,{})]})}rr.render(h(Zf,{}),document.getElementById("root"));
|
|
33
|
-
//# sourceMappingURL=index.
|
|
32
|
+
`)}async valuesTable(e){let t=null;try{return t=await this.table.copy(),t.applyFilter([]),t.applySort([]),t.selectDistinct([e])}finally{t!=null&&t.close()}}isColumnMovable(e,t){if(e<0||e>=this.columnCount)return!1;if(t>0)return!0;const n=this.columns[e].name;return this.frontColumns.includes(n)||this.backColumns.includes(n)||this.frozenColumns.includes(n)||!n?!1:!this.isKeyColumn(e)}isKeyColumn(e){var t,n;return e<((n=(t=this.inputTable)==null?void 0:t.keyColumns.length)!=null?n:0)}isRowMovable(){return!1}isEditableRange(e){return this.inputTable!=null&&Z.isBounded(e)&&(this.isPendingRow(e.startRow)&&this.isPendingRow(e.endRow)||e.startColumn>=this.inputTable.keyColumns.length&&e.endColumn>=this.inputTable.keyColumns.length)&&e.startRow>=this.floatingTopRowCount&&e.startRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount&&e.endRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount}isDeletableRange(e){return this.inputTable!=null&&e.startRow!=null&&e.endRow!=null&&e.startRow>=this.floatingTopRowCount&&e.startRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount&&e.endRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount}isEditableRanges(e){return e.every(t=>this.isEditableRange(t))}isDeletableRanges(e){return e.every(t=>this.isDeletableRange(t))}getTableAreaRange(){return new Z(null,this.floatingTopRowCount,null,this.floatingTopRowCount+this.table.size-1)}getPendingAreaRange(){return new Z(null,this.floatingTopRowCount+this.table.size,null,this.floatingTopRowCount+this.table.size+this.pendingNewRowCount-1)}async setValueForCell(e,t,n){return this.setValueForRanges([new Z(e,t,e,t)],n)}async setValueForRanges(e,t){var n;if(!this.isEditableRanges(e))throw new Error(`Uneditable ranges ${e}`);try{const s=new Set,o=[];Z.forEachCell(e,(c,d)=>{const u=this.columns[c];if(s.add(u),o[c]===void 0){const m=A.makeValue(u.type,t,this.formatter.timeZone);o[c]=m!=null?this.displayString(m,u.type,u.name):null}this.cachePendingValue(c,d,o[c])});const i=this.getPendingAreaRange(),r=e.map(c=>Z.intersection(i,c)).filter(c=>c!=null).map(c=>(O(c),Z.offset(c,0,-(this.floatingTopRowCount+this.table.size))));if(r.length>0){const c=new Map(this.pendingNewDataMap);Z.forEachCell(r,(d,u)=>{c.has(u)||c.set(u,{data:new Map});const m=this.columns[d],p=c.get(u);O(p);const{data:g}=p,f=new Map(g),C=A.makeValue(m.type,t,this.formatter.timeZone);C!=null?f.set(d,{value:C}):f.delete(d),f.size>0?c.set(u,{...p,data:f}):c.delete(u)}),this.pendingDataMap=c}this.dispatchEvent(new Re(me.EVENT.UPDATED));const l=this.getTableAreaRange(),a=e.map(c=>Z.intersection(l,c)).filter(c=>c!=null);if(a.length>0){const d=(await this.snapshot(a.map(m=>{var p,g;return new Z(null,(p=m==null?void 0:m.startRow)!=null?p:null,null,(g=m==null?void 0:m.endRow)!=null?g:null)}))).map(m=>{const p={};for(let g=0;g<this.columns.length;g+=1)p[this.columns[g].name]=m[g];return s.forEach(g=>{p[g.name]=A.makeValue(g.type,t,this.formatter.timeZone)}),p}),u=await((n=this.inputTable)==null?void 0:n.addRows(d));Le.debug("setValueForRanges(",e,",",t,") set tableRanges",a,"result",u)}Z.forEachCell(e,(c,d)=>{const u=o[c];O(u),this.cacheFormattedValue(c,d,u)})}catch(s){Le.error("Unable to set ranges",e,t,s)}finally{Z.forEachCell(e,(s,o)=>{this.clearPendingValue(s,o)})}}async setValues(e=[]){var t;if(Le.debug("setValues(",e,")"),!e.every(n=>{var s,o;return this.isEditableRange(Z.makeCell((s=n.column)!=null?s:n.x,(o=n.row)!=null?o:n.y))}))throw new Error(`Uneditable ranges ${e}`);try{const n=new Map(this.pendingNewDataMap);e.forEach(l=>{var f,C;const{text:a}=l,c=(f=l.column)!=null?f:l.x,d=(C=l.row)!=null?C:l.y,u=this.columns[c],m=A.makeValue(u.type,a,this.formatter.timeZone),p=m!=null?this.displayString(m,u.type,u.name):null;this.cachePendingValue(c,d,p);const g=this.pendingRow(d);if(g!=null){n.has(g)||n.set(g,{data:new Map});const w=n.get(g);O(w);const{data:S}=w,b=new Map(S);m!=null?b.set(c,{value:m}):b.delete(c),b.size>0?n.set(g,{...w,data:b}):n.delete(g)}}),this.pendingDataMap=n,this.dispatchEvent(new Re(me.EVENT.UPDATED));const s=e.reduce((l,a)=>{var d,u;const c=(d=a.row)!=null?d:a.y;return l.has(c)||l.set(c,[]),(u=l.get(c))==null||u.push(a),l},new Map),o=Z.consolidate(e.map(l=>{var a,c;return Z.makeCell((a=l.column)!=null?a:l.x,(c=l.row)!=null?c:l.y)})),i=this.getTableAreaRange(),r=o.map(l=>Z.intersection(i,l)).filter(l=>l!=null);if(r.length>0){const a=(await this.snapshot(r.map(d=>(O(d),new Z(null,d.startRow,null,d.endRow))))).map((d,u)=>{let m=null,p=u;for(let C=0;C<r.length;C+=1){const w=r[C];O(w);const S=Z.rowCount([w]);if(p<S){O(w.startRow),m=w.startRow+p;break}p-=S}const g={};for(let C=0;C<this.columns.length;C+=1)g[this.columns[C].name]=d[C];O(m);const f=s.get(m);return f!=null&&f.forEach(C=>{var S;const w=this.columns[(S=C.column)!=null?S:C.x];g[w.name]=A.makeValue(w.type,C.text,this.formatter.timeZone)}),g});Le.info("setValues setting tableRanges",r);const c=await((t=this.inputTable)==null?void 0:t.addRows(a));Le.info("setValues set tableRanges",r,"SUCCESS",c)}e.forEach(l=>{var g,f;const{text:a}=l,c=(g=l.column)!=null?g:l.x,d=(f=l.row)!=null?f:l.y,u=this.columns[c],m=A.makeValue(u.type,a,this.formatter.timeZone),p=m!=null?this.displayString(m,u.type,u.name):null;this.cacheFormattedValue(c,d,p)})}finally{e.forEach(n=>{this.clearPendingValue(n.column,n.row)})}}async commitPending(){var e,t,n;if(this.pendingNewDataMap.size<=0)throw new Error("No pending changes to commit");try{this.isSaveInProgress=!0;const s=[];this.pendingNewDataMap.forEach(i=>{const r={};i.data.forEach(({value:l},a)=>{const c=this.columns[a];r[c.name]=l}),s.push(r)});const o=await((e=this.inputTable)==null?void 0:e.addRows(s));Le.debug("commitPending()",this.pendingNewDataMap,"result",o),this.pendingNewDataMap=new Map,this.pendingNewRowCount=Math.max(0,((n=(t=this.viewport)==null?void 0:t.bottom)!=null?n:0)-this.table.size),this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED))}finally{this.isSaveInProgress=!1}}editValueForCell(e,t){return this.textValueForCell(e,t)}async delete(e){if(!this.isDeletableRanges(e))throw new Error(`Undeletable ranges ${e}`);O(this.inputTable);const{keyColumns:t}=this.inputTable;if(t.length===0)throw new Error("No key columns to allow deletion");const n=this.getPendingAreaRange(),s=e.map(d=>Z.intersection(n,d)).filter(d=>d!=null).map(d=>(O(d),Z.offset(d,0,-(this.floatingTopRowCount+this.table.size))));if(s.length>0){const d=new Map(this.pendingNewDataMap);for(let u=0;u<s.length;u+=1){const m=s[u];O(m.startRow),O(m.endRow);for(let p=m.startRow;p<=m.endRow;p+=1)d.delete(p)}this.pendingNewDataMap=d,this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED)),this.dispatchEvent(new Re(me.EVENT.UPDATED))}const o=this.getTableAreaRange(),i=e.map(d=>Z.intersection(o,d)).filter(d=>d!=null);if(i.length<=0)return;const[r,l]=await Promise.all([this.snapshot(i.map(d=>(O(d),new Z(0,d.startRow,t.length-1,d.endRow)))),this.table.copy()]),c=r.map(d=>{const u=[];for(let m=0;m<t.length;m+=1){const p=t[m],g=d[m],f=A.makeFilterRawValue(p.type,g),C=p.filter().eq(f);u.push(C)}return u.reduce((m,p)=>{var g;return(g=m==null?void 0:m.and(p))!=null?g:p})}).reduce((d,u)=>{var m;return(m=d==null?void 0:d.or(u))!=null?m:u});l.applyFilter([c]),l.close()}isValidForCell(e,t,n){try{const s=this.columns[e];return A.makeValue(s.type,n,this.formatter.timeZone),!0}catch{return!1}}};let zr=ir;zr.ROW_BUFFER_PAGES=1;const Pn=ne.module("IrisGridTableModel");class Wf extends zr{constructor(t,n=new en,s=null){super(t,n,s),this.getMemoizedFrontColumns=Ee(o=>o!=null?o:[]),this.getMemoizedBackColumns=Ee(o=>o!=null?o:[]),this.getMemoizedFrozenColumns=Ee((o,i)=>{var r;return(r=i!=null?i:o)!=null?r:[]}),this.getCachedFilterableColumnSet=Ee(o=>new Set(o.map((i,r)=>r))),this.customColumnList=[],this.formatColumnList=[]}get isExportAvailable(){return this.table.freeze!=null}get isColumnStatisticsAvailable(){return this.table.getColumnStatistics!=null}get isValuesTableAvailable(){return this.table.selectDistinct!=null&&this.table.copy!=null}get isRollupAvailable(){return this.table.rollup!=null}get isSelectDistinctAvailable(){return this.table.selectDistinct!=null}get isCustomColumnsAvailable(){return this.table.applyCustomColumns!=null}get isFormatColumnsAvailable(){return this.table.applyCustomColumns!=null}get frontColumns(){var t;return this.getMemoizedFrontColumns((t=this.layoutHints)==null?void 0:t.frontColumns)}get backColumns(){var t;return this.getMemoizedBackColumns((t=this.layoutHints)==null?void 0:t.backColumns)}get frozenColumns(){var t;return this.getMemoizedFrozenColumns((t=this.layoutHints)==null?void 0:t.frozenColumns,this.userFrozenColumns)}get layoutHints(){return this.table.layoutHints}get floatingLeftColumnCount(){return this.frozenColumns.length}get description(){return this.table.description}get customColumns(){return this.customColumnList}set customColumns(t){if(Pn.debug2("set customColumns",t,this.customColumnList,t===this.customColumnList),this.customColumnList.length===0&&t.length===0){Pn.debug("Ignore empty initial customColumns"),this.customColumnList=t;return}if(this.customColumnList===t){Pn.debug("Ignore same customColumns");return}this.closeSubscription(),this.customColumnList=t,this.table.applyCustomColumns([...t,...this.formatColumns]),this.applyViewport()}get formatColumns(){return this.formatColumnList}set formatColumns(t){if(Pn.debug2("set formatColumns",t,this.formatColumnList,t===this.formatColumnList),this.formatColumnList.length===0&&t.length===0){Pn.debug("Ignore empty initial formatColumns"),this.formatColumnList=t;return}if(this.formatColumnList===t){Pn.debug("Ignore same formatColumns");return}this.closeSubscription(),this.formatColumnList=t,this.table.applyCustomColumns([...this.customColumns,...t]),this.applyViewport()}updateFrozenColumns(t){this.userFrozenColumns=t,this.dispatchEvent(new Re(me.EVENT.TABLE_CHANGED,{detail:this.table}))}set totalsConfig(t){if(Pn.debug("set totalsConfig",t),t!==this.totals){if(this.totals=t,this.formattedStringData=[],this.totalsTablePromise!=null&&this.totalsTablePromise.cancel(),this.setTotalsTable(null),t==null){this.dispatchEvent(new Re(me.EVENT.UPDATED));return}this.totalsTablePromise=Pe.makeCancelable(this.table.getTotalsTable(t),n=>n.close()),this.totalsTablePromise.then(n=>{this.totalsTablePromise=null,this.setTotalsTable(n)}).catch(n=>{Pe.isCanceled(n)||(Pn.error("Unable to set next totalsTable",n),this.totalsTablePromise=null,this.dispatchEvent(new Re(me.EVENT.REQUEST_FAILED,{detail:n})))})}}get isFilterRequired(){return this.table.isUncoalesced}isFilterable(t){return this.getCachedFilterableColumnSet(this.columns).has(t)}async export(){return this.table.freeze()}columnStatistics(t){return this.table.getColumnStatistics(t)}isColumnMovable(t){const n=this.columns[t].name;return this.frontColumns.includes(n)||this.backColumns.includes(n)||this.frozenColumns.includes(n)?!1:!this.isKeyColumn(t)}isColumnFrozen(t){return this.frozenColumns.includes(this.columns[t].name)}async delete(t){var u;if(!this.isDeletableRanges(t))throw new Error(`Undeletable ranges ${t}`);O(this.inputTable);const{keyColumns:n}=this.inputTable;if(n.length===0)throw new Error("No key columns to allow deletion");const s=this.getPendingAreaRange(),o=t.map(m=>Z.intersection(s,m)).filter(m=>m!=null).map(m=>(O(m),Z.offset(m,0,-(this.floatingTopRowCount+this.table.size))));if(o.length>0){const m=new Map(super.pendingDataMap);for(let p=0;p<o.length;p+=1){const g=o[p];O(g.startRow),O(g.endRow);for(let f=g.startRow;f<=g.endRow;f+=1)m.delete(f)}super.pendingDataMap=m,this.formattedStringData=[],this.dispatchEvent(new Re(me.EVENT.PENDING_DATA_UPDATED)),this.dispatchEvent(new Re(me.EVENT.UPDATED))}const i=this.getTableAreaRange(),r=t.map(m=>Z.intersection(i,m)).filter(m=>m!=null);if(r.length<=0)return;const[l,a]=await Promise.all([this.snapshot(r.map(m=>(O(m),new Z(0,m.startRow,n.length-1,m.endRow)))),this.table.copy()]),d=l.map(m=>{const p=[];for(let g=0;g<n.length;g+=1){const f=n[g],C=m[g],w=A.makeFilterRawValue(f.type,C),S=f.filter().eq(w);p.push(S)}return p.reduce((g,f)=>{var C;return(C=g==null?void 0:g.and(f))!=null?C:f})}).reduce((m,p)=>{var g;return(g=m==null?void 0:m.or(p))!=null?g:p});a.applyFilter([d]),await((u=this.inputTable)==null?void 0:u.deleteTable(a)),a.close()}}class $f extends zr{constructor(){super(...arguments),this.getCachedFilterableColumnSet=Ee((t,n)=>new Set(((n==null?void 0:n.length)>0?n:t).map(s=>t.findIndex(o=>s.name===o.name))))}applyBufferedViewport(t,n,s){this.table.setViewport(t,n,s)}textForCell(t,n){const s=this.columns[t],o=this.row(n);if(o!=null&&s!=null&&!o.hasChildren&&s.constituentType!=null){const i=this.valueForCell(t,n);return this.displayString(i,s.constituentType,s.name)}return super.textForCell(t,n)}extractViewportRow(t,n){const{isExpanded:s,hasChildren:o,depth:i}=t;return{...super.extractViewportRow(t,n),isExpanded:s,hasChildren:o,depth:i}}async snapshot(t,n,s){var l,a;O(this.viewport),O(this.viewportData);const{columns:o}=this.viewport,i=[];n!=null&&n&&i.push(o.map(c=>c.name));const r=new Z(0,(l=this.viewportData)==null?void 0:l.offset,o.length,this.viewportData.offset+this.viewportData.rows.length);for(let c=0;c<t.length;c+=1){const d=Z.intersection(r,t[c]);O(d),O(d.startRow),O(d.endRow);for(let u=d.startRow;u<=d.endRow;u+=1){const m=[],p=this.viewportData.rows[u-this.viewportData.offset];O(d.startColumn),O(d.endColumn);for(let g=d.startColumn;g<=d.endColumn;g+=1)O(s),m.push(s((a=p.data.get(g))==null?void 0:a.value,this.columns[g]));i.push(m)}}return i}get groupedColumns(){return[]}get hasExpandableRows(){return!0}get isChartBuilderAvailable(){return!1}get isSelectDistinctAvailable(){return!1}get isReversible(){return!1}isFilterable(t){return this.getCachedFilterableColumnSet(this.columns,this.groupedColumns).has(t)}isColumnMovable(t){return t>=this.groupedColumns.length}isRowExpandable(t){var s;const n=this.row(t);return(s=n==null?void 0:n.hasChildren)!=null?s:!1}isRowExpanded(t){var s;const n=this.row(t);return(s=n==null?void 0:n.isExpanded)!=null?s:!1}setRowExpanded(t,n){this.table.setExpanded(t,n)}depthForRow(t){var s;const n=this.row(t);return((s=n==null?void 0:n.depth)!=null?s:1)-1}}const Hn=ne.module("IrisGridProxyModel");function Yi(e,t,n){return A.isTreeTable(e)?new $f(e,t):new Wf(e,t,n)}class qf extends me{constructor(t,n=new en,s=null){super(),this.textForCell=(...i)=>this.model.textForCell(...i),this.truncationCharForCell=(...i)=>this.model.truncationCharForCell(...i),this.textAlignForCell=(...i)=>this.model.textAlignForCell(...i),this.colorForCell=(...i)=>this.model.colorForCell(...i),this.backgroundColorForCell=(...i)=>this.model.backgroundColorForCell(...i),this.textForColumnHeader=(...i)=>this.model.textForColumnHeader(...i),this.colorForColumnHeader=(...i)=>this.model.colorForColumnHeader(...i),this.textForRowHeader=(...i)=>this.model.textForRowHeader(...i),this.textForRowFooter=(...i)=>this.model.textForRowFooter(...i),this.isRowMovable=(...i)=>this.model.isRowMovable(...i),this.isColumnMovable=(...i)=>this.model.isColumnMovable(...i),this.isRowExpandable=(...i)=>ze(this.model)?this.model.isRowExpandable(...i):!1,this.isRowExpanded=(...i)=>ze(this.model)?this.model.isRowExpanded(...i):!1,this.setRowExpanded=(...i)=>{if(ze(this.model))return this.model.setRowExpanded(...i);throw Error("Function setRowExpanded does not exist on IrisGridTableModel")},this.depthForRow=(...i)=>ze(this.model)?this.model.depthForRow(...i):0,this.getColumnHeaderGroup=(...i)=>this.model.getColumnHeaderGroup(...i),this.getColumnHeaderParentGroup=(...i)=>this.model.getColumnHeaderParentGroup(...i),this.formatForCell=(...i)=>this.model.formatForCell(...i),this.valueForCell=(...i)=>this.model.valueForCell(...i),this.displayString=(...i)=>this.model.displayString(...i),this.isEditableRange=(...i)=>Oe(this.model)?this.model.isEditableRange(...i):!1,this.isFilterable=(...i)=>this.model.isFilterable(...i),this.setViewport=(i,r,l)=>this.model.setViewport(i,r,l),this.snapshot=(...i)=>this.model.snapshot(...i),this.textSnapshot=(...i)=>this.model.textSnapshot(...i),this.valuesTable=(...i)=>this.model.valuesTable(...i),this.editValueForCell=(...i)=>(Oe(this.model)&&this.model.editValueForCell(...i),""),this.setValueForCell=(...i)=>Oe(this.model)?this.model.setValueForCell(...i):Promise.reject(new Error("Model is not editable")),this.setValueForRanges=(...i)=>Oe(this.model)?this.model.setValueForRanges(...i):Promise.reject(new Error("Model is not editable")),this.setValues=(...i)=>Oe(this.model)?this.model.setValues(...i):Promise.resolve(),this.isValidForCell=(...i)=>Oe(this.model)?this.model.isValidForCell(...i):!1,this.delete=(...i)=>this.model.delete(...i),this.commitPending=(...i)=>this.model.commitPending(...i),this.handleModelEvent=this.handleModelEvent.bind(this);const o=Yi(t,n,s);this.originalModel=o,this.model=o,this.modelPromise=null,this.rollup=null,this.selectDistinct=[]}close(){this.originalModel.close(),this.model!==this.originalModel&&this.model.close(),this.modelPromise!=null&&this.modelPromise.cancel()}handleModelEvent(t){Hn.debug2("handleModelEvent",t);const{detail:n,type:s}=t;this.dispatchEvent(new Re(s,{detail:n}))}setModel(t){Hn.debug("setModel",t);const n=this.model;n!==this.originalModel&&n.close(),this.model=t,this.listenerCount>0&&this.addListeners(t),this.dispatchEvent(new Re(me.EVENT.COLUMNS_CHANGED,{detail:t.columns})),Yo(t)&&this.dispatchEvent(new Re(me.EVENT.TABLE_CHANGED,{detail:t.table}))}setNextModel(t){Hn.debug2("setNextModel"),this.modelPromise&&this.modelPromise.cancel(),this.listenerCount>0&&this.removeListeners(this.model),this.modelPromise=Pe.makeCancelable(t,n=>n.close()),this.modelPromise.then(n=>{this.modelPromise=null,this.setModel(n)}).catch(n=>{if(Pe.isCanceled(n)){Hn.debug2("setNextModel cancelled");return}Hn.error("Unable to set next model",n),this.modelPromise=null,this.dispatchEvent(new Re(me.EVENT.REQUEST_FAILED,{detail:n}))})}startListening(){super.startListening(),this.addListeners(this.model)}stopListening(){super.stopListening(),this.removeListeners(this.model)}addListeners(t){const n=Object.keys(me.EVENT);for(let s=0;s<n.length;s+=1)t.addEventListener(n[s],this.handleModelEvent)}removeListeners(t){const n=Object.keys(me.EVENT);for(let s=0;s<n.length;s+=1)t.removeEventListener(n[s],this.handleModelEvent)}get rowCount(){return this.model.rowCount}get columnCount(){return this.model.columnCount}get floatingTopRowCount(){return this.model.floatingTopRowCount}get floatingBottomRowCount(){return this.model.floatingBottomRowCount}get floatingLeftColumnCount(){return this.model.floatingLeftColumnCount}get floatingRightColumnCount(){return this.model.floatingRightColumnCount}isColumnFrozen(t){return this.model.isColumnFrozen(t)}get hasExpandableRows(){return ze(this.model)?this.model.hasExpandableRows:!1}get isExportAvailable(){return this.model.isExportAvailable}get isColumnStatisticsAvailable(){return this.model.isColumnStatisticsAvailable}get isValuesTableAvailable(){return this.model.isValuesTableAvailable}get isCustomColumnsAvailable(){return this.model.isCustomColumnsAvailable&&!(this.isSelectDistinctAvailable&&this.selectDistinctColumns.length>0)}get isFormatColumnsAvailable(){return this.model.isFormatColumnsAvailable}get isChartBuilderAvailable(){return this.model.isChartBuilderAvailable}get isRollupAvailable(){return(this.originalModel.isRollupAvailable||this.rollup!=null)&&this.selectDistinct.length===0}get isSelectDistinctAvailable(){return(this.originalModel.isSelectDistinctAvailable||this.selectDistinct.length>0)&&this.rollup==null}get isTotalsAvailable(){return this.model.isTotalsAvailable}get isReversible(){return this.model.isReversible}get columns(){return this.model.columns}get initialMovedColumns(){return this.model.initialMovedColumns}get initialMovedRows(){return this.model.initialMovedRows}get layoutHints(){return this.model.layoutHints}get frontColumns(){return this.model.frontColumns}get backColumns(){return this.model.backColumns}get frozenColumns(){return this.model.frozenColumns}get columnHeaderGroups(){return this.model.columnHeaderGroups}set columnHeaderGroups(t){this.model.columnHeaderGroups=t}get initialColumnHeaderGroups(){return this.model.initialColumnHeaderGroups}get columnHeaderGroupMap(){return this.model.columnHeaderGroupMap}get columnHeaderMaxDepth(){return this.model.columnHeaderMaxDepth}updateFrozenColumns(t){return this.model.updateFrozenColumns(t)}get originalColumns(){return this.originalModel.columns}get groupedColumns(){return this.model.groupedColumns}get description(){return this.model.description}get filter(){return this.model.filter}set filter(t){this.model.filter=t}get formatter(){return this.model.formatter}set formatter(t){this.model.formatter=t}get sort(){return this.model.sort}set sort(t){this.model.sort=t}get customColumns(){return this.model.customColumns}set customColumns(t){this.model.customColumns=t}get formatColumns(){return this.model.formatColumns}set formatColumns(t){this.model.formatColumns=t}get rollupConfig(){return this.rollup}set rollupConfig(t){if(Hn.debug("set rollupConfig",t),!this.isRollupAvailable)throw new Error("Rollup Rows are not available");if(ht(t,this.rollup))return;this.rollup=t;let n=Promise.resolve(this.originalModel);Yo(this.originalModel)&&t!=null&&(n=this.originalModel.table.rollup(t).then(s=>Yi(s,this.formatter))),this.setNextModel(n)}get selectDistinctColumns(){return this.selectDistinct}set selectDistinctColumns(t){if(Hn.debug("set selectDistinctColumns",t),!this.isSelectDistinctAvailable)throw new Error("Select distinct is not available");if(t===this.selectDistinctColumns||t.length===0&&this.selectDistinctColumns.length===0){Hn.debug("Ignore same selectDistinctColumns",t);return}this.selectDistinct=t;const n=t.map(o=>this.originalColumns.find(i=>i.name===o)).filter(o=>o!=null);let s=Promise.resolve(this.originalModel);Yo(this.originalModel)&&n.length>0&&(s=this.originalModel.table.selectDistinct(n).then(o=>Yi(o,this.formatter))),this.setNextModel(s)}get table(){if(Yo(this.model))return this.model.table}get totalsConfig(){return this.model.totalsConfig}set totalsConfig(t){this.model.totalsConfig=t}get isFilterRequired(){return this.model.isFilterRequired}get isEditable(){return Oe(this.model)&&this.model.isEditable}export(){if(A.isTreeTable(this.model))throw new Error("TreeTable has no 'export' property");return this.model.export()}columnStatistics(t){if(A.isTreeTable(this.model))throw new Error("TreeTable has no 'columnStatistics' function");return this.model.columnStatistics(t)}get pendingDataMap(){return this.model.pendingDataMap}set pendingDataMap(t){this.model.pendingDataMap=t}get pendingRowCount(){return this.model.pendingRowCount}set pendingRowCount(t){this.model.pendingRowCount=t}get pendingDataErrors(){return this.model.pendingDataErrors}getColumnIndexByName(t){return this.model.getColumnIndexByName(t)}}class Kf{static async makeModel(t,n=new en){let s=null;return!A.isTreeTable(t)&&t.hasInputTable&&(s=await t.inputTable()),new qf(t,n,s)}}const un=ne.module("TableViewportUpdater"),Xf=150,uo=class extends T.exports.PureComponent{constructor(){super(...arguments),this.getViewportRowRange=Ee((e,t,n)=>{const s=n-t,o=Math.max(0,t-s*uo.ROW_BUFFER_PAGES),i=n+s*uo.ROW_BUFFER_PAGES;return[o,i]}),this.getViewportColumns=Ee((e,t,n,s)=>{if(t==null||n==null)return null;const o=n-t,i=Math.max(0,t-o*uo.COLUMN_BUFFER_PAGES),r=Math.min(n+o*uo.COLUMN_BUFFER_PAGES,e.columns.length-1),l=[];for(let a=i;a<=r;a+=1){const c=B.getModelIndex(a,s);l.push(e.columns[c])}return l}),this.updateViewport=Yn((e,t,n,s,o)=>{if(t<e){un.error("Invalid viewport",e,t);return}if(e===0&&t===0){un.debug2("Ignoring 0-0 viewport");return}const{movedColumns:i,table:r}=this.props,[l,a]=this.getViewportRowRange(r,e,t),c=o!=null?o:this.getViewportColumns(r,n,s,i);if(un.debug2("Setting Viewport Top:",l,"Bottom:",a,"Columns:",c),this.subscription==null){un.debug2("updateViewport creating new subscription"),this.subscription=r.setViewport(l,a,c);const{onSubscription:d}=this.props;d(this.subscription)}else un.debug2("updateViewport using existing subscription"),this.subscription.setViewport(l,a,c)},Xf)}componentDidMount(){const{top:e,bottom:t,left:n,right:s,table:o,filters:i,sorts:r,columns:l,customColumns:a}=this.props;o.applyFilter(i),o.applySort(r),o.applyCustomColumns(a),this.updateViewport(e,t,n,s,l)}componentDidUpdate(e){const{top:t,bottom:n,left:s,right:o,table:i,filters:r,sorts:l,customColumns:a,columns:c}=this.props,d=r!==e.filters,u=l!==e.sorts,m=a!==e.customColumns,p=i!==e.table;(d||u||m||p)&&this.closeSubscription(),(d||p)&&(un.debug("update table filter",r),i.applyFilter(r)),(u||p)&&(un.debug("update table sort",l),i.applySort(l)),(m||p)&&(un.debug("update table custom columns",a),i.applyCustomColumns(a)),this.updateViewport(t,n,s,o,c)}componentWillUnmount(){this.closeSubscription()}closeSubscription(){if(un.debug2("closeSubscription",this.subscription),this.subscription){this.subscription.close(),this.subscription=void 0;const{onSubscription:e}=this.props;e()}this.updateViewport.cancel()}render(){return null}};let Wr=uo;Wr.ROW_BUFFER_PAGES=3;Wr.COLUMN_BUFFER_PAGES=1;Wr.defaultProps={top:0,bottom:0,left:null,right:null,columns:null,onSubscription:()=>{},filters:[],sorts:[],customColumns:[],movedColumns:[]};const Ds=ne.module("TreeTableViewportUpdater"),Yf=150,Ec=class extends T.exports.PureComponent{constructor(e){super(e),this.updateViewport=Yn((t,n)=>{if(n<t){Ds.error("Invalid viewport",t,n);return}if(t===0&&n===0){Ds.debug2("Ignoring 0-0 viewport");return}const{table:s,updateInterval:o}=this.props,i=n-t,r=Math.max(0,t-i*3),l=n+i*3+1;if(Ds.debug2("Setting Viewport Top:",r,"Bottom:",l,s),!this.listenerCleanup){const{onViewportUpdate:a}=this.props;this.listenerCleanup=s.addEventListener(I.TreeTable.EVENT_UPDATED,a)}s.setViewport(r,l,void 0,o)},Yf),this.listenerCleanup=null}componentDidMount(){const{top:e,bottom:t,table:n,filters:s,sorts:o}=this.props;Ds.debug("componentDidMount",this.props),n.applyFilter(s),n.applySort(o),this.updateViewport(e,t)}componentDidUpdate(e){const{top:t,bottom:n,table:s,filters:o,sorts:i}=this.props;o!==e.filters&&(Ds.debug("update table filter",o),s.applyFilter(o)),i!==e.sorts&&(Ds.debug("update table sort",i),s.applySort(i)),this.updateViewport(t,n)}componentWillUnmount(){this.updateViewport.cancel(),this.listenerCleanup&&this.listenerCleanup()}render(){return null}};let yc=Ec;yc.UPDATE_INTERVAL=1e3;yc.defaultProps={top:0,bottom:0,onViewportUpdate:()=>{},filters:[],sorts:[],updateInterval:Ec.UPDATE_INTERVAL};ne.setLogLevel(parseInt("2",10));const Os=ne.module("EmbedGrid.App"),Qf=[I.VariableType.TABLE,I.VariableType.TREETABLE,I.VariableType.HIERARCHICALTABLE,I.VariableType.PANDAS];async function jf(e,t){Os.info(`Fetching table ${t}...`);const n=await Vh(e,t);if(!Qf.includes(n.type))throw new Error(`Unsupported type '${n.type}' for variable named '${t}'`);return await e.getObject(n)}function Zf(){const[e,t]=T.exports.useState(),[n,s]=T.exports.useState(),[o,i]=T.exports.useState(),[r,l]=T.exports.useState(),[a,c]=T.exports.useState(!0),d=T.exports.useMemo(()=>new URLSearchParams(window.location.search),[]),u=d.get("canCopy")!=null,m=d.get("canDownloadCsv")!=null;T.exports.useEffect(function(){async function f(){try{const C=d.get("name");if(C==null)throw new Error("No name param provided");const w=new URL("/jsapi",`${window.location}`),S=`${w.protocol}//${w.host}`;Os.debug("Starting connection...");const b=new I.IdeConnection(S);Os.debug("Loading table",C,"...");const y=await jf(b,C);Os.debug("Creating model...");const v=await Kf.makeModel(y);t(v),Os.debug("Table successfully loaded!")}catch(C){Os.error("Unable to load table",C),s(`${C}`)}c(!1)}f()},[d]),T.exports.useEffect(function(){function f(C){const{command:w,value:S}=C.data;switch(w){case"filter":{const y=S.map(({name:v,value:E})=>{const M=e==null?void 0:e.columns.find(F=>F.name===v);if(M==null)throw new Error(`Could not find column named ${v}`);return{name:v,value:E,type:A.getNormalizedType(M.type)}});i(y);break}case"sort":{const y=S.map(({name:v,direction:E})=>{const M=e==null?void 0:e.columns.find(F=>F.name===v);if(M==null)throw new Error(`Could not find column named ${v}`);return E==="DESC"?M.sort().desc():M.sort().asc()});l(y);break}}}return window.addEventListener("message",f),()=>{window.removeEventListener("message",f)}},[e]);const p=e!=null;return R("div",{className:"App",children:[p&&h(So,{canCopy:u,canDownloadCsv:m,model:e,inputFilters:o,sorts:r}),!p&&h(Ta,{isLoaded:p,isLoading:a,errorMessage:n!=null?n:null}),h(Lu,{})]})}rr.render(h(Zf,{}),document.getElementById("root"));
|
|
33
|
+
//# sourceMappingURL=index.c97b14bc.js.map
|