@harperfast/harper 5.2.4 → 5.2.6

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.
Files changed (72) hide show
  1. package/bin/restart.ts +48 -23
  2. package/bin/restartExitWatchdog.ts +99 -0
  3. package/bin/run.ts +16 -10
  4. package/components/status/crossThread.ts +69 -44
  5. package/components/status/types.ts +1 -0
  6. package/dist/bin/restart.js +39 -21
  7. package/dist/bin/restart.js.map +1 -1
  8. package/dist/bin/restartExitWatchdog.d.ts +5 -0
  9. package/dist/bin/restartExitWatchdog.js +100 -0
  10. package/dist/bin/restartExitWatchdog.js.map +1 -0
  11. package/dist/bin/run.d.ts +2 -0
  12. package/dist/bin/run.js +17 -10
  13. package/dist/bin/run.js.map +1 -1
  14. package/dist/components/status/crossThread.d.ts +1 -0
  15. package/dist/components/status/crossThread.js +57 -41
  16. package/dist/components/status/crossThread.js.map +1 -1
  17. package/dist/components/status/types.d.ts +1 -0
  18. package/dist/resources/DatabaseTransaction.d.ts +46 -1
  19. package/dist/resources/DatabaseTransaction.js +173 -9
  20. package/dist/resources/DatabaseTransaction.js.map +1 -1
  21. package/dist/resources/LMDBTransaction.d.ts +2 -0
  22. package/dist/resources/LMDBTransaction.js +7 -1
  23. package/dist/resources/LMDBTransaction.js.map +1 -1
  24. package/dist/resources/Resource.js +5 -4
  25. package/dist/resources/Resource.js.map +1 -1
  26. package/dist/resources/ResourceInterface.d.ts +20 -0
  27. package/dist/resources/ResourceInterface.js.map +1 -1
  28. package/dist/resources/Table.js +56 -9
  29. package/dist/resources/Table.js.map +1 -1
  30. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.d.ts +11 -0
  31. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js +153 -51
  32. package/dist/resources/indexes/HierarchicalNavigableSmallWorld.js.map +1 -1
  33. package/dist/resources/transaction.js +4 -2
  34. package/dist/resources/transaction.js.map +1 -1
  35. package/dist/server/itc/serverHandlers.js +2 -1
  36. package/dist/server/itc/serverHandlers.js.map +1 -1
  37. package/dist/server/threads/manageThreads.d.ts +2 -0
  38. package/dist/server/threads/manageThreads.js +37 -5
  39. package/dist/server/threads/manageThreads.js.map +1 -1
  40. package/dist/utility/processManagement/processManagement.js +21 -3
  41. package/dist/utility/processManagement/processManagement.js.map +1 -1
  42. package/npm-shrinkwrap.json +2 -2
  43. package/package.json +1 -1
  44. package/resources/DESIGN.md +19 -18
  45. package/resources/DatabaseTransaction.ts +187 -17
  46. package/resources/LMDBTransaction.ts +7 -1
  47. package/resources/Resource.ts +6 -5
  48. package/resources/ResourceInterface.ts +20 -0
  49. package/resources/Table.ts +60 -8
  50. package/resources/indexes/HierarchicalNavigableSmallWorld.ts +153 -54
  51. package/resources/transaction.ts +5 -3
  52. package/schema.graphql +8 -3
  53. package/server/DESIGN.md +6 -0
  54. package/server/itc/serverHandlers.js +2 -1
  55. package/server/threads/manageThreads.js +34 -5
  56. package/studio/web/assets/{Chat-BvOlYIhe.js → Chat-BNHY84-Z.js} +1 -1
  57. package/studio/web/assets/{FloatingChat-fCJiJCH2.js → FloatingChat-BbztUci0.js} +3 -3
  58. package/studio/web/assets/{apiToken-bKwPv0uN.js → apiToken-D0x_S8Wq.js} +1 -1
  59. package/studio/web/assets/{applications-BZ47njJ_.js → applications-BU83fSEG.js} +1 -1
  60. package/studio/web/assets/{index-DF1fSnXV.js → index-BQB9R8Ug.js} +4 -4
  61. package/studio/web/assets/{index.lazy-DWt8ubrr.js → index.lazy-CtErm5q7.js} +3 -3
  62. package/studio/web/assets/{notifications-B5ZBOni1.js → notifications-B8rDagJM.js} +1 -1
  63. package/studio/web/assets/{notifications-gVx0lA8H.js → notifications-CPwYKDDH.js} +1 -1
  64. package/studio/web/assets/{profile-D7g0x28A.js → profile-D0hB1xdm.js} +1 -1
  65. package/studio/web/assets/{regions-DRkhlkiD.js → regions-y_jxsBpN.js} +1 -1
  66. package/studio/web/assets/{setComponentFile-DQkkobG5.js → setComponentFile-DSHbURTI.js} +1 -1
  67. package/studio/web/assets/{setup-nf-EOheW.js → setup-J5SrM1Kp.js} +1 -1
  68. package/studio/web/assets/{status-B2tOM3RF.js → status-IoJkDzlx.js} +1 -1
  69. package/studio/web/assets/{swagger-ui-react-UktCouQ0.js → swagger-ui-react-BlgSS25O.js} +1 -1
  70. package/studio/web/assets/{useEntityRestURL-alqAn3dT.js → useEntityRestURL-qfahJnvr.js} +1 -1
  71. package/studio/web/index.html +1 -1
  72. package/utility/processManagement/processManagement.js +19 -3
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/swagger-ui-react-UktCouQ0.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-datadog-XDrpA25D.js","assets/vendor-react-BhazFIp8.js","assets/vendor-ui-BLIveqaL.js","assets/index-DF1fSnXV.js","assets/authStore-B3IhXrn6.js","assets/vendor-core-CddkYGh5.js","assets/button-DfBmT4rc.js","assets/vendor-tanstack-FsM5XZNE.js","assets/useAuth-DiJUZS1C.js","assets/card-ByrPS_wa.js","assets/createLucideIcon-BMkDbMrz.js","assets/select-CKgJgpkn.js","assets/x-D39AGKMb.js","assets/setLocalStorage-CD_L8p_D.js","assets/useLocalStorage-DetQlhBe.js","assets/getRegistrationInfo--NLLrics.js","assets/table-BvFflPWi.js","assets/chevron-right-CY-tr2sG.js","assets/errorText-NpBmvk9I.js","assets/queryClient-BLhQvmWC.js","assets/pollUnlessForbidden-DIDXGBc5.js","assets/textarea-a3RnTY31.js","assets/tokenization-CWuvR2gh.js","assets/index-BO3NaEw8.css","assets/purify.es-DrVcFY1Q.js","assets/react-redux-Ds7wf7Ax.js"])))=>i.map(i=>d[i]);
2
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./button-DfBmT4rc.js";import{L as n,k as r,x as i,z as a}from"./vendor-tanstack-FsM5XZNE.js";import{a as o,i as s}from"./vendor-datadog-XDrpA25D.js";import{r as c}from"./vendor-react-BhazFIp8.js";import{i as l,t as u}from"./getRegistrationInfo--NLLrics.js";import{o as d}from"./pollUnlessForbidden-DIDXGBc5.js";import{Bn as f,er as p,ft as m,kn as h,lt as g}from"./index-DF1fSnXV.js";import{t as _}from"./useEntityRestURL-alqAn3dT.js";var v=[{fn:{requestSnippetGenerator_fetch:e=>{let t=new URL(e.get(`url`)),n=!1,r=e.get(`headers`);r&&r.size&&r.map((e,t)=>{n||=/^content-type$/i.test(t)&&/^multipart\/form-data$/i.test(e)});let i=e.get(`body`),a=e.get(`method`);if(i){if(n&&[`POST`,`PUT`,`PATCH`].includes(a))return`throw new Error("Currently unsupported content-type: /^multipart\\/form-data$/i");`;typeof i!=`string`&&(i=JSON.stringify(i,null,` `))}else!i&&a===`POST`&&(i=``);let o="`"+(i||``).replace(/\\n/g,`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/swagger-ui-react-BlgSS25O.js","assets/rolldown-runtime-B0Z9INg1.js","assets/vendor-datadog-XDrpA25D.js","assets/vendor-react-BhazFIp8.js","assets/vendor-ui-BLIveqaL.js","assets/index-BQB9R8Ug.js","assets/authStore-B3IhXrn6.js","assets/vendor-core-CddkYGh5.js","assets/button-DfBmT4rc.js","assets/vendor-tanstack-FsM5XZNE.js","assets/useAuth-DiJUZS1C.js","assets/card-ByrPS_wa.js","assets/createLucideIcon-BMkDbMrz.js","assets/select-CKgJgpkn.js","assets/x-D39AGKMb.js","assets/setLocalStorage-CD_L8p_D.js","assets/useLocalStorage-DetQlhBe.js","assets/getRegistrationInfo--NLLrics.js","assets/table-BvFflPWi.js","assets/chevron-right-CY-tr2sG.js","assets/errorText-NpBmvk9I.js","assets/queryClient-BLhQvmWC.js","assets/pollUnlessForbidden-DIDXGBc5.js","assets/textarea-a3RnTY31.js","assets/tokenization-CWuvR2gh.js","assets/index-BO3NaEw8.css","assets/purify.es-DrVcFY1Q.js","assets/react-redux-Ds7wf7Ax.js"])))=>i.map(i=>d[i]);
2
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./button-DfBmT4rc.js";import{L as n,k as r,x as i,z as a}from"./vendor-tanstack-FsM5XZNE.js";import{a as o,i as s}from"./vendor-datadog-XDrpA25D.js";import{r as c}from"./vendor-react-BhazFIp8.js";import{i as l,t as u}from"./getRegistrationInfo--NLLrics.js";import{o as d}from"./pollUnlessForbidden-DIDXGBc5.js";import{Bn as f,er as p,ft as m,kn as h,lt as g}from"./index-BQB9R8Ug.js";import{t as _}from"./useEntityRestURL-qfahJnvr.js";var v=[{fn:{requestSnippetGenerator_fetch:e=>{let t=new URL(e.get(`url`)),n=!1,r=e.get(`headers`);r&&r.size&&r.map((e,t)=>{n||=/^content-type$/i.test(t)&&/^multipart\/form-data$/i.test(e)});let i=e.get(`body`),a=e.get(`method`);if(i){if(n&&[`POST`,`PUT`,`PATCH`].includes(a))return`throw new Error("Currently unsupported content-type: /^multipart\\/form-data$/i");`;typeof i!=`string`&&(i=JSON.stringify(i,null,` `))}else!i&&a===`POST`&&(i=``);let o="`"+(i||``).replace(/\\n/g,`
3
3
  `).replace(/`/g,"\\`")+"`";return`const response = await fetch("${t.toString()}", {
4
4
  \tmethod: "${e.get(`method`)}",${r&&r.size?`
5
5
  \theaders: {
@@ -10,4 +10,4 @@ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{t}from"./button-DfBmT4
10
10
  });
11
11
  const data = await response.json();
12
12
  console.log(data);
13
- `}}}],y={generators:{fetch:{title:`Fetch`,syntax:`javascript`}}};function b({entityId:e,instanceClient:t}){return n({queryKey:[`OpenAPI`,e],queryFn:async()=>{let{data:e}=await t.get(`/api/openapi/rest`);return e}})}var x=e(o(),1),S=c(),C=(0,x.lazy)(()=>s(()=>import(`./swagger-ui-react-UktCouQ0.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])));function w(){let{instanceId:e,clusterId:n}=r({strict:!1}),i=d(),{data:o,isLoading:s}=a(g(i)),{data:c,isLoading:w}=a(u(i)),T=_(),{data:E,isLoading:D,error:O}=a(b(i));E?.servers?.length&&(E.servers[0].url=T);let k=o?.http,A=``,j=k?.cors===!1,M=k?.corsAccessList?.length!==void 0&&!k.corsAccessList.includes(`*`)&&!k.corsAccessList.includes(`null`)&&!k.corsAccessList.includes(window.location.origin);j?A=`This ${n&&!e?`cluster`:`instance`} has CORS disabled currently, so you won't be able to execute API requests from the browser.`:M&&(A=`This ${n&&!e?`cluster`:`instance`} has CORS enabled, but ${window.location.origin} is not allowed, so you won't be able to execute API requests from the browser.`);let{onConfigUpdate:N,isPending:P}=m(),F=(0,x.useCallback)(()=>{N({...j?{http_cors:!0}:{},...M?{http_corsAccessList:[...k?.corsAccessList??[],window.location.origin]}:{}})},[j,k?.corsAccessList,M,N]);if(s||w||D)return(0,S.jsx)(h,{centered:!0,text:`Looking up your instance configuration, one moment.`});if(O){let e;return e=c?.version&&!l(`4.7.0-beta.7`,c?.version)?`API Docs are only available starting in version '4.7.0-beta.7' of Harper, please update your version ${c.version}!`:`We weren't able to look up your docs. Please check the Network tab of your developer tools to see why the docs were not accessible to Studio.`,(0,S.jsx)(f,{title:`API Docs Unavailable`,error:{message:e},showReturnToHome:!1})}return(0,S.jsxs)(`div`,{className:`pt-6`,children:[A&&(0,S.jsx)(f,{title:`CORS Disabled: HTTP API Not Accessible`,className:`mt-0 mx-4 mb-4 border-yellow text-yellow`,error:{message:A},showReturnToHome:!1,children:(0,S.jsxs)(t,{type:`button`,disabled:P,variant:`warning`,onClick:F,children:[(0,S.jsx)(p,{}),P?`Enabling CORS...`:`Enable CORS for ${window.location.origin}`]})}),(0,S.jsx)(x.Suspense,{fallback:(0,S.jsx)(h,{centered:!0,text:`Loading API documentation...`}),children:(0,S.jsx)(C,{spec:E,persistAuthorization:!0,withCredentials:!0,requestSnippetsEnabled:!0,defaultModelRendering:`model`,requestSnippets:y,plugins:v,tryItOutEnabled:!0})})]})}var T=i(`/apis`)({component:w});export{T as route};
13
+ `}}}],y={generators:{fetch:{title:`Fetch`,syntax:`javascript`}}};function b({entityId:e,instanceClient:t}){return n({queryKey:[`OpenAPI`,e],queryFn:async()=>{let{data:e}=await t.get(`/api/openapi/rest`);return e}})}var x=e(o(),1),S=c(),C=(0,x.lazy)(()=>s(()=>import(`./swagger-ui-react-BlgSS25O.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27])));function w(){let{instanceId:e,clusterId:n}=r({strict:!1}),i=d(),{data:o,isLoading:s}=a(g(i)),{data:c,isLoading:w}=a(u(i)),T=_(),{data:E,isLoading:D,error:O}=a(b(i));E?.servers?.length&&(E.servers[0].url=T);let k=o?.http,A=``,j=k?.cors===!1,M=k?.corsAccessList?.length!==void 0&&!k.corsAccessList.includes(`*`)&&!k.corsAccessList.includes(`null`)&&!k.corsAccessList.includes(window.location.origin);j?A=`This ${n&&!e?`cluster`:`instance`} has CORS disabled currently, so you won't be able to execute API requests from the browser.`:M&&(A=`This ${n&&!e?`cluster`:`instance`} has CORS enabled, but ${window.location.origin} is not allowed, so you won't be able to execute API requests from the browser.`);let{onConfigUpdate:N,isPending:P}=m(),F=(0,x.useCallback)(()=>{N({...j?{http_cors:!0}:{},...M?{http_corsAccessList:[...k?.corsAccessList??[],window.location.origin]}:{}})},[j,k?.corsAccessList,M,N]);if(s||w||D)return(0,S.jsx)(h,{centered:!0,text:`Looking up your instance configuration, one moment.`});if(O){let e;return e=c?.version&&!l(`4.7.0-beta.7`,c?.version)?`API Docs are only available starting in version '4.7.0-beta.7' of Harper, please update your version ${c.version}!`:`We weren't able to look up your docs. Please check the Network tab of your developer tools to see why the docs were not accessible to Studio.`,(0,S.jsx)(f,{title:`API Docs Unavailable`,error:{message:e},showReturnToHome:!1})}return(0,S.jsxs)(`div`,{className:`pt-6`,children:[A&&(0,S.jsx)(f,{title:`CORS Disabled: HTTP API Not Accessible`,className:`mt-0 mx-4 mb-4 border-yellow text-yellow`,error:{message:A},showReturnToHome:!1,children:(0,S.jsxs)(t,{type:`button`,disabled:P,variant:`warning`,onClick:F,children:[(0,S.jsx)(p,{}),P?`Enabling CORS...`:`Enable CORS for ${window.location.origin}`]})}),(0,S.jsx)(x.Suspense,{fallback:(0,S.jsx)(h,{centered:!0,text:`Loading API documentation...`}),children:(0,S.jsx)(C,{spec:E,persistAuthorization:!0,withCredentials:!0,requestSnippetsEnabled:!0,defaultModelRendering:`model`,requestSnippets:y,plugins:v,tryItOutEnabled:!0})})]})}var T=i(`/apis`)({component:w});export{T as route};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./button-DfBmT4rc.js";import{H as r,I as i}from"./vendor-tanstack-FsM5XZNE.js";import{a}from"./vendor-datadog-XDrpA25D.js";import{r as o}from"./vendor-react-BhazFIp8.js";import{c as s,d as c,f as l,i as u,l as d,n as f,o as p,p as m,s as h,t as g,u as _}from"./select-CKgJgpkn.js";import{c as v}from"./table-BvFflPWi.js";import{t as y}from"./textarea-a3RnTY31.js";import{Cn as b,Dt as x,It as S,On as C,Wn as w,er as T,gn as E,on as D,rn as O,vn as k,wn as A,xn as j,yn as M}from"./index-DF1fSnXV.js";import{a as N,c as P,i as F,n as I,o as L,r as R,s as z,t as B}from"./alertDialog-BaBrZQ4M.js";function V(){let e=r();return i({mutationFn:async e=>{let{data:n}=await t.post(`/SystemStatus/`,e);return n},onSuccess:()=>e.invalidateQueries({queryKey:k})})}function H(){let e=r();return i({mutationFn:async({id:e,draft:n})=>{await t.patch(`/SystemStatus/${e}`,n)},onSuccess:()=>e.invalidateQueries({queryKey:k})})}function U(){let e=r();return i({mutationFn:async e=>{await t.delete(`/SystemStatus/${e}`)},onSuccess:()=>e.invalidateQueries({queryKey:k})})}var W=e(a(),1),G=o(),K=[{value:`error`,label:`Error / Outage`},{value:`warning`,label:`Warning`},{value:`maintenance`,label:`Maintenance`},{value:`info`,label:`Info`}];function q(e){let t=A(e);if(t===null)return``;let n=new Date(t),r=e=>String(e).padStart(2,`0`);return`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}T${r(n.getHours())}:${r(n.getMinutes())}`}function J(e){if(!e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}function Y(e){let t=A(e.startAt),n=A(e.endAt);if(t===null&&n===null)return`Always`;let r=e=>e===null?`—`:new Date(e).toLocaleString();return`${r(t)} → ${r(n)}`}function X(){let{data:e,isLoading:t}=E(),[r,i]=(0,W.useState)(!1),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(null),l=U(),u=(0,W.useCallback)(()=>{o(null),i(!0)},[]),d=(0,W.useCallback)(e=>{o(e),i(!0)},[]),f=(0,W.useMemo)(()=>Z({openEdit:d,onDelete:c}),[d]);return(0,G.jsxs)(`div`,{className:`max-w-5xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices shown to all users in the notification center. Times are stored in UTC.`})]}),(0,G.jsxs)(n,{variant:`submit`,onClick:u,className:`shrink-0`,children:[(0,G.jsx)(T,{}),`New notification`]})]}),(0,G.jsx)(`div`,{className:`mt-6`,children:t?(0,G.jsx)(S,{className:`h-40 w-full`}):(0,G.jsx)(x,{columns:f,data:e??[]})}),(0,G.jsx)(Q,{open:r,onOpenChange:i,editing:a}),(0,G.jsx)(B,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,G.jsxs)(F,{children:[(0,G.jsxs)(z,{children:[(0,G.jsx)(P,{children:`Delete notification?`}),(0,G.jsx)(N,{children:`This removes it for everyone immediately. This can't be undone.`})]}),(0,G.jsxs)(L,{children:[(0,G.jsx)(R,{children:`Cancel`}),(0,G.jsx)(I,{disabled:l.isPending,onClick:e=>{e.preventDefault(),s&&l.mutate(s.id,{onSuccess:()=>c(null)})},children:l.isPending?`Deleting…`:`Delete`})]})]})})]})}function Z({openEdit:e,onDelete:t}){return[{header:`Type`,accessorKey:`type`,size:12,cell:({row:e})=>{let{label:t,badgeVariant:n}=j(e.original.type);return(0,G.jsx)(C,{variant:n,children:e.original.type||t})}},{header:`Message`,accessorKey:`message`,size:40,cell:({row:e})=>(0,G.jsx)(`span`,{className:`line-clamp-2 break-words`,children:e.original.message})},{header:`Active window (local)`,size:28,cell:({row:e})=>(0,G.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:Y(e.original)})},{header:`Link`,size:8,cell:({row:e})=>e.original.url?(0,G.jsx)(M,{url:e.original.url,className:`text-sm text-primary hover:underline dark:text-white`}):(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},{header:``,id:`actions`,size:12,cell:({row:r})=>(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(n,{variant:`ghost`,size:`icon`,"aria-label":`Edit`,onClick:()=>e(r.original),children:(0,G.jsx)(v,{})}),(0,G.jsx)(n,{variant:`destructiveGhost`,size:`icon`,"aria-label":`Delete`,onClick:()=>t(r.original),children:(0,G.jsx)(w,{})})]})}]}function Q({open:e,onOpenChange:t,editing:r}){let i=V(),a=H(),o=i.isPending||a.isPending,[v,x]=(0,W.useState)(`error`),[S,C]=(0,W.useState)(``),[w,T]=(0,W.useState)(``),[E,k]=(0,W.useState)(``),[A,j]=(0,W.useState)(``),[M,N]=(0,W.useState)(null);return(0,W.useEffect)(()=>{e&&(x(r?.type??`error`),C(r?.message??``),T(r?.url??``),k(q(r?.startAt)),j(q(r?.endAt)),N(null))},[e,r]),(0,G.jsx)(s,{open:e,onOpenChange:t,children:(0,G.jsxs)(d,{children:[(0,G.jsxs)(l,{children:[(0,G.jsx)(m,{children:r?`Edit notification`:`New notification`}),(0,G.jsx)(_,{children:`Shown to all users. Leave start/end empty for an open-ended window.`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-type`,children:`Type`}),(0,G.jsxs)(g,{value:v,onValueChange:x,children:[(0,G.jsx)(p,{id:`notification-type`,className:`w-full`,children:(0,G.jsx)(h,{})}),(0,G.jsx)(f,{children:K.map(e=>(0,G.jsx)(u,{value:e.value,children:e.label},e.value))})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-message`,children:`Message`}),(0,G.jsx)(y,{id:`notification-message`,rows:3,value:S,onChange:e=>C(e.target.value),placeholder:`The Fabric control plane will be undergoing maintenance…`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-url`,children:`Link (optional)`}),(0,G.jsx)(O,{id:`notification-url`,value:w,onChange:e=>T(e.target.value),placeholder:`https://status.harper.io or /organizations`}),(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`An absolute URL opens in a new tab; a path like `,(0,G.jsx)(`code`,{children:`/organizations`}),` links inside Studio.`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-start`,children:`Start (local time)`}),(0,G.jsx)(O,{id:`notification-start`,type:`datetime-local`,value:E,onChange:e=>k(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-end`,children:`End (local time)`}),(0,G.jsx)(O,{id:`notification-end`,type:`datetime-local`,value:A,onChange:e=>j(e.target.value)})]})]}),M&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:M})]}),(0,G.jsxs)(c,{children:[(0,G.jsx)(n,{variant:`ghostOutline`,onClick:()=>t(!1),disabled:o,children:`Cancel`}),(0,G.jsx)(n,{variant:`submit`,onClick:()=>{let e=S.trim();if(!e){N(`Message is required.`);return}let n=J(E),o=J(A);if(n&&o&&Date.parse(o)<=Date.parse(n)){N(`End time must be after start time.`);return}let s=w.trim();if(s&&!b(s)){N(`Link must be an http(s) URL, a mailto: address, or a path starting with “/”.`);return}let c={type:v,message:e,url:s||null,startAt:n,endAt:o},l=()=>t(!1);r?a.mutate({id:r.id,draft:c},{onSuccess:l}):i.mutate(c,{onSuccess:l})},disabled:o,children:o?`Saving…`:r?`Save changes`:`Create`})]})]})})}export{X as NotificationsAdminIndex};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{i as t,t as n}from"./button-DfBmT4rc.js";import{H as r,I as i}from"./vendor-tanstack-FsM5XZNE.js";import{a}from"./vendor-datadog-XDrpA25D.js";import{r as o}from"./vendor-react-BhazFIp8.js";import{c as s,d as c,f as l,i as u,l as d,n as f,o as p,p as m,s as h,t as g,u as _}from"./select-CKgJgpkn.js";import{c as v}from"./table-BvFflPWi.js";import{t as y}from"./textarea-a3RnTY31.js";import{Cn as b,Dt as x,It as S,On as C,Wn as w,er as T,gn as E,on as D,rn as O,vn as k,wn as A,xn as j,yn as M}from"./index-BQB9R8Ug.js";import{a as N,c as P,i as F,n as I,o as L,r as R,s as z,t as B}from"./alertDialog-BaBrZQ4M.js";function V(){let e=r();return i({mutationFn:async e=>{let{data:n}=await t.post(`/SystemStatus/`,e);return n},onSuccess:()=>e.invalidateQueries({queryKey:k})})}function H(){let e=r();return i({mutationFn:async({id:e,draft:n})=>{await t.patch(`/SystemStatus/${e}`,n)},onSuccess:()=>e.invalidateQueries({queryKey:k})})}function U(){let e=r();return i({mutationFn:async e=>{await t.delete(`/SystemStatus/${e}`)},onSuccess:()=>e.invalidateQueries({queryKey:k})})}var W=e(a(),1),G=o(),K=[{value:`error`,label:`Error / Outage`},{value:`warning`,label:`Warning`},{value:`maintenance`,label:`Maintenance`},{value:`info`,label:`Info`}];function q(e){let t=A(e);if(t===null)return``;let n=new Date(t),r=e=>String(e).padStart(2,`0`);return`${n.getFullYear()}-${r(n.getMonth()+1)}-${r(n.getDate())}T${r(n.getHours())}:${r(n.getMinutes())}`}function J(e){if(!e)return null;let t=Date.parse(e);return Number.isNaN(t)?null:new Date(t).toISOString()}function Y(e){let t=A(e.startAt),n=A(e.endAt);if(t===null&&n===null)return`Always`;let r=e=>e===null?`—`:new Date(e).toLocaleString();return`${r(t)} → ${r(n)}`}function X(){let{data:e,isLoading:t}=E(),[r,i]=(0,W.useState)(!1),[a,o]=(0,W.useState)(null),[s,c]=(0,W.useState)(null),l=U(),u=(0,W.useCallback)(()=>{o(null),i(!0)},[]),d=(0,W.useCallback)(e=>{o(e),i(!0)},[]),f=(0,W.useMemo)(()=>Z({openEdit:d,onDelete:c}),[d]);return(0,G.jsxs)(`div`,{className:`max-w-5xl`,children:[(0,G.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,G.jsxs)(`div`,{children:[(0,G.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,G.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices shown to all users in the notification center. Times are stored in UTC.`})]}),(0,G.jsxs)(n,{variant:`submit`,onClick:u,className:`shrink-0`,children:[(0,G.jsx)(T,{}),`New notification`]})]}),(0,G.jsx)(`div`,{className:`mt-6`,children:t?(0,G.jsx)(S,{className:`h-40 w-full`}):(0,G.jsx)(x,{columns:f,data:e??[]})}),(0,G.jsx)(Q,{open:r,onOpenChange:i,editing:a}),(0,G.jsx)(B,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,G.jsxs)(F,{children:[(0,G.jsxs)(z,{children:[(0,G.jsx)(P,{children:`Delete notification?`}),(0,G.jsx)(N,{children:`This removes it for everyone immediately. This can't be undone.`})]}),(0,G.jsxs)(L,{children:[(0,G.jsx)(R,{children:`Cancel`}),(0,G.jsx)(I,{disabled:l.isPending,onClick:e=>{e.preventDefault(),s&&l.mutate(s.id,{onSuccess:()=>c(null)})},children:l.isPending?`Deleting…`:`Delete`})]})]})})]})}function Z({openEdit:e,onDelete:t}){return[{header:`Type`,accessorKey:`type`,size:12,cell:({row:e})=>{let{label:t,badgeVariant:n}=j(e.original.type);return(0,G.jsx)(C,{variant:n,children:e.original.type||t})}},{header:`Message`,accessorKey:`message`,size:40,cell:({row:e})=>(0,G.jsx)(`span`,{className:`line-clamp-2 break-words`,children:e.original.message})},{header:`Active window (local)`,size:28,cell:({row:e})=>(0,G.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:Y(e.original)})},{header:`Link`,size:8,cell:({row:e})=>e.original.url?(0,G.jsx)(M,{url:e.original.url,className:`text-sm text-primary hover:underline dark:text-white`}):(0,G.jsx)(`span`,{className:`text-muted-foreground`,children:`—`})},{header:``,id:`actions`,size:12,cell:({row:r})=>(0,G.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,G.jsx)(n,{variant:`ghost`,size:`icon`,"aria-label":`Edit`,onClick:()=>e(r.original),children:(0,G.jsx)(v,{})}),(0,G.jsx)(n,{variant:`destructiveGhost`,size:`icon`,"aria-label":`Delete`,onClick:()=>t(r.original),children:(0,G.jsx)(w,{})})]})}]}function Q({open:e,onOpenChange:t,editing:r}){let i=V(),a=H(),o=i.isPending||a.isPending,[v,x]=(0,W.useState)(`error`),[S,C]=(0,W.useState)(``),[w,T]=(0,W.useState)(``),[E,k]=(0,W.useState)(``),[A,j]=(0,W.useState)(``),[M,N]=(0,W.useState)(null);return(0,W.useEffect)(()=>{e&&(x(r?.type??`error`),C(r?.message??``),T(r?.url??``),k(q(r?.startAt)),j(q(r?.endAt)),N(null))},[e,r]),(0,G.jsx)(s,{open:e,onOpenChange:t,children:(0,G.jsxs)(d,{children:[(0,G.jsxs)(l,{children:[(0,G.jsx)(m,{children:r?`Edit notification`:`New notification`}),(0,G.jsx)(_,{children:`Shown to all users. Leave start/end empty for an open-ended window.`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-type`,children:`Type`}),(0,G.jsxs)(g,{value:v,onValueChange:x,children:[(0,G.jsx)(p,{id:`notification-type`,className:`w-full`,children:(0,G.jsx)(h,{})}),(0,G.jsx)(f,{children:K.map(e=>(0,G.jsx)(u,{value:e.value,children:e.label},e.value))})]})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-message`,children:`Message`}),(0,G.jsx)(y,{id:`notification-message`,rows:3,value:S,onChange:e=>C(e.target.value),placeholder:`The Fabric control plane will be undergoing maintenance…`})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-url`,children:`Link (optional)`}),(0,G.jsx)(O,{id:`notification-url`,value:w,onChange:e=>T(e.target.value),placeholder:`https://status.harper.io or /organizations`}),(0,G.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`An absolute URL opens in a new tab; a path like `,(0,G.jsx)(`code`,{children:`/organizations`}),` links inside Studio.`]})]}),(0,G.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2`,children:[(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-start`,children:`Start (local time)`}),(0,G.jsx)(O,{id:`notification-start`,type:`datetime-local`,value:E,onChange:e=>k(e.target.value)})]}),(0,G.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,G.jsx)(D,{htmlFor:`notification-end`,children:`End (local time)`}),(0,G.jsx)(O,{id:`notification-end`,type:`datetime-local`,value:A,onChange:e=>j(e.target.value)})]})]}),M&&(0,G.jsx)(`p`,{className:`text-sm text-destructive`,children:M})]}),(0,G.jsxs)(c,{children:[(0,G.jsx)(n,{variant:`ghostOutline`,onClick:()=>t(!1),disabled:o,children:`Cancel`}),(0,G.jsx)(n,{variant:`submit`,onClick:()=>{let e=S.trim();if(!e){N(`Message is required.`);return}let n=J(E),o=J(A);if(n&&o&&Date.parse(o)<=Date.parse(n)){N(`End time must be after start time.`);return}let s=w.trim();if(s&&!b(s)){N(`Link must be an http(s) URL, a mailto: address, or a path starting with “/”.`);return}let c={type:v,message:e,url:s||null,startAt:n,endAt:o},l=()=>t(!1);r?a.mutate({id:r.id,draft:c},{onSuccess:l}):i.mutate(c,{onSuccess:l})},disabled:o,children:o?`Saving…`:r?`Save changes`:`Create`})]})]})})}export{X as NotificationsAdminIndex};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{n as t,t as n}from"./button-DfBmT4rc.js";import{a as r}from"./vendor-datadog-XDrpA25D.js";import{r as i}from"./vendor-react-BhazFIp8.js";import{Dn as a,En as o,It as s,On as c,Sn as l,Tn as u,_n as d,bn as f,gn as p,wn as m,xn as h,yn as g}from"./index-DF1fSnXV.js";var _=e(r(),1),v=i(),y={active:0,upcoming:1,expired:2};function b(){let{data:e,isLoading:t}=p(),n=a(),r=d(),i=(0,_.useMemo)(()=>[...e??[]].sort((e,t)=>{let n=y[l(e,r).state],i=y[l(t,r).state];if(n!==i)return n-i;let a=f[h(e.type).severity]-f[h(t.type).severity];if(a!==0)return a;let o=m(e.endAt)??2**53-1;return(m(t.endAt)??2**53-1)-o}),[e,r]);return(0,v.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,v.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,v.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,v.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices, including maintenance windows and downstream provider incidents.`}),(0,v.jsx)(`div`,{className:`mt-6 flex flex-col gap-3`,children:t?(0,v.jsx)(s,{className:`h-24 w-full`}):i.length===0?(0,v.jsx)(`p`,{className:`rounded-md border border-border bg-card p-8 text-center text-sm text-muted-foreground dark:bg-black-dark`,children:`No notifications right now.`}):i.map(e=>(0,v.jsx)(x,{notification:e,acked:n.has(e.id),nowMs:r},e.id))})]})})}function x({notification:e,acked:r,nowMs:i}){let{Icon:a,iconClass:s,label:d,badgeVariant:f}=h(e.type),p=l(e,i);return(0,v.jsxs)(`div`,{className:t(`flex gap-3 rounded-md border border-border bg-card p-4 dark:bg-black-dark`,r&&`opacity-60`,p.state===`expired`&&`opacity-70`),children:[(0,v.jsx)(a,{className:t(`mt-0.5 size-5 shrink-0`,s)}),(0,v.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,v.jsx)(c,{variant:f,children:d}),p.state!==`active`&&(0,v.jsx)(c,{variant:`outline`,className:`capitalize`,children:p.state}),(0,v.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:p.label})]}),(0,v.jsx)(`p`,{className:`mt-2 text-sm break-words text-foreground`,children:e.message}),(0,v.jsx)(`div`,{className:`mt-2 flex items-center gap-4 text-sm`,children:(0,v.jsx)(g,{url:e.url,className:`font-medium text-primary hover:underline dark:text-white`})})]}),(0,v.jsx)(n,{variant:`ghost`,size:`sm`,className:`shrink-0 text-muted-foreground`,onClick:()=>r?o(e.id):u(e.id),children:r?`Undo`:`Ignore`})]})}export{b as NotificationsCenter};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{n as t,t as n}from"./button-DfBmT4rc.js";import{a as r}from"./vendor-datadog-XDrpA25D.js";import{r as i}from"./vendor-react-BhazFIp8.js";import{Dn as a,En as o,It as s,On as c,Sn as l,Tn as u,_n as d,bn as f,gn as p,wn as m,xn as h,yn as g}from"./index-BQB9R8Ug.js";var _=e(r(),1),v=i(),y={active:0,upcoming:1,expired:2};function b(){let{data:e,isLoading:t}=p(),n=a(),r=d(),i=(0,_.useMemo)(()=>[...e??[]].sort((e,t)=>{let n=y[l(e,r).state],i=y[l(t,r).state];if(n!==i)return n-i;let a=f[h(e.type).severity]-f[h(t.type).severity];if(a!==0)return a;let o=m(e.endAt)??2**53-1;return(m(t.endAt)??2**53-1)-o}),[e,r]);return(0,v.jsx)(`div`,{className:`mt-32 px-4 pt-4 md:px-12 min-h-[calc(100vh-(--spacing(32)))]`,children:(0,v.jsxs)(`div`,{className:`max-w-3xl`,children:[(0,v.jsx)(`h1`,{className:`text-2xl font-light`,children:`Notifications`}),(0,v.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`System-wide notices, including maintenance windows and downstream provider incidents.`}),(0,v.jsx)(`div`,{className:`mt-6 flex flex-col gap-3`,children:t?(0,v.jsx)(s,{className:`h-24 w-full`}):i.length===0?(0,v.jsx)(`p`,{className:`rounded-md border border-border bg-card p-8 text-center text-sm text-muted-foreground dark:bg-black-dark`,children:`No notifications right now.`}):i.map(e=>(0,v.jsx)(x,{notification:e,acked:n.has(e.id),nowMs:r},e.id))})]})})}function x({notification:e,acked:r,nowMs:i}){let{Icon:a,iconClass:s,label:d,badgeVariant:f}=h(e.type),p=l(e,i);return(0,v.jsxs)(`div`,{className:t(`flex gap-3 rounded-md border border-border bg-card p-4 dark:bg-black-dark`,r&&`opacity-60`,p.state===`expired`&&`opacity-70`),children:[(0,v.jsx)(a,{className:t(`mt-0.5 size-5 shrink-0`,s)}),(0,v.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,v.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,v.jsx)(c,{variant:f,children:d}),p.state!==`active`&&(0,v.jsx)(c,{variant:`outline`,className:`capitalize`,children:p.state}),(0,v.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:p.label})]}),(0,v.jsx)(`p`,{className:`mt-2 text-sm break-words text-foreground`,children:e.message}),(0,v.jsx)(`div`,{className:`mt-2 flex items-center gap-4 text-sm`,children:(0,v.jsx)(g,{url:e.url,className:`font-medium text-primary hover:underline dark:text-white`})})]}),(0,v.jsx)(n,{variant:`ghost`,size:`sm`,className:`shrink-0 text-muted-foreground`,onClick:()=>r?o(e.id):u(e.id),children:r?`Undo`:`Ignore`})]})}export{b as NotificationsCenter};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{n as t,t as n}from"./authStore-B3IhXrn6.js";import{_ as r,y as i}from"./vendor-core-CddkYGh5.js";import{i as a,t as o}from"./button-DfBmT4rc.js";import{D as s,I as c,M as l}from"./vendor-tanstack-FsM5XZNE.js";import{a as u}from"./vendor-datadog-XDrpA25D.js";import{r as d}from"./vendor-react-BhazFIp8.js";import{n as f}from"./useAuth-DiJUZS1C.js";import{$ as p,Rt as m,it as h}from"./vendor-ui-BLIveqaL.js";import{Xn as g,an as _,cn as v,fn as y,in as b,ln as x,rn as S,sn as C,un as w}from"./index-DF1fSnXV.js";async function T(e){let{id:t,newPassword:n,confirmNewPassword:r,...i}=e,o={...i};n&&n===r&&(o.password=n);let{data:s}=await a.patch(`/User/${t}`,o);return s}function E(){return c({mutationFn:e=>T(e)})}var D=r({id:i(),firstname:i({error:`Please enter your first name.`}).min(2,{error:`First name is required.`}).max(50,{error:`First name must be less than 50 characters.`}),lastname:i({error:`Please enter your last name.`}).min(2,{error:`Last name is required.`}).max(50,{error:`Last name must be less than 50 characters.`}),newPassword:i({error:`Please enter your new password.`}).min(8,{error:`Password must be 8 characters or more.`}).or(i().max(0)),confirmNewPassword:i().optional()}).refine(e=>e.newPassword===e.confirmNewPassword,{error:`Passwords do not match`,path:[`confirmNewPassword`]}),O=e(u(),1),k=d();function A(){let e=l(),r=s(),{user:i}=f(),a=h({resolver:p(D),defaultValues:{confirmNewPassword:``,firstname:i?.firstname||``,id:i?.id||``,lastname:i?.lastname||``,newPassword:``}}),{control:c,handleSubmit:u,reset:d,formState:{defaultValues:T,isDirty:A,isValid:j}}=a,{mutate:M,isPending:N}=E(),P=(0,O.useCallback)(async i=>{i&&M(i,{onSuccess:a=>{d({...T,...a}),t.updateUserForEntity(n,a),i.newPassword?(m.success(`Profile updated successfully!`,{description:`Please sign in with your new password.`}),y(),r({to:`/sign-in`}),e.invalidate()):m.success(`Profile updated successfully!`)}})},[T,r,d,e,M]);return(0,k.jsxs)(`div`,{className:`mt-20 px-4 pt-4 md:px-12 max-w-2xl`,children:[(0,k.jsx)(`h1`,{className:`text-2xl font-light`,children:`Profile`}),(0,k.jsx)(w,{...a,children:(0,k.jsxs)(`form`,{id:`profile-edit-form`,name:`profile-edit-form`,onSubmit:u(P),className:`grid gap-4 my-4`,children:[(0,k.jsx)(v,{control:c,name:`firstname`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`First Name`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,autoFocus:!0,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsx)(v,{control:c,name:`lastname`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`Last Name`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{htmlFor:`profile-email`,className:`pb-1`,children:`Email`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{id:`profile-email`,type:`email`,enterKeyHint:`next`,autoComplete:`email`,autoCapitalize:`none`,value:i?.email||``,disabled:!0,readOnly:!0})})]}),(0,k.jsx)(v,{control:c,name:`newPassword`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`New Password`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`password`,placeholder:`Optional`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsx)(v,{control:c,name:`confirmNewPassword`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`Confirm New Password`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`password`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,k.jsxs)(o,{type:`submit`,variant:`submit`,disabled:N||!A||!j,children:[(0,k.jsx)(g,{}),` Update Profile`]})})]})})]})}export{A as ProfileIndex};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{n as t,t as n}from"./authStore-B3IhXrn6.js";import{_ as r,y as i}from"./vendor-core-CddkYGh5.js";import{i as a,t as o}from"./button-DfBmT4rc.js";import{D as s,I as c,M as l}from"./vendor-tanstack-FsM5XZNE.js";import{a as u}from"./vendor-datadog-XDrpA25D.js";import{r as d}from"./vendor-react-BhazFIp8.js";import{n as f}from"./useAuth-DiJUZS1C.js";import{$ as p,Rt as m,it as h}from"./vendor-ui-BLIveqaL.js";import{Xn as g,an as _,cn as v,fn as y,in as b,ln as x,rn as S,sn as C,un as w}from"./index-BQB9R8Ug.js";async function T(e){let{id:t,newPassword:n,confirmNewPassword:r,...i}=e,o={...i};n&&n===r&&(o.password=n);let{data:s}=await a.patch(`/User/${t}`,o);return s}function E(){return c({mutationFn:e=>T(e)})}var D=r({id:i(),firstname:i({error:`Please enter your first name.`}).min(2,{error:`First name is required.`}).max(50,{error:`First name must be less than 50 characters.`}),lastname:i({error:`Please enter your last name.`}).min(2,{error:`Last name is required.`}).max(50,{error:`Last name must be less than 50 characters.`}),newPassword:i({error:`Please enter your new password.`}).min(8,{error:`Password must be 8 characters or more.`}).or(i().max(0)),confirmNewPassword:i().optional()}).refine(e=>e.newPassword===e.confirmNewPassword,{error:`Passwords do not match`,path:[`confirmNewPassword`]}),O=e(u(),1),k=d();function A(){let e=l(),r=s(),{user:i}=f(),a=h({resolver:p(D),defaultValues:{confirmNewPassword:``,firstname:i?.firstname||``,id:i?.id||``,lastname:i?.lastname||``,newPassword:``}}),{control:c,handleSubmit:u,reset:d,formState:{defaultValues:T,isDirty:A,isValid:j}}=a,{mutate:M,isPending:N}=E(),P=(0,O.useCallback)(async i=>{i&&M(i,{onSuccess:a=>{d({...T,...a}),t.updateUserForEntity(n,a),i.newPassword?(m.success(`Profile updated successfully!`,{description:`Please sign in with your new password.`}),y(),r({to:`/sign-in`}),e.invalidate()):m.success(`Profile updated successfully!`)}})},[T,r,d,e,M]);return(0,k.jsxs)(`div`,{className:`mt-20 px-4 pt-4 md:px-12 max-w-2xl`,children:[(0,k.jsx)(`h1`,{className:`text-2xl font-light`,children:`Profile`}),(0,k.jsx)(w,{...a,children:(0,k.jsxs)(`form`,{id:`profile-edit-form`,name:`profile-edit-form`,onSubmit:u(P),className:`grid gap-4 my-4`,children:[(0,k.jsx)(v,{control:c,name:`firstname`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`First Name`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,autoFocus:!0,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsx)(v,{control:c,name:`lastname`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`Last Name`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`text`,className:`dark:bg-black dark:border-black`,autoCapitalize:`words`,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{htmlFor:`profile-email`,className:`pb-1`,children:`Email`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{id:`profile-email`,type:`email`,enterKeyHint:`next`,autoComplete:`email`,autoCapitalize:`none`,value:i?.email||``,disabled:!0,readOnly:!0})})]}),(0,k.jsx)(v,{control:c,name:`newPassword`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`New Password`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`password`,placeholder:`Optional`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsx)(v,{control:c,name:`confirmNewPassword`,render:({field:e})=>(0,k.jsxs)(C,{children:[(0,k.jsx)(_,{className:`pb-1`,children:`Confirm New Password`}),(0,k.jsx)(x,{children:(0,k.jsx)(S,{type:`password`,className:`dark:bg-black dark:border-black`,autoComplete:`new-password`,autoCapitalize:`none`,...e})}),(0,k.jsx)(b,{})]})}),(0,k.jsx)(`div`,{className:`flex justify-between w-full`,children:(0,k.jsxs)(o,{type:`submit`,variant:`submit`,disabled:N||!A||!j,children:[(0,k.jsx)(g,{}),` Update Profile`]})})]})})]})}export{A as ProfileIndex};
@@ -1 +1 @@
1
- import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{_ as t,c as n,g as r,s as i,y as a}from"./vendor-core-CddkYGh5.js";import{i as o,t as s}from"./button-DfBmT4rc.js";import{H as c,I as l,L as u,z as d}from"./vendor-tanstack-FsM5XZNE.js";import{a as f}from"./vendor-datadog-XDrpA25D.js";import{r as p}from"./vendor-react-BhazFIp8.js";import{o as m}from"./useAuth-DiJUZS1C.js";import{$ as h,Rt as g,it as _}from"./vendor-ui-BLIveqaL.js";import{c as v,d as y,i as b,l as x,n as S,o as C,p as w,s as T,t as ee,u as te}from"./select-CKgJgpkn.js";import{c as E,i as D,n as O,o as k,r as A,s as j,t as M}from"./table-BvFflPWi.js";import{r as N,t as P}from"./x-D39AGKMb.js";import{An as F,Mn as ne,On as I,an as L,ar as re,cn as R,er as ie,hn as ae,in as z,jn as oe,ln as B,mn as se,pn as ce,rn as V,sn as H,un as U,zn as W}from"./index-DF1fSnXV.js";var G=e(f(),1),K=p();function q({options:e,selected:t,onChange:n,placeholder:r=`Select…`,emptyText:i=`No options`,ariaLabel:a,disabled:o,id:c,allowRepeats:l,maxVisibleOptions:u}){let[d,f]=(0,G.useState)(!1),[p,m]=(0,G.useState)(``),h=(0,G.useRef)(null),g=(0,G.useRef)(null),_=(0,G.useMemo)(()=>new Set(t),[t]),v=(0,G.useMemo)(()=>new Map(e.map(e=>[e.value,e.label])),[e]);(0,G.useEffect)(()=>{if(!d)return;let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>h.current?.focus())});return()=>{cancelAnimationFrame(t),cancelAnimationFrame(e)}},[d]);let y=(0,G.useMemo)(()=>{let t=p.trim().toLowerCase();return t?e.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):e},[e,p]),b=u?y.slice(0,u):y,x=y.length-b.length,S=e=>{l?n([...t,e]):_.has(e)?n(t.filter(t=>t!==e)):n([...t,e])},C=e=>n(t.filter((t,n)=>n!==e)),w=e=>{let t=g.current?.querySelectorAll(`[role="menuitemcheckbox"]:not([data-disabled])`);t?.length&&(e===`first`?t[0]:t[t.length-1]).focus()};return(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsxs)(F,{open:d,onOpenChange:e=>{f(e),e||m(``)},children:[(0,K.jsx)(W,{asChild:!0,disabled:o,children:(0,K.jsxs)(s,{id:c,type:`button`,variant:`outline`,"aria-label":a,className:`w-full justify-between font-normal`,children:[(0,K.jsx)(`span`,{className:t.length?`truncate`:`truncate text-muted-foreground`,children:t.length?`${t.length} selected`:r}),(0,K.jsx)(N,{className:`size-4 shrink-0 opacity-60`})]})}),(0,K.jsxs)(ne,{ref:g,className:`w-(--radix-dropdown-menu-trigger-width) max-h-72 overflow-y-auto`,align:`start`,children:[(0,K.jsx)(`input`,{ref:h,value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),w(e.key===`ArrowDown`?`first`:`last`);return}e.key.length===1&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.stopPropagation()},placeholder:`Filter…`,"aria-label":`Filter options`,className:`mb-1 w-full rounded-md border bg-transparent px-2 py-1 text-sm outline-none`}),y.length===0?(0,K.jsx)(`div`,{className:`px-2 py-1.5 text-sm text-muted-foreground`,children:i}):b.map(e=>(0,K.jsx)(oe,{checked:_.has(e.value),onCheckedChange:()=>S(e.value),onSelect:e=>e.preventDefault(),children:e.label},e.value)),x>0&&(0,K.jsxs)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground`,children:[x,` more — keep typing to narrow`]})]})]}),t.length>0&&(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.map((e,t)=>{let n=v.get(e)??e;return(0,K.jsxs)(I,{variant:`secondary`,className:`gap-1`,children:[n,(0,K.jsx)(`button`,{type:`button`,"aria-label":`Remove ${n}`,onClick:()=>C(t),className:`ml-0.5 rounded-sm hover:text-destructive`,children:(0,K.jsx)(P,{className:`size-3`})})]},`${e}-${t}`)})})]})}async function le(e){let{data:t}=await o.post(`/Admin/Region/`,e);return t}function ue(){return l({mutationFn:le})}async function de({id:e,changes:t}){let{data:n}=await o.patch(`/Admin/Region/${e}`,t);return n}function fe(){return l({mutationFn:de})}async function pe(){let{data:e}=await o.get(`/Location/`);return e}var me=[`fabric-admin`,`locations`];function he(){return u({queryKey:me,queryFn:pe,retry:!1})}function J(e,t){return t?`${e} (${t})`:e}async function ge(){let e=[];for(let t=0;t<40;t++){let n=t*500,r=[`status=ne=DELETED`,`sort(name)`,`limit(${n},${n+500})`].join(`&`),{data:i}=await o.get(`/Admin/Organization/?${r}`),a=i;if(e.push(...a),a.length<500)return{organizations:e,truncated:!1}}return{organizations:e,truncated:!0}}var _e=[`fabric-admin`,`organizations`];function Y(){return u({queryKey:_e,queryFn:ge,retry:!1})}async function ve(){let{data:e}=await o.get(`/Admin/Region/`);return e}var X=[`fabric-admin`,`regions`];function Z(){return u({queryKey:X,queryFn:ve,retry:!1})}var ye=t({id:a().trim().min(1,`ID is required`).regex(/^[a-z0-9-]+$/,`Use lowercase letters, numbers, and hyphens only`),region:a().trim().min(1,`Region is required`),instanceCount:r({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),purchasedBlockMultiplier:r({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),latencyDescription:a().trim().min(1,`Latency description is required`),linodePreferredLocations:i(a()),gcpPreferredLocations:i(a()),forceLocations:n(),active:n(),organizationIds:i(a())}).superRefine((e,t)=>{e.forceLocations&&!e.linodePreferredLocations.length&&!e.gcpPreferredLocations.length&&t.addIssue({code:`custom`,path:[`forceLocations`],message:`Add at least one preferred location, or turn off Force locations`})}),be=100;function Q(e){return{id:e?.id??``,region:e?.region??``,instanceCount:e?.instanceCount??1,purchasedBlockMultiplier:e?.purchasedBlockMultiplier??1,latencyDescription:e?.latencyDescription??``,linodePreferredLocations:e?.linodePreferredLocations??[],gcpPreferredLocations:e?.gcpPreferredLocations??[],forceLocations:e?.forceLocations??!1,active:e?.active??!0,organizationIds:e?.organizationIds??[]}}function xe({open:e,onOpenChange:t,region:n}){let r=!!n,i=c(),{data:a=[]}=d({...he(),enabled:e}),{data:o}=d({...Y(),enabled:e}),l=o?.organizations??[],{data:u=[]}=d({...Z(),enabled:e}),{mutate:f,isPending:p}=ue(),{mutate:m,isPending:E}=fe(),D=p||E,O=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`linode`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),k=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`gcp`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),A=(0,G.useMemo)(()=>l.map(e=>({value:e.id,label:J(e.id,e.name)})),[l]),j=(0,G.useMemo)(()=>{let e=new Set;for(let t of a)for(let n of t.regions??[])e.add(n);return n?.region&&e.add(n.region),[...e].sort()},[a,n]),M=_({resolver:h(ye),defaultValues:Q(n)});(0,G.useEffect)(()=>{e&&M.reset(Q(n))},[e,n,M]);let N=e=>{let a=e=>e.trim().toLowerCase(),o=!n||a(n.latencyDescription)!==a(e.latencyDescription),s=u.filter(e=>e.id!==n?.id);if(o&&s.some(t=>a(t.latencyDescription)===a(e.latencyDescription))){M.setError(`latencyDescription`,{message:`A region with this latency description already exists`});return}let c=e.organizationIds.length>0?e.organizationIds:null,l=()=>{g.success(r?`Region updated`:`Region created`),i.invalidateQueries({queryKey:X}),t(!1)};if(n){let{id:t,...r}=e;m({id:n.id,changes:{...r,organizationIds:c}},{onSuccess:l})}else f({...e,organizationIds:c},{onSuccess:l})};return(0,K.jsx)(v,{open:e,onOpenChange:t,children:(0,K.jsxs)(x,{className:`max-w-2xl`,children:[(0,K.jsx)(w,{children:r?`Edit region`:`Create region`}),(0,K.jsx)(te,{children:r?`Update this region. Its ID is fixed once created.`:`Define a new deployment region. Leave organizations empty to make it public (all organizations).`}),(0,K.jsx)(U,{...M,children:(0,K.jsxs)(`form`,{className:`my-4 flex flex-col gap-4`,onSubmit:M.handleSubmit(N),children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(R,{control:M.control,name:`id`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region ID`}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{placeholder:`e.g. us-east-1`,...e,disabled:r})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`region`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region`}),(0,K.jsx)(B,{children:(0,K.jsxs)(ee,{value:e.value,onValueChange:e.onChange,children:[(0,K.jsx)(C,{className:`w-full`,children:(0,K.jsx)(T,{placeholder:`Select a region`})}),(0,K.jsx)(S,{children:j.map(e=>(0,K.jsx)(b,{value:e,children:e},e))})]})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`instanceCount`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Instance count`}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`purchasedBlockMultiplier`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 pb-1`,children:[(0,K.jsx)(L,{className:`!pb-0`,children:`Purchased block multiplier`}),(0,K.jsxs)(ce,{children:[(0,K.jsx)(ae,{asChild:!0,children:(0,K.jsx)(`button`,{type:`button`,"aria-label":`What is the purchased block multiplier?`,className:`text-muted-foreground hover:text-foreground`,children:(0,K.jsx)(re,{className:`size-3.5`})})}),(0,K.jsx)(se,{className:`max-w-xs`,children:`How many purchased blocks a cluster in this region is billed for. One block covers a baseline cluster: a 2-node cluster is 1 block and a 4-node cluster is 2 blocks. Each block carries one license against the selected plan's limits; once they're all used up, this many are issued and billed again.`})]})]}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(z,{})]})})]}),(0,K.jsx)(R,{control:M.control,name:`latencyDescription`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Latency description`}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{placeholder:`e.g. 280ms, medium distribution`,...e})}),(0,K.jsx)(z,{})]})}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(R,{control:M.control,name:`linodePreferredLocations`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Linode preferred locations`}),(0,K.jsx)(B,{children:(0,K.jsx)(q,{options:O,selected:e.value,onChange:e.onChange,placeholder:`Any Linode location`,emptyText:`No Linode locations`,ariaLabel:`Linode preferred locations`,allowRepeats:!0})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`gcpPreferredLocations`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`GCP preferred locations`}),(0,K.jsx)(B,{children:(0,K.jsx)(q,{options:k,selected:e.value,onChange:e.onChange,placeholder:`Any GCP location`,emptyText:`No GCP locations`,ariaLabel:`GCP preferred locations`,allowRepeats:!0})}),(0,K.jsx)(z,{})]})})]}),(0,K.jsx)(R,{control:M.control,name:`forceLocations`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(B,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Force locations`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Pin deployments to the preferred locations above instead of treating them as hints.`}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`active`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(B,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Active`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Inactive regions stay available to existing deployments but aren't offered for new ones.`}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`organizationIds`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Organizations (customer scope)`}),(0,K.jsx)(B,{children:(0,K.jsx)(q,{options:A,selected:e.value,onChange:e.onChange,placeholder:`Public — all organizations`,emptyText:`No organizations`,ariaLabel:`Organizations`,maxVisibleOptions:be})}),o?.truncated&&(0,K.jsx)(`p`,{className:`text-xs text-destructive`,children:`Too many organizations to list them all — some may be missing from this picker.`}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(y,{children:(0,K.jsxs)(`div`,{className:`flex w-full justify-between`,children:[(0,K.jsx)(s,{variant:`destructiveOutline`,type:`button`,onClick:()=>t(!1),disabled:D,children:`Cancel`}),(0,K.jsx)(s,{variant:`submit`,disabled:D,children:D?`Saving…`:r?`Save changes`:`Create region`})]})})]})})]})})}function $({organizationIds:e,orgNameById:t}){return e==null||e.length===0?(0,K.jsx)(K.Fragment,{children:`Public`}):(0,K.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.map(e=>(0,K.jsx)(`span`,{className:`break-words`,children:J(e,t.get(e))},e))})}function Se(){let{data:e,isLoading:t,isError:n}=d(Z()),{data:r}=d(Y()),[i,a]=(0,G.useState)(!1),[o,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(``),f=m(`region:write`),p=(0,G.useMemo)(()=>new Map((r?.organizations??[]).map(e=>[e.id,e.name])),[r]),h=(0,G.useMemo)(()=>{let t=l.trim().toLowerCase();return!t||!e?e??[]:e.filter(e=>e.region.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||e.latencyDescription.toLowerCase().includes(t)||(e.organizationIds??[]).some(e=>e.toLowerCase().includes(t)||(p.get(e)??``).toLowerCase().includes(t)))},[e,l,p]),g=()=>{c(null),a(!0)},_=e=>{c(e),a(!0)};return(0,K.jsxs)(`div`,{className:`max-w-4xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{className:`text-2xl font-light`,children:`Regions`}),(0,K.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Deployment regions customers can provision into. A region scoped to organizations is only offered to those customers; otherwise it's available to everyone.`})]}),f&&(0,K.jsxs)(s,{variant:`submit`,onClick:g,className:`shrink-0`,children:[(0,K.jsx)(ie,{}),`Create region`]})]}),(0,K.jsx)(`div`,{className:`mt-6`,children:t?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading regions…`}):n?(0,K.jsx)(`p`,{className:`text-sm text-destructive`,children:`Couldn't load regions.`}):!e||e.length===0?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No regions yet. Create one to get started.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(V,{value:l,onChange:e=>u(e.target.value),placeholder:`Filter by ID, region, description, or organization…`,"aria-label":`Filter regions`,className:`mb-4 max-w-md`}),h.length===0?(0,K.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No regions match “`,l,`”.`]}):(0,K.jsxs)(M,{children:[(0,K.jsx)(k,{children:(0,K.jsxs)(j,{children:[(0,K.jsx)(D,{children:`ID`}),(0,K.jsx)(D,{children:`Region`}),(0,K.jsx)(D,{className:`text-right pr-6`,children:`Instances`}),(0,K.jsx)(D,{children:`Description`}),(0,K.jsx)(D,{children:`Scope`}),(0,K.jsx)(D,{className:`w-0`})]})}),(0,K.jsx)(O,{children:h.map(e=>(0,K.jsxs)(j,{className:e.active===!1?`opacity-60`:void 0,children:[(0,K.jsx)(A,{className:`font-mono font-medium`,children:(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[e.id,e.active===!1&&(0,K.jsx)(I,{variant:`secondary`,className:`text-[10px]`,children:`Inactive`})]})}),(0,K.jsx)(A,{children:e.region}),(0,K.jsx)(A,{className:`text-right pr-6`,children:e.instanceCount}),(0,K.jsx)(A,{className:`text-muted-foreground`,children:e.latencyDescription}),(0,K.jsx)(A,{children:(0,K.jsx)($,{organizationIds:e.organizationIds,orgNameById:p})}),(0,K.jsx)(A,{className:`text-right`,children:f&&(0,K.jsx)(s,{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.id}`,onClick:()=>_(e),children:(0,K.jsx)(E,{})})})]},e.id))})]})]})}),(0,K.jsx)(xe,{open:i,onOpenChange:a,region:o})]})}export{$ as RegionScope,Se as RegionsIndex};
1
+ import{a as e}from"./rolldown-runtime-B0Z9INg1.js";import{_ as t,c as n,g as r,s as i,y as a}from"./vendor-core-CddkYGh5.js";import{i as o,t as s}from"./button-DfBmT4rc.js";import{H as c,I as l,L as u,z as d}from"./vendor-tanstack-FsM5XZNE.js";import{a as f}from"./vendor-datadog-XDrpA25D.js";import{r as p}from"./vendor-react-BhazFIp8.js";import{o as m}from"./useAuth-DiJUZS1C.js";import{$ as h,Rt as g,it as _}from"./vendor-ui-BLIveqaL.js";import{c as v,d as y,i as b,l as x,n as S,o as C,p as w,s as T,t as ee,u as te}from"./select-CKgJgpkn.js";import{c as E,i as D,n as O,o as k,r as A,s as j,t as M}from"./table-BvFflPWi.js";import{r as N,t as P}from"./x-D39AGKMb.js";import{An as F,Mn as ne,On as I,an as L,ar as re,cn as R,er as ie,hn as ae,in as z,jn as oe,ln as B,mn as se,pn as ce,rn as V,sn as H,un as U,zn as W}from"./index-BQB9R8Ug.js";var G=e(f(),1),K=p();function q({options:e,selected:t,onChange:n,placeholder:r=`Select…`,emptyText:i=`No options`,ariaLabel:a,disabled:o,id:c,allowRepeats:l,maxVisibleOptions:u}){let[d,f]=(0,G.useState)(!1),[p,m]=(0,G.useState)(``),h=(0,G.useRef)(null),g=(0,G.useRef)(null),_=(0,G.useMemo)(()=>new Set(t),[t]),v=(0,G.useMemo)(()=>new Map(e.map(e=>[e.value,e.label])),[e]);(0,G.useEffect)(()=>{if(!d)return;let e=0,t=requestAnimationFrame(()=>{e=requestAnimationFrame(()=>h.current?.focus())});return()=>{cancelAnimationFrame(t),cancelAnimationFrame(e)}},[d]);let y=(0,G.useMemo)(()=>{let t=p.trim().toLowerCase();return t?e.filter(e=>e.label.toLowerCase().includes(t)||e.value.toLowerCase().includes(t)):e},[e,p]),b=u?y.slice(0,u):y,x=y.length-b.length,S=e=>{l?n([...t,e]):_.has(e)?n(t.filter(t=>t!==e)):n([...t,e])},C=e=>n(t.filter((t,n)=>n!==e)),w=e=>{let t=g.current?.querySelectorAll(`[role="menuitemcheckbox"]:not([data-disabled])`);t?.length&&(e===`first`?t[0]:t[t.length-1]).focus()};return(0,K.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,K.jsxs)(F,{open:d,onOpenChange:e=>{f(e),e||m(``)},children:[(0,K.jsx)(W,{asChild:!0,disabled:o,children:(0,K.jsxs)(s,{id:c,type:`button`,variant:`outline`,"aria-label":a,className:`w-full justify-between font-normal`,children:[(0,K.jsx)(`span`,{className:t.length?`truncate`:`truncate text-muted-foreground`,children:t.length?`${t.length} selected`:r}),(0,K.jsx)(N,{className:`size-4 shrink-0 opacity-60`})]})}),(0,K.jsxs)(ne,{ref:g,className:`w-(--radix-dropdown-menu-trigger-width) max-h-72 overflow-y-auto`,align:`start`,children:[(0,K.jsx)(`input`,{ref:h,value:p,onChange:e=>m(e.target.value),onKeyDown:e=>{if(e.key===`ArrowDown`||e.key===`ArrowUp`){e.preventDefault(),w(e.key===`ArrowDown`?`first`:`last`);return}e.key.length===1&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.stopPropagation()},placeholder:`Filter…`,"aria-label":`Filter options`,className:`mb-1 w-full rounded-md border bg-transparent px-2 py-1 text-sm outline-none`}),y.length===0?(0,K.jsx)(`div`,{className:`px-2 py-1.5 text-sm text-muted-foreground`,children:i}):b.map(e=>(0,K.jsx)(oe,{checked:_.has(e.value),onCheckedChange:()=>S(e.value),onSelect:e=>e.preventDefault(),children:e.label},e.value)),x>0&&(0,K.jsxs)(`div`,{className:`px-2 py-1.5 text-xs text-muted-foreground`,children:[x,` more — keep typing to narrow`]})]})]}),t.length>0&&(0,K.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:t.map((e,t)=>{let n=v.get(e)??e;return(0,K.jsxs)(I,{variant:`secondary`,className:`gap-1`,children:[n,(0,K.jsx)(`button`,{type:`button`,"aria-label":`Remove ${n}`,onClick:()=>C(t),className:`ml-0.5 rounded-sm hover:text-destructive`,children:(0,K.jsx)(P,{className:`size-3`})})]},`${e}-${t}`)})})]})}async function le(e){let{data:t}=await o.post(`/Admin/Region/`,e);return t}function ue(){return l({mutationFn:le})}async function de({id:e,changes:t}){let{data:n}=await o.patch(`/Admin/Region/${e}`,t);return n}function fe(){return l({mutationFn:de})}async function pe(){let{data:e}=await o.get(`/Location/`);return e}var me=[`fabric-admin`,`locations`];function he(){return u({queryKey:me,queryFn:pe,retry:!1})}function J(e,t){return t?`${e} (${t})`:e}async function ge(){let e=[];for(let t=0;t<40;t++){let n=t*500,r=[`status=ne=DELETED`,`sort(name)`,`limit(${n},${n+500})`].join(`&`),{data:i}=await o.get(`/Admin/Organization/?${r}`),a=i;if(e.push(...a),a.length<500)return{organizations:e,truncated:!1}}return{organizations:e,truncated:!0}}var _e=[`fabric-admin`,`organizations`];function Y(){return u({queryKey:_e,queryFn:ge,retry:!1})}async function ve(){let{data:e}=await o.get(`/Admin/Region/`);return e}var X=[`fabric-admin`,`regions`];function Z(){return u({queryKey:X,queryFn:ve,retry:!1})}var ye=t({id:a().trim().min(1,`ID is required`).regex(/^[a-z0-9-]+$/,`Use lowercase letters, numbers, and hyphens only`),region:a().trim().min(1,`Region is required`),instanceCount:r({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),purchasedBlockMultiplier:r({error:`Enter a whole number`}).int(`Must be a whole number`).min(1,`Must be at least 1`),latencyDescription:a().trim().min(1,`Latency description is required`),linodePreferredLocations:i(a()),gcpPreferredLocations:i(a()),forceLocations:n(),active:n(),organizationIds:i(a())}).superRefine((e,t)=>{e.forceLocations&&!e.linodePreferredLocations.length&&!e.gcpPreferredLocations.length&&t.addIssue({code:`custom`,path:[`forceLocations`],message:`Add at least one preferred location, or turn off Force locations`})}),be=100;function Q(e){return{id:e?.id??``,region:e?.region??``,instanceCount:e?.instanceCount??1,purchasedBlockMultiplier:e?.purchasedBlockMultiplier??1,latencyDescription:e?.latencyDescription??``,linodePreferredLocations:e?.linodePreferredLocations??[],gcpPreferredLocations:e?.gcpPreferredLocations??[],forceLocations:e?.forceLocations??!1,active:e?.active??!0,organizationIds:e?.organizationIds??[]}}function xe({open:e,onOpenChange:t,region:n}){let r=!!n,i=c(),{data:a=[]}=d({...he(),enabled:e}),{data:o}=d({...Y(),enabled:e}),l=o?.organizations??[],{data:u=[]}=d({...Z(),enabled:e}),{mutate:f,isPending:p}=ue(),{mutate:m,isPending:E}=fe(),D=p||E,O=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`linode`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),k=(0,G.useMemo)(()=>a.filter(e=>e.cloudProvider===`gcp`).map(e=>({value:e.location,label:`${e.locationName} (${e.location})`})),[a]),A=(0,G.useMemo)(()=>l.map(e=>({value:e.id,label:J(e.id,e.name)})),[l]),j=(0,G.useMemo)(()=>{let e=new Set;for(let t of a)for(let n of t.regions??[])e.add(n);return n?.region&&e.add(n.region),[...e].sort()},[a,n]),M=_({resolver:h(ye),defaultValues:Q(n)});(0,G.useEffect)(()=>{e&&M.reset(Q(n))},[e,n,M]);let N=e=>{let a=e=>e.trim().toLowerCase(),o=!n||a(n.latencyDescription)!==a(e.latencyDescription),s=u.filter(e=>e.id!==n?.id);if(o&&s.some(t=>a(t.latencyDescription)===a(e.latencyDescription))){M.setError(`latencyDescription`,{message:`A region with this latency description already exists`});return}let c=e.organizationIds.length>0?e.organizationIds:null,l=()=>{g.success(r?`Region updated`:`Region created`),i.invalidateQueries({queryKey:X}),t(!1)};if(n){let{id:t,...r}=e;m({id:n.id,changes:{...r,organizationIds:c}},{onSuccess:l})}else f({...e,organizationIds:c},{onSuccess:l})};return(0,K.jsx)(v,{open:e,onOpenChange:t,children:(0,K.jsxs)(x,{className:`max-w-2xl`,children:[(0,K.jsx)(w,{children:r?`Edit region`:`Create region`}),(0,K.jsx)(te,{children:r?`Update this region. Its ID is fixed once created.`:`Define a new deployment region. Leave organizations empty to make it public (all organizations).`}),(0,K.jsx)(U,{...M,children:(0,K.jsxs)(`form`,{className:`my-4 flex flex-col gap-4`,onSubmit:M.handleSubmit(N),children:[(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(R,{control:M.control,name:`id`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region ID`}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{placeholder:`e.g. us-east-1`,...e,disabled:r})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`region`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Region`}),(0,K.jsx)(B,{children:(0,K.jsxs)(ee,{value:e.value,onValueChange:e.onChange,children:[(0,K.jsx)(C,{className:`w-full`,children:(0,K.jsx)(T,{placeholder:`Select a region`})}),(0,K.jsx)(S,{children:j.map(e=>(0,K.jsx)(b,{value:e,children:e},e))})]})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`instanceCount`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Instance count`}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`purchasedBlockMultiplier`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-1.5 pb-1`,children:[(0,K.jsx)(L,{className:`!pb-0`,children:`Purchased block multiplier`}),(0,K.jsxs)(ce,{children:[(0,K.jsx)(ae,{asChild:!0,children:(0,K.jsx)(`button`,{type:`button`,"aria-label":`What is the purchased block multiplier?`,className:`text-muted-foreground hover:text-foreground`,children:(0,K.jsx)(re,{className:`size-3.5`})})}),(0,K.jsx)(se,{className:`max-w-xs`,children:`How many purchased blocks a cluster in this region is billed for. One block covers a baseline cluster: a 2-node cluster is 1 block and a 4-node cluster is 2 blocks. Each block carries one license against the selected plan's limits; once they're all used up, this many are issued and billed again.`})]})]}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{type:`number`,min:1,step:1,name:e.name,ref:e.ref,onBlur:e.onBlur,value:Number.isFinite(e.value)?e.value:``,onChange:t=>e.onChange(t.target.valueAsNumber)})}),(0,K.jsx)(z,{})]})})]}),(0,K.jsx)(R,{control:M.control,name:`latencyDescription`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Latency description`}),(0,K.jsx)(B,{children:(0,K.jsx)(V,{placeholder:`e.g. 280ms, medium distribution`,...e})}),(0,K.jsx)(z,{})]})}),(0,K.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 items-start`,children:[(0,K.jsx)(R,{control:M.control,name:`linodePreferredLocations`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Linode preferred locations`}),(0,K.jsx)(B,{children:(0,K.jsx)(q,{options:O,selected:e.value,onChange:e.onChange,placeholder:`Any Linode location`,emptyText:`No Linode locations`,ariaLabel:`Linode preferred locations`,allowRepeats:!0})}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`gcpPreferredLocations`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`GCP preferred locations`}),(0,K.jsx)(B,{children:(0,K.jsx)(q,{options:k,selected:e.value,onChange:e.onChange,placeholder:`Any GCP location`,emptyText:`No GCP locations`,ariaLabel:`GCP preferred locations`,allowRepeats:!0})}),(0,K.jsx)(z,{})]})})]}),(0,K.jsx)(R,{control:M.control,name:`forceLocations`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(B,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Force locations`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Pin deployments to the preferred locations above instead of treating them as hints.`}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`active`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,K.jsx)(B,{children:(0,K.jsx)(`input`,{type:`checkbox`,className:`size-4`,checked:e.value,onChange:t=>e.onChange(t.target.checked)})}),(0,K.jsx)(L,{className:`!pb-0`,children:`Active`})]}),(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Inactive regions stay available to existing deployments but aren't offered for new ones.`}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(R,{control:M.control,name:`organizationIds`,render:({field:e})=>(0,K.jsxs)(H,{children:[(0,K.jsx)(L,{className:`pb-1`,children:`Organizations (customer scope)`}),(0,K.jsx)(B,{children:(0,K.jsx)(q,{options:A,selected:e.value,onChange:e.onChange,placeholder:`Public — all organizations`,emptyText:`No organizations`,ariaLabel:`Organizations`,maxVisibleOptions:be})}),o?.truncated&&(0,K.jsx)(`p`,{className:`text-xs text-destructive`,children:`Too many organizations to list them all — some may be missing from this picker.`}),(0,K.jsx)(z,{})]})}),(0,K.jsx)(y,{children:(0,K.jsxs)(`div`,{className:`flex w-full justify-between`,children:[(0,K.jsx)(s,{variant:`destructiveOutline`,type:`button`,onClick:()=>t(!1),disabled:D,children:`Cancel`}),(0,K.jsx)(s,{variant:`submit`,disabled:D,children:D?`Saving…`:r?`Save changes`:`Create region`})]})})]})})]})})}function $({organizationIds:e,orgNameById:t}){return e==null||e.length===0?(0,K.jsx)(K.Fragment,{children:`Public`}):(0,K.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:e.map(e=>(0,K.jsx)(`span`,{className:`break-words`,children:J(e,t.get(e))},e))})}function Se(){let{data:e,isLoading:t,isError:n}=d(Z()),{data:r}=d(Y()),[i,a]=(0,G.useState)(!1),[o,c]=(0,G.useState)(null),[l,u]=(0,G.useState)(``),f=m(`region:write`),p=(0,G.useMemo)(()=>new Map((r?.organizations??[]).map(e=>[e.id,e.name])),[r]),h=(0,G.useMemo)(()=>{let t=l.trim().toLowerCase();return!t||!e?e??[]:e.filter(e=>e.region.toLowerCase().includes(t)||e.id.toLowerCase().includes(t)||e.latencyDescription.toLowerCase().includes(t)||(e.organizationIds??[]).some(e=>e.toLowerCase().includes(t)||(p.get(e)??``).toLowerCase().includes(t)))},[e,l,p]),g=()=>{c(null),a(!0)},_=e=>{c(e),a(!0)};return(0,K.jsxs)(`div`,{className:`max-w-4xl`,children:[(0,K.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,K.jsxs)(`div`,{children:[(0,K.jsx)(`h1`,{className:`text-2xl font-light`,children:`Regions`}),(0,K.jsx)(`p`,{className:`mt-2 text-sm text-muted-foreground`,children:`Deployment regions customers can provision into. A region scoped to organizations is only offered to those customers; otherwise it's available to everyone.`})]}),f&&(0,K.jsxs)(s,{variant:`submit`,onClick:g,className:`shrink-0`,children:[(0,K.jsx)(ie,{}),`Create region`]})]}),(0,K.jsx)(`div`,{className:`mt-6`,children:t?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading regions…`}):n?(0,K.jsx)(`p`,{className:`text-sm text-destructive`,children:`Couldn't load regions.`}):!e||e.length===0?(0,K.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No regions yet. Create one to get started.`}):(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(V,{value:l,onChange:e=>u(e.target.value),placeholder:`Filter by ID, region, description, or organization…`,"aria-label":`Filter regions`,className:`mb-4 max-w-md`}),h.length===0?(0,K.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No regions match “`,l,`”.`]}):(0,K.jsxs)(M,{children:[(0,K.jsx)(k,{children:(0,K.jsxs)(j,{children:[(0,K.jsx)(D,{children:`ID`}),(0,K.jsx)(D,{children:`Region`}),(0,K.jsx)(D,{className:`text-right pr-6`,children:`Instances`}),(0,K.jsx)(D,{children:`Description`}),(0,K.jsx)(D,{children:`Scope`}),(0,K.jsx)(D,{className:`w-0`})]})}),(0,K.jsx)(O,{children:h.map(e=>(0,K.jsxs)(j,{className:e.active===!1?`opacity-60`:void 0,children:[(0,K.jsx)(A,{className:`font-mono font-medium`,children:(0,K.jsxs)(`span`,{className:`inline-flex items-center gap-2`,children:[e.id,e.active===!1&&(0,K.jsx)(I,{variant:`secondary`,className:`text-[10px]`,children:`Inactive`})]})}),(0,K.jsx)(A,{children:e.region}),(0,K.jsx)(A,{className:`text-right pr-6`,children:e.instanceCount}),(0,K.jsx)(A,{className:`text-muted-foreground`,children:e.latencyDescription}),(0,K.jsx)(A,{children:(0,K.jsx)($,{organizationIds:e.organizationIds,orgNameById:p})}),(0,K.jsx)(A,{className:`text-right`,children:f&&(0,K.jsx)(s,{variant:`ghost`,size:`icon`,"aria-label":`Edit ${e.id}`,onClick:()=>_(e),children:(0,K.jsx)(E,{})})})]},e.id))})]})]})}),(0,K.jsx)(xe,{open:i,onOpenChange:a,region:o})]})}export{$ as RegionScope,Se as RegionsIndex};
@@ -1 +1 @@
1
- import{I as e}from"./vendor-tanstack-FsM5XZNE.js";import{t}from"./createLucideIcon-BMkDbMrz.js";import{r as n}from"./pollUnlessForbidden-DIDXGBc5.js";import{st as r}from"./index-DF1fSnXV.js";var i=t(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),a=t(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]);function o(...e){let t=e.flat(1);return t.map((e,n)=>typeof e==`string`?s(e,n!==0,n!==t.length-1):e).join(`/`)}function s(e,t=!0,n=!0){let r=t&&e[0]===`/`,i=n&&e[e.length-1]===`/`;return r&&i?e.slice(1,-1):r?e.slice(1):i?e.slice(0,-1):e}var c=`https://github.com/HarperFast/create-harper/tree/main`;function l(e){return{...e,npmPackage:`@harperfast/template-${e.name}-studio`,githubUrl:`${c}/template-${e.name}`}}var u=[l({name:`vanilla-ts`,framework:`vanilla`,title:`Vanilla + TypeScript`,description:`The same Web + REST ORM from the first template, but with TypeScript sprinkled in.`,tags:[`Vanilla`,`TypeScript`,`GraphQL`],typescript:!0,ssr:!1}),l({name:`vanilla`,framework:`vanilla`,title:`Vanilla JS`,description:`Define your entities in schema.graphql, add your HTML/CSS/JS in web, and you're cooking!`,tags:[`Vanilla`,`REST`,`GraphQL`,`ORM`],typescript:!1,ssr:!1}),l({name:`react-ts`,framework:`react`,title:`React + TypeScript`,description:`The same Vite-powered React app, with end-to-end type safety from TypeScript.`,tags:[`React`,`TypeScript`,`Vite`,`SPA`],typescript:!0,ssr:!1}),l({name:`react`,framework:`react`,title:`React`,description:`A Vite-powered React single-page app, wired up to Harper's REST + GraphQL APIs out of the box.`,tags:[`React`,`Vite`,`SPA`,`GraphQL`],typescript:!1,ssr:!1}),l({name:`react-ts-ssr`,framework:`react`,title:`React + TypeScript + SSR`,description:`Server-rendered React with Vite and TypeScript for type-safe, SEO-friendly pages on Harper.`,tags:[`React`,`TypeScript`,`SSR`,`Vite`],typescript:!0,ssr:!0}),l({name:`react-ssr`,framework:`react`,title:`React + SSR`,description:`Server-rendered React with Vite for fast first paints, hydrating into a full SPA on Harper.`,tags:[`React`,`SSR`,`Vite`,`GraphQL`],typescript:!1,ssr:!0}),l({name:`vue-ts`,framework:`vue`,title:`Vue + TypeScript`,description:`The same Vite-powered Vue app, with end-to-end type safety from TypeScript.`,tags:[`Vue`,`TypeScript`,`Vite`,`SPA`],typescript:!0,ssr:!1}),l({name:`vue`,framework:`vue`,title:`Vue`,description:`A Vite-powered Vue single-page app, wired up to Harper's REST + GraphQL APIs out of the box.`,tags:[`Vue`,`Vite`,`SPA`,`GraphQL`],typescript:!1,ssr:!1}),l({name:`vue-ts-ssr`,framework:`vue`,title:`Vue + TypeScript + SSR`,description:`Server-rendered Vue with Vite and TypeScript for type-safe, SEO-friendly pages on Harper.`,tags:[`Vue`,`TypeScript`,`SSR`,`Vite`],typescript:!0,ssr:!0}),l({name:`vue-ssr`,framework:`vue`,title:`Vue + SSR`,description:`Server-rendered Vue with Vite for fast first paints, hydrating into a full SPA on Harper.`,tags:[`Vue`,`SSR`,`Vite`,`GraphQL`],typescript:!1,ssr:!0}),l({name:`nextjs-ts`,framework:`nextjs`,title:`Next.js + TypeScript`,description:`A type-safe Next.js app that reads and writes Harper tables directly from server actions.`,tags:[`Next.js`,`TypeScript`,`React`,`App Router`],typescript:!0,ssr:!0,studio:!1}),l({name:`nextjs`,framework:`nextjs`,title:`Next.js`,description:`A Next.js app wired to Harper's Resource API, reading and writing tables from server actions.`,tags:[`Next.js`,`React`,`App Router`],typescript:!1,ssr:!0,studio:!1})],d=u.map(e=>e.name);u.filter(e=>e.studio!==!1).map(e=>e.name);var f=[`vanilla`,`react`,`vue`];function p(e){let t=f.indexOf(e);return t===-1?1/0:t}var m=[...u].sort((e,t)=>p(e.framework)-p(t.framework)||Number(e.ssr)-Number(t.ssr)||Number(e.typescript)-Number(t.typescript)).map(e=>({id:e.name,name:e.title,description:e.description,tags:[...e.tags],npm:e.npmPackage,githubUrl:e.githubUrl}));async function h({instanceClient:e,project:t,template:n,entityType:r}){let{data:i}=await e.post(`/`,{operation:`add_component`,project:t,template:n,replicated:r===`cluster`},{timeout:3e5});return i}function g(){return e({mutationFn:h})}function _(e,t,n){for(let r of e)if(r[t]===n)return r}async function v({file:e,project:t,entityType:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`drop_component`,file:e||void 0,project:t,replicated:n===`cluster`});return i}var y=`__root__`,b=`importedApplications`,x=`newApplication`;function S(e){let t={},i=[],a=[],o=[];for(let n of e)r(n)?n.package?a.push(n.path):i.push(n.path):o.push(n.path),C(t,n);return t[y]={index:y,isFolder:!0,children:[x,b,...i,...o].filter(n),data:void 0,canMove:!1,canRename:!1},t[b]={index:b,isFolder:!0,children:a,data:{name:`Imported Applications`,path:b,package:b,project:``,entries:[]},canMove:!1,canRename:!1},t[x]={index:x,isFolder:!1,data:{name:`New Application`,path:x,project:``},canMove:!1,canRename:!1},{items:t,rootId:y}}function C(e,t){let n=t.path;if(r(t)){let i=t,a=[],o=[];for(let e of i.entries)r(e)?a.push(e.path):o.push(e.path);e[n]={index:n,isFolder:!0,children:[...a,...o],data:t,canMove:!1,canRename:!1};for(let t of i.entries)C(e,t)}else e[n]={index:n,isFolder:!1,data:t,canMove:!t.package,canRename:!t.package}}function w(e,t,n,r=[]){let i=[];for(let a of e){let e=n(a,r);i.push(e);let o=a,s=o[t];s&&(e[t]=w(s,t,n,[...r,o]))}return i}function T(e){let t=new Set;return{rootEntries:w(e||[],`entries`,(e,n)=>{let i=r(e)&&e.entries.find(e=>e.name.toLowerCase()===`readme.md`),a=[...n.map(e=>e.name),e.name].join(`/`);return t.add(a),{name:e.name,path:a,size:e.size,project:(n[0]||e)?.name,package:(n[0]||e)?.package,overviewEntry:i&&!r(i)&&{name:i.name,path:[...n.map(e=>e.name),e.name,i.name].join(`/`),project:(n[0]||e)?.name,package:(n[0]||e)?.package}||void 0}}),pathsRegistry:t}}async function E({file:e,payload:t,project:n,entityType:r,instanceClient:i,encoding:a}){let{data:o}=await i.post(`/`,{operation:`set_component_file`,file:e,payload:t,project:n,encoding:a,replicated:r===`cluster`},{timeout:3e5});return o}function D(){return e({mutationFn:E})}export{b as a,v as c,g as d,m as f,i as g,a as h,S as i,_ as l,o as m,D as n,x as o,d as p,T as r,y as s,E as t,h as u};
1
+ import{I as e}from"./vendor-tanstack-FsM5XZNE.js";import{t}from"./createLucideIcon-BMkDbMrz.js";import{r as n}from"./pollUnlessForbidden-DIDXGBc5.js";import{st as r}from"./index-BQB9R8Ug.js";var i=t(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),a=t(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]);function o(...e){let t=e.flat(1);return t.map((e,n)=>typeof e==`string`?s(e,n!==0,n!==t.length-1):e).join(`/`)}function s(e,t=!0,n=!0){let r=t&&e[0]===`/`,i=n&&e[e.length-1]===`/`;return r&&i?e.slice(1,-1):r?e.slice(1):i?e.slice(0,-1):e}var c=`https://github.com/HarperFast/create-harper/tree/main`;function l(e){return{...e,npmPackage:`@harperfast/template-${e.name}-studio`,githubUrl:`${c}/template-${e.name}`}}var u=[l({name:`vanilla-ts`,framework:`vanilla`,title:`Vanilla + TypeScript`,description:`The same Web + REST ORM from the first template, but with TypeScript sprinkled in.`,tags:[`Vanilla`,`TypeScript`,`GraphQL`],typescript:!0,ssr:!1}),l({name:`vanilla`,framework:`vanilla`,title:`Vanilla JS`,description:`Define your entities in schema.graphql, add your HTML/CSS/JS in web, and you're cooking!`,tags:[`Vanilla`,`REST`,`GraphQL`,`ORM`],typescript:!1,ssr:!1}),l({name:`react-ts`,framework:`react`,title:`React + TypeScript`,description:`The same Vite-powered React app, with end-to-end type safety from TypeScript.`,tags:[`React`,`TypeScript`,`Vite`,`SPA`],typescript:!0,ssr:!1}),l({name:`react`,framework:`react`,title:`React`,description:`A Vite-powered React single-page app, wired up to Harper's REST + GraphQL APIs out of the box.`,tags:[`React`,`Vite`,`SPA`,`GraphQL`],typescript:!1,ssr:!1}),l({name:`react-ts-ssr`,framework:`react`,title:`React + TypeScript + SSR`,description:`Server-rendered React with Vite and TypeScript for type-safe, SEO-friendly pages on Harper.`,tags:[`React`,`TypeScript`,`SSR`,`Vite`],typescript:!0,ssr:!0}),l({name:`react-ssr`,framework:`react`,title:`React + SSR`,description:`Server-rendered React with Vite for fast first paints, hydrating into a full SPA on Harper.`,tags:[`React`,`SSR`,`Vite`,`GraphQL`],typescript:!1,ssr:!0}),l({name:`vue-ts`,framework:`vue`,title:`Vue + TypeScript`,description:`The same Vite-powered Vue app, with end-to-end type safety from TypeScript.`,tags:[`Vue`,`TypeScript`,`Vite`,`SPA`],typescript:!0,ssr:!1}),l({name:`vue`,framework:`vue`,title:`Vue`,description:`A Vite-powered Vue single-page app, wired up to Harper's REST + GraphQL APIs out of the box.`,tags:[`Vue`,`Vite`,`SPA`,`GraphQL`],typescript:!1,ssr:!1}),l({name:`vue-ts-ssr`,framework:`vue`,title:`Vue + TypeScript + SSR`,description:`Server-rendered Vue with Vite and TypeScript for type-safe, SEO-friendly pages on Harper.`,tags:[`Vue`,`TypeScript`,`SSR`,`Vite`],typescript:!0,ssr:!0}),l({name:`vue-ssr`,framework:`vue`,title:`Vue + SSR`,description:`Server-rendered Vue with Vite for fast first paints, hydrating into a full SPA on Harper.`,tags:[`Vue`,`SSR`,`Vite`,`GraphQL`],typescript:!1,ssr:!0}),l({name:`nextjs-ts`,framework:`nextjs`,title:`Next.js + TypeScript`,description:`A type-safe Next.js app that reads and writes Harper tables directly from server actions.`,tags:[`Next.js`,`TypeScript`,`React`,`App Router`],typescript:!0,ssr:!0,studio:!1}),l({name:`nextjs`,framework:`nextjs`,title:`Next.js`,description:`A Next.js app wired to Harper's Resource API, reading and writing tables from server actions.`,tags:[`Next.js`,`React`,`App Router`],typescript:!1,ssr:!0,studio:!1})],d=u.map(e=>e.name);u.filter(e=>e.studio!==!1).map(e=>e.name);var f=[`vanilla`,`react`,`vue`];function p(e){let t=f.indexOf(e);return t===-1?1/0:t}var m=[...u].sort((e,t)=>p(e.framework)-p(t.framework)||Number(e.ssr)-Number(t.ssr)||Number(e.typescript)-Number(t.typescript)).map(e=>({id:e.name,name:e.title,description:e.description,tags:[...e.tags],npm:e.npmPackage,githubUrl:e.githubUrl}));async function h({instanceClient:e,project:t,template:n,entityType:r}){let{data:i}=await e.post(`/`,{operation:`add_component`,project:t,template:n,replicated:r===`cluster`},{timeout:3e5});return i}function g(){return e({mutationFn:h})}function _(e,t,n){for(let r of e)if(r[t]===n)return r}async function v({file:e,project:t,entityType:n,instanceClient:r}){let{data:i}=await r.post(`/`,{operation:`drop_component`,file:e||void 0,project:t,replicated:n===`cluster`});return i}var y=`__root__`,b=`importedApplications`,x=`newApplication`;function S(e){let t={},i=[],a=[],o=[];for(let n of e)r(n)?n.package?a.push(n.path):i.push(n.path):o.push(n.path),C(t,n);return t[y]={index:y,isFolder:!0,children:[x,b,...i,...o].filter(n),data:void 0,canMove:!1,canRename:!1},t[b]={index:b,isFolder:!0,children:a,data:{name:`Imported Applications`,path:b,package:b,project:``,entries:[]},canMove:!1,canRename:!1},t[x]={index:x,isFolder:!1,data:{name:`New Application`,path:x,project:``},canMove:!1,canRename:!1},{items:t,rootId:y}}function C(e,t){let n=t.path;if(r(t)){let i=t,a=[],o=[];for(let e of i.entries)r(e)?a.push(e.path):o.push(e.path);e[n]={index:n,isFolder:!0,children:[...a,...o],data:t,canMove:!1,canRename:!1};for(let t of i.entries)C(e,t)}else e[n]={index:n,isFolder:!1,data:t,canMove:!t.package,canRename:!t.package}}function w(e,t,n,r=[]){let i=[];for(let a of e){let e=n(a,r);i.push(e);let o=a,s=o[t];s&&(e[t]=w(s,t,n,[...r,o]))}return i}function T(e){let t=new Set;return{rootEntries:w(e||[],`entries`,(e,n)=>{let i=r(e)&&e.entries.find(e=>e.name.toLowerCase()===`readme.md`),a=[...n.map(e=>e.name),e.name].join(`/`);return t.add(a),{name:e.name,path:a,size:e.size,project:(n[0]||e)?.name,package:(n[0]||e)?.package,overviewEntry:i&&!r(i)&&{name:i.name,path:[...n.map(e=>e.name),e.name,i.name].join(`/`),project:(n[0]||e)?.name,package:(n[0]||e)?.package}||void 0}}),pathsRegistry:t}}async function E({file:e,payload:t,project:n,entityType:r,instanceClient:i,encoding:a}){let{data:o}=await i.post(`/`,{operation:`set_component_file`,file:e,payload:t,project:n,encoding:a,replicated:r===`cluster`},{timeout:3e5});return o}function D(){return e({mutationFn:E})}export{b as a,v as c,g as d,m as f,i as g,a as h,S as i,_ as l,o as m,D as n,x as o,d as p,T as r,y as s,E as t,h as u};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-DipmMR_-.js","assets/editor.api-eUd8PqEu.js","assets/vendor-datadog-XDrpA25D.js","assets/rolldown-runtime-B0Z9INg1.js","assets/editor-jjEx9u7D.css","assets/workers-BtibQGyk.js","assets/toggleHighContrast-CyNC3SCQ.js","assets/toggleHighContrast--ixms01u.css","assets/lspLanguageFeatures-C7XtZA_w.js","assets/htmlMode-B2LqJw1z.js","assets/html-DmSSmgE8.js","assets/javascript-CGzSV8Sd.js","assets/typescript-Dtnury3t.js","assets/xml-D41zWqPl.js","assets/yaml-BFQ3mF1U.js"])))=>i.map(i=>d[i]);
2
- import{i as e}from"./vendor-datadog-XDrpA25D.js";import{J as t,t as n}from"./index-DF1fSnXV.js";import{loader as r}from"./dist-cY0BPcz0.js";import{m as i,n as a}from"./editor.api-eUd8PqEu.js";import"./register-3F1Tje_F.js";import"./register-S_PdXsoi.js";import{t as o}from"./editor-BDfNodZS.js";var s=class{constructor(e,t,n){this._onDidChange=new a,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},c={validate:!0,lint:{compatibleVendorPrefixes:`ignore`,vendorPrefix:`warning`,duplicateProperties:`warning`,emptyRules:`warning`,importStatement:`ignore`,boxModel:`ignore`,universalSelector:`ignore`,zeroUnits:`ignore`,fontFaceProperties:`warning`,hexColorLength:`error`,argumentsInColorFunction:`error`,unknownProperties:`warning`,ieHack:`ignore`,unknownVendorSpecificProperties:`ignore`,propertyIgnoredDueToDisplay:`warning`,important:`ignore`,float:`ignore`,idSelector:`ignore`},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:`collapse`,maxPreserveNewLines:void 0,preserveNewLines:!0}},l={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},u=new s(`css`,c,l),d=new s(`scss`,c,l),f=new s(`less`,c,l);function p(){return e(()=>import(`./cssMode-DipmMR_-.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))}i.onLanguage(`less`,()=>{p().then(e=>e.setupMode(f))}),i.onLanguage(`scss`,()=>{p().then(e=>e.setupMode(d))}),i.onLanguage(`css`,()=>{p().then(e=>e.setupMode(u))});var m=class{constructor(e,t,n){this._onDidChange=new a,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},h={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:`default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var`,contentUnformatted:`pre`,indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:`head, body, /html`,wrapAttributes:`auto`},suggest:{},data:{useDefaultDataProvider:!0}};function g(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===_,documentFormattingEdits:e===_,documentRangeFormattingEdits:e===_}}var _=`html`,v=`handlebars`,y=`razor`;x(_,h,g(_)).defaults,x(v,h,g(v)).defaults,x(y,h,g(y)).defaults;function b(){return e(()=>import(`./htmlMode-B2LqJw1z.js`),__vite__mapDeps([9,1,2,3,4,5,6,7,8]))}function x(e,t=h,n=g(e)){let r=new m(e,t,n),a,o=i.onLanguage(e,async()=>{a=(await b()).setupMode(r)});return{defaults:r,dispose(){o.dispose(),a?.dispose(),a=void 0}}}var S={},C={},w=class e{static getOrCreate(t){return C[t]||(C[t]=new e(t)),C[t]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,S[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function T(e){let t=e.id;S[t]=e,i.register(e);let n=w.getOrCreate(t);i.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),i.onLanguageEncountered(t,async()=>{let e=await n.load();i.setLanguageConfiguration(t,e.conf)})}T({id:`css`,extensions:[`.css`],aliases:[`CSS`,`css`],mimetypes:[`text/css`],loader:()=>e(()=>import(`./css-DIMkf-bt.js`),[])}),T({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>e(()=>import(`./graphql-fmXr3nnJ.js`),[])}),T({id:`html`,extensions:[`.html`,`.htm`,`.shtml`,`.xhtml`,`.mdoc`,`.jsp`,`.asp`,`.aspx`,`.jshtm`],aliases:[`HTML`,`htm`,`html`,`xhtml`],mimetypes:[`text/html`,`text/x-jshtm`,`text/template`,`text/ng-template`],loader:()=>e(()=>import(`./html-DmSSmgE8.js`),__vite__mapDeps([10,1,2,3,4]))}),T({id:`javascript`,extensions:[`.js`,`.es6`,`.jsx`,`.mjs`,`.cjs`],firstLine:`^#!.*\\bnode`,filenames:[`jakefile`],aliases:[`JavaScript`,`javascript`,`js`],mimetypes:[`text/javascript`],loader:()=>e(()=>import(`./javascript-CGzSV8Sd.js`),__vite__mapDeps([11,12,1,2,3,4]))}),T({id:`markdown`,extensions:[`.md`,`.markdown`,`.mdown`,`.mkdn`,`.mkd`,`.mdwn`,`.mdtxt`,`.mdtext`],aliases:[`Markdown`,`markdown`],loader:()=>e(()=>import(`./markdown-Cimd5fb3.js`),[])}),T({id:`typescript`,extensions:[`.ts`,`.tsx`,`.cts`,`.mts`],aliases:[`TypeScript`,`ts`,`typescript`],mimetypes:[`text/typescript`],loader:()=>e(()=>import(`./typescript-Dtnury3t.js`),__vite__mapDeps([12,1,2,3,4]))}),T({id:`xml`,extensions:[`.xml`,`.xsd`,`.dtd`,`.ascx`,`.csproj`,`.config`,`.props`,`.targets`,`.wxi`,`.wxl`,`.wxs`,`.xaml`,`.svg`,`.svgz`,`.opf`,`.xslt`,`.xsl`],firstLine:`(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)`,aliases:[`XML`,`xml`],mimetypes:[`text/xml`,`application/xml`,`application/xaml+xml`,`application/xml-dtd`],loader:()=>e(()=>import(`./xml-D41zWqPl.js`),__vite__mapDeps([13,1,2,3,4]))}),T({id:`yaml`,extensions:[`.yaml`,`.yml`],aliases:[`YAML`,`yaml`,`YML`,`yml`],mimetypes:[`application/x-yaml`,`text/x-yaml`],loader:()=>e(()=>import(`./yaml-BFQ3mF1U.js`),__vite__mapDeps([14,1,2,3,4]))});function E(e){return new Worker(`/assets/editor.worker-DwcOiOeP.js`,{type:`module`,name:e?.name})}function D(e){return new Worker(`/assets/css.worker-BD9HbRGW.js`,{type:`module`,name:e?.name})}function O(e){return new Worker(`/assets/html.worker-DsMmVtuG.js`,{type:`module`,name:e?.name})}function k(e){return new Worker(`/assets/json.worker-fO_hOLCP.js`,{type:`module`,name:e?.name})}function A(e){return new Worker(`/assets/ts.worker-DpaaFKhy.js`,{type:`module`,name:e?.name})}function j(e){return new Worker(`/assets/yaml.worker-Iyy2Pf1T.js`,{type:`module`,name:e?.name})}var M=globalThis;function N(e){switch(e){case`json`:return new k;case`css`:case`scss`:case`less`:return new D;case`html`:case`handlebars`:case`razor`:return new O;case`typescript`:case`javascript`:return new A;case`yaml`:return new j;default:return new E}}M.MonacoEnvironment={getWorker(e,t){let r=N(t);return r.addEventListener(`error`,()=>n()),r}},t(i),r.config({monaco:o});
2
+ import{i as e}from"./vendor-datadog-XDrpA25D.js";import{J as t,t as n}from"./index-BQB9R8Ug.js";import{loader as r}from"./dist-cY0BPcz0.js";import{m as i,n as a}from"./editor.api-eUd8PqEu.js";import"./register-3F1Tje_F.js";import"./register-S_PdXsoi.js";import{t as o}from"./editor-BDfNodZS.js";var s=class{constructor(e,t,n){this._onDidChange=new a,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get modeConfiguration(){return this._modeConfiguration}get diagnosticsOptions(){return this.options}get options(){return this._options}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setDiagnosticsOptions(e){this.setOptions(e)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},c={validate:!0,lint:{compatibleVendorPrefixes:`ignore`,vendorPrefix:`warning`,duplicateProperties:`warning`,emptyRules:`warning`,importStatement:`ignore`,boxModel:`ignore`,universalSelector:`ignore`,zeroUnits:`ignore`,fontFaceProperties:`warning`,hexColorLength:`error`,argumentsInColorFunction:`error`,unknownProperties:`warning`,ieHack:`ignore`,unknownVendorSpecificProperties:`ignore`,propertyIgnoredDueToDisplay:`warning`,important:`ignore`,float:`ignore`,idSelector:`ignore`},data:{useDefaultDataProvider:!0},format:{newlineBetweenSelectors:!0,newlineBetweenRules:!0,spaceAroundSelectorSeparator:!1,braceStyle:`collapse`,maxPreserveNewLines:void 0,preserveNewLines:!0}},l={completionItems:!0,hovers:!0,documentSymbols:!0,definitions:!0,references:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,diagnostics:!0,selectionRanges:!0,documentFormattingEdits:!0,documentRangeFormattingEdits:!0},u=new s(`css`,c,l),d=new s(`scss`,c,l),f=new s(`less`,c,l);function p(){return e(()=>import(`./cssMode-DipmMR_-.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8]))}i.onLanguage(`less`,()=>{p().then(e=>e.setupMode(f))}),i.onLanguage(`scss`,()=>{p().then(e=>e.setupMode(d))}),i.onLanguage(`css`,()=>{p().then(e=>e.setupMode(u))});var m=class{constructor(e,t,n){this._onDidChange=new a,this._languageId=e,this.setOptions(t),this.setModeConfiguration(n)}get onDidChange(){return this._onDidChange.event}get languageId(){return this._languageId}get options(){return this._options}get modeConfiguration(){return this._modeConfiguration}setOptions(e){this._options=e||Object.create(null),this._onDidChange.fire(this)}setModeConfiguration(e){this._modeConfiguration=e||Object.create(null),this._onDidChange.fire(this)}},h={format:{tabSize:4,insertSpaces:!1,wrapLineLength:120,unformatted:`default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var`,contentUnformatted:`pre`,indentInnerHtml:!1,preserveNewLines:!0,maxPreserveNewLines:void 0,indentHandlebars:!1,endWithNewline:!1,extraLiners:`head, body, /html`,wrapAttributes:`auto`},suggest:{},data:{useDefaultDataProvider:!0}};function g(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===_,documentFormattingEdits:e===_,documentRangeFormattingEdits:e===_}}var _=`html`,v=`handlebars`,y=`razor`;x(_,h,g(_)).defaults,x(v,h,g(v)).defaults,x(y,h,g(y)).defaults;function b(){return e(()=>import(`./htmlMode-B2LqJw1z.js`),__vite__mapDeps([9,1,2,3,4,5,6,7,8]))}function x(e,t=h,n=g(e)){let r=new m(e,t,n),a,o=i.onLanguage(e,async()=>{a=(await b()).setupMode(r)});return{defaults:r,dispose(){o.dispose(),a?.dispose(),a=void 0}}}var S={},C={},w=class e{static getOrCreate(t){return C[t]||(C[t]=new e(t)),C[t]}constructor(e){this._languageId=e,this._loadingTriggered=!1,this._lazyLoadPromise=new Promise((e,t)=>{this._lazyLoadPromiseResolve=e,this._lazyLoadPromiseReject=t})}load(){return this._loadingTriggered||(this._loadingTriggered=!0,S[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function T(e){let t=e.id;S[t]=e,i.register(e);let n=w.getOrCreate(t);i.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),i.onLanguageEncountered(t,async()=>{let e=await n.load();i.setLanguageConfiguration(t,e.conf)})}T({id:`css`,extensions:[`.css`],aliases:[`CSS`,`css`],mimetypes:[`text/css`],loader:()=>e(()=>import(`./css-DIMkf-bt.js`),[])}),T({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>e(()=>import(`./graphql-fmXr3nnJ.js`),[])}),T({id:`html`,extensions:[`.html`,`.htm`,`.shtml`,`.xhtml`,`.mdoc`,`.jsp`,`.asp`,`.aspx`,`.jshtm`],aliases:[`HTML`,`htm`,`html`,`xhtml`],mimetypes:[`text/html`,`text/x-jshtm`,`text/template`,`text/ng-template`],loader:()=>e(()=>import(`./html-DmSSmgE8.js`),__vite__mapDeps([10,1,2,3,4]))}),T({id:`javascript`,extensions:[`.js`,`.es6`,`.jsx`,`.mjs`,`.cjs`],firstLine:`^#!.*\\bnode`,filenames:[`jakefile`],aliases:[`JavaScript`,`javascript`,`js`],mimetypes:[`text/javascript`],loader:()=>e(()=>import(`./javascript-CGzSV8Sd.js`),__vite__mapDeps([11,12,1,2,3,4]))}),T({id:`markdown`,extensions:[`.md`,`.markdown`,`.mdown`,`.mkdn`,`.mkd`,`.mdwn`,`.mdtxt`,`.mdtext`],aliases:[`Markdown`,`markdown`],loader:()=>e(()=>import(`./markdown-Cimd5fb3.js`),[])}),T({id:`typescript`,extensions:[`.ts`,`.tsx`,`.cts`,`.mts`],aliases:[`TypeScript`,`ts`,`typescript`],mimetypes:[`text/typescript`],loader:()=>e(()=>import(`./typescript-Dtnury3t.js`),__vite__mapDeps([12,1,2,3,4]))}),T({id:`xml`,extensions:[`.xml`,`.xsd`,`.dtd`,`.ascx`,`.csproj`,`.config`,`.props`,`.targets`,`.wxi`,`.wxl`,`.wxs`,`.xaml`,`.svg`,`.svgz`,`.opf`,`.xslt`,`.xsl`],firstLine:`(\\<\\?xml.*)|(\\<svg)|(\\<\\!doctype\\s+svg)`,aliases:[`XML`,`xml`],mimetypes:[`text/xml`,`application/xml`,`application/xaml+xml`,`application/xml-dtd`],loader:()=>e(()=>import(`./xml-D41zWqPl.js`),__vite__mapDeps([13,1,2,3,4]))}),T({id:`yaml`,extensions:[`.yaml`,`.yml`],aliases:[`YAML`,`yaml`,`YML`,`yml`],mimetypes:[`application/x-yaml`,`text/x-yaml`],loader:()=>e(()=>import(`./yaml-BFQ3mF1U.js`),__vite__mapDeps([14,1,2,3,4]))});function E(e){return new Worker(`/assets/editor.worker-DwcOiOeP.js`,{type:`module`,name:e?.name})}function D(e){return new Worker(`/assets/css.worker-BD9HbRGW.js`,{type:`module`,name:e?.name})}function O(e){return new Worker(`/assets/html.worker-DsMmVtuG.js`,{type:`module`,name:e?.name})}function k(e){return new Worker(`/assets/json.worker-fO_hOLCP.js`,{type:`module`,name:e?.name})}function A(e){return new Worker(`/assets/ts.worker-DpaaFKhy.js`,{type:`module`,name:e?.name})}function j(e){return new Worker(`/assets/yaml.worker-Iyy2Pf1T.js`,{type:`module`,name:e?.name})}var M=globalThis;function N(e){switch(e){case`json`:return new k;case`css`:case`scss`:case`less`:return new D;case`html`:case`handlebars`:case`razor`:return new O;case`typescript`:case`javascript`:return new A;case`yaml`:return new j;default:return new E}}M.MonacoEnvironment={getWorker(e,t){let r=N(t);return r.addEventListener(`error`,()=>n()),r}},t(i),r.config({monaco:o});
@@ -1,4 +1,4 @@
1
- import{a as e,r as t,t as n}from"./rolldown-runtime-B0Z9INg1.js";import{D as r}from"./vendor-core-CddkYGh5.js";import{n as i,t as a}from"./button-DfBmT4rc.js";import{D as o,H as s,K as c,L as l,O as u,R as d,j as f,q as p,z as m}from"./vendor-tanstack-FsM5XZNE.js";import{a as h}from"./vendor-datadog-XDrpA25D.js";import{n as g,r as _}from"./vendor-react-BhazFIp8.js";import{Rt as v,a as y,i as b,n as x,r as S,t as C}from"./vendor-ui-BLIveqaL.js";import{a as w,i as T,n as E,r as D,t as O}from"./card-ByrPS_wa.js";import{t as k}from"./createLucideIcon-BMkDbMrz.js";import{c as A,f as j,g as M,h as N,i as ee,l as te,n as ne,o as re,p as ie,s as ae,t as oe,u as se}from"./select-CKgJgpkn.js";import{r as ce,t as le}from"./x-D39AGKMb.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./tabs-Dd_ElZ36.js";import{t as he}from"./errorText-NpBmvk9I.js";import{o as ge,r as _e}from"./pollUnlessForbidden-DIDXGBc5.js";import{$n as ve,B as ye,Bt as be,Et as xe,Ht as Se,It as Ce,a as we,hn as Te,i as Ee,mn as De,n as Oe,o as ke,pn as Ae,r as je,s as Me}from"./index-DF1fSnXV.js";import{_ as Ne,a as Pe,c as Fe,f as Ie,h as Le,i as Re,l as ze,m as Be,n as Ve,o as He,p as Ue,r as We,s as Ge,t as Ke,u as qe}from"./linear-DwB_ruUT.js";import{n as Je,t as Ye}from"./ordinal-CPleeUAT.js";import{C as Xe,D as Ze,E as Qe,O as $e,_ as et,a as tt,i as nt,l as rt,n as it,o as at,s as ot,t as st,w as ct,x as lt,y as ut}from"./time-D55sDum-.js";import{n as dt,t as ft}from"./band-DZ4Jagyz.js";import{n as pt,t as mt}from"./path-fybaL0A-.js";import{r as ht,t as gt}from"./defaultLocale-BFoDCU3G.js";import{n as _t,t as vt}from"./init-ZlXS9mIS.js";import{a as yt,d as bt,f as xt,p as St,u as Ct}from"./math-Bi_r_ZWc.js";import{t as wt}from"./array-BifhSqXX.js";import{$ as Tt,A as Et,B as Dt,C as Ot,D as kt,E as At,F as jt,G as Mt,H as Nt,I as Pt,J as Ft,K as It,L as Lt,M as Rt,N as zt,O as Bt,P as Vt,Q as Ht,R as Ut,S as Wt,T as Gt,U as Kt,V as qt,W as Jt,X as Yt,_ as Xt,a as Zt,b as Qt,c as $t,et as en,f as tn,g as nn,h as rn,i as an,j as on,k as sn,l as cn,m as ln,p as un,q as dn,r as fn,s as pn,t as mn,u as hn,v as gn,w as _n,x as vn,y as yn,z as bn}from"./isArrayLikeObject-BHDnhloL.js";import{n as xn,r as Sn,t as Cn}from"./line-Bom3IjHi.js";import{a as wn,c as Tn,d as En,i as P,l as Dn,r as On,s as kn,t as An,u as jn}from"./react-redux-Ds7wf7Ax.js";import{r as Mn,t as Nn}from"./getAnalytics-rTxZLIM5.js";var Pn=k(`clipboard-copy`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2`,key:`4jdomd`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v4`,key:`3hqy98`}],[`path`,{d:`M21 14H11`,key:`1bme5i`}],[`path`,{d:`m15 10-4 4 4 4`,key:`5dvupr`}]]),Fn=k(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),In=k(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Ln=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function Rn(e=Ne){if(e===Ne)return zn;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function zn(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function Bn(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?zn:Rn(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));Bn(e,t,u,d,i)}let a=e[t],o=n,s=r;for(Vn(e,n,t),i(e[r],a)>0&&Vn(e,n,r);o<s;){for(Vn(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?Vn(e,n,s):(++s,Vn(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Vn(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Hn(e,t,n){if(e=Float64Array.from(Le(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Ze(e);if(t>=1)return $e(e);var r,i=(r-1)*t,a=Math.floor(i),o=$e(Bn(e,a).subarray(0,a+1));return o+(Ze(e.subarray(a+1))-o)*(i-a)}}function Un(e,t,n=Be){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function Wn(e,t){t===void 0&&(t=e,e=qe);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function Gn(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,Fe),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Gn(e).unknown(t)},e=arguments.length?Array.from(e,Fe):[0,1],Ve(n)}function Kn(e){return Math.log(e)}function qn(e){return Math.exp(e)}function Jn(e){return-Math.log(-e)}function Yn(e){return-Math.exp(-e)}function Xn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function Zn(e){return e===10?Xn:e===Math.E?Math.exp:t=>e**+t}function Qn(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function $n(e){return(t,n)=>-e(-t,n)}function er(e){let t=e(Kn,qn),n=t.domain,r=10,i,a;function o(){return i=Qn(r),a=Zn(r),n()[0]<0?(i=$n(i),a=$n(a),e(Jn,Yn)):e(Kn,qn),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=Ie(o,s,p))}else m=Ie(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=ht(n)).precision==null&&(n.trim=!0),n=gt(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(Qe(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function tr(){let e=er(Ge()).domain([1,10]);return e.copy=()=>Pe(e,tr()).base(e.base()),_t.apply(e,arguments),e}function nr(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function rr(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function ir(e){var t=1,n=e(nr(t),rr(t));return n.constant=function(n){return arguments.length?e(nr(t=+n),rr(t)):t},Ve(n)}function ar(){var e=ir(Ge());return e.copy=function(){return Pe(e,ar()).constant(e.constant())},_t.apply(e,arguments)}function or(e){return function(t){return t<0?-((-t)**+e):t**+e}}function sr(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function cr(e){return e<0?-e*e:e*e}function lr(e){var t=e(He,He),n=1;function r(){return n===1?e(He,He):n===.5?e(sr,cr):e(or(n),or(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},Ve(t)}function ur(){var e=lr(Ge());return e.copy=function(){return Pe(e,ur()).exponent(e.exponent())},_t.apply(e,arguments),e}function dr(){return ur.apply(null,arguments).exponent(.5)}function fr(e){return Math.sign(e)*e*e}function pr(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function mr(){var e=Re(),t=[0,1],n=!1,r;function i(t){var i=pr(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(fr(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,Fe)).map(fr)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return mr(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},_t.apply(i,arguments),Ve(i)}function hr(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=Un(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[Ue(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(Ne),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return hr().domain(e).range(t).unknown(r)},_t.apply(a,arguments)}function gr(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[Ue(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return gr().domain([e,t]).range(i).unknown(a)},_t.apply(Ve(o),arguments)}function _r(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Ue(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return _r().domain(e).range(t).unknown(n)},_t.apply(i,arguments)}function vr(){return _t.apply(st(at,tt,ot,rt,et,ut,lt,Xe,ct,nt).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function yr(){var e=0,t=1,n,r,i,a,o=He,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(qe),l.rangeRound=u(ze),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function br(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function xr(){var e=Ve(yr()(He));return e.copy=function(){return br(e,xr())},vt.apply(e,arguments)}function Sr(){var e=er(yr()).domain([1,10]);return e.copy=function(){return br(e,Sr()).base(e.base())},vt.apply(e,arguments)}function Cr(){var e=ir(yr());return e.copy=function(){return br(e,Cr()).constant(e.constant())},vt.apply(e,arguments)}function wr(){var e=lr(yr());return e.copy=function(){return br(e,wr()).exponent(e.exponent())},vt.apply(e,arguments)}function Tr(){return wr.apply(null,arguments).exponent(.5)}function Er(){var e=[],t=He;function n(n){if(n!=null&&!isNaN(n=+n))return t((Ue(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(Ne),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>Hn(e,r/t))},n.copy=function(){return Er(t).domain(e)},vt.apply(n,arguments)}function Dr(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=He,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=Wn(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(qe),p.rangeRound=m(ze),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function Or(){var e=Ve(Dr()(He));return e.copy=function(){return br(e,Or())},vt.apply(e,arguments)}function kr(){var e=er(Dr()).domain([.1,1,10]);return e.copy=function(){return br(e,kr()).base(e.base())},vt.apply(e,arguments)}function Ar(){var e=ir(Dr());return e.copy=function(){return br(e,Ar()).constant(e.constant())},vt.apply(e,arguments)}function jr(){var e=lr(Dr());return e.copy=function(){return br(e,jr()).exponent(e.exponent())},vt.apply(e,arguments)}function Mr(){return jr.apply(null,arguments).exponent(.5)}function Nr(e,t,n){var r=null,i=pt(!0),a=null,o=en,s=null,c=mt(l);e=typeof e==`function`?e:e===void 0?xn:pt(+e),t=typeof t==`function`?t:pt(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?Sn:pt(+n);function l(l){var u,d,f,p=(l=wt(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Cn().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:pt(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:pt(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:pt(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:pt(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:pt(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:pt(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:pt(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var Pr={draw(e,t){let n=xt(t/Ct);e.moveTo(n,0),e.arc(0,0,n,0,St)}},Fr={draw(e,t){let n=xt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Ir=xt(1/3),Lr=Ir*2,Rr={draw(e,t){let n=xt(t/Lr),r=n*Ir;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},zr={draw(e,t){let n=xt(t),r=-n/2;e.rect(r,r,n,n)}},Br=.8908130915292852,Vr=bt(Ct/10)/bt(7*Ct/10),Hr=bt(St/10)*Vr,Ur=-yt(St/10)*Vr,Wr={draw(e,t){let n=xt(t*Br),r=Hr*n,i=Ur*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=St*t/5,o=yt(a),s=bt(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},Gr=xt(3),Kr={draw(e,t){let n=-xt(t/(Gr*3));e.moveTo(0,n*2),e.lineTo(-Gr*n,-n),e.lineTo(Gr*n,-n),e.closePath()}},qr=-.5,Jr=xt(3)/2,Yr=1/xt(12),Xr=(Yr/2+1)*3,Zr={draw(e,t){let n=xt(t/Xr),r=n/2,i=n*Yr,a=r,o=n*Yr+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(qr*r-Jr*i,Jr*r+qr*i),e.lineTo(qr*a-Jr*o,Jr*a+qr*o),e.lineTo(qr*s-Jr*c,Jr*s+qr*c),e.lineTo(qr*r+Jr*i,qr*i-Jr*r),e.lineTo(qr*a+Jr*o,qr*o-Jr*a),e.lineTo(qr*s+Jr*c,qr*c-Jr*s),e.closePath()}};function Qr(e,t){let n=null,r=mt(i);e=typeof e==`function`?e:pt(e||Pr),t=typeof t==`function`?t:pt(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:pt(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:pt(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function $r(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function ei(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function ti(e,t){return e[t]}function ni(e){let t=[];return t.key=e,t}function ri(){var e=pt([]),t=ei,n=$r,r=ti;function i(i){var a=Array.from(e.apply(this,arguments),ni),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=wt(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:pt(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:pt(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?ei:typeof e==`function`?e:pt(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??$r,i):n},i}function ii(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}$r(e,t)}}function ai(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}$r(e,t)}}function oi(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,$r(e,t)}}function si(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function ci(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:Object.prototype.toString.call(e)===`[object Object]`}function li(e,t,n){return ui(e,t,void 0,void 0,void 0,void 0,n)}function ui(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return di(e,t,a,o)}return di(e,t,a,o)}function di(e,t,n,r){if(Object.is(e,t))return!0;let i=Lt(e),a=Lt(t);if(i===`[object Arguments]`&&(i=Bt),a===`[object Arguments]`&&(a=Bt),i!==a)return!1;switch(i){case on:return e.toString()===t.toString();case kt:return si(e.valueOf(),t.valueOf());case nn:case gn:case Rt:return Object.is(e.valueOf(),t.valueOf());case sn:return e.source===t.source&&e.flags===t.flags;case Wt:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case At:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!ui(a,t.get(i),i,e,t,n,r))return!1;return!0;case Et:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>ui(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case un:case jt:case Pt:case zt:case Vt:case rn:case Gt:case Ot:case _n:case ln:case Qt:case vn:if(hn(e)!==hn(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!ui(e[i],t[i],i,e,t,n,r))return!1;return!0;case tn:return e.byteLength===t.byteLength&&di(new Uint8Array(e),new Uint8Array(t),n,r);case Xt:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:di(new Uint8Array(e),new Uint8Array(t),n,r);case yn:return e.name===t.name&&e.message===t.message;case Bt:{if(!(di(e.constructor,t.constructor,n,r)||ci(e)&&ci(t)))return!1;let i=[...Object.keys(e),...Ut(e)],a=[...Object.keys(t),...Ut(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!ui(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function fi(e,t){return li(e,t,bn)}function pi(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function mi(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(mi).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function hi(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function gi(e){if(Array.isArray(e))return e.map(hi);if(typeof e==`symbol`)return[e];e=mi(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let s=e[r];if(a)s===`\\`&&r+1<n?(r++,i+=e[r]):s===a?a=``:i+=s;else if(o)s===`"`||s===`'`?a=s:s===`]`?(o=!1,t.push(i),i=``):i+=s;else if(s===`[`)o=!0,i&&=(t.push(i),``);else if(s===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=s;r++}return i&&t.push(i),t}var _i=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function vi(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:_i.test(e);default:return!1}}function yi(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if($t(t))return n;let r=e[t];return r===void 0?vi(t)&&!Object.hasOwn(e,t)?yi(e,gi(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=hi(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return bi(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),$t(t))return n;let r=e[t];return r===void 0?n:r}}}function bi(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||$t(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}function xi(e){return function(t){return yi(t,e)}}function Si(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function Ci(e,t,n){return typeof n==`function`?wi(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?wi(t,r,e,s,!1):!!c},new Map,!0):Ci(e,t,()=>void 0)}function wi(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Ti(e,t,n,r);case`function`:return Object.keys(t).length>0?wi(e,{...t},n,r,i):si(e,t);default:return Si(e)&&i?typeof t!=`string`||t===``:si(e,t)}}function Ti(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return Di(e,t,n,r);if(t instanceof Map)return Ei(e,t,n,r);if(t instanceof Set)return Oi(e,t,n,r);let i=Object.keys(t);if(e==null||pn(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;a<i.length;a++){let o=i[a];if(!pn(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Ei(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function Di(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Oi(e,t,n,r){return t.size===0||e instanceof Set&&Di([...e],[...t],n,r)}function ki(e,t){return Ci(e,t,()=>void 0)}function Ai(e){return Zt(e,void 0,e,new Map,void 0)}function ji(e){return e=Ai(e),t=>ki(t,e)}var Mi=/^(?:0|[1-9]\d*)$/;function Ni(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Mi.test(e)}}function Pi(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&vi(t)&&!(t in Object(e))?gi(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=n[e];if((r==null||!Object.hasOwn(r,t))&&!((Array.isArray(r)||fn(r))&&Ni(t)&&t<r.length))return!1;r=r[t]}return!0}function Fi(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=hi(e)}return t=an(t),function(n){let r=yi(n,e);return r===void 0?Pi(n,e):t===void 0?r===void 0:ki(r,t)}}function Ii(e){return e}function Li(e){if(e==null)return Ii;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Fi(e[0],e[1]):ji(e);case`string`:case`symbol`:case`number`:return xi(e)}}function Ri(e){return typeof e==`symbol`||e instanceof Symbol}function zi(e){return Ri(e)?NaN:Number(e)}function Bi(e){return e?(e=zi(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Vi(e,t,n){return Si(n)&&(typeof t==`number`&&cn(n)&&Ni(t)&&t<n.length||typeof t==`string`&&t in n)?si(n[t],e):!1}function Hi(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function Ui(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var Wi=(e,t,n)=>{if(e!==t){let r=Ui(e),i=Ui(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},Gi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ki=/^\w*$/;function qi(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||Ri(e)?!0:typeof e==`string`&&(Ki.test(e)||!Gi.test(e))||t!=null&&Object.hasOwn(t,e)}function Ji(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;e<t.length&&n!=null;++e)n=n[t[e]];return n},a=(e,t)=>t==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||qi(e)?e:{key:e,path:gi(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=Wi(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function Yi(e,...t){let n=t.length;return n>1&&Vi(e,t[0],t[1])?t=[]:n>2&&Vi(t[0],t[1],t[2])&&(t=[t[0]]),Ji(e,pi(t),[`asc`])}function Xi(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function Zi(e,t=Ii){return mn(e)?Hi(Array.from(e),Xi(Li(t),1)):[]}function Qi(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function $i(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=Qi(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function ea(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return $i(e,t,{leading:r,maxWait:t,trailing:i})}function ta(e,t,n){n&&typeof n!=`number`&&Vi(e,t,n)&&(t=n=void 0),e=Bi(e),t===void 0?(t=e,e=0):t=Bi(t),n=n===void 0?e<t?1:-1:Bi(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var F=e(h(),1),I=_(),na=`studio:analytics:onboarding-dismissed:v2`;function ra(){let[e,t]=(0,F.useState)(null);return(0,F.useEffect)(()=>{try{t(window.localStorage.getItem(na)===`1`)}catch{t(!0)}},[]),e===!1?(0,I.jsxs)(`div`,{role:`status`,className:`mb-3 flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:[(0,I.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,I.jsx)(`span`,{className:`font-medium text-foreground`,children:`Tip:`}),` Click a legend entry to isolate one node, `,(0,I.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`⌘`}),` / `,(0,I.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`Ctrl`}),`-click to compare a few. In the storage charts, click a bar segment to pin that table's trend. In the replication heatmap, click a cell to see that node pair's latency over time.`]}),(0,I.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{try{window.localStorage.setItem(na,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,I.jsx)(le,{className:`h-4 w-4`})})]}):null}var ia=(0,F.createContext)(null);function aa({value:e,children:t}){let n=(0,F.useMemo)(()=>e,[e.timeRange.startTime,e.timeRange.endTime,e.bucketMs,e.instanceParams.entityId,e.instanceParams.instanceClient,e.syncId]);return(0,I.jsx)(ia.Provider,{value:n,children:t})}function oa(){let e=(0,F.useContext)(ia);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}function sa(){return(0,F.useContext)(ia)?.syncId}function ca(e){let t=sa();return t===void 0?{}:{syncId:e?`${t}:expanded`:t,syncMethod:`value`}}var la=Nn;function ua(e){let t=s(),n=(0,F.useCallback)(t=>Array.isArray(t.queryKey)&&t.queryKey[0]===la&&t.queryKey[1]===e,[e]),r=(0,F.useCallback)(e=>{let r=c.batchCalls(e);return t.getQueryCache().subscribe(e=>{!e?.query||!n(e.query)||r()})},[t,n]),i=(0,F.useCallback)(()=>{for(let e of t.getQueryCache().getAll())if(n(e)&&e.state.fetchStatus===`fetching`)return!0;return!1},[t,n]),a=(0,F.useCallback)(()=>{let e=null;for(let r of t.getQueryCache().getAll())n(r)&&r.state.dataUpdatedAt>0&&(e===null||r.state.dataUpdatedAt>e)&&(e=r.state.dataUpdatedAt);return e},[t,n]),o=(0,F.useSyncExternalStore)(r,i,i),l=(0,F.useSyncExternalStore)(r,a,a),[u,d]=(0,F.useState)(()=>Date.now());return(0,F.useEffect)(()=>{let e=!1,t,n=()=>{if(e)return;d(Date.now());let r=l===null?0:Date.now()-l,i=r<6e4?1e3:r<6e5?5e3:3e4;t=window.setTimeout(n,i)};return t=window.setTimeout(n,1e3),()=>{e=!0,t!==void 0&&window.clearTimeout(t)}},[l]),{isFetching:o,lastFetchedAt:l,now:u}}function da(e,t){if(e===null)return null;let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}function fa({presetId:e}){let t=ke(e);return(0,I.jsxs)(`span`,{className:`flex flex-col items-start leading-tight`,children:[(0,I.jsx)(`span`,{children:t.label}),(0,I.jsxs)(`span`,{className:`text-[11px] font-normal text-muted-foreground`,children:[`by `,we(t.bucketMs)]})]})}function pa({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:r,onManualRefresh:o}){let{instanceParams:s}=oa(),{isFetching:c,lastFetchedAt:l,now:u}=ua(s.entityId),d=da(l,u);return(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[d&&(0,I.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,title:l?new Date(l).toLocaleString():void 0,"aria-label":l?`Last updated ${new Date(l).toLocaleString()}`:void 0,children:[`Updated `,d]}),(0,I.jsxs)(oe,{value:e,onValueChange:e=>t(e),children:[(0,I.jsx)(re,{className:`h-auto min-h-9 w-[180px] py-1`,children:(0,I.jsx)(fa,{presetId:e})}),(0,I.jsx)(ne,{children:Ee.map(e=>(0,I.jsx)(ee,{value:e.id,children:(0,I.jsx)(fa,{presetId:e.id})},e.id))})]}),(0,I.jsxs)(`div`,{role:`group`,"aria-label":`Auto-refresh`,className:`flex items-stretch rounded-md border border-input bg-white shadow-xs dark:bg-grey-700`,children:[(0,I.jsxs)(oe,{value:String(n),onValueChange:e=>r(Number(e)),children:[(0,I.jsx)(re,{"aria-label":`Auto-refresh interval`,title:`Auto-refresh interval`,className:`h-auto min-h-9 w-[96px] rounded-r-none border-0 bg-transparent py-1 shadow-none dark:bg-transparent`,children:(0,I.jsxs)(`span`,{className:`flex flex-col items-start leading-tight`,children:[(0,I.jsx)(`span`,{children:je.find(e=>e.value===n)?.label??`${Math.round(n/1e3)}s`}),(0,I.jsx)(`span`,{className:`text-[11px] font-normal text-muted-foreground`,children:`reload`})]})}),(0,I.jsx)(ne,{children:je.map(e=>(0,I.jsx)(ee,{value:String(e.value),children:e.label},e.value))})]}),(0,I.jsx)(`span`,{"aria-hidden":`true`,className:`my-1.5 w-px shrink-0 bg-border`}),(0,I.jsx)(a,{variant:`ghost`,size:`icon`,onClick:o,disabled:c,"aria-busy":c,"aria-label":c?`Refreshing…`:`Refresh now`,title:c?`Refreshing…`:`Refresh now`,className:`h-auto w-9 rounded-l-none`,children:(0,I.jsx)(ve,{className:i(`h-4 w-4`,c&&`animate-spin`)})})]})]})}var ma=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],ha=18e5;function ga(e){return e?.response?.status??e?.status}function _a(e){let t=ga(e);return t===401||t===403}function va(e){let t=ga(e);return typeof t==`number`&&t>=400&&t<500&&!_a(e)}function ya(e){let t=m({queryKey:[`analytics-capability`,e.entityId],queryFn:async()=>{let t=Date.now(),n=t-3e5,r=null;for(let i of ma)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!va(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!_a(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:ha,gcTime:ha});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&_a(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}var ba=new Set([`time`,`node`]),xa=Object.freeze([]);function Sa({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:o}){let s=Mn({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,bucketMs:o}),c=m({...s,staleTime:1/0,gcTime:6e4,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:p}),l=c.data??xa,{fieldKeys:u,missingFields:d}=(0,F.useMemo)(()=>{let e=new Set;for(let t of l)for(let n of Object.keys(t))ba.has(n)||e.add(n);let t=[];if(a&&l.length>0)for(let n of a)e.has(n)||t.push(n);return{fieldKeys:e,missingFields:t}},[l,a]);return(0,F.useEffect)(()=>{!c.isLoading&&l.length===0&&d.length>0&&console.warn(`[analytics] panel rendered empty with missing fields`,{metric:e,instanceId:i.entityId,missingFields:d})},[l.length,c.isLoading,e,i.entityId,d]),{data:l,isLoading:c.isLoading,isError:c.isError,error:c.error,isEmpty:l.length===0,fieldKeys:u,missingFields:d,isPlaceholderData:c.isPlaceholderData,refetch:c.refetch}}var Ca=[`var(--chart-node-1)`,`var(--chart-node-2)`,`var(--chart-node-3)`,`var(--chart-node-4)`,`var(--chart-node-5)`,`var(--chart-node-6)`,`var(--chart-node-7)`,`var(--chart-node-8)`,`var(--chart-node-9)`,`var(--chart-node-10)`];function wa(e,t){return Ca[[...t].sort().indexOf(e)%Ca.length]}function Ta(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function Ea(e){let t=new Map,n=[...new Set(e)];for(let e=1;n.length>0;e++){let r=new Map;for(let t of n){let n=t.split(`.`).slice(0,e).join(`.`),i=r.get(n);i?i.push(t):r.set(n,[t])}n=[];for(let[i,a]of r){if(a.length===1){t.set(a[0],i);continue}for(let r of a)r.split(`.`).length<=e?t.set(r,r):n.push(r)}}return t}function Da({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){let i=Ea(e);return(0,I.jsxs)(`div`,{role:`group`,"aria-label":r?`Node filter (unavailable on this tab)`:`Node filter`,className:`flex flex-wrap justify-center gap-x-4 gap-y-1 pt-2 text-[11px]`,children:[r&&(0,I.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:`Per-node filter is unavailable on this tab. Buttons remain visible to preserve selection state.`}),e.map(a=>{let o=wa(a,e),s=t(a);return(0,I.jsxs)(`button`,{type:`button`,"aria-pressed":s,"aria-disabled":r?`true`:void 0,title:r?`Per-node filter unavailable on this tab's panels`:a,onClick:e=>{r||n(a,e.ctrlKey||e.metaKey)},className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:r?{color:o,opacity:.5,cursor:`not-allowed`}:{color:o,opacity:s?1:.3},children:[(0,I.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:o}}),(0,I.jsx)(`span`,{children:i.get(a)??a})]},a)})]})}function Oa(e){let[t,n]=(0,F.useState)(null),r=(0,F.useRef)(e);return r.current=e,{isActive:(0,F.useCallback)(e=>t===null||t.has(e),[t]),handleClick:(0,F.useCallback)((e,t)=>{let i=r.current;n(n=>{if(t){if(n===null)return new Set(i.filter(t=>t!==e));let t=new Set(n);if(t.has(e)){if(t.delete(e),t.size===0)return null}else if(t.add(e),t.size===i.length)return null;return t}return n!==null&&n.size===1&&n.has(e)?null:new Set([e])})},[]),activeSet:t}}function ka(e){let{isActive:t,handleClick:n,activeSet:r}=Oa(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function Aa(e,t){let{isActive:n,handleLegendClick:r}=ka(t);return{data:(0,F.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:Ta(e.node),color:wa(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}function ja(e,t,n){let r=(0,F.useRef)([]);(0,F.useEffect)(()=>{r.current=r.current.slice(0,e.length)},[e.length]);let i=t===null?-1:e.indexOf(t),a=i>=0?i:0;function o(t,i){if(t.key===`Enter`||t.key===` `){t.preventDefault(),n(e[i]);return}if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let a=e.length;if(a===0)return;let o=(i+(t.key===`ArrowRight`||t.key===`ArrowDown`?1:-1)+a)%a;r.current[o]?.focus(),n(e[o])}function s(t){return{role:`radio`,"aria-checked":t===i,tabIndex:t===a?0:-1,ref:e=>{r.current[t]=e},onKeyDown:e=>o(e,t),onClick:()=>n(e[t])}}return{getRadioProps:s,selectedIdx:i}}var Ma=`var(--color-text-secondary)`;function Na({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=ja(e,t,n);return e.length===0&&!r?null:(0,I.jsxs)(`div`,{role:`radiogroup`,"aria-label":a,"data-testid":`dimension-chip-row`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[e.map((e,n)=>{let r=e===t,a=i?i(e):Ma;return(0,I.jsxs)(`button`,{type:`button`,...o(n),"data-testid":`dimension-chip`,"data-value":e,title:`Click to select`,className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:r?1:.55},children:[(0,I.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,I.jsx)(`span`,{children:e})]},e)}),r&&(0,I.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`dimension-chip`,"data-value":r,title:`Aggregate of smaller buckets; not selectable.`,className:`inline-flex items-center gap-1.5 cursor-not-allowed border-none bg-transparent p-0`,style:{color:Ma,opacity:.4},children:[(0,I.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:Ma}}),(0,I.jsx)(`span`,{children:r})]})]})}var Pa=`dangerouslySetInnerHTML.onCopy.onCopyCapture.onCut.onCutCapture.onPaste.onPasteCapture.onCompositionEnd.onCompositionEndCapture.onCompositionStart.onCompositionStartCapture.onCompositionUpdate.onCompositionUpdateCapture.onFocus.onFocusCapture.onBlur.onBlurCapture.onChange.onChangeCapture.onBeforeInput.onBeforeInputCapture.onInput.onInputCapture.onReset.onResetCapture.onSubmit.onSubmitCapture.onInvalid.onInvalidCapture.onLoad.onLoadCapture.onError.onErrorCapture.onKeyDown.onKeyDownCapture.onKeyPress.onKeyPressCapture.onKeyUp.onKeyUpCapture.onAbort.onAbortCapture.onCanPlay.onCanPlayCapture.onCanPlayThrough.onCanPlayThroughCapture.onDurationChange.onDurationChangeCapture.onEmptied.onEmptiedCapture.onEncrypted.onEncryptedCapture.onEnded.onEndedCapture.onLoadedData.onLoadedDataCapture.onLoadedMetadata.onLoadedMetadataCapture.onLoadStart.onLoadStartCapture.onPause.onPauseCapture.onPlay.onPlayCapture.onPlaying.onPlayingCapture.onProgress.onProgressCapture.onRateChange.onRateChangeCapture.onSeeked.onSeekedCapture.onSeeking.onSeekingCapture.onStalled.onStalledCapture.onSuspend.onSuspendCapture.onTimeUpdate.onTimeUpdateCapture.onVolumeChange.onVolumeChangeCapture.onWaiting.onWaitingCapture.onAuxClick.onAuxClickCapture.onClick.onClickCapture.onContextMenu.onContextMenuCapture.onDoubleClick.onDoubleClickCapture.onDrag.onDragCapture.onDragEnd.onDragEndCapture.onDragEnter.onDragEnterCapture.onDragExit.onDragExitCapture.onDragLeave.onDragLeaveCapture.onDragOver.onDragOverCapture.onDragStart.onDragStartCapture.onDrop.onDropCapture.onMouseDown.onMouseDownCapture.onMouseEnter.onMouseLeave.onMouseMove.onMouseMoveCapture.onMouseOut.onMouseOutCapture.onMouseOver.onMouseOverCapture.onMouseUp.onMouseUpCapture.onSelect.onSelectCapture.onTouchCancel.onTouchCancelCapture.onTouchEnd.onTouchEndCapture.onTouchMove.onTouchMoveCapture.onTouchStart.onTouchStartCapture.onPointerDown.onPointerDownCapture.onPointerMove.onPointerMoveCapture.onPointerUp.onPointerUpCapture.onPointerCancel.onPointerCancelCapture.onPointerEnter.onPointerEnterCapture.onPointerLeave.onPointerLeaveCapture.onPointerOver.onPointerOverCapture.onPointerOut.onPointerOutCapture.onGotPointerCapture.onGotPointerCaptureCapture.onLostPointerCapture.onLostPointerCaptureCapture.onScroll.onScrollCapture.onWheel.onWheelCapture.onAnimationStart.onAnimationStartCapture.onAnimationEnd.onAnimationEndCapture.onAnimationIteration.onAnimationIterationCapture.onTransitionEnd.onTransitionEndCapture`.split(`.`);function Fa(e){return typeof e==`string`&&Pa.includes(e)}var Ia=new Set(`aria-activedescendant.aria-atomic.aria-autocomplete.aria-busy.aria-checked.aria-colcount.aria-colindex.aria-colspan.aria-controls.aria-current.aria-describedby.aria-details.aria-disabled.aria-errormessage.aria-expanded.aria-flowto.aria-haspopup.aria-hidden.aria-invalid.aria-keyshortcuts.aria-label.aria-labelledby.aria-level.aria-live.aria-modal.aria-multiline.aria-multiselectable.aria-orientation.aria-owns.aria-placeholder.aria-posinset.aria-pressed.aria-readonly.aria-relevant.aria-required.aria-roledescription.aria-rowcount.aria-rowindex.aria-rowspan.aria-selected.aria-setsize.aria-sort.aria-valuemax.aria-valuemin.aria-valuenow.aria-valuetext.className.color.height.id.lang.max.media.method.min.name.style.target.width.role.tabIndex.accentHeight.accumulate.additive.alignmentBaseline.allowReorder.alphabetic.amplitude.arabicForm.ascent.attributeName.attributeType.autoReverse.azimuth.baseFrequency.baselineShift.baseProfile.bbox.begin.bias.by.calcMode.capHeight.clip.clipPath.clipPathUnits.clipRule.colorInterpolation.colorInterpolationFilters.colorProfile.colorRendering.contentScriptType.contentStyleType.cursor.cx.cy.d.decelerate.descent.diffuseConstant.direction.display.divisor.dominantBaseline.dur.dx.dy.edgeMode.elevation.enableBackground.end.exponent.externalResourcesRequired.fill.fillOpacity.fillRule.filter.filterRes.filterUnits.floodColor.floodOpacity.focusable.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.format.from.fx.fy.g1.g2.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.glyphRef.gradientTransform.gradientUnits.hanging.horizAdvX.horizOriginX.href.ideographic.imageRendering.in2.in.intercept.k1.k2.k3.k4.k.kernelMatrix.kernelUnitLength.kerning.keyPoints.keySplines.keyTimes.lengthAdjust.letterSpacing.lightingColor.limitingConeAngle.local.markerEnd.markerHeight.markerMid.markerStart.markerUnits.markerWidth.mask.maskContentUnits.maskUnits.mathematical.mode.numOctaves.offset.opacity.operator.order.orient.orientation.origin.overflow.overlinePosition.overlineThickness.paintOrder.panose1.pathLength.patternContentUnits.patternTransform.patternUnits.pointerEvents.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.r.radius.refX.refY.renderingIntent.repeatCount.repeatDur.requiredExtensions.requiredFeatures.restart.result.rotate.rx.ry.seed.shapeRendering.slope.spacing.specularConstant.specularExponent.speed.spreadMethod.startOffset.stdDeviation.stemh.stemv.stitchTiles.stopColor.stopOpacity.strikethroughPosition.strikethroughThickness.string.stroke.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.strokeMiterlimit.strokeOpacity.strokeWidth.surfaceScale.systemLanguage.tableValues.targetX.targetY.textAnchor.textDecoration.textLength.textRendering.to.transform.u1.u2.underlinePosition.underlineThickness.unicode.unicodeBidi.unicodeRange.unitsPerEm.vAlphabetic.values.vectorEffect.version.vertAdvY.vertOriginX.vertOriginY.vHanging.vIdeographic.viewTarget.visibility.vMathematical.widths.wordSpacing.writingMode.x1.x2.x.xChannelSelector.xHeight.xlinkActuate.xlinkArcrole.xlinkHref.xlinkRole.xlinkShow.xlinkTitle.xlinkType.xmlBase.xmlLang.xmlns.xmlnsXlink.xmlSpace.y1.y2.y.yChannelSelector.z.zoomAndPan.ref.key.angle`.split(`.`));function La(e){return typeof e==`string`&&Ia.has(e)}function Ra(e){return typeof e==`string`&&e.startsWith(`data-`)}function za(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(La(n)||Ra(n))&&(t[n]=e[n]);return t}function Ba(e){if(e==null)return null;if((0,F.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return za(t)}return typeof e==`object`&&!Array.isArray(e)?za(e):null}function Va(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(La(n)||Ra(n)||Fa(n))&&(t[n]=e[n]);return t}function Ha(e){return e==null?null:(0,F.isValidElement)(e)?Va(e.props):typeof e==`object`&&!Array.isArray(e)?Va(e):null}var Ua=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function Wa(){return Wa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wa.apply(null,arguments)}function Ga(e,t){if(e==null)return{};var n,r,i=Ka(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ka(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var qa=(0,F.forwardRef)((e,t)=>{var n=e.children,i=e.width,a=e.height,o=e.viewBox,s=e.className,c=e.style,l=e.title,u=e.desc,d=Ga(e,Ua),f=o||{width:i,height:a,x:0,y:0},p=r(`recharts-surface`,s);return F.createElement(`svg`,Wa({},Va(d),{className:p,width:i,height:a,style:c,viewBox:`${f.x} ${f.y} ${f.width} ${f.height}`,ref:t}),F.createElement(`title`,null,l),F.createElement(`desc`,null,u),n)}),Ja=[`children`,`className`];function Ya(){return Ya=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ya.apply(null,arguments)}function Xa(e,t){if(e==null)return{};var n,r,i=Za(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Za(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Qa=F.forwardRef((e,t)=>{var n=e.children,i=e.className,a=Xa(e,Ja),o=r(`recharts-layer`,i);return F.createElement(`g`,Ya({className:o},Va(a),{ref:t}),n)}),$a=4;function eo(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:$a),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function to(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+eo(i)+n},``)}var no=e=>e===0?0:e>0?1:-1,ro=e=>typeof e==`number`&&e!=+e,io=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,L=e=>(typeof e==`number`||e instanceof Number)&&!ro(e),ao=e=>L(e)||typeof e==`string`,oo=0,so=e=>{var t=++oo;return`${e||``}${t}`},co=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!L(e)&&typeof e!=`string`)return n;var i;if(io(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ro(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},lo=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function R(e,t,n){return L(e)&&L(t)?eo(e+n*(t-e)):t}function uo(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):yi(e,t))===n)}var z=e=>e==null,fo=e=>z(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function po(e){return e!=null}function mo(){}function ho(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function go(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _o(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?go(Object(n),!0).forEach(function(t){vo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):go(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vo(e,t,n){return(t=yo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yo(e){var t=bo(e,`string`);return typeof t==`symbol`?t:t+``}function bo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var xo=e=>{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=ho(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var k={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(k.x-E.x,0),k.height=u),k}if(n===`right`){var A={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(A.width=Math.max(E.x+E.width-A.x,0),A.height=u),A}var j=o&&E?{width:g,height:u}:{};return n===`insideLeft`?_o({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},j):n===`insideRight`?_o({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},j):n===`insideTop`?_o({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},j):n===`insideBottom`?_o({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},j):n===`insideTopLeft`?_o({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},j):n===`insideTopRight`?_o({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},j):n===`insideBottomLeft`?_o({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},j):n===`insideBottomRight`?_o({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},j):n&&typeof n==`object`&&(L(n.x)||io(n.x))&&(L(n.y)||io(n.y))?_o({x:c+co(n.x,g),y:l+co(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},j):_o({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},j)},So=[`top`,`left`,`right`,`bottom`];function Co(e){return e==null?!1:typeof e==`object`||So.includes(e)}var wo=(0,F.createContext)(null),To=()=>(0,F.useContext)(wo),Eo=[`type`,`size`,`sizeType`];function Do(){return Do=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Do.apply(null,arguments)}function Oo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ko(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Oo(Object(n),!0).forEach(function(t){Ao(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Oo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ao(e,t,n){return(t=jo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jo(e){var t=Mo(e,`string`);return typeof t==`symbol`?t:t+``}function Mo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function No(e,t){if(e==null)return{};var n,r,i=Po(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Po(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Fo={symbolCircle:Pr,symbolCross:Fr,symbolDiamond:Rr,symbolSquare:zr,symbolStar:Wr,symbolTriangle:Kr,symbolWye:Zr},Io=Math.PI/180,Lo=e=>Fo[`symbol${fo(e)}`]||Pr,Ro=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*Io;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},zo=(e,t)=>{Fo[`symbol${fo(e)}`]=t},Bo=e=>{var t=e.type,n=t===void 0?`circle`:t,i=e.size,a=i===void 0?64:i,o=e.sizeType,s=o===void 0?`area`:o,c=ko(ko({},No(e,Eo)),{},{type:n,size:a,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=Lo(l),t=Qr().type(e).size(Ro(a,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=Va(c);return L(f)&&L(p)&&L(a)?F.createElement(`path`,Do({},m,{className:r(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};Bo.registerSymbol=zo;var Vo=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,Ho=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,F.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{Fa(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},Uo=(e,t,n)=>r=>(e(t,n,r),null),Wo=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];Fa(i)&&typeof a==`function`&&(r||={},r[i]=Uo(a,t,n))}),r};function Go(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ko(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Go(Object(n),!0).forEach(function(t){qo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Go(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qo(e,t,n){return(t=Jo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jo(e){var t=Yo(e,`string`);return typeof t==`symbol`?t:t+``}function Yo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Xo(e,t){var n=Ko({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function Zo(){return Zo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zo.apply(null,arguments)}function Qo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $o(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Qo(Object(n),!0).forEach(function(t){es(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function es(e,t,n){return(t=ts(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ts(e){var t=ns(e,`string`);return typeof t==`symbol`?t:t+``}function ns(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var rs=32,is={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function as(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function os(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=rs/2,a=rs/6,o=rs/3,s=t.inactive?r:t.color,c=n??t.type;if(c===`none`)return null;if(c===`plainline`)return F.createElement(`line`,{strokeWidth:4,fill:`none`,stroke:s,strokeDasharray:as(t.payload),x1:0,y1:i,x2:rs,y2:i,className:`recharts-legend-icon`});if(c===`line`)return F.createElement(`path`,{strokeWidth:4,fill:`none`,stroke:s,d:`M0,${i}h${o}
1
+ import{a as e,r as t,t as n}from"./rolldown-runtime-B0Z9INg1.js";import{D as r}from"./vendor-core-CddkYGh5.js";import{n as i,t as a}from"./button-DfBmT4rc.js";import{D as o,H as s,K as c,L as l,O as u,R as d,j as f,q as p,z as m}from"./vendor-tanstack-FsM5XZNE.js";import{a as h}from"./vendor-datadog-XDrpA25D.js";import{n as g,r as _}from"./vendor-react-BhazFIp8.js";import{Rt as v,a as y,i as b,n as x,r as S,t as C}from"./vendor-ui-BLIveqaL.js";import{a as w,i as T,n as E,r as D,t as O}from"./card-ByrPS_wa.js";import{t as k}from"./createLucideIcon-BMkDbMrz.js";import{c as A,f as j,g as M,h as N,i as ee,l as te,n as ne,o as re,p as ie,s as ae,t as oe,u as se}from"./select-CKgJgpkn.js";import{r as ce,t as le}from"./x-D39AGKMb.js";import{a as ue,i as de,n as fe,r as pe,t as me}from"./tabs-Dd_ElZ36.js";import{t as he}from"./errorText-NpBmvk9I.js";import{o as ge,r as _e}from"./pollUnlessForbidden-DIDXGBc5.js";import{$n as ve,B as ye,Bt as be,Et as xe,Ht as Se,It as Ce,a as we,hn as Te,i as Ee,mn as De,n as Oe,o as ke,pn as Ae,r as je,s as Me}from"./index-BQB9R8Ug.js";import{_ as Ne,a as Pe,c as Fe,f as Ie,h as Le,i as Re,l as ze,m as Be,n as Ve,o as He,p as Ue,r as We,s as Ge,t as Ke,u as qe}from"./linear-DwB_ruUT.js";import{n as Je,t as Ye}from"./ordinal-CPleeUAT.js";import{C as Xe,D as Ze,E as Qe,O as $e,_ as et,a as tt,i as nt,l as rt,n as it,o as at,s as ot,t as st,w as ct,x as lt,y as ut}from"./time-D55sDum-.js";import{n as dt,t as ft}from"./band-DZ4Jagyz.js";import{n as pt,t as mt}from"./path-fybaL0A-.js";import{r as ht,t as gt}from"./defaultLocale-BFoDCU3G.js";import{n as _t,t as vt}from"./init-ZlXS9mIS.js";import{a as yt,d as bt,f as xt,p as St,u as Ct}from"./math-Bi_r_ZWc.js";import{t as wt}from"./array-BifhSqXX.js";import{$ as Tt,A as Et,B as Dt,C as Ot,D as kt,E as At,F as jt,G as Mt,H as Nt,I as Pt,J as Ft,K as It,L as Lt,M as Rt,N as zt,O as Bt,P as Vt,Q as Ht,R as Ut,S as Wt,T as Gt,U as Kt,V as qt,W as Jt,X as Yt,_ as Xt,a as Zt,b as Qt,c as $t,et as en,f as tn,g as nn,h as rn,i as an,j as on,k as sn,l as cn,m as ln,p as un,q as dn,r as fn,s as pn,t as mn,u as hn,v as gn,w as _n,x as vn,y as yn,z as bn}from"./isArrayLikeObject-BHDnhloL.js";import{n as xn,r as Sn,t as Cn}from"./line-Bom3IjHi.js";import{a as wn,c as Tn,d as En,i as P,l as Dn,r as On,s as kn,t as An,u as jn}from"./react-redux-Ds7wf7Ax.js";import{r as Mn,t as Nn}from"./getAnalytics-rTxZLIM5.js";var Pn=k(`clipboard-copy`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M8 4H6a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2`,key:`4jdomd`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v4`,key:`3hqy98`}],[`path`,{d:`M21 14H11`,key:`1bme5i`}],[`path`,{d:`m15 10-4 4 4 4`,key:`5dvupr`}]]),Fn=k(`file-spreadsheet`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M8 13h2`,key:`yr2amv`}],[`path`,{d:`M14 13h2`,key:`un5t4a`}],[`path`,{d:`M8 17h2`,key:`2yhykz`}],[`path`,{d:`M14 17h2`,key:`10kma7`}]]),In=k(`maximize-2`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`m21 3-7 7`,key:`1l2asr`}],[`path`,{d:`m3 21 7-7`,key:`tjx5ai`}],[`path`,{d:`M9 21H3v-6`,key:`wtvkvv`}]]),Ln=k(`minus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]);function Rn(e=Ne){if(e===Ne)return zn;if(typeof e!=`function`)throw TypeError(`compare is not a function`);return(t,n)=>{let r=e(t,n);return r||r===0?r:(e(n,n)===0)-(e(t,t)===0)}}function zn(e,t){return(e==null||!(e>=e))-(t==null||!(t>=t))||(e<t?-1:+(e>t))}function Bn(e,t,n=0,r=1/0,i){if(t=Math.floor(t),n=Math.floor(Math.max(0,n)),r=Math.floor(Math.min(e.length-1,r)),!(n<=t&&t<=r))return e;for(i=i===void 0?zn:Rn(i);r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));Bn(e,t,u,d,i)}let a=e[t],o=n,s=r;for(Vn(e,n,t),i(e[r],a)>0&&Vn(e,n,r);o<s;){for(Vn(e,o,s),++o,--s;i(e[o],a)<0;)++o;for(;i(e[s],a)>0;)--s}i(e[n],a)===0?Vn(e,n,s):(++s,Vn(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}return e}function Vn(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Hn(e,t,n){if(e=Float64Array.from(Le(e,n)),!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return Ze(e);if(t>=1)return $e(e);var r,i=(r-1)*t,a=Math.floor(i),o=$e(Bn(e,a).subarray(0,a+1));return o+(Ze(e.subarray(a+1))-o)*(i-a)}}function Un(e,t,n=Be){if(!(!(r=e.length)||isNaN(t=+t))){if(t<=0||r<2)return+n(e[0],0,e);if(t>=1)return+n(e[r-1],r-1,e);var r,i=(r-1)*t,a=Math.floor(i),o=+n(e[a],a,e);return o+(+n(e[a+1],a+1,e)-o)*(i-a)}}function Wn(e,t){t===void 0&&(t=e,e=qe);for(var n=0,r=t.length-1,i=t[0],a=Array(r<0?0:r);n<r;)a[n]=e(i,i=t[++n]);return function(e){var t=Math.max(0,Math.min(r-1,Math.floor(e*=r)));return a[t](e-t)}}function Gn(e){var t;function n(e){return e==null||isNaN(e=+e)?t:e}return n.invert=n,n.domain=n.range=function(t){return arguments.length?(e=Array.from(t,Fe),n):e.slice()},n.unknown=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return Gn(e).unknown(t)},e=arguments.length?Array.from(e,Fe):[0,1],Ve(n)}function Kn(e){return Math.log(e)}function qn(e){return Math.exp(e)}function Jn(e){return-Math.log(-e)}function Yn(e){return-Math.exp(-e)}function Xn(e){return isFinite(e)?+(`1e`+e):e<0?0:e}function Zn(e){return e===10?Xn:e===Math.E?Math.exp:t=>e**+t}function Qn(e){return e===Math.E?Math.log:e===10&&Math.log10||e===2&&Math.log2||(e=Math.log(e),t=>Math.log(t)/e)}function $n(e){return(t,n)=>-e(-t,n)}function er(e){let t=e(Kn,qn),n=t.domain,r=10,i,a;function o(){return i=Qn(r),a=Zn(r),n()[0]<0?(i=$n(i),a=$n(a),e(Jn,Yn)):e(Kn,qn),t}return t.base=function(e){return arguments.length?(r=+e,o()):r},t.domain=function(e){return arguments.length?(n(e),o()):n()},t.ticks=e=>{let t=n(),o=t[0],s=t[t.length-1],c=s<o;c&&([o,s]=[s,o]);let l=i(o),u=i(s),d,f,p=e==null?10:+e,m=[];if(!(r%1)&&u-l<p){if(l=Math.floor(l),u=Math.ceil(u),o>0){for(;l<=u;++l)for(d=1;d<r;++d)if(f=l<0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}}else for(;l<=u;++l)for(d=r-1;d>=1;--d)if(f=l>0?d/a(-l):d*a(l),!(f<o)){if(f>s)break;m.push(f)}m.length*2<p&&(m=Ie(o,s,p))}else m=Ie(l,u,Math.min(u-l,p)).map(a);return c?m.reverse():m},t.tickFormat=(e,n)=>{if(e??=10,n??=r===10?`s`:`,`,typeof n!=`function`&&(!(r%1)&&(n=ht(n)).precision==null&&(n.trim=!0),n=gt(n)),e===1/0)return n;let o=Math.max(1,r*e/t.ticks().length);return e=>{let t=e/a(Math.round(i(e)));return t*r<r-.5&&(t*=r),t<=o?n(e):``}},t.nice=()=>n(Qe(n(),{floor:e=>a(Math.floor(i(e))),ceil:e=>a(Math.ceil(i(e)))})),t}function tr(){let e=er(Ge()).domain([1,10]);return e.copy=()=>Pe(e,tr()).base(e.base()),_t.apply(e,arguments),e}function nr(e){return function(t){return Math.sign(t)*Math.log1p(Math.abs(t/e))}}function rr(e){return function(t){return Math.sign(t)*Math.expm1(Math.abs(t))*e}}function ir(e){var t=1,n=e(nr(t),rr(t));return n.constant=function(n){return arguments.length?e(nr(t=+n),rr(t)):t},Ve(n)}function ar(){var e=ir(Ge());return e.copy=function(){return Pe(e,ar()).constant(e.constant())},_t.apply(e,arguments)}function or(e){return function(t){return t<0?-((-t)**+e):t**+e}}function sr(e){return e<0?-Math.sqrt(-e):Math.sqrt(e)}function cr(e){return e<0?-e*e:e*e}function lr(e){var t=e(He,He),n=1;function r(){return n===1?e(He,He):n===.5?e(sr,cr):e(or(n),or(1/n))}return t.exponent=function(e){return arguments.length?(n=+e,r()):n},Ve(t)}function ur(){var e=lr(Ge());return e.copy=function(){return Pe(e,ur()).exponent(e.exponent())},_t.apply(e,arguments),e}function dr(){return ur.apply(null,arguments).exponent(.5)}function fr(e){return Math.sign(e)*e*e}function pr(e){return Math.sign(e)*Math.sqrt(Math.abs(e))}function mr(){var e=Re(),t=[0,1],n=!1,r;function i(t){var i=pr(e(t));return isNaN(i)?r:n?Math.round(i):i}return i.invert=function(t){return e.invert(fr(t))},i.domain=function(t){return arguments.length?(e.domain(t),i):e.domain()},i.range=function(n){return arguments.length?(e.range((t=Array.from(n,Fe)).map(fr)),i):t.slice()},i.rangeRound=function(e){return i.range(e).round(!0)},i.round=function(e){return arguments.length?(n=!!e,i):n},i.clamp=function(t){return arguments.length?(e.clamp(t),i):e.clamp()},i.unknown=function(e){return arguments.length?(r=e,i):r},i.copy=function(){return mr(e.domain(),t).round(n).clamp(e.clamp()).unknown(r)},_t.apply(i,arguments),Ve(i)}function hr(){var e=[],t=[],n=[],r;function i(){var r=0,i=Math.max(1,t.length);for(n=Array(i-1);++r<i;)n[r-1]=Un(e,r/i);return a}function a(e){return e==null||isNaN(e=+e)?r:t[Ue(n,e)]}return a.invertExtent=function(r){var i=t.indexOf(r);return i<0?[NaN,NaN]:[i>0?n[i-1]:e[0],i<n.length?n[i]:e[e.length-1]]},a.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(Ne),i()},a.range=function(e){return arguments.length?(t=Array.from(e),i()):t.slice()},a.unknown=function(e){return arguments.length?(r=e,a):r},a.quantiles=function(){return n.slice()},a.copy=function(){return hr().domain(e).range(t).unknown(r)},_t.apply(a,arguments)}function gr(){var e=0,t=1,n=1,r=[.5],i=[0,1],a;function o(e){return e!=null&&e<=e?i[Ue(r,e,0,n)]:a}function s(){var i=-1;for(r=Array(n);++i<n;)r[i]=((i+1)*t-(i-n)*e)/(n+1);return o}return o.domain=function(n){return arguments.length?([e,t]=n,e=+e,t=+t,s()):[e,t]},o.range=function(e){return arguments.length?(n=(i=Array.from(e)).length-1,s()):i.slice()},o.invertExtent=function(a){var o=i.indexOf(a);return o<0?[NaN,NaN]:o<1?[e,r[0]]:o>=n?[r[n-1],t]:[r[o-1],r[o]]},o.unknown=function(e){return arguments.length&&(a=e),o},o.thresholds=function(){return r.slice()},o.copy=function(){return gr().domain([e,t]).range(i).unknown(a)},_t.apply(Ve(o),arguments)}function _r(){var e=[.5],t=[0,1],n,r=1;function i(i){return i!=null&&i<=i?t[Ue(e,i,0,r)]:n}return i.domain=function(n){return arguments.length?(e=Array.from(n),r=Math.min(e.length,t.length-1),i):e.slice()},i.range=function(n){return arguments.length?(t=Array.from(n),r=Math.min(e.length,t.length-1),i):t.slice()},i.invertExtent=function(n){var r=t.indexOf(n);return[e[r-1],e[r]]},i.unknown=function(e){return arguments.length?(n=e,i):n},i.copy=function(){return _r().domain(e).range(t).unknown(n)},_t.apply(i,arguments)}function vr(){return _t.apply(st(at,tt,ot,rt,et,ut,lt,Xe,ct,nt).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)}function yr(){var e=0,t=1,n,r,i,a,o=He,s=!1,c;function l(e){return e==null||isNaN(e=+e)?c:o(i===0?.5:(e=(a(e)-n)*i,s?Math.max(0,Math.min(1,e)):e))}l.domain=function(o){return arguments.length?([e,t]=o,n=a(e=+e),r=a(t=+t),i=n===r?0:1/(r-n),l):[e,t]},l.clamp=function(e){return arguments.length?(s=!!e,l):s},l.interpolator=function(e){return arguments.length?(o=e,l):o};function u(e){return function(t){var n,r;return arguments.length?([n,r]=t,o=e(n,r),l):[o(0),o(1)]}}return l.range=u(qe),l.rangeRound=u(ze),l.unknown=function(e){return arguments.length?(c=e,l):c},function(o){return a=o,n=o(e),r=o(t),i=n===r?0:1/(r-n),l}}function br(e,t){return t.domain(e.domain()).interpolator(e.interpolator()).clamp(e.clamp()).unknown(e.unknown())}function xr(){var e=Ve(yr()(He));return e.copy=function(){return br(e,xr())},vt.apply(e,arguments)}function Sr(){var e=er(yr()).domain([1,10]);return e.copy=function(){return br(e,Sr()).base(e.base())},vt.apply(e,arguments)}function Cr(){var e=ir(yr());return e.copy=function(){return br(e,Cr()).constant(e.constant())},vt.apply(e,arguments)}function wr(){var e=lr(yr());return e.copy=function(){return br(e,wr()).exponent(e.exponent())},vt.apply(e,arguments)}function Tr(){return wr.apply(null,arguments).exponent(.5)}function Er(){var e=[],t=He;function n(n){if(n!=null&&!isNaN(n=+n))return t((Ue(e,n,1)-1)/(e.length-1))}return n.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)n!=null&&!isNaN(n=+n)&&e.push(n);return e.sort(Ne),n},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.range=function(){return e.map((n,r)=>t(r/(e.length-1)))},n.quantiles=function(t){return Array.from({length:t+1},(n,r)=>Hn(e,r/t))},n.copy=function(){return Er(t).domain(e)},vt.apply(n,arguments)}function Dr(){var e=0,t=.5,n=1,r=1,i,a,o,s,c,l=He,u,d=!1,f;function p(e){return isNaN(e=+e)?f:(e=.5+((e=+u(e))-a)*(r*e<r*a?s:c),l(d?Math.max(0,Math.min(1,e)):e))}p.domain=function(l){return arguments.length?([e,t,n]=l,i=u(e=+e),a=u(t=+t),o=u(n=+n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p):[e,t,n]},p.clamp=function(e){return arguments.length?(d=!!e,p):d},p.interpolator=function(e){return arguments.length?(l=e,p):l};function m(e){return function(t){var n,r,i;return arguments.length?([n,r,i]=t,l=Wn(e,[n,r,i]),p):[l(0),l(.5),l(1)]}}return p.range=m(qe),p.rangeRound=m(ze),p.unknown=function(e){return arguments.length?(f=e,p):f},function(l){return u=l,i=l(e),a=l(t),o=l(n),s=i===a?0:.5/(a-i),c=a===o?0:.5/(o-a),r=a<i?-1:1,p}}function Or(){var e=Ve(Dr()(He));return e.copy=function(){return br(e,Or())},vt.apply(e,arguments)}function kr(){var e=er(Dr()).domain([.1,1,10]);return e.copy=function(){return br(e,kr()).base(e.base())},vt.apply(e,arguments)}function Ar(){var e=ir(Dr());return e.copy=function(){return br(e,Ar()).constant(e.constant())},vt.apply(e,arguments)}function jr(){var e=lr(Dr());return e.copy=function(){return br(e,jr()).exponent(e.exponent())},vt.apply(e,arguments)}function Mr(){return jr.apply(null,arguments).exponent(.5)}function Nr(e,t,n){var r=null,i=pt(!0),a=null,o=en,s=null,c=mt(l);e=typeof e==`function`?e:e===void 0?xn:pt(+e),t=typeof t==`function`?t:pt(t===void 0?0:+t),n=typeof n==`function`?n:n===void 0?Sn:pt(+n);function l(l){var u,d,f,p=(l=wt(l)).length,m,h=!1,g,_=Array(p),v=Array(p);for(a??(s=o(g=c())),u=0;u<=p;++u){if(!(u<p&&i(m=l[u],u,l))===h){if(h=!h)d=u,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),f=u-1;f>=d;--f)s.point(_[f],v[f]);s.lineEnd(),s.areaEnd()}}h&&(_[u]=+e(m,u,l),v[u]=+t(m,u,l),s.point(r?+r(m,u,l):_[u],n?+n(m,u,l):v[u]))}if(g)return s=null,g+``||null}function u(){return Cn().defined(i).curve(o).context(a)}return l.x=function(t){return arguments.length?(e=typeof t==`function`?t:pt(+t),r=null,l):e},l.x0=function(t){return arguments.length?(e=typeof t==`function`?t:pt(+t),l):e},l.x1=function(e){return arguments.length?(r=e==null?null:typeof e==`function`?e:pt(+e),l):r},l.y=function(e){return arguments.length?(t=typeof e==`function`?e:pt(+e),n=null,l):t},l.y0=function(e){return arguments.length?(t=typeof e==`function`?e:pt(+e),l):t},l.y1=function(e){return arguments.length?(n=e==null?null:typeof e==`function`?e:pt(+e),l):n},l.lineX0=l.lineY0=function(){return u().x(e).y(t)},l.lineY1=function(){return u().x(e).y(n)},l.lineX1=function(){return u().x(r).y(t)},l.defined=function(e){return arguments.length?(i=typeof e==`function`?e:pt(!!e),l):i},l.curve=function(e){return arguments.length?(o=e,a!=null&&(s=o(a)),l):o},l.context=function(e){return arguments.length?(e==null?a=s=null:s=o(a=e),l):a},l}var Pr={draw(e,t){let n=xt(t/Ct);e.moveTo(n,0),e.arc(0,0,n,0,St)}},Fr={draw(e,t){let n=xt(t/5)/2;e.moveTo(-3*n,-n),e.lineTo(-n,-n),e.lineTo(-n,-3*n),e.lineTo(n,-3*n),e.lineTo(n,-n),e.lineTo(3*n,-n),e.lineTo(3*n,n),e.lineTo(n,n),e.lineTo(n,3*n),e.lineTo(-n,3*n),e.lineTo(-n,n),e.lineTo(-3*n,n),e.closePath()}},Ir=xt(1/3),Lr=Ir*2,Rr={draw(e,t){let n=xt(t/Lr),r=n*Ir;e.moveTo(0,-n),e.lineTo(r,0),e.lineTo(0,n),e.lineTo(-r,0),e.closePath()}},zr={draw(e,t){let n=xt(t),r=-n/2;e.rect(r,r,n,n)}},Br=.8908130915292852,Vr=bt(Ct/10)/bt(7*Ct/10),Hr=bt(St/10)*Vr,Ur=-yt(St/10)*Vr,Wr={draw(e,t){let n=xt(t*Br),r=Hr*n,i=Ur*n;e.moveTo(0,-n),e.lineTo(r,i);for(let t=1;t<5;++t){let a=St*t/5,o=yt(a),s=bt(a);e.lineTo(s*n,-o*n),e.lineTo(o*r-s*i,s*r+o*i)}e.closePath()}},Gr=xt(3),Kr={draw(e,t){let n=-xt(t/(Gr*3));e.moveTo(0,n*2),e.lineTo(-Gr*n,-n),e.lineTo(Gr*n,-n),e.closePath()}},qr=-.5,Jr=xt(3)/2,Yr=1/xt(12),Xr=(Yr/2+1)*3,Zr={draw(e,t){let n=xt(t/Xr),r=n/2,i=n*Yr,a=r,o=n*Yr+n,s=-a,c=o;e.moveTo(r,i),e.lineTo(a,o),e.lineTo(s,c),e.lineTo(qr*r-Jr*i,Jr*r+qr*i),e.lineTo(qr*a-Jr*o,Jr*a+qr*o),e.lineTo(qr*s-Jr*c,Jr*s+qr*c),e.lineTo(qr*r+Jr*i,qr*i-Jr*r),e.lineTo(qr*a+Jr*o,qr*o-Jr*a),e.lineTo(qr*s+Jr*c,qr*c-Jr*s),e.closePath()}};function Qr(e,t){let n=null,r=mt(i);e=typeof e==`function`?e:pt(e||Pr),t=typeof t==`function`?t:pt(t===void 0?64:+t);function i(){let i;if(n||=i=r(),e.apply(this,arguments).draw(n,+t.apply(this,arguments)),i)return n=null,i+``||null}return i.type=function(t){return arguments.length?(e=typeof t==`function`?t:pt(t),i):e},i.size=function(e){return arguments.length?(t=typeof e==`function`?e:pt(+e),i):t},i.context=function(e){return arguments.length?(n=e??null,i):n},i}function $r(e,t){if((o=e.length)>1)for(var n=1,r,i,a=e[t[0]],o,s=a.length;n<o;++n)for(i=a,a=e[t[n]],r=0;r<s;++r)a[r][1]+=a[r][0]=isNaN(i[r][1])?i[r][0]:i[r][1]}function ei(e){for(var t=e.length,n=Array(t);--t>=0;)n[t]=t;return n}function ti(e,t){return e[t]}function ni(e){let t=[];return t.key=e,t}function ri(){var e=pt([]),t=ei,n=$r,r=ti;function i(i){var a=Array.from(e.apply(this,arguments),ni),o,s=a.length,c=-1,l;for(let e of i)for(o=0,++c;o<s;++o)(a[o][c]=[0,+r(e,a[o].key,c,i)]).data=e;for(o=0,l=wt(t(a));o<s;++o)a[l[o]].index=o;return n(a,l),a}return i.keys=function(t){return arguments.length?(e=typeof t==`function`?t:pt(Array.from(t)),i):e},i.value=function(e){return arguments.length?(r=typeof e==`function`?e:pt(+e),i):r},i.order=function(e){return arguments.length?(t=e==null?ei:typeof e==`function`?e:pt(Array.from(e)),i):t},i.offset=function(e){return arguments.length?(n=e??$r,i):n},i}function ii(e,t){if((r=e.length)>0){for(var n,r,i=0,a=e[0].length,o;i<a;++i){for(o=n=0;n<r;++n)o+=e[n][i][1]||0;if(o)for(n=0;n<r;++n)e[n][i][1]/=o}$r(e,t)}}function ai(e,t){if((i=e.length)>0){for(var n=0,r=e[t[0]],i,a=r.length;n<a;++n){for(var o=0,s=0;o<i;++o)s+=e[o][n][1]||0;r[n][1]+=r[n][0]=-s/2}$r(e,t)}}function oi(e,t){if(!(!((o=e.length)>0)||!((a=(i=e[t[0]]).length)>0))){for(var n=0,r=1,i,a,o;r<a;++r){for(var s=0,c=0,l=0;s<o;++s){for(var u=e[t[s]],d=u[r][1]||0,f=(d-(u[r-1][1]||0))/2,p=0;p<s;++p){var m=e[t[p]],h=m[r][1]||0,g=m[r-1][1]||0;f+=h-g}c+=d,l+=f*d}i[r-1][1]+=i[r-1][0]=n,c&&(n-=l/c)}i[r-1][1]+=i[r-1][0]=n,$r(e,t)}}function si(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function ci(e){if(!e||typeof e!=`object`)return!1;let t=Object.getPrototypeOf(e);return t!==null&&t!==Object.prototype&&Object.getPrototypeOf(t)!==null?!1:Object.prototype.toString.call(e)===`[object Object]`}function li(e,t,n){return ui(e,t,void 0,void 0,void 0,void 0,n)}function ui(e,t,n,r,i,a,o){let s=o(e,t,n,r,i,a);if(s!==void 0)return s;if(typeof e==typeof t)switch(typeof e){case`bigint`:case`string`:case`boolean`:case`symbol`:case`undefined`:return e===t;case`number`:return e===t||Object.is(e,t);case`function`:return e===t;case`object`:return di(e,t,a,o)}return di(e,t,a,o)}function di(e,t,n,r){if(Object.is(e,t))return!0;let i=Lt(e),a=Lt(t);if(i===`[object Arguments]`&&(i=Bt),a===`[object Arguments]`&&(a=Bt),i!==a)return!1;switch(i){case on:return e.toString()===t.toString();case kt:return si(e.valueOf(),t.valueOf());case nn:case gn:case Rt:return Object.is(e.valueOf(),t.valueOf());case sn:return e.source===t.source&&e.flags===t.flags;case Wt:return e===t}n??=new Map;let o=n.get(e),s=n.get(t);if(o!=null&&s!=null)return o===t;n.set(e,t),n.set(t,e);try{switch(i){case At:if(e.size!==t.size)return!1;for(let[i,a]of e.entries())if(!t.has(i)||!ui(a,t.get(i),i,e,t,n,r))return!1;return!0;case Et:{if(e.size!==t.size)return!1;let i=Array.from(e.values()),a=Array.from(t.values());for(let o=0;o<i.length;o++){let s=i[o],c=a.findIndex(i=>ui(s,i,void 0,e,t,n,r));if(c===-1)return!1;a.splice(c,1)}return!0}case un:case jt:case Pt:case zt:case Vt:case rn:case Gt:case Ot:case _n:case ln:case Qt:case vn:if(hn(e)!==hn(t)||e.length!==t.length)return!1;for(let i=0;i<e.length;i++)if(!ui(e[i],t[i],i,e,t,n,r))return!1;return!0;case tn:return e.byteLength===t.byteLength&&di(new Uint8Array(e),new Uint8Array(t),n,r);case Xt:return e.byteLength!==t.byteLength||e.byteOffset!==t.byteOffset?!1:di(new Uint8Array(e),new Uint8Array(t),n,r);case yn:return e.name===t.name&&e.message===t.message;case Bt:{if(!(di(e.constructor,t.constructor,n,r)||ci(e)&&ci(t)))return!1;let i=[...Object.keys(e),...Ut(e)],a=[...Object.keys(t),...Ut(t)];if(i.length!==a.length)return!1;for(let a=0;a<i.length;a++){let o=i[a],s=e[o];if(!Object.hasOwn(t,o))return!1;let c=t[o];if(!ui(s,c,o,e,t,n,r))return!1}return!0}default:return!1}}finally{n.delete(e),n.delete(t)}}function fi(e,t){return li(e,t,bn)}function pi(e,t=1){let n=[],r=Math.floor(t),i=(e,t)=>{for(let a=0;a<e.length;a++){let o=e[a];Array.isArray(o)&&t<r?i(o,t+1):n.push(o)}};return i(e,0),n}function mi(e){if(e==null)return``;if(typeof e==`string`)return e;if(Array.isArray(e))return e.map(mi).join(`,`);let t=String(e);return t===`0`&&Object.is(Number(e),-0)?`-0`:t}function hi(e){return typeof e==`string`||typeof e==`symbol`?e:Object.is(e?.valueOf?.(),-0)?`-0`:String(e)}function gi(e){if(Array.isArray(e))return e.map(hi);if(typeof e==`symbol`)return[e];e=mi(e);let t=[],n=e.length;if(n===0)return t;let r=0,i=``,a=``,o=!1;for(e.charCodeAt(0)===46&&t.push(``);r<n;){let s=e[r];if(a)s===`\\`&&r+1<n?(r++,i+=e[r]):s===a?a=``:i+=s;else if(o)s===`"`||s===`'`?a=s:s===`]`?(o=!1,t.push(i),i=``):i+=s;else if(s===`[`)o=!0,i&&=(t.push(i),``);else if(s===`.`){i&&=(t.push(i),``);let n=e[r+1];(n===void 0||n===`.`)&&t.push(``)}else i+=s;r++}return i&&t.push(i),t}var _i=/\.|(\[(?:[^[\]]*|(["'])(?:(?!\2)[^\\]|\\.)*?\2)\])/;function vi(e){switch(typeof e){case`number`:case`symbol`:return!1;case`string`:return e===``||e.startsWith(`.`)||e.endsWith(`.`)?!1:_i.test(e);default:return!1}}function yi(e,t,n){if(e==null)return n;switch(typeof t){case`string`:{if($t(t))return n;let r=e[t];return r===void 0?vi(t)&&!Object.hasOwn(e,t)?yi(e,gi(t),n):n:r}case`number`:case`symbol`:{typeof t==`number`&&(t=hi(t));let r=e[t];return r===void 0?n:r}default:{if(Array.isArray(t))return bi(e,t,n);if(t=Object.is(t?.valueOf(),-0)?`-0`:String(t),$t(t))return n;let r=e[t];return r===void 0?n:r}}}function bi(e,t,n){if(t.length===0)return n;let r=e;for(let e=0;e<t.length;e++){if(r==null||$t(t[e]))return n;r=r[t[e]]}return r===void 0?n:r}function xi(e){return function(t){return yi(t,e)}}function Si(e){return e!==null&&(typeof e==`object`||typeof e==`function`)}function Ci(e,t,n){return typeof n==`function`?wi(e,t,function e(t,r,i,a,o,s){let c=n(t,r,i,a,o,s);return c===void 0?wi(t,r,e,s,!1):!!c},new Map,!0):Ci(e,t,()=>void 0)}function wi(e,t,n,r,i=!1){if(t===e)return!0;switch(typeof t){case`object`:return Ti(e,t,n,r);case`function`:return Object.keys(t).length>0?wi(e,{...t},n,r,i):si(e,t);default:return Si(e)&&i?typeof t!=`string`||t===``:si(e,t)}}function Ti(e,t,n,r){if(t==null)return!0;if(Array.isArray(t))return Di(e,t,n,r);if(t instanceof Map)return Ei(e,t,n,r);if(t instanceof Set)return Oi(e,t,n,r);let i=Object.keys(t);if(e==null||pn(e))return i.length===0;if(i.length===0)return!0;if(r?.has(t))return r.get(t)===e;r?.set(t,e);try{for(let a=0;a<i.length;a++){let o=i[a];if(!pn(e)&&!(o in e)||t[o]===void 0&&e[o]!==void 0||t[o]===null&&e[o]!==null||!n(e[o],t[o],o,e,t,r))return!1}return!0}finally{r?.delete(t)}}function Ei(e,t,n,r){if(t.size===0)return!0;if(!(e instanceof Map))return!1;for(let[i,a]of t.entries())if(n(e.get(i),a,i,e,t,r)===!1)return!1;return!0}function Di(e,t,n,r){if(t.length===0)return!0;if(!Array.isArray(e))return!1;let i=new Set;for(let a=0;a<t.length;a++){let o=t[a],s=!1;for(let c=0;c<e.length;c++){if(i.has(c))continue;let l=e[c],u=!1;if(n(l,o,a,e,t,r)&&(u=!0),u){i.add(c),s=!0;break}}if(!s)return!1}return!0}function Oi(e,t,n,r){return t.size===0||e instanceof Set&&Di([...e],[...t],n,r)}function ki(e,t){return Ci(e,t,()=>void 0)}function Ai(e){return Zt(e,void 0,e,new Map,void 0)}function ji(e){return e=Ai(e),t=>ki(t,e)}var Mi=/^(?:0|[1-9]\d*)$/;function Ni(e,t=2**53-1){switch(typeof e){case`number`:return Number.isInteger(e)&&e>=0&&e<t;case`symbol`:return!1;case`string`:return Mi.test(e)}}function Pi(e,t){let n;if(n=Array.isArray(t)?t:typeof t==`string`&&vi(t)&&!(t in Object(e))?gi(t):[t],n.length===0)return!1;let r=e;for(let e=0;e<n.length;e++){let t=n[e];if((r==null||!Object.hasOwn(r,t))&&!((Array.isArray(r)||fn(r))&&Ni(t)&&t<r.length))return!1;r=r[t]}return!0}function Fi(e,t){switch(typeof e){case`object`:Object.is(e?.valueOf(),-0)&&(e=`-0`);break;case`number`:e=hi(e)}return t=an(t),function(n){let r=yi(n,e);return r===void 0?Pi(n,e):t===void 0?r===void 0:ki(r,t)}}function Ii(e){return e}function Li(e){if(e==null)return Ii;switch(typeof e){case`function`:return e;case`object`:return Array.isArray(e)&&e.length===2?Fi(e[0],e[1]):ji(e);case`string`:case`symbol`:case`number`:return xi(e)}}function Ri(e){return typeof e==`symbol`||e instanceof Symbol}function zi(e){return Ri(e)?NaN:Number(e)}function Bi(e){return e?(e=zi(e),e===1/0||e===-1/0?(e<0?-1:1)*Number.MAX_VALUE:e===e?e:0):e===0?e:0}function Vi(e,t,n){return Si(n)&&(typeof t==`number`&&cn(n)&&Ni(t)&&t<n.length||typeof t==`string`&&t in n)?si(n[t],e):!1}function Hi(e,t){let n=new Map;for(let r=0;r<e.length;r++){let i=e[r],a=t(i,r,e);n.has(a)||n.set(a,i)}return Array.from(n.values())}function Ui(e){return typeof e==`symbol`?1:e===null?2:e===void 0?3:e===e?0:4}var Wi=(e,t,n)=>{if(e!==t){let r=Ui(e),i=Ui(t);if(r===i&&r===0){if(e<t)return n===`desc`?1:-1;if(e>t)return n===`desc`?-1:1}return n===`desc`?i-r:r-i}return 0},Gi=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ki=/^\w*$/;function qi(e,t){return Array.isArray(e)?!1:typeof e==`number`||typeof e==`boolean`||e==null||Ri(e)?!0:typeof e==`string`&&(Ki.test(e)||!Gi.test(e))||t!=null&&Object.hasOwn(t,e)}function Ji(e,t,n,r){if(e==null)return[];n=r?void 0:n,Array.isArray(e)||(e=Object.values(e)),Array.isArray(t)||(t=t==null?[null]:[t]),t.length===0&&(t=[null]),Array.isArray(n)||(n=n==null?[]:[n]),n=n.map(e=>String(e));let i=(e,t)=>{let n=e;for(let e=0;e<t.length&&n!=null;++e)n=n[t[e]];return n},a=(e,t)=>t==null||e==null?t:typeof e==`object`&&`key`in e?Object.hasOwn(t,e.key)?t[e.key]:i(t,e.path):typeof e==`function`?e(t):Array.isArray(e)?i(t,e):typeof t==`object`?t[e]:t,o=t.map(e=>(Array.isArray(e)&&e.length===1&&(e=e[0]),e==null||typeof e==`function`||Array.isArray(e)||qi(e)?e:{key:e,path:gi(e)}));return e.map(e=>({original:e,criteria:o.map(t=>a(t,e))})).slice().sort((e,t)=>{for(let r=0;r<o.length;r++){let i=Wi(e.criteria[r],t.criteria[r],n[r]);if(i!==0)return i}return 0}).map(e=>e.original)}function Yi(e,...t){let n=t.length;return n>1&&Vi(e,t[0],t[1])?t=[]:n>2&&Vi(t[0],t[1],t[2])&&(t=[t[0]]),Ji(e,pi(t),[`asc`])}function Xi(e,t){return function(...n){return e.apply(this,n.slice(0,t))}}function Zi(e,t=Ii){return mn(e)?Hi(Array.from(e),Xi(Li(t),1)):[]}function Qi(e,t,{signal:n,edges:r}={}){let i,a=null,o=r!=null&&r.includes(`leading`),s=r==null||r.includes(`trailing`),c=()=>{a!==null&&(e.apply(i,a),i=void 0,a=null)},l=()=>{s&&c(),p()},u=null,d=()=>{u!=null&&clearTimeout(u),u=setTimeout(()=>{u=null,l()},t)},f=()=>{u!==null&&(clearTimeout(u),u=null)},p=()=>{f(),i=void 0,a=null},m=()=>{c()},h=function(...e){if(n?.aborted)return;i=this,a=e;let t=u==null;d(),o&&t&&c()};return h.schedule=d,h.cancel=p,h.flush=m,n?.addEventListener(`abort`,p,{once:!0}),h}function $i(e,t=0,n={}){typeof n!=`object`&&(n={});let{leading:r=!1,trailing:i=!0,maxWait:a}=n,o=[,,];r&&(o[0]=`leading`),i&&(o[1]=`trailing`);let s,c=null,l=Qi(function(...t){s=e.apply(this,t),c=null},t,{edges:o}),u=function(...t){return a!=null&&(c===null&&(c=Date.now()),Date.now()-c>=a)?(s=e.apply(this,t),c=Date.now(),l.cancel(),l.schedule(),s):(l.apply(this,t),s)};return u.cancel=l.cancel,u.flush=()=>(l.flush(),s),u}function ea(e,t=0,n={}){let{leading:r=!0,trailing:i=!0}=n;return $i(e,t,{leading:r,maxWait:t,trailing:i})}function ta(e,t,n){n&&typeof n!=`number`&&Vi(e,t,n)&&(t=n=void 0),e=Bi(e),t===void 0?(t=e,e=0):t=Bi(t),n=n===void 0?e<t?1:-1:Bi(n);let r=Math.max(Math.ceil((t-e)/(n||1)),0),i=Array(r);for(let t=0;t<r;t++)i[t]=e,e+=n;return i}var F=e(h(),1),I=_(),na=`studio:analytics:onboarding-dismissed:v2`;function ra(){let[e,t]=(0,F.useState)(null);return(0,F.useEffect)(()=>{try{t(window.localStorage.getItem(na)===`1`)}catch{t(!0)}},[]),e===!1?(0,I.jsxs)(`div`,{role:`status`,className:`mb-3 flex items-start gap-3 rounded-md border border-border bg-muted/30 px-3 py-2 text-sm text-muted-foreground`,children:[(0,I.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,I.jsx)(`span`,{className:`font-medium text-foreground`,children:`Tip:`}),` Click a legend entry to isolate one node, `,(0,I.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`⌘`}),` / `,(0,I.jsx)(`kbd`,{className:`rounded border border-border px-1 py-0.5 text-xs`,children:`Ctrl`}),`-click to compare a few. In the storage charts, click a bar segment to pin that table's trend. In the replication heatmap, click a cell to see that node pair's latency over time.`]}),(0,I.jsx)(a,{variant:`ghost`,size:`icon`,onClick:()=>{try{window.localStorage.setItem(na,`1`)}catch{}t(!0)},"aria-label":`Dismiss tip`,className:`-mt-1 h-7 w-7 shrink-0`,children:(0,I.jsx)(le,{className:`h-4 w-4`})})]}):null}var ia=(0,F.createContext)(null);function aa({value:e,children:t}){let n=(0,F.useMemo)(()=>e,[e.timeRange.startTime,e.timeRange.endTime,e.bucketMs,e.instanceParams.entityId,e.instanceParams.instanceClient,e.syncId]);return(0,I.jsx)(ia.Provider,{value:n,children:t})}function oa(){let e=(0,F.useContext)(ia);if(!e)throw Error(`useAnalyticsContext must be used inside <AnalyticsProvider>`);return e}function sa(){return(0,F.useContext)(ia)?.syncId}function ca(e){let t=sa();return t===void 0?{}:{syncId:e?`${t}:expanded`:t,syncMethod:`value`}}var la=Nn;function ua(e){let t=s(),n=(0,F.useCallback)(t=>Array.isArray(t.queryKey)&&t.queryKey[0]===la&&t.queryKey[1]===e,[e]),r=(0,F.useCallback)(e=>{let r=c.batchCalls(e);return t.getQueryCache().subscribe(e=>{!e?.query||!n(e.query)||r()})},[t,n]),i=(0,F.useCallback)(()=>{for(let e of t.getQueryCache().getAll())if(n(e)&&e.state.fetchStatus===`fetching`)return!0;return!1},[t,n]),a=(0,F.useCallback)(()=>{let e=null;for(let r of t.getQueryCache().getAll())n(r)&&r.state.dataUpdatedAt>0&&(e===null||r.state.dataUpdatedAt>e)&&(e=r.state.dataUpdatedAt);return e},[t,n]),o=(0,F.useSyncExternalStore)(r,i,i),l=(0,F.useSyncExternalStore)(r,a,a),[u,d]=(0,F.useState)(()=>Date.now());return(0,F.useEffect)(()=>{let e=!1,t,n=()=>{if(e)return;d(Date.now());let r=l===null?0:Date.now()-l,i=r<6e4?1e3:r<6e5?5e3:3e4;t=window.setTimeout(n,i)};return t=window.setTimeout(n,1e3),()=>{e=!0,t!==void 0&&window.clearTimeout(t)}},[l]),{isFetching:o,lastFetchedAt:l,now:u}}function da(e,t){if(e===null)return null;let n=Math.max(0,Math.floor((t-e)/1e3));if(n<5)return`just now`;if(n<60)return`${n}s ago`;let r=Math.floor(n/60);return r<60?`${r}m ago`:`${Math.floor(r/60)}h ago`}function fa({presetId:e}){let t=ke(e);return(0,I.jsxs)(`span`,{className:`flex flex-col items-start leading-tight`,children:[(0,I.jsx)(`span`,{children:t.label}),(0,I.jsxs)(`span`,{className:`text-[11px] font-normal text-muted-foreground`,children:[`by `,we(t.bucketMs)]})]})}function pa({presetId:e,onPresetChange:t,refreshMs:n,onRefreshChange:r,onManualRefresh:o}){let{instanceParams:s}=oa(),{isFetching:c,lastFetchedAt:l,now:u}=ua(s.entityId),d=da(l,u);return(0,I.jsxs)(`div`,{className:`flex items-center gap-3`,children:[d&&(0,I.jsxs)(`span`,{className:`text-xs text-muted-foreground tabular-nums`,title:l?new Date(l).toLocaleString():void 0,"aria-label":l?`Last updated ${new Date(l).toLocaleString()}`:void 0,children:[`Updated `,d]}),(0,I.jsxs)(oe,{value:e,onValueChange:e=>t(e),children:[(0,I.jsx)(re,{className:`h-auto min-h-9 w-[180px] py-1`,children:(0,I.jsx)(fa,{presetId:e})}),(0,I.jsx)(ne,{children:Ee.map(e=>(0,I.jsx)(ee,{value:e.id,children:(0,I.jsx)(fa,{presetId:e.id})},e.id))})]}),(0,I.jsxs)(`div`,{role:`group`,"aria-label":`Auto-refresh`,className:`flex items-stretch rounded-md border border-input bg-white shadow-xs dark:bg-grey-700`,children:[(0,I.jsxs)(oe,{value:String(n),onValueChange:e=>r(Number(e)),children:[(0,I.jsx)(re,{"aria-label":`Auto-refresh interval`,title:`Auto-refresh interval`,className:`h-auto min-h-9 w-[96px] rounded-r-none border-0 bg-transparent py-1 shadow-none dark:bg-transparent`,children:(0,I.jsxs)(`span`,{className:`flex flex-col items-start leading-tight`,children:[(0,I.jsx)(`span`,{children:je.find(e=>e.value===n)?.label??`${Math.round(n/1e3)}s`}),(0,I.jsx)(`span`,{className:`text-[11px] font-normal text-muted-foreground`,children:`reload`})]})}),(0,I.jsx)(ne,{children:je.map(e=>(0,I.jsx)(ee,{value:String(e.value),children:e.label},e.value))})]}),(0,I.jsx)(`span`,{"aria-hidden":`true`,className:`my-1.5 w-px shrink-0 bg-border`}),(0,I.jsx)(a,{variant:`ghost`,size:`icon`,onClick:o,disabled:c,"aria-busy":c,"aria-label":c?`Refreshing…`:`Refresh now`,title:c?`Refreshing…`:`Refresh now`,className:`h-auto w-9 rounded-l-none`,children:(0,I.jsx)(ve,{className:i(`h-4 w-4`,c&&`animate-spin`)})})]})]})}var ma=[`utilization`,`cpu-usage`,`memory`,`main-thread-utilization`],ha=18e5;function ga(e){return e?.response?.status??e?.status}function _a(e){let t=ga(e);return t===401||t===403}function va(e){let t=ga(e);return typeof t==`number`&&t>=400&&t<500&&!_a(e)}function ya(e){let t=m({queryKey:[`analytics-capability`,e.entityId],queryFn:async()=>{let t=Date.now(),n=t-3e5,r=null;for(let i of ma)try{return await e.instanceClient.post(`/`,{operation:`get_analytics`,metric:i,start_time:n,end_time:t}),!0}catch(e){if(r=e,!va(e))throw e}throw r instanceof Error?r:Error(`Analytics probe failed for all metrics`)},retry:(e,t)=>!_a(t)&&e<2,retryDelay:e=>Math.min(1e3*2**e,8e3),staleTime:ha,gcTime:ha});return{supported:t.isSuccess===!0,error:t.error,isAuthError:t.error!=null&&_a(t.error),isLoading:t.isLoading,isFetching:t.isFetching,retry:()=>{t.refetch()}}}var ba=new Set([`time`,`node`]),xa=Object.freeze([]);function Sa({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,requiredFields:a,bucketMs:o}){let s=Mn({metric:e,startTime:t,endTime:n,conditions:r,instanceParams:i,bucketMs:o}),c=m({...s,staleTime:1/0,gcTime:6e4,refetchOnWindowFocus:!1,refetchOnReconnect:!1,placeholderData:p}),l=c.data??xa,{fieldKeys:u,missingFields:d}=(0,F.useMemo)(()=>{let e=new Set;for(let t of l)for(let n of Object.keys(t))ba.has(n)||e.add(n);let t=[];if(a&&l.length>0)for(let n of a)e.has(n)||t.push(n);return{fieldKeys:e,missingFields:t}},[l,a]);return(0,F.useEffect)(()=>{!c.isLoading&&l.length===0&&d.length>0&&console.warn(`[analytics] panel rendered empty with missing fields`,{metric:e,instanceId:i.entityId,missingFields:d})},[l.length,c.isLoading,e,i.entityId,d]),{data:l,isLoading:c.isLoading,isError:c.isError,error:c.error,isEmpty:l.length===0,fieldKeys:u,missingFields:d,isPlaceholderData:c.isPlaceholderData,refetch:c.refetch}}var Ca=[`var(--chart-node-1)`,`var(--chart-node-2)`,`var(--chart-node-3)`,`var(--chart-node-4)`,`var(--chart-node-5)`,`var(--chart-node-6)`,`var(--chart-node-7)`,`var(--chart-node-8)`,`var(--chart-node-9)`,`var(--chart-node-10)`];function wa(e,t){return Ca[[...t].sort().indexOf(e)%Ca.length]}function Ta(e){let t=e.indexOf(`.`);return t===-1?e:e.slice(0,t)}function Ea(e){let t=new Map,n=[...new Set(e)];for(let e=1;n.length>0;e++){let r=new Map;for(let t of n){let n=t.split(`.`).slice(0,e).join(`.`),i=r.get(n);i?i.push(t):r.set(n,[t])}n=[];for(let[i,a]of r){if(a.length===1){t.set(a[0],i);continue}for(let r of a)r.split(`.`).length<=e?t.set(r,r):n.push(r)}}return t}function Da({nodeIds:e,isActive:t,onClickNode:n,disabled:r}){let i=Ea(e);return(0,I.jsxs)(`div`,{role:`group`,"aria-label":r?`Node filter (unavailable on this tab)`:`Node filter`,className:`flex flex-wrap justify-center gap-x-4 gap-y-1 pt-2 text-[11px]`,children:[r&&(0,I.jsx)(`span`,{className:`sr-only`,"aria-live":`polite`,children:`Per-node filter is unavailable on this tab. Buttons remain visible to preserve selection state.`}),e.map(a=>{let o=wa(a,e),s=t(a);return(0,I.jsxs)(`button`,{type:`button`,"aria-pressed":s,"aria-disabled":r?`true`:void 0,title:r?`Per-node filter unavailable on this tab's panels`:a,onClick:e=>{r||n(a,e.ctrlKey||e.metaKey)},className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:r?{color:o,opacity:.5,cursor:`not-allowed`}:{color:o,opacity:s?1:.3},children:[(0,I.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:o}}),(0,I.jsx)(`span`,{children:i.get(a)??a})]},a)})]})}function Oa(e){let[t,n]=(0,F.useState)(null),r=(0,F.useRef)(e);return r.current=e,{isActive:(0,F.useCallback)(e=>t===null||t.has(e),[t]),handleClick:(0,F.useCallback)((e,t)=>{let i=r.current;n(n=>{if(t){if(n===null)return new Set(i.filter(t=>t!==e));let t=new Set(n);if(t.has(e)){if(t.delete(e),t.size===0)return null}else if(t.add(e),t.size===i.length)return null;return t}return n!==null&&n.size===1&&n.has(e)?null:new Set([e])})},[]),activeSet:t}}function ka(e){let{isActive:t,handleClick:n,activeSet:r}=Oa(e);return{isActive:t,handleLegendClick:n,activeNodes:r}}function Aa(e,t){let{isActive:n,handleLegendClick:r}=ka(t);return{data:(0,F.useMemo)(()=>({...e,series:e.series.map(e=>e.node===void 0?e:{...e,label:Ta(e.node),color:wa(e.node,t)}).filter(e=>e.node===void 0||n(e.node))}),[e,t,n]),isActive:n,handleLegendClick:r}}function ja(e,t,n){let r=(0,F.useRef)([]);(0,F.useEffect)(()=>{r.current=r.current.slice(0,e.length)},[e.length]);let i=t===null?-1:e.indexOf(t),a=i>=0?i:0;function o(t,i){if(t.key===`Enter`||t.key===` `){t.preventDefault(),n(e[i]);return}if(t.key!==`ArrowLeft`&&t.key!==`ArrowRight`&&t.key!==`ArrowDown`&&t.key!==`ArrowUp`)return;t.preventDefault();let a=e.length;if(a===0)return;let o=(i+(t.key===`ArrowRight`||t.key===`ArrowDown`?1:-1)+a)%a;r.current[o]?.focus(),n(e[o])}function s(t){return{role:`radio`,"aria-checked":t===i,tabIndex:t===a?0:-1,ref:e=>{r.current[t]=e},onKeyDown:e=>o(e,t),onClick:()=>n(e[t])}}return{getRadioProps:s,selectedIdx:i}}var Ma=`var(--color-text-secondary)`;function Na({dimensionValues:e,selected:t,onSelect:n,otherKey:r,colorFor:i,ariaLabel:a=`Dimension selector`}){let{getRadioProps:o}=ja(e,t,n);return e.length===0&&!r?null:(0,I.jsxs)(`div`,{role:`radiogroup`,"aria-label":a,"data-testid":`dimension-chip-row`,className:`flex flex-wrap justify-center gap-x-3 gap-y-1 pt-2 text-[11px]`,children:[e.map((e,n)=>{let r=e===t,a=i?i(e):Ma;return(0,I.jsxs)(`button`,{type:`button`,...o(n),"data-testid":`dimension-chip`,"data-value":e,title:`Click to select`,className:`inline-flex items-center gap-1.5 cursor-pointer border-none bg-transparent p-0`,style:{color:a,opacity:r?1:.55},children:[(0,I.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:a}}),(0,I.jsx)(`span`,{children:e})]},e)}),r&&(0,I.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":!1,"aria-disabled":`true`,tabIndex:-1,"data-testid":`dimension-chip`,"data-value":r,title:`Aggregate of smaller buckets; not selectable.`,className:`inline-flex items-center gap-1.5 cursor-not-allowed border-none bg-transparent p-0`,style:{color:Ma,opacity:.4},children:[(0,I.jsx)(`span`,{className:`inline-block h-[3px] w-3 rounded`,style:{backgroundColor:Ma}}),(0,I.jsx)(`span`,{children:r})]})]})}var Pa=`dangerouslySetInnerHTML.onCopy.onCopyCapture.onCut.onCutCapture.onPaste.onPasteCapture.onCompositionEnd.onCompositionEndCapture.onCompositionStart.onCompositionStartCapture.onCompositionUpdate.onCompositionUpdateCapture.onFocus.onFocusCapture.onBlur.onBlurCapture.onChange.onChangeCapture.onBeforeInput.onBeforeInputCapture.onInput.onInputCapture.onReset.onResetCapture.onSubmit.onSubmitCapture.onInvalid.onInvalidCapture.onLoad.onLoadCapture.onError.onErrorCapture.onKeyDown.onKeyDownCapture.onKeyPress.onKeyPressCapture.onKeyUp.onKeyUpCapture.onAbort.onAbortCapture.onCanPlay.onCanPlayCapture.onCanPlayThrough.onCanPlayThroughCapture.onDurationChange.onDurationChangeCapture.onEmptied.onEmptiedCapture.onEncrypted.onEncryptedCapture.onEnded.onEndedCapture.onLoadedData.onLoadedDataCapture.onLoadedMetadata.onLoadedMetadataCapture.onLoadStart.onLoadStartCapture.onPause.onPauseCapture.onPlay.onPlayCapture.onPlaying.onPlayingCapture.onProgress.onProgressCapture.onRateChange.onRateChangeCapture.onSeeked.onSeekedCapture.onSeeking.onSeekingCapture.onStalled.onStalledCapture.onSuspend.onSuspendCapture.onTimeUpdate.onTimeUpdateCapture.onVolumeChange.onVolumeChangeCapture.onWaiting.onWaitingCapture.onAuxClick.onAuxClickCapture.onClick.onClickCapture.onContextMenu.onContextMenuCapture.onDoubleClick.onDoubleClickCapture.onDrag.onDragCapture.onDragEnd.onDragEndCapture.onDragEnter.onDragEnterCapture.onDragExit.onDragExitCapture.onDragLeave.onDragLeaveCapture.onDragOver.onDragOverCapture.onDragStart.onDragStartCapture.onDrop.onDropCapture.onMouseDown.onMouseDownCapture.onMouseEnter.onMouseLeave.onMouseMove.onMouseMoveCapture.onMouseOut.onMouseOutCapture.onMouseOver.onMouseOverCapture.onMouseUp.onMouseUpCapture.onSelect.onSelectCapture.onTouchCancel.onTouchCancelCapture.onTouchEnd.onTouchEndCapture.onTouchMove.onTouchMoveCapture.onTouchStart.onTouchStartCapture.onPointerDown.onPointerDownCapture.onPointerMove.onPointerMoveCapture.onPointerUp.onPointerUpCapture.onPointerCancel.onPointerCancelCapture.onPointerEnter.onPointerEnterCapture.onPointerLeave.onPointerLeaveCapture.onPointerOver.onPointerOverCapture.onPointerOut.onPointerOutCapture.onGotPointerCapture.onGotPointerCaptureCapture.onLostPointerCapture.onLostPointerCaptureCapture.onScroll.onScrollCapture.onWheel.onWheelCapture.onAnimationStart.onAnimationStartCapture.onAnimationEnd.onAnimationEndCapture.onAnimationIteration.onAnimationIterationCapture.onTransitionEnd.onTransitionEndCapture`.split(`.`);function Fa(e){return typeof e==`string`&&Pa.includes(e)}var Ia=new Set(`aria-activedescendant.aria-atomic.aria-autocomplete.aria-busy.aria-checked.aria-colcount.aria-colindex.aria-colspan.aria-controls.aria-current.aria-describedby.aria-details.aria-disabled.aria-errormessage.aria-expanded.aria-flowto.aria-haspopup.aria-hidden.aria-invalid.aria-keyshortcuts.aria-label.aria-labelledby.aria-level.aria-live.aria-modal.aria-multiline.aria-multiselectable.aria-orientation.aria-owns.aria-placeholder.aria-posinset.aria-pressed.aria-readonly.aria-relevant.aria-required.aria-roledescription.aria-rowcount.aria-rowindex.aria-rowspan.aria-selected.aria-setsize.aria-sort.aria-valuemax.aria-valuemin.aria-valuenow.aria-valuetext.className.color.height.id.lang.max.media.method.min.name.style.target.width.role.tabIndex.accentHeight.accumulate.additive.alignmentBaseline.allowReorder.alphabetic.amplitude.arabicForm.ascent.attributeName.attributeType.autoReverse.azimuth.baseFrequency.baselineShift.baseProfile.bbox.begin.bias.by.calcMode.capHeight.clip.clipPath.clipPathUnits.clipRule.colorInterpolation.colorInterpolationFilters.colorProfile.colorRendering.contentScriptType.contentStyleType.cursor.cx.cy.d.decelerate.descent.diffuseConstant.direction.display.divisor.dominantBaseline.dur.dx.dy.edgeMode.elevation.enableBackground.end.exponent.externalResourcesRequired.fill.fillOpacity.fillRule.filter.filterRes.filterUnits.floodColor.floodOpacity.focusable.fontFamily.fontSize.fontSizeAdjust.fontStretch.fontStyle.fontVariant.fontWeight.format.from.fx.fy.g1.g2.glyphName.glyphOrientationHorizontal.glyphOrientationVertical.glyphRef.gradientTransform.gradientUnits.hanging.horizAdvX.horizOriginX.href.ideographic.imageRendering.in2.in.intercept.k1.k2.k3.k4.k.kernelMatrix.kernelUnitLength.kerning.keyPoints.keySplines.keyTimes.lengthAdjust.letterSpacing.lightingColor.limitingConeAngle.local.markerEnd.markerHeight.markerMid.markerStart.markerUnits.markerWidth.mask.maskContentUnits.maskUnits.mathematical.mode.numOctaves.offset.opacity.operator.order.orient.orientation.origin.overflow.overlinePosition.overlineThickness.paintOrder.panose1.pathLength.patternContentUnits.patternTransform.patternUnits.pointerEvents.pointsAtX.pointsAtY.pointsAtZ.preserveAlpha.preserveAspectRatio.primitiveUnits.r.radius.refX.refY.renderingIntent.repeatCount.repeatDur.requiredExtensions.requiredFeatures.restart.result.rotate.rx.ry.seed.shapeRendering.slope.spacing.specularConstant.specularExponent.speed.spreadMethod.startOffset.stdDeviation.stemh.stemv.stitchTiles.stopColor.stopOpacity.strikethroughPosition.strikethroughThickness.string.stroke.strokeDasharray.strokeDashoffset.strokeLinecap.strokeLinejoin.strokeMiterlimit.strokeOpacity.strokeWidth.surfaceScale.systemLanguage.tableValues.targetX.targetY.textAnchor.textDecoration.textLength.textRendering.to.transform.u1.u2.underlinePosition.underlineThickness.unicode.unicodeBidi.unicodeRange.unitsPerEm.vAlphabetic.values.vectorEffect.version.vertAdvY.vertOriginX.vertOriginY.vHanging.vIdeographic.viewTarget.visibility.vMathematical.widths.wordSpacing.writingMode.x1.x2.x.xChannelSelector.xHeight.xlinkActuate.xlinkArcrole.xlinkHref.xlinkRole.xlinkShow.xlinkTitle.xlinkType.xmlBase.xmlLang.xmlns.xmlnsXlink.xmlSpace.y1.y2.y.yChannelSelector.z.zoomAndPan.ref.key.angle`.split(`.`));function La(e){return typeof e==`string`&&Ia.has(e)}function Ra(e){return typeof e==`string`&&e.startsWith(`data-`)}function za(e){if(typeof e!=`object`||!e)return{};var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(La(n)||Ra(n))&&(t[n]=e[n]);return t}function Ba(e){if(e==null)return null;if((0,F.isValidElement)(e)&&typeof e.props==`object`&&e.props!==null){var t=e.props;return za(t)}return typeof e==`object`&&!Array.isArray(e)?za(e):null}function Va(e){var t={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(La(n)||Ra(n)||Fa(n))&&(t[n]=e[n]);return t}function Ha(e){return e==null?null:(0,F.isValidElement)(e)?Va(e.props):typeof e==`object`&&!Array.isArray(e)?Va(e):null}var Ua=[`children`,`width`,`height`,`viewBox`,`className`,`style`,`title`,`desc`];function Wa(){return Wa=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Wa.apply(null,arguments)}function Ga(e,t){if(e==null)return{};var n,r,i=Ka(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ka(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var qa=(0,F.forwardRef)((e,t)=>{var n=e.children,i=e.width,a=e.height,o=e.viewBox,s=e.className,c=e.style,l=e.title,u=e.desc,d=Ga(e,Ua),f=o||{width:i,height:a,x:0,y:0},p=r(`recharts-surface`,s);return F.createElement(`svg`,Wa({},Va(d),{className:p,width:i,height:a,style:c,viewBox:`${f.x} ${f.y} ${f.width} ${f.height}`,ref:t}),F.createElement(`title`,null,l),F.createElement(`desc`,null,u),n)}),Ja=[`children`,`className`];function Ya(){return Ya=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Ya.apply(null,arguments)}function Xa(e,t){if(e==null)return{};var n,r,i=Za(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Za(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Qa=F.forwardRef((e,t)=>{var n=e.children,i=e.className,a=Xa(e,Ja),o=r(`recharts-layer`,i);return F.createElement(`g`,Ya({className:o},Va(a),{ref:t}),n)}),$a=4;function eo(e){var t=10**(arguments.length>1&&arguments[1]!==void 0?arguments[1]:$a),n=Math.round(e*t)/t;return Object.is(n,-0)?0:n}function to(e){var t=[...arguments].slice(1);return e.reduce((e,n,r)=>{var i=t[r-1];return typeof i==`string`?e+i+n:i===void 0?e+n:e+eo(i)+n},``)}var no=e=>e===0?0:e>0?1:-1,ro=e=>typeof e==`number`&&e!=+e,io=e=>typeof e==`string`&&e.length>1&&e.indexOf(`%`)===e.length-1,L=e=>(typeof e==`number`||e instanceof Number)&&!ro(e),ao=e=>L(e)||typeof e==`string`,oo=0,so=e=>{var t=++oo;return`${e||``}${t}`},co=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=arguments.length>3&&arguments[3]!==void 0&&arguments[3];if(!L(e)&&typeof e!=`string`)return n;var i;if(io(e)){if(t==null)return n;var a=e.indexOf(`%`);i=t*parseFloat(e.slice(0,a))/100}else i=+e;return ro(i)&&(i=n),r&&t!=null&&i>t&&(i=t),i},lo=e=>{if(!Array.isArray(e))return!1;for(var t=e.length,n={},r=0;r<t;r++)if(!n[String(e[r])])n[String(e[r])]=!0;else return!0;return!1};function R(e,t,n){return L(e)&&L(t)?eo(e+n*(t-e)):t}function uo(e,t,n){if(!(!e||!e.length))return e.find(e=>e&&(typeof t==`function`?t(e):yi(e,t))===n)}var z=e=>e==null,fo=e=>z(e)?e:`${e.charAt(0).toUpperCase()}${e.slice(1)}`;function po(e){return e!=null}function mo(){}function ho(e){if(e)return{x:e.x,y:e.y,upperWidth:`upperWidth`in e?e.upperWidth:e.width,lowerWidth:`lowerWidth`in e?e.lowerWidth:e.width,width:e.width,height:e.height}}function go(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function _o(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?go(Object(n),!0).forEach(function(t){vo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):go(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function vo(e,t,n){return(t=yo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yo(e){var t=bo(e,`string`);return typeof t==`symbol`?t:t+``}function bo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var xo=e=>{var t=e.viewBox,n=e.position,r=e.offset,i=r===void 0?0:r,a=e.parentViewBox,o=e.clamp,s=ho(t),c=s.x,l=s.y,u=s.height,d=s.upperWidth,f=s.lowerWidth,p=c,m=c+(d-f)/2,h=(p+m)/2,g=(d+f)/2,_=p+d/2,v=u>=0?1:-1,y=v*i,b=v>0?`end`:`start`,x=v>0?`start`:`end`,S=d>=0?1:-1,C=S*i,w=S>0?`end`:`start`,T=S>0?`start`:`end`,E=a;if(n===`top`){var D={x:p+d/2,y:l-y,horizontalAnchor:`middle`,verticalAnchor:b};return o&&E&&(D.height=Math.max(l-E.y,0),D.width=d),D}if(n===`bottom`){var O={x:m+f/2,y:l+u+y,horizontalAnchor:`middle`,verticalAnchor:x};return o&&E&&(O.height=Math.max(E.y+E.height-(l+u),0),O.width=f),O}if(n===`left`){var k={x:h-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`};return o&&E&&(k.width=Math.max(k.x-E.x,0),k.height=u),k}if(n===`right`){var A={x:h+g+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`};return o&&E&&(A.width=Math.max(E.x+E.width-A.x,0),A.height=u),A}var j=o&&E?{width:g,height:u}:{};return n===`insideLeft`?_o({x:h+C,y:l+u/2,horizontalAnchor:T,verticalAnchor:`middle`},j):n===`insideRight`?_o({x:h+g-C,y:l+u/2,horizontalAnchor:w,verticalAnchor:`middle`},j):n===`insideTop`?_o({x:p+d/2,y:l+y,horizontalAnchor:`middle`,verticalAnchor:x},j):n===`insideBottom`?_o({x:m+f/2,y:l+u-y,horizontalAnchor:`middle`,verticalAnchor:b},j):n===`insideTopLeft`?_o({x:p+C,y:l+y,horizontalAnchor:T,verticalAnchor:x},j):n===`insideTopRight`?_o({x:p+d-C,y:l+y,horizontalAnchor:w,verticalAnchor:x},j):n===`insideBottomLeft`?_o({x:m+C,y:l+u-y,horizontalAnchor:T,verticalAnchor:b},j):n===`insideBottomRight`?_o({x:m+f-C,y:l+u-y,horizontalAnchor:w,verticalAnchor:b},j):n&&typeof n==`object`&&(L(n.x)||io(n.x))&&(L(n.y)||io(n.y))?_o({x:c+co(n.x,g),y:l+co(n.y,u),horizontalAnchor:`end`,verticalAnchor:`end`},j):_o({x:_,y:l+u/2,horizontalAnchor:`middle`,verticalAnchor:`middle`},j)},So=[`top`,`left`,`right`,`bottom`];function Co(e){return e==null?!1:typeof e==`object`||So.includes(e)}var wo=(0,F.createContext)(null),To=()=>(0,F.useContext)(wo),Eo=[`type`,`size`,`sizeType`];function Do(){return Do=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Do.apply(null,arguments)}function Oo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function ko(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Oo(Object(n),!0).forEach(function(t){Ao(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Oo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ao(e,t,n){return(t=jo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function jo(e){var t=Mo(e,`string`);return typeof t==`symbol`?t:t+``}function Mo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function No(e,t){if(e==null)return{};var n,r,i=Po(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Po(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}var Fo={symbolCircle:Pr,symbolCross:Fr,symbolDiamond:Rr,symbolSquare:zr,symbolStar:Wr,symbolTriangle:Kr,symbolWye:Zr},Io=Math.PI/180,Lo=e=>Fo[`symbol${fo(e)}`]||Pr,Ro=(e,t,n)=>{if(t===`area`)return e;switch(n){case`cross`:return 5*e*e/9;case`diamond`:return .5*e*e/Math.sqrt(3);case`square`:return e*e;case`star`:var r=18*Io;return 1.25*e*e*(Math.tan(r)-Math.tan(r*2)*Math.tan(r)**2);case`triangle`:return Math.sqrt(3)*e*e/4;case`wye`:return(21-10*Math.sqrt(3))*e*e/8;default:return Math.PI*e*e/4}},zo=(e,t)=>{Fo[`symbol${fo(e)}`]=t},Bo=e=>{var t=e.type,n=t===void 0?`circle`:t,i=e.size,a=i===void 0?64:i,o=e.sizeType,s=o===void 0?`area`:o,c=ko(ko({},No(e,Eo)),{},{type:n,size:a,sizeType:s}),l=`circle`;typeof n==`string`&&(l=n);var u=()=>{var e=Lo(l),t=Qr().type(e).size(Ro(a,s,l))();if(t!==null)return t},d=c.className,f=c.cx,p=c.cy,m=Va(c);return L(f)&&L(p)&&L(a)?F.createElement(`path`,Do({},m,{className:r(`recharts-symbols`,d),transform:`translate(${f}, ${p})`,d:u()})):null};Bo.registerSymbol=zo;var Vo=e=>`radius`in e&&`startAngle`in e&&`endAngle`in e,Ho=(e,t)=>{if(!e||typeof e==`function`||typeof e==`boolean`)return null;var n=e;if((0,F.isValidElement)(e)&&(n=e.props),typeof n!=`object`&&typeof n!=`function`)return null;var r={};return Object.keys(n).forEach(e=>{Fa(e)&&typeof n[e]==`function`&&(r[e]=t||(t=>n[e](n,t)))}),r},Uo=(e,t,n)=>r=>(e(t,n,r),null),Wo=(e,t,n)=>{if(e===null||typeof e!=`object`&&typeof e!=`function`)return null;var r=null;return Object.keys(e).forEach(i=>{var a=e[i];Fa(i)&&typeof a==`function`&&(r||={},r[i]=Uo(a,t,n))}),r};function Go(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ko(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Go(Object(n),!0).forEach(function(t){qo(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Go(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function qo(e,t,n){return(t=Jo(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Jo(e){var t=Yo(e,`string`);return typeof t==`symbol`?t:t+``}function Yo(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function Xo(e,t){var n=Ko({},e),r=t;return Object.keys(t).reduce((e,t)=>(e[t]===void 0&&r[t]!==void 0&&(e[t]=r[t]),e),n)}function Zo(){return Zo=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Zo.apply(null,arguments)}function Qo(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function $o(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Qo(Object(n),!0).forEach(function(t){es(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Qo(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function es(e,t,n){return(t=ts(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ts(e){var t=ns(e,`string`);return typeof t==`symbol`?t:t+``}function ns(e,t){if(typeof e!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(typeof r!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}var rs=32,is={align:`center`,iconSize:14,inactiveColor:`#ccc`,layout:`horizontal`,verticalAlign:`middle`,labelStyle:{}};function as(e){if(typeof e==`object`&&e&&`strokeDasharray`in e)return String(e.strokeDasharray)}function os(e){var t=e.data,n=e.iconType,r=e.inactiveColor,i=rs/2,a=rs/6,o=rs/3,s=t.inactive?r:t.color,c=n??t.type;if(c===`none`)return null;if(c===`plainline`)return F.createElement(`line`,{strokeWidth:4,fill:`none`,stroke:s,strokeDasharray:as(t.payload),x1:0,y1:i,x2:rs,y2:i,className:`recharts-legend-icon`});if(c===`line`)return F.createElement(`path`,{strokeWidth:4,fill:`none`,stroke:s,d:`M0,${i}h${o}
2
2
  A${a},${a},0,1,1,${2*o},${i}
3
3
  H${rs}M${2*o},${i}
4
4
  A${a},${a},0,1,1,${o},${i}`,className:`recharts-legend-icon`});if(c===`rect`)return F.createElement(`path`,{stroke:`none`,fill:s,d:`M0,${rs/8}h${rs}v${rs*3/4}h${-rs}z`,className:`recharts-legend-icon`});if(F.isValidElement(t.legendIcon)){var l=$o({},t);return delete l.legendIcon,F.cloneElement(t.legendIcon,l)}return F.createElement(Bo,{fill:s,cx:i,cy:i,size:rs,sizeType:`diameter`,type:c})}function ss(e){var t=e.payload,n=e.iconSize,i=e.layout,a=e.formatter,o=e.inactiveColor,s=e.iconType,c=e.labelStyle,l={x:0,y:0,width:rs,height:rs},u={display:i===`horizontal`?`inline-block`:`block`,marginRight:10,whiteSpace:`nowrap`},d={display:`inline-block`,verticalAlign:`middle`,marginRight:4};return t.map((t,i)=>{var f=t.formatter||a,p=r({"recharts-legend-item":!0,[`legend-item-${i}`]:!0,inactive:t.inactive});if(t.type===`none`)return null;var m=typeof c==`object`?$o({},c):{};m.color=t.inactive?o:m.color||t.color,m.whiteSpace??=`normal`,m.overflowWrap??=`break-word`;var h=f?f(t.value,t,i):t.value;return F.createElement(`li`,Zo({className:p,style:u,key:`legend-item-${i}`},Wo(e,t,i)),F.createElement(qa,{width:n,height:n,viewBox:l,style:d,"aria-label":t.value==null?`legend icon`:`${t.value} legend icon`},F.createElement(os,{data:t,iconType:s,inactiveColor:o})),F.createElement(`span`,{className:`recharts-legend-item-text`,style:m},h))})}var cs=e=>{var t=Xo(e,is),n=t.payload,r=t.layout,i=t.align;if(!n||!n.length)return null;var a={padding:0,margin:0,textAlign:r===`horizontal`?i:`left`};return F.createElement(`ul`,{className:`recharts-default-legend`,style:a},F.createElement(ss,Zo({},t,{payload:n})))};function ls(e,t,n){return t===!0?Zi(e,n):typeof t==`function`?Zi(e,t):e}var us=(0,F.createContext)(null),ds=f(),fs=e=>e,B=()=>{var e=(0,F.useContext)(us);return e?e.store.dispatch:fs},ps=()=>{},ms=()=>ps,hs=(e,t)=>e===t;function V(e){var t=(0,F.useContext)(us),n=(0,F.useMemo)(()=>t?t=>{if(t!=null)return e(t)}:ps,[t,e]);return(0,ds.useSyncExternalStoreWithSelector)(t?t.subscription.addNestedSub:ms,t?t.store.getState:ps,t?t.store.getState:ps,n,hs)}var gs=e=>e.legend.settings,_s=e=>e.legend.size,vs=P([e=>e.legend.payload,gs],(e,t)=>{var n=t.itemSorter,r=e.flat(1);return n?Yi(r,n):r});function ys(){return V(vs)}function bs(e,t){return Ts(e)||ws(e,t)||Ss(e,t)||xs()}function xs(){throw TypeError(`Invalid attempt to destructure non-iterable instance.