@deephaven/code-studio 0.50.1-beta.3 → 0.50.1-beta.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,8 +1,8 @@
1
- import{r as y,_ as te,C as d,N as M,F as se,S as x,G as ee,M as Oe,K as $e,H,D as Mt,L as Me,$ as Ui,a0 as $i,a1 as Gi,a2 as tt}from"./vendor-69bcfa0a.js";import{L as w,a4 as Vi,a5 as ie,K as z,a6 as Hn,a7 as ht,t as Bn,a8 as Kn,T as ce,I as A,a9 as It,aa as zn,w as xt,ab as jt,ac as Rt,ad as _t,ae as ct,k as At,af as Wn,e as qn,ag as Hi,B as Bi,E as Ki,J as zi,ah as Wi,ai as qi,aj as Xi,ak as Yi,al as Zt,R as Zi,S as Qi,am as Ne,j as Xn,m as Ji,u as er,an as tr,ao as nr,ap as ir,aq as rr,ar,as as lr,M as sr,at as or}from"./ControlType-6b8f4b2e.js";import{q as _s,o as As,Q as Us,C as $s,F as Gs,p as Vs,N as Hs,H as Bs,au as Ks,z as zs,aw as Ws,A as qs,Y as Xs,av as Ys,Z as Zs}from"./ControlType-6b8f4b2e.js";import{k as dr,ag as ur,r as Yn,ah as he,ai as Qt,aj as Zn,ak as Qn,al as Jt,P as ot,am as Jn,an as Y,ao as hr,ap as Ut,B as N,c as Z,aq as en,b as ei,F as tn,ar as cr,as as nn,at as pr,au as wt,av as Ce,aw as ti,ax as vr,y as fr,ay as mr,az as gr,u as pt,E as ni,aA as Tt,aB as ye,aC as Cr,aD as Sr,aE as br,aF as Pr,T as We,n as yr,g as wr,G as Er,aG as Fr,H as Lr,aH as Mr}from"./useConnection-73548e52.js";import{H as Tr,I as Or,L as W,e as _,T as Ot,C as $t,J as Nr,K as Dr,N as ii,f as Gt,O as ri,P as rn,s as an,g as kr,y as Ir,M as xr,b as jr,c as Rr,d as _r,Q as Ar,R as Ur}from"./index-542788d8.js";import{u as $r}from"./useLoadTablePlugin-0c30ad9b.js";import"./helpers-042e6b4d.js";import"./monaco-1410cbed.js";import"./plotly-e15846d5.js";function ai(i){var{dashboardProps:e,componentName:t,component:n,supportedTypes:r,hydrate:l,dehydrate:a}=i,{id:s,layout:o,registerComponent:u}=e,h=y.useCallback(c=>{var p,{dragEvent:v,fetch:m,panelId:g=te.generate(),widget:f}=c,{id:C,type:b}=f,P=(p=f.title)!==null&&p!==void 0?p:f.name,S=Array.isArray(r)&&r.includes(b)||b===r;if(S){var E={id:C,name:P,type:b},L={localDashboardId:s,metadata:E,fetch:m};l!=null&&(L=l(L,s));var O={type:"react-component",component:t,props:L,title:P,id:g},{root:T}=o;w.openComponent({root:T,config:O,dragEvent:v})}},[t,l,s,o,r]);Vi(u,n,l,a),ie(o.eventHub,z.OPEN,h)}function Vt(i,e,t){return e=Gr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Gr(i){var e=Vr(i,"string");return typeof e=="symbol"?e:String(e)}function Vr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class vt{}Vt(vt,"OPEN","ChartEvent.OPEN");Vt(vt,"CLOSE","ChartEvent.CLOSE");Vt(vt,"COLUMN_SELECTED","ChartEvent.COLUMN_SELECTED");const Nt=vt;function Ge(i,e,t){return e=Hr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Hr(i){var e=Br(i,"string");return typeof e=="symbol"?e:String(e)}function Br(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class De{}Ge(De,"OPEN_GRID","IrisGridEvent.OPEN_GRID");Ge(De,"CLOSE_GRID","IrisGridEvent.CLOSE_GRID");Ge(De,"DATA_SELECTED","IrisGridEvent.DATA_SELECTED");Ge(De,"COLUMN_SELECTED","IrisGridEvent.COLUMN_SELECTED");Ge(De,"STATE_CHANGED","IrisGridEvent.STATE_CHANGED");Ge(De,"CREATE_CHART","IrisGridevent.CREATE_CHART");const ae=De;function li(i,e,t){return e=Kr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Kr(i){var e=zr(i,"string");return typeof e=="symbol"?e:String(e)}function zr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class Ht{}li(Ht,"OPEN","PandasEvent.OPEN");li(Ht,"CLOSE","PandasEvent.CLOSE");const ws=Ht;function ft(i){var{widgetType:e,widgetName:t,glContainer:n,description:r,children:l}=i,a=w.getTitleFromContainer(n);return d.jsxs("div",{className:"tab-tooltip-grid-container",children:[d.jsxs("span",{className:"tab-tooltip-title",children:[e," Name"]}),d.jsxs("div",{className:"tab-tooltip-name-wrapper",children:[d.jsx("span",{className:"tab-tooltip-name",children:t}),d.jsx(dr,{className:"tab-tooltip-copy",tooltip:"Copy name",copy:t})]}),t!==a&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"tab-tooltip-title",children:"Display Name"}),d.jsx("span",{className:"tab-tooltip-name",children:a})]}),r&&d.jsx("div",{className:"tab-tooltip-description",children:r}),l]})}ft.propTypes={glContainer:Hn.Container.isRequired,widgetType:M.string,widgetName:M.string,description:M.string,children:M.node};ft.defaultProps={widgetType:"",widgetName:"",description:null,children:null};function si(i,e,t){return e=Wr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Wr(i){var e=qr(i,"string");return typeof e=="symbol"?e:String(e)}function qr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class oi extends y.PureComponent{constructor(e){super(e),si(this,"getCachedRenderTabTooltip",x((t,n,r,l,a)=>t?()=>d.jsx(ft,{glContainer:n,widgetType:r,widgetName:l,description:a}):null)),this.handleSessionClosed=this.handleSessionClosed.bind(this),this.handleSessionOpened=this.handleSessionOpened.bind(this),this.handleCopyName=this.handleCopyName.bind(this),this.state={isClientDisconnected:!1,isPanelDisconnected:!1,isWidgetDisconnected:!1,isWaitingForReconnect:!1,isPanelInactive:!1}}handleCopyName(){var{widgetName:e}=this.props;ur(e)}getErrorMessage(){var{errorMessage:e}=this.props,{isClientDisconnected:t,isPanelDisconnected:n,isWidgetDisconnected:r,isWaitingForReconnect:l}=this.state;if(e)return"".concat(e);if(t&&n&&l)return`Disconnected from server.
1
+ import{r as y,_ as te,C as d,N as M,F as se,S as x,G as ee,M as Oe,K as $e,H,D as Mt,L as Me,$ as Ui,a0 as $i,a1 as Gi,a2 as tt}from"./vendor-69bcfa0a.js";import{L as w,a4 as Vi,a5 as ie,K as z,a6 as Hn,a7 as ht,t as Bn,a8 as Kn,T as ce,I as A,a9 as It,aa as zn,w as xt,ab as jt,ac as Rt,ad as _t,ae as ct,k as At,af as Wn,e as qn,ag as Hi,B as Bi,E as Ki,J as zi,ah as Wi,ai as qi,aj as Xi,ak as Yi,al as Zt,R as Zi,S as Qi,am as Ne,j as Xn,m as Ji,u as er,an as tr,ao as nr,ap as ir,aq as rr,ar,as as lr,M as sr,at as or}from"./ControlType-f0549317.js";import{q as _s,o as As,Q as Us,C as $s,F as Gs,p as Vs,N as Hs,H as Bs,au as Ks,z as zs,aw as Ws,A as qs,Y as Xs,av as Ys,Z as Zs}from"./ControlType-f0549317.js";import{k as dr,ag as ur,r as Yn,ah as he,ai as Qt,aj as Zn,ak as Qn,al as Jt,P as ot,am as Jn,an as Y,ao as hr,ap as Ut,B as N,c as Z,aq as en,b as ei,F as tn,ar as cr,as as nn,at as pr,au as wt,av as Ce,aw as ti,ax as vr,y as fr,ay as mr,az as gr,u as pt,E as ni,aA as Tt,aB as ye,aC as Cr,aD as Sr,aE as br,aF as Pr,T as We,n as yr,g as wr,G as Er,aG as Fr,H as Lr,aH as Mr}from"./useConnection-52654ab9.js";import{H as Tr,I as Or,L as W,e as _,T as Ot,C as $t,J as Nr,K as Dr,N as ii,f as Gt,O as ri,P as rn,s as an,g as kr,y as Ir,M as xr,b as jr,c as Rr,d as _r,Q as Ar,R as Ur}from"./index-2e6e3ecf.js";import{u as $r}from"./useLoadTablePlugin-fa65ff4e.js";import"./helpers-042e6b4d.js";import"./monaco-1410cbed.js";import"./plotly-e15846d5.js";function ai(i){var{dashboardProps:e,componentName:t,component:n,supportedTypes:r,hydrate:l,dehydrate:a}=i,{id:s,layout:o,registerComponent:u}=e,h=y.useCallback(c=>{var p,{dragEvent:v,fetch:m,panelId:g=te.generate(),widget:f}=c,{id:C,type:b}=f,P=(p=f.title)!==null&&p!==void 0?p:f.name,S=Array.isArray(r)&&r.includes(b)||b===r;if(S){var E={id:C,name:P,type:b},L={localDashboardId:s,metadata:E,fetch:m};l!=null&&(L=l(L,s));var O={type:"react-component",component:t,props:L,title:P,id:g},{root:T}=o;w.openComponent({root:T,config:O,dragEvent:v})}},[t,l,s,o,r]);Vi(u,n,l,a),ie(o.eventHub,z.OPEN,h)}function Vt(i,e,t){return e=Gr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Gr(i){var e=Vr(i,"string");return typeof e=="symbol"?e:String(e)}function Vr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class vt{}Vt(vt,"OPEN","ChartEvent.OPEN");Vt(vt,"CLOSE","ChartEvent.CLOSE");Vt(vt,"COLUMN_SELECTED","ChartEvent.COLUMN_SELECTED");const Nt=vt;function Ge(i,e,t){return e=Hr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Hr(i){var e=Br(i,"string");return typeof e=="symbol"?e:String(e)}function Br(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class De{}Ge(De,"OPEN_GRID","IrisGridEvent.OPEN_GRID");Ge(De,"CLOSE_GRID","IrisGridEvent.CLOSE_GRID");Ge(De,"DATA_SELECTED","IrisGridEvent.DATA_SELECTED");Ge(De,"COLUMN_SELECTED","IrisGridEvent.COLUMN_SELECTED");Ge(De,"STATE_CHANGED","IrisGridEvent.STATE_CHANGED");Ge(De,"CREATE_CHART","IrisGridevent.CREATE_CHART");const ae=De;function li(i,e,t){return e=Kr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Kr(i){var e=zr(i,"string");return typeof e=="symbol"?e:String(e)}function zr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class Ht{}li(Ht,"OPEN","PandasEvent.OPEN");li(Ht,"CLOSE","PandasEvent.CLOSE");const ws=Ht;function ft(i){var{widgetType:e,widgetName:t,glContainer:n,description:r,children:l}=i,a=w.getTitleFromContainer(n);return d.jsxs("div",{className:"tab-tooltip-grid-container",children:[d.jsxs("span",{className:"tab-tooltip-title",children:[e," Name"]}),d.jsxs("div",{className:"tab-tooltip-name-wrapper",children:[d.jsx("span",{className:"tab-tooltip-name",children:t}),d.jsx(dr,{className:"tab-tooltip-copy",tooltip:"Copy name",copy:t})]}),t!==a&&d.jsxs(d.Fragment,{children:[d.jsx("span",{className:"tab-tooltip-title",children:"Display Name"}),d.jsx("span",{className:"tab-tooltip-name",children:a})]}),r&&d.jsx("div",{className:"tab-tooltip-description",children:r}),l]})}ft.propTypes={glContainer:Hn.Container.isRequired,widgetType:M.string,widgetName:M.string,description:M.string,children:M.node};ft.defaultProps={widgetType:"",widgetName:"",description:null,children:null};function si(i,e,t){return e=Wr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Wr(i){var e=qr(i,"string");return typeof e=="symbol"?e:String(e)}function qr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class oi extends y.PureComponent{constructor(e){super(e),si(this,"getCachedRenderTabTooltip",x((t,n,r,l,a)=>t?()=>d.jsx(ft,{glContainer:n,widgetType:r,widgetName:l,description:a}):null)),this.handleSessionClosed=this.handleSessionClosed.bind(this),this.handleSessionOpened=this.handleSessionOpened.bind(this),this.handleCopyName=this.handleCopyName.bind(this),this.state={isClientDisconnected:!1,isPanelDisconnected:!1,isWidgetDisconnected:!1,isWaitingForReconnect:!1,isPanelInactive:!1}}handleCopyName(){var{widgetName:e}=this.props;ur(e)}getErrorMessage(){var{errorMessage:e}=this.props,{isClientDisconnected:t,isPanelDisconnected:n,isWidgetDisconnected:r,isWaitingForReconnect:l}=this.state;if(e)return"".concat(e);if(t&&n&&l)return`Disconnected from server.
2
2
  Check your internet connection.`;if(t&&n)return"Disconnected from server.";if(n){var{widgetName:a,widgetType:s}=this.props;return'Variable "'.concat(a,`" not set.
3
3
  `).concat(s," does not exist yet.")}if(r){var{widgetName:o}=this.props;return"".concat(o," is unavailable.")}}handleSessionClosed(){var{onSessionClose:e}=this.props;this.setState({isPanelDisconnected:!0,isWaitingForReconnect:!1}),e(...arguments)}handleSessionOpened(){var{onSessionOpen:e}=this.props;e(...arguments)}render(){var{children:e,className:t,componentPanel:n,isLoaded:r,isLoading:l,glContainer:a,glEventHub:s,isDisconnected:o,isClonable:u,isRenamable:h,showTabTooltip:c,renderTabTooltip:p,widgetType:v,widgetName:m,description:g,onClearAllFilters:f,onHide:C,onFocus:b,onBlur:P,onResize:S,onShow:E,onTabBlur:L,onTabFocus:O,onTabClicked:T}=this.props,{isPanelDisconnected:F,isWidgetDisconnected:k,isPanelInactive:j}=this.state,B=this.getErrorMessage(),$=p??this.getCachedRenderTabTooltip(c,a,v,m,g),q=[{title:"Copy ".concat(v," Name"),group:Yn.groups.medium,order:20,action:this.handleCopyName}];return d.jsxs(ht,{className:se(t,{disconnected:F||k||o,inactive:j}),componentPanel:n,glContainer:a,glEventHub:s,onClearAllFilters:f,onHide:C,onFocus:b,onBlur:P,onResize:S,onShow:E,onSessionClose:this.handleSessionClosed,onSessionOpen:this.handleSessionOpened,onTabBlur:L,onTabFocus:O,onTabClicked:T,renderTabTooltip:$,errorMessage:B,isLoaded:r,isLoading:l,isClonable:u,isRenamable:h,additionalActions:q,children:[e,j&&d.jsx("div",{className:"fill-parent-absolute"})]})}}si(oi,"defaultProps",{className:"",errorMessage:null,isClonable:!0,isDisconnected:!1,isLoading:!1,isLoaded:!0,isRenamable:!0,showTabTooltip:!0,widgetName:"Widget",widgetType:"Widget",renderTabTooltip:null,description:"",onFocus:()=>{},onBlur:()=>{},onHide:()=>{},onClearAllFilters:()=>{},onResize:()=>{},onSessionClose:()=>{},onSessionOpen:()=>{},onShow:()=>{},onTabBlur:()=>{},onTabFocus:()=>{},onTabClicked:()=>{}});const mt=oi;function di(i){var{columnMap:e,inputFilterMap:t,linkedColumnMap:n,onAdd:r,onOpenLinker:l,waitingFilterMap:a,waitingInputMap:s}=i,o=y.useMemo(()=>{var m=Array.from(s.keys()),g=m.find(b=>t.get(b)!=null),f=m.find(b=>n.get(b)!=null),C=he.join(m.map(b=>'"'.concat(b,'"')));return g!=null&&g&&f!=null&&f?"Use a filter control or linked table to set a value for ".concat(C):g!=null&&g?"Set a filter control value for ".concat(C):"Double click a row in a linked table to set a value for ".concat(C)},[t,n,s]),u=y.useMemo(()=>Array.from(e.values()),[e]),h=y.useCallback(m=>{m.stopPropagation(),m.preventDefault(),r(Array.from(a.values()))},[r,a]),c=y.useCallback(m=>{m.stopPropagation(),m.preventDefault(),l()},[l]),p=a.size>0,v=!p&&s.size>0;return d.jsx("div",{className:"chart-panel-overlay chart-filter-overlay",children:d.jsxs("div",{className:se("chart-panel-overlay-content chart-filter-overlay-content",{"chart-filter-waiting-filter":p},{"chart-filter-waiting-input":v}),children:[p&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"info-message",children:"This plot requires a filter control to be added to the layout or a table link to be created on the following columns:"}),d.jsx("div",{className:"waiting-filter-list",children:u.map(m=>{var g=a.has(m.name),f=g?Tr:Or;return d.jsxs("div",{className:se("waiting-filter-item",{"is-invalid":g}),children:[d.jsx(ee,{icon:f}),m.name]},m.name)})}),d.jsxs("div",{children:[d.jsx(Qt,{onClick:h,className:"btn-primary",children:"Add Input Filters"}),d.jsx(Qt,{onClick:c,className:"btn-primary",children:"Open Linker Tool"})]})]}),v&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"info-message",children:"Waiting for User Input"}),d.jsx("div",{className:"",children:o})]})]})})}di.propTypes={columnMap:M.instanceOf(Map).isRequired,inputFilterMap:M.instanceOf(Map).isRequired,linkedColumnMap:M.instanceOf(Map).isRequired,onAdd:M.func.isRequired,onOpenLinker:M.func.isRequired,waitingFilterMap:M.instanceOf(Map).isRequired,waitingInputMap:M.instanceOf(Map).isRequired};function Qe(i){var{columns:e,onColumnSelected:t,onMouseEnter:n,onMouseLeave:r}=i;return d.jsx("div",{className:"chart-panel-overlay chart-column-selector-overlay",children:d.jsxs("div",{className:se("chart-panel-overlay-content"),children:[d.jsx("div",{className:"info-message",children:"This plot requires a filter control to be added to the layout or a table link to be created on the following columns:"}),d.jsx("div",{className:"waiting-column-select-list",children:e.map(l=>d.jsx(Zn,{className:se("btn-chart-column-selector",Qe.makeButtonClassName(l.name)),onClick:()=>t(l.name),onMouseEnter:()=>{n&&n(l)},onMouseLeave:r,disabled:!l.isValid,isLinked:l.isActive,children:l.name},l.name))})]})})}Qe.makeButtonClassName=i=>"btn-chart-column-selector-".concat(i);Qe.defaultProps={onMouseEnter:()=>{},onMouseLeave:()=>{}};function st(i){return i.settings!==void 0}function Xr(i){if(i==null)return!1;var{settings:e,tableSettings:t}=i;return typeof e=="object"&&typeof t=="object"}function Yr(i){return i!=null&&Xr(i.panelState)}function ln(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function sn(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ln(Object(t),!0).forEach(function(n){J(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):ln(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function J(i,e,t){return e=Zr(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Zr(i){var e=Qr(i,"string");return typeof e=="symbol"?e:String(e)}function Qr(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var X=W.module("ChartPanel"),Jr=150;function ea(i){return i.inputFilters!=null}function ta(i){return i.panelState!=null}class gt extends y.Component{constructor(e){var t;super(e),J(this,"panelContainer",void 0),J(this,"chart",void 0),J(this,"pending",void 0),J(this,"getWaitingInputMap",x((s,o,u)=>{if(!s)return new Map;var h=new Map(o);return u.forEach((c,p)=>{h.delete(p)}),h})),J(this,"getWaitingFilterMap",x((s,o,u,h,c)=>{if(!s)return new Map;var p=new Map(o);return u.forEach((v,m)=>{p.delete(m)}),c.forEach((v,m)=>{p.delete(m)}),h.forEach((v,m)=>{p.delete(m)}),p})),J(this,"getInputFilterColumnMap",x((s,o)=>{for(var u=new Map,h=0;h<o.length;h+=1){var c=o[h],{name:p,type:v}=c,m=s.get(p);m!=null&&m.type===v&&u.set(p,c)}return u})),J(this,"getLinkedColumnMap",x((s,o)=>{for(var u=new Map,h=w.getIdFromPanel(this),c=0;c<o.length;c+=1){var p=o[c],v=null;if(p.start!=null&&p.start.panelId===h&&s.has(p.start.columnName)?v=p.start.columnName:p.end&&p.end.panelId===h&&s.has(p.end.columnName)&&(v=p.end.columnName),v!=null&&s.has(v)){var m=s.get(v);_(m),u.set(v,m)}}return u})),J(this,"getSelectorColumns",x((s,o,u)=>Array.from(s.values()).map(h=>({name:h.name,type:h.type,isValid:u?u(this,h):!1,isActive:o.has(h.name)})))),this.handleColumnSelected=this.handleColumnSelected.bind(this),this.handleColumnMouseEnter=this.handleColumnMouseEnter.bind(this),this.handleColumnMouseLeave=this.handleColumnMouseLeave.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.handleReconnect=this.handleReconnect.bind(this),this.handleFilterAdd=this.handleFilterAdd.bind(this),this.handleHide=this.handleHide.bind(this),this.handleError=this.handleError.bind(this),this.handleLoadError=this.handleLoadError.bind(this),this.handleLoadSuccess=this.handleLoadSuccess.bind(this),this.handleResize=this.handleResize.bind(this),this.handleSettingsChanged=this.handleSettingsChanged.bind(this),this.handleOpenLinker=this.handleOpenLinker.bind(this),this.handleShow=this.handleShow.bind(this),this.handleSourceColumnChange=this.handleSourceColumnChange.bind(this),this.handleSourceFilterChange=this.handleSourceFilterChange.bind(this),this.handleSourceSortChange=this.handleSourceSortChange.bind(this),this.handleTabBlur=this.handleTabBlur.bind(this),this.handleTabFocus=this.handleTabFocus.bind(this),this.handleUpdate=this.handleUpdate.bind(this),this.updateModelFromSource=$e(this.updateModelFromSource.bind(this),Jr),this.handleClearAllFilters=this.handleClearAllFilters.bind(this),this.panelContainer=(t=e.containerRef)!==null&&t!==void 0?t:H.createRef(),this.chart=H.createRef(),this.pending=new Qn;var{metadata:n,panelState:r}=e,{filterValueMap:l=[],settings:a={}}=r??{};this.state={settings:a,error:void 0,isActive:!1,isDisconnected:!1,isLoading:!1,isLoaded:!1,isLinked:n!=null&&st(n)&&n.settings.isLinked,filterMap:new Map(l),filterValueMap:new Map(l),model:void 0,columnMap:new Map,panelState:r}}componentDidMount(){this.isHidden()||(this.setState({isActive:!0}),this.initModel())}componentDidUpdate(e,t){var{inputFilters:n,source:r}=this.props,{columnMap:l,model:a,filterMap:s,filterValueMap:o,isLinked:u,settings:h}=this.state;a&&(l!==t.columnMap&&this.pruneFilterMaps(),n!==e.inputFilters&&this.updateChangedInputFilters(n,e.inputFilters),s!==t.filterMap?this.updateFilters():o!==t.filterValueMap&&this.updatePanelState(),h!==t.settings&&Jt(a)&&(a.updateSettings(h),this.updatePanelState()),u!==t.isLinked?r&&(u?(this.startListeningToSource(r),this.updateModelFromSource()):this.stopListeningToSource(r)):u&&r!==e.source&&(e.source&&this.stopListeningToSource(e.source),r&&(this.startListeningToSource(r),this.updateModelFromSource())))}componentWillUnmount(){this.pending.cancel();var{model:e}=this.state,{source:t}=this.props;e!=null&&t&&this.stopListeningToSource(t)}initModel(){this.setState({isLoading:!0,isLoaded:!1,error:void 0});var{makeModel:e}=this.props;this.pending.add(e(),t=>{t.close()}).then(this.handleLoadSuccess,this.handleLoadError)}startListeningToSource(e){X.debug("startListeningToSource",e);var{model:t}=this.state;_(t);var{dh:n}=t;e.addEventListener(n.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleSourceColumnChange),e.addEventListener(n.Table.EVENT_FILTERCHANGED,this.handleSourceFilterChange),e.addEventListener(n.Table.EVENT_SORTCHANGED,this.handleSourceSortChange)}stopListeningToSource(e){X.debug("stopListeningToSource",e);var{model:t}=this.state;_(t);var{dh:n}=t;e.removeEventListener(n.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleSourceColumnChange),e.removeEventListener(n.Table.EVENT_FILTERCHANGED,this.handleSourceFilterChange),e.removeEventListener(n.Table.EVENT_SORTCHANGED,this.handleSourceSortChange)}loadModelIfNecessary(){var{isActive:e,isLoaded:t,isLoading:n}=this.state;e&&!t&&!n&&this.initModel()}isHidden(){var{glContainer:e}=this.props,{isHidden:t}=e;return t}handleColumnSelected(e){var{glEventHub:t}=this.props,{columnMap:n}=this.state;t.emit(Nt.COLUMN_SELECTED,this,n.get(e))}handleColumnMouseEnter(e){var{type:t,name:n}=e,{columnSelectionValidator:r}=this.props;X.debug("handleColumnMouseEnter",r,t,n),r&&r(this,{type:t,name:n})}handleColumnMouseLeave(){var{columnSelectionValidator:e}=this.props;X.debug("handleColumnMouseLeave",e),e&&e(this,void 0)}handleDisconnect(){this.setState({error:new Error("Figure disconnected"),isDisconnected:!0})}handleFilterAdd(e){for(var t=0;t<e.length;t+=1)this.openInputFilter(e[t])}handleOpenLinker(){var{localDashboardId:e,setActiveTool:t,setDashboardIsolatedLinkerPanelId:n}=this.props;n(e,void 0),t(ce.LINKER)}handleReconnect(){this.setState({isDisconnected:!1,error:void 0}),this.sendColumnChange(),this.updateColumnFilters()}handleLoadSuccess(e){X.debug("handleLoadSuccess");var{model:t}=this.state;this.setState({model:e,isLoaded:!0},()=>{var{inputFilters:n,source:r}=this.props,{filterMap:l,isLinked:a}=this.state;e!==t&&(this.sendColumnChange(),this.updateColumnFilters(),this.updateInputFilters(n,l.size>0||e.isFilterRequired()),r&&a&&(this.startListeningToSource(r),this.updateModelFromSource()))})}handleLoadError(e){ot.isCanceled(e)||(X.error("handleLoadError",e),this.setState({error:e,isLoading:!1}))}handleSourceColumnChange(){this.updateModelFromSource()}handleSourceFilterChange(){this.updateModelFromSource()}handleSourceSortChange(){this.updateModelFromSource()}updateModelFromSource(){var{metadata:e,source:t}=this.props,{isLinked:n,model:r}=this.state;if(!n||!r||!t){X.debug2("updateModelFromSource ignoring",n,r,t);return}var{dh:l}=r;if(this.pending.cancel(),st(e)){var{settings:a}=e;this.pending.add(l.plot.Figure.create(new Jn(l).makeFigureSettings(a,t))).then(s=>{Jt(r)&&r.setFigure(s)}).catch(this.handleLoadError)}this.updatePanelState()}updatePanelState(){var{sourcePanel:e}=this.props,{panelState:t,filterValueMap:n,settings:r}=this.state,{tableSettings:l}=t??{};if(e&&ea(e.props)&&ta(e.state)){var{inputFilters:a}=e.props,{panelState:s}=e.state;s!=null&&(l=Y.extractTableSettings(s,a))}this.setState({panelState:{settings:r,tableSettings:l,filterValueMap:Array.from(n)}})}handleError(){this.setState({isLoading:!1})}handleResize(){this.updateChart()}handleSettingsChanged(e){this.setState(t=>{var{settings:n}=t,r=sn(sn({},n),e);return X.debug("Updated settings",r),{settings:r}})}handleHide(){this.setActive(!1)}handleShow(){this.setActive(!0)}handleTabBlur(){this.setActive(!1)}handleTabFocus(){var e=this.isHidden();this.setActive(!e)}handleUpdate(){this.setState({isLoading:!1})}handleClearAllFilters(){this.setState({filterValueMap:new Map,filterMap:new Map}),this.updatePanelState()}openInputFilter(e){var{glEventHub:t}=this.props,{name:n,type:r}=e;t.emit(A.OPEN_INPUT,{title:"".concat(n," Filter"),panelState:{name:n,type:r,isValueShown:!0},createNewStack:!0,focusElement:"input"})}setActive(e){this.setState({isActive:e},()=>{e&&(this.loadModelIfNecessary(),this.updateChart())})}sendColumnChange(){var{model:e}=this.state;if(e){var{glEventHub:t}=this.props;t.emit(A.COLUMNS_CHANGED,this,Array.from(e.getFilterColumnMap().values()))}}getCoordinateForColumn(e){var t,n=Qe.makeButtonClassName(e);if(!this.panelContainer.current)return null;var r=this.panelContainer.current.querySelector(".".concat(n)),l=(t=r?.getBoundingClientRect())!==null&&t!==void 0?t:null;if(l==null||l.width<=0||l.height<=0)return null;var a=l.left+l.width/2,s=l.bottom;return[a,s]}setFilterMap(e){X.debug("setFilterMap",e),this.setState(t=>{var n,{columnMap:r,filterMap:l}=t,a=null,s=new Map(t.filterValueMap);return e.forEach((o,u)=>{var{columnType:h,filterList:c}=o,p=r.get(u);if(!(p==null||p.type!==h)){if(c.length<1){X.debug("Ignoring empty filterList for column",u);return}var{value:v}=c[0];s.set(u,v),l.get(u)!==v&&(a===null&&(a=new Map(l)),a.set(u,v))}}),{filterValueMap:s,filterMap:(n=a)!==null&&n!==void 0?n:l}})}unsetFilterValue(e){this.setState(t=>{var{inputFilters:n}=this.props,{columnMap:r}=t,{filterMap:l,filterValueMap:a}=t;if(!a.has(e))return null;a=new Map(t.filterValueMap),a.delete(e);var s=this.getInputFilterColumnMap(r,n);if(s.has(e)){var o,u=l.get(e),h=(o=s.get(e))===null||o===void 0?void 0:o.value;h!=null&&u!==h&&(l=new Map(t.filterMap),h.length>0?l.set(e,h):l.delete(e))}else l=new Map(t.filterMap),l.delete(e);return{filterMap:l,filterValueMap:a}})}updateChangedInputFilters(e,t){var n=t.filter(l=>e.find(a=>a.name===l.name&&a.type===l.type)===void 0);n.length>0&&this.deleteInputFilters(n);var r=e.filter(l=>!t.includes(l));r.length>0&&this.updateInputFilters(r)}updateInputFilters(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.setState(n=>{for(var{columnMap:r}=n,l=new Map(n.filterValueMap),a=new Map(n.filterMap),s=t?{filterMap:a,filterValueMap:l}:{},o=0;o<e.length;o+=1){var{name:u,type:h,value:c}=e[o],p=r.get(u);p!=null&&p.type===h&&(c!=null&&a.get(u)!==c&&(c===""?a.delete(u):a.set(u,c),s.filterMap=a),l.has(u)&&(l.delete(u),s.filterValueMap=l))}return X.debug("updateInputFilters",s),s})}deleteInputFilters(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.setState(n=>{for(var{columnMap:r,filterValueMap:l}=n,a=new Map(n.filterMap),s=t,o=0;o<e.length;o+=1){var{name:u,type:h}=e[o],c=r.get(u);if(c!=null&&c.type===h&&a.has(u)){var p=a.get(u);if(l.has(u)){var v=l.get(u);v!==p&&v!=null&&(s=!0,a.set(u,v))}else s=!0,a.delete(u)}}return X.debug("deleteInputFilters",s),s?{filterMap:a}:null})}updateColumnFilters(){this.setState(e=>{var{model:t}=e;return t?{columnMap:t.getFilterColumnMap()}:null})}updateFilters(){var{columnMap:e,filterMap:t,model:n}=this.state;_(n);var r=this.getWaitingInputMap(n.isFilterRequired(),e,t);if(n.setFilter(t),t.size>0&&r.size===0){var l=n.getDefaultTitle(),a=he.join(Array.from(t.entries()).map(s=>{var[o,u]=s;return"".concat(o,": ").concat(u)}));l?n.setTitle("".concat(l,'<br><span style="font-size: smaller">').concat(a,"</span>")):n.setTitle(a),X.debug2("updateFilters filters set",t),this.setState({isLoading:!0})}else X.debug2("updateFilters waiting on inputs",r),n.setTitle(n.getDefaultTitle()),this.setState({isLoading:!1});this.updatePanelState()}pruneFilterMaps(){this.setState(e=>{var{columnMap:t}=e,n=new Map(e.filterMap),r=new Map(e.filterValueMap),l={};return e.filterValueMap.forEach((a,s)=>{t.has(s)||(r.delete(s),l.filterValueMap=r)}),e.filterMap.forEach((a,s)=>{t.has(s)||(n.delete(s),l.filterMap=n)}),l})}updateChart(){this.chart.current&&this.chart.current.updateDimensions()}render(){var{columnSelectionValidator:e,glContainer:t,glEventHub:n,inputFilters:r,isLinkerActive:l,links:a,metadata:s,settings:o,Plotly:u}=this.props,{columnMap:h,filterMap:c,error:p,model:v,isActive:m,isDisconnected:g,isLoaded:f,isLoading:C}=this.state,b;st(s)?b=s.table:b=s.figure;var P=this.getInputFilterColumnMap(h,r),S=this.getLinkedColumnMap(h,a),E=v!=null?this.getWaitingInputMap(v.isFilterRequired(),h,c):new Map,L=v!=null?this.getWaitingFilterMap(v.isFilterRequired(),h,c,S,P):new Map,O=p!=null?"Unable to open chart. ".concat(p):void 0,T=E.size>0,F=h.size>0&&l;return d.jsx(mt,{className:se("iris-chart-panel",{"input-required":T}),componentPanel:this,glContainer:t,glEventHub:n,onHide:this.handleHide,onClearAllFilters:this.handleClearAllFilters,onResize:this.handleResize,onShow:this.handleShow,onTabBlur:this.handleTabBlur,onTabFocus:this.handleTabFocus,errorMessage:O,isDisconnected:g,isLoading:C,isLoaded:f,widgetName:b,widgetType:"Chart",children:d.jsxs("div",{ref:this.panelContainer,className:"chart-panel-container h-100 w-100",children:[d.jsx("div",{className:"chart-container h-100 w-100",children:f&&v&&d.jsx(hr,{isActive:m,model:v,settings:o,ref:this.chart,onDisconnect:this.handleDisconnect,onReconnect:this.handleReconnect,onUpdate:this.handleUpdate,onError:this.handleError,onSettingsChanged:this.handleSettingsChanged,Plotly:u})}),d.jsx(Mt,{in:T&&!F&&!C,timeout:Ot.transitionMs,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:d.jsx(di,{inputFilterMap:P,linkedColumnMap:S,onAdd:this.handleFilterAdd,onOpenLinker:this.handleOpenLinker,columnMap:h,waitingFilterMap:L,waitingInputMap:E})}),d.jsx(Mt,{in:F,timeout:Ot.transitionMs,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,children:d.jsx(Qe,{columns:this.getSelectorColumns(h,S,e),onColumnSelected:this.handleColumnSelected,onMouseEnter:this.handleColumnMouseEnter,onMouseLeave:this.handleColumnMouseLeave})})]})})}}J(gt,"defaultProps",{columnSelectionValidator:null,isLinkerActive:!1,source:null,sourcePanel:null,panelState:null,settings:{},containerRef:null});J(gt,"displayName","ChartPanel");J(gt,"COMPONENT","ChartPanel");var na=(i,e)=>{var{localDashboardId:t,metadata:n}=e,r;n!=null&&(r=n.sourcePanelId);var l=It(i,t),a=zn(i,t),s=xt(i),o=jt(i,t),u=s===ce.LINKER&&o===void 0;return{columnSelectionValidator:Rt(i,t),isLinkerActive:u,inputFilters:_t(i,t),links:ct(i,t),source:r!=null?l.get(r):void 0,sourcePanel:r!=null?a.get(r):void 0,settings:At(i)}},ia=Oe(na,{setActiveTool:Bn,setDashboardIsolatedLinkerPanelId:Kn},null,{forwardRef:!0})(gt);const Je=ia;function re(i,e,t){return e=ra(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function ra(i){var e=aa(i,"string");return typeof e=="symbol"?e:String(e)}function aa(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var nt=W.module("DropdownFilter"),la=150;class fe extends y.Component{constructor(e){super(e),re(this,"dropdownRef",void 0),re(this,"getCompatibleColumns",x((l,a)=>l!=null?a.filter(s=>{var{type:o}=s;return o!==void 0&&Z.isCompatibleType(o,l.columnType)}):[])),re(this,"getColumnOptions",x((l,a)=>{var s=-1,o=[];return o.push(d.jsx("option",{value:"-1",children:"Select a column"},"placeholder")),l.forEach((u,h)=>{o.push(d.jsx("option",{value:h,children:this.getItemLabel(l,h)},"".concat(u.name,"/").concat(u.type))),a!==null&&u.name===a.name&&u.type===a.type&&(s=h)}),[o,s]})),re(this,"getSelectedOptionIndex",x((l,a)=>l.indexOf(a))),re(this,"getValueOptions",x(l=>[d.jsx("option",{value:"-1",children:fe.PLACEHOLDER},"-1"),...l.map((a,s)=>d.jsx("option",{value:s,children:a??"(null)"},"".concat(s,"/").concat(a)))])),re(this,"getItemLabel",Me((l,a)=>{var{name:s,type:o}=l[a];if(a>0&&l[a-1].name===s||a<l.length-1&&l[a+1].name===s){var u=o.substring(o.lastIndexOf(".")+1);return"".concat(s," (").concat(u,")")}return s})),re(this,"sendUpdate",$e(()=>{var{onChange:l}=this.props,{column:a,value:s,isValueShown:o}=this.state;l({column:a,isValueShown:o,value:s??void 0})},la)),this.handleColumnChange=this.handleColumnChange.bind(this),this.handleSettingsCancel=this.handleSettingsCancel.bind(this),this.handleSettingsClick=this.handleSettingsClick.bind(this),this.handleSettingsSave=this.handleSettingsSave.bind(this),this.handleBackgroundClick=this.handleBackgroundClick.bind(this),this.handleDropdownKeyPress=this.handleDropdownKeyPress.bind(this),this.handleValueChange=this.handleValueChange.bind(this),this.dropdownRef=H.createRef();var{column:t,isValueShown:n,value:r}=e;this.state={column:t,id:te(),selectedColumn:t,disableCancel:!n,isValueShown:n,value:r}}componentDidUpdate(e,t){var{source:n,values:r,isLoaded:l}=this.props,{column:a,value:s,isValueShown:o}=this.state;l&&(n!==e.source&&this.sourceUpdated(),r!==e.values&&s!==""&&!r.includes(s)&&this.resetValue(),o!==t.isValueShown&&o&&this.focusInput(),(a!==t.column||s!==t.value||o!==t.isValueShown)&&this.sendUpdate())}componentWillUnmount(){this.sendUpdate.flush()}handleColumnChange(e){var{value:t}=e.target;if(nt.debug2("handleColumnChange",t),t!=null&&parseInt(t,10)<0){this.setState({selectedColumn:null});return}var{columns:n,source:r}=this.props,l=this.getCompatibleColumns(r,n);this.setState({selectedColumn:l[parseInt(t,10)]})}handleDropdownKeyPress(e){e.key==="Enter"&&(e.preventDefault(),e.stopPropagation(),nt.debug2("handleDropdownKeyPress"),this.sendUpdate(),this.sendUpdate.flush())}handleValueChange(e){var{value:t}=e.target,n=parseInt(t,10),r="",{values:l}=this.props;n>=0&&n<l.length?r=l[n]:nt.debug2("Selected default item"),nt.debug2("handleValueChange",r),this.setState({value:r})}handleSettingsCancel(){this.setState(e=>{var{column:t}=e;return{selectedColumn:t,isValueShown:!0}})}handleSettingsSave(){this.setState(e=>{var{column:t,selectedColumn:n,value:r}=e;return{column:n,value:t===n?r:"",isValueShown:!0,disableCancel:!1}})}handleSettingsClick(e){e.stopPropagation(),this.showSettings()}handleBackgroundClick(e){e.target!==this.dropdownRef.current&&this.focusInput()}sourceUpdated(){this.setState({column:null,selectedColumn:null,isValueShown:!1,disableCancel:!0,value:""})}showSettings(){var{column:e}=this.state;this.setState({selectedColumn:e,isValueShown:!1})}focusInput(){var e;(e=this.dropdownRef.current)===null||e===void 0||e.focus()}resetValue(){this.setState({value:""})}clearFilter(){this.resetValue()}setFilterState(e){var{name:t,type:n,value:r,isValueShown:l}=e,a=t!=null&&n!=null?{name:t,type:n}:null;this.setState(s=>{var{value:o,isValueShown:u}=s;return{column:a,value:r??o,isValueShown:l??u}})}render(){var e,{columns:t,disableLinking:n,isLinkerActive:r,isLoaded:l,source:a,onColumnSelected:s,onSourceMouseEnter:o,onSourceMouseLeave:u,values:h,settingsError:c}=this.props,{column:p,disableCancel:v,id:m,isValueShown:g,selectedColumn:f,value:C}=this.state,b=a===null,P=this.getCompatibleColumns(a,t),S=a!=null,E=(e=a?.columnName)!==null&&e!==void 0?e:fe.SOURCE_BUTTON_PLACEHOLDER,L=p!=null?"".concat(p.name," Filter"):null,[O,T]=this.getColumnOptions(P,f),F=this.getValueOptions(h),k=this.getSelectedOptionIndex(h,C),j=!S||f==null,B=g&&!r,$="source-column-btn-".concat(m),q="filter-column-select-".concat(m);return d.jsxs(Ut,{className:"dropdown-filter fill-parent-absolute",isFlipped:B,children:[d.jsx("div",{className:"dropdown-filter-settings-card",children:d.jsxs("div",{className:"dropdown-filter-card-content",children:[d.jsxs("div",{className:"dropdown-filter-settings-grid",children:[d.jsx("label",{htmlFor:$,children:"Source Column"}),d.jsx(Zn,{id:$,isLinked:S,onClick:s,onMouseEnter:o,onMouseLeave:u,className:fe.SOURCE_BUTTON_CLASS_NAME,disabled:n,children:E}),d.jsx("div",{className:"text-muted small",children:"Select a source column for the list by linking to a table."}),d.jsx("label",{htmlFor:q,children:"Filter Column"}),d.jsx("select",{id:q,value:T,className:"custom-select",onChange:this.handleColumnChange,disabled:b,children:O}),d.jsx("div",{className:"text-muted small",children:"Dropdown filter control will apply its filter to all columns matching this name in this dashboard."})]}),c&&d.jsx("div",{className:"error-message text-center",children:c}),S&&d.jsxs("div",{className:"dropdown-filter-settings-buttons",children:[d.jsx(N,{kind:"secondary",type:"button",onClick:this.handleSettingsCancel,disabled:v||g||r,tooltip:r?"Cancel disabled while linker open":void 0,children:"Cancel"}),d.jsx(N,{kind:"primary",type:"button",className:"ml-2",onClick:this.handleSettingsSave,disabled:j||g||r,tooltip:r?"Save disabled while linker open":void 0,children:"Save"})]})]})}),d.jsx("div",{className:"dropdown-filter-value-card",onClick:this.handleBackgroundClick,"data-testid":"dropdown-filter-value-background",children:l&&d.jsxs(d.Fragment,{children:[d.jsx("div",{className:"dropdown-filter-column",children:d.jsx("div",{className:"dropdown-filter-column-title",children:L})}),d.jsxs("div",{className:"dropdown-filter-card-content",children:[d.jsx("div",{className:"dropdown-filter-value-input d-flex flex-column justify-content-center",children:d.jsx("select",{className:"custom-select",value:k,ref:this.dropdownRef,onChange:this.handleValueChange,onKeyPress:this.handleDropdownKeyPress,title:"Select Value",children:F})}),c&&d.jsx("div",{className:"error-message mt-3 text-center",children:c})]}),d.jsx("div",{className:"dropdown-filter-menu",children:d.jsx(N,{kind:"ghost",className:"m-2 px-2",onClick:this.handleSettingsClick,icon:d.jsx(ee,{icon:$t,transform:"grow-4"}),tooltip:"Dropdown Filter Settings"})})]})})]})}}re(fe,"defaultProps",{column:null,disableLinking:!1,isLinkerActive:!1,isLoaded:!1,isValueShown:!1,settingsError:null,source:null,value:"",values:[],onColumnSelected:()=>{},onSourceMouseEnter:()=>{},onSourceMouseLeave:()=>{}});re(fe,"PLACEHOLDER","Select a value...");re(fe,"SOURCE_BUTTON_CLASS_NAME","btn-dropdown-filter-selector");re(fe,"SOURCE_BUTTON_PLACEHOLDER","Select a column");const on=fe;function K(i,e,t){return e=sa(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function sa(i){var e=oa(i,"string");return typeof e=="symbol"?e:String(e)}function oa(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var D=W.module("DropdownFilterPanel"),da=250,ua=(i,e)=>{var{localDashboardId:t}=e,n=w.getIdFromPanel({props:e}),r=It(i,t),l=ct(i,t),a=xt(i),s=jt(i,t),o=a===ce.LINKER&&(s===void 0||s===n),u=a===ce.LINKER&&s!==void 0&&s!==n;return{columns:Wn(i,t),columnSelectionValidator:Rt(i,t),dh:qn(i),isLinkerActive:o,disableLinking:u,settings:At(i),panelTableMap:r,dashboardLinks:l}},ha=Oe(ua,null,null,{forwardRef:!0});class le extends y.Component{constructor(e){super(e),K(this,"dateTimeFormatter",void 0),K(this,"dropdownFilterRef",void 0),K(this,"panelContainer",void 0),K(this,"pending",void 0),K(this,"cleanup",void 0),K(this,"columnFormats",void 0),K(this,"getCachedValues",Me((c,p,v)=>{var{type:m,name:g}=p;return m!==void 0&&Z.isDateType(m)?c.map(f=>this.dateTimeFormatter.format(f)):c.map(f=>f!=null&&m!=null?v.getFormattedString(f,m,g):null)})),K(this,"getCachedPanelLinks",Me((c,p)=>{var v=w.getIdFromPanel(p);return D.debug("getCachedPanelLinks",c,v),c.filter(m=>{var g;return((g=m.end)===null||g===void 0?void 0:g.panelId)===v})})),K(this,"getCachedSource",Me(c=>{D.debug("getCachedSource",c);var p;if(c.length>0){var[v]=c;p=v.start,c.length>1&&D.error("Filter has more that one link",c)}return p})),K(this,"getCachedSourceTable",Me((c,p)=>{var v;if(D.debug("getCachedSourceTable",c,p),p==null)return null;var{panelId:m}=p;return(v=c.get(m))!==null&&v!==void 0?v:null})),K(this,"getCachedSourceColumn",Me((c,p)=>{var v;return D.debug("getCachedSourceColumn",c,p),c==null||p==null?null:(v=c.columns.find(m=>{var{name:g,type:f}=m;return g===p.columnName&&f===p.columnType}))!==null&&v!==void 0?v:null})),this.handleChange=$e(this.handleChange.bind(this),da),this.handleClearAllFilters=this.handleClearAllFilters.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.handleReconnect=this.handleReconnect.bind(this),this.handleColumnSelected=this.handleColumnSelected.bind(this),this.handleSourceFilterChange=this.handleSourceFilterChange.bind(this),this.handleSourceSortChange=this.handleSourceSortChange.bind(this),this.handleSourceSizeChange=this.handleSourceSizeChange.bind(this),this.handleSourceMouseEnter=this.handleSourceMouseEnter.bind(this),this.handleSourceMouseLeave=this.handleSourceMouseLeave.bind(this),this.handleValuesTableUpdate=this.handleValuesTableUpdate.bind(this),this.dropdownFilterRef=H.createRef(),this.panelContainer=H.createRef(),this.pending=new Qn;var{dh:t,panelState:n,settings:r}=e;this.columnFormats=en.getColumnFormats(r),this.dateTimeFormatter=new ei(t,{showTimeZone:!1,showTSeparator:!0,defaultDateTimeFormatString:"yyyy-MM-dd HH:mm:ss.SSSSSSSSS"});var{value:l="",isValueShown:a=!1,name:s,type:o,timestamp:u}=n??{},h=s!=null&&o!=null?{name:s,type:o}:void 0;this.state={column:h,formatter:new tn(t,this.columnFormats),valuesTable:void 0,valuesColumn:void 0,sourceSize:0,value:l,timestamp:u,values:[],isValueShown:a,wasFlipped:!1,skipUpdate:!1,panelState:n,isDisconnected:!1,isLoading:!1,isLoaded:!1,error:null}}componentDidMount(){this.updateValuesTable();var{dashboardLinks:e,panelTableMap:t}=this.props,{column:n,value:r,timestamp:l}=this.state,a=this.getSourceTable(t,e);if(a!==null&&this.startListeningToSource(a),n!=null){var{name:s,type:o}=n;this.sendUpdate(s,o,r,l)}}componentDidUpdate(e,t){var{dashboardLinks:n,panelTableMap:r,settings:l}=this.props,{valuesTable:a}=this.state,s=this.getSource(n),o=this.getSourceTable(r,n),u=this.getSource(e.dashboardLinks),h=this.getSourceTable(e.panelTableMap,e.dashboardLinks);l!==e.settings&&l!==void 0&&this.updateFormatterSettings(l),a!==t.valuesTable&&t.valuesTable!=null&&(D.debug("Table in state modified, closing the old table."),t.valuesTable.close()),(o!==h||s!==u)&&this.updateValuesTable(),o!==h&&(h!==null&&this.stopListeningToSource(h),o!==null&&this.startListeningToSource(o))}componentWillUnmount(){var{dashboardLinks:e,panelTableMap:t}=this.props,{valuesTable:n}=this.state,r=this.getSourceTable(t,e);this.pending.cancel(),r!==null&&this.stopListeningToSource(r),this.cleanup&&this.cleanup(),n?.close()}getCoordinateForColumn(){var e;if(this.panelContainer.current==null)return null;var t=this.panelContainer.current.querySelector(".".concat(on.SOURCE_BUTTON_CLASS_NAME)),n=(e=t?.getBoundingClientRect())!==null&&e!==void 0?e:null;if(n==null||n.width<=0||n.height<=0)return null;var r=n.left+n.width/2,l=n.bottom;return[r,l]}getSettingsErrorMessage(){var{sourceSize:e}=this.state;if(e>le.MAX_TABLE_SIZE)return"Table too large, must have fewer than ".concat(le.MAX_TABLE_SIZE," options.")}getPanelErrorMessage(){var{error:e}=this.state;return e!=null?"".concat(e):void 0}getSource(e){var t=this.getCachedPanelLinks(e,this);return this.getCachedSource(t)}getSourceTable(e,t){var n=this.getSource(t);return this.getCachedSourceTable(e,n)}getValuesColumn(e,t){var n=this.getSource(t);return this.getCachedSourceColumn(e,n)}startListeningToSource(e){var{dh:t}=this.props;D.debug("startListeningToSource"),e.addEventListener(t.Table.EVENT_FILTERCHANGED,this.handleSourceFilterChange),e.addEventListener(t.Table.EVENT_SORTCHANGED,this.handleSourceSortChange),e.addEventListener(t.Table.EVENT_SIZECHANGED,this.handleSourceSizeChange),e.addEventListener(t.Table.EVENT_DISCONNECT,this.handleDisconnect),e.addEventListener(t.Table.EVENT_RECONNECT,this.handleReconnect)}stopListeningToSource(e){var{dh:t}=this.props;D.debug("stopListeningToSource"),e.removeEventListener(t.Table.EVENT_FILTERCHANGED,this.handleSourceFilterChange),e.removeEventListener(t.Table.EVENT_SORTCHANGED,this.handleSourceSortChange),e.removeEventListener(t.Table.EVENT_SIZECHANGED,this.handleSourceSizeChange),e.removeEventListener(t.Table.EVENT_DISCONNECT,this.handleDisconnect),e.removeEventListener(t.Table.EVENT_RECONNECT,this.handleReconnect)}handleChange(e){var{column:t,isValueShown:n=!1,value:r}=e,{name:l=void 0,type:a=void 0}=t??{},s=!0,o=Date.now();this.setState(u=>{var h,c,{panelState:p,timestamp:v,wasFlipped:m,skipUpdate:g}=u,f=p!=null&&n!==p.isValueShown&&l===p.name&&a===p.type&&r===p.value;return s=(h=!g&&n&&(!f||!m))!==null&&h!==void 0?h:!1,s||(o=v),{panelState:{isValueShown:n,name:l,type:a,value:r,timestamp:(c=o)!==null&&c!==void 0?c:void 0},timestamp:o,wasFlipped:f,skipUpdate:!1}},()=>{s&&this.sendUpdate(l??null,a,r,o)})}handleDisconnect(){this.setState({error:new Error("Table disconnected"),isDisconnected:!0,isLoading:!1})}handleReconnect(){this.setState({isDisconnected:!1,error:null})}handleSourceFilterChange(){this.applySourceFilters()}handleSourceSortChange(){this.applySourceSorts()}handleSourceSizeChange(e){var{detail:t}=e;this.setState({sourceSize:t})}handleColumnSelected(){D.debug("handleColumnSelected");var{glEventHub:e}=this.props;e.emit(A.COLUMN_SELECTED,this,le.SOURCE_COLUMN)}handleClearAllFilters(){var e,t;(e=this.dropdownFilterRef)===null||e===void 0||(t=e.current)===null||t===void 0||t.clearFilter()}setPanelState(e){var t,n,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,{dashboardLinks:l}=this.props;if(this.getSource(l)==null){D.debug("Ignore state update for unlinked filter",e);return}this.setState({skipUpdate:!r}),(t=this.dropdownFilterRef)===null||t===void 0||(n=t.current)===null||n===void 0||n.setFilterState(e)}sendUpdate(e,t,n,r){var l,{dashboardLinks:a,glEventHub:s}=this.props,o=(l=this.getSource(a))===null||l===void 0?void 0:l.panelId,u=o===null?[]:[o];D.debug("sendUpdate",{name:e,type:t,value:n,timestamp:r,excludePanelIds:u}),s.emit(A.FILTERS_CHANGED,this,{name:e,type:t,value:n??"=null",timestamp:r,excludePanelIds:u})}updateValuesTable(){var{dashboardLinks:e,panelTableMap:t}=this.props,n=this.getSource(e),r=this.getSourceTable(t,e);if(D.debug("updateValuesTable",n,r),this.setState({values:[],valuesTable:void 0,error:null}),n==null){D.debug("Filter unlinked."),this.setState({isLoading:!1,isLoaded:!0,isValueShown:!1,sourceSize:0});return}this.setState({isLoading:!0}),r!=null&&(this.setState({isLoaded:!1,sourceSize:r.size}),this.pending.add(r.copy(),l=>l.close()).then(l=>{this.updateViewportListener(l),this.setState({valuesTable:l})}).catch(l=>{ot.isCanceled(l)||(D.error(l),this.setState({isLoading:!1,error:l}))}))}applySourceSorts(){var{dashboardLinks:e,panelTableMap:t}=this.props,{valuesTable:n}=this.state,r=this.getSourceTable(t,e);if(D.debug("applySourceSorts",r?.sort),n==null||r==null){D.debug("Table not initialized");return}var l=[...r.sort];n.applySort(l),this.setViewport(n)}applySourceFilters(){var{dashboardLinks:e,panelTableMap:t}=this.props,{valuesTable:n}=this.state,r=this.getSourceTable(t,e);if(D.debug("applySourceFilters",r?.filter),n==null||r==null){D.debug("Table not initialized");return}var l=[...r.filter];n.applyFilter(l),this.setViewport(n)}updateViewportListener(e){var{dh:t}=this.props;if(D.debug("updateViewportListener",e?.size),this.cleanup&&this.cleanup(),e==null){this.cleanup=void 0;return}this.cleanup=e.addEventListener(t.Table.EVENT_UPDATED,this.handleValuesTableUpdate),this.setViewport(e)}setViewport(e){var{dashboardLinks:t}=this.props,n=this.getValuesColumn(e,t);if(!n){D.error("values column is null");return}e.setViewport(0,le.MAX_TABLE_SIZE-1,[n])}updateFormatterSettings(e){var{dh:t}=this.props,n=en.getColumnFormats(e);Ui(this.columnFormats,n)||(this.columnFormats=n,this.setState({formatter:new tn(t,n)}))}handleValuesTableUpdate(e){var{detail:t}=e,{rows:n}=t,{dashboardLinks:r}=this.props,{valuesTable:l}=this.state;if(!l){D.error("valuesTable is null");return}var a=this.getValuesColumn(l,r);if(!a){D.error("Values column not found");return}var s=n.map(o=>o.get(a));this.setState({values:s,isLoading:!1,isLoaded:!0,valuesColumn:a})}handleSourceMouseEnter(){var{columnSelectionValidator:e}=this.props;e&&e(this,le.SOURCE_COLUMN)}handleSourceMouseLeave(){var{columnSelectionValidator:e}=this.props;e&&e(this,void 0)}render(){var{columns:e,dashboardLinks:t,disableLinking:n,glContainer:r,glEventHub:l,isLinkerActive:a}=this.props,{column:s,formatter:o,isDisconnected:u,isValueShown:h,value:c,values:p,valuesColumn:v,isLoading:m,isLoaded:g}=this.state,f=this.getSource(t),C=this.getSettingsErrorMessage(),b=this.getPanelErrorMessage(),P=g&&v!=null?this.getCachedValues(p,v,o):[];return d.jsx(mt,{errorMessage:b,isLoading:m,isLoaded:g,isDisconnected:u,className:"iris-dropdown-filter-panel",componentPanel:this,glContainer:r,glEventHub:l,onClearAllFilters:this.handleClearAllFilters,widgetName:"Dropdown Filter",widgetType:"DropdownFilter",children:d.jsx("div",{ref:this.panelContainer,className:"dropdown-filter-container h-100 w-100 container",children:d.jsx(on,{ref:this.dropdownFilterRef,column:s,columns:e,isValueShown:h,isLinkerActive:a,disableLinking:n,isLoaded:g,settingsError:C,source:f,value:c,values:P,onChange:this.handleChange,onColumnSelected:this.handleColumnSelected,onSourceMouseEnter:this.handleSourceMouseEnter,onSourceMouseLeave:this.handleSourceMouseLeave})})})}}K(le,"displayName","DropdownFilterPanel");K(le,"COMPONENT","DropdownFilterPanel");K(le,"MAX_TABLE_SIZE",256);K(le,"SOURCE_COLUMN",Object.freeze({name:"FilterSource",type:null}));var ca=ha(le);const Te=ca;function dn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function it(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?dn(Object(t),!0).forEach(function(n){qe(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):dn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function qe(i,e,t){return e=pa(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function pa(i){var e=va(i,"string");return typeof e=="symbol"?e:String(e)}function va(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var I=W.module("FilterSetManager"),fa="Enter name...",un="No Available Filter Sets";class dt extends y.Component{static animateScreenFlash(){var e,t=document.createElement("div");t.classList.add("screen-flash-overlay"),t.addEventListener("animationend",()=>{t.remove()}),(e=document.querySelector("body"))===null||e===void 0||e.appendChild(t)}constructor(e){super(e),qe(this,"renameInputRef",H.createRef()),qe(this,"dropdownRef",H.createRef()),qe(this,"editDropdownRef",H.createRef()),qe(this,"isRenamingExistingSet",x((t,n)=>n!==void 0&&t.some(r=>{var{id:l}=r;return l===n.id}))),this.handleSettingsCancel=this.handleSettingsCancel.bind(this),this.handleSettingsClick=this.handleSettingsClick.bind(this),this.handleSettingsSave=this.handleSettingsSave.bind(this),this.handleBackgroundClick=this.handleBackgroundClick.bind(this),this.handleEditDropdownChange=this.handleEditDropdownChange.bind(this),this.handleFilterChange=this.handleFilterChange.bind(this),this.handleFilterApply=this.handleFilterApply.bind(this),this.handleCaptureNewSet=this.handleCaptureNewSet.bind(this),this.handleNameInputChange=this.handleNameInputChange.bind(this),this.handleNameInputKeyPress=this.handleNameInputKeyPress.bind(this),this.handleRenameConfirm=this.handleRenameConfirm.bind(this),this.handleRenameCancel=this.handleRenameCancel.bind(this),this.handleRestoreFullStateChange=this.handleRestoreFullStateChange.bind(this),this.handleSetDelete=this.handleSetDelete.bind(this),this.handleSetEdit=this.handleSetEdit.bind(this),this.handleSetUpdate=this.handleSetUpdate.bind(this),this.state={editId:void 0,renameSet:void 0,nameInputValue:"",nameInputError:void 0,modifiedFilterSets:[],restoreFullState:!1}}componentDidMount(){var{isValueShown:e}=this.props;e?this.updateSelectedId():this.initSettingsScreen()}componentDidUpdate(e,t){var{isValueShown:n,filterSets:r}=this.props,{modifiedFilterSets:l}=this.state;if(e.isValueShown&&!n&&this.initSettingsScreen(),this.isNameInputScreen()&&!this.isNameInputScreen(t)&&this.focusRenameInput(),r!==e.filterSets)if(!n&&r.length>0&&e.filterSets.length===0&&l.length===0){var{onChange:a}=this.props;a({isValueShown:!0,selectedId:r[0].id})}else this.updateSelectedId()}initSettingsScreen(){var{filterSets:e,selectedId:t}=this.props;I.debug("initSettingsScreen",e,t),this.setState({modifiedFilterSets:[...e],editId:t})}updateSelectedId(){var{isValueShown:e,filterSets:t,selectedId:n,onChange:r}=this.props;if(I.debug("updateSelectedId",t,n),!!e&&!t.some(a=>{var{id:s}=a;return s===n})){var l=t.length===0;r({isValueShown:!l,selectedId:l?void 0:t[0].id})}}handleEditDropdownChange(e){var{value:t}=e.target;this.setState({editId:t})}handleFilterChange(e){var{value:t}=e.target,{isValueShown:n,onChange:r}=this.props;this.applyFilterSet(t),r({isValueShown:n,selectedId:t})}handleFilterApply(){var{selectedId:e}=this.props;this.applyFilterSet(e)}handleSettingsCancel(){var{onChange:e,selectedId:t,filterSets:n}=this.props;this.setState({modifiedFilterSets:[]}),n.length>0&&e({isValueShown:!0,selectedId:t})}handleSettingsSave(){var{onChange:e,onUpdateSets:t}=this.props,{modifiedFilterSets:n,editId:r}=this.state;this.setState({modifiedFilterSets:[]}),I.debug("Update sets",n,r),t(n),n.length>0&&e({isValueShown:!0,selectedId:r})}handleCaptureNewSet(){var{getFilterState:e}=this.props;dt.animateScreenFlash();var t=te(),n=e(),r={id:t,title:"",panels:n};I.debug("handleSetCreate",r),this.setState({nameInputValue:"",nameInputError:void 0,renameSet:r})}handleRenameCancel(){this.setState({renameSet:void 0})}handleRestoreFullStateChange(e){this.setState({restoreFullState:e.target.value==="true"})}getNameError(e){var t,{renameSet:n,modifiedFilterSets:r}=this.state,l=(t=e?.trim())!==null&&t!==void 0?t:"";if(l.length===0)return I.debug("Name cannot be empty",l),"Name cannot be empty";if(n!==void 0&&r.some(a=>{var{title:s,id:o}=a;return s===l&&o!==n.id}))return I.debug("Set with this name already exists",l),"Set with this name already exists"}handleRenameConfirm(){var e,{nameInputValue:t,renameSet:n,modifiedFilterSets:r,restoreFullState:l}=this.state;if(n===void 0){I.error("Renamed set undefined.");return}var a=this.getNameError(t);if(I.debug("handleRenameConfirm",t,a),a!==void 0){this.setState({nameInputError:a});return}var s=(e=t?.trim())!==null&&e!==void 0?e:"",o=it(it({},n),{},{title:s,restoreFullState:l}),u=r.findIndex(c=>{var{id:p}=c;return p===n.id}),h=[...r];u>=0?(h[u]=o,I.debug("Renamed existing set",h)):(h.push(o),I.debug("Added new set to modified sets",h)),this.setState({editId:o.id,modifiedFilterSets:h,renameSet:void 0})}handleSetDelete(){this.setState(e=>{var{editId:t,modifiedFilterSets:n}=e,r=n.findIndex(o=>{var{id:u}=o;return u===t});if(r<0)return I.error("Unable to find selected filterSet index",n,t),null;var l=n.filter(o=>{var{id:u}=o;return u!==t}),a=Math.max(0,Math.min(l.length-1,r-1)),s=l.length>0?l[a].id:void 0;return I.debug("Deleted selected set",t,n,l),I.debug("New selection",a,s),{modifiedFilterSets:l,editId:s}})}handleSetUpdate(){var{getFilterState:e}=this.props;dt.animateScreenFlash();var t=e();this.setState(n=>{var{modifiedFilterSets:r,editId:l}=n;if(l===void 0)return I.error("Filter for update not selected."),null;var a=[...r],s=a.findIndex(o=>{var{id:u}=o;return u===l});return s<0?(I.error("Selected set for update not found."),null):(a[s]=it(it({},a[s]),{},{panels:t}),I.debug("Update set",a,t),{modifiedFilterSets:a})})}handleSetEdit(){this.setState(e=>{var{editId:t,modifiedFilterSets:n}=e,r=n.find(s=>{var{id:o}=s;return o===t});if(r===void 0)return I.error("Could not find selected set",t,n),null;var{title:l,restoreFullState:a=!1}=r;return{nameInputValue:l,nameInputError:void 0,renameSet:r,restoreFullState:a}})}handleSettingsClick(e){e.stopPropagation();var{onChange:t,selectedId:n}=this.props;t({isValueShown:!1,selectedId:n})}handleBackgroundClick(e){I.debug("handleBackgroundClick"),e.target!==this.dropdownRef.current&&this.focusInput()}handleNameInputChange(e){var{value:t}=e.target,n=this.getNameError(t);this.setState({nameInputValue:t,nameInputError:n})}handleNameInputKeyPress(e){var{key:t}=e;t==="Enter"&&(e.preventDefault(),this.handleRenameConfirm())}isNameInputScreen(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.state,{renameSet:t}=e;return t!==void 0}applyFilterSet(e){var{onApply:t,filterSets:n}=this.props;if(e===void 0){I.debug("No filter selected");return}var r=n.find(l=>{var{id:a}=l;return a===e});if(r===void 0){I.debug("Selected id not found in filterSets",e,n);return}I.debug("Apply filterSet",r),t(r)}focusInput(){var e;(e=this.dropdownRef.current)===null||e===void 0||e.focus()}focusRenameInput(){var e;(e=this.renameInputRef.current)===null||e===void 0||e.focus()}render(){var{nameInputValue:e,nameInputError:t,editId:n,renameSet:r,modifiedFilterSets:l,restoreFullState:a}=this.state,{isValueShown:s,filterSets:o,selectedId:u}=this.props,h=this.isNameInputScreen(),c=this.isRenamingExistingSet(l,r),p=l.length===0,v=!h&&p&&o.length===0,m=!h&&!v,g=d.jsxs("div",{className:"fa-layers mr-3",children:[d.jsx(ee,{icon:rn,mask:an,transform:"shrink-1 down-5 right-7"}),d.jsx(ee,{icon:kr,className:"text-primary",transform:"shrink-6 down-5 right-7"})]}),f=d.jsxs("div",{className:"fa-layers",children:[d.jsx(ee,{icon:rn,mask:an,transform:"shrink-1 down-5 right-7"}),d.jsx(ee,{icon:Ir,transform:"shrink-1 down-5 right-7"})]});return d.jsx("div",{className:"filter-set-manager fill-parent-absolute",children:d.jsxs(Ut,{className:"w-100 h-100",isFlipped:s,children:[d.jsx("div",{className:"filter-set-manager-settings-card fill-parent-absolute",children:d.jsxs("div",{className:"filter-set-manager-card-content",children:[v&&d.jsxs("div",{children:[d.jsx(N,{kind:"ghost",className:"btn btn-link no-underline",onClick:this.handleCaptureNewSet,icon:g,children:"Capture filter set"}),d.jsx("div",{className:"py-3 text-muted small",children:"Takes a snapshot of the currently applied filters on all panels, allowing you to restore saved filter sets later."})]}),h&&d.jsxs("div",{className:"d-flex flex-column justify-content-center","data-testid":"edit-filter-set-container",children:[d.jsxs("div",{className:"form-group",children:[d.jsx("label",{children:c?"Edit set":"Name captured set"}),d.jsxs("div",{className:"name-input-container",children:[d.jsx("input",{type:"text",className:"input-set-name form-control",placeholder:fa,value:e,ref:this.renameInputRef,onChange:this.handleNameInputChange,onKeyPress:this.handleNameInputKeyPress,spellCheck:"false"}),d.jsx(N,{"data-testid":"rename-confirm-button",kind:"ghost",className:"btn btn-link no-underline pt-2 pb-2",onClick:this.handleRenameConfirm,tooltip:"Save","test-id":"button-save",icon:Nr}),d.jsx(N,{"data-testid":"rename-cancel-button",kind:"ghost",className:"btn btn-link no-underline pt-2 pb-2",onClick:this.handleRenameCancel,tooltip:"Cancel",icon:Dr})]}),t!==void 0&&d.jsx("div",{className:"error-message",children:t})]}),d.jsx("div",{className:"form-group",children:d.jsxs(cr,{onChange:this.handleRestoreFullStateChange,value:"".concat(a),children:[d.jsx(nn,{value:"false",children:"Restore only filters"}),d.jsx(nn,{value:"true",children:"Restore full table state"})]})})]}),m&&d.jsxs("div",{className:"filter-set-manager-settings-grid-1",children:[d.jsxs("div",{className:"form-group",children:[d.jsx("label",{children:"Edit filter sets"}),d.jsxs("div",{className:"filter-select-container",children:[d.jsxs("select",{"data-testid":"settings-card-filter-select",ref:this.editDropdownRef,value:n??"-1",className:"custom-select filter-value-select",onChange:this.handleEditDropdownChange,disabled:p,children:[p&&d.jsx("option",{value:"-1",disabled:!0,children:un}),l.map(C=>{var{id:b,title:P}=C;return d.jsx("option",{value:b,children:P},b)})]}),d.jsx(N,{kind:"ghost",onClick:this.handleSetUpdate,disabled:p,icon:f,tooltip:"Update"}),d.jsx(N,{kind:"ghost",onClick:this.handleSetEdit,disabled:p,icon:ii,tooltip:"Edit"}),d.jsx(N,{kind:"ghost",onClick:this.handleSetDelete,disabled:p,icon:Gt,tooltip:"Delete"})]})]}),d.jsx("div",{children:d.jsx(N,{kind:"ghost",className:"btn btn-link no-underline",onClick:this.handleCaptureNewSet,icon:g,children:"Capture new filter set"})}),d.jsxs("div",{className:"py-3 text-right",children:[d.jsx(N,{kind:"secondary",onClick:this.handleSettingsCancel,children:"Cancel"})," ",d.jsx(N,{kind:"primary",onClick:this.handleSettingsSave,children:"Save"})]})]})]})},"front"),d.jsxs("div",{className:"filter-set-manager-value-card fill-parent-absolute",onClick:this.handleBackgroundClick,children:[d.jsx("div",{className:"filter-set-manager-column",children:d.jsx("div",{className:"filter-set-manager-column-title",children:"Filter sets"})}),d.jsx("div",{className:"filter-set-manager-card-content",children:d.jsx("div",{className:"filter-set-manager-value-input",children:d.jsxs("div",{className:"filter-select-container",children:[d.jsxs("select",{"data-testid":"value-card-filter-select",ref:this.dropdownRef,value:u,className:"custom-select filter-value-select",onChange:this.handleFilterChange,children:[o.length===0&&d.jsx("option",{value:"-1",disabled:!0,children:un}),o.map(C=>{var{id:b,title:P}=C;return d.jsx("option",{value:b,children:P},b)})]}),d.jsx(N,{"data-testid":"filter-apply-button",kind:"ghost",onClick:this.handleFilterApply,icon:ri,tooltip:"Apply Filter Set"})]})})}),d.jsx("div",{className:"filter-set-manager-menu",children:d.jsx(N,{kind:"ghost",className:"btn btn-link btn-link-icon m-2 px-2",onClick:this.handleSettingsClick,tooltip:"Settings",icon:d.jsx(ee,{icon:$t,transform:"grow-4"})})})]},"back")]})})}}const ma=dt;function Bt(i){var e,t,n,r,l,{model:a,widgetName:s,glContainer:o,description:u}=i,h=((e=a?.rowCount)!==null&&e!==void 0?e:0)-((t=a?.pendingRowCount)!==null&&t!==void 0?t:0)-((n=a?.floatingBottomRowCount)!==null&&n!==void 0?n:0)-((r=a?.floatingTopRowCount)!==null&&r!==void 0?r:0),c=a?.displayString(h,"long"),p=(l=a?.columnCount)!==null&&l!==void 0?l:0,v=a?.displayString(p,"long");return d.jsxs(ft,{widgetType:"Table",widgetName:s,glContainer:o,description:u,children:[d.jsx("hr",{className:"tab-tooltip-divider"}),d.jsx("span",{children:"Number of Columns"}),d.jsx("span",{className:"tab-tooltip-statistic-value",children:v}),d.jsx("span",{children:"Number of Rows"}),d.jsx("span",{className:"tab-tooltip-statistic-value",children:c})]})}Bt.propTypes={glContainer:Hn.Container.isRequired,widgetName:M.string.isRequired,description:M.string};Bt.defaultProps={description:null};function ui(i){if(i==null)return!1;var e=i;return typeof e.table=="string"}function hi(i){if(i==null)return!1;var e=i;return typeof e.name=="string"}function hn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function Se(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?hn(Object(t),!0).forEach(function(n){R(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):hn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function R(i,e,t){return e=ga(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function ga(i){var e=Ca(i,"string");return typeof e=="symbol"?e:String(e)}function Ca(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var ue=W.module("IrisGridPanel"),Sa=500,ba={IrisGrid:ti,IrisGridTableModel:vr,ContextMenuRoot:fr};function cn(i){if(i==null)throw new Error("No metadata provided");if(hi(i))return i.name;if(ui(i))return i.table;throw new Error("Unable to determine table name from metadata: ".concat(i))}class je extends y.PureComponent{constructor(e){super(e),R(this,"irisGrid",void 0),R(this,"pluginRef",void 0),R(this,"modelPromise",void 0),R(this,"irisGridState",void 0),R(this,"gridState",void 0),R(this,"pluginState",void 0),R(this,"irisGridUtils",void 0),R(this,"getGridInputFilters",x((n,r)=>Y.getInputFiltersForColumns(n,r.filter(l=>{var{value:a,excludePanelIds:s}=l,o=w.getIdFromPanel(this);return a!=null&&(s==null||o!=null&&!s.includes(o))})))),R(this,"getAlwaysFetchColumns",x((n,r)=>{for(var l=w.getIdFromPanel(this),a=new Set(r),s=0;s<n.length;s+=1){var{start:o}=n[s];o!=null&&o.panelId===l&&a.add(o.columnName)}return[...a]})),R(this,"getPluginContent",x((n,r,l,a,s)=>{if(!r||!wt(r)||n==null||r.table==null)return null;var o={panel:this,onFilter:this.handlePluginFilter,onFetchColumns:this.handlePluginFetchColumns,user:l,workspace:a,components:ba};return d.jsx("div",{className:"iris-grid-plugin",children:d.jsx(n,Se({ref:this.pluginRef,filter:this.handlePluginFilter,fetchColumns:this.handlePluginFetchColumns,model:r,table:r.table,onStateChange:this.handlePluginStateChange,pluginState:s},o))})})),R(this,"getDehydratedIrisGridPanelState",x((n,r,l,a,s)=>Y.dehydrateIrisGridPanelState(n,{isSelectingPartition:r,partition:l,partitionColumn:a,advancedSettings:s}))),R(this,"getDehydratedIrisGridState",x((n,r,l,a,s,o,u,h,c,p,v,m,g,f,C,b,P,S,E,L,O)=>(_(this.irisGridUtils),this.irisGridUtils.dehydrateIrisGridState(n,{advancedFilters:l,aggregationSettings:P,customColumnFormatMap:a,isFilterBarShown:s,metrics:{userColumnWidths:C,userRowHeights:b},quickFilters:o,customColumns:u,reverseType:h,rollupConfig:c,showSearchBar:p,searchValue:v,selectDistinctColumns:m,selectedSearchColumns:g,sorts:r,invertSearchColumns:f,pendingDataMap:S,frozenColumns:E,conditionalFormats:L,columnHeaderGroups:O})))),R(this,"getDehydratedGridState",x((n,r,l,a,s)=>Y.dehydrateGridState(n,{isStuckToBottom:a,isStuckToRight:s,movedColumns:r,movedRows:l}))),R(this,"getCachedPanelState",x((n,r,l,a)=>({irisGridPanelState:n,irisGridState:r,gridState:l,pluginState:a}))),R(this,"savePanelState",$e(()=>{var{irisGridState:n,gridState:r,pluginState:l}=this;_(n);var{onPanelStateUpdate:a}=this.props,{model:s,panelState:o,isSelectingPartition:u,partition:h,partitionColumn:c,advancedSettings:p}=this.state,{advancedFilters:v,aggregationSettings:m,customColumnFormatMap:g,isFilterBarShown:f,quickFilters:C,customColumns:b,reverseType:P,rollupConfig:S,showSearchBar:E,searchValue:L,selectDistinctColumns:O,selectedSearchColumns:T,sorts:F,invertSearchColumns:k,metrics:j,pendingDataMap:B,frozenColumns:$,conditionalFormats:q,columnHeaderGroups:G}=n;_(s),_(j);var{userColumnWidths:we,userRowHeights:Ee}=j;_(r);var{isStuckToBottom:Fe,isStuckToRight:me,movedColumns:ge,movedRows:Le}=r,oe=this.getCachedPanelState(this.getDehydratedIrisGridPanelState(s,u,h,c,p),this.getDehydratedIrisGridState(s,F,v,g,f,C,b,P,S,E,L,O,T,k,we,Ee,m,B,$,q,G),this.getDehydratedGridState(s,ge,Le,Fe,me),l);oe!==o&&(ue.debug("Saving panel state",this,oe),this.setState({panelState:oe}),a?.(oe))},Sa)),this.handleAdvancedSettingsChange=this.handleAdvancedSettingsChange.bind(this),this.handleColumnsChanged=this.handleColumnsChanged.bind(this),this.handleTableChanged=this.handleTableChanged.bind(this),this.handleColumnSelected=this.handleColumnSelected.bind(this),this.handleDataSelected=this.handleDataSelected.bind(this),this.handleError=this.handleError.bind(this),this.handleGridStateChange=this.handleGridStateChange.bind(this),this.handlePluginStateChange=this.handlePluginStateChange.bind(this),this.handlePartitionAppend=this.handlePartitionAppend.bind(this),this.handleCreateChart=this.handleCreateChart.bind(this),this.handleResize=this.handleResize.bind(this),this.handleShow=this.handleShow.bind(this),this.handleTabClicked=this.handleTabClicked.bind(this),this.handleDisconnect=this.handleDisconnect.bind(this),this.handleReconnect=this.handleReconnect.bind(this),this.handleLoadSuccess=this.handleLoadSuccess.bind(this),this.handleLoadError=this.handleLoadError.bind(this),this.isColumnSelectionValid=this.isColumnSelectionValid.bind(this),this.handleContextMenu=this.handleContextMenu.bind(this),this.handlePluginFilter=this.handlePluginFilter.bind(this),this.handlePluginFetchColumns=this.handlePluginFetchColumns.bind(this),this.handleClearAllFilters=this.handleClearAllFilters.bind(this),this.irisGrid=H.createRef(),this.pluginRef=H.createRef();var{panelState:t}=e;this.pluginState=null,this.irisGridUtils=null,this.state={error:null,isDisconnected:!1,isLoaded:!1,isLoading:!0,isModelReady:!1,model:void 0,advancedFilters:new Map,aggregationSettings:{aggregations:[],showOnTop:!1},advancedSettings:new Map(pr.DEFAULTS),customColumns:[],customColumnFormatMap:new Map,isFilterBarShown:!1,quickFilters:new Map,sorts:[],userColumnWidths:new Map,userRowHeights:new Map,reverseType:Z.REVERSE_TYPE.NONE,movedColumns:[],movedRows:[],isSelectingPartition:!1,partition:null,partitionColumn:null,rollupConfig:void 0,showSearchBar:!1,searchValue:"",selectedSearchColumns:void 0,invertSearchColumns:!0,Plugin:void 0,pluginFilters:[],pluginFetchColumns:[],modelQueue:[],pendingDataMap:new Map,frozenColumns:void 0,panelState:t,irisGridStateOverrides:{},gridStateOverrides:{},isStuckToBottom:!1,isStuckToRight:!1,conditionalFormats:[],selectDistinctColumns:[]}}componentDidMount(){this.initModel()}componentDidUpdate(e,t){var{model:n}=this.state;n!==t.model&&(t.model!=null&&(this.stopModelListening(t.model),t.model.close()),n!=null&&this.startModelListening(n))}componentWillUnmount(){this.savePanelState.cancel(),this.modelPromise!=null&&(this.modelPromise.cancel(),this.modelPromise=void 0);var{model:e}=this.state;e&&(this.stopModelListening(e),e.close())}getTableName(){var{metadata:e}=this.props;return cn(e)}initModel(){this.setState({isModelReady:!1,isLoading:!0,error:null});var{makeModel:e}=this.props;this.modelPromise!=null&&this.modelPromise.cancel(),this.modelPromise=ot.makeCancelable(e(),t=>t.close()),this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError)}handleLoadSuccess(e){var t=e,{panelState:n,irisGridStateOverrides:r}=this.state,l=[];if(this.irisGridUtils=new Y(t.dh),n!=null){var{irisGridState:a}=n,{aggregationSettings:s,customColumns:o,selectDistinctColumns:u=[],rollupConfig:h}=Se(Se({},a),r);o.length>0&&l.push(c=>{c.customColumns=o}),h!=null&&h.columns.length>0&&l.push(c=>{c.rollupConfig=Y.getModelRollupConfig(c.originalColumns,h,s)}),u.length>0&&l.push(c=>{c.selectDistinctColumns=u})}this.setState({model:t,modelQueue:l}),this.initModelQueue(t,l)}initModelQueue(e,t){var n=e;if(t.length===0){this.modelInitialized(n);return}var r=t.shift();ue.debug("initModelQueue",r),r&&r(n),this.setState({modelQueue:t})}handleAdvancedSettingsChange(e,t){ue.debug("handleAdvancedSettingsChange",e,t),this.setState(n=>{var{advancedSettings:r}=n;return r.get(e)===t?null:{advancedSettings:new Map(r).set(e,t)}})}handlePluginFilter(e){var t,n,{model:r}=this.state;_(r);var{columns:l,formatter:a}=r,s=(t=(n=this.irisGridUtils)===null||n===void 0?void 0:n.getFiltersFromInputFilters(l,e,a.timeZone))!==null&&t!==void 0?t:[];this.setState({pluginFilters:s})}handlePluginFetchColumns(e){this.setState({pluginFetchColumns:e})}handleContextMenu(e){var t,n,r;return(t=(n=this.pluginRef.current)===null||n===void 0||(r=n.getMenu)===null||r===void 0?void 0:r.call(n,e))!==null&&t!==void 0?t:[]}isColumnSelectionValid(e){var{columnSelectionValidator:t}=this.props;return t&&e?t(this,e):!1}handleGridStateChange(e,t){this.irisGridState=e,this.gridState=t,this.setState({isLoaded:!0,isLoading:!1}),this.savePanelState();var{glEventHub:n,onStateChange:r}=this.props;n.emit(ae.STATE_CHANGED,this),r?.(e,t)}handlePluginStateChange(e){var{irisGridState:t,gridState:n}=this;this.pluginState=e,t!==null&&n!==null&&this.savePanelState()}handleColumnsChanged(e){var{isModelReady:t,model:n,modelQueue:r}=this.state;t?this.sendColumnsChange(e.detail):(_(n),this.initModelQueue(n,r))}handleTableChanged(e){ue.debug("handleTableChanged",e);var{glEventHub:t}=this.props,{detail:n}=e;t.emit(A.TABLE_CHANGED,this,n)}handlePartitionAppend(e,t){var{glEventHub:n}=this.props,{name:r}=e,l=this.getTableName(),a="".concat(l," = ").concat(l,'.where("').concat(r,"=`").concat(t,'`")');n.emit(Hi.SEND_COMMAND,a,!1,!0)}handleCreateChart(e,t){this.savePanelState.flush(),this.setState(()=>null,()=>{var{glEventHub:n,inputFilters:r}=this.props,l=this.getTableName(),{panelState:a}=this.state,s=w.getIdFromPanel(this),o;a&&(o=Y.extractTableSettings(a,r)),n.emit(ae.CREATE_CHART,{metadata:{settings:e,sourcePanelId:s,table:l,tableSettings:o},table:wt(t)?t.table:void 0})})}handleColumnSelected(e){var{glEventHub:t}=this.props;t.emit(ae.COLUMN_SELECTED,this,e)}handleDataSelected(e,t){var{glEventHub:n}=this.props;n.emit(ae.DATA_SELECTED,this,t)}handleResize(){this.updateGrid()}handleShow(){this.updateGrid()}handleTabClicked(){this.irisGrid.current&&this.irisGrid.current.focus()}handleError(e){ue.error(e),this.setState({error:e,isLoading:!1})}handleDisconnect(){this.setState({error:new Error("Table disconnected"),isDisconnected:!0,isLoading:!1})}handleReconnect(){this.setState({isDisconnected:!1,error:null})}handleLoadError(e){ot.isCanceled(e)||this.handleError(e)}modelInitialized(e){var{glEventHub:t,loadPlugin:n}=this.props;if(this.modelPromise=void 0,this.loadPanelState(e),this.setState({isModelReady:!0}),wt(e)){var{table:r}=e,{pluginName:l}=r;if(l!==""&&n!=null&&l!=null){var a=n(l);this.setState({Plugin:a})}t.emit(A.TABLE_CHANGED,this,r)}this.sendColumnsChange(e.columns)}handleClearAllFilters(){var e=this.irisGrid.current,{isDisconnected:t}=this.state;e!=null&&!t&&e.clearAllFilters()}sendColumnsChange(e){ue.debug2("sendColumnsChange",e);var{glEventHub:t}=this.props;t.emit(A.COLUMNS_CHANGED,this,e)}startModelListening(e){e.addEventListener(Ce.EVENT.DISCONNECT,this.handleDisconnect),e.addEventListener(Ce.EVENT.RECONNECT,this.handleReconnect),e.addEventListener(Ce.EVENT.COLUMNS_CHANGED,this.handleColumnsChanged),e.addEventListener(Ce.EVENT.TABLE_CHANGED,this.handleTableChanged)}stopModelListening(e){e.removeEventListener(Ce.EVENT.DISCONNECT,this.handleDisconnect),e.removeEventListener(Ce.EVENT.RECONNECT,this.handleReconnect),e.removeEventListener(Ce.EVENT.COLUMNS_CHANGED,this.handleColumnsChanged),e.removeEventListener(Ce.EVENT.TABLE_CHANGED,this.handleTableChanged)}getCoordinateForColumn(e){var t,n,r,{model:l}=this.state;if(!l)return null;var a=this.irisGrid.current,{gridWrapper:s}=a||{},o=(t=s?.getBoundingClientRect())!==null&&t!==void 0?t:null;if(o==null||o.width<=0||o.height<=0)return null;_(a);var{metrics:u}=a.state;_(u);var{columnHeaderHeight:h,allColumnXs:c,allColumnWidths:p,right:v,columnHeaderMaxDepth:m}=u,g=l.getColumnIndexByName(e);_(g);var f=a.getVisibleColumn(g),C=(n=c.get(f))!==null&&n!==void 0?n:0,b=(r=p.get(f))!==null&&r!==void 0?r:0,P=Math.max(o.left,Math.min(f>v?o.right:o.left+C+b*.5,o.right)),S=o.top+h*m;return[P,S]}setFilterMap(e){var t=this.irisGrid.current;t?.setFilterMap(e)}setAdvancedFilterMap(e){var t=this.irisGrid.current;t?.setAdvancedFilterMap(e)}setFilters(e){var{quickFilters:t,advancedFilters:n}=e;ue.debug("setFilters",t,n);var{model:r,isDisconnected:l}=this.state,a=this.irisGrid.current;if(a==null||l){ue.debug("Ignore setFilters, model disconnected");return}_(r);var{columns:s,formatter:o}=r,u=Y.changeFilterColumnNamesToIndexes(r.columns,t).filter(c=>{var[p]=c;return r.isFilterable(p)}),h=Y.changeFilterColumnNamesToIndexes(r.columns,n).filter(c=>{var[p]=c;return r.isFilterable(p)});_(this.irisGridUtils),a.clearAllFilters(),a.setFilters({quickFilters:this.irisGridUtils.hydrateQuickFilters(s,u,o.timeZone),advancedFilters:this.irisGridUtils.hydrateAdvancedFilters(s,h,o.timeZone)})}setStateOverrides(e){ue.debug("setStateOverrides",e);var{irisGridState:t,gridState:n}=e;this.setState({irisGridStateOverrides:t,gridStateOverrides:n},()=>{this.initModel()})}unsetFilterValue(){}loadPanelState(e){var{panelState:t,irisGridStateOverrides:n,gridStateOverrides:r}=this.state;if(t!=null)try{var{gridState:l,irisGridState:a,irisGridPanelState:s}=t,o=Se({},n),{quickFilters:u,advancedFilters:h}=o;u&&(o.quickFilters=Y.changeFilterColumnNamesToIndexes(e.columns,u)),h&&(o.advancedFilters=Y.changeFilterColumnNamesToIndexes(e.columns,h));var{isSelectingPartition:c,partition:p,partitionColumn:v,advancedSettings:m}=Y.hydrateIrisGridPanelState(e,s);_(this.irisGridUtils);var{advancedFilters:g,customColumns:f,customColumnFormatMap:C,isFilterBarShown:b,quickFilters:P,reverseType:S,rollupConfig:E,aggregationSettings:L,sorts:O,userColumnWidths:T,userRowHeights:F,showSearchBar:k,searchValue:j,selectDistinctColumns:B,selectedSearchColumns:$,invertSearchColumns:q,pendingDataMap:G,frozenColumns:we,conditionalFormats:Ee,columnHeaderGroups:Fe}=this.irisGridUtils.hydrateIrisGridState(e,Se(Se({},a),o)),{isStuckToBottom:me,isStuckToRight:ge,movedColumns:Le,movedRows:oe}=Y.hydrateGridState(e,Se(Se({},l),r),a.customColumns);this.setState({advancedFilters:g,advancedSettings:m,conditionalFormats:Ee,customColumns:f,customColumnFormatMap:C,isFilterBarShown:b,isSelectingPartition:c,movedColumns:Le,movedRows:oe,partition:p,partitionColumn:v,quickFilters:P,reverseType:S,rollupConfig:E,aggregationSettings:L,sorts:O,userColumnWidths:T,userRowHeights:F,showSearchBar:k,searchValue:j,selectDistinctColumns:B,selectedSearchColumns:$,invertSearchColumns:q,pendingDataMap:G,frozenColumns:we,isStuckToBottom:me,isStuckToRight:ge,columnHeaderGroups:Fe})}catch(Q){ue.error("loadPanelState failed to load panelState",t,Q)}}updateGrid(){var e,t,n=(e=(t=this.irisGrid.current)===null||t===void 0?void 0:t.grid)!==null&&e!==void 0?e:null;n&&n.handleResize()}render(){var e,t,{children:n,glContainer:r,glEventHub:l,columnSelectionValidator:a,getDownloadWorker:s,inputFilters:o,links:u,metadata:h,panelState:c,user:p,workspace:v,settings:m,theme:g}=this.props,{advancedFilters:f,aggregationSettings:C,advancedSettings:b,conditionalFormats:P,customColumns:S,customColumnFormatMap:E,error:L,isDisconnected:O,isFilterBarShown:T,isSelectingPartition:F,isStuckToBottom:k,isStuckToRight:j,isLoaded:B,isLoading:$,isModelReady:q,model:G,movedColumns:we,movedRows:Ee,partition:Fe,partitionColumn:me,quickFilters:ge,reverseType:Le,rollupConfig:oe,sorts:Q,userColumnWidths:Pt,userRowHeights:ne,showSearchBar:de,searchValue:pe,selectDistinctColumns:ve,selectedSearchColumns:ke,invertSearchColumns:yt,Plugin:Mi,pluginFilters:Ti,pluginFetchColumns:Oi,pendingDataMap:Ni,frozenColumns:Di,columnHeaderGroups:ki}=this.state,Ii=L!=null?"Unable to open table. ".concat(L):void 0,Xt=cn(h),Yt=(e=G?.description)!==null&&e!==void 0?e:void 0,xi=(t=c?.pluginState)!==null&&t!==void 0?t:null,ji=n??this.getPluginContent(Mi,G,p,v,xi),{permissions:Ri}=p,{canCopy:_i,canDownloadCsv:Ai}=Ri;return d.jsx(mt,{errorMessage:Ii,isDisconnected:O,isLoading:$,isLoaded:B,className:"iris-grid-panel",glContainer:r,glEventHub:l,onClearAllFilters:this.handleClearAllFilters,onResize:this.handleResize,onShow:this.handleShow,onTabFocus:this.handleShow,onTabClicked:this.handleTabClicked,widgetName:Xt,widgetType:"Table",description:Yt,componentPanel:this,renderTabTooltip:()=>d.jsx(Bt,{model:G,widgetName:Xt,glContainer:r,description:Yt}),children:q&&G&&d.jsx(ti,{advancedFilters:f,aggregationSettings:C,advancedSettings:b,alwaysFetchColumns:this.getAlwaysFetchColumns(u,Oi),columnAllowedCursor:"linker",columnNotAllowedCursor:"linker-not-allowed",customColumns:S,customColumnFormatMap:E,columnSelectionValidator:this.isColumnSelectionValid,conditionalFormats:P,inputFilters:this.getGridInputFilters(G.columns,o),applyInputFiltersOnInit:c==null,isFilterBarShown:T,isSelectingColumn:a!=null,isSelectingPartition:F,isStuckToBottom:k,isStuckToRight:j,movedColumns:we,movedRows:Ee,partition:Fe,partitionColumn:me,quickFilters:ge,reverseType:Le,rollupConfig:oe,settings:m,sorts:Q,userColumnWidths:Pt,userRowHeights:ne,model:G,showSearchBar:de,searchValue:pe,selectedSearchColumns:ke,selectDistinctColumns:ve,invertSearchColumns:yt,onColumnSelected:this.handleColumnSelected,onCreateChart:this.handleCreateChart,onDataSelected:this.handleDataSelected,onError:this.handleError,onPartitionAppend:this.handlePartitionAppend,onStateChange:this.handleGridStateChange,onContextMenu:this.handleContextMenu,onAdvancedSettingsChange:this.handleAdvancedSettingsChange,customFilters:Ti,pendingDataMap:Ni,canCopy:_i,canDownloadCsv:Ai,ref:this.irisGrid,getDownloadWorker:s,frozenColumns:Di,theme:g,columnHeaderGroups:ki,children:ji})})}}R(je,"defaultProps",{onStateChange:()=>{},onPanelStateUpdate:()=>{}});R(je,"displayName","IrisGridPanel");R(je,"COMPONENT","IrisGridPanel");var Pa=(i,e)=>{var{localDashboardId:t=zi}=e;return{inputFilters:_t(i,t),links:ct(i,t),columnSelectionValidator:Rt(i,t),user:Bi(i),workspace:Ki(i),settings:At(i)}},ya=Oe(Pa,null,null,{forwardRef:!0})(je);const Re=ya;function Xe(i,e,t){return e=wa(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function wa(i){var e=Ea(i,"string");return typeof e=="symbol"?e:String(e)}function Ea(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var pn=W.module("InputFilter"),Fa=150;class _e extends y.Component{constructor(e){super(e),Xe(this,"inputRef",void 0),Xe(this,"getItemLabel",Me((l,a)=>{var{name:s,type:o}=l[a];if(a>0&&l[a-1].name===s||a<l.length-1&&l[a+1].name===s){var u=o.substring(o.lastIndexOf(".")+1);return"".concat(s," (").concat(u,")")}return s})),Xe(this,"sendUpdate",$e(()=>{var{onChange:l}=this.props,{column:a,value:s,isValueShown:o}=this.state;l({column:a,isValueShown:o,value:s})},Fa)),this.handleColumnChange=this.handleColumnChange.bind(this),this.handleInputKeyPress=this.handleInputKeyPress.bind(this),this.handleValueChange=this.handleValueChange.bind(this),this.handleSettingsCancel=this.handleSettingsCancel.bind(this),this.handleSettingsClick=this.handleSettingsClick.bind(this),this.handleSettingsSave=this.handleSettingsSave.bind(this),this.handleBackgroundClick=this.handleBackgroundClick.bind(this),this.inputRef=H.createRef();var{column:t,isValueShown:n,value:r}=e;this.state={column:t,selectedColumn:t,value:r,isValueShown:n}}componentDidUpdate(e,t){var{column:n}=this.props,{column:r,value:l,isValueShown:a}=this.state;n!==e.column&&this.setState({column:n,selectedColumn:n}),a!==void 0&&a&&a!==t.isValueShown&&this.focusInput(),(r!==t.column||l!==t.value||a!==t.isValueShown)&&this.sendUpdate()}componentWillUnmount(){this.sendUpdate.flush()}handleColumnChange(e){var{columns:t}=this.props,{value:n}=e.target,r=t[parseInt(n,10)];pn.debug2("handleColumnChange",r),this.setState({selectedColumn:r,value:void 0})}handleInputKeyPress(e){e.key==="Enter"&&(e.preventDefault(),e.stopPropagation(),this.setState(t=>{var{value:n}=t;return n==null?{value:""}:null},()=>{this.sendUpdate(),this.sendUpdate.flush()}))}handleValueChange(e){var{value:t}=e.target;pn.debug2("handleValueChange",t),this.setState({value:t})}handleSettingsCancel(){var{column:e}=this.state;this.setState({selectedColumn:e,isValueShown:!0})}handleSettingsSave(){var{selectedColumn:e}=this.state;this.setState({column:e,isValueShown:!0})}handleSettingsClick(e){var{column:t}=this.state;this.setState({selectedColumn:t,isValueShown:!1}),e.stopPropagation()}handleBackgroundClick(e){e.target!==this.inputRef.current&&this.focusInput()}focusInput(){this.inputRef.current!==null&&(this.inputRef.current.select(),this.inputRef.current.focus())}clearFilter(){this.setState({value:""})}setFilterState(e){var{name:t,type:n,value:r,isValueShown:l}=e,a=t!=null&&n!=null?{name:t,type:n}:void 0,s=l===void 0?{column:a,value:r}:{column:a,value:r,isValueShown:l};this.setState(s)}render(){var{columns:e}=this.props,{column:t,isValueShown:n,selectedColumn:r,value:l}=this.state,a=l==null||l.length===0?_e.PLACEHOLDER.length:l.length,s=null;if(t!=null){var o=e.findIndex(u=>u.name===t.name&&u.type===t.type);s=o>=0?this.getItemLabel(e,o):t.name}return d.jsxs(Ut,{className:"input-filter fill-parent-absolute",isFlipped:n??!1,children:[d.jsx("div",{className:"input-filter-settings-card",children:d.jsxs("div",{className:"input-filter-settings-content",children:[d.jsxs("div",{className:"input-filter-settings-grid",children:[d.jsx("label",{children:"Filter Column"}),d.jsxs("select",{value:e.findIndex(u=>u.name===r?.name&&u.type===r?.type),className:"custom-select",onChange:this.handleColumnChange,children:[e.map((u,h)=>d.jsx("option",{value:h,children:this.getItemLabel(e,h)},"".concat(u.name,"/").concat(u.type))),e.length===0&&d.jsx("option",{value:"-1",disabled:!0,children:"No Available Columns"})]}),d.jsx("div",{className:"text-muted small",children:"Input filter control will apply its filter to all columns matching this name in this dashboard."})]}),d.jsxs("div",{className:"input-filter-settings-buttons",children:[d.jsx(N,{kind:"secondary",onClick:this.handleSettingsCancel,disabled:t==null,children:"Cancel"}),d.jsx(N,{kind:"primary",className:"ml-2",onClick:this.handleSettingsSave,disabled:r==null,children:"Save"})]})]})}),d.jsxs("div",{className:"input-filter-value-card",onClick:this.handleBackgroundClick,children:[d.jsx("div",{className:"input-filter-column",children:d.jsxs("div",{className:"input-filter-column-title",children:[s," Filter"]})}),d.jsx("div",{className:"d-flex justify-content-center align-items-center h-100 w-100",children:d.jsx("div",{className:"input-filter-value-input d-flex flex-column justify-content-center",children:d.jsx("input",{type:"text",ref:this.inputRef,placeholder:_e.PLACEHOLDER,value:l??"",onChange:this.handleValueChange,onKeyPress:this.handleInputKeyPress,style:{width:"".concat(a+3,"ch")},spellCheck:"false"})})}),d.jsx("div",{className:"input-filter-menu",children:d.jsx(N,{kind:"ghost",className:"m-2 px-2",onClick:this.handleSettingsClick,icon:d.jsx(ee,{icon:$t,transform:"grow-4"}),tooltip:"Input Filter Settings"})})]})]})}}Xe(_e,"PLACEHOLDER","Enter value...");Xe(_e,"defaultProps",{column:null,isValueShown:!1,value:null});const La=_e;function Ct(i,e,t){return e=Ma(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Ma(i){var e=Ta(i,"string");return typeof e=="symbol"?e:String(e)}function Ta(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var Oa=250;class St extends y.Component{constructor(e){super(e),Ct(this,"inputFilterRef",void 0),this.handleChange=$e(this.handleChange.bind(this),Oa),this.handleClearAllFilters=this.handleClearAllFilters.bind(this),this.inputFilterRef=H.createRef();var{panelState:t}=e,{value:n,isValueShown:r=!1,name:l,type:a,timestamp:s}=t??{};this.state={columns:[],column:l!=null&&a!=null?{name:l,type:a}:void 0,value:n,timestamp:s,isValueShown:r,wasFlipped:!1,skipUpdate:!1,panelState:t}}componentDidMount(){this.updateColumns();var{column:e,value:t,timestamp:n}=this.state;if(e!=null){var{name:r,type:l}=e;this.sendUpdate(r,l,t,n)}}componentDidUpdate(e){var{columns:t}=this.props;t!==e.columns&&this.updateColumns()}handleChange(e){var{column:t,isValueShown:n=!1,value:r}=e,l,a;t!=null&&({name:l,type:a}=t);var s=!0,o=Date.now();this.setState(u=>{var h,{panelState:c,timestamp:p,wasFlipped:v,skipUpdate:m}=u,g=c!=null&&n!==c.isValueShown&&l===c.name&&a===c.type&&r===c.value;return s=(h=!m&&n&&(!g||!v))!==null&&h!==void 0?h:!1,s||(o=p),{panelState:{isValueShown:n,name:l,type:a,value:r,timestamp:o},timestamp:o,wasFlipped:g,skipUpdate:!1}},()=>{s&&this.sendUpdate(l,a,r,o)})}handleClearAllFilters(){var e;(e=this.inputFilterRef.current)===null||e===void 0||e.clearFilter()}sendUpdate(e,t,n,r){var{glEventHub:l}=this.props;l.emit(A.FILTERS_CHANGED,this,{name:e,type:t,value:n,timestamp:r})}setPanelState(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;this.setState({skipUpdate:!n}),(t=this.inputFilterRef.current)===null||t===void 0||t.setFilterState(e)}updateColumns(){var{columns:e}=this.props;e!=null&&this.setState(t=>{var{column:n}=t;return n==null&&e.length>0?{columns:[...e],column:e[0]}:n!=null&&!e.find(r=>{var{name:l,type:a}=r;return n.name===l&&n.type===a})?{columns:[...e,n]}:{columns:[...e]}})}render(){var{glContainer:e,glEventHub:t}=this.props,{column:n,columns:r,isValueShown:l,value:a}=this.state;return d.jsx(ht,{className:"iris-input-filter-panel",componentPanel:this,glContainer:e,glEventHub:t,onClearAllFilters:this.handleClearAllFilters,isClonable:!0,isRenamable:!0,children:d.jsx(La,{ref:this.inputFilterRef,column:n,columns:r,onChange:this.handleChange,isValueShown:l,value:a})})}}Ct(St,"defaultProps",{panelState:null});Ct(St,"COMPONENT","InputFilterPanel");Ct(St,"displayName","InputFilterPanel");var Na=(i,e)=>{var{localDashboardId:t}=e;return{columns:Wn(i,t)}},Da=Oe(Na,null,null,{forwardRef:!0})(St);const Ye=Da;function vn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function rt(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?vn(Object(t),!0).forEach(function(n){Kt(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):vn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function Kt(i,e,t){return e=ka(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function ka(i){var e=Ia(i,"string");return typeof e=="symbol"?e:String(e)}function Ia(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var V=W.module("FilterSetManagerPanel");function xa(i){return i.setPanelState!=null}class Ae extends y.Component{static changeFilterIndexesToColumnNames(e,t){return t.map(n=>{var[r,l]=n;if(r>=e.columns.length)return null;var{name:a}=e.columns[r];return{name:a,filter:l}}).filter(n=>n!=null)}constructor(e){super(e),this.handleChange=this.handleChange.bind(this),this.handleFilterApply=this.handleFilterApply.bind(this),this.handleSetsUpdate=this.handleSetsUpdate.bind(this),this.handleGetFilterState=this.handleGetFilterState.bind(this);var{panelState:t,filterSets:n}=e,{selectedId:r=n.length>0?n[0].id:void 0,isValueShown:l=!1}=t??{};this.state={selectedId:r,isValueShown:l,panelState:t}}getFilterState(){var{dashboardOpenedPanelMap:e}=this.props,t=[];return[...e.keys()].forEach(n=>{var r=e.get(n);if(r===void 0){V.error("Could not get panel",r);return}var l=w.getComponentNameFromPanel(r),a=w.getIdFromPanel(r);V.debug("Panel:",r,l);var{glContainer:s=null}=r.props;if(s==null){V.error("Could not get panel container",r);return}var o=w.getComponentConfigFromContainer(s);if(o==null){V.error("Could not get component config from container",s);return}var u=w.getPanelComponentState(o);if(u==null){V.debug("Panel state is null ".concat(a));return}switch(l){case w.getComponentName(je):{var h;a!=null&&(h=this.getIrisGridPanelFilters(a,u)),h!=null&&t.push({panelId:a,type:l,state:h});break}case w.getComponentName(Ye):case w.getComponentName(Te):{var{isValueShown:c,name:p,type:v,value:m}=u;t.push({panelId:a,type:l,state:{isValueShown:c,name:p,type:v,value:m}});break}}}),t}getIrisGridPanelFilters(e,t){var{panelTableMap:n}=this.props,r=n.get(e);if(r==null)return V.error("Unable to get table for panel ".concat(e,".")),null;var{irisGridState:l={advancedFilters:void 0,quickFilters:void 0},gridState:a={}}=t,{advancedFilters:s,quickFilters:o}=l,u;s&&(u=Ae.changeFilterIndexesToColumnNames(r,s));var h;return o&&(h=Ae.changeFilterIndexesToColumnNames(r,o)),{irisGridState:rt(rt({},l),{},{advancedFilters:u,quickFilters:h}),gridState:rt({},a)}}handleGetFilterState(){return this.getFilterState()}handleChange(e){var{isValueShown:t,selectedId:n}=e;V.debug("handleChange",t,n),this.setState({isValueShown:t,selectedId:n}),this.updatePanelState()}handleFilterApply(e){var{dashboardOpenedPanelMap:t}=this.props,{panels:n,restoreFullState:r=!1}=e;V.debug("Apply filters from filter set",e),n.forEach(l=>{var{panelId:a,type:s,state:o}=l;if(a==null){V.debug("panel is null",a);return}if(!t.has(a)){V.debug("Ignore closed panel",a);return}V.debug("Apply panel filters",a,s,o);var u=t.get(a);switch(s){case w.getComponentName(je):this.restoreIrisGridFilters(u,o,r);break;case w.getComponentName(Ye):case w.getComponentName(Te):this.restoreInputFilterState(u,o);break}})}handleSetsUpdate(e){var{setDashboardFilterSets:t,localDashboardId:n}=this.props;V.debug("Saving updated sets",e),t(n,[...e])}updatePanelState(){this.setState(e=>{var{selectedId:t,isValueShown:n}=e;return{panelState:{selectedId:t,isValueShown:n}}})}restoreIrisGridFilters(e,t,n){var{irisGridState:r={},advancedFilters:l=[],quickFilters:a=[]}=t,{advancedFilters:s=l,quickFilters:o=a}=r,{panelTableMap:u}=this.props,h=w.getIdFromPanel(e);if(h==null){V.error("Panel Id is null.");return}var c=u.get(h);if(c==null){V.error("Unable to get table for panel ".concat(h,"."));return}V.debug("restoreIrisGridFilters",h,t,n),n?e.setStateOverrides(t):e.setFilters({quickFilters:o,advancedFilters:s})}restoreInputFilterState(e,t){var n=rt({},t);delete n.isValueShown,V.debug("restoreInputFilterState",e,n),e&&xa(e)&&e.setPanelState(n)}render(){var{glContainer:e,glEventHub:t,filterSets:n}=this.props,{isValueShown:r,selectedId:l}=this.state;return d.jsx(ht,{className:"filter-set-manager-panel",componentPanel:this,glContainer:e,glEventHub:t,isClonable:!0,isRenamable:!0,children:d.jsx("div",{className:"input-filter-container h-100 w-100 container",children:d.jsx(ma,{onChange:this.handleChange,onApply:this.handleFilterApply,onUpdateSets:this.handleSetsUpdate,isValueShown:r,filterSets:n,selectedId:l,getFilterState:this.handleGetFilterState})})})}}Kt(Ae,"defaultProps",{panelState:null});Kt(Ae,"COMPONENT","FilterSetManagerPanel");var ja=(i,e)=>{var{localDashboardId:t}=e;return{filterSets:qi(i,t),dashboardOpenedPanelMap:zn(i,t),dashboardInputFilters:_t(i,t),panelTableMap:It(i,t)}},Ra=Oe(ja,{setDashboardFilterSets:Wi},null,{forwardRef:!0})(Ae);const Et=Ra;function _a(i,e,t){return e=Aa(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Aa(i){var e=Ua(i,"string");return typeof e=="symbol"?e:String(e)}function Ua(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class ci extends y.PureComponent{render(){var{isEditing:e,children:t,onDoubleClick:n}=this.props;return d.jsxs("div",{className:"markdown-editor-container h-100 w-100",onDoubleClick:n,children:[d.jsx("div",{className:se("text-muted","edit-hint",{viewing:e===void 0||!e}),children:d.jsxs("span",{children:["double-click to edit ",d.jsx(ee,{icon:ii})]})}),t]})}}_a(ci,"defaultProps",{isEditing:!1});function $a(i,e,t){return e=Ga(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Ga(i){var e=Va(i,"string");return typeof e=="symbol"?e:String(e)}function Va(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var Ha=W.module("MarkdownStartPage");class pi extends y.PureComponent{constructor(e){super(e),this.handleDeleteButtonClick=this.handleDeleteButtonClick.bind(this),this.handleDeleteModalClose=this.handleDeleteModalClose.bind(this),this.state={isDeleteModalShown:!1}}handleDeleteButtonClick(e){this.setState({isDeleteModalShown:!0,toBeDeleted:e})}handleDeleteModalClose(){this.setState({isDeleteModalShown:!1,toBeDeleted:void 0})}handleDeleteMarkdown(e){if(Ha.debug("delete markdown: ",e),e!==void 0){var{onDelete:t}=this.props;t(e)}this.setState({isDeleteModalShown:!1,toBeDeleted:void 0})}render(){var{closedMarkdowns:e,onOpen:t,onCreate:n}=this.props,{isDeleteModalShown:r,toBeDeleted:l}=this.state;return d.jsx("div",{className:"markdown-panel-start-page h-100 w-100",children:d.jsxs("div",{className:"markdown-panel-start-page-container",children:[d.jsxs("div",{className:"markdown-panel-start-list",children:[d.jsx("h3",{className:"list-title",children:"Start"}),d.jsx("div",{className:"list-item",children:d.jsx(N,{kind:"ghost",className:"title",onClick:n,children:"New Markdown Note"})})]}),d.jsxs("div",{className:"markdown-panel-start-list",children:[d.jsx("h3",{className:"list-title",children:"Recently Closed from Dashboard"}),e.map(a=>d.jsxs("div",{className:"list-item",children:[d.jsx(N,{kind:"ghost",className:"title",onClick:()=>t(a),children:a.title}),d.jsx("button",{className:"btn-link icon",type:"button",onClick:()=>{this.handleDeleteButtonClick(a)},children:d.jsx(ee,{icon:Gt})})]},a.id)),d.jsxs(xr,{isOpen:r,toggle:this.handleDeleteModalClose,className:"modal-dialog-centered markdown-delete-modal theme-bg-light",children:[d.jsx(jr,{children:"Are you sure you want to permanently delete this note?"}),d.jsx(Rr,{children:"You can't undo this action."}),d.jsxs(mr,{children:[d.jsx(N,{kind:"secondary",onClick:this.handleDeleteModalClose,children:"Cancel"}),d.jsx(N,{kind:"danger",onClick:()=>{this.handleDeleteMarkdown(l)},children:"Delete"})]})]})]})]})})}}$a(pi,"defaultProps",{closedMarkdowns:[],onOpen:()=>{},onCreate:()=>{},onDelete:()=>{}});const Ba=pi;function vi(i,e,t){return e=Ka(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Ka(i){var e=za(i,"string");return typeof e=="symbol"?e:String(e)}function za(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var Wa=i=>{var{children:e,className:t}=i,n=t!=null&&t!==void 0&&t.startsWith("language-")?t.substring(9):"plaintext";return d.jsx("pre",{children:d.jsx("code",{children:d.jsx(Xi,{language:n,children:H.Children.map(e,r=>typeof r=="string"?r.trim():r)})})})};class fi extends y.PureComponent{constructor(e){super(e),vi(this,"container",void 0),this.container=null}render(){var{isEditing:e,content:t,onEditorInitialized:n}=this.props;return d.jsx("div",{className:"markdown-editor-container",ref:r=>{this.container=r},children:e?d.jsx(gr,{settings:{language:"markdown",value:t,lineNumbers:"off"},onEditorInitialized:n}):d.jsx($i,{components:{code:Wa},children:t})})}}vi(fi,"defaultProps",{isEditing:!1,content:""});function Ze(i,e,t){return e=qa(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function qa(i){var e=Xa(i,"string");return typeof e=="symbol"?e:String(e)}function Xa(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var at=W.module("MarkdownPanel");class zt extends y.Component{constructor(e){super(e),Ze(this,"markdownEditor",void 0),Ze(this,"editor",void 0),Ze(this,"getClosedMarkdowns",x(r=>r.filter(l=>l.component==="MarkdownPanel").reverse())),this.handleContainerDoubleClick=this.handleContainerDoubleClick.bind(this),this.handleCreateMarkdown=this.handleCreateMarkdown.bind(this),this.handleDeleteMarkdown=this.handleDeleteMarkdown.bind(this),this.handleOpenMarkdown=this.handleOpenMarkdown.bind(this),this.handleEditorInitialized=this.handleEditorInitialized.bind(this),this.handleEditorBlur=this.handleEditorBlur.bind(this),this.handleEditorResize=this.handleEditorResize.bind(this);var{panelState:t}=e,n=null;t!=null&&t.content!=null&&({content:n}=t),this.state={isStartPageShown:n==null,isEditing:!1,content:n,panelState:t},this.markdownEditor=null}setEditorPosition(e){_(this.markdownEditor);var{container:t}=this.markdownEditor;if(this.editor&&t){var n,r,l=t.getBoundingClientRect().top,a=t.scrollTop,s=t.scrollHeight,o=(n=(r=this.editor.getModel())===null||r===void 0?void 0:r.getLineCount())!==null&&n!==void 0?n:0,u=Math.round((a+e-l)/s*o);u>o&&(u=o),this.editor.revealLine(u),this.editor.setPosition({lineNumber:u,column:1}),this.editor.focus()}}handleContainerDoubleClick(e){var{isEditing:t}=this.state,n=e.clientY;t||this.setState({isEditing:!0},()=>{this.setEditorPosition(n)})}handleEditorInitialized(e){at.debug("Markdown Editor Initialized..."),this.editor=e}handleCreateMarkdown(){at.debug("create markdown..."),this.setState({isStartPageShown:!1,content:"",isEditing:!0,panelState:{content:""}},()=>{this.editor!=null&&this.editor.focus!=null&&this.editor.focus()})}handleOpenMarkdown(e){at.debug("open markdown...",e);var{glContainer:t,glEventHub:n}=this.props,r=w.getComponentConfigFromContainer(t);n.emit(z.REOPEN,e,r)}handleDeleteMarkdown(e){var{glEventHub:t}=this.props;t.emit(z.DELETE,e)}handleEditorBlur(e){var t;at.debug("markdown content changed, saving...");var{isEditing:n}=this.state;if(!(!n||this.markdownEditor!=null&&this.markdownEditor.container!=null&&this.markdownEditor.container.contains(e.relatedTarget))){var r=(t=this.editor)===null||t===void 0?void 0:t.getValue();this.setState({content:r,isEditing:!1,panelState:{content:r}})}}handleEditorResize(){var{isEditing:e}=this.state;e&&this.editor&&this.editor.layout()}render(){var{glContainer:e,glEventHub:t,closedPanels:n}=this.props,{isEditing:r,isStartPageShown:l,content:a}=this.state,s=this.getClosedMarkdowns(n);return d.jsx(ht,{glContainer:e,glEventHub:t,className:"markdown-panel",componentPanel:this,onResize:this.handleEditorResize,onBlur:this.handleEditorBlur,isClonable:!0,isRenamable:!0,children:l?d.jsx(Ba,{closedMarkdowns:s,onCreate:this.handleCreateMarkdown,onOpen:this.handleOpenMarkdown,onDelete:this.handleDeleteMarkdown}):d.jsx(ci,{isEditing:r,onDoubleClick:this.handleContainerDoubleClick,children:d.jsx(fi,{ref:o=>{this.markdownEditor=o},isEditing:r,content:a??void 0,onEditorInitialized:this.handleEditorInitialized})})})}}Ze(zt,"defaultProps",{panelState:null});Ze(zt,"COMPONENT","MarkdownPanel");var Ya=(i,e)=>{var{localDashboardId:t}=e;return{closedPanels:Yi(i,t)}},Za=Oe(Ya,null,null,{forwardRef:!0})(zt);const Ve=Za;function fn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function mn(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?fn(Object(t),!0).forEach(function(n){et(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):fn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function Qa(i){if(i==null)throw new TypeError("Cannot destructure "+i)}function Dt(){return Dt=Object.assign?Object.assign.bind():function(i){for(var e=1;e<arguments.length;e++){var t=arguments[e];for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(i[n]=t[n])}return i},Dt.apply(this,arguments)}function et(i,e,t){return e=Ja(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Ja(i){var e=el(i,"string");return typeof e=="symbol"?e:String(e)}function el(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class Wt extends y.Component{constructor(e){super(e),et(this,"buttonRef",void 0),et(this,"irisGridRef",void 0),this.irisGridRef=H.createRef(),this.buttonRef=H.createRef(),this.handleReload=this.handleReload.bind(this),this.handleGridStateChange=this.handleGridStateChange.bind(this),this.handlePanelStateUpdate=this.handlePanelStateUpdate.bind(this);var{panelState:t}=e;this.state={shouldFocusGrid:!1,panelState:t}}handleReload(){var e,t;(e=this.irisGridRef.current)===null||e===void 0||e.initModel(),(t=this.buttonRef.current)===null||t===void 0||t.blur(),this.setState({shouldFocusGrid:!0})}handleGridStateChange(){var e,t,n,{shouldFocusGrid:r}=this.state;r&&(e=this.irisGridRef.current)!==null&&e!==void 0&&(t=e.irisGrid)!==null&&t!==void 0&&(n=t.current)!==null&&n!==void 0&&n.grid&&(this.irisGridRef.current.irisGrid.current.grid.focus(),this.setState({shouldFocusGrid:!1}))}handlePanelStateUpdate(e){this.setState({panelState:e})}render(){var e=this.props,t=Dt({},(Qa(e),e));return d.jsx(Re,mn(mn({ref:this.irisGridRef,onStateChange:this.handleGridStateChange,onPanelStateUpdate:this.handlePanelStateUpdate},t),{},{children:d.jsxs(N,{ref:this.buttonRef,kind:"primary",className:"btn-pandas",onClick:this.handleReload,tooltip:"Click to refresh pandas dataframe, updates do not occur automatically.",children:["pandas dataframe",d.jsxs("span",{children:[d.jsx(ee,{icon:ri,transform:"shrink-1",className:"mr-1"}),"Reload"]})]})}))}}et(Wt,"defaultProps",{panelState:null});et(Wt,"COMPONENT","PandasPanel");const tl=Wt;function gn(i,e,t,n,r,l,a){try{var s=i[l](a),o=s.value}catch(u){t(u);return}s.done?e(o):Promise.resolve(o).then(n,r)}function Cn(i){return function(){var e=this,t=arguments;return new Promise(function(n,r){var l=i.apply(e,t);function a(o){gn(l,n,r,a,s,"next",o)}function s(o){gn(l,n,r,a,s,"throw",o)}a(void 0)})}}function Sn(i,e,t){return e=nl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function nl(i){var e=il(i,"string");return typeof e=="symbol"?e:String(e)}function il(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class rl{constructor(e){Sn(this,"items",void 0),Sn(this,"onUpdateCallback",void 0),this.items=e}setSearch(e){}setExpanded(e,t){if(e.charAt(e.length-1)==="/")for(var n=0;n<this.items.length;n+=1){var r=this.items[n];Zt(r)&&("".concat(r.filename,"/")===e||r.filename===e)&&(r.isExpanded=t)}return Promise.resolve()}collapseAll(){for(var e=0;e<this.items.length;e+=1){var t=this.items[e];Zt(t)&&(t.isExpanded=!1)}return Promise.resolve()}getViewportData(){return Promise.resolve({items:this.items,offset:0})}getSnapshot(e){return Cn(function*(){throw new Error("Method not implemented.")})()}setViewport(e){var t=this;return Cn(function*(){var n,r=yield t.getViewportData();(n=t.onUpdateCallback)===null||n===void 0||n.call(t,r)})()}setFilters(e){}setSorts(e){}setReversed(e){}close(){}onUpdate(e){return this.onUpdateCallback=e,jest.fn()}get size(){return this.items.length}}const al=rl;function bn(i,e,t,n,r,l,a){try{var s=i[l](a),o=s.value}catch(u){t(u);return}s.done?e(o):Promise.resolve(o).then(n,r)}function He(i){return function(){var e=this,t=arguments;return new Promise(function(n,r){var l=i.apply(e,t);function a(o){bn(l,n,r,a,s,"next",o)}function s(o){bn(l,n,r,a,s,"throw",o)}a(void 0)})}}function ll(i,e,t){return e=sl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function sl(i){var e=ol(i,"string");return typeof e=="symbol"?e:String(e)}function ol(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class dl{constructor(e){ll(this,"items",void 0),this.items=e}getTable(){var e=this;return He(function*(){return new al(e.items)})()}saveFile(e){throw new Error("Method not implemented.")}loadFile(e){throw new Error("Method not implemented.")}copyFile(e,t){return He(function*(){throw new Error("Method not implemented.")})()}deleteFile(e){var t=this;return He(function*(){t.items=t.items.filter(n=>n.filename!==e)})()}moveFile(e,t){var n=this;return He(function*(){for(var r=0;r<n.items.length;r+=1)if(n.items[r].filename===e){n.items[r].filename=t,n.items[r].basename=Zi.getBaseName(t),n.items[r].id=t;break}})()}info(e){var t=this;return He(function*(){var n=t.items.filter(l=>l.filename===e);if(n.length===0)throw new Qi;if(n.length>1)throw new Error("More than one matching file found");var r=n[0];return{filename:r.filename,basename:r.basename,id:r.filename,type:r.type}})()}createDirectory(e){throw new Error("Method not implemented.")}}const Es=dl;function Pn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function ut(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Pn(Object(t),!0).forEach(function(n){ul(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):Pn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function ul(i,e,t){return e=hl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function hl(i){var e=cl(i,"string");return typeof e=="symbol"?e:String(e)}function cl(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}function yn(i,e,t,n,r,l,a){try{var s=i[l](a),o=s.value}catch(u){t(u);return}s.done?e(o):Promise.resolve(o).then(n,r)}function pl(i){return function(){var e=this,t=arguments;return new Promise(function(n,r){var l=i.apply(e,t);function a(o){yn(l,n,r,a,s,"next",o)}function s(o){yn(l,n,r,a,s,"throw",o)}a(void 0)})}}function vl(i,e,t,n){return kt.apply(this,arguments)}function kt(){return kt=pl(function*(i,e,t,n){var r,l,a,s;if(st(t))r=t.settings,l=t.table,a=void 0,s=t.tableSettings;else{var o;r={},l="",a=(o=t.name)!==null&&o!==void 0?o:t.figure,s={}}if(n!=null&&(n.tableSettings!=null&&(s=n.tableSettings),n.table!=null&&(l=n.table),n.figure!=null&&(a=n.figure),n.settings!=null&&(r=ut(ut({},r),n.settings))),a!=null){var u={title:a,name:a,type:i.VariableType.FIGURE},h=yield e.getObject(u);return Tt.makeModel(i,r,h)}var c={title:a,name:l,type:i.VariableType.TABLE},p=yield e.getObject(c);return new Y(i).applyTableSettings(p,s,Xn(Ji.getState())),Tt.makeModelFromSettings(i,r,p)}),kt.apply(this,arguments)}function fl(i){Ne(i);var e=pt(),t=ni(),n=y.useCallback((r,l)=>ut(ut({},r),{},{localDashboardId:l,makeModel:()=>{var{metadata:a}=r,s=Yr(r)?r.panelState:void 0;if(a==null)throw new Error("Metadata is required for chart panel");return vl(e,t,a,s)}}),[e,t]);return ai({dashboardProps:i,componentName:Je.COMPONENT,component:Je,supportedTypes:e.VariableType.FIGURE,hydrate:n}),null}var ml={name:"ChartPlugin",type:ye.DASHBOARD_PLUGIN,component:fl};const Fs=ml;function gl(i){Ne(i);var{id:e,layout:t}=i,n=pt(),r=y.useCallback(l=>{var{metadata:a,panelId:s=te.generate(),table:o}=l,{settings:u}=a,h=()=>Tt.makeModelFromSettings(n,u,o),c=Jn.titleFromSettings(u),p={type:"react-component",component:Je.COMPONENT,props:{localDashboardId:e,id:s,metadata:a,makeModel:h},title:c,id:s},{root:v}=t;w.openComponent({root:v,config:p})},[n,e,t]);return ie(t.eventHub,ae.CREATE_CHART,r),null}var Cl={name:"ChartBuilderPlugin",type:ye.DASHBOARD_PLUGIN,component:gl};const Ls=Cl;var Be=W.module("FilterPlugin");function wn(i,e){return i.concat(e)}function Sl(i){Ne(i);var{id:e,layout:t,registerComponent:n}=i,r=Gi(),[l]=y.useState(()=>new Map),[a]=y.useState(()=>new Map),[s]=y.useState(()=>new Map),o=y.useCallback(()=>{var f=Array.from(l.values()).reduce(wn,[]).sort((P,S)=>{var E=he.toLower(P.name),L=he.toLower(S.name);if(E!==L)return E>L?1:-1;var O=he.toLower(P.type),T=he.toLower(S.type);return O!==T?O>T?1:-1:0}).reduce((P,S)=>((P.length===0||he.toLower(P[P.length-1].name)!==he.toLower(S.name)||he.toLower(P[P.length-1].type)!==he.toLower(S.type))&&P.push(S),P),[]),C=Array.from(a.values()).reduce(wn,[]).sort((P,S)=>P.timestamp-S.timestamp),b=new Map(s);Be.debug("sendUpdate",{columns:f,filters:C,tableMap:b}),r(er(e,{columns:f,filters:C,tableMap:b}))},[r,e,l,a,s]),u=y.useCallback((f,C)=>{Be.debug2("handleColumnsChanged",f,C),l.set(f,[].concat(C)),o()},[l,o]),h=y.useCallback((f,C)=>{Be.debug2("handleFiltersChanged",f,C),a.set(f,[].concat(C)),o()},[a,o]),c=y.useCallback((f,C)=>{Be.debug2("handleTableChanged",f,C),s.set(w.getIdFromPanel(f),C),o()},[s,o]),p=y.useCallback(f=>{Be.debug2("handlePanelUnmount",f),l.delete(f),a.delete(f),s.delete(w.getIdFromPanel(f)),o()},[l,a,s,o]),v=y.useCallback(f=>{var{title:C="DropdownFilter",metadata:b={},panelState:P=null,id:S=te.generate(),focusElement:E=w.DEFAULT_FOCUS_SELECTOR,createNewStack:L=!1,dragEvent:O=null}=f,T={type:"react-component",component:Te.COMPONENT,props:{id:S,metadata:b,panelState:P,localDashboardId:e},title:C,id:S},{root:F}=t;w.openComponent({root:F,config:T,focusElement:E,createNewStack:L,dragEvent:O})},[t,e]),m=y.useCallback(f=>{var{title:C="InputFilter",metadata:b={},panelState:P=null,id:S=te.generate(),focusElement:E=w.DEFAULT_FOCUS_SELECTOR,createNewStack:L=!1,dragEvent:O=void 0}=f,T={type:"react-component",component:Ye.COMPONENT,props:{id:S,metadata:b,panelState:P,localDashboardId:e},title:C,id:S},{root:F}=t;w.openComponent({root:F,config:T,focusElement:E,createNewStack:L,dragEvent:O})},[t,e]),g=y.useCallback(f=>{var{title:C="FilterSets",metadata:b={},panelState:P=null,id:S=te.generate(),focusElement:E=w.DEFAULT_FOCUS_SELECTOR,createNewStack:L=!1,dragEvent:O=null}=f,T={type:"react-component",component:Et.COMPONENT,props:{id:S,metadata:b,panelState:P,localDashboardId:e},title:C,id:S},{root:F}=t;w.openComponent({root:F,config:T,focusElement:E,createNewStack:L,dragEvent:O})},[t,e]);return y.useEffect(function(){var C=[n(Te.COMPONENT,Te),n(Ye.COMPONENT,Ye),n(Et.COMPONENT,Et)];return()=>{C.forEach(b=>b())}},[n]),ie(t.eventHub,A.COLUMNS_CHANGED,u),ie(t.eventHub,A.FILTERS_CHANGED,h),ie(t.eventHub,A.TABLE_CHANGED,c),ie(t.eventHub,A.OPEN_DROPDOWN,v),ie(t.eventHub,A.OPEN_INPUT,m),ie(t.eventHub,A.OPEN_FILTER_SET_MANAGER,g),ie(t.eventHub,z.UNMOUNT,p),null}var bl={name:"FilterPlugin",type:ye.DASHBOARD_PLUGIN,component:Sl};const Ms=bl;function En(i,e,t,n,r,l,a){try{var s=i[l](a),o=s.value}catch(u){t(u);return}s.done?e(o):Promise.resolve(o).then(n,r)}function Pl(i){return function(){var e=this,t=arguments;return new Promise(function(n,r){var l=i.apply(e,t);function a(o){En(l,n,r,a,s,"next",o)}function s(o){En(l,n,r,a,s,"throw",o)}a(void 0)})}}function Fn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function Ln(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Fn(Object(t),!0).forEach(function(n){yl(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):Fn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function yl(i,e,t){return e=wl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function wl(i){var e=El(i,"string");return typeof e=="symbol"?e:String(e)}function El(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}function mi(){var i=pt(),e=ni(),t=$r(),n=y.useCallback((r,l)=>{var a;if(hi(r.metadata))a=r.metadata;else if(ui(r.metadata)){var s;a={name:r.metadata.table,type:(s=r.metadata.type)!==null&&s!==void 0?s:i.VariableType.TABLE}}else throw new Error("Metadata is required for table panel");return Ln(Ln({},r),{},{loadPlugin:t,localDashboardId:l,makeModel:function(){var o=Pl(function*(){var{name:h,type:c}=a,p={title:h,name:h,type:c},v=yield e.getObject(p);return Cr.makeModel(i,v)});function u(){return o.apply(this,arguments)}return u}()})},[i,e,t]);return n}function Fl(i){Ne(i);var e=pt(),t=mi(),n=y.useMemo(()=>[e.VariableType.TABLE,e.VariableType.TREETABLE,e.VariableType.HIERARCHICALTABLE],[e]);return ai({dashboardProps:i,componentName:Re.COMPONENT,component:Re,supportedTypes:n,hydrate:t}),null}var Ll={name:"GridPlugin",type:ye.DASHBOARD_PLUGIN,component:Fl};const Ts=Ll;function Mn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function be(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Mn(Object(t),!0).forEach(function(n){gi(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):Mn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function gi(i,e,t){return e=Ml(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Ml(i){var e=Tl(i,"string");return typeof e=="symbol"?e:String(e)}function Tl(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}function Ci(i){var e=i;return typeof e.getCoordinateForColumn=="function"}function Tn(i){var e=i;return Ci(i)&&typeof e.setFilterMap=="function"&&typeof e.unsetFilterValue=="function"}function On(i){var e;return i.description===void 0||!((e=i.description)!==null&&e!==void 0&&e.startsWith("Preview of type: "))}var Ke=W.module("LinkerUtils");class bt{static getLinkType(e,t,n){var r;if(e?.panelId==null||t?.panelId==null||e.panelId===t.panelId||n!=null&&n!==e.panelId&&n!==t.panelId)return Ke.debug2("Incompatible panel ids",e,t,n),"invalid";if(e.panelComponent==null||t.panelComponent==null)return Ke.error("PanelComponent should not be null",e,t),"invalid";var l=(r=bt.ALLOWED_LINKS.get(e.panelComponent))===null||r===void 0?void 0:r.includes(t.panelComponent);if(l===void 0||!l)return Ke.debug2("Incompatible panel components",e,t),"invalid";var{columnType:a}=e,{columnType:s}=t,o=s===null||Z.isCompatibleType(a,s);if(!o)return Ke.debug2("Incompatible type",a,s),"invalid";switch(t.panelComponent){case w.getComponentName(Je):return"chartLink";case w.getComponentName(Re):return"tableLink";case w.getComponentName(Te):return"filterSource"}return Ke.debug2("Incompatible target panel component",t.panelComponent),"invalid"}static findColumn(e,t){var{columnName:n,columnType:r}=t;return e.find(l=>{var{name:a,type:s}=l;return a===n&&s===r})}static cloneLinksForPanel(e,t,n){var r=[];return e.forEach(l=>{var a;l.start.panelId===t&&l.type!=="filterSource"?r.push(be(be({},l),{},{id:te.generate(),start:be(be({},l.start),{},{panelId:n})})):((a=l.end)===null||a===void 0?void 0:a.panelId)===t&&r.push(be(be({},l),{},{id:te.generate(),end:be(be({},l.end),{},{panelId:n})}))}),r}}gi(bt,"ALLOWED_LINKS",new Map([[w.getComponentName(Re),[w.getComponentName(Re),w.getComponentName(Je),w.getComponentName(Te)]]]));const Ie=bt;function Si(i,e,t){return e=Ol(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Ol(i){var e=Nl(i,"string");return typeof e=="symbol"?e:String(e)}function Nl(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var Dl=W.module("LinkerLink"),Nn=.015,Dn=1.5,bi=12,Pi=12,kn=2,lt=Math.sqrt((Pi*.5)**2+bi**2),In=Math.asin(Pi*.5/bi),xn=15,Pe=Math.PI*.5;class xe extends y.Component{static makeCirclePath(e,t,n){return"M ".concat(e," ").concat(t," m -").concat(n,",0 a ").concat(n,",").concat(n," 0 1,0 ").concat(n*2,",0 a ").concat(n,",").concat(n," 0 1,0 -").concat(n*2,",0 z")}static getLabelForLinkFilter(e,t){try{if(Z.isNumberType(e)||Z.isCharType(e))return Sr(t);if(Z.isTextType(e))return br(t);if(Z.isDateType(e))return Pr(t);if(Z.isBooleanType(e)){if(t===We.eq)return"is equal to";if(t===We.notEq)return"is not equal to"}throw new Error("Unrecognized column type: ".concat(e))}catch(n){return Dl.warn(n),""}}constructor(e){super(e),Si(this,"getOperators",x((t,n)=>{var{onOperatorChanged:r}=this.props,l=Z.getFilterTypes(n);return Z.isBooleanType(n)&&(l=[We.eq,We.notEq]),l.flatMap((a,s)=>{if(a==="eqIgnoreCase"||a==="notEqIgnoreCase")return[];var o="";return a==="startsWith"?o="a*":a==="endsWith"?o="*z":o=Z.getFilterOperatorString(a),[{title:xe.getLabelForLinkFilter(n,a),icon:d.jsx("b",{children:o}),action:()=>r(t,a),order:s}]})})),this.handleClick=this.handleClick.bind(this),this.handleMouseEnter=this.handleMouseEnter.bind(this),this.handleMouseLeave=this.handleMouseLeave.bind(this),this.handleDelete=this.handleDelete.bind(this),this.getDropdownActions=this.getDropdownActions.bind(this),this.state={isHovering:void 0}}handleClick(e){e.stopPropagation(),e.preventDefault();var{id:t,onClick:n,onDelete:r}=this.props;e.altKey?r(t):n(t)}handleMouseEnter(){this.setState({isHovering:!0})}handleMouseLeave(){this.setState({isHovering:!1})}handleDelete(){var{id:e,onDelete:t}=this.props;t(e)}getDropdownActions(){var{id:e,startColumnType:t}=this.props;return t!=null?this.getOperators(e,t):[]}render(){var{className:e,operator:t,isSelected:n,x1:r,y1:l,x2:a,y2:s,id:o,startColumnType:u,type:h}=this.props,{isHovering:c}=this.state,p=Math.sqrt((r-a)**2+(l-s)**2),v=Math.atan2(s-l,a-r),m=Math.sin(v),g=Math.cos(v)+2,f=window.innerWidth,C=window.innerHeight,b=0,P=0,S=Math.max(b,Math.min(r+(a-r)/2+m*(p*Nn)**Dn,f)),E=Math.max(P,Math.min(l+(s-l)/2+g*(p*Nn)**Dn,C)),L="M ".concat(r," ").concat(l," Q ").concat(S," ").concat(E," ").concat(a," ").concat(s),O="M ".concat(b," ").concat(P," L ").concat(b," ").concat(C," L ").concat(f," ").concat(C," L ").concat(f," ").concat(P,` z
4
4
  `).concat(xe.makeCirclePath(r,l,xn),`
5
5
  `).concat(xe.makeCirclePath(a,s,xn)),T="link-select-clip-".concat(o),F=Math.atan2(s-E,a-S),k=F-In+Math.PI,j=F+In+Math.PI,B=a+Math.cos(F)*kn,$=s+Math.sin(F)*kn,q=B+Math.cos(k)*lt,G=$+Math.sin(k)*lt,we=B+Math.cos(j)*lt,Ee=$+Math.sin(j)*lt,Fe="".concat(B,",").concat($," ").concat(q,",").concat(G," ").concat(we,",").concat(Ee),me=.25*r+.5*S+.25*a,ge=.25*l+.5*E+.25*s,Le=S-r+(a-S),oe=E-l+(s-E),Q=oe/Le,Pt=20,ne=Pt/Math.sqrt(1+Q**2),de=ne*Q,pe=ne*-1,ve=de*-1;Number.isFinite(Q)?Q>0?(ne*=-1,de*=-1,pe*=-1,ve*=-1,pe-=50-10*(Math.abs(v)%Pe),ve+=10*(Math.abs(v)%Pe),ne-=50-10*(Math.abs(v)%Pe),de+=10*(Math.abs(v)%Pe)):Q<0?(pe+=10*(Math.abs(v)%Pe),ve+=10*(Math.abs(v)%Pe),ne+=10*(Math.abs(v)%Pe),de+=10*(Math.abs(v)%Pe)):(pe=15,ve=10,ne=-25,de=10):(pe=10,ve=5,ne=10,de=-35);var ke="";t!==void 0&&(t==="startsWith"?ke="a*":t==="endsWith"?ke="*z":ke=Z.getFilterOperatorString(t));var yt=h!=="chartLink"&&h!=="filterSource";return d.jsxs(d.Fragment,{children:[d.jsxs("svg",{className:se(e,{hovering:c}),children:[d.jsx("clipPath",{id:T,children:d.jsx("path",{d:O,clipRule:"evenodd"})}),d.jsx("path",{className:"link-select",d:L,onClick:this.handleClick,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,clipPath:"url(#".concat(T,")"),"data-testid":"link-select"}),d.jsx("path",{className:"link-background",d:L}),d.jsx("path",{className:"link-foreground",d:L}),d.jsx("circle",{className:"link-dot",cx:r,cy:l,r:"5"}),d.jsx("polygon",{className:"link-triangle",points:Fe})]}),u!=null&&n&&d.jsxs(d.Fragment,{children:[yt&&d.jsx(N,{kind:"primary",className:"btn-fab btn-operator",style:{top:ge+(Q>=0?de:ve),left:me+(Q>=0?ne:pe)},onClick:()=>{},icon:d.jsxs("div",{className:"fa-md fa-layers",children:[d.jsx("b",{children:ke}),d.jsx(ee,{icon:_r,transform:"right-8 down-9 shrink-5"})]}),tooltip:"Change comparison operator",children:d.jsx(yr,{actions:this.getDropdownActions,popperOptions:{placement:"bottom-start"}})}),d.jsx(N,{kind:"primary",className:"btn-fab btn-delete",style:{top:ge+(Q<0?de:ve),left:me+(Q<0?ne:pe)},onClick:this.handleDelete,icon:Gt,tooltip:"Delete"})]})]})}}Si(xe,"defaultProps",{className:"",isSelected:!1,onClick(){},onDelete(){}});const kl=xe;function jn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function Rn(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?jn(Object(t),!0).forEach(function(n){qt(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):jn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function qt(i,e,t){return e=Il(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Il(i){var e=xl(i,"string");return typeof e=="symbol"?e:String(e)}function xl(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var Ft=W.module("LinkerOverlayContent");class yi extends y.Component{constructor(e){super(e),qt(this,"dialogRef",void 0),this.handleBlur=this.handleBlur.bind(this),this.handleResize=this.handleResize.bind(this),this.handleMouseMove=this.handleMouseMove.bind(this),this.handleMouseDown=this.handleMouseDown.bind(this),this.handleMouseUp=this.handleMouseUp.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleKeyUp=this.handleKeyUp.bind(this),this.handleEscapePressed=this.handleEscapePressed.bind(this),this.handleOperatorChanged=this.handleOperatorChanged.bind(this),this.dialogRef=H.createRef(),this.state={mouse:void 0,dialog:void 0,offset:{x:0,y:0},isDragging:!1,mode:"select"}}componentDidMount(){window.addEventListener("blur",this.handleBlur,!0),window.addEventListener("mousemove",this.handleMouseMove,!0),window.addEventListener("mouseup",this.handleMouseUp,!0),window.addEventListener("keydown",this.handleKeyDown,!0),window.addEventListener("keyup",this.handleKeyUp,!0),window.addEventListener("resize",this.handleResize,!0)}componentDidCatch(e,t){Ft.error("componentDidCatch",e,t)}componentWillUnmount(){window.removeEventListener("blur",this.handleBlur,!0),window.removeEventListener("mousemove",this.handleMouseMove,!0),window.removeEventListener("mouseup",this.handleMouseUp,!0),window.removeEventListener("keydown",this.handleKeyDown,!0),window.removeEventListener("keyup",this.handleKeyUp,!0),window.removeEventListener("resize",this.handleResize,!0)}getPointFromLinkPoint(e){var{panelManager:t}=this.props,{panelId:n,columnName:r}=e,l=t.getOpenedPanelById(n);if(l!=null){if(!Ci(l))throw new Error("Panel does not have getCoordinateForColumn method: ".concat(n));try{var a=l.getCoordinateForColumn(r);if(a!=null)return a}catch{Ft.error("Could not get coordinate for column",r,l)}}var s=t.getContainerByPanelId(n);if(s==null)throw new Error("Unable to find panel container for id: ".concat(n));return w.getTabPoint(s)}handleOperatorChanged(e,t){var{links:n,onLinksUpdated:r}=this.props,l=n.map(a=>a.id===e?Rn(Rn({},a),{},{operator:t}):a);r(l)}handleBlur(){this.setState({mode:"select"})}handleResize(){var{dialog:e}=this.state;if(e&&this.dialogRef.current){var t=this.dialogRef.current.getBoundingClientRect(),n=tt(e.x,0,window.innerWidth-t.width),r=tt(e.y,0,window.innerHeight-t.height);this.setState({dialog:{x:n,y:r}})}}handleMouseMove(e){var{offset:t,isDragging:n}=this.state;if(this.setState({mouse:{x:e.clientX,y:e.clientY}}),n&&this.dialogRef.current){var r=this.dialogRef.current.getBoundingClientRect(),l=tt(window.innerWidth-(e.clientX+r.width+t.x),0,window.innerWidth-r.width),a=tt(window.innerHeight-(e.clientY+r.height+t.y),0,window.innerHeight-r.height);this.setState({dialog:{x:l,y:a}})}}handleMouseDown(e){var t={x:0,y:0};if(this.dialogRef.current){var n=this.dialogRef.current.getBoundingClientRect();t.x=n.right-(n.width+e.clientX),t.y=n.bottom-(n.height+e.clientY)}this.setState({isDragging:!0,offset:t})}handleMouseUp(){this.setState({isDragging:!1})}handleKeyDown(e){if(e.key==="Alt")e.preventDefault(),this.setState({mode:"delete"});else if(e.key==="Delete"||e.key==="Backspace"){var{selectedIds:t,onLinkDeleted:n}=this.props;e.preventDefault(),t.forEach(r=>n(r))}}handleKeyUp(e){e.key==="Alt"&&(e.preventDefault(),this.setState({mode:"select"}))}handleEscapePressed(){var{onCancel:e}=this.props;e()}render(){var{disabled:e,links:t,selectedIds:n,messageText:r,onLinkSelected:l,onLinkDeleted:a,onAllLinksDeleted:s,onDone:o}=this.props,{mouse:u,dialog:h,isDragging:c,mode:p}=this.state,v=t.map(m=>{try{var g,f,{id:C,type:b,isReversed:P,start:S,end:E,operator:L}=m,O=S.columnType,[T,F]=this.getPointFromLinkPoint(S),k=(g=u?.x)!==null&&g!==void 0?g:T,j=(f=u?.y)!==null&&f!==void 0?f:F;if(E!=null&&([k,j]=this.getPointFromLinkPoint(E)),P!=null&&P){var[B,$]=[T,F];[T,F]=[k,j],[k,j]=[B,$]}var q=se("linker-link",{disabled:e},{"link-filter-source":b==="filterSource"},{"link-invalid":b==="invalid"},{interactive:m.end==null},{"link-is-selected":n.has(C)},{"danger-delete":p==="delete"});return{x1:T,y1:F,x2:k,y2:j,id:C,className:q,operator:L,startColumnType:O,type:b}}catch(G){return Ft.warn("Unable to get point for link",m,G),null}}).filter(m=>m!=null);return d.jsxs("div",{className:se("linker-overlay",{"danger-delete":p==="delete"}),children:[v.map(m=>{var{x1:g,y1:f,x2:C,y2:b,id:P,className:S,operator:E,startColumnType:L,type:O}=m;return d.jsx(kl,{className:S,id:P,x1:g,y1:f,x2:C,y2:b,onClick:l,onDelete:a,isSelected:n.has(P),operator:E,startColumnType:L,type:O,onOperatorChanged:this.handleOperatorChanged},P)}),d.jsxs("div",{className:se("linker-toast-dialog",{dragging:c}),ref:this.dialogRef,style:{bottom:h?.y,right:h?.x},"data-testid":"linker-toast-dialog",children:[d.jsx(N,{draggable:!0,kind:"inline",className:"btn-drag-handle",icon:Ar,onClick:()=>{},onMouseDown:this.handleMouseDown,children:!c&&d.jsx(wr,{children:"Drag to reposition"})}),d.jsx("div",{className:"toast-body",children:r}),d.jsxs("div",{className:"toast-footer",children:[d.jsx(N,{kind:"secondary",onClick:s,children:"Clear All"}),d.jsx(N,{kind:"primary",onClick:o,children:"Done"})]})]}),d.jsx(Yn,{actions:[{action:this.handleEscapePressed,shortcut:Er.LINKER_CLOSE,isGlobal:!0}]})]})}}qt(yi,"defaultProps",{disabled:"false"});const jl=yi;function _n(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function An(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?_n(Object(t),!0).forEach(function(n){wi(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):_n(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function wi(i,e,t){return e=Rl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Rl(i){var e=_l(i,"string");return typeof e=="symbol"?e:String(e)}function _l(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var U=W.module("Linker"),Al=(i,e)=>({activeTool:xt(i),dh:qn(i),isolatedLinkerPanelId:jt(i,e.localDashboardId),links:ct(i,e.localDashboardId),timeZone:Xn(i)}),Ul=Oe(Al,{setActiveTool:Bn,setDashboardLinks:tr,addDashboardLinks:nr,deleteDashboardLinks:ir,setDashboardIsolatedLinkerPanelId:Kn,setDashboardColumnSelectionValidator:rr});class $l extends y.Component{constructor(e){super(e),wi(this,"getCachedLinks",x((t,n,r)=>{var l=[...t];return n!=null&&n.start!=null&&l.push(n),r!==void 0?l.filter(a=>{var s,o;return(a==null||(s=a.start)===null||s===void 0?void 0:s.panelId)===r||(a==null||(o=a.end)===null||o===void 0?void 0:o.panelId)===r||a?.end==null}):l})),this.handleCancel=this.handleCancel.bind(this),this.handleDone=this.handleDone.bind(this),this.handlePanelCloned=this.handlePanelCloned.bind(this),this.handleFilterColumnSelect=this.handleFilterColumnSelect.bind(this),this.handleColumnsChanged=this.handleColumnsChanged.bind(this),this.handlePanelClosed=this.handlePanelClosed.bind(this),this.handleLayoutStateChanged=this.handleLayoutStateChanged.bind(this),this.handleAllLinksDeleted=this.handleAllLinksDeleted.bind(this),this.handleLinkDeleted=this.handleLinkDeleted.bind(this),this.handleLinksUpdated=this.handleLinksUpdated.bind(this),this.handleChartColumnSelect=this.handleChartColumnSelect.bind(this),this.handleGridColumnSelect=this.handleGridColumnSelect.bind(this),this.handleUpdateValues=this.handleUpdateValues.bind(this),this.handleStateChange=this.handleStateChange.bind(this),this.handleExited=this.handleExited.bind(this),this.handleLinkSelected=this.handleLinkSelected.bind(this),this.handlePanelDragging=this.handlePanelDragging.bind(this),this.handlePanelDropped=this.handlePanelDropped.bind(this),this.isColumnSelectionValid=this.isColumnSelectionValid.bind(this),this.state={linkInProgress:void 0,selectedIds:new Set,isDraggingPanel:!1}}componentDidMount(){var{layout:e}=this.props;this.startListening(e),this.updateSelectionValidators()}componentDidUpdate(e){var{activeTool:t,layout:n}=this.props;n!==e.layout&&(this.stopListening(e.layout),this.startListening(n)),t!==e.activeTool&&(this.updateSelectionValidators(),t===ce.DEFAULT&&this.reset())}componentDidCatch(e,t){U.error("componentDidCatch",e,t)}componentWillUnmount(){var{layout:e}=this.props;this.stopListening(e)}startListening(e){e.on("stateChanged",this.handleLayoutStateChanged);var{eventHub:t}=e;t.on(ae.COLUMN_SELECTED,this.handleGridColumnSelect),t.on(ae.DATA_SELECTED,this.handleUpdateValues),t.on(ae.STATE_CHANGED,this.handleStateChange),t.on(Nt.COLUMN_SELECTED,this.handleChartColumnSelect),t.on(z.CLONED,this.handlePanelCloned),t.on(A.COLUMN_SELECTED,this.handleFilterColumnSelect),t.on(A.COLUMNS_CHANGED,this.handleColumnsChanged),t.on(z.CLOSE,this.handlePanelClosed),t.on(z.CLOSED,this.handlePanelClosed),t.on(z.DRAGGING,this.handlePanelDragging),t.on(z.DROPPED,this.handlePanelDropped)}stopListening(e){e.off("stateChanged",this.handleLayoutStateChanged);var{eventHub:t}=e;t.off(ae.COLUMN_SELECTED,this.handleGridColumnSelect),t.off(ae.DATA_SELECTED,this.handleUpdateValues),t.off(ae.STATE_CHANGED,this.handleStateChange),t.off(Nt.COLUMN_SELECTED,this.handleChartColumnSelect),t.off(z.CLONED,this.handlePanelCloned),t.off(A.COLUMN_SELECTED,this.handleFilterColumnSelect),t.off(A.COLUMNS_CHANGED,this.handleColumnsChanged),t.off(z.CLOSE,this.handlePanelClosed),t.off(z.CLOSED,this.handlePanelClosed),t.off(z.DRAGGING,this.handlePanelDragging),t.off(z.DROPPED,this.handlePanelDropped)}reset(){this.setState({linkInProgress:void 0,selectedIds:new Set})}handleCancel(){var{linkInProgress:e}=this.state;if(e==null){var{setActiveTool:t}=this.props;t(ce.DEFAULT)}this.setState({linkInProgress:void 0})}handleDone(){var{setActiveTool:e}=this.props;e(ce.DEFAULT)}handleChartColumnSelect(e,t){this.columnSelected(e,t,!0)}handleFilterColumnSelect(e,t){U.debug("handleFilterColumnSelect",this.isOverlayShown());var{links:n,localDashboardId:r,setActiveTool:l,setDashboardIsolatedLinkerPanelId:a}=this.props,s=w.getIdFromPanel(e),o=n.filter(u=>{var h,c;return((h=u.start)===null||h===void 0?void 0:h.panelId)===s||((c=u.end)===null||c===void 0?void 0:c.panelId)===s});if(!this.isOverlayShown()&&s!=null){l(ce.LINKER),a(r,s),o.length===0&&this.columnSelected(e,t,!0,s);return}this.columnSelected(e,t,!0)}handleColumnsChanged(e,t){U.debug("handleColumnsChanged",e,t);var{links:n}=this.props,r=w.getIdFromPanel(e);if(r==null){U.error("Invalid panelId",e);return}var l=n.filter(a=>{var{start:s,end:o}=a;return s.panelId===r&&Ie.findColumn(t,s)==null||o!=null&&o.panelId===r&&Ie.findColumn(t,o)==null});this.deleteLinks(l)}handleGridColumnSelect(e,t){if(!On(t)){U.debug2("Column is not filterable");return}this.columnSelected(e,t)}columnSelected(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,r=arguments.length>3?arguments[3]:void 0;if(!(r===void 0&&!this.isOverlayShown())){var{isolatedLinkerPanelId:l}=this.props,{linkInProgress:a}=this.state,s=w.getIdFromPanel(e);if(s!=null){var o=w.getComponentNameFromPanel(e),{name:u,type:h}=t;if(a==null||a.start==null){var c={id:te.generate(),start:{panelId:s,panelComponent:o,columnName:u,columnType:h},type:"invalid",isReversed:n};U.debug("starting link",c),this.setState({linkInProgress:c})}else{var{links:p}=this.props,{start:v,id:m,isReversed:g}=a,f={panelId:s,panelComponent:o,columnName:u,columnType:h},C=Ie.getLinkType(g!==void 0&&g?f:v,g!==void 0&&g?v:f,r??l);switch(C){case"invalid":U.debug("Ignore invalid link connection",a,f);return;case"filterSource":{var b=g!==void 0&&g?v.panelId:f.panelId,P=p.filter(T=>{var{end:F}=T;return F?.panelId===b});this.deleteLinks(P);break}case"chartLink":{var S=g===!0?v:f,E=g===!0?f:v;U.debug("creating chartlink",{existingLinkEnd:S,start:v,end:f});var L=p.filter(T=>{var{end:F,start:k}=T;return k?.panelId===E.panelId&&F?.panelId===S.panelId&&F?.columnName===S.columnName&&F?.columnType===S.columnType});this.deleteLinks(L);break}}var O={start:g!==void 0&&g?f:v,end:g!==void 0&&g?v:f,id:m,type:C,operator:We.eq};U.info("creating link",O),this.setState({linkInProgress:void 0,selectedIds:new Set([m])},()=>{this.addLinks([O])})}}}}unsetFilterValueForLink(e){var{panelManager:t}=this.props;if(e.end){var{end:n}=e,{panelId:r,columnName:l,columnType:a}=n,s=t.getOpenedPanelById(r);s?Tn(s)?s.unsetFilterValue(l,a):U.debug("endPanel.unsetFilterValue not implemented",s):U.debug("endPanel no longer exists, ignoring unsetFilterValue",r)}}setPanelFilterMap(e,t){U.debug("Set filter data for panel:",e,t);var{panelManager:n}=this.props,r=n.getOpenedPanelById(e);r?Tn(r)?r.setFilterMap(t):U.debug("panel.setFilterMap not implemented",e,r):U.debug("panel no longer exists, ignoring setFilterMap",e)}addLinks(e){var{addDashboardLinks:t,localDashboardId:n}=this.props;t(n,e)}deleteLinks(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,{localDashboardId:n}=this.props;if(e.forEach(a=>this.unsetFilterValueForLink(a)),t){var{setDashboardLinks:r}=this.props;r(n,[])}else if(e.length>0){var{deleteDashboardLinks:l}=this.props;l(n,e.map(a=>{var{id:s}=a;return s}))}}handleAllLinksDeleted(){var{links:e,isolatedLinkerPanelId:t}=this.props;if(t===void 0)this.deleteLinks(e,!0);else{var n=e.filter(r=>{var l,a;return(r==null||(l=r.start)===null||l===void 0?void 0:l.panelId)===t||(r==null||(a=r.end)===null||a===void 0?void 0:a.panelId)===t});this.deleteLinks(n)}this.reset()}handleLinkDeleted(e){var{links:t}=this.props,n=t.find(r=>r.id===e);n?this.deleteLinks([n]):U.error("Unable to find link to delete",e)}handleUpdateValues(e,t){for(var n=w.getIdFromPanel(e),{dh:r,links:l,timeZone:a}=this.props,s=new Map,o=0;o<l.length;o+=1){var{start:u,end:h,operator:c}=l[o];if(u.panelId===n&&h!=null){var{panelId:p,columnName:v,columnType:m}=h,g=s.has(p)?s.get(p):new Map,f=g.has(v)===!0?g.get(v).filterList:[],{visibleIndex:C,isExpandable:b,isGrouped:P}=t[u.columnName],{value:S}=t[u.columnName],E="".concat(S);if(S===null&&b&&P&&(S=void 0),m!=null&&Z.isDateType(m)){var L=new ei(r,{timeZone:a,showTimeZone:!1,showTSeparator:!0,defaultDateTimeFormatString:Fr.FULL_DATE_FORMAT});E=L.format(S)}var O={operator:c,text:E,value:S,startColumnIndex:C};f.push(O),g.set(v,{columnType:m,filterList:f}),s.set(p,g)}}s.forEach((T,F)=>{this.setPanelFilterMap(F,T)})}handlePanelCloned(e,t){var{links:n}=this.props,r=w.getIdFromPanel(e),l=t.id;if(r!=null){var a=Ie.cloneLinksForPanel(n,r,l);this.addLinks(a)}}handlePanelDragging(e){for(var{links:t}=this.props,n=0;n<t.length;n+=1){var r=t[n],{start:l,end:a}=r;if(l.panelId===e||a?.panelId===e){this.setState({isDraggingPanel:!0});return}}}handlePanelDropped(){this.setState({isDraggingPanel:!1})}handlePanelClosed(e){U.debug("Panel ".concat(e," closed, deleting links.")),this.deleteLinksForPanelId(e)}handleLinkSelected(e){this.setState({selectedIds:new Set([e])})}handleLinksUpdated(e){var{localDashboardId:t,setDashboardLinks:n}=this.props;n(t,e)}handleLayoutStateChanged(){this.forceUpdate()}handleStateChange(){this.forceUpdate()}handleExited(){var{localDashboardId:e,setDashboardIsolatedLinkerPanelId:t}=this.props;t(e,void 0)}deleteLinksForPanelId(e){for(var{links:t}=this.props,n=0;n<t.length;n+=1){var r=t[n],{start:l,end:a,id:s}=r;(l.panelId===e||a?.panelId===e)&&this.handleLinkDeleted(s)}}isOverlayShown(){var{activeTool:e}=this.props;return e===ce.LINKER}updateSelectionValidators(){var{activeTool:e,setDashboardColumnSelectionValidator:t,localDashboardId:n}=this.props;switch(e){case ce.LINKER:t(n,this.isColumnSelectionValid);break;default:t(n,void 0);break}}updateLinkInProgressType(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"invalid";this.setState(t=>{var{linkInProgress:n}=t;return n!==void 0?{linkInProgress:An(An({},n),{},{type:e})}:null})}isColumnSelectionValid(e,t){var{linkInProgress:n}=this.state,{isolatedLinkerPanelId:r}=this.props;if(t==null)return n?.start!=null&&this.updateLinkInProgressType(),!1;if(!On(t))return U.debug2("Column is not filterable",t.description),n?.start!=null&&this.updateLinkInProgressType("invalid"),!1;if(n?.start==null)return!0;var{isReversed:l,start:a}=n,s=w.getIdFromPanel(e);if(s==null)return!1;var o={panelId:s,panelComponent:w.getComponentNameFromPanel(e),columnName:t.name,columnType:t.type},u=l!==void 0&&l?Ie.getLinkType(o,a,r):Ie.getLinkType(a,o,r);return this.updateLinkInProgressType(u),u!=="invalid"}render(){var{links:e,isolatedLinkerPanelId:t,panelManager:n}=this.props,{linkInProgress:r,selectedIds:l,isDraggingPanel:a}=this.state,s=this.isOverlayShown(),o=r!=null&&r.start!=null,u=t===void 0?"Click a column source, then click a column target to create a filter link. The filter comparison operator used by a selected link can be changed. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.":"Create a link between the source column button and a table column by clicking on one, then the other. Delete a filter link by clicking the delete button or with alt+click. Click done when finished.";return a?null:d.jsx(Mt,{in:s,timeout:Ot.transitionMs,classNames:"fade",mountOnEnter:!0,unmountOnExit:!0,onExited:this.handleExited,children:d.jsx(jl,{disabled:o,panelManager:n,links:this.getCachedLinks(e,r,t),selectedIds:l,messageText:u,onLinkSelected:this.handleLinkSelected,onLinkDeleted:this.handleLinkDeleted,onAllLinksDeleted:this.handleAllLinksDeleted,onLinksUpdated:this.handleLinksUpdated,onDone:this.handleDone,onCancel:this.handleCancel})})}}var Gl=Ul($l);const Vl=Gl;function Hl(i){Ne(i);var{id:e,layout:t,panelManager:n}=i;return d.jsx(Vl,{layout:t,localDashboardId:e,panelManager:n})}var Bl={name:"LinkerPlugin",type:ye.DASHBOARD_PLUGIN,component:Hl};const Os=Bl;function Ei(i,e,t){return e=Kl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Kl(i){var e=zl(i,"string");return typeof e=="symbol"?e:String(e)}function zl(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}class Ue{static getNewMarkdownTitle(e){for(var t="".concat(Ue.DEFAULT_TITLE),n=0;e.indexOf(t)>=0;)n+=1,t="".concat(Ue.DEFAULT_TITLE,"-").concat(n);return t}}Ei(Ue,"DEFAULT_TITLE","Note");Ei(Ue,"DEFAULT_CONTENT",`# Markdown Note
6
6
 
7
7
  This note can be edited using **markdown** for styling.`);const Lt=Ue;function Wl(i){Ne(i);var{id:e,layout:t,panelManager:n,registerComponent:r}=i,l=y.useCallback(s=>{var{title:o,componentState:u,props:h}=s,{panelState:c=null}=h;return u!=null&&({panelState:c=null}=u),o==null||c==null||c.content==null||c.content.length===0||c.content===Lt.DEFAULT_CONTENT?null:ar(s)},[]),a=y.useCallback(function(){var{title:s="",metadata:o={},id:u=te.generate(),focusElement:h=w.DEFAULT_FOCUS_SELECTOR,createNewStack:c=!1,dragEvent:p=null}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},v=n.getOpenedPanelConfigsOfType(Ve.COMPONENT),m=n.getClosedPanelConfigsOfType(Ve.COMPONENT),g=v.map(S=>{var E;return(E=S.title)!==null&&E!==void 0?E:""}),f=s!=null&&s!==""?s:Lt.getNewMarkdownTitle(g),C=m.length>0?null:Lt.DEFAULT_CONTENT,b={type:"react-component",component:Ve.COMPONENT,props:{id:u,metadata:o,panelState:{content:C},localDashboardId:e},title:f,id:u},{root:P}=t;w.openComponent({root:P,config:b,focusElement:h,createNewStack:c,dragEvent:p})},[e,t,n]);return y.useEffect(function(){var o=[r(Ve.COMPONENT,Ve,lr,l)];return()=>{o.forEach(u=>u())}},[l,r]),ie(t.eventHub,sr.OPEN,a),null}var ql={name:"MarkdownPlugin",type:ye.DASHBOARD_PLUGIN,component:Wl};const Ns=ql;function Un(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function Xl(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Un(Object(t),!0).forEach(function(n){Yl(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):Un(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function Yl(i,e,t){return e=Zl(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function Zl(i){var e=Ql(i,"string");return typeof e=="symbol"?e:String(e)}function Ql(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var Fi=y.forwardRef((i,e)=>{var t=mi(),{localDashboardId:n}=i,r=y.useMemo(()=>t(i,n),[t,i,n]);return d.jsx(tl,Xl({ref:e},r))});Fi.displayName="PandasPlugin";const $n=Fi;var Jl={name:"PandasPlugin",title:"Pandas",type:ye.WIDGET_PLUGIN,component:$n,panelComponent:$n,supportedTypes:"pandas.DataFrame",icon:Ur};const Ds=Jl;function Gn(i,e){var t=Object.keys(i);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(i);e&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(i,r).enumerable})),t.push.apply(t,n)}return t}function ze(i){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?Gn(Object(t),!0).forEach(function(n){es(i,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(i,Object.getOwnPropertyDescriptors(t)):Gn(Object(t)).forEach(function(n){Object.defineProperty(i,n,Object.getOwnPropertyDescriptor(t,n))})}return i}function es(i,e,t){return e=ts(e),e in i?Object.defineProperty(i,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):i[e]=t,i}function ts(i){var e=ns(i,"string");return typeof e=="symbol"?e:String(e)}function ns(i,e){if(typeof i!="object"||i===null)return i;var t=i[Symbol.toPrimitive];if(t!==void 0){var n=t.call(i,e||"default");if(typeof n!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(i)}var is=W.module("WidgetLoaderPlugin");function rs(i){var e;function t(n,r){var l=i.component,{metadata:a}=n,[s,o]=y.useState(),u=y.useCallback(c=>{o(c),typeof r=="function"?r(c):r!=null&&(r.current=c)},[r]),h=or(l);return d.jsxs(mt,ze(ze({widgetName:a?.name,widgetType:i.title,componentPanel:s},n),{},{children:[h?d.jsx(l,ze(ze({},n),{},{ref:u})):d.jsx(l,ze({},n)),")"]}))}return t.displayName="WidgetLoaderPlugin(".concat((e=i.component.displayName)!==null&&e!==void 0?e:i.name,")"),y.forwardRef(t)}function as(i){var e=Lr(),t=y.useMemo(()=>{var s=new Map;return e.forEach(o=>{Mr(o)&&[o.supportedTypes].flat().forEach(u=>{if(u!=null&&u!==""){if(s.has(u)){var h;is.warn("Multiple WidgetPlugins handling type ".concat(u,". Replacing ").concat((h=s.get(u))===null||h===void 0?void 0:h.name," with ").concat(o.name," to handle ").concat(u))}s.set(u,o)}})}),s},[e]);Ne(i);var{id:n,layout:r,registerComponent:l}=i,a=y.useCallback(s=>{var o,{dragEvent:u,fetch:h,panelId:c=te.generate(),widget:p}=s,{id:v,type:m}=p,g=(o=p.title)!==null&&o!==void 0?o:p.name,f=t.get(m);if(f!=null){var C={id:v,name:g,type:m},b={localDashboardId:n,metadata:C,fetch:h},P={type:"react-component",component:f.name,props:b,title:g,id:c},{root:S}=r;w.openComponent({root:S,config:P,dragEvent:u})}},[n,r,t]);return y.useEffect(()=>{var s=[...new Set(t.values())].map(o=>{var{panelComponent:u}=o;return u==null?l(o.name,rs(o)):l(o.name,u)});return()=>{s.forEach(o=>o())}}),ie(r.eventHub,z.OPEN,a),null}var ls={name:"WidgetLoaderPlugin",type:ye.DASHBOARD_PLUGIN,component:as};const ks=ls;var ss=M.shape({state:M.shape({panelState:M.shape({})})}),os=M.shape({panelId:M.string.isRequired,columnName:M.string.isRequired,columnType:M.string.isRequired}),Vn=M.shape({panelId:M.string.isRequired,columnName:M.string.isRequired}),Li=M.shape({start:Vn,end:Vn,id:M.string,isReversed:M.bool}),ds=M.arrayOf(Li),us=M.shape({name:M.string.isRequired,operateAs:M.string.isRequired,groups:M.arrayOf(M.string).isRequired,permissions:M.shape({canUsePanels:M.bool.isRequired,canCopy:M.bool.isRequired,canDownloadCsv:M.bool.isRequired,canLogout:M.bool.isRequired}).isRequired}),hs=Object.freeze({LinkPoint:os,Link:Li,Links:ds,Panel:ss,User:us});const Is=hs;var cs=(i,e)=>i[e]===null?null:M.bool,ps=(i,e)=>i[e]===null?null:M.string,vs=Object.freeze({nullableBoolean:cs,nullableString:ps});const xs=vs;export{gl as ChartBuilderPlugin,Ls as ChartBuilderPluginConfig,Nt as ChartEvent,Je as ChartPanel,fl as ChartPlugin,Fs as ChartPluginConfig,_s as CommandHistoryPanel,xs as CommonPropTypes,Hi as ConsoleEvent,As as ConsolePanel,Us as ConsolePlugin,$s as ControlType,Te as DropdownFilterPanel,Gs as FileExplorerPanel,Sl as FilterPlugin,Ms as FilterPluginConfig,ma as FilterSetManager,Et as FilterSetManagerPanel,Fl as GridPlugin,Ts as GridPluginConfig,A as InputFilterEvent,Ye as InputFilterPanel,ae as IrisGridEvent,Re as IrisGridPanel,Hl as LinkerPlugin,Os as LinkerPluginConfig,Ie as LinkerUtils,Vs as LogPanel,sr as MarkdownEvent,Ve as MarkdownPanel,Wl as MarkdownPlugin,Ns as MarkdownPluginConfig,Es as MockFileStorage,Hs as NotebookEvent,Bs as NotebookPanel,ws as PandasEvent,tl as PandasPanel,$n as PandasPlugin,Ds as PandasPluginConfig,ht as Panel,Ks as TabEvent,ce as ToolType,Is as UIPropTypes,as as WidgetLoaderPlugin,ks as WidgetLoaderPluginConfig,mt as WidgetPanel,ft as WidgetPanelTooltip,nr as addDashboardLinks,ir as deleteDashboardLinks,Rt as getColumnSelectionValidatorForDashboard,Wn as getColumnsForDashboard,zs as getDashboardConnection,Ws as getDashboardConsoleSettings,qs as getDashboardSessionWrapper,qi as getFilterSetsForDashboard,_t as getInputFiltersForDashboard,jt as getIsolatedLinkerPanelIdForDashboard,ct as getLinksForDashboard,It as getTableMapForDashboard,Yr as isChartPanelDehydratedProps,st as isChartPanelTableMetadata,Xr as isGLChartPanelState,hi as isIrisGridPanelMetadata,ui as isLegacyIrisGridPanelMetadata,rr as setDashboardColumnSelectionValidator,Xs as setDashboardConnection,Ys as setDashboardConsoleSettings,Wi as setDashboardFilterSets,Kn as setDashboardIsolatedLinkerPanelId,tr as setDashboardLinks,Zs as setDashboardSessionWrapper};
8
- //# sourceMappingURL=index-bede6817.js.map
8
+ //# sourceMappingURL=index-6d5440a7.js.map