unleash-server 6.2.3 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/addons/datadog.d.ts.map +1 -1
- package/dist/lib/addons/datadog.js +9 -7
- package/dist/lib/addons/datadog.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md-events.d.ts +8 -0
- package/dist/lib/addons/feature-event-formatter-md-events.d.ts.map +1 -0
- package/dist/lib/addons/feature-event-formatter-md-events.js +297 -0
- package/dist/lib/addons/feature-event-formatter-md-events.js.map +1 -0
- package/dist/lib/addons/feature-event-formatter-md.d.ts +17 -6
- package/dist/lib/addons/feature-event-formatter-md.d.ts.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.js +32 -246
- package/dist/lib/addons/feature-event-formatter-md.js.map +1 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js +3 -1
- package/dist/lib/addons/feature-event-formatter-md.test.js.map +1 -1
- package/dist/lib/addons/new-relic.d.ts.map +1 -1
- package/dist/lib/addons/new-relic.js +3 -1
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/slack-app.d.ts.map +1 -1
- package/dist/lib/addons/slack-app.js +12 -7
- package/dist/lib/addons/slack-app.js.map +1 -1
- package/dist/lib/addons/slack.d.ts.map +1 -1
- package/dist/lib/addons/slack.js +14 -9
- package/dist/lib/addons/slack.js.map +1 -1
- package/dist/lib/addons/teams.d.ts.map +1 -1
- package/dist/lib/addons/teams.js +9 -7
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/webhook.d.ts.map +1 -1
- package/dist/lib/addons/webhook.js +3 -1
- package/dist/lib/addons/webhook.js.map +1 -1
- package/dist/lib/db/account-store.d.ts +2 -1
- package/dist/lib/db/account-store.d.ts.map +1 -1
- package/dist/lib/db/account-store.js +18 -0
- package/dist/lib/db/account-store.js.map +1 -1
- package/dist/lib/features/events/event-search-controller.d.ts +3 -1
- package/dist/lib/features/events/event-search-controller.d.ts.map +1 -1
- package/dist/lib/features/events/event-search-controller.js +21 -2
- package/dist/lib/features/events/event-search-controller.js.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
- package/dist/lib/features/feature-toggle/feature-toggle-service.js +4 -12
- package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js +2 -11
- package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js.map +1 -1
- package/dist/lib/features/index.d.ts +1 -0
- package/dist/lib/features/index.d.ts.map +1 -1
- package/dist/lib/features/index.js +1 -0
- package/dist/lib/features/index.js.map +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js +1 -1
- package/dist/lib/features/metrics/client-metrics/client-metrics-store-v2.js.map +1 -1
- package/dist/lib/features/onboarding/onboarding-read-model.d.ts.map +1 -1
- package/dist/lib/features/onboarding/onboarding-read-model.js +1 -0
- package/dist/lib/features/onboarding/onboarding-read-model.js.map +1 -1
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.d.ts +6 -0
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.js +39 -0
- package/dist/lib/features/personal-dashboard/createPersonalDashboardService.js.map +1 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts +8 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js +16 -0
- package/dist/lib/features/personal-dashboard/fake-personal-dashboard-read-model.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts +16 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.d.ts +2 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.js +237 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.e2e.test.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js +71 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-controller.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.d.ts +27 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.js +3 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model-type.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.d.ts +9 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.js +78 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-read-model.js.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.d.ts +25 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.d.ts.map +1 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.js +75 -0
- package/dist/lib/features/personal-dashboard/personal-dashboard-service.js.map +1 -0
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.d.ts.map +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js +1 -1
- package/dist/lib/features/playground/feature-evaluator/strategy/flexible-rollout-strategy.js.map +1 -1
- package/dist/lib/features/project/fake-project-owners-read-model.d.ts +6 -3
- package/dist/lib/features/project/fake-project-owners-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/fake-project-owners-read-model.js +6 -0
- package/dist/lib/features/project/fake-project-owners-read-model.js.map +1 -1
- package/dist/lib/features/project/fake-project-read-model.d.ts +2 -0
- package/dist/lib/features/project/fake-project-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/fake-project-read-model.js +6 -0
- package/dist/lib/features/project/fake-project-read-model.js.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.d.ts +10 -5
- package/dist/lib/features/project/project-owners-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.js +26 -10
- package/dist/lib/features/project/project-owners-read-model.js.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.test.js +62 -20
- package/dist/lib/features/project/project-owners-read-model.test.js.map +1 -1
- package/dist/lib/features/project/project-owners-read-model.type.d.ts +13 -5
- package/dist/lib/features/project/project-owners-read-model.type.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model-type.d.ts +5 -4
- package/dist/lib/features/project/project-read-model-type.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model.d.ts +4 -2
- package/dist/lib/features/project/project-read-model.d.ts.map +1 -1
- package/dist/lib/features/project/project-read-model.js +48 -20
- package/dist/lib/features/project/project-read-model.js.map +1 -1
- package/dist/lib/features/project/project-service.d.ts +4 -4
- package/dist/lib/features/project/project-service.d.ts.map +1 -1
- package/dist/lib/features/project/project-service.e2e.test.js +20 -3
- package/dist/lib/features/project/project-service.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-service.js +7 -15
- package/dist/lib/features/project/project-service.js.map +1 -1
- package/dist/lib/features/project/project-store-type.d.ts +4 -6
- package/dist/lib/features/project/project-store-type.d.ts.map +1 -1
- package/dist/lib/features/project/project-store.d.ts +1 -5
- package/dist/lib/features/project/project-store.d.ts.map +1 -1
- package/dist/lib/features/project/project-store.e2e.test.js +1 -1
- package/dist/lib/features/project/project-store.e2e.test.js.map +1 -1
- package/dist/lib/features/project/project-store.js +5 -135
- package/dist/lib/features/project/project-store.js.map +1 -1
- package/dist/lib/metrics.d.ts.map +1 -1
- package/dist/lib/metrics.js +18 -1
- package/dist/lib/metrics.js.map +1 -1
- package/dist/lib/metrics.test.js +2 -2
- package/dist/lib/metrics.test.js.map +1 -1
- package/dist/lib/openapi/spec/event-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/event-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/event-schema.js +10 -0
- package/dist/lib/openapi/spec/event-schema.js.map +1 -1
- package/dist/lib/openapi/spec/event-search-response-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/event-search-response-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/events-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/events-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/feature-events-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/feature-events-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.d.ts +2 -0
- package/dist/lib/openapi/spec/index.d.ts.map +1 -1
- package/dist/lib/openapi/spec/index.js +2 -0
- package/dist/lib/openapi/spec/index.js.map +1 -1
- package/dist/lib/openapi/spec/integration-event-schema.d.ts +10 -0
- package/dist/lib/openapi/spec/integration-event-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/integration-events-schema.d.ts +20 -0
- package/dist/lib/openapi/spec/integration-events-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts +168 -0
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js +81 -0
- package/dist/lib/openapi/spec/personal-dashboard-project-details-schema.js.map +1 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts +142 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.d.ts.map +1 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.js +149 -0
- package/dist/lib/openapi/spec/personal-dashboard-schema.js.map +1 -0
- package/dist/lib/routes/admin-api/index.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/index.js +2 -0
- package/dist/lib/routes/admin-api/index.js.map +1 -1
- package/dist/lib/schema/role-schema.js +1 -1
- package/dist/lib/schema/role-schema.js.map +1 -1
- package/dist/lib/services/access-service.d.ts +1 -0
- package/dist/lib/services/access-service.d.ts.map +1 -1
- package/dist/lib/services/access-service.js +15 -6
- package/dist/lib/services/access-service.js.map +1 -1
- package/dist/lib/services/access-service.test.js +22 -0
- package/dist/lib/services/access-service.test.js.map +1 -1
- package/dist/lib/services/clean-permission-environment.test.d.ts +2 -0
- package/dist/lib/services/clean-permission-environment.test.d.ts.map +1 -0
- package/dist/lib/services/clean-permission-environment.test.js +114 -0
- package/dist/lib/services/clean-permission-environment.test.js.map +1 -0
- package/dist/lib/services/index.d.ts +2 -1
- package/dist/lib/services/index.d.ts.map +1 -1
- package/dist/lib/services/index.js +12 -1
- package/dist/lib/services/index.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.map +1 -1
- package/dist/lib/types/experimental.d.ts +1 -1
- package/dist/lib/types/experimental.d.ts.map +1 -1
- package/dist/lib/types/experimental.js +2 -5
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +1 -10
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/services.d.ts +3 -0
- package/dist/lib/types/services.d.ts.map +1 -1
- package/dist/lib/types/stores/account-store.d.ts +2 -1
- package/dist/lib/types/stores/account-store.d.ts.map +1 -1
- package/dist/lib/types/user.d.ts +1 -0
- package/dist/lib/types/user.d.ts.map +1 -1
- package/dist/lib/types/user.js.map +1 -1
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.d.ts +3 -0
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.d.ts.map +1 -0
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.js +8 -0
- package/dist/migrations/20240919083625-client-metrics-env-variants-daily-to-bigint.js.map +1 -0
- package/dist/server-dev.js +1 -3
- package/dist/server-dev.js.map +1 -1
- package/dist/test/fixtures/fake-access-store.d.ts +2 -2
- package/dist/test/fixtures/fake-access-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-access-store.js +5 -3
- package/dist/test/fixtures/fake-access-store.js.map +1 -1
- package/dist/test/fixtures/fake-account-store.d.ts +1 -0
- package/dist/test/fixtures/fake-account-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-account-store.js +3 -0
- package/dist/test/fixtures/fake-account-store.js.map +1 -1
- package/dist/test/fixtures/fake-project-store.d.ts +2 -4
- package/dist/test/fixtures/fake-project-store.d.ts.map +1 -1
- package/dist/test/fixtures/fake-project-store.js +0 -20
- package/dist/test/fixtures/fake-project-store.js.map +1 -1
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-CRdeeG3w.js → AdvancedPlayground-eDTjzS3E.js} +2 -2
- package/frontend/build/static/{CreateProject-8AyZj2dp.js → CreateProject-DEpFVLhl.js} +1 -1
- package/frontend/build/static/FeatureMetricsChart-CZKpaUOH.js +2 -0
- package/frontend/build/static/FeatureStaleDialog-2jleuqhn.js +7 -0
- package/frontend/build/static/FeatureViewLazyExport-CeAl2Yig.js +10 -0
- package/frontend/build/static/FlagMetricsChart-BRMGXeEU.js +2 -0
- package/frontend/build/static/{LazyAdminExport-0g_UOhr3.js → LazyAdminExport-CpfHUB52.js} +14 -14
- package/frontend/build/static/LazyProjectExport-XXHA0k8I.js +735 -0
- package/frontend/build/static/{LineChartComponent-BLXX5chp.js → LineChartComponent-B5O_VFku.js} +1 -1
- package/frontend/build/static/{NetworkOverview-DqGLVIJ6.js → NetworkOverview-DU1OT7gB.js} +1 -1
- package/frontend/build/static/NetworkTraffic-DQdYqYoU.js +1 -0
- package/frontend/build/static/NetworkTrafficUsage-CkyWiuAD.js +1 -0
- package/frontend/build/static/{ReactJSONEditor-Bvhd5heT.js → ReactJSONEditor-DlQuk0pf.js} +1 -1
- package/frontend/build/static/{RoleCell-DGcue0jn.js → RoleCell-DMPAgQMx.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-Das6_30A.js → StrategyItemContainer-L9vwk9uU.js} +1 -1
- package/frontend/build/static/aggregateFeatureMetrics-CLK9MToQ.js +1 -0
- package/frontend/build/static/formatTickValue-DArtcDRb.js +6 -0
- package/frontend/build/static/{index-BsIpdLcw.js → index-DK5jinWf.js} +1 -1
- package/frontend/build/static/index-JQ6lMAyk.js +524 -0
- package/frontend/build/static/onboardingConcepts-1jcVefeL.png +0 -0
- package/frontend/build/static/unknownify-C7SyNno2.js +1 -0
- package/frontend/build/static/{useApiTokens-5JgqgHim.js → useApiTokens-DQBXJ3PL.js} +1 -1
- package/frontend/package.json +13 -13
- package/package.json +7 -6
- package/frontend/build/static/FeatureMetricsChart-DEo4WxO1.js +0 -2
- package/frontend/build/static/FeatureStaleDialog-CrsbH2rq.js +0 -7
- package/frontend/build/static/FeatureViewLazyExport-BwY7TYmZ.js +0 -10
- package/frontend/build/static/LazyProjectExport-C1eSkT3Z.js +0 -177
- package/frontend/build/static/NetworkTraffic-BWFLlaz7.js +0 -1
- package/frontend/build/static/NetworkTrafficUsage-BvoBumVR.js +0 -6
- package/frontend/build/static/index-Cx91uh9W.js +0 -524
- package/frontend/build/static/unknownify-8qa4PVkQ.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var f=Object.defineProperty;var k=(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)=>k(t,typeof e!="symbol"?e+"":e,a);import{bb as C,b as v,r as p,cL as w,j as o,C as P,N as S,c_ as j,i9 as N,ia as I,ib as L,ic as M,id as R,ie as T,ih as A,ig as _,il as q,ik as u}from"./index-Cx91uh9W.js";import{u as E,a as g}from"./unknownify-8qa4PVkQ.js";import{L as D}from"./index-BsIpdLcw.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 m=["circle","rect","rectRounded","rectRot","triangle"],W=(t,e)=>t.map(a=>({x:a[0],y:e(a[1])})),$=(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,r)=>r.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,r,i)=>u(i[r].value*1e3,e.locale)}}}});class z{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 B=(t,e)=>{var a;if((a=e==null?void 0:e.data)!=null&&a.result){const r=new z([t.palette.success,t.palette.error,t.palette.primary,t.palette.warning]);return e.data.result.map((i,x)=>{var c,d;const n=g((c=i.metric)==null?void 0:c.endpoint),b=g((d=i.metric)==null?void 0:d.appName),l=r.pick(n),y=i.values||[];return{label:`${n}: ${b}`,borderColor:l.main,backgroundColor:l.main,data:W(y,h=>Number.parseFloat(h)),elements:{point:{radius:4,pointStyle:m[x%m.length]},line:{borderDash:[8,4]}}}})}return[]},K=()=>{const{locationSettings:t}=C(),{metrics:e}=E(),a=v(),r=p.useMemo(()=>$(a,t),[a,t]);w("Network - Traffic");const i=p.useMemo(()=>({datasets:B(a,e)}),[a,e,t]);return o.jsx(P,{condition:i.datasets.length===0,show:o.jsx(S,{severity:"warning",children:"No data available."}),elseShow:o.jsx(j,{sx:{display:"grid",gap:4},children:o.jsx("div",{style:{height:400},children:o.jsx(D,{data:i,options:r,"aria-label":"An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API"})})})})};N.register(I,L,M,R,T,A,_,q);export{K as NetworkTraffic,K as default};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import{s as E,cs as O,c_ as K,cp as ct,j as f,H as ye,C as G,cD as me,ij as Lt,iq as z,ir as j,is as M,it as ce,iu as ke,iv as Wt,iw as x,i9 as se,ix as Q,iy as T,iz as Bt,iA as Yt,iB as F,iC as De,iD as de,iE as zt,iF as _t,iG as $,iH as re,iI as Ye,iJ as Xt,iK as ze,iL as B,iM as ut,iN as ft,iO as Nt,cL as Ht,b as Ut,b8 as $t,r as P,N as _e,L as Xe,g7 as Vt,ia as qt,ib as Jt,iP as Gt,il as Ft,ig as Kt,ih as Qt}from"./index-Cx91uh9W.js";import{B as Zt}from"./index-BsIpdLcw.js";import{u as en,a as tn}from"./LazyAdminExport-0g_UOhr3.js";import"./RoleCell-DGcue0jn.js";import"./useApiTokens-5JgqgHim.js";const nn=E(O)(({theme:t})=>({display:"flex",flexDirection:"row"})),Ne=E(O)(({theme:t})=>({display:"flex",flexDirection:"row",flex:"1 1"})),He=E(O)(({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(Ne,{item:!0,xs:5.5,md:5.5,children:f.jsx(Ue,{children:f.jsxs(He,{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(G,{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(G,{condition:i&&e>0&&r>0,show:f.jsx(Ne,{item:!0,xs:5.5,md:5.5,children:f.jsx(Ue,{children:f.jsxs(He,{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(G,{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
|
-
* chartjs-plugin-annotation v2.2.1
|
|
3
|
-
* https://www.chartjs.org/chartjs-plugin-annotation/index
|
|
4
|
-
* (c) 2023 chartjs-plugin-annotation Contributors
|
|
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,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,R=.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-R&&t.x<=o+a+R,l=t.y>=n-a-R&&t.y<=r+a+R;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=>{B(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 X(t,e){t.shadowColor=e.backgroundShadowColor,t.shadowBlur=e.shadowBlur,t.shadowOffsetX=e.shadowOffsetX,t.shadowOffsetY=e.shadowOffsetY}function Oe(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=T(o)?o.map(d=>de(d)):[de(o)],i=e.textStrokeWidth,s=T(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(),X(t,n);const a=I(t,n);t.fillStyle=n.backgroundColor,t.beginPath(),zt(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=T(o)?o:[o],i=n.font,s=T(i)?i.map(u=>de(u)):[de(i)],a=n.color,d=T(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,Xt),t.closePath();break;case"triangle":t.moveTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ye,t.lineTo(e+Math.sin(s)*o,n-Math.cos(s)*o),s+=Ye,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=ze(t)?t:e;return ze(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 Y(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),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=Y(t,e.min,n?e.end:e.start),r=Y(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")],i=o[L(o,e,"yScaleID")];let s=n.width/2,a=n.height/2;return r&&(s=Y(r,e.xValue,r.left+r.width/2)),i&&(a=Y(i,e.yValue,i.top+i.height/2)),{x:s,y:a}}function Re(t,e){const n=t.scales,o=n[L(n,e,"xScaleID")],r=n[L(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=Re(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=Re(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=Y(t,n.value,NaN),r=Y(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: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=Oe(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 W(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"],Te=xe.concat("click");function En(t,e,n){e.listened=mt(n,Te,e.listeners),e.moveListened=!1,e._getElements=ve,xe.forEach(o=>{B(n[o])&&(e.moveListened=!0)}),(!e.listened||!e.moveListened)&&e.annotations.forEach(o=>{!e.listened&&B(o.click)&&(e.listened=!0),e.moveListened||xe.forEach(r=>{B(o[r])&&(e.listened=!0,e.moveListened=!0)})})}function On(t,e,n){if(t.listened)switch(e.type){case"mousemove":case"mouseout":return Rn(t,e,n);case"click":return Tn(t,e,n)}}function Rn(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=Je(i,"leave",r,o);return Je(i,"enter",o,r)||s}function Je({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 Tn(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 Ln(t,e,n){const o=e.visibleElements;e.hooked=mt(n,le,e.hooks),e.hooked||o.forEach(r=>{e.hooked||le.forEach(i=>{B(r.options[i])&&(e.hooked=!0)})})}function Ge(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=Xn(t.scales,e,n);let r=Fe(e,o,"min","suggestedMin");r=Fe(e,o,"max","suggestedMax")||r,r&&B(e.handleTickRangeOptions)&&e.handleTickRangeOptions()}function Bn(t,e){for(const n of t)zn(n,e)}function Fe(t,e,n,o){if(ut(e[n])&&!Yn(t.options,n,o)){const r=t[n]!==e[n];return t[n]=e[n],r}}function Yn(t,e,n){return M(t[e])||M(t[n])}function zn(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 Xn(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):L(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 N extends z{inRange(e,n,o,r){const{x:i,y:s}=W({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)}}N.id="boxAnnotation";N.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};N.defaultRoutes={borderColor:"color",backgroundColor:"color"};N.descriptors={label:{_fallback:!0}};const Dt=["left","bottom","top","right"];class ee extends z{inRange(e,n,o,r){const{x:i,y:s}=W({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),Hn(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}=Re(e,n);o={x:a,y:d}}const r=ce(n.padding),i=Oe(e.ctx,n),s=Nn(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 Nn(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 Hn(t,e){const{pointX:n,pointY:o,options:r}=e,i=r.callout,s=i&&i.display&&Jn(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=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: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 Jn(t,e){const n=e.position;return Dt.includes(n)?n:Gn(t,e)}function Gn(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 H=W({x:p[C],y:m[C]},g,j(h));S.push({position:Dt[C],distance:ke(H,{x:d,y:l})})}return S.sort((C,H)=>C.distance-H.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 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,J=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 z{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=J(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();X(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=R,r){const{x:i,y:s,x2:a,y2:d}=t.getProps(["x","y","x2","y2"],r),l=a-i,c=d-s,u=J(l)+J(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),J(e-g)+J(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=Oe(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):Le(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:Wt(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(),X(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 W(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 z{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=W({x:e,y:n},this.getCenterPoint(r),j(-i));return g[o]>=h.start-u-R&&g[o]<=h.end+u+R}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),X(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({},N.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 z{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,X(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 z{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=W({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,X(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:N,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=Te.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),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 Nt(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[We(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[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],i=t[o];Me(o)&&T(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=Te.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))}):T(i)&&r.push(...i),Bn(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){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);On(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 ie(t,e,n){const{ctx:o,chartArea:r}=t,i=D.get(t);n&&Bt(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&&Yt(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?(Ge(n,r,"beforeDraw"),r.draw(t,e),Ge(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,Yo=()=>{Ht("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,H]=P.useState(0),[Be,Et]=P.useState(0),[Ot,Rt]=P.useState(0),U={labels:w,datasets:m},Tt=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(H(k),g>0){const oe=u(k,g);Et(oe),Rt(h(r,U.datasets,g,new Date))}}},[U]),f.jsx(G,{condition:e()||!Tt,show:f.jsx(_e,{severity:"warning",children:"Not enabled."}),elseShow:f.jsxs(f.Fragment,{children:[f.jsx(G,{condition:g>0&&Be>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:Xe,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:Xe,to:"https://docs.getunleash.io/reference/unleash-edge",children:"Unleash Edge instance"})," ","in your own datacenter."]})}),f.jsxs(vo,{children:[f.jsxs(O,{container:!0,component:"header",spacing:2,children:[f.jsx(O,{item:!0,xs:12,md:10,children:f.jsx(on,{usageTotal:C,includedTraffic:g,overageCost:Be,estimatedMonthlyCost:Ot})}),f.jsx(O,{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(O,{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,Jt,Gt,Ft,Kt,Qt);export{Yo as NetworkTrafficUsage,Yo as default};
|