unleash-server 8.0.1 → 8.0.2
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/addon.d.ts +10 -2
- package/dist/lib/addons/addon.d.ts.map +1 -1
- package/dist/lib/addons/addon.js +104 -6
- package/dist/lib/addons/addon.js.map +1 -1
- package/dist/lib/addons/datadog-definition.js +1 -1
- package/dist/lib/addons/datadog-definition.js.map +1 -1
- package/dist/lib/addons/datadog.test.js +2 -0
- package/dist/lib/addons/datadog.test.js.map +1 -1
- package/dist/lib/addons/index.d.ts.map +1 -1
- package/dist/lib/addons/index.js +2 -0
- package/dist/lib/addons/index.js.map +1 -1
- package/dist/lib/addons/new-relic.d.ts.map +1 -1
- package/dist/lib/addons/new-relic.js +0 -1
- package/dist/lib/addons/new-relic.js.map +1 -1
- package/dist/lib/addons/new-relic.test.js +0 -1
- package/dist/lib/addons/new-relic.test.js.map +1 -1
- package/dist/lib/addons/slack.test.js +1 -2
- package/dist/lib/addons/slack.test.js.map +1 -1
- package/dist/lib/addons/teams-definition.d.ts.map +1 -1
- package/dist/lib/addons/teams-definition.js +1 -0
- package/dist/lib/addons/teams-definition.js.map +1 -1
- package/dist/lib/addons/teams-workflow-definition.d.ts +4 -0
- package/dist/lib/addons/teams-workflow-definition.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow-definition.js +66 -0
- package/dist/lib/addons/teams-workflow-definition.js.map +1 -0
- package/dist/lib/addons/teams-workflow.d.ts +15 -0
- package/dist/lib/addons/teams-workflow.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.js +110 -0
- package/dist/lib/addons/teams-workflow.js.map +1 -0
- package/dist/lib/addons/teams-workflow.test.d.ts +2 -0
- package/dist/lib/addons/teams-workflow.test.d.ts.map +1 -0
- package/dist/lib/addons/teams-workflow.test.js +202 -0
- package/dist/lib/addons/teams-workflow.test.js.map +1 -0
- package/dist/lib/addons/teams.d.ts.map +1 -1
- package/dist/lib/addons/teams.js +0 -1
- package/dist/lib/addons/teams.js.map +1 -1
- package/dist/lib/addons/teams.test.js +0 -1
- package/dist/lib/addons/teams.test.js.map +1 -1
- package/dist/lib/addons/validate-url.d.ts +18 -0
- package/dist/lib/addons/validate-url.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.js +93 -0
- package/dist/lib/addons/validate-url.js.map +1 -0
- package/dist/lib/addons/validate-url.test.d.ts +2 -0
- package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
- package/dist/lib/addons/validate-url.test.js +199 -0
- package/dist/lib/addons/validate-url.test.js.map +1 -0
- package/dist/lib/create-config.d.ts.map +1 -1
- package/dist/lib/create-config.js +7 -0
- package/dist/lib/create-config.js.map +1 -1
- package/dist/lib/error/bad-data-error.d.ts.map +1 -1
- package/dist/lib/error/bad-data-error.js +10 -2
- package/dist/lib/error/bad-data-error.js.map +1 -1
- package/dist/lib/error/unleash-error.test.js +23 -0
- package/dist/lib/error/unleash-error.test.js.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.d.ts.map +1 -1
- package/dist/lib/features/frontend-api/frontend-api-service.js +17 -20
- package/dist/lib/features/frontend-api/frontend-api-service.js.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.d.ts.map +1 -1
- package/dist/lib/features/metrics/integrations/integration-metrics.js +2 -0
- package/dist/lib/features/metrics/integrations/integration-metrics.js.map +1 -1
- package/dist/lib/middleware/secure-headers.d.ts.map +1 -1
- package/dist/lib/middleware/secure-headers.js +20 -1
- package/dist/lib/middleware/secure-headers.js.map +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.d.ts +1 -1
- package/dist/lib/openapi/spec/addon-create-update-schema.js +1 -1
- package/dist/lib/openapi/spec/addons-schema.d.ts +15 -0
- package/dist/lib/openapi/spec/addons-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/addons-schema.js +51 -0
- package/dist/lib/openapi/spec/addons-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts +6 -1
- package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.js +13 -1
- package/dist/lib/openapi/spec/profile-schema.js.map +1 -1
- package/dist/lib/openapi/spec/profile-schema.test.js +1 -0
- package/dist/lib/openapi/spec/profile-schema.test.js.map +1 -1
- package/dist/lib/routes/admin-api/addon.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/addon.js +6 -2
- package/dist/lib/routes/admin-api/addon.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.d.ts.map +1 -1
- package/dist/lib/routes/admin-api/user/user.js +3 -1
- package/dist/lib/routes/admin-api/user/user.js.map +1 -1
- package/dist/lib/routes/admin-api/user/user.test.js +32 -7
- package/dist/lib/routes/admin-api/user/user.test.js.map +1 -1
- package/dist/lib/routes/util.d.ts.map +1 -1
- package/dist/lib/routes/util.js +8 -1
- package/dist/lib/routes/util.js.map +1 -1
- package/dist/lib/routes/util.test.d.ts +2 -0
- package/dist/lib/routes/util.test.d.ts.map +1 -0
- package/dist/lib/routes/util.test.js +18 -0
- package/dist/lib/routes/util.test.js.map +1 -0
- package/dist/lib/schema/html-input.d.ts +4 -0
- package/dist/lib/schema/html-input.d.ts.map +1 -0
- package/dist/lib/schema/html-input.js +38 -0
- package/dist/lib/schema/html-input.js.map +1 -0
- package/dist/lib/schema/html-input.test.d.ts +2 -0
- package/dist/lib/schema/html-input.test.d.ts.map +1 -0
- package/dist/lib/schema/html-input.test.js +98 -0
- package/dist/lib/schema/html-input.test.js.map +1 -0
- package/dist/lib/server-impl.d.ts +2 -1
- package/dist/lib/server-impl.d.ts.map +1 -1
- package/dist/lib/server-impl.js +2 -1
- package/dist/lib/server-impl.js.map +1 -1
- package/dist/lib/services/addon-service.d.ts +8 -1
- package/dist/lib/services/addon-service.d.ts.map +1 -1
- package/dist/lib/services/addon-service.js +24 -1
- package/dist/lib/services/addon-service.js.map +1 -1
- package/dist/lib/services/addon-service.test.js +75 -8
- package/dist/lib/services/addon-service.test.js.map +1 -1
- package/dist/lib/services/project-schema.d.ts +1 -2
- package/dist/lib/services/project-schema.d.ts.map +1 -1
- package/dist/lib/services/project-schema.js +4 -2
- package/dist/lib/services/project-schema.js.map +1 -1
- package/dist/lib/services/user-service.d.ts +1 -0
- package/dist/lib/services/user-service.d.ts.map +1 -1
- package/dist/lib/services/user-service.js +7 -0
- package/dist/lib/services/user-service.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 +21 -0
- package/dist/lib/types/experimental.js.map +1 -1
- package/dist/lib/types/model.d.ts +2 -0
- package/dist/lib/types/model.d.ts.map +1 -1
- package/dist/lib/types/model.js.map +1 -1
- package/dist/lib/types/option.d.ts +4 -0
- package/dist/lib/types/option.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.d.ts.map +1 -1
- package/dist/lib/ui-config/ui-config-service.js +4 -2
- package/dist/lib/ui-config/ui-config-service.js.map +1 -1
- package/dist/lib/ui-config/ui-config.test.js +21 -2
- package/dist/lib/ui-config/ui-config.test.js.map +1 -1
- package/dist/lib/util/anonymise.d.ts +1 -0
- package/dist/lib/util/anonymise.d.ts.map +1 -1
- package/dist/lib/util/anonymise.js +3 -0
- package/dist/lib/util/anonymise.js.map +1 -1
- package/dist/lib/util/anonymise.test.js +4 -1
- package/dist/lib/util/anonymise.test.js.map +1 -1
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts +3 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.d.ts.map +1 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js +38 -0
- package/dist/migrations/20260617115403-update-flag-descriptions.js.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts +3 -0
- package/dist/migrations/20260624120000-servicenow-change-references.d.ts.map +1 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js +22 -0
- package/dist/migrations/20260624120000-servicenow-change-references.js.map +1 -0
- package/dist/server-dev.js +5 -1
- package/dist/server-dev.js.map +1 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js +2 -1
- package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
- package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
- package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
- package/frontend/build/index.html +2 -2
- package/frontend/build/static/{AdvancedPlayground-BEYkf6Xg.js → AdvancedPlayground-DdeMb-6I.js} +2 -2
- package/frontend/build/static/{BackendConnections-DdvotR_8.js → BackendConnections-kgR0xyIH.js} +1 -1
- package/frontend/build/static/DialogWithAside-DzCSDyWo.js +1110 -0
- package/frontend/build/static/{EnterpriseEdge-DN23kaQp.js → EnterpriseEdge-CjslqYDM.js} +4 -4
- package/frontend/build/static/{FeatureMetricsChart-CmVkRuwG.js → FeatureMetricsChart-B4WryxcW.js} +2 -2
- package/frontend/build/static/FeatureStaleDialog-EzReRTI5.js +8 -0
- package/frontend/build/static/FeatureViewLazyExport-8eQKTvdS.js +10 -0
- package/frontend/build/static/{FlagMetricsChart-ZjHSwulg.js → FlagMetricsChart-hNQuwOxW.js} +2 -2
- package/frontend/build/static/{FrontendNetworkTrafficUsage-BmLOJdK9.js → FrontendNetworkTrafficUsage-pcr83PWo.js} +1 -1
- package/frontend/build/static/GridLayoutWrapper-B_YyjZ7l.js +5 -0
- package/frontend/build/static/{ImpactMetricsPage-D1CETZR_.js → ImpactMetricsPage-DGH_S9oz.js} +1 -1
- package/frontend/build/static/ImpactViewsPage-DZqKPFvE.js +1 -0
- package/frontend/build/static/{LazyAdminExport-BvtR_me3.js → LazyAdminExport-B1ReAViz.js} +15 -15
- package/frontend/build/static/LazyProjectExport-BMVcGpNI.js +46 -0
- package/frontend/build/static/LifecycleChartComponent-BeoRUO9q.js +2 -0
- package/frontend/build/static/{LineChartComponent-d80f3Tky.js → LineChartComponent-BbCMbJ-m.js} +1 -1
- package/frontend/build/static/{MarkCompletedDialogue-CtzRfovJ.js → MarkCompletedDialogue-CcXyp8UE.js} +1 -1
- package/frontend/build/static/{NetworkOverview-D1UOxIaf.js → NetworkOverview-0mBnFAZX.js} +1 -1
- package/frontend/build/static/{NetworkTraffic-CLnhub6c.js → NetworkTraffic-DmG5Iv25.js} +1 -1
- package/frontend/build/static/{NetworkTrafficUsage-PgI0lqze.js → NetworkTrafficUsage-DccaVLYs.js} +1 -1
- package/frontend/build/static/OnboardingProgress-Bp9sZ-ZM.js +1 -0
- package/frontend/build/static/{PercentageDonut-C6I2UOES.js → PercentageDonut-DBDGNJlh.js} +1 -1
- package/frontend/build/static/PermissionButton-B-IfzChn.js +1 -0
- package/frontend/build/static/ReactJSONEditor-DeBI7JPg.js +4 -0
- package/frontend/build/static/RoleCell-DhYvu4YH.js +1 -0
- package/frontend/build/static/Safeguard-DErU6fSK.js +1 -0
- package/frontend/build/static/{SelectSdk-D2NaTubs.js → SelectSdk-Dr_pzQgX.js} +1 -1
- package/frontend/build/static/StoriesPage-frGP1Bfr.js +2 -0
- package/frontend/build/static/{aggregateFeatureMetrics-DBivHCcj.js → aggregateFeatureMetrics-B-67HaIZ.js} +1 -1
- package/frontend/build/static/chartjs-plugin-annotation.esm-DP4wCpdA.js +1 -0
- package/frontend/build/static/differenceInSeconds-DMZGQwjK.js +1 -0
- package/frontend/build/static/endOfMonth-CkSR_DAx.js +1 -0
- package/frontend/build/static/esm-DdgY1Q5s.js +12 -0
- package/frontend/build/static/formatDistanceToNow-CyouiCIY.js +1 -0
- package/frontend/build/static/index-C04TEs4k.js +290 -0
- package/frontend/build/static/{metricsFormatters-BEX2qb8Y.js → metricsFormatters-DhX-aU17.js} +1 -1
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DlOtHZg3.js +1 -0
- package/frontend/build/static/parse-Chj4PyAg.js +1 -0
- package/frontend/build/static/startOfHour-P0Sr6h8e.js +1 -0
- package/frontend/build/static/themeStyles-DGVpwkcv.js +1 -0
- package/frontend/build/static/{useConditionallyHiddenColumns-DTDzRlyO.js → useConditionallyHiddenColumns-C5q9zdfJ.js} +1 -1
- package/frontend/build/static/useCustomEvent-Dj2V5RVb.js +1 -0
- package/frontend/build/static/{useGroupedImpactMetricsData-CK8Pz2an.js → useGroupedImpactMetricsData-CW9qnV2y.js} +1 -1
- package/frontend/build/static/{useInstanceTrafficMetrics-CIpyIGYi.js → useInstanceTrafficMetrics-CRCDB4TX.js} +1 -1
- package/frontend/package.json +9 -7
- package/package.json +11 -9
- package/frontend/build/static/ChatOutlined-jZlhx14o.js +0 -1
- package/frontend/build/static/CloudCircle-BjnxUYAO.js +0 -1
- package/frontend/build/static/DialogWithAside-BvaGTcqO.js +0 -1106
- package/frontend/build/static/FeatureStaleDialog-BkyjUGR9.js +0 -8
- package/frontend/build/static/FeatureViewLazyExport-C5FggFea.js +0 -10
- package/frontend/build/static/GridLayoutWrapper-D93wkNEo.js +0 -3
- package/frontend/build/static/ImpactViewsPage-DeBga4lU.js +0 -1
- package/frontend/build/static/LazyProjectExport-BkOu6pHf.js +0 -46
- package/frontend/build/static/LifecycleChartComponent-BYvIFr7Q.js +0 -2
- package/frontend/build/static/PermissionButton-BIeM26DH.js +0 -1
- package/frontend/build/static/ReactJSONEditor-C-paZV5Q.js +0 -4
- package/frontend/build/static/RoleCell-BCPNstXC.js +0 -1
- package/frontend/build/static/Safeguard-9zs64Bna.js +0 -1
- package/frontend/build/static/StoriesPage-5lbMiQlA.js +0 -1
- package/frontend/build/static/chartjs-plugin-annotation.esm-BxKcCGhA.js +0 -1
- package/frontend/build/static/esm-CFWP4-MJ.js +0 -15
- package/frontend/build/static/index-BJ2iUk24.js +0 -289
- package/frontend/build/static/networkTrafficUsageHighlightPlugin-DVWh8Lrd.js +0 -1
- package/frontend/build/static/parse-BhYjTMCL.js +0 -1
- package/frontend/build/static/startOfHour-KiLZtdEa.js +0 -1
- package/frontend/build/static/themeStyles-BPY8RNQO.js +0 -1
- package/frontend/build/static/useCustomEvent-CwoY8S5F.js +0 -1
- /package/frontend/build/static/{connect-DbjGV9Hl.png → cr-DbjGV9Hl.png} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{$t as i,En as a,Ft as o,Gt as s,Jt as c,Kt as l,Nn as u,On as d,Qt as f,Tn as p,_n as m,en as h,f as g,fn as _,in as v,kn as y,mn as ee,nn as te,ns as ne,qt as b,tn as re,wn as ie,xn as x}from"./index-C04TEs4k.js";var ae=e(t(),1),oe=e(g(),1),S=function(){if(typeof window<`u`){if(window.devicePixelRatio)return window.devicePixelRatio;var e=window.screen;if(e)return(e.deviceXDPI||1)/(e.logicalXDPI||1)}return 1}(),C={toTextLines:function(e){var t=[],n;for(e=[].concat(e);e.length;)n=e.pop(),typeof n==`string`?t.unshift.apply(t,n.split(`
|
|
2
|
+
`)):Array.isArray(n)?e.push.apply(e,n):x(e)||t.unshift(``+n);return t},textSize:function(e,t,n){var r=[].concat(t),i=r.length,a=e.font,o=0,s;for(e.font=n.string,s=0;s<i;++s)o=Math.max(e.measureText(r[s]).width,o);return e.font=a,{height:i*n.lineHeight,width:o}},bound:function(e,t,n){return Math.max(e,Math.min(t,n))},arrayDiff:function(e,t){var n=e.slice(),r=[],i,a,o,s;for(i=0,o=t.length;i<o;++i)s=t[i],a=n.indexOf(s),a===-1?r.push([s,1]):n.splice(a,1);for(i=0,o=n.length;i<o;++i)r.push([n[i],-1]);return r},rasterize:function(e){return Math.round(e*S)/S}};function w(e,t){var n=t.x,r=t.y;if(n===null)return{x:0,y:-1};if(r===null)return{x:1,y:0};var i=e.x-n,a=e.y-r,o=Math.sqrt(i*i+a*a);return{x:o?i/o:0,y:o?a/o:-1}}function se(e,t,n,r,i){switch(i){case`center`:n=r=0;break;case`bottom`:n=0,r=1;break;case`right`:n=1,r=0;break;case`left`:n=-1,r=0;break;case`top`:n=0,r=-1;break;case`start`:n=-n,r=-r;break;case`end`:break;default:i*=Math.PI/180,n=Math.cos(i),r=Math.sin(i);break}return{x:e,y:t,vx:n,vy:r}}var T=0,E=1,D=2,O=4,k=8;function A(e,t,n){var r=T;return e<n.left?r|=E:e>n.right&&(r|=D),t<n.top?r|=k:t>n.bottom&&(r|=O),r}function ce(e,t){for(var n=e.x0,r=e.y0,i=e.x1,a=e.y1,o=A(n,r,t),s=A(i,a,t),c,l,u;!(!(o|s)||o&s);)c=o||s,c&k?(l=n+(i-n)*(t.top-r)/(a-r),u=t.top):c&O?(l=n+(i-n)*(t.bottom-r)/(a-r),u=t.bottom):c&D?(u=r+(a-r)*(t.right-n)/(i-n),l=t.right):c&E&&(u=r+(a-r)*(t.left-n)/(i-n),l=t.left),c===o?(n=l,r=u,o=A(n,r,t)):(i=l,a=u,s=A(i,a,t));return{x0:n,x1:i,y0:r,y1:a}}function j(e,t){var n=t.anchor,r=e,i,a;return t.clamp&&(r=ce(r,t.area)),n===`start`?(i=r.x0,a=r.y0):n===`end`?(i=r.x1,a=r.y1):(i=(r.x0+r.x1)/2,a=(r.y0+r.y1)/2),se(i,a,e.vx,e.vy,t.align)}var M={arc:function(e,t){var n=(e.startAngle+e.endAngle)/2,r=Math.cos(n),i=Math.sin(n),a=e.innerRadius,o=e.outerRadius;return j({x0:e.x+r*a,y0:e.y+i*a,x1:e.x+r*o,y1:e.y+i*o,vx:r,vy:i},t)},point:function(e,t){var n=w(e,t.origin),r=n.x*e.options.radius,i=n.y*e.options.radius;return j({x0:e.x-r,y0:e.y-i,x1:e.x+r,y1:e.y+i,vx:n.x,vy:n.y},t)},bar:function(e,t){var n=w(e,t.origin),r=e.x,i=e.y,a=0,o=0;return e.horizontal?(r=Math.min(e.x,e.base),a=Math.abs(e.base-e.x)):(i=Math.min(e.y,e.base),o=Math.abs(e.base-e.y)),j({x0:r,y0:i+o,x1:r+a,y1:i,vx:n.x,vy:n.y},t)},fallback:function(e,t){var n=w(e,t.origin);return j({x0:e.x,y0:e.y,x1:e.x+(e.width||0),y1:e.y+(e.height||0),vx:n.x,vy:n.y},t)}},N=C.rasterize;function le(e){var t=e.borderWidth||0,n=e.padding,r=e.size.height,i=e.size.width,a=-i/2,o=-r/2;return{frame:{x:a-n.left-t,y:o-n.top-t,w:i+n.width+t*2,h:r+n.height+t*2},text:{x:a,y:o,w:i,h:r}}}function P(e,t){var n=t.chart.getDatasetMeta(t.datasetIndex).vScale;if(!n)return null;if(n.xCenter!==void 0&&n.yCenter!==void 0)return{x:n.xCenter,y:n.yCenter};var r=n.getBasePixel();return e.horizontal?{x:r,y:null}:{x:null,y:r}}function F(e){return e instanceof s?M.arc:e instanceof i?M.point:e instanceof l?M.bar:M.fallback}function I(e,t,n,r,i,a){var o=Math.PI/2;if(a){var s=Math.min(a,i/2,r/2),c=t+s,l=n+s,u=t+r-s,d=n+i-s;e.moveTo(t,l),c<u&&l<d?(e.arc(c,l,s,-Math.PI,-o),e.arc(u,l,s,-o,0),e.arc(u,d,s,0,o),e.arc(c,d,s,o,Math.PI)):c<u?(e.moveTo(c,n),e.arc(u,l,s,-o,o),e.arc(c,l,s,o,Math.PI+o)):l<d?(e.arc(c,l,s,-Math.PI,0),e.arc(c,d,s,0,Math.PI)):e.arc(c,l,s,-Math.PI,Math.PI),e.closePath(),e.moveTo(t,n)}else e.rect(t,n,r,i)}function L(e,t,n){var r=n.backgroundColor,i=n.borderColor,a=n.borderWidth;!r&&(!i||!a)||(e.beginPath(),I(e,N(t.x)+a/2,N(t.y)+a/2,N(t.w)-a,N(t.h)-a,n.borderRadius),e.closePath(),r&&(e.fillStyle=r,e.fill()),i&&a&&(e.strokeStyle=i,e.lineWidth=a,e.lineJoin=`miter`,e.stroke()))}function R(e,t,n){var r=n.lineHeight,i=e.w,a=e.x,o=e.y+r/2;return t===`center`?a+=i/2:(t===`end`||t===`right`)&&(a+=i),{h:r,w:i,x:a,y:o}}function z(e,t,n){var r=e.shadowBlur,i=n.stroked,a=N(n.x),o=N(n.y),s=N(n.w);i&&e.strokeText(t,a,o,s),n.filled&&(r&&i&&(e.shadowBlur=0),e.fillText(t,a,o,s),r&&i&&(e.shadowBlur=r))}function B(e,t,n,r){var i=r.textAlign,a=r.color,o=!!a,s=r.font,c=t.length,l=r.textStrokeColor,u=r.textStrokeWidth,d=l&&u,f;if(!(!c||!o&&!d))for(n=R(n,i,s),e.font=s.string,e.textAlign=i,e.textBaseline=`middle`,e.shadowBlur=r.textShadowBlur,e.shadowColor=r.textShadowColor,o&&(e.fillStyle=a),d&&(e.lineJoin=`round`,e.lineWidth=u,e.strokeStyle=l),f=0,c=t.length;f<c;++f)z(e,t[f],{stroked:d,filled:o,w:n.w,x:n.x,y:n.y+n.h*f})}var V=function(e,t,n,r){var i=this;i._config=e,i._index=r,i._model=null,i._rects=null,i._ctx=t,i._el=n};p(V.prototype,{_modelize:function(e,t,n,r){var i=this,o=i._index,s=d(a([n.font,{}],r,o)),c=a([n.color,ee.color],r,o);return{align:a([n.align,`center`],r,o),anchor:a([n.anchor,`center`],r,o),area:r.chart.chartArea,backgroundColor:a([n.backgroundColor,null],r,o),borderColor:a([n.borderColor,null],r,o),borderRadius:a([n.borderRadius,0],r,o),borderWidth:a([n.borderWidth,0],r,o),clamp:a([n.clamp,!1],r,o),clip:a([n.clip,!1],r,o),color:c,display:e,font:s,lines:t,offset:a([n.offset,4],r,o),opacity:a([n.opacity,1],r,o),origin:P(i._el,r),padding:y(a([n.padding,4],r,o)),positioner:F(i._el),rotation:a([n.rotation,0],r,o)*(Math.PI/180),size:C.textSize(i._ctx,t,s),textAlign:a([n.textAlign,`start`],r,o),textShadowBlur:a([n.textShadowBlur,0],r,o),textShadowColor:a([n.textShadowColor,c],r,o),textStrokeColor:a([n.textStrokeColor,c],r,o),textStrokeWidth:a([n.textStrokeWidth,0],r,o)}},update:function(e){var t=this,n=null,r=null,i=t._index,o=t._config,s,c,l,d=a([o.display,!0],e,i);d&&(s=e.dataset.data[i],c=u(_(o.formatter,[s,e]),s),l=x(c)?[]:C.toTextLines(c),l.length&&(n=t._modelize(d,l,o,e),r=le(n))),t._model=n,t._rects=r},geometry:function(){return this._rects?this._rects.frame:{}},rotation:function(){return this._model?this._model.rotation:0},visible:function(){return this._model&&this._model.opacity},model:function(){return this._model},draw:function(e,t){var n=this,r=e.ctx,i=n._model,a=n._rects,o;this.visible()&&(r.save(),i.clip&&(o=i.area,r.beginPath(),r.rect(o.left,o.top,o.right-o.left,o.bottom-o.top),r.clip()),r.globalAlpha=C.bound(0,i.opacity,1),r.translate(N(t.x),N(t.y)),r.rotate(i.rotation),L(r,a.frame,i),B(r,i.lines,a.text,i),r.restore())}});var H=-(2**53-1)||-9007199254740991,U=2**53-1||9007199254740991;function W(e,t,n){var r=Math.cos(n),i=Math.sin(n),a=t.x,o=t.y;return{x:a+r*(e.x-a)-i*(e.y-o),y:o+i*(e.x-a)+r*(e.y-o)}}function G(e,t){var n=U,r=H,i=t.origin,a,o,s,c,l;for(a=0;a<e.length;++a)o=e[a],s=o.x-i.x,c=o.y-i.y,l=t.vx*s+t.vy*c,n=Math.min(n,l),r=Math.max(r,l);return{min:n,max:r}}function K(e,t){var n=t.x-e.x,r=t.y-e.y,i=Math.sqrt(n*n+r*r);return{vx:(t.x-e.x)/i,vy:(t.y-e.y)/i,origin:e,ln:i}}var q=function(){this._rotation=0,this._rect={x:0,y:0,w:0,h:0}};p(q.prototype,{center:function(){var e=this._rect;return{x:e.x+e.w/2,y:e.y+e.h/2}},update:function(e,t,n){this._rotation=n,this._rect={x:t.x+e.x,y:t.y+e.y,w:t.w,h:t.h}},contains:function(e){var t=this,n=1,r=t._rect;return e=W(e,t.center(),-t._rotation),!(e.x<r.x-n||e.y<r.y-n||e.x>r.x+r.w+n*2||e.y>r.y+r.h+n*2)},intersects:function(e){var t=this._points(),n=e._points(),r=[K(t[0],t[1]),K(t[0],t[3])],i,a,o;for(this._rotation!==e._rotation&&r.push(K(n[0],n[1]),K(n[0],n[3])),i=0;i<r.length;++i)if(a=G(t,r[i]),o=G(n,r[i]),a.max<o.min||o.max<a.min)return!1;return!0},_points:function(){var e=this,t=e._rect,n=e._rotation,r=e.center();return[W({x:t.x,y:t.y},r,n),W({x:t.x+t.w,y:t.y},r,n),W({x:t.x+t.w,y:t.y+t.h},r,n),W({x:t.x,y:t.y+t.h},r,n)]}});function J(e,t,n){var r=t.positioner(e,t),i=r.vx,a=r.vy;if(!i&&!a)return{x:r.x,y:r.y};var o=n.w,s=n.h,c=t.rotation,l=Math.abs(o/2*Math.cos(c))+Math.abs(s/2*Math.sin(c)),u=Math.abs(o/2*Math.sin(c))+Math.abs(s/2*Math.cos(c)),d=1/Math.max(Math.abs(i),Math.abs(a));return l*=i*d,u*=a*d,l+=t.offset*i,u+=t.offset*a,{x:r.x+l,y:r.y+u}}function ue(e,t){var n,r,i,a;for(n=e.length-1;n>=0;--n)for(i=e[n].$layout,r=n-1;r>=0&&i._visible;--r)a=e[r].$layout,a._visible&&i._box.intersects(a._box)&&t(i,a);return e}function de(e){var t,n,r,i,a,o,s;for(t=0,n=e.length;t<n;++t)r=e[t],i=r.$layout,i._visible&&(s=new Proxy(r._el,{get:(e,t)=>e.getProps([t],!0)[t]}),a=r.geometry(),o=J(s,r.model(),a),i._box.update(o,a,r.rotation()));return ue(e,function(e,t){var n=e._hidable,r=t._hidable;n&&r||r?t._visible=!1:n&&(e._visible=!1)})}var Y={prepare:function(e){var t=[],n,r,i,a,o;for(n=0,i=e.length;n<i;++n)for(r=0,a=e[n].length;r<a;++r)o=e[n][r],t.push(o),o.$layout={_box:new q,_hidable:!1,_visible:!0,_set:n,_idx:o._index};return t.sort(function(e,t){var n=e.$layout,r=t.$layout;return n._idx===r._idx?r._set-n._set:r._idx-n._idx}),this.update(t),t},update:function(e){var t=!1,n,r,i,a,o;for(n=0,r=e.length;n<r;++n)i=e[n],a=i.model(),o=i.$layout,o._hidable=a&&a.display===`auto`,o._visible=i.visible(),t|=o._hidable;t&&de(e)},lookup:function(e,t){var n,r;for(n=e.length-1;n>=0;--n)if(r=e[n].$layout,r&&r._visible&&r._box.contains(t))return e[n];return null},draw:function(e,t){var n,r,i,a,o,s;for(n=0,r=t.length;n<r;++n)i=t[n],a=i.$layout,a._visible&&(o=i.geometry(),s=J(i._el,i.model(),o),a._box.update(s,o,i.rotation()),i.draw(e,s))}},fe={align:`center`,anchor:`center`,backgroundColor:null,borderColor:null,borderRadius:0,borderWidth:0,clamp:!1,clip:!1,color:void 0,display:!0,font:{family:void 0,lineHeight:1.2,size:void 0,style:void 0,weight:null},formatter:function(e){if(x(e))return null;var t=e,n,r,i;if(ie(e))if(!x(e.label))t=e.label;else if(!x(e.r))t=e.r;else for(t=``,n=Object.keys(e),i=0,r=n.length;i<r;++i)t+=(i===0?``:`, `)+n[i]+`: `+e[n[i]];return``+t},labels:void 0,listeners:{},offset:4,opacity:1,padding:{top:4,right:4,bottom:4,left:4},rotation:0,textAlign:`start`,textStrokeColor:void 0,textStrokeWidth:0,textShadowBlur:0,textShadowColor:void 0},X=`$datalabels`,Z=`$default`;function pe(e,t){var n=e.datalabels,r={},i=[],a,o;return n===!1?null:(n===!0&&(n={}),t=p({},[t,n]),a=t.labels||{},o=Object.keys(a),delete t.labels,o.length?o.forEach(function(e){a[e]&&i.push(p({},[t,a[e],{_key:e}]))}):i.push(t),r=i.reduce(function(e,t){return m(t.listeners||{},function(n,r){e[r]=e[r]||{},e[r][t._key||Z]=n}),delete t.listeners,e},{}),{labels:i,listeners:r})}function Q(e,t,n,r){if(t){var i=n.$context,a=n.$groups,o;t[a._set]&&(o=t[a._set][a._key],o&&_(o,[i,r])===!0&&(e[X]._dirty=!0,n.update(i)))}}function me(e,t,n,r,i){var a,o;!n&&!r||(n?r?n!==r&&(o=a=!0):o=!0:a=!0,o&&Q(e,t.leave,n,i),a&&Q(e,t.enter,r,i))}function he(e,t){var n=e[X],r=n._listeners,i,a;if(!(!r.enter&&!r.leave)){if(t.type===`mousemove`)a=Y.lookup(n._labels,t);else if(t.type!==`mouseout`)return;i=n._hovered,n._hovered=a,me(e,r,i,a,t)}}function ge(e,t){var n=e[X],r=n._listeners.click,i=r&&Y.lookup(n._labels,t);i&&Q(e,r,i,t)}var _e={id:`datalabels`,defaults:fe,beforeInit:function(e){e[X]={_actives:[]}},beforeUpdate:function(e){var t=e[X];t._listened=!1,t._listeners={},t._datasets=[],t._labels=[]},afterDatasetUpdate:function(e,t,n){var r=t.index,i=e[X],a=i._datasets[r]=[],o=e.isDatasetVisible(r),s=e.data.datasets[r],c=pe(s,n),l=t.meta.data||[],u=e.ctx,d,f,m,h,g,_,v,y;for(u.save(),d=0,m=l.length;d<m;++d)if(v=l[d],v[X]=[],o&&v&&e.getDataVisibility(d)&&!v.skip)for(f=0,h=c.labels.length;f<h;++f)g=c.labels[f],_=g._key,y=new V(g,u,v,d),y.$groups={_set:r,_key:_||Z},y.$context={active:!1,chart:e,dataIndex:d,dataset:s,datasetIndex:r},y.update(y.$context),v[X].push(y),a.push(y);u.restore(),p(i._listeners,c.listeners,{merger:function(e,n,r){n[e]=n[e]||{},n[e][t.index]=r[e],i._listened=!0}})},afterUpdate:function(e){e[X]._labels=Y.prepare(e[X]._datasets)},afterDatasetsDraw:function(e){Y.draw(e,e[X]._labels)},beforeEvent:function(e,t){if(e[X]._listened){var n=t.event;switch(n.type){case`mousemove`:case`mouseout`:he(e,n);break;case`click`:ge(e,n);break}}},afterEvent:function(e){var t=e[X],n=t._actives,r=t._actives=e.getActiveElements(),i=C.arrayDiff(n,r),a,o,s,c,l,u,d;for(a=0,o=i.length;a<o;++a)if(l=i[a],l[1])for(d=l[0].element[X]||[],s=0,c=d.length;s<c;++s)u=d[s],u.$context.active=l[1]===1,u.update(u.$context);(t._dirty||i.length)&&(Y.update(t._labels),e.render()),delete t._dirty}},ve=r(),$=e=>({plugins:{legend:{position:`right`,maxWidth:150,align:`start`,labels:{color:e.palette.text.secondary,usePointStyle:!0,padding:21,boxHeight:8,font:{size:10}}},datalabels:{color:e.palette.text.primary,font:{weight:`bold`,size:10},anchor:`end`,align:`top`,offset:-6}},responsive:!0,maintainAspectRatio:!1,color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,grid:{color:e.palette.divider},border:{display:!1},ticks:{stepSize:1,color:e.palette.text.disabled,font:{size:10}}},x:{grid:{display:!1},ticks:{color:e.palette.text.primary,font:{size:10}}}}});function ye(e){return oe.default.all(e.filter(e=>e))}var be=({data:e,ariaLabel:t,ariaDescription:r,overrideOptions:i})=>{let a=n(),{locationSettings:s}=ne();return(0,ve.jsx)(o,{options:(0,ae.useMemo)(()=>ye([$(a)]),[a,s,i]),data:e,"aria-label":t,"aria-description":r,plugins:[_e]})};c.register(b,f,i,l,h,v,te,re);export{$ as createOptions,be as default};
|
package/frontend/build/static/{LineChartComponent-d80f3Tky.js → LineChartComponent-BbCMbJ-m.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./ConditionallyRender---uTpMBn.js";import{$
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./ConditionallyRender---uTpMBn.js";import{$t as o,Bt as s,It as c,Jt as l,Lt as u,Pt as d,Qt as f,Rt as p,Vt as m,Zt as h,en as g,f as _,in as v,nn as y,ns as b,qt as x,tn as S,zt as C}from"./index-C04TEs4k.js";var w=e(t(),1),T={position:`bottom`,labels:{boxWidth:12,padding:30,generateLabels:e=>{let t=e.data.datasets,{labels:{usePointStyle:n,pointStyle:r,textAlign:i,color:a}}=e?.legend?.options||{labels:{}};return e._getSortedDatasetMetas().map(e=>{let o=e.controller.getStyle(n?0:void 0);return{text:t[e.index].label,fillStyle:o.borderColor,fontColor:a,hidden:!e.visible,lineWidth:0,borderRadius:6,strokeStyle:o.borderColor,pointStyle:r||o.pointStyle,textAlign:i||o.textAlign,datasetIndex:e.index}})}}},E=(e,t,n,r)=>({responsive:!0,...r?{animation:{duration:0}}:{},plugins:{legend:{...T,display:!r},tooltip:{enabled:!1,position:`nearest`,external:s(n)}},locale:t.locale,interaction:{intersect:!1,axis:`xy`,mode:`nearest`},elements:{point:{radius:0,hitRadius:15}},color:e.palette.text.secondary,scales:{y:{beginAtZero:!0,type:`linear`,grid:{color:e.palette.divider},border:{color:e.palette.divider},ticks:{color:e.palette.text.secondary,display:!r,precision:0}},x:{adapters:{date:{locale:m(t.locale)}},type:`time`,time:{unit:`week`,tooltipFormat:`P`},grid:{color:`transparent`},border:{color:`transparent`},ticks:{color:e.palette.text.secondary,display:!r,source:`data`,maxRotation:90,minRotation:23.5}}}}),D=e(_(),1),O=r(),k=i(`div`)(({theme:e})=>({position:`relative`}));function A(e){return D.default.all(e.filter(e=>e))}var j=({data:e,aspectRatio:t=2.5,cover:r,overrideOptions:i,TooltipComponent:o,chartRef:s})=>{let l=n(),{locationSettings:f}=b(),[m,h]=(0,w.useState)(null);return(0,O.jsxs)(k,{children:[(0,O.jsx)(c,{ref:e=>{s?.(e??null)},options:(0,w.useMemo)(()=>A([E(l,f,h,!!r),i??{}]),[l,f,h,i,r]),data:e,plugins:[u({width:26})],height:100,width:100*t},r?`cover`:`chart`),(0,O.jsx)(a,{condition:!r,show:o?(0,O.jsx)(C,{tooltip:m,children:(0,O.jsx)(o,{tooltip:m})}):(0,O.jsx)(p,{tooltip:m}),elseShow:(0,O.jsx)(d,{children:r===!0?` `:r})})]})};l.register(x,f,o,h,g,v,y,S);export{j as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{b as a,t as o}from"./TextField-oipjeg6n.js";import{t as s}from"./Radio-DL8ja0ll.js";import{t as c}from"./ConditionallyRender---uTpMBn.js";import{t as l}from"./Alert-_bLyWbvx.js";import{t as u}from"./Typography-BTdLWIUX.js";import{t as d}from"./Box-BQsxfFmC.js";import{t as f}from"./RadioGroup-Ci3WHaOy.js";import{a as p,i as m,o as h}from"./TooltipResolver-4A1YhwBy.js";import{t as g}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as _}from"./formatPath-j72gcKwy.js";import{
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{b as a,t as o}from"./TextField-oipjeg6n.js";import{t as s}from"./Radio-DL8ja0ll.js";import{t as c}from"./ConditionallyRender---uTpMBn.js";import{t as l}from"./Alert-_bLyWbvx.js";import{t as u}from"./Typography-BTdLWIUX.js";import{t as d}from"./Box-BQsxfFmC.js";import{t as f}from"./RadioGroup-Ci3WHaOy.js";import{a as p,i as m,o as h}from"./TooltipResolver-4A1YhwBy.js";import{t as g}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as _}from"./formatPath-j72gcKwy.js";import{H as v}from"./PermissionButton-B-IfzChn.js";import{n as y,t as b}from"./useApiGetter-7FP8Avm4.js";import{Ai as x,Io as S,Ir as C,Jo as w,Lr as T,Mi as E,Tr as D,Xs as O,co as k,ji as A,ki as j,li as M}from"./index-C04TEs4k.js";var N=e(t(),1),P=e=>fetch(e).then(g(`ChangeRequest`)).then(e=>e.json()),F=(e,t)=>{let{data:n,error:r,mutate:i}=A([],_(`api/admin/projects/${e}/change-requests/scheduled?${t.map(e=>`feature=${e}`).join(`&`)}`),P);return{changeRequests:n,loading:!r&&!n,refetch:i,error:r}},I=r(),L=()=>(0,I.jsx)(l,{severity:`warning`,sx:{m:e=>e.spacing(2,0)},children:`Archiving flags with dependencies will also remove those dependencies.`}),R=({ids:e,projectId:t})=>{let r=e=>`/projects/${t}/features/${e}`;return e?(0,I.jsxs)(l,{severity:`warning`,sx:{m:e=>e.spacing(2,0)},children:[(0,I.jsx)(u,{variant:`body2`,sx:{fontWeight:`bold`,display:`inline`},children:`${e.length} feature flags `}),(0,I.jsx)(`span`,{children:`have usage from applications. If you archive these feature flags they will not be available to Client SDKs:`}),(0,I.jsx)(`ul`,{children:e?.map(e=>(0,I.jsx)(`li`,{children:(0,I.jsx)(n,{to:r(e),children:e})},e))})]}):null},z=({ids:e,projectId:t})=>{let r=e=>`/projects/${t}/features/${e}`;return e&&e.length>1?(0,I.jsxs)(l,{severity:`error`,sx:{m:e=>e.spacing(2,0)},children:[(0,I.jsx)(u,{variant:`body2`,sx:{fontWeight:`bold`,display:`inline`},children:`${e.length} feature flags `}),(0,I.jsx)(`span`,{children:`have child features that depend on them and are not part of the archive operation. These parent features can not be archived:`}),(0,I.jsx)(`ul`,{children:e?.map(e=>(0,I.jsx)(`li`,{children:(0,I.jsx)(n,{to:r(e),children:e})},e))})]}):e&&e.length===1?(0,I.jsxs)(l,{severity:`error`,sx:{m:e=>e.spacing(2,0)},children:[(0,I.jsx)(n,{to:r(e[0]),children:e[0]}),` has child features that depend on it and are not part of the archive operation.`]}):null},B=({changeRequests:e,projectId:t})=>e&&e.length>0?(0,I.jsxs)(l,{severity:`warning`,sx:{m:e=>e.spacing(2,0)},children:[(0,I.jsxs)(`p`,{children:[`This archive operation would conflict with`,` `,e.length,` scheduled change request(s). The change request(s) that would be affected by this are:`]}),(0,I.jsx)(`ul`,{children:e.map(({id:e,title:r})=>{let i=r?`#${e} (${r})`:`Change request #${e}`;return(0,I.jsx)(`li`,{children:(0,I.jsx)(n,{to:`/projects/${t}/change-requests/${e}`,target:`_blank`,rel:`noopener noreferrer`,title:`Change request ${e}`,children:i})},e)})})]}):e===void 0?(0,I.jsx)(l,{severity:`warning`,children:(0,I.jsx)(`p`,{children:`This archive operation might conflict with one or more scheduled change requests. If you complete it, those change requests can no longer be applied.`})}):null,V=(e,t)=>{let n=D(e)(),{isChangeRequestConfiguredForReview:r}=v(e);return n&&r(n)&&t?`Add to change request`:n&&r(n)?`Add change to draft`:t?`Archive flags`:`Archive flag`},H=({projectId:e,featureIds:t,onSuccess:n,onError:r})=>{let{setToastData:i,setToastApiError:a}=p(),{archiveFeatureToggle:o}=j(),{archiveFeatures:s}=k(),{isChangeRequestConfiguredForReview:c}=v(e),{addChange:l}=E(),{refetch:u}=x(e),d=D(e),f=t?.length>1,h=d(),g=async()=>{if(!h){console.error(`No change request environment`);return}await l(e,h,t.map(e=>({action:`archiveFeature`,feature:e,payload:void 0}))),u(),i({type:`success`,text:f?`Changes added to a draft`:`Change added to a draft`})},_=async()=>{await o(e,t[0]),i({type:`success`,text:`Feature flag archived`})},y=async()=>{await s(e,t),i({type:`success`,text:`Feature flags archived`})};return async()=>{try{h&&c(h)?await g():f?await y():await _(),n()}catch(e){a(m(e)),r()}}},U=(e,t,n)=>{let[r,i]=(0,N.useState)(!0),[a,o]=(0,N.useState)([]),[s,c]=(0,N.useState)(!1),{verifyArchiveFeatures:l}=k();return(0,N.useEffect)(()=>{n&&l(t,e).then(e=>e.json()).then(({hasDeletedDependencies:e,parentsWithChildFeatures:t})=>{t.length===0?(i(!1),o(t)):(i(!0),o(t)),c(e)})},[JSON.stringify(e),n,t,o,i,c,l]),{disableArchive:r,offendingParents:a,hasDeletedDependencies:s}},W=({isOpen:e,onClose:t,onConfirm:n,projectId:r,featureIds:i,featuresWithUsage:a})=>{let o=i?.length>1,s=V(r,o),l=o?`Archive feature flags`:`Archive feature flag`,u=H({projectId:r,featureIds:i,onSuccess(){n(),t()},onError(){t()}}),{changeRequests:d}=F(r,i),{disableArchive:f,offendingParents:p,hasDeletedDependencies:m}=U(i,r,e),h=p.length===0&&m;return(0,I.jsx)(w,{onClick:u,open:e,onClose:t,primaryButtonText:s,secondaryButtonText:`Cancel`,title:l,disabledPrimaryButton:f,children:(0,I.jsx)(c,{condition:o,show:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`p`,{children:[`Are you sure you want to archive`,` `,(0,I.jsx)(`strong`,{children:i?.length}),` feature flags?`]}),(0,I.jsx)(c,{condition:!!(a&&a?.length>0),show:(0,I.jsx)(R,{ids:a,projectId:r})}),(0,I.jsx)(c,{condition:p.length>0,show:(0,I.jsx)(z,{ids:p,projectId:r})}),(0,I.jsx)(c,{condition:h,show:(0,I.jsx)(L,{})}),(0,I.jsx)(B,{changeRequests:d,projectId:r}),(0,I.jsx)(c,{condition:i?.length<=5,show:(0,I.jsx)(`ul`,{children:i?.map(e=>(0,I.jsx)(`li`,{children:e},e))})})]}),elseShow:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsxs)(`p`,{children:[`Are you sure you want to archive`,` `,o?`these feature flags`:`this feature flag`,`?`]}),(0,I.jsx)(c,{condition:p.length>0,show:(0,I.jsx)(z,{ids:p,projectId:r})}),(0,I.jsx)(c,{condition:h,show:(0,I.jsx)(L,{})}),(0,I.jsx)(B,{changeRequests:d,projectId:r})]})})})},G=(e,t)=>`/api/admin/projects/${e}/features/${t}/parents`,K=(e,t)=>{let n=_(G(e,t)),{data:r,loading:i,error:a}=y(n,()=>b(n,`Parent Options`));return{parentOptions:r,loading:i,error:a}},q=(e,t)=>`/api/admin/projects/${e}/features/${t}/parent-variants`,J=(e,t)=>{let n=_(q(e,t)),{data:r,loading:i,error:a}=y(n,()=>b(n,`Parent Variant Options`));return{parentVariantOptions:r||[],loading:i,error:a}},Y=i(a)(({theme:e})=>({marginTop:e.spacing(2),marginBottom:e.spacing(1.5)})),X=({project:e,parent:t,onSelect:n})=>{let{parentVariantOptions:r}=J(e,t),i=(0,I.jsx)(T,{fontSize:`small`}),a=(0,I.jsx)(C,{fontSize:`small`});return(0,I.jsx)(Y,{id:`single-variant-options`,options:r,renderOption:(e,t,{selected:n})=>(0,I.jsxs)(`li`,{...e,children:[(0,I.jsx)(O,{icon:i,checkedIcon:a,style:{marginRight:8},checked:n}),t]}),renderInput:e=>(0,I.jsx)(o,{...e,placeholder:`Select variant`}),fullWidth:!0,onChange:(e,t)=>{n(String(t))}})},Z=({projectId:e,featureId:t,isOpen:n,setIsOpen:r,onComplete:i})=>{let{markFeatureCompleted:a}=S(),{parentVariantOptions:o}=J(e,t),[l,p]=(0,N.useState)(`kept`),[m,g]=(0,N.useState)(void 0),{trackEvent:_}=h();return(0,I.jsx)(w,{open:n,title:`Mark completed`,onClose:()=>{r(!1)},disabledPrimaryButton:l===`kept-with-variant`&&m===null,onClick:async()=>{let n=l===`kept-with-variant`?`kept`:l;await a(t,e,{status:n,statusValue:m}),r(!1),i(),_(`feature-lifecycle`,{props:{eventType:`complete`,status:n}})},primaryButtonText:`Mark completed`,secondaryButtonText:`Cancel`,children:(0,I.jsxs)(d,{children:[(0,I.jsxs)(d,{sx:{mt:2,mb:4},children:[`Marking the feature `,(0,I.jsx)(`b`,{children:t}),` as complete does not affect any configuration, but it moves the feature flag into it’s next life cycle stage and is an indication that you have learned what you needed in order to progress with the feature. It serves as a reminder to start cleaning up the feature flag and removing it from the code.`]}),(0,I.jsx)(u,{sx:{mb:2},children:(0,I.jsx)(`b`,{children:`What was the outcome of this feature?`})}),(0,I.jsxs)(f,{"aria-label":`selected-value`,name:`selected`,sx:{gap:e=>e.spacing(.5)},onChange:(e,t)=>{p(t)},children:[(0,I.jsx)(M,{value:`kept`,legal:{value:`We decided to keep the feature`},control:(0,I.jsx)(s,{})},`kept`),(0,I.jsx)(M,{value:`discarded`,legal:{value:`We decided to discard the feature`},control:(0,I.jsx)(s,{})},`discarded`),(0,I.jsx)(c,{condition:o.length>0,show:(0,I.jsx)(M,{value:`kept-with-variant`,legal:{value:`We decided to keep the feature variant`,description:`Choose to specify which feature variant will be kept`},control:(0,I.jsx)(s,{})},`kept-with-variant`)}),(0,I.jsx)(c,{condition:o.length>0&&l===`kept-with-variant`,show:(0,I.jsx)(X,{parent:t,project:e,onSelect:e=>{g(e)}})})]})]})})};export{W as i,K as n,J as r,Z as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./Alert-_bLyWbvx.js";import{t as o}from"./Typography-BTdLWIUX.js";import{t as s}from"./usePageTitle-CHzzFshF.js";import{
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./Alert-_bLyWbvx.js";import{t as o}from"./Typography-BTdLWIUX.js";import{t as s}from"./usePageTitle-CHzzFshF.js";import{Ms as c,Ns as l,Ts as u,jt as d}from"./index-C04TEs4k.js";import{t as f}from"./unknownify-CCAQc7w1.js";import{n as p,t as m}from"./NetworkPrometheusAPIWarning-Bq62ygkV.js";var h=d(),g=e(t(),1),_=r(),v=i(`div`)(({theme:e})=>({marginBottom:e.spacing(18),display:`flex`,justifyContent:`center`})),y=i(`div`)(({theme:e})=>({display:`flex`,justifyContent:`center`,gap:e.spacing(4),flexWrap:`wrap`})),b=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)}})),x=i(o)(({theme:e})=>({fontWeight:e.fontWeight.bold})),S=i(o)(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.text.secondary})),C=i(o)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),w=e=>e[0]*1e3>Date.now()-6e5,T=e=>{let t=(e.values||[]).filter(e=>w(e)),n=t.length?Number.parseFloat(t[t.length-1][1]):0;return{label:e.label,reqs:n,type:f(e.metric?.endpoint?.split(`/`)[2])}},E=(e,t)=>{let n=t.label+t.type;return e[n]={...t,reqs:t.reqs+(e[n]?.reqs??0)},e},D=e=>{let t=(e?.data?.result?.map(e=>({...e,label:f(e.metric?.appName)})).filter(e=>e.label!==`unknown`)||[]).map(T).reduce(E,{});return Object.values(t).map(e=>({...e,reqs:e.reqs.toFixed(2)})).filter(e=>e.reqs!==`0.00`)??[]},O=()=>{s(`Network - Overview`);let e=n(),{metrics:t}=p(),r=(0,g.useMemo)(()=>D(t),[t]);return r.length===0?(0,_.jsxs)(a,{severity:`warning`,children:[`No data available.`,(0,_.jsx)(m,{})]}):(0,_.jsxs)(h.ArcherContainer,{strokeColor:e.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[(0,_.jsx)(v,{children:(0,_.jsx)(h.ArcherElement,{id:`unleash`,children:(0,_.jsxs)(b,{children:[(0,_.jsx)(u,{darkmode:(0,_.jsx)(c,{}),lightmode:(0,_.jsx)(l,{})}),(0,_.jsx)(o,{sx:{marginTop:e.spacing(1)},children:`Unleash`})]})})}),(0,_.jsx)(y,{children:r.map(({label:t,reqs:n,type:r},i)=>(0,_.jsx)(h.ArcherElement,{id:`${i}`,relations:[{targetId:`unleash`,targetAnchor:`bottom`,sourceAnchor:`top`,style:{strokeColor:e.palette.secondary.border}}],children:(0,_.jsxs)(b,{children:[(0,_.jsx)(x,{children:t}),(0,_.jsxs)(S,{children:[n,` req/s`]}),(0,_.jsxs)(C,{children:[r,` app`]})]})}))})]})};export{O as NetworkOverview,O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{t as i}from"./ConditionallyRender---uTpMBn.js";import{t as a}from"./Alert-_bLyWbvx.js";import{t as o}from"./formatDate-cFuM4JYl.js";import{t as s}from"./usePageTitle-CHzzFshF.js";import{$
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./useTheme-CQqAmDLr.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{t as i}from"./ConditionallyRender---uTpMBn.js";import{t as a}from"./Alert-_bLyWbvx.js";import{t as o}from"./formatDate-cFuM4JYl.js";import{t as s}from"./usePageTitle-CHzzFshF.js";import{$t as c,It as l,Jt as u,Qt as d,Zt as f,en as p,ic as m,in as h,lt as g,nn as _,ns as v,qt as y,rn as b}from"./index-C04TEs4k.js";import{t as x}from"./unknownify-CCAQc7w1.js";import{n as S,t as C}from"./NetworkPrometheusAPIWarning-Bq62ygkV.js";var w=e(t(),1),T=r(),E=[`circle`,`rect`,`rectRounded`,`rectRot`,`triangle`],D=(e,t)=>e.map(e=>({x:e[0],y:t(e[1])})),O=(e,t)=>({locale:t.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:`index`,intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.action.active,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,callbacks:{title:e=>o(1e3*(e[0].parsed.x??0),t.locale)},itemSort:(e,t)=>(t.parsed.y??0)-(e.parsed.y??0)},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:e.palette.text.primary,padding:{bottom:32}}},scales:{y:{type:`linear`,title:{display:!0,text:`Requests per second`,color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider},border:{color:e.palette.divider}},x:{type:`time`,time:{unit:`minute`},grid:{display:!0,color:e.palette.divider},border:{color:e.palette.divider},ticks:{callback:(e,n,r)=>o(r[n].value*1e3,t.locale)}}}}),k=class{items;picked=new Map;constructor(e){this.items=new g(e)}pick(e){return this.picked.has(e)||this.picked.set(e,this.items.next()),this.picked.get(e)}},A=(e,t)=>{if(t?.data?.result){let n=new k([e.palette.success,e.palette.error,e.palette.primary,e.palette.warning]);return t.data.result.map((e,t)=>{let r=x(e.metric?.endpoint),i=x(e.metric?.appName),a=n.pick(r),o=e.values||[];return{label:`${r}: ${i}`,borderColor:a.main,backgroundColor:a.main,data:D(o,e=>Number.parseFloat(e)),elements:{point:{radius:4,pointStyle:E[t%E.length]},line:{borderDash:[8,4]}}}})}return[]},j=()=>{let{locationSettings:e}=v(),{metrics:t}=S(),r=n(),o=(0,w.useMemo)(()=>O(r,e),[r,e]);s(`Network - Traffic`);let c=(0,w.useMemo)(()=>({datasets:A(r,t)}),[r,t,e]);return(0,T.jsx)(i,{condition:c.datasets.length===0,show:(0,T.jsxs)(a,{severity:`warning`,children:[`No data available.`,(0,T.jsx)(C,{})]}),elseShow:(0,T.jsx)(m,{sx:{display:`grid`,gap:4},children:(0,T.jsx)(`div`,{style:{height:400},children:(0,T.jsx)(l,{data:c,options:o,"aria-label":`An instance metrics line chart with two lines: requests per second for admin API and requests per second for client API`})})})})};u.register(y,d,c,f,p,_,h,b);export{j as NetworkTraffic,j as default};
|
package/frontend/build/static/{NetworkTrafficUsage-PgI0lqze.js → NetworkTrafficUsage-DccaVLYs.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./ConditionallyRender---uTpMBn.js";import{t as o}from"./Alert-_bLyWbvx.js";import{t as s}from"./Link-CfIScd2f.js";import{t as c,u as l}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as u}from"./formatPath-j72gcKwy.js";import{t as d}from"./useUiConfig-DbVjTDpE.js";import{t as f}from"./usePageTitle-CHzzFshF.js";import{
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./ConditionallyRender---uTpMBn.js";import{t as o}from"./Alert-_bLyWbvx.js";import{t as s}from"./Link-CfIScd2f.js";import{t as c,u as l}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as u}from"./formatPath-j72gcKwy.js";import{t as d}from"./useUiConfig-DbVjTDpE.js";import{t as f}from"./usePageTitle-CHzzFshF.js";import{Es as p,Ft as m,Jt as h,Kt as g,Qt as _,in as v,nn as y,ns as b,po as x,qt as S,rn as C,ws as w}from"./index-C04TEs4k.js";import{d as T,s as E}from"./useInstanceTrafficMetrics-CRCDB4TX.js";import{a as D,c as O,i as k,l as A,n as j,r as M,t as N,u as P}from"./networkTrafficUsageHighlightPlugin-DlOtHZg3.js";import{t as F}from"./chartjs-plugin-annotation.esm-DP4wCpdA.js";var I=r(),L=i(`article`)(({theme:e})=>({minWidth:`200px`,border:`2px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3),display:`flex`,flexDirection:`column`,gap:e.spacing(2)})),R=i(`h3`)(({theme:e})=>({margin:0,fontSize:e.typography.body1.fontSize})),z=i(`dl`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(2.5),padding:0,margin:0})),B=i(`div`)(({theme:e})=>({display:`flex`,flexFlow:`row wrap`,justifyContent:`space-between`,gap:e.spacing(1,3),fontSize:e.typography.body2.fontSize,color:e.palette.text.secondary,"& dd":{margin:0,color:e.palette.text.primary}})),V=e=>{let t=e=>e.toLocaleString(`en-US`,{month:`short`,year:`numeric`});if(e.grouping===`monthly`){let n=new Date,r=p(n,e.monthsBack),i=p(n,1);return`Average requests from ${t(r)} to ${t(i)}`}return`Requests used in ${t(T(e.month))}`},H=({period:e,usageTotal:t,includedTraffic:n,purchasedTraffic:r,currentMonth:i})=>{let{locationSettings:a}=b();return(0,I.jsxs)(L,{children:[(0,I.jsx)(R,{children:`Number of requests to Unleash`}),(0,I.jsxs)(z,{children:[(0,I.jsxs)(B,{children:[(0,I.jsx)(`dt`,{children:V(e)}),(0,I.jsx)(`dd`,{children:(0,I.jsxs)(x,{color:n>0?t<=n?`success`:`error`:`neutral`,children:[t.toLocaleString(a.locale??`en-US`),` `,`requests`]})})]}),n>0&&(0,I.jsxs)(B,{children:[(0,I.jsx)(`dt`,{children:`Included in your plan`}),(0,I.jsxs)(`dd`,{children:[n.toLocaleString(`en-US`),` requests`]})]}),r>0&&i&&(0,I.jsxs)(B,{children:[(0,I.jsx)(`dt`,{children:`Additional traffic purchased`}),(0,I.jsxs)(`dd`,{children:[r.toLocaleString(`en-US`),` requests`]})]}),n>0&&i&&(0,I.jsxs)(B,{children:[(0,I.jsx)(`dt`,{children:`Total traffic available`}),(0,I.jsxs)(`dd`,{children:[(n+r).toLocaleString(`en-US`),` `,`requests`]})]})]})]})},U=({overages:e,overageCost:t,estimatedMonthlyCost:n})=>(0,I.jsxs)(L,{children:[(0,I.jsx)(R,{children:`Accrued traffic charges`}),(0,I.jsxs)(z,{children:[(0,I.jsxs)(B,{children:[(0,I.jsxs)(`dt`,{children:[`Request overages this month (`,(0,I.jsx)(s,{href:`https://www.getunleash.io/pricing`,children:`pricing`}),`)`]}),(0,I.jsxs)(`dd`,{children:[e.toLocaleString(),` requests`]})]}),(0,I.jsxs)(B,{children:[(0,I.jsx)(`dt`,{children:`Accrued traffic charges`}),(0,I.jsx)(`dd`,{children:(0,I.jsxs)(x,{color:`secondary`,children:[t,` USD`]})})]}),n>0&&(0,I.jsxs)(B,{children:[(0,I.jsx)(`dt`,{children:`Estimated charges based on current usage`}),(0,I.jsx)(`dd`,{children:(0,I.jsxs)(x,{color:`secondary`,children:[n,` USD`]})})]})]})]}),W=e(t(),1),G=53,K=259,q=1e6,J=(e,t)=>!e||t===`pay-as-you-go`?G:K;function Y(e,t,n){return e===void 0?J(t,n):e}function X(e){return e===void 0?0:e}var Z=()=>{let{isEnterprise:e,uiConfig:t}=d(),{data:n,error:r,mutate:i}=l(u(`/api/instance/trafficBundles`),Q);return{trafficBundles:(0,W.useMemo)(()=>({includedTraffic:Y(n?.includedTraffic,e(),t.billing)*q,purchasedTraffic:X(n?.purchasedTraffic)*q}),[n]),loading:!r&&!n,refetch:i}},Q=e=>fetch(e).then(c(`configuration`)).then(e=>e.json()),$=i(`div`)(({theme:e})=>({display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(200px, max-content))`,flex:1,gap:e.spacing(2,4)})),ee=()=>{f(`Network - Data Usage`);let e=w(`estimateTrafficDataCost`),{isOss:t}=d(),{trafficBundles:r}=Z(),i=r.includedTraffic+r.purchasedTraffic,{chartDataSelection:s,setChartDataSelection:c,options:l}=j(i),{chartData:u,usageTotal:p,overageCost:h,estimatedMonthlyCost:g,requestSummaryUsage:_}=O(i,s),v=s.grouping===`daily`&&s.month===E&&i>0&&p-i>0&&e,y=s.grouping===`daily`&&s.month===E,b=(s.grouping===`monthly`||s.month===E)&&i>0&&h>0;return(0,I.jsx)(a,{condition:t(),show:(0,I.jsx)(o,{severity:`warning`,children:`Not enabled.`}),elseShow:(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(a,{condition:b,show:(0,I.jsxs)(o,{severity:`warning`,sx:{mb:4},children:[(0,I.jsx)(M,{children:`Heads up!`}),` You are currently consuming more requests than your plan includes and will be billed according to our terms. Please see`,` `,(0,I.jsx)(n,{to:`https://www.getunleash.io/pricing`,children:`this page`}),` `,`for more information. In order to reduce your traffic consumption, you may configure an`,` `,(0,I.jsx)(n,{to:`https://docs.getunleash.io/unleash-edge`,children:`Unleash Edge instance`}),` `,`in your own datacenter.`]})}),(0,I.jsxs)(k,{children:[(0,I.jsxs)(D,{children:[(0,I.jsxs)($,{children:[(0,I.jsx)(H,{period:s,usageTotal:_,includedTraffic:r.includedTraffic,purchasedTraffic:r.purchasedTraffic,currentMonth:y}),v&&(0,I.jsx)(U,{overageCost:h,overages:p-i,estimatedMonthlyCost:g})]}),(0,I.jsx)(P,{selectedPeriod:s,setPeriod:c})]}),(0,I.jsx)(m,{data:u,plugins:[N],options:l,"aria-label":A(s)})]})]})})};h.register(F,S,_,g,C,v,y);export{ee as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./jsx-runtime-BnvnyDTF.js";import{v as t}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as n}from"./Typography-BTdLWIUX.js";import{t as r}from"./Button-CebB8EPB.js";import{$ as i,kt as a}from"./PermissionButton-B-IfzChn.js";import{Ss as o,Ws as s,la as c,ro as l}from"./index-C04TEs4k.js";import{g as u}from"./DialogWithAside-DzCSDyWo.js";var d=e(),f=t(`div`,{shouldForwardProp:e=>e!==`disabled`})(({theme:e,disabled:t})=>({flexBasis:`50%`,display:`flex`,gap:e.spacing(1),flexDirection:`column`,borderRight:`1px solid ${e.palette.divider}`,padding:e.spacing(2,3,3,3),...t&&{background:e.palette.background.elevation2},[e.breakpoints.down(`md`)]:{borderRight:0,borderBottom:`1px solid ${e.palette.divider}`},"&:last-child":{borderWidth:0}})),p=t(`div`)(()=>({display:`flex`,flexDirection:`row`,alignItems:`center`,justifyContent:`space-between`,width:`100%`,minHeight:32})),m=t(`div`)(()=>({width:32,height:32,borderRadius:8,display:`flex`,alignItems:`center`,justifyContent:`center`,"& svg":{fontSize:20},"& svg path":{fill:`currentColor`}})),h=t(m)(({theme:e})=>({backgroundColor:e.palette.primary.light,color:e.palette.primary.contrastText})),g=t(m)(({theme:e})=>({backgroundColor:e.palette.success.light,border:`1px solid ${e.palette.success.border}`,color:e.palette.success.main})),_=t(m)(({theme:e})=>({border:`1px solid ${e.palette.divider}`,background:e.palette.background.elevation1,color:e.palette.text.secondary})),v=t(n)(({theme:e})=>({fontSize:e.typography.caption.fontSize,fontWeight:e.typography.fontWeightBold,lineHeight:e.spacing(2),color:e.palette.text.secondary})),y=t(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,flexGrow:1,gap:e.spacing(1)})),b=t(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(1)})),x=t(n,{shouldForwardProp:e=>e!==`done`})(({theme:e,done:t})=>({fontSize:e.typography.body1.fontSize,fontWeight:e.typography.fontWeightBold,color:t?e.palette.text.secondary:e.palette.text.primary,textDecoration:t?`line-through`:`none`})),S=t(n)(({theme:e})=>({fontSize:e.typography.body2.fontSize,color:e.palette.text.secondary})),C=t(`div`)(()=>({display:`flex`,alignSelf:`flex-start`,marginTop:`auto`})),w=(e,t)=>e===`done`?(0,d.jsx)(g,{children:(0,d.jsx)(o,{})}):e===`disabled`?(0,d.jsx)(_,{children:t}):(0,d.jsx)(h,{children:t}),T=({stepNumber:e,state:t,icon:n,title:r,body:i,children:a})=>{let o=t===`done`;return(0,d.jsxs)(f,{disabled:t===`disabled`,children:[(0,d.jsxs)(p,{children:[w(t,n),(0,d.jsxs)(v,{children:[`Step `,e]})]}),(0,d.jsxs)(y,{children:[(0,d.jsxs)(b,{children:[(0,d.jsx)(x,{done:o,children:r}),(0,d.jsx)(S,{children:i})]}),(0,d.jsx)(C,{children:a})]})]})},E=({projectId:e,setConnectSdkOpen:t,state:n})=>{let s=n===`done`;return(0,d.jsx)(T,{stepNumber:2,state:n,icon:(0,d.jsx)(u,{}),title:s?`Connect SDK`:`Connect SDKs`,body:s?`You can connect as many SDKs as you need.`:`To start using your feature flag, connect an SDK to the project.`,children:s?(0,d.jsx)(r,{variant:`outlined`,color:`inherit`,startIcon:(0,d.jsx)(o,{}),disabled:!0,children:`Done`}):(0,d.jsx)(c,{onClick:()=>t(!0),maxWidth:`200px`,projectId:e,Icon:l,permission:[a,i],disabled:n===`disabled`,children:`Connect SDK`})})},D=t(`div`)(({theme:e})=>({display:`flex`,flexDirection:`row`,alignItems:`center`,gap:e.spacing(1.5)})),O=t(s)(({theme:e})=>({width:`100px`,height:e.spacing(.5),borderRadius:e.shape.borderRadiusLarge})),k=({step:e,maxSteps:t,onDismiss:n})=>{let i=e>=t,a=e/t*100+10;return(0,d.jsxs)(D,{children:[e,`/`,t,` Completed`,i?(0,d.jsx)(r,{onClick:e=>{e.stopPropagation(),n()},variant:`outlined`,component:`span`,size:`medium`,children:`Dismiss`}):(0,d.jsx)(O,{variant:`determinate`,value:a})]})};export{E as n,T as r,k as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{C as n,b as r,g as i,h as a,p as o,t as s,x as c,y as l}from"./useTheme-CQqAmDLr.js";import{t as u}from"./jsx-runtime-BnvnyDTF.js";import{O as d,k as f,m as p,v as m,x as h}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{W as g}from"./useConditionallyHiddenColumns-
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{C as n,b as r,g as i,h as a,p as o,t as s,x as c,y as l}from"./useTheme-CQqAmDLr.js";import{t as u}from"./jsx-runtime-BnvnyDTF.js";import{O as d,k as f,m as p,v as m,x as h}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{W as g}from"./useConditionallyHiddenColumns-C5q9zdfJ.js";import{rc as _}from"./index-C04TEs4k.js";var v=e(t(),1),y=u(),b=o(),x=g(`div`,{name:`MuiStack`,slot:`Root`});function S(e){return _({props:e,name:`MuiStack`,defaultTheme:b})}function C(e,t){let n=v.Children.toArray(e).filter(Boolean);return n.reduce((e,r,i)=>(e.push(r),i<n.length-1&&e.push(v.cloneElement(t,{key:`separator-${i}`})),e),[])}var w=e=>({row:`Left`,"row-reverse":`Right`,column:`Top`,"column-reverse":`Bottom`})[e],T=({ownerState:e,theme:t})=>{let o={display:`flex`,flexDirection:`column`,...l({theme:t},c({values:e.direction,breakpoints:t.breakpoints.values}),e=>({flexDirection:e}))};if(e.spacing){let r=a(t),s=Object.keys(t.breakpoints.values).reduce((t,n)=>((typeof e.spacing==`object`&&e.spacing[n]!=null||typeof e.direction==`object`&&e.direction[n]!=null)&&(t[n]=!0),t),{}),u=c({values:e.direction,base:s}),d=c({values:e.spacing,base:s});typeof u==`object`&&Object.keys(u).forEach((e,t,n)=>{u[e]||(u[e]=t>0?u[n[t-1]]:`column`)}),o=n(o,l({theme:t},d,(t,n)=>e.useFlexGap?{gap:i(r,t)}:{"& > :not(style):not(style)":{margin:0},"& > :not(style) ~ :not(style)":{[`margin${w(n?u[n]:e.direction)}`]:i(r,t)}}))}return o=r(t.breakpoints,o),o};function E(e={}){let{createStyledComponent:t=x,useThemeProps:n=S,componentName:r=`MuiStack`}=e,i=()=>h({root:[`root`]},e=>d(r,e),{}),a=t(T);return v.forwardRef(function(e,t){let{component:r=`div`,direction:o=`column`,spacing:s=0,divider:c,children:l,className:u,useFlexGap:d=!1,...p}=n(e);return(0,y.jsx)(a,{as:r,ownerState:{direction:o,spacing:s,useFlexGap:d},ref:t,className:f(i().root,u),...p,children:c?C(l,c):l})})}var D=E({createStyledComponent:m(`div`,{name:`MuiStack`,slot:`Root`}),useThemeProps:e=>p({props:e,name:`MuiStack`})}),O=m(`div`)(()=>({display:`flex`,alignItems:`center`,justifyContent:`center`,position:`relative`,margin:0})),k=m(`div`,{shouldForwardProp:e=>e!==`color`})(({theme:e,color:t})=>({position:`absolute`,top:`50%`,left:`50%`,transform:`translate(-50%, -50%)`,color:t,fontSize:e.fontSizes.smallerBody,margin:0})),A=({percentage:e,size:t=`4rem`,disabled:n=!1,children:r,strokeRatio:i=.2})=>{let a=s(),o={display:`block`,borderRadius:`100%`,transform:`rotate(-90deg)`,height:t,width:t},c=100/(2*Math.PI),l=2*c,u=l*i,d=n?a.palette.neutral.border:a.palette.primary.light;return(0,y.jsxs)(O,{children:[(0,y.jsxs)(`svg`,{viewBox:`0 0 ${l} ${l}`,style:o,"aria-hidden":!0,children:[(0,y.jsx)(`circle`,{r:c,cx:c,cy:c,fill:`none`,stroke:a.palette.background.elevation2,strokeWidth:u}),(0,y.jsx)(`circle`,{r:c,cx:c,cy:c,fill:`none`,stroke:d,strokeWidth:u,strokeDasharray:`${e} 100`})]}),(0,y.jsx)(k,{color:d,children:r})]})};export{D as n,A as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{t as n}from"./jsx-runtime-BnvnyDTF.js";import{v as r}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{i}from"./CircularProgress-C_LUU3DK.js";import{t as a}from"./Button-CebB8EPB.js";import{r as o,t as s}from"./TooltipResolver-4A1YhwBy.js";import{t as c,u as ee,y as te}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as l}from"./formatPath-j72gcKwy.js";import{t as u}from"./useUiConfig-DbVjTDpE.js";import{t as d}from"./useConditionalSWR-DGgzun6i.js";var f=n(),p=e(t(),1),m=()=>{let{data:e,error:t}=ee(_,h,g);return{data:e,refetchAuth:(0,p.useCallback)(async()=>te(_).catch(console.warn),[]),loading:!t&&!e,error:t}},h=()=>fetch(_).then(e=>e.json()),g={revalidateIfStale:!1,revalidateOnFocus:!1,revalidateOnReconnect:!1,refreshInterval:15e3},_=l(`api/admin/user`),ne=(e=`useId`)=>(0,p.useMemo)(()=>`${e}-${v++}`,[e]),v=0,re=`ADMIN`,ie=`CREATE_FEATURE`,ae=`UPDATE_FEATURE`,oe=`UPDATE_FEATURE_DEPENDENCY`,se=`DELETE_FEATURE`,ce=`CREATE_STRATEGY`,le=`UPDATE_STRATEGY`,ue=`DELETE_STRATEGY`,de=`UPDATE_APPLICATION`,fe=`CREATE_CONTEXT_FIELD`,pe=`UPDATE_CONTEXT_FIELD`,me=`CREATE_PROJECT`,he=`UPDATE_PROJECT`,ge=`DELETE_PROJECT`,_e=`CREATE_TAG_TYPE`,ve=`UPDATE_TAG_TYPE`,ye=`DELETE_TAG_TYPE`,be=`CREATE_ADDON`,xe=`UPDATE_ADDON`,Se=`DELETE_ADDON`,Ce=`DELETE_ENVIRONMENT`,we=`UPDATE_ENVIRONMENT`,y=`CREATE_FEATURE_STRATEGY`,b=`UPDATE_FEATURE_STRATEGY`,Te=`DELETE_FEATURE_STRATEGY`,x=`UPDATE_FEATURE_ENVIRONMENT`,S=`UPDATE_FEATURE_ENVIRONMENT_VARIANTS`,Ee=`MOVE_FEATURE_TOGGLE`,De=`CREATE_SEGMENT`,Oe=`UPDATE_SEGMENT`,ke=`DELETE_SEGMENT`,Ae=`APPLY_CHANGE_REQUEST`,je=`APPROVE_CHANGE_REQUEST`,Me=`SKIP_CHANGE_REQUEST`,Ne=`CREATE_PROJECT_API_TOKEN`,Pe=`UPDATE_PROJECT_SEGMENT`,Fe=`PROJECT_USER_ACCESS_READ`,Ie=`PROJECT_DEFAULT_STRATEGY_READ`,Le=`PROJECT_CHANGE_REQUEST_READ`,Re=`PROJECT_SETTINGS_READ`,ze=`PROJECT_USER_ACCESS_WRITE`,Be=`PROJECT_DEFAULT_STRATEGY_WRITE`,Ve=`PROJECT_CHANGE_REQUEST_WRITE`,He=`PROJECT_SETTINGS_WRITE`,C=p.createContext({isAdmin:!1,hasAccess:()=>{throw Error(`hasAccess called outside AccessContext`)}}),w=e=>{let{isEnterprise:t}=u(),{data:n,error:r,mutate:i}=d(!!e&&t(),[],l(`api/admin/projects/${e}/change-requests/config`),Ue);return{data:n||[],loading:!r&&!n,refetchChangeRequestConfig:i,error:r}},Ue=e=>fetch(e).then(c(`Request changes`)).then(e=>e.json()),T=e=>{let{data:t}=w(e),n=Q(e),r=p.useCallback(e=>n(`SKIP_CHANGE_REQUEST`,e)?!1:t.some(t=>t.environment===e&&t.changeRequestEnabled),[JSON.stringify(t)]),i=p.useCallback(e=>t.some(t=>t.environment===e&&t.changeRequestEnabled),[JSON.stringify(t)]);return{isChangeRequestConfigured:r,isChangeRequestConfiguredInAnyEnv:p.useCallback(()=>t.some(e=>e.changeRequestEnabled),[JSON.stringify(t)]),isChangeRequestConfiguredForReview:i}},E=`ADMIN`,We=`CREATE_ADDON`,Ge=`UPDATE_ADDON`,Ke=`DELETE_ADDON`,qe=`UPDATE_CLIENT_API_TOKEN`,D=`CREATE_CLIENT_API_TOKEN`,O=`DELETE_CLIENT_API_TOKEN`,k=`READ_CLIENT_API_TOKEN`,Je=`UPDATE_FRONTEND_API_TOKEN`,A=`CREATE_FRONTEND_API_TOKEN`,j=`DELETE_FRONTEND_API_TOKEN`,M=`READ_FRONTEND_API_TOKEN`,Ye=`UPDATE_APPLICATION`,N=`CREATE_CONTEXT_FIELD`,P=`UPDATE_CONTEXT_FIELD`,F=`DELETE_CONTEXT_FIELD`,Xe=`CREATE_PROJECT`,I=`READ_ROLE`,Ze=`CREATE_SEGMENT`,Qe=`UPDATE_SEGMENT`,$e=`DELETE_SEGMENT`,et=`CREATE_STRATEGY`,tt=`UPDATE_STRATEGY`,nt=`DELETE_STRATEGY`,rt=`CREATE_TAG_TYPE`,it=`UPDATE_TAG_TYPE`,at=`DELETE_TAG_TYPE`,L=`READ_LOGS`,R=`UPDATE_MAINTENANCE_MODE`,z=`UPDATE_INSTANCE_BANNERS`,B=`UPDATE_CORS`,V=`UPDATE_AUTH_CONFIGURATION`,ot=`CREATE_FEATURE`,H=`UPDATE_FEATURE`,st=`UPDATE_FEATURE_DEPENDENCY`,ct=`DELETE_FEATURE`,U=`UPDATE_PROJECT`,lt=`DELETE_PROJECT`,ut=`UPDATE_FEATURE_VARIANTS`,dt=`MOVE_FEATURE_TOGGLE`,W=`READ_PROJECT_API_TOKEN`,G=`CREATE_PROJECT_API_TOKEN`,K=`DELETE_PROJECT_API_TOKEN`,q=`UPDATE_PROJECT_CONTEXT`,ft=`UPDATE_PROJECT_SEGMENT`,pt=`CREATE_FEATURE_STRATEGY`,J=`UPDATE_FEATURE_STRATEGY`,Y=`DELETE_FEATURE_STRATEGY`,mt=`UPDATE_FEATURE_ENVIRONMENT_VARIANTS`,ht=`UPDATE_FEATURE_ENVIRONMENT`,gt=`PROJECT_USER_ACCESS_READ`,_t=`PROJECT_DEFAULT_STRATEGY_READ`,vt=`PROJECT_CHANGE_REQUEST_READ`,yt=`PROJECT_SETTINGS_READ`,bt=`PROJECT_USER_ACCESS_WRITE`,X=`PROJECT_DEFAULT_STRATEGY_WRITE`,xt=`PROJECT_CHANGE_REQUEST_WRITE`,St=`PROJECT_SETTINGS_WRITE`,Ct=`RELEASE_PLAN_TEMPLATE_CREATE`,wt=`RELEASE_PLAN_TEMPLATE_UPDATE`,Tt=`RELEASE_PLAN_TEMPLATE_DELETE`,Et=[{label:`Integration`,permissions:[We,Ge,Ke]},{label:`API token`,permissions:[qe,D,O,k,Je,A,j,M]},{label:`Application`,permissions:[Ye]},{label:`Context field`,permissions:[N,P,F]},{label:`Project`,permissions:[Xe]},{label:`Role`,permissions:[I]},{label:`Segment`,permissions:[Ze,Qe,$e]},{label:`Strategy`,permissions:[et,tt,nt]},{label:`Tag type`,permissions:[rt,it,at]},{label:`Release plan templates`,permissions:[Ct,Tt,wt]},{label:`Instance maintenance`,permissions:[L,R,z,B]},{label:`Authentication`,permissions:[V]}],Dt=[E,I,k,M,R,L],Ot=[{label:`Features and strategies`,permissions:[[ot],[H],[st],[ct],[ut],[dt],[pt],[J],[Y],[ht],[mt],[q],[ft]]},{label:`Project settings`,permissions:[[U],[gt,U],[bt,U],[_t,U],[X,U],[yt,U],[St,U],[lt]]},{label:`API tokens`,permissions:[[W],[G],[K]]},{label:`Change requests`,permissions:[[xt,U],[vt,U]]}],kt=(e,t)=>{let n=e.data&&`permissions`in e.data?e.data.permissions:void 0;return n&&t?.maintenanceMode&&(n=n.filter(e=>Dt.includes(e.permission))),n},At=()=>{let e=m(),{uiConfig:t}=u();return{permissions:kt(e,t),refetchPermissions:e.refetchAuth,loading:e.loading,error:e.error}},jt=e=>({fetcher:()=>{let t=l(`api/admin/projects/${e}/overview`);return fetch(t,{method:`GET`}).then(c(`Project overview`)).then(e=>e.json())},KEY:`api/admin/projects/${e}/overview`}),Mt={featureTypeCounts:[],environments:[],name:``,health:0,members:0,version:1,description:`Default`,favorite:!1,mode:`open`,defaultStickiness:`default`,stats:{archivedCurrentWindow:0,archivedPastWindow:0,avgTimeToProdCurrentWindow:0,createdCurrentWindow:0,createdPastWindow:0,projectActivityCurrentWindow:0,projectActivityPastWindow:0,projectMembersAddedCurrentWindow:0},onboardingStatus:{status:`onboarded`}},Z=(e,t={})=>Nt(e,t),Nt=(e=``,t={})=>{let{KEY:n,fetcher:r}=jt(e),{data:i,error:a,mutate:o}=d(!!e,Mt,n,r,t),s=(0,p.useCallback)(()=>{o()},[o]);return{project:i||Mt,loading:!a&&!i,error:a,refetch:s}},Pt=e=>Z(e).project.name||e,Ft=e=>e.featureTypeCounts?.map(e=>e.count).reduce((e,t)=>e+t,0),Q=e=>{let{hasAccess:t}=(0,p.useContext)(C),n=(e,n,r)=>n&&r?t(e,n,r):n?t(e,n):t(e),r=(e,t,r)=>Array.isArray(e)?e.some(e=>n(e,t,r)):n(e,t,r);return(t,n)=>r(t,e,n)},It=e=>{let{isChangeRequestConfigured:t}=T(e),n=Q(e);return(e,r)=>r&&t(r)||n(e,r)},Lt=[y,b,Te,x,S],Rt=(e,t)=>e.filter(e=>t.includes(e)).length>0,zt=e=>{let{permissions:t}=At();return t?t.find(t=>t.project===e):!1},Bt=e=>{let t=zt(e),{project:n}=Z(e);return n.mode===`protected`?t:!0},Vt=e=>Rt(Lt,[].concat(e)),Ht=(e,t,n)=>{let{isChangeRequestConfigured:r}=T(t),i=r(n),a=Bt(t);return i&&a&&Vt(e)},Ut=(e,t,n)=>{let r=Q(t);return Ht(e,t,n)||r(e,n)},Wt=(e,t,n)=>Q(t)(e,n),Gt=i((0,f.jsx)(`path`,{d:`M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2m-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2m3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1s3.1 1.39 3.1 3.1z`}),`Lock`),Kt=r(a)({justifySelf:`start`,alignSelf:`start`,"&.Mui-disabled":{pointerEvents:`auto`}}),qt=(e,t,n)=>!e&&!n?(0,f.jsx)(Gt,{titleAccess:`Locked`}):t||null,Jt=p.forwardRef((e,t)=>{let n=Ut(e.permission,e.projectId,e.environmentId);return(0,f.jsx)($,{...e,access:n,ref:t})}),Yt=p.forwardRef((e,t)=>{let n=Wt(e.permission,e.projectId,e.environmentId);return(0,f.jsx)($,{...e,access:n,ref:t})}),$=p.forwardRef(({permission:e,access:t,variant:n=`contained`,color:r=`primary`,onClick:i,children:a,disabled:c,projectId:ee,environmentId:te,tooltipProps:l,hideLockIcon:u,className:d,...p},m)=>{let h=c||!t,g=ne(),_=qt(t,p.endIcon,u),v=e=>{if(h){e.preventDefault(),e.stopPropagation();return}i?.(e)};return(0,f.jsx)(s,{...l,title:o(t,l?.title),arrow:!0,children:(0,f.jsx)(Kt,{ref:m,onClick:v,"aria-disabled":h||void 0,"aria-labelledby":g,variant:n,color:r,className:[d,h&&`Mui-disabled`].filter(Boolean).join(` `)||void 0,...p,endIcon:_,children:a})})}),Xt=p.forwardRef((e,t)=>e.projectId!==void 0&&e.environmentId!==void 0?(0,f.jsx)(Jt,{...e,environmentId:e.environmentId,projectId:e.projectId,ref:t}):(0,f.jsx)(Yt,{...e,ref:t}));export{Ne as $,Tt as A,Pe as At,U as B,Ot as C,we as Ct,W as D,S as Dt,L as E,x as Et,B as F,m as Ft,re as G,T as H,H as I,be as J,Ae as K,J as L,Et as M,le as Mt,V as N,ve as Nt,I as O,b as Ot,P,ne as Pt,me as Q,z as R,X as S,pe as St,M as T,oe as Tt,w as U,q as V,C as W,ie as X,fe as Y,y as Z,O as _,Fe as _t,Ut as a,se as at,j as b,xe as bt,Nt as c,ue as ct,At as d,Le as dt,De as et,E as f,Ve as ft,G as g,He as gt,A as h,Re as ht,Q as i,Ce as it,wt as j,Oe as jt,Ct as k,he as kt,Z as l,ye as lt,N as m,Be as mt,Gt as n,_e as nt,Wt as o,ge as ot,D as p,Ie as pt,je as q,It as r,Se as rt,Ft as s,ke as st,Xt as t,ce as tt,Pt as u,Ee as ut,F as v,ze as vt,k as w,ae as wt,K as x,de as xt,Y as y,Me as yt,R as z};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{i as e,o as t,t as n}from"./react-GZhdek4G.js";import{t as r}from"./useTheme-CQqAmDLr.js";import{t as i}from"./jsx-runtime-BnvnyDTF.js";import{v as a}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{i as o}from"./CircularProgress-C_LUU3DK.js";import{t as s}from"./Box-BQsxfFmC.js";import{t as c}from"./Button-CebB8EPB.js";import{ct as l}from"./index-C04TEs4k.js";import{a as u,i as d,r as f,t as p}from"./esm-DdgY1Q5s.js";var m=i(),h=o((0,m.jsx)(`path`,{d:`M3 21h18v-2H3zM3 8v8l4-4zm8 9h10v-2H11zM3 3v2h18V3zm8 6h10V7H11zm0 4h10v-2H11z`}),`FormatIndentIncrease`),g=e({default:()=>T}),_=t(n(),1),v=a(s,{shouldForwardProp:e=>e!==`editorStyle`&&e!==`hasError`})(({theme:e,editorStyle:t,hasError:n})=>({border:`1px solid ${n?e.palette.error.main:e.palette.divider}`,borderRadius:e.shape.borderRadiusMedium,overflow:`hidden`,position:`relative`,backgroundColor:e.palette.background.paper,minHeight:t===`sidePanel`?void 0:e.spacing(8),"&:hover":{borderColor:e.palette.action.disabled},"& .cm-cursor":{borderLeftWidth:e.spacing(.2),borderLeftColor:e.palette.text.primary},"&:focus-within":{borderColor:n?e.palette.error.main:e.palette.primary.main},"& .cm-editor":{backgroundColor:e.palette.background.paper,color:e.palette.text.primary,fontSize:e.fontSizes.smallBody,minHeight:`inherit`,outline:0,position:`relative`,zIndex:0},"& .cm-focused":{outline:0},"& .cm-content":{paddingTop:e.spacing(1),paddingRight:e.spacing(12),paddingBottom:e.spacing(1),minHeight:`inherit`},"& .cm-gutters":{backgroundColor:e.palette.background.alternative,borderRight:`1px solid ${e.palette.divider}`,color:e.palette.text.secondary,minHeight:`inherit`},"& .cm-lineNumbers .cm-gutterElement":{paddingLeft:e.spacing(.75),paddingRight:e.spacing(.75),textAlign:`center`},"& .cm-gutter":{minHeight:`inherit`},"& .cm-line":{paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},"& .cm-scroller":{fontFamily:e.typography.fontFamily,minHeight:`inherit`},"& .cm-activeLine, & .cm-activeLineGutter":{backgroundColor:`transparent`},"& .cm-selectionBackground, & .cm-content ::selection":{backgroundColor:`${e.palette.primary.light} !important`},"& .cm-tooltip":{backgroundColor:e.palette.background.paper,border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadiusMedium,boxShadow:e.shadows[3]},"& .cm-lintRange-error":{backgroundImage:`linear-gradient(45deg, transparent 65%, ${e.palette.error.main} 80%, transparent 90%),
|
|
2
|
+
linear-gradient(135deg, transparent 5%, ${e.palette.error.main} 15%, transparent 25%),
|
|
3
|
+
linear-gradient(135deg, transparent 45%, ${e.palette.error.main} 55%, transparent 65%),
|
|
4
|
+
linear-gradient(45deg, transparent 25%, ${e.palette.error.main} 35%, transparent 50%)`,backgroundPosition:`0 100%`,backgroundRepeat:`repeat-x`,backgroundSize:`8px 3px`},"& .cm-diagnostic-error":{borderLeftColor:e.palette.error.main},...t===`sidePanel`&&{height:`100%`,border:0,backgroundColor:`transparent`,"&:hover, &:focus-within":{borderColor:`transparent`},"& .cm-editor":{height:`100%`,backgroundColor:`transparent`},"& .cm-gutters":{backgroundColor:`transparent`,color:e.palette.text.secondary}}})),y=a(c)(({theme:e})=>({position:`absolute`,top:e.spacing(.75),right:e.spacing(.75),zIndex:1,backgroundColor:e.palette.background.paper,"&:hover":{backgroundColor:e.palette.background.elevation1}})),b=a(`div`)(({theme:e})=>({padding:e.spacing(.5,1),borderTop:`1px solid ${e.palette.divider}`,backgroundColor:e.palette.background.alternative,color:e.palette.text.secondary,fontSize:e.fontSizes.smallBody})),x=a(`div`)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(1),marginTop:e.spacing(.75),padding:e.spacing(1,1.5),border:`1px solid ${e.palette.error.border}`,borderRadius:e.shape.borderRadiusMedium,backgroundColor:e.palette.error.light,color:e.palette.error.dark,fontSize:e.fontSizes.smallBody,lineHeight:1.4})),S=a(`div`)({width:`100%`}),C=e=>`text`in e?e.text:JSON.stringify(e.json,void 0,2)??``,w=e=>{if(e.trim()!==``)try{JSON.parse(e);return}catch(e){return e instanceof Error?e.message:`Invalid JSON`}},T=({content:e,onChange:t,onBlur:n,validationError:i,readOnly:a=!1,statusBar:o=!1,editorStyle:s=`default`})=>{let c=r(),g=(0,_.useMemo)(()=>C(e),[e]),[T,E]=(0,_.useState)(),D=(0,_.useMemo)(()=>[d(),...a?[]:[f(u())]],[a]),O=!a&&i===void 0;(0,_.useEffect)(()=>{E(O?w(g):void 0)},[O,g]);let k=(0,_.useCallback)(e=>{O&&E(w(e)),t?.({text:e})},[t,O]),A=(0,_.useCallback)(()=>{let e;try{e=JSON.stringify(JSON.parse(g),void 0,2)}catch{return}t?.({text:e})},[t,g]),j=s===`sidePanel`?void 0:c.spacing(10),M=i??T;return(0,m.jsxs)(S,{children:[(0,m.jsxs)(v,{editorStyle:s,hasError:!!M,children:[a?null:(0,m.jsx)(y,{size:`medium`,variant:`outlined`,startIcon:(0,m.jsx)(h,{}),onClick:A,children:`Format`}),(0,m.jsx)(p,{value:g,minHeight:j,height:s===`sidePanel`?`100%`:void 0,theme:`none`,extensions:D,onChange:k,onBlur:n,readOnly:a,editable:!a,basicSetup:{foldGutter:!1,lineNumbers:!1,highlightActiveLine:!1,highlightActiveLineGutter:!1}}),o?(0,m.jsx)(b,{children:`JSON`}):null]}),M?(0,m.jsxs)(x,{role:`alert`,children:[(0,m.jsx)(l,{fontSize:`small`}),M]}):null]})};export{g as n,T as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{r as n,u as r}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as i}from"./jsx-runtime-BnvnyDTF.js";import{D as a,O as o,k as s,m as c,v as l,x as u}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{A as d,M as f,O as p,_ as m,c as h,j as g,n as _,o as v,t as ee,v as te,w as y,y as ne}from"./useConditionallyHiddenColumns-C5q9zdfJ.js";import{t as re}from"./useMediaQuery-DGx8zAkf.js";import{t as ie}from"./Tooltip-BaILXXti.js";import{y as ae}from"./TextField-oipjeg6n.js";import{t as oe}from"./Radio-DL8ja0ll.js";import{i as se}from"./CircularProgress-C_LUU3DK.js";import{t as b}from"./ConditionallyRender---uTpMBn.js";import{r as ce,t as x}from"./Alert-_bLyWbvx.js";import{t as S}from"./Typography-BTdLWIUX.js";import{t as C}from"./Box-BQsxfFmC.js";import{t as w}from"./Button-CebB8EPB.js";import{t as T}from"./FormControlLabel-F5gDLixN.js";import{t as le}from"./RadioGroup-Ci3WHaOy.js";import{t as E}from"./Link-CfIScd2f.js";import{a as ue,i as D,n as O,o as de,r as fe,t as k}from"./useEnvironments-CTguhgy0.js";import{a as A,i as pe}from"./TooltipResolver-4A1YhwBy.js";import{t as j,u as me}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as M}from"./formatPath-j72gcKwy.js";import{g as he,o as N}from"./PermissionButton-B-IfzChn.js";import{t as P}from"./useUiConfig-DbVjTDpE.js";import{t as F}from"./HtmlTooltip-B9jv1G1R.js";import{t as I}from"./Truncator-D2bO9ub6.js";import{f as L}from"./testIds-B_Ev-uQn.js";import{n as R,t as z}from"./FileCopy-B8HZEA83.js";import{t as ge}from"./useConditionalSWR-DGgzun6i.js";import{t as B}from"./Highlighter-MomUaQww.js";import{$o as _e,Aa as ve,Is as ye,Ja as be,Jo as V,Ko as xe,Wn as Se,da as Ce,ka as we,la as Te,no as H,qo as Ee,ro as De,ts as Oe,ua as ke,yr as Ae}from"./index-C04TEs4k.js";import{t as je}from"./useApiTokens-C8Dqw_X1.js";var U=e(t(),1);function Me(e){return o(`MuiTableContainer`,e)}a(`MuiTableContainer`,[`root`]);var W=i(),Ne=e=>{let{classes:t}=e;return u({root:[`root`]},Me,t)},Pe=l(`div`,{name:`MuiTableContainer`,slot:`Root`})({width:`100%`,overflowX:`auto`}),Fe=U.forwardRef(function(e,t){let n=c({props:e,name:`MuiTableContainer`}),{className:r,component:i=`div`,...a}=n,o={...n,component:i};return(0,W.jsx)(Pe,{ref:t,as:i,className:s(Ne(o).root,r),ownerState:o,...a})}),Ie=()=>(0,W.jsx)(x,{severity:`info`,children:(0,W.jsxs)(`p`,{children:[`Read the`,` `,(0,W.jsx)(`a`,{href:`https://docs.getunleash.io/sdks`,target:`_blank`,rel:`noreferrer`,children:`SDK overview`}),` `,`to connect Unleash to your application. Please note it can take up to `,(0,W.jsx)(`strong`,{children:`1 minute`}),` before a new API key is activated.`]})}),G=e(R(),1),K=({title:e,url:t})=>{let{setToastData:n}=A();return(0,W.jsxs)(O,{children:[(0,W.jsx)(D,{component:`th`,scope:`row`,children:e}),(0,W.jsx)(D,{children:(0,W.jsx)(`pre`,{style:{display:`inline`},children:t})}),(0,W.jsx)(D,{align:`center`,children:(0,W.jsx)(ie,{title:`Copy URL`,arrow:!0,children:(0,W.jsx)(ce,{onClick:(e=>()=>{(0,G.default)(e),n({type:`success`,text:`Copied to clipboard`})})(t),size:`small`,"aria-label":`Copy ${e} to clipboard`,children:(0,W.jsx)(z,{})})})})]})},q=l(D)(({theme:e})=>({color:e.palette.text.secondary})),Le=({compact:e})=>{let{uiConfig:t}=P(),[n,r]=(0,U.useState)(!e),i=t.unleashUrl&&(n||!t.edgeUrl),a=e&&t.edgeUrl&&t.unleashUrl,o=t.edgeUrl?{edgeUrl:`${t.edgeUrl}/api/`,edgeFrontendUrl:`${t.edgeUrl}/api/frontend/`}:void 0,s=`${t.unleashUrl}/api/`,c=`${t.unleashUrl}/api/frontend/`;return(0,W.jsxs)(Fe,{role:`region`,"aria-live":`polite`,children:[(0,W.jsxs)(de,{"aria-label":`API URLs`,id:`api-urls-table`,children:[(0,W.jsx)(fe,{children:(0,W.jsxs)(O,{children:[(0,W.jsx)(q,{children:`Type`}),(0,W.jsx)(q,{children:`URL`}),(0,W.jsx)(q,{align:`center`,children:`Actions`})]})}),(0,W.jsxs)(ue,{children:[o&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(K,{title:`Edge Backend`,url:o.edgeUrl}),(0,W.jsx)(K,{title:`Edge Frontend`,url:o.edgeFrontendUrl})]}),i&&(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(K,{title:`Backend`,url:s}),(0,W.jsx)(K,{title:`Frontend`,url:c})]})]})]}),a&&(0,W.jsx)(w,{sx:{mt:1,marginInline:1.5},variant:`text`,size:`medium`,"aria-expanded":n,"aria-controls":`api-urls-table`,onClick:()=>r(!n),children:n?`Show less`:`Show all`})]})},Re=[`Icon`,`createdAt`,`seenAt`],ze=[`Icon`,`project`,`seenAt`],J=l(S)(({theme:e})=>({margin:0,marginBottom:e.spacing(1.5),fontSize:e.fontSizes.smallBody,color:e.palette.text.primary})),Be=({compact:e=!1,table:t,columns:n,loading:r,globalFilter:i})=>{ee([{condition:re(ye.breakpoints.down(`xl`)),columns:Re},{condition:e,columns:ze}],t.setColumnVisibility,n);let a=t.getRowModel().rows.length;return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(b,{condition:a>0,show:(0,W.jsxs)(C,{sx:{mb:4},children:[(0,W.jsx)(Ie,{}),(0,W.jsxs)(C,{sx:{marginBlock:4},children:[(0,W.jsx)(J,{variant:`h2`,children:`API URLs`}),(0,W.jsx)(Le,{compact:e})]})]})}),(0,W.jsxs)(C,{sx:{overflowX:`auto`},children:[(0,W.jsx)(J,{variant:`h2`,children:`API Tokens`}),(0,W.jsx)(te,{value:i,children:(0,W.jsx)(Ce,{tableInstance:t})})]}),(0,W.jsx)(b,{condition:a===0&&!r,show:(0,W.jsx)(b,{condition:i?.length>0,show:(0,W.jsxs)(y,{children:[`No tokens found matching “`,i,`”`]}),elseShow:(0,W.jsx)(y,{children:(0,W.jsxs)(`span`,{children:[`No tokens available. Read `,(0,W.jsx)(E,{href:`https://docs.getunleash.io/api`,target:`_blank`,rel:`noreferrer`,children:`API How-to guides`}),` `,` to learn more.`]})})})})]})},Ve=(e,t)=>{let n=t>=e;return{limitReached:n,limitMessage:n?`You have reached the limit of ${e} API tokens`:void 0}},He=({path:e,permission:t,project:n})=>{let i=r(),{tokens:a,loading:o}=je(),{uiConfig:s}=P(),{limitReached:c,limitMessage:l}=Ve(s.resourceLimits.apiTokens,a.length);return(0,W.jsx)(Te,{Icon:De,onClick:()=>i(e),"data-testid":L,permission:t,projectId:n,maxWidth:`700px`,disabled:o||c,tooltipProps:{title:l},children:`New API token`})},Ue=l(n)(({theme:e})=>({textDecoration:`none`,color:e.palette.links,"&:hover, &:focus":{textDecoration:`underline`}})),We=l(`div`)({display:`flex`,alignItems:`center`}),Ge=({projects:e,project:t})=>{let{searchQuery:n}=ne(),r=e&&Array.isArray(e)&&e.length>1?e:[];if(r.length>0)return(0,W.jsx)(m,{children:(0,W.jsx)(F,{title:r.map((e,t)=>(0,W.jsxs)(U.Fragment,{children:[t>0&&`, `,!e||e===`*`?(0,W.jsx)(B,{search:n,children:`*`}):(0,W.jsx)(Ue,{to:`/projects/${e}`,children:(0,W.jsx)(B,{search:n,children:e})})]},e)),placement:`bottom-start`,arrow:!0,tabIndex:0,children:(0,W.jsxs)(`span`,{children:[`${r.length}`,` projects`]})})});if(r.length===1&&r[0]!==`*`||t&&t!==`*`){let e=t||r[0];return(0,W.jsx)(_e,{to:`/projects/${e}`,title:e})}return(0,W.jsx)(m,{children:(0,W.jsx)(F,{title:`ALL current and future projects.`,placement:`bottom`,arrow:!0,children:(0,W.jsx)(We,{children:(0,W.jsx)(B,{search:n,children:`*`})})})})},Y=se((0,W.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.04zM7 15c-1.65 0-3-1.35-3-3s1.35-3 3-3 3 1.35 3 3-1.35 3-3 3`}),`Key`),Ke=({secret:e,project:t,projects:n})=>{let r=e?.includes(`:`)?`v2`:`v1`,i=e?.startsWith(`*:`),a=n&&n?.length>1||n?.length===1&&n[0]!==`*`||t&&t!==`*`;return r===`v2`&&!i&&!a},qe=({...e})=>Ke(e)?(0,W.jsx)(_,{icon:(0,W.jsx)(F,{title:(0,W.jsxs)(`p`,{children:[`This is an orphaned token. All of its original projects have been deleted and it now has access to all current and future projects. You should stop using this token and delete it. Read more in`,` `,(0,W.jsx)(E,{target:`_blank`,rel:`noopener noreferrer`,href:`https://github.com/Unleash/unleash/releases/tag/v6.1.0`,children:`release notes`}),`.`]}),placement:`bottom-start`,arrow:!0,children:(0,W.jsx)(ve,{"aria-label":`Orphaned token`,color:`warning`,"data-testid":`orphaned-token-icon`})})}):(0,W.jsx)(_,{icon:(0,W.jsx)(Y,{color:`disabled`})}),Je=(e,t)=>{let[n,r]=(0,U.useState)(``),i=(0,U.useMemo)(()=>({sorting:[{id:`createdAt`,desc:!0}]}),[]),a=(0,U.useMemo)(()=>[{id:`Icon`,cell:({row:e})=>(0,W.jsx)(qe,{secret:e.original.secret,project:e.original.project,projects:e.original.projects}),enableSorting:!1,enableGlobalFilter:!1,meta:{width:50}},{id:`tokenName`,header:`Token name`,accessorKey:`tokenName`,cell:v,meta:{minWidth:35}},{id:`type`,header:`Type`,accessorKey:`type`,cell:({getValue:e})=>{let t=Ye[String(e()??``).toLowerCase()];return(0,W.jsx)(v,{value:t?.label??``,subtitle:t?.title,subtitleTooltip:!0})},meta:{width:180}},{id:`project`,header:`Project`,accessorKey:`project`,cell:({row:e})=>(0,W.jsx)(Ge,{project:e.original.project,projects:e.original.projects}),meta:{width:160}},{id:`environment`,header:`Environment`,accessorKey:`environment`,cell:v,meta:{width:120}},{id:`createdAt`,header:`Created`,accessorKey:`createdAt`,cell:Oe,enableGlobalFilter:!1,meta:{width:150}},{id:`seenAt`,header:`Last seen`,accessorKey:`seenAt`,cell:ke,enableGlobalFilter:!1,meta:{width:140}},{id:`Actions`,header:`Actions`,cell:e=>t({row:e.row}),enableSorting:!1,enableGlobalFilter:!1,meta:{width:120,align:`center`}}],[]);return{table:p({columns:a,data:e,initialState:i,state:{globalFilter:n},onGlobalFilterChange:r,getCoreRowModel:d(),getSortedRowModel:f(),getFilteredRowModel:g(),autoResetAll:!1,enableSortingRemoval:!1}),columns:a,globalFilter:n,setGlobalFilter:r}},Ye={client:{label:`BACKEND`,title:`Connect backend SDK or Unleash Edge`},backend:{label:`BACKEND`,title:`Connect backend SDK or Unleash Edge`},frontend:{label:`FRONTEND`,title:`Connect frontend SDK`},admin:{label:`ADMIN`,title:`Full access for managing Unleash`}},Xe=({token:e,project:t,permission:n,track:r})=>{let{setToastData:i}=A(),a=e=>{(0,G.default)(e)&&(i({type:`success`,text:`Token copied to clipboard`}),r&&typeof r==`function`&&r())};return(0,W.jsx)(H,{permission:n,projectId:t,tooltipProps:{title:`Copy token`,arrow:!0},onClick:()=>a(e.secret),size:`large`,children:(0,W.jsx)(z,{})})},Ze=l(`ul`)({marginBottom:0}),Qe=({token:e,permission:t,onRemove:n,project:r})=>{let[i,a]=(0,U.useState)(!1),{setToastData:o,setToastApiError:s}=A();return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(H,{permission:t,projectId:r,tooltipProps:{title:`Delete token`,arrow:!0},onClick:()=>a(!0),size:`large`,children:(0,W.jsx)(be,{})}),(0,W.jsx)(V,{open:i,onClick:async()=>{try{await n(),a(!1),o({type:`success`,text:`API token removed`})}catch(e){s(pe(e))}},onClose:()=>a(!1),title:`Confirm deletion`,children:(0,W.jsxs)(`div`,{children:[`Are you sure you want to delete the following API token?`,(0,W.jsx)(`br`,{}),(0,W.jsxs)(Ze,{children:[(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`strong`,{children:`name`}),`:`,` `,(0,W.jsx)(`code`,{children:e.tokenName})]}),(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`strong`,{children:`type`}),`: `,(0,W.jsx)(`code`,{children:e.type})]}),(0,W.jsxs)(`li`,{children:[(0,W.jsx)(`strong`,{children:`environment`}),`:`,` `,(0,W.jsx)(`code`,{children:e.environment})]})]})]})})]})},$e=l(`div`)(()=>({maxWidth:`400px`})),et=l(`form`)(()=>({display:`flex`,flexDirection:`column`,height:`100%`})),tt=l(h)(({theme:e})=>({width:`100%`,marginBottom:e.spacing(2)})),nt=l(xe)(({theme:e})=>({marginBottom:e.spacing(2),minWidth:`400px`,[e.breakpoints.down(`sm`)]:{minWidth:`379px`}})),X=l(`p`)(({theme:e})=>({marginBottom:e.spacing(1)})),rt=l(`label`)(({theme:e})=>({marginBottom:e.spacing(1)})),Z=l(w)(({theme:e})=>({marginLeft:e.spacing(3)})),it=l(C)({marginTop:`auto`,display:`flex`,justifyContent:`flex-end`}),at=({children:e,actions:t,handleSubmit:n,handleCancel:r})=>{let{uiConfig:i}=P();return(0,W.jsxs)(et,{onSubmit:n,children:[(0,W.jsx)(b,{condition:!!i?.flags?.UNLEASH_CLOUD,show:(0,W.jsxs)(x,{severity:`info`,sx:{mb:4},children:[`Please be aware of our`,` `,(0,W.jsx)(E,{href:`https://www.getunleash.io/fair-use-policy`,children:`fair use policy`}),`.`]})}),e,(0,W.jsxs)(it,{children:[t,(0,W.jsx)(Z,{onClick:r,children:`Cancel`})]})]})},Q=function(e){return e.ADMIN=`ADMIN`,e.CLIENT=`CLIENT`,e.FRONTEND=`FRONTEND`,e}({}),ot=e=>{let{environments:t}=k(),n=t?.find(e=>e.enabled)?.name,r=N(he,e),i=[{key:Q.CLIENT,label:`Backend SDK`,title:`Creates a backend token to connect a backend SDK or Unleash Edge`,enabled:N(`CREATE_CLIENT_API_TOKEN`)||r},{key:Q.FRONTEND,label:`Frontend SDK`,title:`Creates a frontend token to connect a frontend SDK`,enabled:N(`CREATE_FRONTEND_API_TOKEN`)||r}],a=i.find(e=>e.enabled)?.key,[o,s]=(0,U.useState)(``),[c,l]=(0,U.useState)(a||Q.CLIENT),[u,d]=(0,U.useState)([e||`*`]),[f,p]=(0,U.useState)(u),[m,h]=(0,U.useState)(),[g,_]=(0,U.useState)({});return(0,U.useEffect)(()=>{h(c===`ADMIN`?`*`:n)},[c,n]),{tokenName:o,type:c,apiTokenTypes:i,projects:u,environment:m,setTokenName:s,setTokenType:e=>{e===`ADMIN`?(l(Q.ADMIN),p(u),d([`*`]),h(`*`)):(l(e),d(f),h(n))},setProjects:d,setEnvironment:h,getApiTokenPayload:()=>({tokenName:o,type:c,environment:m,projects:u}),isValid:()=>{let e={};return o||(e.tokenName=`Token name is required`),u.length===0&&(e.projects=`At least one project is required`),_(e),Object.keys(e).length===0},clearErrors:e=>{if(e){let t={...g};delete t[e],_(t)}else _({})},errors:g}},st=({open:e,setOpen:t,closeConfirm:r,token:i,type:a})=>(0,W.jsxs)(V,{open:e,setOpen:t,onClick:r,primaryButtonText:`Close`,title:`New token created`,children:[(0,W.jsx)(S,{variant:`body1`,children:`Your new token has been created successfully.`}),(0,W.jsx)(Ae,{token:i}),(0,W.jsx)(b,{condition:a===Q.FRONTEND,show:(0,W.jsxs)(x,{sx:{mt:2},severity:`info`,children:[`By default, all `,Q.FRONTEND,` tokens may be used from any CORS origin. If you'd like to configure a strict set of origins, please use the`,` `,(0,W.jsx)(n,{to:`/admin/cors`,target:`_blank`,rel:`noreferrer`,children:`CORS origins configuration page`}),`.`]})})]}),ct=({tokenName:e,setTokenName:t,errors:n,clearErrors:r})=>(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(X,{children:`What would you like to call this token?`}),(0,W.jsx)(tt,{value:e,name:`tokenName`,onChange:e=>t(e.target.value),label:`Token name`,error:n.tokenName!==void 0,errorText:n.tokenName,onFocus:()=>r(`tokenName`),autoFocus:!0})]}),lt=({type:e,setType:t,apiTokenTypes:n})=>(0,W.jsx)($e,{children:(0,W.jsxs)(ae,{sx:{mb:2,width:`100%`},children:[(0,W.jsx)(rt,{id:`token-type`,children:`What do you want to connect?`}),(0,W.jsx)(le,{"aria-labelledby":`token-type`,defaultValue:`CLIENT`,name:`radio-buttons-group`,value:e,onChange:(e,n)=>t(n),children:n.map(({key:e,label:t,title:n,enabled:r})=>(0,W.jsx)(T,{value:e,sx:{mb:1},disabled:!r,control:(0,W.jsx)(oe,{sx:{ml:.75,alignSelf:`flex-start`}}),label:(0,W.jsx)(C,{children:(0,W.jsxs)(C,{children:[(0,W.jsx)(S,{children:t}),(0,W.jsx)(S,{variant:`body2`,sx:{color:`text.secondary`},children:n})]})})},e))})]})}),ut=({type:e,environment:t,setEnvironment:n})=>{let{environments:r}=k(),i=e===Q.ADMIN?[{key:`*`,label:`ALL`}]:r.map(e=>({key:e.name,label:`${e.name.concat(e.enabled?``:` - deprecated`)}`,title:e.name,disabled:!1}));return(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(X,{children:`Which environment should the token have access to?`}),(0,W.jsx)(nt,{disabled:e===Q.ADMIN,options:i,value:t,onChange:n,label:`Environment`,id:`api_key_environment`,name:`environment`,IconComponent:Ee,fullWidth:!0})]})},$=e=>e.map(e=>({...e.user,joinedAt:new Date(e.joinedAt),createdBy:e.createdBy})),dt=e=>{let{data:t,error:n,mutate:r}=me(M(`api/admin/groups/${e}`),ft);return(0,U.useMemo)(()=>({group:t&&{...t,users:$(t?.users??[])},loading:!n&&!t,refetchGroup:()=>r(),error:n}),[t,n,r])},ft=e=>fetch(e).then(j(`Group`)).then(e=>e.json()),pt=()=>{let{isEnterprise:e}=P(),{data:t,error:n,mutate:r}=ge(e(),{serviceAccounts:[],rootRoles:[]},M(`api/admin/service-account`),mt);return(0,U.useMemo)(()=>({serviceAccounts:t?.serviceAccounts??[],roles:t?.rootRoles??[],loading:!n&&!t,refetch:()=>r(),error:n}),[t,n,r])},mt=e=>fetch(e).then(j(`Service Accounts`)).then(e=>e.json()),ht=l(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(.5),"& > *:not(:last-child)":{borderBottom:`1px solid ${e.palette.divider}`,paddingBottom:e.spacing(1)}})),gt=l(I)(()=>({display:`block`})),_t=({role:e,roles:t,value:n})=>{let{isEnterprise:r}=P();return r()?(0,W.jsx)(m,{children:(0,W.jsx)(we,{tooltip:(0,W.jsx)(ht,{children:(t||[e]).map(e=>(0,W.jsx)(Se,{roleId:e,tooltip:!0},e))}),children:(0,W.jsx)(gt,{children:n})})}):(0,W.jsx)(m,{children:n})};export{He as _,ut as a,st as c,at as d,X as f,Y as g,Je as h,dt as i,ot as l,Xe as m,pt as n,lt as o,Qe as p,$ as r,ct as s,_t as t,Q as u,Be as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{f as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as a}from"./Tooltip-BaILXXti.js";import{E as o,a as s,i as c,r as l}from"./TextField-oipjeg6n.js";import{r as u}from"./Alert-_bLyWbvx.js";import{t as d}from"./Typography-BTdLWIUX.js";import{t as f}from"./Box-BQsxfFmC.js";import{t as p}from"./Button-CebB8EPB.js";import{a as m,i as h,n as g,o as _}from"./TooltipResolver-4A1YhwBy.js";import{H as v}from"./PermissionButton-B-IfzChn.js";import{t as y}from"./HelpOutlineOutlined-CpMsVJZu.js";import{Ai as b,D as x,H as S,Jo as C,Mi as w,ft as T,po as E,ro as D,to as O}from"./index-C04TEs4k.js";var k=e(t(),1),A=r(),j=({isOpen:e,onConfirm:t,onClose:n,safeguardData:r,mode:i,safeguardType:a})=>{let{metricName:o}=r.impactMetric;return(0,A.jsx)(C,{title:`Request changes`,open:e,secondaryButtonText:`Cancel`,onClose:n,customButton:(0,A.jsx)(p,{color:`primary`,variant:`contained`,onClick:t,autoFocus:!0,children:`Add suggestion to draft`}),children:(0,A.jsxs)(`p`,{children:[i===`create`?`Add`:`Update`,` safeguard that an`,` `,a===`featureEnvironment`?`disables the environment`:`pauses automation`,` based on `,(0,A.jsx)(`strong`,{children:o})]})})},M=()=>{let{makeRequest:e,createRequest:t,errors:n,loading:r}=g({propagateErrors:!0});return{createOrUpdateReleasePlanSafeguard:async({projectId:n,featureName:r,environment:i,planId:a,body:o})=>{let s=t(`api/admin/projects/${n}/features/${r}/environments/${i}/release-plans/${a}/safeguards`,{method:`PUT`,body:JSON.stringify(o)},`createOrUpdateReleasePlanSafeguard`);await e(s.caller,s.id)},createOrUpdateFeatureEnvironmentSafeguard:async({projectId:n,featureName:r,environment:i,body:a})=>{let o=t(`api/admin/projects/${n}/features/${r}/environments/${i}/safeguards`,{method:`PUT`,body:JSON.stringify(a)},`createOrUpdateFeatureEnvironmentSafeguard`);await e(o.caller,o.id)},deleteReleasePlanSafeguard:async({projectId:n,featureName:r,environment:i,planId:a,safeguardId:o})=>{let s=t(`api/admin/projects/${n}/features/${r}/environments/${i}/release-plans/${a}/safeguards/${o}`,{method:`DELETE`},`deleteReleasePlanSafeguard`);await e(s.caller,s.id)},deleteFeatureEnvironmentSafeguard:async({projectId:n,featureName:r,environment:i,safeguardId:a})=>{let o=t(`api/admin/projects/${n}/features/${r}/environments/${i}/safeguards/${a}`,{method:`DELETE`},`deleteFeatureEnvironmentSafeguard`);await e(o.caller,o.id)},errors:n,loading:r}},N=({open:e,onClose:t,onConfirm:n,isDeleting:r=!1})=>(0,A.jsxs)(C,{title:`Remove safeguard?`,open:e,primaryButtonText:r?`Removing...`:`Remove safeguard`,secondaryButtonText:`Cancel`,onClick:n,onClose:t,disabledPrimaryButton:r,children:[(0,A.jsx)(`p`,{children:`You are about to remove the safeguard that pauses automation when conditions are met.`}),(0,A.jsx)(`br`,{}),(0,A.jsx)(`p`,{children:`This action cannot be undone.`})]}),P=i(`div`)(({theme:e})=>({display:`flex`,padding:e.spacing(.25,.25),backgroundColor:T(e),borderTop:`1px solid ${e.palette.divider}`,borderBottom:`1px solid ${e.palette.divider}`,"& > form":{borderRadius:0,border:`none`}})),F=i(`div`)(({theme:e})=>({display:`flex`,alignItems:`center`,width:`100%`,paddingRight:e.spacing(2)})),I=i(c)(({theme:e})=>({[`& .${s.paper}`]:{maxWidth:e.spacing(45)}})),L=i(o)(({theme:e})=>({padding:e.spacing(1,2,.5,2),lineHeight:1.6,textTransform:`uppercase`,letterSpacing:.5,fontSize:e.typography.caption.fontSize,fontWeight:e.typography.fontWeightBold,color:e.palette.text.secondary,backgroundColor:`transparent`})),R={whiteSpace:`normal`,alignItems:`flex-start`,py:1.25},z=i(`li`)({listStyle:`none`,padding:0,margin:0}),B=i(d)(({theme:e})=>({display:`block`,marginTop:e.spacing(.25),color:e.palette.text.secondary})),V=i(u)(({theme:e})=>({color:e.palette.action.active,padding:e.spacing(.5)})),H=()=>{let[e,t]=n(),{trackEvent:r}=_();return(0,A.jsx)(a,{title:`Learn how safeguards work`,arrow:!0,children:(0,A.jsx)(V,{onClick:()=>{r(`safeguards`,{props:{eventType:`splash opened from feature page`}}),e.set(`splash`,`impact-metrics-safeguards`),t(e)},size:`medium`,"aria-label":`Learn how safeguards work`,children:(0,A.jsx)(y,{})})})},U=({onSelect:e,releasePlan:t})=>{let[n,r]=(0,k.useState)(null),{trackEvent:i}=_();return(0,A.jsxs)(P,{children:[(0,A.jsxs)(F,{children:[(0,A.jsx)(S,{onClick:e=>{i(`safeguards`,{props:{eventType:`choose safeguard opened`}}),r(e.currentTarget)},color:`primary`,startIcon:(0,A.jsx)(D,{}),sx:{mt:2,mb:2,ml:2,mr:.5},children:`Add safeguard`}),(0,A.jsx)(H,{})]}),(0,A.jsxs)(I,{anchorEl:n,open:!!n,onClose:()=>r(null),children:[(0,A.jsx)(L,{disableSticky:!0,children:`Select safeguard action`}),(0,A.jsx)(l,{sx:R,onClick:()=>{i(`safeguards`,{props:{eventType:`form opened`,safeguardType:`featureEnvironment`}}),e(`featureEnvironment`),r(null)},children:(0,A.jsxs)(f,{children:[(0,A.jsx)(d,{variant:`body2`,children:`Disable environment`}),(0,A.jsx)(B,{variant:`caption`,children:`If your chosen metric crosses its threshold, this flag is turned off in this environment. Existing users stop seeing the flag immediately.`})]})}),(0,A.jsx)(a,{title:t?``:`Add a release plan to use this safeguard`,placement:`right`,arrow:!0,children:(0,A.jsx)(z,{children:(0,A.jsx)(l,{component:`div`,sx:R,disabled:!t,onClick:()=>{i(`safeguards`,{props:{eventType:`form opened`,safeguardType:`releasePlan`}}),e(`releasePlan`),r(null)},children:(0,A.jsxs)(f,{children:[(0,A.jsx)(d,{variant:`body2`,children:`Pause release plan automation`}),(0,A.jsx)(B,{variant:`caption`,children:`If your chosen metric crosses its threshold, automatic milestone progression stops. The current milestone keeps serving traffic.`})]})})})})]})]})},W=({projectId:e,featureId:t,environmentName:n,safeguardType:r,releasePlan:i,safeguard:a,onSafeguardChange:o})=>{let{setToastData:s,setToastApiError:c}=m(),{trackEvent:l}=_(),{addChange:u}=w(),{isChangeRequestConfigured:d}=v(e),{data:f,refetch:p}=b(e),{createOrUpdateReleasePlanSafeguard:g,deleteReleasePlanSafeguard:y,createOrUpdateFeatureEnvironmentSafeguard:x,deleteFeatureEnvironmentSafeguard:S}=M(),[C,T]=(0,k.useState)(!1),[E,D]=(0,k.useState)(!1),[O,A]=(0,k.useState)(!1),[j,N]=(0,k.useState)(null),[P,F]=(0,k.useState)(!1),I=d(n),L=r===`releasePlan`&&i?r=>g({projectId:e,featureName:t,environment:n,planId:i.id,body:r}):r=>x({projectId:e,featureName:t,environment:n,body:r}),R=r===`releasePlan`&&i?r=>y({projectId:e,featureName:t,environment:n,planId:i.id,safeguardId:r}):r=>S({projectId:e,featureName:t,environment:n,safeguardId:r}),z=async e=>{if(l(`safeguards`,{props:{eventType:`safeguard submitted`,safeguardType:r}}),I){N(e),A(!0);return}try{await L(e),s({type:`success`,text:`Safeguard added successfully`}),o()}catch(e){c(h(e))}},B=async()=>{if(j)try{if(r===`featureEnvironment`)await u(e,n,{feature:t,action:`changeFeatureEnvSafeguard`,payload:{safeguard:j}});else{if(!i)return;await u(e,n,{feature:t,action:`changeReleasePlanSafeguard`,payload:{planId:i.id,safeguard:j}})}await p(),s({type:`success`,text:`Added to draft`}),o()}catch(e){c(h(e))}finally{A(!1),N(null)}},V=()=>{a&&(I?D(!0):T(!0))},H=async()=>{if(!(!a||P)){F(!0);try{await R(a.id),s({type:`success`,text:`Safeguard deleted successfully`}),o()}catch(e){c(h(e))}finally{F(!1),T(!1)}}},U=async()=>{if(!(!a||P)){F(!0);try{if(r===`featureEnvironment`)await u(e,n,{feature:t,action:`deleteFeatureEnvSafeguard`,payload:{safeguardId:a.id}});else{if(!i)return;await u(e,n,{feature:t,action:`deleteReleasePlanSafeguard`,payload:{planId:i.id,safeguardId:a.id}})}await p(),s({type:`success`,text:`Added to draft`}),o()}catch(e){c(h(e))}finally{F(!1),D(!1)}}},W=e=>{let t=(e.action===`changeReleasePlanSafeguard`||e.action===`deleteReleasePlanSafeguard`)&&!!i&&e.payload?.planId===i.id,n=e.action===`changeFeatureEnvSafeguard`||e.action===`deleteFeatureEnvSafeguard`;return t||n};return{handleSubmit:z,handleDeleteRequest:V,pendingSafeguardAction:(0,k.useMemo)(()=>{if(!f)return null;for(let e of f){if(e.environment!==n)continue;let r=e.features.find(e=>e.name===t);if(!r)continue;let i=r.changes.find(W);if(i)return i.action}return null},[f,n,t,i?.id]),deleteDialog:{open:C,isDeleting:P,onConfirm:H,onClose:()=>{P||T(!1)}},deleteChangeRequestDialog:{open:E,isDeleting:P,onConfirm:U,onClose:()=>D(!1)},submitChangeRequestDialog:{open:O,data:j,onConfirm:B,onClose:()=>{A(!1),N(null)}}}},G=({safeguardType:e,releasePlan:t,safeguard:n,environmentName:r,featureId:i,onSafeguardChange:a,onCancel:o,headerAction:s})=>{let{handleSubmit:c,handleDeleteRequest:l,pendingSafeguardAction:u,deleteDialog:d,deleteChangeRequestDialog:f,submitChangeRequestDialog:p}=W({projectId:O(`projectId`),featureId:i,environmentName:r,safeguardType:e,releasePlan:t,safeguard:n,onSafeguardChange:a});return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(x,{safeguard:n,onSubmit:c,onCancel:o,onDelete:n?l:void 0,environment:r,featureId:i,badge:u===`deleteReleasePlanSafeguard`||u===`deleteFeatureEnvSafeguard`?(0,A.jsx)(E,{color:`error`,children:`Deleted in draft`}):u===`changeReleasePlanSafeguard`||u===`changeFeatureEnvSafeguard`?(0,A.jsx)(E,{color:`warning`,children:`Modified in draft`}):void 0,safeguardType:e,headerAction:s}),p.data&&(0,A.jsx)(j,{isOpen:p.open,onConfirm:p.onConfirm,onClose:()=>{p.onClose(),o()},safeguardData:p.data,environment:r,mode:n?`edit`:`create`,safeguardType:e}),n&&(0,A.jsx)(N,{open:d.open,onClose:d.onClose,onConfirm:d.onConfirm,isDeleting:d.isDeleting}),n&&(0,A.jsx)(C,{title:`Request changes`,open:f.open,secondaryButtonText:`Cancel`,onClose:f.onClose,primaryButtonText:`Add suggestion to draft`,onClick:f.onConfirm,disabledPrimaryButton:f.isDeleting,children:(0,A.jsxs)(`p`,{children:[(0,A.jsx)(`strong`,{children:`Remove`}),` safeguard`,t&&(0,A.jsxs)(A.Fragment,{children:[` `,`from release plan`,` `,(0,A.jsx)(`strong`,{children:t.name})]}),` `,`for `,(0,A.jsx)(`strong`,{children:i}),` in`,` `,(0,A.jsx)(`strong`,{children:r})]})})]})},K=({featureEnvSafeguard:e,releasePlan:t,environmentName:n,featureId:r,onSafeguardChange:i})=>{let a=t?.safeguards?.[0],[o,s]=(0,k.useState)(null),c=()=>{s(null),i()};return e||a?(0,A.jsxs)(A.Fragment,{children:[e&&(0,A.jsx)(P,{children:(0,A.jsx)(G,{safeguardType:`featureEnvironment`,safeguard:e,environmentName:n,featureId:r,onSafeguardChange:c,onCancel:()=>{},headerAction:(0,A.jsx)(H,{})})}),a&&(0,A.jsx)(P,{children:(0,A.jsx)(G,{safeguardType:`releasePlan`,releasePlan:t,safeguard:a,environmentName:n,featureId:r,onSafeguardChange:c,onCancel:()=>{},headerAction:(0,A.jsx)(H,{})})})]}):o===`featureEnvironment`?(0,A.jsx)(P,{children:(0,A.jsx)(G,{safeguardType:`featureEnvironment`,environmentName:n,featureId:r,onSafeguardChange:i,onCancel:()=>s(null)})}):o===`releasePlan`&&t?(0,A.jsx)(P,{children:(0,A.jsx)(G,{safeguardType:`releasePlan`,releasePlan:t,environmentName:n,featureId:r,onSafeguardChange:i,onCancel:()=>s(null)})}):(0,A.jsx)(U,{onSelect:s,releasePlan:t})};export{U as AddSafeguard,K as Safeguard,K as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{t as e}from"./jsx-runtime-BnvnyDTF.js";import{v as t}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{b as n,t as r}from"./TextField-oipjeg6n.js";import{t as i}from"./Alert-_bLyWbvx.js";import{r as a}from"./formatPath-j72gcKwy.js";import{
|
|
1
|
+
import{t as e}from"./jsx-runtime-BnvnyDTF.js";import{v as t}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{b as n,t as r}from"./TextField-oipjeg6n.js";import{t as i}from"./Alert-_bLyWbvx.js";import{r as a}from"./formatPath-j72gcKwy.js";import{Da as o}from"./index-C04TEs4k.js";import{a as s,f as c,i as l,m as u}from"./DialogWithAside-DzCSDyWo.js";var d=(e,t)=>{let n=e.split(`---
|
|
2
2
|
`)[3];return n?n.replaceAll(`<YOUR_FLAG>`,t):null},f=e(),p=()=>(0,f.jsx)(i,{severity:`error`,children:`This SDK is missing a flag usage example. Please let us know so we can add one!`}),m=({sdkName:e,feature:t})=>{let n=s[e],r=n?d(n,t):null;return r===null?(0,f.jsx)(p,{}):(0,f.jsx)(o,{components:{code:l},children:r})},h=new Set(u.map(e=>e.name)),g=t(`div`)(({theme:e})=>({minWidth:e.spacing(20),maxWidth:e.spacing(32.5)})),_=t(`li`)(({theme:e})=>({display:`flex`,alignItems:`center`,gap:e.spacing(1)})),v=t(`img`)(({theme:e})=>({width:e.spacing(2.5),height:e.spacing(2.5),flexShrink:0,borderRadius:e.shape.borderRadiusSmall,marginLeft:e.spacing(.5)})),y=t(`span`)({flex:1}),b=({value:e,onChange:t})=>{let i=c.map(e=>({...e,group:h.has(e.name)?`Backend SDKs`:`Frontend SDKs`})).sort((e,t)=>e.group.localeCompare(t.group)||e.name.localeCompare(t.name)),o=i.find(t=>t.name===e)?.icon;return(0,f.jsx)(g,{children:(0,f.jsx)(n,{disableClearable:!0,options:i,value:i.find(t=>t.name===e),groupBy:e=>e.group,getOptionLabel:e=>e.name,isOptionEqualToValue:(e,t)=>e.name===t.name,onChange:(e,n)=>{n?.name&&t(n.name)},renderOption:({key:e,...t},n)=>(0,f.jsxs)(_,{...t,children:[(0,f.jsx)(v,{src:a(n.icon),alt:``}),(0,f.jsx)(y,{children:n.name})]},e),renderInput:e=>(0,f.jsx)(r,{...e,label:`SDK`,size:`small`,slotProps:{...e.slotProps,input:{...e.slotProps?.input,startAdornment:o&&(0,f.jsx)(v,{src:a(o),alt:``})}}})})})};export{m as n,b as t};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{i as e,o as t,t as n}from"./react-GZhdek4G.js";import{f as r}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as i}from"./useTheme-CQqAmDLr.js";import{t as a}from"./jsx-runtime-BnvnyDTF.js";import{v as o}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{t as s}from"./Tooltip-BaILXXti.js";import{i as c}from"./CircularProgress-C_LUU3DK.js";import{r as ee}from"./Alert-_bLyWbvx.js";import{t as l}from"./Typography-BTdLWIUX.js";import{t as u}from"./Box-BQsxfFmC.js";import{t as d}from"./Button-CebB8EPB.js";import{Da as f,Fs as p,Is as m,Ps as te,Y as h,nt as ne,tc as g,tt as re,v as _}from"./index-C04TEs4k.js";import{t as v}from"./ReactJSONEditor-DeBI7JPg.js";import{a as y,c as b,d as x,f as S,i as ie,n as C,o as w,s as ae,t as T}from"./DialogWithAside-DzCSDyWo.js";import{n as E,t as D}from"./SelectSdk-Dr_pzQgX.js";import{n as O,t as k}from"./OnboardingProgress-Bp9sZ-ZM.js";var oe=e({FourRequests:()=>le,LongEmailTruncates:()=>de,SingleRequest:()=>ce,TenRequestsOnlyLatestFourShown:()=>ue,meta:()=>se}),A=a(),se={title:`Admin / AccessRequestsNotifications`,background:`application`},j=Date.parse(`2026-06-24T12:00:00Z`),M=e=>{let t=Date.now();return Array.from({length:e},(e,n)=>({id:`req-${t}-${n+1}`,email:`requester${n+1}@example.com`,requestedAt:new Date(j-n*864e5).toISOString()}))},ce=()=>(0,A.jsx)(_,{accessRequests:M(1),storageKey:`story:access-requests:single`}),le=()=>(0,A.jsx)(_,{accessRequests:M(4),storageKey:`story:access-requests:four`}),ue=()=>(0,A.jsx)(_,{accessRequests:M(10),maxVisible:4,storageKey:`story:access-requests:ten`}),de=()=>(0,A.jsx)(_,{accessRequests:[{id:`req-long`,email:`a-very-long-email-address-that-should-truncate@some-organization.example.com`,requestedAt:new Date(j).toISOString()}],storageKey:`story:access-requests:long-email`}),fe=e({Default:()=>F,WithLongContent:()=>I,meta:()=>pe}),N=t(n(),1),pe={title:`Common/DialogWithAside`,background:`application`},P=()=>(0,A.jsxs)(u,{sx:{p:3,display:`flex`,flexDirection:`column`,gap:2},children:[(0,A.jsx)(l,{variant:`body2`,sx:{fontWeight:`bold`},children:`Aside panel`}),(0,A.jsx)(l,{variant:`body2`,children:`This area is always 320 px wide and hidden below the md breakpoint. The close button in the header handles dismissal on all screen sizes.`})]}),F=()=>{let[e,t]=(0,N.useState)(!0);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(d,{variant:`contained`,onClick:()=>t(!0),children:`Open dialog`}),(0,A.jsx)(T,{open:e,onClose:()=>t(!1),title:`Dialog title`,aside:(0,A.jsx)(P,{}),children:(0,A.jsxs)(u,{sx:{p:3,display:`flex`,flexDirection:`column`,gap:2},children:[(0,A.jsx)(l,{variant:`body1`,sx:{fontWeight:`bold`},children:`Main content`}),(0,A.jsx)(l,{variant:`body2`,children:`Children are rendered in the scrollable left column.`})]})})]})},I=()=>{let[e,t]=(0,N.useState)(!1);return(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(d,{variant:`contained`,onClick:()=>t(!0),children:`Open dialog`}),(0,A.jsx)(T,{open:e,onClose:()=>t(!1),title:`Scrolling content`,aside:(0,A.jsx)(P,{}),children:(0,A.jsx)(u,{sx:{p:3,display:`flex`,flexDirection:`column`,gap:3},children:Array.from({length:12},(e,t)=>(0,A.jsxs)(u,{children:[(0,A.jsxs)(l,{variant:`body2`,sx:{fontWeight:`bold`,mb:.5},children:[`Section `,t+1]}),(0,A.jsx)(l,{variant:`body2`,children:`Content scrolls inside the left column while the aside and header stay fixed.`})]},t))})})]})},L=e({Default:()=>me,Empty:()=>be,InvalidJson:()=>ye,ReadOnly:()=>_e,WithStatusBar:()=>ge,WithValidationError:()=>ve,meta:()=>R}),R={title:`Common/ReactJSONEditor`},z={name:`example`,enabled:!0,value:42,tags:[`a`,`b`]},B=({initial:e})=>{let[t,n]=(0,N.useState)({text:e});return(0,A.jsx)(v,{content:t,onChange:e=>n(e)})},me=()=>(0,A.jsx)(B,{initial:JSON.stringify(z,void 0,2)}),he=()=>{let[e,t]=(0,N.useState)({text:JSON.stringify(z,void 0,2)});return(0,A.jsx)(v,{content:e,onChange:e=>t(e),statusBar:!0})},ge=()=>(0,A.jsx)(he,{}),_e=()=>(0,A.jsx)(v,{content:{json:z},readOnly:!0}),ve=()=>(0,A.jsx)(v,{content:{text:`{ "key": "value" }`},validationError:`Custom validation error: value must be a number`}),ye=()=>(0,A.jsx)(B,{initial:`{ invalid json }`}),be=()=>(0,A.jsx)(B,{initial:``}),xe=e({Android:()=>Ie,DotNet:()=>Te,Flutter:()=>Le,Go:()=>we,Java:()=>ke,JavaScript:()=>je,MissingSnippet:()=>Re,NodeJs:()=>Ce,Php:()=>De,Python:()=>Ae,React:()=>Me,Ruby:()=>Ee,Rust:()=>Oe,Svelte:()=>Pe,Swift:()=>Fe,Vue:()=>Ne,meta:()=>Se}),Se={title:`Onboarding/ImplementFlagDialog/FlagUsageSnippet`,background:`paper`},V=`my-feature-flag`,Ce=()=>(0,A.jsx)(E,{sdkName:`Node.js`,feature:V}),we=()=>(0,A.jsx)(E,{sdkName:`Go`,feature:V}),Te=()=>(0,A.jsx)(E,{sdkName:`.NET`,feature:V}),Ee=()=>(0,A.jsx)(E,{sdkName:`Ruby`,feature:V}),De=()=>(0,A.jsx)(E,{sdkName:`PHP`,feature:V}),Oe=()=>(0,A.jsx)(E,{sdkName:`Rust`,feature:V}),ke=()=>(0,A.jsx)(E,{sdkName:`Java`,feature:V}),Ae=()=>(0,A.jsx)(E,{sdkName:`Python`,feature:V}),je=()=>(0,A.jsx)(E,{sdkName:`JavaScript`,feature:V}),Me=()=>(0,A.jsx)(E,{sdkName:`React`,feature:V}),Ne=()=>(0,A.jsx)(E,{sdkName:`Vue`,feature:V}),Pe=()=>(0,A.jsx)(E,{sdkName:`Svelte`,feature:V}),Fe=()=>(0,A.jsx)(E,{sdkName:`Swift`,feature:V}),Ie=()=>(0,A.jsx)(E,{sdkName:`Android`,feature:V}),Le=()=>(0,A.jsx)(E,{sdkName:`Flutter`,feature:V}),Re=()=>(0,A.jsx)(E,{sdkName:`Unknown`,feature:`my-feature-flag`}),ze=e({Default:()=>He,meta:()=>Be}),Be={title:`Onboarding/ImplementFlagDialog/SelectSdk`,background:`paper`},Ve=({initial:e})=>{let[t,n]=(0,N.useState)(e);return(0,A.jsx)(D,{value:t,onChange:n})},He=()=>(0,A.jsx)(Ve,{initial:S[0].name}),Ue=e({Default:()=>Ge,meta:()=>We}),We={title:`Menu/Header/HelpResources`},Ge=()=>(0,A.jsx)(h,{}),Ke=e({Android:()=>ut,DotNet:()=>$e,Flutter:()=>dt,Go:()=>Qe,Java:()=>rt,JavaScript:()=>at,NextJs:()=>ft,NodeJs:()=>Ze,Php:()=>tt,Python:()=>it,ReactNative:()=>pt,ReactSdk:()=>ot,Ruby:()=>et,Rust:()=>nt,Svelte:()=>ct,Swift:()=>lt,Vue:()=>st,meta:()=>qe}),qe={title:`Onboarding/CodeRenderer`,background:`paper`},Je=`my-feature-flag`,Ye=`my-api-token`,Xe=`https://us.app.unleash-hosted.com/ushosted/api`,H=e=>{let[t]=(y[e]||``).replace(`<YOUR_API_TOKEN>`,Ye).replace(`<YOUR_API_URL>`,Xe).replaceAll(`<YOUR_FLAG>`,Je).split(`---
|
|
2
|
+
`);return(0,A.jsx)(f,{components:{code:ie},children:t})},Ze=()=>H(`Node.js`),Qe=()=>H(`Go`),$e=()=>H(`.NET`),et=()=>H(`Ruby`),tt=()=>H(`PHP`),nt=()=>H(`Rust`),rt=()=>H(`Java`),it=()=>H(`Python`),at=()=>H(`JavaScript`),ot=()=>H(`React`),st=()=>H(`Vue`),ct=()=>H(`Svelte`),lt=()=>H(`Swift`),ut=()=>H(`Android`),dt=()=>H(`Flutter`),ft=()=>H(`Next.js`),pt=()=>H(`React Native`),mt=e({Default:()=>gt,meta:()=>ht}),ht={title:`Onboarding / GenerateApiKey`,background:`paper`},gt=()=>(0,A.jsx)(ae,{projectId:`my-project`,environments:[`production`,`development`,`staging`],sdk:{type:`client`},onApiKeyChange:e=>console.log(`API key changed:`,e),onNext:()=>console.log(`Next clicked`)}),_t=e({Default:()=>yt,LongKey:()=>bt,NoKey:()=>xt,meta:()=>vt}),vt={title:`Onboarding / GenerateApiKeySummary`,background:`paper`},yt=()=>(0,A.jsx)(w,{apiKey:`my-project:production.0efcb2447a1b9f417c90afea8415dd867f1998bea7db9c13714554f3`}),bt=()=>(0,A.jsx)(w,{apiKey:`my-very-long-project-name:some-environment-name.averylongsecretkeythatshouldgettruncated12345`}),xt=()=>(0,A.jsx)(w,{}),St=e({Default:()=>wt,meta:()=>Ct}),Ct={title:`Onboarding / TokenExplanation`,background:`paper`},wt=()=>(0,A.jsx)(b,{project:`my-project-here`,environment:`production`,secret:`0efcb2447a1b9f417c90afea8415dd867f1998bea7db9c13714554f3`}),Tt=e({Default:()=>Dt,WithSelection:()=>Ot,meta:()=>Et}),Et={title:`Onboarding / SelectSdk`,background:`paper`},Dt=()=>(0,A.jsx)(x,{onSelect:e=>console.log(`Selected SDK:`,e)}),Ot=()=>(0,A.jsx)(x,{sdk:{name:`Node.js`,type:`client`},onSelect:e=>console.log(`Selected SDK:`,e)}),kt=e({Default:()=>Mt,meta:()=>At}),At={title:`Onboarding/SdkEvaluationStatus`,background:`paper`},jt=o(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(4),maxWidth:600})),U=o(`div`)(({theme:e})=>({display:`flex`,flexDirection:`column`,gap:e.spacing(1)})),W={connectedTitle:`We received metrics from your application`,connectedBody:`Your SDK is connected and evaluating flags.`,waitingTitle:`Waiting for SDK data...`,waitingBody:`Run your app and evaluate your flag. This step completes on its own.`},G={connectedTitle:`Got the first evaluation!`,connectedBody:`Your flag is wired up. Finish setup to close this dialog.`,waitingTitle:`Listening for the first evaluation…`,waitingBody:`Run your app and evaluate your flag.`},Mt=()=>(0,A.jsxs)(jt,{children:[(0,A.jsxs)(U,{children:[(0,A.jsx)(l,{variant:`subtitle2`,children:`ConfigureSdk — waiting`}),(0,A.jsx)(C,{sdkConnected:!1,...W})]}),(0,A.jsxs)(U,{children:[(0,A.jsx)(l,{variant:`subtitle2`,children:`ConfigureSdk — waiting with troubleshooting`}),(0,A.jsx)(C,{sdkConnected:!1,showTroubleshooting:!0,troubleshootingText:`Not seeing evaluations after ~30s? Make sure your app has started and that the client was initialized with the API key from step 2.`,...W})]}),(0,A.jsxs)(U,{children:[(0,A.jsx)(l,{variant:`subtitle2`,children:`ConfigureSdk — connected`}),(0,A.jsx)(C,{sdkConnected:!0,...W})]}),(0,A.jsxs)(U,{children:[(0,A.jsx)(l,{variant:`subtitle2`,children:`ImplementFlagDialog — waiting`}),(0,A.jsx)(C,{sdkConnected:!1,...G})]}),(0,A.jsxs)(U,{children:[(0,A.jsx)(l,{variant:`subtitle2`,children:`ImplementFlagDialog — evaluated`}),(0,A.jsx)(C,{sdkConnected:!0,...G})]})]}),Nt=e({Completed:()=>Rt,FirstStep:()=>It,JustStarted:()=>Ft,SecondStep:()=>Lt,meta:()=>Pt}),Pt={title:`Onboarding / OnboardingProgress`,background:`paper`},Ft=()=>(0,A.jsx)(k,{step:0,maxSteps:3,onDismiss:()=>{}}),It=()=>(0,A.jsx)(k,{step:1,maxSteps:3,onDismiss:()=>{}}),Lt=()=>(0,A.jsx)(k,{step:2,maxSteps:3,onDismiss:()=>{}}),Rt=()=>(0,A.jsx)(k,{step:3,maxSteps:3,onDismiss:()=>{}}),zt=e({Active:()=>Ht,Disabled:()=>Vt,Done:()=>Ut,meta:()=>Bt}),Bt={title:`Onboarding / ConnectSdkStep`,background:`paper`},Vt=()=>(0,A.jsx)(O,{projectId:`my-project`,setConnectSdkOpen:(...e)=>{console.log(`Open Connect SDK`,e)},state:`disabled`}),Ht=()=>(0,A.jsx)(O,{projectId:`my-project`,setConnectSdkOpen:(...e)=>{console.log(`Open Connect SDK`,e)},state:`active`}),Ut=()=>(0,A.jsx)(O,{projectId:`my-project`,setConnectSdkOpen:(...e)=>{console.log(`Open Connect SDK`,e)},state:`done`}),Wt=e({AllColors:()=>Zt,meta:()=>Gt}),Gt={title:`Theme / Colors`,background:`application`},Kt=new Set([`mode`,`augmentColor`,`getContrastText`,`contrastThreshold`,`tonalOffset`]);function K(e,t=``){if(typeof e!=`object`||!e)return[];let n=[];for(let[r,i]of Object.entries(e)){if(Kt.has(r)||typeof i==`function`)continue;let e=t?`${t}.${r}`:r;typeof i==`string`&&qt(i)?n.push({path:e,value:i}):Array.isArray(i)&&i.length>0&&i.every(e=>typeof e==`string`)?n.push({path:e,values:i}):typeof i==`object`&&i&&!Array.isArray(i)&&n.push(...K(i,e))}return n}function qt(e){return e.startsWith(`#`)||e.startsWith(`rgb`)||e.startsWith(`hsl`)}function Jt(e){let t=new Map;for(let n of e){let e=n.path.split(`.`)[0];t.has(e)||t.set(e,[]),t.get(e).push(n)}return Array.from(t.entries())}var q=({color:e,size:t=36})=>(0,A.jsx)(u,{title:e,sx:{width:t,height:t,background:e,borderRadius:`4px`,border:`1px solid rgba(128,128,128,0.2)`,flexShrink:0}}),Yt=({path:e,value:t})=>(0,A.jsxs)(u,{sx:{display:`flex`,alignItems:`center`,gap:1.5,py:.5},children:[(0,A.jsx)(q,{color:t}),(0,A.jsxs)(u,{sx:{flex:1,minWidth:0},children:[(0,A.jsx)(l,{component:`div`,sx:{fontFamily:`monospace`,fontSize:`0.7rem`,color:`text.secondary`,wordBreak:`break-all`,lineHeight:1.4},children:e}),(0,A.jsx)(l,{component:`div`,sx:{fontFamily:`monospace`,fontSize:`0.65rem`,color:`text.disabled`,lineHeight:1.4},children:t})]})]}),Xt=({path:e,values:t})=>(0,A.jsxs)(u,{sx:{py:.75},children:[(0,A.jsxs)(l,{component:`div`,sx:{fontFamily:`monospace`,fontSize:`0.7rem`,color:`text.secondary`,mb:.5},children:[e,` (`,t.length,`)`]}),(0,A.jsx)(u,{sx:{display:`flex`,flexWrap:`wrap`,gap:.5},children:t.map((e,t)=>(0,A.jsx)(q,{color:e,size:24},t))})]}),J=({theme:e,label:t})=>{let n=Jt(K(e.palette));return(0,A.jsx)(g,{theme:e,children:(0,A.jsxs)(u,{sx:{flex:1,minWidth:0,bgcolor:`background.paper`,borderRadius:1,p:2},children:[(0,A.jsx)(l,{variant:`subtitle1`,sx:{fontWeight:700,mb:2,pb:1,borderBottom:`2px solid`,borderColor:`divider`,color:`text.primary`},children:t}),n.map(([e,t])=>(0,A.jsxs)(u,{sx:{mb:2.5},children:[(0,A.jsx)(l,{component:`div`,sx:{fontSize:`0.6rem`,fontWeight:700,letterSpacing:`0.1em`,textTransform:`uppercase`,color:`text.disabled`,mb:.5,pb:.25,borderBottom:`1px solid`,borderColor:`divider`},children:e}),t.map(e=>`value`in e?(0,A.jsx)(Yt,{path:e.path,value:e.value},e.path):(0,A.jsx)(Xt,{path:e.path,values:e.values},e.path))]},e))]})})},Zt=()=>(0,A.jsxs)(u,{sx:{display:`flex`,gap:2,alignItems:`flex-start`},children:[(0,A.jsx)(J,{theme:m,label:`Light`}),(0,A.jsx)(J,{theme:p,label:`Dark`})]}),Qt=c((0,A.jsx)(`path`,{d:`M17 7h-4v2h4c1.65 0 3 1.35 3 3s-1.35 3-3 3h-4v2h4c2.76 0 5-2.24 5-5s-2.24-5-5-5m-6 8H7c-1.65 0-3-1.35-3-3s1.35-3 3-3h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4zm-3-4h8v2H8z`}),`LinkOutlined`),$t=Object.assign({"../admin/users/AccessRequestsNotifications/NotificationStack/NotificationStack.story.tsx":oe,"../common/DialogWithAside/DialogWithAside.story.tsx":fe,"../common/ReactJSONEditor/ReactJSONEditor.story.tsx":L,"../feature/FeatureView/FeatureOverview/ImplementFlagDialog/FlagUsageSnippet.story.tsx":xe,"../feature/FeatureView/FeatureOverview/ImplementFlagDialog/SelectSdk.story.tsx":ze,"../menu/Header/HelpResources/HelpResources.story.tsx":Ue,"../onboarding/dialog/CodeRenderer.story.tsx":Ke,"../onboarding/dialog/ConnectSdkDialog/GenerateApiKey/GenerateApiKey.story.tsx":mt,"../onboarding/dialog/ConnectSdkDialog/GenerateApiKey/GenerateApiKeySummary.story.tsx":_t,"../onboarding/dialog/ConnectSdkDialog/GenerateApiKey/TokenExplanation.story.tsx":St,"../onboarding/dialog/ConnectSdkDialog/SelectSdk/SelectSdk.story.tsx":Tt,"../onboarding/dialog/SdkEvaluationStatus.story.tsx":kt,"../onboarding/flow/OnboardingProgress.story.tsx":Nt,"../onboarding/flow/steps/ConnectSdkStep.story.tsx":zt,"../../themes/ThemeColors.story.tsx":Wt});function en(){let e=[];for(let[t,n]of Object.entries($t)){if(!n.meta)continue;let r=Object.entries(n).filter(([e,t])=>e!==`meta`&&typeof t==`function`).map(([e,t])=>({name:e,component:t}));if(r.length===0)continue;let i=n.meta.title.split(`/`).map(e=>e.trim()),a=i.pop()??n.meta.title,o=i.length>0?i.join(` / `):`General`;e.push({moduleKey:t,meta:n.meta,category:o,name:a,stories:r})}return e.sort((e,t)=>e.category.localeCompare(t.category)||e.name.localeCompare(t.name))}var Y=en(),X=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-|-$/g,``),Z=e=>e.toLowerCase().replace(/[^a-z0-9]+/g,`-`),Q=e=>`${X(e.category)}/${X(e.name)}`,$=[{key:`paper`,label:`Paper`},{key:`elevation1`,label:`Elevation 1`},{key:`elevation2`,label:`Elevation 2`},{key:`application`,label:`Application`},{key:`sidebar`,label:`Sidebar`}],tn=o(`div`)({display:`flex`,height:`100vh`,overflow:`hidden`}),nn=o(`nav`)(({theme:e})=>({width:220,flexShrink:0,borderRight:`1px solid ${e.palette.divider}`,display:`flex`,flexDirection:`column`,overflow:`hidden`,background:e.palette.background.paper})),rn=o(`div`)(({theme:e})=>({display:`flex`,alignItems:`center`,justifyContent:`space-between`,padding:e.spacing(1.5,2),borderBottom:`1px solid ${e.palette.divider}`,flexShrink:0})),an=o(`div`)({flex:1,overflowY:`auto`,padding:`8px 4px`}),on=o(`div`)(({theme:e})=>({fontSize:10,fontWeight:700,letterSpacing:`0.1em`,textTransform:`uppercase`,color:e.palette.text.disabled,padding:e.spacing(1.5,1.5,.5)})),sn=o(`button`,{shouldForwardProp:e=>e!==`isSelected`})(({theme:e,isSelected:t})=>({display:`block`,width:`100%`,textAlign:`left`,border:`none`,borderRadius:e.shape.borderRadius,padding:e.spacing(.75,1.5),cursor:`pointer`,fontSize:13,background:t?e.palette.action.selected:`transparent`,color:t?e.palette.primary.main:e.palette.text.primary,fontWeight:t?500:400,"&:hover":{background:t?e.palette.action.selected:e.palette.action.hover}})),cn=o(`a`,{shouldForwardProp:e=>e!==`isActive`})(({theme:e,isActive:t})=>({display:`block`,padding:e.spacing(.5,1.5,.5,3.5),fontSize:12,color:t?e.palette.primary.main:e.palette.text.secondary,fontWeight:t?500:400,textDecoration:`none`,borderRadius:e.shape.borderRadius,background:t?e.palette.action.selected:`transparent`,"&:hover":{color:t?e.palette.primary.main:e.palette.text.primary,background:e.palette.action.hover}})),ln=o(`main`)({flex:1,overflow:`hidden`,display:`flex`,flexDirection:`column`}),un=o(`div`)(({theme:e})=>({padding:e.spacing(1.5,3),borderBottom:`1px solid ${e.palette.divider}`,background:e.palette.background.paper,display:`flex`,alignItems:`center`,gap:e.spacing(1),flexShrink:0})),dn=o(`div`)(({theme:e})=>({flex:1,overflow:`auto`,padding:e.spacing(4)})),fn=o(`div`)(({theme:e})=>({marginBottom:e.spacing(6)})),pn=o(`div`,{shouldForwardProp:e=>e!==`isActive`})(({theme:e,isActive:t})=>({fontSize:12,fontWeight:500,fontFamily:`monospace`,color:t?e.palette.primary.main:e.palette.text.secondary,marginBottom:e.spacing(1.5),cursor:`pointer`,display:`flex`,alignItems:`center`,gap:e.spacing(.75),"& .anchor-icon":{fontSize:14,opacity:+!!t,transition:`opacity 0.15s`},"&:hover .anchor-icon":{opacity:1}})),mn=o(`div`)(({theme:e})=>({padding:e.spacing(4),borderRadius:e.shape.borderRadius,border:`1px solid ${e.palette.divider}`,width:`100%`,boxSizing:`border-box`})),hn=o(`button`,{shouldForwardProp:e=>e!==`isSelected`})(({theme:e,isSelected:t})=>({width:20,height:20,borderRadius:e.shape.borderRadius,border:`none`,cursor:`pointer`,padding:0,outline:t?`3px solid ${e.palette.primary.main}`:`1px solid ${e.palette.primary.main}`,outlineOffset:+!!t,flexShrink:0})),gn=()=>{let{themeMode:e,onSetThemeMode:t}=te(),n=i(),[a,o]=r(),[c,d]=(0,N.useState)(Y[0]?.meta.background??`application`),f=(0,N.useRef)(null),p=a.get(`c`),m=a.get(`s`),h=(p?Y.find(e=>Q(e)===p):null)??Y[0],g=m,_=Y.reduce((e,t)=>(e[t.category]||(e[t.category]=[]),e[t.category].push(t),e),{});(0,N.useEffect)(()=>{d(h?.meta.background??`application`)},[h]),(0,N.useEffect)(()=>{if(!m){f.current?.scrollTo({top:0});return}requestAnimationFrame(()=>{let e=document.getElementById(m);if(e&&f.current){let t=f.current.getBoundingClientRect().top,n=e.getBoundingClientRect().top;f.current.scrollTo({top:f.current.scrollTop+n-t-32,behavior:`smooth`})}})},[m]);let v=e=>{o({c:Q(e)})},y=(e,t,n)=>{e.preventDefault(),o({c:Q(t),s:Z(n)})},b=e=>{let t=Z(e),n=new URLSearchParams({c:Q(h),s:t});o(n),navigator.clipboard.writeText(`${window.location.origin}${window.location.pathname}?${n}`).catch(e=>{console.error(`Failed to copy link to clipboard`,e)})},x=n.palette.background[c];return(0,A.jsxs)(tn,{children:[(0,A.jsxs)(nn,{children:[(0,A.jsxs)(rn,{children:[(0,A.jsx)(l,{variant:`body2`,sx:{fontWeight:700,fontFamily:`monospace`},children:`_stories`}),(0,A.jsx)(s,{title:`${e===`light`?`Dark`:`Light`} mode`,children:(0,A.jsx)(ee,{size:`small`,onClick:t,children:e===`light`?(0,A.jsx)(ne,{sx:{fontSize:16}}):(0,A.jsx)(re,{sx:{fontSize:16}})})})]}),(0,A.jsx)(an,{children:Object.entries(_).map(([e,t])=>(0,A.jsxs)(`div`,{children:[(0,A.jsx)(on,{children:e}),t.map(e=>(0,A.jsxs)(`div`,{children:[(0,A.jsx)(sn,{isSelected:e.moduleKey===h?.moduleKey,onClick:()=>v(e),children:e.name}),e.moduleKey===h?.moduleKey&&e.stories.map(t=>(0,A.jsx)(cn,{href:`?c=${Q(e)}&s=${Z(t.name)}`,isActive:g===Z(t.name),onClick:n=>y(n,e,t.name),children:t.name},t.name))]},e.moduleKey))]},e))})]}),(0,A.jsx)(ln,{children:h?(0,A.jsxs)(A.Fragment,{children:[(0,A.jsxs)(un,{children:[(0,A.jsx)(l,{variant:`body2`,sx:{color:`text.disabled`,fontSize:12},children:h.category}),(0,A.jsx)(l,{variant:`body2`,sx:{color:`text.disabled`,fontSize:12},children:`/`}),(0,A.jsx)(l,{variant:`body2`,sx:{fontWeight:600,fontSize:14},children:h.name}),(0,A.jsxs)(u,{sx:{ml:`auto`,display:`flex`,alignItems:`center`,gap:1},children:[(0,A.jsx)(l,{variant:`caption`,sx:{color:`text.disabled`,mr:.25},children:`Background:`}),$.map(({key:e,label:t})=>(0,A.jsx)(s,{title:t,arrow:!0,children:(0,A.jsx)(hn,{isSelected:c===e,onClick:()=>d(e),style:{background:n.palette.background[e]}})},e))]})]}),(0,A.jsx)(dn,{ref:f,sx:{background:x},children:h.stories.map(e=>{let t=e.component;return(0,A.jsxs)(fn,{children:[(0,A.jsxs)(pn,{id:Z(e.name),isActive:g===Z(e.name),onClick:()=>b(e.name),children:[e.name,(0,A.jsx)(Qt,{className:`anchor-icon`})]}),(0,A.jsx)(mn,{children:(0,A.jsx)(t,{})})]},e.name)})})]}):(0,A.jsx)(u,{sx:{p:4},children:(0,A.jsxs)(l,{sx:{color:`text.secondary`},children:[`No stories found. Create a`,` `,(0,A.jsx)(u,{component:`code`,sx:{fontFamily:`monospace`},children:`*.story.tsx`}),` `,`file anywhere under`,` `,(0,A.jsx)(u,{component:`code`,sx:{fontFamily:`monospace`},children:`frontend/src/`}),` `,`to get started.`]})})})]})};export{gn as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{o as a}from"./TooltipResolver-4A1YhwBy.js";import{t as o,u as s,y as c}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as l}from"./formatPath-j72gcKwy.js";import{t as u}from"./useUiConfig-DbVjTDpE.js";import{
|
|
1
|
+
import{o as e,t}from"./react-GZhdek4G.js";import{r as n}from"./chunk-QUQL4437-Dr42NpoL.js";import{t as r}from"./jsx-runtime-BnvnyDTF.js";import{v as i}from"./createSimplePaletteValueFilter-BRAMrHWJ.js";import{o as a}from"./TooltipResolver-4A1YhwBy.js";import{t as o,u as s,y as c}from"./httpErrorResponseHandler-FMtt7Zqh.js";import{n as l}from"./formatPath-j72gcKwy.js";import{t as u}from"./useUiConfig-DbVjTDpE.js";import{Jo as d,Ko as f,ws as p}from"./index-C04TEs4k.js";var m=r(),h=i(n)(({theme:e})=>({textDecoration:`none`,color:e.palette.primary.main,fontWeight:e.fontWeight.bold})),g=({isOpen:e,onClose:t,features:n,project:r})=>(0,m.jsxs)(d,{title:`You can't archive a feature that other features depend on`,open:e,primaryButtonText:`OK`,onClick:t,children:[(0,m.jsx)(`p`,{children:`The following features depend on your feature:`}),(0,m.jsx)(`ul`,{children:n.map(e=>(0,m.jsx)(`li`,{children:(0,m.jsx)(h,{to:`/projects/${r}/features/${e}`,target:`_blank`,rel:`noopener noreferrer`,children:e})},e))})]}),_=e(t(),1),v=l(`api/admin/client-metrics/features`),y=(e,t)=>{let n=l(`api/admin/client-metrics/features/${e}/raw?hoursBack=${t}`),{data:r,error:i}=s(n,()=>b(n)),a=(0,_.useCallback)(()=>{c(v).catch(console.warn)},[]);return{featureMetrics:r?.data,loading:!i&&!r,refetchFeatureMetrics:a,error:i}},b=e=>fetch(e).then(o(`Features`)).then(e=>e.json()).then(),x=({hoursBack:e,setHoursBack:t,label:n=`Period`})=>{let{trackEvent:r}=a(),i=e=>{t(Number.parseInt(e,10)),r(`feature-metrics`,{props:{eventType:`change-period`,hoursBack:e}})},{isEnterprise:o}=u(),s=p(`extendedUsageMetrics`),c=o()&&s?[...S,...C]:S,l=c.map(e=>Number(e.key)).includes(e)?e:48;return(0,_.useEffect)(()=>{e!==l&&t(l)},[e]),(0,m.jsx)(`div`,{children:(0,m.jsx)(f,{name:`feature-metrics-period`,label:n,id:`feature-metrics-period`,options:c,value:String(l),onChange:i,fullWidth:!0})})},S=[{key:`1`,label:`Last hour`},{key:`24`,label:`Last 24 hours`},{key:`48`,label:`Last 48 hours`}],C=[{key:`168`,label:`Last 7 days`},{key:`720`,label:`Last 30 days`},{key:`2160`,label:`Last 90 days`}],w=e=>{let t=new Map;return e.forEach(e=>{let n=t.get(e.timestamp);if(n||(n={...e,yes:0,no:0,variants:{}},t.set(e.timestamp,n)),n.yes+=e.yes,n.no+=e.no,e.variants){n.variants=n.variants||{};for(let[t,r]of Object.entries(e.variants))n.variants[t]=(n.variants[t]||0)+r}}),Array.from(t.values()).map(e=>({...e,variants:e.variants&&Object.keys(e.variants).length===0?void 0:e.variants}))};export{g as i,x as n,y as r,w as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{An as e,Cn as t,Dn as n,Jt as r,Mn as i,Nn as a,On as o,Sn as s,Wt as c,Xt as l,Yt as u,an as d,bn as f,cn as p,dn as m,fn as h,gn as g,hn as _,jn as v,kn as y,ln as b,mn as ee,on as x,pn as te,sn as S,un as ne,vn as re,wn as C,yn as w}from"./index-C04TEs4k.js";var ie={modes:{point(e,t){return T(e,t,{intersect:!0})},nearest(e,t,n){return ce(e,t,n)},x(e,t,n){return T(e,t,{intersect:n.intersect,axis:`x`})},y(e,t,n){return T(e,t,{intersect:n.intersect,axis:`y`})}}};function ae(e,t,n){return(ie.modes[n.mode]||ie.modes.nearest)(e,t,n)}function oe(e,t,n){return n!==`x`&&n!==`y`?e.inRange(t.x,t.y,`x`,!0)||e.inRange(t.x,t.y,`y`,!0):e.inRange(t.x,t.y,n,!0)}function se(e,t,n){return n===`x`?{x:e.x,y:t.y}:n===`y`?{x:t.x,y:e.y}:t}function T(e,t,n){return e.filter(e=>n.intersect?e.inRange(t.x,t.y):oe(e,t,n.axis))}function ce(e,t,n){let r=1/0;return T(e,t,n).reduce((e,i)=>{let a=g(t,se(t,i.getCenterPoint(),n.axis));return a<r?(e=[i],r=a):a===r&&e.push(i),e},[]).sort((e,t)=>e._index-t._index).slice(0,1)}function E(e,t,n){let r=Math.cos(n),i=Math.sin(n),a=t.x,o=t.y;return{x:a+r*(e.x-a)-i*(e.y-o),y:o+i*(e.x-a)+r*(e.y-o)}}var le=(e,t)=>t>e||e.length>t.length&&e.slice(0,t.length)===t,D=.001,O=(e,t,n)=>Math.min(n,Math.max(t,e)),ue=(e,t)=>e.value>=e.start-t&&e.value<=e.end+t;function de(e,t,n){for(let r of Object.keys(e))e[r]=O(e[r],t,n);return e}function fe(e,t,n,r){return!e||!t||n<=0?!1:(e.x-t.x)**2+(e.y-t.y)**2<=(n+r)**2}function pe(e,{x:t,y:n,x2:r,y2:i},a,{borderWidth:o,hitTolerance:s}){let c=(o+s)/2,l=e.x>=t-c-D&&e.x<=r+c+D,u=e.y>=n-c-D&&e.y<=i+c+D;return a===`x`?l:(a===`y`||l)&&u}function me(t,{rect:n,center:r},i,{rotation:a,borderWidth:o,hitTolerance:s}){return pe(E(t,r,e(-a)),n,i,{borderWidth:o,hitTolerance:s})}function k(e,t){let{centerX:n,centerY:r}=e.getProps([`centerX`,`centerY`],t);return{x:n,y:r}}function he(e,t,n,r=!0){let i=n.split(`.`),a=0;for(let o of t.split(`.`)){let s=i[a++];if(parseInt(o,10)<parseInt(s,10))break;if(le(s,o)){if(r)throw Error(`${e} v${n} is not supported. v${t} or newer is required.`);return!1}}return!0}var ge=e=>typeof e==`string`&&e.endsWith(`%`),_e=e=>parseFloat(e)/100,ve=e=>O(_e(e),0,1),A=(e,t)=>({x:e,y:t,x2:e,y2:t,width:0,height:0}),ye={box:e=>A(e.centerX,e.centerY),doughnutLabel:e=>A(e.centerX,e.centerY),ellipse:e=>({centerX:e.centerX,centerY:e.centerX,radius:0,width:0,height:0}),label:e=>A(e.centerX,e.centerY),line:e=>A(e.x,e.y),point:e=>({centerX:e.centerX,centerY:e.centerY,radius:0,width:0,height:0}),polygon:e=>A(e.centerX,e.centerY)};function be(e,t){return t===`start`?0:t===`end`?e:ge(t)?ve(t)*e:e/2}function j(e,t,n=!0){return typeof t==`number`?t:ge(t)?(n?ve(t):_e(t))*e:e}function xe(e,t){let{x:n,width:r}=e,i=t.textAlign;return i===`center`?n+r/2:i===`end`||i===`right`?n+r:n}function Se(e,t,{borderWidth:n,position:r,xAdjust:i,yAdjust:a},o){let s=C(o),c=t.width+(s?o.width:0)+n,l=t.height+(s?o.height:0)+n,u=Ce(r),d=De(e.x,c,i,u.x),f=De(e.y,l,a,u.y);return{x:d,y:f,x2:d+c,y2:f+l,width:c,height:l,centerX:d+c/2,centerY:f+l/2}}function Ce(e,t=`center`){return C(e)?{x:a(e.x,t),y:a(e.y,t)}:(e=a(e,t),{x:e,y:e})}var we=(e,t)=>e&&e.autoFit&&t<1;function Te(e,t){let n=e.font,r=w(n)?n:[n];return we(e,t)?r.map(function(e){let n=o(e);return n.size=Math.floor(e.size*t),n.lineHeight=e.lineHeight,o(n)}):r.map(e=>o(e))}function Ee(e){return e&&(_(e.xValue)||_(e.yValue))}function De(e,t,n=0,r){return e-be(t,r)+n}function M(e,t,n){let r=n.init;if(r)return r===!0?ke(t,n):Ae(e,t,n)}function Oe(e,t,n){let r=!1;return t.forEach(t=>{f(e[t])?(r=!0,n[t]=e[t]):_(n[t])&&delete n[t]}),r}function ke(e,t){return ye[t.type||`line`](e)}function Ae(e,t,n){let r=h(n.init,[{chart:e,properties:t,options:n}]);if(r===!0)return ke(t,n);if(C(r))return r}var je=new Map,Me=e=>isNaN(e)||e<=0,Ne=e=>e.reduce(function(e,t){return e+=t.string,e},``);function N(e){if(e&&typeof e==`object`){let t=e.toString();return t===`[object HTMLImageElement]`||t===`[object HTMLCanvasElement]`}}function P(t,{x:n,y:r},i){i&&(t.translate(n,r),t.rotate(e(i)),t.translate(-n,-r))}function F(e,t){if(t&&t.borderWidth)return e.lineCap=t.borderCapStyle||`butt`,e.setLineDash(t.borderDash),e.lineDashOffset=t.borderDashOffset,e.lineJoin=t.borderJoinStyle||`miter`,e.lineWidth=t.borderWidth,e.strokeStyle=t.borderColor,!0}function I(e,t){e.shadowColor=t.backgroundShadowColor,e.shadowBlur=t.shadowBlur,e.shadowOffsetX=t.shadowOffsetX,e.shadowOffsetY=t.shadowOffsetY}function L(e,t){let n=t.content;if(N(n))return{width:j(n.width,t.width),height:j(n.height,t.height)};let r=Te(t),i=t.textStrokeWidth,a=w(n)?n:[n],o=a.join()+Ne(r)+i+(e._measureText?`-spriting`:``);return je.has(o)||je.set(o,ze(e,a,r,i)),je.get(o)}function Pe(e,t,n){let{x:r,y:i,width:a,height:o}=t;e.save(),I(e,n);let s=F(e,n);e.fillStyle=n.backgroundColor,e.beginPath(),m(e,{x:r,y:i,w:a,h:o,radius:de(v(n.borderRadius),0,Math.min(a,o)/2)}),e.closePath(),e.fill(),s&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore()}function Fe(e,t,n,r){let i=n.content;if(N(i)){e.save(),e.globalAlpha=He(n.opacity,i.style.opacity),e.drawImage(i,t.x,t.y,t.width,t.height),e.restore();return}let a=w(i)?i:[i],o=Te(n,r),s=n.color,c=w(s)?s:[s],l=xe(t,n),u=t.y+n.textStrokeWidth/2;e.save(),e.textBaseline=`middle`,e.textAlign=n.textAlign,Ie(e,n)&&Be(e,{x:l,y:u},a,o),Ve(e,{x:l,y:u},a,{fonts:o,colors:c}),e.restore()}function Ie(e,t){if(t.textStrokeWidth>0)return e.lineJoin=`round`,e.miterLimit=2,e.lineWidth=t.textStrokeWidth,e.strokeStyle=t.textStrokeColor,!0}function Le(e,t,n,r){let{radius:i,options:a}=t,o=a.pointStyle,s=a.rotation,c=(s||0)*p;if(N(o)){e.save(),e.translate(n,r),e.rotate(c),e.drawImage(o,-o.width/2,-o.height/2,o.width,o.height),e.restore();return}Me(i)||Re(e,{x:n,y:r,radius:i,rotation:s,style:o,rad:c})}function Re(e,{x:t,y:n,radius:r,rotation:i,style:a,rad:o}){let s,c,l,u;switch(e.beginPath(),a){default:e.arc(t,n,r,0,b),e.closePath();break;case`triangle`:e.moveTo(t+Math.sin(o)*r,n-Math.cos(o)*r),o+=ne,e.lineTo(t+Math.sin(o)*r,n-Math.cos(o)*r),o+=ne,e.lineTo(t+Math.sin(o)*r,n-Math.cos(o)*r),e.closePath();break;case`rectRounded`:u=r*.516,l=r-u,s=Math.cos(o+S)*l,c=Math.sin(o+S)*l,e.arc(t-s,n-c,u,o-x,o-d),e.arc(t+c,n-s,u,o-d,o),e.arc(t+s,n+c,u,o,o+d),e.arc(t-c,n+s,u,o+d,o+x),e.closePath();break;case`rect`:if(!i){l=Math.SQRT1_2*r,e.rect(t-l,n-l,2*l,2*l);break}o+=S;case`rectRot`:s=Math.cos(o)*r,c=Math.sin(o)*r,e.moveTo(t-s,n-c),e.lineTo(t+c,n-s),e.lineTo(t+s,n+c),e.lineTo(t-c,n+s),e.closePath();break;case`crossRot`:o+=S;case`cross`:s=Math.cos(o)*r,c=Math.sin(o)*r,e.moveTo(t-s,n-c),e.lineTo(t+s,n+c),e.moveTo(t+c,n-s),e.lineTo(t-c,n+s);break;case`star`:s=Math.cos(o)*r,c=Math.sin(o)*r,e.moveTo(t-s,n-c),e.lineTo(t+s,n+c),e.moveTo(t+c,n-s),e.lineTo(t-c,n+s),o+=S,s=Math.cos(o)*r,c=Math.sin(o)*r,e.moveTo(t-s,n-c),e.lineTo(t+s,n+c),e.moveTo(t+c,n-s),e.lineTo(t-c,n+s);break;case`line`:s=Math.cos(o)*r,c=Math.sin(o)*r,e.moveTo(t-s,n-c),e.lineTo(t+s,n+c);break;case`dash`:e.moveTo(t,n),e.lineTo(t+Math.cos(o)*r,n+Math.sin(o)*r);break}e.fill()}function ze(e,t,n,r){e.save();let i=t.length,a=0,o=r;for(let s=0;s<i;s++){let i=n[Math.min(s,n.length-1)];e.font=i.string;let c=t[s];a=Math.max(a,e.measureText(c).width+r),o+=i.lineHeight}return e.restore(),{width:a,height:o}}function Be(e,{x:t,y:n},r,i){e.beginPath();let a=0;r.forEach(function(r,o){let s=i[Math.min(o,i.length-1)],c=s.lineHeight;e.font=s.string,e.strokeText(r,t,n+c/2+a),a+=c}),e.stroke()}function Ve(e,{x:t,y:n},r,{fonts:i,colors:a}){let o=0;r.forEach(function(r,s){let c=a[Math.min(s,a.length-1)],l=i[Math.min(s,i.length-1)],u=l.lineHeight;e.beginPath(),e.font=l.string,e.fillStyle=c,e.fillText(r,t,n+u/2+o),o+=u,e.fill()})}function He(e,t){let n=s(e)?e:t;return s(n)?O(n,0,1):1}var Ue=[`left`,`bottom`,`top`,`right`];function We(t,n){let{pointX:r,pointY:i,options:a}=n,o=a.callout,s=o&&o.display&&Ye(n,o);if(!s||Ze(n,o,s))return;if(t.save(),t.beginPath(),!F(t,o))return t.restore();let{separatorStart:c,separatorEnd:l}=Ge(n,s),{sideStart:u,sideEnd:d}=qe(n,s,c);(o.margin>0||a.borderWidth===0)&&(t.moveTo(c.x,c.y),t.lineTo(l.x,l.y)),t.moveTo(u.x,u.y),t.lineTo(d.x,d.y);let f=E({x:r,y:i},n.getCenterPoint(),e(-n.rotation));t.lineTo(f.x,f.y),t.stroke(),t.restore()}function Ge(e,t){let{x:n,y:r,x2:i,y2:a}=e,o=Ke(e,t),s,c;return t===`left`||t===`right`?(s={x:n+o,y:r},c={x:s.x,y:a}):(s={x:n,y:r+o},c={x:i,y:s.y}),{separatorStart:s,separatorEnd:c}}function Ke(e,t){let{width:n,height:r,options:i}=e,a=i.callout.margin+i.borderWidth/2;return t===`right`?n+a:t===`bottom`?r+a:-a}function qe(e,t,n){let{y:r,width:i,height:a,options:o}=e,s=o.callout.start,c=Je(t,o.callout),l,u;return t===`left`||t===`right`?(l={x:n.x,y:r+j(a,s)},u={x:l.x+c,y:l.y}):(l={x:n.x+j(i,s),y:n.y},u={x:l.x,y:l.y+c}),{sideStart:l,sideEnd:u}}function Je(e,t){let n=t.side;return e===`left`||e===`top`?-n:n}function Ye(e,t){let n=t.position;return Ue.includes(n)?n:Xe(e,t)}function Xe(t,n){let{x:r,y:i,x2:a,y2:o,width:s,height:c,pointX:l,pointY:u,centerX:d,centerY:f,rotation:p}=t,m={x:d,y:f},h=n.start,_=j(s,h),v=j(c,h),y=[r,r+_,r+_,a],b=[i+v,o,i,o],ee=[];for(let t=0;t<4;t++){let n=E({x:y[t],y:b[t]},m,e(p));ee.push({position:Ue[t],distance:g(n,{x:l,y:u})})}return ee.sort((e,t)=>e.distance-t.distance)[0].position}function Ze(e,t,n){let{pointX:r,pointY:i}=e,a=t.margin,o=r,s=i;return n===`left`?o+=a:n===`right`?o-=a:n===`top`?s+=a:n===`bottom`&&(s-=a),e.inRange(o,s)}var Qe={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 R(e,n,r){return n=typeof n==`number`?n:e.parse(n),t(n)?e.getPixelForValue(n):r}function z(e,t,n){let r=t[n];if(r||n===`scaleID`)return r;let i=n.charAt(0),a=Object.values(e).filter(e=>e.axis&&e.axis===i);return a.length?a[0].id:i}function $e(e,t){if(e){let n=e.options.reverse;return{start:R(e,t.min,n?t.end:t.start),end:R(e,t.max,n?t.start:t.end)}}}function et(e,t){let{chartArea:n,scales:r}=e,i=r[z(r,t,`xScaleID`)],a=r[z(r,t,`yScaleID`)],o=n.width/2,s=n.height/2;return i&&(o=R(i,t.xValue,i.left+i.width/2)),a&&(s=R(a,t.yValue,a.top+a.height/2)),{x:o,y:s}}function B(e,t){let n=e.scales,r=n[z(n,t,`xScaleID`)],i=n[z(n,t,`yScaleID`)];if(!r&&!i)return{};let{left:a,right:o}=r||e.chartArea,{top:s,bottom:c}=i||e.chartArea,l=at(r,{min:t.xMin,max:t.xMax,start:a,end:o});a=l.start,o=l.end;let u=at(i,{min:t.yMin,max:t.yMax,start:c,end:s});return s=u.start,c=u.end,{x:a,y:s,x2:o,y2:c,width:o-a,height:c-s,centerX:a+(o-a)/2,centerY:s+(c-s)/2}}function tt(e,t){if(!Ee(t)){let n=B(e,t),r=t.radius;(!r||isNaN(r))&&(r=Math.min(n.width,n.height)/2,t.radius=r);let i=r*2,a=n.centerX+t.xAdjust,o=n.centerY+t.yAdjust;return{x:a-r,y:o-r,x2:a+r,y2:o+r,centerX:a,centerY:o,width:i,height:i,radius:r}}return it(e,t)}function nt(e,t){let{scales:n,chartArea:r}=e,i=n[t.scaleID],a={x:r.left,y:r.top,x2:r.right,y2:r.bottom};return i?ot(i,a,t):st(n,a,t),a}function rt(e,t){let n=B(e,t);return n.initProperties=M(e,n,t),n.elements=[{type:`label`,optionScope:`label`,properties:dt(e,n,t),initProperties:n.initProperties}],n}function it(e,t){let n=et(e,t),r=t.radius*2;return{x:n.x-t.radius+t.xAdjust,y:n.y-t.radius+t.yAdjust,x2:n.x+t.radius+t.xAdjust,y2:n.y+t.radius+t.yAdjust,centerX:n.x+t.xAdjust,centerY:n.y+t.yAdjust,radius:t.radius,width:r,height:r}}function at(e,t){let n=$e(e,t)||t;return{start:Math.min(n.start,n.end),end:Math.max(n.start,n.end)}}function ot(e,t,n){let r=R(e,n.value,NaN),i=R(e,n.endValue,r);e.isHorizontal()?(t.x=r,t.x2=i):(t.y=r,t.y2=i)}function st(e,t,n){for(let r of Object.keys(Qe)){let i=e[z(e,n,r)];if(i){let{min:e,max:a,start:o,end:s,startProp:c,endProp:l}=Qe[r],u=$e(i,{min:n[e],max:n[a],start:i[o],end:i[s]});t[c]=u.start,t[l]=u.end}}}function ct({properties:e,options:t},n,r,i){let{x:a,x2:o,width:s}=e;return ut({start:a,end:o,size:s,borderWidth:t.borderWidth},{position:r.x,padding:{start:i.left,end:i.right},adjust:t.label.xAdjust,size:n.width})}function lt({properties:e,options:t},n,r,i){let{y:a,y2:o,height:s}=e;return ut({start:a,end:o,size:s,borderWidth:t.borderWidth},{position:r.y,padding:{start:i.top,end:i.bottom},adjust:t.label.yAdjust,size:n.height})}function ut(e,t){let{start:n,end:r,borderWidth:i}=e,{position:a,padding:{start:o,end:s},adjust:c}=t,l=r-i-n-o-s-t.size;return n+i/2+c+be(l,a)}function dt(e,t,n){let r=n.label;r.backgroundColor=`transparent`,r.callout.display=!1;let i=Ce(r.position),a=y(r.padding),o=L(e.ctx,r),s=ct({properties:t,options:n},o,i,a),c=lt({properties:t,options:n},o,i,a),l=o.width+a.width,u=o.height+a.height;return{x:s,y:c,x2:s+l,y2:c+u,width:l,height:u,centerX:s+l/2,centerY:c+u/2,rotation:r.rotation}}var V=[`enter`,`leave`],ft=V.concat(`click`);function pt(e,t,n){t.listened=Oe(n,ft,t.listeners),t.moveListened=!1,V.forEach(e=>{f(n[e])&&(t.moveListened=!0)}),(!t.listened||!t.moveListened)&&t.annotations.forEach(e=>{!t.listened&&f(e.click)&&(t.listened=!0),t.moveListened||V.forEach(n=>{f(e[n])&&(t.listened=!0,t.moveListened=!0)})})}function mt(e,t,n){if(e.listened)switch(t.type){case`mousemove`:case`mouseout`:return ht(e,t,n);case`click`:return _t(e,t,n)}}function ht(e,t,n){if(!e.moveListened)return;let r;r=t.type===`mousemove`?ae(e.visibleElements,t,n.interaction):[];let i=e.hovered;e.hovered=r;let a={state:e,event:t},o=gt(a,`leave`,i,r);return gt(a,`enter`,r,i)||o}function gt({state:e,event:t},n,r,i){let a;for(let o of r)i.indexOf(o)<0&&(a=vt(o.options[n]||e.listeners[n],o,t)||a);return a}function _t(e,t,n){let r=e.listeners,i=ae(e.visibleElements,t,n.interaction),a;for(let e of i)a=vt(e.options.click||r.click,e,t)||a;return a}function vt(e,t,n){return h(e,[t.$context,n])===!0}var H=[`afterDraw`,`beforeDraw`];function yt(e,t,n){let r=t.visibleElements;t.hooked=Oe(n,H,t.hooks),t.hooked||r.forEach(e=>{t.hooked||H.forEach(n=>{f(e.options[n])&&(t.hooked=!0)})})}function bt(e,t,n){if(e.hooked)return h(t.options[n]||e.hooks[n],[t.$context])}function xt(e,t,n){let r=Dt(e.scales,t,n),i=Ct(t,r,`min`,`suggestedMin`);i=Ct(t,r,`max`,`suggestedMax`)||i,i&&f(t.handleTickRangeOptions)&&t.handleTickRangeOptions()}function St(e,t){for(let n of e)Tt(n,t)}function Ct(e,n,r,i){if(t(n[r])&&!wt(e.options,r,i)){let t=e[r]!==n[r];return e[r]=n[r],t}}function wt(e,t,n){return _(e[t])||_(e[n])}function Tt(e,t){for(let n of[`scaleID`,`xScaleID`,`yScaleID`]){let r=z(t,e,n);r&&!t[r]&&Et(e,n)&&console.warn(`No scale found with id '${r}' for annotation '${e.id}'`)}}function Et(e,t){if(t===`scaleID`)return!0;let n=t.charAt(0);for(let t of[`Min`,`Max`,`Value`])if(_(e[n+t]))return!0;return!1}function Dt(e,t,n){let r=t.axis,i=t.id,o=r+`ScaleID`,s={min:a(t.min,-1/0),max:a(t.max,1/0)};for(let a of n)a.scaleID===i?Ot(a,t,[`value`,`endValue`],s):z(e,a,o)===i&&Ot(a,t,[r+`Min`,r+`Max`,r+`Value`],s);return s}function Ot(e,t,n,r){for(let i of n){let n=e[i];if(_(n)){let e=t.parse(n);r.min=Math.min(r.min,e),r.max=Math.max(r.max,e)}}}var U=class extends l{inRange(t,n,r,i){let{x:a,y:o}=E({x:t,y:n},this.getCenterPoint(i),e(-this.options.rotation));return pe({x:a,y:o},this.getProps([`x`,`y`,`x2`,`y2`],i),r,this.options)}getCenterPoint(e){return k(this,e)}draw(e){e.save(),P(e,this.getCenterPoint(),this.options.rotation),Pe(e,this,this.options),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,t){return rt(e,t)}};U.id=`boxAnnotation`,U.defaults={adjustScaleRange:!0,backgroundShadowColor:`transparent`,borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderRadius:0,borderShadowColor:`transparent`,borderWidth:1,display:!0,init:void 0,hitTolerance: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,hitTolerance: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},U.defaultRoutes={borderColor:`color`,backgroundColor:`color`},U.descriptors={label:{_fallback:!0}};var W=class extends l{inRange(e,t,n,r){return me({x:e,y:t},{rect:this.getProps([`x`,`y`,`x2`,`y2`],r),center:this.getCenterPoint(r)},n,{rotation:this.rotation,borderWidth:0,hitTolerance:this.options.hitTolerance})}getCenterPoint(e){return k(this,e)}draw(e){let t=this.options;!t.display||!t.content||(Pt(e,this),e.save(),P(e,this.getCenterPoint(),this.rotation),Fe(e,this,t,this._fitRatio),e.restore())}resolveElementProperties(e,t){let n=kt(e,t);if(!n)return{};let{controllerMeta:r,point:i,radius:a}=jt(e,t,n),o=L(e.ctx,t),s=Mt(o,a);we(t,s)&&(o={width:o.width*s,height:o.height*s});let{position:c,xAdjust:l,yAdjust:u}=t,d=Se(i,o,{borderWidth:0,position:c,xAdjust:l,yAdjust:u});return{initProperties:M(e,d,t),...d,...r,rotation:t.rotation,_fitRatio:s}}};W.id=`doughnutLabelAnnotation`,W.defaults={autoFit:!0,autoHide:!0,backgroundColor:`transparent`,backgroundShadowColor:`transparent`,borderColor:`transparent`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderShadowColor:`transparent`,borderWidth:0,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,hitTolerance:0,init:void 0,opacity:void 0,position:`center`,rotation:0,shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,spacing:1,textAlign:`center`,textStrokeColor:void 0,textStrokeWidth:0,width:void 0,xAdjust:0,yAdjust:0},W.defaultRoutes={};function kt(e,t){return e.getSortedVisibleDatasetMetas().reduce(function(n,r){let i=r.controller;return i instanceof u&&At(e,t,r.data)&&(!n||i.innerRadius<n.controller.innerRadius)&&i.options.circumference>=90?r:n},void 0)}function At(e,t,n){if(!t.autoHide)return!0;for(let t=0;t<n.length;t++)if(!n[t].hidden&&e.getDataVisibility(t))return!0}function jt({chartArea:e},t,n){let{left:r,top:i,right:a,bottom:o}=e,{innerRadius:s,offsetX:c,offsetY:l}=n.controller,u=(r+a)/2+c,d=(i+o)/2+l,f={left:Math.max(u-s,r),right:Math.min(u+s,a),top:Math.max(d-s,i),bottom:Math.min(d+s,o)},p={x:(f.left+f.right)/2,y:(f.top+f.bottom)/2},m=t.spacing+t.borderWidth/2,h=s-m,g=p.y>d;return{controllerMeta:{_centerX:u,_centerY:d,_radius:h,_counterclockwise:g,...Nt(g?i+m:o-m,u,d,h)},point:p,radius:Math.min(s,Math.min(f.right-f.left,f.bottom-f.top)/2)}}function Mt({width:e,height:t},n){let r=Math.sqrt(e**2+t**2);return n*2/r}function Nt(e,t,n,r){let i=(n-e)**2,a=r**2,o=t*-2,s=t**2+i-a,c=o**2-4*s;if(c<=0)return{_startAngle:0,_endAngle:b};let l=(-o-Math.sqrt(c))/2,u=(-o+Math.sqrt(c))/2;return{_startAngle:re({x:t,y:n},{x:l,y:e}).angle,_endAngle:re({x:t,y:n},{x:u,y:e}).angle}}function Pt(e,t){let{_centerX:n,_centerY:r,_radius:i,_startAngle:a,_endAngle:o,_counterclockwise:s,options:c}=t;e.save();let l=F(e,c);e.fillStyle=c.backgroundColor,e.beginPath(),e.arc(n,r,i,a,o,s),e.closePath(),e.fill(),l&&e.stroke(),e.restore()}var G=class extends l{inRange(e,t,n,r){return me({x:e,y:t},{rect:this.getProps([`x`,`y`,`x2`,`y2`],r),center:this.getCenterPoint(r)},n,{rotation:this.rotation,borderWidth:this.options.borderWidth,hitTolerance:this.options.hitTolerance})}getCenterPoint(e){return k(this,e)}draw(e){let t=this.options,n=!_(this._visible)||this._visible;!t.display||!t.content||!n||(e.save(),P(e,this.getCenterPoint(),this.rotation),We(e,this),Pe(e,this,t),Fe(e,Ft(this),t),e.restore())}resolveElementProperties(e,t){let n;if(Ee(t))n=et(e,t);else{let{centerX:r,centerY:i}=B(e,t);n={x:r,y:i}}let r=y(t.padding),i=L(e.ctx,t),a=Se(n,i,t,r);return{initProperties:M(e,a,t),pointX:n.x,pointY:n.y,...a,rotation:t.rotation}}};G.id=`labelAnnotation`,G.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,hitTolerance: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},G.defaultRoutes={borderColor:`color`};function Ft({x:e,y:t,width:n,height:r,options:i}){let a=i.borderWidth/2,o=y(i.padding);return{x:e+o.left+a,y:t+o.top+a,width:n-o.left-o.right-i.borderWidth,height:r-o.top-o.bottom-i.borderWidth}}var It=(e,t,n)=>({x:e.x+n*(t.x-e.x),y:e.y+n*(t.y-e.y)}),Lt=(e,t,n)=>It(t,n,Math.abs((e-t.y)/(n.y-t.y))).x,Rt=(e,t,n)=>It(t,n,Math.abs((e-t.x)/(n.x-t.x))).y,K=e=>e*e,zt=(e,t,{x:n,y:r,x2:i,y2:a},o)=>o===`y`?{start:Math.min(r,a),end:Math.max(r,a),value:t}:{start:Math.min(n,i),end:Math.max(n,i),value:e},Bt=(e,t,n,r)=>(1-r)*(1-r)*e+2*(1-r)*r*t+r*r*n,Vt=(e,t,n,r)=>({x:Bt(e.x,t.x,n.x,r),y:Bt(e.y,t.y,n.y,r)}),Ht=(e,t,n,r)=>2*(1-r)*(t-e)+2*r*(n-t),Ut=(e,t,n,r)=>-Math.atan2(Ht(e.x,t.x,n.x,r),Ht(e.y,t.y,n.y,r))+.5*x,q=class extends l{inRange(e,t,n,r){let i=(this.options.borderWidth+this.options.hitTolerance)/2;if(n!==`x`&&n!==`y`){let n={mouseX:e,mouseY:t},{path:a,ctx:o}=this;if(a){F(o,this.options),o.lineWidth+=this.options.hitTolerance;let{chart:i}=this.$context,s=e*i.currentDevicePixelRatio,c=t*i.currentDevicePixelRatio,l=o.isPointInStroke(a,s,c)||Xt(this,n,r);return o.restore(),l}let s=K(i);return Yt(this,n,s,r)||Xt(this,n,r)}return Gt(this,{mouseX:e,mouseY:t},n,{hitSize:i,useFinalPosition:r})}getCenterPoint(e){return k(this,e)}draw(e){let{x:t,y:n,x2:r,y2:i,cp:a,options:o}=this;if(e.save(),!F(e,o))return e.restore();I(e,o);let s=Math.sqrt((r-t)**2+(i-n)**2);if(o.curve&&a)return dn(e,this,a,s),e.restore();let{startOpts:c,endOpts:l,startAdjust:u,endAdjust:d}=on(this),f=Math.atan2(i-n,r-t);e.translate(t,n),e.rotate(f),e.beginPath(),e.moveTo(0+u,0),e.lineTo(s-d,0),e.shadowColor=o.borderShadowColor,e.stroke(),cn(e,0,u,c),cn(e,s,-d,l),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,t){let n=nt(e,t),{x:r,y:i,x2:a,y2:o}=n,s=Kt(n,e.chartArea),c=s?Jt({x:r,y:i},{x:a,y:o},e.chartArea):{x:r,y:i,x2:a,y2:o,width:Math.abs(a-r),height:Math.abs(o-i)};c.centerX=(a+r)/2,c.centerY=(o+i)/2,c.initProperties=M(e,c,t),t.curve&&(c.cp=ln(c,t,g({x:c.x,y:c.y},{x:c.x2,y:c.y2})));let l=Zt(e,c,t.label);return l._visible=s,c.elements=[{type:`label`,optionScope:`label`,properties:l,initProperties:c.initProperties}],c}};q.id=`lineAnnotation`;var Wt={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};q.defaults={adjustScaleRange:!0,arrowHeads:{display:!1,end:Object.assign({},Wt),fill:!1,length:12,start:Object.assign({},Wt),width:6},borderDash:[],borderDashOffset:0,borderShadowColor:`transparent`,borderWidth:2,curve:!1,controlPoint:{y:`-50%`},display:!0,endValue:void 0,init:void 0,hitTolerance: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({},G.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,hitTolerance: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},q.descriptors={arrowHeads:{start:{_fallback:!0},end:{_fallback:!0},_fallback:!0}},q.defaultRoutes={borderColor:`color`};function Gt(e,{mouseX:t,mouseY:n},r,{hitSize:i,useFinalPosition:a}){return ue(zt(t,n,e.getProps([`x`,`y`,`x2`,`y2`],a),r),i)||Xt(e,{mouseX:t,mouseY:n},a,r)}function Kt({x:e,y:t,x2:n,y2:r},{top:i,right:a,bottom:o,left:s}){return!(e<s&&n<s||e>a&&n>a||t<i&&r<i||t>o&&r>o)}function qt({x:e,y:t},n,{top:r,right:i,bottom:a,left:o}){return e<o&&(t=Rt(o,{x:e,y:t},n),e=o),e>i&&(t=Rt(i,{x:e,y:t},n),e=i),t<r&&(e=Lt(r,{x:e,y:t},n),t=r),t>a&&(e=Lt(a,{x:e,y:t},n),t=a),{x:e,y:t}}function Jt(e,t,n){let{x:r,y:i}=qt(e,t,n),{x:a,y:o}=qt(t,e,n);return{x:r,y:i,x2:a,y2:o,width:Math.abs(a-r),height:Math.abs(o-i)}}function Yt(e,{mouseX:t,mouseY:n},r=D,i){let{x:a,y:o,x2:s,y2:c}=e.getProps([`x`,`y`,`x2`,`y2`],i),l=s-a,u=c-o,d=K(l)+K(u),f=d===0?-1:((t-a)*l+(n-o)*u)/d,p,m;return f<0?(p=a,m=o):f>1?(p=s,m=c):(p=a+f*l,m=o+f*u),K(t-p)+K(n-m)<=r}function Xt(e,{mouseX:t,mouseY:n},r,i){let a=e.label;return a.options.display&&a.inRange(t,n,i,r)}function Zt(e,t,n){let r=n.borderWidth,i=y(n.padding),a=L(e.ctx,n);return $t(t,n,{width:a.width+i.width+r,height:a.height+i.height+r,padding:i},e.chartArea)}function Qt(e){let{x:t,y:n,x2:r,y2:i}=e,a=Math.atan2(i-n,r-t);return a>x/2?a-x:a<x/-2?a+x:a}function $t(t,r,i,a){let{width:o,height:s,padding:c}=i,{xAdjust:l,yAdjust:u}=r,d={x:t.x,y:t.y},f={x:t.x2,y:t.y2},p=r.rotation===`auto`?Qt(t):e(r.rotation),m=en(o,s,p),h=tn(t,r,{labelSize:m,padding:c},a),g=t.cp?Vt(d,t.cp,f,h):It(d,f,h),_={size:m.w,min:a.left,max:a.right,padding:c.left},v={size:m.h,min:a.top,max:a.bottom,padding:c.top},y=an(g.x,_)+l,b=an(g.y,v)+u;return{x:y-o/2,y:b-s/2,x2:y+o/2,y2:b+s/2,centerX:y,centerY:b,pointX:g.x,pointY:g.y,width:o,height:s,rotation:n(p)}}function en(e,t,n){let r=Math.cos(n),i=Math.sin(n);return{w:Math.abs(e*r)+Math.abs(t*i),h:Math.abs(e*i)+Math.abs(t*r)}}function tn(e,t,n,r){let i,a=rn(e,r);return i=t.position===`start`?nn({w:e.x2-e.x,h:e.y2-e.y},n,t,a):t.position===`end`?1-nn({w:e.x-e.x2,h:e.y-e.y2},n,t,a):be(1,t.position),i}function nn(e,t,n,r){let{labelSize:i,padding:a}=t,o=e.w*r.dx,s=e.h*r.dy,c=o>0&&(i.w/2+a.left-r.x)/o,l=s>0&&(i.h/2+a.top-r.y)/s;return O(Math.max(c,l),0,.25)}function rn(e,t){let{x:n,x2:r,y:i,y2:a}=e,o=Math.min(i,a)-t.top,s=Math.min(n,r)-t.left,c=t.bottom-Math.max(i,a),l=t.right-Math.max(n,r);return{x:Math.min(s,l),y:Math.min(o,c),dx:s<=l?1:-1,dy:o<=c?1:-1}}function an(e,t){let{size:n,min:r,max:i,padding:a}=t,o=n/2;return n>i-r?(i+r)/2:(r>=e-a-o&&(e=r+a+o),i<=e+a+o&&(e=i-a-o),e)}function on(e){let t=e.options,n=t.arrowHeads&&t.arrowHeads.start,r=t.arrowHeads&&t.arrowHeads.end;return{startOpts:n,endOpts:r,startAdjust:sn(e,n),endAdjust:sn(e,r)}}function sn(e,t){if(!t||!t.display)return 0;let{length:n,width:r}=t,i=e.options.borderWidth/2,a={x:n,y:r+i};return Math.abs(Lt(0,a,{x:0,y:i}))}function cn(e,t,n,r){if(!r||!r.display)return;let{length:i,width:a,fill:o,backgroundColor:s,borderColor:c}=r,l=Math.abs(t-i)+n;e.beginPath(),I(e,r),F(e,r),e.moveTo(l,-a),e.lineTo(t+n,0),e.lineTo(l,a),o===!0?(e.fillStyle=s||c,e.closePath(),e.fill(),e.shadowColor=`transparent`):e.shadowColor=r.borderShadowColor,e.stroke()}function ln(e,t,n){let{x:r,y:i,x2:a,y2:o,centerX:s,centerY:c}=e,l=Math.atan2(o-i,a-r),u=Ce(t.controlPoint,0);return E({x:s+j(n,u.x,!1),y:c+j(n,u.y,!1)},{x:s,y:c},l)}function un(e,{x:t,y:n},{angle:r,adjust:i},a){!a||!a.display||(e.save(),e.translate(t,n),e.rotate(r),cn(e,0,-i,a),e.restore())}function dn(e,t,n,r){let{x:i,y:a,x2:o,y2:s,options:c}=t,{startOpts:l,endOpts:u,startAdjust:d,endAdjust:f}=on(t),p={x:i,y:a},m={x:o,y:s},h=Ut(p,n,m,0),g=Ut(p,n,m,1)-x,_=Vt(p,n,m,d/r),v=Vt(p,n,m,1-f/r),y=new Path2D;e.beginPath(),y.moveTo(_.x,_.y),y.quadraticCurveTo(n.x,n.y,v.x,v.y),e.shadowColor=c.borderShadowColor,e.stroke(y),t.path=y,t.ctx=e,un(e,_,{angle:h,adjust:d},l),un(e,v,{angle:g,adjust:f},u)}var J=class extends l{inRange(t,n,r,i){let a=this.options.rotation,o=(this.options.borderWidth+this.options.hitTolerance)/2;if(r!==`x`&&r!==`y`)return fn({x:t,y:n},this.getProps([`width`,`height`,`centerX`,`centerY`],i),a,o);let{x:s,y:c,x2:l,y2:u}=this.getProps([`x`,`y`,`x2`,`y2`],i),d=r===`y`?{start:c,end:u}:{start:s,end:l},f=E({x:t,y:n},this.getCenterPoint(i),e(-a));return f[r]>=d.start-o-D&&f[r]<=d.end+o+D}getCenterPoint(e){return k(this,e)}draw(e){let{width:t,height:n,centerX:r,centerY:i,options:a}=this;e.save(),P(e,this.getCenterPoint(),a.rotation),I(e,this.options),e.beginPath(),e.fillStyle=a.backgroundColor;let o=F(e,a);e.ellipse(r,i,n/2,t/2,x/2,0,2*x),e.fill(),o&&(e.shadowColor=a.borderShadowColor,e.stroke()),e.restore()}get label(){return this.elements&&this.elements[0]}resolveElementProperties(e,t){return rt(e,t)}};J.id=`ellipseAnnotation`,J.defaults={adjustScaleRange:!0,backgroundShadowColor:`transparent`,borderDash:[],borderDashOffset:0,borderShadowColor:`transparent`,borderWidth:1,display:!0,hitTolerance:0,init:void 0,label:Object.assign({},U.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},J.defaultRoutes={borderColor:`color`,backgroundColor:`color`},J.descriptors={label:{_fallback:!0}};function fn(t,n,r,i){let{width:a,height:o,centerX:s,centerY:c}=n,l=a/2,u=o/2;if(l<=0||u<=0)return!1;let d=e(r||0),f=Math.cos(d),p=Math.sin(d),m=(f*(t.x-s)+p*(t.y-c))**2,h=(p*(t.x-s)-f*(t.y-c))**2;return m/(l+i)**2+h/(u+i)**2<=1.0001}var Y=class extends l{inRange(e,t,n,r){let{x:i,y:a,x2:o,y2:s,width:c}=this.getProps([`x`,`y`,`x2`,`y2`,`width`],r),l=(this.options.borderWidth+this.options.hitTolerance)/2;return n!==`x`&&n!==`y`?fe({x:e,y:t},this.getCenterPoint(r),c/2,l):ue(n===`y`?{start:a,end:s,value:t}:{start:i,end:o,value:e},l)}getCenterPoint(e){return k(this,e)}draw(e){let t=this.options,n=t.borderWidth;if(t.radius<.1)return;e.save(),e.fillStyle=t.backgroundColor,I(e,t);let r=F(e,t);Le(e,this,this.centerX,this.centerY),r&&!N(t.pointStyle)&&(e.shadowColor=t.borderShadowColor,e.stroke()),e.restore(),t.borderWidth=n}resolveElementProperties(e,t){let n=tt(e,t);return n.initProperties=M(e,n,t),n}};Y.id=`pointAnnotation`,Y.defaults={adjustScaleRange:!0,backgroundShadowColor:`transparent`,borderDash:[],borderDashOffset:0,borderShadowColor:`transparent`,borderWidth:1,display:!0,hitTolerance: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},Y.defaultRoutes={borderColor:`color`,backgroundColor:`color`};var X=class extends l{inRange(t,n,r,i){if(r!==`x`&&r!==`y`)return this.options.radius>=.1&&this.elements.length>1&&mn(this.elements,t,n,i);let a=E({x:t,y:n},this.getCenterPoint(i),e(-this.options.rotation)),o=this.elements.map(e=>r===`y`?e.bY:e.bX),s=Math.min(...o),c=Math.max(...o);return a[r]>=s&&a[r]<=c}getCenterPoint(e){return k(this,e)}draw(e){let{elements:t,options:n}=this;e.save(),e.beginPath(),e.fillStyle=n.backgroundColor,I(e,n);let r=F(e,n),i=!0;for(let n of t)i?(e.moveTo(n.x,n.y),i=!1):e.lineTo(n.x,n.y);e.closePath(),e.fill(),r&&(e.shadowColor=n.borderShadowColor,e.stroke()),e.restore()}resolveElementProperties(e,t){let n=tt(e,t),{sides:r,rotation:i}=t,a=[],o=2*x/r,s=i*p;for(let i=0;i<r;i++,s+=o){let r=pn(n,t,s);r.initProperties=M(e,n,t),a.push(r)}return n.elements=a,n}};X.id=`polygonAnnotation`,X.defaults={adjustScaleRange:!0,backgroundShadowColor:`transparent`,borderCapStyle:`butt`,borderDash:[],borderDashOffset:0,borderJoinStyle:`miter`,borderShadowColor:`transparent`,borderWidth:1,display:!0,hitTolerance: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},X.defaultRoutes={borderColor:`color`,backgroundColor:`color`};function pn({centerX:e,centerY:t},{radius:n,borderWidth:r,hitTolerance:i},a){let o=(r+i)/2,s=Math.sin(a),c=Math.cos(a),l={x:e+s*n,y:t-c*n};return{type:`point`,optionScope:`point`,properties:{x:l.x,y:l.y,centerX:l.x,centerY:l.y,bX:e+s*(n+o),bY:t-c*(n+o)}}}function mn(e,t,n,r){let i=!1,a=e[e.length-1].getProps([`bX`,`bY`],r);for(let o of e){let e=o.getProps([`bX`,`bY`],r);e.bY>n!=a.bY>n&&t<(a.bX-e.bX)*(n-e.bY)/(a.bY-e.bY)+e.bX&&(i=!i),a=e}return i}var Z={box:U,doughnutLabel:W,ellipse:J,label:G,line:q,point:Y,polygon:X};Object.keys(Z).forEach(e=>{ee.describe(`elements.${Z[e].id}`,{_fallback:`plugins.annotation.common`})});var hn={update:Object.assign},gn=ft.concat(H),_n=(e,t)=>C(t)?En(e,t):e,vn=e=>e===`color`||e===`font`;function yn(e=`line`){return Z[e]?e:(console.warn(`Unknown annotation type: '${e}', defaulting to 'line'`),`line`)}function bn(e,t,n,r){let i=Sn(e,n.animations,r),a=t.annotations,o=On(t.elements,a);for(let t=0;t<a.length;t++){let n=a[t],r=wn(o,t,n.type),s=n.setContext(Dn(e,r,o,n)),c=r.resolveElementProperties(e,s);c.skip=xn(c),`elements`in c&&(Cn(r,c.elements,s,i),delete c.elements),_(r.x)||Object.assign(r,c),Object.assign(r,c.initProperties),c.options=Tn(s),i.update(r,c)}}function xn(e){return isNaN(e.x)||isNaN(e.y)}function Sn(e,t,n){return n===`reset`||n===`none`||n===`resize`?hn:new c(e,t)}function Cn(e,t,n,r){let i=e.elements||=[];i.length=t.length;for(let e=0;e<t.length;e++){let a=t[e],o=a.properties,s=wn(i,e,a.type,a.initProperties);o.options=Tn(n[a.optionScope].override(a)),r.update(s,o)}}function wn(e,t,n,r){let i=Z[yn(n)],a=e[t];return(!a||!(a instanceof i))&&(a=e[t]=new i,Object.assign(a,r)),a}function Tn(e){let t=Z[yn(e.type)],n={};n.id=e.id,n.type=e.type,n.drawTime=e.drawTime,Object.assign(n,En(e,t.defaults),En(e,t.defaultRoutes));for(let t of gn)n[t]=e[t];return n}function En(e,t){let n={};for(let r of Object.keys(t)){let i=t[r],a=e[r];vn(r)&&w(a)?n[r]=a.map(e=>_n(e,i)):n[r]=_n(a,i)}return n}function Dn(e,t,n,r){return t.$context||=Object.assign(Object.create(e.getContext()),{element:t,get elements(){return n.filter(e=>e&&e.options)},id:r.id,type:`annotation`})}function On(e,t){let n=t.length,r=e.length;if(r<n){let t=n-r;e.splice(r,0,...Array(t))}else r>n&&e.splice(n,r-n);return e}var kn=`3.1.0`,Q=new Map,An=e=>e.type!==`doughnutLabel`,jn=ft.concat(H),Mn={id:`annotation`,version:kn,beforeRegister(){he(`chart.js`,`4.0`,r.version)},afterRegister(){r.register(Z)},afterUnregister(){r.unregister(Z)},beforeInit(e){Q.set(e,{annotations:[],elements:[],visibleElements:[],listeners:{},listened:!1,moveListened:!1,hooks:{},hooked:!1,hovered:[]})},beforeUpdate(e,t,n){let r=Q.get(e),i=r.annotations=[],a=n.annotations;C(a)?Object.keys(a).forEach(e=>{let t=a[e];C(t)&&(t.id=e,i.push(t))}):w(a)&&i.push(...a),St(i.filter(An),e.scales)},afterDataLimits(e,t){let n=Q.get(e);xt(e,t.scale,n.annotations.filter(An).filter(e=>e.display&&e.adjustScaleRange))},afterUpdate(e,t,n){let r=Q.get(e);pt(e,r,n),bn(e,r,n,t.mode),r.visibleElements=r.elements.filter(e=>!e.skip&&e.options.display),yt(e,r,n)},beforeDatasetsDraw(e,t,n){$(e,`beforeDatasetsDraw`,n.clip)},afterDatasetsDraw(e,t,n){$(e,`afterDatasetsDraw`,n.clip)},beforeDatasetDraw(e,t,n){$(e,t.index,n.clip)},beforeDraw(e,t,n){$(e,`beforeDraw`,n.clip)},afterDraw(e,t,n){$(e,`afterDraw`,n.clip)},beforeEvent(e,t,n){mt(Q.get(e),t.event,n)&&(t.changed=!0)},afterDestroy(e){Q.delete(e)},getAnnotations(e){let t=Q.get(e);return t?t.elements:[]},_getAnnotationElementsAtEventForMode(e,t,n){return ae(e,t,n)},defaults:{animations:{numbers:{properties:[`x`,`y`,`x2`,`y2`,`width`,`height`,`centerX`,`centerY`,`pointX`,`pointY`,`radius`],type:`number`},colors:{properties:[`backgroundColor`,`borderColor`],type:`color`}},clip:!0,interaction:{mode:void 0,axis:void 0,intersect:void 0},common:{drawTime:`afterDatasetsDraw`,init:!1,label:{}}},descriptors:{_indexable:!1,_scriptable:e=>!jn.includes(e)&&e!==`init`,annotations:{_allKeys:!1,_fallback:(e,t)=>`elements.${Z[yn(t.type)].id}`},interaction:{_fallback:!0},common:{label:{_indexable:vn,_fallback:!0},_indexable:vn}},additionalOptionScopes:[``]};function $(e,t,n){let{ctx:r,chartArea:a}=e,o=Q.get(e);n&&te(r,a);let s=Nn(o.visibleElements,t).sort((e,t)=>e.element.options.z-t.element.options.z);for(let e of s)Pn(r,a,o,e);n&&i(r)}function Nn(e,t){let n=[];for(let r of e)if(r.options.drawTime===t&&n.push({element:r,main:!0}),r.elements&&r.elements.length)for(let e of r.elements)e.options.display&&e.options.drawTime===t&&n.push({element:e});return n}function Pn(e,t,n,r){let i=r.element;r.main?(bt(n,i,`beforeDraw`),i.draw(e,t),bt(n,i,`afterDraw`)):i.draw(e,t)}export{Mn as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./toDate-BEKdmfOu.js";import{C as t}from"./format-C8UVjLNw.js";import{n,t as r}from"./endOfMonth-CkSR_DAx.js";function i(t,n){let r=e(t)-+e(n);return r<0?-1:r>0?1:r}function a(e){return t=>{let n=(e?Math[e]:Math.trunc)(t);return n===0?0:n}}function o(t,n){return e(t)-+e(n)}function s(t,n){let r=e(t,n?.in);return r.setHours(23,59,59,999),r}function c(t,n){let i=e(t,n?.in);return+s(i,n)==+r(i,n)}function l(e,r,a){let[o,s,l]=t(a?.in,e,e,r),u=i(s,l),d=Math.abs(n(s,l));if(d<1)return 0;s.getMonth()===1&&s.getDate()>27&&s.setDate(30),s.setMonth(s.getMonth()-u*d);let f=i(s,l)===-u;c(o)&&d===1&&i(o,l)===1&&(f=!1);let p=u*(d-+f);return p===0?0:p}function u(e,t,n){let r=o(e,t)/1e3;return a(n?.roundingMethod)(r)}export{a,o as i,l as n,i as o,s as r,u as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{t as e}from"./toDate-BEKdmfOu.js";import{C as t}from"./format-C8UVjLNw.js";function n(e,n,r){let[i,a]=t(r?.in,e,n),o=i.getFullYear()-a.getFullYear(),s=i.getMonth()-a.getMonth();return o*12+s}function r(t,n){let r=e(t,n?.in),i=r.getMonth();return r.setFullYear(r.getFullYear(),i+1,0),r.setHours(23,59,59,999),r}export{n,r as t};
|