File: //opt/netdata/usr/local/share/netdata/web/v3/5325.10ee6988058e89c639c2.chunk.js
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"4feb900574abdd30667a599041aadc4fc9f8ac80"};var o=(new e.Error).stack;o&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[o]="5328dc20-e166-4f0e-bf59-4d38d9dffe19",e._sentryDebugIdIdentifier="sentry-dbid-5328dc20-e166-4f0e-bf59-4d38d9dffe19")}catch(e){}}(),(globalThis.webpackChunkcloud_frontend=globalThis.webpackChunkcloud_frontend||[]).push([[5325],{65325(e,o,t){t.r(o),t.d(o,{default:()=>w});var l=t(96540),n=t(38429),r=t(44245),i=t(39484),a=(t(98992),t(72577),t(882)),d=t(22337),s=t(66188),c=t(99728),g=t(53450),p=t(25059),u=t(65259),b=t(74848);const h=(0,a.styled)(n.Button).withConfig({displayName:"mapControls__MapButton",componentId:"sc-1vmpoog-0"})(["&&&{background:",";color:",";box-shadow:0 1px 4px rgba(0,0,0,0.2);white-space:nowrap;.button-icon{fill:",";}}"],e=>{let{active:o}=e;return o?(0,n.getRgbColor)("primary",.9):(0,n.getRgbColor)("bright",.92)},e=>{let{active:o}=e;return o?(0,n.getColor)("bright"):(0,n.getColor)("text")},e=>{let{active:o}=e;return o?(0,n.getColor)("bright"):(0,n.getColor)("text")}),x=(0,a.styled)(n.IconButton).attrs({padding:[0]}).withConfig({displayName:"mapControls__MapIconButton",componentId:"sc-1vmpoog-1"})(["&&&{background:",";color:",";box-shadow:0 1px 4px rgba(0,0,0,0.2);width:24px;height:24px;}"],(0,n.getRgbColor)("bright",.92),(0,n.getColor)("textLite")),f=e=>{let{onToggleTraffic:o,provider:t,setProvider:r,setGoogleApiKey:i,isDrawing:a,pendingNodeId:f,onToggleDrawMode:m,selectedLinkId:k,links:v,nodeById:w,onDeleteLink:I,onUpdateLink:y,onDeselectLink:C,canEdit:S}=e;const[j,T]=(0,l.useState)(!1),D=(0,c.JT)("space:UpdateSettings"),L=k?v?.find(e=>e.id===k):null;return(0,b.jsxs)(b.Fragment,{children:[L&&!a&&(0,b.jsx)(n.Flex,{position:"absolute",style:{top:10,left:10,zIndex:5},children:(0,b.jsx)(n.Flex,{alignItems:"center",gap:2,padding:[1,2],round:1,style:{background:"rgba(255,255,255,0.95)",boxShadow:"0 2px 8px rgba(0,0,0,0.15)"},children:(0,b.jsx)(u.A,{link:L,nodeById:w,onUpdate:y,onDelete:I,onClose:C,canEdit:S})})}),(0,b.jsxs)(n.Flex,{position:"absolute",alignItems:"center",gap:2,style:{top:10,right:10,zIndex:5},children:[a&&f&&(0,b.jsx)(n.Flex,{padding:[1,2],round:1,style:{background:"rgba(0,0,0,0.75)",boxShadow:"0 1px 4px rgba(0,0,0,0.3)",whiteSpace:"nowrap"},children:(0,b.jsx)(n.TextSmall,{color:"bright",children:"Click another node to connect"})}),a&&!f&&(0,b.jsx)(n.Flex,{padding:[1,2],round:1,style:{background:"rgba(0,0,0,0.75)",boxShadow:"0 1px 4px rgba(0,0,0,0.3)",whiteSpace:"nowrap"},children:(0,b.jsx)(n.TextSmall,{color:"bright",children:"Click a node to start a link"})}),t===g.mK.google&&(0,b.jsx)(h,{flavour:"borderless",small:!0,onClick:o,"aria-label":"Toggle traffic layer",children:(0,b.jsxs)(n.Flex,{alignItems:"center",gap:1,children:[(0,b.jsx)(d.gc,{icon:s.zC5,size:"sm"}),(0,b.jsx)("span",{children:"Traffic"})]})}),S&&(0,b.jsx)(h,{flavour:"borderless",small:!0,onClick:m,"aria-label":"Toggle draw link mode",icon:"pencilOutline",active:a,children:a?"Done":"Draw Links"}),D&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(x,{icon:"gear",onClick:()=>T(e=>!e),flavour:"borderless",tooltip:"Map settings"}),j&&(0,b.jsx)(p.A,{onClose:()=>T(!1),provider:t,setProvider:r,setGoogleApiKey:i})]})]})]})};var m=t(7960);const k=(0,m.A)(()=>Promise.all([t.e(2882),t.e(4550),t.e(6839)]).then(t.bind(t,76839)),"GoogleMapView"),v=(0,m.A)(()=>Promise.all([t.e(2492),t.e(2882),t.e(4795),t.e(2747)]).then(t.bind(t,92747)),"MapLibreView"),w=()=>{const{isGoogle:e,handleNodeClick:o,viewport:t,setViewport:a,showTraffic:d,linkProps:s,settingsProps:c,editProps:g}=(0,i.A)();return(0,r.ZB)({title:"Geo Map",id:"geo-map",destination:"geo-map",type:"geomap",icon:"node_hollow",tooltip:{title:"Geo Map",description:"Visualize node locations on an interactive map"}}),(0,b.jsx)(n.Flex,{column:!0,flex:!0,overflow:"hidden",height:"100%",children:(0,b.jsxs)(n.Flex,{flex:!0,position:"relative",overflow:"hidden",children:[(0,b.jsx)(f,{...c,...g}),(0,b.jsx)(l.Suspense,{fallback:(0,b.jsx)(n.Flex,{justifyContent:"center",alignItems:"center",height:"100%",children:(0,b.jsx)(n.Text,{color:"textLite",children:"Loading map..."})}),children:e?(0,b.jsx)(k,{onNodeClick:o,showTraffic:d,savedViewport:t,onViewportChange:a,linkProps:s}):(0,b.jsx)(v,{onNodeClick:o,savedViewport:t,onViewportChange:a,linkProps:s})})]})})}},65259(e,o,t){t.d(o,{A:()=>a});t(98992),t(81454);var l=t(882),n=t(38429),r=t(53450),i=t(74848);const a=e=>{let{link:o,nodeById:t,onUpdate:a,onDelete:d,onClose:s,canEdit:c}=e;const g=(0,l.useTheme)(),p="Default"!==g.name,u=(0,r.vQ)(p),b=(0,n.getColor)("text")({theme:g}),h=t[o.fromNodeId],x=t[o.toNodeId];return(0,i.jsxs)(n.Flex,{alignItems:"center",gap:2,padding:[0,2],round:1,border:{color:"borderSecondary"},background:"panelBg",children:[(0,i.jsxs)(n.TextSmall,{strong:!0,whiteSpace:"nowrap",children:[h?.name||h?.nm||"?"," \u2192 ",x?.name||x?.nm||"?"]}),c&&(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.TextInput,{placeholder:"Label",value:o.label||"",onChange:e=>a(o.id,{label:e.target.value}),"aria-label":"Link label",size:"tiny",width:"120px"}),(0,i.jsx)(n.Flex,{alignItems:"center",gap:1,children:u.map(e=>(0,i.jsx)(n.Button,{flavour:"borderless",onClick:()=>a(o.id,{color:e}),"aria-label":`Color ${e}`,style:{width:16,height:16,minWidth:16,minHeight:16,padding:0,borderRadius:3,background:e,border:`2px solid ${o.color===e?b:"transparent"}`,flexShrink:0}},e))}),(0,i.jsx)(n.Button,{flavour:"borderless",small:!0,danger:!0,onClick:()=>{d(o.id),s()},"aria-label":"Delete link",label:"Delete"})]}),(0,i.jsx)(n.Button,{flavour:"borderless",small:!0,neutral:!0,onClick:s,"aria-label":"Deselect link",label:"\u2715"})]})}},25059(e,o,t){t.d(o,{A:()=>c});var l=t(96540),n=t(882),r=t(22337),i=t(66188),a=t(38429),d=t(53450),s=t(74848);const c=e=>{let{onClose:o,provider:t,setProvider:c,setGoogleApiKey:g}=e;const p=(0,n.useTheme)(),u=(0,d.Pq)(),[b,h]=(0,l.useState)(t),[x,f]=(0,l.useState)(u.googleApiKey||""),[m,k]=(0,l.useState)(!1),v=e=>(0,a.getColor)(e)({theme:p}),w=(0,l.useCallback)(()=>{b===d.mK.google&&g(x.trim()),c(b),o()},[b,x,c,g,o]),I=b===d.mK.google&&!x.trim(),y=e=>{return{flex:1,border:`1px solid ${v(e?"primary":"borderSecondary")}`,background:e?(o="primary",t=.1,(0,a.getRgbColor)(o,t)({theme:p})):"transparent"};var o,t};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.Box,{position:"fixed",style:{inset:0,zIndex:9},onClick:o}),(0,s.jsxs)(a.Flex,{column:!0,padding:[3],gap:3,round:2,background:"mainBackground",border:{color:"borderSecondary"},position:"absolute",width:"280px",zIndex:10,style:{top:44,right:10,boxShadow:"0 4px 16px rgba(0,0,0,0.15)"},children:[(0,s.jsx)(a.TextMicro,{strong:!0,color:"textLite",children:"MAP PROVIDER"}),(0,s.jsxs)(a.Flex,{gap:1,children:[(0,s.jsx)(a.Button,{flavour:"borderless",small:!0,onClick:()=>h(d.mK.libre),"aria-label":"Select OpenStreetMap provider",style:y(b===d.mK.libre),children:"OpenStreetMap (Free)"}),(0,s.jsx)(a.Button,{flavour:"borderless",small:!0,onClick:()=>h(d.mK.google),"aria-label":"Select Google Maps provider",style:y(b===d.mK.google),children:"Google Maps"})]}),b===d.mK.google&&(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(a.TextMicro,{strong:!0,color:"textLite",children:"GOOGLE MAPS API KEY"}),(0,s.jsx)(a.TextInput,{type:m?"text":"password",value:x,onChange:e=>f(e.target.value),placeholder:"AIzaSy...","aria-label":"Google Maps API key",size:"small",iconRight:(0,s.jsx)(a.Button,{flavour:"borderless",onClick:()=>k(e=>!e),"aria-label":m?"Hide API key":"Show API key",style:{padding:2,minWidth:"auto",height:"auto"},children:(0,s.jsx)(r.gc,{icon:m?i.pS3:i.k6j,size:"sm"})})}),(0,s.jsx)(a.TextMicro,{color:"textLite",children:"Required for Google Maps. Get a key from the Google Cloud Console."})]}),(0,s.jsx)(a.Button,{onClick:w,disabled:I,"aria-label":"Save map settings",children:I?"API key required":"Save"})]})]})}},53450(e,o,t){t.d(o,{DQ:()=>i,DT:()=>p,Ez:()=>d,FU:()=>S,Ii:()=>n,KC:()=>c,Pq:()=>x,RN:()=>f,Sz:()=>m,_s:()=>v,aM:()=>r,ap:()=>j,cE:()=>I,cF:()=>w,dD:()=>k,e9:()=>C,fK:()=>A,jf:()=>T,l6:()=>D,mK:()=>b,nD:()=>a,p9:()=>g,s2:()=>s,vQ:()=>L,z1:()=>y,zc:()=>u});t(33110),t(98992),t(81454);var l=t(81395);const n={lat:30,lng:10},r=2,i=2,a=20,d={live:"#00ab44",stale:"#c59c12",offline:"#8c8c8c",unseen:"#b3b3b3"},s={critical:"#ff4136",warning:"#ffc300"},c=10,g=12,p=18,u=40,b={libre:"libre",google:"google"},h="netdata-geomap-settings",x=()=>{try{const e=localStorage.getItem(h);if(e)return JSON.parse(e)}catch{}return{provider:b.libre,googleApiKey:""}},f=e=>{try{localStorage.setItem(h,JSON.stringify(e))}catch{}},m=()=>{const{googleApiKey:e}=x();return window.NETDATA_GOOGLE_MAPS_API_KEY||e||""},k=()=>!!m(),v=()=>{const{provider:e}=x();return e===b.google&&k()?b.google:b.libre},w=60,I=16,y=.8,C=.5,S=.2,j=1.2,T=1.8,D=300,L=e=>{const o=e?1:0;return l.default.slice(0,8).map(e=>e[o])},A=e=>{const o=e?1:0;return{mixed:l.default[2][o],mostOffline:l.default[9][o]}}},39484(e,o,t){t.d(o,{A:()=>w});var l=t(96540),n=t(76667),r=t(99728),i=t(19186),a=t(53450),d=t(52035),s=t(34843);const c=(0,d.eU)(!1),g=(0,d.eU)(null),p=()=>{const[e,o]=(0,l.useState)(a._s),[t,n]=(0,s.fp)(c),[r,i]=(0,s.fp)(g),d=(0,l.useCallback)(e=>{const t=(0,a.Pq)();t.provider=e,(0,a.RN)(t),o(e===a.mK.google&&(0,a.dD)()?a.mK.google:a.mK.libre),n(!1)},[n]),p=(0,l.useCallback)(e=>{const t=(0,a.Pq)();t.googleApiKey=e,(0,a.RN)(t),e&&t.provider===a.mK.google&&o(a.mK.google),e||t.provider!==a.mK.google||o(a.mK.libre)},[]);return{provider:e,setProvider:d,showTraffic:t,toggleTraffic:(0,l.useCallback)(()=>n(e=>!e),[n]),viewport:r,setViewport:i,setGoogleApiKey:p}};t(33110),t(98992),t(54520),t(81454),t(37550);var u=t(24609);const b=e=>`netdata-geomap-links-${e}`,h=e=>{try{const o=localStorage.getItem(b(e));if(o)return JSON.parse(o)}catch{}return[]},x=(e,o)=>{try{localStorage.setItem(b(e),JSON.stringify(o))}catch{}},f=()=>{const e=(0,u.vt)(),[o,t]=(0,l.useState)(()=>h(e));(0,l.useEffect)(()=>{t(h(e))},[e]);const n=(0,l.useCallback)(function(o,l){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#4A90D9";t(t=>{if(t.some(e=>e.fromNodeId===o&&e.toNodeId===l||e.fromNodeId===l&&e.toNodeId===o))return t;const i=`link-${Math.random().toString(36).slice(2)}`,a=[...t,{id:i,fromNodeId:o,toNodeId:l,label:n,color:r}];return x(e,a),a})},[e]);return{links:o,addLink:n,removeLink:(0,l.useCallback)(o=>{t(t=>{const l=t.filter(e=>e.id!==o);return x(e,l),l})},[e]),updateLink:(0,l.useCallback)((o,l)=>{t(t=>{const n=t.map(e=>e.id===o?{...e,...l}:e);return x(e,n),n})},[e])}},m=e=>{let{addLink:o}=e;const[t,n]=(0,l.useState)(!1),[r,i]=(0,l.useState)(null),[a,d]=(0,l.useState)(null),s=(0,l.useCallback)(()=>{n(e=>!e),i(null),d(null)},[]),c=(0,l.useCallback)(e=>r?r===e?(i(null),!0):(o(r,e),i(null),!0):(i(e),!0),[r,o]),g=(0,l.useCallback)(()=>{i(null)},[]);return{isDrawing:t,pendingNodeId:r,selectedLinkId:a,setSelectedLinkId:d,toggleDrawMode:s,handleNodeClickInDrawMode:c,cancelPending:g}};var k=t(2817),v=t(49519);const w=function(){let{onNodeNavigate:e}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const o=(0,i.r9)(),t=(0,n.Zp)(),d=(0,r.JT)("space:UpdateSettings"),{provider:s,setProvider:c,showTraffic:g,toggleTraffic:u,viewport:b,setViewport:h,setGoogleApiKey:x}=p(),{links:w,addLink:I,removeLink:y,updateLink:C}=f(),S=(0,k.A)(),{isDrawing:j,pendingNodeId:T,selectedLinkId:D,setSelectedLinkId:L,toggleDrawMode:A,handleNodeClickInDrawMode:N,cancelPending:P}=m({addLink:I}),M=(0,v.A)(S),K=(0,l.useCallback)(l=>{j?N(l):l&&o&&(e?.(),t(`${o}/nodes/${l}`))},[j,N,o,t,e]),F=(0,l.useCallback)(()=>L(null),[L]),G=s===a.mK.google,B=(0,l.useMemo)(()=>({links:w,selectedLinkId:D,onSelectLink:L,pendingNodeId:T,isDrawing:j}),[w,D,L,T,j]),E=(0,l.useMemo)(()=>({showTraffic:g,onToggleTraffic:u,provider:s,setProvider:c,setGoogleApiKey:x}),[g,u,s,c,x]),_=(0,l.useMemo)(()=>({isDrawing:j,pendingNodeId:T,onToggleDrawMode:A,selectedLinkId:D,links:w,nodeById:M,onDeleteLink:y,onUpdateLink:C,onDeselectLink:F,canEdit:d}),[j,T,A,D,w,M,y,C,F,d]);return{isGoogle:G,handleNodeClick:K,viewport:b,setViewport:h,showTraffic:g,linkProps:B,settingsProps:E,editProps:_,isDrawing:j,pendingNodeId:T,selectedLinkId:D,setSelectedLinkId:L,toggleDrawMode:A,cancelPending:P}}},49519(e,o,t){t.d(o,{A:()=>n});var l=t(96540);const n=e=>(0,l.useMemo)(()=>{const o={};for(const t of e)o[t.id]=t;return o},[e])}}]);