@perses-dev/table-plugin 0.6.1 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/__mf/js/{6487.ac0b3bec.js → 6487.b74a51ce.js} +1 -1
- package/__mf/js/{Table.dcb50d79.js → Table.ae720bb0.js} +3 -3
- package/__mf/js/async/3090.f748dadb.js +2 -0
- package/__mf/js/async/{3224.673940ed.js → 3224.fbb884ab.js} +1 -1
- package/__mf/js/async/3598.193e9962.js +1 -0
- package/__mf/js/async/3980.9246eb0c.js +2 -0
- package/__mf/js/async/{6333.35401612.js.LICENSE.txt → 3980.9246eb0c.js.LICENSE.txt} +2 -2
- package/__mf/js/async/{4075.16e3dc8a.js → 4075.4fb81a28.js} +1 -1
- package/__mf/js/async/{5377.05ab91aa.js → 5377.0695a823.js} +1 -1
- package/__mf/js/async/5503.6fa43555.js +1 -0
- package/__mf/js/async/5901.2aaa62a6.js +2 -0
- package/__mf/js/async/7179.516df6f8.js +73 -0
- package/__mf/js/async/8970.e4194572.js +7 -0
- package/__mf/js/async/__federation_expose_Table.12e32a6d.js +1 -0
- package/__mf/js/main.8865f4ed.js +1 -0
- package/mf-manifest.json +64 -96
- package/mf-stats.json +64 -96
- package/package.json +5 -5
- package/__mf/css/async/2569.cbbd94a8.css +0 -1
- package/__mf/css/async/8433.cbbd94a8.css +0 -1
- package/__mf/js/async/133.46388a8d.js +0 -1
- package/__mf/js/async/2292.42e8992b.js +0 -2
- package/__mf/js/async/232.ab228ab3.js +0 -1
- package/__mf/js/async/2641.78a9e888.js +0 -1
- package/__mf/js/async/3079.9e782657.js +0 -23
- package/__mf/js/async/4062.0dd7dc24.js +0 -1
- package/__mf/js/async/52.77f8a241.js +0 -2
- package/__mf/js/async/5409.33ed27cd.js +0 -1
- package/__mf/js/async/5767.f16855a4.js +0 -1
- package/__mf/js/async/5998.ac755fc8.js +0 -73
- package/__mf/js/async/6277.853e296a.js +0 -23
- package/__mf/js/async/6333.35401612.js +0 -2
- package/__mf/js/async/654.0d5da894.js +0 -1
- package/__mf/js/async/6913.1b3a7693.js +0 -1
- package/__mf/js/async/7606.4ba8e3ec.js +0 -1
- package/__mf/js/async/894.0035563b.js +0 -1
- package/__mf/js/async/8981.3989d84b.js +0 -1
- package/__mf/js/async/9057.2b54c435.js +0 -1
- package/__mf/js/async/922.d9680010.js +0 -7
- package/__mf/js/async/__federation_expose_Table.07bc26cc.js +0 -1
- package/__mf/js/main.62569baf.js +0 -1
- /package/__mf/js/async/{2292.42e8992b.js.LICENSE.txt → 3090.f748dadb.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{52.77f8a241.js.LICENSE.txt → 5901.2aaa62a6.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{5998.ac755fc8.js.LICENSE.txt → 7179.516df6f8.js.LICENSE.txt} +0 -0
- /package/__mf/js/async/{922.d9680010.js.LICENSE.txt → 8970.e4194572.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkTable=self.webpackChunkTable||[]).push([["894"],{67966:function(e,i,n){n.r(i),n.d(i,{useListPanelGroups:()=>H,useVariableDefinitionAndState:()=>iP,usePanelGroupEditor:()=>ee,VariableProviderWithQueryParams:()=>iA,DashboardContext:()=>O,SaveDashboardButton:()=>nx,useDeletePanelGroupDialog:()=>en,DashboardDiscardChangesConfirmationDialog:()=>nB,useVariableDefinitionStoreCtx:()=>iw,useDashboardDuration:()=>eu,useDashboardStore:()=>z,useDiscardChangesConfirmationDialog:()=>ej,PanelPluginLoader:()=>eN,useDashboardActions:()=>F,useVariableDefinitions:()=>iS,VariableEditor:()=>i2,ViewDashboard:()=>ar,generateId:()=>v,EditJsonDialog:()=>nF,VariableList:()=>nE,DashboardToolbar:()=>nG,VariableListItem:()=>nV,DeletePanelDialog:()=>nA,Panel:()=>io,createPanelDefinition:()=>y,useEditMode:()=>B,usePanelGroupActions:()=>Q,useVariableDefinitionActions:()=>ik,usePanel:()=>ea,PanelGroupDialog:()=>n5,useViewPanel:()=>eh,QuerySummaryTable:()=>n8,GridContainer:()=>ic,Variable:()=>nD,GridItemContent:()=>id,GridLayout:()=>ip,useSaveChangesConfirmationDialog:()=>em,usePanelGroup:()=>J,VariableName:()=>i4,EmptyDashboard:()=>ni,GridTitle:()=>eR,DeletePanelGroupDialog:()=>n$,useViewPanelGroup:()=>eg,AddGroupButton:()=>eC,PanelDrawer:()=>nY,DownloadButton:()=>nd,BuiltinVariableAccordions:()=>i0,EditVariablesButton:()=>i3,useDeletePanelDialog:()=>ed,useEditJsonDialog:()=>ey,usePanelEditor:()=>es,DashboardProvider:()=>R,DatasourceStoreProvider:()=>ai,EditDatasourcesButton:()=>nu,SaveChangesConfirmationDialog:()=>ae,DatasourceEditor:()=>nc,VariableProvider:()=>iG,useExternalVariableDefinitions:()=>iE,EditJsonButton:()=>nh,useListVariableState:()=>nw,usePanelActions:()=>er,usePanelGroupIds:()=>W,AddPanelButton:()=>ew,useVariableDefinitionStates:()=>iZ,PanelPreview:()=>nJ,useDashboard:()=>no,DashboardStickyToolbar:()=>nI,Dashboard:()=>nn});var a=n(24246),t=n(48565),r=n(69472),l=n(66480);let s={addPanel:"Add panel",addGroup:"Add panel group",editDatasources:"Edit datasources",editJson:"Edit JSON",editVariables:"Edit variables",viewJson:"View JSON",addPanelToGroup:"Add panel to group",deleteGroup:"Delete group",editGroup:"Edit group",moveGroupDown:"Move group down",moveGroupUp:"Move group up",viewPanel:"Toggle View Mode",editPanel:"Edit",duplicatePanel:"Duplicate",deletePanel:"Delete",movePanel:"Move"},o={addPanelToGroup:e=>`add panel to group ${e}`,deleteGroup:e=>`delete group ${e}`,editGroup:e=>`edit group ${e}`,moveGroupDown:e=>`move group ${e} down`,moveGroupUp:e=>`move group ${e} up`,viewPanel:e=>`toggle panel ${e} view mode`,editPanel:e=>`edit panel ${e}`,duplicatePanel:e=>`duplicate panel ${e}`,deletePanel:e=>`delete panel ${e}`,showPanelActions:e=>`show panel actions for ${e}`,movePanel:e=>`move panel ${e}`},d={whiteSpace:"nowrap",minWidth:"auto","& .MuiButton-startIcon":{marginRight:.5}},c="header-actions-container";var u=n(54538),p=n.n(u),h=n(40330),x=n(8785),g=n(56569),f=n(48639),m=n(65447),b=n(11268),j=n(73082);function v(){return void 0===globalThis.dashboardStoreId&&(globalThis.dashboardStoreId=0),globalThis.dashboardStoreId++}function y(e,i){return{kind:"Panel",spec:{display:{name:"",description:void 0},plugin:{kind:e??"",spec:i??{}},queries:[]}}}function C(e){let i={},n=[];for(let a of e){let e=[],t={};for(let i of a.spec.items){let n=v().toString();e.push({i:n,w:i.width,h:i.height,x:i.x,y:i.y}),t[n]=(0,b.getPanelKeyFromRef)(i.content)}let r=v();i[r]={id:r,isCollapsed:a.spec.display?.collapse?.open===!1,title:a.spec.display?.title,itemLayouts:e,itemPanelKeys:t},n.push(r)}return{panelGroups:i,panelGroupOrder:n}}function D(){return{id:v(),title:void 0,isCollapsed:!1,itemLayouts:[],itemPanelKeys:{}}}function w(e,i){e.panelGroups[i.id]=i,e.panelGroupOrder.unshift(i.id)}let Z=(e,i)=>({panelGroupEditor:void 0,openAddPanelGroup:()=>{let i={mode:"Add",initialValues:{title:"",isCollapsed:!1},applyChanges(i){let n=D();n.title=i.title,n.isCollapsed=i.isCollapsed,e(e=>{w(e,n)})},close(){e(e=>{e.panelGroupEditor=void 0})}};e(e=>{e.panelGroupEditor=i})},openEditPanelGroup:n=>{let a=i().panelGroups[n];if(void 0===a)throw Error(`Panel group with Id ${n} does not exist`);let t={mode:"Edit",initialValues:{title:a.title??"",isCollapsed:a.isCollapsed},applyChanges(i){e(e=>{let a=e.panelGroups[n];if(void 0===a)throw Error(`Panel group with Id ${n} does not exist`);a.title=i.title,a.isCollapsed=i.isCollapsed})},close(){e(e=>{e.panelGroupEditor=void 0})}};e(e=>{e.panelGroupEditor=t})}}),P={sm:24,xxs:2};function k(e){let i=0;for(let n of e.itemLayouts){let e=n.y+n.h;e>i&&(i=e)}return i}function S({x:e,y:i,w:n,h:a}){return{x1:e,x2:e+n,y1:i,y2:i+a}}function E(e,i){let n=function(e){let i={};return Object.keys(e).forEach(e=>{let{name:n,number:a}=I(e);void 0===i[n]&&(i[n]=0);let t=i[n];"number"==typeof t&&a&&(i[n]=Math.max(t,a))}),i}(i),a=I(V(e)).name,t=n[a];return"number"==typeof t&&(a+=`-${t+1}`),a}let V=e=>e.replace(/\s+/g,"");function I(e){let i=e.match(/(.+)-([0-9]+)/);return i&&i[1]&&i[2]?{name:i[1],number:parseInt(i[2],10)}:{name:e}}let G=(e,i)=>({deletePanelGroup(n){let{panelGroups:a,panelGroupOrder:t}=i(),r=a[n],l=t.findIndex(e=>e===n);if(void 0===r||-1===l)throw Error(`Panel group ${n} not found`);let s=Object.values(r.itemPanelKeys);e(e=>{delete e.panelGroups[n],e.panelGroupOrder.splice(l,1);let i=function(e){let i=new Set;for(let n of Object.values(e))for(let e of Object.values(n.itemPanelKeys))i.add(e);return i}(e.panelGroups);for(let n of s)i.has(n)||delete e.panels[n]})},openDeletePanelGroupDialog:n=>{let a=i().panelGroups[n];if(void 0===a)throw Error(`Panel group with Id ${n} not found`);e(e=>{e.deletePanelGroupDialog={panelGroupId:n,panelGroupName:a.title}})},closeDeletePanelGroupDialog:()=>e(e=>{e.deletePanelGroupDialog=void 0})}),A=e=>({isOpen:!1,openDiscardChangesConfirmationDialog(i){e(e=>{e.discardChangesConfirmationDialog=i})},closeDiscardChangesConfirmationDialog(){e(e=>{e.discardChangesConfirmationDialog=void 0})}}),T=e=>({isOpen:!1,openSaveChangesConfirmationDialog(i){e(e=>{e.saveChangesConfirmationDialog=i},!1,"openSaveChangesConfirmationDialog")},closeSaveChangesConfirmationDialog(){e(e=>{e.saveChangesConfirmationDialog=void 0},!1,"closeSaveChangesConfirmationDialog")}}),L=e=>({openEditJsonDialog(){e(e=>{e.editJsonDialog={isOpen:!0}})},closeEditJsonDialog(){e(e=>{e.editJsonDialog={isOpen:!1}})}}),O=(0,u.createContext)(void 0);function z(e){let i=(0,u.useContext)(O);if(void 0===i)throw Error("No DashboardContext found. Did you forget a Provider?");return(0,x.s)(i,e,m.X)}function R(e){let i=(0,u.useCallback)(M,[e]),{defaultPluginKinds:n}=(0,j.usePluginRegistry)(),t=n?.Panel??"",{data:r}=(0,j.usePlugin)("Panel",t),[l]=(0,u.useState)(i(e));return(0,u.useEffect)(()=>{if(void 0===r)return;let e=r.createInitialOptions?r.createInitialOptions():{};l.setState({initialValues:{panelDefinition:y(t,e)}})},[r,l,t]),(0,a.jsx)(O.Provider,{value:l,children:e.children})}function M(e){let{initialState:{dashboardResource:i,isEditMode:n,viewPanelRef:a,setViewPanelRef:t}}=e,{kind:r,metadata:l,spec:{display:s,duration:o,refreshInterval:d=b.DEFAULT_REFRESH_INTERVAL,datasources:c}}=i,u="ttl"in i.spec?i.spec.ttl:void 0,{spec:{layouts:p,panels:x}}=i;return p=p??[],x=x??{},(0,h.M)()((0,f.n)((0,g.mW)((...e)=>{var i;let h,g,f,m;let[j]=e;return{...(function(e){let{panelGroups:i,panelGroupOrder:n}=C(e);return e=>({panelGroups:i,panelGroupOrder:n,swapPanelGroups(i,n){e(e=>{if(i<0||i>=e.panelGroupOrder.length||n<0||n>=e.panelGroupOrder.length)throw Error("index out of bound");let a=e.panelGroupOrder[i],t=e.panelGroupOrder[n];if(void 0===a||void 0===t)throw Error("panel group is undefined");[e.panelGroupOrder[i],e.panelGroupOrder[n]]=[t,a]})},updatePanelGroupLayouts(i,n){e(e=>{let a=e.panelGroups[i];if(void 0===a)throw Error(`Cannot find panel group ${i}`);a.itemLayouts=n})}})})(p)(...e),...Z(...e),...G(...e),...(i=x,()=>({panels:i}))(...e),panelEditor:void 0,openEditPanel(i){let{panels:n,panelGroups:a}=h(),{panelGroupId:t,panelGroupItemLayoutId:r}=i,l=a[t]?.itemPanelKeys[r];if(void 0===l)throw Error(`Could not find Panel Group item ${i}`);let s=n[l];if(void 0===s)throw Error(`Cannot find Panel with key '${l}'`);let o={mode:"update",initialValues:{groupId:i.panelGroupId,panelDefinition:s},applyChanges:i=>{e(e=>{if(e.panels[l]=i.panelDefinition,i.groupId===t)return;let n=e.panelGroups[t];if(void 0===n)throw Error(`Missing panel group ${t}`);let a=n.itemLayouts.findIndex(e=>e.i===r),s=n.itemLayouts[a],o=n.itemPanelKeys[r];if(-1===a||void 0===s||void 0===o)throw Error(`Missing panel group item ${r}`);n.itemLayouts.splice(a,1),delete n.itemPanelKeys[r];let d=e.panelGroups[i.groupId];if(void 0===d)throw Error(`Could not find new group ${i.groupId}`);d.itemLayouts.push({i:s.i,x:0,y:k(d),w:s.w,h:s.h}),d.itemPanelKeys[s.i]=o})},close:()=>{e(e=>{e.panelEditor=void 0})}};e(e=>{e.panelEditor=o})},openAddPanel(i){let n;void 0===(i??=h().panelGroupOrder[0])&&((n=D()).title="Panel Group",i=n.id);let a={mode:"create",initialValues:{groupId:i,panelDefinition:h().initialValues?.panelDefinition??y()},applyChanges:i=>{let n=E(i.panelDefinition.spec.display.name,h().panels);e(e=>{e.panels[n]=i.panelDefinition;let a=e.panelGroups[i.groupId];if(void 0===a)throw Error(`Missing panel group ${i.groupId}`);let t={i:v().toString(),x:0,y:k(a),w:12,h:6};a.itemLayouts.push(t),a.itemPanelKeys[t.i]=n})},close:()=>{e(e=>{e.panelEditor=void 0})}};e(e=>{void 0!==n&&w(e,n),e.panelEditor=a})},deletePanel(i){e(e=>{let{panelGroupId:n,panelGroupItemLayoutId:a}=i,t=e.panelGroups[n];if(void 0===t)throw Error(`Missing panel group ${n}`);let r=t.itemLayouts.findIndex(e=>e.i===a),l=t.itemPanelKeys[a];if(-1===r||void 0===l)throw Error(`Missing panel group item ${a}`);t.itemLayouts.splice(r,1),delete t.itemPanelKeys[a],!1===function(e,i){for(let n of Object.values(e))if(void 0!==Object.values(n.itemPanelKeys).find(e=>e===i))return!0;return!1}(e.panelGroups,l)&&delete e.panels[l]})},openDeletePanelDialog(i){let{panelGroupId:n,panelGroupItemLayoutId:a}=i,{panels:t,panelGroups:r}=g(),l=r[n];if(void 0===l)throw Error(`Panel group not found ${n}`);let s=l.itemPanelKeys[a];if(void 0===s)throw Error(`Could not find Panel Group item ${a}`);let o=t[s];if(void 0===o)throw Error(`Could not find panel ${s}`);e(e=>{e.deletePanelDialog={panelGroupItemId:i,panelName:o.spec.display.name,panelGroupName:l.title??""}})},closeDeletePanelDialog(){e(e=>{e.deletePanelDialog=void 0})},duplicatePanel(i){e(e=>{let n=e.panels,{panelGroupId:a,panelGroupItemLayoutId:t}=i,r=e.panelGroups[a];if(void 0===r)throw Error(`Missing panel group ${a}`);let l=r.itemPanelKeys[t];if(void 0===l)throw Error(`Could not find Panel Group item ${i}`);let s=n[l];if(void 0===s)throw Error(`Cannot find Panel with key '${l}'`);let o=r.itemLayouts.find(e=>e.i===t);if(void 0===o)throw Error(`Cannot find layout for Panel with key '${l}'`);let d=E(l,n);e.panels[d]=s;let c={i:v().toString(),w:o.w,h:o.h};r.itemLayouts=function(e,i,n){let a=P.sm,t=S(i),r=[],l=[],s=[];n.forEach(e=>{let i=S(e);i.y2<=t.y1?r.push(e):i.y1>=t.y2?s.push(e):l.push(e)}),l.sort((e,i)=>e.x-i.x);let o=l.findIndex(e=>e.i===i.i);if(o===l.length-1){if(t.x2+e.w<=a)return[...r,...l,{...e,x:t.x2,y:t.y1},...s]}else if(o>=0){let i=l[o+1];if(i&&S(i).x1-t.x2>=e.w)return l.splice(o+1,0,{...e,x:t.x2,y:t.y1}),[...r,...l,...s]}return[...r,...l,{x:t.x1,y:t.y2,...e},...s.map(i=>({...i,y:i.y+e.h}))]}(c,o,r.itemLayouts),r.itemPanelKeys[c.i]=d})},...(f=e,{viewPanel:{panelGroupItemId:void 0,panelRef:a},getViewPanel:()=>{var e,i,n;return e=m().panelGroups,i=m().viewPanel.panelGroupItemId,n=m().viewPanel.panelRef,i||(n?function(e,i){for(let n of Object.values(e)){let e=Object.entries(n.itemPanelKeys??[]).find(([e,n])=>n===i);if(e){let[i]=e;return{panelGroupId:n.id,panelGroupItemLayoutId:i}}}}(e,n):void 0)},setViewPanel(e){f(i=>{i.viewPanel={panelRef:void 0,panelGroupItemId:e};let n=function(e,i){if(!i)return;let n=e[i.panelGroupId];if(n)return n.itemPanelKeys[i.panelGroupItemLayoutId]}(m().panelGroups,e);t&&t(n)})}}),...A(...e),...L(...e),...T(...e),kind:r,metadata:l,display:s,duration:o,refreshInterval:d,datasources:c,ttl:u,isEditMode:!!n,setEditMode:e=>j({isEditMode:e}),setDashboard:({kind:e,metadata:i,spec:{display:n,panels:a={},layouts:t=[],duration:r,refreshInterval:l,datasources:s={}}})=>{j(o=>{o.kind=e,o.metadata=i,o.display=n,o.panels=a;let{panelGroups:d,panelGroupOrder:c}=C(t);o.panelGroups=d,o.panelGroupOrder=c,o.duration=r,o.refreshInterval=l??b.DEFAULT_REFRESH_INTERVAL,o.datasources=s})}}})))}let $=({isEditMode:e,setEditMode:i})=>({isEditMode:e,setEditMode:i});function B(){return z($)}let _=({setDashboard:e,openAddPanelGroup:i,openAddPanel:n})=>({setDashboard:e,openAddPanelGroup:i,openAddPanel:n});function F(){let{setDashboard:e,openAddPanelGroup:i,openAddPanel:n}=z(_);return{setDashboard:e,openAddPanelGroup:()=>i(),openAddPanel:()=>n()}}let N=e=>e.panelGroupOrder;function W(){return z(N)}let U=e=>e.panelGroups;function H(){let e=W(),i=z(U);return(0,u.useMemo)(()=>e.map(e=>{let n=i[e];if(void 0===n)throw Error(`Invalid panel group Id found ${e}`);return n}),[e,i])}function J(e){let i=z((0,u.useCallback)(i=>i.panelGroups[e],[e]));if(void 0===i)throw Error(`Panel group with Id ${e} was not found`);return i}let q=({openEditPanelGroup:e,deletePanelGroup:i,openAddPanel:n,updatePanelGroupLayouts:a})=>({openEditPanelGroup:e,deletePanelGroup:i,openAddPanel:n,updatePanelGroupLayouts:a});function Q(e){let{moveUp:i,moveDown:n}=function(e){let i=z((0,u.useCallback)(i=>i.panelGroupOrder.findIndex(i=>i===e),[e])),n=z(Y),a=z(K);if(i<0)throw Error(`Could not find panel group with Id ${e} in order array`);return{moveUp:i>0?()=>a(i,i-1):void 0,moveDown:i<n-1?()=>a(i,i+1):void 0}}(e),{openEditPanelGroup:a,deletePanelGroup:t,openAddPanel:r,updatePanelGroupLayouts:l}=z(q);return{openEditPanelGroup:()=>a(e),deletePanelGroup:()=>t(e),openAddPanel:()=>r(e),moveUp:i,moveDown:n,updatePanelGroupLayouts:i=>l(e,i)}}let K=e=>e.swapPanelGroups,Y=e=>e.panelGroupOrder.length,X=e=>e.panelGroupEditor;function ee(){return z(X)}let ei=({deletePanelGroupDialog:e,openDeletePanelGroupDialog:i,closeDeletePanelGroupDialog:n,deletePanelGroup:a})=>({deletePanelGroupDialog:e,openDeletePanelGroupDialog:i,closeDeletePanelGroupDialog:n,deletePanelGroup:a});function en(){let{deletePanelGroupDialog:e,openDeletePanelGroupDialog:i,closeDeletePanelGroupDialog:n,deletePanelGroup:a}=z(ei);return{deletePanelGroupDialog:e,deletePanelGroup:a,openDeletePanelGroupDialog:i,closeDeletePanelGroupDialog:()=>n()}}function ea(e){let{panelGroupId:i,panelGroupItemLayoutId:n}=e,a=z((0,u.useCallback)(e=>{let a=e.panelGroups[i]?.itemPanelKeys[n];if(void 0!==a)return e.panels[a]},[i,n]));if(void 0===a)throw Error(`Could not find panel for Id ${e}`);return a}let et=({openEditPanel:e,openDeletePanelDialog:i,duplicatePanel:n,setViewPanel:a})=>({openEditPanel:e,openDeletePanelDialog:i,duplicatePanel:n,setViewPanel:a});function er(e){let{openEditPanel:i,openDeletePanelDialog:n,duplicatePanel:a,setViewPanel:t}=z(et);return{openEditPanel:()=>i(e),openDeletePanelDialog:()=>n(e),duplicatePanel:()=>a(e),viewPanel:e=>t(e)}}let el=e=>e.panelEditor;function es(){return z(el)}let eo=({deletePanelDialog:e,deletePanel:i,closeDeletePanelDialog:n})=>({deletePanelDialog:e,deletePanel:i,closeDeletePanelDialog:n});function ed(){return z(eo)}let ec=e=>e.duration;function eu(){return z(ec)}let ep=e=>({setViewPanel:e.setViewPanel,getViewPanel:e.getViewPanel,viewPanelId:e.getViewPanel()});function eh(){return z(ep)}let ex=e=>e.getViewPanel();function eg(){return z(ex)}let ef=({saveChangesConfirmationDialog:e,openSaveChangesConfirmationDialog:i,closeSaveChangesConfirmationDialog:n})=>({saveChangesConfirmationDialog:e,openSaveChangesConfirmationDialog:i,closeSaveChangesConfirmationDialog:n});function em(){return z(ef)}let eb=({discardChangesConfirmationDialog:e,openDiscardChangesConfirmationDialog:i,closeDiscardChangesConfirmationDialog:n})=>({discardChangesConfirmationDialog:e,openDiscardChangesConfirmationDialog:i,closeDiscardChangesConfirmationDialog:n});function ej(){return z(eb)}let ev=({editJsonDialog:e,openEditJsonDialog:i,closeEditJsonDialog:n})=>({editJsonDialog:e,openEditJsonDialog:i,closeEditJsonDialog:n});function ey(){return z(ev)}let eC=()=>{let{openAddPanelGroup:e}=F();return(0,a.jsx)(l.InfoTooltip,{description:s.addGroup,children:(0,a.jsx)(t.Z,{startIcon:(0,a.jsx)(r.default,{}),onClick:e,"aria-label":s.addGroup,sx:d,children:"Panel Group"})})};var eD=n(31243);let ew=({variant:e="text",color:i="primary",label:n="Panel",fullWidth:r})=>{let{openAddPanel:o}=F();return(0,a.jsx)(l.InfoTooltip,{description:s.addPanel,children:(0,a.jsx)(t.Z,{startIcon:(0,a.jsx)(eD.default,{}),onClick:o,"aria-label":s.addPanel,variant:e,color:i,fullWidth:r,sx:d,children:n})})};var eZ=n(36372),eP=n(30788),ek=n(94776),eS=n(33711),eE=n(52054),eV=n(75094),eI=n(25283),eG=n(12449),eA=n(84974),eT=n(57739),eL=n(47501),eO=n(61679),ez=n(22446);function eR(e){let{panelGroupId:i,title:n,collapse:t}=e,r=(0,j.useReplaceVariablesInString)(n),{openAddPanel:d,openEditPanelGroup:c,moveUp:u,moveDown:p}=Q(i),{openDeletePanelGroupDialog:h}=en(),{isEditMode:x}=B(),g=(0,a.jsx)(eE.Z,{variant:"h2",children:r});return(0,a.jsx)(eZ.Z,{onClick:t?.onToggleOpen,sx:{display:"flex",justifyContent:"start",alignItems:"center",cursor:t?"pointer":"auto",backgroundColor:({palette:e})=>e.background.paper},"data-testid":"panel-group-header",children:t?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eV.Z,{sx:{marginRight:1},"aria-label":`${t.isOpen?"collapse":"expand"} group ${r}`,children:t.isOpen?(0,a.jsx)(eG.default,{}):(0,a.jsx)(eA.default,{})}),g,x&&(0,a.jsxs)(eI.Z,{direction:"row",marginLeft:"auto",children:[(0,a.jsx)(l.InfoTooltip,{description:s.addPanelToGroup,children:(0,a.jsx)(eV.Z,{"aria-label":o.addPanelToGroup(r),onClick:e=>{e.stopPropagation(),d()},children:(0,a.jsx)(eD.default,{})})}),(0,a.jsx)(l.InfoTooltip,{description:s.editGroup,children:(0,a.jsx)(eV.Z,{"aria-label":o.editGroup(r),onClick:e=>{e.stopPropagation(),c()},children:(0,a.jsx)(eT.default,{})})}),(0,a.jsx)(l.InfoTooltip,{description:s.deleteGroup,children:(0,a.jsx)(eV.Z,{"aria-label":o.deleteGroup(r),onClick:e=>{e.stopPropagation(),h(i)},children:(0,a.jsx)(ez.default,{})})}),(0,a.jsx)(l.InfoTooltip,{description:s.moveGroupDown,children:(0,a.jsx)(eV.Z,{"aria-label":o.moveGroupDown(r),disabled:void 0===p,onClick:e=>{e.stopPropagation(),p?.()},children:(0,a.jsx)(eO.default,{})})}),(0,a.jsx)(l.InfoTooltip,{description:s.moveGroupUp,children:(0,a.jsx)(eV.Z,{"aria-label":o.moveGroupUp(r),disabled:void 0===u,onClick:e=>{e.stopPropagation(),u?.()},children:(0,a.jsx)(eL.default,{})})})]})]}):g})}var eM=n(32647),e$=n(84954),eB=n(25635),e_=n(75276),eF=n(66224);function eN(e){let{kind:i,spec:n,contentDimensions:t,definition:r,queryResults:l}=e,{data:s,isLoading:o}=(0,j.usePlugin)("Panel",i,{throwOnError:!0}),d=s?.PanelComponent,c=s?.supportedQueryTypes||[];if(o)return(0,a.jsx)(eF.Z,{variant:"rectangular",width:t?.width,height:t?.height,"aria-label":"Loading..."});if(void 0===d)throw Error(`Missing PanelComponent from panel plugin for kind '${i}'`);for(let e of l)if(!c.includes(e.definition.kind))throw Error(`This panel does not support queries of type '${e.definition.kind}'. Supported query types: ${c.join(", ")}.`);return(0,a.jsx)(d,{spec:n,contentDimensions:t,definition:r,queryResults:l})}function eW(e){let{panelPluginKind:i,definition:n,queryResults:t,spec:r,contentDimensions:l}=e,{data:s,isLoading:o}=(0,j.usePlugin)("Panel",i,{throwOnError:!0});if(o)return(0,a.jsx)(eF.Z,{variant:"rectangular",width:l?.width,height:l?.height,"aria-label":"Loading..."});let d=t.flatMap(e=>e.data?[{data:e.data,definition:e.definition}]:[]);if(d.length>0||0===t.length)return(0,a.jsx)(eN,{kind:i,spec:r,contentDimensions:l,definition:n,queryResults:d});if(t.some(e=>e.isFetching))return(0,a.jsx)(eU,{plugin:s,spec:r,definition:n,contentDimensions:l});let c=t.find(e=>e.error);if(c)throw c.error;return(0,a.jsx)(eU,{plugin:s,spec:r,definition:n,contentDimensions:l})}function eU({plugin:e,spec:i,definition:n,contentDimensions:t}){return e?.LoadingComponent?(0,a.jsx)(e.LoadingComponent,{spec:i,contentDimensions:t,definition:n,queryResults:[]}):(0,a.jsx)(l.LoadingOverlay,{})}var eH=n(81652),eJ=n(12709),eq=n(50898),eQ=n(6714),eK=n(15758),eY=n(13801),eX=n(18979),e0=n(50345),e1=n(93051),e2=n(47512),e5=n(39398);let e4=(0,eJ.ZP)(eV.Z)(({theme:e})=>({borderRadius:e.shape.borderRadius,padding:"4px"}));var e3=n(5549),e8=n(10517),e6=n(60886),e7=n(14434);function e9({links:e}){let[i,n]=(0,u.useState)(null);if(1===e.length&&e[0]){let i=e[0];return(0,a.jsx)(ie,{link:i})}return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.InfoTooltip,{description:`${e.length} links`,enterDelay:100,children:(0,a.jsx)(eV.Z,{"aria-label":"Panel links",size:"small",onClick:e=>{n(e.currentTarget)},sx:e=>({borderRadius:e.shape.borderRadius,padding:"4px"}),children:(0,a.jsx)(e7.default,{"aria-describedby":"links-icon",fontSize:"inherit",sx:{color:e=>e.palette.text.secondary}})})}),(0,a.jsx)(e3.Z,{anchorEl:i,open:!!i,onClose:()=>{n(null)},MenuListProps:{"aria-labelledby":"panel-links"},children:e.map(e=>(0,a.jsx)(ii,{link:e},e.url))})]})}function ie({link:e}){let{url:i,name:n,tooltip:t,targetBlank:r}=ia(e);return(0,a.jsx)(l.InfoTooltip,{description:t??i,enterDelay:100,children:(0,a.jsx)(eV.Z,{"aria-label":n??i,size:"small",href:i,target:r?"_blank":"_self",sx:e=>({borderRadius:e.shape.borderRadius,padding:"4px"}),children:(0,a.jsx)(e7.default,{fontSize:"inherit",sx:{color:e=>e.palette.text.secondary}})})})}function ii({link:e}){let{url:i,name:n,tooltip:t,targetBlank:r}=ia(e);return(0,a.jsx)(l.InfoTooltip,{description:t??i,enterDelay:100,children:(0,a.jsx)(e8.Z,{component:e6.Z,href:i,target:r?"_blank":"_self",children:n??i})})}function ia(e){let i=(0,j.useReplaceVariablesInString)(e.url)??e.url,n=(0,j.useReplaceVariablesInString)(e.name),a=(0,j.useReplaceVariablesInString)(e.tooltip);return!1===e.renderVariables?e:{...e,url:i,name:n,tooltip:a}}let it=(0,eJ.ZP)(eZ.Z)({display:"none",alignItems:"center",flexGrow:1,justifyContent:"flex-end"}),ir=({editHandlers:e,readHandlers:i,extra:n,title:t,description:r,descriptionTooltipId:d,links:p,queryResults:h})=>{let x=(0,u.useMemo)(()=>{if(r&&r.trim().length>0)return(0,a.jsx)(l.InfoTooltip,{id:d,description:r,enterDelay:100,children:(0,a.jsx)(e4,{"aria-label":"panel description",size:"small",children:(0,a.jsx)(e5.default,{"aria-describedby":"info-tooltip","aria-hidden":!1,fontSize:"inherit",sx:{color:e=>e.palette.text.secondary}})})})},[d,r]),g=p&&p.length>0&&(0,a.jsx)(e9,{links:p}),f=void 0===e&&n,m=(0,u.useMemo)(()=>{let e=h.some(e=>e.data),i=h.some(e=>e.isFetching),n=h.filter(e=>e.error);if(i&&e)return(0,a.jsx)(eq.Z,{"aria-label":"loading",size:"1.125rem"});if(n.length>0){let e=n.map(e=>e.error).map(e=>e?.message??e?.toString()??"Unknown error").join("\n");return(0,a.jsx)(l.InfoTooltip,{description:e,children:(0,a.jsx)(e4,{"aria-label":"panel errors",size:"small",children:(0,a.jsx)(e2.default,{fontSize:"inherit"})})})}},[h]),b=(0,u.useMemo)(()=>{if(void 0!==i)return(0,a.jsx)(l.InfoTooltip,{description:s.viewPanel,children:(0,a.jsx)(e4,{"aria-label":o.viewPanel(t),size:"small",onClick:i.onViewPanelClick,children:i.isPanelViewed?(0,a.jsx)(eK.default,{fontSize:"inherit"}):(0,a.jsx)(eY.default,{fontSize:"inherit"})})})},[i,t]),j=(0,u.useMemo)(()=>{if(void 0!==e)return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.InfoTooltip,{description:s.editPanel,children:(0,a.jsx)(e4,{"aria-label":o.editPanel(t),size:"small",onClick:e.onEditPanelClick,children:(0,a.jsx)(eT.default,{fontSize:"inherit"})})}),(0,a.jsx)(l.InfoTooltip,{description:s.duplicatePanel,children:(0,a.jsx)(e4,{"aria-label":o.duplicatePanel(t),size:"small",onClick:e.onDuplicatePanelClick,children:(0,a.jsx)(e0.default,{fontSize:"inherit",sx:{transform:"scale(0.925)"}})})}),(0,a.jsx)(l.InfoTooltip,{description:s.deletePanel,children:(0,a.jsx)(e4,{"aria-label":o.deletePanel(t),size:"small",onClick:e.onDeletePanelClick,children:(0,a.jsx)(ez.default,{fontSize:"inherit"})})})]})},[e,t]),v=(0,u.useMemo)(()=>{if(j&&!i?.isPanelViewed)return(0,a.jsx)(l.InfoTooltip,{description:s.movePanel,children:(0,a.jsx)(e4,{"aria-label":o.movePanel(t),size:"small",children:(0,a.jsx)(eX.default,{className:"drag-handle",sx:{cursor:"grab"},fontSize:"inherit"})})})},[j,i,t]),y=(0,a.jsx)(eZ.Z,{sx:{flexGrow:1}}),C=({children:n})=>void 0!==e||i?.isPanelViewed?(0,a.jsx)(a.Fragment,{children:n}):(0,a.jsx)(eZ.Z,{sx:{display:"var(--panel-hover, none)"},children:n});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(it,{sx:e=>({[e.containerQueries(c).between(0,170)]:{display:"flex"}}),children:[y,(0,a.jsxs)(C,{children:[(0,a.jsxs)(il,{title:t,children:[x," ",g," ",m," ",f," ",b," ",j]}),v]})]}),(0,a.jsxs)(it,{sx:e=>({[e.containerQueries(c).between(170,220)]:{display:"flex"}}),children:[(0,a.jsxs)(C,{children:[x," ",g]}),y," ",m,(0,a.jsxs)(C,{children:[f," ",b,(0,a.jsx)(il,{title:t,children:j}),v]})]}),(0,a.jsxs)(it,{sx:e=>({display:"flex",[e.containerQueries(c).down(220)]:{display:"none"}}),children:[(0,a.jsxs)(C,{children:[x," ",g]}),y," ",m,(0,a.jsxs)(C,{children:[f," ",b," ",j," ",v]})]})]})},il=({children:e,title:i})=>{let[n,t]=(0,u.useState)();if(!((0,u.isValidElement)(e)||Array.isArray(e)&&e.some(u.isValidElement)))return;let r=()=>{t(void 0)},l=!!n,s=l?"actions-menu":void 0;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e4,{className:"show-actions","aria-describedby":s,onClick:e=>{t(e.currentTarget.getBoundingClientRect())},"aria-label":o.showPanelActions(i),size:"small",children:(0,a.jsx)(e1.default,{fontSize:"inherit"})}),(0,a.jsx)(eQ.ZP,{id:s,open:l,anchorReference:"anchorPosition",anchorPosition:n,onClose:r,anchorOrigin:{vertical:"bottom",horizontal:"left"},children:(0,a.jsx)(eI.Z,{direction:"row",alignItems:"center",sx:{padding:1},onClick:r,children:e})})]})};function is({id:e,title:i,description:n,links:t,queryResults:r,readHandlers:s,editHandlers:o,sx:d,extra:u,...p}){let h=`${e}-title`,x=`${e}-description`,g=(0,j.useReplaceVariablesInString)(i),f=(0,j.useReplaceVariablesInString)(n);return(0,a.jsx)(eH.Z,{id:e,component:"header","aria-labelledby":h,"aria-describedby":x,disableTypography:!0,title:(0,a.jsxs)(eI.Z,{direction:"row",children:[(0,a.jsx)(eE.Z,{id:h,variant:"subtitle1",sx:{lineHeight:"24px",minHeight:"26px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:g}),(0,a.jsx)(ir,{title:g,description:f,descriptionTooltipId:x,links:t,queryResults:r,readHandlers:s,editHandlers:o,extra:u})]}),sx:(0,l.combineSx)(e=>({containerType:"inline-size",containerName:c,padding:e.spacing(1),borderBottom:`solid 1px ${e.palette.divider}`,".MuiCardHeader-content":{overflow:"hidden"}}),d),...p})}let io=(0,u.memo)(function(e){let{definition:i,readHandlers:n,editHandlers:t,onMouseEnter:r,onMouseLeave:s,sx:o,panelOptions:d,panelGroupItemId:c,...p}=e,h=(0,l.useId)("Panel"),x=`${h}-header`,[g,f]=(0,u.useState)(null),{width:m,height:b}=(0,e_.default)({ref:g}),v=(0,u.useMemo)(()=>{if(void 0!==m&&void 0!==b)return{width:m,height:b}},[m,b]),y=(0,l.useChartsTheme)(),{queryResults:C}=(0,j.useDataQueriesContext)();return(0,a.jsxs)(e$.Z,{component:"section",sx:(0,l.combineSx)({width:"100%",height:"100%",display:"flex",flexFlow:"column nowrap",":hover":{"--panel-hover":"block"}},o),variant:"outlined",onMouseEnter:e=>{r?.(e)},onMouseLeave:e=>{s?.(e)},"aria-labelledby":x,"aria-describedby":x,"data-testid":"panel",...p,children:[!d?.hideHeader&&(0,a.jsx)(is,{extra:d?.extra?.({panelDefinition:i,panelGroupItemId:c}),id:x,title:i.spec.display.name,description:i.spec.display.description,queryResults:C,readHandlers:n,editHandlers:t,links:i.spec.links,sx:{paddingX:`${y.container.padding.default}px`}}),(0,a.jsx)(eB.Z,{component:"figure",sx:{position:"relative",overflow:"hidden",flexGrow:1,margin:0,padding:0,":last-child":{padding:0}},ref:f,children:(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,resetKeys:[i.spec],children:(0,a.jsx)(eW,{definition:i,panelPluginKind:i.spec.plugin.kind,spec:i.spec.plugin.spec,contentDimensions:v,queryResults:C})})})]})});function id(e){let i;let{panelGroupItemId:n,width:t}=e,r=ea(n),{spec:{queries:l}}=r,{isEditMode:s}=B(),{openEditPanel:o,openDeletePanelDialog:d,duplicatePanel:c,viewPanel:u}=er(n),p=eg(),{ref:h,inView:x}=(0,eM.YD)({threshold:.2,initialInView:!1,triggerOnce:!0}),g={isPanelViewed:p?.panelGroupId===n?.panelGroupId&&p?.panelGroupItemLayoutId===n?.panelGroupItemLayoutId,onViewPanelClick:function(){void 0===p?u(n):u(void 0)}};s&&(i={onEditPanelClick:o,onDuplicatePanelClick:c,onDeletePanelClick:d});let f=(0,j.useSuggestedStepMs)(t),{data:m}=(0,j.usePlugin)("Panel",r.spec.plugin.kind),b=(l??[]).map(e=>({kind:e.spec.plugin.kind,spec:e.spec.plugin.spec})),v="function"==typeof m?.queryOptions?m?.queryOptions(r.spec.plugin.spec):m?.queryOptions;return(0,a.jsx)(eZ.Z,{ref:h,sx:{width:"100%",height:"100%"},children:(0,a.jsx)(j.DataQueriesProvider,{definitions:b,options:{suggestedStepMs:f,...v},queryOptions:{enabled:x},children:x&&(0,a.jsx)(io,{definition:r,readHandlers:g,editHandlers:i,panelOptions:e.panelOptions,panelGroupItemId:n})})})}function ic(e){let[i,n]=(0,u.useState)(!0);return(0,u.useEffect)(()=>{i&&n(!1)},[i]),(0,a.jsx)(iu,{sx:[{"& + &":{marginTop:1},"& .react-grid-item.cssTransforms":{transitionProperty:i?"none":"transform"}},...Array.isArray(e.sx)?e.sx:[e.sx]],"data-testid":"panel-group",children:e.children})}let iu=(0,eJ.ZP)("section")(({theme:e})=>({"& .react-grid-layout":{position:"relative",transition:"height 200ms ease"},"& .react-grid-item":{transition:"all 200ms ease",transitionProperty:"left, top"},"& .react-grid-item img":{pointerEvents:"none",userSelect:"none"},"& .react-grid-item.cssTransforms":{transitionProperty:"transform"},"& .react-grid-item.resizing":{zIndex:1,willChange:"width, height"},"& .react-grid-item.react-draggable-dragging":{transition:"none",zIndex:3,willChange:"transform"},"& .react-grid-item.dropping":{visibility:"hidden"},"& .react-grid-item.react-grid-placeholder":{background:e.palette.primary.main,opacity:.2,transitionDuration:"100ms",zIndex:2,userSelect:"none",WebkitUserSelect:"none",MozUserSelect:"none",msUserSelect:"none",OUserSelect:"none"},"& .react-grid-item > .react-resizable-handle":{position:"absolute",width:"20px",height:"20px"},"& .react-grid-item > .react-resizable-handle::after":{content:'""',position:"absolute",right:"3px",bottom:"3px",width:"5px",height:"5px",borderRight:`2px solid ${e.palette.text.secondary}`,borderBottom:`2px solid ${e.palette.text.secondary}`},"& .react-resizable-hide > .react-resizable-handle":{display:"none"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-sw":{bottom:"0",left:"0",cursor:"sw-resize",transform:"rotate(90deg)"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-se":{bottom:"0",right:"0",cursor:"se-resize"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-nw":{top:"0",left:"0",cursor:"nw-resize",transform:"rotate(180deg)"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-ne":{top:"0",right:"0",cursor:"ne-resize",transform:"rotate(270deg)"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-w, &.react-grid-item > .react-resizable-handle.react-resizable-handle-e":{top:"50%",marginTop:"-10px",cursor:"ew-resize"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-w":{left:"0",transform:"rotate(135deg)"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-e":{right:"0",transform:"rotate(315deg)"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-n, &.react-grid-item > .react-resizable-handle.react-resizable-handle-s":{left:"50%",marginLeft:"-10px",cursor:"ns-resize"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-n":{top:"0",transform:"rotate(225deg)"},"& .react-grid-item > .react-resizable-handle.react-resizable-handle-s":{bottom:"0",transform:"rotate(45deg)"},"& .react-resizable":{position:"relative"},"& .react-resizable-handle":{position:"absolute",width:"20px",height:"20px",backgroundRepeat:"no-repeat",backgroundOrigin:"content-box",boxSizing:"border-box",backgroundImage:"url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+')",backgroundPosition:"bottom right",padding:"0 3px 3px 0"},"& .react-resizable-handle-sw":{bottom:"0",left:"0",cursor:"sw-resize",transform:"rotate(90deg)"},"& .react-resizable-handle-se":{bottom:"0",right:"0",cursor:"se-resize"},"& .react-resizable-handle-nw":{top:"0",left:"0",cursor:"nw-resize",transform:"rotate(180deg)"},"& .react-resizable-handle-ne":{top:"0",right:"0",cursor:"ne-resize",transform:"rotate(270deg)"},"& .react-resizable-handle-w, .react-resizable-handle-e":{top:"50%",marginTop:"-10px",cursor:"ew-resize"},"& .react-resizable-handle-w":{left:"0",transform:"rotate(135deg)"},"& .react-resizable-handle-e":{right:"0",transform:"rotate(315deg)"},"& .react-resizable-handle-n, .react-resizable-handle-s":{left:"50%",marginLeft:"-10px",cursor:"ns-resize"},"& .react-resizable-handle-n":{top:"0",transform:"rotate(225deg)"},"& .react-resizable-handle-s":{bottom:"0",transform:"rotate(45deg)"}}));function ip(e){let{panelGroupId:i,panelOptions:n,panelFullHeight:t}=e,r=(0,ek.Z)(),s=J(i),{updatePanelGroupLayouts:o}=Q(i),[d,c]=(0,u.useState)(!s.isCollapsed),{isEditMode:p}=B(),[h,x]=(0,u.useState)(0),g=eg(),f=g?.panelGroupId===i,m=g?.panelGroupItemLayoutId;(0,u.useEffect)(()=>{f&&c(!0)},[f]);let b=void 0===g||f,j=(0,u.useMemo)(()=>m?s.itemLayouts.map(e=>e.i===m?{h:Math.round(((t??window.innerHeight)-48)/40),i:m,w:48,x:0,y:0}:e):s.itemLayouts,[s.itemLayouts,m,t]),v=(0,u.useMemo)(()=>(0,eP.WidthProvider)(eP.Responsive),[]);return(0,a.jsxs)(ic,{sx:{display:b?"block":"none",height:m?`${t}px`:"unset",overflow:m?"hidden":"unset"},children:[void 0!==s.title&&(0,a.jsx)(eR,{panelGroupId:i,title:s.title,collapse:void 0===s.isCollapsed?void 0:{isOpen:d,onToggleOpen:()=>c(e=>!e)}}),(0,a.jsx)(eS.Z,{in:d,unmountOnExit:!0,appear:!1,"data-testid":"panel-group-content",children:(0,a.jsx)(v,{className:"layout",breakpoints:{sm:r.breakpoints.values.sm,xxs:0},cols:P,rowHeight:30,draggableHandle:".drag-handle",resizeHandles:["se"],isDraggable:p&&!f,isResizable:p&&!f,margin:[10,10],containerPadding:[0,10],layouts:{sm:j},onLayoutChange:(e,i)=>{let n=i.sm;n&&!f&&o(n)},onWidthChange:(e,i,n,a)=>{x((e-i[0]*(n-1)-2*a[0])/n)},allowOverlap:f,children:j.map(({i:e,w:t})=>(0,a.jsx)("div",{style:{display:void 0!==m?m===e?"unset":"none":"unset"},children:(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(id,{panelOptions:n,panelGroupItemId:{panelGroupId:i,panelGroupItemLayoutId:e},width:ih(t,h)})})},e))})})]})}let ih=(e,i)=>Number.isFinite(e)?Math.round(i*e+10*Math.max(0,e-1)):e;var ix=n(71783),ig=n(75586);function im(e,i){var n,a,t;let r={},l=[];return n=e,a=i,t=(e,i)=>{r[i]||(l.push(e),r[i]=!0)},n.forEach(e=>t(e,e.spec.name)),a.forEach(e=>e.definitions.forEach(i=>t(i,i.spec.name,e.source))),l}function ib(e,i){let n={value:null,loading:!1,overriding:!1,overridden:!1};switch(e.kind){case"TextVariable":n.value=i??e.spec.value;break;case"ListVariable":if(n.options=[],n.value=i??e.spec.defaultValue??null,n.options.length>0&&!n.value){let i=n.options[0]?.value??null;null!==i&&(n.value=e.spec.allowMultiple?[i]:i)}Array.isArray(n.value)&&1===n.value.length&&n.value[0]===b.DEFAULT_ALL_VALUE&&(n.value=b.DEFAULT_ALL_VALUE)}return n}function ij(e,i,n=[]){let a=new j.VariableStoreStateMap,t={};e.forEach(e=>{t[e.spec.name]=!0},{});let r={};return n.forEach(e=>{let n=e.source;e.definitions.forEach(e=>{let l=e.spec.name,s=i[l];a.set({source:n,name:l},{...ib(e,s||null),overridden:!!t[l]}),t[l]=!0,r[e.spec.name]=!0})},{}),e.forEach(e=>{let n=e.spec.name,t=i[n];a.set({name:n},{...ib(e,t||null),overriding:!!r[n]})}),t={},n.slice().reverse().forEach(e=>{let i=e.source;e.definitions.forEach(e=>{let n=e.spec.name,r=a.get({source:i,name:n});r&&(r.overriding=!!t[n]),t[n]=!0})}),a}var iv=n(51564);let iy="var-",iC={encode:function(e){return Array.isArray(e)?e.join(","):e},decode:e=>"string"==typeof e?function(e){if(!e)return null;let i=e.split(",");return 1===i.length?i[0]:i}(e):""},iD=(0,u.createContext)(void 0);function iw(){let e=(0,u.useContext)(iD);if(!e)throw Error("VariableStoreContext not initialized");return e}function iZ(e){let i=iw();return(0,x.s)(i,i=>{let n={};return(e??i.variableDefinitions.map(e=>e.spec.name)).forEach(e=>{let a=i.variableState.get({name:e});a&&!a.overridden&&(n[e]=a)}),i.externalVariableDefinitions.forEach(e=>{let a=e.source;e.definitions.forEach(e=>{let t=e.spec.name,r=i.variableState.get({name:t,source:a});r&&!r.overridden&&(n[t]=r)})}),n},(e,i)=>JSON.stringify(e)===JSON.stringify(i))}function iP(e,i){let n=iw();return(0,ix.oR)(n,n=>({state:n.variableState.get({name:e,source:i}),definition:((i?n.externalVariableDefinitions.find(e=>e.source===i)?.definitions:n.variableDefinitions)||[]).find(i=>i.spec.name===e)}))}function ik(){let e=iw();return(0,x.s)(e,e=>({setVariableValue:e.setVariableValue,setVariableLoading:e.setVariableLoading,setVariableOptions:e.setVariableOptions,setVariableDefinitions:e.setVariableDefinitions,setVariableDefaultValues:e.setVariableDefaultValues,getSavedVariablesStatus:e.getSavedVariablesStatus}),m.X)}function iS(){let e=iw();return(0,ix.oR)(e,e=>e.variableDefinitions)}function iE(){let e=iw();return(0,ix.oR)(e,e=>e.externalVariableDefinitions)}function iV({children:e,builtinVariables:i}){let n=iZ(),t=iS(),r=iE(),{absoluteTimeRange:l}=(0,j.useTimeRange)(),s=(0,u.useMemo)(()=>{let e={};return Object.keys(n).forEach(i=>{let a={...n[i]};if(a.value===b.DEFAULT_ALL_VALUE){let e=im(t,r).find(e=>e.spec.name===i);e?.kind==="ListVariable"&&e.spec.customAllValue?a.value=e.spec.customAllValue:a.value=a.options?.map(e=>e.value)??null}e[i]=a}),e},[n,t,r]),o=(0,u.useMemo)(()=>{let e=[{kind:"BuiltinVariable",spec:{name:"__from",value:()=>l.start.valueOf().toString(),source:"Dashboard",display:{name:"__from",description:"Start time of the current time range in unix millisecond epoch",hidden:!0}}},{kind:"BuiltinVariable",spec:{name:"__to",value:()=>l.end.valueOf().toString(),source:"Dashboard",display:{name:"__to",description:"End time of the current time range in unix millisecond epoch",hidden:!0}}},{kind:"BuiltinVariable",spec:{name:"__range",value:()=>(0,b.formatDuration)((0,b.intervalToPrometheusDuration)(l)),source:"Dashboard",display:{name:"__range",description:"The range for the current dashboard in human readable format",hidden:!0}}},{kind:"BuiltinVariable",spec:{name:"__range_s",value:()=>((l.end.valueOf()-l.start.valueOf())/1e3).toString(),source:"Dashboard",display:{name:"__range_s",description:"The range for the current dashboard in second",hidden:!0}}},{kind:"BuiltinVariable",spec:{name:"__range_ms",value:()=>(l.end.valueOf()-l.start.valueOf()).toString(),source:"Dashboard",display:{name:"__range_ms",description:"The range for the current dashboard in millisecond",hidden:!0}}}];return i?.forEach(i=>e.push(i)),e},[l,i]);return(0,a.jsx)(j.BuiltinVariableContext.Provider,{value:{variables:o},children:(0,a.jsx)(j.VariableContext.Provider,{value:{state:s},children:e})})}function iI({initialVariableDefinitions:e=[],externalVariableDefinitions:i=[],queryParams:n}){let a=function(e){let i={};return Object.keys(e).forEach(n=>{let a=e[n];a&&(i[n.replace(iy,"")]=a)}),i}(n?n[0]:{});return(0,h.M)()((0,g.mW)((0,f.n)((t,r)=>({variableState:ij(e,a,i),variableDefinitions:e,externalVariableDefinitions:i,setVariableDefinitions(e){t(n=>{n.variableDefinitions=e,n.variableState=ij(e,a,i)},!1,"[Variables] setVariableDefinitions")},setVariableOptions(e,i,n){t(a=>{let t=a.variableState.get({name:e,source:n});t&&(t.options=i)},!1,"[Variables] setVariableOptions")},setVariableLoading(e,i,n){t(a=>{let t=a.variableState.get({name:e,source:n});t&&(t.loading=i)},!1,"[Variables] setVariableLoading")},setVariableValue:(e,i,a)=>t(t=>{let r=i,l=t.variableState.get({name:e,source:a});if(l){if(Array.isArray(r)&&r.includes(b.DEFAULT_ALL_VALUE)&&(r=r.at(-1)===b.DEFAULT_ALL_VALUE?b.DEFAULT_ALL_VALUE:r.filter(e=>e!==b.DEFAULT_ALL_VALUE)),n)(0,n[1])({[`${iy}${e}`]:r});l.value=r}},!1,"[Variables] setVariableValue"),setVariableDefaultValues:()=>{let e=r().variableDefinitions,i=r().variableState,n=(0,ig.Uy)(e,e=>{e.forEach((n,a)=>{let t=n.spec.name;if("ListVariable"===n.kind){let r=i.get({name:t});r?.value!==void 0&&(e[a]={kind:"ListVariable",spec:(0,ig.Uy)(n.spec,e=>{e.defaultValue=r.value})})}else if("TextVariable"===n.kind){let r=i.get({name:t}),l="string"==typeof r?.value?r.value:"";r?.value!==void 0&&(e[a]={kind:"TextVariable",spec:(0,ig.Uy)(n.spec,e=>{e.value=l})})}})});return t(e=>{e.variableDefinitions=n},!1,"[Variables] setVariableDefaultValues"),n},getSavedVariablesStatus:()=>(function(e,i){let n=!1,a=[];for(let t of e){let e=t.spec.name;if("ListVariable"===t.kind){let r=i.get({name:e});r?.value!==null&&r?.value!==t.spec.defaultValue&&(a.push(e),n=!0)}else if("TextVariable"===t.kind){let r=i.get({name:e}),l="string"==typeof r?.value?r.value:"";t.spec.value!==l&&(a.push(e),n=!0)}}return{isSavedVariableModified:n,modifiedVariableNames:a}})(r().variableDefinitions,r().variableState)}))))}function iG({children:e,initialVariableDefinitions:i=[],externalVariableDefinitions:n=[],builtinVariableDefinitions:t=[]}){let[r]=(0,u.useState)(()=>iI({initialVariableDefinitions:i,externalVariableDefinitions:n}));return(0,a.jsx)(iD.Provider,{value:r,children:(0,a.jsx)(iV,{builtinVariables:t,children:e})})}function iA({children:e,initialVariableDefinitions:i=[],externalVariableDefinitions:n=[],builtinVariableDefinitions:t=[]}){let r=function(e){let i={};return e.forEach(e=>{var n;i[n=e.spec.name,`${iy}${n}`]=iC}),(0,iv.useQueryParams)(i,{updateType:"replaceIn"})}(im(i,n)),[l]=(0,u.useState)(()=>iI({initialVariableDefinitions:i,externalVariableDefinitions:n,queryParams:r}));return(0,a.jsx)(iD.Provider,{value:l,children:(0,a.jsx)(iV,{builtinVariables:t,children:e})})}var iT=n(315),iL=n(59019),iO=n(90190),iz=n(31889),iR=n(14968),iM=n(56174),i$=n(87895),iB=n(49538),i_=n(56656),iF=n(51640),iN=n(85474),iW=n(32964),iU=n(96205),iH=n(33755),iJ=n(58641),iq=n(22212),iQ=n(74081),iK=n(64315),iY=n(14371),iX=n(6849);function i0({builtinVariableDefinitions:e}){let i=(0,u.useMemo)(()=>{let i={};for(let n of e){let e=i[n.spec.source];if(e){e.push(n);continue}i[n.spec.source]=[n]}return i},[e]),n=(0,u.useMemo)(()=>{let e=[];for(let n in i)e.includes(n)||e.push(n);return e},[i]);return(0,a.jsx)(a.Fragment,{children:n.map(e=>(0,a.jsxs)(iB.Z,{sx:e=>({".MuiAccordionSummary-root":{backgroundColor:e.palette.background.lighter},".MuiAccordionDetails-root":{backgroundColor:e.palette.background.lighter}}),children:[(0,a.jsx)(i_.Z,{expandIcon:(0,a.jsx)(iX.default,{}),"aria-controls":"builtin",id:"builtin",children:(0,a.jsx)(eE.Z,{variant:"h2",children:(0,a.jsx)(l.InfoTooltip,{title:`${e} Built-in Variables`,description:"Variables computed during dashboard rendering.",children:(0,a.jsxs)("span",{children:[e," Built-in Variables"]})})})}),(0,a.jsx)(iN.Z,{children:(0,a.jsx)(iL.Z,{children:(0,a.jsxs)(iO.Z,{sx:{minWidth:650},"aria-label":"table of external variables",children:[(0,a.jsx)(iz.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{children:"Name"}),(0,a.jsx)(iU.Z,{children:"Description"})]})}),(0,a.jsx)(iM.Z,{children:(i[e]??[]).map(i=>(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{component:"th",scope:"row",sx:{fontWeight:"bold"},children:i.spec.name}),(0,a.jsx)(iU.Z,{children:i.spec.display?.description??""})]},e+"-"+i.spec.name))})]})})})]},e))})}function i1(e){return j.VARIABLE_TYPES.find(i=>i.kind===e)?.label}function i2(e){let[i,n]=(0,iJ.x)(e.variableDefinitions),[r,s]=(0,u.useState)(null),[o,d]=(0,u.useState)("update"),c=e.externalVariableDefinitions,p=e.builtinVariableDefinitions,h=(0,u.useMemo)(()=>(function(e){let i=[],n=e.map(e=>e.spec.name),a=new Set(n);return n.length!==a.size&&i.push("Variable names must be unique"),{errors:i,isValid:0===i.length}})(i),[i]),[x]=(0,u.useMemo)(()=>[ij(i,{},c)],[c,i]),g="number"==typeof r&&i[r],{openDiscardChangesConfirmationDialog:f,closeDiscardChangesConfirmationDialog:m}=ej(),b=e=>{n(i=>{i.splice(e,1)})},v=e=>{d("update"),s(e)},y=(e,i)=>{n(n=>{let a=n[e];a&&(a.spec.display||(a.spec.display={name:a.spec.name,hidden:!1}),a.spec.display.hidden=!1===i)})},C=(e,i)=>{n(n=>{if("up"===i){let i=n[e-1],a=n[e];0!==e&&i&&a&&(n[e-1]=a,n[e]=i)}else{let i=n[e+1],a=n[e];if(e===n.length-1||!i||!a)return;n[e+1]=a,n[e]=i}})},D=e=>{n(i=>{i.push(e)})};return(0,a.jsxs)(a.Fragment,{children:[g&&(0,a.jsx)(j.ValidationProvider,{children:(0,a.jsx)(j.VariableEditorForm,{initialVariableDefinition:g,action:o,isDraft:!0,onActionChange:d,onSave:e=>{n(i=>{i[r]=e,s(null)})},onClose:()=>{"create"===o&&b(r),s(null)}})}),!g&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(eZ.Z,{sx:{display:"flex",alignItems:"center",padding:e=>e.spacing(1,2),borderBottom:e=>`1px solid ${e.palette.divider}`},children:[(0,a.jsx)(eE.Z,{variant:"h2",children:"Edit Dashboard Variables"}),(0,a.jsxs)(eI.Z,{direction:"row",spacing:1,marginLeft:"auto",children:[(0,a.jsx)(t.Z,{disabled:e.variableDefinitions===i||!h.isValid,variant:"contained",onClick:()=>{e.onChange(i)},children:"Apply"}),(0,a.jsx)(t.Z,{color:"secondary",variant:"outlined",onClick:()=>{JSON.stringify(e.variableDefinitions)!==JSON.stringify(i)?f({onDiscardChanges:()=>{m(),e.onCancel()},onCancel:()=>{m()},description:"You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered."}):e.onCancel()},children:"Cancel"})]})]}),(0,a.jsx)(eZ.Z,{padding:2,sx:{overflowY:"scroll"},children:(0,a.jsxs)(eI.Z,{spacing:2,children:[(0,a.jsxs)(eI.Z,{spacing:2,children:[!h.isValid&&h.errors.map(e=>(0,a.jsx)(iT.Z,{severity:"error",children:e},e)),(0,a.jsx)(iL.Z,{children:(0,a.jsxs)(iO.Z,{sx:{minWidth:650},"aria-label":"table of variables",children:[(0,a.jsx)(iz.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(i5,{children:"Visibility"}),(0,a.jsx)(i5,{children:"Name"}),(0,a.jsx)(i5,{children:"Type"}),(0,a.jsx)(i5,{children:"Description"}),(0,a.jsx)(i5,{align:"right",children:"Actions"})]})}),(0,a.jsx)(iM.Z,{children:i.map((e,n)=>(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(i5,{component:"th",scope:"row",children:(0,a.jsx)(i$.Z,{checked:e.spec.display?.hidden!==!0,onChange:e=>{y(n,e.target.checked)}})}),(0,a.jsx)(i5,{component:"th",scope:"row",sx:{fontWeight:"bold"},children:(0,a.jsx)(i4,{name:e.spec.name,state:x.get({name:e.spec.name})})}),(0,a.jsx)(i5,{children:i1(e.kind)??e.kind}),(0,a.jsx)(i5,{children:e.spec.display?.description??""}),(0,a.jsxs)(i5,{align:"right",sx:{whiteSpace:"nowrap"},children:[(0,a.jsx)(eV.Z,{onClick:()=>C(n,"up"),disabled:0===n,children:(0,a.jsx)(eL.default,{})}),(0,a.jsx)(eV.Z,{onClick:()=>C(n,"down"),disabled:n===i.length-1,children:(0,a.jsx)(eO.default,{})}),(0,a.jsx)(eV.Z,{onClick:()=>v(n),children:(0,a.jsx)(iq.default,{})}),(0,a.jsx)(eV.Z,{onClick:()=>b(n),children:(0,a.jsx)(iQ.default,{})})]})]},e.spec.name))})]})}),(0,a.jsx)(eZ.Z,{display:"flex",children:(0,a.jsx)(t.Z,{variant:"contained",startIcon:(0,a.jsx)(iH.default,{}),sx:{marginLeft:"auto"},onClick:()=>{d("create"),n(e=>{e.push({kind:"TextVariable",spec:{name:"NewVariable",value:""}})}),s(i.length)},children:"Add Variable"})})]}),c&&!c.every(e=>0===e.definitions.length)&&c.map((e,i)=>e.definitions.length>0&&(0,a.jsxs)(iB.Z,{sx:e=>({".MuiAccordionSummary-root":{backgroundColor:e.palette.background.lighter},".MuiAccordionDetails-root":{backgroundColor:e.palette.background.lighter}}),children:[(0,a.jsx)(i_.Z,{expandIcon:(0,a.jsx)(iX.default,{}),"aria-controls":e.source,id:e.source,children:(0,a.jsx)(eI.Z,{flexDirection:"row",alignItems:"center",justifyContent:"start",children:(0,a.jsxs)(a.Fragment,{children:[e.tooltip?(0,a.jsx)(eE.Z,{variant:"h2",children:(0,a.jsx)(l.InfoTooltip,{title:e.tooltip.title||"",description:e.tooltip.description||"",children:(0,a.jsxs)("span",{children:[(0,iF.Z)(e.source)," Variables"]})})}):(0,a.jsxs)(eE.Z,{variant:"h2",children:[(0,iF.Z)(e.source)," Variables"]}),e.editLink&&(0,a.jsx)(eV.Z,{href:e.editLink,target:"_blank",children:(0,a.jsx)(iY.default,{fontSize:"small"})})]})})}),(0,a.jsx)(iN.Z,{children:(0,a.jsx)(iL.Z,{children:(0,a.jsxs)(iO.Z,{sx:{minWidth:650},"aria-label":"table of external variables",children:[(0,a.jsx)(iz.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(i5,{children:"Visibility"}),(0,a.jsx)(i5,{children:"Name"}),(0,a.jsx)(i5,{children:"Type"}),(0,a.jsx)(i5,{children:"Description"}),(0,a.jsx)(i5,{align:"right",children:"Actions"})]})}),(0,a.jsx)(iM.Z,{children:e.definitions.map(i=>(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(i5,{component:"th",scope:"row",children:(0,a.jsx)(i$.Z,{checked:i.spec.display?.hidden!==!0,disabled:!0})}),(0,a.jsx)(i5,{component:"th",scope:"row",sx:{fontWeight:"bold"},children:(0,a.jsx)(i4,{name:i.spec.name,state:x.get({name:i.spec.name,source:e.source})})}),(0,a.jsx)(i5,{children:i1(i.kind)??i.kind}),(0,a.jsx)(i5,{children:i.spec.display?.description??""}),(0,a.jsxs)(i5,{align:"right",children:[(0,a.jsx)(iW.Z,{title:"Override",children:(0,a.jsx)(eV.Z,{onClick:()=>D(i),disabled:!!x.get({name:i.spec.name}),children:(0,a.jsx)(iK.default,{})})}),(0,a.jsx)(eV.Z,{disabled:!0,children:(0,a.jsx)(eL.default,{})}),(0,a.jsx)(eV.Z,{disabled:!0,children:(0,a.jsx)(eO.default,{})}),(0,a.jsx)(eV.Z,{disabled:!0,children:(0,a.jsx)(iq.default,{})}),(0,a.jsx)(eV.Z,{disabled:!0,children:(0,a.jsx)(iQ.default,{})})]})]},i.spec.name))})]})})})]},i)),p&&(0,a.jsx)(i0,{builtinVariableDefinitions:p})]})})]})]})}let i5=(0,eJ.ZP)(iU.Z)(({theme:e})=>({borderBottom:`solid 1px ${e.palette.divider}`}));function i4(e){let{name:i,state:n}=e;return(0,a.jsxs)(a.Fragment,{children:[!n?.overridden&&`${i} `,!n?.overridden&&n?.overriding&&(0,a.jsx)(eZ.Z,{fontWeight:"normal",color:e=>e.palette.primary.main,children:"(overriding)"}),n?.overridden&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eZ.Z,{color:e=>e.palette.grey[500],children:i}),(0,a.jsx)(eZ.Z,{fontWeight:"normal",color:e=>e.palette.grey[500],children:"(overridden)"})]})]})}function i3({variant:e="text",label:i="Variables",color:n="primary",fullWidth:r}){let[o,c]=(0,u.useState)(!1),p=iS(),h=iE(),x=(0,j.useBuiltinVariableDefinitions)(),{setVariableDefinitions:g}=ik(),f=()=>{c(!1)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.InfoTooltip,{description:s.editVariables,children:(0,a.jsx)(t.Z,{startIcon:(0,a.jsx)(eT.default,{}),onClick:()=>{c(!0)},"aria-label":s.editVariables,variant:e,color:n,fullWidth:r,sx:d,children:i})}),(0,a.jsx)(l.Drawer,{isOpen:o,onClose:f,PaperProps:{sx:{width:"50%"}},"data-testid":"variable-editor",children:(0,a.jsx)(i2,{variableDefinitions:p,externalVariableDefinitions:h,builtinVariableDefinitions:x,onCancel:f,onChange:e=>{g(e),c(!1)}})})]})}let i8=({label:e="Edit",onClick:i})=>(0,a.jsx)(t.Z,{onClick:i,startIcon:(0,a.jsx)(eT.default,{}),variant:"outlined",color:"secondary",sx:{whiteSpace:"nowrap",minWidth:"auto"},children:e}),i6="Let's get started",i7={edit:"We currently support time series charts, gauge charts, stat charts and more!",view:"This dashboard is currently empty. Get started by clicking the edit button."},i9={variant:"outlined",color:"secondary"},ne=({actions:e,isEditMode:i,onEditButtonClick:n})=>e&&"boolean"!=typeof e?e:!1===e?null:i?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(ew,{variant:"outlined",color:"secondary",label:"Add Panel",fullWidth:!0}),(0,a.jsx)(i3,{variant:"outlined",color:"secondary",label:"Add Variables",fullWidth:!0})]}):n?(0,a.jsx)(i8,{...i9,label:"Edit Dashboard",onClick:n}):null,ni=({title:e=i6,image:i,description:n,additionalText:t,actions:r,onEditButtonClick:l})=>{let{isEditMode:s}=B(),o=s?i7.edit:i7.view,d=(0,a.jsx)(ne,{actions:r,onEditButtonClick:l,isEditMode:s});return(0,a.jsxs)(eZ.Z,{sx:{width:"500px",textAlign:"center",margin:"0 auto"},children:[(0,a.jsxs)(eZ.Z,{sx:{width:"289px",margin:"0 auto"},children:[!!i&&i,(0,a.jsx)(eE.Z,{variant:"h2",gutterBottom:!0,children:e}),(0,a.jsx)(eE.Z,{variant:"body1",children:n??o}),d&&(0,a.jsx)(eZ.Z,{sx:{display:"flex",gap:2,marginTop:1,justifyContent:"center"},children:d})]}),t&&(0,a.jsx)(eE.Z,{variant:"subtitle1",sx:{marginTop:12},children:t})]})};function nn({emptyDashboardProps:e,panelOptions:i,...n}){let t=W(),r=(0,u.useRef)(null),s=!t.length,o=r.current?.getBoundingClientRect().top??165,d=window.innerHeight-o-window.scrollY;return(0,a.jsx)(eZ.Z,{...n,sx:{height:"100%"},ref:r,children:(0,a.jsxs)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:[s&&(0,a.jsx)(eZ.Z,{sx:{height:"100%",display:"flex",alignItems:"center"},children:(0,a.jsx)(ni,{...e})}),!s&&t.map(e=>(0,a.jsx)(ip,{panelGroupId:e,panelOptions:i,panelFullHeight:d},e))]})})}var na=n(76439),nt=n(70313),nr=n(18873),nl=n(29379),ns=n(18971);function no(){let{panels:e,panelGroups:i,panelGroupOrder:n,setDashboard:a,kind:t,metadata:r,display:l,duration:s,refreshInterval:o,datasources:d,ttl:c}=z(({panels:e,panelGroups:i,panelGroupOrder:n,setDashboard:a,kind:t,metadata:r,display:l,duration:s,refreshInterval:o,datasources:d,ttl:c})=>({panels:e,panelGroups:i,panelGroupOrder:n,setDashboard:a,kind:t,metadata:r,display:l,duration:s,refreshInterval:o,datasources:d,ttl:c})),{setVariableDefinitions:u}=ik(),p=iS(),h=function(e,i){let n=[];return i.map(i=>{let a;let t=e[i];if(void 0===t)throw Error("panel group not found");let{title:r,isCollapsed:l,itemLayouts:s,itemPanelKeys:o}=t;r&&(a={title:r,collapse:{open:!l}});let d={kind:"Grid",spec:{display:a,items:s.map(e=>{let i=o[e.i];if(void 0===i)throw Error(`Missing panel key of layout ${e.i}`);return{x:e.x,y:e.y,width:e.w,height:e.h,content:(0,b.createPanelRef)(i)}})}};n.push(d)}),n}(i,n);return{dashboard:"Dashboard"===t?{kind:t,metadata:r,spec:{display:l,panels:e,layouts:h,variables:p,duration:s,refreshInterval:o,datasources:d}}:{kind:t,metadata:r,spec:{display:l,panels:e,layouts:h,variables:p,duration:s,refreshInterval:o,datasources:d,ttl:c}},setDashboard:e=>{u(e.spec.variables),a(e)}}}function nd(){let{dashboard:e}=no(),i=(0,u.useRef)(null),[n,t]=p().useState(null),r=!!n,s=(n,a)=>()=>{t(null);let r,l="";switch(n){case"json":r="application/json",l=JSON.stringify(e,null,2);break;case"yaml":if(r="application/yaml","cr"===a){let i=e.metadata.name.toLowerCase().replace(/[^a-z0-9-]/g,"-");l=(0,ns.Pz)({apiVersion:"perses.dev/v1alpha1",kind:"PersesDashboard",metadata:{labels:{"app.kubernetes.io/name":"perses-dashboard","app.kubernetes.io/instance":i,"app.kubernetes.io/part-of":"perses-operator"},name:i},namespace:e.metadata.project,spec:e.spec})}else l=(0,ns.Pz)(e)}if(!i||!i.current)return;let s=URL.createObjectURL(new Blob([l],{type:r}));i.current.download=`${e.metadata.name}${"cr"===a?"-cr":""}.${n}`,i.current.href=s,i.current.click(),URL.revokeObjectURL(s)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.ToolbarIconButton,{id:"download-dashboard-button","aria-controls":r?"basic-menu":void 0,"aria-haspopup":"true","aria-expanded":r?"true":void 0,onClick:e=>{t(e.currentTarget)},children:(0,a.jsx)(nl.default,{})}),(0,a.jsx)(e3.Z,{id:"download-dashboard-formats",anchorEl:n,open:r,hideBackdrop:!0,onClose:()=>t(null),MenuListProps:{"aria-labelledby":"download-dashboard-button"},children:(0,a.jsx)("div",{children:(0,a.jsx)(nt.d,{onClickAway:()=>t(null),children:(0,a.jsxs)(nr.Z,{children:[(0,a.jsx)(e8.Z,{onClick:s("json"),children:"JSON"}),(0,a.jsx)(e8.Z,{onClick:s("yaml"),children:"YAML"}),(0,a.jsx)(e8.Z,{onClick:s("yaml","cr"),children:"YAML (CR)"})]})})})}),(0,a.jsx)("a",{ref:i,style:{display:"none"}})]})}function nc(e){let[i,n]=(0,iJ.x)(e.datasources),[r,l]=(0,u.useState)("update"),[s,o]=(0,u.useState)(null),d={default:!1,plugin:{kind:"PrometheusDatasource",spec:{}}},{openDiscardChangesConfirmationDialog:c,closeDiscardChangesConfirmationDialog:p}=ej(),h=e=>{n(i=>{delete i[e]})},x=e=>{l("update"),o({name:e,spec:i[e]??d})};return(0,a.jsx)(a.Fragment,{children:s?(0,a.jsx)(j.ValidationProvider,{children:(0,a.jsx)(j.DatasourceEditorForm,{initialDatasourceDefinition:s,action:r,isDraft:!0,onActionChange:l,onSave:e=>{n(i=>{delete i[s.name],i[e.name]=e.spec,o(null)})},onClose:()=>{o(null)}})}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(eZ.Z,{sx:{display:"flex",alignItems:"center",padding:e=>e.spacing(1,2),borderBottom:e=>`1px solid ${e.palette.divider}`},children:[(0,a.jsx)(eE.Z,{variant:"h2",children:"Edit Dashboard Datasources"}),(0,a.jsxs)(eI.Z,{direction:"row",spacing:1,marginLeft:"auto",children:[(0,a.jsx)(t.Z,{disabled:e.datasources===i,variant:"contained",onClick:()=>{e.onChange(i)},children:"Apply"}),(0,a.jsx)(t.Z,{color:"secondary",variant:"outlined",onClick:()=>{JSON.stringify(e.datasources)!==JSON.stringify(i)?c({onDiscardChanges:()=>{p(),e.onCancel()},onCancel:()=>{p()},description:"You have unapplied changes. Are you sure you want to discard these changes? Changes cannot be recovered."}):e.onCancel()},children:"Cancel"})]})]}),(0,a.jsx)(eZ.Z,{padding:2,sx:{overflowY:"scroll"},children:(0,a.jsx)(eI.Z,{spacing:2,children:(0,a.jsxs)(eI.Z,{spacing:2,children:[(0,a.jsx)(iL.Z,{children:(0,a.jsxs)(iO.Z,{sx:{minWidth:650},"aria-label":"table of datasources",children:[(0,a.jsx)(iz.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{children:"Name"}),(0,a.jsx)(iU.Z,{children:"Type"}),(0,a.jsx)(iU.Z,{children:"Description"}),(0,a.jsx)(iU.Z,{align:"right",children:"Actions"})]})}),(0,a.jsx)(iM.Z,{children:Object.entries(i).map(([e,i])=>(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{component:"th",scope:"row",sx:{fontWeight:"bold"},children:e}),(0,a.jsx)(iU.Z,{children:i.plugin.kind}),(0,a.jsx)(iU.Z,{children:i.display?.description??""}),(0,a.jsxs)(iU.Z,{align:"right",sx:{whiteSpace:"nowrap"},children:[(0,a.jsx)(eV.Z,{onClick:()=>x(e),children:(0,a.jsx)(iq.default,{})}),(0,a.jsx)(eV.Z,{onClick:()=>h(e),children:(0,a.jsx)(iQ.default,{})})]})]},e))})]})}),(0,a.jsx)(eZ.Z,{display:"flex",children:(0,a.jsx)(t.Z,{variant:"contained",startIcon:(0,a.jsx)(iH.default,{}),sx:{marginLeft:"auto"},onClick:()=>{l("create"),o({name:"NewDatasource",spec:d})},children:"Add Datasource"})})]})})})]})})}function nu(){let[e,i]=(0,u.useState)(!1),{getLocalDatasources:n,setLocalDatasources:r,getSavedDatasources:o,setSavedDatasources:c}=(0,j.useDatasourceStore)(),p=n(),h=o(),{dashboard:x,setDashboard:g}=no(),f=()=>{i(!1)};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.InfoTooltip,{description:s.editDatasources,children:(0,a.jsx)(t.Z,{startIcon:(0,a.jsx)(eT.default,{}),onClick:()=>{i(!0)},"aria-label":s.editDatasources,variant:"text",color:"primary",sx:d,children:"Datasources"})}),(0,a.jsx)(l.Drawer,{isOpen:e,onClose:f,PaperProps:{sx:{width:"50%"}},"data-testid":"datasource-editor",children:(0,a.jsx)(nc,{datasources:p,onCancel:f,onChange:e=>{let n=Object.keys(e).filter(i=>{let n="directUrl"in(e[i]?.plugin?.spec??{}),a=!n&&!("directUrl"in(h[i]?.plugin?.spec??{}))&&e[i]?.plugin?.spec?.proxy===h[i]?.plugin?.spec?.proxy;return n||a}).reduce((i,n)=>(i[n]=e[n],i),{});g((x.kind,{...x,spec:{...x.spec,datasources:e}})),c(n),r(e),i(!1)}})})]})}var np=n(40427);let nh=e=>{let{isReadonly:i}=e,{openEditJsonDialog:n}=ey(),t=i?s.viewJson:s.editJson;return(0,a.jsx)(l.InfoTooltip,{description:t,children:(0,a.jsx)(l.ToolbarIconButton,{"aria-label":t,variant:"outlined",onClick:()=>n(),children:(0,a.jsx)(np.default,{})})})},nx=({onSave:e,isDisabled:i,variant:n="contained"})=>{let[r,l]=(0,u.useState)(!1),{dashboard:s,setDashboard:o}=no(),{getSavedVariablesStatus:d,setVariableDefaultValues:c}=ik(),{isSavedVariableModified:p}=d(),{timeRange:h}=(0,j.useTimeRange)(),{setEditMode:x}=B(),{openSaveChangesConfirmationDialog:g,closeSaveChangesConfirmationDialog:f}=em(),m=async()=>{if(e)try{l(!0),await e(s),f(),x(!1)}catch(e){throw Error(`An error occurred while saving the dashboard. ${e}`)}finally{l(!1)}else x(!1)};return(0,a.jsx)(t.Z,{variant:n,onClick:()=>{let e=(0,b.isRelativeTimeRange)(h)&&s.spec.duration!==h.pastDuration;e||p?g({onSaveChanges:(e,i)=>{if((0,b.isRelativeTimeRange)(h)&&!0===e&&(s.spec.duration=h.pastDuration),!0===i){let e=c();s.spec.variables=e}o(s),m()},onCancel:()=>{f()},isSavedDurationModified:e,isSavedVariableModified:p}):m()},disabled:i||r,children:"Save"})};var ng=n(53620),nf=n(13098),nm=n(75186),nb=n(42402),nj=n(75651),nv=n(11774),ny=n(8695),nC=n(37809);function nD({name:e,source:i}){let n=iP(e,i),t=n.definition?.kind;switch(t){case"TextVariable":return(0,a.jsx)(nS,{name:e,source:i});case"ListVariable":return(0,a.jsx)(nk,{name:e,source:i})}return(0,a.jsxs)("div",{children:["Unsupported Variable Kind: $",t]})}function nw(e,i,n){let a=e?.allowMultiple===!0,t=e?.allowAllValue===!0,r=e?.sort,l=(0,u.useMemo)(()=>n.isFetching??!1,[n.isFetching]),s=(0,u.useMemo)(()=>n.data??[],[n.data]),o=i?.value;a&&!Array.isArray(o)&&(o="string"==typeof o?[o]:[]);let d=(0,u.useMemo)(()=>{let e=s?[...s]:[];if(!r||"none"===r)return e;switch(r){case"alphabetical-asc":return e.sort((e,i)=>e.label>i.label?1:-1);case"alphabetical-desc":return e.sort((e,i)=>e.label>i.label?-1:1);case"numerical-asc":return e.sort((e,i)=>parseInt(e.label)>parseInt(i.label)?1:-1);case"numerical-desc":return e.sort((e,i)=>parseInt(e.label)<parseInt(i.label)?1:-1);case"alphabetical-ci-asc":return e.sort((e,i)=>e.label.toLowerCase()>i.label.toLowerCase()?1:-1);case"alphabetical-ci-desc":return e.sort((e,i)=>e.label.toLowerCase()>i.label.toLowerCase()?-1:1);default:return e}},[s,r]),c=(0,u.useMemo)(()=>{let e=d;return t&&(e=[{value:b.DEFAULT_ALL_VALUE,label:"All"},...e]),e},[t,d]),p=(0,u.useMemo)(()=>!!c.find(e=>a?o.includes(e.value):o===e.value),[c,o,a]);o=(0,u.useMemo)(()=>{let e=c?.[+!!t]?.value;return!e||p&&o&&0!==o.length?o:a?[e]:e},[c,o,p,a,t]);let h=(0,u.useMemo)(()=>Array.isArray(o)?c.filter(e=>o?.includes(e.value)):c.find(e=>o===e.value)??{value:"",label:""},[o,c]);return{value:o,loading:l,options:s,selectedOptions:h,viewOptions:c}}let nZ=e=>(0,a.jsx)(nj.Z,{...e,sx:{minWidth:"fit-content"},placement:"bottom-start"}),nP=(e,i)=>{let n=(e.length+1)*8+40*("list"===i);return n<120?120:n>500?500:n};function nk({name:e,source:i}){let n=iP(e,i),t=n.definition,r=(0,j.useListVariablePluginValues)(t),{setVariableValue:l,setVariableLoading:s,setVariableOptions:o}=ik(),{selectedOptions:d,value:c,loading:p,options:h,viewOptions:x}=nw(t?.spec,n.state,r),[g,f]=(0,u.useState)(120),[m,v]=(0,u.useState)(""),y=t?.spec.display?.name??e,C=t?.spec.allowMultiple===!0,D=t?.spec.allowAllValue===!0;return(0,u.useEffect)(()=>{c&&l(e,c,i)},[l,e,c,i]),(0,u.useEffect)(()=>{s(e,p,i)},[s,e,p,i]),(0,u.useEffect)(()=>{h&&o(e,h,i)},[o,e,h,i]),(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(nv.Z,{disablePortal:!0,disableCloseOnSelect:C,multiple:C,fullWidth:!0,limitTags:3,size:"small",disableClearable:!0,slots:{popper:nZ},renderInput:e=>C?(0,a.jsx)(ny.Z,{...e,label:y,onChange:e=>v(e.target.value)}):(0,a.jsx)(ny.Z,{...e,label:y,style:{width:`${g}px`}}),sx:{"& .MuiInputBase-root":{minHeight:"38px"},"& .MuiAutocomplete-tag":{margin:"1px 2px"}},value:d,onChange:(n,a)=>{if((null===a||Array.isArray(a)&&0===a.length)&&D)l(e,b.DEFAULT_ALL_VALUE,i);else l(e,null===a?null:Array.isArray(a)?a.map(e=>e.value):a.value,i)},inputValue:C?m:void 0,onInputChange:(e,i)=>{C||f(nP(i,"list"))},onBlur:()=>{C&&v("")},options:x}),p&&(0,a.jsx)(nC.Z,{})]})}function nS({name:e,source:i}){let n=iP(e,i),t=n.state,r=n.definition,[l,s]=(0,u.useState)(t?.value??""),[o,d]=(0,u.useState)(nP(l,"text")),{setVariableValue:c}=ik();return(0,u.useEffect)(()=>{s(t?.value??"")},[t?.value]),(0,a.jsx)(ny.Z,{title:l,value:l,onChange:e=>{s(e.target.value),d(nP(e.target.value,"text"))},onBlur:()=>c(e,l,i),placeholder:e,label:r?.spec.display?.name??e,slotProps:{input:{readOnly:r?.spec.constant??!1}},sx:{width:`${o}px`,"& .MuiInputBase-root":{minHeight:"38px"},"& .MuiInputBase-input":{textOverflow:"ellipsis"}}})}function nE(){let e=iS(),i=iE();return(0,a.jsxs)(a.Fragment,{children:[i.slice().reverse().map(e=>e.definitions.map(i=>(0,a.jsx)(nV,{spec:i.spec,source:e.source},i.spec.name+e.source))),e.map(e=>(0,a.jsx)(nV,{spec:e.spec},e.spec.name))]})}function nV({spec:e,source:i}){let n=iP(e.name,i);return n.state?.overridden?null:(0,a.jsx)(eZ.Z,{display:e.display?.hidden?"none":void 0,minWidth:"120px",maxWidth:"500px",flexShrink:0,"data-testid":"variable-"+e.name,children:(0,a.jsx)(nD,{name:e.name,source:i},(e.name+i)??"")},(e.name+i)??"")}function nI(e){let[i,n]=(0,u.useState)(e.initialVariableIsSticky),t=(0,ng.Z)({disableHysteresis:!0})&&e.initialVariableIsSticky&&i,r=(0,na.Z)((0,ek.Z)().breakpoints.up("md"));return(0,a.jsx)(eZ.Z,{marginBottom:-1,"data-testid":"variable-list",children:(0,a.jsx)(nf.Z,{color:"inherit",position:t?"fixed":"static",elevation:4*!!t,sx:{backgroundColor:"inherit",...e.sx},children:(0,a.jsxs)(eZ.Z,{display:"flex",justifyContent:"space-between",sx:{flexDirection:r?"row":"column"},children:[(0,a.jsxs)(eZ.Z,{display:"flex",flexWrap:!t&&r?"wrap":"nowrap",maxWidth:t||!r?"100vw":"100%",maxHeight:"150px",pt:1,pl:+!!t,mt:t&&r?.5:0,ml:t&&r?.5:0,sx:{overflowX:!t&&r?"hidden":"auto",scrollbarWidth:"thin","&::-webkit-scrollbar":{height:"8px",backgroundColor:e=>e.palette.grey["300"]},"&::-webkit-scrollbar-thumb":{background:e=>e.palette.grey["600"]}},gap:1,children:[(0,a.jsx)(nE,{}),e.initialVariableIsSticky&&(0,a.jsx)(eV.Z,{style:{width:"fit-content",height:"fit-content"},onClick:()=>n(!i),children:i?(0,a.jsx)(nm.default,{}):(0,a.jsx)(nb.default,{})})]}),t&&(0,a.jsx)(eI.Z,{m:r?1.5:1,mt:1.5*!!r,ml:r?1.5:"auto",direction:"row",justifyContent:"end",children:(0,a.jsx)(j.TimeRangeControls,{})})]})})})}let nG=e=>{let{dashboardName:i,dashboardTitleComponent:n,initialVariableIsSticky:r,isReadonly:s,isVariableEnabled:o,isDatasourceEnabled:d,onEditButtonClick:c,onCancelButtonClick:u,onSave:p}=e,{isEditMode:h}=B(),x=(0,na.Z)((0,ek.Z)().breakpoints.up("sm")),g=(0,na.Z)((0,ek.Z)().breakpoints.up("md")),f=n||(0,a.jsx)(eE.Z,{variant:"h2",children:i});return(0,a.jsx)(a.Fragment,{children:(0,a.jsxs)(eI.Z,{"data-testid":"dashboard-toolbar",children:[(0,a.jsxs)(eZ.Z,{px:2,py:1.5,display:"flex",sx:{backgroundColor:e=>e.palette.primary.main+(h?"30":"0")},children:[f,h?(0,a.jsxs)(eI.Z,{direction:"row",gap:1,ml:"auto",children:[s&&(0,a.jsx)(iT.Z,{severity:"warning",sx:{backgroundColor:"transparent",padding:0},children:"Dashboard managed via code only. Download JSON and commit changes to save."}),(0,a.jsxs)(eI.Z,{direction:"row",spacing:.5,ml:1,whiteSpace:"nowrap",children:[o&&(0,a.jsx)(i3,{}),d&&(0,a.jsx)(nu,{}),(0,a.jsx)(ew,{}),(0,a.jsx)(eC,{})]}),(0,a.jsx)(nx,{onSave:p,isDisabled:s}),(0,a.jsx)(t.Z,{variant:"outlined",onClick:u,children:"Cancel"})]}):(0,a.jsx)(a.Fragment,{children:x&&(0,a.jsx)(eI.Z,{direction:"row",gap:1,ml:"auto",children:(0,a.jsx)(i8,{onClick:c})})})]}),(0,a.jsxs)(eZ.Z,{sx:{display:"flex",width:"100%",alignItems:"start",padding:e=>e.spacing(1,2,0,2),flexDirection:g?"row":"column",flexWrap:"nowrap",gap:1},children:[(0,a.jsx)(eZ.Z,{width:"100%",children:(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(nI,{initialVariableIsSticky:r,sx:{backgroundColor:({palette:e})=>e.background.default}})})}),(0,a.jsx)(eI.Z,{direction:"row",ml:"auto",flexWrap:"wrap",justifyContent:"end",children:(0,a.jsxs)(eI.Z,{direction:"row",spacing:1,mt:1,ml:1,children:[(0,a.jsx)(j.TimeRangeControls,{}),(0,a.jsx)(nd,{}),(0,a.jsx)(nh,{isReadonly:!h})]})})]})]})})},nA=()=>{let{deletePanelDialog:e,closeDeletePanelDialog:i}=ed();return(0,a.jsxs)(l.Dialog,{open:void 0!==e,children:[(0,a.jsx)(l.Dialog.Header,{onClose:()=>i(),children:"Delete Panel"}),e&&(0,a.jsx)(nT,{deletePanelDialog:e})]})},nT=({deletePanelDialog:e})=>{let{deletePanel:i,closeDeletePanelDialog:n}=ed(),{setViewPanel:t}=eh();return(0,a.jsxs)("form",{onSubmit:a=>{a.preventDefault();let{panelGroupItemId:r}=e;i(r),n(),t(void 0)},children:[(0,a.jsxs)(l.Dialog.Content,{children:["Are you sure you want to delete ",e.panelName," from ",e.panelGroupName,"? This action cannot be undone."]}),(0,a.jsxs)(l.Dialog.Actions,{children:[(0,a.jsx)(l.Dialog.PrimaryButton,{children:"Delete"}),(0,a.jsx)(l.Dialog.SecondaryButton,{onClick:()=>n(),children:"Cancel"})]})]})};var nL=n(56873),nO=n(51602),nz=n(19978),nR=n(70616),nM=n(10763);let n$=()=>{let{deletePanelGroupDialog:e,closeDeletePanelGroupDialog:i,deletePanelGroup:n}=en(),{setViewPanel:r}=eh(),l=e?.panelGroupId;return(0,a.jsxs)(nL.Z,{open:void 0!==e,children:[(0,a.jsx)(nO.Z,{children:"Delete Panel Group"}),(0,a.jsx)(eV.Z,{"aria-label":"Close",onClick:()=>i(),sx:e=>({position:"absolute",top:e.spacing(.5),right:e.spacing(.5)}),children:(0,a.jsx)(nM.default,{})}),(0,a.jsxs)("form",{onSubmit:e=>{if(e.preventDefault(),void 0===l)throw Error("group index is undefined");n(l),i(),r(void 0)},children:[(0,a.jsxs)(nz.Z,{dividers:!0,sx:{width:"500px"},children:["Are you sure you want to delete ",e?.panelGroupName??"panel group","? This will delete all the panels within the group."]}),(0,a.jsxs)(nR.Z,{children:[(0,a.jsx)(t.Z,{variant:"contained",type:"submit",children:"Delete"}),(0,a.jsx)(t.Z,{variant:"outlined",color:"secondary",onClick:()=>i(),children:"Cancel"})]})]})]})},nB=()=>{let{discardChangesConfirmationDialog:e}=ej();return void 0===e?null:(0,a.jsx)(l.DiscardChangesConfirmationDialog,{description:e.description||"You have unsaved changes in this dashboard. Are you sure you want to discard these changes? Changes cannot be recovered.",isOpen:!0,onCancel:e.onCancel,onDiscardChanges:e.onDiscardChanges})};var n_=n(90192);let nF=e=>{let{isReadonly:i,disableMetadataEdition:n}=e,{editJsonDialog:t,closeEditJsonDialog:r}=ey();return(0,a.jsxs)(l.Dialog,{open:!!t?.isOpen,scroll:"paper",fullWidth:!0,maxWidth:"lg",children:[(0,a.jsxs)(l.Dialog.Header,{onClose:()=>r(),children:[!i&&"Edit "," Dashboard JSON"]}),t?.isOpen&&(0,a.jsx)(nN,{isReadonly:i,disableMetadataEdition:n})]})},nN=e=>{let{isReadonly:i,disableMetadataEdition:n}=e,{closeEditJsonDialog:t}=ey(),{setTimeRange:r,setRefreshInterval:s}=(0,j.useTimeRange)(),{dashboard:o,setDashboard:d}=no(),{setLocalDatasources:c}=(0,j.useDatasourceStore)(),[p,h]=(0,u.useState)(o),x=e=>{e.preventDefault(),d(p),r({pastDuration:p.spec.duration}),s(p.spec.refreshInterval??"0s"),c(p.spec.datasources??{}),t()},g=e=>{try{let i=JSON.parse(e??"{}");h(i)}catch(e){}};return(0,a.jsxs)(l.Dialog.Form,{onSubmit:x,children:[(0,a.jsxs)(l.Dialog.Content,{sx:{width:"100%"},children:[n&&!i&&(0,a.jsx)(iT.Z,{sx:{marginBottom:e=>e.spacing(1)},severity:"warning",children:"Metadata cannot be modified or saved."}),"EphemeralDashboard"===p.kind&&(0,a.jsx)(iT.Z,{sx:{marginBottom:1},severity:"warning",children:"Time-to-live cannot be modified or saved from here. Go to the project view to modify it."}),(0,a.jsx)(n_.Z,{fullWidth:!0,children:(0,a.jsx)(l.JSONEditor,{minHeight:"300px",maxHeight:"70vh",value:p,onChange:e=>g(e),readOnly:i})})]}),!i&&(0,a.jsx)(l.Dialog.Actions,{children:(0,a.jsx)(l.Dialog.PrimaryButton,{onClick:x,children:"Apply"})})]})};var nW=n(38359),nU=n(64293),nH=n(494);function nJ({panelDefinition:e}){let i=(0,u.useRef)(null),n=840;null!==i.current&&(n=i.current.getBoundingClientRect().width);let t=(0,j.useSuggestedStepMs)(n),{data:r,isPending:l}=(0,j.usePlugin)("Panel",e.spec.plugin.kind);if(l||""===e.spec.plugin.kind)return null;let s=e.spec.queries??[],o=s.length?s.map(e=>({kind:e.spec.plugin.kind,spec:e.spec.plugin.spec})):[];return(0,a.jsx)(eZ.Z,{ref:i,height:300,children:(0,a.jsx)(j.DataQueriesProvider,{definitions:o,options:{suggestedStepMs:t,...r?.queryOptions},children:(0,a.jsx)(io,{definition:e})})})}let nq=e=>{let{display:i,plugin:n,queries:a,links:t}=e.spec,[r,l]=(0,u.useState)(i.name),[s,o]=(0,u.useState)(i.description),[d,c]=(0,u.useState)(t),[p,h]=(0,u.useState)(n),[x,g]=(0,u.useState)(a),[f,m]=(0,u.useState)(a),b=(0,u.useCallback)((e,i)=>{i?(g(f),m(void 0)):m(void 0===e?x:e)},[m,f,g,x]),j=(0,u.useCallback)(e=>{let{display:i,plugin:n,queries:a,links:t}=e.spec;l(i.name),o(i.description),c(t),h(n),b(a)},[l,o,c,h,b]);return(0,u.useMemo)(()=>({panelDefinition:{kind:"Panel",spec:{display:{name:r,description:s},plugin:p,queries:f,links:d}},setName:l,setDescription:o,setLinks:c,setQueries:b,setPlugin:h,setPanelDefinition:j}),[r,s,d,p,f,b,j])};function nQ(e){let{initialValues:i,initialAction:n,onSave:r,onClose:s}=e,o=H(),{panelDefinition:d,setName:c,setDescription:p,setLinks:h,setQueries:x,setPlugin:g,setPanelDefinition:f}=nq(i.panelDefinition),{plugin:m}=d.spec,[b,v]=(0,u.useState)(!1),{panelEditorSchema:y}=(0,j.useValidationSchemas)(),C=(0,nU.useForm)({resolver:(0,nH.F)(y),mode:"onBlur",defaultValues:i}),D=(0,j.usePluginEditor)({pluginTypes:["Panel"],value:{selection:{kind:m.kind,type:"Panel"},spec:m.spec},onChange:e=>{C.setValue("panelDefinition.spec.plugin",{kind:e.selection.kind,spec:e.spec}),g({kind:e.selection.kind,spec:e.spec})},onHideQueryEditorChange:e=>{x(void 0,e)}}),w=(0,j.getTitleAction)(n,!0),Z=(0,j.getSubmitText)(n,!0),P=(0,nU.useWatch)({control:C.control,name:"panelDefinition.spec.links"});(0,u.useEffect)(()=>{h(P)},[h,P]);let k=(0,nU.useWatch)({control:C.control,name:"panelDefinition.spec.display.name"}),S=(0,nU.useWatch)({control:C.control,name:"panelDefinition.spec.display.description"}),E=(0,nU.useWatch)({control:C.control,name:"panelDefinition.spec.plugin.kind"});return(0,a.jsxs)(nU.FormProvider,{...C,children:[(0,a.jsxs)(eZ.Z,{sx:{display:"flex",alignItems:"center",padding:e=>e.spacing(1,2),borderBottom:e=>`1px solid ${e.palette.divider}`},children:[(0,a.jsxs)(eE.Z,{variant:"h2",children:[w," Panel"]}),(0,a.jsxs)(eI.Z,{direction:"row",spacing:1,marginLeft:"auto",children:[(0,a.jsx)(t.Z,{variant:"contained",disabled:!C.formState.isValid,onClick:C.handleSubmit(e=>{r(e)}),children:Z}),(0,a.jsx)(t.Z,{color:"secondary",variant:"outlined",onClick:function(){JSON.stringify(i)!==JSON.stringify(C.getValues())?v(!0):s()},children:"Cancel"})]})]}),(0,a.jsx)(eZ.Z,{id:nK,sx:{flex:1,overflowY:"scroll",padding:e=>e.spacing(2)},children:(0,a.jsxs)(nW.ZP,{container:!0,spacing:2,children:[(0,a.jsx)(nW.ZP,{item:!0,xs:8,children:(0,a.jsx)(nU.Controller,{control:C.control,name:"panelDefinition.spec.display.name",render:({field:e,fieldState:i})=>(0,a.jsx)(ny.Z,{...e,required:!0,fullWidth:!0,label:"Name",error:!!i.error,helperText:i.error?.message,value:k??"",onChange:i=>{e.onChange(i),c(i.target.value)}})})}),(0,a.jsx)(nW.ZP,{item:!0,xs:4,children:(0,a.jsx)(nU.Controller,{control:C.control,name:"groupId",render:({field:e,fieldState:i})=>(0,a.jsx)(ny.Z,{select:!0,...e,required:!0,fullWidth:!0,label:"Group",error:!!i.error,helperText:i.error?.message,onChange:i=>{e.onChange(i)},children:o.map((e,i)=>(0,a.jsx)(e8.Z,{value:e.id,children:e.title??`Group ${i+1}`},e.id))})})}),(0,a.jsx)(nW.ZP,{item:!0,xs:8,children:(0,a.jsx)(nU.Controller,{control:C.control,name:"panelDefinition.spec.display.description",render:({field:e,fieldState:i})=>(0,a.jsx)(ny.Z,{...e,fullWidth:!0,label:"Description",error:!!i.error,helperText:i.error?.message,value:S??"",onChange:i=>{e.onChange(i),p(i.target.value)}})})}),(0,a.jsx)(nW.ZP,{item:!0,xs:4,children:(0,a.jsx)(nU.Controller,{control:C.control,name:"panelDefinition.spec.plugin.kind",render:({field:e,fieldState:i})=>(0,a.jsx)(j.PluginKindSelect,{...e,pluginTypes:["Panel"],required:!0,fullWidth:!0,label:"Type",disabled:D.isLoading,error:!!D.error||!!i.error,helperText:D.error?.message??i.error?.message,value:{type:"Panel",kind:E},onChange:i=>{e.onChange(i.kind),D.onSelectionChange(i)}})})}),(0,a.jsxs)(nW.ZP,{item:!0,xs:12,children:[(0,a.jsx)(eE.Z,{variant:"h4",marginBottom:1,children:"Preview"}),(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(nJ,{panelDefinition:d})})]}),(0,a.jsx)(nW.ZP,{item:!0,xs:12,children:(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(j.PanelSpecEditor,{control:C.control,panelDefinition:d,onJSONChange:e=>{let i=JSON.parse(e),{kind:n,spec:a}=i.spec.plugin;d.spec.plugin.kind!==n&&JSON.stringify(d.spec.plugin.spec)!==JSON.stringify(a)&&D.rememberCurrentSpecState(),f(i)},onQueriesChange:e=>{x(e)},onPluginSpecChange:e=>{D.onSpecChange(e)}})})})]})}),(0,a.jsx)(l.DiscardChangesConfirmationDialog,{description:"You have unapplied changes in this panel. Are you sure you want to discard these changes? Changes cannot be recovered.",isOpen:b,onCancel:()=>{v(!1)},onDiscardChanges:()=>{v(!1),s()}})]})}let nK="panel-editor-form",nY=()=>{let e=es(),[i,n]=(0,u.useState)(!1),t=void 0!==e&&!1===i;return(0,a.jsx)(l.Drawer,{isOpen:t,onClose:()=>{},SlideProps:{onExited:()=>{e?.close(),n(!1)}},"data-testid":"panel-editor",children:e&&(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(nQ,{initialAction:e.mode,initialValues:e.initialValues,onSave:function(i){if(void 0===e||void 0===i)throw Error("Cannot apply changes");e.applyChanges(i),n(!0)},onClose:()=>{n(!0)}})})})};var nX=n(68808),n0=n(63767);function n1(e){let{initialValues:i,onSubmit:n}=e,[t,r]=(0,u.useState)(i.title),[l,s]=(0,u.useState)(i.isCollapsed);return(0,a.jsxs)("form",{id:n2,onSubmit:e=>{e.preventDefault(),n({title:t,isCollapsed:l})},children:[(0,a.jsx)(n_.Z,{fullWidth:!0,margin:"normal",children:(0,a.jsx)(ny.Z,{required:!0,label:"Name",variant:"outlined",value:t,onChange:e=>r(e.target.value)})}),(0,a.jsxs)(n_.Z,{fullWidth:!0,margin:"normal",children:[(0,a.jsx)(nX.Z,{id:"select-collapse-state",children:"Collapse State"}),(0,a.jsxs)(n0.Z,{required:!0,displayEmpty:!0,labelId:"select-collapse-state",label:"Collapse State",size:"small",value:l?"Closed":"Open",onChange:e=>{s("Closed"===e.target.value)},children:[(0,a.jsx)(e8.Z,{value:"Open",children:"Open"}),(0,a.jsx)(e8.Z,{value:"Closed",children:"Closed"})]})]})]})}let n2="panel-group-editor-form";function n5(){let e=ee(),[i,n]=(0,u.useState)(!1),r=()=>n(!0),l=void 0!==e&&!1===i;return(0,a.jsx)(nL.Z,{open:l,TransitionProps:{onExited:()=>{e?.close(),n(!1)}},children:void 0!==e&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(nO.Z,{children:[e.mode," Panel Group"]}),(0,a.jsx)(eV.Z,{"aria-label":"Close",onClick:e.close,sx:e=>({position:"absolute",top:e.spacing(.5),right:e.spacing(.5)}),children:(0,a.jsx)(nM.default,{})}),(0,a.jsx)(nz.Z,{dividers:!0,sx:{width:"500px"},children:(0,a.jsx)(n1,{initialValues:e.initialValues,onSubmit:i=>{if(void 0===e)throw Error("Cannot apply changes");e.applyChanges(i),r()}})}),(0,a.jsxs)(nR.Z,{children:[(0,a.jsx)(t.Z,{variant:"contained",type:"submit",form:n2,children:"Edit"===e.mode?"Apply":"Add"}),(0,a.jsx)(t.Z,{variant:"outlined",color:"secondary",onClick:e.close,children:"Cancel"})]})]})})}var n4=n(28866),n3=n(53034);function n8(e){let{showTotalQueries:i=!0}=e,n=(0,j.useDatasourceClient)({kind:"PrometheusDatasource"}),{absoluteTimeRange:r}=(0,j.useTimeRange)(),l=(0,n3.useQueryClient)().getQueryCache().findAll(),s=l.filter(e=>"pending"===e.state.status),o=l.filter(e=>"success"===e.state.status),d=(0,j.useActiveTimeSeriesQueries)();if(!0===n.isLoading)return null;let c=[];return d.forEach(e=>{let i=e.state.data;if(i&&i.metadata?.notices){let n=e.queryKey,a=i.metadata.notices[0]?.message;a&&c.push({query:String(n[0].spec.plugin.spec.query),summary:a})}}),(0,a.jsxs)(eI.Z,{spacing:1,mb:2,sx:{maxWidth:1e3},children:[(0,a.jsxs)(eZ.Z,{sx:{p:1},children:[(0,a.jsx)(eE.Z,{variant:"h2",mb:1,children:"Query Summary"}),(0,a.jsx)(iL.Z,{component:n4.Z,children:(0,a.jsxs)(iO.Z,{size:"small","aria-label":"query summary table",children:[(0,a.jsx)(iz.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{children:"Queries Loading"}),(0,a.jsx)(iU.Z,{children:"Recent Time Series Queries"}),i&&(0,a.jsx)(iU.Z,{children:"Total Queries"}),(0,a.jsx)(iU.Z,{children:"Start Time"}),(0,a.jsx)(iU.Z,{children:"End Time"})]})}),(0,a.jsx)(iM.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{children:s.length}),(0,a.jsx)(iU.Z,{children:d.length}),i&&(0,a.jsx)(iU.Z,{children:o.length}),(0,a.jsx)(iU.Z,{children:r.start.toString()}),(0,a.jsx)(iU.Z,{children:r.end.toString()})]})})]})})]}),c.length>0&&(0,a.jsxs)(eZ.Z,{sx:{p:1,m:0},children:[(0,a.jsx)(eE.Z,{variant:"h3",mb:1,children:"Warnings"}),(0,a.jsx)(iL.Z,{component:n4.Z,sx:{mb:2},children:(0,a.jsxs)(iO.Z,{size:"small","aria-label":"query warnings table",children:[(0,a.jsx)(iz.Z,{children:(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{children:"Query"}),(0,a.jsx)(iU.Z,{children:"Summary"})]})}),(0,a.jsx)(iM.Z,{children:c.map((e,i)=>(0,a.jsxs)(iR.Z,{children:[(0,a.jsx)(iU.Z,{children:e.query}),(0,a.jsx)(iU.Z,{children:e.summary})]},i))})]})}),(0,a.jsx)(t.Z,{disabled:!0,variant:"outlined",children:"TODO: Action Button"})]})]})}var n6=n(85843),n7=n(28797),n9=n(82707);let ae=()=>{let{saveChangesConfirmationDialog:e}=em(),i=e?.isSavedDurationModified??!0,n=e?.isSavedVariableModified??!0,[t,r]=(0,u.useState)(i),[s,o]=(0,u.useState)(n),{getSavedVariablesStatus:d}=ik(),{modifiedVariableNames:c}=d(),p=void 0!==e,{timeRange:h}=(0,j.useTimeRange)(),x=(0,b.isRelativeTimeRange)(h)?`(Last ${h.pastDuration})`:"(Absolute time ranges can not be saved)",g=`Save current time range as new default ${x}`,f=`Save current variable values as new default (${c.length>0?c.join(", "):"No modified variables"})`;return(0,a.jsx)(l.Dialog,{open:p,children:void 0!==e&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.Dialog.Header,{onClose:()=>e.onCancel(),children:"Save Dashboard"}),(0,a.jsxs)(l.Dialog.Content,{children:[(0,a.jsx)(eE.Z,{marginBottom:2,children:e.description||b.SAVE_DEFAULTS_DIALOG_TEXT}),(0,a.jsxs)(n6.Z,{children:[(0,a.jsx)(n7.Z,{control:(0,a.jsx)(n9.Z,{disabled:!i||!(0,b.isRelativeTimeRange)(h),checked:t&&i&&(0,b.isRelativeTimeRange)(h),onChange:e=>r(e.target.checked)}),label:g}),(0,a.jsx)(n7.Z,{control:(0,a.jsx)(n9.Z,{disabled:!n,checked:s&&n,onChange:e=>o(e.target.checked)}),label:f})]})]}),(0,a.jsxs)(l.Dialog.Actions,{children:[(0,a.jsx)(l.Dialog.PrimaryButton,{onClick:()=>e.onSaveChanges(t,s),children:"Save Changes"}),(0,a.jsx)(l.Dialog.SecondaryButton,{onClick:()=>e.onCancel(),children:"Cancel"})]})]})})};function ai(e){let{projectName:i,datasourceApi:n,onCreate:t,children:r}=e,[l,s]=(0,u.useState)(e.dashboardResource),[o,d]=(0,u.useState)(e.savedDatasources??{}),c=i??l?.metadata.project,{getPlugin:p,listPluginMetadata:h}=(0,j.usePluginRegistry)(),x=(0,b.useEvent)(async e=>{if(l){let{datasources:i}=l.spec,a=function(e,i){if(void 0===e)return;if(void 0!==i.name){let n=e[i.name];if(void 0===n)return;return n.plugin.kind===i.kind?{name:i.name,spec:n}:void 0}let n=Object.entries(e).find(e=>e[1].plugin.kind===i.kind&&e[1].default);if(n)return{name:n[0],spec:n[1]}}(i,e);if(void 0!==a)return{spec:a.spec,proxyUrl:an(n,{project:l.metadata.project,dashboard:l.metadata.name,name:a.name})}}if(c){let i=await n.getDatasource(c,e);if(void 0!==i)return{spec:i.spec,proxyUrl:an(n,{project:i.metadata.project,name:i.metadata.name})}}let i=await n.getGlobalDatasource(e);if(void 0!==i)return{spec:i.spec,proxyUrl:an(n,{name:i.metadata.name})};throw Error(`No datasource found for kind '${e.kind}' and name '${e.name}'`)}),g=(0,u.useCallback)(async e=>{let{spec:i}=await x(e);return i},[x]),f=(0,u.useCallback)(async function(e){let{kind:i}=e,[{spec:n,proxyUrl:a},r]=await Promise.all([x(e),p("Datasource",i)]),l=r.createClient(n.plugin.spec,{proxyUrl:a});return void 0!==t?t(l):l},[x,p,t]),m=(0,b.useEvent)(async e=>{let[i,a,t]=await Promise.all([h(["Datasource"]),c?n.listDatasources(c,e):[],n.listGlobalDatasources(e)]),r=i.find(i=>i.spec.name===e);if(void 0===r)throw Error(`Could not find a Datasource plugin with kind '${e}'`);let{results:s,addItem:d}=function(e){let i=[],n=new Set,a=!0,t=!1,r={},l=1;return{results:i,addItem:({spec:s,selectorName:o,selectorGroup:d,editLink:c,saved:u})=>{d=d??"",a&&i.push({group:`Default ${e}`,items:[]});let p=i[r[d]??-1];!p&&(r[d]=l,p={items:[],group:d,editLink:c},i[l]=p,l++);let h=n.has(o);p.items.push({name:s.display?.name??o,overridden:h,saved:u,selector:{kind:s.plugin.kind,name:o,group:d}}),n.add(o);let x=!h&&s.default&&!t;if(i[0]&&(a||x)&&(i[0].items=[{name:`Default (${o} from ${d})`,selector:{kind:s.plugin.kind}}],t=x),h)for(let e=+!!t;e<l;e++)(i[e]?.items??[]).filter(e=>e.selector.name===o).forEach(e=>{e.overriding=!0});a=!1}}}(r.spec.display.name);if(l?.spec.datasources)for(let i in l.spec.datasources){let n=l.spec.datasources[i];if(void 0===n||n.plugin.kind!==e)continue;let a=i in o;d({spec:n,selectorName:i,selectorGroup:"dashboard",saved:a})}for(let e of a){let i=e.metadata.name;d({spec:e.spec,selectorName:i,selectorGroup:"project",editLink:`/projects/${c}/datasources`})}for(let e of t){let i=e.metadata.name;d({spec:e.spec,selectorName:i,selectorGroup:"global",editLink:"/admin/datasources"})}return s}),v=(0,u.useCallback)(()=>l?.spec.datasources??{},[l]),y=(0,u.useCallback)(()=>o,[o]),C=(0,u.useCallback)(e=>{l&&s((l.kind,{...l,spec:{...l.spec,datasources:e}}))},[l]),D=(0,u.useMemo)(()=>({getDatasource:g,getDatasourceClient:f,getLocalDatasources:v,setLocalDatasources:C,setSavedDatasources:d,getSavedDatasources:y,listDatasourceSelectItems:m}),[g,f,v,C,m,d,y]);return(0,a.jsx)(j.DatasourceStoreContext.Provider,{value:D,children:r})}function an(e,i){return e.buildProxyUrl?e.buildProxyUrl(i):""}function aa({children:e,initialState:i}){let[n,t]=(0,iv.useQueryParam)("viewPanelRef",iv.StringParam);return(0,a.jsx)(R,{initialState:{viewPanelRef:n??void 0,setViewPanelRef:t,...i},children:e})}let at=e=>{let{dashboardResource:i,dashboardTitleComponent:n,emptyDashboardProps:t,onSave:r,onDiscard:s,initialVariableIsSticky:o,isReadonly:d,isVariableEnabled:c,isDatasourceEnabled:p,isCreating:h}=e,x=(0,l.useChartsTheme)(),{isEditMode:g,setEditMode:f}=B(),{dashboard:m,setDashboard:b}=no(),[v,y]=(0,u.useState)(void 0),{setSavedDatasources:C}=(0,j.useDatasourceStore)(),{openDiscardChangesConfirmationDialog:D,closeDiscardChangesConfirmationDialog:w}=ej(),Z=()=>{v&&b(v),f(!1),w(),s&&s(m)},P=()=>{f(!0),y(m),C(m.spec.datasources??{})};return(0,a.jsxs)(eZ.Z,{sx:{flexGrow:1,overflowX:"hidden",overflowY:"auto",display:"flex",flexDirection:"column"},children:[(0,a.jsx)(nG,{dashboardName:i.metadata.name,dashboardTitleComponent:n,initialVariableIsSticky:o,onSave:r,isReadonly:d,isVariableEnabled:c,isDatasourceEnabled:p,onEditButtonClick:P,onCancelButtonClick:()=>{JSON.stringify(m)===JSON.stringify(v)?f(!1):D({onDiscardChanges:()=>{Z()},onCancel:()=>{w()}})}}),(0,a.jsxs)(eZ.Z,{sx:{paddingTop:2,paddingX:2,height:"100%"},children:[(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(nn,{emptyDashboardProps:{onEditButtonClick:P,...t}})}),(0,a.jsx)(l.ChartsProvider,{chartsTheme:x,enablePinning:!1,children:(0,a.jsx)(nY,{})}),(0,a.jsx)(n5,{}),(0,a.jsx)(n$,{}),(0,a.jsx)(nA,{}),(0,a.jsx)(nB,{}),(0,a.jsx)(nF,{isReadonly:!g,disableMetadataEdition:!h}),(0,a.jsx)(ae,{})]})]})};function ar(e){let{dashboardResource:i,datasourceApi:n,externalVariableDefinitions:t,dashboardTitleComponent:r,emptyDashboardProps:s,onSave:o,onDiscard:d,initialVariableIsSticky:c,isReadonly:p,isVariableEnabled:h,isDatasourceEnabled:x,isEditing:g,isCreating:f,sx:m,...v}=e,{spec:y}=i,C=y.duration??b.DEFAULT_DASHBOARD_DURATION,D=y.refreshInterval??b.DEFAULT_REFRESH_INTERVAL,w=(0,j.useInitialTimeRange)(C),Z=(0,j.useInitialRefreshInterval)(D),{data:P}=(0,j.usePluginBuiltinVariableDefinitions)(),k=(0,u.useMemo)(()=>{let e=[{kind:"BuiltinVariable",spec:{name:"__dashboard",value:()=>i.metadata.name,source:"Dashboard",display:{name:"__dashboard",description:"The name of the current dashboard",hidden:!0}}},{kind:"BuiltinVariable",spec:{name:"__project",value:()=>i.metadata.project,source:"Dashboard",display:{name:"__project",description:"The name of the current dashboard project",hidden:!0}}}];return P&&P.forEach(i=>e.push(i)),e},[i.metadata.name,i.metadata.project,P]);return(0,a.jsx)(ai,{dashboardResource:i,datasourceApi:n,children:(0,a.jsx)(aa,{initialState:{dashboardResource:i,isEditMode:!!g},children:(0,a.jsx)(j.TimeRangeProviderWithQueryParams,{initialTimeRange:w,initialRefreshInterval:Z,children:(0,a.jsx)(iA,{initialVariableDefinitions:y.variables,externalVariableDefinitions:t,builtinVariableDefinitions:k,children:(0,a.jsx)(eZ.Z,{sx:(0,l.combineSx)({display:"flex",width:"100%",height:"100%",position:"relative",overflow:"hidden"},m),...v,children:(0,a.jsx)(l.ErrorBoundary,{FallbackComponent:l.ErrorAlert,children:(0,a.jsx)(at,{dashboardResource:i,dashboardTitleComponent:r,emptyDashboardProps:s,onSave:o,onDiscard:d,initialVariableIsSticky:c,isReadonly:p,isVariableEnabled:h,isDatasourceEnabled:x,isCreating:f})})})})})})})}}}]);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkTable=self.webpackChunkTable||[]).push([["8981"],{75989:function(e,r,n){n.r(r),n.d(r,{LEGEND_SIZE_CONFIG:()=>eD,PanelSpecEditor:()=>eY,validateLegendSpec:()=>eL,ProjectStoreProvider:()=>rO,useInitialRefreshInterval:()=>rN,MultiQueryEditor:()=>eB,useReplaceVariablesInString:()=>ed,LEGEND_VALUE_CONFIG:()=>eI,VariableListPreview:()=>rb,TimeRangeSettingsContext:()=>rr,DEFAULT_REFRESH_INTERVAL_OPTIONS:()=>rs,OptionsEditorTabs:()=>ez,replaceVariables:()=>Y,DatasourceSelect:()=>eg,useActiveTimeSeriesQueries:()=>rJ,getVariableValuesKey:()=>rp,useListVariablePluginValues:()=>rc,usePluginBuiltinVariableDefinitions:()=>I,TimeRangeProvider:()=>e9,useListDatasourceSelectItems:()=>G,BuiltinVariableContext:()=>en,useUsageMetrics:()=>r4,useShowCustomTimeRangeSetting:()=>ri,useTraceQueries:()=>r1,CalculationSelector:()=>l,useSetRefreshIntervalParams:()=>r_,QueryCountProvider:()=>eH,decodeTimeRangeValue:()=>rR,usePluginRegistry:()=>Z,TRACE_QUERY_KEY:()=>rX,useBuiltinVariableDefinitions:()=>eo,TimeRangeProviderWithQueryParams:()=>rF,ProjectSelect:()=>rD,TOOLTIP_TEXT:()=>e5,datasourceSelectValueToSelector:()=>ef,OptionsEditorRadios:()=>eE,useProjectList:()=>rZ,useTimeRangeContext:()=>e6,VariablePreview:()=>ry,useDataQueriesContext:()=>ne,usePlugins:()=>O,useBuiltinVariableValues:()=>ei,TimeRangeSettingsProvider:()=>rl,useProjectStore:()=>rw,LEGEND_MODE_CONFIG:()=>eO,useDatasourceStore:()=>z,ValidationProvider:()=>C,mockPluginRegistry:()=>nt,LEGEND_POSITIONS_CONFIG:()=>ew,PluginLoaderComponent:()=>nh,getMockPluginName:()=>ni,useQueryCountContext:()=>eJ,getUnixTimeRange:()=>r0,TimeRangeParam:()=>rA,useShowZoomRangeSetting:()=>ro,replaceVariable:()=>X,useTimeRangeSettingsContext:()=>rn,useTimeSeriesQueries:()=>rG,remotePluginLoader:()=>nv,LegendOptionsEditor:()=>eQ,useTimeRangeOptionsSetting:()=>ra,useDatasourceSelectValueToSelector:()=>ey,useBuiltinVariableContext:()=>et,PluginSpecEditor:()=>M,encodeTimeRangeValue:()=>rV,useListPluginMetadata:()=>D,useQueryType:()=>r8,VariableEditorForm:()=>rT,useTimeSeriesQuery:()=>rz,DataQueriesContext:()=>r9,PluginKindSelect:()=>L,filterVariableList:()=>rd,useSuggestedStepMs:()=>e8,useTimeRange:()=>e7,DataQueriesProvider:()=>nn,isVariableDatasource:()=>ev,PluginRegistry:()=>eX,getActiveTimeSeriesQueries:()=>rY,usePluginEditor:()=>$,useValidationSchemas:()=>j,PluginRegistryContext:()=>k,UsageMetricsProvider:()=>r6,TimeRangeControls:()=>ru,usePlugin:()=>w,legendValues:()=>eZ,timeRangeQueryConfig:()=>rM,MetricLabelInput:()=>rI,VariableContext:()=>el,HTTPSettingsEditor:()=>ek,VARIABLE_TYPES:()=>rg,getSubmitText:()=>T,refreshIntervalQueryConfig:()=>rQ,useUsageMetricsContext:()=>r5,useVariableValues:()=>es,ValidationSchemasContext:()=>b,dynamicImportPluginLoader:()=>rL,PluginEditor:()=>q,TimeRangeContext:()=>e3,transformQueryResults:()=>r7,useDataQueries:()=>nr,useDatasource:()=>J,getTitleAction:()=>P,parseVariables:()=>er,ProjectStoreContext:()=>rk,useAllVariableValues:()=>eu,useTimeRangeSettings:()=>rt,UsageMetricsContext:()=>r2,useTimeRangeParams:()=>rq,DatasourceName:()=>eh,useInitialTimeRange:()=>r$,VariableStoreStateMap:()=>ea,DatasourceStoreContext:()=>K,TIME_SERIES_QUERY_KEY:()=>rW,DatasourceEditorForm:()=>N,useDatasourceClient:()=>H});var t=n(24246),i=n(66480),o=n(11268);let a=Object.entries(o.CALCULATIONS_CONFIG).map(([e,r])=>({id:e,...r}));function l({value:e,onChange:r}){let n=o.CALCULATIONS_CONFIG[e];return(0,t.jsx)(i.OptionsEditorControl,{label:"Calculation",control:(0,t.jsx)(i.SettingsAutocomplete,{value:{...n,id:e},options:a,onChange:(e,n)=>{r(n.id)},disableClearable:!0})})}var s=n(494),u=n(36372),d=n(52054),c=n(38359),p=n(8695),g=n(25283),h=n(28797),m=n(87895),x=n(79119),v=n(54538),f=n.n(v),y=n(64293);let b=(0,v.createContext)(void 0);function j(){let e=(0,v.useContext)(b);if(void 0===e)throw Error("No ValidationSchemasContext found. Did you forget a Provider?");return e}function C({children:e}){let[r,n]=(0,v.useState)(o.datasourceDefinitionSchema),[i,a]=(0,v.useState)(o.panelEditorSchema),[l,s]=(0,v.useState)(o.variableDefinitionSchema);return(0,t.jsx)(b.Provider,{value:{datasourceEditorSchema:r,panelEditorSchema:i,variableEditorSchema:l,setDatasourceEditorSchemaPlugin:function(e){n((0,o.buildDatasourceDefinitionSchema)(e))},setPanelEditorSchemaPlugin:function(e){a((0,o.buildPanelEditorSchema)(e))},setVariableEditorSchemaPlugin:function(e){s((0,o.buildVariableDefinitionSchema)(e))}},children:e})}function P(e,r){return"read"===e?"View":r&&"create"===e?"Add":r||"create"!==e?"update"===e?"Edit":"":"Create"}function T(e,r){return r&&"create"===e?"Add":r&&"update"===e?"Apply":r?"":"Save"}var S=n(10517),E=n(53034);let k=(0,v.createContext)(void 0);function Z(){let e=(0,v.useContext)(k);if(void 0===e)throw Error("PluginRegistryContext not found. Did you forget a provider?");return e}function w(e,r,n){n={...n,enabled:(n?.enabled??!0)&&void 0!==e&&""!==r};let{getPlugin:t}=Z();return(0,E.useQuery)({queryKey:["getPlugin",e,r],queryFn:()=>t(e,r),...n})}function O(e,r){let{getPlugin:n}=Z(),t=[...new Set(r.map(e=>e.kind))],i=(0,E.useQueries)({queries:t.map(r=>({queryKey:["getPlugin",e,r],queryFn:()=>n(e,r)}))});return r.map(e=>i[t.indexOf(e.kind)])}function D(e,r){let{listPluginMetadata:n}=Z();return(0,E.useQuery)({queryKey:["listPluginMetadata",e],queryFn:()=>n(e),...r})}function I(){let{getPlugin:e,listPluginMetadata:r}=Z();return(0,E.useQuery)({queryKey:["usePluginBuiltinVariableDefinitions"],queryFn:async()=>{let n=new Set((await r(["Datasource"])).map(e=>e.spec.name)),t=[];for(let r of n){let n=await e("Datasource",r);n.getBuiltinVariableDefinitions&&n.getBuiltinVariableDefinitions().forEach(e=>t.push(e))}return t}})}let L=(0,v.forwardRef)((e,r)=>{let{pluginTypes:n,value:i,onChange:o,...a}=e,{data:l,isLoading:s}=D(n),u=!i||s?"":R(i),d=(0,v.useCallback)(e=>{if(""===e)return"";let r=A(e);return l?.find(e=>e.kind===r.type&&e.spec.name===r.kind)?.spec.display.name},[l]);return(0,t.jsxs)(p.Z,{select:!0,inputRef:r,...a,value:u,"aria-label":u,onChange:e=>{o?.(A(e.target.value))},SelectProps:{renderValue:d},"data-testid":"plugin-kind-select",children:[s&&(0,t.jsx)(S.Z,{value:"",children:"Loading..."}),l?.map(e=>t.jsx(S.Z,{"data-testid":"option",value:R({type:e.kind,kind:e.spec.name}),children:e.spec.display.name},e.kind+e.spec.name))]})});L.displayName="PluginKindSelect";let V="_____";function R(e){return[e.type,e.kind].join(V)}function A(e){let r=e.split(V),n=r[0],t=r[1];if(void 0===n||void 0===t)throw Error("Invalid optionValue string");return{type:n,kind:t}}function M(e){let{pluginSelection:{type:r,kind:n},...o}=e,{data:a,isLoading:l,error:s}=w(r,n);if(s)return(0,t.jsx)(i.ErrorAlert,{error:s});if(l)return null;if(void 0===a)throw Error(`Missing implementation for ${r} plugin with kind '${n}'`);if("Panel"===r)throw Error("This editor should not be used for panel type. Please use Panel Spec Editor instead.");let{OptionsEditorComponent:u}=a;return void 0!==u?(0,t.jsx)(u,{...o}):null}var Q=n(75586);function $(e){let{pluginTypes:r,value:n,onHideQueryEditorChange:t=()=>{}}=e,i=(0,o.useEvent)(e.onChange),a=(0,o.useEvent)(t),l=(0,v.useRef)({[n.selection.type]:{[n.selection.kind]:n.spec}}),s=(0,o.useEvent)(()=>{let e=l.current[n.selection.type];void 0===e&&(e={},l.current[n.selection.type]=e),e[n.selection.kind]=n.spec}),u=(0,v.useRef)({[n.selection.kind]:!1}),{defaultPluginKinds:d}=Z(),c=r[0],p=c?d?.[c]:void 0,g=c&&p?{type:c,kind:p}:void 0,h=!n.selection&&g?g:void 0,[m,x]=(0,v.useState)(h);(0,v.useEffect)(()=>{""===n.selection.kind&&(n.selection.kind=p||"")},[n.selection,p]);let{data:f,isFetching:y,error:b}=w(m?.type,m?.kind||"");return(0,v.useEffect)(()=>{m&&void 0!==f&&(s(),i({selection:m,spec:f.createInitialOptions?f.createInitialOptions():{}}),"Panel"===m.type&&(u.current[m.kind]=!!f.hideQueryEditor,!!f.hideQueryEditor!==u.current[n.selection.kind]&&a(!!f.hideQueryEditor)),x(void 0))},[m,f,s,i,a,u,n.selection]),{pendingSelection:m,isLoading:y,error:b,onSelectionChange:e=>{let r=l.current[e.type]?.[e.kind];void 0!==r?(s(),i({selection:e,spec:r})):x(e),"Panel"===e.type&&void 0!==u.current[e.kind]&&u.current[n.selection.kind]!==u.current[e.kind]&&a(!!u.current[e.kind])},onSpecChange:e=>{i((0,Q.Uy)(n,r=>{r.spec=e}))},rememberCurrentSpecState:s}}function q(e){let{value:r,pluginTypes:n,pluginKindLabel:o,onChange:a,isReadonly:l,...s}=e,{pendingSelection:d,isLoading:c,error:p,onSelectionChange:g,onSpecChange:h}=$(e);return(0,t.jsxs)(u.Z,{...s,children:[(0,t.jsx)(L,{fullWidth:!1,sx:{mb:2,minWidth:120},margin:"dense",label:o,pluginTypes:n,disabled:c,value:d||r.selection,InputProps:{readOnly:l},error:!!p,helperText:p?.message,onChange:g}),(0,t.jsx)(i.ErrorBoundary,{FallbackComponent:i.ErrorAlert,children:(0,t.jsx)(M,{pluginSelection:r.selection,value:r.spec,onChange:h,isReadonly:l})})]})}function N(e){let{initialDatasourceDefinition:r,action:n,isDraft:o,isReadonly:a,onActionChange:l,onSave:f,onClose:b,onDelete:C}=e,[S,E]=(0,v.useState)(!1),k=P(n,o),Z=T(n,o),{datasourceEditorSchema:w}=j(),O=(0,y.useForm)({resolver:(0,s.F)(w),mode:"onBlur",defaultValues:r});function D(e){let r={...e};return r.spec.display?.name===void 0&&r.spec.display?.description===void 0&&delete r.spec.display,r}return(0,t.jsxs)(y.FormProvider,{...O,children:[(0,t.jsxs)(u.Z,{sx:{display:"flex",alignItems:"center",padding:e=>e.spacing(1,2),borderBottom:e=>`1px solid ${e.palette.divider}`},children:[(0,t.jsxs)(d.Z,{variant:"h2",children:[k," Datasource"]}),(0,t.jsx)(i.FormActions,{action:n,submitText:Z,isReadonly:a,isValid:O.formState.isValid,onActionChange:l,onSubmit:O.handleSubmit(e=>{f(D(e))}),onDelete:C,onCancel:function(){JSON.stringify(r)!==JSON.stringify(D(O.getValues()))?E(!0):b()}})]}),(0,t.jsxs)(u.Z,{padding:2,sx:{overflowY:"scroll"},children:[(0,t.jsxs)(c.ZP,{container:!0,spacing:2,mb:2,children:[(0,t.jsx)(c.ZP,{item:!0,xs:4,children:(0,t.jsx)(y.Controller,{control:O.control,name:"name",render:({field:e,fieldState:r})=>(0,t.jsx)(p.Z,{...e,required:!0,fullWidth:!0,name:"name",label:"Name",InputLabelProps:{shrink:"read"===n||void 0},InputProps:{disabled:"update"===n&&!o,readOnly:"read"===n},error:!!r.error,helperText:r.error?.message,value:e.value??"",onChange:r=>{e.onChange(r)}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:8,children:(0,t.jsx)(y.Controller,{control:O.control,name:"spec.display.name",render:({field:e,fieldState:r})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,name:"title",label:"Display Label",InputLabelProps:{shrink:"read"===n||void 0},InputProps:{readOnly:"read"===n},error:!!r.error,helperText:r.error?.message,value:e.value??"",onChange:r=>{e.onChange(r)}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:12,children:(0,t.jsx)(y.Controller,{control:O.control,name:"spec.display.description",render:({field:e,fieldState:r})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,name:"description",label:"Description",InputLabelProps:{shrink:"read"===n||void 0},InputProps:{readOnly:"read"===n},error:!!r.error,helperText:r.error?.message,value:e.value??"",onChange:r=>{e.onChange(r)}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:6,sx:{paddingTop:"5px !important"},children:(0,t.jsxs)(g.Z,{children:[(0,t.jsx)(y.Controller,{control:O.control,name:"spec.default",render:({field:e})=>(0,t.jsx)(h.Z,{label:"Set as default",control:(0,t.jsx)(m.Z,{...e,checked:!!e.value,readOnly:"read"===n,onChange:r=>{"read"!==n&&e.onChange(r)}})})}),(0,t.jsxs)(d.Z,{variant:"caption",children:["Whether this datasource should be the default ",O.getValues().spec.plugin.kind," to be used"]})]})})]}),(0,t.jsx)(x.Z,{}),(0,t.jsx)(d.Z,{py:1,variant:"h3",children:"Plugin Options"}),(0,t.jsx)(y.Controller,{control:O.control,name:"spec.plugin",render:({field:e})=>(0,t.jsx)(q,{width:"100%",pluginTypes:["Datasource"],pluginKindLabel:"Source",value:{selection:{type:"Datasource",kind:e.value.kind},spec:e.value.spec},isReadonly:"read"===n,onChange:r=>{e.onChange({kind:r.selection.kind,spec:r.spec})}})})]}),(0,t.jsx)(i.DiscardChangesConfirmationDialog,{description:"Are you sure you want to discard your changes? Changes cannot be recovered.",isOpen:S,onCancel:()=>E(!1),onDiscardChanges:()=>{E(!1),b()}})]})}var _=n(14371),F=n(11774),U=n(12577),B=n(52889),W=n(75094);let K=(0,v.createContext)(void 0);function z(){let e=(0,v.useContext)(K);if(void 0===e)throw Error("No DatasourceStoreContext found. Did you forget a Provider?");return e}function G(e,r){let{listDatasourceSelectItems:n}=z();return(0,E.useQuery)({queryKey:["listDatasourceSelectItems",e,r],queryFn:()=>n(e)})}function H(e){let r=z();return(0,E.useQuery)({queryKey:["getDatasourceClient",e],queryFn:()=>r.getDatasourceClient(e)})}function J(e){let r=z();return(0,E.useQuery)({queryKey:["getDatasource",e],queryFn:()=>r.getDatasource(e)})}function Y(e,r){let n=er(e),t=e;return n.sort((e,r)=>r.length-e.length).forEach(e=>{let n=r[e];n&&void 0!==n.value&&(t=X(t,e,n?.value))}),t}function X(e,r,n){let t="";return Array.isArray(n)&&(t=`(${n.join("|")})`),"string"==typeof n&&(t=n),(e=e.replaceAll("$"+r,t)).replaceAll("${"+r+"}",t)}let ee=/\$(\w+)|\${(\w+)(?:\.([^:^\}]+))?(?::([^\}]+))?}/gm,er=e=>{let r;let n=new Set;for(;null!==(r=ee.exec(e));)r&&(r[1]?n.add(r[1]):r[2]&&n.add(r[2]));return Array.from(n.values())},en=(0,v.createContext)(void 0);function et(){let e=(0,v.useContext)(en);if(void 0===e)throw Error("No BuiltinVariableContext found. Did you forget a Provider?");return e}function ei(e){let{variables:r}=et(),n=(0,v.useMemo)(()=>{let e={};for(let n of r)e[n.spec.name]={loading:!1,value:n.spec.value()};return e},[r]),t=(0,v.useMemo)(()=>{let r={};return e?.forEach(e=>{let t=n[e];t&&(r[e]=t)}),r},[e,n]);return void 0===e?n:t}function eo(){let{variables:e}=et();return e}class ea{[Q.sc]=!0;DEFAULT_LOCAL_SOURCE_NAME="";_state={};get(e){return this._sourceStatesOrEmpty(e.source)[e.name]}set(e,r){let n=this._sourceName(e.source);return this._state[n]||(this._state[n]={}),this._sourceStatesOrEmpty(e.source)[e.name]=r,r}has(e){return void 0!==this._sourceStatesOrEmpty(e.source)[e.name]}delete(e){let r=this.has(e),n=this._sourceName(e.source),t=this._state[n];return t&&delete t[e.name],Object.keys(t??{})?.length===0&&delete this._state[n],r}_sourceName(e){return e??this.DEFAULT_LOCAL_SOURCE_NAME}_sourceStatesOrEmpty(e){return this._state[this._sourceName(e)]??{}}}let el=(0,v.createContext)(void 0);function es(e){let{state:r}=function(){let e=(0,v.useContext)(el);if(void 0===e)throw Error("No VariableContext found. Did you forget a Provider?");return e}(),n=(0,v.useMemo)(()=>{let n={};return e?.forEach(e=>{let t=r[e];t&&(n[e]=t)}),n},[r,e]);return void 0===e?r:n}function eu(e){let r=es(e),n=ei(e);return(0,v.useMemo)(()=>({...r,...n}),[r,n])}function ed(e){let r=eu(e?er(e):[]);if(e)return Y(e,r)}let ec="__DATASOURCE_VARIABLE_VALUE__",ep={name:"",value:""};function eg(e){let{datasourcePluginKind:r,value:n,project:i,onChange:o,...a}=e,{data:l,isLoading:s}=G(r,i),u=es(),d=(0,v.useMemo)(()=>{if(ev(n))return n;let e=(l??[]).flatMap(e=>e.items).find(e=>n.kind===e.selector.kind&&n.name===e.selector.name&&!e.overridden)?.selector.group;return{...n,group:e}},[n,l]),c=(0,v.useMemo)(()=>{let e=(l||[]).flatMap(e=>e.items.map(r=>({groupLabel:e.group,groupEditLink:e.editLink,name:r.name,overriding:r.overriding,overridden:r.overridden,saved:r.saved??!0,group:r.selector.group,value:ex(r.selector)}))),r=new Map(e.map(e=>[e.name,e]));return[...e,...Object.entries(u).flatMap(([e,n])=>Array.isArray(n.value)||!r.get(n.value??"")?[]:{groupLabel:"Variables",name:`$${e}`,saved:!0,value:`${ec}$${e}`})]},[l,u]),h=s?ep:c.find(e=>e.value===ex(d)),m=e=>{e?o(function(e){if(e.startsWith(ec))return e.split(ec)[1];let r=e.split(em),n=r[0],t=r[2];if(void 0===n||void 0===t)throw Error("Invalid optionValue string");return{kind:n,name:""===t?void 0:t}}(e?.value||"")):o({kind:r})},x=()=>{};return(0,t.jsx)(F.Z,{options:c,renderInput:e=>(0,t.jsx)(p.Z,{...e,label:a.label,placeholder:""}),groupBy:e=>e.groupLabel||"No group",getOptionLabel:e=>e.name,onChange:(e,r)=>m(r),value:h,renderOption:(e,r)=>(0,v.createElement)("li",{...e,key:r.value},(0,t.jsxs)(g.Z,{direction:"row",alignItems:"center",justifyContent:"space-between",width:"100%",children:[(0,t.jsx)(U.Z,{children:(0,t.jsx)(eh,{name:r.name,overridden:r.overridden,overriding:r.overriding})}),!r.saved&&(0,t.jsx)(U.Z,{children:"Save the dashboard to enable this datasource"}),(0,t.jsx)(U.Z,{style:{textAlign:"right"},children:r.groupLabel&&r.groupLabel.length>0&&(0,t.jsx)(B.Z,{disabled:!1,label:r.groupLabel,size:"small",onDelete:r.groupEditLink?x:void 0,deleteIcon:r.groupEditLink?(0,t.jsx)(W.Z,{href:r.groupEditLink,target:"_blank",children:(0,t.jsx)(_.default,{fontSize:"small"})}):void 0})})]}))})}function eh(e){let{name:r,overridden:n,overriding:i}=e;return(0,t.jsxs)(t.Fragment,{children:[`${r} `,!n&&i&&(0,t.jsx)(u.Z,{display:"inline",fontWeight:"normal",color:e=>e.palette.primary.main,children:"(overriding)"}),n&&"(overridden)"]})}let em="_____";function ex(e){return ev(e)?`${ec}${e}`:[e.kind,e.group??"",e.name??""].join(em)}function ev(e){return"string"==typeof e&&e.startsWith("$")}let ef=(e,r,n)=>{if(!ev(e))return e;let[t]=er(e),i=r[t??""];if(!i||Array.isArray(i.value))return;let o=(n||[]).flatMap(e=>e.items).find(e=>e.name===i.value);if(void 0!==o)return{kind:o.selector.kind,name:o.selector.name}},ey=(e,r)=>{let{data:n}=G(r),t=es();return ev(e)?ef(e,t,n)??{kind:r}:e};var eb=n(86396),ej=n(33755),eC=n(90192),eP=n(65091),eT=n(12e3);function eS(e){let{children:r,value:n,index:i,...o}=e,a=n===i;return(0,t.jsx)("div",{role:"tabpanel",hidden:!a,id:`options-editor-tabpanel-${i}`,"aria-labelledby":`options-editor-tab-${i}`,...o,children:a&&(0,t.jsx)(u.Z,{mt:2,children:r})})}let eE=e=>{let{tabs:r,defaultTab:n,onModeChange:i,isReadonly:o}=e,[a,l]=(0,v.useState)(n);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Z,{sx:{borderBottom:1,borderColor:e=>e.palette.divider},children:(0,t.jsx)(eC.Z,{children:(0,t.jsx)(eP.Z,{row:!0,defaultValue:n,value:a,onChange:(e,r)=>{let n=parseInt(r);l(n),i(n)},"aria-labelledby":"Configuration radio",children:r.map(({label:e},r)=>(0,t.jsx)(h.Z,{disabled:o,value:r,control:(0,t.jsx)(eT.Z,{}),label:e},e))})})}),r.map(({label:e,content:r},n)=>(0,t.jsx)(eS,{value:a,index:n,children:r},e))]})};function ek(e){let{value:r,onChange:n,isReadonly:i,initialSpecDirect:o,initialSpecProxy:a}=e,l="Direct access",s="Proxy",u=(e,r,n)=>void 0===e?e:{...Object.keys(e).reduce((t,i)=>(i===r?t[n]=e[r]||"":t[i]=e[i]||"",t),{})},g=[{label:l,content:(0,t.jsx)(y.Controller,{name:"URL",render:({field:e,fieldState:o})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,label:"URL",value:r.directUrl||"",error:!!o.error,helperText:o.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:t=>{e.onChange(t),n((0,Q.Uy)(r,e=>{e.directUrl=t.target.value}))}})})},{label:s,content:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(y.Controller,{name:"URL",render:({field:e,fieldState:o})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,label:"URL",value:r.proxy?.spec.url||"",error:!!o.error,helperText:o.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:t=>{e.onChange(t),n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.url=t.target.value)}))},sx:{mb:2}})}),(0,t.jsx)(d.Z,{variant:"h4",mb:2,children:"Allowed endpoints"}),(0,t.jsxs)(c.ZP,{container:!0,spacing:2,mb:2,children:[r.proxy?.spec.allowedEndpoints&&r.proxy?.spec.allowedEndpoints.length!==0?r.proxy.spec.allowedEndpoints.map(({endpointPattern:e,method:o},a)=>(0,t.jsxs)(v.Fragment,{children:[(0,t.jsx)(c.ZP,{item:!0,xs:8,children:(0,t.jsx)(y.Controller,{name:`Endpoint pattern ${a}`,render:({field:o,fieldState:l})=>(0,t.jsx)(p.Z,{...o,fullWidth:!0,label:"Endpoint pattern",value:e,error:!!l.error,helperText:l.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:e=>{o.onChange(e),n((0,Q.Uy)(r,r=>{void 0!==r.proxy&&(r.proxy.spec.allowedEndpoints=r.proxy.spec.allowedEndpoints?.map((r,n)=>a===n?{endpointPattern:e.target.value,method:r.method}:r))}))}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:3,children:(0,t.jsx)(y.Controller,{name:`Method ${a}`,render:({field:e,fieldState:l})=>(0,t.jsxs)(p.Z,{...e,select:!0,fullWidth:!0,label:"Method",value:o,error:!!l.error,helperText:l.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:t=>{e.onChange(t),n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.allowedEndpoints=e.proxy.spec.allowedEndpoints?.map((e,r)=>a===r?{endpointPattern:e.endpointPattern,method:t.target.value}:e))}))},children:[(0,t.jsx)(S.Z,{value:"GET",children:"GET"}),(0,t.jsx)(S.Z,{value:"POST",children:"POST"}),(0,t.jsx)(S.Z,{value:"PUT",children:"PUT"}),(0,t.jsx)(S.Z,{value:"PATCH",children:"PATCH"}),(0,t.jsx)(S.Z,{value:"DELETE",children:"DELETE"})]})})}),(0,t.jsx)(c.ZP,{item:!0,xs:1,children:(0,t.jsx)(y.Controller,{name:`Remove Endpoint ${a}`,render:({field:e})=>(0,t.jsx)(W.Z,{...e,disabled:i,onClick:t=>{e.onChange(t),n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.allowedEndpoints=[...e.proxy.spec.allowedEndpoints?.filter((e,r)=>r!==a)||[]])}))},children:(0,t.jsx)(eb.default,{})})})})]},a)):(0,t.jsx)(c.ZP,{item:!0,xs:4,children:(0,t.jsx)(d.Z,{sx:{fontStyle:"italic"},children:"None"})}),(0,t.jsx)(c.ZP,{item:!0,xs:12,sx:{paddingTop:"0px !important",paddingLeft:"5px !important"},children:(0,t.jsx)(W.Z,{disabled:i,onClick:()=>n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.allowedEndpoints=[...e.proxy.spec.allowedEndpoints??[],{endpointPattern:"",method:""}])})),children:(0,t.jsx)(ej.default,{})})})]}),(0,t.jsx)(d.Z,{variant:"h4",mb:2,children:"Request Headers"}),(0,t.jsxs)(c.ZP,{container:!0,spacing:2,mb:2,children:[r.proxy?.spec.headers&&Object.keys(r.proxy.spec.headers).map((e,o)=>(0,t.jsxs)(v.Fragment,{children:[(0,t.jsx)(c.ZP,{item:!0,xs:4,children:(0,t.jsx)(y.Controller,{name:`Header name ${o}`,render:({field:o,fieldState:a})=>(0,t.jsx)(p.Z,{...o,fullWidth:!0,label:"Header name",value:e,error:!!a.error,helperText:a.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:t=>{o.onChange(t),n((0,Q.Uy)(r,r=>{void 0!==r.proxy&&(r.proxy.spec.headers=u(r.proxy.spec.headers,e,t.target.value))}))}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:7,children:(0,t.jsx)(y.Controller,{name:`Header value ${o}`,render:({field:o,fieldState:a})=>(0,t.jsx)(p.Z,{...o,fullWidth:!0,label:"Header value",value:r.proxy?.spec.headers?.[e],error:!!a.error,helperText:a.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:t=>{o.onChange(t),n((0,Q.Uy)(r,r=>{void 0!==r.proxy&&(r.proxy.spec.headers={...r.proxy.spec.headers,[e]:t.target.value})}))}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:1,children:(0,t.jsx)(y.Controller,{name:`Remove Header ${o}`,render:({field:o})=>(0,t.jsx)(W.Z,{...o,disabled:i,onClick:t=>{o.onChange(t);let i={...r.proxy?.spec.headers};delete i[e],n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.headers=i)}))},children:(0,t.jsx)(eb.default,{})})})})]},o)),(0,t.jsx)(c.ZP,{item:!0,xs:12,sx:{paddingTop:"0px !important",paddingLeft:"5px !important"},children:(0,t.jsx)(W.Z,{disabled:i,onClick:()=>n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.headers={...e.proxy.spec.headers,"":""})})),children:(0,t.jsx)(ej.default,{})})})]}),(0,t.jsx)(y.Controller,{name:"Secret",render:({field:e,fieldState:o})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,label:"Secret",value:r.proxy?.spec.secret||"",error:!!o.error,helperText:o.error?.message,InputProps:{readOnly:i},InputLabelProps:{shrink:!!i||void 0},onChange:t=>{e.onChange(t),n((0,Q.Uy)(r,e=>{void 0!==e.proxy&&(e.proxy.spec.secret=t.target.value)}))}})})]})}],h=g.findIndex(e=>e.label===l),m=g.findIndex(e=>e.label===s),x=r.proxy?m:h,[f,b]=(0,v.useState)(o),[j,C]=(0,v.useState)(a);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Z,{variant:"h4",mt:2,children:"HTTP Settings"}),(0,t.jsx)(eE,{isReadonly:i,tabs:g,defaultTab:x,onModeChange:e=>{if(g[e]?.label===l){C(r);let{proxy:e,...t}=r;n({...t,directUrl:f.directUrl})}else if(g[e]?.label===s){b(r);let{directUrl:e,...t}=r;n({...t,proxy:j.proxy})}}})]})}let eZ=["mean","first","first-number","last","last-number","min","max","sum"],ew={bottom:{label:"Bottom"},right:{label:"Right"}},eO={list:{label:"List"},table:{label:"Table"}},eD={small:{label:"Small"},medium:{label:"Medium"}},eI=eZ.reduce((e,r)=>(e[r]=o.CALCULATIONS_CONFIG[r],e),{});function eL(e){return void 0===e||!!((0,o.isValidLegendPosition)(e.position)&&(!e.mode||(0,o.isValidLegendMode)(e.mode))&&(!e.size||(0,o.isValidLegendSize)(e.size)))}let eV=Object.entries(ew).map(([e,r])=>({id:e,...r})),eR=Object.entries(eO).map(([e,r])=>({id:e,...r})),eA=Object.entries(eD).map(([e,r])=>({id:e,...r})),eM=Object.entries(eI).map(([e,r])=>({id:e,...r}));function eQ({value:e,onChange:r,showValuesEditor:n=!0}){let a=eL(e),l=(0,o.getLegendPosition)(e?.position),s=ew[l],u=(0,o.getLegendMode)(e?.mode),d=eO[u],c=(0,o.getLegendSize)(e?.size),p=eD[c],g=(e?.values||[]).reduce((e,r)=>{let n=eI[r];return n&&e.push({...n,id:r}),e},[]);return(0,t.jsxs)(i.OptionsEditorGroup,{title:"Legend",children:[!a&&(0,t.jsx)(i.ErrorAlert,{error:{name:"invalid-legend",message:"Invalid legend spec"}}),(0,t.jsx)(i.OptionsEditorControl,{label:"Show",control:(0,t.jsx)(m.Z,{checked:void 0!==e,onChange:(e,n)=>{r(!0===n?{position:o.DEFAULT_LEGEND.position}:void 0)}})}),(0,t.jsx)(i.OptionsEditorControl,{label:"Position",control:(0,t.jsx)(i.SettingsAutocomplete,{value:{...s,id:l},options:eV,onChange:(n,t)=>{r({...e,position:t.id})},disabled:void 0===e,disableClearable:!0})}),(0,t.jsx)(i.OptionsEditorControl,{label:"Mode",control:(0,t.jsx)(i.SettingsAutocomplete,{value:{...d,id:u},options:eR,onChange:(n,t)=>{r({...e,position:l,mode:t.id})},disabled:void 0===e,disableClearable:!0})}),(0,t.jsx)(i.OptionsEditorControl,{label:"Size",control:(0,t.jsx)(i.SettingsAutocomplete,{value:{...p,id:c},options:eA,onChange:(n,t)=>{r({...e,position:l,size:t.id})},disabled:void 0===e||"table"!==u,disableClearable:!0})}),n&&(0,t.jsx)(i.OptionsEditorControl,{label:"Values",control:(0,t.jsx)(i.SettingsAutocomplete,{multiple:!0,disableCloseOnSelect:!0,disableClearable:!0,value:g,options:eM,onChange:(n,t)=>{r({...e,position:l,values:t.map(e=>e.id)})},disabled:void 0===e||"table"!==u,limitTags:1,ChipProps:{size:"small"}})})]})}var e$=n(48565),eq=n(22446),eN=n(12449),e_=n(84974);let eF=({queryTypes:e,index:r,query:n,isCollapsed:i,onDelete:o,onChange:a,onCollapseExpand:l})=>(0,t.jsxs)(g.Z,{spacing:1,children:[(0,t.jsxs)(g.Z,{direction:"row",alignItems:"center",borderBottom:1,borderColor:e=>e.palette.divider,children:[(0,t.jsx)(W.Z,{size:"small",onClick:()=>l(r),children:i?(0,t.jsx)(e_.default,{}):(0,t.jsx)(eN.default,{})}),(0,t.jsxs)(d.Z,{variant:"overline",component:"h4",children:["Query #",r+1]}),(0,t.jsx)(W.Z,{size:"small",sx:{marginLeft:"auto",visibility:`${o?"visible":"hidden"}`},onClick:()=>o&&o(r),children:(0,t.jsx)(eq.default,{})})]}),!i&&(0,t.jsx)(eU,{queryTypes:e,value:n,onChange:e=>a(r,e)})]},r);function eU(e){let{value:r,onChange:n,queryTypes:i,...o}=e;return(0,t.jsx)(u.Z,{...o,children:(0,t.jsx)(q,{pluginTypes:i,pluginKindLabel:"Query Type",value:{selection:{kind:r.spec.plugin.kind,type:r.kind},spec:r.spec.plugin.spec},onChange:e=>{n((0,Q.Uy)(r,r=>{r.kind=e.selection.type,r.spec.plugin.kind=e.selection.kind,r.spec.plugin.spec=e.spec}))}})})}function eB({queryTypes:e,queries:r=[],onChange:n}){let{defaultInitialQueryDefinition:i,isLoading:o}=function(e){let r=e[0],{data:n,isLoading:t}=D(e),{defaultPluginKinds:i}=Z(),o=i?.[r]??n?.[0]?.spec.name??"",{data:a}=w(r,o,{throwOnError:!0,enabled:!0});return{defaultInitialQueryDefinition:{kind:r,spec:{plugin:{kind:o,spec:a?.createInitialOptions()||{}}}},isLoading:t}}(e),[a,l]=(0,v.useState)(r.map(()=>!1)),s=(e,t)=>{n((0,Q.Uy)(r,r=>{r?r[e]=t:r=[t]}))},u=e=>{n((0,Q.Uy)(r,r=>{r.splice(e,1)})),l(r=>(r.splice(e,1),[...r]))},d=e=>{l(r=>(r[e]=!r[e],[...r]))},c=r.length?r:o?[]:[i];return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(g.Z,{spacing:1,children:c.map((n,i)=>(0,t.jsx)(eF,{queryTypes:e,index:i,query:n,isCollapsed:!!a[i],onChange:s,onDelete:r.length>1?u:void 0,onCollapseExpand:d},i))}),(0,t.jsx)(e$.Z,{variant:"contained",startIcon:(0,t.jsx)(ej.default,{}),sx:{marginTop:1},onClick:()=>{n((0,Q.Uy)(r,e=>{e?e.push(i):e=[...r,i]})),l(e=>(e.push(!1),[...e]))},children:"Add Query"})]})}var eW=n(51781),eK=n(49408);let ez=({tabs:e})=>{let[r,n]=(0,v.useState)(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Z,{sx:{borderBottom:1,borderColor:e=>e.palette.divider},children:(0,t.jsx)(eW.Z,{value:r,onChange:(e,r)=>{n(r)},"aria-label":"Panel configuration tabs",children:e.map(({label:e},r)=>(0,t.jsx)(eK.Z,{label:e,id:`options-editor-tab-${r}`,"aria-controls":`options-editor-tabpanel-${r}`},e))})}),e.map(({label:e,content:n},i)=>(0,t.jsx)(eS,{value:r,index:i,children:n},e))]})},eG=(0,v.createContext)(0),eH=({queryCount:e,children:r})=>(0,t.jsx)(eG.Provider,{value:e,children:r}),eJ=()=>(0,v.useContext)(eG);function eY(e){let{control:r,panelDefinition:n,onJSONChange:o,onQueriesChange:a,onPluginSpecChange:l}=e,{kind:s}=n.spec.plugin,{data:u,isPending:d,error:c}=w("Panel",s);if(c)return(0,t.jsx)(i.ErrorAlert,{error:c});if(d)return null;if(void 0===u)throw Error(`Missing implementation for panel plugin with kind '${s}'`);let{panelOptionsEditorComponents:p,hideQueryEditor:g}=u,h=[];return g||h.push({label:"Query",content:(0,t.jsx)(y.Controller,{control:r,name:"panelDefinition.spec.queries",render:({field:e})=>(0,t.jsx)(eB,{queryTypes:u.supportedQueryTypes??[],queries:n.spec.queries??[],onChange:r=>{e.onChange(r),a(r)}})})}),void 0!==p&&(h=h.concat(p.map(({label:e,content:i})=>({label:e,content:(0,t.jsx)(y.Controller,{control:r,name:"panelDefinition.spec.plugin.spec",render:({field:e})=>(0,t.jsx)(i,{value:n.spec.plugin.spec,onChange:r=>{e.onChange(r),l(r)}})})})))),h.push({label:"Links",content:(0,t.jsx)(i.LinksEditor,{control:r})}),h.push({label:"JSON",content:(0,t.jsx)(y.Controller,{control:r,name:"panelDefinition",render:({field:e})=>(0,t.jsx)(i.JSONEditor,{maxHeight:"80vh",value:n,onChange:r=>{e.onChange(JSON.parse(r)),o(r)}})})}),(0,t.jsx)(eH,{queryCount:(n.spec.queries??[]).length,children:(0,t.jsx)(ez,{tabs:h},h.length)})}function eX(e){let{pluginLoader:{getInstalledPlugins:r,importPluginModule:n},children:i,defaultPluginKinds:a}=e,l=function(e){let r=(0,o.useEvent)(async()=>{let r=await e(),n=new Map,t=new Map;for(let e of r)for(let r of e.spec.plugins){var i,o;let{kind:a,spec:{name:l}}=r,s=(i=a,o=l,`${i}:${o}`);n.has(s)&&console.warn(`Got more than one ${a} plugin for kind ${l}`),n.set(s,e);let u=t.get(a);void 0===u&&(u=[],t.set(a,u)),u.push({...r,module:e.metadata})}return{pluginResourcesByNameAndKind:n,pluginMetadataByKind:t}}),n=(0,v.useRef)(void 0);return(0,v.useCallback)(()=>{let e=n.current;return void 0===e&&(e=r(),n.current=e,e.catch(()=>void 0===n.current)),e},[r])}(r),s=(0,v.useRef)(new Map),u=(0,o.useEvent)(e=>{let r=s.current.get(e);return void 0===r&&(r=n(e),s.current.set(e,r),r.catch(()=>s.current.delete(e))),r}),d=(0,v.useCallback)(async(e,r)=>{let n=await l(),t=`${e}:${r}`,i=n.pluginResourcesByNameAndKind.get(t);if(void 0===i)throw Error(`A ${r} plugin for kind '${e}' is not installed`);let o=(await u(i))[r];if(void 0===o)throw Error(`The ${r} plugin for kind '${e}' is missing from the ${i.metadata.name} plugin module`);return o},[l,u]),c=(0,v.useCallback)(async e=>{let r=await l();return e.flatMap(e=>r.pluginMetadataByKind.get(e)??[])},[l]),p=(0,v.useMemo)(()=>({getPlugin:d,listPluginMetadata:c,defaultPluginKinds:a}),[d,c,a]);return(0,t.jsx)(k.Provider,{value:p,children:i})}var e0=n(67877),e1=n(28278),e2=n(17001);let e5={refreshVariableValues:"Refresh values",copyVariableValues:"Copy values to clipboard",refresh:"Refresh",refreshInterval:"Auto refresh interval",zoomIn:"Zoom in",zoomOut:"Zoom out"};var e4=n(20461);let e3=(0,v.createContext)(void 0);function e6(){let e=(0,v.useContext)(e3);if(void 0===e)throw Error("No TimeRangeContext found. Did you forget a Provider?");return e}function e7(){return e6()}function e8(e){let{absoluteTimeRange:r}=e7();return void 0===e?0:(0,o.getSuggestedStepMs)(r,e)}function e9(e){let{timeRange:r,refreshInterval:n,children:i,setTimeRange:a,setRefreshInterval:l}=e,[s,u]=(0,v.useState)(r),[d,c]=(0,v.useState)(n),[p,g]=(0,v.useState)(0);(0,v.useEffect)(()=>{u(r)},[r,p]),(0,v.useEffect)(()=>{c(n)},[n]);let h=(0,v.useCallback)(()=>{g(e=>e+1)},[g]),m=null!=d?(0,e4.milliseconds)((0,o.parseDurationString)(d)):0;(0,v.useEffect)(()=>{if(m>0){let e=setInterval(()=>{h()},m);return()=>clearInterval(e)}},[h,m]);let x=(0,v.useMemo)(()=>{let e=(0,o.isRelativeTimeRange)(s)?(0,o.toAbsoluteTimeRange)(s):s;return{timeRange:s,setTimeRange:a??u,absoluteTimeRange:e,refresh:h,refreshKey:`${e.start}:${e.end}:${d}:${p}`,refreshInterval:d,refreshIntervalInMs:m,setRefreshInterval:l??c}},[s,a,h,d,p,m,l]);return(0,t.jsx)(e3.Provider,{value:x,children:i})}let re={showCustom:!0,showZoomButtons:!0,options:["5m","15m","30m","1h","6h","12h","24h","7d","14d"].map(e=>(0,i.buildRelativeTimeOption)(e))},rr=(0,v.createContext)(re);function rn(){let e=(0,v.useContext)(rr);if(void 0===e)throw Error("No TimeRangeContext found. Did you forget a Provider?");return e}function rt(){return rn()}function ri(e){let r=rt().showCustom;return void 0!==e?e:r}function ro(e){let r=rt().showZoomButtons;return void 0!==e?e:r}function ra(e){let r=rt().options;return void 0!==e?e:r}function rl(e){let r=(0,v.useMemo)(()=>({showCustom:void 0===e.showCustom?re.showCustom:e.showCustom,showZoomButtons:void 0===e.showZoomButtons?re.showZoomButtons:e.showZoomButtons,options:void 0===e.options?re.options:e.options}),[e.showCustom,e.showZoomButtons,e.options]);return(0,t.jsx)(rr.Provider,{value:r,children:e.children})}let rs=[{value:{pastDuration:"0s"},display:"Off"},{value:{pastDuration:"5s"},display:"5s"},{value:{pastDuration:"10s"},display:"10s"},{value:{pastDuration:"15s"},display:"15s"},{value:{pastDuration:"30s"},display:"30s"},{value:{pastDuration:"60s"},display:"1m"}];function ru({heightPx:e,showTimeRangeSelector:r=!0,showRefreshButton:n=!0,showRefreshInterval:a=!0,showCustomTimeRange:l,showZoomButtons:s=!0,timePresets:u}){let{timeRange:d,setTimeRange:c,refresh:p,refreshInterval:h,setRefreshInterval:m}=e7(),x=ri(l),f=ro(s),y=ra(u),b=void 0===e?"34px":`${e}px`;"pastDuration"in d&&!y.some(e=>e.value.pastDuration===d.pastDuration)&&y.push((0,i.buildRelativeTimeOption)(d.pastDuration));let j=(0,v.useCallback)(e=>{m(e)},[m]),C=e=>{let r=(0,o.parseDurationString)(e);return((r.seconds??0)+(r.minutes??0)*60+(r.hours??0)*3600+(r.days??0)*86400+(r.weeks??0)*604800+(r.months??0)*2629746+(r.years??0)*0x1e18558)*1e3},P=()=>{let e,r,n;let t=new Date;return Object.hasOwn(d,"start")?(n=(d.end.getTime()-d.start.getTime())/2,e=new Date(d.start.getTime()-n),r=new Date(d.end.getTime()+n)):(n=C(d.pastDuration)/2,e=new Date((r=void 0===d.end?t:new Date(d.end.getTime()+n)).getTime()-4*n)),r.getTime()>t.getTime()&&(r=t,e.setTime(t.getTime()-4*n)),1>e.getTime()&&e.setTime(1),{start:e,end:r}},T=()=>{let e,r;if(Object.hasOwn(d,"start")){let n=(d.end.getTime()-d.start.getTime())/4;e=new Date(d.start.getTime()+n),r=new Date(d.end.getTime()-n)}else{let n=C(d.pastDuration)/4;e=new Date((r=void 0!==d.end?new Date(d.end.getTime()-n):new Date).getTime()-2*n)}return e.getTime()>=r.getTime()-1e3&&e.setTime(r.getTime()-1e3),{start:e,end:r}};return(0,t.jsxs)(g.Z,{direction:"row",spacing:1,children:[r&&(0,t.jsx)(i.TimeRangeSelector,{timeOptions:y,value:d,onChange:c,height:b,showCustomTimeRange:x}),f&&(0,t.jsx)(i.InfoTooltip,{description:e5.zoomOut,children:(0,t.jsx)(i.ToolbarIconButton,{"aria-label":e5.zoomOut,onClick:()=>c(P()),sx:{height:b},children:(0,t.jsx)(e2.default,{})})}),f&&(0,t.jsx)(i.InfoTooltip,{description:e5.zoomIn,children:(0,t.jsx)(i.ToolbarIconButton,{"aria-label":e5.zoomIn,onClick:()=>c(T()),sx:{height:b},children:(0,t.jsx)(e1.default,{})})}),n&&(0,t.jsx)(i.InfoTooltip,{description:e5.refresh,children:(0,t.jsx)(i.ToolbarIconButton,{"aria-label":e5.refresh,onClick:p,sx:{height:b},children:(0,t.jsx)(e0.default,{})})}),a&&(0,t.jsx)(i.InfoTooltip,{description:e5.refreshInterval,children:(0,t.jsx)(i.RefreshIntervalPicker,{timeOptions:rs,value:h,onChange:j,height:b})})]})}function rd(e,r){let n=[],t=new Set;for(let i of e){let e=i.value.matchAll(r),o="";for(let r of e)for(let e=1;e<r.length;e++){let n=r[e];void 0!==n&&(o=`${o}${n}`)}""===o||t.has(o)||(t.add(o),n.push({label:i.label,value:o}))}return n}function rc(e){let r;let{data:n}=w("Variable",e.spec.plugin.kind),t=z(),i=eu(),{absoluteTimeRange:o,refreshKey:a}=e7(),l=e.spec.plugin.spec,s=void 0!==e.spec.capturingRegexp?RegExp(e.spec.capturingRegexp,"g"):void 0;n?.dependsOn&&(r=n.dependsOn(l,{timeRange:o,datasourceStore:t,variables:i}).variables);let u=eu(r),d=!1;r&&(d=r.some(e=>u[e]?.loading));let c=rp(u);return(0,E.useQuery)({queryKey:[e,c,o,a],queryFn:async()=>{let e=await n?.getVariableOptions(l,{datasourceStore:t,variables:u,timeRange:o});return void 0===e?[]:s?rd(e.data,s):e.data},enabled:!!n||d})}function rp(e){return Object.values(e).map(e=>JSON.stringify(e.value)).join(",")}let rg=[{label:"List",kind:"ListVariable"},{label:"Text",kind:"TextVariable"}];var rh=n(70313),rm=n(84954),rx=n(315),rv=n(50898),rf=n(60993);function ry(e){let{values:r,onRefresh:n,isLoading:o,error:a}=e,[l,s]=(0,v.useState)(50),{infoSnackbar:c}=(0,i.useSnackbar)(),p=0;return r&&r?.length>0&&l&&(p=r.length-l),(0,t.jsxs)(u.Z,{children:[(0,t.jsxs)(g.Z,{direction:"row",spacing:1,alignItems:"center",mb:1,children:[(0,t.jsx)(d.Z,{variant:"h4",children:"Preview Values"}),n&&(0,t.jsx)(i.InfoTooltip,{description:e5.refreshVariableValues,children:(0,t.jsx)(W.Z,{onClick:n,size:"small",children:(0,t.jsx)(e0.default,{})})}),(0,t.jsx)(i.InfoTooltip,{description:e5.copyVariableValues,children:(0,t.jsx)(W.Z,{onClick:async()=>{r?.length&&(await navigator.clipboard.writeText(r.map(e=>e).join(", ")),c("Preview values copied to clipboard!"))},size:"small",children:(0,t.jsx)(rf.default,{})})})]}),(0,t.jsx)(rm.Z,{variant:"outlined",children:(0,t.jsxs)(u.Z,{sx:{display:"flex",flexWrap:"wrap",gap:1,m:2},children:[a&&(0,t.jsx)(rx.Z,{severity:"error",children:a}),r?.length===0&&(0,t.jsx)(rx.Z,{severity:"info",children:"No results"}),o&&(0,t.jsx)(g.Z,{width:"100%",sx:{alignItems:"center",justifyContent:"center"},children:(0,t.jsx)(rv.Z,{})}),r?.slice(0,l).map((e,r)=>t.jsx(B.Z,{size:"small",label:e},r)),p>0&&(0,t.jsx)(B.Z,{onClick:()=>{s(void 0)},variant:"outlined",size:"small",label:`+${p} more`})]})})]})}function rb(e){let{definition:r,onRefresh:n}=e,{data:i,isFetching:o,error:a}=rc(r),l=a?.message;return(0,t.jsx)(ry,{values:i?.map(e=>e.value)||[],onRefresh:n,isLoading:o,error:l})}function rj(){return(0,t.jsx)("div",{children:"Error previewing values"})}function rC({action:e,control:r}){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Z,{py:1,variant:"subtitle1",children:"Text Options"}),(0,t.jsxs)(g.Z,{spacing:2,children:[(0,t.jsx)(y.Controller,{control:r,name:"spec.value",render:({field:r,fieldState:n})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.Z,{children:(0,t.jsx)(ry,{values:[r.value]})}),(0,t.jsx)(p.Z,{...r,label:"Value",InputLabelProps:{shrink:"read"===e||void 0},InputProps:{readOnly:"read"===e},error:!!n.error,helperText:n.error?.message,value:r.value??"",onChange:e=>{r.onChange(e)}})]})}),(0,t.jsx)(y.Controller,{control:r,name:"spec.constant",render:({field:r})=>(0,t.jsx)(h.Z,{label:"Constant",control:(0,t.jsx)(m.Z,{...r,checked:!!r.value,readOnly:"read"===e,value:r.value??!1,onChange:n=>{"read"!==e&&r.onChange(n)}})})})]})]})}function rP({action:e,control:r}){let n=(0,y.useFormContext)(),[o,a]=(0,v.useState)(n.getValues()),l=()=>{a(n.getValues())},s=(0,y.useWatch)({control:r,name:"spec.plugin"}),c=s?.kind,f=s?.spec,b=(0,y.useWatch)({control:r,name:"spec.allowAllValue"}),j=n.getValues();return void 0===j.spec.allowAllValue&&n.setValue("spec.allowAllValue",!1),void 0===j.spec.allowMultiple&&n.setValue("spec.allowMultiple",!1),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(d.Z,{py:1,variant:"subtitle1",children:"List Options"}),(0,t.jsxs)(g.Z,{spacing:2,mb:2,children:[c?(0,t.jsx)(u.Z,{children:(0,t.jsx)(i.ErrorBoundary,{FallbackComponent:rj,resetKeys:[o],children:(0,t.jsx)(rb,{definition:o,onRefresh:l})})}):(0,t.jsx)(ry,{isLoading:!0}),(0,t.jsxs)(g.Z,{children:[(0,t.jsx)(rh.d,{onClickAway:()=>l(),children:(0,t.jsx)(u.Z,{})}),(0,t.jsx)(i.ErrorBoundary,{FallbackComponent:i.ErrorAlert,children:(0,t.jsx)(y.Controller,{control:r,name:"spec.plugin",render:({field:r})=>(0,t.jsx)(q,{width:"100%",pluginTypes:["Variable"],pluginKindLabel:"Source",value:{selection:{type:"Variable",kind:c??"StaticListVariable"},spec:f??{values:[]}},isReadonly:"read"===e,onChange:e=>{r.onChange({kind:e.selection.kind,spec:e.spec})}})})})]}),(0,t.jsx)(g.Z,{children:(0,t.jsx)(y.Controller,{control:r,name:"spec.capturingRegexp",render:({field:r,fieldState:n})=>(0,t.jsx)(p.Z,{...r,label:"Capturing Regexp Filter",InputLabelProps:{shrink:"read"===e||void 0},InputProps:{readOnly:"read"===e},error:!!n.error,value:r.value??"",onChange:e=>{""===e.target.value?r.onChange(void 0):r.onChange(e)},helperText:n.error?.message?n.error.message:"Optional, if you want to filter on captured result."})})}),(0,t.jsx)(g.Z,{children:(0,t.jsx)(y.Controller,{control:r,name:"spec.sort",render:({field:r,fieldState:n})=>(0,t.jsxs)(p.Z,{select:!0,...r,fullWidth:!0,label:"Sort",InputLabelProps:{shrink:"read"===e||void 0},InputProps:{readOnly:"read"===e},error:!!n.error,helperText:n.error?.message,value:r.value??"none",onChange:e=>{r.onChange(e)},children:[(0,t.jsx)(S.Z,{value:"none",children:"None"}),(0,t.jsx)(S.Z,{value:"alphabetical-asc",children:"Alphabetical, asc"}),(0,t.jsx)(S.Z,{value:"alphabetical-desc",children:"Alphabetical, desc"}),(0,t.jsx)(S.Z,{value:"numerical-asc",children:"Numerical, asc"}),(0,t.jsx)(S.Z,{value:"numerical-desc",children:"Numerical, desc"}),(0,t.jsx)(S.Z,{value:"alphabetical-ci-asc",children:"Alphabetical, case-insensitive, asc"}),(0,t.jsx)(S.Z,{value:"alphabetical-ci-desc",children:"Alphabetical, case-insensitive, desc"})]})})})]}),(0,t.jsx)(x.Z,{}),(0,t.jsx)(d.Z,{py:1,variant:"subtitle1",children:"Dropdown Options"}),(0,t.jsxs)(g.Z,{spacing:"2",children:[(0,t.jsxs)(g.Z,{children:[(0,t.jsx)(y.Controller,{control:r,name:"spec.allowMultiple",render:({field:r})=>(0,t.jsx)(h.Z,{label:"Allow Multiple Values",control:(0,t.jsx)(m.Z,{...r,checked:!!r.value,readOnly:"read"===e,value:r.value??!1,onChange:n=>{"read"!==e&&r.onChange(n)}})})}),(0,t.jsx)(d.Z,{variant:"caption",children:"Enables multiple values to be selected at the same time"})]}),(0,t.jsxs)(g.Z,{children:[(0,t.jsx)(y.Controller,{control:r,name:"spec.allowAllValue",render:({field:r})=>(0,t.jsx)(h.Z,{label:"Allow All option",control:(0,t.jsx)(m.Z,{...r,checked:!!r.value,readOnly:"read"===e,value:r.value??!1,onChange:n=>{"read"!==e&&r.onChange(n)}})})}),(0,t.jsx)(d.Z,{mb:1,variant:"caption",children:"Enables an option to include all variable values"}),b&&(0,t.jsx)(y.Controller,{control:r,name:"spec.customAllValue",render:({field:r,fieldState:n})=>(0,t.jsx)(p.Z,{...r,fullWidth:!0,label:"Custom All Value",InputLabelProps:{shrink:"read"===e||void 0},InputProps:{readOnly:"read"===e},error:!!n.error,helperText:n.error?.message?n.error.message:"When All is selected, this value will be used",value:r.value??"",onChange:e=>{""===e.target.value?r.onChange(void 0):r.onChange(e)}})})]})]})]})}function rT({initialVariableDefinition:e,action:r,isDraft:n,isReadonly:o,onActionChange:a,onSave:l,onClose:g,onDelete:h}){let[m,f]=(0,v.useState)(!1),b=P(r,n),C=T(r,n),{variableEditorSchema:E}=j(),k=(0,y.useForm)({resolver:(0,s.F)(E),mode:"onBlur",defaultValues:e}),Z=(0,y.useWatch)({control:k.control,name:"kind"});function w(e){let r={...e};return r.spec.display?.name===void 0&&r.spec.display?.description===void 0&&r.spec.display?.hidden===void 0&&delete r.spec.display,r}return(0,t.jsxs)(y.FormProvider,{...k,children:[(0,t.jsxs)(u.Z,{sx:{display:"flex",alignItems:"center",padding:e=>e.spacing(1,2),borderBottom:e=>`1px solid ${e.palette.divider}`},children:[(0,t.jsxs)(d.Z,{variant:"h2",children:[b," Variable"]}),(0,t.jsx)(i.FormActions,{action:r,submitText:C,isReadonly:o,isValid:k.formState.isValid,onActionChange:a,onSubmit:k.handleSubmit(e=>{l(w(e))}),onDelete:h,onCancel:function(){JSON.stringify(e)!==JSON.stringify(w(k.getValues()))?f(!0):g()}})]}),(0,t.jsxs)(u.Z,{padding:2,sx:{overflowY:"scroll"},children:[(0,t.jsxs)(c.ZP,{container:!0,spacing:2,mb:2,children:[(0,t.jsx)(c.ZP,{item:!0,xs:8,children:(0,t.jsx)(y.Controller,{control:k.control,name:"spec.name",render:({field:e,fieldState:i})=>(0,t.jsx)(p.Z,{...e,required:!0,fullWidth:!0,label:"Name",InputLabelProps:{shrink:"read"===r||void 0},InputProps:{disabled:"update"===r&&!n,readOnly:"read"===r},error:!!i.error,helperText:i.error?.message,value:e.value??"",onChange:r=>{e.onChange(r)}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:4,children:(0,t.jsx)(y.Controller,{control:k.control,name:"spec.display.name",render:({field:e,fieldState:n})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,label:"Display Label",InputLabelProps:{shrink:"read"===r||void 0},InputProps:{readOnly:"read"===r},error:!!n.error,helperText:n.error?.message,value:e.value??"",onChange:r=>{e.onChange(r)}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:8,children:(0,t.jsx)(y.Controller,{control:k.control,name:"spec.display.description",render:({field:e,fieldState:n})=>(0,t.jsx)(p.Z,{...e,fullWidth:!0,label:"Description",InputLabelProps:{shrink:"read"===r||void 0},InputProps:{readOnly:"read"===r},error:!!n.error,helperText:n.error?.message,value:e.value??"",onChange:r=>{e.onChange(r)}})})}),(0,t.jsx)(c.ZP,{item:!0,xs:4,children:(0,t.jsx)(y.Controller,{control:k.control,name:"kind",render:({field:e,fieldState:n})=>(0,t.jsx)(p.Z,{select:!0,...e,fullWidth:!0,label:"Type",InputLabelProps:{shrink:"read"===r||void 0},InputProps:{readOnly:"read"===r},error:!!n.error,helperText:n.error?.message,value:e.value??"TextVariable",onChange:r=>{e.onChange(r)},children:rg.map(e=>(0,t.jsx)(S.Z,{value:e.kind,children:e.label},e.kind))})})})]}),(0,t.jsx)(x.Z,{}),"TextVariable"===Z&&(0,t.jsx)(i.ErrorBoundary,{FallbackComponent:i.ErrorAlert,children:(0,t.jsx)(rC,{action:r,control:k.control})}),"ListVariable"===Z&&(0,t.jsx)(i.ErrorBoundary,{FallbackComponent:i.ErrorAlert,children:(0,t.jsx)(rP,{action:r,control:k.control})})]}),(0,t.jsx)(i.DiscardChangesConfirmationDialog,{description:"Are you sure you want to discard these changes? Changes cannot be recovered.",isOpen:m,onCancel:()=>{f(!1)},onDiscardChanges:()=>{f(!1),g()}})]})}var rS=n(63767),rE=n(51564);let rk=(0,v.createContext)(void 0);function rZ(){return(0,E.useQuery)({queryKey:["projects"],queryFn:()=>(0,o.fetchJson)("/api/v1/projects")})}function rw(){let e=(0,v.useContext)(rk);if(void 0===e)throw Error("No ProjectStoreContext found. Did you forget a Provider?");return e}function rO(e){let{children:r,enabledURLParams:n}=e,{project:i,setProject:o}=function(e=!0){let[r,n]=(0,rE.useQueryParams)({project:""},{updateType:"replaceIn"}),[t,i]=(0,v.useState)("none"),o=(0,v.useCallback)(e=>n({project:e}),[n]);return e?{project:r.project||"none",setProject:o}:{project:t,setProject:i}}(n),a=(0,v.useMemo)(()=>({project:{kind:"Project",metadata:{name:i}},setProject:e=>{o(e.metadata.name)}}),[i,o]);return(0,t.jsx)(rk.Provider,{value:a,children:r})}function rD(e){let{onChange:r,value:n,...i}=e,{data:o,isLoading:a}=rZ(),l=a?"":n.metadata.name??"none";return(0,t.jsxs)(rS.Z,{...i,value:l,onChange:e=>{r({kind:"Project",metadata:{name:e.target.value},spec:{}})},children:[(0,t.jsx)(S.Z,{value:"none",children:(0,t.jsx)(g.Z,{direction:"row",alignItems:"center",justifyContent:"space-between",width:"100%",height:32,children:(0,t.jsx)(U.Z,{children:"None"})})}),o?.map(e=>[t.jsx(S.Z,{value:e.metadata.name,children:t.jsx(g.Z,{direction:"row",alignItems:"center",justifyContent:"space-between",width:"100%",height:32,children:t.jsx(U.Z,{children:e.metadata.name})})},e.metadata.name)])]})}let rI=({value:e,onChange:r})=>(0,t.jsx)(i.OptionsEditorControl,{label:"Metric label",description:"Specify label to display",control:(0,t.jsx)(p.Z,{fullWidth:!0,name:"Metric label",value:e||"",onChange:e=>{r(e.target.value||void 0)}})});function rL(e){let r=new Map(e.map(e=>[e.resource,e.importPlugin]));return{getInstalledPlugins:async()=>Promise.resolve(Array.from(r.keys())),importPluginModule(e){let n=r.get(e);if(void 0===n)throw Error("Plugin not found");return n()}}}function rV(e){return!e||"string"==typeof e&&(0,o.isDurationString)(e)?e:(1e3*(0,e4.getUnixTime)(e)).toString()}function rR(e){let r=function(e,r){if(!e||0===e.length)return null;let n=e instanceof Array?e[0]:e;return null==n?n:""!==n?n:null}(e);return r?(0,o.isDurationString)(r)?r:new Date(Number(r)):null}let rA={encode:rV,decode:rR,equals:(e,r)=>e===r||(e&&r?e.valueOf()===r.valueOf():e===r)},rM={start:rA,end:rA},rQ={refresh:rA};function r$(e){let[r]=(0,rE.useQueryParams)(rM,{updateType:"replaceIn"}),{start:n,end:t}=r;return(0,v.useMemo)(()=>{let r={pastDuration:e};if(!n)return r;let i=n.toString();return(0,o.isDurationString)(i)?r={pastDuration:i}:(0,e4.isDate)(n)&&(0,e4.isDate)(t)&&(r={start:n,end:t}),r},[n,t,e])}function rq(e){let[r,n]=(0,rE.useQueryParams)(rM,{updateType:"replaceIn"}),[t,i]=(0,v.useState)(!1),{start:a}=r;return(0,v.useEffect)(()=>{!t&&!a&&(0,o.isRelativeTimeRange)(e)&&(n({start:e.pastDuration,end:void 0}),i(!0))},[e,t,a,n]),{timeRange:e,setTimeRange:(0,v.useCallback)(e=>{(0,o.isRelativeTimeRange)(e)?n({start:e.pastDuration,end:void 0}):n(e)},[n])}}function rN(e){let[r]=(0,rE.useQueryParams)(rQ,{updateType:"replaceIn"}),{refresh:n}=r;return(0,v.useMemo)(()=>{let r=e;if(!n)return r;let t=n.toString();return(0,o.isDurationString)(t)&&(r=t),r},[e,n])}function r_(e){let[r,n]=(0,rE.useQueryParams)(rQ,{updateType:"replaceIn"}),[t,i]=(0,v.useState)(!1),{refresh:o}=r;return(0,v.useEffect)(()=>{t||o||(n({refresh:e}),i(!0))},[e,t,o,n]),{refreshInterval:e,setRefreshInterval:(0,v.useCallback)(e=>n({refresh:e}),[n])}}function rF(e){let{initialTimeRange:r,initialRefreshInterval:n,children:i}=e,{timeRange:o,setTimeRange:a}=rq(r),{refreshInterval:l,setRefreshInterval:s}=r_(n);return(0,t.jsx)(e9,{timeRange:o,refreshInterval:l,setTimeRange:a,setRefreshInterval:s,children:i})}function rU(e,r){return r?Object.fromEntries(Object.entries(e).filter(([e])=>r.includes(e))):e}function rB(e){return Object.values(e).map(e=>JSON.stringify(e.value)).join(",")}let rW="TimeSeriesQuery";function rK({plugin:e,definition:r,context:n}){let{timeRange:t,datasourceStore:i,suggestedStepMs:o,mode:a,variableState:l,refreshKey:s}=n,u=e?.dependsOn?e.dependsOn(r.spec.plugin.spec,n):{},d=u?.variables,c=[r,t,i,o,a,rB(rU(l,d)),s],p=!1;return d&&(p=d.some(e=>l[e]?.loading)),{queryKey:c,queryEnabled:void 0!==e&&!p}}let rz=(e,r,n)=>{let{data:t}=w(rW,e.spec.plugin.kind),i=rH(),{queryEnabled:o,queryKey:a}=rK({plugin:t,definition:e,context:i});return(0,E.useQuery)({enabled:(n?.enabled??!0)||o,queryKey:a,queryFn:()=>{if(void 0===t)throw Error("Expected plugin to be loaded");let n={...i,suggestedStepMs:r?.suggestedStepMs};return t.getTimeSeriesData(e.spec.plugin.spec,n)}})};function rG(e,r,n){let{getPlugin:t}=Z(),i={...rH(),mode:r?.mode},o=O(rW,e.map(e=>({kind:e.spec.plugin.kind})));return(0,E.useQueries)({queries:e.map((e,a)=>{let{queryEnabled:l,queryKey:s}=rK({plugin:o[a]?.data,definition:e,context:i});return{enabled:(n?.enabled??!0)&&l,queryKey:s,queryFn:async()=>{let n={...i,suggestedStepMs:r?.suggestedStepMs},o=await t(rW,e.spec.plugin.kind);return await o.getTimeSeriesData(e.spec.plugin.spec,n)}}})})}function rH(){let{absoluteTimeRange:e,refreshKey:r}=e7();return{timeRange:e,variableState:eu(),datasourceStore:z(),refreshKey:r}}function rJ(){return rY((0,E.useQueryClient)().getQueryCache())}function rY(e){let r=[];for(let n of e.findAll({type:"active"})){let e=n.queryKey?.[0];e?.kind&&e.kind.startsWith(rW)&&r.push(n)}return r}let rX="TraceQuery";function r0(e){let{start:r,end:n}=e;return{start:Math.ceil((0,e4.getUnixTime)(r)),end:Math.ceil((0,e4.getUnixTime)(n))}}function r1(e){let{getPlugin:r}=Z(),n=function(){let{absoluteTimeRange:e}=e7();return{variableState:eu(),datasourceStore:z(),absoluteTimeRange:e}}(),t=O("TraceQuery",e.map(e=>({kind:e.spec.plugin.kind})));return(0,E.useQueries)({queries:e.map((e,i)=>{let{queryEnabled:o,queryKey:a}=function({plugin:e,definition:r,context:n}){let{datasourceStore:t,variableState:i,absoluteTimeRange:o}=n,a=e?.dependsOn?e.dependsOn(r.spec.plugin.spec,n):{},l=a?.variables,s=[r,t,o,rB(rU(i,l))],u=!1;return l&&(u=l.some(e=>i[e]?.loading)),{queryKey:s,queryEnabled:void 0!==e&&!u}}({context:n,definition:e,plugin:t[i]?.data}),l=e?.spec?.plugin?.kind;return{enabled:o,queryKey:a,queryFn:async()=>{let t=await r(rX,l);return await t.getTraceData(e.spec.plugin.spec,n)}}})})}let r2=(0,v.createContext)(void 0),r5=()=>(0,v.useContext)(r2),r4=()=>{let e=r5();return{markQuery:(r,n)=>{if(void 0===e)return;let t=JSON.stringify(r);if((!e.pendingQueries.has(t)||"pending"!==n)&&e.pendingQueries.get(t)!==n){e.pendingQueries.set(t,n),"error"===n&&(e.renderErrorCount+=1);let r=[...e.pendingQueries.values()].every(e=>"pending"!==e);0===e.renderDurationMs&&r&&(e.renderDurationMs=Date.now()-e.startRenderTime,r3(e))}}}},r3=async e=>{await (0,o.fetch)("/api/v1/view",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({project:e.project,dashboard:e.dashboard,render_time:e.renderDurationMs/1e3,render_errors:e.renderErrorCount})})},r6=({project:e,dashboard:r,children:n})=>{let i={project:e,dashboard:r,renderErrorCount:0,startRenderTime:Date.now(),renderDurationMs:0,pendingQueries:new Map};return(0,t.jsx)(r2.Provider,{value:i,children:n})};function r7(e,r){return e.map(({data:e,isFetching:n,isLoading:t,refetch:i,error:o},a)=>({definition:r[a],data:e,isFetching:n,isLoading:t,refetch:i,error:o}))}function r8(){let{data:e,isLoading:r}=D(["TimeSeriesQuery"]),{data:n,isLoading:t}=D(["TraceQuery"]),i=(0,v.useMemo)(()=>{let r={TimeSeriesQuery:[],TraceQuery:[]};return e&&e.forEach(e=>{r[e.kind]?.push(e.spec.name)}),n&&n.forEach(e=>{r[e.kind]?.push(e.spec.name)}),r},[e,n]);return(0,v.useCallback)(e=>{if(!(e=>{switch(e){case"PrometheusTimeSeriesQuery":return r;case"TempoTraceQuery":return t}return t||r})(e)){for(let r in i)if(i[r]?.includes(e))return r;throw Error(`Unable to determine the query type: ${e}`)}},[i,r,t])}let r9=(0,v.createContext)(void 0);function ne(){let e=(0,v.useContext)(r9);if(void 0===e)throw Error("No DataQueriesContext found. Did you forget a Provider?");return e}function nr(e){let r=ne(),n=r.queryResults.filter(r=>r?.definition?.kind===e),t=r.errors.filter((n,t)=>r.queryResults[t]?.definition?.kind===e);return{queryResults:n,isFetching:n.some(e=>e.isFetching),isLoading:n.some(e=>e.isLoading),refetchAll:r.refetchAll,errors:t}}function nn(e){let{definitions:r,options:n,children:i,queryOptions:o}=e,a=r8(),l=r.map(e=>({kind:a(e.kind),spec:{plugin:e}})),s=r4(),u=l.filter(e=>"TimeSeriesQuery"===e.kind),d=rG(u,n,o),c=l.filter(e=>"TraceQuery"===e.kind),p=r1(c),g=(0,v.useCallback)(()=>{d.forEach(e=>e.refetch()),p.forEach(e=>e.refetch())},[d,p]),h=(0,v.useMemo)(()=>{let e=[...r7(d,u),...r7(p,c)];if(o?.enabled)for(let r of e)r.isLoading||r.isFetching||r.error?r.error?s.markQuery(r.definition,"error"):s.markQuery(r.definition,"pending"):s.markQuery(r.definition,"success");return{queryResults:e,isFetching:e.some(e=>e.isFetching),isLoading:e.some(e=>e.isLoading),refetchAll:g,errors:e.map(e=>e.error)}},[u,d,c,p,g,o?.enabled,s]);return(0,t.jsx)(r9.Provider,{value:h,children:i})}function nt(...e){let r={kind:"PluginModule",metadata:{name:"Fake Plugin Module for Tests",version:"0"},spec:{plugins:e.map(({kind:e,spec:{name:r}})=>({kind:e,spec:{name:r,display:{name:ni(e,r)}}}))}},n={};for(let r of e)n[r.spec.name]=r.plugin;return{pluginLoader:{getInstalledPlugins:()=>Promise.resolve([r]),importPluginModule:()=>Promise.resolve(n)},defaultPluginKinds:{TimeSeriesQuery:"PrometheusTimeSeriesQuery"}}}function ni(e,r){return`${e} Plugin for ${r}`}var no=n(82749),na=n(6085),nl=n.n(na),ns=n(65895);let nu=null,nd=()=>(null===nu&&(nu=(0,no.init)({name:"@perses/perses-ui-host",remotes:[],shared:{react:{version:f().version,lib:()=>f(),shareConfig:{singleton:!0,requiredVersion:`^${f().version}`}},"react-dom":{version:"18.3.1",lib:()=>nl(),shareConfig:{singleton:!0,requiredVersion:"^18.3.1"}},"react-router-dom":{version:"6.26.0",lib:()=>ns,shareConfig:{singleton:!0,requiredVersion:"^6.26.0"}},"@tanstack/react-query":{version:"5.64.2",lib:()=>E,shareConfig:{singleton:!0,requiredVersion:"^5.64.2"}},"react-hook-form":{version:"7.52.2",lib:()=>y,shareConfig:{singleton:!0,requiredVersion:"^7.52.2"}},echarts:{version:"5.5.0",lib:()=>n(76242),shareConfig:{singleton:!0,requiredVersion:"^5.5.0"}},"@perses-dev/components":{version:"0.51.0-beta.0",lib:()=>n(66480),shareConfig:{singleton:!0,requiredVersion:"^0.51.0-beta.0"}},"@perses-dev/plugin-system":{version:"0.51.0-beta.0",lib:()=>n(29436),shareConfig:{singleton:!0,requiredVersion:"^0.51.0-beta.0"}},"@perses-dev/explore":{version:"0.51.0-beta.0",lib:()=>n(73223),shareConfig:{singleton:!0,requiredVersion:"^0.51.0-beta.0"}},"@perses-dev/dashboards":{version:"0.51.0-beta.0",lib:()=>n(7125),shareConfig:{singleton:!0,requiredVersion:"^0.51.0-beta.0"}},"date-fns":{version:"4.1.0",lib:()=>n(20461),shareConfig:{singleton:!0,requiredVersion:"^4.1.0"}},"date-fns-tz":{version:"3.2.0",lib:()=>n(4665),shareConfig:{singleton:!0,requiredVersion:"^3.2.0"}},lodash:{version:"4.17.21",lib:()=>n(93098),shareConfig:{singleton:!0,requiredVersion:"^4.17.21"}},"@emotion/react":{version:"11.11.3",lib:()=>n(72116),shareConfig:{singleton:!0,requiredVersion:"^11.11.3"}},"@emotion/styled":{version:"11.11.0",lib:()=>n(31373),shareConfig:{singleton:!0,requiredVersion:"^11.11.0"}},"@hookform/resolvers/zod":{version:"3.3.4",lib:()=>n(22538),shareConfig:{singleton:!0,requiredVersion:"^3.3.4"}},"use-resize-observer":{version:"9.1.0",lib:()=>n(75276),shareConfig:{singleton:!0,requiredVersion:"^9.1.0"}},"mdi-material-ui":{version:"7.4.0",lib:()=>n(61157),shareConfig:{singleton:!0,requiredVersion:"^7.4.0"}},immer:{version:"10.1.1",lib:()=>n(86373),shareConfig:{singleton:!0,requiredVersion:"^10.1.1"}}}})),nu),nc=(e,r)=>{let n=nd();if(!n.options.remotes.find(r=>r.name===e)){let t=r?`${r}/${e}/mf-manifest.json`:`/plugins/${e}/mf-manifest.json`;n.registerRemotes([{name:e,entry:t,alias:e}])}},np=async(e,r,n)=>(nc(e,n),(0,no.loadRemote)(`${e}/${r}`));function ng({pluginFn:e,props:r}){return e(r)}function nh({plugin:e,props:r,field:n}){let{loadPlugin:i}=function({plugin:e}){return{pluginRuntime:nd(),loadPlugin:()=>np(e.moduleName,e.name,e.baseURL)}}({plugin:e}),[o,a]=(0,v.useState)(null),[l,s]=(0,v.useState)(null),u=`${e.moduleName}-${e.name}`,d=(0,v.useRef)(u);if((0,v.useEffect)(()=>{d.current=u,s(null),i().then(e=>{a(e)}).catch(r=>{a(null),console.error(`PluginLoaderComponent: Error loading plugin ${e.name} from module ${e.moduleName}:`,r),s(Error(`PluginLoaderComponent: Error loading plugin ${e.name} from module ${e.moduleName}`))})},[u]),l)throw l;if(!o)return null;let c=o[e.name];if(n&&c&&"object"==typeof c&&n in c&&(c=c[n]),!c)throw Error(`PluginLoaderComponent: Plugin module ${e.moduleName} does not have a ${e.name} export`);if("function"!=typeof c)throw Error(`PluginLoaderComponent: Plugin ${e.name} export is not a function`);return d.current!==u?null:(0,t.jsx)(ng,{pluginFn:c,props:r},u)}let nm=e=>"object"==typeof e&&null!==e&&"kind"in e&&"spec"in e&&"object"==typeof e.spec&&null!==e.spec&&"name"in e.spec,nx=e=>"object"==typeof e&&null!==e&&"metadata"in e&&"spec"in e&&"object"==typeof e.spec&&null!==e.spec&&"plugins"in e.spec&&Array.isArray(e.spec.plugins)&&e.spec.plugins.every(nm),nv=e=>({getInstalledPlugins:async()=>{let r=await fetch(`${e||""}/api/v1/plugins`),n=await r.json(),t=[];return Array.isArray(n)?t=n.filter(nx):console.error("RemotePluginLoader: Error loading plugins, response is not an array"),t.length||console.error("RemotePluginLoader: No valid plugins found"),t},importPluginModule:async e=>{let r=e.metadata.name,n={};for(let t of e.spec.plugins){let e=await np(r,t.spec.name),i=e?.[t.spec.name];i?n[t.spec.name]=i:console.error(`RemotePluginLoader: Error loading plugin ${t.spec.name}`)}return n}})}}]);
|