@deephaven/embed-grid 0.22.2-beta.6 → 0.22.2

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.
@@ -9,7 +9,7 @@ import{A as D,z as y,R as j,P as cc,B as u,C as rt,D as $,E as T,F as qo,G as me
9
9
  buffered ${this.snapshotsBuffer.size}
10
10
  making ${Math.min(Fn.SNAPSHOT_BUFFER_SIZE-this.snapshotsBuffer.size-this.snapshotPending,this.snapshotsTotal-this.snapshotCounter)} more snapshots
11
11
  `),this.makeSnapshot(Math.min(Fn.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 o;let t="";const n=e.added.iterator(),{formatter:s}=this.props,i=[];for(;n.hasNext();)i.push(n.next().value);O(this.columns);for(let r=0;r<i.length;r+=1){const l=i[r];for(let a=0;a<this.columns.length;a+=1){const{type:c,name:d}=this.columns[a],h=this.getCachedCustomColumnFormatFlag(s,d,c);let m=null;if(!h){const g=e.getFormat(l,this.columns[a]);m=(g==null?void 0:g.formatString)!=null?g:null}let p=null;m?p=s.getFormattedString(e.getData(l,this.columns[a]),c,d,m):p=s.getFormattedString(e.getData(l,this.columns[a]),c,d),t+=Fn.csvEscapeString(p),t+=a===((o=this.columns)==null?void 0:o.length)-1?`
12
- `:","}}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,i=Math.min(s+this.chunkRows-1,n.endRow),o=this.snapshotCounter;this.cancelableSnapshots.push(He.makeCancelable(this.tableSubscription.snapshot(E.RangeSet.ofRange(s,i),this.columns).then(r=>(xu(r),this.handleSnapshotResolved(r,o,s,i),o)).catch(r=>{ln.error(r)}),r=>{ln.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;this.useBlobFallback||(t!=null&&(this.makeIframe(`${t}`),this.writeCsvTable()),n!=null&&(this.useBlobFallback||(this.streamTimeout!=null&&clearTimeout(this.streamTimeout),this.streamTimeout=setTimeout(this.handleDownloadTimeout,Fn.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},Fn.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 Ls=Fn;Ls.DOWNLOAD_CELL_CHUNK=6e3;Ls.SNAPSHOT_BUFFER_SIZE=5;Ls.STREAM_TIMEOUT=8e3;Ls.SNAPSHOT_HANDLER_TIMEOUT=5;Ls.defaultProps={getDownloadWorker:()=>Promise.reject(new Error("Download worker not provided")),isDownloading:!1,onDownloadCompleted:()=>{},onDownloadCanceled:()=>{},onDownloadProgressUpdate:()=>{}};const Ou=ee.module("VisibilityOrderingBuilder"),Au=150,Oe=class extends y.exports.Component{constructor(e){super(e),this.debouncedSearchColumns=Tt(this.searchColumns,Au),this.getFirstMovableIndex=me((t,n)=>{for(let s=0;s<n.length;s+=1)if(t.isColumnMovable(s))return s;return null}),this.getLastMovableIndex=me((t,n)=>{for(let s=n.length-1;s>=0;s-=1)if(t.isColumnMovable(s))return s;return null}),this.renderImmovableItem=me(t=>u("div",{className:"visibility-ordering-list-item immovable",children:u("div",{className:"column-item",children:u("span",{className:"column-name",children:t})})},t)),this.renderVisibilityOrderingItem=me((t,n,s,i,o,r,l,a)=>u(Xi,{draggableId:`${n}`,index:s,disableInteractiveElementBlocking:!0,children:c=>T("div",{className:"visibility-ordering-list-item",ref:c.innerRef,...c.draggableProps,children:[u(Y,{kind:"ghost",className:"btn-link-icon visibility",onMouseDown:d=>{this.handleVisibilityDraggingStart(n,i?Oe.VISIBILITY_OPTIONS.SHOW:Oe.VISIBILITY_OPTIONS.HIDE,d)},onMouseEnter:d=>{this.handleMouseEnter(n,d)},onMouseUp:d=>{this.handleVisibilityDraggingEnd(d)},onClick:d=>{this.handleItemClick(n,d,!1)},onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&(this.handleVisibilityKeyDown(n,i?Oe.VISIBILITY_OPTIONS.SHOW:Oe.VISIBILITY_OPTIONS.HIDE),d.stopPropagation(),d.preventDefault())},tooltip:i?"Show":"Hide",children:u(K,{icon:i?Br:_o})}),T("div",{role:"menuitem",tabIndex:0,className:$("ordering column-item",{isSelected:o},{isDragging:r},{isDragged:l},{"two-dragged":a===2},{"multiple-dragged":a!=null&&a>2}),onClick:d=>{this.handleItemClick(n,d)},...c.dragHandleProps,children:[u("span",{className:"column-name",children:t}),T("div",{children:[a!=null&&a!==0&&u("span",{className:"number-badge",children:a}),u(Le,{children:"Drag to re-order"}),u(K,{icon:Qi})]})]})]})},t)),this.handleSearchInputChange=this.handleSearchInputChange.bind(this),this.searchColumns=this.searchColumns.bind(this),this.handleOrderDraggingStart=this.handleOrderDraggingStart.bind(this),this.handleOrderDraggingEnd=this.handleOrderDraggingEnd.bind(this),this.state={selectedColumns:[],lastSelectedColumns:[],isDraggingVisibility:!1,visibilityDraggingOption:void 0,visibilityDraggingStartColumn:null,isDraggingOrder:!1,orderDraggingColumn:null,searchFilter:""},this.list=null}componentWillUnmount(){this.debouncedSearchColumns.cancel()}resetVisibilityOrdering(){const{model:e,onColumnVisibilityChanged:t,onMovedColumnsChanged:n}=this.props,{columns:s}=e;t(s.map(i=>{const o=e.getColumnIndexByName(i.name);return O(o),o}),Oe.VISIBILITY_OPTIONS.SHOW),this.setState({selectedColumns:[],lastSelectedColumns:[],searchFilter:""}),n([])}resetSelection(){const{isDraggingOrder:e}=this.state;e||this.setState({selectedColumns:[],lastSelectedColumns:[]})}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 r;const{model:t,movedColumns:n}=this.props,{columns:s}=t,i=[];let o=s.length;if(s.forEach((l,a)=>{const c=l.name.toLowerCase();t.isColumnMovable(a)&&c.includes(e.toLowerCase())&&(i.push(a),o=Math.min(o,U.getVisibleIndex(a,n)))}),this.addColumnToSelected(i,!1),i.length>0){const l=(r=this.list)==null?void 0:r.querySelectorAll(".column-item")[o];l==null||l.scrollIntoView({block:"center"})}}handleVisibilityKeyDown(e,t){const{onColumnVisibilityChanged:n}=this.props;n([e],t)}handleVisibilityDraggingStart(e,t,n){const{onColumnVisibilityChanged:s,movedColumns:i}=this.props,o=U.isModifierKeyDown(n),r=n.shiftKey;if(o||r)return;s([e],t);const l=U.getVisibleIndex(e,i);this.setState({isDraggingVisibility:!0,visibilityDraggingOption:t,visibilityDraggingStartColumn:l}),this.addColumnToSelected([e])}handleVisibilityDraggingEnd(e=null){e&&e.target.focus();const{isDraggingVisibility:t}=this.state;t&&this.setState({isDraggingVisibility:!1,visibilityDraggingOption:void 0,visibilityDraggingStartColumn:null})}handleOrderDraggingStart(e){var o;document.documentElement.classList.add("drag-pointer-events-none");const{selectedColumns:t}=this.state,{draggableId:n,source:{index:s}}=e,i=parseInt(n,10);if(((o=this.list)==null?void 0:o.querySelectorAll(".column-item")[s]).focus(),!t.includes(i)){this.setState({isDraggingOrder:!0,orderDraggingColumn:i,selectedColumns:[i]});return}this.setState({isDraggingOrder:!0,orderDraggingColumn:i})}handleOrderDraggingEnd(e){document.documentElement.classList.remove("drag-pointer-events-none");const{movedColumns:t,onMovedColumnsChanged:n}=this.props,{selectedColumns:s,orderDraggingColumn:i}=this.state;if(this.setState({isDraggingOrder:!1,orderDraggingColumn:null}),!e.destination)return;const{index:o}=e.destination,r=[...s].sort((m,p)=>U.getVisibleIndex(m,t)-U.getVisibleIndex(p,t));let l=[...t];O(i);const a=U.getVisibleIndex(i,l),c=[],d=[];l=U.moveItem(a,o,l),r.forEach(m=>{const p=U.getVisibleIndex(m,l);m!==i&&(p<o?c.push(m):d.push(m))}),c.forEach(m=>{const p=U.getVisibleIndex(m,l);l=U.moveItem(p,o,l)});const h=c.length>0||a>o?o+1:o;d.reverse().forEach(m=>{const p=U.getVisibleIndex(m,l);l=U.moveItem(p,h,l)}),n(l),Ou.debug("move column order by drag & drop",l)}handleMouseEnter(e,t){const{onColumnVisibilityChanged:n,movedColumns:s,userColumnWidths:i}=this.props,{isDraggingVisibility:o,visibilityDraggingOption:r,visibilityDraggingStartColumn:l}=this.state,a=U.getVisibleIndex(e,s),c=U.isModifierKeyDown(t),d=t.shiftKey;if(!o||c||d)return;t.target.focus();const h=[e];O(l);const m=a>l;for(let p=l;m?p<a:p>a;m?p+=1:p-=1){const g=U.getModelIndex(p,s),f=U.checkColumnHidden(g,i);(f&&r===Oe.VISIBILITY_OPTIONS.SHOW||!f&&r===Oe.VISIBILITY_OPTIONS.HIDE)&&h.push(g)}this.addColumnToSelected(h,!0),n(h,r)}handleMoveColumns(e){const{movedColumns:t,onMovedColumnsChanged:n,model:s}=this.props,{columns:i}=s,{selectedColumns:o}=this.state;if(o.length===0)return;const r=this.getFirstMovableIndex(s,i),l=this.getLastMovableIndex(s,i);if(r==null||l==null)return;const a=[...o].sort((h,m)=>e===Oe.MOVE_OPTIONS.TOP||e===Oe.MOVE_OPTIONS.UP?U.getVisibleIndex(h,t)-U.getVisibleIndex(m,t):U.getVisibleIndex(m,t)-U.getVisibleIndex(h,t));let c=[],d=()=>{};switch(e){case Oe.MOVE_OPTIONS.TOP:a.forEach((h,m)=>{const p=U.getVisibleIndex(h,t);c=U.moveItem(p,r+m,c)}),d=()=>{O(this.list),this.list.scrollTop=0};break;case Oe.MOVE_OPTIONS.BOTTOM:a.forEach((h,m)=>{const p=U.getVisibleIndex(h,t);c=U.moveItem(p,l-m,c)}),d=()=>{O(this.list),this.list.scrollTop=this.list.scrollHeight};break;case Oe.MOVE_OPTIONS.UP:U.getVisibleIndex(a[0],t)!==r&&a.forEach(h=>{const m=U.getVisibleIndex(h,t);c=U.moveItem(m,m-1,c)});break;case Oe.MOVE_OPTIONS.DOWN:U.getVisibleIndex(a[0],t)!==l&&a.forEach(h=>{const m=U.getVisibleIndex(h,t);c=U.moveItem(m,m+1,c)});break}c.length>0&&n(t.concat(c),d)}handleSortColumns(e){const{model:t,onMovedColumnsChanged:n}=this.props,{columns:s}=t,i=[],o=[];for(let d=0;d<s.length;d+=1)t.isColumnMovable(d)?i.push(d):o.push(d);const r=i.sort((d,h)=>{const m=e===Oe.SORTING_OPTIONS.ASC,p=s[d].name.toUpperCase(),g=s[h].name.toUpperCase();return nr.sort(p,g,m)}),l=[];for(let d=0;d<o.length;d+=1){const h=o[d];l[h]=h}let a=0;for(let d=0;d<r.length;d+=1){for(;l[a]!=null;)a+=1;l[a]=r[d]}let c=[];l.forEach((d,h)=>{const m=U.getVisibleIndex(d,c);c=U.moveItem(m,h,c)}),n(c)}handleItemClick(e,t,n=!0){t.stopPropagation(),t.currentTarget.focus();const{selectedColumns:s,lastSelectedColumns:i}=this.state,o=U.isModifierKeyDown(t),r=t.shiftKey,l=s.includes(e),a=[e];if(l&&o){this.removeColumnFromSelected(e);return}if(l&&s.length===1&&n){this.removeColumnFromSelected(e);return}if(r){const{movedColumns:c}=this.props,d=i[i.length-1],h=U.getVisibleIndex(d,c),m=U.getVisibleIndex(e,c),p=m>h,g=[];for(let f=h;p?f<m:f>m;p?f+=1:f-=1)g.push(U.getModelIndex(f,c));g.forEach(f=>{s.includes(f)||a.push(f)})}this.addColumnToSelected(a,o||r)}addColumnToSelected(e,t=!1){const{selectedColumns:n,lastSelectedColumns:s}=this.state,i=t?n.concat(e):e,o=t?s.concat(e):e;this.setState({selectedColumns:i,lastSelectedColumns:o})}removeColumnFromSelected(e){const{selectedColumns:t,lastSelectedColumns:n}=this.state,s=[...t];s.splice(s.findIndex(r=>r===e),1);const i=n[n.length-1],o=[...n];i===e&&o.pop(),this.setState({selectedColumns:s,lastSelectedColumns:o})}makeVisibilityOrderingList(){const{model:e,userColumnWidths:t,movedColumns:n}=this.props,{columns:s}=e,{selectedColumns:i,isDraggingOrder:o,orderDraggingColumn:r}=this.state,l=[];let a=!1;for(let c=0;c<s.length;c+=1){const d=U.getModelIndex(c,n),h=s[d],m=e.isColumnMovable(d);if(c>0&&m!==a&&l.push(u("hr",{})),m){const p=t.get(d)===0,g=i.includes(d),f=r===d,C=o&&f&&i.length>1?i.length:null;l.push(this.renderVisibilityOrderingItem(h.name,d,c,p,g,o,f,C))}else l.push(this.renderImmovableItem(h.name));a=m}return l}render(){const{model:e,userColumnWidths:t,onColumnVisibilityChanged:n}=this.props,{selectedColumns:s,searchFilter:i}=this.state,{columns:o}=e,r=s.length===0,l=r?o.map((h,m)=>m).filter(h=>e.isColumnMovable(h)):[...s],a=U.checkAllColumnsHidden(l,t),c=a?"Show Selected":"Hide Selected",d=this.makeVisibilityOrderingList();return T("div",{role:"menu",className:"visibility-ordering-builder",tabIndex:0,onMouseUp:()=>{this.handleVisibilityDraggingEnd()},onMouseLeave:()=>{this.handleVisibilityDraggingEnd()},children:[T("div",{className:"top-menu",children:[u(Y,{kind:"ghost",onClick:()=>{n(l,a?Oe.VISIBILITY_OPTIONS.SHOW:Oe.VISIBILITY_OPTIONS.HIDE)},icon:a?Br:_o,tooltip:"Toggle column visibility",children:r?"Toggle All":c}),T("div",{children:[u(Y,{kind:"ghost",className:"text-muted",onClick:()=>{this.resetVisibilityOrdering()},tooltip:"Reset to default",children:"Reset"}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleSortColumns(Oe.SORTING_OPTIONS.ASC)},tooltip:"Sort ascending",children:u(K,{icon:Zo})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleSortColumns(Oe.SORTING_OPTIONS.DSC)},tooltip:"Sort descending",children:u(K,{icon:Jo})}),u("span",{className:"vertical-divider"}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.UP)},disabled:r,tooltip:"Move selection up",children:u(K,{icon:rd})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.DOWN)},disabled:r,tooltip:"Move selection down",children:u(K,{icon:id})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.TOP)},disabled:r,tooltip:"Move selection to top",children:u(K,{icon:Md})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.BOTTOM)},disabled:r,tooltip:"Move selection to bottom",children:u(K,{icon:Id})})]})]}),u("div",{className:"top-menu",children:u(Bn,{className:"w-100",value:i,matchCount:i?s.length:void 0,onChange:this.handleSearchInputChange})}),u(ei,{onDragStart:this.handleOrderDraggingStart,onDragEnd:this.handleOrderDraggingEnd,children:u(Js,{droppableId:"droppable-visibility-order-list",children:(h,m)=>u("div",{role:"menu",className:$("visibility-ordering-list",{isDragging:m.draggingFromThisWith}),ref:h.innerRef,...h.droppableProps,children:T("div",{className:"column-list",ref:p=>{this.list=p},children:[d,h.placeholder]})})})})]})}};let cs=Oe;cs.VISIBILITY_OPTIONS={SHOW:"SHOW",HIDE:"HIDE"};cs.SORTING_OPTIONS={DSC:"DSC",ASC:"ASC"};cs.MOVE_OPTIONS={TOP:"TOP",BOTTOM:"BOTTOM",UP:"UP",DOWN:"DOWN"};cs.COLUMN_CHANGE_OPTIONS={ALL:"ALL",SELECTION:"SELECTION"};cs.defaultProps={movedColumns:[],onColumnVisibilityChanged:()=>{},onMovedColumnsChanged:()=>{}};const Ni=ee.module("AdvancedFilterCreatorFilterItem");class Cr extends y.exports.PureComponent{constructor(t){super(t),this.getCachedIsValid=Ie((o,r,l,a)=>{try{return!l||x.makeAdvancedValueFilter(o,r,l,a)!=null}catch{return!1}}),this.handleDelete=this.handleDelete.bind(this),this.handleTypeChange=this.handleTypeChange.bind(this),this.handleValueChange=this.handleValueChange.bind(this),this.typeDropdown=null;const{value:n="",filterTypes:s,selectedType:i=s[0]}=t;this.state={selectedType:i,value:n}}static getLabelForFilter(t,n){try{if(x.isNumberType(t)||x.isCharType(t))return Wh(n);if(x.isTextType(t))return Bh(n);if(x.isDateType(t))return zh(n);if(x.isBooleanType(t))return $h(n);throw new Error(`Unrecognized column type: ${t}`)}catch(s){return Ni.warn(s),""}}componentDidMount(){var t;(t=this.typeDropdown)==null||t.focus()}componentDidUpdate(t){const{value:n,selectedType:s}=this.props;s!==void 0&&t.selectedType!==s&&this.setState({selectedType:s}),n!==void 0&&t.value!==n&&this.setState({value:n})}handleTypeChange(t){const n=t.target.value;Ni.debug2("typeChange",n),this.setState({selectedType:n});const{onChange:s}=this.props,{value:i}=this.state;i!=null&&i.length>0&&s(n,i)}handleValueChange(t){Ni.debug2("valueChange");const{value:n}=t.target;this.setState({value:n});const{onChange:s}=this.props,{selectedType:i}=this.state;i!=null&&s(i,n)}handleDelete(){Ni.debug("delete");const{onDelete:t}=this.props;t()}render(){const{column:t,filterTypes:n,formatter:s}=this.props,{selectedType:i,value:o}=this.state,r=!x.isBooleanType(t.type),l=[],a=this.getCachedIsValid(t,i,o,s.timeZone);for(let c=0;c<n.length;c+=1){const d=n[c],h=Cr.getLabelForFilter(t.type,d),m=u("option",{value:d,children:h},d);l.push(m)}return u("div",{className:"advanced-filter-creator-filter-item",children:T("div",{className:"form-row",children:[u("div",{className:"form-group col",children:u("select",{className:"form-control custom-select",value:i,onChange:this.handleTypeChange,ref:c=>{this.typeDropdown=c},children:l})}),r&&u("div",{className:"form-group col",children:u("div",{className:"input-group",children:u("input",{type:"text",className:$("form-control",{error:!a}),placeholder:"Enter value",value:o,onChange:this.handleValueChange})})}),u("div",{className:"form-group col-1 px-0",children:u(Y,{kind:"ghost",className:"w-100 h-100 p-0 m-0",onClick:this.handleDelete,icon:Vn,tooltip:"Remove Filter"})})]})})}}const dl=ee.module("AdvancedFilterCreatorSelectValueList"),Wo=class extends y.exports.PureComponent{constructor(e){super(e),this.handleSelect=this.handleSelect.bind(this),this.handleViewportChange=this.handleViewportChange.bind(this),this.handleSelectionUpdate=this.handleSelectionUpdate.bind(this),this.handleTableUpdate=this.handleTableUpdate.bind(this),this.list=null;const{selectedValues:t}=this.props;this.state={itemCount:0,items:[],offset:0,selectedValues:t,isLoading:!0}}static indexOf(e,t){for(let n=0;n<t.length;n+=1){const s=t[n];if(s===e||s!=null&&s.valueOf!=null&&e!=null&&e.valueOf!=null&&s.valueOf()===e.valueOf())return n}return-1}componentDidMount(){const{table:e}=this.props;e&&this.startListening(e)}componentDidUpdate(e){const{filters:t,invertSelection:n,selectedValues:s,table:i}=this.props;e.table!==i&&(e.table&&this.stopListening(e.table),i&&this.startListening(i),this.resetViewport()),e.invertSelection!==n&&this.setState({selectedValues:[]},this.handleSelectionUpdate),e.selectedValues!==s&&this.setState({selectedValues:s},this.handleSelectionUpdate),e.filters!==t&&(i==null||i.applyFilter(t),this.resetViewport())}componentWillUnmount(){const{table:e}=this.props;e&&this.stopListening(e)}handleSelect(e,t){const{invertSelection:n}=this.props;let{selectedValues:s}=this.state;s=[...s];const i=Wo.indexOf(t,s);i>=0?s.splice(i,1):s.push(t);let o=i<0;n&&(o=!o);const{offset:r}=this.state;let{items:l}=this.state;l=[...l];const a=e-r;a>=0&&a<l.length&&(l[a].isSelected=o),this.setState({items:l,selectedValues:s});const{onChange:c}=this.props;c(s,n)}handleViewportChange(e,t){this.updateViewport(e,t)}handleSelectionUpdate(){this.updateItemSelection()}handleTableUpdate(e){const{table:t,formatter:n}=this.props;if(!t)return;const s=e.detail,{offset:i}=s,o=[],r=t.columns[0];for(let a=0;a<s.rows.length;a+=1){const d=s.rows[a].get(r),h=n.getFormattedString(d,r.type,r.name),m=this.isValueSelected(d);o.push({displayValue:h,value:d,isSelected:m})}dl.debug2("Received table update:",i,o.length);const l=t.size;this.setState({itemCount:l,items:o,offset:i,isLoading:!1})}isValueSelected(e){const{invertSelection:t}=this.props,{selectedValues:n}=this.state,s=Wo.indexOf(e,n);return t?s<0:s>=0}startListening(e){e.addEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate)}stopListening(e){e.removeEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate)}resetViewport(){this.list&&this.list.topRow!=null&&this.list.bottomRow!=null&&this.updateViewport(this.list.topRow,this.list.bottomRow,!0)}updateItemSelection(){let{items:e}=this.state;e=[...e];for(let t=0;t<e.length;t+=1){const n=e[t],{value:s}=n;n.isSelected=this.isValueSelected(s)}this.setState({items:e})}updateViewport(e,t,n=!1){const{table:s}=this.props;if(s==null)return;n&&this.setState({isLoading:!0});const i=t-e+1,o=Math.max(0,e-i*3),r=Math.max(o,t+i*3);dl.debug2("Setting viewport",o,",",r),s.setViewport(o,r)}render(){const{offset:e,isLoading:t,items:n,itemCount:s}=this.state;return T("div",{className:"select-value-list-wrapper",children:[u(pa,{itemCount:s,items:n,offset:e,onSelect:this.handleSelect,onViewportChange:this.handleViewportChange,ref:i=>{this.list=i}}),u(rt,{in:t,timeout:250,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"loading-list",children:u(Vt,{className:"loading-spinner-large"})})})]})}};let ya=Wo;ya.defaultProps={invertSelection:!0,selectedValues:[],onChange:()=>{}};const Ra=class extends y.exports.PureComponent{constructor(e){super(e),this.handleSelectAllClick=this.handleSelectAllClick.bind(this),this.handleClearAllClick=this.handleClearAllClick.bind(this),this.handleListChange=this.handleListChange.bind(this),this.handleSearchChange=this.handleSearchChange.bind(this),this.handleUpdateFilterTimeout=this.handleUpdateFilterTimeout.bind(this);const{invertSelection:t,selectedValues:n}=e;this.state={filters:[],invertSelection:t,selectedValues:n,searchText:""}}componentDidMount(){this.initSearchTable()}componentDidUpdate(e,t){const{invertSelection:n,selectedValues:s,table:i}=this.props;e.table!==i&&this.initSearchTable(),e.invertSelection!==n&&this.setState({invertSelection:n}),e.selectedValues!==s&&this.setState({selectedValues:s});const{table:o,searchText:r}=this.state;o!==t.table&&(t.table!=null&&t.table.close(),o!=null&&this.startUpdateFilterTimer()),r!==t.searchText&&this.startUpdateFilterTimer()}componentWillUnmount(){const{table:e}=this.state;e!=null&&e.close(),this.searchTablePromise=void 0,this.stopUpdateFilterTimer()}getColumnName(){const{table:e}=this.props;return e!=null?e.columns[0].name:""}getDisplayedValuesCount(){const{invertSelection:e,selectedValues:t,table:n}=this.state;return n==null?null:e?n.totalSize-t.length:t.length}getDisplayedValueText(){const e=this.getDisplayedValuesCount(),{table:t}=this.state,{formatter:n}=this.props;if(e!=null&&t!=null){const s=n.getFormattedString(e,"long"),i=n.getFormattedString(t.totalSize,"long");let o="";return e<1e6&&(o="Displaying "),`${o}${s} of ${i}`}return null}initSearchTable(){const{table:e}=this.props;if(e==null)return;const t=e.copy();this.searchTablePromise=t,this.searchTablePromise.then(n=>{this.searchTablePromise===t?(this.setState({table:n}),this.searchTablePromise=void 0):n.close()})}handleListChange(e,t){this.setState({selectedValues:e,invertSelection:t});const{onChange:n}=this.props;n(e,t)}handleSearchChange(e){const t=e.target.value;this.setState({searchText:t})}handleSelectAllClick(){this.resetSelection(!0)}handleClearAllClick(){this.resetSelection(!1)}handleUpdateFilterTimeout(){this.updateFilterTimer=void 0,this.updateTableFilter()}resetSelection(e){const t=[];this.setState({invertSelection:e,selectedValues:t});const{onChange:n}=this.props;n(t,e)}startUpdateFilterTimer(){this.stopUpdateFilterTimer(),this.updateFilterTimer=setTimeout(this.handleUpdateFilterTimeout,Ra.searchDebounceTime)}stopUpdateFilterTimer(){this.updateFilterTimer!=null&&(clearTimeout(this.updateFilterTimer),this.updateFilterTimer=void 0)}updateTableFilter(){const{table:e,searchText:t}=this.state,{timeZone:n}=this.props,s=e==null?void 0:e.columns[0],i=[];if(s==null)return;let o;if(t.length>0){let r=null;x.isCharType(s.type)?r=x.makeQuickFilter(s,t):x.isTextType(s.type)?r=x.makeQuickFilter(s,`~${t}`,n):r=x.makeQuickFilter(s,`>=${t}`,n),r!=null?i.push(r):o="Invalid search text"}this.setState({filters:i,error:o})}render(){const{error:e,filters:t,invertSelection:n,selectedValues:s,searchText:i,table:o}=this.state,{formatter:r,showSearch:l}=this.props,a=this.getColumnName(),c=this.getDisplayedValueText(),d=a?`Find ${a}...`:"";return T("div",{className:"advanced-filter-creator-select-value",children:[T("div",{className:l?"form-group":"",children:[u("label",{htmlFor:"advanced-filter-creator-select-value-input",children:"Select Values"}),l&&u("input",{type:"text",className:$("form-control",{"is-invalid":e!=null}),id:"advanced-filter-creator-select-value-input",placeholder:d,value:i,onChange:this.handleSearchChange})]}),u(ya,{table:o,filters:t,invertSelection:n,selectedValues:s,formatter:r,onChange:this.handleListChange}),T("div",{className:"advanced-filter-creator-select-meta-row",children:[T("div",{children:[u(Y,{kind:"ghost",onClick:this.handleSelectAllClick,children:"Select All"}),u(Y,{kind:"ghost",onClick:this.handleClearAllClick,children:"Clear"})]}),u(rt,{in:c!=null,timeout:250,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"row-count-info",children:c})})]})]})}};let br=Ra;br.searchDebounceTime=250;br.defaultProps={invertSelection:!0,selectedValues:[],onChange:()=>{},showSearch:!0};const Ws=ee.module("AdvancedFilterCreator"),es=class extends y.exports.PureComponent{constructor(e){var r,l;super(e),this.getFilterTypes=Ie(a=>x.getFilterTypes(a)),this.handleAddAnd=this.handleAddAnd.bind(this),this.handleAddOr=this.handleAddOr.bind(this),this.handleChangeFilterOperator=this.handleChangeFilterOperator.bind(this),this.handleDone=this.handleDone.bind(this),this.handleFilterChange=this.handleFilterChange.bind(this),this.handleFilterDelete=this.handleFilterDelete.bind(this),this.handleSelectValueChange=this.handleSelectValueChange.bind(this),this.handleReset=this.handleReset.bind(this),this.handleSortDown=this.handleSortDown.bind(this),this.handleSortUp=this.handleSortUp.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleFocusTrapStart=this.handleFocusTrapStart.bind(this),this.handleFocusTrapEnd=this.handleFocusTrapEnd.bind(this),this.handleUpdateTimeout=this.handleUpdateTimeout.bind(this),this.focusTrapContainer=j.createRef();const{options:t}=e;let{filterOperators:n,invertSelection:s,selectedValues:i}=t;const o=(l=(r=t.filterItems)==null?void 0:r.map(({selectedType:a,value:c})=>({selectedType:a,value:c,key:Jt()})))!=null?l:[];o.length===0&&o.push(es.makeFilterItem()),n==null&&(n=[]),s==null&&(s=!0),i==null&&(i=[]),this.state={filterItems:o,filterOperators:n,invertSelection:s,selectedValues:i,valuesTableError:null,valuesTable:void 0}}static makeFilterItem(){return{key:Jt()}}componentDidMount(){this.initValuesTable()}componentWillUnmount(){this.debounceTimeout!=null&&(clearTimeout(this.debounceTimeout),this.sendUpdate()),this.valuesTablePromise!=null&&this.valuesTablePromise.cancel()}getFilterChangeHandler(e){return this.handleFilterChange.bind(this,e)}getFilterDeleteHandler(e){return this.handleFilterDelete.bind(this,e)}initValuesTable(){const{model:e,column:t}=this.props;if(!e.isValuesTableAvailable){Ws.debug("No values table for this model, just ignore");return}this.valuesTablePromise=x.makeCancelableTablePromise(e.valuesTable(t)),this.valuesTablePromise.then(n=>{const s=n.columns[0].sort().asc();n.applySort([s]),this.setState({valuesTable:n})}).catch(n=>{He.isCanceled(n)||(Ws.error("Unable to open values table",n),this.setState({valuesTableError:n}))})}handleFocusTrapEnd(){var e,t;((t=(e=this.focusTrapContainer)==null?void 0:e.current)==null?void 0:t.querySelector("button,select,input,textarea")).focus()}handleFocusTrapStart(){var t,n;const e=(n=(t=this.focusTrapContainer)==null?void 0:t.current)==null?void 0:n.querySelectorAll("button,select,input,textarea");e&&e.length>0&&e[e.length-1].focus()}handleAddAnd(){let{filterItems:e,filterOperators:t}=this.state;e=e.concat(es.makeFilterItem()),t=t.concat(Qt.and),this.setState({filterItems:e,filterOperators:t})}handleAddOr(){let{filterItems:e,filterOperators:t}=this.state;e=e.concat(es.makeFilterItem()),t=t.concat(Qt.or),this.setState({filterItems:e,filterOperators:t})}handleChangeFilterOperator(e,t){let{filterOperators:n}=this.state;n=[...n],Uh(t),n[e]=t,this.setState({filterOperators:n}),this.startUpdateTimer()}handleFilterChange(e,t,n){let{filterItems:s}=this.state;s=[...s];const{key:i}=s[e];s[e]={key:i,selectedType:t,value:n},this.setState({filterItems:s}),this.startUpdateTimer()}handleFilterDelete(e){let{filterItems:t,filterOperators:n}=this.state;t=[...t],n=[...n],e<t.length&&t.splice(e,1),e<n.length?n.splice(e,1):e===n.length&&n.splice(n.length-1,1),t.length===0&&t.push(es.makeFilterItem()),this.setState({filterItems:t,filterOperators:n}),this.startUpdateTimer()}handleSelectValueChange(e,t){this.setState({selectedValues:e,invertSelection:t}),this.startUpdateTimer()}handleReset(){Ws.debug("Resetting Advanced Filter"),this.setState({filterItems:[es.makeFilterItem()],filterOperators:[],selectedValues:[],invertSelection:!0}),this.startUpdateTimer()}handleSortDown(e){const t=Se.isModifierKeyDown(e);this.sortTable(x.sortDirection.descending,t)}handleSortUp(e){const t=Se.isModifierKeyDown(e);this.sortTable(x.sortDirection.ascending,t)}handleSubmit(e){Ws.debug("Submitting Advanced Filter"),this.stopUpdateTimer(),this.sendUpdate(),e.preventDefault()}handleDone(e){Ws.debug("Submitting and Closing Advanced Filter"),this.stopUpdateTimer(),this.sendUpdate();const{onDone:t}=this.props;t(),e.preventDefault()}handleUpdateTimeout(){this.debounceTimeout=void 0,this.sendUpdate()}shouldShowAddFilter(){const{filterItems:e}=this.state;if(e.length===0)return!1;const t=e[e.length-1],{selectedType:n,value:s}=t;return n!=null&&n.length>0&&s!=null&&s.length>0}sortTable(e,t=!1){const{column:n,onSortChange:s}=this.props;s(n,e,t)}startUpdateTimer(){this.stopUpdateTimer(),this.debounceTimeout=setTimeout(this.handleUpdateTimeout,es.debounceFilterUpdate)}stopUpdateTimer(){this.debounceTimeout!==void 0&&(clearTimeout(this.debounceTimeout),this.debounceTimeout=void 0)}sendUpdate(){const{filterItems:e,filterOperators:t,invertSelection:n,selectedValues:s}=this.state,{column:i,onFilterChange:o,model:r}=this.props,{formatter:l}=r,a=e.filter(({selectedType:m,value:p})=>m!=null&&p!=null&&p!==""),c=t.filter((m,p)=>m!=null&&e[p].selectedType!=null&&e[p].value!=null&&e[p].value!=="").slice(0,a.length-1),d={filterItems:a,filterOperators:c,invertSelection:n,selectedValues:s},h=x.makeAdvancedFilter(i,d,l.timeZone);o(i,h,d)}render(){const{column:e,model:t,sortDirection:n,formatter:s}=this.props,{filterItems:i,filterOperators:o,invertSelection:r,selectedValues:l,valuesTable:a,valuesTableError:c}=this.state,{isValuesTableAvailable:d}=t,h=x.isBooleanType(e.type),m=x.isDateType(e.type),p=this.getFilterTypes(e.type),g=e.type.substring(e.type.lastIndexOf(".")+1),f=[];if(!h&&p.length)for(let w=0;w<i.length;w+=1){const S=i[w],{key:I,selectedType:v,value:R}=S,M=u(Cr,{column:e,filterTypes:p,onChange:this.getFilterChangeHandler(w),onDelete:this.getFilterDeleteHandler(w),selectedType:v,value:R,formatter:s},I);if(f.push(M),w<o.length){const P=o[w]===Qt.and,W=T("div",{className:"form-row justify-content-end advanced-filter-creator-filter-operator",children:[u(Y,{kind:"ghost",className:$("filter-operator",{active:P}),onClick:()=>this.handleChangeFilterOperator(w,Qt.and),children:"AND"}),u(Y,{kind:"ghost",className:$("filter-operator",{active:!P}),onClick:()=>this.handleChangeFilterOperator(w,Qt.or),children:"OR"})]},`filterOperator${I}`);f.push(W)}}const C=this.shouldShowAddFilter(),b=T("div",{className:$("form-row justify-content-end add-filter-item",{hidden:!C}),children:[u("span",{className:"text-muted",children:u(K,{icon:xs})}),u(Y,{kind:"ghost",className:"btn-filter-item",onClick:this.handleAddAnd,disabled:!C,tooltip:"Add filter with AND",children:"AND"}),u(Y,{kind:"ghost",className:"btn-filter-item",onClick:this.handleAddOr,disabled:!C,tooltip:"Add filter with OR",children:"OR"})]},"addFilterItem");return f.push(b),T("div",{className:"advanced-filter-creator",role:"presentation",children:[u("div",{tabIndex:0,onFocus:this.handleFocusTrapStart}),T("form",{onSubmit:this.handleSubmit,ref:this.focusTrapContainer,children:[T("div",{className:"title-bar",children:[u("h6",{className:"advanced-filter-title",children:"Advanced Filters"}),T("div",{className:"advanced-filter-menu-buttons",children:[u(Y,{kind:"ghost",className:$("sort-operator",{active:n===x.sortDirection.descending}),onClick:this.handleSortDown,icon:Wr,tooltip:`Sort ${e.name} Descending`}),u(Y,{kind:"ghost",className:$("sort-operator",{active:n===x.sortDirection.ascending}),onClick:this.handleSortUp,icon:u(K,{icon:Wr,rotation:180}),tooltip:`Sort ${e.name} Ascending`})]})]}),u("hr",{}),T("div",{className:"advanced-filter-column-name",children:[e.name,"\xA0",T("span",{className:"column-type",children:["(",g,")"]})]}),f,d&&c==null&&T(Ne,{children:[!h&&u("hr",{}),u("div",{className:"form-group",children:u(br,{table:a,onChange:this.handleSelectValueChange,invertSelection:r,selectedValues:l,formatter:s,showSearch:!m,timeZone:s.timeZone})})]}),T("div",{className:"form-row justify-content-end",children:[u(Y,{kind:"secondary",className:"mr-2",onClick:this.handleReset,children:"Reset"}),u(Y,{kind:"primary",onClick:this.handleDone,children:"Done"})]})]}),u("div",{tabIndex:0,onFocus:this.handleFocusTrapEnd})]})}};let wr=es;wr.debounceFilterUpdate=250;wr.defaultProps={options:{filterItems:null,filterOperators:null,invertSelection:!0,selectedValues:[]},sortDirection:null};function ku(e,t){const n=Hu(e);return n===void 0?void 0:`${zu(e)} ? ${n} : ${t}`}function Lu(e){return dh.Column.formatRowColor(e)}function Pu(e,t){return e.formatColor(t)}const Io=ee.module("ConditionalFormattingUtils");var tn=(e=>(e.CONDITIONAL="conditional",e.ROWS="rows",e))(tn||{}),De=(e=>(e.IS_EQUAL="is-equal",e.IS_NOT_EQUAL="is-not-equal",e.IS_BETWEEN="is-between",e.GREATER_THAN="greater-than",e.GREATER_THAN_OR_EQUAL="greater-than-or-equal",e.LESS_THAN="less-than",e.LESS_THAN_OR_EQUAL="less-than-or-equal",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(De||{}),bt=(e=>(e.IS_EXACTLY="is-exactly",e.IS_NOT_EXACTLY="is-not-exactly",e.CONTAINS="contains",e.DOES_NOT_CONTAIN="does-not-contain",e.STARTS_WITH="starts-with",e.ENDS_WITH="ends-with",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(bt||{}),ot=(e=>(e.IS_EXACTLY="is-exactly",e.IS_NOT_EXACTLY="is-not-exactly",e.IS_BEFORE="is-before",e.IS_BEFORE_OR_EQUAL="is-before-or-equal",e.IS_AFTER="is-after",e.IS_AFTER_OR_EQUAL="is-after-or-equal",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(ot||{}),Ks=(e=>(e.IS_TRUE="is-true",e.IS_FALSE="is-false",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(Ks||{}),ss=(e=>(e.IS_EQUAL="is-equal",e.IS_NOT_EQUAL="is-not-equal",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(ss||{}),Gt=(e=>(e.NO_FORMATTING="no-formatting",e.POSITIVE="positive",e.NEGATIVE="negative",e.WARN="warn",e.NEUTRAL="neutral",e.ACCENT_1="accent-1",e.ACCENT_2="accent-2",e.CUSTOM="custom",e))(Gt||{});function hl(e){switch(e){case"no-formatting":return"No formatting";case"positive":return"Positive";case"negative":return"Negative";case"warn":return"Warn";case"neutral":return"Neutral";case"accent-1":return"Accent 1";case"accent-2":return"Accent 2";case"custom":return"Custom..."}}function Bi(e){const{type:t,customConfig:n}=e;switch(t){case"no-formatting":return;case"positive":return"#9fde6f";case"negative":return"#ff6087";case"warn":return"#f67f40";case"neutral":return"#ffd95c";case"accent-1":return"#78dce8";case"accent-2":return"#ab9bf5";case"custom":return n==null?void 0:n.background;default:return}}function Wi(e){const{type:t,customConfig:n}=e;switch(t){case"no-formatting":return;case"positive":return"#526a3f";case"negative":return"#802f44";case"warn":return"#663318";case"neutral":return"#63562b";case"accent-1":return"#3f6469";case"accent-2":return"#554d72";case"custom":return n==null?void 0:n.color;default:return}}function Hu(e){const t=Wi(e.style),n=Bi(e.style);if(!(t===void 0||n===void 0))return`bgfg(\`${n}\`, \`${t}\`)`}function _u(e){const{column:t,value:n,start:s,end:i}=e;return tm(t.name,e.condition,n,s,i)}function Vu(e){const{column:t,value:n}=e;return nm(t.name,e.condition,n)}function Uu(e){const{column:t,value:n}=e;return sm(t.name,e.condition,n)}function Bu(e){const{column:t}=e;return im(t.name,e.condition)}function Wu(e){const{column:t,value:n}=e;return om(t.name,e.condition,n)}function zu(e){const{column:t}=e;if(x.isNumberType(t.type))return _u(e);if(x.isCharType(t.type))return Wu(e);if(x.isStringType(t.type))return Vu(e);if(x.isDateType(t.type))return Uu(e);if(x.isBooleanType(t.type))return Bu(e);throw new Error("Invalid column type")}function $u(e){switch(e){case"is-equal":return"is equal to";case"is-not-equal":return"is not equal to";case"is-between":return"is between";case"greater-than":return"greater than";case"greater-than-or-equal":return"greater than or equal to";case"less-than":return"less than";case"less-than-or-equal":return"less than or equal to";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Gu(e){switch(e){case"is-exactly":return"is exactly";case"is-not-exactly":return"is not exactly";case"contains":return"contains";case"does-not-contain":return"does not contain";case"starts-with":return"starts with";case"ends-with":return"ends with";case"is-null":return"is null";case"is-not-null":return"is not null"}}function qu(e){switch(e){case"is-exactly":return"is";case"is-not-exactly":return"is not";case"is-before":return"is before";case"is-before-or-equal":return"is before or equal";case"is-after":return"is after";case"is-after-or-equal":return"is after or equal";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Ku(e){switch(e){case"is-true":return"is true";case"is-false":return"is false";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Xu(e){switch(e){case"is-equal":return"is";case"is-not-equal":return"is not";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Ia(e){if(x.isNumberType(e)||x.isCharType(e))return"is-equal";if(x.isStringType(e)||x.isDateType(e))return"is-exactly";if(x.isBooleanType(e))return"is-true";throw new Error("Invalid column type")}function Yu(e){if(x.isCharType(e)||x.isStringType(e))return""}function Ma(e){const{condition:t,value:n,start:s,end:i}=e;return{condition:t,value:n,start:s,end:i}}function so(e){return{condition:Ia(e),value:Yu(e),start:void 0,end:void 0}}function Da(){return{type:"no-formatting"}}function Qu(e){switch(e){case"is-exactly":return"==";case"is-not-exactly":return"!=";case"contains":return"contains";case"does-not-contain":return"does not contain";case"starts-with":return"starts with";case"ends-with":return"ends with";case"is-null":return"is null";case"is-not-null":return"is not null"}}function ju(e){switch(e){case"is-exactly":return"==";case"is-not-exactly":return"!=";case"is-before":return"<";case"is-before-or-equal":return"<=";case"is-after":return">";case"is-after-or-equal":return">=";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Zu(e){switch(e){case"is-true":return"is true";case"is-false":return"is false";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Ju(e){switch(e){case"is-equal":return"==";case"is-not-equal":return"!=";case"is-null":return"is null";case"is-not-null":return"is not null"}}function em(e){switch(e){case"is-equal":return"==";case"is-not-equal":return"!=";case"is-between":return"==";case"greater-than":return">";case"greater-than-or-equal":return">=";case"less-than":return"<";case"less-than-or-equal":return"<=";case"is-null":return"is null";case"is-not-null":return"is not null"}}function tm(e,t,n,s,i){switch(t){case"is-equal":return`${e} == ${n}`;case"is-not-equal":return`${e} != ${n}`;case"is-between":return`${e} > ${s} && ${e} < ${i}`;case"greater-than":return`${e} > ${n}`;case"greater-than-or-equal":return`${e} >= ${n}`;case"less-than":return`${e} < ${n}`;case"less-than-or-equal":return`${e} <= ${n}`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function nm(e,t,n){switch(t){case"is-exactly":return`${e} == "${n}"`;case"is-not-exactly":return`${e} != "${n}"`;case"contains":return`${e} != null && ${e}.contains("${n}")`;case"does-not-contain":return`${e} != null && !${e}.contains("${n}")`;case"starts-with":return`${e} != null && ${e}.startsWith("${n}")`;case"ends-with":return`${e} != null && ${e}.endsWith("${n}")`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function sm(e,t,n){switch(t){case"is-exactly":return`${e} == convertDateTime("${n}")`;case"is-not-exactly":return`${e} != convertDateTime(\`${n}\`)`;case"is-before":return`${e} < convertDateTime(\`${n}\`)`;case"is-before-or-equal":return`${e} <= convertDateTime("${n}")`;case"is-after":return`${e} > convertDateTime(\`${n}\`)`;case"is-after-or-equal":return`${e} >= convertDateTime(\`${n}\`)`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function im(e,t){switch(t){case"is-true":return`${e} == true`;case"is-false":return`${e} == false`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function om(e,t,n){switch(t){case"is-equal":return`${e} == '${n}'`;case"is-not-equal":return`${e} != '${n}'`;case"is-null":return`isNull(${e})`;case"is-not-null":return`!isNull(${e})`}}function rm(e,t){if(x.isNumberType(e))return em(t);if(x.isCharType(e))return Ju(t);if(x.isStringType(e))return Qu(t);if(x.isDateType(e))return ju(t);if(x.isBooleanType(e))return Zu(t);throw new Error("Invalid column type")}function lm(e,t){if(t===void 0)return Io.debug("no rules passed."),[];const n=[];let s;const i=new Map;return t.forEach(({config:o,type:r})=>{var g;const{column:l}=o,a=e.find(({name:f,type:C})=>f===l.name&&C===l.type);if(a===void 0){Io.debug(`Column ${l.name}:${l.type} not found. Ignoring format rule.`,o);return}const[c,d]=(g=r==="conditional"?i.get(a.name):s)!=null?g:["null",void 0],h=ku(o,c);if(h===void 0){Io.debug("Ignoring format rule.",o);return}const m=d===void 0?-1:n.indexOf(d);m>-1&&n.splice(m,1);const p=r==="conditional"?Pu(a,h):Lu(h);n.push(p),r==="conditional"?i.set(a.name,[h,p]):s=[h,p]}),n}function am({type:e}){return x.isNumberType(e)||x.isCharType(e)||x.isStringType(e)||x.isDateType(e)||x.isBooleanType(e)}const io=({animation:e="iris-grid-bottom-bar-slide-up",children:t,className:n,isShown:s,onClick:i,onEntering:o,onEntered:r,onExiting:l,onExited:a})=>u(rt,{in:s,timeout:Rt.transitionMs,classNames:e,onEntering:o,onEntered:r,onExiting:l,onExited:a,mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:$("iris-grid-bottom-bar",n),role:"presentation",onClick:i,onKeyPress:i,children:t})});const cm=3e3,dm=5,hm=({isSaving:e=!1,onSave:t,onDiscard:n,discardTooltip:s,saveTooltip:i,error:o,pendingDataErrors:r,pendingDataMap:l,onEntering:a,onEntered:c,onExiting:d,onExited:h})=>{const[m,p]=y.exports.useState(!1),[g,f]=y.exports.useState(!1),C=y.exports.useRef(),b=sr(e),w=y.exports.useMemo(()=>r.size===0?o:r.size<=dm?`Key can't be empty (on pending row${r.size>1?"s":""} ${Array.from(r.keys()).join(", ").trim()})`:`Key can't be empty (on ${r.size} rows)`,[o,r]);y.exports.useEffect(function(){b!=null&&b&&!e&&w==null&&(p(!0),f(!0),C.current=setTimeout(()=>{p(!1)},cm))},[w,e,b]),y.exports.useEffect(function(){C.current&&l.size>0&&(clearTimeout(C.current),p(!1),f(!1))},[l]),y.exports.useEffect(function(){return()=>C.current?clearTimeout(C.current):void 0},[]);const S=l.size;let I;return e?I=u(Vt,{}):g&&(I=Gl),T(io,{className:"pending-data-bottom-bar",isShown:S>0||m||w!=null,onEntering:a,onEntered:c,onExiting:d,onExited:()=>{f(!1),h&&h()},children:[w!=null&&w!==""&&T("div",{className:"error-message",children:[u(K,{icon:Ln}),u("span",{children:`${w}`})]}),(w==null||w==="")&&u("div",{className:"status-message",children:S>0&&u("span",{children:`${S} row${S>1?"s":""} pending`})}),T("div",{className:"buttons-container",children:[!e&&!g&&u(Y,{kind:"secondary",onClick:n,tooltip:s,children:"Discard"}),T(Y,{kind:g?"success":"primary",onClick:t,icon:I,disabled:e||g||w!=null,tooltip:i,children:[e&&"Committing...",!e&&g&&"Success",!e&&!g&&"Commit"]})]})]})},zs=ee.module("IrisGridUtils");function vn(e,t){return e>=0&&e<t.length}class se{static dehydrateGridState(t,n){const{isStuckToBottom:s,isStuckToRight:i,movedColumns:o,movedRows:r}=n,{columns:l}=t;return{isStuckToBottom:s,isStuckToRight:i,movedColumns:[...o].filter(({to:a,from:c})=>vn(a,l)&&(typeof c=="number"&&vn(c,l)||Array.isArray(c)&&vn(c[0],l)&&vn(c[1],l))).map(({to:a,from:c})=>({to:l[a].name,from:Array.isArray(c)?[l[c[0]].name,l[c[1]].name]:l[c].name})),movedRows:[...r]}}static hydrateGridState(t,n,s=[]){const{isStuckToBottom:i,isStuckToRight:o,movedColumns:r,movedRows:l}=n,{columns:a}=t,c=se.parseCustomColumnNames(s),d=a.map(({name:h})=>h).concat(c);return{isStuckToBottom:i,isStuckToRight:o,movedColumns:[...r].map(({to:h,from:m})=>{const p=g=>typeof g=="string"?d.findIndex(f=>f===g):g;return{to:p(h),from:Array.isArray(m)?[p(m[0]),p(m[1])]:p(m)}}).filter(({to:h,from:m})=>vn(h,d)&&(typeof m=="number"&&vn(m,d)||Array.isArray(m)&&vn(m[0],d)&&vn(m[1],d))),movedRows:[...l]}}static dehydrateIrisGridState(t,n){const{aggregationSettings:s={aggregations:[],showOnTop:!1},advancedFilters:i,customColumnFormatMap:o,isFilterBarShown:r,metrics:l,quickFilters:a,customColumns:c,conditionalFormats:d=[],reverseType:h,rollupConfig:m=void 0,showSearchBar:p,searchValue:g,selectDistinctColumns:f=[],selectedSearchColumns:C,sorts:b,invertSearchColumns:w,pendingDataMap:S=new Map,frozenColumns:I}=n;O(l);const{userColumnWidths:v,userRowHeights:R}=l,{columns:M}=t;return{advancedFilters:se.dehydrateAdvancedFilters(M,i),aggregationSettings:s,customColumnFormatMap:[...o],isFilterBarShown:r,quickFilters:se.dehydrateQuickFilters(a),sorts:se.dehydrateSort(b),userColumnWidths:[...v].filter(([F])=>F!=null&&F>=0&&F<M.length).map(([F,P])=>[M[F].name,P]),userRowHeights:[...R],customColumns:[...c],conditionalFormats:[...d],reverseType:h,rollupConfig:m,showSearchBar:p,searchValue:g,selectDistinctColumns:[...f],selectedSearchColumns:C,invertSearchColumns:w,pendingDataMap:se.dehydratePendingDataMap(M,S),frozenColumns:I}}static hydrateIrisGridState(t,n){const{advancedFilters:s,aggregationSettings:i={aggregations:[],showOnTop:!1},customColumnFormatMap:o,isFilterBarShown:r,quickFilters:l,sorts:a,customColumns:c,conditionalFormats:d,userColumnWidths:h,userRowHeights:m,reverseType:p,rollupConfig:g=void 0,showSearchBar:f,searchValue:C,selectDistinctColumns:b,selectedSearchColumns:w,invertSearchColumns:S=!0,pendingDataMap:I=[],frozenColumns:v}=n,{columns:R,formatter:M}=t;return{advancedFilters:se.hydrateAdvancedFilters(R,s,M.timeZone),aggregationSettings:i,customColumnFormatMap:new Map(o),isFilterBarShown:r,quickFilters:se.hydrateQuickFilters(R,l,M.timeZone),sorts:se.hydrateSort(R,a),userColumnWidths:new Map(h.map(([F,P])=>typeof F=="string"||F instanceof String?[R.findIndex(({name:W})=>W===F),P]:[F,P]).filter(([F])=>F!=null&&F>=0&&F<R.length)),customColumns:c,conditionalFormats:d,userRowHeights:new Map(m),reverseType:p,rollupConfig:g,showSearchBar:f,searchValue:C,selectDistinctColumns:b,selectedSearchColumns:w,invertSearchColumns:S,pendingDataMap:se.hydratePendingDataMap(R,I),frozenColumns:v}}static dehydrateIrisGridPanelState(t,n){const{isSelectingPartition:s,partition:i,partitionColumn:o,advancedSettings:r}=n;return{isSelectingPartition:s,partition:i,partitionColumn:o!=null?o.name:null,advancedSettings:[...r]}}static hydrateIrisGridPanelState(t,n){const{isSelectingPartition:s,partition:i,partitionColumn:o,advancedSettings:r}=n,{columns:l}=t;return{isSelectingPartition:s,partition:i,partitionColumn:o!=null?se.getColumnByName(l,o):void 0,advancedSettings:new Map([...Mh.DEFAULTS,...r])}}static dehydrateQuickFilters(t){return[...t].map(([n,s])=>{const{text:i}=s;return[n,{text:i}]})}static hydrateQuickFilters(t,n,s){const i=n.map(([o,r])=>{const{text:l}=r;let a=null;try{const c=se.getColumn(t,o);c!=null&&(a=x.makeQuickFilter(c,l,s))}catch(c){zs.error("hydrateQuickFilters error with",l,c)}return[o,{text:l,filter:a}]});return new Map(i)}static dehydrateAdvancedFilters(t,n){return[...n].map(([s,i])=>{const o=se.getColumn(t,s);O(o);const r=se.dehydrateAdvancedFilterOptions(o,i.options);return[s,{options:r}]})}static hydrateAdvancedFilters(t,n,s){const i=n.map(([o,r])=>{const l=se.getColumn(t,o);O(l);const a=se.hydrateAdvancedFilterOptions(l,r.options);let c=null;try{se.getColumn(t,o)!=null&&(c=x.makeAdvancedFilter(l,a,s))}catch(d){zs.error("hydrateAdvancedFilters error with",a,d)}return[o,{options:a,filter:c}]});return new Map(i)}static dehydrateAdvancedFilterOptions(t,n){const{selectedValues:s,...i}=n;return{selectedValues:s==null?void 0:s.map(o=>se.dehydrateValue(o,t==null?void 0:t.type)),...i}}static hydrateAdvancedFilterOptions(t,n){const{selectedValues:s,...i}=n;return{selectedValues:s==null?void 0:s.map(o=>se.hydrateValue(o,t==null?void 0:t.type)),...i}}static dehydratePendingDataMap(t,n){return[...n].map(([s,{data:i}])=>[s,{data:[...i].map(([o,r])=>[t[o].name,se.dehydrateValue(r,t[o].type)])}])}static hydratePendingDataMap(t,n){const s=new Map,i=o=>(s.has(o)||s.set(o,t.findIndex(({name:r})=>r===o)),s.get(o));return new Map(n.map(([o,{data:r}])=>[o,{data:new Map(r.map(([l,a])=>{var d;const c=i(l);return O(c),[(d=i(l))!=null?d:null,se.hydrateValue(a,t[c].type)]}))}]))}static dehydrateValue(t,n){return x.isDateType(n)?se.dehydrateDateTime(t):x.isLongType(n)?se.dehydrateLong(t):t}static hydrateValue(t,n){return x.isDateType(n)?se.hydrateDateTime(t):x.isLongType(n)?se.hydrateLong(t):t}static dehydrateDateTime(t){return t!=null?E.i18n.DateTimeFormat.format(_n.FULL_DATE_FORMAT,t):null}static hydrateDateTime(t){return t!=null?E.i18n.DateTimeFormat.parse(_n.FULL_DATE_FORMAT,t):null}static dehydrateLong(t){return t!=null?`${t}`:null}static hydrateLong(t){return t!=null?E.LongWrapper.ofString(t):null}static dehydrateSort(t){return t.map(n=>{const{column:s,isAbs:i,direction:o}=n;return{column:s.index,isAbs:i,direction:o}})}static hydrateSort(t,n){return n.map(s=>{const{column:i,isAbs:o,direction:r}=s;if(r===x.sortDirection.reverse)return E.Table.reverse();const l=se.getColumn(t,i);if(l!=null){let a=l.sort();return o&&(a=a.abs()),r===x.sortDirection.descending?a=a.desc():a=a.asc(),a}return null}).filter(s=>s!=null&&s.direction!==x.sortDirection.reverse)}static extractTableSettings(t,n=[]){const{irisGridPanelState:s,irisGridState:i}=t,{partitionColumn:o,partition:r}=s,{advancedFilters:l,quickFilters:a,sorts:c}=i;return{advancedFilters:l,inputFilters:n,partition:r,partitionColumn:o,quickFilters:a,sorts:c}}static applyTableSettings(t,n,s){const{columns:i}=t;let o=[];n.quickFilters&&(o=se.getFiltersFromFilterMap(se.hydrateQuickFilters(i,n.quickFilters,s)));let r=[];n.advancedFilters&&(r=se.getFiltersFromFilterMap(se.hydrateAdvancedFilters(i,n.advancedFilters,s)));const l=se.getFiltersFromInputFilters(i,n.inputFilters,s);let a=[];n.sorts&&(a=se.hydrateSort(i,n.sorts));let c=[...o,...r];const{partition:d,partitionColumn:h}=n;if(d!=null&&h!=null){const m=se.getColumnByName(i,h);m&&(c=[m.filter().eq(E.FilterValue.ofString(d)),...c])}c=[...l,...c],t.applyFilter(c),t.applySort(a)}static getInputFiltersForColumns(t,n=[]){return n.filter(({name:s,type:i})=>t.find(({name:o,type:r})=>o===s&&r===i))}static getFiltersFromInputFilters(t,n=[],s){return n.map(({name:i,type:o,value:r})=>{const l=t.find(({name:a,type:c})=>a===i&&c===o);if(l)try{return x.makeQuickFilter(l,r,s)}catch(a){zs.debug("Unable to create input filter",a)}return null}).filter(i=>i!=null)}static getFiltersFromFilterMap(t){const n=[],s=Array.from(t.keys());for(let i=0;i<s.length;i+=1){const o=s[i],r=t.get(o);r&&r.filter!=null&&n.push(r.filter)}return n}static getHiddenColumns(t){return[...t.entries()].filter(([,n])=>n===0).map(([n])=>n)}static parseCustomColumnNames(t){return t.map(n=>n.split("=")[0])}static getRemovedCustomColumnNames(t,n){const s=se.parseCustomColumnNames(t),i=se.parseCustomColumnNames(n);return s.filter(o=>!i.includes(o))}static removeSortsInColumns(t,n){return t.filter(s=>!n.includes(s.column.name))}static removeFiltersInColumns(t,n,s){const i=t.map(({name:r})=>r),o=new Map(n);return s.forEach(r=>o.delete(i.indexOf(r))),o}static removeColumnFromMovedColumns(t,n,s){const i=t.map(({name:r})=>r);let o=[...n];for(let r=0;r<s.length;r+=1){const l=s[r];let a=i.findIndex(d=>d===l);const c=[];for(let d=0;d<o.length;d+=1){const h=o[d],m={...h};let[p,g]=Array.isArray(h.from)?h.from:[h.from,h.from];a<=h.to&&(m.to-=1),a<p&&(p-=1),a<=g&&(g-=1),p<=g&&p!==m.to&&(p===g?c.push({...m,from:p}):c.push({...m,from:[p,g]})),a=U.applyItemMoves(a,a,[h])[0][0]}o=c,i.splice(i.findIndex(d=>d===l),1)}return o}static removeColumnsFromSelectDistinctColumns(t,n){return t.filter(s=>!n.includes(s))}static getVisibleColumnsInRange(t,n,s,i,o){const r=[];for(let l=n;l<=s;l+=1){const a=U.getModelIndex(l,i);a>=0&&a<t.length&&!o.includes(a)&&r.push(t[a])}return r}static getPrevVisibleColumns(t,n,s,i,o){const r=[];let l=n;for(;l>=0&&r.length<s;){const a=U.getModelIndex(l,i);a>=0&&a<t.length&&!o.includes(a)&&r.unshift(t[a]),l-=1}return r}static getNextVisibleColumns(t,n,s,i,o){const r=[];let l=n;for(;l<t.length&&r.length<s;){const a=U.getModelIndex(l,i);a>=0&&a<t.length&&!o.includes(a)&&r.push(t[a]),l+=1}return r}static getColumnsToFetch(t,n,s){const i=[...n];return s.forEach(o=>{const r=t.find(({name:l})=>l===o);r!=null&&!n.includes(r)&&i.push(r)}),i}static getModelViewportColumns(t,n,s,i,o=[],r=[],l=0){if(n==null||s==null)return null;const a=se.getVisibleColumnsInRange(t,n,s,i,o),c=a.length*l,d=se.getPrevVisibleColumns(t,n-1,c,i,o),h=se.getNextVisibleColumns(t,s+1,c,i,o),m=[...d,...a,...h];return se.getColumnsToFetch(t,m,r)}static rangeSetFromRanges(t){const n=t.slice().sort((s,i)=>(O(s.startRow),O(i.startRow),s.startRow-i.startRow)).map(s=>{const{startRow:i,endRow:o}=s;return O(i),O(o),E.RangeSet.ofRange(i,o)});return E.RangeSet.ofRanges(n)}static isValidSnapshotRanges(t){if(t==null||t.length===0)return!1;const n=new Map;for(let o=0;o<t.length;o+=1){const r=t[o],l=`${r.startRow}:${r.endRow}`,a=`${r.startColumn}:${r.endColumn}`;n.has(l)||n.set(l,[]),n.get(l).push(a)}const s=[...n.keys()],i=n.get(s[0]).sort().join(",");for(let o=1;o<s.length;o+=1)if(n.get(s[o]).sort().join(",")!==i)return!1;return!0}static isValidIndex(t){return!Number.isInteger(t)||typeof t!="number"?!1:t>=0}static columnsFromRanges(t,n){var i,o;if(t==null||t.length===0)return[];if(t[0].startColumn===null&&t[0].endColumn===null)return n;const s=new Set;for(let r=0;r<t.length;r+=1){const l=t[r];O(l.startColumn),O(l.endColumn);for(let a=(i=l.startColumn)!=null?i:0;a<=((o=l.endColumn)!=null?o:n.length-1);a+=1)s.add(a)}return[...s].map(r=>n[r])}static snapshotDataToMatrix(t){const{columns:n,rows:s}=t,i=[];for(let o=0;o<s.length;o+=1){const r=s[o],l=[];for(let a=0;a<n.length;a+=1){const c=n[a],d=r.get(c);l.push(d)}i.push(l)}return i}static getModelRollupConfig(t,n,s){var h,m,p;if(((m=(h=n==null?void 0:n.columns)==null?void 0:h.length)!=null?m:0)===0)return null;const{columns:i=[],showConstituents:o=!0,showNonAggregatedColumns:r=!0,includeDescriptions:l=!0}=n!=null?n:{},{aggregations:a=[]}=s!=null?s:{},c=a.map(({operation:g,selected:f,invert:C})=>An.isRollupOperation(g)?[]:An.getOperationColumnNames(t,g,f,C)),d={};for(let g=0;g<a.length;g+=1)d[a[g].operation]=c[g];if(r){const g=new Set(t.map(f=>f.name).filter(f=>!i.includes(f)));if(c.forEach(f=>{f.forEach(C=>g.delete(C))}),g.size>0){const f=(p=d[we.FIRST])!=null?p:[];d[we.FIRST]=[...f,...g]}}return{groupingColumns:i,includeConstituents:o,includeDescriptions:l,aggregations:d}}static getPendingErrors(t){t.forEach((n,s)=>{if(!se.isValidIndex(s))throw new Error(`Invalid rowIndex ${s}`);const{data:i}=n;i.forEach((o,r)=>{if(!se.isValidIndex(r))throw new Error(`Invalid columnIndex ${r}`)})})}static getColumn(t,n){return n<t.length?t[n]:(zs.error("Unable to retrieve column",n,">=",t.length),null)}static getColumnByName(t,n){const s=t.find(({name:i})=>i===n);return s==null&&zs.error("Unable to retrieve column by name",n,t.map(({name:i})=>i)),s}static changeFilterColumnNamesToIndexes(t,n){return n.map(({name:s,filter:i})=>{const o=t.findIndex(r=>r.name===s);return o<0?null:[o,i]}).filter(s=>s!=null)}}const gt=ee.module("IrisGridCopyHandler"),Ee=class extends y.exports.Component{constructor(e){super(e),this.handleBackgroundClick=this.handleBackgroundClick.bind(this),this.handleCancelClick=this.handleCancelClick.bind(this),this.handleCopyClick=this.handleCopyClick.bind(this),this.handleHideTimeout=this.handleHideTimeout.bind(this),this.state={error:void 0,copyState:Ee.COPY_STATES.IDLE,buttonState:Ee.BUTTON_STATES.COPY,isShown:!1,rowCount:0}}static getStatusMessageText(e,t){switch(e){case Ee.COPY_STATES.CONFIRMATION_REQUIRED:return`Are you sure you want to copy ${t.toLocaleString()} rows to your clipboard?`;case Ee.COPY_STATES.CLICK_REQUIRED:return`Fetched ${t.toLocaleString()} rows!`;case Ee.COPY_STATES.FETCH_ERROR:return"Unable to copy data.";case Ee.COPY_STATES.FETCH_IN_PROGRESS:return`Fetching ${t.toLocaleString()} rows for clipboard...`;case Ee.COPY_STATES.DONE:return"Copied to Clipboard!";default:return""}}static getCopyButtonText(e){switch(e){case Ee.BUTTON_STATES.FETCH_IN_PROGRESS:return"Fetching";case Ee.BUTTON_STATES.CLICK_TO_COPY:return"Click to Copy";case Ee.BUTTON_STATES.RETRY:return"Retry";default:return"Copy"}}componentDidMount(){const{copyOperation:e}=this.props;e!=null&&this.startCopy()}componentDidUpdate(e){const{copyOperation:t}=this.props;e.copyOperation!==t&&this.startCopy()}componentWillUnmount(){this.stopCopy()}startCopy(){gt.debug2("startCopy"),this.stopCopy();const{copyOperation:e}=this.props;if(e==null){gt.debug2("No copy operation set, cancelling out"),this.setState({isShown:!1});return}const{ranges:t,error:n}=e;if(n!=null){gt.debug("Showing copy error",n),this.setState({isShown:!0,copyState:Ee.COPY_STATES.DONE,error:n}),this.startHideTimer();return}const s=Z.rowCount(t);this.setState({rowCount:s,isShown:!0,error:void 0}),s>Ee.NO_PROMPT_THRESHOLD?this.setState({buttonState:Ee.BUTTON_STATES.COPY,copyState:Ee.COPY_STATES.CONFIRMATION_REQUIRED}):this.startFetch()}stopCopy(){this.textData=void 0,this.stopFetch(),this.stopHideTimer()}handleBackgroundClick(){gt.debug2("handleBackgroundClick");const{copyState:e}=this.state;e===Ee.COPY_STATES.DONE&&this.setState({isShown:!1})}handleCancelClick(){gt.debug2("handleCancelClick"),this.stopFetch(),this.setState({isShown:!1})}handleCopyClick(){gt.debug2("handleCopyClick"),this.textData!=null?this.copyText(this.textData):this.startFetch()}handleHideTimeout(){gt.debug2("handleHideTimeout"),this.stopHideTimer(),this.setState({isShown:!1})}copyText(e){gt.debug2("copyText",e),this.textData=e,Se.copyToClipboard(e).then(()=>{this.setState({copyState:Ee.COPY_STATES.DONE}),this.startHideTimer()},t=>{gt.error("copyText error",t),this.setState({buttonState:Ee.BUTTON_STATES.CLICK_TO_COPY,copyState:Ee.COPY_STATES.CLICK_REQUIRED})})}startFetch(){this.stopFetch(),this.setState({buttonState:Ee.BUTTON_STATES.FETCH_IN_PROGRESS,copyState:Ee.COPY_STATES.FETCH_IN_PROGRESS});const{model:e,copyOperation:t}=this.props,{ranges:n,includeHeaders:s,userColumnWidths:i,movedColumns:o,formatValues:r}=t;gt.debug("startFetch",n);const l=se.getHiddenColumns(i);let a=U.getModelRanges(n,o);if(l.length>0){const d=l.map(Z.makeColumn);a=Z.subtractRangesFromRanges(a,d)}const c=r!=null&&r?(d,h)=>e.displayString(d,h.type,h.name):d=>`${d}`;this.fetchPromise=He.makeCancelable(e.textSnapshot(a,s,c)),this.fetchPromise.then(d=>{this.fetchPromise=void 0,this.copyText(d)}).catch(d=>{d instanceof Is?gt.debug("User cancelled copy."):(gt.error("Error fetching contents",d),this.fetchPromise=void 0,this.setState({buttonState:Ee.BUTTON_STATES.RETRY,copyState:Ee.COPY_STATES.FETCH_ERROR}))})}stopFetch(){this.fetchPromise&&(gt.debug2("stopFetch"),this.fetchPromise.cancel(),this.fetchPromise=void 0)}startHideTimer(){this.stopHideTimer(),this.hideTimer=setTimeout(this.handleHideTimeout,Ee.HIDE_TIMEOUT)}stopHideTimer(){this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=void 0)}render(){const{onEntering:e,onEntered:t,onExiting:n,onExited:s}=this.props,{buttonState:i,copyState:o,isShown:r,rowCount:l,error:a}=this.state,c=o===Ee.COPY_STATES.DONE?"fade":"copy-slide-up",d=Ee.getCopyButtonText(i),h=a!=null?a:Ee.getStatusMessageText(o,l),m=o!==Ee.COPY_STATES.DONE,p=i===Ee.BUTTON_STATES.FETCH_IN_PROGRESS,g=o===Ee.COPY_STATES.DONE;return T(io,{animation:c,isShown:r,className:$("iris-grid-copy-handler",{"copy-done":g}),onClick:this.handleBackgroundClick,onEntering:e,onEntered:t,onExiting:n,onExited:s,children:[u("div",{className:"status-message",children:u("span",{children:h})}),u(rt,{in:m,timeout:Rt.transitionMs,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:T("div",{className:"buttons-container",children:[u("button",{type:"button",className:"btn btn-outline-secondary btn-cancel",onClick:this.handleCancelClick,children:"Cancel"}),T(Y,{kind:p?"tertiary":"primary",className:$("btn-copy",{"btn-spinner":p}),onClick:this.handleCopyClick,disabled:p,children:[p&&u(Vt,{}),d]})]})})]})}};let Ps=Ee;Ps.NO_PROMPT_THRESHOLD=1e4;Ps.HIDE_TIMEOUT=3e3;Ps.COPY_STATES={IDLE:"IDLE",CONFIRMATION_REQUIRED:"CONFIRMATION_REQUIRED",FETCH_IN_PROGRESS:"FETCH_IN_PROGRESS",FETCH_ERROR:"FETCH_ERROR",CLICK_REQUIRED:"CLICK_REQUIRED",DONE:"DONE"};Ps.BUTTON_STATES={COPY:"COPY",FETCH_IN_PROGRESS:"FETCH_IN_PROGRESS",CLICK_TO_COPY:"CLICK_TO_COPY",RETRY:"RETRY"};Ps.defaultProps={copyOperation:null,onEntering:()=>{},onEntered:()=>{},onExiting:()=>{},onExited:()=>{}};class Na extends y.exports.PureComponent{constructor(t){super(t);const{debounceMs:n}=t;this.debouncedSendUpdate=Tt(this.sendUpdate.bind(this),n),this.handleCancel=this.handleCancel.bind(this),this.handleChange=this.handleChange.bind(this),this.handleCommit=this.handleCommit.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleBlur=this.handleBlur.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleContextMenu=this.handleContextMenu.bind(this),this.inputField=null;const{value:s}=t;this.initialValue=s,this.state={isChanged:!1,value:s}}componentDidMount(){var t;(t=this.inputField)==null||t.focus()}componentDidUpdate(t){const{debounceMs:n}=this.props;t.debounceMs!==n&&(this.debouncedSendUpdate.flush(),this.debouncedSendUpdate=Tt(this.sendUpdate.bind(this),n))}componentWillUnmount(){this.debouncedSendUpdate.cancel()}setValue(t){this.initialValue=t,this.setState({value:t})}focus(){var t;(t=this.inputField)==null||t.focus()}handleChange(t){const{value:n}=t.target;this.setState({value:n,isChanged:!0}),this.debouncedSendUpdate(n)}handleCancel(){this.debouncedSendUpdate.cancel();const{initialValue:t}=this,{isChanged:n}=this.state;n&&this.sendUpdate(t);const{onDone:s}=this.props;s()}handleCommit(t=!0,n=!0){this.debouncedSendUpdate.flush();const{onDone:s}=this.props;s(t,n)}handleFocus(){var t;(t=this.inputField)==null||t.select()}handleBlur(t){const{relatedTarget:n}=t;n!=null&&n.classList.contains("context-menu-container")?this.handleCommit(!1,!0):n!=null&&n.classList.contains("advanced-filter-button")?this.handleCommit(!1,!1):this.handleCommit(!0,!0)}handleTab(t=!1){this.debouncedSendUpdate.flush();const{onTab:n}=this.props;n(t)}handleKeyDown(t){switch(t.key){case"Escape":t.stopPropagation(),t.preventDefault(),this.handleCancel();break;case"Enter":t.stopPropagation(),t.preventDefault(),this.handleCommit();break;case"Tab":t.stopPropagation(),t.preventDefault(),this.handleTab(t.shiftKey);break}}handleContextMenu(t){const{onContextMenu:n}=this.props;n(t)}sendUpdate(t){const{onChange:n}=this.props;n(t)}render(){const{className:t,style:n,isAdvancedFilterSet:s,onAdvancedFiltersTriggered:i}=this.props,{value:o}=this.state;return T("div",{style:n,className:"iris-grid-input-autosized-wrapper","data-value":o,children:[u("input",{ref:r=>{this.inputField=r},className:$("iris-grid-input-field",t),type:"text",value:o,onBlur:this.handleBlur,onFocus:this.handleFocus,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onContextMenu:this.handleContextMenu,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false"}),u("div",{className:"advanced-filter-button-container",children:u(Y,{kind:"ghost",className:$("btn-link-icon advanced-filter-button",{"filter-set":s}),onClick:i,onContextMenu:this.handleContextMenu,children:T("div",{className:"fa-layers ",children:[u(K,{icon:jo,className:"filter-solid"}),u(K,{icon:Vi,className:"filter-light"})]})})})]})}}Na.defaultProps={style:{},className:"",value:"",isAdvancedFilterSet:!1,onAdvancedFiltersTriggered:()=>{},onChange:()=>{},onDone:()=>{},onTab:()=>{},onContextMenu:()=>{},debounceMs:150};class um extends ds{constructor(t){super(),this.irisGrid=t}onDown(t){const{selectedRanges:n}=this.irisGrid.state;return t.key==="c"&&Se.isModifierKeyDown(t)?(se.isValidSnapshotRanges(n)?this.irisGrid.copyRanges(n):this.irisGrid.copyRanges(n,!1,!1,"Invalid copy ranges"),!0):!1}}const mm={TOGGLE_QUICK_FILTER:Re.createAndAdd({id:"TABLE.TOGGLE_QUICK_FILTER",name:"Toggle Quick Filter",shortcut:[ie.CTRL,le.F],macShortcut:[ie.CMD,le.F]}),CLEAR_ALL_FILTERS:Re.createAndAdd({id:"TABLE.CLEAR_ALL_FILTERS",name:"Clear All Table Filters",shortcut:[ie.CTRL,le.E],macShortcut:[ie.CMD,le.E]}),CLEAR_FILTERS:Re.createAndAdd({id:"TABLE.CLEAR_FILTERS",name:"Clear Active Table Filters",shortcut:[ie.CTRL,ie.SHIFT,le.E],macShortcut:[ie.CMD,ie.SHIFT,le.E]}),REVERSE:Re.createAndAdd({id:"TABLE.REVERSE",name:"Reverse",shortcut:[ie.CTRL,le.I],macShortcut:[ie.CMD,le.I]}),TOGGLE_SEARCH:Re.createAndAdd({id:"TABLE.TOGGLE_SEARCH",name:"Toggle Search",shortcut:[ie.CTRL,ie.SHIFT,le.F],macShortcut:[ie.CMD,ie.SHIFT,le.F]}),GOTO_ROW:Re.createAndAdd({id:"TABLE.GOTO_ROW",name:"Go to Row",shortcut:[ie.CTRL,le.G],macShortcut:[ie.CMD,le.G]})},pm={COMMIT:Re.createAndAdd({id:"INPUT_TABLE.COMMIT",name:"Commit",shortcut:[ie.CTRL,le.S],macShortcut:[ie.CMD,le.S]}),DISCARD:Re.createAndAdd({id:"INPUT_TABLE.DISCARD",name:"Discard",shortcut:[ie.CTRL,ie.ALT,le.S],macShortcut:[ie.CMD,ie.OPTION,le.S]})},Pt={TABLE:mm,INPUT_TABLE:pm};class gm extends ds{constructor(t){super(),this.irisGrid=t}onDown(t){if(Pt.TABLE.REVERSE.matchesEvent(t)){if(!this.irisGrid.isReversible())return!1;const{reverseType:n}=this.irisGrid.state;return n===x.REVERSE_TYPE.NONE?this.irisGrid.reverse(x.REVERSE_TYPE.POST_SORT):this.irisGrid.reverse(x.REVERSE_TYPE.NONE),!0}return!1}}class fm extends ds{constructor(t){super(),this.irisGrid=t}onDown(t){return Pt.TABLE.CLEAR_FILTERS.matchesEvent(t)?(this.irisGrid.clearAllFilters(),!0):!1}}class Cm extends je{constructor(t){super(850),this.irisGrid=t}destroyColumnTooltip(){this.irisGrid.setState({overflowButtonTooltipProps:null})}setCursor(t){return this.isHoveringOverflowButton(t)?(this.cursor="pointer",{stopPropagation:!1,preventDefault:!1}):(this.cursor=null,!1)}getButtonPosition({x:t,y:n,column:s,row:i}){if(s==null||i==null)return null;const{renderer:o,grid:r,state:l,props:a}=this.irisGrid;if(!r)return null;const{metrics:c}=l,{model:d}=a,{canvasContext:h}=r,m=r.getTheme(),p={context:h,mouseX:t,mouseY:n,metrics:c,model:d,theme:m},{left:g,top:f,width:C,height:b}=o.getCellOverflowButtonPosition(p);return g==null||C==null||f==null||b==null?null:{left:g,top:f,width:C,height:b}}isHoveringOverflowButton(t){var b;const{x:n,y:s}=t,{left:i,top:o,width:r,height:l}=(b=this.getButtonPosition(t))!=null?b:{};if(i==null||r==null||o==null||l==null)return!1;const{renderer:a,grid:c,state:d,props:h}=this.irisGrid;if(!c)return!1;const{metrics:m}=d,{model:p}=h,{canvasContext:g}=c,f=c.getTheme(),C={context:g,mouseX:n,mouseY:s,metrics:m,model:p,theme:f};return a.shouldRenderOverflowButton(C)&&n>=i&&n<=i+r&&s>=o&&s<=o+l}onMove(t){if(this.isHoveringOverflowButton(t)){const{overflowButtonTooltipProps:n}=this.irisGrid.state,s=this.getButtonPosition(t);dt(n,s)||this.irisGrid.setState({overflowButtonTooltipProps:s})}else this.destroyColumnTooltip();return this.setCursor(t)}onWheel(t){return this.destroyColumnTooltip(),this.onMove(t)}onDown(t){this.destroyColumnTooltip();const{column:n,row:s}=t;return this.isHoveringOverflowButton(t)&&this.irisGrid.setState({showOverflowModal:!0,overflowText:this.irisGrid.getValueForCell(n,s)}),!1}onContextMenu(){return this.destroyColumnTooltip(),!1}onLeave(){return this.destroyColumnTooltip(),!1}}class bm extends je{constructor(t){super(),this.irisGrid=t,this.cursor=null}isActive(){const{isSelectingColumn:t}=this.irisGrid.props;return t}isValidColumn(t){if(t==null)return!1;const{columnSelectionValidator:n}=this.irisGrid.props;return n!=null?n(t):!0}updateColumnSelectionStatus(){const{columnSelectionValidator:t}=this.irisGrid.props;t!=null&&t(null)}getTableColumn(t){if(t==null)return null;const{model:n}=this.irisGrid.props,s=this.irisGrid.getModelColumn(t);return s==null?null:n.columns[s]}onMove(t){if(!this.isActive())return!1;const{columnAllowedCursor:n,columnNotAllowedCursor:s}=this.irisGrid.props,{column:i}=t,o=this.getTableColumn(i);return this.isValidColumn(o)?(this.cursor=n,this.irisGrid.setState({hoverSelectColumn:i})):(this.cursor=s,this.irisGrid.setState({hoverSelectColumn:null})),!0}onWheel(t){if(!this.isActive())return!1;const{columnAllowedCursor:n,columnNotAllowedCursor:s}=this.irisGrid.props,{column:i}=t,o=this.getTableColumn(i);return this.isValidColumn(o)?this.cursor=n:this.cursor=s,{preventDefault:!1,stopPropagation:!1}}onLeave(){return this.isActive()&&this.irisGrid.setState({hoverSelectColumn:null}),this.updateColumnSelectionStatus(),!1}onDown(){return this.isActive()}onClick(t){if(!this.isActive())return!1;const{column:n}=t,s=this.getTableColumn(n);return s!=null&&this.isValidColumn(s)&&this.irisGrid.selectColumn(s),!0}}class wm extends je{constructor(t){super(),this.irisGrid=t}hideColumnTooltip(){const{tooltip:t}=this.irisGrid;t&&(t.stopTimer(),t.hide())}onDown(){return this.hideColumnTooltip(),!1}onContextMenu(){return this.hideColumnTooltip(),!1}onWheel(){return this.hideColumnTooltip(),!1}onLeave(t,n,s){const{relatedTarget:i}=s instanceof MouseEvent?s:s.nativeEvent,{tooltip:o}=this.irisGrid;if(!o)return!1;const r=o.popper.current;return r&&i instanceof Element&&r.element.contains(i)||this.hideColumnTooltip(),!1}onMove(t){const{column:n,row:s,columnHeaderDepth:i}=t,{shownColumnTooltip:o}=this.irisGrid.state;let r=null;return n!==null&&s===null&&i===0&&(r=n),r!==o&&this.irisGrid.setState({shownColumnTooltip:r}),!1}}const Fa=class extends y.exports.Component{constructor(e=Fa.defaultProps){super(e),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.inputRef=j.createRef()}handleInputChange(){const{onChange:e}=this.props;this.inputRef.current&&e(this.inputRef.current.value)}closeContextMenu(){const{forwardedProps:e}=this.props,{closeMenu:t}=e;t(!0)}revertToDefault(){const{onChange:e}=this.props;e(null)}returnFocusToContextMenu(){const e=Qd.getClosestByClassName(this.inputRef.current,"context-menu-container");e instanceof HTMLElement&&e.focus()}handleKeyDown(e){switch(e.key){case"Enter":e.stopPropagation(),this.closeContextMenu();break;case"Escape":e.stopPropagation(),this.revertToDefault(),this.closeContextMenu();break;case"ArrowRight":case"ArrowLeft":e.stopPropagation();break;case"ArrowUp":case"ArrowDown":this.returnFocusToContextMenu();break;default:e.stopPropagation()}}render(){const{formatString:e,forwardedProps:t,placeholder:n,title:s}=this.props,{menuItem:{description:i},iconElement:o}=t;return T("div",{className:"form-group flex-grow mb-0",children:[T("div",{className:"custom-format-title",children:[u("span",{className:"icon",children:o}),T("label",{className:"title mb-0",htmlFor:"custom-format-input",children:[s,i!=null&&u(Le,{children:i})]})]}),u("div",{className:"pl-2 pr-2 pb-2",children:u("input",{id:"custom-format-input",className:"form-control text-right mb-0",type:"text",defaultValue:e,ref:this.inputRef,placeholder:n,onKeyDown:this.handleKeyDown,onChange:this.handleInputChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false"})})]})}};let xa=Fa;xa.defaultProps={formatString:"",forwardedProps:{menuItem:{},closeMenu(e){},iconElement:null},placeholder:"",title:"",onChange(e){}};class vt{static isDefaultSelected(t){return!t||![ke.TYPE_CONTEXT_CUSTOM,ke.TYPE_CONTEXT_PRESET].includes(t.type)}static isCustomSelected(t){return t!=null&&t.type===ke.TYPE_CONTEXT_CUSTOM}static makeOption(t,n,s,i){return{title:t,description:t,group:s,format:n,isSelected:i}}static makeCustomFormatOption(t,n,s,i,o){return{title:t.label,description:t.label,format:t,group:n,isSelected:i,menuElement:u(xa,{formatString:t.formatString,title:t.label,placeholder:s,onChange:o})}}}const qt=class{static getOptions(e,t){const n=new Date,i=[{group:qt.dateGroup,formatString:"yyyy-MM-dd"},{group:qt.dateGroup,formatString:"MM-dd-yyyy"},{group:qt.timeGroup,formatString:"HH:mm:ss"},{group:qt.timeGroup,formatString:"HH:mm:ss.SSS"},{group:qt.timeGroup,formatString:"HH:mm:ss.SSSSSSSSS"},{group:qt.dateTimeGroup,formatString:"yyyy-MM-dd HH:mm:ss"},{group:qt.dateTimeGroup,formatString:"yyyy-MM-dd HH:mm:ss.SSS"},{group:qt.dateTimeGroup,formatString:"yyyy-MM-dd HH:mm:ss.SSSSSSSSS"}].map(r=>{const l=Hn.makeFormat("",r.formatString,Hn.TYPE_CONTEXT_PRESET),a=e.getFormattedString(n,x.dataType.DATETIME,"",l);return vt.makeOption(a,l,r.group,Hn.isSameFormat(l,t))});return[vt.makeOption("Default",null,qt.dateGroup,vt.isDefaultSelected(t)),...i]}};let oo=qt;oo.dateGroup=10;oo.timeGroup=20;oo.dateTimeGroup=30;const Kt=class{static getOptions(e,t){const n=[{format:Ve.FORMAT_PERCENT,group:Kt.presetGroup},{format:Ve.FORMAT_BASIS_POINTS,group:Kt.presetGroup},{format:Ve.FORMAT_MILLIONS,group:Kt.presetGroup},{format:Ve.FORMAT_SCIENTIFIC_NOTATION,group:Kt.presetGroup},{format:Ve.FORMAT_ROUND,group:Kt.presetRoundGroup},{format:Ve.FORMAT_ROUND_TWO_DECIMALS,group:Kt.presetRoundGroup},{format:Ve.FORMAT_ROUND_FOUR_DECIMALS,group:Kt.presetRoundGroup}],s=vt.makeOption("Default",null,Kt.defaultGroup,vt.isDefaultSelected(e)),i=n.map(a=>vt.makeOption(a.format.label,a.format,a.group,Ve.isSameFormat(a.format,e))),o=vt.isCustomSelected(e),r=o?e:Ve.makeCustomFormat(),l=vt.makeCustomFormatOption(r,Kt.customGroup,Ve.DEFAULT_FORMAT_STRING,o,a=>{if(a!=null){const c=Ve.makeCustomFormat(a);Ve.isValid(c)&&t(c)}else t(null)});return[s,...i,l]}};let ii=Kt;ii.defaultGroup=10;ii.presetGroup=20;ii.presetRoundGroup=30;ii.customGroup=40;const Xs=class{static getOptions(e,t){const n=[{format:Lt.FORMAT_MILLIONS,group:Xs.presetGroup},{format:Lt.FORMAT_SCIENTIFIC_NOTATION,group:Xs.presetGroup}],s=vt.makeOption("Default",null,Xs.defaultGroup,vt.isDefaultSelected(e)),i=n.map(a=>vt.makeOption(a.format.label,a.format,a.group,Lt.isSameFormat(a.format,e))),o=vt.isCustomSelected(e),r=o?e:Lt.makeCustomFormat(),l=vt.makeCustomFormatOption(r,Xs.customGroup,Lt.DEFAULT_FORMAT_STRING,o,a=>{if(a!=null){const c=Lt.makeCustomFormat(a);Lt.isValid(c)&&t(c)}else t(null)});return[s,...i,l]}};let ro=Xs;ro.defaultGroup=10;ro.presetGroup=20;ro.customGroup=30;const ul=ee.module("IrisGridContextMenuHandler"),Sm=150,ml="yyyy-MM-dd HH:mm:ss.SSSSSSSSS",q=class extends je{constructor(e){super(),this.debouncedUpdateCustomFormat=Tt(e.handleFormatSelection,Sm),this.irisGrid=e}static getQuickFilterCondition(e,t,n){return e&&n==="&&"?e.and(t):e&&n==="||"?e.or(t):t}static getQuickFilterText(e,t,n){return n&&e!=null?`${e} ${n} ${t}`:t}static getOperatorAsText(e){return e==="&&"?"And":"Or"}static getNumberValueEqualsFilter(e,t){const n=e.filter();if(t===Number.POSITIVE_INFINITY)return E.FilterCondition.invoke("isInf",n).and(n.greaterThan(E.FilterValue.ofNumber(0)));if(t===Number.NEGATIVE_INFINITY)return E.FilterCondition.invoke("isInf",n).and(n.lessThan(E.FilterValue.ofNumber(0)));if(Number.isNaN(t))return E.FilterCondition.invoke("isNaN",n);const s=q.getFilterValueForNumberOrChar(e.type,t);return n.eq(s)}static getFilterValueForNumberOrChar(e,t){return x.isCharType(e)?E.FilterValue.ofString(String.fromCharCode(t)):E.FilterValue.ofNumber(t)}componentWillUnmount(){this.debouncedUpdateCustomFormat.flush()}getHeaderActions(e,t){var F;const{irisGrid:n}=this,{column:s}=t;O(s);const{model:i}=n.props,{columns:o}=i,r=o[e],l=[],{metrics:a,reverseType:c,quickFilters:d,advancedFilters:h,searchFilter:m}=n.state,p=n.getTheme();O(a);const{filterIconColor:g,filterBarActiveColor:f,contextMenuSortIconColor:C,contextMenuReverseIconColor:b}=p,w=i.sort,S=x.getSortForColumn(w,e),I=c!==x.REVERSE_TYPE.NONE,{userColumnWidths:v}=a,R=[...v.values()].some(P=>P===0),M=i.isColumnFrozen(s);return l.push({title:"Hide Column",group:q.GROUP_HIDE_COLUMNS,action:()=>{this.irisGrid.hideColumnByVisibleIndex(s)}}),l.push({title:M?"Unfreeze Column":"Freeze Column",group:q.GROUP_HIDE_COLUMNS,action:()=>{M?this.irisGrid.unFreezeColumnByColumnName(r.name):this.irisGrid.freezeColumnByColumnName(r.name)},order:10}),l.push({title:"Show All Columns",group:q.GROUP_HIDE_COLUMNS,action:()=>{this.irisGrid.showAllColumns()},disabled:!R}),l.push({title:"Quick Filters",icon:on,iconColor:f,shortcut:Pt.TABLE.TOGGLE_QUICK_FILTER,group:q.GROUP_FILTER,order:10,action:()=>{this.irisGrid.toggleFilterBar(s)}}),l.push({title:"Advanced Filters",icon:h.get(e)?jo:Vi,iconColor:g,group:q.GROUP_FILTER,order:20,action:()=>{this.irisGrid.handleAdvancedMenuOpened(s)}}),l.push({title:"Clear Table Filters",group:q.GROUP_FILTER,order:40,shortcut:Pt.TABLE.CLEAR_FILTERS,action:()=>{this.irisGrid.clearAllFilters()},disabled:!(d.size>0||h.size>0||m!=null)}),l.push({title:"Sort by",icon:on,iconColor:C,group:q.GROUP_SORT,order:10,actions:this.sortByActions(r,e,S)}),l.push({title:"Add Additional Sort",disabled:S&&w.length===1||I&&w.length===1||S&&I&&w.length===2||w.length===0,group:q.GROUP_SORT,order:20,actions:this.additionalSortActions(r,e)}),l.push({title:"Clear Table Sorting",disabled:w.length===0||I&&w.length===1,group:q.GROUP_SORT,action:()=>{this.irisGrid.sortColumn(s,q.COLUMN_SORT_DIRECTION.none)},order:30}),l.push({title:c===x.REVERSE_TYPE.NONE?"Reverse Table":"Clear Reverse Table",icon:on,iconColor:b,group:q.GROUP_SORT,order:40,disabled:!i.isReversible,shortcut:Pt.TABLE.REVERSE,action:()=>{c===x.REVERSE_TYPE.NONE?this.irisGrid.reverse(x.REVERSE_TYPE.POST_SORT):this.irisGrid.reverse(x.REVERSE_TYPE.NONE)}}),l.push({title:"Copy Column Name",group:q.GROUP_COPY,action:()=>{var P;Se.copyToClipboard((P=i.textForColumnHeader(e))!=null?P:"").catch(W=>ul.error("Unable to copy header",W))}}),x.isDateType(r.type)?l.push({title:"Date/Time Format",group:q.GROUP_FORMAT,actions:this.dateFormatActions(r)}):x.isNumberType(r.type)&&l.push({title:"Number Format",group:q.GROUP_FORMAT,actions:(F=this.numberFormatActions(r))!=null?F:void 0}),l}getCellActions(e,t,n){O(e);const{irisGrid:s}=this,{column:i,row:o}=n,{model:r,canCopy:l}=s.props,{columns:a}=r,c=s.getModelRow(o);O(c);const d=r.valueForCell(e,c),h=r.textForCell(e,c),m=a[e],p=[],{quickFilters:g}=s.state,f=s.getTheme(),{filterIconColor:C}=f,{settings:b}=s.props,w=new Hn({timeZone:b==null?void 0:b.timeZone,showTimeZone:!1,showTSeparator:!0,defaultDateTimeFormatString:ml}),S=new Hn({timeZone:b==null?void 0:b.timeZone,showTimeZone:b==null?void 0:b.showTimeZone,showTSeparator:b==null?void 0:b.showTSeparator,defaultDateTimeFormatString:ml});if(m==null||o==null)return p;if(r.isFilterable(e)){const v={title:"Filter By Value",icon:on,iconColor:C,group:q.GROUP_FILTER,order:10,actions:[]};if(d==null)g.get(e)&&v.actions.push({title:"And",actions:this.nullFilterActions(m,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.nullFilterActions(m));else if(x.isBooleanType(m.type))g.get(e)&&v.actions.push({title:"Or",actions:this.booleanFilterActions(m,h,g.get(e),"||"),order:2,group:oe.groups.high}),v.actions.push(...this.booleanFilterActions(m,h));else if(x.isNumberType(m.type)||x.isCharType(m.type)){O(e);const R=x.isCharType(m.type)?String.fromCharCode(d):`${d}`;g.get(e)&&v.actions.push({title:"And",actions:this.numberFilterActions(m,R,d,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.numberFilterActions(m,R,d,g.get(e)))}else if(x.isDateType(m.type)){const R=w.format(d),M=S.format(d);g.get(e)&&v.actions.push({title:"And",actions:this.dateFilterActions(m,R,M,d,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.dateFilterActions(m,R,M,d,g.get(e)))}else g.get(e)&&v.actions.push({title:"And",actions:this.stringFilterActions(m,h,d,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.stringFilterActions(m,h,d));v.actions!=null&&v.actions.length>0&&p.push(v)}const I={title:"Go to",iconColor:C,shortcut:Pt.TABLE.GOTO_ROW,group:q.GROUP_GOTO,order:10,action:()=>this.irisGrid.toggleGotoRow(`${o+1}`)};return p.push(I),l&&(p.push({title:"Copy Cell",group:q.GROUP_COPY,order:10,action:()=>{s.copyCell(i,o)}}),p.push({title:"Copy Cell Unformatted",group:q.GROUP_COPY,order:20,action:()=>{s.copyCell(i,o,!0)}})),p}onContextMenu(e,t,n){const{irisGrid:s}=this,{y:i,column:o,row:r,columnHeaderDepth:l}=e,a=s.getModelColumn(o),c=s.getModelRow(r),{model:d,canCopy:h}=s.props,{columns:m}=d,{metrics:p,isFilterBarShown:g,quickFilters:f,advancedFilters:C,selectedRanges:b}=s.state;O(p);const{columnHeaderHeight:w,gridY:S,columnHeaderMaxDepth:I}=p,v=[];if(a!=null&&c!=null){const R=d.valueForCell(a,c),M=d.textForCell(a,c),F=m[a],{onContextMenu:P}=s.props;F!=null&&v.push(P({model:d,value:R,valueText:M,column:F,rowIndex:r,columnIndex:o,modelRow:c,modelColumn:a}))}return a!=null&&d.isFilterable(a)&&v.push({title:"Clear Column Filter",group:q.GROUP_FILTER,order:30,action:()=>{this.irisGrid.removeColumnFilter(a)},disabled:!(f.has(a)||C.has(a))}),(g?i<=S:i<=w*I&&l===0)?a!=null&&v.push(...this.getHeaderActions(a,e)):(a!=null&&c!=null&&v.push(...this.getCellActions(a,t,e)),h&&b.length>0&&(v.push({title:"Copy Selection",shortcut:ar.COPY,group:q.GROUP_COPY,order:30,action:()=>{s.copyRanges(b)}}),v.push({title:"Copy Selection w/ Headers",group:q.GROUP_COPY,order:40,action:()=>{s.copyRanges(b,!0)}})),Ae(d)&&d.isEditable&&b.length>0&&v.push({title:"Delete Selected Rows",group:q.GROUP_EDIT,order:50,action:()=>{this.irisGrid.deleteRanges(b)}})),v.length===0?!1:(O(s.gridWrapper),oe.triggerMenu(s.gridWrapper,n.pageX,n.pageY,v),!0)}dateFormatActions(e){const{model:t}=this.irisGrid.props,{formatter:n}=t,s=n.getColumnFormat(e.type,e.name),i=oo.getOptions(n,s),o=[];for(let r=0;r<i.length;r+=1){const{description:l,format:a,group:c,isSelected:d,title:h}=i[r];o.push({title:h,description:l,icon:d?is:void 0,group:c,order:r,action:()=>{const m=t.getColumnIndexByName(e.name);O(m),this.irisGrid.handleFormatSelection(m,a)}})}return o}numberFormatActions(e){const{model:t}=this.irisGrid.props,{formatter:n}=t,s=n.getColumnFormat(e.type,e.name);let i;const o=t.getColumnIndexByName(e.name);if(x.isDecimalType(e.type))i=ii.getOptions(s,l=>{O(o),this.debouncedUpdateCustomFormat(o,l)});else if(x.isIntegerType(e.type))i=ro.getOptions(s,l=>{O(o),this.debouncedUpdateCustomFormat(o,l)});else return ul.error("Invalid column type in numberFormatActions"),null;const r=[];for(let l=0;l<i.length;l+=1){const{format:a,isSelected:c}=i[l];r.push({...i[l],icon:c?is:void 0,order:l,action:()=>{o===void 0&&a&&a.type===ke.TYPE_CONTEXT_CUSTOM||(O(o),this.irisGrid.handleFormatSelection(o,a))}})}return r}stringFilterActions(e,t,n,s,i){const o=E.FilterValue.ofString(n);let r=s;r||(r={filter:null,text:null});const{filter:l,text:a}=r,c=[],{model:d}=this.irisGrid.props,h=d.getColumnIndexByName(e.name);return O(h),c.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[i?q.getOperatorAsText(i):""," ",'"',t,'"']}),order:1,group:oe.groups.high}),c.push({title:"text is exactly",description:`Show only rows where ${e.name} is ${n} (case sensitive)`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().eq(o),i),q.getQuickFilterText(a,`=${t}`,i))},order:10,group:oe.groups.low}),c.push({title:"text is not exactly",description:`Show only rows where ${e.name} is not ${t} (case sensitive)`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().notEq(o),i),q.getQuickFilterText(a,`!=${t}`,i))},order:20,group:oe.groups.low}),c.push({title:"text contains",description:`Show only rows where ${e.name} contains ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().contains(o),i),q.getQuickFilterText(a,`~${t}`,i))},order:30,group:oe.groups.low}),c.push({title:"text does not contain",description:`Show only rows where ${e.name} does not contain ${n}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().contains(o).not(),i),q.getQuickFilterText(a,`!~${t}`,i))},order:40,group:oe.groups.low}),c.push({title:"text starts with",description:`Show only rows where ${e.name} starts with ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().invoke("startsWith",o),i),q.getQuickFilterText(a,`${t}*`,i))},order:50,group:oe.groups.low}),c.push({title:"text ends with",description:`Show only rows where ${e.name} ends with ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().invoke("endsWith",o),i),q.getQuickFilterText(a,`*${t}`,i))},order:60,group:oe.groups.low}),c}numberFilterActions(e,t,n,s,i){const o=q.getFilterValueForNumberOrChar(e.type,n);let r=null,l=null;s&&(r=s.filter,l=s.text);const a=[],c=n!==Number.POSITIVE_INFINITY&&n!==Number.NEGATIVE_INFINITY&&!Number.isNaN(n),{model:d}=this.irisGrid.props,h=d.getColumnIndexByName(e.name);return O(h),a.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[i?q.getOperatorAsText(i):""," ",'"',t,'"']}),order:1,group:oe.groups.high}),a.push({title:"is equal to",description:`Show only rows where ${e.name} is ${t}`,action:()=>{const m=q.getNumberValueEqualsFilter(e,n);this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,m,i),q.getQuickFilterText(l,`=${t}`,i))},order:10,group:oe.groups.low}),a.push({title:"is not equal to",description:`Show only rows where ${e.name} is not ${t}`,action:()=>{const m=q.getNumberValueEqualsFilter(e,n).not();this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,m,i),q.getQuickFilterText(l,`!=${t}`,i))},order:20,group:oe.groups.low}),c&&!x.isCharType(e.type)&&(a.push({title:"greater than",description:`Show only rows where ${e.name} is greater than ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().greaterThan(o),i),q.getQuickFilterText(l,`>${t}`,i))},order:30,group:oe.groups.low}),a.push({title:"greater than or equal to",description:`Show only rows where ${e.name} is greater than or equal to ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().greaterThanOrEqualTo(o),i),q.getQuickFilterText(l,`>=${t}`,i))},order:40,group:oe.groups.low}),a.push({title:"less than",description:`Show only rows where ${e.name} is less than ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().lessThan(o),i),q.getQuickFilterText(l,`<${t}`,i))},order:50,group:oe.groups.low}),a.push({title:"less than or equal to",description:`Show only rows where ${e.name} is less than or equal to ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().lessThanOrEqualTo(o),i),q.getQuickFilterText(l,`<=${t}`,i))},order:60,group:oe.groups.low})),a}booleanFilterActions(e,t,n,s){const i=[],{model:o}=this.irisGrid.props,{filter:r,text:l}=n||{},a=o.getColumnIndexByName(e.name);return O(a),i.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[s?q.getOperatorAsText(s):""," ",'"',t!=null?t:"null",'"']}),order:1,group:oe.groups.high}),i.push({title:"true",description:`Show only rows where ${e.name} is true`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isTrue(),s),q.getQuickFilterText(l,"true",s))},order:10,group:oe.groups.low}),i.push({title:"false",description:`Show only rows where ${e.name} is false`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isFalse(),s),q.getQuickFilterText(l,"false",s))},order:20,group:oe.groups.low}),i.push({title:"is null",description:`Show only rows where ${e.name} is null`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isNull(),s),q.getQuickFilterText(l,"null",s))},order:30,group:oe.groups.low}),i.push({title:"is not null",description:`Show only rows where ${e.name} is not null`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isNull().not(),s),q.getQuickFilterText(l,"!null",s))},order:40,group:oe.groups.low}),i}dateFilterActions(e,t,n,s,i,o){const r=E.FilterValue.ofNumber(s);let l=null,a=null;i&&(l=i.filter,a=i.text);const{model:c}=this.irisGrid.props,d=c.getColumnIndexByName(e.name);O(d);const h=[];return h.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[o?q.getOperatorAsText(o):""," ",'"',n,'"']}),order:1,group:oe.groups.high}),h.push({title:"date is",description:`Show only rows where ${e.name} is ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().eq(r),o),q.getQuickFilterText(a,`=${t}`,o))},order:10,group:oe.groups.low}),h.push({title:"date is not",description:`Show only rows where ${e.name} is not ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().notEq(r),o),q.getQuickFilterText(a,`!=${t}`,o))},order:20,group:oe.groups.low}),h.push({title:"date is before",description:`Show only rows where ${e.name} is before ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().lessThan(r),o),q.getQuickFilterText(a,`<${t}`,o))},order:30,group:oe.groups.low}),h.push({title:"date is before or equal",description:`Show only rows where ${e.name} is before or equal to ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().lessThanOrEqualTo(r),o),q.getQuickFilterText(a,`<=${t}`,o))},order:40,group:oe.groups.low}),h.push({title:"date is after",description:`Show only rows where ${e.name} is greater than ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().greaterThan(r),o),q.getQuickFilterText(a,`>${t}`,o))},order:50,group:oe.groups.low}),h.push({title:"date is after or equal",description:`Show only rows where ${e.name} is after or equal to ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().greaterThanOrEqualTo(r),o),q.getQuickFilterText(a,`>=${t}`,o))},order:60,group:oe.groups.low}),h}nullFilterActions(e,t,n){let s=null,i=null;t&&(s=t.filter,i=t.text);const o=[],{model:r}=this.irisGrid.props,l=r.getColumnIndexByName(e.name);return O(l),o.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[n?q.getOperatorAsText(n):""," ",'"null"']}),order:1,group:oe.groups.high}),o.push({title:"is null",description:`Show only rows where ${e.name} is null`,action:()=>{this.irisGrid.setQuickFilter(l,q.getQuickFilterCondition(s,e.filter().isNull(),n),q.getQuickFilterText(i,"null",n))},order:10,group:oe.groups.low}),o.push({title:"is not null",description:`Show only rows where ${e.name} is not null`,action:()=>{this.irisGrid.setQuickFilter(l,q.getQuickFilterCondition(s,e.filter().isNull().not(),n),q.getQuickFilterText(i,"!null",n))},order:20,group:oe.groups.low}),o}sortByActions(e,t,n){const s=this.irisGrid.getTheme(),{contextMenuSortIconColor:i}=s,o=[{title:`${e.name} Ascending`,order:10,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.ascending)?on:void 0,iconColor:i},{title:`${e.name} Descending`,order:20,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.descending)?on:void 0,iconColor:i},{title:"Remove Sort",order:50,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.none,!1,!0)},disabled:!n}];return x.isNumberType(e.type)&&(o.push({title:`ABS(${e.name}) Ascending`,order:30,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending,!0)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.ascending,!0)?on:void 0,iconColor:i}),o.push({title:`ABS(${e.name}) Descending`,order:40,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending,!0)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.descending,!0)?on:void 0,iconColor:i})),o}additionalSortActions(e,t){const n=this.irisGrid.getTheme(),{contextMenuSortIconColor:s}=n,i=[{title:"Add Sort By",menuElement:T("div",{className:"btn-context-menu menu-title",children:[u("span",{className:"icon",children:u(K,{icon:on,style:{color:s!=null?s:void 0}})}),u("span",{className:"title",children:"Add Additional Sort"}),u("span",{className:"shortcut",children:Se.isMacPlatform()?"\u2318Click":"^Click"})]}),order:1},{title:`${e.name} Ascending`,order:10,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending,!1,!0)}},{title:`${e.name} Descending`,order:20,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending,!1,!0)}}];return x.isNumberType(e.type)&&(i.push({title:`ABS(${e.name}) Ascending`,order:30,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending,!0,!0)}}),i.push({title:`ABS(${e.name}) Descending`,order:40,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending,!0,!0)}})),i}checkColumnSort(e,t=null,n=!1){return e?e.direction===t&&e.isAbs===n:!1}};let Cn=q;Cn.GROUP_EDIT=oe.groups.high+10;Cn.GROUP_HIDE_COLUMNS=oe.groups.high+25;Cn.GROUP_FILTER=oe.groups.high+50;Cn.GROUP_GOTO=oe.groups.high+51;Cn.GROUP_SORT=oe.groups.high+75;Cn.GROUP_COPY=oe.groups.high+100;Cn.GROUP_FORMAT=oe.groups.high+150;Cn.COLUMN_SORT_DIRECTION={ascending:"ASC",descending:"DESC",none:null};class vm extends je{constructor(t){super(),this.irisGrid=t}onDoubleClick(t){const{column:n,row:s}=t;return s==null||n==null?!1:(this.irisGrid.selectData(n,s),!0)}}class Tm extends je{constructor(t){super(),this.irisGrid=t}onDown(t){const{y:n,column:s,row:i}=t;if(s!==null&&i===null){const{isFilterBarShown:o,metrics:r}=this.irisGrid.state;if(!r)throw new Error("Metrics not set");const{columnHeaderMaxDepth:l}=r,a=this.irisGrid.getTheme();if(o&&a.columnHeaderHeight!=null&&a.filterBarHeight!=null&&n>a.columnHeaderHeight*l&&n<=a.columnHeaderHeight*l+a.filterBarHeight)return this.irisGrid.focusFilterBar(s),!0}return!1}onMove(t){const{y:n,column:s}=t,{isFilterBarShown:i,hoverAdvancedFilter:o,metrics:r}=this.irisGrid.state;if(!r)throw new Error("Metrics not set");const{columnHeaderMaxDepth:l}=r,a=this.irisGrid.getTheme();let c=null;return i&&a.columnHeaderHeight!=null&&a.filterBarHeight!=null&&s!==null&&n>=a.columnHeaderHeight*l&&n<=a.columnHeaderHeight*l+a.filterBarHeight&&(c=s),c!==o&&this.irisGrid.setState({hoverAdvancedFilter:c}),!1}onLeave(t){const{column:n}=t,{hoverAdvancedFilter:s}=this.irisGrid.state;return s!==null&&n!==s&&this.irisGrid.setState({hoverAdvancedFilter:null}),!1}}class Em extends je{constructor(t){super(),this.column=null,this.irisGrid=t}getColumnFromGridPoint(t){const{column:n,row:s,columnHeaderDepth:i}=t;return n!==null&&s===null&&i===0?n:null}onDown(t){return this.column=this.getColumnFromGridPoint(t),!1}onClick(t,n,s){const i=this.getColumnFromGridPoint(t);if(i!=null&&i===this.column){const o=Se.isModifierKeyDown(s);return this.irisGrid.toggleSort(i,o),!0}return!1}}class ym extends je{constructor(t){super(),this.irisGrid=t}onWheel(t,n,s){const{irisGrid:i}=this,{model:o}=i.props,{metrics:r,pendingRowCount:l}=i.state;O(r);const{bottom:a,rowCount:c,rowHeight:d}=r,{deltaY:h}=U.getScrollDelta(s);return Ae(o)&&o.isEditable&&a>=c-1&&h>0&&i.setState({pendingRowCount:l+Math.ceil(h/d)}),!1}}const Rm=3e3,Im=({children:e=null,onEntering:t,onEntered:n,onExiting:s,onExited:i})=>{const[o,r]=y.exports.useState(!1),l=y.exports.useRef(),a=sr(e),c=y.exports.useCallback(()=>{r(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{r(!1)},Rm)},[r,l]);return y.exports.useEffect(()=>{a!==e&&e!=null&&c()},[e,a,r,c]),y.exports.useEffect(()=>()=>l.current?clearTimeout(l.current):void 0,[]),u(io,{className:"toast-bottom-bar",isShown:o,onEntering:t,onEntered:n,onExiting:s,onExited:i,children:e})};class Mm extends ni{getVisibleColumnWidth(t,n,s=this.getFirstColumn(n),i=this.calculateTreePaddingX(n)){var d,h,m;const{model:o}=n,r=(h=(d=o.layoutHints)==null?void 0:d.hiddenColumns)!=null?h:[],l=this.getModelColumn(t,n),a=super.getVisibleColumnWidth(t,n,s,i);return!this.userColumnWidths.has(l)&&r.includes((m=o.columns[l])==null?void 0:m.name)?0:a}getGridY(t){let n=super.getGridY(t);const{isFilterBarShown:s,theme:i,advancedFilters:o,quickFilters:r,sorts:l,reverseType:a}=t;return s?n+=i.filterBarHeight:(r!=null&&r.size>0||o!=null&&o.size>0)&&(n+=i.filterBarCollapsedHeight),a!==x.REVERSE_TYPE.NONE&&l!=null&&l.length>0&&(n+=i.reverseHeaderBarHeight),n}getUserColumnWidths(){return this.userColumnWidths}}const Dm=1,Oa=j.memo(({model:e,modelColumns:t,top:n,bottom:s,left:i,right:o,filter:r,formatter:l,reverseType:a=x.REVERSE_TYPE.NONE,sorts:c,customColumns:d,movedColumns:h,hiddenColumns:m,alwaysFetchColumns:p,rollupConfig:g=null,totalsConfig:f=null,selectDistinctColumns:C=[],pendingRowCount:b=0,pendingDataMap:w=new Map,frozenColumns:S,formatColumns:I})=>{const v=y.exports.useMemo(()=>se.getModelViewportColumns(t,i,o,h,m,p,Dm),[t,i,o,h,m,p]);return y.exports.useEffect(function(){e.filter=r},[e,r]),y.exports.useEffect(function(){const M=[...c];a!==x.REVERSE_TYPE.NONE&&M.push(E.Table.reverse()),e.sort=M},[e,c,a]),y.exports.useEffect(function(){e.formatter=l},[e,l]),y.exports.useEffect(function(){e.isCustomColumnsAvailable&&(e.customColumns=d)},[e,d]),y.exports.useEffect(function(){e.isFormatColumnsAvailable&&(e.formatColumns=I)},[e,I]),y.exports.useEffect(function(){e.setViewport(n,s,v)},[e,n,s,v]),y.exports.useEffect(function(){e.isRollupAvailable&&(e.rollupConfig=g)},[e,e.isRollupAvailable,g]),y.exports.useEffect(function(){e.isSelectDistinctAvailable&&(e.selectDistinctColumns=C)},[e,C]),y.exports.useEffect(function(){e.isTotalsAvailable&&(e.totalsConfig=f)},[e,e.isTotalsAvailable,f]),y.exports.useEffect(function(){e.pendingRowCount=b},[e,b]),y.exports.useEffect(function(){e.pendingDataMap=w},[e,w]),y.exports.useEffect(function(){S&&e.updateFrozenColumns(S)},[e,S]),null});Oa.displayName="IrisGridModelUpdater";const zt=Object.freeze({SORT_UP:"sortUp",SORT_DOWN:"sortDown",CARET_DOWN:"caretDown",CARET_RIGHT:"caretRight",CELL_OVERFLOW:"cellOverflow"}),Mo=16;class Zs extends Ns{constructor(){super(),this.icons={},this.initIcons()}static isFilterValid(t,n){const s=t==null||t.filter!=null,i=n==null||n.filter!=null;return s&&i}initIcons(){this.setIcon(zt.SORT_UP,Ud),this.setIcon(zt.SORT_DOWN,Vd),this.setIcon(zt.CARET_DOWN,On),this.setIcon(zt.CARET_RIGHT,Kl),this.setIcon(zt.CELL_OVERFLOW,pd)}setIcon(t,n){const s=Array.isArray(n.icon[4])?n.icon[4][0]:n.icon[4],i=new Path2D(s),o=new Path2D,r={a:Mo/n.icon[0],d:Mo/n.icon[1]};o.addPath(i,r),this.icons[t]=o}getIcon(t){return this.icons[t]}getSortIcon(t){return t?t.direction===x.sortDirection.ascending?this.getIcon(zt.SORT_UP):t.direction===x.sortDirection.descending?this.getIcon(zt.SORT_DOWN):null:null}drawCanvas(t){super.drawCanvas(t),this.drawScrim(t)}drawGrid(t,n){super.drawGrid(t,n),this.drawCellOverflowButton(n)}drawGridLines(t,n){super.drawGridLines(t,n),this.drawGroupedColumnLine(t,n),this.drawPendingRowLine(t,n)}drawCellContent(t,n,s,i){var m;const{metrics:o,model:r}=n,{modelColumns:l,modelRows:a}=o,c=L(a,i),d=l.get(s);if(d===void 0)return;const h=r.valueForCell(d,c);if(x.isTextType((m=r.columns[d])==null?void 0:m.type)&&(h===null||h==="")){const p=t.font;t.font=`italic ${p}`;const g=h===null?"null":"empty";super.drawCellContent(t,n,s,i,g),t.font=p;return}super.drawCellContent(t,n,s,i)}drawGroupedColumnLine(t,n){const{metrics:s,model:i,theme:o}=n,{groupedColumns:r,columns:l}=i,{maxY:a,visibleColumnWidths:c,visibleColumnXs:d}=s;if(r.length===0||o.groupedColumnDividerColor==null)return;const h=r[r.length-1],m=l.findIndex(C=>C.name===h.name),p=d.get(m),g=c.get(m);if(p==null||g==null)return;const f=p+g+.5;t.strokeStyle=o.groupedColumnDividerColor,t.lineWidth=1,t.beginPath(),t.moveTo(f,0),t.lineTo(f,a),t.stroke()}drawPendingRowLine(t,n){const{metrics:s,model:i,theme:o}=n,{visibleRowYs:r,maxX:l}=s,{pendingRowCount:a}=i;if(a<=0)return;const c=i.rowCount-i.pendingRowCount-i.floatingBottomRowCount;let d=r.get(c);d!=null&&(d-=.5,t.save(),t.setLineDash([4,2]),t.strokeStyle=o.pendingTextColor,t.lineWidth=1,t.beginPath(),t.moveTo(0,d),t.lineTo(l,d),t.stroke(),t.restore())}drawMouseColumnHover(t,n){const{theme:s,metrics:i,hoverSelectColumn:o}=n;if(o==null||s.linkerColumnHoverBackgroundColor==null)return;const{visibleColumnWidths:r,visibleColumnXs:l,maxY:a}=i,c=l.get(o),d=r.get(o);O(c),O(d),t.fillStyle=s.linkerColumnHoverBackgroundColor,t.fillRect(c,0,d,a)}drawMouseRowHover(t,n){const{isSelectingColumn:s}=n;s||super.drawMouseRowHover(t,n)}drawScrim(t){const{context:n,loadingScrimProgress:s,metrics:i,theme:o}=t;if(s==null)return;const{width:r,height:l,gridY:a}=i,{scrimBlurSize:c,scrimColor:d}=o;n.save(),n.globalCompositeOperation="color",n.filter=`blur(${c}px)`,d!=null&&(n.fillStyle=d),n.beginPath(),n.rect(0,a,r,l-a),n.clip(),n.fillRect(-c,-c+a,c*2+r,(c*2+(l-a))*s),n.globalCompositeOperation="overlay",n.filter=`blur(${c}px) opacity(15%)`,n.fillRect(-c,-c+a,c*2+r,(c*2+(l-a))*s),n.restore()}drawColumnHeaders(t,n){super.drawColumnHeaders(t,n);const{theme:s,metrics:i,model:o,reverseType:r}=n,{columnHeaderHeight:l}=i;if(this.drawFilterHeaders(t,n),l<=0)return;const{sort:a}=o;if(a.length===1){const c=r!==x.REVERSE_TYPE.NONE;let d;c?d=s.headerReverseBarColor:d=s.headerSortBarColor,this.drawHeaderBar(t,n,d,c?s.reverseHeaderBarHeight:s.sortHeaderBarHeight)}else a.length>1&&(r!==x.REVERSE_TYPE.NONE&&this.drawHeaderBar(t,n,s.headerReverseBarColor,s.reverseHeaderBarHeight,!1),this.drawHeaderBar(t,n,s.headerSortBarColor,s.sortHeaderBarHeight))}drawHeaderBar(t,n,s,i,o=!0){const{theme:r,metrics:l,model:a}=n,{columnHeaderHeight:c,width:d}=l;let h=0;o||(h=i),t.fillStyle=r.headerBarCasingColor,t.fillRect(0,a.columnHeaderMaxDepth*c-i-2+h,d,i+2),t.fillStyle=s,t.fillRect(0,a.columnHeaderMaxDepth*c-i-1+h,d,i)}drawColumnHeadersAtDepth(t,n,s,i,o){const{metrics:r,model:l,isMenuShown:a}=n,{columnHeaderMaxDepth:c}=l,{width:d}=r,h={...i,maxX:o===c-1&&i.maxX===d?d-(a?0:30):i.maxX};super.drawColumnHeadersAtDepth(t,n,s,h,o)}drawColumnHeaderAtIndex(t,n,s,i){var H;super.drawColumnHeaderAtIndex(t,n,s,i);const{metrics:o,model:r,theme:l}=n,{modelColumns:a,visibleColumnWidths:c,visibleColumnXs:d,gridX:h,columnHeaderHeight:m,fontWidths:p}=o,{headerHorizontalPadding:g}=l,f=L(c,s,0),C=L(d,s)+h,b=a.get(s);if(b==null)return;const w=x.getSortForColumn(r.sort,b);if(!w)return;const S=this.getSortIcon(w);if(!S)return;const I=r.textForColumnHeader(b);if(I===void 0)return;const v=(H=p.get(t.font))!=null?H:Ns.DEFAULT_FONT_WIDTH;O(v);const R=I.length*v,M=h+C+R+g;let{maxX:F}=i;F-=g;const P=h+C+f-g-1,W=M>F?M+1:Math.min(F,P),B=w.direction===x.sortDirection.ascending?-6:-12,N=m*.5+B;t.save(),t.beginPath(),t.rect(C,0,f,m),t.clip(),t.fillStyle=l.headerSortBarColor,t.translate(W,N),t.fill(S),t.restore()}drawFilterHeaders(t,n){const{isFilterBarShown:s,quickFilters:i,advancedFilters:o}=n;s?this.drawExpandedFilterHeaders(t,n):(i!=null&&i.size>0||o!=null&&o.size>0)&&this.drawCollapsedFilterHeaders(t,n)}drawExpandedFilterHeaders(t,n){const{metrics:s,model:i,theme:o,quickFilters:r,advancedFilters:l}=n,{filterBarHeight:a}=o;if(a<=0)return;const{gridX:c,gridY:d,maxX:h,modelColumns:m,visibleColumns:p,visibleColumnWidths:g,visibleColumnXs:f}=s,C=d-a;t.save(),t.font=o.font,t.textAlign="left",r!=null&&r.size>0||l!=null&&l.size>0?t.fillStyle=o.filterBarExpandedActiveBackgroundColor:t.fillStyle=o.filterBarExpandedBackgroundColor,t.fillRect(c,C,h,a-1),t.fillStyle=o.headerBarCasingColor,t.fillRect(c,C+a-1,h,1);const b=C;t.strokeStyle=o.filterBarSeparatorColor,t.beginPath();for(let w=0;w<p.length;w+=1){const S=p[w],I=L(m,S),v=L(f,S),R=L(g,S);if(i.isFilterable(I)&&R>0){const M=c+(v!=null?v:0);t.rect(M+.5,b+.5,R,a-2)}}t.stroke();for(let w=0;w<p.length;w+=1){const S=p[w],I=L(g,S),R=L(f,S)+c;this.drawExpandedFilterHeader(t,n,S,R,I)}t.restore()}drawExpandedFilterHeader(t,n,s,i,o){if(o<=0)return;const{metrics:r,theme:l,quickFilters:a,advancedFilters:c}=n,{modelColumns:d,gridY:h}=r,{filterBarHeight:m,filterBarExpandedActiveCellBackgroundColor:p,filterBarErrorColor:g,filterBarHorizontalPadding:f,headerColor:C}=l,b=h-m,w=d.get(s);if(w===void 0)return;const S=a.get(w),I=c.get(w);if(S==null&&I==null)return;let v=null;if(S!=null){const{text:M}=S;if(v=M,v||(v=x.getFilterText(S.filter)),v!=null){const{fontWidths:F}=r;let P=F.get(t.font);(P==null||P===0)&&(P=t.measureText("8").width,P||(P=10));const W=(o-f*2)/P;W<=0?v="":v.length>W&&(v=`${v.substring(0,W-1)}\u2026`)}}if(t.save(),Zs.isFilterValid(I,S)&&p!=null)t.fillStyle=p,t.fillRect(i+1,b+1,o-1,m-3);else if(g!=null){t.fillStyle=g,t.lineWidth=2,t.strokeStyle=g;const M=i+2,F=b+2,P=o-3,W=m-5;t.strokeRect(M,F,P,W)}if(v!=null&&v!==""){const M=i+f,F=b+m*.5+1;t.fillStyle=C,t.fillText(v,M,F)}t.restore()}drawCollapsedFilterHeaders(t,n){const{metrics:s,theme:i}=n,{headerSeparatorColor:o,filterBarCollapsedHeight:r}=i;if(r<=0)return;const{gridX:l,gridY:a,maxX:c,visibleColumns:d,visibleColumnWidths:h,visibleColumnXs:m}=s,p=a-r;t.save(),t.fillStyle=o,t.fillRect(l,p,c,r);for(let g=0;g<d.length;g+=1){const f=d[g],C=h.get(f),b=m.get(f);if(b!=null&&C!=null){const w=b+l;this.drawCollapsedFilterHeader(t,n,f,w,C)}}t.restore()}drawCollapsedFilterHeader(t,n,s,i,o){if(o<=0)return;const{metrics:r,theme:l,quickFilters:a,advancedFilters:c}=n,{modelColumns:d,gridY:h}=r,m=d.get(s);if(m===void 0)return;const p=a.get(m),g=c.get(m),{filterBarCollapsedHeight:f,filterBarActiveColor:C,filterBarActiveBackgroundColor:b,filterBarErrorColor:w}=l;t.save();const S=Zs.isFilterValid(g,p);b!=null&&p==null&&g==null?t.fillStyle=b:C!=null&&S?t.fillStyle=C:w!=null&&(t.fillStyle=w);const I=i+1,v=h-f,R=o-1,M=f-1;t.fillRect(I,v,R,M),t.restore()}drawTreeMarker(t,n,s,i,o,r,l){t.save();const{x1:a,y1:c}=o,d=l?this.getIcon(zt.CARET_DOWN):this.getIcon(zt.CARET_RIGHT),h=s+a-2,m=i+c+2.5;t.fillStyle=r,t.textAlign="center",t.translate(h,m),t.fill(d),t.restore()}drawRowFooters(t,n){const{metrics:s,model:i,mouseX:o,mouseY:r,theme:l}=n,{gridY:a,gridX:c,maxX:d,modelRows:h,floatingTopHeight:m,floatingBottomHeight:p,floatingRows:g,rowFooterWidth:f,height:C,horizontalBarHeight:b,verticalBarWidth:w,visibleRowHeights:S,visibleRowYs:I,width:v}=s;if(f<=0||g.length===0)return;const{cellHorizontalPadding:R,floatingGridRowColor:M,floatingRowBackgroundColors:F,headerColor:P,rowHoverBackgroundColor:W}=l;t.translate(c,a),t.beginPath();const B=Math.min(d,v-f-w-c);t.fillStyle=F,m>0&&t.rect(B,0,f,m),p>0&&t.rect(B,C-a-b-p,f,p),t.fill();const N=o!=null&&r!=null&&o>=c&&o<=d+f?U.getRowAtY(r,s):null;if(W!=null&&N!==null&&g.includes(N)){t.fillStyle=W;const A=I.get(N),k=S.get(N);O(A),O(k),t.fillRect(B,A,f,k)}if(t.beginPath(),M!=null&&(t.strokeStyle=M),m>0&&(t.moveTo(B+.5,.5),t.lineTo(B+.5,m-.5)),p>0){const A=C-a-b-p;t.moveTo(B-.5,A+.5),t.lineTo(B-.5,A+p-.5)}t.stroke(),t.fillStyle=P,t.textAlign="left";const H=B+R;for(let A=0;A<g.length;A+=1){const k=g[A],_=S.get(k),V=I.get(k),G=h.get(k);if(V!=null&&_!=null&&G!=null){const J=V+_*.5;t.fillText(i.textForRowFooter(G),H,J)}}t.translate(-c,-a)}getTextRenderMetrics(t,n,s,i){const o=super.getTextRenderMetrics(t,n,s,i),{mouseX:r,mouseY:l,metrics:a}=n;if(r==null||l==null)return o;const{column:c,row:d}=U.getGridPointFromXY(r,l,a);if(s===c&&i===d){const{left:h}=this.getCellOverflowButtonPosition(n);this.shouldRenderOverflowButton(n)&&h!=null&&(o.width=h-a.gridX-o.x)}return o}shouldRenderOverflowButton(t){var C,b;const{context:n,mouseX:s,mouseY:i,metrics:o,model:r,theme:l}=t;if(s==null||i==null)return!1;const{row:a,column:c,modelRow:d,modelColumn:h}=U.getCellInfoFromXY(s,i,o);if(a==null||c==null||d==null||h==null||!x.isStringType(r.columns[h].type))return!1;const m=(C=r.textForCell(h,d))!=null?C:"",{width:p}=super.getTextRenderMetrics(n,t,c,a),g=(b=o.fontWidths.get(l.font))!=null?b:Zs.DEFAULT_FONT_WIDTH;n.save(),n.font=l.font;const f=this.getCachedTruncatedString(n,m,p,g,r.truncationCharForCell(h,d));return n.restore(),m!==""&&f!==m}getCellOverflowButtonPosition({mouseX:t,mouseY:n,metrics:s,theme:i}){const o={left:null,top:null,width:null,height:null};if(t==null||n==null||!s)return o;const{rowHeight:r,columnWidth:l,left:a,top:c}=U.getCellInfoFromXY(t,n,s);O(a),O(l),O(c);const{width:d,verticalBarWidth:h}=s,{cellHorizontalPadding:m}=i,p=Mo+2*m,g=r,C=Math.min(s.gridX+a+l,d-h)-p,b=s.gridY+c;return{left:C,top:b,width:p,height:g}}drawCellOverflowButton(t){const{context:n,mouseX:s,mouseY:i,theme:o}=t;if(s==null||i==null||!this.shouldRenderOverflowButton(t))return;const{left:r,top:l,width:a,height:c}=this.getCellOverflowButtonPosition(t),{cellHorizontalPadding:d,overflowButtonColor:h,overflowButtonHoverColor:m}=o;n.save(),m!=null&&r!=null&&a!=null&&l!=null&&c!=null&&s>=r&&s<=r+a&&i>=l&&i<=l+c?n.fillStyle=m:h!=null&&(n.fillStyle=h);const p=this.getIcon(zt.CELL_OVERFLOW);r!=null&&l!=null&&n.translate(r+d,l+2),n.fill(p),n.restore()}}const Nm="12px Fira Sans, sans-serif",Fm="#f0f0ee",xm="#1a171a",ne={"grid-bg":"#211f22",font:Nm,white:Fm,black:xm,"header-bg":"#2d2a2e","header-color":"#f0f0ee","header-height":"30px","header-separator-color":"#211f22","header-separator-hover-color":"#929192","header-hidden-separator-hover-color":"#4878ea","header-sort-bar-color":"#aa9af4","header-reverse-bar-color":"#548d29","header-bar-casing-color":"#211f22","header-font":"600 12px Fira Sans, sans-serif","row-height":"19px","row-background-colors":"#373438 #2d2a2e","selection-color":"rgba(118, 217, 228, 0.09)","selection-outline-color":"#76d9e4","selection-outline-casing-color":"#211f22","row-hover-bg":"#4b494c","selected-row-hover-bg":"rgba(118, 217, 228, 0.25)","scroll-bar-active-selection-tick-color":"rgba(118, 217, 228, 0.5)","scroll-bar-bg":"#322f33","scroll-bar-hover-bg":"#373438","scroll-bar-casing-color":"#555356","scroll-bar-corner-color":"#322f33","scroll-bar-color":"#5b5a5c","scroll-bar-hover-color":"#929192","scroll-bar-active-color":"#c0bfbf","text-color":"#f0f0ee","positive-number-color":"#9edc6f","negative-number-color":"#f95d84","zero-number-color":"#fcd65b","date-color":"#fcd65b","pending-text-color":"#fde38d","error-text-color":"#f95d84","null-string-color":"#929192","filter-bar-active-bg":"#425175","filter-bar-active-color":"#4878ea","filter-bar-expanded-bg":"#373438","filter-bar-expanded-active-bg":"#313849","filter-bar-expanded-active-cell-bg":"#374d80","filter-bar-separator-color":"#929192","filter-bar-error-color":"#f95d84","filter-icon-color":"#4878ea","scrim-color":"#211f22","context-menu-sort-icon-color":"#aa9af4","context-menu-reverse-icon-color":"#548d29","linker-column-hover-bg":"rgba(118, 217, 228, 0.09)","tree-line-color":"#5b5a5c","tree-marker-color":"#c0bfbf","tree-marker-hover-color":"#fcfcfa","grouped-column-divider-color":"#1a171a","floating-grid-row-color":"#555356","floating-row-background-colors":"#403e41","floating-divider-inner-color":"#403e41","floating-divider-outer-color":"#211f22","overflow-button-color":"#c0bfbf","overflow-button-hover-color":"#fcfcfa"},Aa=Object.freeze({backgroundColor:ne["grid-bg"],white:ne.white,black:ne.black,font:ne.font,headerBackgroundColor:ne["header-bg"],headerColor:ne["header-color"],headerSeparatorColor:ne["header-separator-color"],headerSeparatorHoverColor:ne["header-separator-hover-color"],headerHiddenSeparatorHoverColor:ne["header-hidden-separator-hover-color"],headerSortBarColor:ne["header-sort-bar-color"],headerReverseBarColor:ne["header-reverse-bar-color"],headerBarCasingColor:ne["header-bar-casing-color"],headerFont:ne["header-font"],rowBackgroundColors:ne["row-background-colors"],rowHoverBackgroundColor:ne["row-hover-bg"],selectionColor:ne["selection-color"],selectionOutlineColor:ne["selection-outline-color"],selectionOutlineCasingColor:ne["selection-outline-casing-color"],selectedRowHoverBackgroundColor:ne["selected-row-hover-bg"],scrollBarBackgroundColor:ne["scroll-bar-bg"],scrollBarHoverBackgroundColor:ne["scroll-bar-hover-bg"],scrollBarCasingColor:ne["scroll-bar-casing-color"],scrollBarCornerColor:ne["scroll-bar-corner-color"],scrollBarColor:ne["scroll-bar-color"],scrollBarHoverColor:ne["scroll-bar-hover-color"],scrollBarActiveColor:ne["scroll-bar-active-color"],scrollBarSelectionTickColor:ne["selected-row-hover-bg"],scrollBarActiveSelectionTickColor:ne["scroll-bar-active-selection-tick-color"],textColor:ne["text-color"],positiveNumberColor:ne["positive-number-color"],negativeNumberColor:ne["negative-number-color"],zeroNumberColor:ne["zero-number-color"],dateColor:ne["date-color"],pendingTextColor:ne["pending-text-color"],errorTextColor:ne["error-text-color"],nullStringColor:ne["null-string-color"],filterBarActiveBackgroundColor:ne["filter-bar-active-bg"],filterBarExpandedBackgroundColor:ne["filter-bar-expanded-bg"],filterBarExpandedActiveBackgroundColor:ne["filter-bar-expanded-active-bg"],filterBarExpandedActiveCellBackgroundColor:ne["filter-bar-expanded-active-cell-bg"],filterBarSeparatorColor:ne["filter-bar-separator-color"],filterBarActiveColor:ne["filter-bar-active-color"],filterBarErrorColor:ne["filter-bar-error-color"],filterIconColor:ne["filter-icon-color"],scrimColor:ne["scrim-color"],contextMenuSortIconColor:ne["context-menu-sort-icon-color"],contextMenuReverseIconColor:ne["context-menu-reverse-icon-color"],allowRowResize:!1,autoSelectRow:!0,gridColumnColor:null,gridRowColor:null,groupedColumnDividerColor:ne["grouped-column-divider-color"],columnHoverBackgroundColor:null,headerHorizontalPadding:12,scrollBarSize:13,scrollBarHoverSize:16,minScrollHandleSize:24,rowHeight:parseInt(ne["row-height"],10)||19,columnWidth:100,rowHeaderWidth:0,rowFooterWidth:60,columnHeaderHeight:parseInt(ne["header-height"],10)||30,filterBarHeight:30,filterBarCollapsedHeight:5,sortHeaderBarHeight:2,reverseHeaderBarHeight:4,filterBarHorizontalPadding:4,scrimBlurSize:25,minScrimTransitionTime:150,maxScrimTransitionTime:350,scrollSnapToRow:!0,linkerColumnHoverBackgroundColor:ne["linker-column-hover-bg"],treeLineColor:ne["tree-line-color"],treeMarkerColor:ne["tree-marker-color"],treeMarkerHoverColor:ne["tree-marker-hover-color"],floatingGridColumnColor:null,floatingGridRowColor:ne["floating-grid-row-color"],floatingRowBackgroundColors:ne["floating-row-background-colors"],floatingDividerInnerColor:ne["floating-divider-inner-color"],floatingDividerOuterColor:ne["floating-divider-outer-color"],overflowButtonColor:ne["overflow-button-color"],overflowButtonHoverColor:ne["overflow-button-hover-color"]});const Fi=ee.module("ColumnStatistics"),Om={SIZE:"Number of Rows"},zo=class extends y.exports.Component{constructor(e){super(e),this.handleError=this.handleError.bind(this),this.handleGenerateStatistics=this.handleGenerateStatistics.bind(this),this.handleStatistics=this.handleStatistics.bind(this),this.handleCopyHeader=this.handleCopyHeader.bind(this),this.cancelablePromise=null,this.state={error:null,loading:!1,statistics:null,numRows:0,copied:!1}}static getStatsLabel(e){var t;return(t=Om[e])!=null?t:e.split(" ").map(n=>n[0].toUpperCase()+n.substr(1).toLowerCase()).join(" ")}componentDidMount(){this.maybeGenerateStatistics()}componentWillUnmount(){this.cancelablePromise&&this.cancelablePromise.cancel()}handleCopyHeader(){this.setState({copied:!0})}maybeGenerateStatistics(){const{model:e}=this.props,t=e.rowCount;this.setState({numRows:t}),e.isColumnStatisticsAvailable?t<zo.AUTO_GENERATE_LIMIT&&this.handleGenerateStatistics():this.setState({loading:!1})}handleGenerateStatistics(){this.setState({loading:!0});const{column:e,model:t}=this.props;this.cancelablePromise=He.makeCancelable(t.columnStatistics(e)),this.cancelablePromise.then(this.handleStatistics).catch(this.handleError)}handleStatistics(e){Fi.debug("Received statistics",e);const{model:t,onStatistics:n}=this.props,s=[];e.statisticsMap.forEach((i,o)=>{s.push({operation:zo.getStatsLabel(o),value:i,type:e.getType(o)})}),e.uniqueValues.forEach((i,o)=>{s.push({operation:o,className:"column-statistics-unique-value",value:i,type:"long"})}),this.setState({loading:!1,statistics:s,numRows:t.rowCount}),n()}handleError(e){if(e!=null&&He.isCanceled(e)){Fi.debug("Called handleError on a cancelled promise result");return}Fi.error("Error generating statistics",e),this.setState({error:e,loading:!1,statistics:null})}render(){const{column:e,model:t}=this.props,{error:n,loading:s,statistics:i,numRows:o,copied:r}=this.state,l=!s&&n==null&&i==null&&t.isColumnStatisticsAvailable,a=[],c=e.type.substring(e.type.lastIndexOf(".")+1),d=e.description===null?null:e.description;if(i!=null)for(let g=0;g<i.length;g+=1){const{operation:f,className:C,value:b,type:w}=i[g],S=w?t.displayString(b,w):t.displayString(b,e.type,e.name),I=T(j.Fragment,{children:[u("div",{className:$("column-statistic-operation",C),children:f}),u("div",{className:"column-statistic-value",children:S})]},f);a.push(I)}const h=ze(t)&&t.hasExpandableRows?"Expanded Rows":"Number of Rows",m=t.displayString(o,"long"),p=t.getColumnIndexByName(e.name);return T("div",{className:"column-statistics",children:[T("div",{className:"column-statistics-title",children:[e.name,T("span",{className:"column-statistics-type",children:["\xA0(",c,")"]}),u(Y,{kind:"ghost",className:"column-statistics-copy",icon:r?$l:Vl,onClick:()=>{Se.copyToClipboard(e.name).then(this.handleCopyHeader).catch(g=>Fi.error("Unable to column name",g))},tooltip:r?"Copied text":"Copy column name"})]}),d!=null&&u("div",{className:"column-statistics-description",children:d}),p!=null&&!t.isColumnMovable(p)&&T("div",{className:"column-statistics-status",children:[u(K,{icon:t.isColumnFrozen(p)?Ad:fd,className:"mr-1"}),t.isColumnFrozen(p)?"Frozen":"Not movable"]}),T("div",{className:"column-statistics-grid",children:[i==null&&T(Ne,{children:[u("div",{className:"column-statistic-operation",children:h}),u("div",{className:"column-statistic-value",children:m})]}),a]}),l&&u(Y,{kind:"ghost",className:"px-0",onClick:this.handleGenerateStatistics,children:"Generate Stats"}),n!=null&&u("div",{className:"error-message",children:`${n}`}),i&&!s&&u(Y,{kind:"ghost",className:"px-0",onClick:this.handleGenerateStatistics,icon:u(K,{icon:Hd,className:"mr-1"}),children:"Refresh"}),s&&T("div",{className:"column-statistics-loading",children:[u(Vt,{className:"mr-2"}),"Calculating Stats..."]})]})}};let ka=zo;ka.AUTO_GENERATE_LIMIT=1e5;class xi extends y.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,i){const o=i?s.filter(r=>!n.includes(r.name)).map(r=>r.name):n;if(t&&o.length>0){const r=E.FilterValue.ofString(t);return o.length===s.length?E.FilterCondition.search(r):E.FilterCondition.search(r,s.filter(a=>o.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:i}=this.props;n(t.target.value,s,i)}sendColumnChange(t,n){const{onChange:s,value:i}=this.props;s(i,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(i=>i!==t),s);else{const i=n.slice();i.push(t),this.sendColumnChange(i,s)}}selectAll(){this.setInvertSelection(!0)}clear(){this.setInvertSelection(!1)}selectNumbers(){const{columns:t}=this.props;this.sendColumnChange(t.filter(n=>x.isNumberType(n.type)).map(n=>n.name),!1)}render(){const{value:t,selectedColumns:n,invertSelection:s,columns:i}=this.props,{isConfigureColumnsShown:o}=this.state,r=n.length===0&&s===!0||n.length===i.length&&s===!1,l=n.length===0&&s===!1||n.length===i.length&&s===!0;let a;return r?a=T(Ne,{children:[u(K,{icon:zr,mask:Eo,transform:"shrink-2 down-5 right-7"}),u(K,{icon:Dd,className:"text-primary",transform:"shrink-4 down-5 right-7"})]}):l?a=T(Ne,{children:[u(K,{icon:Qo,mask:Eo,transform:"shrink-1 down-5 right-7"}),u(K,{icon:$r,className:"text-danger",transform:"shrink-4 down-5 right-7"})]}):a=T(Ne,{children:[u(K,{icon:zr,mask:Eo,transform:"shrink-2 down-5 right-7"}),u(K,{icon:_d,className:"text-primary",transform:"shrink-4 down-5 right-7"})]}),T("div",{className:"cross-column-container",children:[u(Bn,{className:"cross-column-search",placeholder:"Search Data...",value:t,onChange:this.handleSearchValueChange,ref:this.searchField}),T("button",{type:"button",className:"btn btn-link btn-link-icon px-2",onClick:()=>{o?this.setState({isConfigureColumnsShown:!1}):this.setState({isConfigureColumnsShown:!0})},children:[u("div",{className:"fa-layers",children:a}),u(Le,{children:"Configure Columns"}),u(fn,{isShown:o,className:"cross-column-popper",onExited:()=>{this.setState({isConfigureColumnsShown:!1})},closeOnBlur:!0,interactive:!0,children:T("div",{className:"cross-column-popup",children:["Searched Columns",u("div",{className:"cross-column-scroll",children:i.map(c=>T(j.Fragment,{children:[u(It,{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))}),T("div",{className:"cross-column-button-bar",children:[u("button",{type:"button",className:"btn btn-link",onClick:this.selectAll,children:"Select All"}),u("button",{type:"button",className:"btn btn-link",onClick:this.clear,children:"Clear"}),u("button",{type:"button",className:"btn btn-link",onClick:this.selectNumbers,children:"Numbers Only"})]}),l&&T("p",{className:"text-danger",children:[u(K,{icon:$r})," Select at least one column to search."]})]})})]})]})}}const Tn=ee.module("PartitionSelectorSearch"),Am=150,La=class extends y.exports.Component{constructor(e){super(e),this.debounceUpdateFilter=Tt(()=>{this.updateFilter()},Am),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 Is||Tn.error(e)}componentDidMount(){this.startListening()}componentDidUpdate(e,t){const{isLoading:n,itemCount:s}=this.state,{onListResized:i}=this.props;(s!==t.itemCount||n!==t.isLoading)&&i()}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:i}=this.state;s=i.trim()}if(s.length>0){const{onSelect:i}=this.props;i(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(){Tn.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){Tn.debug2("handleSelect",e);const{onSelect:t}=this.props,{offset:n,items:s}=this.state,i=e-n;if(i<0||s.length<=i){Tn.error("No data for item",e);return}const{value:o}=s[i];t(o)}handleTableUpdate(e){const t=e.detail,{offset:n}=t,s=[],{getFormattedString:i,table:o}=this.props,r=o.columns[0];for(let a=0;a<t.rows.length;a+=1){const d=t.rows[a].get(r),h=i(d,r.type,r.name);s.push({displayValue:h,value:d})}const l=o.size;Tn.debug2("handleTableUpdate",l,n,s.length),this.setState({itemCount:l,items:s,offset:n,isLoading:!1})}handleTextChange(e){Tn.debug2("handleTextChange");const{value:t}=e.target;this.setState({text:t}),this.debounceUpdateFilter()}handleViewportChange(e,t){Tn.debug2("handleViewportChange",e,t);const n=Math.max(1,t-e),s=Math.max(0,e-n),i=t+n,{table:o}=this.props;o.setViewport(s,i)}focus(){this.searchInput&&this.searchInput.focus()}startListening(){const{initialPageSize:e,table:t}=this.props;t.addEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate),t.addEventListener(E.Table.EVENT_FILTERCHANGED,this.handleFilterChange),t.setViewport(0,e)}stopListening(){const{table:e}=this.props;e.removeEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate),e.removeEventListener(E.Table.EVENT_FILTERCHANGED,this.handleFilterChange)}updateFilter(){const{initialPageSize:e,table:t}=this.props,{text:n}=this.state,s=n.trim(),i=[];if(s.length>0){const r=t.columns[0].filter().invoke("matches",E.FilterValue.ofString(`(?s)(?i).*\\Q${s}\\E.*`));i.push(r)}Tn.debug2("updateFilter",i),t.applyFilter(i),t.setViewport(0,e)}render(){const{isLoading:e,itemCount:t,items:n,offset:s,text:i}=this.state,o=Math.min(t,La.MAX_VISIBLE_ITEMS)*en.DEFAULT_ROW_HEIGHT+11;return T("div",{className:"iris-grid-partition-selector-search",children:[u("div",{className:"search-container",children:u("input",{type:"text",ref:r=>{this.searchInput=r},value:i,placeholder:"Available Partitions",onChange:this.handleTextChange,onFocus:this.handleInputFocus,onKeyDown:this.handleKeyDown,className:"form-control input-partition"})}),!e&&t>0&&u("div",{className:"iris-grid-partition-selector-search-list",onKeyDown:this.handleListKeydown,role:"presentation",style:{height:o},children:u(en,{ref:r=>{this.itemList=r},itemCount:t,items:n,offset:s,onSelect:this.handleSelect,onViewportChange:this.handleViewportChange})}),!e&&t===0&&u("div",{className:"iris-grid-partition-selector-search-empty",children:"No results"}),e&&T("div",{className:"iris-grid-partition-selector-loading",children:[u(Vt,{}),"\xA0Loading..."]})]})}};let lo=La;lo.MAX_VISIBLE_ITEMS=12;lo.defaultProps={initialPageSize:100,onSelect:()=>{},onListResized:()=>{}};lo.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 ws=ee.module("IrisGridPartitionSelector"),km=250;class Pa extends y.exports.Component{constructor(t){super(t),this.debounceUpdate=Tt(()=>{this.sendUpdate()},km),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(){ws.debug2("handleAppendClick");const{onAppend:t}=this.props,{partition:n}=this.state;t(n)}handleCloseClick(){ws.debug2("handleCloseClick"),this.sendDone()}handleIgnoreClick(){ws.debug2("handleIgnoreClick"),this.sendFetchAll()}handlePartitionChange(t){ws.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(){ws.debug2("sendUpdate");const{onChange:t}=this.props,{partition:n}=this.state;t(n)}sendFetchAll(){ws.debug2("sendFetchAll"),this.debounceUpdate.cancel();const{onFetchAll:t}=this.props;t()}render(){const{columnName:t,getFormattedString:n,onDone:s,table:i}=this.props,{partition:o}=this.state,r=u(lo,{getFormattedString:n,table:i,onSelect:this.handlePartitionSelect,onListResized:this.handlePartitionListResized,ref:l=>{this.selectorSearch=l}},"search");return T("div",{className:"iris-grid-partition-selector",children:[u("div",{className:"status-message",children:T("span",{children:['Filtering "',t,'" partition to']})}),T("div",{className:"input-group",children:[u("input",{type:"text",value:o,onChange:this.handlePartitionChange,className:"form-control input-partition"}),u("div",{className:"input-group-append",children:T("button",{type:"button",className:"btn btn-outline-primary",children:[u(K,{icon:On}),u(Le,{children:"Partitions"}),u(Pn,{ref:l=>{this.searchMenu=l},actions:[{menuElement:r}],onMenuOpened:this.handleSearchOpened,onMenuClosed:this.handleSearchClosed})]})})]}),u("div",{className:"iris-grid-partition-selector-spacer"}),u("button",{type:"button",className:"btn btn-outline-primary btn-ignore",onClick:this.handleIgnoreClick,children:"Ignore & Fetch All"}),u("button",{type:"button",className:"btn btn-outline-primary btn-append",onClick:this.handleAppendClick,children:"Append Command"}),u("button",{type:"button",className:"btn btn-link btn-link-icon btn-close",onClick:s,children:u(K,{icon:ti})})]})}}Pa.defaultProps={onAppend:()=>{},onChange:()=>{},onFetchAll:()=>{},onDone:()=>{},partition:""};const Lm=ee.module("SelectDistinctBuilder");class Ha extends y.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:i}=this.props;if(n.inputs!==s){const o=s.filter(r=>r!=="");dt(n.inputs.filter(r=>r!==""),o)||i(o)}}handleAddColumnClick(){this.setState(({inputs:t})=>({inputs:[...t,""]}))}handleDeleteColumn(t){this.setState(({inputs:n})=>({inputs:n.length===1&&t===0?[""]:n.filter((s,i)=>t!==i)}))}handleDropdownChanged(t,n){Lm.debug("handleDropdownChanged",t,n);const{value:s}=n.target;this.setState(({inputs:i})=>{const o=[...i];return o[t]=s,{inputs:o}})}renderInputs(){const{columns:t,inputs:n}=this.state;return n.map((s,i)=>{const o=t.filter(({name:r})=>r===s||!n.includes(r)).map(({name:r})=>u("option",{value:r,children:r},r));return T("div",{className:"form-inline px-3 pb-3",children:[T("select",{className:"form-control custom-select col",value:s,onChange:r=>this.handleDropdownChanged(i,r),children:[u("option",{value:"",children:"Select a column"}),o]}),(n.length>1||s!=="")&&u(Y,{kind:"ghost",className:"ml-1 px-2",onClick:()=>{this.handleDeleteColumn(i)},icon:u(K,{icon:Vn,transform:"grow-3"}),tooltip:"Delete column"})]},i)})}render(){const{columns:t,inputs:n}=this.state,s=n.length>=t.length;return T("div",{role:"presentation",className:"select-distinct-builder-container h-100",children:[u("div",{className:"select-distinct-title",children:"Display Unique Values From"}),this.renderInputs(),u("hr",{}),u("div",{className:"pt-1 px-3",children:u(Y,{kind:"ghost",className:"btn-add-column",onClick:this.handleAddColumnClick,disabled:s,icon:xs,children:"Add Additional Column"})}),u("div",{className:"select-distinct-builder-footer",children:T("div",{className:"select-distinct-builder-hint",children:["Modifies a table to show unique value from a column, same as"," ",u("span",{className:"inline-code-snippet",children:'selectDistinct("Column")'}),". Filters will be reset and the resulting table will contain only the selected columns above."]})})]})}}Ha.defaultProps={selectDistinctColumns:[],onChange:()=>{}};const Sr=({items:e,onChange:t=()=>{}})=>u(ma,{items:Array.from(e.entries()).map(([n,s])=>({title:Sr.getAdvancedSettingsTitleForKey(n),isOn:s,onChange:i=>t(n,i)}))});Sr.getAdvancedSettingsTitleForKey=e=>{switch(e){case as.FILTER_CONTROL_CHANGE_CLEARS_ALL_FILTERS:return"Control filters clear existing table filters";case as.LINK_CHANGE_CLEARS_ALL_FILTERS:return"Inbound links clear existing table filters"}};const pl=ee.module("ConditionalFormattingMenu"),Do=()=>{};function Pm(e){const{column:{type:t}}=e;if(x.isNumberType(t))return e.condition===De.IS_NULL||e.condition===De.IS_NOT_NULL?"":`${e.value}`;if(x.isCharType(t))return e.condition===ot.IS_NULL||e.condition===ot.IS_NOT_NULL?"":`${e.value}`;if(x.isStringType(t))return e.condition===bt.IS_NULL||e.condition===bt.IS_NOT_NULL?"":`"${e.value}"`;if(x.isDateType(t))return e.condition===ot.IS_NULL||e.condition===ot.IS_NOT_NULL?"":`${e.value}`;if(x.isBooleanType(t))return"";throw new Error(`Invalid column type ${t} in getRuleValue`)}function Hm(e){return x.isNumberType(e.column.type)&&e.condition===De.IS_BETWEEN?`${e.start} < ${e.column.name} < ${e.end}`:`${e.column.name} ${rm(e.column.type,e.condition)}
12
+ `:","}}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,i=Math.min(s+this.chunkRows-1,n.endRow),o=this.snapshotCounter;this.cancelableSnapshots.push(He.makeCancelable(this.tableSubscription.snapshot(E.RangeSet.ofRange(s,i),this.columns).then(r=>(xu(r),this.handleSnapshotResolved(r,o,s,i),o)).catch(r=>{ln.error(r)}),r=>{ln.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;this.useBlobFallback||(t!=null&&(this.makeIframe(`${t}`),this.writeCsvTable()),n!=null&&(this.useBlobFallback||(this.streamTimeout!=null&&clearTimeout(this.streamTimeout),this.streamTimeout=setTimeout(this.handleDownloadTimeout,Fn.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},Fn.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 Ls=Fn;Ls.DOWNLOAD_CELL_CHUNK=6e3;Ls.SNAPSHOT_BUFFER_SIZE=5;Ls.STREAM_TIMEOUT=8e3;Ls.SNAPSHOT_HANDLER_TIMEOUT=5;Ls.defaultProps={getDownloadWorker:()=>Promise.reject(new Error("Download worker not provided")),isDownloading:!1,onDownloadCompleted:()=>{},onDownloadCanceled:()=>{},onDownloadProgressUpdate:()=>{}};const Ou=ee.module("VisibilityOrderingBuilder"),Au=150,Oe=class extends y.exports.Component{constructor(e){super(e),this.debouncedSearchColumns=Tt(this.searchColumns,Au),this.getFirstMovableIndex=me((t,n)=>{for(let s=0;s<n.length;s+=1)if(t.isColumnMovable(s))return s;return null}),this.getLastMovableIndex=me((t,n)=>{for(let s=n.length-1;s>=0;s-=1)if(t.isColumnMovable(s))return s;return null}),this.renderImmovableItem=me(t=>u("div",{className:"visibility-ordering-list-item immovable",children:u("div",{className:"column-item",children:u("span",{className:"column-name",children:t})})},t)),this.renderVisibilityOrderingItem=me((t,n,s,i,o,r,l,a)=>u(Xi,{draggableId:`${n}`,index:s,disableInteractiveElementBlocking:!0,children:c=>T("div",{className:"visibility-ordering-list-item",ref:c.innerRef,...c.draggableProps,children:[u(Y,{kind:"ghost",className:"btn-link-icon visibility",onMouseDown:d=>{this.handleVisibilityDraggingStart(n,i?Oe.VISIBILITY_OPTIONS.SHOW:Oe.VISIBILITY_OPTIONS.HIDE,d)},onMouseEnter:d=>{this.handleMouseEnter(n,d)},onMouseUp:d=>{this.handleVisibilityDraggingEnd(d)},onClick:d=>{this.handleItemClick(n,d,!1)},onKeyDown:d=>{(d.key==="Enter"||d.key===" ")&&(this.handleVisibilityKeyDown(n,i?Oe.VISIBILITY_OPTIONS.SHOW:Oe.VISIBILITY_OPTIONS.HIDE),d.stopPropagation(),d.preventDefault())},tooltip:i?"Show":"Hide",children:u(K,{icon:i?Br:_o})}),T("div",{role:"menuitem",tabIndex:0,className:$("ordering column-item",{isSelected:o},{isDragging:r},{isDragged:l},{"two-dragged":a===2},{"multiple-dragged":a!=null&&a>2}),onClick:d=>{this.handleItemClick(n,d)},...c.dragHandleProps,children:[u("span",{className:"column-name",children:t}),T("div",{children:[a!=null&&a!==0&&u("span",{className:"number-badge",children:a}),u(Le,{children:"Drag to re-order"}),u(K,{icon:Qi})]})]})]})},t)),this.handleSearchInputChange=this.handleSearchInputChange.bind(this),this.searchColumns=this.searchColumns.bind(this),this.handleOrderDraggingStart=this.handleOrderDraggingStart.bind(this),this.handleOrderDraggingEnd=this.handleOrderDraggingEnd.bind(this),this.state={selectedColumns:[],lastSelectedColumns:[],isDraggingVisibility:!1,visibilityDraggingOption:void 0,visibilityDraggingStartColumn:null,isDraggingOrder:!1,orderDraggingColumn:null,searchFilter:""},this.list=null}componentWillUnmount(){this.debouncedSearchColumns.cancel()}resetVisibilityOrdering(){const{model:e,onColumnVisibilityChanged:t,onMovedColumnsChanged:n}=this.props,{columns:s}=e;t(s.map(i=>{const o=e.getColumnIndexByName(i.name);return O(o),o}),Oe.VISIBILITY_OPTIONS.SHOW),this.setState({selectedColumns:[],lastSelectedColumns:[],searchFilter:""}),n([])}resetSelection(){const{isDraggingOrder:e}=this.state;e||this.setState({selectedColumns:[],lastSelectedColumns:[]})}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 r;const{model:t,movedColumns:n}=this.props,{columns:s}=t,i=[];let o=s.length;if(s.forEach((l,a)=>{const c=l.name.toLowerCase();t.isColumnMovable(a)&&c.includes(e.toLowerCase())&&(i.push(a),o=Math.min(o,U.getVisibleIndex(a,n)))}),this.addColumnToSelected(i,!1),i.length>0){const l=(r=this.list)==null?void 0:r.querySelectorAll(".column-item")[o];l==null||l.scrollIntoView({block:"center"})}}handleVisibilityKeyDown(e,t){const{onColumnVisibilityChanged:n}=this.props;n([e],t)}handleVisibilityDraggingStart(e,t,n){const{onColumnVisibilityChanged:s,movedColumns:i}=this.props,o=U.isModifierKeyDown(n),r=n.shiftKey;if(o||r)return;s([e],t);const l=U.getVisibleIndex(e,i);this.setState({isDraggingVisibility:!0,visibilityDraggingOption:t,visibilityDraggingStartColumn:l}),this.addColumnToSelected([e])}handleVisibilityDraggingEnd(e=null){e&&e.target.focus();const{isDraggingVisibility:t}=this.state;t&&this.setState({isDraggingVisibility:!1,visibilityDraggingOption:void 0,visibilityDraggingStartColumn:null})}handleOrderDraggingStart(e){var o;document.documentElement.classList.add("drag-pointer-events-none");const{selectedColumns:t}=this.state,{draggableId:n,source:{index:s}}=e,i=parseInt(n,10);if(((o=this.list)==null?void 0:o.querySelectorAll(".column-item")[s]).focus(),!t.includes(i)){this.setState({isDraggingOrder:!0,orderDraggingColumn:i,selectedColumns:[i]});return}this.setState({isDraggingOrder:!0,orderDraggingColumn:i})}handleOrderDraggingEnd(e){document.documentElement.classList.remove("drag-pointer-events-none");const{movedColumns:t,onMovedColumnsChanged:n}=this.props,{selectedColumns:s,orderDraggingColumn:i}=this.state;if(this.setState({isDraggingOrder:!1,orderDraggingColumn:null}),!e.destination)return;const{index:o}=e.destination,r=[...s].sort((m,p)=>U.getVisibleIndex(m,t)-U.getVisibleIndex(p,t));let l=[...t];O(i);const a=U.getVisibleIndex(i,l),c=[],d=[];l=U.moveItem(a,o,l),r.forEach(m=>{const p=U.getVisibleIndex(m,l);m!==i&&(p<o?c.push(m):d.push(m))}),c.forEach(m=>{const p=U.getVisibleIndex(m,l);l=U.moveItem(p,o,l)});const h=c.length>0||a>o?o+1:o;d.reverse().forEach(m=>{const p=U.getVisibleIndex(m,l);l=U.moveItem(p,h,l)}),n(l),Ou.debug("move column order by drag & drop",l)}handleMouseEnter(e,t){const{onColumnVisibilityChanged:n,movedColumns:s,userColumnWidths:i}=this.props,{isDraggingVisibility:o,visibilityDraggingOption:r,visibilityDraggingStartColumn:l}=this.state,a=U.getVisibleIndex(e,s),c=U.isModifierKeyDown(t),d=t.shiftKey;if(!o||c||d)return;t.target.focus();const h=[e];O(l);const m=a>l;for(let p=l;m?p<a:p>a;m?p+=1:p-=1){const g=U.getModelIndex(p,s),f=U.checkColumnHidden(g,i);(f&&r===Oe.VISIBILITY_OPTIONS.SHOW||!f&&r===Oe.VISIBILITY_OPTIONS.HIDE)&&h.push(g)}this.addColumnToSelected(h,!0),n(h,r)}handleMoveColumns(e){const{movedColumns:t,onMovedColumnsChanged:n,model:s}=this.props,{columns:i}=s,{selectedColumns:o}=this.state;if(o.length===0)return;const r=this.getFirstMovableIndex(s,i),l=this.getLastMovableIndex(s,i);if(r==null||l==null)return;const a=[...o].sort((h,m)=>e===Oe.MOVE_OPTIONS.TOP||e===Oe.MOVE_OPTIONS.UP?U.getVisibleIndex(h,t)-U.getVisibleIndex(m,t):U.getVisibleIndex(m,t)-U.getVisibleIndex(h,t));let c=[],d=()=>{};switch(e){case Oe.MOVE_OPTIONS.TOP:a.forEach((h,m)=>{const p=U.getVisibleIndex(h,t);c=U.moveItem(p,r+m,c)}),d=()=>{O(this.list),this.list.scrollTop=0};break;case Oe.MOVE_OPTIONS.BOTTOM:a.forEach((h,m)=>{const p=U.getVisibleIndex(h,t);c=U.moveItem(p,l-m,c)}),d=()=>{O(this.list),this.list.scrollTop=this.list.scrollHeight};break;case Oe.MOVE_OPTIONS.UP:U.getVisibleIndex(a[0],t)!==r&&a.forEach(h=>{const m=U.getVisibleIndex(h,t);c=U.moveItem(m,m-1,c)});break;case Oe.MOVE_OPTIONS.DOWN:U.getVisibleIndex(a[0],t)!==l&&a.forEach(h=>{const m=U.getVisibleIndex(h,t);c=U.moveItem(m,m+1,c)});break}c.length>0&&n(t.concat(c),d)}handleSortColumns(e){const{model:t,onMovedColumnsChanged:n}=this.props,{columns:s}=t,i=[],o=[];for(let d=0;d<s.length;d+=1)t.isColumnMovable(d)?i.push(d):o.push(d);const r=i.sort((d,h)=>{const m=e===Oe.SORTING_OPTIONS.ASC,p=s[d].name.toUpperCase(),g=s[h].name.toUpperCase();return nr.sort(p,g,m)}),l=[];for(let d=0;d<o.length;d+=1){const h=o[d];l[h]=h}let a=0;for(let d=0;d<r.length;d+=1){for(;l[a]!=null;)a+=1;l[a]=r[d]}let c=[];l.forEach((d,h)=>{const m=U.getVisibleIndex(d,c);c=U.moveItem(m,h,c)}),n(c)}handleItemClick(e,t,n=!0){t.stopPropagation(),t.currentTarget.focus();const{selectedColumns:s,lastSelectedColumns:i}=this.state,o=U.isModifierKeyDown(t),r=t.shiftKey,l=s.includes(e),a=[e];if(l&&o){this.removeColumnFromSelected(e);return}if(l&&s.length===1&&n){this.removeColumnFromSelected(e);return}if(r){const{movedColumns:c}=this.props,d=i[i.length-1],h=U.getVisibleIndex(d,c),m=U.getVisibleIndex(e,c),p=m>h,g=[];for(let f=h;p?f<m:f>m;p?f+=1:f-=1)g.push(U.getModelIndex(f,c));g.forEach(f=>{s.includes(f)||a.push(f)})}this.addColumnToSelected(a,o||r)}addColumnToSelected(e,t=!1){const{selectedColumns:n,lastSelectedColumns:s}=this.state,i=t?n.concat(e):e,o=t?s.concat(e):e;this.setState({selectedColumns:i,lastSelectedColumns:o})}removeColumnFromSelected(e){const{selectedColumns:t,lastSelectedColumns:n}=this.state,s=[...t];s.splice(s.findIndex(r=>r===e),1);const i=n[n.length-1],o=[...n];i===e&&o.pop(),this.setState({selectedColumns:s,lastSelectedColumns:o})}makeVisibilityOrderingList(){const{model:e,userColumnWidths:t,movedColumns:n}=this.props,{columns:s}=e,{selectedColumns:i,isDraggingOrder:o,orderDraggingColumn:r}=this.state,l=[];let a=!1;for(let c=0;c<s.length;c+=1){const d=U.getModelIndex(c,n),h=s[d],m=e.isColumnMovable(d);if(c>0&&m!==a&&l.push(u("hr",{})),m){const p=t.get(d)===0,g=i.includes(d),f=r===d,C=o&&f&&i.length>1?i.length:null;l.push(this.renderVisibilityOrderingItem(h.name,d,c,p,g,o,f,C))}else l.push(this.renderImmovableItem(h.name));a=m}return l}render(){const{model:e,userColumnWidths:t,onColumnVisibilityChanged:n}=this.props,{selectedColumns:s,searchFilter:i}=this.state,{columns:o}=e,r=s.length===0,l=r?o.map((h,m)=>m).filter(h=>e.isColumnMovable(h)):[...s],a=U.checkAllColumnsHidden(l,t),c=a?"Show Selected":"Hide Selected",d=this.makeVisibilityOrderingList();return T("div",{role:"menu",className:"visibility-ordering-builder",tabIndex:0,onMouseUp:()=>{this.handleVisibilityDraggingEnd()},onMouseLeave:()=>{this.handleVisibilityDraggingEnd()},children:[T("div",{className:"top-menu",children:[u(Y,{kind:"ghost",onClick:()=>{n(l,a?Oe.VISIBILITY_OPTIONS.SHOW:Oe.VISIBILITY_OPTIONS.HIDE)},icon:a?Br:_o,tooltip:"Toggle column visibility",children:r?"Toggle All":c}),T("div",{children:[u(Y,{kind:"ghost",className:"text-muted",onClick:()=>{this.resetVisibilityOrdering()},tooltip:"Reset to default",children:"Reset"}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleSortColumns(Oe.SORTING_OPTIONS.ASC)},tooltip:"Sort ascending",children:u(K,{icon:Zo})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleSortColumns(Oe.SORTING_OPTIONS.DSC)},tooltip:"Sort descending",children:u(K,{icon:Jo})}),u("span",{className:"vertical-divider"}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.UP)},disabled:r,tooltip:"Move selection up",children:u(K,{icon:rd})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.DOWN)},disabled:r,tooltip:"Move selection down",children:u(K,{icon:id})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.TOP)},disabled:r,tooltip:"Move selection to top",children:u(K,{icon:Md})}),u(Y,{kind:"ghost",className:"btn-link-icon",onClick:()=>{this.handleMoveColumns(Oe.MOVE_OPTIONS.BOTTOM)},disabled:r,tooltip:"Move selection to bottom",children:u(K,{icon:Id})})]})]}),u("div",{className:"top-menu",children:u(Bn,{className:"w-100",value:i,matchCount:i?s.length:void 0,onChange:this.handleSearchInputChange})}),u(ei,{onDragStart:this.handleOrderDraggingStart,onDragEnd:this.handleOrderDraggingEnd,children:u(Js,{droppableId:"droppable-visibility-order-list",children:(h,m)=>u("div",{role:"menu",className:$("visibility-ordering-list",{isDragging:m.draggingFromThisWith}),ref:h.innerRef,...h.droppableProps,children:T("div",{className:"column-list",ref:p=>{this.list=p},children:[d,h.placeholder]})})})})]})}};let cs=Oe;cs.VISIBILITY_OPTIONS={SHOW:"SHOW",HIDE:"HIDE"};cs.SORTING_OPTIONS={DSC:"DSC",ASC:"ASC"};cs.MOVE_OPTIONS={TOP:"TOP",BOTTOM:"BOTTOM",UP:"UP",DOWN:"DOWN"};cs.COLUMN_CHANGE_OPTIONS={ALL:"ALL",SELECTION:"SELECTION"};cs.defaultProps={movedColumns:[],onColumnVisibilityChanged:()=>{},onMovedColumnsChanged:()=>{}};const Ni=ee.module("AdvancedFilterCreatorFilterItem");class Cr extends y.exports.PureComponent{constructor(t){super(t),this.getCachedIsValid=Ie((o,r,l,a)=>{try{return!l||x.makeAdvancedValueFilter(o,r,l,a)!=null}catch{return!1}}),this.handleDelete=this.handleDelete.bind(this),this.handleTypeChange=this.handleTypeChange.bind(this),this.handleValueChange=this.handleValueChange.bind(this),this.typeDropdown=null;const{value:n="",filterTypes:s,selectedType:i=s[0]}=t;this.state={selectedType:i,value:n}}static getLabelForFilter(t,n){try{if(x.isNumberType(t)||x.isCharType(t))return Wh(n);if(x.isTextType(t))return Bh(n);if(x.isDateType(t))return zh(n);if(x.isBooleanType(t))return $h(n);throw new Error(`Unrecognized column type: ${t}`)}catch(s){return Ni.warn(s),""}}componentDidMount(){var t;(t=this.typeDropdown)==null||t.focus()}componentDidUpdate(t){const{value:n,selectedType:s}=this.props;s!==void 0&&t.selectedType!==s&&this.setState({selectedType:s}),n!==void 0&&t.value!==n&&this.setState({value:n})}handleTypeChange(t){const n=t.target.value;Ni.debug2("typeChange",n),this.setState({selectedType:n});const{onChange:s}=this.props,{value:i}=this.state;i!=null&&i.length>0&&s(n,i)}handleValueChange(t){Ni.debug2("valueChange");const{value:n}=t.target;this.setState({value:n});const{onChange:s}=this.props,{selectedType:i}=this.state;i!=null&&s(i,n)}handleDelete(){Ni.debug("delete");const{onDelete:t}=this.props;t()}render(){const{column:t,filterTypes:n,formatter:s}=this.props,{selectedType:i,value:o}=this.state,r=!x.isBooleanType(t.type),l=[],a=this.getCachedIsValid(t,i,o,s.timeZone);for(let c=0;c<n.length;c+=1){const d=n[c],h=Cr.getLabelForFilter(t.type,d),m=u("option",{value:d,children:h},d);l.push(m)}return u("div",{className:"advanced-filter-creator-filter-item",children:T("div",{className:"form-row",children:[u("div",{className:"form-group col",children:u("select",{className:"form-control custom-select",value:i,onChange:this.handleTypeChange,ref:c=>{this.typeDropdown=c},children:l})}),r&&u("div",{className:"form-group col",children:u("div",{className:"input-group",children:u("input",{type:"text",className:$("form-control",{error:!a}),placeholder:"Enter value",value:o,onChange:this.handleValueChange})})}),u("div",{className:"form-group col-1 px-0",children:u(Y,{kind:"ghost",className:"w-100 h-100 p-0 m-0",onClick:this.handleDelete,icon:Vn,tooltip:"Remove Filter"})})]})})}}const dl=ee.module("AdvancedFilterCreatorSelectValueList"),Wo=class extends y.exports.PureComponent{constructor(e){super(e),this.handleSelect=this.handleSelect.bind(this),this.handleViewportChange=this.handleViewportChange.bind(this),this.handleSelectionUpdate=this.handleSelectionUpdate.bind(this),this.handleTableUpdate=this.handleTableUpdate.bind(this),this.list=null;const{selectedValues:t}=this.props;this.state={itemCount:0,items:[],offset:0,selectedValues:t,isLoading:!0}}static indexOf(e,t){for(let n=0;n<t.length;n+=1){const s=t[n];if(s===e||s!=null&&s.valueOf!=null&&e!=null&&e.valueOf!=null&&s.valueOf()===e.valueOf())return n}return-1}componentDidMount(){const{table:e}=this.props;e&&this.startListening(e)}componentDidUpdate(e){const{filters:t,invertSelection:n,selectedValues:s,table:i}=this.props;e.table!==i&&(e.table&&this.stopListening(e.table),i&&this.startListening(i),this.resetViewport()),e.invertSelection!==n&&this.setState({selectedValues:[]},this.handleSelectionUpdate),e.selectedValues!==s&&this.setState({selectedValues:s},this.handleSelectionUpdate),e.filters!==t&&(i==null||i.applyFilter(t),this.resetViewport())}componentWillUnmount(){const{table:e}=this.props;e&&this.stopListening(e)}handleSelect(e,t){const{invertSelection:n}=this.props;let{selectedValues:s}=this.state;s=[...s];const i=Wo.indexOf(t,s);i>=0?s.splice(i,1):s.push(t);let o=i<0;n&&(o=!o);const{offset:r}=this.state;let{items:l}=this.state;l=[...l];const a=e-r;a>=0&&a<l.length&&(l[a].isSelected=o),this.setState({items:l,selectedValues:s});const{onChange:c}=this.props;c(s,n)}handleViewportChange(e,t){this.updateViewport(e,t)}handleSelectionUpdate(){this.updateItemSelection()}handleTableUpdate(e){const{table:t,formatter:n}=this.props;if(!t)return;const s=e.detail,{offset:i}=s,o=[],r=t.columns[0];for(let a=0;a<s.rows.length;a+=1){const d=s.rows[a].get(r),h=n.getFormattedString(d,r.type,r.name),m=this.isValueSelected(d);o.push({displayValue:h,value:d,isSelected:m})}dl.debug2("Received table update:",i,o.length);const l=t.size;this.setState({itemCount:l,items:o,offset:i,isLoading:!1})}isValueSelected(e){const{invertSelection:t}=this.props,{selectedValues:n}=this.state,s=Wo.indexOf(e,n);return t?s<0:s>=0}startListening(e){e.addEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate)}stopListening(e){e.removeEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate)}resetViewport(){this.list&&this.list.topRow!=null&&this.list.bottomRow!=null&&this.updateViewport(this.list.topRow,this.list.bottomRow,!0)}updateItemSelection(){let{items:e}=this.state;e=[...e];for(let t=0;t<e.length;t+=1){const n=e[t],{value:s}=n;n.isSelected=this.isValueSelected(s)}this.setState({items:e})}updateViewport(e,t,n=!1){const{table:s}=this.props;if(s==null)return;n&&this.setState({isLoading:!0});const i=t-e+1,o=Math.max(0,e-i*3),r=Math.max(o,t+i*3);dl.debug2("Setting viewport",o,",",r),s.setViewport(o,r)}render(){const{offset:e,isLoading:t,items:n,itemCount:s}=this.state;return T("div",{className:"select-value-list-wrapper",children:[u(pa,{itemCount:s,items:n,offset:e,onSelect:this.handleSelect,onViewportChange:this.handleViewportChange,ref:i=>{this.list=i}}),u(rt,{in:t,timeout:250,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"loading-list",children:u(Vt,{className:"loading-spinner-large"})})})]})}};let ya=Wo;ya.defaultProps={invertSelection:!0,selectedValues:[],onChange:()=>{}};const Ra=class extends y.exports.PureComponent{constructor(e){super(e),this.handleSelectAllClick=this.handleSelectAllClick.bind(this),this.handleClearAllClick=this.handleClearAllClick.bind(this),this.handleListChange=this.handleListChange.bind(this),this.handleSearchChange=this.handleSearchChange.bind(this),this.handleUpdateFilterTimeout=this.handleUpdateFilterTimeout.bind(this);const{invertSelection:t,selectedValues:n}=e;this.state={filters:[],invertSelection:t,selectedValues:n,searchText:""}}componentDidMount(){this.initSearchTable()}componentDidUpdate(e,t){const{invertSelection:n,selectedValues:s,table:i}=this.props;e.table!==i&&this.initSearchTable(),e.invertSelection!==n&&this.setState({invertSelection:n}),e.selectedValues!==s&&this.setState({selectedValues:s});const{table:o,searchText:r}=this.state;o!==t.table&&(t.table!=null&&t.table.close(),o!=null&&this.startUpdateFilterTimer()),r!==t.searchText&&this.startUpdateFilterTimer()}componentWillUnmount(){const{table:e}=this.state;e!=null&&e.close(),this.searchTablePromise=void 0,this.stopUpdateFilterTimer()}getColumnName(){const{table:e}=this.props;return e!=null?e.columns[0].name:""}getDisplayedValuesCount(){const{invertSelection:e,selectedValues:t,table:n}=this.state;return n==null?null:e?n.totalSize-t.length:t.length}getDisplayedValueText(){const e=this.getDisplayedValuesCount(),{table:t}=this.state,{formatter:n}=this.props;if(e!=null&&t!=null){const s=n.getFormattedString(e,"long"),i=n.getFormattedString(t.totalSize,"long");let o="";return e<1e6&&(o="Displaying "),`${o}${s} of ${i}`}return null}initSearchTable(){const{table:e}=this.props;if(e==null)return;const t=e.copy();this.searchTablePromise=t,this.searchTablePromise.then(n=>{this.searchTablePromise===t?(this.setState({table:n}),this.searchTablePromise=void 0):n.close()})}handleListChange(e,t){this.setState({selectedValues:e,invertSelection:t});const{onChange:n}=this.props;n(e,t)}handleSearchChange(e){const t=e.target.value;this.setState({searchText:t})}handleSelectAllClick(){this.resetSelection(!0)}handleClearAllClick(){this.resetSelection(!1)}handleUpdateFilterTimeout(){this.updateFilterTimer=void 0,this.updateTableFilter()}resetSelection(e){const t=[];this.setState({invertSelection:e,selectedValues:t});const{onChange:n}=this.props;n(t,e)}startUpdateFilterTimer(){this.stopUpdateFilterTimer(),this.updateFilterTimer=setTimeout(this.handleUpdateFilterTimeout,Ra.searchDebounceTime)}stopUpdateFilterTimer(){this.updateFilterTimer!=null&&(clearTimeout(this.updateFilterTimer),this.updateFilterTimer=void 0)}updateTableFilter(){const{table:e,searchText:t}=this.state,{timeZone:n}=this.props,s=e==null?void 0:e.columns[0],i=[];if(s==null)return;let o;if(t.length>0){let r=null;x.isCharType(s.type)?r=x.makeQuickFilter(s,t):x.isTextType(s.type)?r=x.makeQuickFilter(s,`~${t}`,n):r=x.makeQuickFilter(s,`>=${t}`,n),r!=null?i.push(r):o="Invalid search text"}this.setState({filters:i,error:o})}render(){const{error:e,filters:t,invertSelection:n,selectedValues:s,searchText:i,table:o}=this.state,{formatter:r,showSearch:l}=this.props,a=this.getColumnName(),c=this.getDisplayedValueText(),d=a?`Find ${a}...`:"";return T("div",{className:"advanced-filter-creator-select-value",children:[T("div",{className:l?"form-group":"",children:[u("label",{htmlFor:"advanced-filter-creator-select-value-input",children:"Select Values"}),l&&u("input",{type:"text",className:$("form-control",{"is-invalid":e!=null}),id:"advanced-filter-creator-select-value-input",placeholder:d,value:i,onChange:this.handleSearchChange})]}),u(ya,{table:o,filters:t,invertSelection:n,selectedValues:s,formatter:r,onChange:this.handleListChange}),T("div",{className:"advanced-filter-creator-select-meta-row",children:[T("div",{children:[u(Y,{kind:"ghost",onClick:this.handleSelectAllClick,children:"Select All"}),u(Y,{kind:"ghost",onClick:this.handleClearAllClick,children:"Clear"})]}),u(rt,{in:c!=null,timeout:250,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"row-count-info",children:c})})]})]})}};let br=Ra;br.searchDebounceTime=250;br.defaultProps={invertSelection:!0,selectedValues:[],onChange:()=>{},showSearch:!0};const Ws=ee.module("AdvancedFilterCreator"),es=class extends y.exports.PureComponent{constructor(e){var r,l;super(e),this.getFilterTypes=Ie(a=>x.getFilterTypes(a)),this.handleAddAnd=this.handleAddAnd.bind(this),this.handleAddOr=this.handleAddOr.bind(this),this.handleChangeFilterOperator=this.handleChangeFilterOperator.bind(this),this.handleDone=this.handleDone.bind(this),this.handleFilterChange=this.handleFilterChange.bind(this),this.handleFilterDelete=this.handleFilterDelete.bind(this),this.handleSelectValueChange=this.handleSelectValueChange.bind(this),this.handleReset=this.handleReset.bind(this),this.handleSortDown=this.handleSortDown.bind(this),this.handleSortUp=this.handleSortUp.bind(this),this.handleSubmit=this.handleSubmit.bind(this),this.handleFocusTrapStart=this.handleFocusTrapStart.bind(this),this.handleFocusTrapEnd=this.handleFocusTrapEnd.bind(this),this.handleUpdateTimeout=this.handleUpdateTimeout.bind(this),this.focusTrapContainer=j.createRef();const{options:t}=e;let{filterOperators:n,invertSelection:s,selectedValues:i}=t;const o=(l=(r=t.filterItems)==null?void 0:r.map(({selectedType:a,value:c})=>({selectedType:a,value:c,key:Jt()})))!=null?l:[];o.length===0&&o.push(es.makeFilterItem()),n==null&&(n=[]),s==null&&(s=!0),i==null&&(i=[]),this.state={filterItems:o,filterOperators:n,invertSelection:s,selectedValues:i,valuesTableError:null,valuesTable:void 0}}static makeFilterItem(){return{key:Jt()}}componentDidMount(){this.initValuesTable()}componentWillUnmount(){this.debounceTimeout!=null&&(clearTimeout(this.debounceTimeout),this.sendUpdate()),this.valuesTablePromise!=null&&this.valuesTablePromise.cancel()}getFilterChangeHandler(e){return this.handleFilterChange.bind(this,e)}getFilterDeleteHandler(e){return this.handleFilterDelete.bind(this,e)}initValuesTable(){const{model:e,column:t}=this.props;if(!e.isValuesTableAvailable){Ws.debug("No values table for this model, just ignore");return}this.valuesTablePromise=x.makeCancelableTablePromise(e.valuesTable(t)),this.valuesTablePromise.then(n=>{const s=n.columns[0].sort().asc();n.applySort([s]),this.setState({valuesTable:n})}).catch(n=>{He.isCanceled(n)||(Ws.error("Unable to open values table",n),this.setState({valuesTableError:n}))})}handleFocusTrapEnd(){var e,t;((t=(e=this.focusTrapContainer)==null?void 0:e.current)==null?void 0:t.querySelector("button,select,input,textarea")).focus()}handleFocusTrapStart(){var t,n;const e=(n=(t=this.focusTrapContainer)==null?void 0:t.current)==null?void 0:n.querySelectorAll("button,select,input,textarea");e&&e.length>0&&e[e.length-1].focus()}handleAddAnd(){let{filterItems:e,filterOperators:t}=this.state;e=e.concat(es.makeFilterItem()),t=t.concat(Qt.and),this.setState({filterItems:e,filterOperators:t})}handleAddOr(){let{filterItems:e,filterOperators:t}=this.state;e=e.concat(es.makeFilterItem()),t=t.concat(Qt.or),this.setState({filterItems:e,filterOperators:t})}handleChangeFilterOperator(e,t){let{filterOperators:n}=this.state;n=[...n],Uh(t),n[e]=t,this.setState({filterOperators:n}),this.startUpdateTimer()}handleFilterChange(e,t,n){let{filterItems:s}=this.state;s=[...s];const{key:i}=s[e];s[e]={key:i,selectedType:t,value:n},this.setState({filterItems:s}),this.startUpdateTimer()}handleFilterDelete(e){let{filterItems:t,filterOperators:n}=this.state;t=[...t],n=[...n],e<t.length&&t.splice(e,1),e<n.length?n.splice(e,1):e===n.length&&n.splice(n.length-1,1),t.length===0&&t.push(es.makeFilterItem()),this.setState({filterItems:t,filterOperators:n}),this.startUpdateTimer()}handleSelectValueChange(e,t){this.setState({selectedValues:e,invertSelection:t}),this.startUpdateTimer()}handleReset(){Ws.debug("Resetting Advanced Filter"),this.setState({filterItems:[es.makeFilterItem()],filterOperators:[],selectedValues:[],invertSelection:!0}),this.startUpdateTimer()}handleSortDown(e){const t=Se.isModifierKeyDown(e);this.sortTable(x.sortDirection.descending,t)}handleSortUp(e){const t=Se.isModifierKeyDown(e);this.sortTable(x.sortDirection.ascending,t)}handleSubmit(e){Ws.debug("Submitting Advanced Filter"),this.stopUpdateTimer(),this.sendUpdate(),e.preventDefault()}handleDone(e){Ws.debug("Submitting and Closing Advanced Filter"),this.stopUpdateTimer(),this.sendUpdate();const{onDone:t}=this.props;t(),e.preventDefault()}handleUpdateTimeout(){this.debounceTimeout=void 0,this.sendUpdate()}shouldShowAddFilter(){const{filterItems:e}=this.state;if(e.length===0)return!1;const t=e[e.length-1],{selectedType:n,value:s}=t;return n!=null&&n.length>0&&s!=null&&s.length>0}sortTable(e,t=!1){const{column:n,onSortChange:s}=this.props;s(n,e,t)}startUpdateTimer(){this.stopUpdateTimer(),this.debounceTimeout=setTimeout(this.handleUpdateTimeout,es.debounceFilterUpdate)}stopUpdateTimer(){this.debounceTimeout!==void 0&&(clearTimeout(this.debounceTimeout),this.debounceTimeout=void 0)}sendUpdate(){const{filterItems:e,filterOperators:t,invertSelection:n,selectedValues:s}=this.state,{column:i,onFilterChange:o,model:r}=this.props,{formatter:l}=r,a=e.filter(({selectedType:m,value:p})=>m!=null&&p!=null&&p!==""),c=t.filter((m,p)=>m!=null&&e[p].selectedType!=null&&e[p].value!=null&&e[p].value!=="").slice(0,a.length-1),d={filterItems:a,filterOperators:c,invertSelection:n,selectedValues:s},h=x.makeAdvancedFilter(i,d,l.timeZone);o(i,h,d)}render(){const{column:e,model:t,sortDirection:n,formatter:s}=this.props,{filterItems:i,filterOperators:o,invertSelection:r,selectedValues:l,valuesTable:a,valuesTableError:c}=this.state,{isValuesTableAvailable:d}=t,h=x.isBooleanType(e.type),m=x.isDateType(e.type),p=this.getFilterTypes(e.type),g=e.type.substring(e.type.lastIndexOf(".")+1),f=[];if(!h&&p.length)for(let w=0;w<i.length;w+=1){const S=i[w],{key:I,selectedType:v,value:R}=S,M=u(Cr,{column:e,filterTypes:p,onChange:this.getFilterChangeHandler(w),onDelete:this.getFilterDeleteHandler(w),selectedType:v,value:R,formatter:s},I);if(f.push(M),w<o.length){const P=o[w]===Qt.and,W=T("div",{className:"form-row justify-content-end advanced-filter-creator-filter-operator",children:[u(Y,{kind:"ghost",className:$("filter-operator",{active:P}),onClick:()=>this.handleChangeFilterOperator(w,Qt.and),children:"AND"}),u(Y,{kind:"ghost",className:$("filter-operator",{active:!P}),onClick:()=>this.handleChangeFilterOperator(w,Qt.or),children:"OR"})]},`filterOperator${I}`);f.push(W)}}const C=this.shouldShowAddFilter(),b=T("div",{className:$("form-row justify-content-end add-filter-item",{hidden:!C}),children:[u("span",{className:"text-muted",children:u(K,{icon:xs})}),u(Y,{kind:"ghost",className:"btn-filter-item",onClick:this.handleAddAnd,disabled:!C,tooltip:"Add filter with AND",children:"AND"}),u(Y,{kind:"ghost",className:"btn-filter-item",onClick:this.handleAddOr,disabled:!C,tooltip:"Add filter with OR",children:"OR"})]},"addFilterItem");return f.push(b),T("div",{className:"advanced-filter-creator",role:"presentation",children:[u("div",{tabIndex:0,onFocus:this.handleFocusTrapStart}),T("form",{onSubmit:this.handleSubmit,ref:this.focusTrapContainer,children:[T("div",{className:"title-bar",children:[u("h6",{className:"advanced-filter-title",children:"Advanced Filters"}),T("div",{className:"advanced-filter-menu-buttons",children:[u(Y,{kind:"ghost",className:$("sort-operator",{active:n===x.sortDirection.descending}),onClick:this.handleSortDown,icon:Wr,tooltip:`Sort ${e.name} Descending`}),u(Y,{kind:"ghost",className:$("sort-operator",{active:n===x.sortDirection.ascending}),onClick:this.handleSortUp,icon:u(K,{icon:Wr,rotation:180}),tooltip:`Sort ${e.name} Ascending`})]})]}),u("hr",{}),T("div",{className:"advanced-filter-column-name",children:[e.name,"\xA0",T("span",{className:"column-type",children:["(",g,")"]})]}),f,d&&c==null&&T(Ne,{children:[!h&&u("hr",{}),u("div",{className:"form-group",children:u(br,{table:a,onChange:this.handleSelectValueChange,invertSelection:r,selectedValues:l,formatter:s,showSearch:!m,timeZone:s.timeZone})})]}),T("div",{className:"form-row justify-content-end",children:[u(Y,{kind:"secondary",className:"mr-2",onClick:this.handleReset,children:"Reset"}),u(Y,{kind:"primary",onClick:this.handleDone,children:"Done"})]})]}),u("div",{tabIndex:0,onFocus:this.handleFocusTrapEnd})]})}};let wr=es;wr.debounceFilterUpdate=250;wr.defaultProps={options:{filterItems:null,filterOperators:null,invertSelection:!0,selectedValues:[]},sortDirection:null};function ku(e,t){const n=Hu(e);return n===void 0?void 0:`${zu(e)} ? ${n} : ${t}`}function Lu(e){return dh.Column.formatRowColor(e)}function Pu(e,t){return e.formatColor(t)}const Io=ee.module("ConditionalFormattingUtils");var tn=(e=>(e.CONDITIONAL="conditional",e.ROWS="rows",e))(tn||{}),De=(e=>(e.IS_EQUAL="is-equal",e.IS_NOT_EQUAL="is-not-equal",e.IS_BETWEEN="is-between",e.GREATER_THAN="greater-than",e.GREATER_THAN_OR_EQUAL="greater-than-or-equal",e.LESS_THAN="less-than",e.LESS_THAN_OR_EQUAL="less-than-or-equal",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(De||{}),bt=(e=>(e.IS_EXACTLY="is-exactly",e.IS_NOT_EXACTLY="is-not-exactly",e.CONTAINS="contains",e.DOES_NOT_CONTAIN="does-not-contain",e.STARTS_WITH="starts-with",e.ENDS_WITH="ends-with",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(bt||{}),ot=(e=>(e.IS_EXACTLY="is-exactly",e.IS_NOT_EXACTLY="is-not-exactly",e.IS_BEFORE="is-before",e.IS_BEFORE_OR_EQUAL="is-before-or-equal",e.IS_AFTER="is-after",e.IS_AFTER_OR_EQUAL="is-after-or-equal",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(ot||{}),Ks=(e=>(e.IS_TRUE="is-true",e.IS_FALSE="is-false",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(Ks||{}),ss=(e=>(e.IS_EQUAL="is-equal",e.IS_NOT_EQUAL="is-not-equal",e.IS_NULL="is-null",e.IS_NOT_NULL="is-not-null",e))(ss||{}),Gt=(e=>(e.NO_FORMATTING="no-formatting",e.POSITIVE="positive",e.NEGATIVE="negative",e.WARN="warn",e.NEUTRAL="neutral",e.ACCENT_1="accent-1",e.ACCENT_2="accent-2",e.CUSTOM="custom",e))(Gt||{});function hl(e){switch(e){case"no-formatting":return"No formatting";case"positive":return"Positive";case"negative":return"Negative";case"warn":return"Warn";case"neutral":return"Neutral";case"accent-1":return"Accent 1";case"accent-2":return"Accent 2";case"custom":return"Custom..."}}function Bi(e){const{type:t,customConfig:n}=e;switch(t){case"no-formatting":return;case"positive":return"#9fde6f";case"negative":return"#ff6087";case"warn":return"#f67f40";case"neutral":return"#ffd95c";case"accent-1":return"#78dce8";case"accent-2":return"#ab9bf5";case"custom":return n==null?void 0:n.background;default:return}}function Wi(e){const{type:t,customConfig:n}=e;switch(t){case"no-formatting":return;case"positive":return"#526a3f";case"negative":return"#802f44";case"warn":return"#663318";case"neutral":return"#63562b";case"accent-1":return"#3f6469";case"accent-2":return"#554d72";case"custom":return n==null?void 0:n.color;default:return}}function Hu(e){const t=Wi(e.style),n=Bi(e.style);if(!(t===void 0||n===void 0))return`bgfg(\`${n}\`, \`${t}\`)`}function _u(e){const{column:t,value:n,start:s,end:i}=e;return tm(t.name,e.condition,n,s,i)}function Vu(e){const{column:t,value:n}=e;return nm(t.name,e.condition,n)}function Uu(e){const{column:t,value:n}=e;return sm(t.name,e.condition,n)}function Bu(e){const{column:t}=e;return im(t.name,e.condition)}function Wu(e){const{column:t,value:n}=e;return om(t.name,e.condition,n)}function zu(e){const{column:t}=e;if(x.isNumberType(t.type))return _u(e);if(x.isCharType(t.type))return Wu(e);if(x.isStringType(t.type))return Vu(e);if(x.isDateType(t.type))return Uu(e);if(x.isBooleanType(t.type))return Bu(e);throw new Error("Invalid column type")}function $u(e){switch(e){case"is-equal":return"is equal to";case"is-not-equal":return"is not equal to";case"is-between":return"is between";case"greater-than":return"greater than";case"greater-than-or-equal":return"greater than or equal to";case"less-than":return"less than";case"less-than-or-equal":return"less than or equal to";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Gu(e){switch(e){case"is-exactly":return"is exactly";case"is-not-exactly":return"is not exactly";case"contains":return"contains";case"does-not-contain":return"does not contain";case"starts-with":return"starts with";case"ends-with":return"ends with";case"is-null":return"is null";case"is-not-null":return"is not null"}}function qu(e){switch(e){case"is-exactly":return"is";case"is-not-exactly":return"is not";case"is-before":return"is before";case"is-before-or-equal":return"is before or equal";case"is-after":return"is after";case"is-after-or-equal":return"is after or equal";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Ku(e){switch(e){case"is-true":return"is true";case"is-false":return"is false";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Xu(e){switch(e){case"is-equal":return"is";case"is-not-equal":return"is not";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Ia(e){if(x.isNumberType(e)||x.isCharType(e))return"is-equal";if(x.isStringType(e)||x.isDateType(e))return"is-exactly";if(x.isBooleanType(e))return"is-true";throw new Error("Invalid column type")}function Yu(e){if(x.isCharType(e)||x.isStringType(e))return""}function Ma(e){const{condition:t,value:n,start:s,end:i}=e;return{condition:t,value:n,start:s,end:i}}function so(e){return{condition:Ia(e),value:Yu(e),start:void 0,end:void 0}}function Da(){return{type:"no-formatting"}}function Qu(e){switch(e){case"is-exactly":return"==";case"is-not-exactly":return"!=";case"contains":return"contains";case"does-not-contain":return"does not contain";case"starts-with":return"starts with";case"ends-with":return"ends with";case"is-null":return"is null";case"is-not-null":return"is not null"}}function ju(e){switch(e){case"is-exactly":return"==";case"is-not-exactly":return"!=";case"is-before":return"<";case"is-before-or-equal":return"<=";case"is-after":return">";case"is-after-or-equal":return">=";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Zu(e){switch(e){case"is-true":return"is true";case"is-false":return"is false";case"is-null":return"is null";case"is-not-null":return"is not null"}}function Ju(e){switch(e){case"is-equal":return"==";case"is-not-equal":return"!=";case"is-null":return"is null";case"is-not-null":return"is not null"}}function em(e){switch(e){case"is-equal":return"==";case"is-not-equal":return"!=";case"is-between":return"==";case"greater-than":return">";case"greater-than-or-equal":return">=";case"less-than":return"<";case"less-than-or-equal":return"<=";case"is-null":return"is null";case"is-not-null":return"is not null"}}function tm(e,t,n,s,i){switch(t){case"is-equal":return`${e} == ${n}`;case"is-not-equal":return`${e} != ${n}`;case"is-between":return`${e} > ${s} && ${e} < ${i}`;case"greater-than":return`${e} > ${n}`;case"greater-than-or-equal":return`${e} >= ${n}`;case"less-than":return`${e} < ${n}`;case"less-than-or-equal":return`${e} <= ${n}`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function nm(e,t,n){switch(t){case"is-exactly":return`${e} == "${n}"`;case"is-not-exactly":return`${e} != "${n}"`;case"contains":return`${e} != null && ${e}.contains("${n}")`;case"does-not-contain":return`${e} != null && !${e}.contains("${n}")`;case"starts-with":return`${e} != null && ${e}.startsWith("${n}")`;case"ends-with":return`${e} != null && ${e}.endsWith("${n}")`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function sm(e,t,n){switch(t){case"is-exactly":return`${e} == convertDateTime("${n}")`;case"is-not-exactly":return`${e} != convertDateTime(\`${n}\`)`;case"is-before":return`${e} < convertDateTime(\`${n}\`)`;case"is-before-or-equal":return`${e} <= convertDateTime("${n}")`;case"is-after":return`${e} > convertDateTime(\`${n}\`)`;case"is-after-or-equal":return`${e} >= convertDateTime(\`${n}\`)`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function im(e,t){switch(t){case"is-true":return`${e} == true`;case"is-false":return`${e} == false`;case"is-null":return`${e} == null`;case"is-not-null":return`${e} != null`}}function om(e,t,n){switch(t){case"is-equal":return`${e} == '${n}'`;case"is-not-equal":return`${e} != '${n}'`;case"is-null":return`isNull(${e})`;case"is-not-null":return`!isNull(${e})`}}function rm(e,t){if(x.isNumberType(e))return em(t);if(x.isCharType(e))return Ju(t);if(x.isStringType(e))return Qu(t);if(x.isDateType(e))return ju(t);if(x.isBooleanType(e))return Zu(t);throw new Error("Invalid column type")}function lm(e,t){if(t===void 0)return Io.debug("no rules passed."),[];const n=[];let s;const i=new Map;return t.forEach(({config:o,type:r})=>{var g;const{column:l}=o,a=e.find(({name:f,type:C})=>f===l.name&&C===l.type);if(a===void 0){Io.debug(`Column ${l.name}:${l.type} not found. Ignoring format rule.`,o);return}const[c,d]=(g=r==="conditional"?i.get(a.name):s)!=null?g:["null",void 0],h=ku(o,c);if(h===void 0){Io.debug("Ignoring format rule.",o);return}const m=d===void 0?-1:n.indexOf(d);m>-1&&n.splice(m,1);const p=r==="conditional"?Pu(a,h):Lu(h);n.push(p),r==="conditional"?i.set(a.name,[h,p]):s=[h,p]}),n}function am({type:e}){return x.isNumberType(e)||x.isCharType(e)||x.isStringType(e)||x.isDateType(e)||x.isBooleanType(e)}const io=({animation:e="iris-grid-bottom-bar-slide-up",children:t,className:n,isShown:s,onClick:i,onEntering:o,onEntered:r,onExiting:l,onExited:a})=>u(rt,{in:s,timeout:Rt.transitionMs,classNames:e,onEntering:o,onEntered:r,onExiting:l,onExited:a,mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:$("iris-grid-bottom-bar",n),role:"presentation",onClick:i,onKeyPress:i,children:t})});const cm=3e3,dm=5,hm=({isSaving:e=!1,onSave:t,onDiscard:n,discardTooltip:s,saveTooltip:i,error:o,pendingDataErrors:r,pendingDataMap:l,onEntering:a,onEntered:c,onExiting:d,onExited:h})=>{const[m,p]=y.exports.useState(!1),[g,f]=y.exports.useState(!1),C=y.exports.useRef(),b=sr(e),w=y.exports.useMemo(()=>r.size===0?o:r.size<=dm?`Key can't be empty (on pending row${r.size>1?"s":""} ${Array.from(r.keys()).join(", ").trim()})`:`Key can't be empty (on ${r.size} rows)`,[o,r]);y.exports.useEffect(function(){b!=null&&b&&!e&&w==null&&(p(!0),f(!0),C.current=setTimeout(()=>{p(!1)},cm))},[w,e,b]),y.exports.useEffect(function(){C.current&&l.size>0&&(clearTimeout(C.current),p(!1),f(!1))},[l]),y.exports.useEffect(function(){return()=>C.current?clearTimeout(C.current):void 0},[]);const S=l.size;let I;return e?I=u(Vt,{}):g&&(I=Gl),T(io,{className:"pending-data-bottom-bar",isShown:S>0||m||w!=null,onEntering:a,onEntered:c,onExiting:d,onExited:()=>{f(!1),h&&h()},children:[w!=null&&w!==""&&T("div",{className:"error-message",children:[u(K,{icon:Ln}),u("span",{children:`${w}`})]}),(w==null||w==="")&&u("div",{className:"status-message",children:S>0&&u("span",{children:`${S} row${S>1?"s":""} pending`})}),T("div",{className:"buttons-container",children:[!e&&!g&&u(Y,{kind:"secondary",onClick:n,tooltip:s,children:"Discard"}),T(Y,{kind:g?"success":"primary",onClick:t,icon:I,disabled:e||g||w!=null,tooltip:i,children:[e&&"Committing...",!e&&g&&"Success",!e&&!g&&"Commit"]})]})]})},zs=ee.module("IrisGridUtils");function vn(e,t){return e>=0&&e<t.length}class se{static dehydrateGridState(t,n){const{isStuckToBottom:s,isStuckToRight:i,movedColumns:o,movedRows:r}=n,{columns:l}=t;return{isStuckToBottom:s,isStuckToRight:i,movedColumns:[...o].filter(({to:a,from:c})=>vn(a,l)&&(typeof c=="number"&&vn(c,l)||Array.isArray(c)&&vn(c[0],l)&&vn(c[1],l))).map(({to:a,from:c})=>({to:l[a].name,from:Array.isArray(c)?[l[c[0]].name,l[c[1]].name]:l[c].name})),movedRows:[...r]}}static hydrateGridState(t,n,s=[]){const{isStuckToBottom:i,isStuckToRight:o,movedColumns:r,movedRows:l}=n,{columns:a}=t,c=se.parseCustomColumnNames(s),d=a.map(({name:h})=>h).concat(c);return{isStuckToBottom:i,isStuckToRight:o,movedColumns:[...r].map(({to:h,from:m})=>{const p=g=>typeof g=="string"?d.findIndex(f=>f===g):g;return{to:p(h),from:Array.isArray(m)?[p(m[0]),p(m[1])]:p(m)}}).filter(({to:h,from:m})=>vn(h,d)&&(typeof m=="number"&&vn(m,d)||Array.isArray(m)&&vn(m[0],d)&&vn(m[1],d))),movedRows:[...l]}}static dehydrateIrisGridState(t,n){const{aggregationSettings:s={aggregations:[],showOnTop:!1},advancedFilters:i,customColumnFormatMap:o,isFilterBarShown:r,metrics:l,quickFilters:a,customColumns:c,conditionalFormats:d=[],reverseType:h,rollupConfig:m=void 0,showSearchBar:p,searchValue:g,selectDistinctColumns:f=[],selectedSearchColumns:C,sorts:b,invertSearchColumns:w,pendingDataMap:S=new Map,frozenColumns:I}=n;O(l);const{userColumnWidths:v,userRowHeights:R}=l,{columns:M}=t;return{advancedFilters:se.dehydrateAdvancedFilters(M,i),aggregationSettings:s,customColumnFormatMap:[...o],isFilterBarShown:r,quickFilters:se.dehydrateQuickFilters(a),sorts:se.dehydrateSort(b),userColumnWidths:[...v].filter(([F])=>F!=null&&F>=0&&F<M.length).map(([F,P])=>[M[F].name,P]),userRowHeights:[...R],customColumns:[...c],conditionalFormats:[...d],reverseType:h,rollupConfig:m,showSearchBar:p,searchValue:g,selectDistinctColumns:[...f],selectedSearchColumns:C,invertSearchColumns:w,pendingDataMap:se.dehydratePendingDataMap(M,S),frozenColumns:I}}static hydrateIrisGridState(t,n){const{advancedFilters:s,aggregationSettings:i={aggregations:[],showOnTop:!1},customColumnFormatMap:o,isFilterBarShown:r,quickFilters:l,sorts:a,customColumns:c,conditionalFormats:d,userColumnWidths:h,userRowHeights:m,reverseType:p,rollupConfig:g=void 0,showSearchBar:f,searchValue:C,selectDistinctColumns:b,selectedSearchColumns:w,invertSearchColumns:S=!0,pendingDataMap:I=[],frozenColumns:v}=n,{columns:R,formatter:M}=t;return{advancedFilters:se.hydrateAdvancedFilters(R,s,M.timeZone),aggregationSettings:i,customColumnFormatMap:new Map(o),isFilterBarShown:r,quickFilters:se.hydrateQuickFilters(R,l,M.timeZone),sorts:se.hydrateSort(R,a),userColumnWidths:new Map(h.map(([F,P])=>typeof F=="string"||F instanceof String?[R.findIndex(({name:W})=>W===F),P]:[F,P]).filter(([F])=>F!=null&&F>=0&&F<R.length)),customColumns:c,conditionalFormats:d,userRowHeights:new Map(m),reverseType:p,rollupConfig:g,showSearchBar:f,searchValue:C,selectDistinctColumns:b,selectedSearchColumns:w,invertSearchColumns:S,pendingDataMap:se.hydratePendingDataMap(R,I),frozenColumns:v}}static dehydrateIrisGridPanelState(t,n){const{isSelectingPartition:s,partition:i,partitionColumn:o,advancedSettings:r}=n;return{isSelectingPartition:s,partition:i,partitionColumn:o!=null?o.name:null,advancedSettings:[...r]}}static hydrateIrisGridPanelState(t,n){const{isSelectingPartition:s,partition:i,partitionColumn:o,advancedSettings:r}=n,{columns:l}=t;return{isSelectingPartition:s,partition:i,partitionColumn:o!=null?se.getColumnByName(l,o):void 0,advancedSettings:new Map([...Mh.DEFAULTS,...r])}}static dehydrateQuickFilters(t){return[...t].map(([n,s])=>{const{text:i}=s;return[n,{text:i}]})}static hydrateQuickFilters(t,n,s){const i=n.map(([o,r])=>{const{text:l}=r;let a=null;try{const c=se.getColumn(t,o);c!=null&&(a=x.makeQuickFilter(c,l,s))}catch(c){zs.error("hydrateQuickFilters error with",l,c)}return[o,{text:l,filter:a}]});return new Map(i)}static dehydrateAdvancedFilters(t,n){return[...n].map(([s,i])=>{const o=se.getColumn(t,s);O(o);const r=se.dehydrateAdvancedFilterOptions(o,i.options);return[s,{options:r}]})}static hydrateAdvancedFilters(t,n,s){const i=n.map(([o,r])=>{const l=se.getColumn(t,o);O(l);const a=se.hydrateAdvancedFilterOptions(l,r.options);let c=null;try{se.getColumn(t,o)!=null&&(c=x.makeAdvancedFilter(l,a,s))}catch(d){zs.error("hydrateAdvancedFilters error with",a,d)}return[o,{options:a,filter:c}]});return new Map(i)}static dehydrateAdvancedFilterOptions(t,n){const{selectedValues:s,...i}=n;return{selectedValues:s==null?void 0:s.map(o=>se.dehydrateValue(o,t==null?void 0:t.type)),...i}}static hydrateAdvancedFilterOptions(t,n){const{selectedValues:s,...i}=n;return{selectedValues:s==null?void 0:s.map(o=>se.hydrateValue(o,t==null?void 0:t.type)),...i}}static dehydratePendingDataMap(t,n){return[...n].map(([s,{data:i}])=>[s,{data:[...i].map(([o,r])=>[t[o].name,se.dehydrateValue(r,t[o].type)])}])}static hydratePendingDataMap(t,n){const s=new Map,i=o=>(s.has(o)||s.set(o,t.findIndex(({name:r})=>r===o)),s.get(o));return new Map(n.map(([o,{data:r}])=>[o,{data:new Map(r.map(([l,a])=>{var d;const c=i(l);return O(c),[(d=i(l))!=null?d:null,se.hydrateValue(a,t[c].type)]}))}]))}static dehydrateValue(t,n){return x.isDateType(n)?se.dehydrateDateTime(t):x.isLongType(n)?se.dehydrateLong(t):t}static hydrateValue(t,n){return x.isDateType(n)?se.hydrateDateTime(t):x.isLongType(n)?se.hydrateLong(t):t}static dehydrateDateTime(t){return t!=null?E.i18n.DateTimeFormat.format(_n.FULL_DATE_FORMAT,t):null}static hydrateDateTime(t){return t!=null?E.i18n.DateTimeFormat.parse(_n.FULL_DATE_FORMAT,t):null}static dehydrateLong(t){return t!=null?`${t}`:null}static hydrateLong(t){return t!=null?E.LongWrapper.ofString(t):null}static dehydrateSort(t){return t.map(n=>{const{column:s,isAbs:i,direction:o}=n;return{column:s.index,isAbs:i,direction:o}})}static hydrateSort(t,n){return n.map(s=>{const{column:i,isAbs:o,direction:r}=s;if(r===x.sortDirection.reverse)return E.Table.reverse();const l=se.getColumn(t,i);if(l!=null){let a=l.sort();return o&&(a=a.abs()),r===x.sortDirection.descending?a=a.desc():a=a.asc(),a}return null}).filter(s=>s!=null&&s.direction!==x.sortDirection.reverse)}static extractTableSettings(t,n=[]){const{irisGridPanelState:s,irisGridState:i}=t,{partitionColumn:o,partition:r}=s,{advancedFilters:l,quickFilters:a,sorts:c}=i;return{advancedFilters:l,inputFilters:n,partition:r,partitionColumn:o,quickFilters:a,sorts:c}}static applyTableSettings(t,n,s){const{columns:i}=t;let o=[];n.quickFilters&&(o=se.getFiltersFromFilterMap(se.hydrateQuickFilters(i,n.quickFilters,s)));let r=[];n.advancedFilters&&(r=se.getFiltersFromFilterMap(se.hydrateAdvancedFilters(i,n.advancedFilters,s)));const l=se.getFiltersFromInputFilters(i,n.inputFilters,s);let a=[];n.sorts&&(a=se.hydrateSort(i,n.sorts));let c=[...o,...r];const{partition:d,partitionColumn:h}=n;if(d!=null&&h!=null){const m=se.getColumnByName(i,h);m&&(c=[m.filter().eq(E.FilterValue.ofString(d)),...c])}c=[...l,...c],t.applyFilter(c),t.applySort(a)}static getInputFiltersForColumns(t,n=[]){return n.filter(({name:s,type:i})=>t.find(({name:o,type:r})=>o===s&&r===i))}static getFiltersFromInputFilters(t,n=[],s){return n.map(({name:i,type:o,value:r})=>{const l=t.find(({name:a,type:c})=>a===i&&c===o);if(l)try{return x.makeQuickFilter(l,r,s)}catch(a){zs.debug("Unable to create input filter",a)}return null}).filter(i=>i!=null)}static getFiltersFromFilterMap(t){const n=[],s=Array.from(t.keys());for(let i=0;i<s.length;i+=1){const o=s[i],r=t.get(o);r&&r.filter!=null&&n.push(r.filter)}return n}static getHiddenColumns(t){return[...t.entries()].filter(([,n])=>n===0).map(([n])=>n)}static parseCustomColumnNames(t){return t.map(n=>n.split("=")[0])}static getRemovedCustomColumnNames(t,n){const s=se.parseCustomColumnNames(t),i=se.parseCustomColumnNames(n);return s.filter(o=>!i.includes(o))}static removeSortsInColumns(t,n){return t.filter(s=>!n.includes(s.column.name))}static removeFiltersInColumns(t,n,s){const i=t.map(({name:r})=>r),o=new Map(n);return s.forEach(r=>o.delete(i.indexOf(r))),o}static removeColumnFromMovedColumns(t,n,s){const i=t.map(({name:r})=>r);let o=[...n];for(let r=0;r<s.length;r+=1){const l=s[r];let a=i.findIndex(d=>d===l);const c=[];for(let d=0;d<o.length;d+=1){const h=o[d],m={...h};let[p,g]=Array.isArray(h.from)?h.from:[h.from,h.from];a<=h.to&&(m.to-=1),a<p&&(p-=1),a<=g&&(g-=1),p<=g&&p!==m.to&&(p===g?c.push({...m,from:p}):c.push({...m,from:[p,g]})),a=U.applyItemMoves(a,a,[h])[0][0]}o=c,i.splice(i.findIndex(d=>d===l),1)}return o}static removeColumnsFromSelectDistinctColumns(t,n){return t.filter(s=>!n.includes(s))}static getVisibleColumnsInRange(t,n,s,i,o){const r=[];for(let l=n;l<=s;l+=1){const a=U.getModelIndex(l,i);a>=0&&a<t.length&&!o.includes(a)&&r.push(t[a])}return r}static getPrevVisibleColumns(t,n,s,i,o){const r=[];let l=n;for(;l>=0&&r.length<s;){const a=U.getModelIndex(l,i);a>=0&&a<t.length&&!o.includes(a)&&r.unshift(t[a]),l-=1}return r}static getNextVisibleColumns(t,n,s,i,o){const r=[];let l=n;for(;l<t.length&&r.length<s;){const a=U.getModelIndex(l,i);a>=0&&a<t.length&&!o.includes(a)&&r.push(t[a]),l+=1}return r}static getColumnsToFetch(t,n,s){const i=[...n];return s.forEach(o=>{const r=t.find(({name:l})=>l===o);r!=null&&!n.includes(r)&&i.push(r)}),i}static getModelViewportColumns(t,n,s,i,o=[],r=[],l=0){if(n==null||s==null)return null;const a=se.getVisibleColumnsInRange(t,n,s,i,o),c=a.length*l,d=se.getPrevVisibleColumns(t,n-1,c,i,o),h=se.getNextVisibleColumns(t,s+1,c,i,o),m=[...d,...a,...h];return se.getColumnsToFetch(t,m,r)}static rangeSetFromRanges(t){const n=t.slice().sort((s,i)=>(O(s.startRow),O(i.startRow),s.startRow-i.startRow)).map(s=>{const{startRow:i,endRow:o}=s;return O(i),O(o),E.RangeSet.ofRange(i,o)});return E.RangeSet.ofRanges(n)}static isValidSnapshotRanges(t){if(t==null||t.length===0)return!1;const n=new Map;for(let o=0;o<t.length;o+=1){const r=t[o],l=`${r.startRow}:${r.endRow}`,a=`${r.startColumn}:${r.endColumn}`;n.has(l)||n.set(l,[]),n.get(l).push(a)}const s=[...n.keys()],i=n.get(s[0]).sort().join(",");for(let o=1;o<s.length;o+=1)if(n.get(s[o]).sort().join(",")!==i)return!1;return!0}static isValidIndex(t){return!Number.isInteger(t)||typeof t!="number"?!1:t>=0}static columnsFromRanges(t,n){var i,o;if(t==null||t.length===0)return[];if(t[0].startColumn===null&&t[0].endColumn===null)return n;const s=new Set;for(let r=0;r<t.length;r+=1){const l=t[r];O(l.startColumn),O(l.endColumn);for(let a=(i=l.startColumn)!=null?i:0;a<=((o=l.endColumn)!=null?o:n.length-1);a+=1)s.add(a)}return[...s].map(r=>n[r])}static snapshotDataToMatrix(t){const{columns:n,rows:s}=t,i=[];for(let o=0;o<s.length;o+=1){const r=s[o],l=[];for(let a=0;a<n.length;a+=1){const c=n[a],d=r.get(c);l.push(d)}i.push(l)}return i}static getModelRollupConfig(t,n,s){var h,m,p;if(((m=(h=n==null?void 0:n.columns)==null?void 0:h.length)!=null?m:0)===0)return null;const{columns:i=[],showConstituents:o=!0,showNonAggregatedColumns:r=!0,includeDescriptions:l=!0}=n!=null?n:{},{aggregations:a=[]}=s!=null?s:{},c=a.map(({operation:g,selected:f,invert:C})=>An.isRollupOperation(g)?[]:An.getOperationColumnNames(t,g,f,C)),d={};for(let g=0;g<a.length;g+=1)d[a[g].operation]=c[g];if(r){const g=new Set(t.map(f=>f.name).filter(f=>!i.includes(f)));if(c.forEach(f=>{f.forEach(C=>g.delete(C))}),g.size>0){const f=(p=d[we.FIRST])!=null?p:[];d[we.FIRST]=[...f,...g]}}return{groupingColumns:i,includeConstituents:o,includeDescriptions:l,aggregations:d}}static getPendingErrors(t){t.forEach((n,s)=>{if(!se.isValidIndex(s))throw new Error(`Invalid rowIndex ${s}`);const{data:i}=n;i.forEach((o,r)=>{if(!se.isValidIndex(r))throw new Error(`Invalid columnIndex ${r}`)})})}static getColumn(t,n){return n<t.length?t[n]:(zs.error("Unable to retrieve column",n,">=",t.length),null)}static getColumnByName(t,n){const s=t.find(({name:i})=>i===n);return s==null&&zs.error("Unable to retrieve column by name",n,t.map(({name:i})=>i)),s}static changeFilterColumnNamesToIndexes(t,n){return n.map(({name:s,filter:i})=>{const o=t.findIndex(r=>r.name===s);return o<0?null:[o,i]}).filter(s=>s!=null)}}const gt=ee.module("IrisGridCopyHandler"),Ee=class extends y.exports.Component{constructor(e){super(e),this.handleBackgroundClick=this.handleBackgroundClick.bind(this),this.handleCancelClick=this.handleCancelClick.bind(this),this.handleCopyClick=this.handleCopyClick.bind(this),this.handleHideTimeout=this.handleHideTimeout.bind(this),this.state={error:void 0,copyState:Ee.COPY_STATES.IDLE,buttonState:Ee.BUTTON_STATES.COPY,isShown:!1,rowCount:0}}static getStatusMessageText(e,t){switch(e){case Ee.COPY_STATES.CONFIRMATION_REQUIRED:return`Are you sure you want to copy ${t.toLocaleString()} rows to your clipboard?`;case Ee.COPY_STATES.CLICK_REQUIRED:return`Fetched ${t.toLocaleString()} rows!`;case Ee.COPY_STATES.FETCH_ERROR:return"Unable to copy data.";case Ee.COPY_STATES.FETCH_IN_PROGRESS:return`Fetching ${t.toLocaleString()} rows for clipboard...`;case Ee.COPY_STATES.DONE:return"Copied to Clipboard!";default:return""}}static getCopyButtonText(e){switch(e){case Ee.BUTTON_STATES.FETCH_IN_PROGRESS:return"Fetching";case Ee.BUTTON_STATES.CLICK_TO_COPY:return"Click to Copy";case Ee.BUTTON_STATES.RETRY:return"Retry";default:return"Copy"}}componentDidMount(){const{copyOperation:e}=this.props;e!=null&&this.startCopy()}componentDidUpdate(e){const{copyOperation:t}=this.props;e.copyOperation!==t&&this.startCopy()}componentWillUnmount(){this.stopCopy()}startCopy(){gt.debug2("startCopy"),this.stopCopy();const{copyOperation:e}=this.props;if(e==null){gt.debug2("No copy operation set, cancelling out"),this.setState({isShown:!1});return}const{ranges:t,error:n}=e;if(n!=null){gt.debug("Showing copy error",n),this.setState({isShown:!0,copyState:Ee.COPY_STATES.DONE,error:n}),this.startHideTimer();return}const s=Z.rowCount(t);this.setState({rowCount:s,isShown:!0,error:void 0}),s>Ee.NO_PROMPT_THRESHOLD?this.setState({buttonState:Ee.BUTTON_STATES.COPY,copyState:Ee.COPY_STATES.CONFIRMATION_REQUIRED}):this.startFetch()}stopCopy(){this.textData=void 0,this.stopFetch(),this.stopHideTimer()}handleBackgroundClick(){gt.debug2("handleBackgroundClick");const{copyState:e}=this.state;e===Ee.COPY_STATES.DONE&&this.setState({isShown:!1})}handleCancelClick(){gt.debug2("handleCancelClick"),this.stopFetch(),this.setState({isShown:!1})}handleCopyClick(){gt.debug2("handleCopyClick"),this.textData!=null?this.copyText(this.textData):this.startFetch()}handleHideTimeout(){gt.debug2("handleHideTimeout"),this.stopHideTimer(),this.setState({isShown:!1})}copyText(e){gt.debug2("copyText",e),this.textData=e,Se.copyToClipboard(e).then(()=>{this.setState({copyState:Ee.COPY_STATES.DONE}),this.startHideTimer()},t=>{gt.error("copyText error",t),this.setState({buttonState:Ee.BUTTON_STATES.CLICK_TO_COPY,copyState:Ee.COPY_STATES.CLICK_REQUIRED})})}startFetch(){this.stopFetch(),this.setState({buttonState:Ee.BUTTON_STATES.FETCH_IN_PROGRESS,copyState:Ee.COPY_STATES.FETCH_IN_PROGRESS});const{model:e,copyOperation:t}=this.props,{ranges:n,includeHeaders:s,userColumnWidths:i,movedColumns:o,formatValues:r}=t;gt.debug("startFetch",n);const l=se.getHiddenColumns(i);let a=U.getModelRanges(n,o);if(l.length>0){const d=l.map(Z.makeColumn);a=Z.subtractRangesFromRanges(a,d)}const c=r!=null&&r?(d,h)=>e.displayString(d,h.type,h.name):d=>`${d}`;this.fetchPromise=He.makeCancelable(e.textSnapshot(a,s,c)),this.fetchPromise.then(d=>{this.fetchPromise=void 0,this.copyText(d)}).catch(d=>{d instanceof Is?gt.debug("User cancelled copy."):(gt.error("Error fetching contents",d),this.fetchPromise=void 0,this.setState({buttonState:Ee.BUTTON_STATES.RETRY,copyState:Ee.COPY_STATES.FETCH_ERROR}))})}stopFetch(){this.fetchPromise&&(gt.debug2("stopFetch"),this.fetchPromise.cancel(),this.fetchPromise=void 0)}startHideTimer(){this.stopHideTimer(),this.hideTimer=setTimeout(this.handleHideTimeout,Ee.HIDE_TIMEOUT)}stopHideTimer(){this.hideTimer!=null&&(clearTimeout(this.hideTimer),this.hideTimer=void 0)}render(){const{onEntering:e,onEntered:t,onExiting:n,onExited:s}=this.props,{buttonState:i,copyState:o,isShown:r,rowCount:l,error:a}=this.state,c=o===Ee.COPY_STATES.DONE?"fade":"copy-slide-up",d=Ee.getCopyButtonText(i),h=a!=null?a:Ee.getStatusMessageText(o,l),m=o!==Ee.COPY_STATES.DONE,p=i===Ee.BUTTON_STATES.FETCH_IN_PROGRESS,g=o===Ee.COPY_STATES.DONE;return T(io,{animation:c,isShown:r,className:$("iris-grid-copy-handler",{"copy-done":g}),onClick:this.handleBackgroundClick,onEntering:e,onEntered:t,onExiting:n,onExited:s,children:[u("div",{className:"status-message",children:u("span",{children:h})}),u(rt,{in:m,timeout:Rt.transitionMs,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:T("div",{className:"buttons-container",children:[u("button",{type:"button",className:"btn btn-outline-secondary btn-cancel",onClick:this.handleCancelClick,children:"Cancel"}),T(Y,{kind:p?"tertiary":"primary",className:$("btn-copy",{"btn-spinner":p}),onClick:this.handleCopyClick,disabled:p,children:[p&&u(Vt,{}),d]})]})})]})}};let Ps=Ee;Ps.NO_PROMPT_THRESHOLD=1e4;Ps.HIDE_TIMEOUT=3e3;Ps.COPY_STATES={IDLE:"IDLE",CONFIRMATION_REQUIRED:"CONFIRMATION_REQUIRED",FETCH_IN_PROGRESS:"FETCH_IN_PROGRESS",FETCH_ERROR:"FETCH_ERROR",CLICK_REQUIRED:"CLICK_REQUIRED",DONE:"DONE"};Ps.BUTTON_STATES={COPY:"COPY",FETCH_IN_PROGRESS:"FETCH_IN_PROGRESS",CLICK_TO_COPY:"CLICK_TO_COPY",RETRY:"RETRY"};Ps.defaultProps={copyOperation:null,onEntering:()=>{},onEntered:()=>{},onExiting:()=>{},onExited:()=>{}};class Na extends y.exports.PureComponent{constructor(t){super(t);const{debounceMs:n}=t;this.debouncedSendUpdate=Tt(this.sendUpdate.bind(this),n),this.handleCancel=this.handleCancel.bind(this),this.handleChange=this.handleChange.bind(this),this.handleCommit=this.handleCommit.bind(this),this.handleFocus=this.handleFocus.bind(this),this.handleBlur=this.handleBlur.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleContextMenu=this.handleContextMenu.bind(this),this.inputField=null;const{value:s}=t;this.initialValue=s,this.state={isChanged:!1,value:s}}componentDidMount(){var t;(t=this.inputField)==null||t.focus()}componentDidUpdate(t){const{debounceMs:n}=this.props;t.debounceMs!==n&&(this.debouncedSendUpdate.flush(),this.debouncedSendUpdate=Tt(this.sendUpdate.bind(this),n))}componentWillUnmount(){this.debouncedSendUpdate.cancel()}setValue(t){this.initialValue=t,this.setState({value:t})}focus(){var t;(t=this.inputField)==null||t.focus()}handleChange(t){const{value:n}=t.target;this.setState({value:n,isChanged:!0}),this.debouncedSendUpdate(n)}handleCancel(){this.debouncedSendUpdate.cancel();const{initialValue:t}=this,{isChanged:n}=this.state;n&&this.sendUpdate(t);const{onDone:s}=this.props;s()}handleCommit(t=!0,n=!0){this.debouncedSendUpdate.flush();const{onDone:s}=this.props;s(t,n)}handleFocus(){var t;(t=this.inputField)==null||t.select()}handleBlur(t){const{relatedTarget:n}=t;n!=null&&n.classList.contains("context-menu-container")?this.handleCommit(!1,!0):n!=null&&n.classList.contains("advanced-filter-button")?this.handleCommit(!1,!1):this.handleCommit(!0,!0)}handleTab(t=!1){this.debouncedSendUpdate.flush();const{onTab:n}=this.props;n(t)}handleKeyDown(t){switch(t.key){case"Escape":t.stopPropagation(),t.preventDefault(),this.handleCancel();break;case"Enter":t.stopPropagation(),t.preventDefault(),this.handleCommit();break;case"Tab":t.stopPropagation(),t.preventDefault(),this.handleTab(t.shiftKey);break}}handleContextMenu(t){const{onContextMenu:n}=this.props;n(t)}sendUpdate(t){const{onChange:n}=this.props;n(t)}render(){const{className:t,style:n,isAdvancedFilterSet:s,onAdvancedFiltersTriggered:i}=this.props,{value:o}=this.state;return T("div",{style:n,className:"iris-grid-input-autosized-wrapper","data-value":o,children:[u("input",{ref:r=>{this.inputField=r},className:$("iris-grid-input-field",t),type:"text",value:o,onBlur:this.handleBlur,onFocus:this.handleFocus,onChange:this.handleChange,onKeyDown:this.handleKeyDown,onContextMenu:this.handleContextMenu,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false"}),u("div",{className:"advanced-filter-button-container",children:u(Y,{kind:"ghost",className:$("btn-link-icon advanced-filter-button",{"filter-set":s}),onClick:i,onContextMenu:this.handleContextMenu,children:T("div",{className:"fa-layers ",children:[u(K,{icon:jo,className:"filter-solid"}),u(K,{icon:Vi,className:"filter-light"})]})})})]})}}Na.defaultProps={style:{},className:"",value:"",isAdvancedFilterSet:!1,onAdvancedFiltersTriggered:()=>{},onChange:()=>{},onDone:()=>{},onTab:()=>{},onContextMenu:()=>{},debounceMs:150};class um extends ds{constructor(t){super(),this.irisGrid=t}onDown(t){const{selectedRanges:n}=this.irisGrid.state;return t.key==="c"&&Se.isModifierKeyDown(t)?(se.isValidSnapshotRanges(n)?this.irisGrid.copyRanges(n):this.irisGrid.copyRanges(n,!1,!1,"Invalid copy ranges"),!0):!1}}const mm={TOGGLE_QUICK_FILTER:Re.createAndAdd({id:"TABLE.TOGGLE_QUICK_FILTER",name:"Toggle Quick Filter",shortcut:[ie.CTRL,le.F],macShortcut:[ie.CMD,le.F]}),CLEAR_ALL_FILTERS:Re.createAndAdd({id:"TABLE.CLEAR_ALL_FILTERS",name:"Clear All Table Filters",shortcut:[ie.CTRL,le.E],macShortcut:[ie.CMD,le.E]}),CLEAR_FILTERS:Re.createAndAdd({id:"TABLE.CLEAR_FILTERS",name:"Clear Active Table Filters",shortcut:[ie.CTRL,ie.SHIFT,le.E],macShortcut:[ie.CMD,ie.SHIFT,le.E]}),REVERSE:Re.createAndAdd({id:"TABLE.REVERSE",name:"Reverse",shortcut:[ie.CTRL,le.I],macShortcut:[ie.CMD,le.I]}),TOGGLE_SEARCH:Re.createAndAdd({id:"TABLE.TOGGLE_SEARCH",name:"Toggle Search",shortcut:[ie.CTRL,ie.SHIFT,le.F],macShortcut:[ie.CMD,ie.SHIFT,le.F]}),GOTO_ROW:Re.createAndAdd({id:"TABLE.GOTO_ROW",name:"Go to Row",shortcut:[ie.CTRL,le.G],macShortcut:[ie.CMD,le.G]})},pm={COMMIT:Re.createAndAdd({id:"INPUT_TABLE.COMMIT",name:"Commit",shortcut:[ie.CTRL,le.S],macShortcut:[ie.CMD,le.S]}),DISCARD:Re.createAndAdd({id:"INPUT_TABLE.DISCARD",name:"Discard",shortcut:[ie.CTRL,ie.ALT,le.S],macShortcut:[ie.CMD,ie.OPTION,le.S]})},Pt={TABLE:mm,INPUT_TABLE:pm};class gm extends ds{constructor(t){super(),this.irisGrid=t}onDown(t){if(Pt.TABLE.REVERSE.matchesEvent(t)){if(!this.irisGrid.isReversible())return!1;const{reverseType:n}=this.irisGrid.state;return n===x.REVERSE_TYPE.NONE?this.irisGrid.reverse(x.REVERSE_TYPE.POST_SORT):this.irisGrid.reverse(x.REVERSE_TYPE.NONE),!0}return!1}}class fm extends ds{constructor(t){super(),this.irisGrid=t}onDown(t){return Pt.TABLE.CLEAR_FILTERS.matchesEvent(t)?(this.irisGrid.clearAllFilters(),!0):!1}}class Cm extends je{constructor(t){super(850),this.irisGrid=t}destroyColumnTooltip(){this.irisGrid.setState({overflowButtonTooltipProps:null})}setCursor(t){return this.isHoveringOverflowButton(t)?(this.cursor="pointer",{stopPropagation:!1,preventDefault:!1}):(this.cursor=null,!1)}getButtonPosition({x:t,y:n,column:s,row:i}){if(s==null||i==null)return null;const{renderer:o,grid:r,state:l,props:a}=this.irisGrid;if(!r)return null;const{metrics:c}=l,{model:d}=a,{canvasContext:h}=r,m=r.getTheme(),p={context:h,mouseX:t,mouseY:n,metrics:c,model:d,theme:m},{left:g,top:f,width:C,height:b}=o.getCellOverflowButtonPosition(p);return g==null||C==null||f==null||b==null?null:{left:g,top:f,width:C,height:b}}isHoveringOverflowButton(t){var b;const{x:n,y:s}=t,{left:i,top:o,width:r,height:l}=(b=this.getButtonPosition(t))!=null?b:{};if(i==null||r==null||o==null||l==null)return!1;const{renderer:a,grid:c,state:d,props:h}=this.irisGrid;if(!c)return!1;const{metrics:m}=d,{model:p}=h,{canvasContext:g}=c,f=c.getTheme(),C={context:g,mouseX:n,mouseY:s,metrics:m,model:p,theme:f};return a.shouldRenderOverflowButton(C)&&n>=i&&n<=i+r&&s>=o&&s<=o+l}onMove(t){if(this.isHoveringOverflowButton(t)){const{overflowButtonTooltipProps:n}=this.irisGrid.state,s=this.getButtonPosition(t);dt(n,s)||this.irisGrid.setState({overflowButtonTooltipProps:s})}else this.destroyColumnTooltip();return this.setCursor(t)}onWheel(t){return this.destroyColumnTooltip(),this.onMove(t)}onDown(t){this.destroyColumnTooltip();const{column:n,row:s}=t;return this.isHoveringOverflowButton(t)&&this.irisGrid.setState({showOverflowModal:!0,overflowText:this.irisGrid.getValueForCell(n,s)}),!1}onContextMenu(){return this.destroyColumnTooltip(),!1}onLeave(){return this.destroyColumnTooltip(),!1}}class bm extends je{constructor(t){super(),this.irisGrid=t,this.cursor=null}isActive(){const{isSelectingColumn:t}=this.irisGrid.props;return t}isValidColumn(t){if(t==null)return!1;const{columnSelectionValidator:n}=this.irisGrid.props;return n!=null?n(t):!0}updateColumnSelectionStatus(){const{columnSelectionValidator:t}=this.irisGrid.props;t!=null&&t(null)}getTableColumn(t){if(t==null)return null;const{model:n}=this.irisGrid.props,s=this.irisGrid.getModelColumn(t);return s==null?null:n.columns[s]}onMove(t){if(!this.isActive())return!1;const{columnAllowedCursor:n,columnNotAllowedCursor:s}=this.irisGrid.props,{column:i}=t,o=this.getTableColumn(i);return this.isValidColumn(o)?(this.cursor=n,this.irisGrid.setState({hoverSelectColumn:i})):(this.cursor=s,this.irisGrid.setState({hoverSelectColumn:null})),!0}onWheel(t){if(!this.isActive())return!1;const{columnAllowedCursor:n,columnNotAllowedCursor:s}=this.irisGrid.props,{column:i}=t,o=this.getTableColumn(i);return this.isValidColumn(o)?this.cursor=n:this.cursor=s,{preventDefault:!1,stopPropagation:!1}}onLeave(){return this.isActive()&&this.irisGrid.setState({hoverSelectColumn:null}),this.updateColumnSelectionStatus(),!1}onDown(){return this.isActive()}onClick(t){if(!this.isActive())return!1;const{column:n}=t,s=this.getTableColumn(n);return s!=null&&this.isValidColumn(s)&&this.irisGrid.selectColumn(s),!0}}class wm extends je{constructor(t){super(),this.irisGrid=t}hideColumnTooltip(){const{tooltip:t}=this.irisGrid;t&&(t.stopTimer(),t.hide())}onDown(){return this.hideColumnTooltip(),!1}onContextMenu(){return this.hideColumnTooltip(),!1}onWheel(){return this.hideColumnTooltip(),!1}onLeave(t,n,s){const{relatedTarget:i}=s instanceof MouseEvent?s:s.nativeEvent,{tooltip:o}=this.irisGrid;if(!o)return!1;const r=o.popper.current;return r&&i instanceof Element&&r.element.contains(i)||this.hideColumnTooltip(),!1}onMove(t){const{column:n,row:s,columnHeaderDepth:i}=t,{shownColumnTooltip:o}=this.irisGrid.state;let r=null;return n!==null&&s===null&&i===0&&(r=n),r!==o&&this.irisGrid.setState({shownColumnTooltip:r}),!1}}const Fa=class extends y.exports.Component{constructor(e=Fa.defaultProps){super(e),this.handleInputChange=this.handleInputChange.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.inputRef=j.createRef()}handleInputChange(){const{onChange:e}=this.props;this.inputRef.current&&e(this.inputRef.current.value)}closeContextMenu(){const{forwardedProps:e}=this.props,{closeMenu:t}=e;t(!0)}revertToDefault(){const{onChange:e}=this.props;e(null)}returnFocusToContextMenu(){const e=Qd.getClosestByClassName(this.inputRef.current,"context-menu-container");e instanceof HTMLElement&&e.focus()}handleKeyDown(e){switch(e.key){case"Enter":e.stopPropagation(),this.closeContextMenu();break;case"Escape":e.stopPropagation(),this.revertToDefault(),this.closeContextMenu();break;case"ArrowRight":case"ArrowLeft":e.stopPropagation();break;case"ArrowUp":case"ArrowDown":this.returnFocusToContextMenu();break;default:e.stopPropagation()}}render(){const{formatString:e,forwardedProps:t,placeholder:n,title:s}=this.props,{menuItem:{description:i},iconElement:o}=t;return T("div",{className:"form-group flex-grow mb-0",children:[T("div",{className:"custom-format-title",children:[u("span",{className:"icon",children:o}),T("label",{className:"title mb-0",htmlFor:"custom-format-input",children:[s,i!=null&&u(Le,{children:i})]})]}),u("div",{className:"pl-2 pr-2 pb-2",children:u("input",{id:"custom-format-input",className:"form-control text-right mb-0",type:"text",defaultValue:e,ref:this.inputRef,placeholder:n,onKeyDown:this.handleKeyDown,onChange:this.handleInputChange,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:"false"})})]})}};let xa=Fa;xa.defaultProps={formatString:"",forwardedProps:{menuItem:{},closeMenu(e){},iconElement:null},placeholder:"",title:"",onChange(e){}};class vt{static isDefaultSelected(t){return!t||![ke.TYPE_CONTEXT_CUSTOM,ke.TYPE_CONTEXT_PRESET].includes(t.type)}static isCustomSelected(t){return t!=null&&t.type===ke.TYPE_CONTEXT_CUSTOM}static makeOption(t,n,s,i){return{title:t,description:t,group:s,format:n,isSelected:i}}static makeCustomFormatOption(t,n,s,i,o){return{title:t.label,description:t.label,format:t,group:n,isSelected:i,menuElement:u(xa,{formatString:t.formatString,title:t.label,placeholder:s,onChange:o})}}}const qt=class{static getOptions(e,t){const n=new Date,i=[{group:qt.dateGroup,formatString:"yyyy-MM-dd"},{group:qt.dateGroup,formatString:"MM-dd-yyyy"},{group:qt.timeGroup,formatString:"HH:mm:ss"},{group:qt.timeGroup,formatString:"HH:mm:ss.SSS"},{group:qt.timeGroup,formatString:"HH:mm:ss.SSSSSSSSS"},{group:qt.dateTimeGroup,formatString:"yyyy-MM-dd HH:mm:ss"},{group:qt.dateTimeGroup,formatString:"yyyy-MM-dd HH:mm:ss.SSS"},{group:qt.dateTimeGroup,formatString:"yyyy-MM-dd HH:mm:ss.SSSSSSSSS"}].map(r=>{const l=Hn.makeFormat("",r.formatString,Hn.TYPE_CONTEXT_PRESET),a=e.getFormattedString(n,x.dataType.DATETIME,"",l);return vt.makeOption(a,l,r.group,Hn.isSameFormat(l,t))});return[vt.makeOption("Default",null,qt.dateGroup,vt.isDefaultSelected(t)),...i]}};let oo=qt;oo.dateGroup=10;oo.timeGroup=20;oo.dateTimeGroup=30;const Kt=class{static getOptions(e,t){const n=[{format:Ve.FORMAT_PERCENT,group:Kt.presetGroup},{format:Ve.FORMAT_BASIS_POINTS,group:Kt.presetGroup},{format:Ve.FORMAT_MILLIONS,group:Kt.presetGroup},{format:Ve.FORMAT_SCIENTIFIC_NOTATION,group:Kt.presetGroup},{format:Ve.FORMAT_ROUND,group:Kt.presetRoundGroup},{format:Ve.FORMAT_ROUND_TWO_DECIMALS,group:Kt.presetRoundGroup},{format:Ve.FORMAT_ROUND_FOUR_DECIMALS,group:Kt.presetRoundGroup}],s=vt.makeOption("Default",null,Kt.defaultGroup,vt.isDefaultSelected(e)),i=n.map(a=>vt.makeOption(a.format.label,a.format,a.group,Ve.isSameFormat(a.format,e))),o=vt.isCustomSelected(e),r=o?e:Ve.makeCustomFormat(),l=vt.makeCustomFormatOption(r,Kt.customGroup,Ve.DEFAULT_FORMAT_STRING,o,a=>{if(a!=null){const c=Ve.makeCustomFormat(a);Ve.isValid(c)&&t(c)}else t(null)});return[s,...i,l]}};let ii=Kt;ii.defaultGroup=10;ii.presetGroup=20;ii.presetRoundGroup=30;ii.customGroup=40;const Xs=class{static getOptions(e,t){const n=[{format:Lt.FORMAT_MILLIONS,group:Xs.presetGroup},{format:Lt.FORMAT_SCIENTIFIC_NOTATION,group:Xs.presetGroup}],s=vt.makeOption("Default",null,Xs.defaultGroup,vt.isDefaultSelected(e)),i=n.map(a=>vt.makeOption(a.format.label,a.format,a.group,Lt.isSameFormat(a.format,e))),o=vt.isCustomSelected(e),r=o?e:Lt.makeCustomFormat(),l=vt.makeCustomFormatOption(r,Xs.customGroup,Lt.DEFAULT_FORMAT_STRING,o,a=>{if(a!=null){const c=Lt.makeCustomFormat(a);Lt.isValid(c)&&t(c)}else t(null)});return[s,...i,l]}};let ro=Xs;ro.defaultGroup=10;ro.presetGroup=20;ro.customGroup=30;const ul=ee.module("IrisGridContextMenuHandler"),Sm=150,ml="yyyy-MM-dd HH:mm:ss.SSSSSSSSS",q=class extends je{constructor(e){super(),this.debouncedUpdateCustomFormat=Tt(e.handleFormatSelection,Sm),this.irisGrid=e}static getQuickFilterCondition(e,t,n){return e&&n==="&&"?e.and(t):e&&n==="||"?e.or(t):t}static getQuickFilterText(e,t,n){return n&&e!=null?`${e} ${n} ${t}`:t}static getOperatorAsText(e){return e==="&&"?"And":"Or"}static getNumberValueEqualsFilter(e,t){const n=e.filter();if(t===Number.POSITIVE_INFINITY)return E.FilterCondition.invoke("isInf",n).and(n.greaterThan(E.FilterValue.ofNumber(0)));if(t===Number.NEGATIVE_INFINITY)return E.FilterCondition.invoke("isInf",n).and(n.lessThan(E.FilterValue.ofNumber(0)));if(Number.isNaN(t))return E.FilterCondition.invoke("isNaN",n);const s=q.getFilterValueForNumberOrChar(e.type,t);return n.eq(s)}static getFilterValueForNumberOrChar(e,t){return x.isCharType(e)?E.FilterValue.ofString(String.fromCharCode(t)):E.FilterValue.ofNumber(t)}componentWillUnmount(){this.debouncedUpdateCustomFormat.flush()}getHeaderActions(e,t){var F;const{irisGrid:n}=this,{column:s}=t;O(s);const{model:i}=n.props,{columns:o}=i,r=o[e],l=[],{metrics:a,reverseType:c,quickFilters:d,advancedFilters:h,searchFilter:m}=n.state,p=n.getTheme();O(a);const{filterIconColor:g,filterBarActiveColor:f,contextMenuSortIconColor:C,contextMenuReverseIconColor:b}=p,w=i.sort,S=x.getSortForColumn(w,e),I=c!==x.REVERSE_TYPE.NONE,{userColumnWidths:v}=a,R=[...v.values()].some(P=>P===0),M=i.isColumnFrozen(s);return l.push({title:"Hide Column",group:q.GROUP_HIDE_COLUMNS,action:()=>{this.irisGrid.hideColumnByVisibleIndex(s)}}),l.push({title:M?"Unfreeze Column":"Freeze Column",group:q.GROUP_HIDE_COLUMNS,action:()=>{M?this.irisGrid.unFreezeColumnByColumnName(r.name):this.irisGrid.freezeColumnByColumnName(r.name)},order:10}),l.push({title:"Show All Columns",group:q.GROUP_HIDE_COLUMNS,action:()=>{this.irisGrid.showAllColumns()},disabled:!R}),l.push({title:"Quick Filters",icon:on,iconColor:f,shortcut:Pt.TABLE.TOGGLE_QUICK_FILTER,group:q.GROUP_FILTER,order:10,action:()=>{this.irisGrid.toggleFilterBar(s)}}),l.push({title:"Advanced Filters",icon:h.get(e)?jo:Vi,iconColor:g,group:q.GROUP_FILTER,order:20,action:()=>{this.irisGrid.handleAdvancedMenuOpened(s)}}),l.push({title:"Clear Table Filters",group:q.GROUP_FILTER,order:40,shortcut:Pt.TABLE.CLEAR_FILTERS,action:()=>{this.irisGrid.clearAllFilters()},disabled:!(d.size>0||h.size>0||m!=null)}),l.push({title:"Sort by",icon:on,iconColor:C,group:q.GROUP_SORT,order:10,actions:this.sortByActions(r,e,S)}),l.push({title:"Add Additional Sort",disabled:S&&w.length===1||I&&w.length===1||S&&I&&w.length===2||w.length===0,group:q.GROUP_SORT,order:20,actions:this.additionalSortActions(r,e)}),l.push({title:"Clear Table Sorting",disabled:w.length===0||I&&w.length===1,group:q.GROUP_SORT,action:()=>{this.irisGrid.sortColumn(s,q.COLUMN_SORT_DIRECTION.none)},order:30}),l.push({title:c===x.REVERSE_TYPE.NONE?"Reverse Table":"Clear Reverse Table",icon:on,iconColor:b,group:q.GROUP_SORT,order:40,disabled:!i.isReversible,shortcut:Pt.TABLE.REVERSE,action:()=>{c===x.REVERSE_TYPE.NONE?this.irisGrid.reverse(x.REVERSE_TYPE.POST_SORT):this.irisGrid.reverse(x.REVERSE_TYPE.NONE)}}),l.push({title:"Copy Column Name",group:q.GROUP_COPY,action:()=>{var P;Se.copyToClipboard((P=i.textForColumnHeader(e))!=null?P:"").catch(W=>ul.error("Unable to copy header",W))}}),x.isDateType(r.type)?l.push({title:"Date/Time Format",group:q.GROUP_FORMAT,actions:this.dateFormatActions(r)}):x.isNumberType(r.type)&&l.push({title:"Number Format",group:q.GROUP_FORMAT,actions:(F=this.numberFormatActions(r))!=null?F:void 0}),l}getCellActions(e,t,n){O(e);const{irisGrid:s}=this,{column:i,row:o}=n,{model:r,canCopy:l}=s.props,{columns:a}=r,c=s.getModelRow(o);O(c);const d=r.valueForCell(e,c),h=r.textForCell(e,c),m=a[e],p=[],{quickFilters:g}=s.state,f=s.getTheme(),{filterIconColor:C}=f,{settings:b}=s.props,w=new Hn({timeZone:b==null?void 0:b.timeZone,showTimeZone:!1,showTSeparator:!0,defaultDateTimeFormatString:ml}),S=new Hn({timeZone:b==null?void 0:b.timeZone,showTimeZone:b==null?void 0:b.showTimeZone,showTSeparator:b==null?void 0:b.showTSeparator,defaultDateTimeFormatString:ml});if(m==null||o==null)return p;if(r.isFilterable(e)){const v={title:"Filter By Value",icon:on,iconColor:C,group:q.GROUP_FILTER,order:10,actions:[]};if(d==null)g.get(e)&&v.actions.push({title:"And",actions:this.nullFilterActions(m,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.nullFilterActions(m));else if(x.isBooleanType(m.type))g.get(e)&&v.actions.push({title:"Or",actions:this.booleanFilterActions(m,h,g.get(e),"||"),order:2,group:oe.groups.high}),v.actions.push(...this.booleanFilterActions(m,h));else if(x.isNumberType(m.type)||x.isCharType(m.type)){O(e);const R=x.isCharType(m.type)?String.fromCharCode(d):`${d}`;g.get(e)&&v.actions.push({title:"And",actions:this.numberFilterActions(m,R,d,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.numberFilterActions(m,R,d,g.get(e)))}else if(x.isDateType(m.type)){const R=w.format(d),M=S.format(d);g.get(e)&&v.actions.push({title:"And",actions:this.dateFilterActions(m,R,M,d,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.dateFilterActions(m,R,M,d,g.get(e)))}else g.get(e)&&v.actions.push({title:"And",actions:this.stringFilterActions(m,h,d,g.get(e),"&&"),order:2,group:oe.groups.high}),v.actions.push(...this.stringFilterActions(m,h,d));v.actions!=null&&v.actions.length>0&&p.push(v)}const I={title:"Go to",iconColor:C,shortcut:Pt.TABLE.GOTO_ROW,group:q.GROUP_GOTO,order:10,action:()=>this.irisGrid.toggleGotoRow(`${o+1}`)};return p.push(I),l&&(p.push({title:"Copy Cell",group:q.GROUP_COPY,order:10,action:()=>{s.copyCell(i,o)}}),p.push({title:"Copy Cell Unformatted",group:q.GROUP_COPY,order:20,action:()=>{s.copyCell(i,o,!0)}})),p}onContextMenu(e,t,n){const{irisGrid:s}=this,{y:i,column:o,row:r,columnHeaderDepth:l}=e,a=s.getModelColumn(o),c=s.getModelRow(r),{model:d,canCopy:h}=s.props,{columns:m}=d,{metrics:p,isFilterBarShown:g,quickFilters:f,advancedFilters:C,selectedRanges:b}=s.state;O(p);const{columnHeaderHeight:w,gridY:S,columnHeaderMaxDepth:I}=p,v=[];if(a!=null&&c!=null){const R=d.valueForCell(a,c),M=d.textForCell(a,c),F=m[a],{onContextMenu:P}=s.props;F!=null&&v.push(P({model:d,value:R,valueText:M,column:F,rowIndex:r,columnIndex:o,modelRow:c,modelColumn:a}))}return a!=null&&d.isFilterable(a)&&v.push({title:"Clear Column Filter",group:q.GROUP_FILTER,order:30,action:()=>{this.irisGrid.removeColumnFilter(a)},disabled:!(f.has(a)||C.has(a))}),(g?i<=S:i<=w*I&&l===0)?a!=null&&v.push(...this.getHeaderActions(a,e)):(a!=null&&c!=null&&v.push(...this.getCellActions(a,t,e)),h&&b.length>0&&(v.push({title:"Copy Selection",shortcut:ar.COPY,group:q.GROUP_COPY,order:30,action:()=>{s.copyRanges(b)}}),v.push({title:"Copy Selection w/ Headers",group:q.GROUP_COPY,order:40,action:()=>{s.copyRanges(b,!0)}})),Ae(d)&&d.isEditable&&b.length>0&&v.push({title:"Delete Selected Rows",group:q.GROUP_EDIT,order:50,action:()=>{this.irisGrid.deleteRanges(b)}})),v.length===0?!1:(O(s.gridWrapper),oe.triggerMenu(s.gridWrapper,n.pageX,n.pageY,v),!0)}dateFormatActions(e){const{model:t}=this.irisGrid.props,{formatter:n}=t,s=n.getColumnFormat(e.type,e.name),i=oo.getOptions(n,s),o=[];for(let r=0;r<i.length;r+=1){const{description:l,format:a,group:c,isSelected:d,title:h}=i[r];o.push({title:h,description:l,icon:d?is:void 0,group:c,order:r,action:()=>{const m=t.getColumnIndexByName(e.name);O(m),this.irisGrid.handleFormatSelection(m,a)}})}return o}numberFormatActions(e){const{model:t}=this.irisGrid.props,{formatter:n}=t,s=n.getColumnFormat(e.type,e.name);let i;const o=t.getColumnIndexByName(e.name);if(x.isDecimalType(e.type))i=ii.getOptions(s,l=>{O(o),this.debouncedUpdateCustomFormat(o,l)});else if(x.isIntegerType(e.type))i=ro.getOptions(s,l=>{O(o),this.debouncedUpdateCustomFormat(o,l)});else return ul.error("Invalid column type in numberFormatActions"),null;const r=[];for(let l=0;l<i.length;l+=1){const{format:a,isSelected:c}=i[l];r.push({...i[l],icon:c?is:void 0,order:l,action:()=>{o===void 0&&a&&a.type===ke.TYPE_CONTEXT_CUSTOM||(O(o),this.irisGrid.handleFormatSelection(o,a))}})}return r}stringFilterActions(e,t,n,s,i){const o=E.FilterValue.ofString(n);let r=s;r||(r={filter:null,text:null});const{filter:l,text:a}=r,c=[],{model:d}=this.irisGrid.props,h=d.getColumnIndexByName(e.name);return O(h),c.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[i?q.getOperatorAsText(i):""," ",'"',t,'"']}),order:1,group:oe.groups.high}),c.push({title:"text is exactly",description:`Show only rows where ${e.name} is ${n} (case sensitive)`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().eq(o),i),q.getQuickFilterText(a,`=${t}`,i))},order:10,group:oe.groups.low}),c.push({title:"text is not exactly",description:`Show only rows where ${e.name} is not ${t} (case sensitive)`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().notEq(o),i),q.getQuickFilterText(a,`!=${t}`,i))},order:20,group:oe.groups.low}),c.push({title:"text contains",description:`Show only rows where ${e.name} contains ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().contains(o),i),q.getQuickFilterText(a,`~${t}`,i))},order:30,group:oe.groups.low}),c.push({title:"text does not contain",description:`Show only rows where ${e.name} does not contain ${n}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().contains(o).not(),i),q.getQuickFilterText(a,`!~${t}`,i))},order:40,group:oe.groups.low}),c.push({title:"text starts with",description:`Show only rows where ${e.name} starts with ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().invoke("startsWith",o),i),q.getQuickFilterText(a,`${t}*`,i))},order:50,group:oe.groups.low}),c.push({title:"text ends with",description:`Show only rows where ${e.name} ends with ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(l,e.filter().invoke("endsWith",o),i),q.getQuickFilterText(a,`*${t}`,i))},order:60,group:oe.groups.low}),c}numberFilterActions(e,t,n,s,i){const o=q.getFilterValueForNumberOrChar(e.type,n);let r=null,l=null;s&&(r=s.filter,l=s.text);const a=[],c=n!==Number.POSITIVE_INFINITY&&n!==Number.NEGATIVE_INFINITY&&!Number.isNaN(n),{model:d}=this.irisGrid.props,h=d.getColumnIndexByName(e.name);return O(h),a.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[i?q.getOperatorAsText(i):""," ",'"',t,'"']}),order:1,group:oe.groups.high}),a.push({title:"is equal to",description:`Show only rows where ${e.name} is ${t}`,action:()=>{const m=q.getNumberValueEqualsFilter(e,n);this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,m,i),q.getQuickFilterText(l,`=${t}`,i))},order:10,group:oe.groups.low}),a.push({title:"is not equal to",description:`Show only rows where ${e.name} is not ${t}`,action:()=>{const m=q.getNumberValueEqualsFilter(e,n).not();this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,m,i),q.getQuickFilterText(l,`!=${t}`,i))},order:20,group:oe.groups.low}),c&&!x.isCharType(e.type)&&(a.push({title:"greater than",description:`Show only rows where ${e.name} is greater than ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().greaterThan(o),i),q.getQuickFilterText(l,`>${t}`,i))},order:30,group:oe.groups.low}),a.push({title:"greater than or equal to",description:`Show only rows where ${e.name} is greater than or equal to ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().greaterThanOrEqualTo(o),i),q.getQuickFilterText(l,`>=${t}`,i))},order:40,group:oe.groups.low}),a.push({title:"less than",description:`Show only rows where ${e.name} is less than ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().lessThan(o),i),q.getQuickFilterText(l,`<${t}`,i))},order:50,group:oe.groups.low}),a.push({title:"less than or equal to",description:`Show only rows where ${e.name} is less than or equal to ${t}`,action:()=>{this.irisGrid.setQuickFilter(h,q.getQuickFilterCondition(r,e.filter().lessThanOrEqualTo(o),i),q.getQuickFilterText(l,`<=${t}`,i))},order:60,group:oe.groups.low})),a}booleanFilterActions(e,t,n,s){const i=[],{model:o}=this.irisGrid.props,{filter:r,text:l}=n||{},a=o.getColumnIndexByName(e.name);return O(a),i.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[s?q.getOperatorAsText(s):""," ",'"',t!=null?t:"null",'"']}),order:1,group:oe.groups.high}),i.push({title:"true",description:`Show only rows where ${e.name} is true`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isTrue(),s),q.getQuickFilterText(l,"true",s))},order:10,group:oe.groups.low}),i.push({title:"false",description:`Show only rows where ${e.name} is false`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isFalse(),s),q.getQuickFilterText(l,"false",s))},order:20,group:oe.groups.low}),i.push({title:"is null",description:`Show only rows where ${e.name} is null`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isNull(),s),q.getQuickFilterText(l,"null",s))},order:30,group:oe.groups.low}),i.push({title:"is not null",description:`Show only rows where ${e.name} is not null`,action:()=>{this.irisGrid.setQuickFilter(a,q.getQuickFilterCondition(r,e.filter().isNull().not(),s),q.getQuickFilterText(l,"!null",s))},order:40,group:oe.groups.low}),i}dateFilterActions(e,t,n,s,i,o){const r=E.FilterValue.ofNumber(s);let l=null,a=null;i&&(l=i.filter,a=i.text);const{model:c}=this.irisGrid.props,d=c.getColumnIndexByName(e.name);O(d);const h=[];return h.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[o?q.getOperatorAsText(o):""," ",'"',n,'"']}),order:1,group:oe.groups.high}),h.push({title:"date is",description:`Show only rows where ${e.name} is ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().eq(r),o),q.getQuickFilterText(a,`=${t}`,o))},order:10,group:oe.groups.low}),h.push({title:"date is not",description:`Show only rows where ${e.name} is not ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().notEq(r),o),q.getQuickFilterText(a,`!=${t}`,o))},order:20,group:oe.groups.low}),h.push({title:"date is before",description:`Show only rows where ${e.name} is before ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().lessThan(r),o),q.getQuickFilterText(a,`<${t}`,o))},order:30,group:oe.groups.low}),h.push({title:"date is before or equal",description:`Show only rows where ${e.name} is before or equal to ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().lessThanOrEqualTo(r),o),q.getQuickFilterText(a,`<=${t}`,o))},order:40,group:oe.groups.low}),h.push({title:"date is after",description:`Show only rows where ${e.name} is greater than ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().greaterThan(r),o),q.getQuickFilterText(a,`>${t}`,o))},order:50,group:oe.groups.low}),h.push({title:"date is after or equal",description:`Show only rows where ${e.name} is after or equal to ${n}`,action:()=>{this.irisGrid.setQuickFilter(d,q.getQuickFilterCondition(l,e.filter().greaterThanOrEqualTo(r),o),q.getQuickFilterText(a,`>=${t}`,o))},order:60,group:oe.groups.low}),h}nullFilterActions(e,t,n){let s=null,i=null;t&&(s=t.filter,i=t.text);const o=[],{model:r}=this.irisGrid.props,l=r.getColumnIndexByName(e.name);return O(l),o.push({menuElement:T("div",{className:"iris-grid-filter-menu-item-value",children:[n?q.getOperatorAsText(n):""," ",'"null"']}),order:1,group:oe.groups.high}),o.push({title:"is null",description:`Show only rows where ${e.name} is null`,action:()=>{this.irisGrid.setQuickFilter(l,q.getQuickFilterCondition(s,e.filter().isNull(),n),q.getQuickFilterText(i,"null",n))},order:10,group:oe.groups.low}),o.push({title:"is not null",description:`Show only rows where ${e.name} is not null`,action:()=>{this.irisGrid.setQuickFilter(l,q.getQuickFilterCondition(s,e.filter().isNull().not(),n),q.getQuickFilterText(i,"!null",n))},order:20,group:oe.groups.low}),o}sortByActions(e,t,n){const s=this.irisGrid.getTheme(),{contextMenuSortIconColor:i}=s,o=[{title:`${e.name} Ascending`,order:10,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.ascending)?on:void 0,iconColor:i},{title:`${e.name} Descending`,order:20,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.descending)?on:void 0,iconColor:i},{title:"Remove Sort",order:50,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.none,!1,!0)},disabled:!n}];return x.isNumberType(e.type)&&(o.push({title:`ABS(${e.name}) Ascending`,order:30,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending,!0)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.ascending,!0)?on:void 0,iconColor:i}),o.push({title:`ABS(${e.name}) Descending`,order:40,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending,!0)},icon:this.checkColumnSort(n,q.COLUMN_SORT_DIRECTION.descending,!0)?on:void 0,iconColor:i})),o}additionalSortActions(e,t){const n=this.irisGrid.getTheme(),{contextMenuSortIconColor:s}=n,i=[{title:"Add Sort By",menuElement:T("div",{className:"btn-context-menu menu-title",children:[u("span",{className:"icon",children:u(K,{icon:on,style:{color:s!=null?s:void 0}})}),u("span",{className:"title",children:"Add Additional Sort"}),u("span",{className:"shortcut",children:Se.isMacPlatform()?"\u2318Click":"^Click"})]}),order:1},{title:`${e.name} Ascending`,order:10,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending,!1,!0)}},{title:`${e.name} Descending`,order:20,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending,!1,!0)}}];return x.isNumberType(e.type)&&(i.push({title:`ABS(${e.name}) Ascending`,order:30,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.ascending,!0,!0)}}),i.push({title:`ABS(${e.name}) Descending`,order:40,action:()=>{this.irisGrid.sortColumn(t,q.COLUMN_SORT_DIRECTION.descending,!0,!0)}})),i}checkColumnSort(e,t=null,n=!1){return e?e.direction===t&&e.isAbs===n:!1}};let Cn=q;Cn.GROUP_EDIT=oe.groups.high+10;Cn.GROUP_HIDE_COLUMNS=oe.groups.high+25;Cn.GROUP_FILTER=oe.groups.high+50;Cn.GROUP_GOTO=oe.groups.high+51;Cn.GROUP_SORT=oe.groups.high+75;Cn.GROUP_COPY=oe.groups.high+100;Cn.GROUP_FORMAT=oe.groups.high+150;Cn.COLUMN_SORT_DIRECTION={ascending:"ASC",descending:"DESC",none:null};class vm extends je{constructor(t){super(),this.irisGrid=t}onDoubleClick(t){const{column:n,row:s}=t;return s==null||n==null?!1:(this.irisGrid.selectData(n,s),!0)}}class Tm extends je{constructor(t){super(),this.irisGrid=t}onDown(t){const{y:n,column:s,row:i}=t;if(s!==null&&i===null){const{isFilterBarShown:o,metrics:r}=this.irisGrid.state;if(!r)throw new Error("Metrics not set");const{columnHeaderMaxDepth:l}=r,a=this.irisGrid.getTheme();if(o&&a.columnHeaderHeight!=null&&a.filterBarHeight!=null&&n>a.columnHeaderHeight*l&&n<=a.columnHeaderHeight*l+a.filterBarHeight)return this.irisGrid.focusFilterBar(s),!0}return!1}onMove(t){const{y:n,column:s}=t,{isFilterBarShown:i,hoverAdvancedFilter:o,metrics:r}=this.irisGrid.state;if(!r)throw new Error("Metrics not set");const{columnHeaderMaxDepth:l}=r,a=this.irisGrid.getTheme();let c=null;return i&&a.columnHeaderHeight!=null&&a.filterBarHeight!=null&&s!==null&&n>=a.columnHeaderHeight*l&&n<=a.columnHeaderHeight*l+a.filterBarHeight&&(c=s),c!==o&&this.irisGrid.setState({hoverAdvancedFilter:c}),!1}onLeave(t){const{column:n}=t,{hoverAdvancedFilter:s}=this.irisGrid.state;return s!==null&&n!==s&&this.irisGrid.setState({hoverAdvancedFilter:null}),!1}}class Em extends je{constructor(t){super(),this.column=null,this.irisGrid=t}getColumnFromGridPoint(t){const{column:n,row:s,columnHeaderDepth:i}=t;return n!==null&&s===null&&i===0?n:null}onDown(t){return this.column=this.getColumnFromGridPoint(t),!1}onClick(t,n,s){const i=this.getColumnFromGridPoint(t);if(i!=null&&i===this.column){const o=Se.isModifierKeyDown(s);return this.irisGrid.toggleSort(i,o),!0}return!1}}class ym extends je{constructor(t){super(),this.irisGrid=t}onWheel(t,n,s){const{irisGrid:i}=this,{model:o}=i.props,{metrics:r,pendingRowCount:l}=i.state;O(r);const{bottom:a,rowCount:c,rowHeight:d}=r,{deltaY:h}=U.getScrollDelta(s);return Ae(o)&&o.isEditable&&a>=c-1&&h>0&&i.setState({pendingRowCount:l+Math.ceil(h/d)}),!1}}const Rm=3e3,Im=({children:e=null,onEntering:t,onEntered:n,onExiting:s,onExited:i})=>{const[o,r]=y.exports.useState(!1),l=y.exports.useRef(),a=sr(e),c=y.exports.useCallback(()=>{r(!0),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{r(!1)},Rm)},[r,l]);return y.exports.useEffect(()=>{a!==e&&e!=null&&c()},[e,a,r,c]),y.exports.useEffect(()=>()=>l.current?clearTimeout(l.current):void 0,[]),u(io,{className:"toast-bottom-bar",isShown:o,onEntering:t,onEntered:n,onExiting:s,onExited:i,children:e})};class Mm extends ni{getVisibleColumnWidth(t,n,s=this.getFirstColumn(n),i=this.calculateTreePaddingX(n)){var d,h,m;const{model:o}=n,r=(h=(d=o.layoutHints)==null?void 0:d.hiddenColumns)!=null?h:[],l=this.getModelColumn(t,n),a=super.getVisibleColumnWidth(t,n,s,i);return!this.userColumnWidths.has(l)&&r.includes((m=o.columns[l])==null?void 0:m.name)?0:a}getGridY(t){let n=super.getGridY(t);const{isFilterBarShown:s,theme:i,advancedFilters:o,quickFilters:r,sorts:l,reverseType:a}=t;return s?n+=i.filterBarHeight:(r!=null&&r.size>0||o!=null&&o.size>0)&&(n+=i.filterBarCollapsedHeight),a!==x.REVERSE_TYPE.NONE&&l!=null&&l.length>0&&(n+=i.reverseHeaderBarHeight),n}getUserColumnWidths(){return this.userColumnWidths}}const Dm=1,Oa=j.memo(({model:e,modelColumns:t,top:n,bottom:s,left:i,right:o,filter:r,formatter:l,reverseType:a=x.REVERSE_TYPE.NONE,sorts:c,customColumns:d,movedColumns:h,hiddenColumns:m,alwaysFetchColumns:p,rollupConfig:g=null,totalsConfig:f=null,selectDistinctColumns:C=[],pendingRowCount:b=0,pendingDataMap:w=new Map,frozenColumns:S,formatColumns:I})=>{const v=y.exports.useMemo(()=>se.getModelViewportColumns(t,i,o,h,m,p,Dm),[t,i,o,h,m,p]);return y.exports.useEffect(function(){e.filter=r},[e,r]),y.exports.useEffect(function(){const M=[...c];a!==x.REVERSE_TYPE.NONE&&M.push(E.Table.reverse()),e.sort=M},[e,c,a]),y.exports.useEffect(function(){e.formatter=l},[e,l]),y.exports.useEffect(function(){e.isCustomColumnsAvailable&&(e.customColumns=d)},[e,d]),y.exports.useEffect(function(){e.isFormatColumnsAvailable&&(e.formatColumns=I)},[e,I]),y.exports.useEffect(function(){e.setViewport(n,s,v)},[e,n,s,v]),y.exports.useEffect(function(){e.isRollupAvailable&&(e.rollupConfig=g)},[e,e.isRollupAvailable,g]),y.exports.useEffect(function(){e.isSelectDistinctAvailable&&(e.selectDistinctColumns=C)},[e,C]),y.exports.useEffect(function(){e.isTotalsAvailable&&(e.totalsConfig=f)},[e,e.isTotalsAvailable,f]),y.exports.useEffect(function(){e.pendingRowCount=b},[e,b]),y.exports.useEffect(function(){e.pendingDataMap=w},[e,w]),y.exports.useEffect(function(){S&&e.updateFrozenColumns(S)},[e,S]),null});Oa.displayName="IrisGridModelUpdater";const zt=Object.freeze({SORT_UP:"sortUp",SORT_DOWN:"sortDown",CARET_DOWN:"caretDown",CARET_RIGHT:"caretRight",CELL_OVERFLOW:"cellOverflow"}),Mo=16;class Zs extends Ns{constructor(){super(),this.icons={},this.initIcons()}static isFilterValid(t,n){const s=t==null||t.filter!=null,i=n==null||n.filter!=null;return s&&i}initIcons(){this.setIcon(zt.SORT_UP,Ud),this.setIcon(zt.SORT_DOWN,Vd),this.setIcon(zt.CARET_DOWN,On),this.setIcon(zt.CARET_RIGHT,Kl),this.setIcon(zt.CELL_OVERFLOW,pd)}setIcon(t,n){const s=Array.isArray(n.icon[4])?n.icon[4][0]:n.icon[4],i=new Path2D(s),o=new Path2D,r={a:Mo/n.icon[0],d:Mo/n.icon[1]};o.addPath(i,r),this.icons[t]=o}getIcon(t){return this.icons[t]}getSortIcon(t){return t?t.direction===x.sortDirection.ascending?this.getIcon(zt.SORT_UP):t.direction===x.sortDirection.descending?this.getIcon(zt.SORT_DOWN):null:null}drawCanvas(t){super.drawCanvas(t),this.drawScrim(t)}drawGrid(t,n){super.drawGrid(t,n),this.drawCellOverflowButton(n)}drawGridLines(t,n){super.drawGridLines(t,n),this.drawGroupedColumnLine(t,n),this.drawPendingRowLine(t,n)}drawCellContent(t,n,s,i){var m;const{metrics:o,model:r}=n,{modelColumns:l,modelRows:a}=o,c=L(a,i),d=l.get(s);if(d===void 0)return;const h=r.valueForCell(d,c);if(x.isTextType((m=r.columns[d])==null?void 0:m.type)&&(h===null||h==="")){const p=t.font;t.font=`italic ${p}`;const g=h===null?"null":"empty";super.drawCellContent(t,n,s,i,g),t.font=p;return}super.drawCellContent(t,n,s,i)}drawGroupedColumnLine(t,n){const{metrics:s,model:i,theme:o}=n,{groupedColumns:r,columns:l}=i,{maxY:a,visibleColumnWidths:c,visibleColumnXs:d}=s;if(r.length===0||o.groupedColumnDividerColor==null)return;const h=r[r.length-1],m=l.findIndex(C=>C.name===h.name),p=d.get(m),g=c.get(m);if(p==null||g==null)return;const f=p+g+.5;t.strokeStyle=o.groupedColumnDividerColor,t.lineWidth=1,t.beginPath(),t.moveTo(f,0),t.lineTo(f,a),t.stroke()}drawPendingRowLine(t,n){const{metrics:s,model:i,theme:o}=n,{visibleRowYs:r,maxX:l}=s,{pendingRowCount:a}=i;if(a<=0)return;const c=i.rowCount-i.pendingRowCount-i.floatingBottomRowCount;let d=r.get(c);d!=null&&(d-=.5,t.save(),t.setLineDash([4,2]),t.strokeStyle=o.pendingTextColor,t.lineWidth=1,t.beginPath(),t.moveTo(0,d),t.lineTo(l,d),t.stroke(),t.restore())}drawMouseColumnHover(t,n){const{theme:s,metrics:i,hoverSelectColumn:o}=n;if(o==null||s.linkerColumnHoverBackgroundColor==null)return;const{visibleColumnWidths:r,visibleColumnXs:l,maxY:a}=i,c=l.get(o),d=r.get(o);O(c),O(d),t.fillStyle=s.linkerColumnHoverBackgroundColor,t.fillRect(c,0,d,a)}drawMouseRowHover(t,n){const{isSelectingColumn:s}=n;s||super.drawMouseRowHover(t,n)}drawScrim(t){const{context:n,loadingScrimProgress:s,metrics:i,theme:o}=t;if(s==null)return;const{width:r,height:l,gridY:a}=i,{scrimBlurSize:c,scrimColor:d}=o;n.save(),n.globalCompositeOperation="color",n.filter=`blur(${c}px)`,d!=null&&(n.fillStyle=d),n.beginPath(),n.rect(0,a,r,l-a),n.clip(),n.fillRect(-c,-c+a,c*2+r,(c*2+(l-a))*s),n.globalCompositeOperation="overlay",n.filter=`blur(${c}px) opacity(15%)`,n.fillRect(-c,-c+a,c*2+r,(c*2+(l-a))*s),n.restore()}drawColumnHeaders(t,n){super.drawColumnHeaders(t,n);const{theme:s,metrics:i,model:o,reverseType:r}=n,{columnHeaderHeight:l}=i;if(this.drawFilterHeaders(t,n),l<=0)return;const{sort:a}=o;if(a.length===1){const c=r!==x.REVERSE_TYPE.NONE;let d;c?d=s.headerReverseBarColor:d=s.headerSortBarColor,this.drawHeaderBar(t,n,d,c?s.reverseHeaderBarHeight:s.sortHeaderBarHeight)}else a.length>1&&(r!==x.REVERSE_TYPE.NONE&&this.drawHeaderBar(t,n,s.headerReverseBarColor,s.reverseHeaderBarHeight,!1),this.drawHeaderBar(t,n,s.headerSortBarColor,s.sortHeaderBarHeight))}drawHeaderBar(t,n,s,i,o=!0){const{theme:r,metrics:l,model:a}=n,{columnHeaderHeight:c,width:d}=l;let h=0;o||(h=i),t.fillStyle=r.headerBarCasingColor,t.fillRect(0,a.columnHeaderMaxDepth*c-i-2+h,d,i+2),t.fillStyle=s,t.fillRect(0,a.columnHeaderMaxDepth*c-i-1+h,d,i)}drawColumnHeadersAtDepth(t,n,s,i,o){const{metrics:r,model:l,isMenuShown:a}=n,{columnHeaderMaxDepth:c}=l,{width:d}=r,h={...i,maxX:o===c-1&&i.maxX===d?d-(a?0:30):i.maxX};super.drawColumnHeadersAtDepth(t,n,s,h,o)}drawColumnHeaderAtIndex(t,n,s,i){var H;super.drawColumnHeaderAtIndex(t,n,s,i);const{metrics:o,model:r,theme:l}=n,{modelColumns:a,visibleColumnWidths:c,visibleColumnXs:d,gridX:h,columnHeaderHeight:m,fontWidths:p}=o,{headerHorizontalPadding:g}=l,f=L(c,s,0),C=L(d,s)+h,b=a.get(s);if(b==null)return;const w=x.getSortForColumn(r.sort,b);if(!w)return;const S=this.getSortIcon(w);if(!S)return;const I=r.textForColumnHeader(b);if(I===void 0)return;const v=(H=p.get(t.font))!=null?H:Ns.DEFAULT_FONT_WIDTH;O(v);const R=I.length*v,M=h+C+R+g;let{maxX:F}=i;F-=g;const P=h+C+f-g-1,W=M>F?M+1:Math.min(F,P),B=w.direction===x.sortDirection.ascending?-6:-12,N=m*.5+B;t.save(),t.beginPath(),t.rect(C,0,f,m),t.clip(),t.fillStyle=l.headerSortBarColor,t.translate(W,N),t.fill(S),t.restore()}drawFilterHeaders(t,n){const{isFilterBarShown:s,quickFilters:i,advancedFilters:o}=n;s?this.drawExpandedFilterHeaders(t,n):(i!=null&&i.size>0||o!=null&&o.size>0)&&this.drawCollapsedFilterHeaders(t,n)}drawExpandedFilterHeaders(t,n){const{metrics:s,model:i,theme:o,quickFilters:r,advancedFilters:l}=n,{filterBarHeight:a}=o;if(a<=0)return;const{gridX:c,gridY:d,maxX:h,modelColumns:m,visibleColumns:p,visibleColumnWidths:g,visibleColumnXs:f}=s,C=d-a;t.save(),t.font=o.font,t.textAlign="left",r!=null&&r.size>0||l!=null&&l.size>0?t.fillStyle=o.filterBarExpandedActiveBackgroundColor:t.fillStyle=o.filterBarExpandedBackgroundColor,t.fillRect(c,C,h,a-1),t.fillStyle=o.headerBarCasingColor,t.fillRect(c,C+a-1,h,1);const b=C;t.strokeStyle=o.filterBarSeparatorColor,t.beginPath();for(let w=0;w<p.length;w+=1){const S=p[w],I=L(m,S),v=L(f,S),R=L(g,S);if(i.isFilterable(I)&&R>0){const M=c+(v!=null?v:0);t.rect(M+.5,b+.5,R,a-2)}}t.stroke();for(let w=0;w<p.length;w+=1){const S=p[w],I=L(g,S),R=L(f,S)+c;this.drawExpandedFilterHeader(t,n,S,R,I)}t.restore()}drawExpandedFilterHeader(t,n,s,i,o){if(o<=0)return;const{metrics:r,theme:l,quickFilters:a,advancedFilters:c}=n,{modelColumns:d,gridY:h}=r,{filterBarHeight:m,filterBarExpandedActiveCellBackgroundColor:p,filterBarErrorColor:g,filterBarHorizontalPadding:f,headerColor:C}=l,b=h-m,w=d.get(s);if(w===void 0)return;const S=a.get(w),I=c.get(w);if(S==null&&I==null)return;let v=null;if(S!=null){const{text:M}=S;if(v=M,v||(v=x.getFilterText(S.filter)),v!=null){const{fontWidths:F}=r;let P=F.get(t.font);(P==null||P===0)&&(P=t.measureText("8").width,P||(P=10));const W=(o-f*2)/P;W<=0?v="":v.length>W&&(v=`${v.substring(0,W-1)}\u2026`)}}if(t.save(),Zs.isFilterValid(I,S)&&p!=null)t.fillStyle=p,t.fillRect(i+1,b+1,o-1,m-3);else if(g!=null){t.fillStyle=g,t.lineWidth=2,t.strokeStyle=g;const M=i+2,F=b+2,P=o-3,W=m-5;t.strokeRect(M,F,P,W)}if(v!=null&&v!==""){const M=i+f,F=b+m*.5+1;t.fillStyle=C,t.fillText(v,M,F)}t.restore()}drawCollapsedFilterHeaders(t,n){const{metrics:s,theme:i}=n,{headerSeparatorColor:o,filterBarCollapsedHeight:r}=i;if(r<=0)return;const{gridX:l,gridY:a,maxX:c,visibleColumns:d,visibleColumnWidths:h,visibleColumnXs:m}=s,p=a-r;t.save(),t.fillStyle=o,t.fillRect(l,p,c,r);for(let g=0;g<d.length;g+=1){const f=d[g],C=h.get(f),b=m.get(f);if(b!=null&&C!=null){const w=b+l;this.drawCollapsedFilterHeader(t,n,f,w,C)}}t.restore()}drawCollapsedFilterHeader(t,n,s,i,o){if(o<=0)return;const{metrics:r,theme:l,quickFilters:a,advancedFilters:c}=n,{modelColumns:d,gridY:h}=r,m=d.get(s);if(m===void 0)return;const p=a.get(m),g=c.get(m),{filterBarCollapsedHeight:f,filterBarActiveColor:C,filterBarActiveBackgroundColor:b,filterBarErrorColor:w}=l;t.save();const S=Zs.isFilterValid(g,p);b!=null&&p==null&&g==null?t.fillStyle=b:C!=null&&S?t.fillStyle=C:w!=null&&(t.fillStyle=w);const I=i+1,v=h-f,R=o-1,M=f-1;t.fillRect(I,v,R,M),t.restore()}drawTreeMarker(t,n,s,i,o,r,l){t.save();const{x1:a,y1:c}=o,d=l?this.getIcon(zt.CARET_DOWN):this.getIcon(zt.CARET_RIGHT),h=s+a-2,m=i+c+2.5;t.fillStyle=r,t.textAlign="center",t.translate(h,m),t.fill(d),t.restore()}drawRowFooters(t,n){const{metrics:s,model:i,mouseX:o,mouseY:r,theme:l}=n,{gridY:a,gridX:c,maxX:d,modelRows:h,floatingTopHeight:m,floatingBottomHeight:p,floatingRows:g,rowFooterWidth:f,height:C,horizontalBarHeight:b,verticalBarWidth:w,visibleRowHeights:S,visibleRowYs:I,width:v}=s;if(f<=0||g.length===0)return;const{cellHorizontalPadding:R,floatingGridRowColor:M,floatingRowBackgroundColors:F,headerColor:P,rowHoverBackgroundColor:W}=l;t.translate(c,a),t.beginPath();const B=Math.min(d,v-f-w-c);t.fillStyle=F,m>0&&t.rect(B,0,f,m),p>0&&t.rect(B,C-a-b-p,f,p),t.fill();const N=o!=null&&r!=null&&o>=c&&o<=d+f?U.getRowAtY(r,s):null;if(W!=null&&N!==null&&g.includes(N)){t.fillStyle=W;const A=I.get(N),k=S.get(N);O(A),O(k),t.fillRect(B,A,f,k)}if(t.beginPath(),M!=null&&(t.strokeStyle=M),m>0&&(t.moveTo(B+.5,.5),t.lineTo(B+.5,m-.5)),p>0){const A=C-a-b-p;t.moveTo(B-.5,A+.5),t.lineTo(B-.5,A+p-.5)}t.stroke(),t.fillStyle=P,t.textAlign="left";const H=B+R;for(let A=0;A<g.length;A+=1){const k=g[A],_=S.get(k),V=I.get(k),G=h.get(k);if(V!=null&&_!=null&&G!=null){const J=V+_*.5;t.fillText(i.textForRowFooter(G),H,J)}}t.translate(-c,-a)}getTextRenderMetrics(t,n,s,i){const o=super.getTextRenderMetrics(t,n,s,i),{mouseX:r,mouseY:l,metrics:a}=n;if(r==null||l==null)return o;const{column:c,row:d}=U.getGridPointFromXY(r,l,a);if(s===c&&i===d){const{left:h}=this.getCellOverflowButtonPosition(n);this.shouldRenderOverflowButton(n)&&h!=null&&(o.width=h-a.gridX-o.x)}return o}shouldRenderOverflowButton(t){var C,b;const{context:n,mouseX:s,mouseY:i,metrics:o,model:r,theme:l}=t;if(s==null||i==null)return!1;const{row:a,column:c,modelRow:d,modelColumn:h}=U.getCellInfoFromXY(s,i,o);if(a==null||c==null||d==null||h==null||!x.isStringType(r.columns[h].type))return!1;const m=(C=r.textForCell(h,d))!=null?C:"",{width:p}=super.getTextRenderMetrics(n,t,c,a),g=(b=o.fontWidths.get(l.font))!=null?b:Zs.DEFAULT_FONT_WIDTH;n.save(),n.font=l.font;const f=this.getCachedTruncatedString(n,m,p,g,r.truncationCharForCell(h,d));return n.restore(),m!==""&&f!==m}getCellOverflowButtonPosition({mouseX:t,mouseY:n,metrics:s,theme:i}){const o={left:null,top:null,width:null,height:null};if(t==null||n==null||!s)return o;const{rowHeight:r,columnWidth:l,left:a,top:c}=U.getCellInfoFromXY(t,n,s);O(a),O(l),O(c);const{width:d,verticalBarWidth:h}=s,{cellHorizontalPadding:m}=i,p=Mo+2*m,g=r,C=Math.min(s.gridX+a+l,d-h)-p,b=s.gridY+c;return{left:C,top:b,width:p,height:g}}drawCellOverflowButton(t){const{context:n,mouseX:s,mouseY:i,theme:o}=t;if(s==null||i==null||!this.shouldRenderOverflowButton(t))return;const{left:r,top:l,width:a,height:c}=this.getCellOverflowButtonPosition(t),{cellHorizontalPadding:d,overflowButtonColor:h,overflowButtonHoverColor:m}=o;n.save(),m!=null&&r!=null&&a!=null&&l!=null&&c!=null&&s>=r&&s<=r+a&&i>=l&&i<=l+c?n.fillStyle=m:h!=null&&(n.fillStyle=h);const p=this.getIcon(zt.CELL_OVERFLOW);r!=null&&l!=null&&n.translate(r+d,l+2),n.fill(p),n.restore()}}const Nm="12px Fira Sans, sans-serif",Fm="#f0f0ee",xm="#1a171a",ne={"grid-bg":"#211f22",font:Nm,white:Fm,black:xm,"header-bg":"#2d2a2e","header-color":"#f0f0ee","header-height":"30px","header-separator-color":"#211f22","header-separator-hover-color":"#929192","header-hidden-separator-hover-color":"#4878ea","header-sort-bar-color":"#aa9af4","header-reverse-bar-color":"#548d29","header-bar-casing-color":"#211f22","header-font":"600 12px Fira Sans, sans-serif","row-height":"19px","row-background-colors":"#373438 #2d2a2e","selection-color":"rgba(118, 217, 228, 0.09)","selection-outline-color":"#76d9e4","selection-outline-casing-color":"#211f22","row-hover-bg":"#4b494c","selected-row-hover-bg":"rgba(118, 217, 228, 0.25)","scroll-bar-active-selection-tick-color":"rgba(118, 217, 228, 0.5)","scroll-bar-bg":"#322f33","scroll-bar-hover-bg":"#373438","scroll-bar-casing-color":"#555356","scroll-bar-corner-color":"#322f33","scroll-bar-color":"#5b5a5c","scroll-bar-hover-color":"#929192","scroll-bar-active-color":"#c0bfbf","text-color":"#f0f0ee","positive-number-color":"#9edc6f","negative-number-color":"#f95d84","zero-number-color":"#fcd65b","date-color":"#fcd65b","pending-text-color":"#fde38d","error-text-color":"#f95d84","null-string-color":"#929192","filter-bar-active-bg":"#425175","filter-bar-active-color":"#4878ea","filter-bar-expanded-bg":"#373438","filter-bar-expanded-active-bg":"#313849","filter-bar-expanded-active-cell-bg":"#374d80","filter-bar-separator-color":"#929192","filter-bar-error-color":"#f95d84","filter-icon-color":"#4878ea","scrim-color":"#211f22","context-menu-sort-icon-color":"#aa9af4","context-menu-reverse-icon-color":"#548d29","linker-column-hover-bg":"rgba(118, 217, 228, 0.09)","tree-line-color":"#5b5a5c","tree-marker-color":"#c0bfbf","tree-marker-hover-color":"#fcfcfa","grouped-column-divider-color":"#1a171a","floating-grid-row-color":"#555356","floating-row-background-colors":"#403e41","floating-divider-inner-color":"#403e41","floating-divider-outer-color":"#211f22","overflow-button-color":"#c0bfbf","overflow-button-hover-color":"#fcfcfa"},Aa=Object.freeze({backgroundColor:ne["grid-bg"],white:ne.white,black:ne.black,font:ne.font,headerBackgroundColor:ne["header-bg"],headerColor:ne["header-color"],headerSeparatorColor:ne["header-separator-color"],headerSeparatorHoverColor:ne["header-separator-hover-color"],headerHiddenSeparatorHoverColor:ne["header-hidden-separator-hover-color"],headerSortBarColor:ne["header-sort-bar-color"],headerReverseBarColor:ne["header-reverse-bar-color"],headerBarCasingColor:ne["header-bar-casing-color"],headerFont:ne["header-font"],rowBackgroundColors:ne["row-background-colors"],rowHoverBackgroundColor:ne["row-hover-bg"],selectionColor:ne["selection-color"],selectionOutlineColor:ne["selection-outline-color"],selectionOutlineCasingColor:ne["selection-outline-casing-color"],selectedRowHoverBackgroundColor:ne["selected-row-hover-bg"],scrollBarBackgroundColor:ne["scroll-bar-bg"],scrollBarHoverBackgroundColor:ne["scroll-bar-hover-bg"],scrollBarCasingColor:ne["scroll-bar-casing-color"],scrollBarCornerColor:ne["scroll-bar-corner-color"],scrollBarColor:ne["scroll-bar-color"],scrollBarHoverColor:ne["scroll-bar-hover-color"],scrollBarActiveColor:ne["scroll-bar-active-color"],scrollBarSelectionTickColor:ne["selected-row-hover-bg"],scrollBarActiveSelectionTickColor:ne["scroll-bar-active-selection-tick-color"],textColor:ne["text-color"],positiveNumberColor:ne["positive-number-color"],negativeNumberColor:ne["negative-number-color"],zeroNumberColor:ne["zero-number-color"],dateColor:ne["date-color"],pendingTextColor:ne["pending-text-color"],errorTextColor:ne["error-text-color"],nullStringColor:ne["null-string-color"],filterBarActiveBackgroundColor:ne["filter-bar-active-bg"],filterBarExpandedBackgroundColor:ne["filter-bar-expanded-bg"],filterBarExpandedActiveBackgroundColor:ne["filter-bar-expanded-active-bg"],filterBarExpandedActiveCellBackgroundColor:ne["filter-bar-expanded-active-cell-bg"],filterBarSeparatorColor:ne["filter-bar-separator-color"],filterBarActiveColor:ne["filter-bar-active-color"],filterBarErrorColor:ne["filter-bar-error-color"],filterIconColor:ne["filter-icon-color"],scrimColor:ne["scrim-color"],contextMenuSortIconColor:ne["context-menu-sort-icon-color"],contextMenuReverseIconColor:ne["context-menu-reverse-icon-color"],allowRowResize:!1,autoSelectRow:!0,gridColumnColor:null,gridRowColor:null,groupedColumnDividerColor:ne["grouped-column-divider-color"],columnHoverBackgroundColor:null,headerHorizontalPadding:12,scrollBarSize:13,scrollBarHoverSize:16,minScrollHandleSize:24,rowHeight:parseInt(ne["row-height"],10)||19,columnWidth:100,rowHeaderWidth:0,rowFooterWidth:60,columnHeaderHeight:parseInt(ne["header-height"],10)||30,filterBarHeight:30,filterBarCollapsedHeight:5,sortHeaderBarHeight:2,reverseHeaderBarHeight:4,filterBarHorizontalPadding:4,scrimBlurSize:25,minScrimTransitionTime:150,maxScrimTransitionTime:350,scrollSnapToRow:!0,linkerColumnHoverBackgroundColor:ne["linker-column-hover-bg"],treeLineColor:ne["tree-line-color"],treeMarkerColor:ne["tree-marker-color"],treeMarkerHoverColor:ne["tree-marker-hover-color"],floatingGridColumnColor:null,floatingGridRowColor:ne["floating-grid-row-color"],floatingRowBackgroundColors:ne["floating-row-background-colors"],floatingDividerInnerColor:ne["floating-divider-inner-color"],floatingDividerOuterColor:ne["floating-divider-outer-color"],overflowButtonColor:ne["overflow-button-color"],overflowButtonHoverColor:ne["overflow-button-hover-color"]});const Fi=ee.module("ColumnStatistics"),Om={SIZE:"Number of Rows"},zo=class extends y.exports.Component{constructor(e){super(e),this.handleError=this.handleError.bind(this),this.handleGenerateStatistics=this.handleGenerateStatistics.bind(this),this.handleStatistics=this.handleStatistics.bind(this),this.handleCopyHeader=this.handleCopyHeader.bind(this),this.cancelablePromise=null,this.state={error:null,loading:!1,statistics:null,numRows:0,copied:!1}}static getStatsLabel(e){var t;return(t=Om[e])!=null?t:e.split(" ").map(n=>n[0].toUpperCase()+n.substr(1).toLowerCase()).join(" ")}componentDidMount(){this.maybeGenerateStatistics()}componentWillUnmount(){this.cancelablePromise&&this.cancelablePromise.cancel()}handleCopyHeader(){this.setState({copied:!0})}maybeGenerateStatistics(){const{model:e}=this.props,t=e.rowCount-e.pendingRowCount;this.setState({numRows:t}),e.isColumnStatisticsAvailable?t<zo.AUTO_GENERATE_LIMIT&&this.handleGenerateStatistics():this.setState({loading:!1})}handleGenerateStatistics(){this.setState({loading:!0});const{column:e,model:t}=this.props;this.cancelablePromise=He.makeCancelable(t.columnStatistics(e)),this.cancelablePromise.then(this.handleStatistics).catch(this.handleError)}handleStatistics(e){Fi.debug("Received statistics",e);const{model:t,onStatistics:n}=this.props,s=[];e.statisticsMap.forEach((i,o)=>{s.push({operation:zo.getStatsLabel(o),value:i,type:e.getType(o)})}),e.uniqueValues.forEach((i,o)=>{s.push({operation:o,className:"column-statistics-unique-value",value:i,type:"long"})}),this.setState({loading:!1,statistics:s,numRows:t.rowCount-t.pendingRowCount}),n()}handleError(e){if(e!=null&&He.isCanceled(e)){Fi.debug("Called handleError on a cancelled promise result");return}Fi.error("Error generating statistics",e),this.setState({error:e,loading:!1,statistics:null})}render(){const{column:e,model:t}=this.props,{error:n,loading:s,statistics:i,numRows:o,copied:r}=this.state,l=!s&&n==null&&i==null&&t.isColumnStatisticsAvailable,a=[],c=e.type.substring(e.type.lastIndexOf(".")+1),d=e.description===null?null:e.description;if(i!=null)for(let g=0;g<i.length;g+=1){const{operation:f,className:C,value:b,type:w}=i[g],S=w?t.displayString(b,w):t.displayString(b,e.type,e.name),I=T(j.Fragment,{children:[u("div",{className:$("column-statistic-operation",C),children:f}),u("div",{className:"column-statistic-value",children:S})]},f);a.push(I)}const h=ze(t)&&t.hasExpandableRows?"Expanded Rows":"Number of Rows",m=t.displayString(o,"long"),p=t.getColumnIndexByName(e.name);return T("div",{className:"column-statistics",children:[T("div",{className:"column-statistics-title",children:[e.name,T("span",{className:"column-statistics-type",children:["\xA0(",c,")"]}),u(Y,{kind:"ghost",className:"column-statistics-copy",icon:r?$l:Vl,onClick:()=>{Se.copyToClipboard(e.name).then(this.handleCopyHeader).catch(g=>Fi.error("Unable to column name",g))},tooltip:r?"Copied text":"Copy column name"})]}),d!=null&&u("div",{className:"column-statistics-description",children:d}),p!=null&&!t.isColumnMovable(p)&&T("div",{className:"column-statistics-status",children:[u(K,{icon:t.isColumnFrozen(p)?Ad:fd,className:"mr-1"}),t.isColumnFrozen(p)?"Frozen":"Not movable"]}),T("div",{className:"column-statistics-grid",children:[i==null&&T(Ne,{children:[u("div",{className:"column-statistic-operation",children:h}),u("div",{className:"column-statistic-value",children:m})]}),a]}),l&&u(Y,{kind:"ghost",className:"px-0",onClick:this.handleGenerateStatistics,children:"Generate Stats"}),n!=null&&u("div",{className:"error-message",children:`${n}`}),i&&!s&&u(Y,{kind:"ghost",className:"px-0",onClick:this.handleGenerateStatistics,icon:u(K,{icon:Hd,className:"mr-1"}),children:"Refresh"}),s&&T("div",{className:"column-statistics-loading",children:[u(Vt,{className:"mr-2"}),"Calculating Stats..."]})]})}};let ka=zo;ka.AUTO_GENERATE_LIMIT=1e5;class xi extends y.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,i){const o=i?s.filter(r=>!n.includes(r.name)).map(r=>r.name):n;if(t&&o.length>0){const r=E.FilterValue.ofString(t);return o.length===s.length?E.FilterCondition.search(r):E.FilterCondition.search(r,s.filter(a=>o.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:i}=this.props;n(t.target.value,s,i)}sendColumnChange(t,n){const{onChange:s,value:i}=this.props;s(i,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(i=>i!==t),s);else{const i=n.slice();i.push(t),this.sendColumnChange(i,s)}}selectAll(){this.setInvertSelection(!0)}clear(){this.setInvertSelection(!1)}selectNumbers(){const{columns:t}=this.props;this.sendColumnChange(t.filter(n=>x.isNumberType(n.type)).map(n=>n.name),!1)}render(){const{value:t,selectedColumns:n,invertSelection:s,columns:i}=this.props,{isConfigureColumnsShown:o}=this.state,r=n.length===0&&s===!0||n.length===i.length&&s===!1,l=n.length===0&&s===!1||n.length===i.length&&s===!0;let a;return r?a=T(Ne,{children:[u(K,{icon:zr,mask:Eo,transform:"shrink-2 down-5 right-7"}),u(K,{icon:Dd,className:"text-primary",transform:"shrink-4 down-5 right-7"})]}):l?a=T(Ne,{children:[u(K,{icon:Qo,mask:Eo,transform:"shrink-1 down-5 right-7"}),u(K,{icon:$r,className:"text-danger",transform:"shrink-4 down-5 right-7"})]}):a=T(Ne,{children:[u(K,{icon:zr,mask:Eo,transform:"shrink-2 down-5 right-7"}),u(K,{icon:_d,className:"text-primary",transform:"shrink-4 down-5 right-7"})]}),T("div",{className:"cross-column-container",children:[u(Bn,{className:"cross-column-search",placeholder:"Search Data...",value:t,onChange:this.handleSearchValueChange,ref:this.searchField}),T("button",{type:"button",className:"btn btn-link btn-link-icon px-2",onClick:()=>{o?this.setState({isConfigureColumnsShown:!1}):this.setState({isConfigureColumnsShown:!0})},children:[u("div",{className:"fa-layers",children:a}),u(Le,{children:"Configure Columns"}),u(fn,{isShown:o,className:"cross-column-popper",onExited:()=>{this.setState({isConfigureColumnsShown:!1})},closeOnBlur:!0,interactive:!0,children:T("div",{className:"cross-column-popup",children:["Searched Columns",u("div",{className:"cross-column-scroll",children:i.map(c=>T(j.Fragment,{children:[u(It,{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))}),T("div",{className:"cross-column-button-bar",children:[u("button",{type:"button",className:"btn btn-link",onClick:this.selectAll,children:"Select All"}),u("button",{type:"button",className:"btn btn-link",onClick:this.clear,children:"Clear"}),u("button",{type:"button",className:"btn btn-link",onClick:this.selectNumbers,children:"Numbers Only"})]}),l&&T("p",{className:"text-danger",children:[u(K,{icon:$r})," Select at least one column to search."]})]})})]})]})}}const Tn=ee.module("PartitionSelectorSearch"),Am=150,La=class extends y.exports.Component{constructor(e){super(e),this.debounceUpdateFilter=Tt(()=>{this.updateFilter()},Am),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 Is||Tn.error(e)}componentDidMount(){this.startListening()}componentDidUpdate(e,t){const{isLoading:n,itemCount:s}=this.state,{onListResized:i}=this.props;(s!==t.itemCount||n!==t.isLoading)&&i()}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:i}=this.state;s=i.trim()}if(s.length>0){const{onSelect:i}=this.props;i(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(){Tn.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){Tn.debug2("handleSelect",e);const{onSelect:t}=this.props,{offset:n,items:s}=this.state,i=e-n;if(i<0||s.length<=i){Tn.error("No data for item",e);return}const{value:o}=s[i];t(o)}handleTableUpdate(e){const t=e.detail,{offset:n}=t,s=[],{getFormattedString:i,table:o}=this.props,r=o.columns[0];for(let a=0;a<t.rows.length;a+=1){const d=t.rows[a].get(r),h=i(d,r.type,r.name);s.push({displayValue:h,value:d})}const l=o.size;Tn.debug2("handleTableUpdate",l,n,s.length),this.setState({itemCount:l,items:s,offset:n,isLoading:!1})}handleTextChange(e){Tn.debug2("handleTextChange");const{value:t}=e.target;this.setState({text:t}),this.debounceUpdateFilter()}handleViewportChange(e,t){Tn.debug2("handleViewportChange",e,t);const n=Math.max(1,t-e),s=Math.max(0,e-n),i=t+n,{table:o}=this.props;o.setViewport(s,i)}focus(){this.searchInput&&this.searchInput.focus()}startListening(){const{initialPageSize:e,table:t}=this.props;t.addEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate),t.addEventListener(E.Table.EVENT_FILTERCHANGED,this.handleFilterChange),t.setViewport(0,e)}stopListening(){const{table:e}=this.props;e.removeEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate),e.removeEventListener(E.Table.EVENT_FILTERCHANGED,this.handleFilterChange)}updateFilter(){const{initialPageSize:e,table:t}=this.props,{text:n}=this.state,s=n.trim(),i=[];if(s.length>0){const r=t.columns[0].filter().invoke("matches",E.FilterValue.ofString(`(?s)(?i).*\\Q${s}\\E.*`));i.push(r)}Tn.debug2("updateFilter",i),t.applyFilter(i),t.setViewport(0,e)}render(){const{isLoading:e,itemCount:t,items:n,offset:s,text:i}=this.state,o=Math.min(t,La.MAX_VISIBLE_ITEMS)*en.DEFAULT_ROW_HEIGHT+11;return T("div",{className:"iris-grid-partition-selector-search",children:[u("div",{className:"search-container",children:u("input",{type:"text",ref:r=>{this.searchInput=r},value:i,placeholder:"Available Partitions",onChange:this.handleTextChange,onFocus:this.handleInputFocus,onKeyDown:this.handleKeyDown,className:"form-control input-partition"})}),!e&&t>0&&u("div",{className:"iris-grid-partition-selector-search-list",onKeyDown:this.handleListKeydown,role:"presentation",style:{height:o},children:u(en,{ref:r=>{this.itemList=r},itemCount:t,items:n,offset:s,onSelect:this.handleSelect,onViewportChange:this.handleViewportChange})}),!e&&t===0&&u("div",{className:"iris-grid-partition-selector-search-empty",children:"No results"}),e&&T("div",{className:"iris-grid-partition-selector-loading",children:[u(Vt,{}),"\xA0Loading..."]})]})}};let lo=La;lo.MAX_VISIBLE_ITEMS=12;lo.defaultProps={initialPageSize:100,onSelect:()=>{},onListResized:()=>{}};lo.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 ws=ee.module("IrisGridPartitionSelector"),km=250;class Pa extends y.exports.Component{constructor(t){super(t),this.debounceUpdate=Tt(()=>{this.sendUpdate()},km),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(){ws.debug2("handleAppendClick");const{onAppend:t}=this.props,{partition:n}=this.state;t(n)}handleCloseClick(){ws.debug2("handleCloseClick"),this.sendDone()}handleIgnoreClick(){ws.debug2("handleIgnoreClick"),this.sendFetchAll()}handlePartitionChange(t){ws.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(){ws.debug2("sendUpdate");const{onChange:t}=this.props,{partition:n}=this.state;t(n)}sendFetchAll(){ws.debug2("sendFetchAll"),this.debounceUpdate.cancel();const{onFetchAll:t}=this.props;t()}render(){const{columnName:t,getFormattedString:n,onDone:s,table:i}=this.props,{partition:o}=this.state,r=u(lo,{getFormattedString:n,table:i,onSelect:this.handlePartitionSelect,onListResized:this.handlePartitionListResized,ref:l=>{this.selectorSearch=l}},"search");return T("div",{className:"iris-grid-partition-selector",children:[u("div",{className:"status-message",children:T("span",{children:['Filtering "',t,'" partition to']})}),T("div",{className:"input-group",children:[u("input",{type:"text",value:o,onChange:this.handlePartitionChange,className:"form-control input-partition"}),u("div",{className:"input-group-append",children:T("button",{type:"button",className:"btn btn-outline-primary",children:[u(K,{icon:On}),u(Le,{children:"Partitions"}),u(Pn,{ref:l=>{this.searchMenu=l},actions:[{menuElement:r}],onMenuOpened:this.handleSearchOpened,onMenuClosed:this.handleSearchClosed})]})})]}),u("div",{className:"iris-grid-partition-selector-spacer"}),u("button",{type:"button",className:"btn btn-outline-primary btn-ignore",onClick:this.handleIgnoreClick,children:"Ignore & Fetch All"}),u("button",{type:"button",className:"btn btn-outline-primary btn-append",onClick:this.handleAppendClick,children:"Append Command"}),u("button",{type:"button",className:"btn btn-link btn-link-icon btn-close",onClick:s,children:u(K,{icon:ti})})]})}}Pa.defaultProps={onAppend:()=>{},onChange:()=>{},onFetchAll:()=>{},onDone:()=>{},partition:""};const Lm=ee.module("SelectDistinctBuilder");class Ha extends y.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:i}=this.props;if(n.inputs!==s){const o=s.filter(r=>r!=="");dt(n.inputs.filter(r=>r!==""),o)||i(o)}}handleAddColumnClick(){this.setState(({inputs:t})=>({inputs:[...t,""]}))}handleDeleteColumn(t){this.setState(({inputs:n})=>({inputs:n.length===1&&t===0?[""]:n.filter((s,i)=>t!==i)}))}handleDropdownChanged(t,n){Lm.debug("handleDropdownChanged",t,n);const{value:s}=n.target;this.setState(({inputs:i})=>{const o=[...i];return o[t]=s,{inputs:o}})}renderInputs(){const{columns:t,inputs:n}=this.state;return n.map((s,i)=>{const o=t.filter(({name:r})=>r===s||!n.includes(r)).map(({name:r})=>u("option",{value:r,children:r},r));return T("div",{className:"form-inline px-3 pb-3",children:[T("select",{className:"form-control custom-select col",value:s,onChange:r=>this.handleDropdownChanged(i,r),children:[u("option",{value:"",children:"Select a column"}),o]}),(n.length>1||s!=="")&&u(Y,{kind:"ghost",className:"ml-1 px-2",onClick:()=>{this.handleDeleteColumn(i)},icon:u(K,{icon:Vn,transform:"grow-3"}),tooltip:"Delete column"})]},i)})}render(){const{columns:t,inputs:n}=this.state,s=n.length>=t.length;return T("div",{role:"presentation",className:"select-distinct-builder-container h-100",children:[u("div",{className:"select-distinct-title",children:"Display Unique Values From"}),this.renderInputs(),u("hr",{}),u("div",{className:"pt-1 px-3",children:u(Y,{kind:"ghost",className:"btn-add-column",onClick:this.handleAddColumnClick,disabled:s,icon:xs,children:"Add Additional Column"})}),u("div",{className:"select-distinct-builder-footer",children:T("div",{className:"select-distinct-builder-hint",children:["Modifies a table to show unique value from a column, same as"," ",u("span",{className:"inline-code-snippet",children:'selectDistinct("Column")'}),". Filters will be reset and the resulting table will contain only the selected columns above."]})})]})}}Ha.defaultProps={selectDistinctColumns:[],onChange:()=>{}};const Sr=({items:e,onChange:t=()=>{}})=>u(ma,{items:Array.from(e.entries()).map(([n,s])=>({title:Sr.getAdvancedSettingsTitleForKey(n),isOn:s,onChange:i=>t(n,i)}))});Sr.getAdvancedSettingsTitleForKey=e=>{switch(e){case as.FILTER_CONTROL_CHANGE_CLEARS_ALL_FILTERS:return"Control filters clear existing table filters";case as.LINK_CHANGE_CLEARS_ALL_FILTERS:return"Inbound links clear existing table filters"}};const pl=ee.module("ConditionalFormattingMenu"),Do=()=>{};function Pm(e){const{column:{type:t}}=e;if(x.isNumberType(t))return e.condition===De.IS_NULL||e.condition===De.IS_NOT_NULL?"":`${e.value}`;if(x.isCharType(t))return e.condition===ot.IS_NULL||e.condition===ot.IS_NOT_NULL?"":`${e.value}`;if(x.isStringType(t))return e.condition===bt.IS_NULL||e.condition===bt.IS_NOT_NULL?"":`"${e.value}"`;if(x.isDateType(t))return e.condition===ot.IS_NULL||e.condition===ot.IS_NOT_NULL?"":`${e.value}`;if(x.isBooleanType(t))return"";throw new Error(`Invalid column type ${t} in getRuleValue`)}function Hm(e){return x.isNumberType(e.column.type)&&e.condition===De.IS_BETWEEN?`${e.start} < ${e.column.name} < ${e.end}`:`${e.column.name} ${rm(e.column.type,e.condition)}
13
13
  ${Pm(e)}`}const _m=e=>{const{rules:t=[],onChange:n=Do,onCreate:s=Do,onSelect:i=Do}=e,o=y.exports.useCallback((c,d,h)=>{c.stopPropagation(),pl.debug("Rule clicked",d,h),i(h)},[i]),r=y.exports.useCallback((c,d,h)=>{c.stopPropagation(),pl.debug("Delete button clicked",d,h);const m=[...t];m.splice(h,1),n(m)},[n,t]),l=y.exports.useCallback(c=>{c.stopPropagation()},[]),a=y.exports.useCallback(c=>{if(ht.stopDragging(),c.destination==null)return;const d=c.source.index,h=c.destination.index,m=[...t],p=t[d];m.splice(d,1),m.splice(h,0,p),n(m)},[n,t]);return T("div",{className:"conditional-formatting-rules",children:[u(ei,{onDragStart:ht.startDragging,onDragEnd:a,children:u(Js,{droppableId:"droppable-custom-columns",children:(c,d)=>T("div",{ref:c.innerRef,...c.droppableProps,className:$("droppable-container",{dragging:d.draggingFromThisWith}),children:[t.length===0&&u("div",{className:"text-muted pl-2",children:"No formats defined"}),t.map((h,m)=>u(Xi,{draggableId:`${m}-${h.type}`,index:m,disableInteractiveElementBlocking:!0,children:(p,g)=>u("div",{role:"menuitem",tabIndex:0,onClick:f=>o(f,h,m),className:$("draggable-container",{dragging:g.isDragging}),ref:p.innerRef,...p.draggableProps,children:u("div",{className:"conditional-formatting-list-item",children:T("div",{className:"formatting-item",children:[u("div",{className:"rule-icon",children:u("span",{className:"rule-icon-bg",style:{backgroundColor:Bi(h.config.style),color:Wi(h.config.style)},children:h.type===tn.ROWS?"row":"col"})}),u("div",{className:"rule-title",children:Hm(h.config)}),u(Y,{kind:"ghost",className:"ml-1 px-2",onClick:f=>r(f,h,m),icon:Vn,tooltip:"Delete rule"}),T("button",{type:"button",className:"btn btn-link btn-link-icon px-2 btn-drag-handle",onClick:l,...p.dragHandleProps,children:[u(Le,{children:"Drag to re-order"}),u(K,{icon:Qi})]})]})})})},`${m}-${h.type}`)),c.placeholder]})})}),u("hr",{}),u(Y,{kind:"ghost",onClick:s,icon:xs,children:"Add New Rule"})]})},Ss=ee.module("ConditionEditor"),Vm=()=>{},Um=[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=>u("option",{value:e,children:$u(e)},e)),Bm=[bt.IS_EXACTLY,bt.IS_NOT_EXACTLY,bt.CONTAINS,bt.DOES_NOT_CONTAIN,bt.STARTS_WITH,bt.ENDS_WITH,bt.IS_NULL,bt.IS_NOT_NULL].map(e=>u("option",{value:e,children:Gu(e)},e)),Wm=[ot.IS_EXACTLY,ot.IS_NOT_EXACTLY,ot.IS_BEFORE,ot.IS_BEFORE_OR_EQUAL,ot.IS_AFTER,ot.IS_AFTER_OR_EQUAL,ot.IS_NULL,ot.IS_NOT_NULL].map(e=>u("option",{value:e,children:qu(e)},e)),zm=[Ks.IS_TRUE,Ks.IS_FALSE,Ks.IS_NULL,Ks.IS_NOT_NULL].map(e=>u("option",{value:e,children:Ku(e)},e)),$m=[ss.IS_EQUAL,ss.IS_NOT_EQUAL,ss.IS_NULL,ss.IS_NOT_NULL].map(e=>u("option",{value:e,children:Xu(e)},e));function Gm(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 qm(e,t,n,s,i,o,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 u("input",{type:"number",className:"form-control",placeholder:"Enter value",value:i!=null?i:"",onChange:t});case De.IS_BETWEEN:return T("div",{className:"d-flex flex-row",children:[u("input",{type:"number",className:"form-control d-flex mr-2",placeholder:"Start value",value:o!=null?o:"",onChange:n}),u("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 Km(e,t,n){switch(e){case bt.IS_NULL:case bt.IS_NOT_NULL:return null;default:return u("input",{type:"text",className:"form-control",placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function Xm(e,t,n){switch(e){case ot.IS_NULL:case ot.IS_NOT_NULL:return null;default:return u("input",{type:"text",className:"form-control",placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}function Ym(){return null}function Qm(e,t,n){switch(e){case ss.IS_NULL:case ss.IS_NOT_NULL:return null;default:return u("input",{type:"text",className:"form-control",maxLength:1,placeholder:"Enter value",value:n!=null?n:"",onChange:t})}}const _a=e=>{const{column:t,config:n,onChange:s=Vm}=e,i=t.type,[o,r]=y.exports.useState(i),[l,a]=y.exports.useState(n.condition),[c,d]=y.exports.useState(n.value),[h,m]=y.exports.useState(n.start),[p,g]=y.exports.useState(n.end);i!==o&&(a(Ia(i)),d(void 0),m(void 0),g(void 0),r(i));const f=y.exports.useMemo(()=>{if(i===void 0)return[];if(x.isNumberType(i))return Um;if(x.isCharType(i))return $m;if(x.isStringType(i))return Bm;if(x.isDateType(i))return Wm;if(x.isBooleanType(i))return zm},[i]),C=y.exports.useCallback(v=>{const{value:R}=v.target;Ss.debug("handleConditionChange",R),a(R)},[]),b=y.exports.useCallback(v=>{const{value:R}=v.target;Ss.debug("handleValueChange",R),d(R)},[]),w=y.exports.useCallback(v=>{const{value:R}=v.target;Ss.debug("handleStartValueChange",R),m(R)},[]),S=y.exports.useCallback(v=>{const{value:R}=v.target;Ss.debug("handleEndValueChange",R),g(R)},[]);y.exports.useEffect(function(){let R=!0;l===void 0&&(Ss.debug("Unable to create formatting rule. Condition is not selected."),R=!1),x.isNumberType(t.type)&&!Gm(l,c,h,p)&&(Ss.debug("Unable to create formatting rule. Invalid value",c),R=!1),s({condition:l,value:c,start:h,end:p},R)},[s,t.type,l,c,h,p]);const I=y.exports.useMemo(()=>{if(i===void 0)return null;if(x.isNumberType(i))return qm(l,b,w,S,c,h,p);if(x.isCharType(i))return Qm(l,b,c);if(x.isStringType(i))return Km(l,b,c);if(x.isDateType(i))return Xm(l,b,c);if(x.isBooleanType(i))return Ym()},[i,l,c,h,p,b,w,S]);return T("div",{className:"condition-editor mb-2",children:[u("select",{value:l,id:"condition-select",className:"custom-select mb-2",onChange:C,children:f}),I]})};const jm=ee.module("StyleEditor"),Zm="#fcfcfa",Jm="#f0f0ee",ep="#1a171a",tp=200,np=()=>{},Va=e=>{var S,I;const{config:t,onChange:n=np}=e,[s,i]=y.exports.useState(t.type),[o,r]=y.exports.useState((I=(S=t.customConfig)==null?void 0:S.background)!=null?I:Zm),[l,a]=y.exports.useState(!1),[c,d]=y.exports.useState(tp),h=y.exports.useRef(null),m=y.exports.useCallback(v=>{const{value:R}=v.target;jm.debug("handleBackgroundChange",R),r(R)},[]),p=y.exports.useCallback(()=>{l&&a(!1)},[l]),g=y.exports.useCallback(()=>{l||C(),a(!l)},[l]),f=y.exports.useMemo(()=>[Gt.NO_FORMATTING,Gt.POSITIVE,Gt.NEGATIVE,Gt.WARN,Gt.NEUTRAL,Gt.ACCENT_1,Gt.ACCENT_2,Gt.CUSTOM],[]);function C(){h.current&&d(h.current.getBoundingClientRect().width)}y.exports.useEffect(function(){n({type:s,customConfig:{color:Zi.isDark(o)?Jm:ep,background:o}})},[n,s,o]);const b=y.exports.useCallback(()=>{const v=[];for(let R=0;R<f.length;R+=1){const M=f[R],F=`option-${R}-${M}`;v.push(T(Y,{kind:"inline",className:"style-option-btn",onClick:()=>{i(M),a(!1)},style:{color:Wi({type:M}),background:Bi({type:M})},children:[M===s&&u(K,{icon:is,className:"mr-2"}),M!==s&&u("span",{className:"mr-4"}),hl(M)]},F))}return v},[f,s]),w=y.exports.useCallback(()=>u("div",{className:"style-menu-container",role:"presentation",style:{width:c},children:u("div",{className:"style-options",children:b()})}),[c,b]);return T("div",{className:"style-editor",children:[T("div",{className:"mb-2",ref:h,children:[u("label",{className:"mb-0",children:"Style"}),T(Y,{kind:"inline",className:"cs-dropdown",style:{color:Wi({type:s}),background:Bi({type:s})},onClick:g,children:[hl(s),u("span",{children:u(K,{icon:er,className:"cs-caret"})}),u(Pn,{isShown:l,actions:{menuElement:w()},popperOptions:{placement:"bottom-start"},popperClassName:"style-dropdown-menu",onMenuClosed:p,menuStyle:{maxWidth:"100rem"}})]})]}),s===Gt.CUSTOM&&T("div",{className:"mb-2",children:[u("label",{className:"mb-0",children:"Background"}),u("input",{type:"color",value:o,className:"custom-select color-select",onChange:m})]})]})},$s=ee.module("ColumnFormatEditor"),sp=()=>{};function ip(e){const{type:t,name:n}=e[0];return{column:{type:t,name:n},style:Da(),...so(t)}}const op=e=>{var C;const{columns:t,config:n=ip(t),onChange:s=sp}=e,[i,o]=y.exports.useState((C=t.find(b=>b.name===n.column.name&&b.type===n.column.type))!=null?C:t[0]),[r,l]=y.exports.useState(Ma(n)),[a,c]=y.exports.useState(!1),[d,h]=y.exports.useState(n.style),m=y.exports.useCallback(b=>{const w=t.find(({name:S})=>S===b);w!==void 0?(o(w),i.type!==w.type&&(l(so(w.type)),c(!1))):$s.error(`Column ${b} not found.`)},[t,i]),p=y.exports.useCallback((b,w)=>{$s.debug("handleConditionChange",b,w),l(b),c(w)},[]),g=y.exports.useCallback(b=>{$s.debug("handleStyleChange",b),h(b)},[]);y.exports.useEffect(function(){if(i===void 0){$s.debug("Column is not selected, skip update.");return}if(d===void 0){$s.debug("Style is not selected, skip update.");return}const{type:w,name:S}=i;s({column:{type:w,name:S},style:d,...r},a)},[s,i,d,r,a]);const f=t.map(({name:b})=>({title:b,value:b}));return T("div",{className:"conditional-rule-editor form",children:[T("div",{className:"mb-2",children:[u("label",{className:"mb-0",children:"Format Cell If"}),u(As,{defaultValue:i==null?void 0:i.name,options:f,inputPlaceholder:"Select a column",spellCheck:!1,onChange:m,searchPlaceholder:"Filter columns"})]}),i!==void 0&&T(Ne,{children:[u(_a,{column:i,config:r,onChange:p}),u(Va,{config:d,onChange:g})]})]})},Gs=ee.module("RowFormatEditor"),rp=()=>{};function lp(e){const{type:t,name:n}=e[0];return{column:{type:t,name:n},style:Da(),...so(t)}}const ap=e=>{var C;const{columns:t,config:n=lp(t),onChange:s=rp}=e,[i,o]=y.exports.useState((C=t.find(b=>b.name===n.column.name&&b.type===n.column.type))!=null?C:t[0]),[r,l]=y.exports.useState(Ma(n)),[a,c]=y.exports.useState(!1),[d,h]=y.exports.useState(n.style),m=y.exports.useCallback(b=>{const w=t.find(({name:S})=>S===b);w!==void 0?(o(w),i.type!==w.type&&(l(so(w.type)),c(!1))):Gs.error(`Column ${b} not found.`)},[t,i]),p=y.exports.useCallback((b,w)=>{Gs.debug("handleConditionChange",b,w),l(b),c(w)},[]),g=y.exports.useCallback(b=>{Gs.debug("handleStyleChange",b),h(b)},[]);y.exports.useEffect(function(){if(i===void 0){Gs.debug("Column is not selected, skip update.");return}if(d===void 0){Gs.debug("Style is not selected, skip update.");return}const{type:w,name:S}=i;s({column:{type:w,name:S},style:d,...r},a)},[s,i,d,r,a]);const f=t.map(({name:b})=>({title:b,value:b}));return T("div",{className:"conditional-rule-editor form",children:[T("div",{className:"mb-2",children:[u("label",{className:"mb-0",children:"Format Row If"}),u(As,{defaultValue:i==null?void 0:i.name,options:f,inputPlaceholder:"Select a column",spellCheck:!1,onChange:m,searchPlaceholder:"Filter columns"})]}),i!==void 0&&T(Ne,{children:[u(_a,{column:i,config:r,onChange:p}),u(Va,{config:d,onChange:g})]})]})};const No=ee.module("ConditionalFormatEditor"),Fo=()=>{};function cp(e){switch(e){case tn.CONDITIONAL:return u(ru,{});case tn.ROWS:return u(lu,{})}}function dp(e){switch(e){case tn.CONDITIONAL:return"Conditional";case tn.ROWS:return"Rows"}}const gl=[tn.CONDITIONAL,tn.ROWS],hp=e=>{var b;const{columns:t,onSave:n=Fo,onUpdate:s=Fo,onCancel:i=Fo,rule:o}=e,r=t.filter(am),[l,a]=y.exports.useState((b=o==null?void 0:o.type)!=null?b:gl[0]),[c,d]=y.exports.useState(o),[h,m]=y.exports.useState(!1),p=y.exports.useCallback(()=>{i()},[i]),g=y.exports.useCallback(()=>{if(c===void 0){No.error("Rule is not defined.");return}n(c)},[n,c]),f=y.exports.useCallback(w=>{No.debug("handleFormatterChange",w),a(w)},[]),C=y.exports.useCallback((w,S)=>{No.debug("handleRuleChange",w,S,l);const I={type:l,config:w};d(I),m(S),s(S?I:void 0)},[s,l]);return T("div",{className:"conditional-format-editor form",children:[T("div",{className:"mb-2",children:[u("label",{className:"mb-0",htmlFor:"formatter-select",children:"Select Formatter"}),u("div",{className:"formatter-list",children:gl.map((w,S)=>u("div",{className:"formatter-type",children:T("button",{type:"button",className:$("btn","btn-icon","btn-formatter-type",{active:w===l}),"data-index":S,onClick:()=>f(w),children:[cp(w),dp(w)]})},w))})]}),l===tn.CONDITIONAL&&u(op,{columns:r,config:c==null?void 0:c.config,onChange:C}),l===tn.ROWS&&u(ap,{columns:r,config:c==null?void 0:c.config,onChange:C}),u("hr",{}),T("div",{className:"d-flex justify-content-end my-3",children:[u(Y,{kind:"secondary",onClick:p,className:"mr-2",children:"Cancel"}),u(Y,{kind:"primary",onClick:g,disabled:c===void 0||!h,children:"Done"})]})]})},up=({type:e})=>{switch(e){case E.VariableType.TABLE:case E.VariableType.TABLEMAP:case E.VariableType.TREETABLE:return u(K,{icon:tr});case E.VariableType.FIGURE:return u(K,{icon:Bl});case E.VariableType.PANDAS:return u(K,{icon:Pd});default:return u(K,{icon:Sd})}};class Ua extends y.exports.Component{constructor(t){super(t),this.container=null}componentDidMount(){this.colorize()}colorize(){const{children:t}=this.props;this.container&&t!=null&&pn.colorizeElement(this.container,{theme:"dh-dark"})}render(){const{children:t,language:n}=this.props;return u("div",{children:u("div",{"data-lang":n,ref:s=>{this.container=s},style:{pointerEvents:"none"},children:t})})}}class mp{static get LANGUAGE_MAP(){return new Map([["python","Python"],["groovy","Groovy"],["scala","Scala"]])}}class Fs{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)?[]:mc.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"),i=`${t.getSeconds()}`.padStart(2,"0"),o=`${t.getMilliseconds()}`.padStart(3,"0");return`${n}:${s}:${i}.${o}`}static isTableType(t){return t===E.VariableType.TABLE||t===E.VariableType.TREETABLE}static isWidgetType(t){return t===E.VariableType.FIGURE||t===E.VariableType.OTHERWIDGET||t===E.VariableType.PANDAS}static isOpenableType(t){return Fs.isTableType(t)||Fs.isWidgetType(t)}static isFigureType(t){return t===E.VariableType.FIGURE}static isPandas(t){return t===E.VariableType.PANDAS}}const Ba=({children:e})=>T("div",{className:"console-history-item-result",children:[u("div",{className:"console-history-gutter",children:"-"}),u("div",{className:"console-history-content",children:e})]});Ba.propTypes={children:D.exports.node.isRequired};class Wa extends y.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 u("div",{className:$("console-history-result-in-progress",{disabled:t}),children:T("span",{className:"badge",children:[u(Vt,{}),"\xA0Running... ",jt.formatElapsedTime(s),"\xA0",T("button",{type:"button",onClick:n,disabled:t,children:[u(K,{icon:ti}),u(Le,{children:"Cancel"})]})]})})}}Wa.defaultProps={disabled:!1};const $o=class extends y.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)>=$o.mouseDragThreshold||Math.abs(e.clientY-this.mouseY)>=$o.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
14
  `),i=s>-1;let o=n;i&&(o=n.slice(0,s));const r=n.slice(s),l=t?"error-btn-link error-btn-link--active":"error-btn-link";return T("div",{className:$("error-message",{expanded:e}),children:[i&&T(Ne,{children:[u("div",{className:"error-gutter",children:u("button",{type:"button",onClick:this.handleToggleError,className:l,tabIndex:-1,children:u(K,{icon:e?On:Kl,transform:"left-3"})})}),T("div",{className:"error-content",children:[u("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:o}),e?r:""]})]}),!i&&u("div",{className:"error-content",children:u("div",{className:"console-error-text",children:o})})]},"error")}};let vr=$o;vr.defaultProps={message:""};vr.mouseDragThreshold=5;const fl=ee.module("ConsoleHistoryItem");class za extends y.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 c;const{disabled:t,item:n,language:s}=this.props,{disabledObjects:i,result:o}=n;let r=null;n.command!=null&&n.command!==""&&(r=T("div",{className:"console-history-item-command",children:[u("div",{className:"console-history-gutter",children:">"}),u("div",{className:"console-history-content",children:u(Ua,{language:s,children:n.command})})]}));const l=[];if(o){const{error:d,message:h,changes:m}=o;if(m){const{created:p,updated:g}=m;[...p,...g].forEach(f=>{const{title:C}=f,b=`${C}`,w=t===void 0||t||(i!=null?i:[]).indexOf(b)>=0,S=T(Yi,{onClick:()=>this.handleObjectClick(f),className:"btn-primary btn-console btn-console-object",disabled:w,children:[u(up,{type:f.type})," ",C]},b);l.push(S)})}if(d!=null&&n.command==null){let p=`${(c=d.message)!=null?c:d}`;p||(p=d);const g=u(vr,{message:p},"result-error");l.push(g)}if(h!==void 0&&h!==""){const p=u("div",{className:"log-message",children:h},"log-message");l.push(p)}}else{const d=u(Wa,{onCancelClick:this.handleCancelClick,disabled:t},"in_progress");l.push(d)}let a=null;return l.length>0&&(a=u(Ba,{children:l})),T("div",{className:"container-fluid",children:[r,a]})}}za.defaultProps={disabled:!1};const $a=class extends y.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,i=[];for(let o=0;o<t.length;o+=1){const r=t[o],l=u(za,{disabled:e,item:r,openObject:s,language:n},$a.itemKey(o,r));i.push(l)}return u("div",{className:"container-fluid console-history",children:i})}};let Ga=$a;Ga.defaultProps={disabled:!1};const pp={name:"Console",CLEAR:Re.createAndAdd({id:"CONSOLE.CLEAR",name:"Clear",shortcut:[ie.CTRL,le.L],macShortcut:[ie.CTRL,le.C]}),FOCUS_HISTORY:Re.createAndAdd({id:"CONSOLE.FOCUS_HISTORY",name:"Focus History",shortcut:[ie.CTRL,le.H],macShortcut:[ie.CTRL,ie.OPTION,le.H]})},gp={name:"Command History",FOCUS_HISTORY:Re.createAndAdd({id:"COMMAND_HISTORY.FOCUS_HISTORY",name:"Focus History Search",shortcut:[ie.CTRL,le.H],macShortcut:[ie.CTRL,ie.OPTION,le.H]}),SEND_TO_CONSOLE:Re.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_CONSOLE",name:"Send to Console",shortcut:[le.ENTER],macShortcut:[le.ENTER]}),SEND_TO_NOTEBOOK:Re.createAndAdd({id:"COMMAND_HISTORY.SEND_TO_NOTEBOOK",name:"Send to Notebook",shortcut:[ie.CTRL,le.ENTER],macShortcut:[ie.CMD,le.ENTER]}),RUN:Re.createAndAdd({id:"COMMAND_HISTORY.RUN",name:"Run",shortcut:[ie.ALT,le.R],macShortcut:[ie.OPTION,le.R]})},fp={name:"Notebook",RUN:Re.createAndAdd({id:"NOTEBOOK.RUN",name:"Run",shortcut:[ie.ALT,le.R],macShortcut:[ie.OPTION,le.R]}),RUN_SELECTED:Re.createAndAdd({id:"NOTEBOOK.RUN_SELECTED",name:"Run Selected",shortcut:[ie.ALT,ie.SHIFT,le.R],macShortcut:[ie.OPTION,ie.SHIFT,le.R]}),FIND:Re.createAndAdd({id:"NOTEBOOK.FIND",name:"Find",shortcut:[ie.CTRL,le.F],macShortcut:[ie.CMD,le.F],isEditable:!1}),MINIMAP:Re.createAndAdd({id:"NOTEBOOK.MINIMAP",name:"Show Minimap",shortcut:[ie.ALT,le.M],macShortcut:[ie.OPTION,le.M]}),WORDWRAP:Re.createAndAdd({id:"NOTEBOOK.WORDWRAP",name:"Word Wrap",shortcut:[ie.ALT,le.Z],macShortcut:[ie.OPTION,le.Z]})},rs={CONSOLE:pp,COMMAND_HISTORY:gp,NOTEBOOK:fp},Ye=Object.freeze({FATAL:"FATAL",STDERR:"STDERR",ERROR:"ERROR",WARN:"WARN",STDOUT:"STDOUT",INFO:"INFO",DEBUG:"DEBUG",TRACE:"TRACE"}),Cp="#2d2a2e",bp="#fcfcfa",wp="#fcd65b",Sp="#b2b1b2",vp="#9edc6f",Tp="#76d9e4",Ep="#f95d84",yp="#aa9af4",Rp="#f95d84",Ip="#fcfcfa",Mp="#7c7b7c",ce={"error-foreground":"#f95d84",background:Cp,foreground:bp,"line-height":"19px",string:wp,"string-delim":"#929192",delimiter:Sp,predefined:vp,keyword:Tp,storage:Ep,number:yp,operator:Rp,identifier:Ip,"namespace-identifier":"#f95d84","identifier-js":"#fcd65b",comment:Mp,"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"},Dp="python",Np={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:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$"),action:{indentAction:1}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},Fp={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"]]}},xp={id:Dp,conf:Np,language:Fp},Op="groovy",Ap={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:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$"),action:{indentAction:1}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},kp={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"]]}},Lp={id:Op,conf:Ap,language:kp},Pp="scala",Hp={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:new RegExp("^\\s*//\\s*(?:(?:#?region\\b)|(?:<editor-fold\\b))"),end:new RegExp("^\\s*//\\s*(?:(?:#?endregion\\b)|(?:</editor-fold>))")}}},_p={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"]]}},Vp={id:Pp,conf:Hp,language:_p},Up="deephavenDb",Bp={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:new RegExp("^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async).*?:\\s*$"),action:{indentAction:1}}],folding:{offSide:!0,markers:{start:new RegExp("^\\s*#region\\b"),end:new RegExp("^\\s*#endregion\\b")}}},Wp={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"]]}},zp={id:Up,conf:Bp,language:Wp},$p="log",Gp={},qp={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"}]]}},Kp={id:$p,conf:Gp,language:qp},$t=ee.module("MonacoUtils");class Ue{static init({getWorker:t}={}){$t.debug("Initializing Monaco..."),t!==void 0&&Ue.registerGetWorker(t);const{registerLanguages:n,removeHashtag:s}=Ue,i=[{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"])}],o={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"]};pn.defineTheme("dh-dark",{base:"vs-dark",inherit:!0,rules:i,colors:o}),$t.debug2("monaco theme: ",ce),pn.setTheme("dh-dark"),n([zp,xp,Lp,Kp,Vp]),$t.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);Ts.getLanguages().filter(({id:s})=>n.includes(s)).forEach(s=>{const i=s;$t.debug2("Overriding default language loader:",i.id)}),t.forEach(s=>{Ue.registerLanguage(s)})}static registerLanguage(t){$t.debug2("Registering language: ",t.id),Ts.register(t),Ts.onLanguage(t.id,()=>{Ts.setLanguageConfiguration(t.id,t.conf),Ts.setMonarchTokensProvider(t.id,t.language)})}static setEOL(t,n=pn.EndOfLineSequence.LF){var s;(s=t.getModel())==null||s.setEOL(n)}static openDocument(t,n){const s=t.getModel();O(s);const i={textDocument:{uri:`${s.uri}`,languageId:s.getLanguageId(),version:s.getVersionId(),text:s.getValue()}};return $t.debug2("didOpenDocumentParams: ",i),n.openDocument(i),t.onDidChangeModelContent(r=>{const{changes:l,versionId:a}=r,c=[];for(let d=0;d<l.length;d+=1){const h=l[d],{range:m,rangeLength:p,text:g}=h,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};$t.debug2("didChangeDocumentParams",d),n.changeDocument(d)}})}static closeDocument(t,n){const s=t.getModel();O(s);const i={textDocument:{uri:`${s.uri}`}};n.closeDocument(i)}static registerPasteHandler(t){t.onDidPaste(n=>{const s=/“|”/g,i=/\u200b/g,o=t.getModel();O(o);const r=o.getValueInRange(n.range);(s.test(r)||i.test(r))&&o.applyEdits([{range:n.range,text:r.replace(s,'"').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=>{Ue.isMacPlatform()&&s.mac===""||!Ue.isMacPlatform()&&s.windows===""||Ue.removeKeybinding(t,Ue.isMacPlatform()?s.mac:s.windows)})}catch(s){$t.error(s)}}static removeKeybinding(t,n){if(n===void 0)return;const s=t._standaloneKeybindingService._getResolver()._map.get(n);s!=null?s.forEach(i=>{$t.debug2(`Removing Monaco keybinding ${n} for ${i.command}`),t._standaloneKeybindingService.addDynamicKeybinding(`-${i.command}`,null,()=>{})}):$t.warn(`Did not find any keybindings to remove for ${n}`)}static getMonacoKeyCodeFromShortcut(t){const{keyState:n}=t,{keyValue:s}=n;return s===null?0:Ue.isMacPlatform()?(n.metaKey?yt.CtrlCmd:0)|(n.shiftKey?yt.Shift:0)|(n.altKey?yt.Alt:0)|(n.ctrlKey?yt.WinCtrl:0)|Lr.fromString(s):(n.ctrlKey?yt.CtrlCmd:0)|(n.shiftKey?yt.Shift:0)|(n.altKey?yt.Alt:0)|(n.metaKey?yt.WinCtrl:0)|Lr.fromString(s)}}const Cl=ee.module("MonacoCompletionProvider");class qa extends y.exports.PureComponent{constructor(t){super(t),this.handleCompletionRequest=this.handleCompletionRequest.bind(this)}componentDidMount(){const{language:t}=this.props;this.registeredCompletionProvider=Ts.registerCompletionItemProvider(t!=null?t:"",{provideCompletionItems:this.handleCompletionRequest,triggerCharacters:['"',".","'","(","[","{",","]})}componentWillUnmount(){var t;(t=this.registeredCompletionProvider)==null||t.dispose()}handleCompletionRequest(t,n,s){const{model:i,session:o}=this.props;if(t!==i)return null;const r={textDocument:{uri:`${t.uri}`,version:t.getVersionId()},position:{line:n.lineNumber-1,character:n.column-1},context:s},l=o.getCompletionItems(r);return Cl.debug("Completion items received: ",r,l),l.then(c=>{const d=c.map(h=>{const{label:m,kind:p,detail:g,documentation:f,sortText:C,filterText:b,textEdit:w,insertTextFormat:S}=h,{start:I,end:v}=w.range,R={startLineNumber:I.line+1,startColumn:I.character+1,endLineNumber:v.line+1,endColumn:v.character+1};return{label:m,kind:p,detail:g,documentation:f,sortText:C,filterText:b,insertText:w.text,insertTextRules:S===2?4:S,range:R}});return{incomplete:!0,suggestions:d}}).catch(c=>(Cl.error("There was an error retrieving completion items",c),{suggestions:[]}))}render(){return null}}const xo=ee.module("ConsoleInput"),zi=parseInt(ce["line-height"],10),Ka=6,Xa=6,Xp=zi+Ka+Xa,Oo=100,Ya=class extends y.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:zi,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||(xo.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:zi,lineDecorationsWidth:3,lineNumbers:"off",minimap:{enabled:!1},renderLineHighlight:"none",scrollBeyondLastLine:!1,scrollbar:{arrowSize:0,horizontal:"hidden",horizontalScrollbarSize:0},padding:{top:Ka,bottom:Xa},tabCompletion:"on",value:"",wordWrap:"on"},s=this.commandContainer.current;O(s),this.commandEditor=pn.create(s,n),Ue.setEOL(this.commandEditor),Ue.openDocument(this.commandEditor,t),this.commandEditor.onDidChangeModelContent(()=>{var o;const i=(o=this.commandEditor)==null?void 0:o.getValue();this.modifiedCommands.set(this.commandHistoryIndex,i!=null?i:null),this.updateDimensions()}),this.commandEditor.onDidFocusEditorText(()=>{this.setState({isFocused:!0})}),this.commandEditor.onDidBlurEditorText(()=>{this.setState({isFocused:!1})}),this.commandEditor.onKeyDown(i=>{var d,h,m;const{commandEditor:o,commandHistoryIndex:r}=this,l=o==null?void 0:o.getPosition();O(l);const{lineNumber:a}=l,c=o==null?void 0:o.getModel();if(i.keyCode===Yt.UpArrow&&!this.isSuggestionMenuPopulated()&&a===1){r!=null?this.loadCommand(r+1):this.loadCommand(0),this.focusStart(),i.stopPropagation(),i.preventDefault();return}if(i.keyCode===Yt.DownArrow&&!this.isSuggestionMenuPopulated()&&a===(c==null?void 0:c.getLineCount())){r!=null&&r>0?this.loadCommand(r-1):this.loadCommand(null),this.focusEnd(),i.stopPropagation(),i.preventDefault();return}if(!i.altKey&&!i.shiftKey&&!i.metaKey)if(i.keyCode===Yt.Enter){if(!this.isSuggestionMenuPopulated()){i.stopPropagation(),i.preventDefault();const p=(d=this.commandEditor)==null?void 0:d.getValue().trim();p!==void 0&&(this.processCommand(p),(h=this.commandEditor)==null||h.setValue(""))}}else i.keyCode===Yt.Tab&&(this.isSuggestionMenuActive()?this.isSuggestionMenuPopulated()||(i.stopPropagation(),i.preventDefault()):(i.stopPropagation(),i.preventDefault(),(m=this.commandEditor)==null||m.trigger("Tab key trigger suggestions","editor.action.triggerSuggest",{})))}),this.commandEditor.addCommand(yt.CtrlCmd|Yt.KeyF,()=>{}),Ue.removeConflictingKeybindings(this.commandEditor),Ue.registerPasteHandler(this.commandEditor),this.commandEditor.focus(),this.updateDimensions(),this.setState({model:this.commandEditor.getModel()})}destroyCommandEditor(){const{session:e}=this.props;this.commandEditor&&(Ue.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,i,o,r,l;const e=(s=this.commandEditor)==null?void 0:s.getModel();O(e);const t=e.getLineLength(1)+1,n=(i=this.commandEditor)==null?void 0:i.getTopForPosition(1,t);O(n),(o=this.commandEditor)==null||o.setPosition({lineNumber:1,column:t}),(r=this.commandEditor)==null||r.setScrollTop(n),(l=this.commandEditor)==null||l.focus()}focusEnd(){var i,o,r,l,a;const e=(i=this.commandEditor)==null?void 0:i.getModel();O(e);const t=e.getLineCount(),n=e.getLineLength(t)+1,s=(o=this.commandEditor)==null?void 0:o.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,i;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,(i=(s=this.commandEditor)==null?void 0:s.getModel())==null||i.setValue(t!=null?t:n),e!==null&&e>this.history.length-Oo&&this.loadMoreHistory()}async loadMoreHistory(){try{if(this.loadingPromise!=null||this.bufferIndex==null)return;const{commandHistoryStorage:e,language:t,scope:n}=this.props;this.loadingPromise=He.makeCancelable(e.getTable(t,n!=null?n:"",this.timestamp),o=>o.close());const s=await this.loadingPromise;s.setReversed(!0),s.setViewport({top:this.bufferIndex,bottom:this.bufferIndex+Oo-1}),this.loadingPromise=He.makeCancelable(s.getViewportData(),()=>s.close());const i=await this.loadingPromise;this.bufferIndex+=Oo,this.bufferIndex>=s.size&&(this.bufferIndex=null),this.history=[...i==null?void 0:i.items.filter(({name:o},r,l)=>r===0||o!==l[r-1].name).map(({name:o})=>o).reverse(),...this.history],this.loadingPromise=void 0,s.close()}catch(e){if(this.loadingPromise=void 0,He.isCanceled(e)){xo.debug2("Promise canceled, not loading history");return}xo.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),Xp),i={overviewRulerLanes:t>n?void 0:0};this.setState({commandEditorHeight:n},()=>{var o,r;(o=this.commandEditor)==null||o.updateOptions(i),(r=this.commandEditor)==null||r.layout()})}render(){const{disabled:e,language:t,session:n}=this.props,{commandEditorHeight:s,isFocused:i,model:o}=this.state;return u("div",{className:$("console-input-wrapper",{disabled:e}),children:T("div",{className:$("console-input-inner-wrapper",{focus:i}),children:[u("div",{className:Ya.INPUT_CLASS_NAME,ref:this.commandContainer,style:{height:s}}),o&&u(qa,{model:o,language:t,session:n})]})})}};let $i=Ya;$i.defaultProps={maxHeight:zi*10,scope:null,disabled:!1};$i.INPUT_CLASS_NAME="console-input";const bl="pasted values",Yp=[/^audio.*/,/^font.*/,/^image.*/,/^video.*/],Ao=[".csv",".tsv",".tab",".psv",".dsv",".txt"],wl=[".zip"],ys=class extends y.exports.Component{constructor(e){super(e),this.getValidExtensions=Ie(t=>t?[...Ao,...wl]:[...Ao]),this.getAcceptString=Ie(t=>this.getValidExtensions(t).join(", ")),this.getFileTypeErrorString=Ie(t=>nr.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"&&!Yp.find(t=>t.test(e.type))}static isValidExtension(e,t=!1){return Ao.some(n=>e.endsWith(n))||t&&wl.some(n=>e.endsWith(n))}static handleDragOver(e){e.preventDefault(),e.stopPropagation()}static getIcon(e){return e===bl?_r:e.endsWith(".csv")?Fd:e.endsWith(".zip")?cd:Od}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 i=e.dataTransfer.items[0].getAsFile();O(i),ys.isValidExtension(i.name,t)?this.handleFile(i):this.setState({dropError:ys.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:bl,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:_r,action:this.handleMenuPaste,shortcut:ar.PASTE,disabled:e}]}render(){const{allowZip:e,dragError:t,uploadInProgress:n}=this.props,{selectedFileName:s,dropError:i}=this.state,o=t!=null?t:i,r=this.makeContextMenuItems();return T("div",{ref:this.divElem,className:"csv-overlay fill-parent-absolute",onDragOver:ys.handleDragOver,onDrop:this.handleDrop,tabIndex:-1,children:[u(oe,{actions:r}),u("input",{ref:this.fileElem,type:"file",id:"fileElem",accept:this.getAcceptString(e),style:{display:"none"},onChange:this.handleFiles,"data-testid":"fileElem"}),!s&&(o===void 0||o==="")&&T("div",{className:"message-content",children:[u("div",{className:"message-icon",children:u(K,{icon:xd})}),u("label",{children:"Drop file (or paste values) here to import"}),u("div",{className:"message-small",children:u("label",{children:"or"})}),u(Y,{kind:"primary",onClick:this.handleSelectFile,children:"Select File..."})]}),s&&(o===void 0||o==="")&&T("div",{className:"selected-content",children:[u("div",{className:"selected-icon",children:u(K,{icon:ys.getIcon(s)})}),T("div",{className:"selected-text",children:[u("label",{children:"Selected File"}),T("label",{className:"selected-name",children:[s,!n&&u(Y,{kind:"ghost",className:"ml-2",onClick:this.unstageFile,icon:Vn,tooltip:"Remove"})]})]})]}),Boolean(o)&&T("div",{className:"message-content",children:[u("div",{className:"message-icon",children:u(K,{icon:Ln})}),u("label",{children:o}),o===ys.FILE_TYPE_ERROR&&u("div",{className:"message-small",children:u("label",{children:this.getFileTypeErrorString(e)})})]})]})}};let mn=ys;mn.defaultProps={allowZip:!1,dragError:null};mn.MULTIPLE_FILE_ERROR="Please select only one file";mn.FILE_TYPE_ERROR="Filetype not supported.";class ge{}ge.INTEGER="int";ge.LONG="long";ge.DOUBLE="double";ge.BOOLEAN="bool";ge.STRING="string";ge.DATE_TIME="datetime";ge.LOCAL_TIME="localtime";const Sl="unknown",Qp=2147483647,jp=-2147483648,vl=/^[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]+)?$/,Tl=/^([0-9]+T)?([0-9]+):([0-9]+)(:[0-9]+)?(?:\.[0-9]{1,9})?$/;class et{static determineType(t,n,s){if(!t||t===s)return n;switch(n){case ge.STRING:return ge.STRING;case ge.INTEGER:return et.checkInteger(t);case ge.LONG:return et.checkLong(t);case ge.DOUBLE:return et.checkDouble(t);case ge.BOOLEAN:return et.checkBoolean(t);case ge.DATE_TIME:return et.checkDateTime(t);case ge.LOCAL_TIME:return et.checkLocalTime(t);default:return et.getTypeFromUnknown(t)}}static isNotParsableNumber(t){return isNaN(t)||t==="Infinity"||t==="-Infinity"}static checkInteger(t){const n=t.replace(/,/g,"");return et.isNotParsableNumber(n)?ge.STRING:et.getNumberType(n)}static checkLong(t){const n=t.replace(/,/g,"");return et.isNotParsableNumber(n)?ge.STRING:n.includes(".")?ge.DOUBLE:ge.LONG}static checkDouble(t){const n=t.replace(/,/g,"");return et.isNotParsableNumber(n)?ge.STRING:ge.DOUBLE}static checkBoolean(t){const n=t.toLowerCase();return n==="true"||n==="false"?ge.BOOLEAN:ge.STRING}static checkDateTime(t){return vl.test(t)?ge.DATE_TIME:ge.STRING}static checkLocalTime(t){return Tl.test(t)?ge.LOCAL_TIME:ge.STRING}static getTypeFromUnknown(t){const n=t.replace(/,/g,"");if(et.isNotParsableNumber(n)){const s=t.toLowerCase();return s==="true"||s==="false"?ge.BOOLEAN:vl.test(t)&&t.includes(":")?ge.DATE_TIME:Tl.test(t)?ge.LOCAL_TIME:ge.STRING}return et.getNumberType(n)}static getNumberType(t){if(t.includes("."))return ge.DOUBLE;const n=t.startsWith("-")?11:10;if(t.length>n)return ge.LONG;const s=parseInt(t,10);return s>Qp||s<jp?ge.LONG:ge.INTEGER}constructor(t,n,s,i,o,r,l,a,c,d){this.onFileCompleted=t,this.file=n,this.readHeaders=s,this.nullString=o,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={...i,error:this.handleError,chunk:this.handleChunk,complete:this.handleComplete}}parse(){const t=this.isZip?this.file.nodeStream("nodebuffer",this.handleNodeUpdate):this.file;Ho.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(Sl),this.readHeaders&&(s=s.slice(1))}O(this.types);const i=[...this.types];s.forEach(l=>{if(l.length>=i.length){for(let a=0;a<i.length;a+=1)i[a]=et.determineType(this.shouldTrim?l[a].trim():l[a],i[a],this.nullString);this.types=i}else n.abort(),this.onError(`Error parsing CSV: Insufficient data in row.
15
15
  Expected length ${i.length} but found ${l.length}.
@@ -29,4 +29,4 @@ ${t}`):s.setValue(`${t}`);const o=s.getLineCount(),r=s.getLineLength(o)+1;this.e
29
29
  `&&(e+=`
30
30
  `)}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 T("div",{className:"log-pane h-100 w-100",children:[T("div",{className:"log-pane-menu",children:[u(Y,{kind:"ghost",className:"btn-clear-logs",onClick:this.handleClearClick,icon:Bd,tooltip:"Clear log"}),u(Y,{kind:"ghost",className:"btn-link-icon btn-overflow",icon:hd,tooltip:"Log Settings",onClick:()=>{},children:u(Pn,{actions:n,popperClassName:"log-level-menu-popper",popperOptions:e})})]}),u("div",{className:"log-pane-editor h-100 w-100",ref:s=>{this.editorContainer=s}})]})}};let oi=it;oi.DefaultLogLevels=[Ye.STDOUT,Ye.ERROR,Ye.FATAL,Ye.STDERR,Ye.WARN];oi.AllLogLevels=[Ye.INFO,Ye.STDOUT,Ye.ERROR,Ye.FATAL,Ye.STDERR,Ye.WARN,Ye.DEBUG,Ye.TRACE];oi.bufferTimeout=16;oi.maxLogSize=131072;oi.truncateSize=65536;_i.register([pc,gc,fc,Cc,bc,wc]);const lg=typeof vo=="function"?vo(_i):vo.default(_i),un=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(un.EVENT_UPDATED,{detail:e}))}fireDisconnect(){this.fireEvent(new CustomEvent(un.EVENT_DISCONNECT))}fireReconnect(){this.fireEvent(new CustomEvent(un.EVENT_RECONNECT))}fireDownsampleStart(e){this.fireEvent(new CustomEvent(un.EVENT_DOWNSAMPLESTARTED,{detail:e}))}fireDownsampleFinish(e){this.fireEvent(new CustomEvent(un.EVENT_DOWNSAMPLEFINISHED,{detail:e}))}fireDownsampleFail(e){this.fireEvent(new CustomEvent(un.EVENT_DOWNSAMPLEFAILED,{detail:e}))}fireDownsampleNeeded(e){this.fireEvent(new CustomEvent(un.EVENT_DOWNSAMPLENEEDED,{detail:e}))}fireLoadFinished(){this.fireEvent(new CustomEvent(un.EVENT_LOADFINISHED))}};let Qe=un;Qe.EVENT_UPDATED="ChartModel.EVENT_UPDATED";Qe.EVENT_DISCONNECT="ChartModel.EVENT_DISCONNECT";Qe.EVENT_RECONNECT="ChartModel.EVENT_RECONNECT";Qe.EVENT_DOWNSAMPLESTARTED="ChartModel.EVENT_DOWNSAMPLESTARTED";Qe.EVENT_DOWNSAMPLEFINISHED="ChartModel.EVENT_DOWNSAMPLEFINISHED";Qe.EVENT_DOWNSAMPLEFAILED="ChartModel.EVENT_DOWNSAMPLEFAILED";Qe.EVENT_DOWNSAMPLENEEDED="ChartModel.EVENT_DOWNSAMPLENEEDED";Qe.EVENT_LOADFINISHED="ChartModel.EVENT_LOADFINISHED";const ag="#76d9e4 #9edc6f #fcd65b #aa9af4 #f37e3f #f95d84 #f0f0ee",cg="#403e41",dg="#5b5a5c",hg="#c0bfbf",ug="#4878ea",mg="rgba(91, 90, 92, 0.7)",Je={"paper-bgcolor":"#2d2a2e","plot-bgcolor":"#322f33","title-color":"#f0f0ee",colorway:ag,gridcolor:cg,linecolor:dg,zerolinecolor:hg,activecolor:ug,rangebgcolor:mg,"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"},xn=Object.freeze({paper_bgcolor:Je["paper-bgcolor"],plot_bgcolor:Je["plot-bgcolor"],title_color:Je["title-color"],colorway:Je.colorway,gridcolor:Je.gridcolor,linecolor:Je.linecolor,zerolinecolor:Je.zerolinecolor,activecolor:Je.activecolor,rangebgcolor:Je.rangebgcolor,area_color:Je["area-color"],trend_color:Je["trend-color"],line_color:Je["line-color"],error_band_line_color:Je["error-band-line-color"],error_band_fill_color:Je["error-band-fill-color"],ohlc_increasing:Je["ohlc-increasing"],ohlc_decreasing:Je["ohlc-decreasing"]}),Ai=ee.module("ChartUtils"),Rn=Object.freeze(E.calendar.DayOfWeek.values()),Dl="io.deephaven.time.DateTime",pg=36e5,gg=1e6;function fg(e){return e.asDate!==void 0}function Cg(e){return e.asNumber!==void 0}function Nl(e){return e.dhTimeZone!==void 0}function bg(e){return e!=null&&e.range&&(e.autorange===!1||e.autorange===void 0)}const Q=class{static getPlotlyChartType(e,t){switch(e){case E.plot.SeriesPlotStyle.SCATTER:return t?"scatter":"scattergl";case E.plot.SeriesPlotStyle.LINE:return"scatter";case E.plot.SeriesPlotStyle.BAR:case E.plot.SeriesPlotStyle.STACKED_BAR:return"bar";case E.plot.SeriesPlotStyle.PIE:return"pie";case E.plot.SeriesPlotStyle.TREEMAP:return"treemap";case E.plot.SeriesPlotStyle.HISTOGRAM:return"histogram";case E.plot.SeriesPlotStyle.OHLC:return"ohlc";default:return}}static getPlotlyChartMode(e){switch(e){case E.plot.SeriesPlotStyle.SCATTER:return"markers";case E.plot.SeriesPlotStyle.LINE:return"lines";default:return}}static getPlotlyProperty(e,t){switch(e){case E.plot.SeriesPlotStyle.PIE:switch(t){case E.plot.SourceType.X:return"labels";case E.plot.SourceType.Y:return"values"}break;case E.plot.SeriesPlotStyle.OHLC:switch(t){case E.plot.SourceType.TIME:return"x"}break;case E.plot.SeriesPlotStyle.TREEMAP:switch(t){case E.plot.SourceType.X:return"ids";case E.plot.SourceType.Y:return"values";case E.plot.SourceType.LABEL:return"labels";case E.plot.SourceType.PARENT:return"parents";case E.plot.SourceType.COLOR:return"marker.colors"}break}switch(t){case E.plot.SourceType.X:return"x";case E.plot.SourceType.Y:return"y";case E.plot.SourceType.Z:return"z";case E.plot.SourceType.X_LOW:return"xLow";case E.plot.SourceType.X_HIGH:return"xHigh";case E.plot.SourceType.Y_LOW:return"yLow";case E.plot.SourceType.Y_HIGH:return"yHigh";case E.plot.SourceType.TIME:return"time";case E.plot.SourceType.OPEN:return"open";case E.plot.SourceType.HIGH:return"high";case E.plot.SourceType.LOW:return"low";case E.plot.SourceType.CLOSE:return"close";case E.plot.SourceType.SHAPE:return"shape";case E.plot.SourceType.SIZE:return"size";case E.plot.SourceType.LABEL:return"label";case E.plot.SourceType.COLOR:return"color";case E.plot.SourceType.PARENT:return"parent";case E.plot.SourceType.HOVER_TEXT:return"hovertext";case E.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)===E.plot.AxisType.Y?Q.ORIENTATION.HORIZONTAL:Q.ORIENTATION.VERTICAL}static getPlotlyErrorBars(e,t,n){const s=n.map((o,r)=>o-e[r]),i=t.map((o,r)=>e[r]-o);return{type:"data",symmetric:!1,array:s,arrayminus:i}}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 i;const o=e==null?void 0:e.getColumnTypeFormatter(t);return o!=null&&Nl(o)&&o.dhTimeZone!=null&&o.showTimeZone&&(i=E.i18n.DateTimeFormat.format(" z",new Date,o.dhTimeZone)),{tickformat:s,ticksuffix:i,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 i=n.split(";")[0].match(/^([^#,0.]*)([#,]*)([0,]*)(\.?)(0*)(#*)(E?0*)(%?)(.*)/);O(i);const[,o,r,l,,a,c,d,h,m]=i,p=l.replace(",","").length,f=r.indexOf(",")>=0||l.indexOf(",")>=0?",":"",C=d!=null&&d!==""?"e":"f",b=h!==""?h:C,w=a.length+c.length,I=`0${p}${f}.${w}${b}`,v=Q.convertNumberPrefix(o),R=Q.convertNumberPrefix(m);return{tickformat:I,tickprefix:v,ticksuffix:R,automargin:!0}}static getPlotlyAxisFormat(e,t=null){const{axis:n,columnType:s}=e,{formatPattern:i}=n;let o=null;return x.isDateType(s)?(o=Q.getPlotlyDateFormat(t,s,i),o=Q.addTickSpacing(o,n,!0)):x.isNumberType(s)&&(o=Q.getPlotlyNumberFormat(t,s,i),o=Q.addTickSpacing(o,n,!1)),n.formatType===E.plot.AxisFormatType.CATEGORY&&(o?o.type="category":o={type:"category",tickformat:void 0,ticksuffix:void 0}),o}static addTickSpacing(e,t,n){const{gapBetweenMajorTicks:s}=t;if(s>0){const i=e||{};let o=s;return n&&(o=s/gg),t.log&&(o=Math.log(o)),i.tickmode="linear",i.dtick=o,i}return e}static getSourceForAxis(e,t){for(let n=0;n<e.series.length;n+=1){const s=e.series[n];for(let i=0;i<s.sources.length;i+=1){const o=s.sources[i];if(o.axis===t)return o}}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=Q.ORIENTATION.VERTICAL){return{type:e,mode:t,name:n,orientation:s}}static makeSeriesDataFromSeries(e,t,n,s=xn){const{name:i,plotStyle:o,lineColor:r,shapeColor:l,sources:a}=e,c=a.some(g=>{var f;return(f=g.axis)==null?void 0:f.businessCalendar}),d=Q.getChartType(o,c),h=Q.getPlotlyChartMode(o),m=Q.getPlotlySeriesOrientation(e),p=Q.makeSeriesData(d,h,i,m);return Q.addSourcesToSeriesData(p,o,a,t),Q.addStylingToSeriesData(p,o,s,r,l,n),p}static addSourcesToSeriesData(e,t,n,s){const i=e;for(let o=0;o<n.length;o+=1){const r=n[o],{axis:l,type:a}=r,c=Q.getPlotlyProperty(t,a);Ol(i,c,[]);const d=l!=null?Q.getAxisPropertyName(l.type):null;if(d!=null){const h=s.get(l.type);if(h){const m=h.indexOf(l),p=m>0?`${m+1}`:"";i[`${d}axis`]=`${d}${p}`}}}}static addStylingToSeriesData(e,t,n=xn,s=null,i=null,o=null){const r=e;r.marker={line:{}},r.line={width:1},t===E.plot.SeriesPlotStyle.AREA?r.fill="tozeroy":t===E.plot.SeriesPlotStyle.STACKED_AREA?r.stackgroup="stack":t===E.plot.SeriesPlotStyle.STEP?r.line.shape="hv":t===E.plot.SeriesPlotStyle.HISTOGRAM?(r.width=[],r.marker.line!==void 0&&Object.assign(r.marker.line,{color:n.paper_bgcolor,width:1})):t===E.plot.SeriesPlotStyle.OHLC?(r.increasing={line:{color:n.ohlc_increasing}},r.decreasing={line:{color:n.ohlc_decreasing}}):t===E.plot.SeriesPlotStyle.PIE?(r.textinfo="label+percent",r.outsidetextfont={color:n.title_color}):t===E.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===E.plot.SeriesPlotStyle.BAR?r.marker.color=s:r.line.color=s),i!=null&&(r.marker.color=i),o!=null&&t!==E.plot.SeriesPlotStyle.PIE&&(r.visible=o)}static getAxisFormats(e,t){const n=new Map,s={tickformat:null,ticksuffix:null},i=Q.getAllAxes(e),o=Q.groupArray(i,"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:h}=d,m=h.filter(p=>p.axis);for(let p=0;p<m.length;p+=1){const g=m[p],{axis:f}=g,{type:C}=f,b=o.get(C);O(b);const w=b.indexOf(f),S=Q.getAxisPropertyName(C);if(S!=null){const I=Q.getAxisLayoutProperty(S,w);if(n.has(I))Ai.debug(`${I} already added.`);else{Ai.debug(`Adding ${I} to axisFormats.`);const v=Q.getPlotlyAxisFormat(g,t);if(v===null)n.set(I,s);else{n.set(I,v);const{businessCalendar:R}=f;if(R!=null){const M=[],{businessPeriods:F,businessDays:P,holidays:W,timeZone:B}=R,N=t==null?void 0:t.getColumnTypeFormatter(Dl);let H;Nl(N)&&(H=N.dhTimeZone);const A=H?(B.standardOffset-H.standardOffset)/60:0;W.length>0&&M.push(...Q.createRangeBreakValuesFromHolidays(W,B,H)),F.forEach(k=>M.push({pattern:"hour",bounds:[Q.periodToDecimal(k.close)+A,Q.periodToDecimal(k.open)+A]})),P.length<Rn.length&&Q.createBoundsFromDays(P).forEach(k=>M.push({pattern:"day of week",bounds:k})),v.rangebreaks=M}if(n.size===a.axes.length)return n}}}}}}return n}static getChartType(e,t){switch(e){case E.plot.SeriesPlotStyle.HISTOGRAM:return"bar";default:return Q.getPlotlyChartType(e,t)}}static getAxisPropertyName(e){switch(e){case E.plot.AxisType.X:return"x";case E.plot.AxisType.Y:return"y";default:return null}}static getAxisSide(e){switch(e){case E.plot.AxisPosition.BOTTOM:return"bottom";case E.plot.AxisPosition.TOP:return"top";case E.plot.AxisPosition.LEFT:return"left";case E.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 i=n[s];for(let o=0;o<i.series.length;o+=1)if(t===i.series[o])return i}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 i=n[s],o=e[i];bg(o)&&(t[i]=[...o.range])}return t}static updateFigureAxes(e,t,n,s=0,i=0,o=xn){const r=e,l=Q.getAllAxes(t);for(let a=0;a<t.charts.length;a+=1){const c=t.charts[a],d=n==null?void 0:n(c),h=Q.getChartBounds(t,c,s,i);Q.updateLayoutAxes(r,c.axes,l,s,i,h,d,o)}Q.removeStaleAxes(r,l)}static getChartBounds(e,t,n=0,s=0){var S;const{cols:i,rows:o}=e,{column:r,colspan:l,row:a,rowspan:c}=t,d=r+l,h=a+c,m=1/i,p=1/o,g=Q.AXIS_SIZE_PX/n,f=Q.AXIS_SIZE_PX/s,C={left:r*m+(r>0?g/2:0),bottom:a*p+(a>0?f/2:0),top:h*p-(h<o?f/2:0),right:d*m-(d<i?g/2:0)};return((S=Q.groupArray(t.axes,"position").get(E.plot.AxisPosition.RIGHT))!=null?S:[]).length>0&&(n>0?C.right-=(C.right-C.left)*Math.max(0,Math.min(Q.LEGEND_WIDTH_PX/n,Q.MAX_LEGEND_SIZE)):C.right-=(C.right-C.left)*Q.DEFAULT_AXIS_SIZE),C}static updateLayoutAxes(e,t,n,s=0,i=0,o={left:0,top:0,right:1,bottom:1},r,l=xn){const a=s>0?Math.max(Q.MIN_AXIS_SIZE,Math.min(Q.AXIS_SIZE_PX/i,Q.MAX_AXIS_SIZE)):Q.DEFAULT_AXIS_SIZE,c=i>0?Math.max(Q.MIN_AXIS_SIZE,Math.min(Q.AXIS_SIZE_PX/s,Q.MAX_AXIS_SIZE)):Q.DEFAULT_AXIS_SIZE,d=e,h=Q.groupArray(t,"position"),m=Q.groupArray(t,"type"),p=[...m.keys()],g=Q.groupArray(n,"type");for(let f=0;f<p.length;f+=1){const C=p[f],b=Q.getAxisPropertyName(C);if(b!=null){const w=m.get(C),S=g.get(C),v=C===E.plot.AxisType.Y?i:s;O(w),O(S);for(let R=0;R<w.length;R+=1){const M=w[R],F=S.indexOf(M),P=Q.getAxisLayoutProperty(b,F);d[P]==null&&(d[P]=Q.makeLayoutAxis(C,l));const W=d[P];if(W!=null){Q.updateLayoutAxis(W,M,R,h,a,c,o);const{range:B,autorange:N}=W;if(r!=null&&B!==void 0&&(N===void 0||N===!1)){const H=r(M),[A,k]=H(B);Ai.debug("Setting downsample range",v,A,k),M.range(v,A,k)}else M.range(v)}}}}}static removeStaleAxes(e,t){const n=e,s=Q.groupArray(t,"type"),i=[...s.keys()];for(let o=0;o<i.length;o+=1){const r=i[o],l=s.get(r);O(l);let a=l.length;const c=Q.getAxisPropertyName(r);if(c!=null){let d=Q.getAxisLayoutProperty(c,a);for(;n[d]!=null;)delete n[d],a+=1,d=Q.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,i,o,r){var h,m,p;const a=t.type===E.plot.AxisType.Y?o:i,c=e,d=(h=t.label)!=null?h:"";if(c.title!==void 0&&typeof c.title!="string"?c.title.text=d:c.title={text:d},t.log&&(c.type="log"),c.side=Q.getAxisSide(t.position),n>0){c.overlaying=(m=Q.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===E.plot.AxisPosition.RIGHT?c.position=r.right+(f-g.length+1)*a:t.position===E.plot.AxisPosition.TOP?c.position=r.top+(f-g.length+1)*a:t.position===E.plot.AxisPosition.BOTTOM?c.position=r.bottom+(g.length-f+1)*a:t.position===E.plot.AxisPosition.LEFT&&(c.position=r.left+(g.length-f+1)*a))}else if(t.type===E.plot.AxisType.X){const g=s.get(E.plot.AxisPosition.LEFT)||[],f=s.get(E.plot.AxisPosition.RIGHT)||[],C=Math.max(r.left,r.left+(g.length-1)*o),b=Math.min(r.right-(f.length-1)*o,r.right);c.domain=[C,b]}else if(t.type===E.plot.AxisType.Y){const g=s.get(E.plot.AxisPosition.BOTTOM)||[],f=s.get(E.plot.AxisPosition.TOP)||[],C=Math.max(r.bottom,r.bottom+(g.length-1)*i),b=Math.min(r.top-(f.length-1)*i,r.top);c.domain=[C,b]}}static periodToDecimal(e){const t=e.split(":");return Number(t[0])+Number(t[1])/60}static createBoundsFromDays(e){const t=e.map(o=>Rn.indexOf(o)),n=Rn.filter(o=>!e.includes(o)).map(o=>Rn.indexOf(o)),s=new Set;n.forEach(o=>{for(let r=o+1;r<o+Rn.length;r+=1){const l=r%Rn.length;if(t.includes(l)){s.add(l);break}}});const i=[];return s.forEach(o=>{for(let r=o-1;r>o-Rn.length;r-=1){const l=r<0?r+Rn.length:r;if(t.includes(l)){const a=(l+1)%7;i.push([a,o]);break}}}),i}static createRangeBreakValuesFromHolidays(e,t,n){const s=[],i=[];return e.forEach(o=>{o.businessPeriods.length>0?i.push(...Q.createPartialHoliday(o,t,n)):s.push(Q.createFullHoliday(o,t,n))}),[{values:s},...i]}static createFullHoliday(e,t,n){return Q.adjustDateForTimeZone(`${e.date.toString()} 00:00:00.000000`,t,n)}static createPartialHoliday(e,t,n){const s=e.date.toString(),i=["00:00"];e.businessPeriods.forEach(r=>{i.push(r.open),i.push(r.close)}),i.push("24:00");const o=[];for(let r=0;r<i.length;r+=2){const l=i[r],a=i[r+1];if(l!==a){const c=[Q.adjustDateForTimeZone(`${s} ${l}:00.000000`,t,n)],d=pg*(Q.periodToDecimal(a)-Q.periodToDecimal(l));o.push({values:c,dvalue:d})}}return o}static adjustDateForTimeZone(e,t,n){return n&&n.standardOffset!==t.standardOffset?Q.unwrapValue(Q.wrapValue(e,Dl,t),n):e}static groupArray(e,t){return e.reduce((n,s)=>{var r;const i=s[t],o=(r=n.get(i))!=null?r:[];return o.push(s),n.set(i,o),n},new Map)}static unwrapValue(e,t){if(e!=null){if(fg(e))return E.i18n.DateTimeFormat.format(Q.DATE_FORMAT,e,t);if(Cg(e))return e.asNumber()}return e}static wrapValue(e,t,n=null){if(x.isDateType(t)&&typeof e=="string"){const s=e,i=Q.DATE_FORMAT.substr(0,e.length),o=E.i18n.DateTimeFormat.parse(i,s);if(!n)return o;const r=`${i} Z`,l=E.i18n.DateTimeFormat.format("Z",o,n),a=E.i18n.DateTimeFormat.parse(r,`${s} ${l}`),c=E.i18n.DateTimeFormat.format("Z",a,n);return E.i18n.DateTimeFormat.parse(r,`${s} ${c}`)}return e}static makeLayoutAxis(e,t=xn){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===E.plot.AxisType.X?Object.assign(n,{showgrid:!0}):e===E.plot.AxisType.Y&&Object.assign(n,{zerolinecolor:t.zerolinecolor,zerolinewidth:2}),n}static getColorwayFromTheme(e=xn){let t=[];return e.colorway&&(Array.isArray(e.colorway)?t=e.colorway:typeof e.colorway=="string"?t=e.colorway.split(" "):Ai.warn(`Unable to handle colorway property: ${e.colorway}`)),t}static makeDefaultLayout(e=xn){const t={...e,autosize:!0,colorway:Q.getColorwayFromTheme(e),font:{family:"'Fira Sans', sans-serif"},title:{font:{color:e.title_color},yanchor:"top",pad:{...Q.DEFAULT_TITLE_PADDING},y:1},legend:{font:{color:e.title_color}},margin:{...Q.DEFAULT_MARGIN},xaxis:Q.makeLayoutAxis(E.plot.AxisType.X,e),yaxis:Q.makeLayoutAxis(E.plot.AxisType.Y,e)};return t.datarevision=0,t}static hydrateSettings(e){return{...e,type:E.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:i}=e,o=Q.titleFromSettings(e),r={formatType:`${E.plot.AxisFormatType.NUMBER}`,type:`${E.plot.AxisType.X}`,position:`${E.plot.AxisPosition.BOTTOM}`},l={formatType:`${E.plot.AxisFormatType.NUMBER}`,type:`${E.plot.AxisType.Y}`,position:`${E.plot.AxisPosition.LEFT}`};return{charts:[{chartType:`${E.plot.ChartType.XY}`,axes:[r,l],series:n.map(a=>({plotStyle:`${i}`,name:a,dataSources:[{type:`${E.plot.SourceType.X}`,columnName:s,axis:r,table:t},{type:`${E.plot.SourceType.Y}`,columnName:a,axis:l,table:t}]}))}],title:o}}};let Te=Q;Te.DEFAULT_AXIS_SIZE=.15;Te.MIN_AXIS_SIZE=.025;Te.MAX_AXIS_SIZE=.2;Te.AXIS_SIZE_PX=75;Te.LEGEND_WIDTH_PX=50;Te.MAX_LEGEND_SIZE=.25;Te.ORIENTATION=Object.freeze({HORIZONTAL:"h",VERTICAL:"v"});Te.DATE_FORMAT="yyyy-MM-dd HH:mm:ss.SSSSSS";Te.DEFAULT_MARGIN=Object.freeze({l:60,r:50,t:30,b:60,pad:0});Te.DEFAULT_TITLE_PADDING=Object.freeze({t:8});Te.SUBTITLE_LINE_HEIGHT=25;const In=ee.module("Chart"),Qs=class extends y.exports.Component{constructor(e){super(e),this.getCachedConfig=Ie((t,n,s,i)=>{const o=[],r=Boolean(t);if(r&&o.push({name:`Downsampling failed: ${t}`,click:()=>{},icon:Qs.convertIcon(Xl),attr:"fill-warning"}),n||s||i||r){const l=Qs.downsampleButtonTitle(s,i),a=Qs.downsampleButtonAttr(s,i),c=s?zl:kd;o.push({name:l,icon:Qs.convertIcon(c),click:this.handleDownsampleClick,attr:a})}return{displaylogo:!1,displayModeBar:s||r?!0:"hover",modeBarButtons:[o,["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){In.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(In.debug2("Received data update",t,n),t){case Qe.EVENT_UPDATED:{this.currentSeries+=1,this.setState(o=>{const{layout:r,revision:l}=o;return typeof r.datarevision=="number"&&(r.datarevision+=1),{data:n,layout:r,revision:l+1}});const{onUpdate:i}=this.props;i({isLoading:!this.isLoadedFired});break}case Qe.EVENT_LOADFINISHED:{const{onUpdate:i}=this.props;this.isLoadedFired=!0,i({isLoading:!1});break}case Qe.EVENT_DISCONNECT:{const{onDisconnect:i}=this.props;i();break}case Qe.EVENT_RECONNECT:{const{onReconnect:i}=this.props;i();break}case Qe.EVENT_DOWNSAMPLESTARTED:{this.setState({isDownsampleFinished:!1,isDownsampleInProgress:!0,downsamplingError:null});break}case Qe.EVENT_DOWNSAMPLEFINISHED:{this.setState({isDownsampleFinished:!0,isDownsampleInProgress:!1,downsamplingError:null});break}case Qe.EVENT_DOWNSAMPLENEEDED:case Qe.EVENT_DOWNSAMPLEFAILED:{const i=(s=n.message)!=null?s:n;this.setState({isDownsampleFinished:!1,isDownsampleInProgress:!1,isDownsamplingDisabled:!1,downsamplingError:i});const{onError:o}=this.props;o(new Error(i));break}default:In.debug("Unknown event type",t,e)}}handlePlotUpdate(e){const{layout:t}=e,n=Te.getLayoutRanges(t);!dt(n,this.ranges)&&(this.ranges=n,this.updateModelDimensions(!0))}handleRelayout(e){if(In.debug("handleRelayout",e),e.hiddenlabels!=null){const{onSettingsChanged:t}=this.props,n=[...e.hiddenlabels];t({hiddenSeries:n})}this.updateModelDimensions()}handleRestyle([e,t]){if(In.debug("handleRestyle",e,t),Object.keys(e).includes("visible")){const{data:n}=this.state,{onSettingsChanged:s}=this.props;if(n!=null){const i=n.reduce((o,{name:r,visible:l})=>r!=null&&l==="legendonly"?[...o,r]:o,[]);s({hiddenSeries:i})}}}updateModelDimensions(e=!1){const t=this.getPlotRect();if(!t){In.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:i}=this.props;i.setDimensions(t),s&&this.subscribe()}}initFormatter(){const{settings:e}=this.props;this.updateFormatterSettings(e)}updateFormatterSettings(e){const t=os.getColumnFormats(e),n=os.getDateTimeFormatterOptions(e),{decimalFormatOptions:s={},integerFormatOptions:i={}}=e;(!dt(this.columnFormats,t)||!dt(this.dateTimeFormatterOptions,n)||!dt(this.decimalFormatOptions,s)||!dt(this.integerFormatOptions,i))&&(this.columnFormats=os.getColumnFormats(e),this.dateTimeFormatterOptions=n,this.decimalFormatOptions=s,this.integerFormatOptions=i,this.updateFormatter())}updateFormatter(){const e=new Zt(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&&_i.relayout(this.plot.current.el,{autosize:!0}).catch(t=>{In.debug("Unable to resize, promise rejected",t)})}render(){const{data:e,downsamplingError:t,isDownsampleFinished:n,isDownsampleInProgress:s,isDownsamplingDisabled:i,layout:o,revision:r}=this.state,l=this.getCachedConfig(t,n,s,i),a=e!=null;return u("div",{className:"h-100 w-100 chart-wrapper",ref:this.plotWrapper,children:a&&u(lg,{ref:this.plot,data:e,layout:o,revision:r,config:l,onAfterPlot:this.handleAfterPlot,onError:In.error,onRelayout:this.handleRelayout,onUpdate:this.handlePlotUpdate,onRestyle:this.handleRestyle,useResizeHandler:!0,style:{height:"100%",width:"100%"}})})}};let wg=Qs;wg.defaultProps={isActive:!0,settings:{timeZone:"America/New_York",defaultDateTimeFormat:_n.FULL_DATE_FORMAT,showTimeZone:!1,showTSeparator:!0,formatter:[]},onDisconnect:()=>{},onReconnect:()=>{},onUpdate:()=>{},onError:()=>{},onSettingsChanged:()=>{}};const st=ee.module("FigureChartModel"),sc=class extends Qe{constructor(e,t={},n=xn){super(),this.addPendingSeries=Tt(()=>{const i=Te.getAllAxes(this.figure),{pendingSeries:o}=this;for(let r=0;r<o.length;r+=1){const l=o[r];this.addSeries(l,i),l.subscribe()}this.pendingSeries=[]},sc.ADD_SERIES_DEBOUNCE),this.getTimeZone=me((i,o)=>{if(o!=null){const r=o.getColumnTypeFormatter(i);if(r!=null)return r.dhTimeZone}return null}),this.getValueTranslator=me((i,o)=>{const r=this.getTimeZone(i,o);return l=>Te.unwrapValue(l,r)}),this.getValueParser=me((i,o)=>{const r=this.getTimeZone(i,o);return l=>Te.wrapValue(l,i,r)}),this.getRangeParser=me((i,o)=>r=>{let[l,a]=r;const c=this.getValueParser(i,o);return l=c(l),a=c(a),[l,a]}),this.getAxisRangeParser=me((i,o)=>r=>{const l=Te.getSourceForAxis(i,r);return l?this.getRangeParser(l.columnType,o):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:Te.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=Te.getAllAxes(this.figure),n=[];for(let o=0;o<e.length;o+=1){const r=e[o];for(let l=0;l<r.series.length;l+=1){const a=r.series[l];n.push(a.name),this.addSeries(a,t)}}const i=[...this.seriesDataMap.keys()].filter(o=>n.indexOf(o)<0);for(let o=0;o<i.length;o+=1){const r=i[o];this.seriesDataMap.delete(r)}this.seriesToProcess=new Set([...this.seriesDataMap.keys()])}addSeries(e,t){const n=Te.groupArray(t,"type"),s=Te.makeSeriesDataFromSeries(e,n,Te.getSeriesVisibility(e.name,this.settings),this.theme);if(this.seriesDataMap.set(e.name,s),this.data=[...this.seriesDataMap.values()],e.plotStyle===E.plot.SeriesPlotStyle.STACKED_BAR?this.layout.barmode="stack":e.plotStyle===E.plot.SeriesPlotStyle.PIE&&(this.layout.hiddenlabels=Te.getHiddenLabels(this.settings)),this.layout.showlegend=this.data.length>1||e.plotStyle===E.plot.SeriesPlotStyle.PIE,e.oneClick!=null){const{oneClick:i}=e,{columns:o}=i;for(let r=0;r<o.length;r+=1)this.filterColumnMap.set(o[r].name,o[r]);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){st.debug("Ignoring subscribe when figure in disconnected state");return}this.figure.subscribe(this.isDownsamplingDisabled?E.plot.DownsampleOptions.DISABLE:E.plot.DownsampleOptions.DEFAULT)}unsubscribeFigure(){this.figure.unsubscribe()}startListeningFigure(){this.figure.addEventListener(E.plot.Figure.EVENT_UPDATED,this.handleFigureUpdated),this.figure.addEventListener(E.plot.Figure.EVENT_SERIES_ADDED,this.handleFigureSeriesAdded),this.figure.addEventListener(E.plot.Figure.EVENT_DISCONNECT,this.handleFigureDisconnected),this.figure.addEventListener(E.plot.Figure.EVENT_RECONNECT,this.handleFigureReconnected),this.figure.addEventListener(E.plot.Figure.EVENT_DOWNSAMPLESTARTED,this.handleDownsampleStart),this.figure.addEventListener(E.plot.Figure.EVENT_DOWNSAMPLEFINISHED,this.handleDownsampleFinish),this.figure.addEventListener(E.plot.Figure.EVENT_DOWNSAMPLEFAILED,this.handleDownsampleFail),this.figure.addEventListener(E.plot.Figure.EVENT_DOWNSAMPLENEEDED,this.handleDownsampleNeeded),this.figure.addEventListener(E.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed)}stopListeningFigure(){this.figure.removeEventListener(E.plot.Figure.EVENT_UPDATED,this.handleFigureUpdated),this.figure.removeEventListener(E.plot.Figure.EVENT_SERIES_ADDED,this.handleFigureSeriesAdded),this.figure.removeEventListener(E.plot.Figure.EVENT_DISCONNECT,this.handleFigureDisconnected),this.figure.removeEventListener(E.plot.Figure.EVENT_RECONNECT,this.handleFigureReconnected),this.figure.removeEventListener(E.plot.Figure.EVENT_DOWNSAMPLESTARTED,this.handleDownsampleStart),this.figure.removeEventListener(E.plot.Figure.EVENT_DOWNSAMPLEFINISHED,this.handleDownsampleFinish),this.figure.removeEventListener(E.plot.Figure.EVENT_DOWNSAMPLEFAILED,this.handleDownsampleFail),this.figure.removeEventListener(E.plot.Figure.EVENT_DOWNSAMPLENEEDED,this.handleDownsampleNeeded),this.figure.removeEventListener(E.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed)}handleDownsampleStart(e){st.debug("Downsample started",e),this.fireDownsampleStart(e.detail)}handleDownsampleFinish(e){st.debug("Downsample finished",e),this.fireDownsampleFinish(e.detail)}handleDownsampleFail(e){st.error("Downsample failed",e),this.fireDownsampleFail(e.detail)}handleDownsampleNeeded(e){st.info("Downsample needed",e),this.fireDownsampleNeeded(e.detail)}handleFigureUpdated(e){const{detail:t}=e,{series:n}=t;st.debug2("handleFigureUpdated",n);for(let i=0;i<n.length;i+=1){const o=n[i];st.debug2("handleFigureUpdated updating series",o.name);const{sources:r}=o;for(let l=0;l<r.length;l+=1){const a=r[l],{columnType:c,type:d}=a,h=this.getValueTranslator(c,this.formatter),m=t.getArray(o,d,h);this.setDataArrayForSeries(o,d,m)}this.seriesToProcess.delete(o.name),this.seriesToProcess.size===0&&this.fireLoadFinished(),this.cleanSeries(o)}const{data:s}=this;this.fireUpdate(s)}handleRequestFailed(e){st.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){st.debug("Figure disconnected",e),this.isConnected=!1,this.listeners.length>0&&this.unsubscribeFigure(),this.fireDisconnect()}handleFigureReconnected(e){st.debug("Figure reconnected",e),this.isConnected=!0,this.initAllSeries(),this.fireReconnect(),this.listeners.length>0&&this.subscribeFigure()}handleFigureSeriesAdded(e){const{detail:t}=e;st.debug("handleFigureSeriesAdded",t),this.pendingSeries.push(t),this.addPendingSeries()}setDimensions(e){super.setDimensions(e),this.updateAxisPositions()}setTitle(e){var s,i;super.setTitle(e);const t=(i=(s=(e!=null?e:"").match(/<br>/g))==null?void 0:s.length)!=null?i:0,n=Te.DEFAULT_MARGIN.t+t*Te.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=Te.DEFAULT_TITLE_PADDING.t+t*Te.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();Te.updateFigureAxes(this.layout,this.figure,n=>this.getAxisRangeParser(n,this.formatter),e,t,this.theme)}updateLayoutFormats(){if(!this.formatter)return;Te.getAxisFormats(this.figure,this.formatter).forEach((t,n)=>{st.debug(`Assigning ${n}`,this.layout[n],t);const s=this.layout[n];s!=null?Object.assign(s,t):st.debug(`Ignoring null layout.${n}`)})}setDataArrayForSeries(e,t,n){const{name:s,plotStyle:i}=e,o=this.seriesDataMap.get(s),r=Te.getPlotlyProperty(i,t);o&&Ol(o,r,n)}cleanSeries(e){const{name:t,plotStyle:n}=e,s=this.seriesDataMap.get(t);if(s!=null){if(n===E.plot.SeriesPlotStyle.HISTOGRAM){const{xLow:i,xHigh:o}=s;if(i&&o&&i.length===o.length){const r=[];for(let l=0;l<i.length;l+=1)r.push(o[l]-i[l]);s.width=r}}else if(n===E.plot.SeriesPlotStyle.LINE){const{x:i,xLow:o,xHigh:r,y:l,yLow:a,yHigh:c}=s;o&&r&&o!==i&&(s.error_x=Te.getPlotlyErrorBars(i,o,r)),a&&c&&a!==l&&(s.error_y=Te.getPlotlyErrorBars(l,a,c))}else if(n===E.plot.SeriesPlotStyle.TREEMAP){const{ids:i,labels:o}=s;i!==void 0&&o===void 0&&(s.labels=i)}}}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){st.warn("Trying to set a filter, but no one click!");return}st.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(o=>{const r=e.get(o);this.lastFilter.get(o)!==r&&s.find(l=>l.name===o)!=null&&n.setValueForColumn(o,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 Sg=sc;Sg.ADD_SERIES_DEBOUNCE=50;function vg({text:e,isOpen:t,onClose:n}){const[s,i]=y.exports.useState(!1),[o,r]=y.exports.useState(0),[l,a]=y.exports.useState(!1),[c,d]=y.exports.useState(!1),[h,m]=y.exports.useState(!1),p=y.exports.useRef(),g=y.exports.useRef(null),[f,C]=y.exports.useState(!1);y.exports.useEffect(function(){if(!!t){try{JSON.parse(e),m(!0)}catch{m(!1)}d(!1)}},[t,e]),y.exports.useEffect(function(){p.current&&p.current.layout()},[o]),y.exports.useEffect(function(){p.current&&p.current.updateOptions({lineNumbers:l?"on":"off"})},[l]),y.exports.useEffect(()=>(g.current&&clearTimeout(g.current),g.current=setTimeout(()=>{C(!1)},1e3),()=>{g.current&&clearTimeout(g.current)}),[f]);function b(){var M,F;Se.copyToClipboard((F=(M=p.current)==null?void 0:M.getValue())!=null?F:e).then(()=>{C(!0)})}function w(){a(!l)}function S(){var F;const M=(F=p.current)==null?void 0:F.getModel();!h||!M||(c?(M.setValue(e),d(!1)):(M.setValue(JSON.stringify(JSON.parse(e),void 0,2)),d(!0)),I())}function I(){var F,P;const M=p.current;!M||a(((P=(F=M.getModel())==null?void 0:F.getLineCount())!=null?P:0)>1)}function v(){s&&(p.current=void 0,n())}function R(M){p.current=M,M.onDidContentSizeChange(({contentHeight:F})=>r(F)),I()}return!t&&!s?null:T(Zc,{isOpen:t,centered:!0,keyboard:!0,toggle:v,onOpened:()=>i(!0),onClosed:()=>{i(!1),r(0)},className:"theme-bg-dark cell-overflow-modal",children:[T(ed,{toggle:n,children:[u("h5",{className:"overflow-modal-title",children:"Cell Contents"}),u(Y,{kind:"inline",icon:f?$l:Vl,tooltip:f?"Copied contents":"Copy contents",onClick:b}),u(Y,{kind:"inline",active:l,icon:gd,tooltip:"Toggle line numbers",onClick:w}),h&&u(Y,{kind:"inline",icon:ud,active:c,tooltip:"Format as JSON",onClick:S})]}),u(Jc,{style:{height:o},children:u(Tr,{onEditorInitialized:R,settings:{value:e,readOnly:!0,wordWrap:"on",language:h?"typescript":"plaintext",folding:h,padding:{bottom:16},lineNumbers:l?"on":"off",overviewRulerLanes:0,renderLineHighlight:"none",find:{seedSearchStringFromSelection:"never"}}})})]})}const Tg="###,##0",Eg=({gotoRow:e,gotoRowError:t,onSubmit:n,isShown:s,onEntering:i,onEntered:o,onExiting:r,onExited:l,model:a,onGotoRowNumberChanged:c,onClose:d})=>{const h=y.exports.useRef(null),m="Row number",{rowCount:p}=a;return y.exports.useEffect(()=>{var g;document.activeElement!==h.current&&((g=h.current)==null||g.select())},[e]),u(io,{isShown:s,className:$("goto-row"),onEntering:i,onEntered:()=>{var g;o(),(g=h.current)==null||g.select()},onExiting:r,onExited:l,children:T(Ne,{children:[T("div",{className:"goto-row-wrapper",children:[u("div",{className:"goto-row-text",children:"Go to row"}),u("div",{className:"goto-row-input",children:u("input",{ref:h,type:"number",onKeyDown:g=>{g.key==="Enter"&&(g.stopPropagation(),g.preventDefault(),n())},className:$("form-control",{"is-invalid":t!==""}),placeholder:m,onChange:g=>{c(g)},value:e})}),T("div",{className:"goto-row-text",children:["of ",dh.i18n.NumberFormat.format(Tg,p)]}),t&&u("div",{className:"goto-row-error text-danger",children:t})]}),u("div",{className:"goto-row-close",children:u(Y,{kind:"ghost",onClick:d,children:u(K,{icon:ti,style:{marginRight:"0"}})})})]})})},re=ee.module("IrisGrid"),yg=500,Rg=250,Ig=250,ic=Object.freeze({aggregations:[],showOnTop:!1});function Fl({advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:i,rollupConfig:o,searchFilter:r,selectDistinctColumns:l,sorts:a}){return e.size===0&&t.aggregations.length===0&&n.length===0&&s.size===0&&i===x.REVERSE_TYPE.NONE&&o==null&&r==null&&l.length===0&&a.length===0}const ts=class extends y.exports.Component{constructor(e){super(e),this.getAdvancedMenuOpenedHandler=me(k=>this.handleAdvancedMenuOpened.bind(this,k),{max:100}),this.getCachedAdvancedFilterMenuActions=me((k,_,V,G,J)=>u(wr,{model:k,column:_,onFilterChange:this.handleAdvancedFilterChange,onSortChange:this.handleAdvancedFilterSortChange,onDone:this.handleAdvancedFilterDone,options:V,sortDirection:G,formatter:J}),{max:50}),this.getCachedOptionItems=me((k,_,V,G,J,te,ae,Ce,de,ve,_e,Ke,Mt,Xe,Ze,Ut)=>{const Fe=[];return k&&Fe.push({type:be.CHART_BUILDER,title:"Chart Builder",icon:Ld}),Fe.push({type:be.VISIBILITY_ORDERING_BUILDER,title:"Column Visibility & Ordering",icon:_o}),V&&Fe.push({type:be.CONDITIONAL_FORMATTING,title:"Conditional Formatting",icon:Ul}),_&&Fe.push({type:be.CUSTOM_COLUMN_BUILDER,title:"Manage Custom Columns",icon:Ed}),G&&Fe.push({type:be.ROLLUP_ROWS,title:"Rollup Rows",icon:Wd}),J&&Fe.push({type:be.AGGREGATIONS,title:"Aggregate Columns",icon:yd}),te&&Fe.push({type:be.SELECT_DISTINCT,title:"Select Distinct Values",icon:Td}),ae&&Mt&&Fe.push({type:be.TABLE_EXPORTER,title:"Download CSV",icon:ad}),Ut&&Fe.push({type:be.ADVANCED_SETTINGS,title:"Advanced Settings",icon:Rd}),Fe.push({type:be.QUICK_FILTERS,title:"Quick Filters",subtitle:Ce.shortcut.getDisplayText(),icon:Vi,isOn:_e,onChange:Ce.action}),Xe&&Fe.push({type:be.SEARCH_BAR,title:"Search Bar",subtitle:de.shortcut.getDisplayText(),icon:ql,isOn:Ke,onChange:de.action}),Fe.push({type:be.GOTO,title:"Go to",subtitle:ve.shortcut.getDisplayText(),icon:vd,isOn:Ze,onChange:ve.action}),Fe},{max:1}),this.getCachedHiddenColumns=me(k=>k,{max:1,normalizer:([k])=>k.join()}),this.getAggregationMap=me((k,_)=>{const V={};return _.forEach(({operation:G,selected:J,invert:te})=>{V[G]=An.getOperationColumnNames(k,G,J,te)}),V}),this.getOperationMap=me((k,_)=>{const V={};return _.filter(G=>!An.isRollupOperation(G.operation)).forEach(({operation:G,selected:J,invert:te})=>{An.getOperationColumnNames(k,G,J,te).forEach(ae=>{var de;const Ce=[...(de=V[ae])!=null?de:[],G];V[ae]=Ce})}),V}),this.getOperationOrder=me(k=>k.map(_=>_.operation).filter(_=>!An.isRollupOperation(_))),this.getCachedFormatColumns=me((k,_)=>lm(k,_)),this.getCachedModelColumns=me((k,_)=>k.columns),this.getCachedPreviewFormatColumns=me((k,_,V,G)=>{if(re.debug("getCachedPreviewFormatColumns",_,V,G),V!==void 0&&G!==void 0){const J=[..._];return J[G]=V,this.getCachedFormatColumns(k,J)}return this.getCachedFormatColumns(k,_)}),this.getModelRollupConfig=me((k,_,V)=>se.getModelRollupConfig(k,_,V)),this.getModelTotalsConfig=me((k,_,V)=>{var Ce,de,ve;const{aggregations:G,showOnTop:J}=V;if(((de=(Ce=_==null?void 0:_.columns)==null?void 0:Ce.length)!=null?de:0)>0||((ve=G==null?void 0:G.length)!=null?ve:0)===0)return null;const te=this.getOperationMap(k,G),ae=this.getOperationOrder(G);return{operationMap:te,operationOrder:ae,showOnTop:J}}),this.getCachedStateOverride=me((k,_,V,G,J,te,ae,Ce,de,ve)=>({hoverSelectColumn:k,isFilterBarShown:_,isSelectingColumn:V,loadingScrimProgress:G,quickFilters:J,advancedFilters:te,sorts:ae,reverseType:Ce,rollupConfig:de,isMenuShown:ve}),{max:1}),this.getCachedFilter=me((k,_,V,G,J)=>[...k!=null?k:[],...G!=null?G:[],...se.getFiltersFromFilterMap(_),...se.getFiltersFromFilterMap(V),...J!==void 0?[J]:[]],{max:1}),this.getCachedTheme=me((k,_,V)=>({...Aa,...k,autoSelectRow:!_,rowFooterWidth:V>0?k.rowFooterWidth:0}),{max:1}),this.getAlwaysFetchColumns=me((k,_,V,G,J,te)=>{const ae=[];for(let de=0;de<G;de+=1)ae.push(_[U.getModelIndex(de,V)].name);for(let de=0;de<J;de+=1)ae.push(_[U.getModelIndex(_.length-1-de,V)].name);if(te)for(let de=te[0];de<=te[1];de+=1)ae.push(_[U.getModelIndex(de,V)].name);return[...new Set([...k,...ae])]}),this.updateSearchFilter=Tt((k,_,V,G)=>{const J=xi.createSearchFilter(k,_,V,G);this.setState({searchFilter:J})},Rg),this.handleConditionalFormatEditorUpdate=Tt(k=>{this.setState({conditionalFormatPreview:k})},Ig),this.handleDownloadProgressUpdate=ls((k,_)=>{const{tableDownloadStatus:V}=this.state;V===wt.DOWNLOAD_STATUS.DOWNLOADING&&this.setState({tableDownloadProgress:k,tableDownloadEstimatedTime:_})},yg),this.getOverflowButtonTooltip=me(k=>{if(k==null)return null;const _={position:"absolute",...k,pointerEvents:"none"};return u("div",{style:_,children:u(Le,{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.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 Ji,this.globalColumnFormats=[],this.decimalFormatOptions={},this.integerFormatOptions={},this.truncateNumbersWithPound=!1,this.renderer=new Zs,this.tableSaver=null,this.crossColumnRef=j.createRef(),this.isAnimating=!1,this.filterInputRef=j.createRef(),this.toggleFilterBarAction={action:()=>this.toggleFilterBar(),shortcut:Pt.TABLE.TOGGLE_QUICK_FILTER},this.toggleSearchBarAction={action:()=>this.toggleSearchBar(),shortcut:Pt.TABLE.TOGGLE_SEARCH},this.toggleGotoRowAction={action:()=>this.toggleGotoRow(),shortcut:Pt.TABLE.GOTO_ROW},this.discardAction={action:()=>{const{model:k}=this.props;Ae(k)&&k.isEditable&&k.pendingDataMap.size>0&&this.discardPending().catch(re.error)},shortcut:Pt.INPUT_TABLE.DISCARD},this.commitAction={action:()=>{const{model:k}=this.props;Ae(k)&&k.isEditable&&k.pendingDataMap.size>0&&k.pendingDataErrors.size===0&&this.commitPending().catch(re.error)},shortcut:Pt.INPUT_TABLE.COMMIT},this.contextActions=[this.toggleFilterBarAction,this.toggleSearchBarAction,this.toggleGotoRowAction,this.discardAction,this.commitAction];const{aggregationSettings:t,conditionalFormats:n,customColumnFormatMap:s,isFilterBarShown:i,isSelectingPartition:o,model:r,movedColumns:l,movedRows:a,partition:c,partitionColumn:d,rollupConfig:h,userColumnWidths:m,userRowHeights:p,showSearchBar:g,searchValue:f,selectedSearchColumns:C,invertSearchColumns:b,advancedFilters:w,quickFilters:S,selectDistinctColumns:I,pendingDataMap:v,canCopy:R,frozenColumns:M}=e,F=[new gm(this),new fm(this)];R&&F.push(new um(this));const P=[new Cm(this),new bm(this),new wm(this),new Em(this),new Tm(this),new Cn(this),new vm(this),new ym(this)],W=l.length>0?l:r.movedColumns,B=a.length>0?a:r.movedRows,N=new Mm({userColumnWidths:new Map(m),userRowHeights:new Map(p),movedColumns:W}),H=C!=null?C:[],A=xi.createSearchFilter(f,H,r.columns,b);this.state={isFilterBarShown:i,isSelectingPartition:o,focusedFilterBarColumn:null,metricCalculator:N,metrics:void 0,keyHandlers:F,mouseHandlers:P,partition:c,partitionColumn:d,partitionTable:null,partitionFilters:[],quickFilters:S?new Map(S):new Map,advancedFilters:new Map(w),shownAdvancedFilter:null,hoverAdvancedFilter:null,sorts:[],reverseType:x.REVERSE_TYPE.NONE,customColumns:[],selectDistinctColumns:I,selectedRanges:[],copyOperation:null,loadingText:null,loadingScrimProgress:null,loadingSpinnerShown:!1,movedColumns:W,movedRows:B,shownColumnTooltip:null,formatter:new Zt,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:A,searchValue:f,selectedSearchColumns:H,invertSearchColumns:b,rollupConfig:h,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:""}}static makeQuickFilter(e,t,n){try{return x.makeQuickFilter(e,t,n)}catch(s){re.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:i,customFilters:o,sorts:r}=this.props;i!==e.model&&(this.stopListening(e.model),this.startListening(i));const l=t!==e.inputFilters?t.filter(h=>!e.inputFilters.includes(h)):[];if(l.length>0){const{advancedSettings:h}=this.props,m=(d=h.get(as.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),o!==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 h=Date.now(),m=h-a,p=c-a,g=Math.min(m/p,1);c<h&&(this.loadingScrimStartTime=void 0,this.loadingScrimFinishTime=void 0),this.setState(f=>f.loadingScrimProgress==null?(re.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,i=this.getModelColumn(e),o=this.getModelRow(t);return n&&i!=null&&o!=null?s.valueForCell(i,o):n?null:i!=null&&o!=null?s.textForCell(i,o):""}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=Ae(e)&&e.isEditable)!=null?n:!1,e.floatingTopRowCount+e.floatingBottomRowCount)}getVisibleColumn(e){const{movedColumns:t}=this.state;return U.getVisibleIndex(e,t)}applyInputFilters(e,t=!1){const{model:n}=this.props,{advancedFilters:s,quickFilters:i}=this.state,o=t?new Map:new Map(s),r=t?new Map:new Map(i);let l=t&&s.size>0;e.forEach(({name:a,type:c,value:d})=>{const h=n.columns.findIndex(({name:m,type:p})=>m===a&&p===c);h>=0?(l=o.delete(h)||l,l=this.applyQuickFilter(h,d,r)||l):re.error("Unable to find column for inputFilter",a,c,d)}),l&&this.setState({quickFilters:r,advancedFilters:o})}applyQuickFilter(e,t,n){const{model:s}=this.props,{formatter:i}=s,o=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 re.debug2("Ignoring change to existing filter"),!1}return n.set(e,{text:t,filter:ts.makeQuickFilter(o,t,i.timeZone)}),!0}return n.delete(e)}setAdvancedFilterMap(e){this.setState({advancedFilters:e})}setAdvancedFilter(e,t,n){re.debug("Setting advanced filter",e,t),this.startLoading("Filtering...",!0),this.setState(({advancedFilters:s})=>{const i=new Map(s);return t==null?i.delete(e):i.set(e,{filter:t,options:n}),{advancedFilters:i}})}setQuickFilter(e,t,n){re.debug("Setting quick filter",e,t,n),this.startLoading("Filtering...",!0),this.setState(({quickFilters:s})=>{const i=new Map(s);return i.set(e,{filter:t,text:n}),{quickFilters:i}})}setFilterMap(e){var i;re.debug("setFilterMap",e);const{advancedSettings:t}=this.props;((i=t.get(as.LINK_CHANGE_CLEARS_ALL_FILTERS))!=null?i:!1)&&this.clearAllFilters();const{model:s}=this.props;e.forEach(({columnType:o,text:r,value:l},a)=>{const c=s.columns.find(h=>h.name===a&&h.type===o);if(c==null)return;const d=s.getColumnIndexByName(c.name);if(O(d),l===void 0)this.removeQuickFilter(d);else if(l===null)this.setQuickFilter(d,c.filter().isNull(),"=null");else{const h=x.isTextType(o)?E.FilterValue.ofString(l):E.FilterValue.ofNumber(l);this.setQuickFilter(d,c.filter().eq(h),`${r}`)}})}removeColumnFilter(e){this.startLoading("Filtering...",!0),this.setState(({advancedFilters:t,quickFilters:n})=>{const s=t?new Map(t):new Map,i=n?new Map(n):new Map;return i.delete(e),s.delete(e),{quickFilters:i,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(){re.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(){re.debug("Clearing cross-column search"),this.setState({searchValue:"",searchFilter:void 0})}clearGridInputField(){this.filterInputRef.current!=null&&this.filterInputRef.current.setValue("")}rebuildFilters(){re.debug("Rebuilding filters");const{model:e}=this.props,{advancedFilters:t,quickFilters:n}=this.state,{columns:s,formatter:i}=e,o=new Map,r=new Map;t.forEach((l,a)=>{const{options:c}=l,d=s[a],h=x.makeAdvancedFilter(d,c,i.timeZone);o.set(a,{options:c,filter:h})}),n.forEach((l,a)=>{const{text:c}=l,d=s[a];r.set(a,{text:c,filter:ts.makeQuickFilter(d,c,i.timeZone)})}),this.startLoading("Rebuilding filters...",!0),this.setState({quickFilters:r,advancedFilters:o})}setFilters({quickFilters:e,advancedFilters:t}){this.setState({quickFilters:e,advancedFilters:t})}updateFormatterSettings(e,t=!0){var m,p,g;const n=os.getColumnFormats(e),s=os.getDateTimeFormatterOptions(e),i=(m=e==null?void 0:e.defaultDecimalFormatOptions)!=null?m:{},o=(p=e==null?void 0:e.defaultIntegerFormatOptions)!=null?p:{},r=(g=e==null?void 0:e.truncateNumbersWithPound)!=null?g:!1,l=!dt(this.globalColumnFormats,n),a=!dt(this.dateTimeFormatterOptions,s),c=!dt(this.decimalFormatOptions,e==null?void 0:e.defaultDecimalFormatOptions),d=!dt(this.integerFormatOptions,o),h=this.truncateNumbersWithPound!==r;(l||a||c||d||h)&&(this.globalColumnFormats=n,this.dateTimeFormatterOptions=s,this.decimalFormatOptions=i,this.integerFormatOptions=o,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},i=[...(r=this.globalColumnFormats)!=null?r:[],...s.customColumnFormatMap.values()],o=new Zt(i,this.dateTimeFormatterOptions,this.decimalFormatOptions,this.integerFormatOptions,this.truncateNumbersWithPound);re.debug("updateFormatter",this.globalColumnFormats,i),this.setState({...s,formatter:o},()=>{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:i,customColumns:o,searchValue:r,selectedSearchColumns:l,invertSearchColumns:a}=this.props,c=l!=null?l:[],d=xi.createSearchFilter(r,c,s.columns,a);if(e){const h=t.filter(m=>m.value!=null);this.applyInputFilters(h)}this.setState({sorts:n,reverseType:i,customColumns:o,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],i=s.sort().desc();n.applySort([i]),n.setViewport(0,0,[s]);const o=await this.pending.add(n.getViewportData());if(o.rows.length>0){const l=o.rows[0].get(s);this.updatePartition(l,e),this.setState({isSelectingPartition:!0})}else re.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(E.FilterValue.ofString(e))];this.setState({partition:e,partitionFilters:s})}copyCell(e,t,n=!1){const{canCopy:s}=this.props;if(s){const i=String(this.getValueForCell(e,t,n));Se.copyToClipboard(i).catch(o=>re.error("Unable to copy cell",o))}else re.error("Attempted to copyCell for user without copy permission.")}copyRanges(e,t=!1,n=!0,s){const{model:i,canCopy:o}=this.props,{metricCalculator:r,movedColumns:l}=this.state,a=r.getUserColumnWidths();if(o){const c={ranges:Z.boundedRanges(e,i.columnCount,i.rowCount),includeHeaders:t,formatValues:n,movedColumns:l,userColumnWidths:a,error:s};this.setState({copyOperation:c})}else re.error("Attempted copyRanges for user without copy permission.")}startLoading(e,t=!1){var s,i;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:o,maxScrimTransitionTime:r}=n;O(o),O(r);const l=(i=(s=this.gridWrapper)==null?void 0:s.getBoundingClientRect().height)!=null?i:0,a=Math.max(o,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})},ts.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){re.debug("loading last loading config",this.lastLoadedConfig);const{advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:i,rollupConfig:o,searchFilter:r,selectDistinctColumns:l,sorts:a}=this.lastLoadedConfig;this.lastLoadedConfig=null,this.setState({advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:i,rollupConfig:o,searchFilter:r,selectDistinctColumns:l,sorts:a})}else re.debug("remove all sorts, filters, and custom columns"),this.setState({advancedFilters:new Map,aggregationSettings:ic,customColumns:[],quickFilters:new Map,reverseType:x.REVERSE_TYPE.NONE,rollupConfig:void 0,selectDistinctColumns:[],sorts:[]})}canRollback(){return this.lastLoadedConfig!=null||!Fl(this.state)}startListening(e){e.addEventListener(ue.EVENT.UPDATED,this.handleUpdate),e.addEventListener(ue.EVENT.REQUEST_FAILED,this.handleRequestFailed),e.addEventListener(ue.EVENT.COLUMNS_CHANGED,this.handleCustomColumnsChanged),e.addEventListener(ue.EVENT.PENDING_DATA_UPDATED,this.handlePendingDataUpdated)}stopListening(e){e.removeEventListener(ue.EVENT.UPDATED,this.handleUpdate),e.removeEventListener(ue.EVENT.REQUEST_FAILED,this.handleRequestFailed),e.removeEventListener(ue.EVENT.COLUMNS_CHANGED,this.handleCustomColumnsChanged),e.removeEventListener(ue.EVENT.PENDING_DATA_UPDATED,this.handlePendingDataUpdated)}focus(){var e;(e=this.grid)==null||e.focus()}focusFilterBar(e){var d,h,m;const{movedColumns:t}=this.state,{model:n}=this.props,{columnCount:s}=n,i=U.getModelIndex(e,t);if(e==null||e<0||s<=e||!n.isFilterable(i)){this.setState({focusedFilterBarColumn:null});return}const{metricCalculator:o,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=(h=this.grid)==null?void 0:h.getMetricState();O(p);const g=o.getLastLeft(p,e);(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(U.getModelIndex(e,n),0),(s=this.grid)==null||s.forceUpdate()}freezeColumnByColumnName(e){const{frozenColumns:t,movedColumns:n}=this.state,{model:s}=this.props;re.debug2("freezing column",e);const i=t==null?new Set(s.frozenColumns):new Set(t);i.add(e);const o=s.getColumnIndexByName(e);O(o);const r=U.getVisibleIndex(o,n),l=U.moveItem(r,i.size-1,n);this.setState({frozenColumns:[...i],movedColumns:l})}unFreezeColumnByColumnName(e){const{frozenColumns:t,movedColumns:n}=this.state,{model:s}=this.props;re.debug2("unfreezing column",e);const i=t==null?new Set(s.frozenColumns):new Set(t);i.delete(e);const o=s.getColumnIndexByName(e);O(o);const r=U.getVisibleIndex(o,n),l=U.moveItem(r,i.size+s.frontColumns.length,n);this.setState({frozenColumns:[...i],movedColumns:l})}handleColumnVisibilityChanged(e,t){var s;const{metricCalculator:n}=this.state;t===cs.VISIBILITY_OPTIONS.SHOW?e.forEach(i=>{n.resetColumnWidth(i)}):e.forEach(i=>{n.setColumnWidth(i,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(){re.debug2("handleAnimationStart"),this.isAnimating=!0,this.animationFrame=requestAnimationFrame(this.handleAnimationLoop)}handleAnimationEnd(){re.debug2("handleAnimationEnd"),this.isAnimating=!1}handlePartitionAppend(e){const{onPartitionAppend:t}=this.props,{partitionColumn:n}=this.state;t(n,e)}handlePartitionChange(e){const{partitionColumn:t}=this.state;this.updatePartition(e,t)}handlePartitionFetchAll(){this.setState({partitionFilters:[],isSelectingPartition:!1})}handlePartitionDone(){this.setState({isSelectingPartition:!1})}handleTableLoadError(e){if(He.isCanceled(e))return;re.error(e);const{onError:t}=this.props;t(e)}showAllColumns(){var s;const{metricCalculator:e}=this.state,n=[...e.getUserColumnWidths().entries()];for(let i=0;i<n.length;i+=1){const[o,r]=n[i];r===0&&e.resetColumnWidth(o)}(s=this.grid)==null||s.forceUpdate()}toggleSort(e,t){re.info("Toggling sort for column",e);const{model:n}=this.props,{sorts:s}=this.state,i=this.getModelColumn(e);O(i);const o=x.toggleSortForColumn(s,n.columns,i,t);this.updateSorts(o)}updateSorts(e){var t;this.startLoading("Sorting..."),this.setState({sorts:e}),(t=this.grid)==null||t.forceUpdate()}sortColumn(e,t=x.sortDirection.none,n=!1,s=!1){var r;O(e);const{model:i}=this.props,o=x.sortColumn(i.sort,i.columns,e,t,n,s);this.startLoading("Sorting..."),this.setState({sorts:o}),(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:i}=this.props,{columnCount:o}=i;for(let r=0;r<o;r+=1){const l=this.getModelColumn(r);if(l!=null){const a=i.columns[l];if(a!=null&&x.isTextType(a.type)){s=r;break}}}this.focusFilterBar(s)}else(n=this.grid)==null||n.focus()}isTableSearchAvailable(){var s,i,o;const{model:e,canToggleSearch:t}=this.props,n=(s=e==null?void 0:e.layoutHints)==null?void 0:s.searchDisplayMode;return n===((i=E.SearchDisplayMode)==null?void 0:i.SEARCH_DISPLAY_HIDE)?!1:n===((o=E.SearchDisplayMode)==null?void 0:o.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,i;t&&((n=this.crossColumnRef)==null?void 0:n.current)?(s=this.crossColumnRef)==null||s.current.focus():(i=this.grid)==null||i.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 i,o;const{model:e}=this.props;if(!Ae(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=(i=document==null?void 0:document.activeElement)==null?void 0:i.classList.contains("grid-cell-input-field");if(n!=null&&n){if(document.activeElement!=null&&document.activeElement.classList.contains("error"))throw new jd("Current input is invalid");(o=this.grid)==null||o.focus()}const s=this.pending.add(e.commitPending()).then(()=>{this.setState({pendingSaveError:null,pendingSavePromise:null})}).catch(r=>{He.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:i}=n,o={};for(let l=0;l<s.length;l+=1){const a=s[l],{name:c,type:d}=a,h=n.valueForCell(l,t),m=n.textForCell(l,t),p=ze(n)&&n.isRowExpandable(t),g=i.find(f=>f.name===c)!=null;o[c]={value:h,text:m,type:d,isGrouped:g,isExpandable:p}}const{onDataSelected:r}=this.props;r(t,o)}handleAdvancedFilterChange(e,t,n){const{model:s}=this.props,i=s.getColumnIndexByName(e.name);O(i),this.setAdvancedFilter(i,t,n)}handleAdvancedFilterSortChange(e,t,n=!1){var a;const{model:s}=this.props,i=s.getColumnIndexByName(e.name);O(i);const o=x.getSortForColumn(s.sort,i);let r=null;(o==null||o.direction!==t)&&(t===x.sortDirection.descending?r=e.sort().desc():r=e.sort().asc());const l=x.setSortForColumn(s.sort,i,r,n);re.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,i;const{focusedFilterBarColumn:t,isFilterBarShown:n}=this.state;n&&t===e&&((s=this.filterInputRef)==null?void 0:s.current)!==null?((i=this.filterInputRef)==null||i.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){re.warn("Grid Error",e),this.setState({toastMessage:u("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 i=this.getModelColumn(t);O(i),this.applyQuickFilter(i,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:i}=this.state,o=new Map(i);if(t!=null){const r=x.getNormalizedType(s.type);O(r);const l=Zt.makeColumnFormattingRule(r,s.name,t);o.set(s.name,l)}else o.delete(s.name);this.updateFormatter({customColumnFormatMap:o})}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(re.error("request failed:",t.detail),this.stopLoading(),this.canRollback())this.startLoading("Rolling back changes...",!0),this.rollback();else{re.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(),re.debug2("Received model update");const{advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:i,rollupConfig:o,searchFilter:r,selectDistinctColumns:l,sorts:a}=this.state,c={advancedFilters:e,aggregationSettings:t,customColumns:n,quickFilters:s,reverseType:i,rollupConfig:o,searchFilter:r,selectDistinctColumns:l,sorts:a};Fl(c)?this.lastLoadedConfig=null:this.lastLoadedConfig=c,(d=this.grid)==null||d.forceUpdate()}handleViewChanged(e){var i,o;const{model:t}=this.props,{selectionEndRow:n=0}=(o=(i=this.grid)==null?void 0:i.state)!=null?o:{};let s=0;if(Ae(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=()=>null){this.setState({movedColumns:e},t)}handleTooltipRef(e){e!=null&&e.startTimer(),this.tooltip=e}handleConditionalFormatsChange(e){re.debug("Updated conditional formats",e),this.setState({conditionalFormats:e})}handleConditionalFormatCreate(){re.debug("Create new conditional format");const{openOptions:e,conditionalFormats:t}=this.state;this.setState({openOptions:[...e,{type:be.CONDITIONAL_FORMATTING_EDIT,title:"Create Formatting Rule"}],conditionalFormatEditIndex:t.length,conditionalFormatPreview:void 0})}handleConditionalFormatEdit(e){re.debug("Edit conditional format",e);const{openOptions:t,conditionalFormats:n}=this.state;this.setState({openOptions:[...t,{type:be.CONDITIONAL_FORMATTING_EDIT,title:"Edit Formatting Rule"}],conditionalFormatEditIndex:e,conditionalFormatPreview:{...n[e]}})}handleConditionalFormatEditorSave(e){re.debug("Save conditional format changes",e),this.setState(t=>{if(t.conditionalFormatEditIndex===null)return re.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){re.info("handleUpdateCustomColumns:",e);const{model:t}=this.props,{movedColumns:n,sorts:s,quickFilters:i,advancedFilters:o,selectDistinctColumns:r}=this.state,{columns:l}=t,a=t.customColumns.map(d=>`${d}`),c=se.getRemovedCustomColumnNames(a,e);if(c.length>0){const d=se.removeSortsInColumns(s,c),h=se.removeFiltersInColumns(l,i,c),m=se.removeFiltersInColumns(l,o,c),p=se.removeColumnFromMovedColumns(l,n,c),g=se.removeColumnsFromSelectDistinctColumns(r,c);d.length!==s.length&&(re.debug("removing sorts from removed custom columns..."),this.setState({sorts:d})),(h.size!==i.size||m.size!==o.size)&&(re.debug("removing filters from removed custom columns..."),this.setState({quickFilters:h,advancedFilters:m})),dt(n,p)||(re.debug("change moved columns for removed custom columns",p),this.setState({movedColumns:p})),dt(r,g)||(re.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;re.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;re.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){re.debug("handleAggregationsChange",e),this.startLoading(`Aggregating ${e.aggregations.map(t=>t.operation).join(", ")}...`),this.setState({aggregationSettings:e})}handleAggregationChange(e){re.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){re.debug("handleAggregationEdit",e);const{openOptions:t}=this.state;this.setState({openOptions:[...t,{type:be.AGGREGATION_EDIT,title:`Edit Columns to ${e.operation}`}],selectedAggregation:e})}handleRollupChange(e){var t,n;re.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:x.REVERSE_TYPE.NONE,selectDistinctColumns:[]})}handleSelectDistinctChanged(e){re.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:x.REVERSE_TYPE.NONE})}handleDownloadTableStart(){const{canDownloadCsv:e}=this.props;e?this.setState({isTableDownloading:!0,tableDownloadProgress:0,tableDownloadEstimatedTime:null,tableDownloadStatus:wt.DOWNLOAD_STATUS.INITIATING}):re.error("Attempted to handleDownloadTableStart for user without download CSV permission.")}handleDownloadTable(e,t,n,s){const{canDownloadCsv:i}=this.props;i?(re.info("start table downloading",e,t,n,s),this.setState(()=>(this.tableSaver&&this.tableSaver.startDownload(e,t,n,s),{tableDownloadStatus:wt.DOWNLOAD_STATUS.DOWNLOADING}))):re.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:wt.DOWNLOAD_STATUS.FINISHED})}handleDownloadCanceled(){this.setState({isTableDownloading:!1,tableDownloadProgress:0,tableDownloadStatus:wt.DOWNLOAD_STATUS.CANCELED})}deleteRanges(e){const{model:t}=this.props;this.pending.add(t.delete(e)).catch(n=>{He.isCanceled(n)||re.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:i,visibleColumnXs:o,visibleColumnWidths:r,width:l,columnHeaderMaxDepth:a}=e,c=o.get(t),d=r.get(t);O(c),O(d);const h=n.left+lt(c+d/2,s,l-s);return{top:n.top+(a-1)*i,left:n.left+lt(c+d/2,s,l-s),bottom:n.top+a*i,right:n.left+lt(c+d/2,s,l-s)+1,width:1,height:i,x:h,y:n.top,toJSON:()=>{throw new Error("not implemented")}}}handleGotoRowSelectedRowNumberSubmit(){const{gotoRow:e}=this.state;this.focusRowInGrid(e)}focusRowInGrid(e){var i,o,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:""}),(i=this.grid)==null||i.setFocusRow(0)):s<0?(this.setState({gotoRowError:""}),(o=this.grid)==null||o.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:i,visibleColumnXs:o,visibleColumnWidths:r,width:l}=t,a=o.get(e),c=r.get(e);if(a==null||c==null)return null;const d=Math.max(0,a);let h=c;a+c>l?h=l-a:a<0&&(h=c-Math.abs(a));const m={position:"absolute",top:(i-1)*s,left:d,width:h,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:u("div",{style:m,children:u(Le,{timeout:400,interactive:!0,options:g,ref:this.handleTooltipRef,referenceObject:p,onExited:()=>{this.setState({shownColumnTooltip:null})},children:u(ka,{model:n,column:C,onStatistics:()=>{var b;(b=this.tooltip)==null||b.update()}})},C.name)})}render(){var We,us,Ir,Mr,Dr,Nr,Fr,xr,Or;const{children:e,customFilters:t,getDownloadWorker:n,isSelectingColumn:s,isStuckToBottom:i,isStuckToRight:o,model:r,name:l,onlyFetchVisibleColumns:a,alwaysFetchColumns:c,advancedSettings:d,onAdvancedSettingsChange:h,canDownloadCsv:m,onCreateChart:p}=this.props,{metricCalculator:g,metrics:f,isFilterBarShown:C,isSelectingPartition:b,isMenuShown:w,isReady:S,copyOperation:I,focusedFilterBarColumn:v,loadingText:R,loadingScrimProgress:M,loadingSpinnerShown:F,keyHandlers:P,mouseHandlers:W,shownColumnTooltip:B,hoverAdvancedFilter:N,shownAdvancedFilter:H,hoverSelectColumn:A,quickFilters:k,advancedFilters:_,partition:V,partitionFilters:G,partitionTable:J,partitionColumn:te,searchFilter:ae,selectDistinctColumns:Ce,movedColumns:de,movedRows:ve,formatter:_e,conditionalFormats:Ke,conditionalFormatPreview:Mt,conditionalFormatEditIndex:Xe,sorts:Ze,reverseType:Ut,customColumns:Fe,selectedRanges:Wn,isTableDownloading:nn,tableDownloadStatus:tt,tableDownloadProgress:pe,tableDownloadEstimatedTime:$e,showSearchBar:Be,searchValue:ut,selectedSearchColumns:Dt,invertSearchColumns:Nt,aggregationSettings:mt,selectedAggregation:zn,rollupConfig:Ft,openOptions:xt,pendingSavePromise:$n,pendingSaveError:ao,pendingRowCount:co,pendingDataErrors:ho,pendingDataMap:li,toastMessage:ai,frozenColumns:ci,showOverflowModal:di,overflowText:hi,overflowButtonTooltipProps:ui,isGotoRowShown:mi,gotoRow:uo,gotoRowError:mo}=this.state;if(!S)return null;const Gn=this.getTheme(),po=this.getCachedFilter(t,k,_,G,ae),hs=g.getUserColumnWidths(),Hs=this.getCachedStateOverride(A,C,s,M,k,_,Ze,Ut,Ft,w),pi=f?f.top:0,gi=f?f.bottomViewport:0;let _s=null,Vs=null;a&&(_s=f?f.left:0,Vs=f?f.right:0);const go=f!=null&&f.width>0&&f.height>0,fo=((us=(We=Ft==null?void 0:Ft.columns)==null?void 0:We.length)!=null?us:0)>0;let fi=null;const Co=f?Math.min(Math.max(ts.minDebounce,Math.round(f.rowCount/200)),ts.maxDebounce):ts.maxDebounce;if(C&&v!=null&&f!=null){const{gridX:xe,gridY:pt,visibleColumnXs:bn,visibleColumnWidths:Us,width:ms}=f,Bt=bn.get(v),at=Us.get(v);if(Bt!=null&&at!=null){const nt=xe+Bt,sn=pt-((Ir=Gn.filterBarHeight)!=null?Ir:0),qn=at+1,Kn=((Mr=Gn.filterBarHeight)!=null?Mr:0)-1,Ti={top:sn,left:nt,minWidth:Math.min(qn,ms-nt),height:Kn};let Wt="",ps=!0;const Xn=this.getModelColumn(v);O(Xn);const gs=k.get(Xn),wn=_.get(Xn);gs!=null&&(Wt=gs.text,ps=gs.filter!=null);const fs=k.size!==0||_.size!==0;fi=u(Na,{ref:this.filterInputRef,style:Ti,className:$({error:!ps,active:Wt!==""||wn!=null,"iris-grid-has-filter":fs}),isAdvancedFilterSet:wn!=null,onAdvancedFiltersTriggered:()=>{this.setState({shownAdvancedFilter:v})},onChange:this.handleFilterBarChange,onDone:this.handleFilterBarDone,onTab:this.handleFilterBarTab,onContextMenu:(Dr=this.grid)==null?void 0:Dr.handleContextMenu,debounceMs:Co,value:Wt},v)}}let Ci=null;if(R!=null){const xe=T("div",{className:"iris-grid-loading-status",children:[u("div",{className:$("iris-grid-loading-status-bar",{show:F}),children:R}),T("button",{type:"button",onClick:this.handleCancel,className:$("iris-grid-btn-cancel",{show:F}),children:[u(K,{icon:ti,transform:"down-1"}),"Cancel"]})]}),pt=f?f.gridY:0;Ci=u("div",{className:"iris-grid-loading",style:{top:pt},children:xe})}let bi=null;B!=null&&f&&(bi=this.getColumnTooltip(B,f,r),(Nr=this.tooltip)==null||Nr.update());const wi=[];if(f&&C){const{gridX:xe,gridY:pt,visibleColumns:bn,visibleColumnXs:Us,visibleColumnWidths:ms}=f,{filterBarHeight:Bt}=Gn;for(let at=0;at<bn.length;at+=1){const nt=bn[at],sn=Us.get(nt),qn=ms.get(nt),Kn=this.getModelColumn(nt);if(Kn!=null&&r.isFilterable(Kn)&&sn!=null&&qn!=null&&qn>0){const Wt=xe+sn+qn-24,ps=pt-(Bt!=null?Bt:0)+2,Xn={position:"absolute",top:ps,left:Wt},wn=_.get(Kn)!=null,fs=nt===N||nt===v||wn,So=u("div",{className:$("advanced-filter-button-container",{hidden:!fs}),style:Xn,children:fs&&u(Y,{kind:"ghost",className:$("btn-link-icon advanced-filter-button",{"filter-set":wn}),onClick:()=>{this.setState({shownAdvancedFilter:nt})},onContextMenu:ac=>{var Ar;(Ar=this.grid)==null||Ar.handleContextMenu(ac)},onMouseEnter:()=>{this.setState({hoverAdvancedFilter:nt})},onMouseLeave:()=>{this.setState({hoverAdvancedFilter:null})},children:T("div",{className:"fa-layers",children:[u(K,{icon:jo,className:"filter-solid"}),u(K,{icon:Vi,className:"filter-light"})]})})},nt);wi.push(So)}}}const Si=[];if(f){const{gridX:xe,visibleColumns:pt,visibleColumnXs:bn,visibleColumnWidths:Us,columnHeaderHeight:ms}=f;for(let Bt=0;Bt<pt.length;Bt+=1){const at=pt[Bt],nt=bn.get(at),sn=Us.get(at);if(nt!=null&&sn!=null&&sn>0){const qn=xe+nt,Kn=xe+nt+sn-20,Ti=C?{position:"absolute",top:ms,left:Kn,width:20,height:Gn.filterBarHeight}:{position:"absolute",top:0,left:qn,width:sn,height:ms},Wt=this.getModelColumn(at);if(Wt!=null){const ps=r.columns[Wt],Xn=_.get(Wt),{options:gs}=Xn||{},wn=x.getSortForColumn(r.sort,Wt),fs=wn?wn.direction:null,So=u("div",{className:"advanced-filter-menu-container",style:Ti,children:u(fn,{className:"advanced-filter-menu-popper",onEntered:this.getAdvancedMenuOpenedHandler(at),onExited:()=>{this.handleAdvancedMenuClosed(at)},isShown:H===at,interactive:!0,closeOnBlur:!0,options:{positionFixed:!0},children:this.getCachedAdvancedFilterMenuActions(r,ps,gs,fs,_e)})},at);Si.push(So)}}}}const vi=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,Be,m,this.isTableSearchAvailable(),mi,d.size>0),bo=xt.map(xe=>{switch(xe.type){case be.CHART_BUILDER:return u(ba,{model:r,onChange:this.handleChartChange,onSubmit:this.handleChartCreate},be.CHART_BUILDER);case be.VISIBILITY_ORDERING_BUILDER:return u(cs,{model:r,movedColumns:de,userColumnWidths:hs,onColumnVisibilityChanged:this.handleColumnVisibilityChanged,onMovedColumnsChanged:this.handleMovedColumnsChanged},be.VISIBILITY_ORDERING_BUILDER);case be.CONDITIONAL_FORMATTING:return u(_m,{rules:Ke,onChange:this.handleConditionalFormatsChange,onCreate:this.handleConditionalFormatCreate,onSelect:this.handleConditionalFormatEdit});case be.CONDITIONAL_FORMATTING_EDIT:return O(r.columns),O(this.handleConditionalFormatEditorUpdate),u(hp,{columns:r.columns,rule:Mt,onUpdate:this.handleConditionalFormatEditorUpdate,onSave:this.handleConditionalFormatEditorSave,onCancel:this.handleConditionalFormatEditorCancel});case be.CUSTOM_COLUMN_BUILDER:return u(gr,{model:r,customColumns:Fe,onSave:this.handleUpdateCustomColumns,onCancel:this.handleMenuBack},be.CUSTOM_COLUMN_BUILDER);case be.ROLLUP_ROWS:return u(fr,{model:r,onChange:this.handleRollupChange,config:Ft},be.ROLLUP_ROWS);case be.AGGREGATIONS:return u(Zh,{settings:mt,isRollup:fo,onChange:this.handleAggregationsChange,onEdit:this.handleAggregationEdit});case be.AGGREGATION_EDIT:return zn&&u(eu,{aggregation:zn,columns:r.originalColumns,onChange:this.handleAggregationChange});case be.TABLE_EXPORTER:return u(wt,{model:r,name:l,isDownloading:nn,tableDownloadStatus:tt,tableDownloadProgress:pe,tableDownloadEstimatedTime:$e!=null?$e:void 0,onDownload:this.handleDownloadTable,onDownloadStart:this.handleDownloadTableStart,onCancel:this.handleCancelDownloadTable,selectedRanges:Wn},be.TABLE_EXPORTER);case be.SELECT_DISTINCT:return u(Ha,{model:r,selectDistinctColumns:Ce,onChange:this.handleSelectDistinctChanged});case be.ADVANCED_SETTINGS:return u(Sr,{items:d,onChange:h});default:throw Error(`Unexpected option type ${xe.type}`)}}),wo=this.getCachedHiddenColumns(se.getHiddenColumns(hs));return T("div",{className:"iris-grid",role:"presentation",children:[T("div",{className:"iris-grid-column",children:[e!=null&&u("div",{className:"iris-grid-bar",children:e}),u(rt,{in:b,timeout:Rt.transitionSlowMs,classNames:"iris-grid-bar-horizontal",onEnter:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExit:this.handleAnimationStart,onExited:this.handleAnimationEnd,mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"iris-grid-partition-selector-wrapper iris-grid-bar iris-grid-bar-primary",children:J&&te&&u(Pa,{table:J,getFormattedString:(xe,pt,bn)=>r.displayString(xe,pt,bn),columnName:te.name,partition:V,onChange:this.handlePartitionChange,onFetchAll:this.handlePartitionFetchAll,onAppend:this.handlePartitionAppend,onDone:this.handlePartitionDone})})}),u(rt,{in:Be,timeout:Rt.transitionSlowMs,classNames:"iris-grid-bar-horizontal",onEnter:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExit:this.handleAnimationStart,onExited:this.handleAnimationEnd,mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"iris-grid-bar",children:u(xi,{value:ut,selectedColumns:Dt,invertSelection:Nt,onChange:this.handleCrossColumnSearch,columns:r.columns,ref:this.crossColumnRef})})}),T("div",{className:"grid-wrapper",ref:xe=>{this.gridWrapper=xe},children:[u(ks,{ref:xe=>{this.grid=xe},isStickyBottom:!Ae(r)||!r.isEditable,isStuckToBottom:i,isStuckToRight:o,metricCalculator:g,model:r,keyHandlers:P,mouseHandlers:W,movedColumns:de,movedRows:ve,onError:this.handleGridError,onViewChanged:this.handleViewChanged,onSelectionChanged:this.handleSelectionChanged,onMovedColumnsChanged:this.handleMovedColumnsChanged,renderer:this.renderer,stateOverride:Hs,theme:Gn}),u(vg,{isOpen:di,text:hi,onClose:this.handleOverflowClose}),go&&u(Oa,{model:r,modelColumns:r.columns,top:pi,bottom:gi,left:_s,right:Vs,filter:po,formatter:_e,sorts:Ze,reverseType:Ut,movedColumns:de,customColumns:Fe,hiddenColumns:wo,alwaysFetchColumns:this.getAlwaysFetchColumns(c,r.columns,de,r.floatingLeftColumnCount,r.floatingRightColumnCount,(xr=(Fr=this.grid)==null?void 0:Fr.state.draggingColumn)==null?void 0:xr.range),formatColumns:this.getCachedPreviewFormatColumns(this.getCachedModelColumns(r,Fe),Ke,Mt,((Or=xt[xt.length-1])==null?void 0:Or.type)===be.CONDITIONAL_FORMATTING_EDIT&&Xe!=null?Xe:void 0),rollupConfig:this.getModelRollupConfig(r.originalColumns,Ft,mt),totalsConfig:this.getModelTotalsConfig(r.columns,Ft,mt),selectDistinctColumns:Ce,pendingRowCount:co,pendingDataMap:li,frozenColumns:ci}),!w&&u("div",{className:"grid-settings-button",children:u(Y,{kind:"ghost","data-testid":`btn-iris-grid-settings-button-${l}`,onClick:this.handleMenu,icon:u(K,{icon:Cd,transform:"up-1"}),tooltip:"Table Options"})}),fi,Ci,wi,bi,Si,ui&&this.getOverflowButtonTooltip(ui)]}),u(Eg,{model:r,isShown:mi,gotoRow:uo,gotoRowError:mo,onSubmit:this.handleGotoRowSelectedRowNumberSubmit,onGotoRowNumberChanged:this.handleGotoRowSelectedRowNumberChanged,onClose:this.handleGotoRowClosed,onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:()=>{this.handleAnimationStart(),this.focus()},onExited:this.handleAnimationEnd}),u(hm,{error:ao,isSaving:$n!=null,saveTooltip:`Commit (${this.commitAction.shortcut.getDisplayText()})`,discardTooltip:`Discard (${this.discardAction.shortcut.getDisplayText()})`,pendingDataErrors:ho,pendingDataMap:li,onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:this.handleAnimationStart,onExited:this.handleAnimationEnd,onSave:this.handlePendingCommitClicked,onDiscard:this.handlePendingDiscardClicked}),u(Im,{children:ai}),u(Ps,{model:r,copyOperation:I!=null?I:void 0,onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:this.handleAnimationStart,onExited:this.handleAnimationEnd}),u(Ls,{ref:xe=>{this.tableSaver=xe},getDownloadWorker:n,onDownloadCompleted:this.handleDownloadCompleted,onDownloadCanceled:this.handleDownloadCanceled,onDownloadProgressUpdate:this.handleDownloadProgressUpdate,isDownloading:tt===wt.DOWNLOAD_STATUS.DOWNLOADING,formatter:_e})]}),u(rt,{in:w,timeout:Rt.transitionMidMs,classNames:"slide-left",onEntering:this.handleAnimationStart,onEntered:this.handleAnimationEnd,onExiting:this.handleAnimationStart,onExited:this.handleAnimationEnd,mountOnEnter:!0,unmountOnExit:!0,children:u("div",{className:"table-sidebar",children:T(bh,{children:[u(Zr,{title:"Table Options",onClose:this.handleMenuClose,children:u(ma,{onSelect:xe=>this.handleMenuSelect(vi[xe]),items:vi})}),bo.map((xe,pt)=>u(Zr,{title:xt[pt].title,onBack:this.handleMenuBack,onClose:this.handleMenuClose,children:xe},xt[pt].type))]})})}),u(oe,{actions:this.contextActions})]})}};let ri=ts;ri.minDebounce=150;ri.maxDebounce=500;ri.loadingSpinnerDelay=800;ri.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:x.REVERSE_TYPE.NONE,customColumns:[],aggregationSettings:ic,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:_n.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:Aa,canToggleSearch:!0};class Mg 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 Dg=ee.module("ColumnHeaderGroup");function xl(e){return e instanceof oc}class oc{constructor({name:t,children:n,color:s,depth:i,childIndexes:o}){this.getVisibleRange=Ie(r=>{const l=this.childIndexes.flat(),a=U.getVisibleIndexes(l,r),c=Math.min(...a),d=Math.max(...a);return d-c!==l.length-1&&Dg.warn(`Column header group ${this.name} is not contiguous`),[c,d]}),this.name=t,this.children=n,this.color=s,this.depth=i,this.childIndexes=o}}const Pe=ee.module("IrisGridTableModel"),Ng=150,Fg=0;function ki(e){return e.table!==void 0}const Go=class extends ue{constructor(e,t=new Zt,n=null){super(),this.pendingNewRowCount=0,this.columnHeaderGroupMap=new Map,this.columnHeaderParentMap=new Map,this._columnHeaderMaxDepth=null,this._columnHeaderGroups=[],this.getMemoizedColumnMap=Ie(s=>{const i=new Map;return s.forEach(o=>i.set(o.name,o)),i}),this.getColumnIndicesByNameMap=Ie(s=>{const i=new Map;return s.forEach(({name:o},r)=>i.set(o,r)),i}),this.setViewport=ls((s,i,o)=>{if(i<s){Pe.error("Invalid viewport",s,i);return}const{viewport:r}=this;if(r!=null&&r.top===s&&r.bottom===i&&r.columns===o){Pe.debug2("Ignoring duplicate viewport",r);return}this.viewport={top:s,bottom:i,columns:o},Pe.debug2("setViewport",this.viewport),this.applyViewport()},Ng),this.applyViewport=ls(()=>{if(!this.viewport)return;Pe.debug2("applyViewport",this.viewport);const{top:s,bottom:i,columns:o}=this.viewport,[r,l]=this.getCachedViewportRowRange(s,i);this.applyBufferedViewport(r,l,o)},Fg,{leading:!1}),this.getCachedFormattedString=St((s,i,o,r,l)=>s.getFormattedString(i,o,r,l),{max:1e4}),this.getCachedCustomColumnFormatFlag=St(os.isCustomColumnFormatDefined,{max:1e4}),this.getCachedViewportRowRange=Ie((s,i)=>{const o=i-s,r=Math.max(0,s-o*Go.ROW_BUFFER_PAGES),l=i+o*Go.ROW_BUFFER_PAGES;return[r,l]}),this.getCachedPendingErrors=Ie((s,i,o)=>{const r=new Map;return s.forEach((l,a)=>{var d;const{data:c}=l;for(let h=0;h<o;h+=1)c.has(h)||(r.has(a)||r.set(a,[]),(d=r.get(a))==null||d.push(new Mg(a,i[h].name)))}),r}),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.pendingNewDataErrors=null,this.pendingNewRowCount=0}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(E.Table.EVENT_DISCONNECT,this.handleTableDisconnect),this.table.addEventListener(E.Table.EVENT_RECONNECT,this.handleTableReconnect),this.table.addEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate),this.table.addEventListener(E.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed),this.table.addEventListener(E.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleCustomColumnsChanged),this.totalsTable!=null&&this.addTotalsListeners(this.totalsTable),this.applyViewport()}stopListening(){super.stopListening(),this.table.removeEventListener(E.Table.EVENT_DISCONNECT,this.handleTableDisconnect),this.table.removeEventListener(E.Table.EVENT_RECONNECT,this.handleTableReconnect),this.table.removeEventListener(E.Table.EVENT_UPDATED,this.handleTableUpdate),this.table.removeEventListener(E.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed),this.table.removeEventListener(E.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleCustomColumnsChanged),this.totalsTable!=null&&this.removeTotalsListeners(this.totalsTable),this.closeSubscription()}addTotalsListeners(e){e.addEventListener(E.Table.EVENT_UPDATED,this.handleTotalsUpdate),e.setViewport(0,0)}removeTotalsListeners(e){e.removeEventListener(E.Table.EVENT_UPDATED,this.handleTotalsUpdate)}handleTableDisconnect(){this.dispatchEvent(new ye(ue.EVENT.DISCONNECT))}handleTableReconnect(){this.dispatchEvent(new ye(ue.EVENT.RECONNECT))}handleTableUpdate(e){this.copyViewportData(e.detail),this.dispatchEvent(new ye(ue.EVENT.UPDATED))}handleTotalsUpdate(e){this.copyTotalsData(e.detail),this.dispatchEvent(new ye(ue.EVENT.UPDATED))}handleRequestFailed(e){this.dispatchEvent(new ye(ue.EVENT.REQUEST_FAILED,e))}handleCustomColumnsChanged(){this.dispatchEvent(new ye(ue.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(!se.isValidIndex(n))throw new Error(`Invalid rowIndex ${n}`);const{data:s}=t;s.forEach((i,o)=>{if(!se.isValidIndex(o))throw new Error(`Invalid columnIndex ${o}`)})}),this.pendingNewDataMap=e,this.pendingNewRowCount=Math.max(this.pendingNewRowCount,this.maxPendingDataRow),this.formattedStringData=[],this.dispatchEvent(new ye(ue.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 ye(ue.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,i;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 o=this.valueForCell(e,t);if(o==null)return null;const r=(i=this.totalsColumn(e,t))!=null?i: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(o,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(x.isNumberType(n)&&this.formatter.truncateNumbersWithPound)return"#"}colorForCell(e,t,n){var i;const s=this.dataForCell(e,t);if(s){const{format:o,value:r}=s;if(r==null||r==="")return O(n.nullStringColor),n.nullStringColor;if(o&&o.color)return o.color;if(this.isPendingRow(t))return O(n.pendingTextColor),n.pendingTextColor;if(r!=null){const l=(i=this.totalsColumn(e,t))!=null?i:this.columns[e];if(x.isDateType(l.type)||l.name==="Date")return O(n.dateColor),n.dateColor;if(x.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 x.isNumberType(n)?"right":x.isDateType(n)||t.name==="Date"?"center":"left"}textForColumnHeader(e,t=0){var n,s;return(s=(n=this.columnAtDepth(e,t))==null?void 0:n.name)!=null?s:void 0}colorForColumnHeader(e,t=0){var s;const n=this.columnAtDepth(e,t);return xl(n)&&(s=n.color)!=null?s:null}getColumnHeaderGroup(e,t){const n=this.columnAtDepth(e,t);if(xl(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 o;if(t===0)return this.columns[e];const n=(o=this.columns[e])==null?void 0:o.name;let s=this.columnHeaderParentMap.get(n);if(!s)return;let i=s.depth;for(;i<t;){if(s=this.columnHeaderParentMap.get(s.name),!s)return;i=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 movedColumns(){var i;let e=[];const t=(o,r)=>{const l=this.getColumnIndexByName(o);if(l==null)throw new Error(`Unknown layout hint column: ${o}`);const a=U.getVisibleIndex(l,e);e=U.moveItem(a,r,e)},n=(o,r)=>{const l=this.columnHeaderGroupMap.get(o);if(!l)throw new Error(`Unknown layout hint group: ${o}`);const a=l.getVisibleRange(e);e=U.moveRange(a,r,e)};if(this.frontColumns.length||this.backColumns.length||this.frozenColumns.length){const o=new Set;let r=0;this.frozenColumns.forEach(a=>{if(o.has(a))throw new Error(`Column specified in multiple layout hints: ${a}`);t(a,r),r+=1}),this.frontColumns.forEach(a=>{if(o.has(a))throw new Error(`Column specified in multiple layout hints: ${a}`);t(a,r),r+=1});let l=this.columnMap.size-1;this.backColumns.forEach(a=>{if(o.has(a))throw new Error(`Column specified in multiple layout hints: ${a}`);t(a,l),l-=1})}const s=(i=this.layoutHints)==null?void 0:i.columnGroups;if(s){this.setColumnHeaderGroups(s);const o=[...this.columnHeaderGroupMap.values()];o.sort((r,l)=>r.depth-l.depth),o.forEach(r=>{const l=r.children[0],a=this.getColumnIndexByName(l);let c;if(a!=null)c=U.getVisibleIndex(a,e);else{const d=this.columnHeaderGroupMap.get(l);if(!d)throw new Error(`Unknown column ${l} in group ${r.name}`);[,c]=d.getVisibleRange(e)}for(let d=1;d<r.children.length;d+=1){const h=r.children[d],m=this.columnHeaderGroupMap.get(h),p=this.getColumnIndexByName(h);if(m){const f=m.getVisibleRange(e)[0]<c?c-m.childIndexes.length+1:c+1;n(h,f),c=f+m.childIndexes.length-1}else if(p!=null){const f=U.getVisibleIndex(p,e)<c?c:c+1;t(h,f),c=f}}})}return e}get columnMap(){return this.getMemoizedColumnMap(this.table.columns)}get columnHeaderMaxDepth(){var e,t;return this._columnHeaderMaxDepth==null&&this.setColumnHeaderGroups((e=this.layoutHints)==null?void 0:e.columnGroups),(t=this._columnHeaderMaxDepth)!=null?t:1}set columnHeaderMaxDepth(e){this._columnHeaderMaxDepth=e}setColumnHeaderGroups(e){if(e===this._columnHeaderGroups||(this._columnHeaderGroups=e!=null?e:[],this.columnHeaderMaxDepth=1,this.columnHeaderParentMap=new Map,this.columnHeaderGroupMap=new Map,!e||e.length===0))return;const t=new Map(e.map(o=>[o.name,o])),n=new Set,s=o=>{const{name:r}=o;if(this.getColumnIndexByName(r)!=null)throw new Error(`Column header group has same name as column: ${r}`);const l=this.columnHeaderGroupMap.get(r);if(l)return l;const a=[];let c=1;o.children.forEach(h=>{if(n.has(h))throw new Error(`Column group child ${h} specified in multiple groups`);n.add(h);const m=t.get(h),p=this.getColumnIndexByName(h);if(m){const g=s(m);a.push(g.childIndexes.flat()),c=Math.max(c,g.depth+1)}else if(p!=null)a.push(p),c=Math.max(c,1);else throw new Error(`Unknown child ${h} in group ${r}`)});const d=new oc({...o,depth:c,childIndexes:a});return this.columnHeaderGroupMap.set(r,d),o.children.forEach(h=>this.columnHeaderParentMap.set(h,d)),this.columnHeaderMaxDepth=Math.max(this.columnHeaderMaxDepth,d.depth+1),d},i=new Set;e.forEach(o=>{const{name:r}=o;if(i.has(r))throw new Error(`Duplicate column group name: ${r}`);i.add(r),s(o)})}get groupedColumns(){return[]}row(e){var l,a,c,d,h,m,p,g,f,C,b,w,S,I;const t=(c=(a=(l=this.totals)==null?void 0:l.operationOrder)==null?void 0:a.length)!=null?c:0,n=(h=(d=this.totals)==null?void 0:d.showOnTop)!=null?h:!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 i=this.pendingRow(e);if(i!=null)return(f=this.pendingNewDataMap.get(i))!=null?f:null;const o=(b=(C=this.viewportData)==null?void 0:C.offset)!=null?b:0,r=(n?e-t:e)-o;return(I=(S=(w=this.viewportData)==null?void 0:w.rows)==null?void 0:S[r])!=null?I: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],i=(a=(l=this.totals)==null?void 0:l.defaultOperation)!=null?a:we.SUM,o=this.columns[e];return(c=this.totalsTable)==null?void 0:c.columns.find(d=>{var h;return d.name===`${o.name}__${s}`||(s===i||((h=this.totals)==null?void 0:h.operationOrder.length)===1)&&d.name===o.name})}totalsRow(e){var i,o,r,l,a;const t=(r=(o=(i=this.totals)==null?void 0:i.operationOrder)==null?void 0:o.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){Pe.warn("invalid data!");return}this.viewportData=this.extractViewportData(e),this.formattedStringData=[]}copyTotalsData(e){var l,a,c,d,h;if(e==null){Pe.warn("invalid data!");return}const{columns:t,rows:n}=e;if(n.length!==1){Pe.error("Unexpected number of rows received for totals table, ignoring update");return}const s=new Map,i=n[0],o=(a=(l=this.totals)==null?void 0:l.defaultOperation)!=null?a:we.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=(h=(d=r==null?void 0:r[g])==null?void 0:d[0])!=null?h:o]=p.name.split("__");s.has(f)||s.set(f,{data:new Map});const{data:C}=s.get(f),b=this.columns.findIndex(w=>w.name===g);C.set(b,{value:i.get(p),format:i.getFormat(p)})}Pe.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 i=e.rows[s],o=this.extractViewportRow(i,n);t.rows.push(o)}return t}extractViewportRow(e,t){const n=new Map;for(let s=0;s<t.length;s+=1){const i=t[s],o=this.getColumnIndexByName(i.name);O(o),n.set(o,{value:e.get(i),format:e.getFormat(i)})}return{data:n}}closeSubscription(){Pe.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 ye(ue.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(Pe.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 ye(ue.EVENT.UPDATED));return}this.totalsTablePromise=He.makeCancelable(this.table.getTotalsTable(e),t=>t.close()),this.totalsTablePromise.then(t=>{this.totalsTablePromise=null,this.setTotalsTable(t)}).catch(t=>{He.isCanceled(t)||(Pe.error("Unable to set next totalsTable",t),this.totalsTablePromise=null,this.dispatchEvent(new ye(ue.EVENT.REQUEST_FAILED,{detail:t})))})}}setTotalsTable(e){Pe.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){Pe.debug2("applyBufferedViewport",e,t,n),this.subscription==null?(Pe.debug2("applyBufferedViewport creating new subscription"),this.subscription=this.table.setViewport(e,t,n)):(Pe.debug2("applyBufferedViewport using existing subscription"),this.subscription.setViewport(e,t,n))}async snapshot(e,t=!1,n=s=>s){if(this.subscription==null)throw new Error("No subscription available");const s=Z.consolidate(e);if(!se.isValidSnapshotRanges(s))throw new Error(`Invalid snapshot ranges ${e}`);const i=new Set,o=[],r=new Set;for(let h=0;h<s.length;h+=1){const m=s[h];O(m.endRow),O(m.startRow);for(let p=m.startRow;p<=m.endRow&&p<this.floatingTopRowCount;p+=1)i.add(p);m.endRow>=this.floatingTopRowCount&&m.startRow<=this.floatingTopRowCount+this.table.size&&o.push(new Z(m.startColumn,Math.min(Math.max(0,m.startRow-this.floatingTopRowCount)),m.endColumn,Math.min(Math.max(0,m.endRow-this.floatingTopRowCount),this.table.size-this.floatingTopRowCount)));for(let p=Math.max(m.startRow,this.floatingTopRowCount+this.table.size);p<=m.endRow&&p<this.floatingTopRowCount+this.table.size+this.floatingBottomRowCount;p+=1)r.add(p)}const l=se.columnsFromRanges(s,this.columns),a=[];t&&a.push(l.map(h=>h.name));const c=[...i].sort();for(let h=0;h<c.length;h+=1){const m=c[h],p=l.map(g=>{const f=this.getColumnIndexByName(g.name);return O(f),n(this.valueForCell(f,m),g)});t&&p.push(this.textForRowFooter(m)),a.push(p)}if(o.length>0){const h=se.rangeSetFromRanges(o),m=await this.subscription.snapshot(h,l);a.push(...m.rows.map(p=>l.map(g=>n(p.get(g),g))))}const d=[...r].sort();for(let h=0;h<d.length;h+=1){const m=d[h],p=l.map(g=>{const f=this.getColumnIndexByName(g.name);return O(f),n(this.valueForCell(f,m),g)});t&&p.push(this.textForRowFooter(m)),a.push(p)}return a}async textSnapshot(e,t=!1,n=s=>`${s}`){return Pe.debug2("textSnapshot",e,t),(await this.snapshot(e,t,n)).map(i=>i.join(" ")).join(`
31
31
  `)}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,i=[];Z.forEachCell(e,(c,d)=>{const h=this.columns[c];if(s.add(h),i[c]===void 0){const m=x.makeValue(h.type,t,this.formatter.timeZone);i[c]=m!=null?this.displayString(m,h.type,h.name):null}this.cachePendingValue(c,d,i[c])});const o=this.getPendingAreaRange(),r=e.map(c=>Z.intersection(o,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,h)=>{c.has(h)||c.set(h,{data:new Map});const m=this.columns[d],p=c.get(h);O(p);const{data:g}=p,f=new Map(g),C=x.makeValue(m.type,t,this.formatter.timeZone);C!=null?f.set(d,{value:C}):f.delete(d),f.size>0?c.set(h,{...p,data:f}):c.delete(h)}),this.pendingDataMap=c}this.dispatchEvent(new ye(ue.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]=x.makeValue(g.type,t,this.formatter.timeZone)}),p}),h=await((n=this.inputTable)==null?void 0:n.addRows(d));Pe.debug("setValueForRanges(",e,",",t,") set tableRanges",a,"result",h)}Z.forEachCell(e,(c,d)=>{const h=i[c];O(h),this.cacheFormattedValue(c,d,h)})}catch(s){Pe.error("Unable to set ranges",e,t,s)}finally{Z.forEachCell(e,(s,i)=>{this.clearPendingValue(s,i)})}}async setValues(e=[]){var t;if(Pe.debug("setValues(",e,")"),!e.every(n=>{var s,i;return this.isEditableRange(Z.makeCell((s=n.column)!=null?s:n.x,(i=n.row)!=null?i: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,h=this.columns[c],m=x.makeValue(h.type,a,this.formatter.timeZone),p=m!=null?this.displayString(m,h.type,h.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 b=n.get(g);O(b);const{data:w}=b,S=new Map(w);m!=null?S.set(c,{value:m}):S.delete(c),S.size>0?n.set(g,{...b,data:S}):n.delete(g)}}),this.pendingDataMap=n,this.dispatchEvent(new ye(ue.EVENT.UPDATED));const s=e.reduce((l,a)=>{var d,h;const c=(d=a.row)!=null?d:a.y;return l.has(c)||l.set(c,[]),(h=l.get(c))==null||h.push(a),l},new Map),i=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)})),o=this.getTableAreaRange(),r=i.map(l=>Z.intersection(o,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,h)=>{let m=null,p=h;for(let C=0;C<r.length;C+=1){const b=r[C];O(b);const w=Z.rowCount([b]);if(p<w){O(b.startRow),m=b.startRow+p;break}p-=w}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 w;const b=this.columns[(w=C.column)!=null?w:C.x];g[b.name]=x.makeValue(b.type,C.text,this.formatter.timeZone)}),g});Pe.info("setValues setting tableRanges",r);const c=await((t=this.inputTable)==null?void 0:t.addRows(a));Pe.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,h=this.columns[c],m=x.makeValue(h.type,a,this.formatter.timeZone),p=m!=null?this.displayString(m,h.type,h.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(o=>{const r={};o.data.forEach(({value:l},a)=>{const c=this.columns[a];r[c.name]=l}),s.push(r)});const i=await((e=this.inputTable)==null?void 0:e.addRows(s));Pe.debug("commitPending()",this.pendingNewDataMap,"result",i),this.pendingNewDataMap=new Map,this.pendingNewDataErrors=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 ye(ue.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 h=0;h<s.length;h+=1){const m=s[h];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 ye(ue.EVENT.PENDING_DATA_UPDATED)),this.dispatchEvent(new ye(ue.EVENT.UPDATED))}const i=this.getTableAreaRange(),o=e.map(d=>Z.intersection(i,d)).filter(d=>d!=null);if(o.length<=0)return;const[r,l]=await Promise.all([this.snapshot(o.map(d=>(O(d),new Z(0,d.startRow,t.length-1,d.endRow)))),this.table.copy()]),c=r.map(d=>{const h=[];for(let m=0;m<t.length;m+=1){const p=t[m],g=d[m],f=x.makeFilterRawValue(p.type,g),C=p.filter().eq(f);h.push(C)}return h.reduce((m,p)=>{var g;return(g=m==null?void 0:m.and(p))!=null?g:p})}).reduce((d,h)=>{var m;return(m=d==null?void 0:d.or(h))!=null?m:h});l.applyFilter([c]),l.close()}isValidForCell(e,t,n){try{const s=this.columns[e];return x.makeValue(s.type,n,this.formatter.timeZone),!0}catch{return!1}}};let yr=Go;yr.ROW_BUFFER_PAGES=1;const Mn=ee.module("IrisGridTableModel"),ko=Object.freeze([]);class xg extends yr{constructor(t,n=new Zt,s=null){super(t,n,s),this.getMemoizedFrontColumns=Ie(i=>i!=null?i:ko),this.getMemoizedBackColumns=Ie(i=>i!=null?i:ko),this.getMemoizedFrozenColumns=Ie((i,o)=>{var r;return(r=o!=null?o:i)!=null?r:ko}),this.getCachedFilterableColumnSet=Ie(i=>new Set(i.map((o,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(Mn.debug2("set customColumns",t,this.customColumnList,t===this.customColumnList),this.customColumnList.length===0&&t.length===0){Mn.debug("Ignore empty initial customColumns"),this.customColumnList=t;return}if(this.customColumnList===t){Mn.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(Mn.debug2("set formatColumns",t,this.formatColumnList,t===this.formatColumnList),this.formatColumnList.length===0&&t.length===0){Mn.debug("Ignore empty initial formatColumns"),this.formatColumnList=t;return}if(this.formatColumnList===t){Mn.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 ye(ue.EVENT.TABLE_CHANGED,{detail:this.table}))}set totalsConfig(t){if(Mn.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 ye(ue.EVENT.UPDATED));return}this.totalsTablePromise=He.makeCancelable(this.table.getTotalsTable(t),n=>n.close()),this.totalsTablePromise.then(n=>{this.totalsTablePromise=null,this.setTotalsTable(n)}).catch(n=>{He.isCanceled(n)||(Mn.error("Unable to set next totalsTable",n),this.totalsTablePromise=null,this.dispatchEvent(new ye(ue.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 h;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(),i=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(i.length>0){const m=new Map(super.pendingDataMap);for(let p=0;p<i.length;p+=1){const g=i[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 ye(ue.EVENT.PENDING_DATA_UPDATED)),this.dispatchEvent(new ye(ue.EVENT.UPDATED))}const o=this.getTableAreaRange(),r=t.map(m=>Z.intersection(o,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],b=x.makeFilterRawValue(f.type,C),w=f.filter().eq(b);p.push(w)}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((h=this.inputTable)==null?void 0:h.deleteTable(a)),a.close()}}class Og extends yr{constructor(){super(...arguments),this.getCachedFilterableColumnSet=Ie((t,n)=>new Set(((n==null?void 0:n.length)>0?n:t).map(s=>t.findIndex(i=>s.name===i.name))))}applyBufferedViewport(t,n,s){this.table.setViewport(t,n,s)}textForCell(t,n){const s=this.columns[t],i=this.row(n);if(i!=null&&s!=null&&!i.hasChildren&&s.constituentType!=null){const o=this.valueForCell(t,n);return this.displayString(o,s.constituentType,s.name)}return super.textForCell(t,n)}extractViewportRow(t,n){const{isExpanded:s,hasChildren:i,depth:o}=t;return{...super.extractViewportRow(t,n),isExpanded:s,hasChildren:i,depth:o}}async snapshot(t,n,s){var l,a,c,d;O(this.viewport),O(this.viewportData);const{columns:i}=this.viewport,o=[];n!=null&&n&&o.push(i.map(h=>h.name));const r=new Z(0,(l=this.viewportData)==null?void 0:l.offset,i.length,((a=this.viewportData)==null?void 0:a.offset)+((c=this.viewportData)==null?void 0:c.rows.length));for(let h=0;h<t.length;h+=1){const m=Z.intersection(r,t[h]);O(m),O(m.startRow),O(m.endRow);for(let p=m.startRow;p<=m.endRow;p+=1){const g=[],f=this.viewportData.rows[p-this.viewportData.offset];O(m.startColumn),O(m.endColumn);for(let C=m.startColumn;C<=m.endColumn;C+=1)O(s),g.push(s((d=f.data.get(C))==null?void 0:d.value,this.columns[C]));o.push(g)}}return o}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 Dn=ee.module("IrisGridProxyModel");function Lo(e,t,n){return x.isTreeTable(e)?new Og(e,t):new xg(e,t,n)}class Ag extends ue{constructor(t,n=new Zt,s=null){super(),this.textForCell=(...o)=>this.model.textForCell(...o),this.truncationCharForCell=(...o)=>this.model.truncationCharForCell(...o),this.textAlignForCell=(...o)=>this.model.textAlignForCell(...o),this.colorForCell=(...o)=>this.model.colorForCell(...o),this.backgroundColorForCell=(...o)=>this.model.backgroundColorForCell(...o),this.textForColumnHeader=(...o)=>this.model.textForColumnHeader(...o),this.colorForColumnHeader=(...o)=>this.model.colorForColumnHeader(...o),this.textForRowHeader=(...o)=>this.model.textForRowHeader(...o),this.textForRowFooter=(...o)=>this.model.textForRowFooter(...o),this.isRowMovable=(...o)=>this.model.isRowMovable(...o),this.isColumnMovable=(...o)=>this.model.isColumnMovable(...o),this.isRowExpandable=(...o)=>ze(this.model)?this.model.isRowExpandable(...o):!1,this.isRowExpanded=(...o)=>ze(this.model)?this.model.isRowExpanded(...o):!1,this.setRowExpanded=(...o)=>{if(ze(this.model))return this.model.setRowExpanded(...o);throw Error("Function setRowExpanded does not exist on IrisGridTableModel")},this.depthForRow=(...o)=>ze(this.model)?this.model.depthForRow(...o):0,this.getColumnHeaderGroup=(...o)=>this.model.getColumnHeaderGroup(...o),this.getColumnHeaderParentGroup=(...o)=>this.model.getColumnHeaderParentGroup(...o),this.formatForCell=(...o)=>this.model.formatForCell(...o),this.valueForCell=(...o)=>this.model.valueForCell(...o),this.displayString=(...o)=>this.model.displayString(...o),this.isEditableRange=(...o)=>Ae(this.model)?this.model.isEditableRange(...o):!1,this.isFilterable=(...o)=>this.model.isFilterable(...o),this.setViewport=(o,r,l)=>this.model.setViewport(o,r,l),this.snapshot=(...o)=>this.model.snapshot(...o),this.textSnapshot=(...o)=>this.model.textSnapshot(...o),this.valuesTable=(...o)=>this.model.valuesTable(...o),this.editValueForCell=(...o)=>(Ae(this.model)&&this.model.editValueForCell(...o),""),this.setValueForCell=(...o)=>Ae(this.model)?this.model.setValueForCell(...o):Promise.reject(new Error("Model is not editable")),this.setValueForRanges=(...o)=>Ae(this.model)?this.model.setValueForRanges(...o):Promise.reject(new Error("Model is not editable")),this.setValues=(...o)=>Ae(this.model)?this.model.setValues(...o):Promise.resolve(),this.isValidForCell=(...o)=>Ae(this.model)?this.model.isValidForCell(...o):!1,this.delete=(...o)=>this.model.delete(...o),this.commitPending=(...o)=>this.model.commitPending(...o),this.handleModelEvent=this.handleModelEvent.bind(this);const i=Lo(t,n,s);this.originalModel=i,this.model=i,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){Dn.debug2("handleModelEvent",t);const{detail:n,type:s}=t;this.dispatchEvent(new ye(s,{detail:n}))}setModel(t){Dn.debug("setModel",t);const n=this.model;n!==this.originalModel&&n.close(),this.model=t,this.listenerCount>0&&this.addListeners(t),this.dispatchEvent(new ye(ue.EVENT.COLUMNS_CHANGED,{detail:t.columns})),ki(t)&&this.dispatchEvent(new ye(ue.EVENT.TABLE_CHANGED,{detail:t.table}))}setNextModel(t){Dn.debug2("setNextModel"),this.modelPromise&&this.modelPromise.cancel(),this.listenerCount>0&&this.removeListeners(this.model),this.modelPromise=He.makeCancelable(t,n=>n.close()),this.modelPromise.then(n=>{this.modelPromise=null,this.setModel(n)}).catch(n=>{if(He.isCanceled(n)){Dn.debug2("setNextModel cancelled");return}Dn.error("Unable to set next model",n),this.modelPromise=null,this.dispatchEvent(new ye(ue.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(ue.EVENT);for(let s=0;s<n.length;s+=1)t.addEventListener(n[s],this.handleModelEvent)}removeListeners(t){const n=Object.keys(ue.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 movedColumns(){return this.model.movedColumns}get movedRows(){return this.model.movedRows}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 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(Dn.debug("set rollupConfig",t),!this.isRollupAvailable)throw new Error("Rollup Rows are not available");if(dt(t,this.rollup))return;this.rollup=t;let n=Promise.resolve(this.originalModel);ki(this.originalModel)&&t!=null&&(n=this.originalModel.table.rollup(t).then(s=>Lo(s,this.formatter))),this.setNextModel(n)}get selectDistinctColumns(){return this.selectDistinct}set selectDistinctColumns(t){if(Dn.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){Dn.debug("Ignore same selectDistinctColumns",t);return}this.selectDistinct=t;const n=t.map(i=>this.originalColumns.find(o=>o.name===i)).filter(i=>i!=null);let s=Promise.resolve(this.originalModel);ki(this.originalModel)&&n.length>0&&(s=this.originalModel.table.selectDistinct(n).then(i=>Lo(i,this.formatter))),this.setNextModel(s)}get table(){if(ki(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 Ae(this.model)&&this.model.isEditable}export(){if(x.isTreeTable(this.model))throw new Error("TreeTable has no 'export' property");return this.model.export()}columnStatistics(t){if(x.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 kg{static async makeModel(t,n=new Zt){let s=null;return!x.isTreeTable(t)&&t.hasInputTable&&(s=await t.inputTable()),new Ag(t,n,s)}}const an=ee.module("TableViewportUpdater"),Lg=150,js=class extends y.exports.PureComponent{constructor(){super(...arguments),this.getViewportRowRange=Ie((e,t,n)=>{const s=n-t,i=Math.max(0,t-s*js.ROW_BUFFER_PAGES),o=n+s*js.ROW_BUFFER_PAGES;return[i,o]}),this.getViewportColumns=Ie((e,t,n,s)=>{if(t==null||n==null)return null;const i=n-t,o=Math.max(0,t-i*js.COLUMN_BUFFER_PAGES),r=Math.min(n+i*js.COLUMN_BUFFER_PAGES,e.columns.length-1),l=[];for(let a=o;a<=r;a+=1){const c=U.getModelIndex(a,s);l.push(e.columns[c])}return l}),this.updateViewport=ls((e,t,n,s,i)=>{if(t<e){an.error("Invalid viewport",e,t);return}if(e===0&&t===0){an.debug2("Ignoring 0-0 viewport");return}const{movedColumns:o,table:r}=this.props,[l,a]=this.getViewportRowRange(r,e,t),c=i!=null?i:this.getViewportColumns(r,n,s,o);if(an.debug2("Setting Viewport Top:",l,"Bottom:",a,"Columns:",c),this.subscription==null){an.debug2("updateViewport creating new subscription"),this.subscription=r.setViewport(l,a,c);const{onSubscription:d}=this.props;d(this.subscription)}else an.debug2("updateViewport using existing subscription"),this.subscription.setViewport(l,a,c)},Lg)}componentDidMount(){const{top:e,bottom:t,left:n,right:s,table:i,filters:o,sorts:r,columns:l,customColumns:a}=this.props;i.applyFilter(o),i.applySort(r),i.applyCustomColumns(a),this.updateViewport(e,t,n,s,l)}componentDidUpdate(e){const{top:t,bottom:n,left:s,right:i,table:o,filters:r,sorts:l,customColumns:a,columns:c}=this.props,d=r!==e.filters,h=l!==e.sorts,m=a!==e.customColumns,p=o!==e.table;(d||h||m||p)&&this.closeSubscription(),(d||p)&&(an.debug("update table filter",r),o.applyFilter(r)),(h||p)&&(an.debug("update table sort",l),o.applySort(l)),(m||p)&&(an.debug("update table custom columns",a),o.applyCustomColumns(a)),this.updateViewport(t,n,s,i,c)}componentWillUnmount(){this.closeSubscription()}closeSubscription(){if(an.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 Rr=js;Rr.ROW_BUFFER_PAGES=3;Rr.COLUMN_BUFFER_PAGES=1;Rr.defaultProps={top:0,bottom:0,left:null,right:null,columns:null,onSubscription:()=>{},filters:[],sorts:[],customColumns:[],movedColumns:[]};const vs=ee.module("TreeTableViewportUpdater"),Pg=150,rc=class extends y.exports.PureComponent{constructor(e){super(e),this.updateViewport=ls((t,n)=>{if(n<t){vs.error("Invalid viewport",t,n);return}if(t===0&&n===0){vs.debug2("Ignoring 0-0 viewport");return}const{table:s,updateInterval:i}=this.props,o=n-t,r=Math.max(0,t-o*3),l=n+o*3+1;if(vs.debug2("Setting Viewport Top:",r,"Bottom:",l,s),!this.listenerCleanup){const{onViewportUpdate:a}=this.props;this.listenerCleanup=s.addEventListener(E.TreeTable.EVENT_UPDATED,a)}s.setViewport(r,l,void 0,i)},Pg),this.listenerCleanup=null}componentDidMount(){const{top:e,bottom:t,table:n,filters:s,sorts:i}=this.props;vs.debug("componentDidMount",this.props),n.applyFilter(s),n.applySort(i),this.updateViewport(e,t)}componentDidUpdate(e){const{top:t,bottom:n,table:s,filters:i,sorts:o}=this.props;i!==e.filters&&(vs.debug("update table filter",i),s.applyFilter(i)),o!==e.sorts&&(vs.debug("update table sort",o),s.applySort(o)),this.updateViewport(t,n)}componentWillUnmount(){this.updateViewport.cancel(),this.listenerCleanup&&this.listenerCleanup()}render(){return null}};let lc=rc;lc.UPDATE_INTERVAL=1e3;lc.defaultProps={top:0,bottom:0,onViewportUpdate:()=>{},filters:[],sorts:[],updateInterval:rc.UPDATE_INTERVAL};ee.setLogLevel(parseInt("2",10));const Rs=ee.module("EmbedGrid.App");async function Hg(e,t){Rs.info(`Fetching table ${t}...`);const n={name:t,type:E.VariableType.TABLE};return e.getObject(n)}function _g(){const[e,t]=y.exports.useState(),[n,s]=y.exports.useState(),[i,o]=y.exports.useState(),[r,l]=y.exports.useState(),[a,c]=y.exports.useState(!0),d=y.exports.useMemo(()=>new URLSearchParams(window.location.search),[]),h=d.get("canCopy")!=null,m=d.get("canDownloadCsv")!=null;y.exports.useEffect(function(){async function f(){try{const C=d.get("name");if(C==null)throw new Error("No name param provided");const b=new URL("/jsapi",`${window.location}`),w=`${b.protocol}//${b.host}`;Rs.debug("Starting connection...");const S=new E.IdeConnection(w);Rs.debug("Loading table",C,"...");const I=await Hg(S,C);Rs.debug("Creating model...");const v=await kg.makeModel(I);t(v),Rs.debug("Table successfully loaded!")}catch(C){Rs.error("Unable to load table",C),s(`${C}`)}c(!1)}f()},[d]),y.exports.useEffect(function(){function f(C){const{command:b,value:w}=C.data;switch(b){case"filter":{const I=w.map(({name:v,value:R})=>{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:R,type:x.getNormalizedType(M.type)}});o(I);break}case"sort":{const I=w.map(({name:v,direction:R})=>{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 R==="DESC"?M.sort().desc():M.sort().asc()});l(I);break}}}return window.addEventListener("message",f),()=>{window.removeEventListener("message",f)}},[e]);const p=e!=null;return T("div",{className:"App",children:[p&&u(ri,{canCopy:h,canDownloadCsv:m,model:e,inputFilters:i,sorts:r}),!p&&u(ha,{isLoaded:p,isLoading:a,errorMessage:n!=null?n:null}),u(Zd,{})]})}qo.render(u(_g,{}),document.getElementById("root"));
32
- //# sourceMappingURL=index.2dde9fa9.js.map
32
+ //# sourceMappingURL=index.879b7f1f.js.map