unleash-server 6.0.2 → 6.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.js +4 -4
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-controller.js.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.d.ts +2 -2
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.js +4 -2
- package/dist/lib/features/feature-lifecycle/feature-lifecycle-service.js.map +1 -1
- package/dist/lib/features/playground/advanced-playground.test.js +26 -1
- package/dist/lib/features/playground/advanced-playground.test.js.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/client.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/client.js +2 -6
- package/dist/lib/features/playground/feature-evaluator/client.js.map +1 -1
- package/dist/lib/features/project/project-service.d.ts.map +1 -1
- package/dist/lib/features/project/project-service.e2e.test.js +34 -4
- package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-service.js +9 -5
- package/dist/lib/features/project/project-service.js.map +1 -1
- package/dist/lib/types/events.d.ts +4 -0
- package/dist/lib/types/events.d.ts.map +1 -1
- package/dist/lib/types/events.js +4 -2
- package/dist/lib/types/events.js.map +1 -1
- package/dist/test/e2e/helpers/test-helper.d.ts +2 -2
- package/dist/test/e2e/helpers/test-helper.d.ts.map +1 -1
- package/dist/test/e2e/helpers/test-helper.js +1 -1
- package/dist/test/e2e/helpers/test-helper.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-p7tDUOqb.js → AdvancedPlayground-Bc9c5QIu.js} +1 -1
- package/frontend/build/static/{CheckCircleOutline-CZoWHYza.js → CheckCircleOutline-CyNpGFzN.js} +1 -1
- package/frontend/build/static/{CreateProject-DhmoT0x8.js → CreateProject-B91SCik8.js} +2 -2
- package/frontend/build/static/{FeatureMetricsChart-CrJhmvRS.js → FeatureMetricsChart-Cn08Adtf.js} +2 -2
- package/frontend/build/static/{FeatureStaleDialog-z-UTple3.js → FeatureStaleDialog-jSLAJQtZ.js} +1 -1
- package/frontend/build/static/{FeatureViewLazyExport-BOJHJp48.js → FeatureViewLazyExport-eKifpj1D.js} +2 -2
- package/frontend/build/static/{LazyAdminExport-BfaFcAaS.js → LazyAdminExport-DnKliaaa.js} +2 -2
- package/frontend/build/static/LazyProjectExport-BvwRpjUv.js +28 -0
- package/frontend/build/static/{LineChartComponent-CLaoKci9.js → LineChartComponent-BxUv14sk.js} +1 -1
- package/frontend/build/static/{NetworkOverview-Cq83oqfi.js → NetworkOverview-CQj9Hx4v.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-Bt6v3FUz.js → NetworkTraffic-L8bIbbjr.js} +1 -1
- package/frontend/build/static/{NetworkTrafficUsage-Dv8h54l9.js → NetworkTrafficUsage-CjR2xB0-.js} +2 -2
- package/frontend/build/static/{ProjectForm-CrLtsMQu.js → ProjectForm-znrNnDpy.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-C-nON7ak.js → ReactJSONEditor-SGunMDHt.js} +1 -1
- package/frontend/build/static/{RoleCell-6hhnTvjl.js → RoleCell-DMQfcXNA.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-BDY93O1W.js → StrategyItemContainer-T36tKLmC.js} +1 -1
- package/frontend/build/static/{index-DZdOsPxT.js → index-CEZA3h-h.js} +1 -1
- package/frontend/build/static/{index-lGwH-xa2.js → index-CoEyUZTq.js} +45 -45
- package/frontend/build/static/{unknownify-D-iKcXLX.js → unknownify-BsPyZIhJ.js} +1 -1
- package/frontend/build/static/{useApiTokens-BhaMXLXr.js → useApiTokens-Gal6e-36.js} +1 -1
- package/package.json +1 -1
- package/frontend/build/static/LazyProjectExport-DbkNqnlj.js +0 -28
package/frontend/build/static/{LineChartComponent-CLaoKci9.js → LineChartComponent-BxUv14sk.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as c,j as a,B as p,z as f,T as y,O as h,a as m,bb as S,r as u,C,
|
|
1
|
+
import{s as c,j as a,B as p,z as f,T as y,O as h,a as m,bb as S,r as u,C,hB as j,hC as I,hD as v,hE as L,hF as w,hG as k,hH as z,hI as R,hJ as A}from"./index-CoEyUZTq.js";import{L as B}from"./index-CEZA3h-h.js";const E=c("ul")(({theme:e})=>({listStyle:"none",margin:0,padding:0})),P=c("li")(({theme:e})=>({marginBottom:e.spacing(.5),display:"flex",alignItems:"center"})),T=c("span")(({theme:e})=>({display:"inline-block",width:8,height:8,borderRadius:"50%",marginRight:e.spacing(1)})),g=16,D=e=>e==="left"?"flex-start":e==="right"?"flex-end":"center",O=(e=0,t)=>t==="left"?e+g:t==="right"?e-g:e,b=({tooltip:e,children:t})=>a.jsx(p,{sx:n=>({top:((e==null?void 0:e.caretY)||0)+g,left:O(e==null?void 0:e.caretX,e==null?void 0:e.align),width:"1px",position:"absolute",display:e?"flex":"none",pointerEvents:"none",zIndex:n.zIndex.tooltip,flexDirection:"column",alignItems:D(e==null?void 0:e.align)}),children:t}),Y=({tooltip:e})=>a.jsx(b,{tooltip:e,children:a.jsxs(f,{elevation:3,sx:t=>({width:220,padding:t.spacing(1.5,2)}),children:[a.jsx(y,{variant:"body2",sx:t=>({marginBottom:t.spacing(1),color:t.palette.text.secondary}),children:e==null?void 0:e.title}),a.jsx(E,{children:e==null?void 0:e.body.map(t=>a.jsxs(P,{children:[a.jsx(T,{sx:{backgroundColor:t.color},children:" "}),a.jsx(y,{variant:"body2",sx:{display:"inline-block"},children:t.title})]},h(t)))})]})}),_=e=>t=>{var s,r;const n=t.tooltip;if(n.opacity===0){e(null);return}e({caretX:n==null?void 0:n.caretX,caretY:n==null?void 0:n.caretY,title:((s=n==null?void 0:n.title)==null?void 0:s.join(" "))||"",align:n==null?void 0:n.xAlign,body:((r=n==null?void 0:n.body)==null?void 0:r.map((i,o)=>{var l,d,x;return{title:(l=i==null?void 0:i.lines)==null?void 0:l.join(" "),color:(x=(d=n==null?void 0:n.labelColors)==null?void 0:d[o])==null?void 0:x.borderColor,value:""}}))||[],dataPoints:(n==null?void 0:n.dataPoints)||[]})},F={position:"bottom",labels:{boxWidth:12,padding:30,generateLabels:e=>{var o;const t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:s,textAlign:r,color:i}}=((o=e==null?void 0:e.legend)==null?void 0:o.options)||{labels:{}};return e._getSortedDatasetMetas().map(l=>{const d=l.controller.getStyle(n?0:void 0);return{text:t[l.index].label,fillStyle:d.borderColor,fontColor:i,hidden:!l.visible,lineWidth:0,borderRadius:6,strokeStyle:d.borderColor,pointStyle:s||d.pointStyle,textAlign:r||d.textAlign,datasetIndex:l.index}})}}},G=(e,t,n,s)=>({responsive:!0,...s?{animation:{duration:0}}:{},plugins:{legend:{...F,display:!s},tooltip:{enabled:!1,position:"nearest",interaction:{axis:"xy",mode:"nearest"},external:_(n)}},locale:t.locale,interaction:{intersect:!1,axis:"xy",mode:"nearest"},elements:{point:{radius:0,hitRadius:15}},tension:.1,color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,type:"linear",grid:{color:e.palette.divider,borderColor:e.palette.divider},ticks:{color:e.palette.text.secondary,display:!s,precision:0}},x:{type:"time",time:{unit:"week",tooltipFormat:"PPP"},grid:{color:"transparent",borderColor:"transparent"},ticks:{color:e.palette.text.secondary,display:!s,source:"data",maxRotation:90,minRotation:23.5}}}}),H=c("div")(({theme:e})=>({position:"relative"})),M=c("div")(({theme:e})=>({position:"absolute",inset:0,display:"flex",zIndex:e.zIndex.appBar,"&::before":{zIndex:e.zIndex.fab,content:'""',position:"absolute",inset:0,backgroundColor:e.palette.background.paper,opacity:.8}})),W=c("div")(({theme:e})=>({zIndex:e.zIndex.modal,margin:"auto",color:e.palette.text.secondary,textAlign:"center"})),X={id:"customLine",afterDraw:e=>{var n;if((n=e.tooltip)!=null&&n.opacity&&e.tooltip.x){const s=e.tooltip.caretX,r=e.scales.y,i=e.ctx;i.save();const o=i.createLinearGradient(s,r.top,s,r.bottom);o.addColorStop(0,"rgba(129, 122, 254, 0)"),o.addColorStop(1,"rgba(129, 122, 254, 0.12)"),i.fillStyle=o,i.fillRect(s-26/2,r.top,26,r.bottom-r.top),i.restore()}}},q=({data:e,aspectRatio:t=2.5,cover:n,overrideOptions:s,TooltipComponent:r})=>{const i=m(),{locationSettings:o}=S(),[l,d]=u.useState(null),x=u.useMemo(()=>({...G(i,o,d,!!n),...s}),[i,o,s,n]);return a.jsxs(H,{children:[a.jsx(B,{options:x,data:e,plugins:[X],height:100,width:100*t},n?"cover":"chart"),a.jsx(C,{condition:!n,show:r?a.jsx(b,{tooltip:l,children:a.jsx(r,{tooltip:l})}):a.jsx(Y,{tooltip:l}),elseShow:a.jsx(M,{children:a.jsx(W,{children:n!==!0?n:" "})})})]})};j.register(I,v,L,w,k,z,R,A);export{q as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as i,T as d,cI as g,a as x,r as u,j as t,K as y,
|
|
1
|
+
import{s as i,T as d,cI as g,a as x,r as u,j as t,K as y,hN as c,hO as m,hP as f,hQ as j}from"./index-CoEyUZTq.js";import{u as b,a as h}from"./unknownify-BsPyZIhJ.js";const v=i("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),w=i("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap"})),p=i("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),S=i(d)(({theme:e})=>({fontWeight:e.fontWeight.bold})),k=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary})),A=i(d)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),q=e=>e[0]*1e3>new Date().getTime()-6e5,C=e=>{var a,s;const r=(e.values||[]).filter(l=>q(l)),o=r.length?Number.parseFloat(r[r.length-1][1]):0;return{label:e.label,reqs:o,type:h((s=(a=e.metric)==null?void 0:a.endpoint)==null?void 0:s.split("/")[2])}},E=(e,n)=>{var o;const r=n.label+n.type;return e[r]={...n,reqs:n.reqs+(((o=e[r])==null?void 0:o.reqs)??0)},e},T=e=>{var o,a;const r=(((a=(o=e==null?void 0:e.data)==null?void 0:o.result)==null?void 0:a.map(s=>{var l;return{...s,label:h((l=s.metric)==null?void 0:l.appName)}}).filter(s=>s.label!=="unknown"))||[]).map(C).reduce(E,{});return Object.values(r).map(s=>({...s,reqs:s.reqs.toFixed(2)})).filter(s=>s.reqs!=="0.00")??[]},R=()=>{g("Network - Overview");const e=x(),{metrics:n}=b(),r=u.useMemo(()=>T(n),[n]);return r.length===0?t.jsx(y,{severity:"warning",children:"No data available."}):t.jsxs(c.ArcherContainer,{strokeColor:e.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(v,{children:t.jsx(c.ArcherElement,{id:"unleash",children:t.jsxs(p,{children:[t.jsx(m,{darkmode:t.jsx(f,{}),lightmode:t.jsx(j,{})}),t.jsx(d,{sx:{marginTop:e.spacing(1)},children:"Unleash"})]})})}),t.jsx(w,{children:r.map(({label:o,reqs:a,type:s},l)=>t.jsx(c.ArcherElement,{id:`${l}`,relations:[{targetId:"unleash",targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:e.palette.secondary.border}}],children:t.jsxs(p,{children:[t.jsx(S,{children:o}),t.jsxs(k,{children:[a," req/s"]}),t.jsxs(A,{children:[s," app"]})]})}))})]})};export{R as NetworkOverview,R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var f=Object.defineProperty;var C=(t,e,a)=>e in t?f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var s=(t,e,a)=>(C(t,typeof e!="symbol"?e+"":e,a),a);import{bb as k,a as v,r as p,cI as w,j as o,C as P,K as S,cX as
|
|
1
|
+
var f=Object.defineProperty;var C=(t,e,a)=>e in t?f(t,e,{enumerable:!0,configurable:!0,writable:!0,value:a}):t[e]=a;var s=(t,e,a)=>(C(t,typeof e!="symbol"?e+"":e,a),a);import{bb as k,a as v,r as p,cI as w,j as o,C as P,K as S,cX as I,hB as j,hC as M,hD as L,hE as N,hF as R,hG as T,hI as A,hH as E,hM as q,hL as u}from"./index-CoEyUZTq.js";import{u as D,a as g}from"./unknownify-BsPyZIhJ.js";import{L as _}from"./index-CEZA3h-h.js";class H{constructor(e){s(this,"current",0);s(this,"all");this.all=e}next(){const e=this.all[this.current];return this.current=(this.current+1)%this.all.length,e}}const h=["circle","rect","rectRounded","rectRot","triangle"],B=(t,e)=>t.map(a=>({x:a[0],y:e(a[1])})),F=(t,e)=>({locale:e.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:t.palette.text.secondary,plugins:{tooltip:{backgroundColor:t.palette.background.paper,bodyColor:t.palette.text.primary,titleColor:t.palette.action.active,borderColor:t.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:a=>u(1e3*a[0].parsed.x,e.locale)},itemSort:(a,i)=>i.parsed.y-a.parsed.y},legend:{position:"bottom",align:"start",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0,padding:24}},title:{text:"Top 10 requests per second in the last 6 hours",position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:t.palette.text.primary,padding:{bottom:32}}},scales:{y:{type:"linear",title:{display:!0,text:"Requests per second",color:t.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:t.palette.text.secondary},grid:{color:t.palette.divider,borderColor:t.palette.divider}},x:{type:"time",time:{unit:"minute"},grid:{display:!0,color:t.palette.divider,borderColor:t.palette.divider},ticks:{callback:(a,i,r)=>u(r[i].value*1e3,e.locale)}}}});class W{constructor(e){s(this,"items");s(this,"picked",new Map);this.items=new H(e)}pick(e){return this.picked.has(e)||this.picked.set(e,this.items.next()),this.picked.get(e)}}const $=(t,e)=>{var a;if((a=e==null?void 0:e.data)!=null&&a.result){const i=new W([t.palette.success,t.palette.error,t.palette.primary,t.palette.warning]);return e.data.result.map((r,m)=>{var c,d;const n=g((c=r.metric)==null?void 0:c.endpoint),x=g((d=r.metric)==null?void 0:d.appName),l=i.pick(n),y=r.values||[];return{label:`${n}: ${x}`,borderColor:l.main,backgroundColor:l.main,data:B(y,b=>Number.parseFloat(b)),elements:{point:{radius:4,pointStyle:h[m%h.length]},line:{borderDash:[8,4]}}}})}return[]},X=()=>{const{locationSettings:t}=k(),{metrics:e}=D(),a=v(),i=p.useMemo(()=>F(a,t),[a,t]);w("Network - Traffic");const r=p.useMemo(()=>({datasets:$(a,e)}),[a,e,t]);return o.jsx(P,{condition:r.datasets.length===0,show:o.jsx(S,{severity:"warning",children:"No data available."}),elseShow:o.jsx(I,{sx:{display:"grid",gap:4},children:o.jsx("div",{style:{height:400},children:o.jsx(_,{data:r,options:i,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})})})};j.register(M,L,N,R,T,A,E,q);export{X as NetworkTraffic,X as default};
|
package/frontend/build/static/{NetworkTrafficUsage-Dv8h54l9.js → NetworkTrafficUsage-CjR2xB0-.js}
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{s as E,cp as R,cX as K,b9 as ct,j as f,G as ye,C as J,cA as me,
|
|
1
|
+
import{s as E,cp as R,cX as K,b9 as ct,j as f,G as ye,C as J,cA as me,hK as Wt,hR as X,hS as j,hT as M,hU as ce,hV as ke,hW as Lt,hX as x,hB as se,hY as Q,hZ as O,h_ as Yt,h$ as Bt,i0 as F,i1 as De,i2 as de,i3 as Xt,i4 as _t,i5 as $,i6 as re,i7 as Be,i8 as zt,i9 as Xe,ia as Y,ib as ut,ic as ft,id as Ht,cI as Nt,a as Ut,b8 as $t,r as P,K as _e,aM as ze,gF as Vt,hC as qt,hD as Gt,ie as Jt,hM as Ft,hH as Kt,hI as Qt}from"./index-CoEyUZTq.js";import{B as Zt}from"./index-CEZA3h-h.js";import{u as en,a as tn}from"./LazyAdminExport-DnKliaaa.js";import"./RoleCell-DMQfcXNA.js";import"./useApiTokens-Gal6e-36.js";const nn=E(R)(({theme:t})=>({display:"flex",flexDirection:"row"})),He=E(R)(({theme:t})=>({display:"flex",flexDirection:"row",flex:"1 1"})),Ne=E(R)(({theme:t})=>({display:"flex",flexDirection:"column",flex:"1 1"})),Ue=E("div")(({theme:t})=>({display:"flex",flexDirection:"row",flex:"1 1",padding:t.spacing(3),border:`2px solid ${t.palette.divider}`,borderRadius:t.shape.borderRadiusLarge})),be=E(K)(({theme:t})=>({display:"flex",flexDirection:"column",gap:t.spacing(2.5),color:t.palette.text.secondary,fontSize:t.fontSizes.smallBody,marginTop:t.spacing(2)})),V=E(K)(({theme:t})=>({display:"flex",flexDirection:"row"})),q=E("div")(({theme:t})=>({marginLeft:"auto",display:"flex",textDecoration:"none",color:t.palette.text.primary})),on=({usageTotal:t,includedTraffic:e,overageCost:n,estimatedMonthlyCost:o})=>{const r=t-e,i=ct("estimateTrafficDataCost");return f.jsxs(nn,{container:!0,spacing:4,children:[f.jsx(He,{item:!0,xs:5.5,md:5.5,children:f.jsx(Ue,{children:f.jsxs(Ne,{item:!0,children:[f.jsx(K,{children:f.jsx("b",{children:"Number of requests to Unleash"})}),f.jsx(be,{children:f.jsxs(V,{children:["Incoming requests selected month"," ",f.jsx(q,{children:f.jsxs(ye,{color:e>0?t<=e?"success":"error":"neutral",children:[t.toLocaleString()," requests"]})})]})}),f.jsx(J,{condition:e>0,show:f.jsx(be,{children:f.jsxs(V,{children:["Included in your plan monthly",f.jsxs(q,{children:[e.toLocaleString()," ","requests"]})]})})})]})})}),f.jsx(J,{condition:i&&e>0&&r>0,show:f.jsx(He,{item:!0,xs:5.5,md:5.5,children:f.jsx(Ue,{children:f.jsxs(Ne,{item:!0,children:[f.jsx(K,{children:f.jsx("b",{children:"Accrued traffic charges"})}),f.jsxs(be,{children:[f.jsxs(V,{children:["Requests overages this month (",f.jsx(me,{href:"https://www.getunleash.io/pricing",children:"pricing"}),")",f.jsxs(q,{children:[r.toLocaleString()," requests"]})]}),f.jsxs(V,{children:["Accrued traffic charges",f.jsx(q,{children:f.jsxs(ye,{color:"secondary",children:[n," USD"]})})]}),f.jsx(J,{condition:o>0,show:f.jsxs(V,{children:["Estimated traffic charges based on current usage",f.jsx(q,{children:f.jsxs(ye,{color:"secondary",children:[o," ","USD"]})})]})})]})]})})})})]})};/*!
|
|
2
2
|
* chartjs-plugin-annotation v2.2.1
|
|
3
3
|
* https://www.chartjs.org/chartjs-plugin-annotation/index
|
|
4
4
|
* (c) 2023 chartjs-plugin-annotation Contributors
|
|
5
5
|
* Released under the MIT License
|
|
6
|
-
*/const $e={modes:{point(t,e){return ae(t,e,{intersect:!0})},nearest(t,e,n){return an(t,e,n)},x(t,e,n){return ae(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return ae(t,e,{intersect:n.intersect,axis:"y"})}}};function ve(t,e,n){return($e.modes[n.mode]||$e.modes.nearest)(t,e,n)}function rn(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function sn(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function ae(t,e,n){return t.visibleElements.filter(o=>n.intersect?o.inRange(e.x,e.y):rn(o,e,n.axis))}function an(t,e,n){let o=Number.POSITIVE_INFINITY;return ae(t,e,n).reduce((r,s)=>{const i=s.getCenterPoint(),a=sn(e,i,n.axis),d=ke(e,a);return d<o?(r=[s],o=d):d===o&&r.push(s),r},[]).sort((r,s)=>r._index-s._index).slice(0,1)}const dn=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,T=.001,ue=(t,e,n)=>Math.min(n,Math.max(e,t));function ln(t,e,n){for(const o of Object.keys(t))t[o]=ue(t[o],e,n);return t}function cn(t,e,n,o){if(!t||!e||n<=0)return!1;const r=o/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+r,2)}function ht(t,{x:e,y:n,x2:o,y2:r},s,i){const a=i/2,d=t.x>=e-a-T&&t.x<=o+a+T,l=t.y>=n-a-T&&t.y<=r+a+T;return s==="x"?d:(s==="y"||d)&&l}function _(t,e){const{centerX:n,centerY:o}=t.getProps(["centerX","centerY"],e);return{x:n,y:o}}function un(t,e,n,o=!0){const r=n.split(".");let s=0;for(const i of e.split(".")){const a=r[s++];if(parseInt(i,10)<parseInt(a,10))break;if(dn(a,i)){if(o)throw new Error(`${t} v${n} is not supported. v${e} or newer is required.`);return!1}}return!0}const gt=t=>typeof t=="string"&&t.endsWith("%"),yt=t=>parseFloat(t)/100,bt=t=>ue(yt(t),0,1);function Ae(t,e){return e==="start"?0:e==="end"?t:gt(e)?bt(e)*t:t/2}function A(t,e,n=!0){return typeof e=="number"?e:gt(e)?(n?bt(e):yt(e))*t:t}function fn(t,e){const{x:n,width:o}=t,r=e.textAlign;return r==="center"?n+o/2:r==="end"||r==="right"?n+o:n}function Ie(t,e="center"){return Q(t)?{x:F(t.x,e),y:F(t.y,e)}:(t=F(t,e),{x:t,y:t})}function pt(t){return t&&(M(t.xValue)||M(t.yValue))}function Z(t,e,n,o=!1){const r=n.init;if(r){if(r===!0)return xt(e,o)}else return;return hn(e,o,De(r,[{chart:t,properties:e,options:n}]))}function mt(t,e,n){let o=!1;return e.forEach(r=>{Y(t[r])?(o=!0,n[r]=t[r]):M(n[r])&&delete n[r]}),o}function xt({centerX:t,centerY:e},n){return n?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}function hn(t,e,n){if(n===!0)return xt(t,e);if(Q(n))return n}const pe=new Map,gn=t=>isNaN(t)||t<=0,yn=t=>t.reduce(function(e,n){return e+=n.string,e},"");function fe(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function Ee(t,{x:e,y:n},o){o&&(t.translate(e,n),t.rotate(j(o)),t.translate(-e,-n))}function I(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function z(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function Re(t,e){const n=e.content;if(fe(n))return{width:A(n.width,e.width),height:A(n.height,e.height)};const o=e.font,r=O(o)?o.map(d=>de(d)):[de(o)],s=e.textStrokeWidth,i=O(n)?n:[n],a=i.join()+yn(r)+s+(t._measureText?"-spriting":"");return pe.has(a)||pe.set(a,wn(t,i,r,s)),pe.get(a)}function wt(t,e,n){const{x:o,y:r,width:s,height:i}=e;t.save(),z(t,n);const a=I(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),Xt(t,{x:o,y:r,w:s,h:i,radius:ln(_t(n.borderRadius),0,Math.min(s,i)/2)}),t.closePath(),t.fill(),a&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function bn(t,e,n){const o=n.content;if(fe(o)){t.save(),t.globalAlpha=Pn(n.opacity,o.style.opacity),t.drawImage(o,e.x,e.y,e.width,e.height),t.restore();return}const r=O(o)?o:[o],s=n.font,i=O(s)?s.map(u=>de(u)):[de(s)],a=n.color,d=O(a)?a:[a],l=fn(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,pn(t,n)&&Sn(t,{x:l,y:c},r,i),Cn(t,{x:l,y:c},r,{fonts:i,colors:d}),t.restore()}function pn(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function mn(t,e,n,o){const{radius:r,options:s}=e,i=s.pointStyle,a=s.rotation;let d=(a||0)*ft;if(fe(i)){t.save(),t.translate(n,o),t.rotate(d),t.drawImage(i,-i.width/2,-i.height/2,i.width,i.height),t.restore();return}gn(r)||xn(t,{x:n,y:o,radius:r,rotation:a,style:i,rad:d})}function xn(t,{x:e,y:n,radius:o,rotation:r,style:s,rad:i}){let a,d,l,c;switch(t.beginPath(),s){default:t.arc(e,n,o,0,zt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(i)*o,n-Math.cos(i)*o),i+=Be,t.lineTo(e+Math.sin(i)*o,n-Math.cos(i)*o),i+=Be,t.lineTo(e+Math.sin(i)*o,n-Math.cos(i)*o),t.closePath();break;case"rectRounded":c=o*.516,l=o-c,a=Math.cos(i+$)*l,d=Math.sin(i+$)*l,t.arc(e-a,n-d,c,i-x,i-re),t.arc(e+d,n-a,c,i-re,i),t.arc(e+a,n+d,c,i,i+re),t.arc(e-d,n+a,c,i+re,i+x),t.closePath();break;case"rect":if(!r){l=Math.SQRT1_2*o,t.rect(e-l,n-l,2*l,2*l);break}i+=$;case"rectRot":a=Math.cos(i)*o,d=Math.sin(i)*o,t.moveTo(e-a,n-d),t.lineTo(e+d,n-a),t.lineTo(e+a,n+d),t.lineTo(e-d,n+a),t.closePath();break;case"crossRot":i+=$;case"cross":a=Math.cos(i)*o,d=Math.sin(i)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"star":a=Math.cos(i)*o,d=Math.sin(i)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a),i+=$,a=Math.cos(i)*o,d=Math.sin(i)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"line":a=Math.cos(i)*o,d=Math.sin(i)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(i)*o,n+Math.sin(i)*o);break}t.fill()}function wn(t,e,n,o){t.save();const r=e.length;let s=0,i=o;for(let a=0;a<r;a++){const d=n[Math.min(a,n.length-1)];t.font=d.string;const l=e[a];s=Math.max(s,t.measureText(l).width+o),i+=d.lineHeight}return t.restore(),{width:s,height:i}}function Sn(t,{x:e,y:n},o,r){t.beginPath();let s=0;o.forEach(function(i,a){const d=r[Math.min(a,r.length-1)],l=d.lineHeight;t.font=d.string,t.strokeText(i,e,n+l/2+s),s+=l}),t.stroke()}function Cn(t,{x:e,y:n},o,{fonts:r,colors:s}){let i=0;o.forEach(function(a,d){const l=s[Math.min(d,s.length-1)],c=r[Math.min(d,r.length-1)],u=c.lineHeight;t.beginPath(),t.font=c.string,t.fillStyle=l,t.fillText(a,e,n+u/2+i),i+=u,t.fill()})}function Pn(t,e){const n=Xe(t)?t:e;return Xe(n)?ue(n,0,1):1}const Ve={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function B(t,e,n){return e=typeof e=="number"?e:t.parse(e),ut(e)?t.getPixelForValue(e):n}function L(t,e,n){const o=e[n];if(o||n==="scaleID")return o;const r=n.charAt(0),s=Object.values(t).filter(i=>i.axis&&i.axis===r);return s.length?s[0].id:r}function St(t,e){if(t){const n=t.options.reverse,o=B(t,e.min,n?e.end:e.start),r=B(t,e.max,n?e.start:e.end);return{start:o,end:r}}}function Ct(t,e){const{chartArea:n,scales:o}=t,r=o[L(o,e,"xScaleID")],s=o[L(o,e,"yScaleID")];let i=n.width/2,a=n.height/2;return r&&(i=B(r,e.xValue,r.left+r.width/2)),s&&(a=B(s,e.yValue,s.top+s.height/2)),{x:i,y:a}}function Te(t,e){const n=t.scales,o=n[L(n,e,"xScaleID")],r=n[L(n,e,"yScaleID")];if(!o&&!r)return{};let{left:s,right:i}=o||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=qe(o,{min:e.xMin,max:e.xMax,start:s,end:i});s=l.start,i=l.end;const c=qe(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:s,y:a,x2:i,y2:d,width:i-s,height:d-a,centerX:s+(i-s)/2,centerY:a+(d-a)/2}}function Pt(t,e){if(!pt(e)){const n=Te(t,e);let o=e.radius;(!o||isNaN(o))&&(o=Math.min(n.width,n.height)/2,e.radius=o);const r=o*2,s=n.centerX+e.xAdjust,i=n.centerY+e.yAdjust;return{x:s-o,y:i-o,x2:s+o,y2:i+o,centerX:s,centerY:i,width:r,height:r,radius:o}}return jn(t,e)}function Mn(t,e){const{scales:n,chartArea:o}=t,r=n[e.scaleID],s={x:o.left,y:o.top,x2:o.right,y2:o.bottom};return r?kn(r,s,e):Dn(n,s,e),s}function Mt(t,e,n){const o=Te(t,e);return o.initProperties=Z(t,o,e,n),o.elements=[{type:"label",optionScope:"label",properties:In(t,o,e),initProperties:o.initProperties}],o}function jn(t,e){const n=Ct(t,e),o=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:o,height:o}}function qe(t,e){const n=St(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function kn(t,e,n){const o=B(t,n.value,NaN),r=B(t,n.endValue,o);t.isHorizontal()?(e.x=o,e.x2=r):(e.y=o,e.y2=r)}function Dn(t,e,n){for(const o of Object.keys(Ve)){const r=t[L(t,n,o)];if(r){const{min:s,max:i,start:a,end:d,startProp:l,endProp:c}=Ve[o],u=St(r,{min:n[s],max:n[i],start:r[a],end:r[d]});e[l]=u.start,e[c]=u.end}}}function vn({properties:t,options:e},n,o,r){const{x:s,x2:i,width:a}=t;return jt({start:s,end:i,size:a,borderWidth:e.borderWidth},{position:o.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:n.width})}function An({properties:t,options:e},n,o,r){const{y:s,y2:i,height:a}=t;return jt({start:s,end:i,size:a,borderWidth:e.borderWidth},{position:o.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:n.height})}function jt(t,e){const{start:n,end:o,borderWidth:r}=t,{position:s,padding:{start:i,end:a},adjust:d}=e,l=o-r-n-i-a-e.size;return n+r/2+d+Ae(l,s)}function In(t,e,n){const o=n.label;o.backgroundColor="transparent",o.callout.display=!1;const r=Ie(o.position),s=ce(o.padding),i=Re(t.ctx,o),a=vn({properties:e,options:n},i,r,s),d=An({properties:e,options:n},i,r,s),l=i.width+s.width,c=i.height+s.height;return{x:a,y:d,x2:a+l,y2:d+c,width:l,height:c,centerX:a+l/2,centerY:d+c/2,rotation:o.rotation}}function W(t,e,n){const o=Math.cos(n),r=Math.sin(n),s=e.x,i=e.y;return{x:s+o*(t.x-s)-r*(t.y-i),y:i+r*(t.x-s)+o*(t.y-i)}}const xe=["enter","leave"],Oe=xe.concat("click");function En(t,e,n){e.listened=mt(n,Oe,e.listeners),e.moveListened=!1,e._getElements=ve,xe.forEach(o=>{Y(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&Y(o.click)&&(e.listened=!0),e.moveListened||xe.forEach(r=>{Y(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function Rn(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Tn(t,e,n);case"click":return On(t,e,n)}}function Tn(t,e,n){if(!t.moveListened)return;let o;e.type==="mousemove"?o=ve(t,e,n.interaction):o=[];const r=t.hovered;t.hovered=o;const s={state:t,event:e};let i=Ge(s,"leave",r,o);return Ge(s,"enter",o,r)||i}function Ge({state:t,event:e},n,o,r){let s;for(const i of o)r.indexOf(i)<0&&(s=kt(i.options[n]||t.listeners[n],i,e)||s);return s}function On(t,e,n){const o=t.listeners,r=ve(t,e,n.interaction);let s;for(const i of r)s=kt(i.options.click||o.click,i,e)||s;return s}function kt(t,e,n){return De(t,[e.$context,n])===!0}const le=["afterDraw","beforeDraw"];function Ln(t,e,n){const o=e.visibleElements;e.hooked=mt(n,le,e.hooks),e.hooked||o.forEach(r=>{e.hooked||le.forEach(s=>{Y(r.options[s])&&(e.hooked=!0)})})}function Je(t,e,n){if(t.hooked){const o=e.options[n]||t.hooks[n];return De(o,[e.$context])}}function Wn(t,e,n){const o=zn(t.scales,e,n);let r=Fe(e,o,"min","suggestedMin");r=Fe(e,o,"max","suggestedMax")||r,r&&Y(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Yn(t,e){for(const n of t)Xn(n,e)}function Fe(t,e,n,o){if(ut(e[n])&&!Bn(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Bn(t,e,n){return M(t[e])||M(t[n])}function Xn(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const o=L(e,t,n);o&&!e[o]&&_n(t,n)&&console.warn(`No scale found with id '${o}' for annotation '${t.id}'`)}}function _n(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const o of["Min","Max","Value"])if(M(t[n+o]))return!0;return!1}function zn(t,e,n){const o=e.axis,r=e.id,s=o+"ScaleID",i={min:F(e.min,Number.NEGATIVE_INFINITY),max:F(e.max,Number.POSITIVE_INFINITY)};for(const a of n)a.scaleID===r?Ke(a,e,["value","endValue"],i):L(t,a,s)===r&&Ke(a,e,[o+"Min",o+"Max",o+"Value"],i);return i}function Ke(t,e,n,o){for(const r of n){const s=t[r];if(M(s)){const i=e.parse(s);o.min=Math.min(o.min,i),o.max=Math.max(o.max,i)}}}class H extends X{inRange(e,n,o,r){const{x:s,y:i}=W({x:e,y:n},this.getCenterPoint(r),j(-this.options.rotation));return ht({x:s,y:i},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return _(this,e)}draw(e){e.save(),Ee(e,this.getCenterPoint(),this.options.rotation),wt(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Mt(e,n)}}H.id="boxAnnotation";H.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};H.defaultRoutes={borderColor:"color",backgroundColor:"color"};H.descriptors={label:{_fallback:!0}};const Dt=["left","bottom","top","right"];class ee extends X{inRange(e,n,o,r){const{x:s,y:i}=W({x:e,y:n},this.getCenterPoint(r),j(-this.rotation));return ht({x:s,y:i},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return _(this,e)}draw(e){const n=this.options,o=!M(this._visible)||this._visible;!n.display||!n.content||!o||(e.save(),Ee(e,this.getCenterPoint(),this.rotation),Nn(e,this),wt(e,this,n),bn(e,Fn(this),n),e.restore())}resolveElementProperties(e,n){let o;if(pt(n))o=Ct(e,n);else{const{centerX:a,centerY:d}=Te(e,n);o={x:a,y:d}}const r=ce(n.padding),s=Re(e.ctx,n),i=Hn(o,s,n,r);return{initProperties:Z(e,i,n),pointX:o.x,pointY:o.y,...i,rotation:n.rotation}}}ee.id="labelAnnotation";ee.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ee.defaultRoutes={borderColor:"color"};function Hn(t,e,n,o){const r=e.width+o.width+n.borderWidth,s=e.height+o.height+n.borderWidth,i=Ie(n.position,"center"),a=Qe(t.x,r,n.xAdjust,i.x),d=Qe(t.y,s,n.yAdjust,i.y);return{x:a,y:d,x2:a+r,y2:d+s,width:r,height:s,centerX:a+r/2,centerY:d+s/2}}function Qe(t,e,n=0,o){return t-Ae(e,o)+n}function Nn(t,e){const{pointX:n,pointY:o,options:r}=e,s=r.callout,i=s&&s.display&&Gn(e,s);if(!i||Kn(e,s,i))return;if(t.save(),t.beginPath(),!I(t,s))return t.restore();const{separatorStart:d,separatorEnd:l}=Un(e,i),{sideStart:c,sideEnd:u}=Vn(e,i,d);(s.margin>0||r.borderWidth===0)&&(t.moveTo(d.x,d.y),t.lineTo(l.x,l.y)),t.moveTo(c.x,c.y),t.lineTo(u.x,u.y);const h=W({x:n,y:o},e.getCenterPoint(),j(-e.rotation));t.lineTo(h.x,h.y),t.stroke(),t.restore()}function Un(t,e){const{x:n,y:o,x2:r,y2:s}=t,i=$n(t,e);let a,d;return e==="left"||e==="right"?(a={x:n+i,y:o},d={x:a.x,y:s}):(a={x:n,y:o+i},d={x:r,y:a.y}),{separatorStart:a,separatorEnd:d}}function $n(t,e){const{width:n,height:o,options:r}=t,s=r.callout.margin+r.borderWidth/2;return e==="right"?n+s:e==="bottom"?o+s:-s}function Vn(t,e,n){const{y:o,width:r,height:s,options:i}=t,a=i.callout.start,d=qn(e,i.callout);let l,c;return e==="left"||e==="right"?(l={x:n.x,y:o+A(s,a)},c={x:l.x+d,y:l.y}):(l={x:n.x+A(r,a),y:n.y},c={x:l.x,y:l.y+d}),{sideStart:l,sideEnd:c}}function qn(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function Gn(t,e){const n=e.position;return Dt.includes(n)?n:Jn(t,e)}function Jn(t,e){const{x:n,y:o,x2:r,y2:s,width:i,height:a,pointX:d,pointY:l,centerX:c,centerY:u,rotation:h}=t,g={x:c,y:u},y=e.start,b=A(i,y),w=A(a,y),p=[n,n+b,n+b,r],m=[o+w,s,o,s],S=[];for(let C=0;C<4;C++){const N=W({x:p[C],y:m[C]},g,j(h));S.push({position:Dt[C],distance:ke(N,{x:d,y:l})})}return S.sort((C,N)=>C.distance-N.distance)[0].position}function Fn({x:t,y:e,width:n,height:o,options:r}){const s=r.borderWidth/2,i=ce(r.padding);return{x:t+i.left+s,y:e+i.top+s,width:n-i.left-i.right-r.borderWidth,height:o-i.top-i.bottom-r.borderWidth}}function Kn(t,e,n){const{pointX:o,pointY:r}=t,s=e.margin;let i=o,a=r;return n==="left"?i+=s:n==="right"?i-=s:n==="top"?a+=s:n==="bottom"&&(a-=s),t.inRange(i,a)}const Le=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),we=(t,e,n)=>Le(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,Ze=(t,e,n)=>Le(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,G=t=>t*t,Qn=(t,e,{x:n,y:o,x2:r,y2:s},i)=>i==="y"?{start:Math.min(o,s),end:Math.max(o,s),value:e}:{start:Math.min(n,r),end:Math.max(n,r),value:t},et=(t,e,n,o)=>(1-o)*(1-o)*t+2*(1-o)*o*e+o*o*n,Se=(t,e,n,o)=>({x:et(t.x,e.x,n.x,o),y:et(t.y,e.y,n.y,o)}),tt=(t,e,n,o)=>2*(1-o)*(e-t)+2*o*(n-e),nt=(t,e,n,o)=>-Math.atan2(tt(t.x,e.x,n.x,o),tt(t.y,e.y,n.y,o))+.5*x;class te extends X{inRange(e,n,o,r){const s=this.options.borderWidth/2;if(o!=="x"&&o!=="y"){const i={mouseX:e,mouseY:n},{path:a,ctx:d}=this;if(a){I(d,this.options);const{chart:c}=this.$context,u=e*c.currentDevicePixelRatio,h=n*c.currentDevicePixelRatio,g=d.isPointInStroke(a,u,h)||Ce(this,i,r);return d.restore(),g}const l=G(s);return no(this,i,l,r)||Ce(this,i,r)}return Zn(this,{mouseX:e,mouseY:n},o,{hBorderWidth:s,useFinalPosition:r})}getCenterPoint(e){return _(this,e)}draw(e){const{x:n,y:o,x2:r,y2:s,cp:i,options:a}=this;if(e.save(),!I(e,a))return e.restore();z(e,a);const d=Math.sqrt(Math.pow(r-n,2)+Math.pow(s-o,2));if(a.curve&&i)return uo(e,this,i,d),e.restore();const{startOpts:l,endOpts:c,startAdjust:u,endAdjust:h}=vt(this),g=Math.atan2(s-o,r-n);e.translate(n,o),e.rotate(g),e.beginPath(),e.moveTo(0+u,0),e.lineTo(d-h,0),e.shadowColor=a.borderShadowColor,e.stroke(),Pe(e,0,u,l),Pe(e,d,-h,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const o=Mn(e,n),{x:r,y:s,x2:i,y2:a}=o,d=eo(o,e.chartArea),l=d?to({x:r,y:s},{x:i,y:a},e.chartArea):{x:r,y:s,x2:i,y2:a,width:Math.abs(i-r),height:Math.abs(a-s)};if(l.centerX=(i+r)/2,l.centerY=(a+s)/2,l.initProperties=Z(e,l,n),n.curve){const u={x:l.x,y:l.y},h={x:l.x2,y:l.y2};l.cp=co(l,n,ke(u,h))}const c=oo(e,l,n.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}te.id="lineAnnotation";const ot={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};te.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},ot),fill:!1,length:12,start:Object.assign({},ot),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},ee.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};te.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};te.defaultRoutes={borderColor:"color"};function Zn(t,{mouseX:e,mouseY:n},o,{hBorderWidth:r,useFinalPosition:s}){const i=Qn(e,n,t.getProps(["x","y","x2","y2"],s),o);return i.value>=i.start-r&&i.value<=i.end+r||Ce(t,{mouseX:e,mouseY:n},s,o)}function eo({x:t,y:e,x2:n,y2:o},{top:r,right:s,bottom:i,left:a}){return!(t<a&&n<a||t>s&&n>s||e<r&&o<r||e>i&&o>i)}function rt({x:t,y:e},n,{top:o,right:r,bottom:s,left:i}){return t<i&&(e=Ze(i,{x:t,y:e},n),t=i),t>r&&(e=Ze(r,{x:t,y:e},n),t=r),e<o&&(t=we(o,{x:t,y:e},n),e=o),e>s&&(t=we(s,{x:t,y:e},n),e=s),{x:t,y:e}}function to(t,e,n){const{x:o,y:r}=rt(t,e,n),{x:s,y:i}=rt(e,t,n);return{x:o,y:r,x2:s,y2:i,width:Math.abs(s-o),height:Math.abs(i-r)}}function no(t,{mouseX:e,mouseY:n},o=T,r){const{x:s,y:i,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-s,c=d-i,u=G(l)+G(c),h=u===0?-1:((e-s)*l+(n-i)*c)/u;let g,y;return h<0?(g=s,y=i):h>1?(g=a,y=d):(g=s+h*l,y=i+h*c),G(e-g)+G(n-y)<=o}function Ce(t,{mouseX:e,mouseY:n},o,r){const s=t.label;return s.options.display&&s.inRange(e,n,r,o)}function oo(t,e,n){const o=n.borderWidth,r=ce(n.padding),s=Re(t.ctx,n),i=s.width+r.width+o,a=s.height+r.height+o;return so(e,n,{width:i,height:a,padding:r},t.chartArea)}function ro(t){const{x:e,y:n,x2:o,y2:r}=t,s=Math.atan2(r-n,o-e);return s>x/2?s-x:s<x/-2?s+x:s}function so(t,e,n,o){const{width:r,height:s,padding:i}=n,{xAdjust:a,yAdjust:d}=e,l={x:t.x,y:t.y},c={x:t.x2,y:t.y2},u=e.rotation==="auto"?ro(t):j(e.rotation),h=io(r,s,u),g=ao(t,e,{labelSize:h,padding:i},o),y=t.cp?Se(l,t.cp,c,g):Le(l,c,g),b={size:h.w,min:o.left,max:o.right,padding:i.left},w={size:h.h,min:o.top,max:o.bottom,padding:i.top},p=it(y.x,b)+a,m=it(y.y,w)+d;return{x:p-r/2,y:m-s/2,x2:p+r/2,y2:m+s/2,centerX:p,centerY:m,pointX:y.x,pointY:y.y,width:r,height:s,rotation:Wt(u)}}function io(t,e,n){const o=Math.cos(n),r=Math.sin(n);return{w:Math.abs(t*o)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*o)}}function ao(t,e,n,o){let r;const s=lo(t,o);return e.position==="start"?r=st({w:t.x2-t.x,h:t.y2-t.y},n,e,s):e.position==="end"?r=1-st({w:t.x-t.x2,h:t.y-t.y2},n,e,s):r=Ae(1,e.position),r}function st(t,e,n,o){const{labelSize:r,padding:s}=e,i=t.w*o.dx,a=t.h*o.dy,d=i>0&&(r.w/2+s.left-o.x)/i,l=a>0&&(r.h/2+s.top-o.y)/a;return ue(Math.max(d,l),0,.25)}function lo(t,e){const{x:n,x2:o,y:r,y2:s}=t,i=Math.min(r,s)-e.top,a=Math.min(n,o)-e.left,d=e.bottom-Math.max(r,s),l=e.right-Math.max(n,o);return{x:Math.min(a,l),y:Math.min(i,d),dx:a<=l?1:-1,dy:i<=d?1:-1}}function it(t,e){const{size:n,min:o,max:r,padding:s}=e,i=n/2;return n>r-o?(r+o)/2:(o>=t-s-i&&(t=o+s+i),r<=t+s+i&&(t=r-s-i),t)}function vt(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,o=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:o,startAdjust:at(t,n),endAdjust:at(t,o)}}function at(t,e){if(!e||!e.display)return 0;const{length:n,width:o}=e,r=t.options.borderWidth/2,s={x:n,y:o+r};return Math.abs(we(0,s,{x:0,y:r}))}function Pe(t,e,n,o){if(!o||!o.display)return;const{length:r,width:s,fill:i,backgroundColor:a,borderColor:d}=o,l=Math.abs(e-r)+n;t.beginPath(),z(t,o),I(t,o),t.moveTo(l,-s),t.lineTo(e+n,0),t.lineTo(l,s),i===!0?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=o.borderShadowColor,t.stroke()}function co(t,e,n){const{x:o,y:r,x2:s,y2:i,centerX:a,centerY:d}=t,l=Math.atan2(i-r,s-o),c=Ie(e.controlPoint,0),u={x:a+A(n,c.x,!1),y:d+A(n,c.y,!1)};return W(u,{x:a,y:d},l)}function dt(t,{x:e,y:n},{angle:o,adjust:r},s){!s||!s.display||(t.save(),t.translate(e,n),t.rotate(o),Pe(t,0,-r,s),t.restore())}function uo(t,e,n,o){const{x:r,y:s,x2:i,y2:a,options:d}=e,{startOpts:l,endOpts:c,startAdjust:u,endAdjust:h}=vt(e),g={x:r,y:s},y={x:i,y:a},b=nt(g,n,y,0),w=nt(g,n,y,1)-x,p=Se(g,n,y,u/o),m=Se(g,n,y,1-h/o),S=new Path2D;t.beginPath(),S.moveTo(p.x,p.y),S.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=d.borderShadowColor,t.stroke(S),e.path=S,e.ctx=t,dt(t,p,{angle:b,adjust:u},l),dt(t,m,{angle:w,adjust:h},c)}class ne extends X{inRange(e,n,o,r){const s=this.options.rotation,i=this.options.borderWidth;if(o!=="x"&&o!=="y")return fo({x:e,y:n},this.getProps(["width","height","centerX","centerY"],r),s,i);const{x:a,y:d,x2:l,y2:c}=this.getProps(["x","y","x2","y2"],r),u=i/2,h=o==="y"?{start:d,end:c}:{start:a,end:l},g=W({x:e,y:n},this.getCenterPoint(r),j(-s));return g[o]>=h.start-u-T&&g[o]<=h.end+u+T}getCenterPoint(e){return _(this,e)}draw(e){const{width:n,height:o,centerX:r,centerY:s,options:i}=this;e.save(),Ee(e,this.getCenterPoint(),i.rotation),z(e,this.options),e.beginPath(),e.fillStyle=i.backgroundColor;const a=I(e,i);e.ellipse(r,s,o/2,n/2,x/2,0,2*x),e.fill(),a&&(e.shadowColor=i.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Mt(e,n,!0)}}ne.id="ellipseAnnotation";ne.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},H.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};ne.defaultRoutes={borderColor:"color",backgroundColor:"color"};ne.descriptors={label:{_fallback:!0}};function fo(t,e,n,o){const{width:r,height:s,centerX:i,centerY:a}=e,d=r/2,l=s/2;if(d<=0||l<=0)return!1;const c=j(n||0),u=o/2||0,h=Math.cos(c),g=Math.sin(c),y=Math.pow(h*(t.x-i)+g*(t.y-a),2),b=Math.pow(g*(t.x-i)-h*(t.y-a),2);return y/Math.pow(d+u,2)+b/Math.pow(l+u,2)<=1.0001}class he extends X{inRange(e,n,o,r){const{x:s,y:i,x2:a,y2:d,width:l}=this.getProps(["x","y","x2","y2","width"],r),c=this.options.borderWidth;if(o!=="x"&&o!=="y")return cn({x:e,y:n},this.getCenterPoint(r),l/2,c);const u=c/2,h=o==="y"?{start:i,end:d,value:n}:{start:s,end:a,value:e};return h.value>=h.start-u&&h.value<=h.end+u}getCenterPoint(e){return _(this,e)}draw(e){const n=this.options,o=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,z(e,n);const r=I(e,n);mn(e,this,this.centerX,this.centerY),r&&!fe(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=o}resolveElementProperties(e,n){const o=Pt(e,n);return o.initProperties=Z(e,o,n,!0),o}}he.id="pointAnnotation";he.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};he.defaultRoutes={borderColor:"color",backgroundColor:"color"};class ge extends X{inRange(e,n,o,r){if(o!=="x"&&o!=="y")return this.options.radius>=.1&&this.elements.length>1&&go(this.elements,e,n,r);const s=W({x:e,y:n},this.getCenterPoint(r),j(-this.options.rotation)),i=this.elements.map(l=>o==="y"?l.bY:l.bX),a=Math.min(...i),d=Math.max(...i);return s[o]>=a&&s[o]<=d}getCenterPoint(e){return _(this,e)}draw(e){const{elements:n,options:o}=this;e.save(),e.beginPath(),e.fillStyle=o.backgroundColor,z(e,o);const r=I(e,o);let s=!0;for(const i of n)s?(e.moveTo(i.x,i.y),s=!1):e.lineTo(i.x,i.y);e.closePath(),e.fill(),r&&(e.shadowColor=o.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const o=Pt(e,n),{sides:r,rotation:s}=n,i=[],a=2*x/r;let d=s*ft;for(let l=0;l<r;l++,d+=a){const c=ho(o,n,d);c.initProperties=Z(e,o,n),i.push(c)}return o.elements=i,o}}ge.id="polygonAnnotation";ge.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ge.defaultRoutes={borderColor:"color",backgroundColor:"color"};function ho({centerX:t,centerY:e},{radius:n,borderWidth:o},r){const s=o/2,i=Math.sin(r),a=Math.cos(r),d={x:t+i*n,y:e-a*n};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+i*(n+s),bY:e-a*(n+s)}}}function go(t,e,n,o){let r=!1,s=t[t.length-1].getProps(["bX","bY"],o);for(const i of t){const a=i.getProps(["bX","bY"],o);a.bY>n!=s.bY>n&&e<(s.bX-a.bX)*(n-a.bY)/(s.bY-a.bY)+a.bX&&(r=!r),s=a}return r}const v={box:H,ellipse:ne,label:ee,line:te,point:he,polygon:ge};Object.keys(v).forEach(t=>{Lt.describe(`elements.${v[t].id}`,{_fallback:"plugins.annotation.common"})});const yo={update:Object.assign},bo=Oe.concat(le),lt=(t,e)=>Q(e)?je(t,e):t,Me=t=>t==="color"||t==="font";function We(t="line"){return v[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function po(t,e,n,o){const r=xo(t,n.animations,o),s=e.annotations,i=Co(e.elements,s);for(let a=0;a<s.length;a++){const d=s[a],l=At(i,a,d.type),c=d.setContext(So(t,l,d)),u=l.resolveElementProperties(t,c);u.skip=mo(u),"elements"in u&&(wo(l,u.elements,c,r),delete u.elements),M(l.x)||Object.assign(l,u),Object.assign(l,u.initProperties),u.options=It(c),r.update(l,u)}}function mo(t){return isNaN(t.x)||isNaN(t.y)}function xo(t,e,n){return n==="reset"||n==="none"||n==="resize"?yo:new Ht(t,e)}function wo(t,e,n,o){const r=t.elements||(t.elements=[]);r.length=e.length;for(let s=0;s<e.length;s++){const i=e[s],a=i.properties,d=At(r,s,i.type,i.initProperties),l=n[i.optionScope].override(i);a.options=It(l),o.update(d,a)}}function At(t,e,n,o){const r=v[We(n)];let s=t[e];return(!s||!(s instanceof r))&&(s=t[e]=new r,Object.assign(s,o)),s}function It(t){const e=v[We(t.type)],n={};n.id=t.id,n.type=t.type,n.drawTime=t.drawTime,Object.assign(n,je(t,e.defaults),je(t,e.defaultRoutes));for(const o of bo)n[o]=t[o];return n}function je(t,e){const n={};for(const o of Object.keys(e)){const r=e[o],s=t[o];Me(o)&&O(s)?n[o]=s.map(i=>lt(i,r)):n[o]=lt(s,r)}return n}function So(t,e,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:n.id,type:"annotation"}))}function Co(t,e){const n=e.length,o=t.length;if(o<n){const r=n-o;t.splice(o,0,...new Array(r))}else o>n&&t.splice(n,o-n);return t}var Po="2.2.1";const D=new Map,Mo=Oe.concat(le);var jo={id:"annotation",version:Po,beforeRegister(){un("chart.js","3.7",ie.version)},afterRegister(){ie.register(v)},afterUnregister(){ie.unregister(v)},beforeInit(t){D.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const o=D.get(t),r=o.annotations=[];let s=n.annotations;Q(s)?Object.keys(s).forEach(i=>{const a=s[i];Q(a)&&(a.id=i,r.push(a))}):O(s)&&r.push(...s),Yn(r,t.scales)},afterDataLimits(t,e){const n=D.get(t);Wn(t,e.scale,n.annotations.filter(o=>o.display&&o.adjustScaleRange))},afterUpdate(t,e,n){const o=D.get(t);En(t,o,n),po(t,o,n,e.mode),o.visibleElements=o.elements.filter(r=>!r.skip&&r.options.display),Ln(t,o,n)},beforeDatasetsDraw(t,e,n){se(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){se(t,"afterDatasetsDraw",n.clip)},beforeDraw(t,e,n){se(t,"beforeDraw",n.clip)},afterDraw(t,e,n){se(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const o=D.get(t);Rn(o,e.event,n)&&(e.changed=!0)},afterDestroy(t){D.delete(t)},_getState(t){return D.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Mo.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${v[We(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Me,_fallback:!0},_indexable:Me}},additionalOptionScopes:[""]};function se(t,e,n){const{ctx:o,chartArea:r}=t,s=D.get(t);n&&Yt(o,r);const i=ko(s.visibleElements,e).sort((a,d)=>a.element.options.z-d.element.options.z);for(const a of i)Do(o,r,s,a);n&&Bt(o)}function ko(t,e){const n=[];for(const o of t)if(o.options.drawTime===e&&n.push({element:o,main:!0}),o.elements&&o.elements.length)for(const r of o.elements)r.options.display&&r.options.drawTime===e&&n.push({element:r});return n}function Do(t,e,n,o){const r=o.element;o.main?(Je(n,r,"beforeDraw"),r.draw(t,e),Je(n,r,"afterDraw")):r.draw(t,e)}const vo=E(K)(({theme:t})=>({display:"grid",gap:t.spacing(5)})),Ao={id:"customLine",beforeDraw:t=>{var n;if((n=t.tooltip)!=null&&n.opacity&&t.tooltip.x){const o=t.tooltip.caretX,r=t.scales.y,s=t.ctx;s.save();const i=s.createLinearGradient(o,r.top,o,r.bottom+34);i.addColorStop(0,"rgba(129, 122, 254, 0)"),i.addColorStop(1,"rgba(129, 122, 254, 0.12)"),s.fillStyle=i,s.roundRect(o-46/2,r.top,46,r.bottom-r.top+34,5),s.fill(),s.restore()}}},Io=(t,e,n)=>({plugins:{annotation:{clip:!1,annotations:{line:{type:"line",borderDash:[5,5],yMin:n?n/30:0,yMax:n?n/30:0,borderColor:"gray",borderWidth:1,display:!!n,label:{backgroundColor:"rgba(192, 192, 192, 0.8)",color:"black",padding:{top:10,bottom:10,left:10,right:10},content:"Average daily requests included in your plan",display:!!n}}}},legend:{position:"bottom",labels:{color:t.palette.text.primary,pointStyle:"circle",usePointStyle:!0,boxHeight:6,padding:15,boxPadding:5}},tooltip:{backgroundColor:t.palette.background.paper,titleColor:t.palette.text.primary,bodyColor:t.palette.text.primary,bodySpacing:6,padding:{top:20,bottom:20,left:30,right:30},borderColor:"rgba(0, 0, 0, 0.05)",borderWidth:3,usePointStyle:!0,caretSize:0,boxPadding:10,callbacks:{title:e}}},responsive:!0,scales:{x:{stacked:!0,ticks:{color:t.palette.text.secondary},grid:{display:!1}},y:{stacked:!0,ticks:{color:t.palette.text.secondary,maxTicksLimit:5,callback:(o,r,s)=>{if(typeof o=="string")return o;const i=Number.parseInt(o.toString());return i>999999?`${i/1e6}M`:i>999?`${i/1e3}k`:i}},grid:{drawBorder:!1}}},elements:{bar:{borderRadius:5}},interaction:{mode:"index",intersect:!1}}),Eo=53e6,Bo=()=>{Nt("Network - Data Usage");const t=Ut(),{isOss:e,isPro:n}=$t(),{record:o,period:r,setPeriod:s,selectablePeriods:i,getDayLabels:a,toChartData:d,toTrafficUsageSum:l,endpointsInfo:c,calculateOverageCost:u,calculateEstimatedMonthlyCost:h}=en(),g=n()?Eo:0,y=P.useMemo(()=>Io(t,k=>{const oe=o[r];return new Date(oe.year,oe.month,Number.parseInt(k[0].label)).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})},g),[t,r]),b=tn(r),[w,p]=P.useState([]),[m,S]=P.useState([]),[C,N]=P.useState(0),[Ye,Et]=P.useState(0),[Rt,Tt]=P.useState(0),U={labels:w,datasets:m},Ot=ct("displayTrafficDataUsage");return P.useEffect(()=>{S(d(w,b,c))},[w,b]),P.useEffect(()=>{if(o&&r){const k=o[r];p(a(k.dayCount))}},[r]),P.useEffect(()=>{if(U){const k=l(U.datasets);if(N(k),g>0){const oe=u(k,g);Et(oe),Tt(h(r,U.datasets,g,new Date))}}},[U]),f.jsx(J,{condition:e()||!Ot,show:f.jsx(_e,{severity:"warning",children:"Not enabled."}),elseShow:f.jsxs(f.Fragment,{children:[f.jsx(J,{condition:g>0&&Ye>0,show:f.jsxs(_e,{severity:"warning",sx:{mb:4},children:[f.jsx("b",{children:"Heads up!"})," You are currently consuming more requests than your plan includes and will be billed according to our terms. Please see"," ",f.jsx(me,{component:ze,to:"https://www.getunleash.io/pricing",children:"this page"})," ","for more information. In order to reduce your traffic consumption, you may configure an"," ",f.jsx(me,{component:ze,to:"https://docs.getunleash.io/reference/unleash-edge",children:"Unleash Edge instance"})," ","in your own datacenter."]})}),f.jsxs(vo,{children:[f.jsxs(R,{container:!0,component:"header",spacing:2,children:[f.jsx(R,{item:!0,xs:12,md:10,children:f.jsx(on,{usageTotal:C,includedTraffic:g,overageCost:Ye,estimatedMonthlyCost:Rt})}),f.jsx(R,{item:!0,xs:12,md:2,children:f.jsx(Vt,{id:"dataperiod-select",name:"dataperiod",options:i,value:r,onChange:k=>s(k.target.value),style:{minWidth:"100%",marginBottom:t.spacing(2)},formControlStyles:{width:"100%"}})})]}),f.jsx(R,{item:!0,xs:12,md:2,children:f.jsx(Zt,{data:U,plugins:[Ao],options:y,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})]})]})})};ie.register(jo,qt,Gt,Jt,Ft,Kt,Qt);export{Bo as NetworkTrafficUsage,Bo as default};
|
|
6
|
+
*/const $e={modes:{point(t,e){return ae(t,e,{intersect:!0})},nearest(t,e,n){return an(t,e,n)},x(t,e,n){return ae(t,e,{intersect:n.intersect,axis:"x"})},y(t,e,n){return ae(t,e,{intersect:n.intersect,axis:"y"})}}};function ve(t,e,n){return($e.modes[n.mode]||$e.modes.nearest)(t,e,n)}function rn(t,e,n){return n!=="x"&&n!=="y"?t.inRange(e.x,e.y,"x",!0)||t.inRange(e.x,e.y,"y",!0):t.inRange(e.x,e.y,n,!0)}function sn(t,e,n){return n==="x"?{x:t.x,y:e.y}:n==="y"?{x:e.x,y:t.y}:e}function ae(t,e,n){return t.visibleElements.filter(o=>n.intersect?o.inRange(e.x,e.y):rn(o,e,n.axis))}function an(t,e,n){let o=Number.POSITIVE_INFINITY;return ae(t,e,n).reduce((r,i)=>{const s=i.getCenterPoint(),a=sn(e,s,n.axis),d=ke(e,a);return d<o?(r=[i],o=d):d===o&&r.push(i),r},[]).sort((r,i)=>r._index-i._index).slice(0,1)}const dn=(t,e)=>e>t||t.length>e.length&&t.slice(0,e.length)===e,T=.001,ue=(t,e,n)=>Math.min(n,Math.max(e,t));function ln(t,e,n){for(const o of Object.keys(t))t[o]=ue(t[o],e,n);return t}function cn(t,e,n,o){if(!t||!e||n<=0)return!1;const r=o/2;return Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2)<=Math.pow(n+r,2)}function ht(t,{x:e,y:n,x2:o,y2:r},i,s){const a=s/2,d=t.x>=e-a-T&&t.x<=o+a+T,l=t.y>=n-a-T&&t.y<=r+a+T;return i==="x"?d:(i==="y"||d)&&l}function _(t,e){const{centerX:n,centerY:o}=t.getProps(["centerX","centerY"],e);return{x:n,y:o}}function un(t,e,n,o=!0){const r=n.split(".");let i=0;for(const s of e.split(".")){const a=r[i++];if(parseInt(s,10)<parseInt(a,10))break;if(dn(a,s)){if(o)throw new Error(`${t} v${n} is not supported. v${e} or newer is required.`);return!1}}return!0}const gt=t=>typeof t=="string"&&t.endsWith("%"),yt=t=>parseFloat(t)/100,bt=t=>ue(yt(t),0,1);function Ae(t,e){return e==="start"?0:e==="end"?t:gt(e)?bt(e)*t:t/2}function A(t,e,n=!0){return typeof e=="number"?e:gt(e)?(n?bt(e):yt(e))*t:t}function fn(t,e){const{x:n,width:o}=t,r=e.textAlign;return r==="center"?n+o/2:r==="end"||r==="right"?n+o:n}function Ie(t,e="center"){return Q(t)?{x:F(t.x,e),y:F(t.y,e)}:(t=F(t,e),{x:t,y:t})}function pt(t){return t&&(M(t.xValue)||M(t.yValue))}function Z(t,e,n,o=!1){const r=n.init;if(r){if(r===!0)return xt(e,o)}else return;return hn(e,o,De(r,[{chart:t,properties:e,options:n}]))}function mt(t,e,n){let o=!1;return e.forEach(r=>{Y(t[r])?(o=!0,n[r]=t[r]):M(n[r])&&delete n[r]}),o}function xt({centerX:t,centerY:e},n){return n?{centerX:t,centerY:e,radius:0,width:0,height:0}:{x:t,y:e,x2:t,y2:e,width:0,height:0}}function hn(t,e,n){if(n===!0)return xt(t,e);if(Q(n))return n}const pe=new Map,gn=t=>isNaN(t)||t<=0,yn=t=>t.reduce(function(e,n){return e+=n.string,e},"");function fe(t){if(t&&typeof t=="object"){const e=t.toString();return e==="[object HTMLImageElement]"||e==="[object HTMLCanvasElement]"}}function Ee(t,{x:e,y:n},o){o&&(t.translate(e,n),t.rotate(j(o)),t.translate(-e,-n))}function I(t,e){if(e&&e.borderWidth)return t.lineCap=e.borderCapStyle,t.setLineDash(e.borderDash),t.lineDashOffset=e.borderDashOffset,t.lineJoin=e.borderJoinStyle,t.lineWidth=e.borderWidth,t.strokeStyle=e.borderColor,!0}function z(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function Re(t,e){const n=e.content;if(fe(n))return{width:A(n.width,e.width),height:A(n.height,e.height)};const o=e.font,r=O(o)?o.map(d=>de(d)):[de(o)],i=e.textStrokeWidth,s=O(n)?n:[n],a=s.join()+yn(r)+i+(t._measureText?"-spriting":"");return pe.has(a)||pe.set(a,wn(t,s,r,i)),pe.get(a)}function wt(t,e,n){const{x:o,y:r,width:i,height:s}=e;t.save(),z(t,n);const a=I(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),Xt(t,{x:o,y:r,w:i,h:s,radius:ln(_t(n.borderRadius),0,Math.min(i,s)/2)}),t.closePath(),t.fill(),a&&(t.shadowColor=n.borderShadowColor,t.stroke()),t.restore()}function bn(t,e,n){const o=n.content;if(fe(o)){t.save(),t.globalAlpha=Pn(n.opacity,o.style.opacity),t.drawImage(o,e.x,e.y,e.width,e.height),t.restore();return}const r=O(o)?o:[o],i=n.font,s=O(i)?i.map(u=>de(u)):[de(i)],a=n.color,d=O(a)?a:[a],l=fn(e,n),c=e.y+n.textStrokeWidth/2;t.save(),t.textBaseline="middle",t.textAlign=n.textAlign,pn(t,n)&&Sn(t,{x:l,y:c},r,s),Cn(t,{x:l,y:c},r,{fonts:s,colors:d}),t.restore()}function pn(t,e){if(e.textStrokeWidth>0)return t.lineJoin="round",t.miterLimit=2,t.lineWidth=e.textStrokeWidth,t.strokeStyle=e.textStrokeColor,!0}function mn(t,e,n,o){const{radius:r,options:i}=e,s=i.pointStyle,a=i.rotation;let d=(a||0)*ft;if(fe(s)){t.save(),t.translate(n,o),t.rotate(d),t.drawImage(s,-s.width/2,-s.height/2,s.width,s.height),t.restore();return}gn(r)||xn(t,{x:n,y:o,radius:r,rotation:a,style:s,rad:d})}function xn(t,{x:e,y:n,radius:o,rotation:r,style:i,rad:s}){let a,d,l,c;switch(t.beginPath(),i){default:t.arc(e,n,o,0,zt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Be,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Be,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),t.closePath();break;case"rectRounded":c=o*.516,l=o-c,a=Math.cos(s+$)*l,d=Math.sin(s+$)*l,t.arc(e-a,n-d,c,s-x,s-re),t.arc(e+d,n-a,c,s-re,s),t.arc(e+a,n+d,c,s,s+re),t.arc(e-d,n+a,c,s+re,s+x),t.closePath();break;case"rect":if(!r){l=Math.SQRT1_2*o,t.rect(e-l,n-l,2*l,2*l);break}s+=$;case"rectRot":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+d,n-a),t.lineTo(e+a,n+d),t.lineTo(e-d,n+a),t.closePath();break;case"crossRot":s+=$;case"cross":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"star":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a),s+=$,a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d),t.moveTo(e+d,n-a),t.lineTo(e-d,n+a);break;case"line":a=Math.cos(s)*o,d=Math.sin(s)*o,t.moveTo(e-a,n-d),t.lineTo(e+a,n+d);break;case"dash":t.moveTo(e,n),t.lineTo(e+Math.cos(s)*o,n+Math.sin(s)*o);break}t.fill()}function wn(t,e,n,o){t.save();const r=e.length;let i=0,s=o;for(let a=0;a<r;a++){const d=n[Math.min(a,n.length-1)];t.font=d.string;const l=e[a];i=Math.max(i,t.measureText(l).width+o),s+=d.lineHeight}return t.restore(),{width:i,height:s}}function Sn(t,{x:e,y:n},o,r){t.beginPath();let i=0;o.forEach(function(s,a){const d=r[Math.min(a,r.length-1)],l=d.lineHeight;t.font=d.string,t.strokeText(s,e,n+l/2+i),i+=l}),t.stroke()}function Cn(t,{x:e,y:n},o,{fonts:r,colors:i}){let s=0;o.forEach(function(a,d){const l=i[Math.min(d,i.length-1)],c=r[Math.min(d,r.length-1)],u=c.lineHeight;t.beginPath(),t.font=c.string,t.fillStyle=l,t.fillText(a,e,n+u/2+s),s+=u,t.fill()})}function Pn(t,e){const n=Xe(t)?t:e;return Xe(n)?ue(n,0,1):1}const Ve={xScaleID:{min:"xMin",max:"xMax",start:"left",end:"right",startProp:"x",endProp:"x2"},yScaleID:{min:"yMin",max:"yMax",start:"bottom",end:"top",startProp:"y",endProp:"y2"}};function B(t,e,n){return e=typeof e=="number"?e:t.parse(e),ut(e)?t.getPixelForValue(e):n}function W(t,e,n){const o=e[n];if(o||n==="scaleID")return o;const r=n.charAt(0),i=Object.values(t).filter(s=>s.axis&&s.axis===r);return i.length?i[0].id:r}function St(t,e){if(t){const n=t.options.reverse,o=B(t,e.min,n?e.end:e.start),r=B(t,e.max,n?e.start:e.end);return{start:o,end:r}}}function Ct(t,e){const{chartArea:n,scales:o}=t,r=o[W(o,e,"xScaleID")],i=o[W(o,e,"yScaleID")];let s=n.width/2,a=n.height/2;return r&&(s=B(r,e.xValue,r.left+r.width/2)),i&&(a=B(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function Te(t,e){const n=t.scales,o=n[W(n,e,"xScaleID")],r=n[W(n,e,"yScaleID")];if(!o&&!r)return{};let{left:i,right:s}=o||t.chartArea,{top:a,bottom:d}=r||t.chartArea;const l=qe(o,{min:e.xMin,max:e.xMax,start:i,end:s});i=l.start,s=l.end;const c=qe(r,{min:e.yMin,max:e.yMax,start:d,end:a});return a=c.start,d=c.end,{x:i,y:a,x2:s,y2:d,width:s-i,height:d-a,centerX:i+(s-i)/2,centerY:a+(d-a)/2}}function Pt(t,e){if(!pt(e)){const n=Te(t,e);let o=e.radius;(!o||isNaN(o))&&(o=Math.min(n.width,n.height)/2,e.radius=o);const r=o*2,i=n.centerX+e.xAdjust,s=n.centerY+e.yAdjust;return{x:i-o,y:s-o,x2:i+o,y2:s+o,centerX:i,centerY:s,width:r,height:r,radius:o}}return jn(t,e)}function Mn(t,e){const{scales:n,chartArea:o}=t,r=n[e.scaleID],i={x:o.left,y:o.top,x2:o.right,y2:o.bottom};return r?kn(r,i,e):Dn(n,i,e),i}function Mt(t,e,n){const o=Te(t,e);return o.initProperties=Z(t,o,e,n),o.elements=[{type:"label",optionScope:"label",properties:In(t,o,e),initProperties:o.initProperties}],o}function jn(t,e){const n=Ct(t,e),o=e.radius*2;return{x:n.x-e.radius+e.xAdjust,y:n.y-e.radius+e.yAdjust,x2:n.x+e.radius+e.xAdjust,y2:n.y+e.radius+e.yAdjust,centerX:n.x+e.xAdjust,centerY:n.y+e.yAdjust,radius:e.radius,width:o,height:o}}function qe(t,e){const n=St(t,e)||e;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function kn(t,e,n){const o=B(t,n.value,NaN),r=B(t,n.endValue,o);t.isHorizontal()?(e.x=o,e.x2=r):(e.y=o,e.y2=r)}function Dn(t,e,n){for(const o of Object.keys(Ve)){const r=t[W(t,n,o)];if(r){const{min:i,max:s,start:a,end:d,startProp:l,endProp:c}=Ve[o],u=St(r,{min:n[i],max:n[s],start:r[a],end:r[d]});e[l]=u.start,e[c]=u.end}}}function vn({properties:t,options:e},n,o,r){const{x:i,x2:s,width:a}=t;return jt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.x,padding:{start:r.left,end:r.right},adjust:e.label.xAdjust,size:n.width})}function An({properties:t,options:e},n,o,r){const{y:i,y2:s,height:a}=t;return jt({start:i,end:s,size:a,borderWidth:e.borderWidth},{position:o.y,padding:{start:r.top,end:r.bottom},adjust:e.label.yAdjust,size:n.height})}function jt(t,e){const{start:n,end:o,borderWidth:r}=t,{position:i,padding:{start:s,end:a},adjust:d}=e,l=o-r-n-s-a-e.size;return n+r/2+d+Ae(l,i)}function In(t,e,n){const o=n.label;o.backgroundColor="transparent",o.callout.display=!1;const r=Ie(o.position),i=ce(o.padding),s=Re(t.ctx,o),a=vn({properties:e,options:n},s,r,i),d=An({properties:e,options:n},s,r,i),l=s.width+i.width,c=s.height+i.height;return{x:a,y:d,x2:a+l,y2:d+c,width:l,height:c,centerX:a+l/2,centerY:d+c/2,rotation:o.rotation}}function L(t,e,n){const o=Math.cos(n),r=Math.sin(n),i=e.x,s=e.y;return{x:i+o*(t.x-i)-r*(t.y-s),y:s+r*(t.x-i)+o*(t.y-s)}}const xe=["enter","leave"],Oe=xe.concat("click");function En(t,e,n){e.listened=mt(n,Oe,e.listeners),e.moveListened=!1,e._getElements=ve,xe.forEach(o=>{Y(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&Y(o.click)&&(e.listened=!0),e.moveListened||xe.forEach(r=>{Y(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function Rn(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Tn(t,e,n);case"click":return On(t,e,n)}}function Tn(t,e,n){if(!t.moveListened)return;let o;e.type==="mousemove"?o=ve(t,e,n.interaction):o=[];const r=t.hovered;t.hovered=o;const i={state:t,event:e};let s=Ge(i,"leave",r,o);return Ge(i,"enter",o,r)||s}function Ge({state:t,event:e},n,o,r){let i;for(const s of o)r.indexOf(s)<0&&(i=kt(s.options[n]||t.listeners[n],s,e)||i);return i}function On(t,e,n){const o=t.listeners,r=ve(t,e,n.interaction);let i;for(const s of r)i=kt(s.options.click||o.click,s,e)||i;return i}function kt(t,e,n){return De(t,[e.$context,n])===!0}const le=["afterDraw","beforeDraw"];function Wn(t,e,n){const o=e.visibleElements;e.hooked=mt(n,le,e.hooks),e.hooked||o.forEach(r=>{e.hooked||le.forEach(i=>{Y(r.options[i])&&(e.hooked=!0)})})}function Je(t,e,n){if(t.hooked){const o=e.options[n]||t.hooks[n];return De(o,[e.$context])}}function Ln(t,e,n){const o=zn(t.scales,e,n);let r=Fe(e,o,"min","suggestedMin");r=Fe(e,o,"max","suggestedMax")||r,r&&Y(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Yn(t,e){for(const n of t)Xn(n,e)}function Fe(t,e,n,o){if(ut(e[n])&&!Bn(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Bn(t,e,n){return M(t[e])||M(t[n])}function Xn(t,e){for(const n of["scaleID","xScaleID","yScaleID"]){const o=W(e,t,n);o&&!e[o]&&_n(t,n)&&console.warn(`No scale found with id '${o}' for annotation '${t.id}'`)}}function _n(t,e){if(e==="scaleID")return!0;const n=e.charAt(0);for(const o of["Min","Max","Value"])if(M(t[n+o]))return!0;return!1}function zn(t,e,n){const o=e.axis,r=e.id,i=o+"ScaleID",s={min:F(e.min,Number.NEGATIVE_INFINITY),max:F(e.max,Number.POSITIVE_INFINITY)};for(const a of n)a.scaleID===r?Ke(a,e,["value","endValue"],s):W(t,a,i)===r&&Ke(a,e,[o+"Min",o+"Max",o+"Value"],s);return s}function Ke(t,e,n,o){for(const r of n){const i=t[r];if(M(i)){const s=e.parse(i);o.min=Math.min(o.min,s),o.max=Math.max(o.max,s)}}}class H extends X{inRange(e,n,o,r){const{x:i,y:s}=L({x:e,y:n},this.getCenterPoint(r),j(-this.options.rotation));return ht({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return _(this,e)}draw(e){e.save(),Ee(e,this.getCenterPoint(),this.options.rotation),wt(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Mt(e,n)}}H.id="boxAnnotation";H.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:{backgroundColor:"transparent",borderWidth:0,callout:{display:!1},color:"black",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:void 0,textAlign:"start",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};H.defaultRoutes={borderColor:"color",backgroundColor:"color"};H.descriptors={label:{_fallback:!0}};const Dt=["left","bottom","top","right"];class ee extends X{inRange(e,n,o,r){const{x:i,y:s}=L({x:e,y:n},this.getCenterPoint(r),j(-this.rotation));return ht({x:i,y:s},this.getProps(["x","y","x2","y2"],r),o,this.options.borderWidth)}getCenterPoint(e){return _(this,e)}draw(e){const n=this.options,o=!M(this._visible)||this._visible;!n.display||!n.content||!o||(e.save(),Ee(e,this.getCenterPoint(),this.rotation),Nn(e,this),wt(e,this,n),bn(e,Fn(this),n),e.restore())}resolveElementProperties(e,n){let o;if(pt(n))o=Ct(e,n);else{const{centerX:a,centerY:d}=Te(e,n);o={x:a,y:d}}const r=ce(n.padding),i=Re(e.ctx,n),s=Hn(o,i,n,r);return{initProperties:Z(e,s,n),pointX:o.x,pointY:o.y,...s,rotation:n.rotation}}}ee.id="labelAnnotation";ee.defaults={adjustScaleRange:!0,backgroundColor:"transparent",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:0,borderShadowColor:"transparent",borderWidth:0,callout:{borderCapStyle:"butt",borderColor:void 0,borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderWidth:1,display:!1,margin:5,position:"auto",side:5,start:"50%"},color:"black",content:null,display:!0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:void 0},height:void 0,init:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ee.defaultRoutes={borderColor:"color"};function Hn(t,e,n,o){const r=e.width+o.width+n.borderWidth,i=e.height+o.height+n.borderWidth,s=Ie(n.position,"center"),a=Qe(t.x,r,n.xAdjust,s.x),d=Qe(t.y,i,n.yAdjust,s.y);return{x:a,y:d,x2:a+r,y2:d+i,width:r,height:i,centerX:a+r/2,centerY:d+i/2}}function Qe(t,e,n=0,o){return t-Ae(e,o)+n}function Nn(t,e){const{pointX:n,pointY:o,options:r}=e,i=r.callout,s=i&&i.display&&Gn(e,i);if(!s||Kn(e,i,s))return;if(t.save(),t.beginPath(),!I(t,i))return t.restore();const{separatorStart:d,separatorEnd:l}=Un(e,s),{sideStart:c,sideEnd:u}=Vn(e,s,d);(i.margin>0||r.borderWidth===0)&&(t.moveTo(d.x,d.y),t.lineTo(l.x,l.y)),t.moveTo(c.x,c.y),t.lineTo(u.x,u.y);const h=L({x:n,y:o},e.getCenterPoint(),j(-e.rotation));t.lineTo(h.x,h.y),t.stroke(),t.restore()}function Un(t,e){const{x:n,y:o,x2:r,y2:i}=t,s=$n(t,e);let a,d;return e==="left"||e==="right"?(a={x:n+s,y:o},d={x:a.x,y:i}):(a={x:n,y:o+s},d={x:r,y:a.y}),{separatorStart:a,separatorEnd:d}}function $n(t,e){const{width:n,height:o,options:r}=t,i=r.callout.margin+r.borderWidth/2;return e==="right"?n+i:e==="bottom"?o+i:-i}function Vn(t,e,n){const{y:o,width:r,height:i,options:s}=t,a=s.callout.start,d=qn(e,s.callout);let l,c;return e==="left"||e==="right"?(l={x:n.x,y:o+A(i,a)},c={x:l.x+d,y:l.y}):(l={x:n.x+A(r,a),y:n.y},c={x:l.x,y:l.y+d}),{sideStart:l,sideEnd:c}}function qn(t,e){const n=e.side;return t==="left"||t==="top"?-n:n}function Gn(t,e){const n=e.position;return Dt.includes(n)?n:Jn(t,e)}function Jn(t,e){const{x:n,y:o,x2:r,y2:i,width:s,height:a,pointX:d,pointY:l,centerX:c,centerY:u,rotation:h}=t,g={x:c,y:u},y=e.start,b=A(s,y),w=A(a,y),p=[n,n+b,n+b,r],m=[o+w,i,o,i],S=[];for(let C=0;C<4;C++){const N=L({x:p[C],y:m[C]},g,j(h));S.push({position:Dt[C],distance:ke(N,{x:d,y:l})})}return S.sort((C,N)=>C.distance-N.distance)[0].position}function Fn({x:t,y:e,width:n,height:o,options:r}){const i=r.borderWidth/2,s=ce(r.padding);return{x:t+s.left+i,y:e+s.top+i,width:n-s.left-s.right-r.borderWidth,height:o-s.top-s.bottom-r.borderWidth}}function Kn(t,e,n){const{pointX:o,pointY:r}=t,i=e.margin;let s=o,a=r;return n==="left"?s+=i:n==="right"?s-=i:n==="top"?a+=i:n==="bottom"&&(a-=i),t.inRange(s,a)}const We=(t,e,n)=>({x:t.x+n*(e.x-t.x),y:t.y+n*(e.y-t.y)}),we=(t,e,n)=>We(e,n,Math.abs((t-e.y)/(n.y-e.y))).x,Ze=(t,e,n)=>We(e,n,Math.abs((t-e.x)/(n.x-e.x))).y,G=t=>t*t,Qn=(t,e,{x:n,y:o,x2:r,y2:i},s)=>s==="y"?{start:Math.min(o,i),end:Math.max(o,i),value:e}:{start:Math.min(n,r),end:Math.max(n,r),value:t},et=(t,e,n,o)=>(1-o)*(1-o)*t+2*(1-o)*o*e+o*o*n,Se=(t,e,n,o)=>({x:et(t.x,e.x,n.x,o),y:et(t.y,e.y,n.y,o)}),tt=(t,e,n,o)=>2*(1-o)*(e-t)+2*o*(n-e),nt=(t,e,n,o)=>-Math.atan2(tt(t.x,e.x,n.x,o),tt(t.y,e.y,n.y,o))+.5*x;class te extends X{inRange(e,n,o,r){const i=this.options.borderWidth/2;if(o!=="x"&&o!=="y"){const s={mouseX:e,mouseY:n},{path:a,ctx:d}=this;if(a){I(d,this.options);const{chart:c}=this.$context,u=e*c.currentDevicePixelRatio,h=n*c.currentDevicePixelRatio,g=d.isPointInStroke(a,u,h)||Ce(this,s,r);return d.restore(),g}const l=G(i);return no(this,s,l,r)||Ce(this,s,r)}return Zn(this,{mouseX:e,mouseY:n},o,{hBorderWidth:i,useFinalPosition:r})}getCenterPoint(e){return _(this,e)}draw(e){const{x:n,y:o,x2:r,y2:i,cp:s,options:a}=this;if(e.save(),!I(e,a))return e.restore();z(e,a);const d=Math.sqrt(Math.pow(r-n,2)+Math.pow(i-o,2));if(a.curve&&s)return uo(e,this,s,d),e.restore();const{startOpts:l,endOpts:c,startAdjust:u,endAdjust:h}=vt(this),g=Math.atan2(i-o,r-n);e.translate(n,o),e.rotate(g),e.beginPath(),e.moveTo(0+u,0),e.lineTo(d-h,0),e.shadowColor=a.borderShadowColor,e.stroke(),Pe(e,0,u,l),Pe(e,d,-h,c),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){const o=Mn(e,n),{x:r,y:i,x2:s,y2:a}=o,d=eo(o,e.chartArea),l=d?to({x:r,y:i},{x:s,y:a},e.chartArea):{x:r,y:i,x2:s,y2:a,width:Math.abs(s-r),height:Math.abs(a-i)};if(l.centerX=(s+r)/2,l.centerY=(a+i)/2,l.initProperties=Z(e,l,n),n.curve){const u={x:l.x,y:l.y},h={x:l.x2,y:l.y2};l.cp=co(l,n,ke(u,h))}const c=oo(e,l,n.label);return c._visible=d,l.elements=[{type:"label",optionScope:"label",properties:c,initProperties:l.initProperties}],l}}te.id="lineAnnotation";const ot={backgroundColor:void 0,backgroundShadowColor:void 0,borderColor:void 0,borderDash:void 0,borderDashOffset:void 0,borderShadowColor:void 0,borderWidth:void 0,display:void 0,fill:void 0,length:void 0,shadowBlur:void 0,shadowOffsetX:void 0,shadowOffsetY:void 0,width:void 0};te.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},ot),fill:!1,length:12,start:Object.assign({},ot),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:2,curve:!1,controlPoint:{y:"-50%"},display:!0,endValue:void 0,init:void 0,label:{backgroundColor:"rgba(0,0,0,0.8)",backgroundShadowColor:"transparent",borderCapStyle:"butt",borderColor:"black",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderRadius:6,borderShadowColor:"transparent",borderWidth:0,callout:Object.assign({},ee.defaults.callout),color:"#fff",content:null,display:!1,drawTime:void 0,font:{family:void 0,lineHeight:void 0,size:void 0,style:void 0,weight:"bold"},height:void 0,opacity:void 0,padding:6,position:"center",rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,textAlign:"center",textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0,z:void 0},scaleID:void 0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,value:void 0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};te.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}};te.defaultRoutes={borderColor:"color"};function Zn(t,{mouseX:e,mouseY:n},o,{hBorderWidth:r,useFinalPosition:i}){const s=Qn(e,n,t.getProps(["x","y","x2","y2"],i),o);return s.value>=s.start-r&&s.value<=s.end+r||Ce(t,{mouseX:e,mouseY:n},i,o)}function eo({x:t,y:e,x2:n,y2:o},{top:r,right:i,bottom:s,left:a}){return!(t<a&&n<a||t>i&&n>i||e<r&&o<r||e>s&&o>s)}function rt({x:t,y:e},n,{top:o,right:r,bottom:i,left:s}){return t<s&&(e=Ze(s,{x:t,y:e},n),t=s),t>r&&(e=Ze(r,{x:t,y:e},n),t=r),e<o&&(t=we(o,{x:t,y:e},n),e=o),e>i&&(t=we(i,{x:t,y:e},n),e=i),{x:t,y:e}}function to(t,e,n){const{x:o,y:r}=rt(t,e,n),{x:i,y:s}=rt(e,t,n);return{x:o,y:r,x2:i,y2:s,width:Math.abs(i-o),height:Math.abs(s-r)}}function no(t,{mouseX:e,mouseY:n},o=T,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,u=G(l)+G(c),h=u===0?-1:((e-i)*l+(n-s)*c)/u;let g,y;return h<0?(g=i,y=s):h>1?(g=a,y=d):(g=i+h*l,y=s+h*c),G(e-g)+G(n-y)<=o}function Ce(t,{mouseX:e,mouseY:n},o,r){const i=t.label;return i.options.display&&i.inRange(e,n,r,o)}function oo(t,e,n){const o=n.borderWidth,r=ce(n.padding),i=Re(t.ctx,n),s=i.width+r.width+o,a=i.height+r.height+o;return io(e,n,{width:s,height:a,padding:r},t.chartArea)}function ro(t){const{x:e,y:n,x2:o,y2:r}=t,i=Math.atan2(r-n,o-e);return i>x/2?i-x:i<x/-2?i+x:i}function io(t,e,n,o){const{width:r,height:i,padding:s}=n,{xAdjust:a,yAdjust:d}=e,l={x:t.x,y:t.y},c={x:t.x2,y:t.y2},u=e.rotation==="auto"?ro(t):j(e.rotation),h=so(r,i,u),g=ao(t,e,{labelSize:h,padding:s},o),y=t.cp?Se(l,t.cp,c,g):We(l,c,g),b={size:h.w,min:o.left,max:o.right,padding:s.left},w={size:h.h,min:o.top,max:o.bottom,padding:s.top},p=st(y.x,b)+a,m=st(y.y,w)+d;return{x:p-r/2,y:m-i/2,x2:p+r/2,y2:m+i/2,centerX:p,centerY:m,pointX:y.x,pointY:y.y,width:r,height:i,rotation:Lt(u)}}function so(t,e,n){const o=Math.cos(n),r=Math.sin(n);return{w:Math.abs(t*o)+Math.abs(e*r),h:Math.abs(t*r)+Math.abs(e*o)}}function ao(t,e,n,o){let r;const i=lo(t,o);return e.position==="start"?r=it({w:t.x2-t.x,h:t.y2-t.y},n,e,i):e.position==="end"?r=1-it({w:t.x-t.x2,h:t.y-t.y2},n,e,i):r=Ae(1,e.position),r}function it(t,e,n,o){const{labelSize:r,padding:i}=e,s=t.w*o.dx,a=t.h*o.dy,d=s>0&&(r.w/2+i.left-o.x)/s,l=a>0&&(r.h/2+i.top-o.y)/a;return ue(Math.max(d,l),0,.25)}function lo(t,e){const{x:n,x2:o,y:r,y2:i}=t,s=Math.min(r,i)-e.top,a=Math.min(n,o)-e.left,d=e.bottom-Math.max(r,i),l=e.right-Math.max(n,o);return{x:Math.min(a,l),y:Math.min(s,d),dx:a<=l?1:-1,dy:s<=d?1:-1}}function st(t,e){const{size:n,min:o,max:r,padding:i}=e,s=n/2;return n>r-o?(r+o)/2:(o>=t-i-s&&(t=o+i+s),r<=t+i+s&&(t=r-i-s),t)}function vt(t){const e=t.options,n=e.arrowHeads&&e.arrowHeads.start,o=e.arrowHeads&&e.arrowHeads.end;return{startOpts:n,endOpts:o,startAdjust:at(t,n),endAdjust:at(t,o)}}function at(t,e){if(!e||!e.display)return 0;const{length:n,width:o}=e,r=t.options.borderWidth/2,i={x:n,y:o+r};return Math.abs(we(0,i,{x:0,y:r}))}function Pe(t,e,n,o){if(!o||!o.display)return;const{length:r,width:i,fill:s,backgroundColor:a,borderColor:d}=o,l=Math.abs(e-r)+n;t.beginPath(),z(t,o),I(t,o),t.moveTo(l,-i),t.lineTo(e+n,0),t.lineTo(l,i),s===!0?(t.fillStyle=a||d,t.closePath(),t.fill(),t.shadowColor="transparent"):t.shadowColor=o.borderShadowColor,t.stroke()}function co(t,e,n){const{x:o,y:r,x2:i,y2:s,centerX:a,centerY:d}=t,l=Math.atan2(s-r,i-o),c=Ie(e.controlPoint,0),u={x:a+A(n,c.x,!1),y:d+A(n,c.y,!1)};return L(u,{x:a,y:d},l)}function dt(t,{x:e,y:n},{angle:o,adjust:r},i){!i||!i.display||(t.save(),t.translate(e,n),t.rotate(o),Pe(t,0,-r,i),t.restore())}function uo(t,e,n,o){const{x:r,y:i,x2:s,y2:a,options:d}=e,{startOpts:l,endOpts:c,startAdjust:u,endAdjust:h}=vt(e),g={x:r,y:i},y={x:s,y:a},b=nt(g,n,y,0),w=nt(g,n,y,1)-x,p=Se(g,n,y,u/o),m=Se(g,n,y,1-h/o),S=new Path2D;t.beginPath(),S.moveTo(p.x,p.y),S.quadraticCurveTo(n.x,n.y,m.x,m.y),t.shadowColor=d.borderShadowColor,t.stroke(S),e.path=S,e.ctx=t,dt(t,p,{angle:b,adjust:u},l),dt(t,m,{angle:w,adjust:h},c)}class ne extends X{inRange(e,n,o,r){const i=this.options.rotation,s=this.options.borderWidth;if(o!=="x"&&o!=="y")return fo({x:e,y:n},this.getProps(["width","height","centerX","centerY"],r),i,s);const{x:a,y:d,x2:l,y2:c}=this.getProps(["x","y","x2","y2"],r),u=s/2,h=o==="y"?{start:d,end:c}:{start:a,end:l},g=L({x:e,y:n},this.getCenterPoint(r),j(-i));return g[o]>=h.start-u-T&&g[o]<=h.end+u+T}getCenterPoint(e){return _(this,e)}draw(e){const{width:n,height:o,centerX:r,centerY:i,options:s}=this;e.save(),Ee(e,this.getCenterPoint(),s.rotation),z(e,this.options),e.beginPath(),e.fillStyle=s.backgroundColor;const a=I(e,s);e.ellipse(r,i,o/2,n/2,x/2,0,2*x),e.fill(),a&&(e.shadowColor=s.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,n){return Mt(e,n,!0)}}ne.id="ellipseAnnotation";ne.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,label:Object.assign({},H.defaults.label),rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xMax:void 0,xMin:void 0,xScaleID:void 0,yMax:void 0,yMin:void 0,yScaleID:void 0,z:0};ne.defaultRoutes={borderColor:"color",backgroundColor:"color"};ne.descriptors={label:{_fallback:!0}};function fo(t,e,n,o){const{width:r,height:i,centerX:s,centerY:a}=e,d=r/2,l=i/2;if(d<=0||l<=0)return!1;const c=j(n||0),u=o/2||0,h=Math.cos(c),g=Math.sin(c),y=Math.pow(h*(t.x-s)+g*(t.y-a),2),b=Math.pow(g*(t.x-s)-h*(t.y-a),2);return y/Math.pow(d+u,2)+b/Math.pow(l+u,2)<=1.0001}class he extends X{inRange(e,n,o,r){const{x:i,y:s,x2:a,y2:d,width:l}=this.getProps(["x","y","x2","y2","width"],r),c=this.options.borderWidth;if(o!=="x"&&o!=="y")return cn({x:e,y:n},this.getCenterPoint(r),l/2,c);const u=c/2,h=o==="y"?{start:s,end:d,value:n}:{start:i,end:a,value:e};return h.value>=h.start-u&&h.value<=h.end+u}getCenterPoint(e){return _(this,e)}draw(e){const n=this.options,o=n.borderWidth;if(n.radius<.1)return;e.save(),e.fillStyle=n.backgroundColor,z(e,n);const r=I(e,n);mn(e,this,this.centerX,this.centerY),r&&!fe(n.pointStyle)&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore(),n.borderWidth=o}resolveElementProperties(e,n){const o=Pt(e,n);return o.initProperties=Z(e,o,n,!0),o}}he.id="pointAnnotation";he.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderDash:[],borderDashOffset:0,borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,pointStyle:"circle",radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};he.defaultRoutes={borderColor:"color",backgroundColor:"color"};class ge extends X{inRange(e,n,o,r){if(o!=="x"&&o!=="y")return this.options.radius>=.1&&this.elements.length>1&&go(this.elements,e,n,r);const i=L({x:e,y:n},this.getCenterPoint(r),j(-this.options.rotation)),s=this.elements.map(l=>o==="y"?l.bY:l.bX),a=Math.min(...s),d=Math.max(...s);return i[o]>=a&&i[o]<=d}getCenterPoint(e){return _(this,e)}draw(e){const{elements:n,options:o}=this;e.save(),e.beginPath(),e.fillStyle=o.backgroundColor,z(e,o);const r=I(e,o);let i=!0;for(const s of n)i?(e.moveTo(s.x,s.y),i=!1):e.lineTo(s.x,s.y);e.closePath(),e.fill(),r&&(e.shadowColor=o.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,n){const o=Pt(e,n),{sides:r,rotation:i}=n,s=[],a=2*x/r;let d=i*ft;for(let l=0;l<r;l++,d+=a){const c=ho(o,n,d);c.initProperties=Z(e,o,n),s.push(c)}return o.elements=s,o}}ge.id="polygonAnnotation";ge.defaults={adjustScaleRange:!0,backgroundShadowColor:"transparent",borderCapStyle:"butt",borderDash:[],borderDashOffset:0,borderJoinStyle:"miter",borderShadowColor:"transparent",borderWidth:1,display:!0,init:void 0,point:{radius:0},radius:10,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,sides:3,xAdjust:0,xMax:void 0,xMin:void 0,xScaleID:void 0,xValue:void 0,yAdjust:0,yMax:void 0,yMin:void 0,yScaleID:void 0,yValue:void 0,z:0};ge.defaultRoutes={borderColor:"color",backgroundColor:"color"};function ho({centerX:t,centerY:e},{radius:n,borderWidth:o},r){const i=o/2,s=Math.sin(r),a=Math.cos(r),d={x:t+s*n,y:e-a*n};return{type:"point",optionScope:"point",properties:{x:d.x,y:d.y,centerX:d.x,centerY:d.y,bX:t+s*(n+i),bY:e-a*(n+i)}}}function go(t,e,n,o){let r=!1,i=t[t.length-1].getProps(["bX","bY"],o);for(const s of t){const a=s.getProps(["bX","bY"],o);a.bY>n!=i.bY>n&&e<(i.bX-a.bX)*(n-a.bY)/(i.bY-a.bY)+a.bX&&(r=!r),i=a}return r}const v={box:H,ellipse:ne,label:ee,line:te,point:he,polygon:ge};Object.keys(v).forEach(t=>{Wt.describe(`elements.${v[t].id}`,{_fallback:"plugins.annotation.common"})});const yo={update:Object.assign},bo=Oe.concat(le),lt=(t,e)=>Q(e)?je(t,e):t,Me=t=>t==="color"||t==="font";function Le(t="line"){return v[t]?t:(console.warn(`Unknown annotation type: '${t}', defaulting to 'line'`),"line")}function po(t,e,n,o){const r=xo(t,n.animations,o),i=e.annotations,s=Co(e.elements,i);for(let a=0;a<i.length;a++){const d=i[a],l=At(s,a,d.type),c=d.setContext(So(t,l,d)),u=l.resolveElementProperties(t,c);u.skip=mo(u),"elements"in u&&(wo(l,u.elements,c,r),delete u.elements),M(l.x)||Object.assign(l,u),Object.assign(l,u.initProperties),u.options=It(c),r.update(l,u)}}function mo(t){return isNaN(t.x)||isNaN(t.y)}function xo(t,e,n){return n==="reset"||n==="none"||n==="resize"?yo:new Ht(t,e)}function wo(t,e,n,o){const r=t.elements||(t.elements=[]);r.length=e.length;for(let i=0;i<e.length;i++){const s=e[i],a=s.properties,d=At(r,i,s.type,s.initProperties),l=n[s.optionScope].override(s);a.options=It(l),o.update(d,a)}}function At(t,e,n,o){const r=v[Le(n)];let i=t[e];return(!i||!(i instanceof r))&&(i=t[e]=new r,Object.assign(i,o)),i}function It(t){const e=v[Le(t.type)],n={};n.id=t.id,n.type=t.type,n.drawTime=t.drawTime,Object.assign(n,je(t,e.defaults),je(t,e.defaultRoutes));for(const o of bo)n[o]=t[o];return n}function je(t,e){const n={};for(const o of Object.keys(e)){const r=e[o],i=t[o];Me(o)&&O(i)?n[o]=i.map(s=>lt(s,r)):n[o]=lt(i,r)}return n}function So(t,e,n){return e.$context||(e.$context=Object.assign(Object.create(t.getContext()),{element:e,id:n.id,type:"annotation"}))}function Co(t,e){const n=e.length,o=t.length;if(o<n){const r=n-o;t.splice(o,0,...new Array(r))}else o>n&&t.splice(n,o-n);return t}var Po="2.2.1";const D=new Map,Mo=Oe.concat(le);var jo={id:"annotation",version:Po,beforeRegister(){un("chart.js","3.7",se.version)},afterRegister(){se.register(v)},afterUnregister(){se.unregister(v)},beforeInit(t){D.set(t,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(t,e,n){const o=D.get(t),r=o.annotations=[];let i=n.annotations;Q(i)?Object.keys(i).forEach(s=>{const a=i[s];Q(a)&&(a.id=s,r.push(a))}):O(i)&&r.push(...i),Yn(r,t.scales)},afterDataLimits(t,e){const n=D.get(t);Ln(t,e.scale,n.annotations.filter(o=>o.display&&o.adjustScaleRange))},afterUpdate(t,e,n){const o=D.get(t);En(t,o,n),po(t,o,n,e.mode),o.visibleElements=o.elements.filter(r=>!r.skip&&r.options.display),Wn(t,o,n)},beforeDatasetsDraw(t,e,n){ie(t,"beforeDatasetsDraw",n.clip)},afterDatasetsDraw(t,e,n){ie(t,"afterDatasetsDraw",n.clip)},beforeDraw(t,e,n){ie(t,"beforeDraw",n.clip)},afterDraw(t,e,n){ie(t,"afterDraw",n.clip)},beforeEvent(t,e,n){const o=D.get(t);Rn(o,e.event,n)&&(e.changed=!0)},afterDestroy(t){D.delete(t)},_getState(t){return D.get(t)},defaults:{animations:{numbers:{properties:["x","y","x2","y2","width","height","centerX","centerY","pointX","pointY","radius"],type:"number"}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:"afterDatasetsDraw",init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:t=>!Mo.includes(t)&&t!=="init",annotations:{_allKeys:!1,_fallback:(t,e)=>`elements.${v[Le(e.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:Me,_fallback:!0},_indexable:Me}},additionalOptionScopes:[""]};function ie(t,e,n){const{ctx:o,chartArea:r}=t,i=D.get(t);n&&Yt(o,r);const s=ko(i.visibleElements,e).sort((a,d)=>a.element.options.z-d.element.options.z);for(const a of s)Do(o,r,i,a);n&&Bt(o)}function ko(t,e){const n=[];for(const o of t)if(o.options.drawTime===e&&n.push({element:o,main:!0}),o.elements&&o.elements.length)for(const r of o.elements)r.options.display&&r.options.drawTime===e&&n.push({element:r});return n}function Do(t,e,n,o){const r=o.element;o.main?(Je(n,r,"beforeDraw"),r.draw(t,e),Je(n,r,"afterDraw")):r.draw(t,e)}const vo=E(K)(({theme:t})=>({display:"grid",gap:t.spacing(5)})),Ao={id:"customLine",beforeDraw:t=>{var n;if((n=t.tooltip)!=null&&n.opacity&&t.tooltip.x){const o=t.tooltip.caretX,r=t.scales.y,i=t.ctx;i.save();const s=i.createLinearGradient(o,r.top,o,r.bottom+34);s.addColorStop(0,"rgba(129, 122, 254, 0)"),s.addColorStop(1,"rgba(129, 122, 254, 0.12)"),i.fillStyle=s,i.roundRect(o-46/2,r.top,46,r.bottom-r.top+34,5),i.fill(),i.restore()}}},Io=(t,e,n)=>({plugins:{annotation:{clip:!1,annotations:{line:{type:"line",borderDash:[5,5],yMin:n?n/30:0,yMax:n?n/30:0,borderColor:"gray",borderWidth:1,display:!!n,label:{backgroundColor:"rgba(192, 192, 192, 0.8)",color:"black",padding:{top:10,bottom:10,left:10,right:10},content:"Average daily requests included in your plan",display:!!n}}}},legend:{position:"bottom",labels:{color:t.palette.text.primary,pointStyle:"circle",usePointStyle:!0,boxHeight:6,padding:15,boxPadding:5}},tooltip:{backgroundColor:t.palette.background.paper,titleColor:t.palette.text.primary,bodyColor:t.palette.text.primary,bodySpacing:6,padding:{top:20,bottom:20,left:30,right:30},borderColor:"rgba(0, 0, 0, 0.05)",borderWidth:3,usePointStyle:!0,caretSize:0,boxPadding:10,callbacks:{title:e}}},responsive:!0,scales:{x:{stacked:!0,ticks:{color:t.palette.text.secondary},grid:{display:!1}},y:{stacked:!0,ticks:{color:t.palette.text.secondary,maxTicksLimit:5,callback:(o,r,i)=>{if(typeof o=="string")return o;const s=Number.parseInt(o.toString());return s>999999?`${s/1e6}M`:s>999?`${s/1e3}k`:s}},grid:{drawBorder:!1}}},elements:{bar:{borderRadius:5}},interaction:{mode:"index",intersect:!1}}),Eo=53e6,Bo=()=>{Nt("Network - Data Usage");const t=Ut(),{isOss:e,isPro:n}=$t(),{record:o,period:r,setPeriod:i,selectablePeriods:s,getDayLabels:a,toChartData:d,toTrafficUsageSum:l,endpointsInfo:c,calculateOverageCost:u,calculateEstimatedMonthlyCost:h}=en(),g=n()?Eo:0,y=P.useMemo(()=>Io(t,k=>{const oe=o[r];return new Date(oe.year,oe.month,Number.parseInt(k[0].label)).toLocaleDateString("en-US",{month:"long",day:"numeric",year:"numeric"})},g),[t,r]),b=tn(r),[w,p]=P.useState([]),[m,S]=P.useState([]),[C,N]=P.useState(0),[Ye,Et]=P.useState(0),[Rt,Tt]=P.useState(0),U={labels:w,datasets:m},Ot=ct("displayTrafficDataUsage");return P.useEffect(()=>{S(d(w,b,c))},[w,b]),P.useEffect(()=>{if(o&&r){const k=o[r];p(a(k.dayCount))}},[r]),P.useEffect(()=>{if(U){const k=l(U.datasets);if(N(k),g>0){const oe=u(k,g);Et(oe),Tt(h(r,U.datasets,g,new Date))}}},[U]),f.jsx(J,{condition:e()||!Ot,show:f.jsx(_e,{severity:"warning",children:"Not enabled."}),elseShow:f.jsxs(f.Fragment,{children:[f.jsx(J,{condition:g>0&&Ye>0,show:f.jsxs(_e,{severity:"warning",sx:{mb:4},children:[f.jsx("b",{children:"Heads up!"})," You are currently consuming more requests than your plan includes and will be billed according to our terms. Please see"," ",f.jsx(me,{component:ze,to:"https://www.getunleash.io/pricing",children:"this page"})," ","for more information. In order to reduce your traffic consumption, you may configure an"," ",f.jsx(me,{component:ze,to:"https://docs.getunleash.io/reference/unleash-edge",children:"Unleash Edge instance"})," ","in your own datacenter."]})}),f.jsxs(vo,{children:[f.jsxs(R,{container:!0,component:"header",spacing:2,children:[f.jsx(R,{item:!0,xs:12,md:10,children:f.jsx(on,{usageTotal:C,includedTraffic:g,overageCost:Ye,estimatedMonthlyCost:Rt})}),f.jsx(R,{item:!0,xs:12,md:2,children:f.jsx(Vt,{id:"dataperiod-select",name:"dataperiod",options:s,value:r,onChange:k=>i(k.target.value),style:{minWidth:"100%",marginBottom:t.spacing(2)},formControlStyles:{width:"100%"}})})]}),f.jsx(R,{item:!0,xs:12,md:2,children:f.jsx(Zt,{data:U,plugins:[Ao],options:y,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})]})]})})};se.register(jo,qt,Gt,Jt,Ft,Kt,Qt);export{Bo as NetworkTrafficUsage,Bo as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as o,T as g,j as e,cH as j,B as a,
|
|
1
|
+
import{s as o,T as g,j as e,cH as j,B as a,gF as O,q as N,k as w,b8 as J,eU as U,C as r,cP as W}from"./index-CoEyUZTq.js";const x=o(g)(({theme:t})=>({fontWeight:t.fontWeight.bold,display:"inline"})),h=o(g)(({theme:t})=>({display:"inline",color:t.palette.text.secondary})),D=()=>e.jsx(j,{htmlTooltip:!0,tooltip:e.jsxs(e.Fragment,{children:[e.jsxs(a,{children:[e.jsx(x,{children:"open: "}),e.jsx(h,{children:"Everyone can submit change requests"})]}),e.jsxs(a,{sx:{mt:2},children:[e.jsx(x,{children:"protected: "}),e.jsx(h,{children:"Only admins and project members can submit change requests"})]}),e.jsxs(a,{sx:{mt:2},children:[e.jsx(x,{children:"private: "}),e.jsx(h,{children:"Only admins, editors and project members can see and access the project and associated feature flags"})]})]})}),q=()=>e.jsx(j,{htmlTooltip:!0,tooltip:e.jsx(a,{children:"Enforce an upper limit of the number of feature flags that may be created for this project. You can create unlimited feature flag if there is no limit set."})}),H="PROJECT_STICKINESS_SELECT",k="PROJECT_ID_INPUT",z="PROJECT_NAME_INPUT",A="PROJECT_DESCRIPTION_INPUT",K=o("form")(({theme:t})=>({height:"100%",paddingBottom:t.spacing(1)})),d=o("p")(({theme:t})=>({marginBottom:t.spacing(1),marginRight:t.spacing(1)})),L=o(O)(({theme:t})=>({marginBottom:t.spacing(2),minWidth:"200px"})),M=o("div")(({theme:t})=>({color:t.palette.text.secondary,fontSize:t.fontSizes.smallerBody,lineHeight:1.25,paddingBottom:t.spacing(1)})),m=o(N)(({theme:t})=>({width:"100%",marginBottom:t.spacing(2),paddingRight:t.spacing(1)})),Y=o(w)(({theme:t})=>({width:"100%",marginBottom:t.spacing(2)})),$=o("div")(()=>({marginTop:"auto",display:"flex",justifyContent:"flex-end"})),G=o("div")(()=>({display:"flex",alignItems:"center"})),V=({children:t,handleSubmit:y,projectId:T,projectName:C,projectDesc:b,projectStickiness:I,featureLimit:i,featureCount:u,projectMode:f,setProjectMode:c,setProjectId:v,setProjectName:E,setProjectDesc:S,setProjectStickiness:l,setFeatureLimit:B,errors:s,mode:p,validateProjectId:_,clearErrors:P})=>{const{isEnterprise:R}=J(),F=[{key:"open",label:"open"},{key:"protected",label:"protected"},{key:"private",label:"private"}];return e.jsxs(K,{onSubmit:n=>{y(n)},children:[e.jsx(d,{children:"What is your project Id?"}),e.jsx(m,{label:"Project Id",value:T,onChange:n=>v(U(n.target.value)),error:!!s.id,errorText:s.id,onFocus:()=>P(),onBlur:_,disabled:p==="Edit","data-testid":k,autoFocus:!0,required:!0}),e.jsx(d,{children:"What is your project name?"}),e.jsx(m,{label:"Project name",value:C,onChange:n=>E(n.target.value),error:!!s.name,errorText:s.name,onFocus:()=>{delete s.name},"data-testid":z,required:!0}),e.jsx(d,{children:"What is your project description?"}),e.jsx(Y,{label:"Project description",variant:"outlined",multiline:!0,maxRows:4,value:b,onChange:n=>S(n.target.value),"data-testid":A}),e.jsx(r,{condition:l!=null,show:e.jsxs(e.Fragment,{children:[e.jsx(d,{children:"What is the default stickiness for the project?"}),e.jsx(W,{label:"Stickiness",value:I,"data-testid":H,onChange:n=>l==null?void 0:l(n.target.value),editable:!0})]})}),e.jsx(r,{condition:p==="Edit",show:()=>e.jsxs(e.Fragment,{children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",marginBottom:1,gap:1},children:[e.jsx("p",{children:"Feature flag limit?"}),e.jsx(q,{})]}),e.jsx(M,{children:"Leave it empty if you don’t want to add a limit"}),e.jsxs(G,{children:[e.jsx(m,{label:"Limit",name:"value",type:"number",value:i==="null"||i===void 0?"":i,onChange:n=>B(n.target.value)}),e.jsx(r,{condition:u!==void 0&&!!i,show:e.jsxs(a,{children:["(",u," of ",i," used)"]})})]})]})}),e.jsx(r,{condition:p==="Create"&&R(),show:e.jsxs(e.Fragment,{children:[e.jsxs(a,{sx:{display:"flex",alignItems:"center",marginBottom:1,gap:1},children:[e.jsx("p",{children:"What is your project collaboration mode?"}),e.jsx(D,{})]}),e.jsx(L,{id:"project-mode",value:f,label:"Project collaboration mode",name:"Project collaboration mode",onChange:n=>{c==null||c(n.target.value)},options:F})]})}),e.jsx($,{children:t})]})};export{D as C,V as P};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{g as g$,
|
|
1
|
+
import{g as g$,hA as y$,d2 as b$,s as j$,r as Ds,U as x$,j as qf}from"./index-CoEyUZTq.js";import{E as jn,F as Pi,c as ma,S as Ri,T as of,C as $$,b as w$,a as Et,I as Ey,g as Oy,f as Gd,i as _l,d as My,A as Qd,j as Sr,m as Na,s as ms,N as Bf,e as Ty,h as ea,D as Py,k as ta,p as tc,u as Mn,ab as S$,x as Yd,ac as Ry,l as Yn,K as C$,t as Xd,V as vs,L as El,W as k$,ad as _$,P as Zd,n as Qr,r as ep,o as Go,q as Mr,w as E$,v as Fi,R as tp,a6 as Ff,ae as Ay,M as O$,z as M$,a7 as T$,a8 as Ms,a0 as Ny,Q as P$,U as R$,X as A$,Y as N$,Z as I$,_ as z$,$ as L$,a1 as D$,a2 as q$,a3 as B$,a4 as F$,a5 as U$,O as V$,aa as H$,af as Ts}from"./index-C2dLqsgz.js";function Cn(t){return Array.isArray(t)}function zn(t){return t!==null&&typeof t=="object"&&(t.constructor===void 0||t.constructor.name==="Object")}function Iy(t){return t&&typeof t=="object"?t.op==="add":!1}function zy(t){return t&&typeof t=="object"?t.op==="remove":!1}function np(t){return t&&typeof t=="object"?t.op==="replace":!1}function Uf(t){return t&&typeof t=="object"?t.op==="copy":!1}function Fa(t){return t&&typeof t=="object"?t.op==="move":!1}function J$(t,e){return JSON.stringify(t)===JSON.stringify(e)}function W$(t,e){return t===e}function Ly(t){return t.slice(0,t.length-1)}function K$(t){return t[t.length-1]}function G$(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:W$;if(t.length<e.length)return!1;for(let r=0;r<e.length;r++)if(!n(t[r],e[r]))return!1;return!0}function Dy(t){return typeof t=="object"&&t!==null}function rp(t){if(Cn(t)){const e=t.slice();return Object.getOwnPropertySymbols(t).forEach(n=>{e[n]=t[n]}),e}else if(zn(t)){const e={...t};return Object.getOwnPropertySymbols(t).forEach(n=>{e[n]=t[n]}),e}else return t}function op(t,e,n){if(t[e]===n)return t;{const r=rp(t);return r[e]=n,r}}function Ge(t,e){let n=t,r=0;for(;r<e.length;)zn(n)?n=n[e[r]]:Cn(n)?n=n[parseInt(e[r])]:n=void 0,r++;return n}function fo(t,e,n){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1;if(e.length===0)return n;const o=e[0],i=fo(t?t[o]:void 0,e.slice(1),n,r);if(zn(t)||Cn(t))return op(t,o,i);if(r){const a=Q$.test(o)?[]:{};return a[o]=i,a}else throw new Error("Path does not exist")}const Q$=/^\d+$/;function qy(t,e,n){if(e.length===0)return n(t);if(!Dy(t))throw new Error("Path doesn't exist");const r=e[0],o=qy(t[r],e.slice(1),n);return op(t,r,o)}function ip(t,e){if(e.length===0)return t;if(!Dy(t))throw new Error("Path does not exist");if(e.length===1){const o=e[0];if(o in t){const i=rp(t);return Cn(i)&&i.splice(parseInt(o),1),zn(i)&&delete i[o],i}else return t}const n=e[0],r=ip(t[n],e.slice(1));return op(t,n,r)}function ap(t,e,n){const r=e.slice(0,e.length-1),o=e[e.length-1];return qy(t,r,i=>{if(!Array.isArray(i))throw new TypeError("Array expected at path "+JSON.stringify(r));const a=rp(i);return a.splice(parseInt(o),0,n),a})}function to(t,e){return t===void 0?!1:e.length===0?!0:t===null?!1:to(t[e[0]],e.slice(1))}function xo(t){const e=t.split("/");return e.shift(),e.map(n=>n.replace(/~1/g,"/").replace(/~0/g,"~"))}function Ve(t){return t.map(sp).join("")}function sp(t){return"/"+String(t).replace(/~/g,"~0").replace(/\//g,"~1")}function Qh(t,e){return t+sp(e)}function hu(t,e){return t.startsWith(e)&&(t.length===e.length||t[e.length]==="/")}function vo(t,e,n){let r=t;for(let o=0;o<e.length;o++){ow(e[o]);let i=e[o];if(n&&n.before){const c=n.before(r,i);if(c!==void 0){if(c.document!==void 0&&(r=c.document),c.json!==void 0)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"');c.operation!==void 0&&(i=c.operation)}}const a=r,s=Ao(r,i.path);if(i.op==="add")r=Z$(r,s,i.value);else if(i.op==="remove")r=X$(r,s);else if(i.op==="replace")r=Y$(r,s,i.value);else if(i.op==="copy")r=ew(r,s,Vf(i.from));else if(i.op==="move")r=tw(r,s,Vf(i.from));else if(i.op==="test")nw(r,s,i.value);else throw new Error("Unknown JSONPatch operation "+JSON.stringify(i));if(n&&n.after){const c=n.after(r,i,a);c!==void 0&&(r=c)}}return r}function Y$(t,e,n){return fo(t,e,n)}function X$(t,e){return ip(t,e)}function Z$(t,e,n){return xc(t,e)?ap(t,e,n):fo(t,e,n)}function ew(t,e,n){const r=Ge(t,n);if(xc(t,e))return ap(t,e,r);{const o=Ge(t,n);return fo(t,e,o)}}function tw(t,e,n){const r=Ge(t,n),o=ip(t,n);return xc(o,e)?ap(o,e,r):fo(o,e,r)}function nw(t,e,n){if(n===void 0)throw new Error(`Test failed: no value provided (path: "${Ve(e)}")`);if(!to(t,e))throw new Error(`Test failed: path not found (path: "${Ve(e)}")`);const r=Ge(t,e);if(!J$(r,n))throw new Error(`Test failed, value differs (path: "${Ve(e)}")`)}function xc(t,e){if(e.length===0)return!1;const n=Ge(t,Ly(e));return Array.isArray(n)}function rw(t,e){if(K$(e)!=="-")return e;const n=Ly(e),r=Ge(t,n);return n.concat(r.length)}function ow(t){if(!["add","remove","replace","copy","move","test"].includes(t.op))throw new Error("Unknown JSONPatch op "+JSON.stringify(t.op));if(typeof t.path!="string")throw new Error('Required property "path" missing or not a string in operation '+JSON.stringify(t));if((t.op==="copy"||t.op==="move")&&typeof t.from!="string")throw new Error('Required property "from" missing or not a string in operation '+JSON.stringify(t))}function Ao(t,e){return rw(t,xo(e))}function Vf(t){return xo(t)}function By(t,e,n){let r=[];return vo(t,e,{before:(i,a)=>{let s;const c=Ao(i,a.path);if(a.op==="add")s=Vy(i,c);else if(a.op==="remove")s=Uy(i,c);else if(a.op==="replace")s=Fy(i,c);else if(a.op==="copy")s=iw(i,c);else if(a.op==="move")s=aw(i,c,Vf(a.from));else if(a.op==="test")s=[];else throw new Error("Unknown JSONPatch operation "+JSON.stringify(a));let l;if(n&&n.before){const u=n.before(i,a,s);if(u&&u.revertOperations&&(s=u.revertOperations),u&&u.document&&(l=u.document),u&&u.json)throw new Error('Deprecation warning: returned object property ".json" has been renamed to ".document"')}if(r=s.concat(r),l!==void 0)return{document:l}}}),r}function Fy(t,e){return[{op:"replace",path:Ve(e),value:Ge(t,e)}]}function Uy(t,e){return[{op:"add",path:Ve(e),value:Ge(t,e)}]}function Vy(t,e){return xc(t,e)||!to(t,e)?[{op:"remove",path:Ve(e)}]:Fy(t,e)}function iw(t,e){return Vy(t,e)}function aw(t,e,n){if(e.length<n.length&&G$(n,e))return[{op:"replace",path:Ve(e),value:t}];const r={op:"move",from:Ve(e),path:Ve(n)};return!xc(t,e)&&to(t,e)?[r,...Uy(t,e)]:[r]}var Ol={},Yh={b:"\b",f:"\f",n:`
|
|
2
2
|
`,r:"\r",t:" ",'"':'"',"/":"/","\\":"\\"},sw=97;Ol.parse=function(t,e,n){var r={},o=0,i=0,a=0,s=n&&n.bigint&&typeof BigInt<"u";return{data:c("",!0),pointers:r};function c(W,U){l();var X;b(W,"value");var B=m();switch(B){case"t":h("rue"),X=!0;break;case"f":h("alse"),X=!1;break;case"n":h("ull"),X=null;break;case'"':X=u();break;case"[":X=d(W);break;case"{":X=p(W);break;default:g(),"-0123456789".indexOf(B)>=0?X=f():P()}return b(W,"valueEnd"),l(),U&&a<t.length&&P(),X}function l(){e:for(;a<t.length;){switch(t[a]){case" ":i++;break;case" ":i+=4;break;case"\r":i=0;break;case`
|
|
3
3
|
`:i=0,o++;break;default:break e}a++}}function u(){for(var W="",U;U=m(),U!='"';)U=="\\"?(U=m(),U in Yh?W+=Yh[U]:U=="u"?W+=v():q()):W+=U;return W}function f(){var W="",U=!0;t[a]=="-"&&(W+=m()),W+=t[a]=="0"?m():y(),t[a]=="."&&(W+=m()+y(),U=!1),(t[a]=="e"||t[a]=="E")&&(W+=m(),(t[a]=="+"||t[a]=="-")&&(W+=m()),W+=y(),U=!1);var X=+W;return s&&U&&(X>Number.MAX_SAFE_INTEGER||X<Number.MIN_SAFE_INTEGER)?BigInt(W):X}function d(W){l();var U=[],X=0;if(m()=="]")return U;for(g();;){var B=W+"/"+X;U.push(c(B)),l();var J=m();if(J=="]")break;J!=","&&q(),l(),X++}return U}function p(W){l();var U={};if(m()=="}")return U;for(g();;){var X=$();m()!='"'&&q();var B=u(),J=W+"/"+Hf(B);S(J,"key",X),b(J,"keyEnd"),l(),m()!=":"&&q(),l(),U[B]=c(J),l();var z=m();if(z=="}")break;z!=","&&q(),l()}return U}function h(W){for(var U=0;U<W.length;U++)m()!==W[U]&&q()}function m(){Y();var W=t[a];return a++,i++,W}function g(){a--,i--}function v(){for(var W=4,U=0;W--;){U<<=4;var X=m().toLowerCase();X>="a"&&X<="f"?U+=X.charCodeAt()-sw+10:X>="0"&&X<="9"?U+=+X:q()}return String.fromCharCode(U)}function y(){for(var W="";t[a]>="0"&&t[a]<="9";)W+=m();if(W.length)return W;Y(),P()}function b(W,U){S(W,U,$())}function S(W,U,X){r[W]=r[W]||{},r[W][U]=X}function $(){return{line:o,column:i,pos:a}}function P(){throw new SyntaxError("Unexpected token "+t[a]+" in JSON at position "+a)}function q(){g(),P()}function Y(){if(a>=t.length)throw new SyntaxError("Unexpected end of JSON input")}};Ol.stringify=function(t,e,n){if(!Bc(t))return;var r=0,o,i,a=typeof n=="object"?n.space:n;switch(typeof a){case"number":var s=a>10?10:a<0?0:Math.floor(a);a=s&&S(s," "),o=s,i=s;break;case"string":a=a.slice(0,10),o=0,i=0;for(var c=0;c<a.length;c++){var l=a[c];switch(l){case" ":i++;break;case" ":i+=4;break;case"\r":i=0;break;case`
|
|
4
4
|
`:i=0,r++;break;default:throw new Error("whitespace characters not allowed in JSON")}o++}break;default:a=void 0}var u="",f={},d=0,p=0,h=0,m=n&&n.es6&&typeof Map=="function";return g(t,0,""),{json:u,pointers:f};function g($,P,q){switch(b(q,"value"),typeof $){case"number":case"bigint":case"boolean":v(""+$);break;case"string":v(Fc($));break;case"object":$===null?v("null"):typeof $.toJSON=="function"?v(Fc($.toJSON())):Array.isArray($)?Y():m?$.constructor.BYTES_PER_ELEMENT?Y():$ instanceof Map?U():$ instanceof Set?U(!0):W():W()}b(q,"valueEnd");function Y(){if($.length){v("[");for(var X=P+1,B=0;B<$.length;B++){B&&v(","),y(X);var J=Bc($[B])?$[B]:null,z=q+"/"+B;g(J,X,z)}y(P),v("]")}else v("[]")}function W(){var X=Object.keys($);if(X.length){v("{");for(var B=P+1,J=0;J<X.length;J++){var z=X[J],ne=$[z];if(Bc(ne)){J&&v(",");var Z=q+"/"+Hf(z);y(B),b(Z,"key"),v(Fc(z)),b(Z,"keyEnd"),v(":"),a&&v(" "),g(ne,B,Z)}}y(P),v("}")}else v("{}")}function U(X){if($.size){v("{");for(var B=P+1,J=!0,z=$.entries(),ne=z.next();!ne.done;){var Z=ne.value,Q=Z[0],E=X?!0:Z[1];if(Bc(E)){J||v(","),J=!1;var A=q+"/"+Hf(Q);y(B),b(A,"key"),v(Fc(Q)),b(A,"keyEnd"),v(":"),a&&v(" "),g(E,B,A)}ne=z.next()}y(P),v("}")}else v("{}")}}function v($){p+=$.length,h+=$.length,u+=$}function y($){if(a){for(u+=`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b8 as T,j as e,K as R,ad as te,d1 as ne,ag as oe,C as y,B as C,ar as re,dX as ae,a7 as ie,a8 as le,a9 as ce,aa as de,aq as O,cA as W,ba as ue,e7 as he,cF as pe,hw as me,s as p,aM as G,em as xe,ac as v,en as I,r as d,w as je,x as fe,ab as ge,af as N,dS as be,ef as ye,a4 as w,a5 as Ce,c as $,bd as q,dj as Te,dp as Ae,b0 as ke,aN as z,f as ve,q as Se,aS as Ee,h as Ie,as as J,b9 as Ne,hx as b,dw as we,gy as H,du as De,dv as Re,T as D,dM as Pe,F as _e,eI as Be,dJ as Fe,eJ as Le,gt as Me,bj as Ue,b5 as V,b7 as Q,b6 as Oe,b1 as He,dF as Ke}from"./index-lGwH-xa2.js";const We=()=>{const{uiConfig:s}=T();return e.jsxs(R,{severity:"info",children:[e.jsxs("p",{children:["Read the"," ",e.jsx("a",{href:"https://docs.getunleash.io/reference/sdks",target:"_blank",rel:"noreferrer",children:"SDK overview"})," ","to connect Unleash to your application. Please note it can take up to ",e.jsx("strong",{children:"1 minute"})," before a new API key is activated."]}),e.jsx("br",{}),e.jsx("strong",{children:"API URL: "})," ",e.jsxs("pre",{style:{display:"inline"},children:[s.unleashUrl,"/api/"]})]})},Ge=["Icon","createdAt"],$e=["Icon","project","seenAt"],xs=({compact:s=!1,setHiddenColumns:t,columns:n,loading:o,rows:r,getTableProps:a,getTableBodyProps:i,headerGroups:m,globalFilter:h,prepareRow:x})=>{const f=te(ne.breakpoints.down("md"));return oe([{condition:f,columns:Ge},{condition:s,columns:$e}],t,n),e.jsxs(e.Fragment,{children:[e.jsx(y,{condition:r.length>0,show:e.jsx(C,{sx:{mb:4},children:e.jsx(We,{})})}),e.jsx(C,{sx:{overflowX:"auto"},children:e.jsx(re,{value:h,children:e.jsxs(ae,{...a(),children:[e.jsx(ie,{headerGroups:m}),e.jsx(le,{...i(),children:r.map(j=>(x(j),e.jsx(ce,{hover:!0,...j.getRowProps(),children:j.cells.map(u=>e.jsx(de,{...u.getCellProps(),children:u.render("Cell")}))})))})]})})}),e.jsx(y,{condition:r.length===0&&!o,show:e.jsx(y,{condition:(h==null?void 0:h.length)>0,show:e.jsxs(O,{children:["No tokens found matching “",h,"”"]}),elseShow:e.jsx(O,{children:e.jsxs("span",{children:["No tokens available. Read ",e.jsx(W,{href:"https://docs.getunleash.io/how-to/api",target:"_blank",rel:"noreferrer",children:"API How-to guides"})," "," to learn more."]})})})})]})},js=({path:s,permission:t,project:n})=>{const o=ue();return e.jsx(he,{Icon:pe,onClick:()=>o(s),"data-testid":me,permission:t,projectId:n,maxWidth:"700px",children:"New API token"})},qe=p(G)(({theme:s})=>({textDecoration:"none",color:s.palette.links,"&:hover, &:focus":{textDecoration:"underline"}})),ze=({projects:s,project:t})=>{const{searchQuery:n}=xe(),o=s&&Array.isArray(s)?s:t?[t]:[];return o.length===0?e.jsx(v,{children:e.jsx(I,{search:n,children:"*"})}):e.jsx(v,{children:o.map((r,a)=>e.jsxs(d.Fragment,{children:[a>0&&", ",!r||r==="*"?e.jsx(I,{search:n,children:"*"}):e.jsx(qe,{to:`/projects/${r}`,children:e.jsx(I,{search:n,children:r})})]},r))})};var P={},Je=fe;Object.defineProperty(P,"__esModule",{value:!0});var X=P.default=void 0,Ve=Je(je()),Qe=e,Xe=(0,Ve.default)((0,Qe.jsx)("path",{d:"M21 10h-8.35C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H13l2 2 2-2 2 2 4-4.04L21 10zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"}),"Key");X=P.default=Xe;const fs=(s,t)=>{const n=d.useMemo(()=>({sortBy:[{id:"createdAt",desc:!0}]}),[]),o=d.useMemo(()=>[{id:"Icon",width:"1%",Cell:()=>e.jsx(ge,{icon:e.jsx(X,{color:"disabled"})}),disableSortBy:!0,disableGlobalFilter:!0},{Header:"Username",accessor:"username",Cell:N},{Header:"Type",accessor:"type",Cell:({value:u})=>e.jsx(N,{value:K[u.toLowerCase()].label,subtitle:K[u.toLowerCase()].title}),minWidth:280},{Header:"Project",accessor:"project",Cell:u=>e.jsx(ze,{project:u.row.original.project,projects:u.row.original.projects}),minWidth:120},{Header:"Environment",accessor:"environment",Cell:N,minWidth:120},{Header:"Created",accessor:"createdAt",Cell:be,minWidth:150,disableGlobalFilter:!0},{Header:"Last seen",accessor:"seenAt",Cell:ye,minWidth:150,disableGlobalFilter:!0},{Header:"Actions",id:"Actions",align:"center",width:"1%",disableSortBy:!0,disableGlobalFilter:!0,Cell:t}],[]),{getTableProps:r,getTableBodyProps:a,headerGroups:i,rows:m,prepareRow:h,state:x,setGlobalFilter:f,setHiddenColumns:j}=w.useTable({columns:o,data:s,initialState:n,sortTypes:Ce,autoResetHiddenColumns:!1,disableSortRemove:!0},w.useGlobalFilter,w.useSortBy);return{getTableProps:r,getTableBodyProps:a,headerGroups:i,rows:m,prepareRow:h,state:x,setGlobalFilter:f,setHiddenColumns:j,columns:o}},K={client:{label:"CLIENT",title:"Connect server-side SDK or Unleash Proxy/Edge"},frontend:{label:"FRONTEND",title:"Connect web and mobile SDK"},admin:{label:"ADMIN",title:"Full access for managing Unleash"}},gs=({token:s,project:t,permission:n,track:o})=>{const{setToastData:r}=$(),a=i=>{Ae(i)&&(r({type:"success",title:"Token copied to clipboard"}),o&&typeof o=="function"&&o())};return e.jsx(q,{permission:n,projectId:t,tooltipProps:{title:"Copy token",arrow:!0},onClick:()=>a(s.secret),size:"large",children:e.jsx(Te,{})})},Ye=p("ul")({marginBottom:0}),bs=({token:s,permission:t,onRemove:n,project:o})=>{const[r,a]=d.useState(!1),{setToastData:i,setToastApiError:m}=$(),h=async()=>{try{await n(),a(!1),i({type:"success",title:"API token removed"})}catch(x){m(ve(x))}};return e.jsxs(e.Fragment,{children:[e.jsx(q,{permission:t,projectId:o,tooltipProps:{title:"Delete token",arrow:!0},onClick:()=>a(!0),size:"large",children:e.jsx(ke,{})}),e.jsx(z,{open:r,onClick:h,onClose:()=>a(!1),title:"Confirm deletion",children:e.jsxs("div",{children:["Are you sure you want to delete the following API token?",e.jsx("br",{}),e.jsxs(Ye,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"username"}),":"," ",e.jsx("code",{children:s.username})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"type"}),": ",e.jsx("code",{children:s.type})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"environment"}),":"," ",e.jsx("code",{children:s.environment})]})]})]})})]})},Ze=p("div")(()=>({maxWidth:"400px"})),es=p("form")(()=>({display:"flex",flexDirection:"column",height:"100%"})),ss=p(Se)(({theme:s})=>({width:"100%",marginBottom:s.spacing(2)})),ts=p(Ee)(({theme:s})=>({marginBottom:s.spacing(2),minWidth:"400px",[s.breakpoints.down("sm")]:{minWidth:"379px"}})),Y=p("p")(({theme:s})=>({marginBottom:s.spacing(1)})),ns=p("label")(({theme:s})=>({marginBottom:s.spacing(1)})),os=p(Ie)(({theme:s})=>({marginLeft:s.spacing(3)})),rs=p(C)({marginTop:"auto",display:"flex",justifyContent:"flex-end"}),ys=({children:s,actions:t,handleSubmit:n,handleCancel:o})=>{var i;const{uiConfig:r}=T(),a=!!((i=r==null?void 0:r.flags)!=null&&i.UNLEASH_CLOUD);return e.jsxs(es,{onSubmit:n,children:[e.jsx(y,{condition:a,show:e.jsxs(R,{severity:"info",sx:{mb:4},children:["Please be aware of our"," ",e.jsx(W,{href:"https://www.getunleash.io/fair-use-policy",children:"fair use policy"}),"."]})}),s,e.jsxs(rs,{children:[t,e.jsx(os,{onClick:o,children:"Cancel"})]})]})};var c=(s=>(s.ADMIN="ADMIN",s.CLIENT="CLIENT",s.FRONTEND="FRONTEND",s))(c||{});const Cs=s=>{var L,M;const{environments:t}=J(),{uiConfig:n}=T(),o=Ne("adminTokenKillSwitch"),r=(L=t==null?void 0:t.find(l=>l.enabled))==null?void 0:L.name,a=b(we),i=b(H,s),m=[{key:c.CLIENT,label:`Server-side SDK (${c.CLIENT})`,title:"Connect server-side SDK or Unleash Proxy/Edge",enabled:a||i}],h=b(De),x=b(Re),f=b(H,s);!s&&!o&&m.push({key:c.ADMIN,label:c.ADMIN,title:"Full access for managing Unleash",enabled:h}),n.flags.embedProxyFrontend&&m.splice(1,0,{key:c.FRONTEND,label:`Client-side SDK (${c.FRONTEND})`,title:"Connect web and mobile SDK directly to Unleash",enabled:x||f});const j=(M=m.find(l=>l.enabled))==null?void 0:M.key,[u,Z]=d.useState(""),[A,_]=d.useState(j||c.CLIENT),[g,S]=d.useState([s||"*"]),[ee,se]=d.useState(g),[B,k]=d.useState(),[F,E]=d.useState({});return d.useEffect(()=>{k(A==="ADMIN"?"*":r)},[A,r]),{username:u,type:A,apiTokenTypes:m,projects:g,environment:B,setUsername:Z,setTokenType:l=>{l==="ADMIN"?(_(c.ADMIN),se(g),S(["*"]),k("*")):(_(l),S(ee),k(r))},setProjects:S,setEnvironment:k,getApiTokenPayload:()=>({username:u,type:A,environment:B,projects:g}),isValid:()=>{const l={};return u||(l.username="Username is required"),g.length===0&&(l.projects="At least one project is required"),E(l),Object.keys(l).length===0},clearErrors:l=>{if(l){const U={...F};delete U[l],E(U)}else E({})},errors:F}},Ts=({open:s,setOpen:t,closeConfirm:n,token:o,type:r})=>e.jsxs(z,{open:s,setOpen:t,onClick:n,primaryButtonText:"Close",title:"New token created",children:[e.jsx(D,{variant:"body1",children:"Your new token has been created successfully."}),e.jsx(Pe,{token:o}),e.jsx(y,{condition:r===c.FRONTEND,show:e.jsxs(R,{sx:{mt:2},severity:"info",children:["By default, all ",c.FRONTEND," tokens may be used from any CORS origin. If you'd like to configure a strict set of origins, please use the"," ",e.jsx(G,{to:"/admin/cors",target:"_blank",rel:"noreferrer",children:"CORS origins configuration page"}),"."]})})]}),As=({username:s,setUsername:t,errors:n,clearErrors:o})=>e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:"What would you like to call this token?"}),e.jsx(ss,{value:s,name:"username",onChange:r=>t(r.target.value),label:"Token name",error:n.username!==void 0,errorText:n.username,onFocus:()=>o("username"),autoFocus:!0})]}),ks=({type:s,setType:t,apiTokenTypes:n})=>e.jsx(Ze,{children:e.jsxs(_e,{sx:{mb:2,width:"100%"},children:[e.jsx(ns,{id:"token-type",children:"What do you want to connect?"}),e.jsx(Be,{"aria-labelledby":"token-type",defaultValue:"CLIENT",name:"radio-buttons-group",value:s,onChange:(o,r)=>t(r),children:n.map(({key:o,label:r,title:a,enabled:i})=>e.jsx(Fe,{value:o,sx:{mb:1},disabled:!i,control:e.jsx(Le,{sx:{ml:.75,alignSelf:"flex-start"}}),label:e.jsx(C,{children:e.jsxs(C,{children:[e.jsx(D,{children:r}),e.jsx(D,{variant:"body2",color:"text.secondary",children:a})]})})},o))})]})}),vs=({type:s,environment:t,setEnvironment:n})=>{const{environments:o}=J(),r=s===c.ADMIN?[{key:"*",label:"ALL"}]:o.map(a=>({key:a.name,label:`${a.name.concat(a.enabled?"":" - deprecated")}`,title:a.name,disabled:!1}));return e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:"Which environment should the token have access to?"}),e.jsx(ts,{disabled:s===c.ADMIN,options:r,value:t,onChange:n,label:"Environment",id:"api_key_environment",name:"environment",IconComponent:Me,fullWidth:!0})]})},as=s=>s.map(t=>({...t.user,joinedAt:new Date(t.joinedAt),createdBy:t.createdBy})),Ss=s=>{const{data:t,error:n,mutate:o}=Ue(V(`api/admin/groups/${s}`),is);return d.useMemo(()=>({group:t&&{...t,users:as((t==null?void 0:t.users)??[])},loading:!n&&!t,refetchGroup:()=>o(),error:n}),[t,n,o])},is=s=>fetch(s).then(Q("Group")).then(t=>t.json()),Es=()=>{const{isEnterprise:s}=T(),{data:t,error:n,mutate:o}=Oe(s(),{serviceAccounts:[],rootRoles:[]},V("api/admin/service-account"),ls);return d.useMemo(()=>({serviceAccounts:(t==null?void 0:t.serviceAccounts)??[],roles:(t==null?void 0:t.rootRoles)??[],loading:!n&&!t,refetch:()=>o(),error:n}),[t,n,o])},ls=s=>fetch(s).then(Q("Service Accounts")).then(t=>t.json()),cs=p("div")(({theme:s})=>({display:"flex",flexDirection:"column",gap:s.spacing(.5),"& > *:not(:last-child)":{borderBottom:`1px solid ${s.palette.divider}`,paddingBottom:s.spacing(1)}})),Is=({role:s,roles:t,value:n})=>{const{isEnterprise:o}=T();if(o()){const r=t||[s];return e.jsx(v,{children:e.jsx(He,{tooltip:e.jsx(cs,{children:r.map(a=>e.jsx(Ke,{roleId:a,tooltip:!0},a))}),children:n})})}return e.jsx(v,{children:n})};export{xs as A,js as C,vs as E,bs as R,Y as S,c as T,gs as a,Cs as b,ys as c,As as d,ks as e,Ts as f,Es as g,Ss as h,Is as i,X as j,as as m,fs as u};
|
|
1
|
+
import{b8 as T,j as e,K as R,ad as te,d1 as ne,ag as oe,C as y,B as C,ar as re,dX as ae,a7 as ie,a8 as le,a9 as ce,aa as de,aq as O,cA as W,ba as ue,e7 as he,cF as pe,hx as me,s as p,aM as G,em as xe,ac as v,en as I,r as d,w as je,x as fe,ab as ge,af as N,dS as be,ef as ye,a4 as w,a5 as Ce,c as $,bd as q,dj as Te,dp as Ae,b0 as ke,aN as z,f as ve,q as Se,aS as Ee,h as Ie,as as J,b9 as Ne,hy as b,dw as we,gz as H,du as De,dv as Re,T as D,dM as Pe,F as _e,eI as Be,dJ as Fe,eJ as Le,gu as Me,bj as Ue,b5 as V,b7 as Q,b6 as Oe,b1 as He,dF as Ke}from"./index-CoEyUZTq.js";const We=()=>{const{uiConfig:s}=T();return e.jsxs(R,{severity:"info",children:[e.jsxs("p",{children:["Read the"," ",e.jsx("a",{href:"https://docs.getunleash.io/reference/sdks",target:"_blank",rel:"noreferrer",children:"SDK overview"})," ","to connect Unleash to your application. Please note it can take up to ",e.jsx("strong",{children:"1 minute"})," before a new API key is activated."]}),e.jsx("br",{}),e.jsx("strong",{children:"API URL: "})," ",e.jsxs("pre",{style:{display:"inline"},children:[s.unleashUrl,"/api/"]})]})},Ge=["Icon","createdAt"],$e=["Icon","project","seenAt"],xs=({compact:s=!1,setHiddenColumns:t,columns:n,loading:o,rows:r,getTableProps:a,getTableBodyProps:i,headerGroups:m,globalFilter:h,prepareRow:x})=>{const f=te(ne.breakpoints.down("md"));return oe([{condition:f,columns:Ge},{condition:s,columns:$e}],t,n),e.jsxs(e.Fragment,{children:[e.jsx(y,{condition:r.length>0,show:e.jsx(C,{sx:{mb:4},children:e.jsx(We,{})})}),e.jsx(C,{sx:{overflowX:"auto"},children:e.jsx(re,{value:h,children:e.jsxs(ae,{...a(),children:[e.jsx(ie,{headerGroups:m}),e.jsx(le,{...i(),children:r.map(j=>(x(j),e.jsx(ce,{hover:!0,...j.getRowProps(),children:j.cells.map(u=>e.jsx(de,{...u.getCellProps(),children:u.render("Cell")}))})))})]})})}),e.jsx(y,{condition:r.length===0&&!o,show:e.jsx(y,{condition:(h==null?void 0:h.length)>0,show:e.jsxs(O,{children:["No tokens found matching “",h,"”"]}),elseShow:e.jsx(O,{children:e.jsxs("span",{children:["No tokens available. Read ",e.jsx(W,{href:"https://docs.getunleash.io/how-to/api",target:"_blank",rel:"noreferrer",children:"API How-to guides"})," "," to learn more."]})})})})]})},js=({path:s,permission:t,project:n})=>{const o=ue();return e.jsx(he,{Icon:pe,onClick:()=>o(s),"data-testid":me,permission:t,projectId:n,maxWidth:"700px",children:"New API token"})},qe=p(G)(({theme:s})=>({textDecoration:"none",color:s.palette.links,"&:hover, &:focus":{textDecoration:"underline"}})),ze=({projects:s,project:t})=>{const{searchQuery:n}=xe(),o=s&&Array.isArray(s)?s:t?[t]:[];return o.length===0?e.jsx(v,{children:e.jsx(I,{search:n,children:"*"})}):e.jsx(v,{children:o.map((r,a)=>e.jsxs(d.Fragment,{children:[a>0&&", ",!r||r==="*"?e.jsx(I,{search:n,children:"*"}):e.jsx(qe,{to:`/projects/${r}`,children:e.jsx(I,{search:n,children:r})})]},r))})};var P={},Je=fe;Object.defineProperty(P,"__esModule",{value:!0});var X=P.default=void 0,Ve=Je(je()),Qe=e,Xe=(0,Ve.default)((0,Qe.jsx)("path",{d:"M21 10h-8.35C11.83 7.67 9.61 6 7 6c-3.31 0-6 2.69-6 6s2.69 6 6 6c2.61 0 4.83-1.67 5.65-4H13l2 2 2-2 2 2 4-4.04L21 10zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3z"}),"Key");X=P.default=Xe;const fs=(s,t)=>{const n=d.useMemo(()=>({sortBy:[{id:"createdAt",desc:!0}]}),[]),o=d.useMemo(()=>[{id:"Icon",width:"1%",Cell:()=>e.jsx(ge,{icon:e.jsx(X,{color:"disabled"})}),disableSortBy:!0,disableGlobalFilter:!0},{Header:"Username",accessor:"username",Cell:N},{Header:"Type",accessor:"type",Cell:({value:u})=>e.jsx(N,{value:K[u.toLowerCase()].label,subtitle:K[u.toLowerCase()].title}),minWidth:280},{Header:"Project",accessor:"project",Cell:u=>e.jsx(ze,{project:u.row.original.project,projects:u.row.original.projects}),minWidth:120},{Header:"Environment",accessor:"environment",Cell:N,minWidth:120},{Header:"Created",accessor:"createdAt",Cell:be,minWidth:150,disableGlobalFilter:!0},{Header:"Last seen",accessor:"seenAt",Cell:ye,minWidth:150,disableGlobalFilter:!0},{Header:"Actions",id:"Actions",align:"center",width:"1%",disableSortBy:!0,disableGlobalFilter:!0,Cell:t}],[]),{getTableProps:r,getTableBodyProps:a,headerGroups:i,rows:m,prepareRow:h,state:x,setGlobalFilter:f,setHiddenColumns:j}=w.useTable({columns:o,data:s,initialState:n,sortTypes:Ce,autoResetHiddenColumns:!1,disableSortRemove:!0},w.useGlobalFilter,w.useSortBy);return{getTableProps:r,getTableBodyProps:a,headerGroups:i,rows:m,prepareRow:h,state:x,setGlobalFilter:f,setHiddenColumns:j,columns:o}},K={client:{label:"CLIENT",title:"Connect server-side SDK or Unleash Proxy/Edge"},frontend:{label:"FRONTEND",title:"Connect web and mobile SDK"},admin:{label:"ADMIN",title:"Full access for managing Unleash"}},gs=({token:s,project:t,permission:n,track:o})=>{const{setToastData:r}=$(),a=i=>{Ae(i)&&(r({type:"success",title:"Token copied to clipboard"}),o&&typeof o=="function"&&o())};return e.jsx(q,{permission:n,projectId:t,tooltipProps:{title:"Copy token",arrow:!0},onClick:()=>a(s.secret),size:"large",children:e.jsx(Te,{})})},Ye=p("ul")({marginBottom:0}),bs=({token:s,permission:t,onRemove:n,project:o})=>{const[r,a]=d.useState(!1),{setToastData:i,setToastApiError:m}=$(),h=async()=>{try{await n(),a(!1),i({type:"success",title:"API token removed"})}catch(x){m(ve(x))}};return e.jsxs(e.Fragment,{children:[e.jsx(q,{permission:t,projectId:o,tooltipProps:{title:"Delete token",arrow:!0},onClick:()=>a(!0),size:"large",children:e.jsx(ke,{})}),e.jsx(z,{open:r,onClick:h,onClose:()=>a(!1),title:"Confirm deletion",children:e.jsxs("div",{children:["Are you sure you want to delete the following API token?",e.jsx("br",{}),e.jsxs(Ye,{children:[e.jsxs("li",{children:[e.jsx("strong",{children:"username"}),":"," ",e.jsx("code",{children:s.username})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"type"}),": ",e.jsx("code",{children:s.type})]}),e.jsxs("li",{children:[e.jsx("strong",{children:"environment"}),":"," ",e.jsx("code",{children:s.environment})]})]})]})})]})},Ze=p("div")(()=>({maxWidth:"400px"})),es=p("form")(()=>({display:"flex",flexDirection:"column",height:"100%"})),ss=p(Se)(({theme:s})=>({width:"100%",marginBottom:s.spacing(2)})),ts=p(Ee)(({theme:s})=>({marginBottom:s.spacing(2),minWidth:"400px",[s.breakpoints.down("sm")]:{minWidth:"379px"}})),Y=p("p")(({theme:s})=>({marginBottom:s.spacing(1)})),ns=p("label")(({theme:s})=>({marginBottom:s.spacing(1)})),os=p(Ie)(({theme:s})=>({marginLeft:s.spacing(3)})),rs=p(C)({marginTop:"auto",display:"flex",justifyContent:"flex-end"}),ys=({children:s,actions:t,handleSubmit:n,handleCancel:o})=>{var i;const{uiConfig:r}=T(),a=!!((i=r==null?void 0:r.flags)!=null&&i.UNLEASH_CLOUD);return e.jsxs(es,{onSubmit:n,children:[e.jsx(y,{condition:a,show:e.jsxs(R,{severity:"info",sx:{mb:4},children:["Please be aware of our"," ",e.jsx(W,{href:"https://www.getunleash.io/fair-use-policy",children:"fair use policy"}),"."]})}),s,e.jsxs(rs,{children:[t,e.jsx(os,{onClick:o,children:"Cancel"})]})]})};var c=(s=>(s.ADMIN="ADMIN",s.CLIENT="CLIENT",s.FRONTEND="FRONTEND",s))(c||{});const Cs=s=>{var L,M;const{environments:t}=J(),{uiConfig:n}=T(),o=Ne("adminTokenKillSwitch"),r=(L=t==null?void 0:t.find(l=>l.enabled))==null?void 0:L.name,a=b(we),i=b(H,s),m=[{key:c.CLIENT,label:`Server-side SDK (${c.CLIENT})`,title:"Connect server-side SDK or Unleash Proxy/Edge",enabled:a||i}],h=b(De),x=b(Re),f=b(H,s);!s&&!o&&m.push({key:c.ADMIN,label:c.ADMIN,title:"Full access for managing Unleash",enabled:h}),n.flags.embedProxyFrontend&&m.splice(1,0,{key:c.FRONTEND,label:`Client-side SDK (${c.FRONTEND})`,title:"Connect web and mobile SDK directly to Unleash",enabled:x||f});const j=(M=m.find(l=>l.enabled))==null?void 0:M.key,[u,Z]=d.useState(""),[A,_]=d.useState(j||c.CLIENT),[g,S]=d.useState([s||"*"]),[ee,se]=d.useState(g),[B,k]=d.useState(),[F,E]=d.useState({});return d.useEffect(()=>{k(A==="ADMIN"?"*":r)},[A,r]),{username:u,type:A,apiTokenTypes:m,projects:g,environment:B,setUsername:Z,setTokenType:l=>{l==="ADMIN"?(_(c.ADMIN),se(g),S(["*"]),k("*")):(_(l),S(ee),k(r))},setProjects:S,setEnvironment:k,getApiTokenPayload:()=>({username:u,type:A,environment:B,projects:g}),isValid:()=>{const l={};return u||(l.username="Username is required"),g.length===0&&(l.projects="At least one project is required"),E(l),Object.keys(l).length===0},clearErrors:l=>{if(l){const U={...F};delete U[l],E(U)}else E({})},errors:F}},Ts=({open:s,setOpen:t,closeConfirm:n,token:o,type:r})=>e.jsxs(z,{open:s,setOpen:t,onClick:n,primaryButtonText:"Close",title:"New token created",children:[e.jsx(D,{variant:"body1",children:"Your new token has been created successfully."}),e.jsx(Pe,{token:o}),e.jsx(y,{condition:r===c.FRONTEND,show:e.jsxs(R,{sx:{mt:2},severity:"info",children:["By default, all ",c.FRONTEND," tokens may be used from any CORS origin. If you'd like to configure a strict set of origins, please use the"," ",e.jsx(G,{to:"/admin/cors",target:"_blank",rel:"noreferrer",children:"CORS origins configuration page"}),"."]})})]}),As=({username:s,setUsername:t,errors:n,clearErrors:o})=>e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:"What would you like to call this token?"}),e.jsx(ss,{value:s,name:"username",onChange:r=>t(r.target.value),label:"Token name",error:n.username!==void 0,errorText:n.username,onFocus:()=>o("username"),autoFocus:!0})]}),ks=({type:s,setType:t,apiTokenTypes:n})=>e.jsx(Ze,{children:e.jsxs(_e,{sx:{mb:2,width:"100%"},children:[e.jsx(ns,{id:"token-type",children:"What do you want to connect?"}),e.jsx(Be,{"aria-labelledby":"token-type",defaultValue:"CLIENT",name:"radio-buttons-group",value:s,onChange:(o,r)=>t(r),children:n.map(({key:o,label:r,title:a,enabled:i})=>e.jsx(Fe,{value:o,sx:{mb:1},disabled:!i,control:e.jsx(Le,{sx:{ml:.75,alignSelf:"flex-start"}}),label:e.jsx(C,{children:e.jsxs(C,{children:[e.jsx(D,{children:r}),e.jsx(D,{variant:"body2",color:"text.secondary",children:a})]})})},o))})]})}),vs=({type:s,environment:t,setEnvironment:n})=>{const{environments:o}=J(),r=s===c.ADMIN?[{key:"*",label:"ALL"}]:o.map(a=>({key:a.name,label:`${a.name.concat(a.enabled?"":" - deprecated")}`,title:a.name,disabled:!1}));return e.jsxs(e.Fragment,{children:[e.jsx(Y,{children:"Which environment should the token have access to?"}),e.jsx(ts,{disabled:s===c.ADMIN,options:r,value:t,onChange:n,label:"Environment",id:"api_key_environment",name:"environment",IconComponent:Me,fullWidth:!0})]})},as=s=>s.map(t=>({...t.user,joinedAt:new Date(t.joinedAt),createdBy:t.createdBy})),Ss=s=>{const{data:t,error:n,mutate:o}=Ue(V(`api/admin/groups/${s}`),is);return d.useMemo(()=>({group:t&&{...t,users:as((t==null?void 0:t.users)??[])},loading:!n&&!t,refetchGroup:()=>o(),error:n}),[t,n,o])},is=s=>fetch(s).then(Q("Group")).then(t=>t.json()),Es=()=>{const{isEnterprise:s}=T(),{data:t,error:n,mutate:o}=Oe(s(),{serviceAccounts:[],rootRoles:[]},V("api/admin/service-account"),ls);return d.useMemo(()=>({serviceAccounts:(t==null?void 0:t.serviceAccounts)??[],roles:(t==null?void 0:t.rootRoles)??[],loading:!n&&!t,refetch:()=>o(),error:n}),[t,n,o])},ls=s=>fetch(s).then(Q("Service Accounts")).then(t=>t.json()),cs=p("div")(({theme:s})=>({display:"flex",flexDirection:"column",gap:s.spacing(.5),"& > *:not(:last-child)":{borderBottom:`1px solid ${s.palette.divider}`,paddingBottom:s.spacing(1)}})),Is=({role:s,roles:t,value:n})=>{const{isEnterprise:o}=T();if(o()){const r=t||[s];return e.jsx(v,{children:e.jsx(He,{tooltip:e.jsx(cs,{children:r.map(a=>e.jsx(Ke,{roleId:a,tooltip:!0},a))}),children:n})})}return e.jsx(v,{children:n})};export{xs as A,js as C,vs as E,bs as R,Y as S,c as T,gs as a,Cs as b,ys as c,As as d,ks as e,Ts as f,Es as g,Ss as h,Is as i,X as j,as as m,fs as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{s as d,v as j,B as a,cl as f,j as n,C as s,
|
|
1
|
+
import{s as d,v as j,B as a,cl as f,j as n,C as s,hw as h,V as S,bK as c,G as m,aM as v}from"./index-CoEyUZTq.js";const k=d(j)({padding:0,cursor:"inherit",transition:"color 0.2s ease-in-out"}),y=d("div")(({theme:i})=>({fontSize:i.typography.fontSize,color:i.palette.text.secondary,position:"absolute",display:"none",right:"calc(100% + 6px)",top:i.spacing(2.5),[i.breakpoints.up("md")]:{display:"block"}})),B=d("div")(({theme:i})=>({fontSize:i.typography.fontSize,fontWeight:"normal",color:i.palette.text.secondary,display:"none",top:i.spacing(2.5),[i.breakpoints.up("md")]:{display:"block"}})),I=d("div")(({theme:i})=>({fontWeight:"normal",display:"none",[i.breakpoints.up("md")]:{display:"block"}})),w=d("div")({flexDirection:"column",justifyContent:"center",verticalAlign:"middle"}),C=d(a,{shouldForwardProp:i=>i!=="disabled"})(({theme:i,disabled:o})=>({borderRadius:i.shape.borderRadiusMedium,border:`1px solid ${i.palette.divider}`,"& + &":{marginTop:i.spacing(2)},background:o?i.palette.envAccordion.disabled:i.palette.background.paper})),L=d("div",{shouldForwardProp:i=>i!=="draggable"&&i!=="disabled"})(({theme:i,draggable:o,disabled:l})=>({padding:i.spacing(.5,2),display:"flex",gap:i.spacing(1),alignItems:"center",borderBottom:`1px solid ${i.palette.divider}`,fontWeight:i.typography.fontWeightMedium,paddingLeft:o?i.spacing(1):i.spacing(2),color:l?i.palette.text.secondary:i.palette.text.primary})),F=({strategy:i,onDragStart:o,onDragEnd:l,actions:p,children:x,orderNumber:t,style:b={},description:r})=>{const u=f(i.name),g="links"in i?({children:e})=>n.jsx(v,{to:i.links.edit,children:e}):({children:e})=>n.jsxs(n.Fragment,{children:[" ",e," "]});return n.jsxs(a,{sx:{position:"relative"},children:[n.jsx(s,{condition:t!==void 0,show:n.jsx(y,{children:t})}),n.jsxs(C,{disabled:(i==null?void 0:i.disabled)||!1,style:b,children:[n.jsxs(L,{draggable:!!o,disabled:!!(i!=null&&i.disabled),children:[n.jsx(s,{condition:!!o,show:()=>n.jsx(k,{draggable:!0,disableRipple:!0,size:"small",onDragStart:o,onDragEnd:l,sx:{cursor:"move"},children:n.jsx(h,{titleAccess:"Drag to reorder",cursor:"grab",sx:{color:"action.active"}})})}),n.jsx(u,{sx:{fill:e=>e.palette.action.disabled}}),n.jsxs(w,{children:[n.jsxs(g,{children:[n.jsx(S,{maxWidth:"400",maxLength:15,text:c(String(i.name))}),n.jsx(s,{condition:!!i.title,show:n.jsx(I,{children:c(String(i.title))})})]}),n.jsx(s,{condition:!!r,show:n.jsx(B,{children:r})})]}),n.jsx(s,{condition:!!(i!=null&&i.disabled),show:()=>n.jsx(n.Fragment,{children:n.jsx(m,{color:"disabled",children:"Disabled"})})}),n.jsx(a,{sx:{marginLeft:"auto",display:"flex",minHeight:e=>e.spacing(6),alignItems:"center"},children:p})]}),n.jsx(a,{sx:{p:2,justifyItems:"center"},children:x})]})]})};export{F as S};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{hB as b,r as a,bl as m,ig as B,ih as I}from"./index-CoEyUZTq.js";const y="label";function h(t,e){typeof t=="function"?t(e):t&&(t.current=e)}function K(t,e){Object.assign(t.options,e)}function C(t,e){t.labels=e}function E(t,e){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:y;const o=[];t.datasets=e.map(n=>{const c=t.datasets.find(f=>f[s]===n[s]);return!c||!n.data||o.includes(c)?{...n}:(o.push(c),Object.assign(c,n),c)})}function L(t){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:y;const s={labels:[],datasets:[]};return C(s,t.labels),E(s,t.datasets,e),s}function v(t,e){let{height:s=150,width:o=300,redraw:n=!1,datasetIdKey:c,type:f,data:u,options:i,plugins:w=[],fallbackContent:O,updateMode:p,...j}=t;const l=a.useRef(null),r=a.useRef(),d=()=>{l.current&&(r.current=new b(l.current,{type:f,data:L(u,c),options:i&&{...i},plugins:w}),h(e,r.current))},g=()=>{h(e,null),r.current&&(r.current.destroy(),r.current=null)};return a.useEffect(()=>{!n&&r.current&&i&&K(r.current,i)},[n,i]),a.useEffect(()=>{!n&&r.current&&C(r.current.config.data,u.labels)},[n,u.labels]),a.useEffect(()=>{!n&&r.current&&u.datasets&&E(r.current.config.data,u.datasets,c)},[n,u.datasets]),a.useEffect(()=>{r.current&&(n?(g(),setTimeout(d)):r.current.update(p))},[n,i,u.labels,u.datasets,p]),a.useEffect(()=>{r.current&&(g(),setTimeout(d))},[f]),a.useEffect(()=>(d(),()=>g()),[]),m.createElement("canvas",Object.assign({ref:l,role:"img",height:s,width:o},j),O)}const T=a.forwardRef(v);function R(t,e){return b.register(e),a.forwardRef((s,o)=>m.createElement(T,Object.assign({},s,{ref:o,type:t})))}const k=R("line",B),M=R("bar",I);export{M as B,k as L};
|