unleash-server 7.5.0 → 7.5.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.
Files changed (229) hide show
  1. package/dist/lib/addons/addon.d.ts +10 -2
  2. package/dist/lib/addons/addon.d.ts.map +1 -1
  3. package/dist/lib/addons/addon.js +104 -6
  4. package/dist/lib/addons/addon.js.map +1 -1
  5. package/dist/lib/addons/datadog-definition.js +1 -1
  6. package/dist/lib/addons/datadog-definition.js.map +1 -1
  7. package/dist/lib/addons/datadog.test.js +2 -0
  8. package/dist/lib/addons/datadog.test.js.map +1 -1
  9. package/dist/lib/addons/new-relic.d.ts.map +1 -1
  10. package/dist/lib/addons/new-relic.js +0 -1
  11. package/dist/lib/addons/new-relic.js.map +1 -1
  12. package/dist/lib/addons/new-relic.test.js +0 -1
  13. package/dist/lib/addons/new-relic.test.js.map +1 -1
  14. package/dist/lib/addons/slack.test.js +1 -2
  15. package/dist/lib/addons/slack.test.js.map +1 -1
  16. package/dist/lib/addons/teams.d.ts.map +1 -1
  17. package/dist/lib/addons/teams.js +0 -1
  18. package/dist/lib/addons/teams.js.map +1 -1
  19. package/dist/lib/addons/teams.test.js +0 -1
  20. package/dist/lib/addons/teams.test.js.map +1 -1
  21. package/dist/lib/addons/validate-url.d.ts +18 -0
  22. package/dist/lib/addons/validate-url.d.ts.map +1 -0
  23. package/dist/lib/addons/validate-url.js +93 -0
  24. package/dist/lib/addons/validate-url.js.map +1 -0
  25. package/dist/lib/addons/validate-url.test.d.ts +2 -0
  26. package/dist/lib/addons/validate-url.test.d.ts.map +1 -0
  27. package/dist/lib/addons/validate-url.test.js +199 -0
  28. package/dist/lib/addons/validate-url.test.js.map +1 -0
  29. package/dist/lib/create-config.d.ts.map +1 -1
  30. package/dist/lib/create-config.js +7 -0
  31. package/dist/lib/create-config.js.map +1 -1
  32. package/dist/lib/error/bad-data-error.d.ts.map +1 -1
  33. package/dist/lib/error/bad-data-error.js +10 -2
  34. package/dist/lib/error/bad-data-error.js.map +1 -1
  35. package/dist/lib/error/unleash-error.test.js +23 -0
  36. package/dist/lib/error/unleash-error.test.js.map +1 -1
  37. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts +3 -0
  38. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.d.ts.map +1 -1
  39. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js +50 -1
  40. package/dist/lib/features/client-feature-toggles/delta/client-feature-toggle-delta.js.map +1 -1
  41. package/dist/lib/features/events/event-store.d.ts +4 -0
  42. package/dist/lib/features/events/event-store.d.ts.map +1 -1
  43. package/dist/lib/features/events/event-store.js +62 -1
  44. package/dist/lib/features/events/event-store.js.map +1 -1
  45. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts +4 -1
  46. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.d.ts.map +1 -1
  47. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js +5 -1
  48. package/dist/lib/features/feature-toggle/fakes/fake-features-read-model.js.map +1 -1
  49. package/dist/lib/features/feature-toggle/feature-toggle-service.d.ts.map +1 -1
  50. package/dist/lib/features/feature-toggle/feature-toggle-service.js +4 -0
  51. package/dist/lib/features/feature-toggle/feature-toggle-service.js.map +1 -1
  52. package/dist/lib/features/feature-toggle/features-read-model.d.ts +2 -1
  53. package/dist/lib/features/feature-toggle/features-read-model.d.ts.map +1 -1
  54. package/dist/lib/features/feature-toggle/features-read-model.js +10 -2
  55. package/dist/lib/features/feature-toggle/features-read-model.js.map +1 -1
  56. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js +17 -0
  57. package/dist/lib/features/feature-toggle/tests/feature-toggle-service.e2e.test.js.map +1 -1
  58. package/dist/lib/features/feature-toggle/tests/features-read-model.e2e.test.d.ts +2 -0
  59. package/dist/lib/features/feature-toggle/tests/features-read-model.e2e.test.d.ts.map +1 -0
  60. package/dist/lib/features/feature-toggle/tests/features-read-model.e2e.test.js +44 -0
  61. package/dist/lib/features/feature-toggle/tests/features-read-model.e2e.test.js.map +1 -0
  62. package/dist/lib/features/feature-toggle/types/features-read-model-type.d.ts +1 -0
  63. package/dist/lib/features/feature-toggle/types/features-read-model-type.d.ts.map +1 -1
  64. package/dist/lib/features/frontend-api/frontend-api-controller.d.ts.map +1 -1
  65. package/dist/lib/features/frontend-api/frontend-api-controller.js +3 -2
  66. package/dist/lib/features/frontend-api/frontend-api-controller.js.map +1 -1
  67. package/dist/lib/features/instance-stats/instance-stats-service.d.ts.map +1 -1
  68. package/dist/lib/features/instance-stats/instance-stats-service.js +2 -6
  69. package/dist/lib/features/instance-stats/instance-stats-service.js.map +1 -1
  70. package/dist/lib/features/metrics/instance/metrics.d.ts.map +1 -1
  71. package/dist/lib/features/metrics/instance/metrics.js +5 -2
  72. package/dist/lib/features/metrics/instance/metrics.js.map +1 -1
  73. package/dist/lib/features/metrics/instance/register.d.ts.map +1 -1
  74. package/dist/lib/features/metrics/instance/register.js +3 -1
  75. package/dist/lib/features/metrics/instance/register.js.map +1 -1
  76. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts +4 -3
  77. package/dist/lib/features/release-plans/release-plan-milestone-strategy-service.d.ts.map +1 -1
  78. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.d.ts.map +1 -1
  79. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js +5 -2
  80. package/dist/lib/features/release-plans/release-plan-milestone-strategy-store.js.map +1 -1
  81. package/dist/lib/features/release-plans/release-plan-milestone-strategy.d.ts +1 -0
  82. package/dist/lib/features/release-plans/release-plan-milestone-strategy.d.ts.map +1 -1
  83. package/dist/lib/features/release-plans/release-plan-store.d.ts.map +1 -1
  84. package/dist/lib/features/release-plans/release-plan-store.js +7 -4
  85. package/dist/lib/features/release-plans/release-plan-store.js.map +1 -1
  86. package/dist/lib/features/release-plans/release-plan-template-store.d.ts.map +1 -1
  87. package/dist/lib/features/release-plans/release-plan-template-store.js +2 -1
  88. package/dist/lib/features/release-plans/release-plan-template-store.js.map +1 -1
  89. package/dist/lib/metrics.d.ts.map +1 -1
  90. package/dist/lib/metrics.js +1 -6
  91. package/dist/lib/metrics.js.map +1 -1
  92. package/dist/lib/middleware/bearer-token-middleware.test.js +12 -10
  93. package/dist/lib/middleware/bearer-token-middleware.test.js.map +1 -1
  94. package/dist/lib/openapi/spec/export-result-schema.d.ts +96 -0
  95. package/dist/lib/openapi/spec/export-result-schema.d.ts.map +1 -1
  96. package/dist/lib/openapi/spec/feature-environment-schema.d.ts +24 -0
  97. package/dist/lib/openapi/spec/feature-environment-schema.d.ts.map +1 -1
  98. package/dist/lib/openapi/spec/feature-schema.d.ts +48 -0
  99. package/dist/lib/openapi/spec/feature-schema.d.ts.map +1 -1
  100. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts +48 -0
  101. package/dist/lib/openapi/spec/feature-search-environment-schema.d.ts.map +1 -1
  102. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts +48 -0
  103. package/dist/lib/openapi/spec/feature-search-response-schema.d.ts.map +1 -1
  104. package/dist/lib/openapi/spec/health-overview-schema.d.ts +96 -0
  105. package/dist/lib/openapi/spec/health-overview-schema.d.ts.map +1 -1
  106. package/dist/lib/openapi/spec/health-report-schema.d.ts +96 -0
  107. package/dist/lib/openapi/spec/health-report-schema.d.ts.map +1 -1
  108. package/dist/lib/openapi/spec/index.d.ts +1 -0
  109. package/dist/lib/openapi/spec/index.d.ts.map +1 -1
  110. package/dist/lib/openapi/spec/index.js +1 -0
  111. package/dist/lib/openapi/spec/index.js.map +1 -1
  112. package/dist/lib/openapi/spec/profile-schema.d.ts +48 -0
  113. package/dist/lib/openapi/spec/profile-schema.d.ts.map +1 -1
  114. package/dist/lib/openapi/spec/project-overview-schema.d.ts +96 -0
  115. package/dist/lib/openapi/spec/project-overview-schema.d.ts.map +1 -1
  116. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts +6 -0
  117. package/dist/lib/openapi/spec/release-plan-milestone-schema.d.ts.map +1 -1
  118. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts +6 -0
  119. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.d.ts.map +1 -1
  120. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js +6 -2
  121. package/dist/lib/openapi/spec/release-plan-milestone-strategy-schema.js.map +1 -1
  122. package/dist/lib/openapi/spec/release-plan-schema.d.ts +12 -0
  123. package/dist/lib/openapi/spec/release-plan-schema.d.ts.map +1 -1
  124. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts +12 -0
  125. package/dist/lib/openapi/spec/release-plan-template-schema.d.ts.map +1 -1
  126. package/dist/lib/openapi/spec/release-plans-schema.d.ts +3337 -0
  127. package/dist/lib/openapi/spec/release-plans-schema.d.ts.map +1 -0
  128. package/dist/lib/openapi/spec/release-plans-schema.js +35 -0
  129. package/dist/lib/openapi/spec/release-plans-schema.js.map +1 -0
  130. package/dist/lib/openapi/spec/search-features-schema.d.ts +96 -0
  131. package/dist/lib/openapi/spec/search-features-schema.d.ts.map +1 -1
  132. package/dist/lib/routes/admin-api/user-admin.d.ts.map +1 -1
  133. package/dist/lib/routes/admin-api/user-admin.js +3 -2
  134. package/dist/lib/routes/admin-api/user-admin.js.map +1 -1
  135. package/dist/lib/routes/auth/simple-password-provider.d.ts.map +1 -1
  136. package/dist/lib/routes/auth/simple-password-provider.js +2 -1
  137. package/dist/lib/routes/auth/simple-password-provider.js.map +1 -1
  138. package/dist/lib/routes/util.d.ts.map +1 -1
  139. package/dist/lib/routes/util.js +9 -6
  140. package/dist/lib/routes/util.js.map +1 -1
  141. package/dist/lib/routes/util.test.d.ts +2 -0
  142. package/dist/lib/routes/util.test.d.ts.map +1 -0
  143. package/dist/lib/routes/util.test.js +18 -0
  144. package/dist/lib/routes/util.test.js.map +1 -0
  145. package/dist/lib/server-impl.d.ts +5 -2
  146. package/dist/lib/server-impl.d.ts.map +1 -1
  147. package/dist/lib/server-impl.js +3 -1
  148. package/dist/lib/server-impl.js.map +1 -1
  149. package/dist/lib/services/addon-service.d.ts +6 -1
  150. package/dist/lib/services/addon-service.d.ts.map +1 -1
  151. package/dist/lib/services/addon-service.js +16 -1
  152. package/dist/lib/services/addon-service.js.map +1 -1
  153. package/dist/lib/services/addon-service.test.js +10 -8
  154. package/dist/lib/services/addon-service.test.js.map +1 -1
  155. package/dist/lib/types/experimental.d.ts +1 -1
  156. package/dist/lib/types/experimental.d.ts.map +1 -1
  157. package/dist/lib/types/experimental.js +1 -2
  158. package/dist/lib/types/experimental.js.map +1 -1
  159. package/dist/lib/types/model.d.ts +3 -4
  160. package/dist/lib/types/model.d.ts.map +1 -1
  161. package/dist/lib/types/model.js.map +1 -1
  162. package/dist/lib/types/option.d.ts +4 -0
  163. package/dist/lib/types/option.d.ts.map +1 -1
  164. package/dist/lib/types/stores/event-store.d.ts +4 -0
  165. package/dist/lib/types/stores/event-store.d.ts.map +1 -1
  166. package/dist/lib/util/extract-user.d.ts +3 -0
  167. package/dist/lib/util/extract-user.d.ts.map +1 -1
  168. package/dist/lib/util/extract-user.js +4 -1
  169. package/dist/lib/util/extract-user.js.map +1 -1
  170. package/dist/server-dev.js +0 -1
  171. package/dist/server-dev.js.map +1 -1
  172. package/dist/test/e2e/api/admin/addon.e2e.test.js +1 -0
  173. package/dist/test/e2e/api/admin/addon.e2e.test.js.map +1 -1
  174. package/dist/test/e2e/services/addon-service.e2e.test.js +2 -0
  175. package/dist/test/e2e/services/addon-service.e2e.test.js.map +1 -1
  176. package/dist/test/e2e/stores/event-store.e2e.test.js +140 -2
  177. package/dist/test/e2e/stores/event-store.e2e.test.js.map +1 -1
  178. package/dist/test/fixtures/fake-event-store.d.ts +4 -0
  179. package/dist/test/fixtures/fake-event-store.d.ts.map +1 -1
  180. package/dist/test/fixtures/fake-event-store.js +6 -0
  181. package/dist/test/fixtures/fake-event-store.js.map +1 -1
  182. package/frontend/build/index.html +1 -1
  183. package/frontend/build/static/AdvancedPlayground-CF0hkpiE.js +3 -0
  184. package/frontend/build/static/BackendConnections-DhZczar-.js +1 -0
  185. package/frontend/build/static/{CreateProject-DLXZ-0X5.js → CreateProject-DV-Ad8Sn.js} +1 -1
  186. package/frontend/build/static/{EnterpriseEdge-CBHzLvsx.js → EnterpriseEdge-D1To2ugP.js} +2 -2
  187. package/frontend/build/static/{FeatureMetricsChart-OmbUYN9n.js → FeatureMetricsChart-D8sRgx5P.js} +2 -2
  188. package/frontend/build/static/FeatureStaleDialog-DOkhgvaj.js +7 -0
  189. package/frontend/build/static/{FeatureViewLazyExport-JSvPNdBO.js → FeatureViewLazyExport-Bsw7-knb.js} +5 -5
  190. package/frontend/build/static/{FlagMetricsChart-D_AVQDU4.js → FlagMetricsChart-CF_kEyQa.js} +2 -2
  191. package/frontend/build/static/FrontendNetworkTrafficUsage-C8zJSvoc.js +1 -0
  192. package/frontend/build/static/GridLayoutWrapper-DpJcUbQB.js +3 -0
  193. package/frontend/build/static/{ImpactMetricsPage-PgSyQayh.js → ImpactMetricsPage-KLVv-tP4.js} +1 -1
  194. package/frontend/build/static/{LazyAdminExport-BYVn1j-Y.js → LazyAdminExport-CWQiknO-.js} +12 -12
  195. package/frontend/build/static/{LazyProjectExport-DkfLitTN.js → LazyProjectExport-DsMn4Yxm.js} +25 -25
  196. package/frontend/build/static/LifecycleChartComponent-cxR-TN3V.js +7 -0
  197. package/frontend/build/static/LineChartComponent-_yZEp3dd.js +1 -0
  198. package/frontend/build/static/{MarkCompletedDialogue-CkeYSNgH.js → MarkCompletedDialogue-DFtLyDN0.js} +1 -1
  199. package/frontend/build/static/{NetworkOverview-BQlqnxzn.js → NetworkOverview-DxaPXUzZ.js} +1 -1
  200. package/frontend/build/static/{NetworkPrometheusAPIWarning-Ba6dYYvk.js → NetworkPrometheusAPIWarning-ltyTlXFF.js} +1 -1
  201. package/frontend/build/static/{NetworkTraffic-p3aQqm31.js → NetworkTraffic-Dhw4yIBs.js} +1 -1
  202. package/frontend/build/static/{NetworkTrafficUsage-y1jnkey9.js → NetworkTrafficUsage-deKWRhIS.js} +1 -1
  203. package/frontend/build/static/{PercentageDonut-WlMbDfDd.js → PercentageDonut-JGNh2FVZ.js} +1 -1
  204. package/frontend/build/static/ReactJSONEditor-GHl7KvdS.js +3864 -0
  205. package/frontend/build/static/{RoleCell-BtYhy-KF.js → RoleCell-CjVCxBgl.js} +1 -1
  206. package/frontend/build/static/{aggregateFeatureMetrics-DqOEKfDa.js → aggregateFeatureMetrics-YEdZNNoV.js} +1 -1
  207. package/frontend/build/static/formatTickValue-BZb4ZIL9.js +6 -0
  208. package/frontend/build/static/heart-FRDdnX3J.svg +3 -0
  209. package/frontend/build/static/index-DMSjiFEm.js +583 -0
  210. package/frontend/build/static/index-DcWBU_a4.js +12 -0
  211. package/frontend/build/static/networkTrafficUsageHighlightPlugin-BbfAyDiQ.js +1 -0
  212. package/frontend/build/static/texture-signup-CpC2AFD3.png +0 -0
  213. package/frontend/build/static/{useApiTokens-BnZdG9it.js → useApiTokens-DBB3NvXL.js} +1 -1
  214. package/frontend/package.json +14 -9
  215. package/package.json +47 -47
  216. package/frontend/build/static/AdvancedPlayground-Bh4g1c_w.js +0 -3
  217. package/frontend/build/static/BackendConnections-BwktKdeU.js +0 -1
  218. package/frontend/build/static/FeatureStaleDialog-Ckz7F5lw.js +0 -7
  219. package/frontend/build/static/FrontendNetworkTrafficUsage-BXS05ybi.js +0 -1
  220. package/frontend/build/static/GridLayoutWrapper-CyXfGdie.js +0 -3
  221. package/frontend/build/static/LifecycleChartComponent-Clq_uGBn.js +0 -7
  222. package/frontend/build/static/LineChartComponent-kHzkQRMt.js +0 -1
  223. package/frontend/build/static/ReactJSONEditor-CD6u2VLM.js +0 -89
  224. package/frontend/build/static/formatTickValue-Ca6X6Ivj.js +0 -6
  225. package/frontend/build/static/index-Bj8wwcOa.js +0 -11
  226. package/frontend/build/static/index-CiWHTkEm.js +0 -580
  227. package/frontend/build/static/networkTrafficUsageHighlightPlugin-Y95iEJUb.js +0 -1
  228. package/frontend/build/static/unleash_logo_dark_no_label-DHgOj_XN.svg +0 -6
  229. package/frontend/build/static/unleash_logo_white_no_label-BazgWvcx.svg +0 -6
@@ -1 +1 @@
1
- {"version":3,"file":"fake-event-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-event-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fake-event-store.js","sourceRoot":"","sources":["../../../src/test/fixtures/fake-event-store.ts"],"names":[],"mappings":"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"}
@@ -21,7 +21,7 @@
21
21
  rel="stylesheet"
22
22
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0"
23
23
  />
24
- <script type="module" crossorigin src="/static/index-CiWHTkEm.js"></script>
24
+ <script type="module" crossorigin src="/static/index-DMSjiFEm.js"></script>
25
25
  <link rel="stylesheet" crossorigin href="/static/style-BfdqROT6.css">
26
26
  </head>
27
27
  <body>
@@ -0,0 +1,3 @@
1
+ import{u as wt,g as Et,r as p,_ as Tt,j as t,a as xe,U as It,b as N,B as k,C as L,s as E,d as Pt,c as Rt,e as Ot,f as Me,h as Ft,i as Z,T as D,G as Bt,k as oe,p as we,l as Ee,m as ne,A as Ue,n as Lt,o as Nt,q as At,t as $t,v as Dt,w as Ht,x as Te,P as Wt,I as Ie,y as _,L as zt,z as Mt,D as Ut,E as _t,F as _e,H as Ge,J as Gt,K as X,M as Ve,N as ie,O as qe,Q as Vt,R as Q,S as pe,V as qt,W as Kt,X as Jt,Y as Ke,Z as ae,$ as Yt,a0 as Zt,a1 as Qt,a2 as Xt,a3 as en,a4 as tn,a5 as nn,a6 as rn,a7 as an,a8 as sn,a9 as on,aa as B,ab as le,ac as ln,ad as cn,ae as dn,af as un,ag as hn,ah as gn,ai as Pe,aj as Je,ak as ye,al as be,am as Ye,an as ve,ao as Ze,ap as Qe,aq as Xe,ar as fn,as as Re,at as pn,au as mn,av as xn,aw as de,ax as et,ay as yn,az as bn,aA as vn,aB as jn,aC as Cn,aD as Sn}from"./index-DMSjiFEm.js";import{c as kn,d as wn,s as En,h as Tn,f as In,a as Pn,l as Rn,b as On,e as Fn,g as Bn,i as Ln,j as Nn,k as An,m as $n,E as se,n as Dn,o as je,p as Hn,q as Wn,r as zn,t as Mn,u as Un,v as _n,w as Gn,x as Vn,y as tt,z as qn,A as U,H as nt,B as o,C as Kn,D as Jn,S as Yn,F as Zn,G as Qn}from"./index-DcWBU_a4.js";import{u as Xn}from"./useApiTokens-DBB3NvXL.js";const er=()=>{const{makeRequest:e,createRequest:n,errors:r,loading:a}=wt({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async i=>{const h=`${s}/advanced`,g=n(h,{method:"POST",body:JSON.stringify(i)});return(await e(g.caller,g.id)).json()},evaluateChangeRequestPlayground:async(i,h)=>{const g=`${s}/change-request/${i}`,d=n(g,{method:"POST",body:JSON.stringify(h)});return(await e(d.caller,d.id)).json()},errors:r,loading:a}};var Ce={exports:{}};function rt(e,n=100,r={}){if(typeof e!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof e}\`.`);if(n<0)throw new RangeError("`wait` must not be negative.");const{immediate:a}=typeof r=="boolean"?{immediate:r}:r;let s,l,c,i,h;function g(){const m=s,x=l;return s=void 0,l=void 0,h=e.apply(m,x),h}function d(){const m=Date.now()-i;m<n&&m>=0?c=setTimeout(d,n-m):(c=void 0,a||(h=g()))}const u=function(...m){if(s&&this!==s&&Object.getPrototypeOf(this)===Object.getPrototypeOf(s))throw new Error("Debounced method called with different contexts of the same prototype.");s=this,l=m,i=Date.now();const x=a&&!c;return c||(c=setTimeout(d,n)),x&&(h=g()),h};return Object.defineProperty(u,"isPending",{get(){return c!==void 0}}),u.clear=()=>{c&&(clearTimeout(c),c=void 0)},u.flush=()=>{c&&u.trigger()},u.trigger=()=>{h=g(),u.clear()},u}Ce.exports.debounce=rt;Ce.exports=rt;var tr=Ce.exports;const nr=Et(tr);var Oe=function(n){n===void 0&&(n={});var{crosshairCursor:r=!1}=n,a=[];n.closeBracketsKeymap!==!1&&(a=a.concat(kn)),n.defaultKeymap!==!1&&(a=a.concat(wn)),n.searchKeymap!==!1&&(a=a.concat(En)),n.historyKeymap!==!1&&(a=a.concat(Tn)),n.foldKeymap!==!1&&(a=a.concat(In)),n.completionKeymap!==!1&&(a=a.concat(Pn)),n.lintKeymap!==!1&&(a=a.concat(Rn));var s=[];return n.lineNumbers!==!1&&s.push(On()),n.highlightActiveLineGutter!==!1&&s.push(Fn()),n.highlightSpecialChars!==!1&&s.push(Bn()),n.history!==!1&&s.push(Ln()),n.foldGutter!==!1&&s.push(Nn()),n.drawSelection!==!1&&s.push(An()),n.dropCursor!==!1&&s.push($n()),n.allowMultipleSelections!==!1&&s.push(se.allowMultipleSelections.of(!0)),n.indentOnInput!==!1&&s.push(Dn()),n.syntaxHighlighting!==!1&&s.push(je(qn,{fallback:!0})),n.bracketMatching!==!1&&s.push(Hn()),n.closeBrackets!==!1&&s.push(Wn()),n.autocompletion!==!1&&s.push(zn()),n.rectangularSelection!==!1&&s.push(Mn()),r!==!1&&s.push(Un()),n.highlightActiveLine!==!1&&s.push(_n()),n.highlightSelectionMatches!==!1&&s.push(Gn()),n.tabSize&&typeof n.tabSize=="number"&&s.push(Vn.of(" ".repeat(n.tabSize))),s.concat([tt.of(a.flat())]).filter(Boolean)};const rr="#e5c07b",Fe="#e06c75",ar="#56b6c2",sr="#ffffff",re="#abb2bf",me="#7d8799",or="#61afef",ir="#98c379",Be="#d19a66",lr="#c678dd",cr="#21252b",Le="#2c313a",Ne="#282c34",ue="#353a42",dr="#3E4451",Ae="#528bff",ur=U.theme({"&":{color:re,backgroundColor:Ne},".cm-content":{caretColor:Ae},".cm-cursor, .cm-dropCursor":{borderLeftColor:Ae},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:dr},".cm-panels":{backgroundColor:cr,color:re},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:Ne,color:me,border:"none"},".cm-activeLineGutter":{backgroundColor:Le},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:ue},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:ue,borderBottomColor:ue},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:Le,color:re}}},{dark:!0}),hr=nt.define([{tag:o.keyword,color:lr},{tag:[o.name,o.deleted,o.character,o.propertyName,o.macroName],color:Fe},{tag:[o.function(o.variableName),o.labelName],color:or},{tag:[o.color,o.constant(o.name),o.standard(o.name)],color:Be},{tag:[o.definition(o.name),o.separator],color:re},{tag:[o.typeName,o.className,o.number,o.changed,o.annotation,o.modifier,o.self,o.namespace],color:rr},{tag:[o.operator,o.operatorKeyword,o.url,o.escape,o.regexp,o.link,o.special(o.string)],color:ar},{tag:[o.meta,o.comment],color:me},{tag:o.strong,fontWeight:"bold"},{tag:o.emphasis,fontStyle:"italic"},{tag:o.strikethrough,textDecoration:"line-through"},{tag:o.link,color:me,textDecoration:"underline"},{tag:o.heading,fontWeight:"bold",color:Fe},{tag:[o.atom,o.bool,o.special(o.variableName)],color:Be},{tag:[o.processingInstruction,o.string,o.inserted],color:ir},{tag:o.invalid,color:sr}]),gr=[ur,je(hr)];var fr=U.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),pr=function(n){n===void 0&&(n={});var{indentWithTab:r=!0,editable:a=!0,readOnly:s=!1,theme:l="light",placeholder:c="",basicSetup:i=!0}=n,h=[];switch(r&&h.unshift(tt.of([Kn])),i&&(typeof i=="boolean"?h.unshift(Oe()):h.unshift(Oe(i))),c&&h.unshift(Jn(c)),l){case"light":h.push(fr);break;case"dark":h.push(gr);break;case"none":break;default:h.push(l);break}return a===!1&&h.push(U.editable.of(!1)),s&&h.push(se.readOnly.of(!0)),[...h]},mr=e=>({line:e.state.doc.lineAt(e.state.selection.main.from),lineCount:e.state.doc.lines,lineBreak:e.state.lineBreak,length:e.state.doc.length,readOnly:e.state.readOnly,tabSize:e.state.tabSize,selection:e.state.selection,selectionAsSingle:e.state.selection.asSingle().main,ranges:e.state.selection.ranges,selectionCode:e.state.sliceDoc(e.state.selection.main.from,e.state.selection.main.to),selections:e.state.selection.ranges.map(n=>e.state.sliceDoc(n.from,n.to)),selectedText:e.state.selection.ranges.some(n=>!n.empty)}),$e=Zn.define(),xr=[];function yr(e){var{value:n,selection:r,onChange:a,onStatistics:s,onCreateEditor:l,onUpdate:c,extensions:i=xr,autoFocus:h,theme:g="light",height:d=null,minHeight:u=null,maxHeight:m=null,width:x=null,minWidth:S=null,maxWidth:I=null,placeholder:j="",editable:P=!0,readOnly:A=!1,indentWithTab:O=!0,basicSetup:T=!0,root:w,initialState:y}=e,[f,b]=p.useState(),[C,R]=p.useState(),[$,z]=p.useState(),J=U.theme({"&":{height:d,minHeight:u,maxHeight:m,width:x,minWidth:S,maxWidth:I},"& .cm-scroller":{height:"100% !important"}}),V=U.updateListener.of(F=>{if(F.docChanged&&typeof a=="function"&&!F.transactions.some(ee=>ee.annotation($e))){var G=F.state.doc,q=G.toString();a(q,F)}s&&s(mr(F))}),Y=pr({theme:g,editable:P,readOnly:A,placeholder:j,indentWithTab:O,basicSetup:T}),H=[V,J,...Y];return c&&typeof c=="function"&&H.push(U.updateListener.of(c)),H=H.concat(i),p.useLayoutEffect(()=>{if(f&&!$){var F={doc:n,selection:r,extensions:H},G=y?se.fromJSON(y.json,F,y.fields):se.create(F);if(z(G),!C){var q=new U({state:G,parent:f,root:w});R(q),l&&l(q,G)}}return()=>{C&&(z(void 0),R(void 0))}},[f,$]),p.useEffect(()=>{e.container&&b(e.container)},[e.container]),p.useEffect(()=>()=>{C&&(C.destroy(),R(void 0))},[C]),p.useEffect(()=>{h&&C&&C.focus()},[h,C]),p.useEffect(()=>{C&&C.dispatch({effects:Yn.reconfigure.of(H)})},[g,i,d,u,m,x,S,I,j,P,A,O,T,a,c]),p.useEffect(()=>{if(n!==void 0){var F=C?C.state.doc.toString():"";C&&n!==F&&C.dispatch({changes:{from:0,to:F.length,insert:n||""},annotations:[$e.of(!0)]})}},[n,C]),{state:$,setState:z,view:C,setView:R,container:f,setContainer:b}}var br=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],at=p.forwardRef((e,n)=>{var{className:r,value:a="",selection:s,extensions:l=[],onChange:c,onStatistics:i,onCreateEditor:h,onUpdate:g,autoFocus:d,theme:u="light",height:m,minHeight:x,maxHeight:S,width:I,minWidth:j,maxWidth:P,basicSetup:A,placeholder:O,indentWithTab:T,editable:w,readOnly:y,root:f,initialState:b}=e,C=Tt(e,br),R=p.useRef(null),{state:$,view:z,container:J,setContainer:V}=yr({root:f,value:a,autoFocus:d,theme:u,height:m,minHeight:x,maxHeight:S,width:I,minWidth:j,maxWidth:P,basicSetup:A,placeholder:O,indentWithTab:T,editable:w,readOnly:y,selection:s,onChange:c,onStatistics:i,onCreateEditor:h,onUpdate:g,extensions:l,initialState:b});p.useImperativeHandle(n,()=>({editor:R.current,state:$,view:z}),[R,J,$,z]);var Y=p.useCallback(F=>{R.current=F,V(F)},[V]);if(typeof a!="string")throw new Error("value must be typeof string but got "+typeof a);var H=typeof u=="string"?"cm-theme-"+u:"cm-theme";return t.jsx("div",xe({ref:Y,className:""+H+(r?" "+r:"")},C))});at.displayName="CodeMirror";var st=e=>{var{theme:n,settings:r={},styles:a=[]}=e,s={".cm-gutters":{}},l={};r.background&&(l.backgroundColor=r.background),r.backgroundImage&&(l.backgroundImage=r.backgroundImage),r.foreground&&(l.color=r.foreground),r.fontSize&&(l.fontSize=r.fontSize),(r.background||r.foreground)&&(s["&"]=l),r.fontFamily&&(s["&.cm-editor .cm-scroller"]={fontFamily:r.fontFamily}),r.gutterBackground&&(s[".cm-gutters"].backgroundColor=r.gutterBackground),r.gutterForeground&&(s[".cm-gutters"].color=r.gutterForeground),r.gutterBorder&&(s[".cm-gutters"].borderRightColor=r.gutterBorder),r.caret&&(s[".cm-content"]={caretColor:r.caret},s[".cm-cursor, .cm-dropCursor"]={borderLeftColor:r.caret});var c={};r.gutterActiveForeground&&(c.color=r.gutterActiveForeground),r.lineHighlight&&(s[".cm-activeLine"]={backgroundColor:r.lineHighlight},c.backgroundColor=r.lineHighlight),s[".cm-activeLineGutter"]=c,r.selection&&(s["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:r.selection+" !important"}),r.selectionMatch&&(s["& .cm-selectionMatch"]={backgroundColor:r.selectionMatch});var i=U.theme(s,{dark:n==="dark"}),h=nt.define(a),g=[i,je(h)];return g},vr={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#ddceb154"},jr=[{tag:[o.comment,o.bracket],color:"#b6ad9a"},{tag:[o.atom,o.number,o.keyword,o.link,o.attributeName,o.quote],color:"#063289"},{tag:[o.emphasis,o.heading,o.tagName,o.propertyName,o.variableName],color:"#2d2006"},{tag:[o.typeName,o.url,o.string],color:"#896724"},{tag:[o.operator,o.string],color:"#1659df"},{tag:[o.propertyName],color:"#b29762"},{tag:[o.unit,o.punctuation],color:"#063289"}],Cr=e=>{var{theme:n="light",settings:r={},styles:a=[]}={};return st({theme:n,settings:xe({},vr,r),styles:[...jr,...a]})},Sr=Cr(),kr={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"#91ff6c26",selectionMatch:"#91ff6c26",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},wr=[{tag:[o.comment,o.bracket],color:"#6c6783"},{tag:[o.atom,o.number,o.keyword,o.link,o.attributeName,o.quote],color:"#ffcc99"},{tag:[o.emphasis,o.heading,o.tagName,o.propertyName,o.className,o.variableName],color:"#eeebff"},{tag:[o.typeName,o.url],color:"#7a63ee"},{tag:o.operator,color:"#ffad5c"},{tag:o.string,color:"#ffb870"},{tag:[o.propertyName],color:"#9a86fd"},{tag:[o.unit,o.punctuation],color:"#e09142"}],Er=e=>{var{theme:n="dark",settings:r={},styles:a=[]}={};return st({theme:n,settings:xe({},kr,r),styles:[...wr,...a]})},Tr=Er();const Ir=E("aside")(({theme:e})=>({height:"50px",backgroundColor:e.palette.background.paper,borderTopRightRadius:e.shape.borderRadiusMedium,borderTopLeftRadius:e.shape.borderRadiusMedium,padding:e.spacing(1,2),color:e.palette.text.primary,display:"flex",justifyContent:"space-between",alignItems:"center",border:`1px solid ${e.palette.divider}`})),ot=E("div")(({theme:e,style:n})=>({width:e.spacing(3),height:e.spacing(3),display:"flex",alignItems:"center",color:e.palette.background.paper,justifyContent:"center",transition:"background-color 0.5s ease-in-out",borderRadius:"50%",...n})),Pr=E("div")(({theme:e})=>({fontSize:e.fontSizes.smallBody,color:e.palette.error.dark,marginRight:e.spacing(1)})),Rr=()=>{const e=N();return t.jsx(ot,{style:{backgroundColor:e.palette.success.main},children:t.jsx(Pt,{sx:n=>({width:n.spacing(2),height:n.spacing(2)})})})},Or=()=>{const e=N();return t.jsx(ot,{style:{backgroundColor:e.palette.error.main},children:t.jsx(Rt,{})})},Fr=({context:e,setContext:n,error:r})=>{const{themeMode:a}=p.useContext(It),s=N(),l=p.useCallback(i=>{n(i)},[n]),c=`calc(6 * ${s.typography.body1.fontSize} * ${s.typography.body1.lineHeight}) + 8px`;return t.jsxs(k,{sx:{width:"100%"},children:[t.jsxs(Ir,{children:["JSON",t.jsx(L,{condition:!!r,show:t.jsxs(k,{sx:i=>({display:"flex",alignItems:"center"}),children:[t.jsx(Pr,{children:r}),t.jsx(Or,{})]}),elseShow:t.jsx(Rr,{})})]}),t.jsx(at,{value:e,minHeight:c,theme:a==="dark"?Tr:Sr,extensions:[Qn()],onChange:l,style:{border:`1px solid ${s.palette.divider}`,borderTop:"none"},placeholder:JSON.stringify({currentTime:"2022-07-04T14:13:03.929Z",appName:"playground",userId:"test",remoteAddress:"127.0.0.1"},null,2)})]})};function it(e){return Array.isArray(e)?e:[e]}const Br=e=>!e||e.length===0||e.length===1&&e[0]==="*"?"*":it(e),Lr=e=>it(e),Nr=e=>{const n=Ar(e);return n.length>0?n[0]:""},Ar=e=>e.filter(({enabled:n})=>!!n).sort((n,r)=>n.sortOrder-r.sortOrder).map(({name:n})=>n),$r=(e,n)=>"100%",Dr=e=>typeof e=="string"?!0:Array.isArray(e)?e.every(n=>typeof n=="string"):!1,Hr=e=>{const n=new Set(["appName","environment","userId","sessionId","remoteAddress","currentTime","properties"]),r={...e};let a=!1;for(const s in e)n.has(s)||(r.properties||(r.properties={}),r.properties[s]=e[s],delete r[s],a=!0);return!a&&!e.properties&&delete r.properties,r},Wr=e=>{const[n]=e.split("."),[r,a]=n.split(":");if(!r||!a)throw new Error("Invalid token format");if(a==="*")throw new Error("Admin tokens are not supported in the playground")},zr=e=>{const[n]=e.split(".");return n.split(":")},Mr=e=>Ot({mode:"all"},e),Ur=(e,{groupOptions:n})=>{const r=l=>l.toSorted((c,i)=>c.sortOrder-i.sortOrder).map(c=>({key:c.name,label:c.name}));if(!n)return r(e);const a=e.reduce(({project:l,global:c},i)=>(i.project?l.push(i):c.push(i),{project:l,global:c}),{project:[],global:[]}),s=[];return a.project.length&&s.push({groupHeader:"Project context fields",options:r(a.project)}),a.global.length&&s.push({groupHeader:"Global context fields",options:r(a.global)}),s},_r=({context:e,setContext:n})=>{const r=N(),{setToastData:a}=Me(),{context:s}=Mr(),l=Ft("projectContextFields"),c=Ur(s,{groupOptions:l}),[i,h]=p.useState(),[g,d]=p.useState(!1),[u,m]=p.useState(""),[x,S]=p.useState(""),I=p.useMemo(()=>nr(w=>{var y;if(!w)return h(void 0);try{const f=JSON.parse(w);d(f[u]!==void 0||((y=f==null?void 0:f.properties)==null?void 0:y[u])!==void 0)}catch(f){return h(Z(f))}return h(void 0)},250),[h,u,d]);p.useEffect(()=>{I(e)},[I,e]);const j=()=>{try{const w=JSON.parse(e||"{}");n(JSON.stringify(Hr({...w,[u]:x}),null,2));const y=s.find(f=>f.name===u);if(y!=null&&y.legalValues&&y.legalValues.length>0||u==="currentTime")return S("")}catch(w){a({type:"error",text:`Error parsing context: ${Z(w)}`})}},P=(w,y)=>{if(Dr(y)){if(Array.isArray(y)){const f=(y||[]).length>1?y.join(","):y[0];return S(f)}S(y)}},A=()=>{if(!x||x==="")return[];const w=s.find(f=>f.name===u),y=((w==null?void 0:w.legalValues)||[]).length>1;return x.includes(",")&&y?x.split(","):[x]},O=()=>{if(u==="currentTime"){const y=we(x),b=y?Ee(y.toISOString()):Ee(new Date().toISOString());return t.jsx(ne,{id:"date",label:"Date",size:"small",type:"datetime-local",value:b,sx:{width:200,maxWidth:"100%"},onChange:C=>{const R=we(C.target.value),$=R==null?void 0:R.toISOString();$&&S($)},InputLabelProps:{shrink:!0},required:!0})}const w=s.find(y=>y.name===u);if(w!=null&&w.legalValues&&w.legalValues.length>0){const y=w.legalValues.map(({value:f})=>f);return t.jsx(Ue,{disablePortal:!0,limitTags:3,id:"context-legal-values",multiple:!0,options:y,disableCloseOnSelect:!0,size:"small",value:A(),onChange:P,getOptionLabel:f=>f,renderOption:(f,b,{selected:C})=>t.jsxs("li",{...f,children:[t.jsx(Lt,{icon:t.jsx(At,{fontSize:"small"}),checkedIcon:t.jsx(Nt,{fontSize:"small"}),sx:R=>({marginRight:R.spacing(.5)}),checked:C}),b]}),sx:{width:370,maxWidth:"100%"},renderInput:f=>t.jsx(ne,{...f,label:"Value"})})}return t.jsx(ne,{label:"Value",id:"context-value",sx:{width:370,maxWidth:"100%"},placeholder:"value1,value2,value3",size:"small",value:x,onChange:y=>S(y.target.value||"")})},T=w=>{if(m(w||""),w==="currentTime")return S(new Date().toISOString());S("")};return t.jsxs(k,{children:[t.jsx(k,{sx:{display:"flex",alignItems:"center",mb:2},children:t.jsx(D,{variant:"body2",color:r.palette.text.primary,sx:{ml:1},children:"Unleash context"})}),t.jsxs(k,{sx:{display:"flex",gap:2,flexWrap:"wrap",mb:2},children:[t.jsx(Bt,{label:"Context field",labelId:"context-field-label",id:"context-field",value:u,onChange:T,variant:"outlined",size:"small",sx:{width:200,maxWidth:"100%"},options:c}),O(),t.jsx(oe,{variant:"outlined",disabled:!u||!!i,onClick:j,sx:{width:"95px",maxHeight:"40px"},children:`${g?"Replace":"Add"} `})]}),t.jsx(Fr,{context:e,setContext:n,error:i})]})},Gr=({environments:e,setEnvironments:n,availableEnvironments:r,disabled:a})=>{const s=[...r.map(i=>({label:i,id:i}))],l=s.filter(({id:i})=>e.includes(i)),c=(i,h,g)=>{const d=h;return g==="clear"||d===null?n([]):Array.isArray(d)?d.length===0?n([]):n(d.map(({id:u})=>u)):n([d.id])};return t.jsx(Ue,{disablePortal:!0,limitTags:3,id:"environment",multiple:!0,options:s,sx:{flex:1},renderInput:i=>t.jsx(ne,{...i,label:"Environments"}),renderOption:$t,renderTags:(i,h)=>i.map((g,d)=>{const{key:u,...m}=h({index:d});return t.jsx(Dt,{size:"small",...m,label:g.label},u)}),getOptionLabel:({label:i})=>i,disableCloseOnSelect:!1,size:"small",value:l,onChange:c,disabled:a,"data-testid":"PLAYGROUND_ENVIRONMENT_SELECT"})},he={label:"ALL",id:"*"},De=E(Ut)({fontSize:"1.25rem"}),lt=E(Mt)(()=>({width:"100%"})),Vr=E(k)(({theme:e})=>({display:"grid",columnGap:e.spacing(2),rowGap:e.spacing(2),gridTemplateColumns:"1fr",[e.breakpoints.up("md")]:{gridTemplateColumns:"1fr 1fr"}})),qr=E(lt)(({theme:e})=>({"& label":{WebkitTextFillColor:e.palette.text.secondary},"& input.Mui-disabled":{WebkitTextFillColor:e.palette.text.secondary}})),Kr=({environments:e,projects:n,token:r,setProjects:a,setEnvironments:s,setToken:l,availableEnvironments:c,changeRequest:i,onClearChangeRequest:h})=>{const g=N(),{tokens:d}=Xn(),[u,m]=p.useState(),{projects:x}=Ht(),S=[he,...x.map(({name:f,id:b})=>({label:f,id:b}))],I=async f=>{const b=f.target.value;if(l==null||l(b),b===""){w();return}try{Wr(b),m(void 0),j(b)}catch(C){m(C.message)}},j=f=>{const[b,C]=zr(f);switch(s([C]),b){case"[]":A(f);break;case"*":O();break;default:T(b)}},P=f=>{!f.projects||f.projects==="*"?a([he.id]):typeof f.projects=="string"?a([f.projects]):Array.isArray(f.projects)&&a(f.projects)},A=f=>{const b=d.find(({secret:C})=>C===f);b?P(b):m("Invalid token. Ensure you use a valid token from this Unleash instance.")},O=()=>{a([he.id])},T=f=>{S.map(b=>b.id).includes(f)?a([f]):m(`Invalid token. Project ${f} does not exist.`)},w=()=>{m(void 0)},y=()=>{l==null||l(""),w()};return t.jsxs(k,{sx:{pb:2},children:[t.jsx(k,{sx:{display:"flex",alignItems:"center",mb:2},children:t.jsx(D,{variant:"body2",color:g.palette.text.primary,sx:{ml:1},children:"Access configuration"})}),t.jsxs(Vr,{children:[t.jsx(k,{children:t.jsx(Te,{arrow:!0,title:r?"Environment is automatically selected because you are using a token":"Select environments to use in the playground",children:t.jsx(k,{children:t.jsx(Gr,{environments:e,setEnvironments:s,availableEnvironments:c,disabled:!!(r||i)})})})}),t.jsx(k,{children:t.jsx(Te,{arrow:!0,title:r?"Project is automatically selected because you are using a token":"Select projects to use in the playground",children:t.jsx(Wt,{selectedProjects:n,onChange:a,dataTestId:"PLAYGROUND_PROJECT_SELECT",disabled:!!(r||i),limitTags:3})})}),t.jsx(k,{children:t.jsx(lt,{label:"API token",value:r||(i?" ":""),onChange:I,type:"text",error:!!u,errorText:u,placeholder:"Enter your API token","data-testid":"PLAYGROUND_TOKEN_INPUT",InputProps:{endAdornment:r?t.jsx(Ie,{position:"end","data-testid":"TOKEN_INPUT_CLEAR_BTN",children:t.jsx(_,{"aria-label":"clear API token",onClick:y,edge:"end",children:t.jsx(De,{})})}):null},disabled:!!i})}),t.jsx(L,{condition:!!i,show:t.jsxs(k,{sx:{display:"flex",gap:2},children:[t.jsx(k,{sx:{flex:1},children:t.jsx(qr,{label:"Change request",value:i?`Change request #${i}`:"",onChange:()=>{},type:"text",disabled:!0,InputProps:{endAdornment:t.jsx(Ie,{position:"end",children:t.jsx(_,{"aria-label":"clear Change request results",onClick:h,edge:"end",children:t.jsx(De,{})})})}})}),t.jsx(oe,{variant:"outlined",size:"small",to:`/projects/${n[0]}/change-requests/${i}`,component:zt,children:"View change request"})]})})]})]})},Jr=({availableEnvironments:e,environments:n,onSubmit:r,projects:a,token:s,setToken:l,setProjects:c,setEnvironments:i,context:h,setContext:g,changeRequest:d,onClearChangeRequest:u})=>t.jsxs(k,{component:"form",onSubmit:r,sx:{display:"flex",flexDirection:"column"},children:[t.jsx(Kr,{environments:Array.isArray(n)?n:[n],projects:a,token:s,setToken:l,setEnvironments:i,setProjects:c,availableEnvironments:e.map(({name:m})=>m),changeRequest:d,onClearChangeRequest:u}),t.jsx(_r,{context:h,setContext:g}),t.jsx(k,{sx:{mt:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:t.jsx(oe,{variant:"contained",size:"large",type:"submit",sx:{marginLeft:"auto"},children:"Try configuration"})})]}),Yr=E("div")(({style:e,theme:n})=>({width:"25px",height:"25px",borderRadius:"50%",color:n.palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",...e})),Zr=({style:e,children:n,type:r})=>{const a=N(),s={backgroundColor:a.palette.background.alternative,color:a.palette.common.white};return r==="secondary"&&(s.backgroundColor=a.palette.background.paper,s.color=a.palette.text.secondary),t.jsx(Yr,{style:{...s,...e},children:n})},ge=({headerText:e,bodyText:n,sectionNumber:r})=>t.jsx(k,{sx:{display:"flex",alignItems:"flex-start",mt:2,flexDirection:"column"},children:t.jsxs(k,{sx:{display:"flex"},children:[t.jsx(k,{children:t.jsx(Zr,{children:r})}),t.jsxs(k,{sx:{ml:2,display:"flex",flexDirection:"column"},children:[t.jsx(D,{variant:"body1",sx:{fontWeight:"bold"},children:e}),t.jsx(L,{condition:!!n,show:t.jsx(D,{variant:"body1",sx:{mt:1},children:n})})]})]})}),ct=()=>t.jsxs(k,{sx:{ml:4},children:[t.jsx(D,{variant:"body1",children:"Unleash playground is for helping you to understand how Unleash works, how feature flags are evaluated and for you to easily debug your feature flags."}),t.jsx(_t,{sx:{mt:2,mb:2}}),t.jsx(D,{variant:"body1",sx:{mb:1},children:"What you need to do is:"}),t.jsx(ge,{headerText:`Select in which environment you want to test your
2
+ feature flag configuration`,bodyText:`You can also specify specific projects, or check
3
+ flags in all projects.`,sectionNumber:"1"}),t.jsx(ge,{headerText:"Select a context field that you'd like to check",bodyText:"You can configure as many context fields as you want. You can also leave the context empty to test against an empty context.",sectionNumber:"2"}),t.jsx(ge,{headerText:"Submit the form to try the configuration",bodyText:"The results of evaluating your feature flags will appear after you submit the form. Then view the results.",sectionNumber:"3"})]});var Se={},Qr=Ge;Object.defineProperty(Se,"__esModule",{value:!0});var dt=Se.default=void 0,Xr=Qr(_e()),ea=t,ta=(0,Xr.default)((0,ea.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z"}),"Help");dt=Se.default=ta;const na=E(X)(({theme:e})=>({"& .MuiPaper-root":{borderRadius:e.shape.borderRadiusExtraLarge,border:`1px solid ${e.palette.divider}`,padding:e.spacing(8,4),maxWidth:"500px"}})),ra=()=>{const[e,n]=p.useState(null),r=l=>n(l.currentTarget),a=()=>n(null),s=!!e;return t.jsxs(k,{children:[t.jsx(_,{onClick:r,"aria-label":"Open Playground guidance",children:t.jsx(dt,{})}),t.jsxs(na,{open:s,anchorEl:e,onClose:a,anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},sx:l=>({zIndex:l.zIndex.tooltip,background:"none"}),children:[t.jsx(_,{onClick:a,sx:{position:"absolute",right:25,top:15},children:t.jsx(Gt,{})}),t.jsx(ct,{})]})]})},aa=e=>p.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},p.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84818 0.184159C8.56367 -0.0789547 8.1234 -0.0575747 7.86482 0.231912C7.60623 0.521399 7.62724 0.96937 7.91175 1.23248C9.48292 2.68551 10.6076 4.74934 10.6076 7C10.6076 9.25066 9.48292 11.3145 7.91175 12.7675C7.62724 13.0306 7.60623 13.4786 7.86482 13.7681C8.1234 14.0576 8.56367 14.079 8.84818 13.8158C10.6396 12.1592 11.9998 9.73702 11.9998 7C11.9998 4.26298 10.6396 1.84083 8.84818 0.184159ZM6.04105 2.23302C6.29109 1.93586 6.73054 1.90121 7.02259 2.15563C8.33146 3.29586 9.35426 5.02309 9.35426 6.99995C9.35426 8.97682 8.33145 10.7039 7.02259 11.8441C6.73054 12.0986 6.29109 12.0639 6.04105 11.7668C5.79101 11.4696 5.82506 11.0225 6.11711 10.768C7.19425 9.82969 7.96199 8.46967 7.96199 6.99995C7.96199 5.53021 7.19423 4.17007 6.11711 3.23173C5.82506 2.97731 5.79101 2.53017 6.04105 2.23302ZM6.56908 7.00015C6.56908 8.56492 5.3224 9.83342 3.78454 9.83342C2.24668 9.83342 1 8.56492 1 7.00015C1 5.43539 2.24668 4.16689 3.78454 4.16689C5.3224 4.16689 6.56908 5.43539 6.56908 7.00015Z",fill:"currentColor"})),sa=e=>p.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},p.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84835 0.184159C8.56384 -0.0789547 8.12358 -0.0575747 7.86499 0.231912C7.6064 0.521399 7.62741 0.96937 7.91192 1.23248C9.4831 2.68551 10.6078 4.74934 10.6078 7C10.6078 7.40738 10.5709 7.80863 10.5012 8.20125L11.6597 9.35972C11.8783 8.60937 12 7.81877 12 7C12 4.26298 10.6397 1.84083 8.84835 0.184159ZM9.35443 6.99995L9.35418 7.0542L7.63252 5.33255C7.30901 4.52372 6.76993 3.80029 6.11728 3.23173C5.82523 2.97731 5.79118 2.53017 6.04122 2.23302C6.29127 1.93586 6.73072 1.90121 7.02276 2.15563C8.33164 3.29586 9.35443 5.02309 9.35443 6.99995ZM7.57827 8.79752L6.48307 7.70233C6.17606 8.92745 5.08437 9.83342 3.78471 9.83342C2.24685 9.83342 1.00017 8.56492 1.00017 7.00015C1.00017 5.69492 1.8676 4.59583 3.04789 4.26714L0.458225 1.67748C0.172794 1.39205 0.178843 0.923223 0.471736 0.63033C0.764629 0.337437 1.23345 0.331388 1.51889 0.616819L13.2132 12.3111C13.4986 12.5965 13.4926 13.0654 13.1997 13.3583C12.9068 13.6511 12.4379 13.6572 12.1525 13.3718L10.556 11.7753C10.0694 12.539 9.48623 13.2259 8.84835 13.8158C8.56384 14.079 8.12358 14.0576 7.86499 13.7681C7.6064 13.4786 7.62741 13.0306 7.91192 12.7675C8.54021 12.1865 9.0971 11.5078 9.53922 10.7585L8.62356 9.84281C8.20906 10.6195 7.64861 11.2989 7.02276 11.8441C6.73072 12.0986 6.29127 12.0639 6.04122 11.7668C5.79118 11.4696 5.82523 11.0225 6.11728 10.768C6.73471 10.2302 7.25048 9.55374 7.57827 8.79752Z",fill:"currentColor"})),oa=e=>e==="unknown"||e==="unevaluated"?[ie,"info"]:e===!0?[aa,"success"]:[sa,"error"],K=({enabled:e,label:n,showIcon:r=!0})=>{const[a,s]=oa(e);return t.jsx(Ve,{color:s,icon:r?t.jsx(a,{"aria-hidden":!0,color:s,strokeWidth:"0.25"}):void 0,children:n})},ia=E(k)(({theme:e})=>({display:"flex",alignItems:"center",padding:e.spacing(1,0,1,2)})),la=E(k)(()=>({marginRight:"auto"})),ut=({feature:e})=>{const[n,r]=(()=>{var a;return e!=null&&e.isEnabled?[!0,"True"]:((a=e==null?void 0:e.strategies)==null?void 0:a.result)==="unknown"?["unknown","Unknown"]:[!1,"False"]})();return t.jsx(ia,{children:t.jsx(la,{"data-loading":!0,children:t.jsx(K,{enabled:n,label:r,showIcon:n!=="unknown"})})})};function ht(e){return e===void 0?!0:Object.values(e).every(n=>n&&typeof n=="object"?ht(n):n===null)}const He=e=>{var n,r;return(r=(n=e.strategies)==null?void 0:n.data)==null?void 0:r.find(a=>!qe.includes(a.name))},ca=e=>{var n,r,a,s;return((r=(n=e.strategies)==null?void 0:n.data)==null?void 0:r.length)>0&&!((s=(a=e.strategies)==null?void 0:a.data)!=null&&s.find(l=>qe.includes(l.name)))},da=E("div")({display:"flex",justifyContent:"space-between",width:"100%"}),ua=E("hgroup")(({theme:e})=>({display:"inline-flex",alignItems:"center",gap:e.spacing(1.5)})),ha=E("h3")(({theme:e})=>({fontWeight:"bold",fontSize:e.typography.subtitle1.fontSize,margin:0})),ga=({feature:e,input:n,onClose:r})=>{var d;const a=N(),[s,l,c]=e.isEnabled?[`This feature flag is True in ${n==null?void 0:n.environment} because `,"at least one strategy is True",a.palette.success.contrastText]:e.hasUnsatisfiedDependency&&!e.isEnabledInCurrentEnvironment?[`This feature flag is False in ${n==null?void 0:n.environment} because `,"parent dependency is not satisfied and the environment is disabled",a.palette.error.contrastText]:e.isEnabledInCurrentEnvironment?ca(e)?[`This feature flag is Unknown in ${n==null?void 0:n.environment} because `,"no strategies could be fully evaluated",a.palette.warning.contrastText]:He(e)?[`This feature flag is Unknown in ${n==null?void 0:n.environment} because `,"not all strategies could be fully evaluated",a.palette.warning.contrastText]:e.hasUnsatisfiedDependency?[`This feature flag is False in ${n==null?void 0:n.environment} because `,"parent dependency is not satisfied",a.palette.error.contrastText]:[`This feature flag is False in ${n==null?void 0:n.environment} because `,"all strategies are either False or could not be fully evaluated",a.palette.error.contrastText]:[`This feature flag is False in ${n==null?void 0:n.environment} because `,"the environment is disabled",a.palette.error.contrastText],i=ht(n==null?void 0:n.context)?"You did not provide a value for your context field in step 2 of the configuration":void 0,h=He(e)?"This feature uses custom strategies. Custom strategies can't be evaluated, so they will be marked accordingly.":void 0,g=r&&(u=>{u.stopPropagation(),r()});return t.jsxs(t.Fragment,{children:[t.jsxs(da,{children:[t.jsxs(ua,{children:[t.jsx(ha,{children:e.name}),t.jsx("p",{children:((d=e==null?void 0:e.strategies)==null?void 0:d.result)!=="unknown"?t.jsx(K,{enabled:e.isEnabled,label:e.isEnabled?"True":"False"}):t.jsx(K,{enabled:"unknown",label:"Unknown",showIcon:!1})})]}),t.jsx(_,{"aria-label":"Close",onClick:g,children:t.jsx(Vt,{})})]}),t.jsxs("p",{children:[s,t.jsx(D,{color:c,component:"span",children:l}),"."]}),i?t.jsx(Q,{color:"info",children:i}):null,h?t.jsx(Q,{severity:"warning",color:"info",children:h}):null]})},gt=E("div",{shouldForwardProp:e=>e!=="variant"})(({theme:e,variant:n})=>({"--font-size":e.typography.body2.fontSize,display:"flex",alignItems:"center",gap:e.spacing(1),padding:e.spacing(.5,.25),color:n==="ok"?e.palette.success.dark:e.palette.error.dark,fontSize:"var(--font-size)",svg:{fontSize:"calc(var(--font-size) * 1.25)"}})),fa=()=>t.jsxs(gt,{variant:"ok",children:[t.jsx(Kt,{"aria-hidden":"true"}),t.jsx("p",{children:"Constraint met by value in context"})]}),pa=({text:e})=>t.jsxs(gt,{variant:"error",children:[t.jsx(Jt,{"aria-hidden":"true"}),t.jsx("p",{children:e})]}),ft=({constraint:e,input:n})=>{if(!e)return null;const r=()=>{const a=n==null?void 0:n.context[e.contextName];return e.operator==="REGEX"&&a&&e.value?`Constraint not met – the value in the context ${e.contextName}: { ${a} } is not matching ${e.operator} ${e.value}`:a?`Constraint not met – the value in the context: { ${a} } is not ${e.operator} ${e.contextName}`:`Constraint not met – no value was specified for ${e.contextName}`};return t.jsx(pe,{children:t.jsxs("div",{children:[t.jsx(qt,{...e}),e.result?t.jsx(fa,{}):t.jsx(pa,{text:r()})]})})},ma=E(k)(({theme:e})=>({width:"auto",height:"auto",padding:e.spacing(2,3),borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.divider}`})),xa=({segment:e,input:n})=>{const r=e.constraints.length>0?t.jsx(Ke,{children:e.constraints.map(a=>t.jsx(ft,{constraint:a,input:n},ae(a)))}):void 0;return t.jsx(Yt,{segment:e,constraintList:r,isExpanded:!0})},ya=({strategyResult:e,input:n})=>{const{name:r,constraints:a,segments:s,parameters:l}=e,c=Zt(e),{strategies:i}=Qt(),{isCustomStrategy:h,customStrategyParameters:g}=Xt(e,i),d=!!(s&&s.length>0),u=!!(a&&(a==null?void 0:a.length)>0),m=r!=="default"&&Object.keys(en).includes(r);if(!l)return null;const x=[...d?s.map(j=>t.jsx(xa,{segment:j,input:n},ae(j))):[],...u?a.map(j=>t.jsx(ft,{constraint:j,input:n},ae(j))):[],m&&c.map((j,P)=>t.jsx(pe,{children:j},P)),h&&g.map((j,P)=>t.jsx(pe,{children:j},P)),r==="default"&&t.jsxs(ma,{sx:{width:"100%"},children:["The standard strategy is ",t.jsx(Ve,{color:"success",children:"ON"})," for all users."]},"default-on")].filter(Boolean),{variant:S,variants:I}=e.result;return t.jsxs(t.Fragment,{children:[t.jsx(Ke,{children:x}),I!=null&&I.length?t.jsx(tn,{variants:I,selected:S==null?void 0:S.name}):null]})},ba=({strategy:e,input:n,className:r})=>{const{result:a}=e,s=a.evaluationStatus==="incomplete"||a.evaluationStatus==="unevaluated"?"Not evaluated":a.enabled?"True":"False";return t.jsx(nn,{strategy:{...e,id:`${ae(e)}`},strategyHeaderLevel:4,className:r,headerItemsLeft:e.disabled?null:t.jsx(K,{showIcon:!1,enabled:a.enabled,label:s}),children:t.jsx(ya,{strategyResult:e,input:n})})},va=E("hgroup")(({theme:e})=>({paddingBottom:e.spacing(2)})),ja=E("h4")(({theme:e})=>({fontWeight:"normal",fontSize:e.typography.body1.fontSize,margin:0})),Ca=E("p")(({theme:e})=>({fontWeight:"bold",fontSize:e.typography.body2.fontSize})),Sa=E(sn)(({theme:e})=>({marginInline:"calc(var(--popover-inline-padding) * -1)",borderTop:`1px solid ${e.palette.divider}`,"> li:last-of-type":{paddingBottom:0}})),We=({strategies:e,input:n,titlePrefix:r,infoText:a})=>e.length===0?null:t.jsxs("div",{children:[t.jsxs(va,{children:[t.jsx(ja,{children:`${r?r.concat(" strategies"):"Strategies"} (${e==null?void 0:e.length})`}),a?t.jsx(Ca,{children:a}):null]}),t.jsx(Sa,{children:e==null?void 0:e.map((s,l)=>t.jsxs(rn,{children:[l>0?t.jsx(an,{}):"",t.jsx(ba,{strategy:s,input:n})]},s.id))})]}),ka=({feature:e})=>{var r,a;if(!((r=e==null?void 0:e.strategies)!=null&&r.data))return null;let n;if(e.hasUnsatisfiedDependency&&!e.isEnabledInCurrentEnvironment)n="If the environment was enabled and parent dependencies were satisfied";else if(e.hasUnsatisfiedDependency)n="If parent dependencies were satisfied";else if(!e.isEnabledInCurrentEnvironment)n="If the environment was enabled";else return;return t.jsxs(Q,{severity:"info",color:"info",children:[n,", then this feature flag would be"," ",(a=e.strategies)!=null&&a.result?"TRUE":"FALSE"," with strategies evaluated like this:"]})},wa=({feature:e,input:n})=>{var l,c,i,h,g;const r=(c=(l=e.strategies)==null?void 0:l.data)==null?void 0:c.filter(d=>!d.disabled),a=(h=(i=e.strategies)==null?void 0:i.data)==null?void 0:h.filter(d=>d.disabled),s=(a==null?void 0:a.length)>0;return(((g=e==null?void 0:e.strategies)==null?void 0:g.data.length)??0)===0?t.jsx(Q,{severity:"info",children:"There are no strategies added to this feature flag in the selected environment."}):t.jsxs(t.Fragment,{children:[t.jsx(ka,{feature:e}),t.jsx(We,{strategies:r||[],input:n,titlePrefix:s?"Enabled":void 0}),s?t.jsx(We,{strategies:a,input:n,titlePrefix:"Disabled",infoText:"Disabled strategies are not evaluated for the overall result."}):null]})},Ea=E("div")(({theme:e})=>({alignItems:"flex-end",color:e.palette.divider})),Ta=({feature:e,input:n})=>{const[r,a]=p.useState(!1),s=p.useRef(null),l=()=>{a(!r)};return t.jsxs(Ea,{children:[t.jsx(_,{onClick:l,children:t.jsx(ie,{ref:s})}),t.jsxs(X,{open:r,onClose:()=>a(!1),anchorEl:s.current,PaperProps:{sx:c=>({"--popover-inline-padding":c.spacing(4),paddingInline:"var(--popover-inline-padding)",paddingBlock:c.spacing(3),display:"flex",flexDirection:"column",width:728,maxWidth:"100%",height:"auto",gap:c.spacing(3),overflowY:"auto",backgroundColor:c.palette.background.elevation1,borderRadius:c.shape.borderRadius})},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"},children:[t.jsx(ga,{feature:e,input:n,onClose:()=>a(!1)}),t.jsx(wa,{feature:e,input:n})]})]})},pt=e=>e.feature?t.jsx(Ta,{...e}):null;var ke={},Ia=Ge;Object.defineProperty(ke,"__esModule",{value:!0});var mt=ke.default=void 0,Pa=Ia(_e()),Ra=t,Oa=(0,Pa.default)((0,Ra.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm4.59-12.42L10 14.17l-2.59-2.58L6 13l4 4 8-8z"}),"CheckCircleOutlined");mt=ke.default=Oa;const Fa=E("div")(({theme:e})=>({padding:e.spacing(4),maxWidth:"400px"})),fe=E(D)(({theme:e})=>({marginBottom:e.spacing(2)})),Ba=E(mt)(({theme:e})=>({color:e.palette.success.main})),La=({variants:e,selectedVariant:n})=>{const r=N(),a=p.useMemo(()=>e.map(d=>({name:d.name,weight:`${on(d.weight)}%`,selected:d.name===n})),[e,n]),s=p.useMemo(()=>({sortBy:[{id:"name",desc:!1}]}),[]),{getTableProps:l,getTableBodyProps:c,headerGroups:i,rows:h,prepareRow:g}=B.useTable({initialState:s,columns:Na,data:a,sortTypes:le,autoResetGlobalFilter:!1,autoResetSortBy:!1,disableSortRemove:!0},B.useGlobalFilter,B.useSortBy);return t.jsxs(Fa,{children:[t.jsx(fe,{variant:"subtitle2",children:"Variant Information"}),t.jsx(fe,{variant:"body2",children:"The following table shows the variants defined on this feature toggle and the variant result based on your context configuration."}),t.jsx(fe,{variant:"body2",children:'If you include "userId" or "sessionId" in your context, the variant will be the same every time because unleash uses these properties to ensure that the user receives the same experience.'}),t.jsxs(ln,{...l(),rowHeight:"dense",children:[t.jsx(cn,{headerGroups:i}),t.jsx(dn,{...c(),children:h.map(d=>{const u={};d.original.selected||(u.color=r.palette.text.secondary),g(d);const{key:m,...x}=d.getRowProps();return t.jsx(un,{hover:!0,...x,children:d.cells.map(S=>{const{key:I,...j}=S.getCellProps();return t.jsx(hn,{...j,style:u,children:S.render("Cell")},I)})},m)})})]})]})},Na=[{id:"Icon",Cell:({row:{original:{selected:e}}})=>t.jsx(t.Fragment,{children:t.jsx(L,{condition:e,show:t.jsx(gn,{icon:t.jsx(Ba,{})})})}),maxWidth:25,disableGlobalFilter:!0},{Header:"Name",accessor:"name",searchable:!0,Cell:({row:{original:{name:e}}})=>t.jsx(Pe,{children:e}),maxWidth:175,width:175},{Header:"Weight",accessor:"weight",sortType:"alphanumeric",searchable:!0,maxWidth:75,Cell:({row:{original:{weight:e}}})=>t.jsx(Pe,{children:e})}],Aa=E("div")(()=>({maxWidth:"100%",display:"flex",alignItems:"center",wordBreak:"break-all"})),$a=({variant:e,variants:n,feature:r,isEnabled:a})=>{const s=N(),[l,c]=p.useState(null),i=d=>c(d.currentTarget),h=()=>c(null),g=!!l;return t.jsxs(Aa,{children:[e,t.jsx(L,{condition:!!n&&n.length>0&&a,show:t.jsxs(t.Fragment,{children:[t.jsx(_,{onClick:i,children:t.jsx(ie,{})}),t.jsx(X,{open:g,id:`${r}-result-variants`,PaperProps:{sx:{borderRadius:`${s.shape.borderRadiusLarge}px`}},onClose:h,anchorEl:l,anchorOrigin:{vertical:"bottom",horizontal:-320},children:t.jsx(La,{variants:n,selectedVariant:e})})]})})]})},Da=({features:e})=>{const n=N(),r=Je(n.breakpoints.down("sm")),a=Object.keys(e[0].context).map(d=>({Header:be(d),accessor:u=>u.context[d],minWidth:160,Cell:ye})),s=p.useMemo(()=>[...a,{Header:"Variant",id:"variant",accessor:"variant.name",sortType:"alphanumeric",filterName:"variant",maxWidth:200,Cell:({value:d,row:{original:{variant:u,feature:m,variants:x,isEnabled:S}}})=>t.jsx($a,{variant:u!=null&&u.enabled?d:"",variants:x,feature:m,isEnabled:S})},{id:"isEnabled",Header:"isEnabled",filterName:"isEnabled",accessor:d=>{var u;return d!=null&&d.isEnabled?"true":((u=d==null?void 0:d.strategies)==null?void 0:u.result)==="unknown"?"unknown":"false"},Cell:({row:d})=>t.jsx(ut,{feature:d.original}),sortType:"playgroundResultState",maxWidth:120,sortInverted:!0},{Header:"",maxWidth:70,id:"info",Cell:({row:d})=>t.jsx(pt,{feature:d.original,input:{environment:d.original.environment,context:d.original.context}})}],[]),{headerGroups:l,rows:c,prepareRow:i,setHiddenColumns:h}=B.useTable({columns:s,data:e,sortTypes:le,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},B.useGlobalFilter,B.useFlexLayout,B.useSortBy);Ye([{condition:r,columns:["variant"]}],h,s);const g=p.useRef(null);return t.jsx(k,{ref:g,sx:{overflow:"auto",maxHeight:"800px"},children:t.jsx(ve,{parentRef:g,rows:c,headerGroups:l,prepareRow:i})})},Ha=E("div",{})(({theme:e})=>({flexGrow:0,...Ze,justifyContent:"flex-start",margin:e.spacing(0,1.5)})),Wa=E(k)(({theme:e})=>({display:"flex",flexDirection:"row",gap:e.spacing(1)})),za=({value:e})=>{const n=N(),[r,a]=p.useState(null),s=g=>a(g.currentTarget),l=()=>a(null),c=!!r,i=(e||[]).filter(g=>g.isEnabled),h=(e||[]).filter(g=>!g.isEnabled);return t.jsxs(Ha,{children:[t.jsxs(Wa,{children:[t.jsx(L,{condition:i.length>0,show:t.jsx(K,{enabled:!0,label:`${i.length}`,showIcon:!0})}),t.jsx(L,{condition:h.length>0,show:t.jsx(K,{enabled:!1,label:`${h.length}`,showIcon:!0})})]}),t.jsxs(t.Fragment,{children:[t.jsx(_,{onClick:s,children:t.jsx(ie,{})}),t.jsxs(X,{open:c,id:`${e}-result-details`,PaperProps:{sx:{borderRadius:`${n.shape.borderRadiusLarge}px`,padding:n.spacing(3)}},onClose:l,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[t.jsx(D,{variant:"subtitle2",sx:{mb:3},children:e[0].environment}),t.jsx(Da,{features:e})]})]})]})},Ma=({features:e})=>{const n=Object.keys(e),r=e[n[0]],a=r[0].context,s=p.useMemo(()=>r.map((m,x)=>({...Object.fromEntries(n.map(S=>[S,e[S][x]]))})),[JSON.stringify(e)]),l=Object.keys(a).map(m=>({Header:be(m),accessor:x=>x[n[0]].context[m],minWidth:160,Cell:ye})),c=n.map(m=>({Header:m,accessor:x=>{var S,I,j;return(S=x[m])!=null&&S.isEnabled?"true":((j=(I=x[m])==null?void 0:I.strategies)==null?void 0:j.result)==="unknown"?"unknown":"false"},Cell:({row:x})=>t.jsxs(k,{sx:{display:"flex"},children:[t.jsx(ut,{feature:x.original[m]}),t.jsx(pt,{feature:x.original[m],input:{environment:x.original[m].environment,context:x.original[m].context}})]}),sortType:"playgroundResultState",maxWidth:140})),i=p.useMemo(()=>[...l,...c],[]),{headerGroups:h,rows:g,prepareRow:d}=B.useTable({columns:i,data:s,sortTypes:le,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},B.useGlobalFilter,B.useFlexLayout,B.useSortBy),u=p.useRef(null);return t.jsx(k,{ref:u,sx:{overflow:"auto",maxHeight:"800px"},children:t.jsx(ve,{parentRef:u,rows:g,headerGroups:h,prepareRow:d})})},Ua=E("div",{})(({theme:e})=>({flexGrow:0,...Ze,justifyContent:"flex-start",margin:e.spacing(0,1.5)})),_a=E(oe)(({theme:e})=>({textAlign:"left",textDecorationStyle:"dotted",textDecorationLine:"underline",textUnderlineOffset:e.spacing(.75),color:e.palette.neutral.dark,padding:0,fontWeight:"normal"})),Ga=({value:e})=>{const n=N(),[r,a]=p.useState(null),s=i=>a(i.currentTarget),l=()=>a(null),c=!!r;return t.jsx(Ua,{children:t.jsxs(t.Fragment,{children:[t.jsx(_a,{variant:"text",onClick:s,children:"View diff"}),t.jsxs(X,{open:c,id:`${e}-result-details`,PaperProps:{sx:{borderRadius:`${n.shape.borderRadiusLarge}px`,padding:n.spacing(3)}},onClose:l,anchorEl:r,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[t.jsx(D,{variant:"subtitle2",sx:{mb:3},children:"Environments diff"}),t.jsx(Ma,{features:e})]})]})})},Va=e=>e.reduce((n,r)=>n+Object.values(r.environments).flatMap(a=>Object.keys(a)).length,0),qa=e=>e<0?"invalid bucket":e>=2e4?"20000+":e>=1e4?"10000-20000":e>=1e3?"1000-10000":e>=100?"100-1000":"0-100",Ka={id:"name"},{value:ze,setValue:Ja}=et("AdvancedPlaygroundResultsTable:v1",Ka),Ya=({features:e,input:n,loading:r})=>{const{trackEvent:a}=Qe();e&&a("playground",{props:{eventType:"number-of-combinations",count:qa(Va(e))}});const[s,l]=Xe(),c=fn(r),[i,h]=p.useState(s.get("search")||""),g=N(),d=Je(g.breakpoints.down("md")),u=e&&e.length>0?Object.keys(e[0].environments).length:0,m=p.useMemo(()=>{var f;return[{Header:"Name",accessor:"name",searchable:!0,minWidth:160,Cell:({value:b,row:{original:C}})=>t.jsx(Re,{title:b,to:`/projects/${C==null?void 0:C.projectId}/features/${b}`})},{Header:"Project ID",accessor:"projectId",sortType:"alphanumeric",filterName:"projectId",searchable:!0,minWidth:150,Cell:({value:b})=>t.jsx(Re,{title:b,to:`/projects/${b}`})},...((f=n==null?void 0:n.environments)==null?void 0:f.map(b=>({Header:r?()=>"":be(b),maxWidth:150,id:`environments.${b}`,align:"flex-start",Cell:({row:C})=>t.jsx(za,{value:C.original.environments[b]})})))||[],...u>1?[{Header:"Diff",minWidth:150,id:"diff",align:"left",Cell:({row:b})=>t.jsx(Ga,{value:b.original.environments})}]:[]]},[n]),{data:x,getSearchText:S,getSearchContext:I}=pn(m,i,e||[]),j=p.useMemo(()=>r?Array(5).fill({name:"Feature name",projectId:"Feature Project",environments:{name:"Feature Environments",variants:[]},enabled:!0}):x,[x,r]),[P]=p.useState(()=>({sortBy:[{id:s.get("sort")||ze.id,desc:s.has("order")?s.get("order")==="desc":ze.desc}]})),{headerGroups:A,rows:O,state:{sortBy:T},prepareRow:w,setHiddenColumns:y}=B.useTable({initialState:P,columns:m,data:j,sortTypes:le,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:ye}},B.useGlobalFilter,B.useFlexLayout,B.useSortBy);return Ye([{condition:d,columns:["projectId"]}],y,m),p.useEffect(()=>{if(r)return;const f=Object.fromEntries(s);f.sort=T[0].id,T[0].desc?f.order="desc":f.order&&delete f.order,i?f.search=i:delete f.search,l(f,{replace:!0}),Ja({id:T[0].id,desc:T[0].desc||!1})},[r,T,i]),t.jsxs(t.Fragment,{children:[t.jsxs(k,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[t.jsx(D,{variant:"subtitle1",sx:{ml:1},children:e!==void 0&&!r?`Results (${O.length<j.length?`${O.length} of ${j.length}`:j.length})`:"Results"}),t.jsx(mn,{initialValue:i,onChange:h,hasFilters:!0,getSearchContext:I,disabled:r,containerStyles:{marginLeft:"1rem",maxWidth:"400px"}})]}),t.jsx(L,{condition:!r&&!j,show:()=>t.jsx(de,{children:j===void 0?"None of the feature flags were evaluated yet.":"No results found."}),elseShow:()=>t.jsxs(k,{ref:c,sx:{overflow:"auto"},children:[t.jsx(xn,{value:S(i),children:t.jsx(ve,{rows:O,headerGroups:A,prepareRow:w})}),t.jsx(L,{condition:j.length===0&&(i==null?void 0:i.length)>0,show:t.jsxs(de,{children:["No feature flags found matching “",i,"”"]})}),t.jsx(L,{condition:j&&j.length===0&&!i,show:t.jsx(de,{children:"No features flags to display"})})]})})]})},xt=E(Q)(({theme:e})=>({marginBottom:e.spacing(3)})),Za=({response:e})=>{var r;const n=(r=e==null?void 0:e.warnings)==null?void 0:r.invalidContextProperties;if(n&&n.length>0){n.sort();const a="Some context properties were not taken into account during evaluation",s=E("details")(({theme:l})=>({"* + *":{marginBlockStart:l.spacing(1)}}));return t.jsx(xt,{severity:"warning",children:t.jsxs(s,{children:[t.jsx("summary",{children:a}),t.jsx("p",{children:"The context you provided for this query contained top-level properties with invalid values. These properties were not taken into consideration when evaluating your query. The properties are:"}),t.jsx("ul",{children:n.map(l=>t.jsx("li",{"data-testid":"context-warning-list-element",children:t.jsx("code",{children:l})},l))}),t.jsxs("p",{children:["Remember that context fields (with the exception of the"," ",t.jsx("code",{children:"properties"})," object) must be strings."]}),t.jsx("p",{children:"Because we didn't take these properties into account during the feature flag evaluation, they will not appear in the results table."})]})})}else return null},ts=({FormComponent:e=Jr})=>{const n={projects:[],environments:[]},{value:r,setValue:a}=et("AdvancedPlayground:v1",n),{trackEvent:s}=Qe(),{environments:l}=yn(),c=N(),[i,h]=p.useState(),[g,d]=p.useState(r.environments),[u,m]=p.useState(r.projects),[x,S]=p.useState(r.token),[I,j]=p.useState(r.context),[P,A]=p.useState(),{setToastData:O}=Me(),[T,w]=Xe(),[y,f]=p.useState(),{evaluateAdvancedPlayground:b,evaluateChangeRequestPlayground:C,loading:R,errors:$}=er(),[z,J]=p.useState(!1);p.useEffect(()=>{(g==null?void 0:g.length)===0&&l.length>0&&d([Nr(l)])},[JSON.stringify(g),JSON.stringify(l)]),p.useEffect(()=>{V()},[]);const V=async()=>{try{const v=Y(),W=H(),te=F();G(),q(),v&&te&&await ee(v||[],W||"*",te)}catch(v){O({type:"error",text:`Failed to parse URL parameters: ${Z(v)}`})}},Y=()=>{let v=null;const W=T.get("environments");return W&&(v=W.split(","),d(v)),v},H=()=>{let v=null;const W=T.get("projects");return W&&(v=W.split(","),m(v)),v},F=()=>{let v=T.get("context");return v&&(v=decodeURI(v),j(v)),v},G=()=>{let v=T.get("token");return v&&(v=decodeURI(v),S(v)),v},q=()=>{const v=T.get("changeRequest");v&&f(v)},ee=async(v,W,te,ce)=>{try{h(void 0);const M={appName:"playground",...JSON.parse(te||"{}")},kt=y?await C(y,{context:M}):await b({environments:Lr(v),projects:Br(W),context:M});ce&&typeof ce=="function"&&ce(),A(kt)}catch(M){M instanceof bn?h(M.message):M instanceof SyntaxError?O({type:"error",text:`Error parsing context: ${Z(M)}`}):O({type:"error",text:Z(M)})}},yt=()=>{let v="default";x&&x!==""?v="api_token":y&&(v="change_request"),s("playground",{props:{eventType:"try-configuration",mode:v}})},bt=async v=>{v.preventDefault(),J(!0),yt(),await ee(g,u,I,()=>{jt(),y||a({environments:g,projects:u,context:I})})},vt=()=>{f(void 0)},jt=()=>{T.set("context",encodeURI(I||"")),Array.isArray(g)&&g.length>0&&!(g.length===1&&g[0]==="*")?T.set("environments",g.join(",")):T.delete("projects"),Array.isArray(u)&&u.length>0&&!(u.length===1&&u[0]==="*")?T.set("projects",u.join(",")):T.delete("projects"),y?T.set("changeRequest",y):T.delete("changeRequest"),w(T)},Ct="auto",St=$r();return t.jsx(vn,{header:t.jsx(Sn,{title:"Unleash playground",actions:t.jsx(ra,{})}),disableLoading:!0,bodyClass:"no-padding",children:t.jsxs(k,{sx:{display:"flex",flexDirection:"column"},children:[t.jsx(k,{sx:{background:c.palette.background.elevation2,borderBottomLeftRadius:c.shape.borderRadiusMedium,isolation:"isolate",zIndex:2},children:t.jsx(jn,{elevation:0,sx:{px:4,py:3,background:c.palette.background.elevation2,transition:"width 0.4s ease",minWidth:"auto",width:Ct,position:"sticky",top:0},children:t.jsx(e,{onSubmit:bt,context:I,setContext:j,availableEnvironments:l,projects:u,environments:g,token:x,setToken:S,setProjects:m,setEnvironments:d,changeRequest:y||void 0,onClearChangeRequest:vt})})}),t.jsxs(k,{sx:v=>({width:St,transition:"width 0.4s ease",padding:v.spacing(4,4),isolation:"isolate",zIndex:1}),children:[t.jsx(L,{condition:!!i,show:t.jsx(xt,{severity:"warning",children:i})}),t.jsx(L,{condition:R,show:t.jsx(Cn,{}),elseShow:t.jsxs(t.Fragment,{children:[t.jsx(L,{condition:!!P&&Object.values($).length===0,show:t.jsxs(t.Fragment,{children:[t.jsx(Za,{response:P}),t.jsx(Ya,{loading:R,features:P==null?void 0:P.features,input:P==null?void 0:P.input})]})}),t.jsx(L,{condition:!P&&!z,show:t.jsx(ct,{})})]})})]})]})})};export{ts as AdvancedPlayground,ts as default};
@@ -0,0 +1 @@
1
+ import{cJ as l,ba as c,j as e,C as d,B as n,R as t,T as p,x as g,fO as h,jo as x,s as u,dC as j,dD as m,dE as y,jp as C,jq as f,jr as S,js as B}from"./index-DMSjiFEm.js";import{u as T,b,S as v,T as w,P as D,n as P,g as k}from"./networkTrafficUsageHighlightPlugin-BbfAyDiQ.js";import{a as q}from"./formatTickValue-BZb4ZIL9.js";import"./LazyAdminExport-CWQiknO-.js";import"./RoleCell-CjVCxBgl.js";import"./useApiTokens-DBB3NvXL.js";import"./PercentageDonut-JGNh2FVZ.js";const E=u(n)(({theme:s})=>({display:"flex",alignItems:"center",gap:s.spacing(.5)})),F=()=>{l("Network - Backend Connections");const{isOss:s}=c(),{chartDataSelection:a,setChartDataSelection:o,options:i}=T(),{chartData:r}=b(a);return e.jsx(d,{condition:s(),show:e.jsx(t,{severity:"warning",children:"Not enabled."}),elseShow:e.jsx(e.Fragment,{children:e.jsxs(v,{children:[e.jsxs(w,{children:[e.jsx(n,{children:e.jsx(t,{severity:"info",icon:!1,children:e.jsxs(E,{children:[e.jsx(p,{children:"1 connection = 7200 backend SDK requests per day"}),e.jsx(g,{title:"1 connection involves polling every 15 seconds and sending metrics every 60 seconds. This translates to 5 requests per minute, 300 requests per hour, and 7200 requests per day.",children:e.jsx(h,{})})]})})}),e.jsx(D,{selectedPeriod:a,setPeriod:o})]}),e.jsx(x,{data:r,plugins:[P],options:i,"aria-label":k(a)})]})})})};j.register(q,m,y,C,f,S,B);export{F as BackendConnections,F as default};
@@ -1 +1 @@
1
- import{j as e,eq as t}from"./index-CiWHTkEm.js";const a=()=>e.jsx(t,{to:"/projects?create=true",replace:!0});export{a as default};
1
+ import{j as e,ed as t}from"./index-DMSjiFEm.js";const a=()=>e.jsx(t,{to:"/projects?create=true",replace:!0});export{a as default};
@@ -1,3 +1,3 @@
1
- import{cs as D,b7 as U,r as i,b9 as _,F as W,H as z,j as t,s as a,ce as u,M as E,bq as k,b6 as R,hw as f,y as A,cP as B,cl as F,cQ as $,h as N,bn as P,aJ as H,T as h,b as V,gs as j,jY as O,jZ as Z,j_ as q,d as G,k as Y,L as J,aA as Q,c$ as X}from"./index-CiWHTkEm.js";import{u as K}from"./unknownify-B7hmSXnj.js";import{S as ee}from"./LazyAdminExport-BYVn1j-Y.js";import"./RoleCell-BtYhy-KF.js";import"./useApiTokens-BnZdG9it.js";import"./PercentageDonut-WlMbDfDd.js";const te={connectedEdges:[],revisionIds:[]},ne=e=>{const{data:n,error:s,mutate:o}=D(U("api/admin/metrics/edges"),se,e);return i.useMemo(()=>{const r=!s&&!n;return(n==null?void 0:n.connectedEdges)!==void 0?{edgeObservability:n,loading:r,refetch:()=>o(),error:s}:Array.isArray(n)?{edgeObservability:{connectedEdges:n,revisionIds:[]},loading:r,refetch:()=>o(),error:s}:{edgeObservability:te,loading:r,refetch:()=>o(),error:s}},[n,s,o])},se=e=>fetch(e).then(_("Connected Edges")).then(n=>n.json());var v={},re=z;Object.defineProperty(v,"__esModule",{value:!0});var w=v.default=void 0,ie=re(W()),oe=t,ae=(0,ie.default)((0,oe.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z"}),"Circle");w=v.default=ae;const de=a("table")(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:"right","& > th:first-of-type, td:first-of-type":{textAlign:"left"}}})),S=a("tr")(({theme:e})=>({fontWeight:e.fontWeight.bold,"&&& > td":{paddingTop:e.spacing(1),"& > div":{display:"flex",alignItems:"center"}}})),le=({instance:e})=>t.jsxs(de,{children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"Latency (ms)"}),t.jsx("th",{children:"Avg"}),t.jsx("th",{children:"p99"})]})}),t.jsxs("tbody",{children:[t.jsx(S,{children:t.jsx("td",{colSpan:3,children:t.jsxs("div",{children:["Upstream"," ",t.jsx(u,{tooltip:"Latency measured for requests sent from this Edge instance to the configured upstream, i.e. Unleash or another Edge instance.",size:"16px"})]})})}),t.jsxs("tr",{children:[t.jsx("td",{children:"Client Features"}),t.jsx("td",{children:e.upstreamFeaturesAverageLatencyMs}),t.jsx("td",{children:e.upstreamFeaturesP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Metrics"}),t.jsx("td",{children:e.upstreamMetricsAverageLatencyMs}),t.jsx("td",{children:e.upstreamMetricsP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Edge"}),t.jsx("td",{children:e.upstreamEdgeAverageLatencyMs}),t.jsx("td",{children:e.upstreamEdgeP99LatencyMs})]}),t.jsx(S,{children:t.jsx("td",{colSpan:3,children:t.jsxs("div",{children:["Downstream"," ",t.jsx(u,{tooltip:"Latency measured when serving requests from clients, i.e. SDKs or other Edge instances.",size:"16px"})]})})}),t.jsxs("tr",{children:[t.jsx("td",{children:"Client Features"}),t.jsx("td",{children:e.clientFeaturesAverageLatencyMs}),t.jsx("td",{children:e.clientFeaturesP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Frontend"}),t.jsx("td",{children:e.frontendApiAverageLatencyMs}),t.jsx("td",{children:e.frontendApiP99LatencyMs})]})]})]}),ce=a("table")(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:"right","& > th:first-of-type, td:first-of-type":{textAlign:"left"},paddingTop:e.spacing(1)}})),C=a("td")(({theme:e})=>({paddingTop:e.spacing(1),maxWidth:"80px","& > div":{display:"flex",alignItems:"center",justifyContent:"end"}})),pe=a(E)(({theme:e})=>({padding:e.spacing(0,1)})),he=e=>e.length===1?e[0]:"[]",ge=e=>`${he(e.projects)}:${e.environment}.***`,xe=e=>`[${e.projects.join(",")}]:${e.environment}`,ue=(e,n)=>{var s;return((s=e.find(o=>o.environment===n))==null?void 0:s.revisionId)||0},me=e=>e<=0?"success":e<5?"warning":"error",ye=({edgeRevisionId:e,upstreamRevisionId:n})=>{const s=n-e,r=s<=0?"Edge feature configuration is up to date":`Edge is ${s} revisions behind Unleash`;return t.jsx(A,{title:r,children:t.jsx(pe,{color:me(s),children:e})})},je=({apiKeys:e,revisionIds:n})=>{const{locationSettings:s}=k();return!e||e.length===0?null:t.jsxs(ce,{children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"Token"}),t.jsx("th",{children:"Revision"})]})}),t.jsx("tbody",{children:e==null?void 0:e.map(o=>{const r=ge(o);return t.jsxs("tr",{children:[t.jsx(C,{children:t.jsx(R,{title:r,children:r})}),t.jsx(C,{children:t.jsxs("div",{children:[t.jsx(ye,{edgeRevisionId:o.revisionId,upstreamRevisionId:ue(n,o.environment)}),t.jsx(u,{tooltip:`
1
+ import{cA as D,b7 as U,r as i,b9 as z,F as W,j as t,H as _,ce as u,s as a,bq as k,b5 as R,hj as f,x as A,M as E,h as B,bn as F,cy as N,cm as $,cz as P,b as H,gf as j,jO as V,jP as O,jQ as q,T as h,aN as G,k as Z,L as J,d as Q,cJ as Y,aA as X}from"./index-DMSjiFEm.js";import{u as K}from"./unknownify-B7hmSXnj.js";import{S as ee}from"./LazyAdminExport-CWQiknO-.js";import"./RoleCell-CjVCxBgl.js";import"./useApiTokens-DBB3NvXL.js";import"./PercentageDonut-JGNh2FVZ.js";const te={connectedEdges:[],revisionIds:[]},ne=e=>{const{data:n,error:s,mutate:o}=D(U("api/admin/metrics/edges"),se,e);return i.useMemo(()=>{const r=!s&&!n;return(n==null?void 0:n.connectedEdges)!==void 0?{edgeObservability:n,loading:r,refetch:()=>o(),error:s}:Array.isArray(n)?{edgeObservability:{connectedEdges:n,revisionIds:[]},loading:r,refetch:()=>o(),error:s}:{edgeObservability:te,loading:r,refetch:()=>o(),error:s}},[n,s,o])},se=e=>fetch(e).then(z("Connected Edges")).then(n=>n.json());var v={},re=_;Object.defineProperty(v,"__esModule",{value:!0});var w=v.default=void 0,ie=re(W()),oe=t,ae=(0,ie.default)((0,oe.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2z"}),"Circle");w=v.default=ae;const de=a("table")(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:"right","& > th:first-of-type, td:first-of-type":{textAlign:"left"}}})),S=a("tr")(({theme:e})=>({fontWeight:e.fontWeight.bold,"&&& > td":{paddingTop:e.spacing(1),"& > div":{display:"flex",alignItems:"center"}}})),le=({instance:e})=>t.jsxs(de,{children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"Latency (ms)"}),t.jsx("th",{children:"Avg"}),t.jsx("th",{children:"p99"})]})}),t.jsxs("tbody",{children:[t.jsx(S,{children:t.jsx("td",{colSpan:3,children:t.jsxs("div",{children:["Upstream"," ",t.jsx(u,{tooltip:"Latency measured for requests sent from this Edge instance to the configured upstream, i.e. Unleash or another Edge instance.",size:"16px"})]})})}),t.jsxs("tr",{children:[t.jsx("td",{children:"Client Features"}),t.jsx("td",{children:e.upstreamFeaturesAverageLatencyMs}),t.jsx("td",{children:e.upstreamFeaturesP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Metrics"}),t.jsx("td",{children:e.upstreamMetricsAverageLatencyMs}),t.jsx("td",{children:e.upstreamMetricsP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Edge"}),t.jsx("td",{children:e.upstreamEdgeAverageLatencyMs}),t.jsx("td",{children:e.upstreamEdgeP99LatencyMs})]}),t.jsx(S,{children:t.jsx("td",{colSpan:3,children:t.jsxs("div",{children:["Downstream"," ",t.jsx(u,{tooltip:"Latency measured when serving requests from clients, i.e. SDKs or other Edge instances.",size:"16px"})]})})}),t.jsxs("tr",{children:[t.jsx("td",{children:"Client Features"}),t.jsx("td",{children:e.clientFeaturesAverageLatencyMs}),t.jsx("td",{children:e.clientFeaturesP99LatencyMs})]}),t.jsxs("tr",{children:[t.jsx("td",{children:"Frontend"}),t.jsx("td",{children:e.frontendApiAverageLatencyMs}),t.jsx("td",{children:e.frontendApiP99LatencyMs})]})]})]}),ce=a("table")(({theme:e})=>({width:"100%",borderCollapse:"collapse",fontSize:e.fontSizes.smallerBody,"& > thead":{borderBottom:`1px solid ${e.palette.text.primary}`},"& tr":{textAlign:"right","& > th:first-of-type, td:first-of-type":{textAlign:"left"},paddingTop:e.spacing(1)}})),C=a("td")(({theme:e})=>({paddingTop:e.spacing(1),maxWidth:"80px","& > div":{display:"flex",alignItems:"center",justifyContent:"end"}})),pe=a(E)(({theme:e})=>({padding:e.spacing(0,1)})),he=e=>e.length===1?e[0]:"[]",ge=e=>`${he(e.projects)}:${e.environment}.***`,xe=e=>`[${e.projects.join(",")}]:${e.environment}`,ue=(e,n)=>{var s;return((s=e.find(o=>o.environment===n))==null?void 0:s.revisionId)||0},me=e=>e<=0?"success":e<5?"warning":"error",ye=({edgeRevisionId:e,upstreamRevisionId:n})=>{const s=n-e,r=s<=0?"Edge feature configuration is up to date":`Edge is ${s} revisions behind Unleash`;return t.jsx(A,{title:r,children:t.jsx(pe,{color:me(s),children:e})})},je=({apiKeys:e,revisionIds:n})=>{const{locationSettings:s}=k();return!e||e.length===0?null:t.jsxs(ce,{children:[t.jsx("thead",{children:t.jsxs("tr",{children:[t.jsx("th",{children:"Token"}),t.jsx("th",{children:"Revision"})]})}),t.jsx("tbody",{children:e==null?void 0:e.map(o=>{const r=ge(o);return t.jsxs("tr",{children:[t.jsx(C,{children:t.jsx(R,{title:r,children:r})}),t.jsx(C,{children:t.jsxs("div",{children:[t.jsx(ye,{edgeRevisionId:o.revisionId,upstreamRevisionId:ue(n,o.environment)}),t.jsx(u,{tooltip:`
2
2
  Edge last updated this token: ${f(o.lastUpdated,s.locale)}
3
- `,size:"14px"})]})})]},xe(o))})})]})},fe=a("div")(({theme:e})=>({width:"100%",borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:0,zIndex:1,marginTop:e.spacing(1)})),Ee=a(B)({width:"100%",background:"transparent",boxShadow:"none"}),ve=a(F,{shouldForwardProp:e=>e!=="connectionStatus"})(({theme:e,connectionStatus:n})=>({fontSize:e.fontSizes.smallBody,padding:e.spacing(1),minHeight:e.spacing(3),"& .MuiAccordionSummary-content":{alignItems:"center",gap:e.spacing(1),margin:0,"&.Mui-expanded":{margin:0},"& svg":{fontSize:e.fontSizes.mainHeader,color:n==="Stale"?e.palette.warning.main:n==="Disconnected"?e.palette.error.main:e.palette.success.main}}})),Se=a($)(({theme:e})=>({display:"flex",flexDirection:"column",fontSize:e.fontSizes.smallerBody,gap:e.spacing(2)})),p=a("div")(({theme:e})=>({display:"flex",justifyContent:"space-between",gap:e.spacing(2),"& > span":{display:"flex",alignItems:"center"}})),Ce=a(E)(({theme:e})=>({padding:e.spacing(0,1)})),be=({hosting:e})=>{switch(e){case"hosted":return"Cloud";case"enterprise-self-hosted":return"Self-hosted";default:return e?`Unknown: ${e}`:"Unknown"}},Le=({reportedAt:e})=>{const n=new Date(e).getTime(),s=(Date.now()-n)/1e3;return s>360?"Disconnected":s>180?"Stale":"Connected"},ke=({started:e,reportedAt:n,cpuUsage:s})=>{const o=Number(s);if(!o)return"No usage";const r=new Date(e).getTime(),l=(new Date(n).getTime()-r)/1e3;return l===0?"No usage":`${(o/l*100).toFixed(2)} %`},Ae=({memoryUsage:e})=>{if(!e)return"No usage";const n=["B","KB","MB","GB"];let s=e,o=0;for(;s>=1024&&o<n.length-1;)s/=1024,o++;return`${s.toFixed(2)} ${n[o]}`},we=({instance:e,revisionIds:n})=>{const{locationSettings:s}=k(),o=N("enterpriseEdgeTokensList"),r=Le(e),d=f(e.started,s==null?void 0:s.locale),l=f(e.reportedAt,s==null?void 0:s.locale),c=ke(e),m=Ae(e),g=c==="No usage"&&m==="No usage"&&t.jsx("p",{children:"Resource metrics are only available when running on Linux."});return t.jsx(fe,{children:t.jsxs(Ee,{children:[t.jsxs(ve,{expandIcon:t.jsx(P,{}),connectionStatus:r,children:[t.jsx(A,{arrow:!0,title:`${r}. Last reported: ${l}`,children:t.jsx(w,{})}),e.id||e.instanceId]}),t.jsxs(Se,{children:[t.jsxs(p,{children:[t.jsx("strong",{children:"ID"}),t.jsx("span",{children:e.instanceId})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Upstream server"}),t.jsx("span",{children:e.connectedVia||"Unleash"})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Region"}),t.jsx("span",{children:e.region||"Unknown"})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Hosting"}),t.jsx("span",{children:be(e)})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Version"}),t.jsx("span",{children:e.edgeVersion})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Status"}),t.jsx(Ce,{color:r==="Disconnected"?"error":r==="Stale"?"warning":"success",children:r})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Start"}),t.jsx("span",{children:d})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Last report"}),t.jsx("span",{children:l})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"CPU"}),t.jsxs("span",{children:[c," ",t.jsx(u,{tooltip:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:"CPU average usage since instance started."}),g]}),size:"16px"})]})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Memory"}),t.jsxs("span",{children:[m," ",t.jsx(u,{tooltip:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:"Current memory usage."}),g]}),size:"16px"})]})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Stream clients"}),t.jsx("span",{children:e.connectedStreamingClients})]}),t.jsx(p,{children:t.jsx(le,{instance:e})}),o&&t.jsx(p,{children:t.jsx(je,{apiKeys:e.apiKeyRevisionIds,revisionIds:n})})]})]})})},x="Unleash",Me=a("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),Ie=a("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap",marginTop:e.spacing(2)})),M=a("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.secondary.border}`,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,marginTop:e.spacing(1),"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),Te=a(M)(({theme:e})=>({backgroundColor:H(e.palette.background.paper,.75),position:"relative"})),De=a(E)({position:"absolute",top:-13}),Ue=a(h)(({theme:e})=>({marginTop:e.spacing(.5),fontWeight:e.fontWeight.bold})),_e=a(h)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),We=e=>e.reduce((n,s)=>(n.has(s.appName)||n.set(s.appName,{appName:s.appName,instances:[],groupTargets:new Set,level:0}),n.get(s.appName).instances.push(s),n),new Map),ze=e=>{const n=new Map,s=r=>{if(n.has(r.appName))return n.get(r.appName);let d=0;return r.groupTargets.forEach(l=>{if(l!==x){const c=e.get(l);c&&(d=Math.max(d,s(c)+1))}}),n.set(r.appName,d),d};e.forEach(r=>{r.level=s(r)});const o=new Map;return e.forEach(r=>{const d=o.get(r.level)||[];d.push(r),o.set(r.level,d)}),o},Re=e=>{const n=We(e),s=new Map,o=new Map;return n.forEach(r=>{r.instances=r.instances.sort((d,l)=>d.instanceId.localeCompare(l.instanceId)).map((d,l)=>{const c=`${r.appName}-${l+1}`;return s.set(d.instanceId,c),o.set(c,r.appName),{...d,id:c}})}),n.forEach(r=>{r.instances=r.instances.map(l=>({...l,connectedVia:l.connectedVia?s.get(l.connectedVia)||l.connectedVia:x}));const d=new Set;r.instances.forEach(l=>{if(!l.connectedVia||l.connectedVia===x)d.add(x);else{const c=o.get(l.connectedVia);c&&c!==r.appName&&d.add(c)}}),r.groupTargets=d}),ze(n)},Be=e=>e.every(n=>n.hosting==="hosted")?{hostingLabel:"Cloud",hostingColor:"secondary"}:e.every(n=>n.hosting==="enterprise-self-hosted")?{hostingLabel:"Self-hosted",hostingColor:"info"}:e.every(n=>n.hosting==="hosted"||n.hosting==="enterprise-self-hosted")?{hostingLabel:"Hybrid",hostingColor:"warning"}:{hostingLabel:"Unknown",hostingColor:"neutral"},Fe=({connectedEdges:e,revisionIds:n})=>{const s=V(),o=i.useMemo(()=>Re(e),[e]),r=Array.from(o.keys()).sort((d,l)=>d-l);return t.jsxs(j.ArcherContainer,{strokeColor:s.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(Me,{children:t.jsx(j.ArcherElement,{id:x,children:t.jsxs(M,{children:[t.jsx(O,{darkmode:t.jsx(Z,{}),lightmode:t.jsx(q,{})}),t.jsx(h,{sx:{mt:1},children:x})]})})}),r.map(d=>{var l;return t.jsx(Ie,{children:(l=o.get(d))==null?void 0:l.map(({appName:c,groupTargets:m,instances:g})=>{const{hostingLabel:I,hostingColor:T}=Be(g);return t.jsx(j.ArcherElement,{id:c,relations:Array.from(m).map(y=>({targetId:y,targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:s.palette.secondary.border}})),children:t.jsxs(Te,{children:[t.jsx(De,{color:T,children:I}),t.jsx(Ue,{children:K(c)}),t.jsxs(_e,{children:[g.length," instance",g.length!==1&&"s"]}),g.map(y=>t.jsx(we,{instance:y,revisionIds:n},y.instanceId))]})},c)})},d)})]})},$e=e=>i.createElement("svg",{width:312,height:144,viewBox:"0 0 312 144",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},i.createElement("rect",{width:312,height:144,rx:8,fill:"#F1F0FC"}),i.createElement("g",{opacity:.2},i.createElement("circle",{cx:155.933,cy:72.1494,r:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),i.createElement("ellipse",{cx:155.933,cy:72.2595,rx:43.5873,ry:60.2595,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),i.createElement("ellipse",{cx:156.368,cy:72.1494,rx:27.2421,ry:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),i.createElement("ellipse",{cx:156.369,cy:72.1494,rx:10.8968,ry:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"})),i.createElement("g",{opacity:.2},i.createElement("mask",{id:"mask0_35832_1410",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:96,y:12,width:120,height:121},i.createElement("circle",{cx:155.933,cy:72.1494,r:59.2542,fill:"#92A1A5",stroke:"#657A80",strokeWidth:1.35669})),i.createElement("g",{mask:"url(#mask0_35832_1410)"},i.createElement("path",{d:"M96 48.1777C96 48.1777 109.076 59.2925 155.933 59.2925C202.789 59.2925 215.865 48.1777 215.865 48.1777",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M96 28.3438C96 28.3438 109.076 45.7787 155.933 45.7787C202.789 45.7787 215.865 28.3438 215.865 28.3438",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M96 2.19141C96 2.19141 109.076 33.1384 155.933 33.1384C202.789 33.1384 215.865 2.19141 215.865 2.19141",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M96 -39.4336C96 -39.4336 109.076 21.3707 155.933 21.3707C202.789 21.3707 215.865 -39.4336 215.865 -39.4336",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("line",{x1:96,y1:71.472,x2:215.865,y2:71.472,stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.867 95.6855C215.867 95.6855 202.79 84.5708 155.934 84.5708C109.078 84.5708 96.0016 95.6855 96.0016 95.6855",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.867 115.518C215.867 115.518 202.79 98.0826 155.934 98.0826C109.078 98.0826 96.0016 115.518 96.0016 115.518",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.867 141.672C215.867 141.672 202.79 110.725 155.934 110.725C109.078 110.725 96.0016 141.672 96.0016 141.672",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.866 183.297C215.866 183.297 202.79 122.493 155.934 122.493C109.078 122.493 96.0013 183.297 96.0013 183.297",stroke:"#657A80",strokeWidth:1.35669}))),i.createElement("rect",{x:116.749,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:"rotate(-180 116.749 86.5273)",fill:"url(#paint0_linear_35832_1410)"}),i.createElement("ellipse",{cx:102.184,cy:71.9997,rx:14.565,ry:14.527,fill:"#817AFE"}),i.createElement("path",{d:"M106.258 67.9648H98.187V76.0354H106.258V67.9648Z",fill:"white"}),i.createElement("path",{d:"M140.556 78.3887L140.232 70.291L133.381 74.6202L140.556 78.3887ZM121.749 69.1189L129.108 72.5139L128.369 64.4436L121.749 69.1189ZM137.182 73.0493L137.645 72.5217C136.53 71.5447 135.079 70.5495 133.191 69.6186L132.88 70.2481L132.57 70.8776C134.358 71.7589 135.705 72.6876 136.719 73.577L137.182 73.0493ZM132.88 70.2481L133.191 69.6186C131.302 68.6877 129.629 68.143 128.176 67.8544L128.039 68.5428L127.902 69.2312C129.225 69.4939 130.782 69.9964 132.57 70.8776L132.88 70.2481Z",fill:"#6C65E5"}),i.createElement("rect",{x:147.284,y:55.7305,width:17.4324,height:32.5405,rx:3.48649,fill:"#1A4049"}),i.createElement("path",{d:"M171.444 78.3887L171.768 70.291L178.619 74.6202L171.444 78.3887ZM190.251 69.1189L182.892 72.5139L183.631 64.4436L190.251 69.1189ZM174.818 73.0493L174.355 72.5217C175.47 71.5447 176.921 70.5495 178.809 69.6186L179.12 70.2481L179.43 70.8776C177.642 71.7589 176.295 72.6876 175.281 73.577L174.818 73.0493ZM179.12 70.2481L178.809 69.6186C180.698 68.6877 182.371 68.143 183.824 67.8544L183.961 68.5428L184.098 69.2312C182.775 69.4939 181.218 69.9964 179.43 70.8776L179.12 70.2481Z",fill:"#6C65E5"}),i.createElement("rect",{x:253.359,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:"rotate(-180 253.359 86.5273)",fill:"url(#paint1_linear_35832_1410)"}),i.createElement("ellipse",{cx:238.794,cy:71.9997,rx:14.565,ry:14.527,fill:"#1A4049"}),i.createElement("path",{d:"M242.867 67.9648H234.797V76.0354H242.867V67.9648Z",fill:"#EDF0F1"}),i.createElement("defs",null,i.createElement("linearGradient",{id:"paint0_linear_35832_1410",x1:116.737,y1:100.985,x2:174.889,y2:100.985,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#1A4049",stopOpacity:0}),i.createElement("stop",{offset:1,stopColor:"#0E1A1D"})),i.createElement("linearGradient",{id:"paint1_linear_35832_1410",x1:253.347,y1:100.985,x2:311.499,y2:100.985,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#657A80",stopOpacity:0}),i.createElement("stop",{offset:1,stopColor:"#1A4049",stopOpacity:.75})))),Ne=a("div")(({theme:e})=>({display:"flex",flexDirection:"column",gap:e.spacing(1),maxWidth:e.spacing(80),margin:"auto"})),Pe=a("div")(({theme:e})=>({display:"flex",flexDirection:"row",gap:e.spacing(2.5),marginTop:e.spacing(2.5)})),He=a("div")(({theme:e})=>({border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3),flex:1,display:"flex",flexDirection:"column",gap:e.spacing(1.5)})),Ve=a("div")({"& > svg":{width:"auto",maxWidth:"100%",height:"auto",display:"block"}}),Oe=a("ul")(({theme:e})=>({listStyle:"none",marginTop:e.spacing(1),marginBottom:e.spacing(1),paddingLeft:e.spacing(0),display:"flex",flexDirection:"column",gap:e.spacing(1)})),Ze=a("li")(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1)})),qe=a(G)(({theme:e})=>({color:e.palette.primary.main,fontSize:"18px"})),Ge=a("div")(({theme:e})=>({display:"flex",justifyContent:"flex-start",margin:e.spacing(-.75)})),Ye=()=>t.jsxs(Ne,{children:[t.jsx(h,{variant:"h3",children:"Which version is right for you?"}),t.jsxs(h,{variant:"body2",color:"text.secondary",children:["Unleash Enterprise Edge is a high-performance proxy engineered for scalability, resilience, and privacy. It acts as a shield between your SDKs and the Unleash API, allowing you to handle thousands of concurrent connections with zero impact on your primary instance. Contact"," ",t.jsx("a",{href:"mailto:license@getunleash.io",children:"license@getunleash.io"})," ","today to provision your private Enterprise Edge environment."]}),t.jsxs(Pe,{children:[t.jsx(b,{image:t.jsx(ee,{}),title:"Cloud hosted",description:"When you need to connect to Unleash from geographically distributed locations.",bullets:["Global infrastructure","No operational burden","Instant flag updates worldwide"],docsUrl:"https://docs.getunleash.io/deploy/hosting-options#cloud-hosted"}),t.jsx(b,{image:t.jsx($e,{}),title:"Self hosted",description:"Ensure low latency and data sovereignty by running Enterprise Edge inside your private network.",bullets:["Ideal for PII heavy data","Optimized for minimal latency","Improved security"],docsUrl:"https://docs.getunleash.io/deploy/hosting-options#self-hosted"})]})]}),b=({image:e,title:n,description:s,bullets:o,docsUrl:r})=>t.jsxs(He,{children:[t.jsx(Ve,{children:e}),t.jsx(h,{variant:"h3",children:n}),t.jsx(h,{variant:"body2",color:"text.secondary",children:s}),t.jsx(Oe,{children:o.map(d=>t.jsxs(Ze,{children:[t.jsx(qe,{})," ",t.jsx(h,{variant:"body2",color:"text.secondary",children:d})]},d))}),t.jsxs(h,{variant:"body2",color:"text.secondary",children:["Contact"," ",t.jsx("a",{href:"mailto:license@getunleash.io",children:"license@getunleash.io"})," to get started."]}),t.jsx(Ge,{children:t.jsx(Y,{component:J,to:r,size:"small",sx:{fontSize:"14px"},rel:"noopener noreferrer",target:"_blank",children:"Read docs"})})]}),Je=a(Q)(({theme:e})=>({".body":{padding:e.spacing(0)}})),L=a("div")(({theme:e})=>({padding:e.spacing(4)})),Qe=a("hr")(({theme:e})=>({border:"none",height:"1px",background:e.palette.divider,width:"100%",margin:e.spacing(2,0)})),rt=()=>{X("Enterprise Edge");const{edgeObservability:e}=ne({refreshInterval:3e4}),n=e.connectedEdges.length>0;return t.jsxs(Je,{header:"Enterprise Edge",children:[n&&t.jsxs(t.Fragment,{children:[t.jsx(L,{children:t.jsx(Fe,{connectedEdges:e.connectedEdges,revisionIds:e.revisionIds})}),t.jsx(Qe,{})]}),t.jsx(L,{sx:{pb:n?6:4},children:t.jsx(Ye,{})})]})};export{rt as EnterpriseEdge,rt as default};
3
+ `,size:"14px"})]})})]},xe(o))})})]})},fe=a("div")(({theme:e})=>({width:"100%",borderRadius:e.shape.borderRadiusMedium,border:"1px solid",borderColor:e.palette.secondary.border,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:0,zIndex:1,marginTop:e.spacing(1)})),Ee=a(N)({width:"100%",background:"transparent",boxShadow:"none"}),ve=a($,{shouldForwardProp:e=>e!=="connectionStatus"})(({theme:e,connectionStatus:n})=>({fontSize:e.fontSizes.smallBody,padding:e.spacing(1),minHeight:e.spacing(3),"& .MuiAccordionSummary-content":{alignItems:"center",gap:e.spacing(1),margin:0,"&.Mui-expanded":{margin:0},"& svg":{fontSize:e.fontSizes.mainHeader,color:n==="Stale"?e.palette.warning.main:n==="Disconnected"?e.palette.error.main:e.palette.success.main}}})),Se=a(P)(({theme:e})=>({display:"flex",flexDirection:"column",fontSize:e.fontSizes.smallerBody,gap:e.spacing(2)})),p=a("div")(({theme:e})=>({display:"flex",justifyContent:"space-between",gap:e.spacing(2),"& > span":{display:"flex",alignItems:"center"}})),Ce=a(E)(({theme:e})=>({padding:e.spacing(0,1)})),be=({hosting:e})=>{switch(e){case"hosted":return"Cloud";case"enterprise-self-hosted":return"Self-hosted";default:return e?`Unknown: ${e}`:"Unknown"}},Le=({reportedAt:e})=>{const n=new Date(e).getTime(),s=(Date.now()-n)/1e3;return s>360?"Disconnected":s>180?"Stale":"Connected"},ke=({started:e,reportedAt:n,cpuUsage:s})=>{const o=Number(s);if(!o)return"No usage";const r=new Date(e).getTime(),l=(new Date(n).getTime()-r)/1e3;return l===0?"No usage":`${(o/l*100).toFixed(2)} %`},Ae=({memoryUsage:e})=>{if(!e)return"No usage";const n=["B","KB","MB","GB"];let s=e,o=0;for(;s>=1024&&o<n.length-1;)s/=1024,o++;return`${s.toFixed(2)} ${n[o]}`},we=({instance:e,revisionIds:n})=>{const{locationSettings:s}=k(),o=B("enterpriseEdgeTokensList"),r=Le(e),d=f(e.started,s==null?void 0:s.locale),l=f(e.reportedAt,s==null?void 0:s.locale),c=ke(e),m=Ae(e),g=c==="No usage"&&m==="No usage"&&t.jsx("p",{children:"Resource metrics are only available when running on Linux."});return t.jsx(fe,{children:t.jsxs(Ee,{children:[t.jsxs(ve,{expandIcon:t.jsx(F,{}),connectionStatus:r,children:[t.jsx(A,{arrow:!0,title:`${r}. Last reported: ${l}`,children:t.jsx(w,{})}),e.id||e.instanceId]}),t.jsxs(Se,{children:[t.jsxs(p,{children:[t.jsx("strong",{children:"ID"}),t.jsx("span",{children:e.instanceId})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Upstream server"}),t.jsx("span",{children:e.connectedVia||"Unleash"})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Region"}),t.jsx("span",{children:e.region||"Unknown"})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Hosting"}),t.jsx("span",{children:be(e)})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Version"}),t.jsx("span",{children:e.edgeVersion})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Status"}),t.jsx(Ce,{color:r==="Disconnected"?"error":r==="Stale"?"warning":"success",children:r})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Start"}),t.jsx("span",{children:d})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Last report"}),t.jsx("span",{children:l})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"CPU"}),t.jsxs("span",{children:[c," ",t.jsx(u,{tooltip:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:"CPU average usage since instance started."}),g]}),size:"16px"})]})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Memory"}),t.jsxs("span",{children:[m," ",t.jsx(u,{tooltip:t.jsxs(t.Fragment,{children:[t.jsx("p",{children:"Current memory usage."}),g]}),size:"16px"})]})]}),t.jsxs(p,{children:[t.jsx("strong",{children:"Stream clients"}),t.jsx("span",{children:e.connectedStreamingClients})]}),t.jsx(p,{children:t.jsx(le,{instance:e})}),o&&t.jsx(p,{children:t.jsx(je,{apiKeys:e.apiKeyRevisionIds,revisionIds:n})})]})]})})},x="Unleash",Me=a("div")(({theme:e})=>({marginBottom:e.spacing(18),display:"flex",justifyContent:"center"})),Ie=a("div")(({theme:e})=>({display:"flex",justifyContent:"center",gap:e.spacing(4),flexWrap:"wrap",marginTop:e.spacing(2)})),M=a("div")(({theme:e})=>({borderRadius:e.shape.borderRadiusMedium,border:`1px solid ${e.palette.secondary.border}`,backgroundColor:e.palette.secondary.light,display:"flex",flexDirection:"column",alignItems:"center",padding:e.spacing(1.5),zIndex:1,marginTop:e.spacing(1),"& > svg":{width:e.spacing(9),height:e.spacing(9)}})),Te=a(M)(({theme:e})=>({backgroundColor:G(e.palette.background.paper,.75),position:"relative"})),De=a(E)({position:"absolute",top:-13}),Ue=a(h)(({theme:e})=>({marginTop:e.spacing(.5),fontWeight:e.fontWeight.bold})),ze=a(h)(({theme:e})=>({fontSize:e.fontSizes.smallerBody,color:e.palette.text.secondary})),We=e=>e.reduce((n,s)=>(n.has(s.appName)||n.set(s.appName,{appName:s.appName,instances:[],groupTargets:new Set,level:0}),n.get(s.appName).instances.push(s),n),new Map),_e=e=>{const n=new Map,s=r=>{if(n.has(r.appName))return n.get(r.appName);let d=0;return r.groupTargets.forEach(l=>{if(l!==x){const c=e.get(l);c&&(d=Math.max(d,s(c)+1))}}),n.set(r.appName,d),d};e.forEach(r=>{r.level=s(r)});const o=new Map;return e.forEach(r=>{const d=o.get(r.level)||[];d.push(r),o.set(r.level,d)}),o},Re=e=>{const n=We(e),s=new Map,o=new Map;return n.forEach(r=>{r.instances=r.instances.sort((d,l)=>d.instanceId.localeCompare(l.instanceId)).map((d,l)=>{const c=`${r.appName}-${l+1}`;return s.set(d.instanceId,c),o.set(c,r.appName),{...d,id:c}})}),n.forEach(r=>{r.instances=r.instances.map(l=>({...l,connectedVia:l.connectedVia?s.get(l.connectedVia)||l.connectedVia:x}));const d=new Set;r.instances.forEach(l=>{if(!l.connectedVia||l.connectedVia===x)d.add(x);else{const c=o.get(l.connectedVia);c&&c!==r.appName&&d.add(c)}}),r.groupTargets=d}),_e(n)},Be=e=>e.every(n=>n.hosting==="hosted")?{hostingLabel:"Cloud",hostingColor:"secondary"}:e.every(n=>n.hosting==="enterprise-self-hosted")?{hostingLabel:"Self-hosted",hostingColor:"info"}:e.every(n=>n.hosting==="hosted"||n.hosting==="enterprise-self-hosted")?{hostingLabel:"Hybrid",hostingColor:"warning"}:{hostingLabel:"Unknown",hostingColor:"neutral"},Fe=({connectedEdges:e,revisionIds:n})=>{const s=H(),o=i.useMemo(()=>Re(e),[e]),r=Array.from(o.keys()).sort((d,l)=>d-l);return t.jsxs(j.ArcherContainer,{strokeColor:s.palette.text.primary,endShape:{arrow:{arrowLength:4,arrowThickness:4}},children:[t.jsx(Me,{children:t.jsx(j.ArcherElement,{id:x,children:t.jsxs(M,{children:[t.jsx(V,{darkmode:t.jsx(q,{}),lightmode:t.jsx(O,{})}),t.jsx(h,{sx:{mt:1},children:x})]})})}),r.map(d=>{var l;return t.jsx(Ie,{children:(l=o.get(d))==null?void 0:l.map(({appName:c,groupTargets:m,instances:g})=>{const{hostingLabel:I,hostingColor:T}=Be(g);return t.jsx(j.ArcherElement,{id:c,relations:Array.from(m).map(y=>({targetId:y,targetAnchor:"bottom",sourceAnchor:"top",style:{strokeColor:s.palette.secondary.border}})),children:t.jsxs(Te,{children:[t.jsx(De,{color:T,children:I}),t.jsx(Ue,{children:K(c)}),t.jsxs(ze,{children:[g.length," instance",g.length!==1&&"s"]}),g.map(y=>t.jsx(we,{instance:y,revisionIds:n},y.instanceId))]})},c)})},d)})]})},Ne=e=>i.createElement("svg",{width:312,height:144,viewBox:"0 0 312 144",fill:"none",xmlns:"http://www.w3.org/2000/svg",...e},i.createElement("rect",{width:312,height:144,rx:8,fill:"#F1F0FC"}),i.createElement("g",{opacity:.2},i.createElement("circle",{cx:155.933,cy:72.1494,r:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),i.createElement("ellipse",{cx:155.933,cy:72.2595,rx:43.5873,ry:60.2595,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),i.createElement("ellipse",{cx:156.368,cy:72.1494,rx:27.2421,ry:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"}),i.createElement("ellipse",{cx:156.369,cy:72.1494,rx:10.8968,ry:59.9326,stroke:"#657A80",strokeWidth:1.35669,strokeLinecap:"square"})),i.createElement("g",{opacity:.2},i.createElement("mask",{id:"mask0_35832_1410",style:{maskType:"alpha"},maskUnits:"userSpaceOnUse",x:96,y:12,width:120,height:121},i.createElement("circle",{cx:155.933,cy:72.1494,r:59.2542,fill:"#92A1A5",stroke:"#657A80",strokeWidth:1.35669})),i.createElement("g",{mask:"url(#mask0_35832_1410)"},i.createElement("path",{d:"M96 48.1777C96 48.1777 109.076 59.2925 155.933 59.2925C202.789 59.2925 215.865 48.1777 215.865 48.1777",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M96 28.3438C96 28.3438 109.076 45.7787 155.933 45.7787C202.789 45.7787 215.865 28.3438 215.865 28.3438",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M96 2.19141C96 2.19141 109.076 33.1384 155.933 33.1384C202.789 33.1384 215.865 2.19141 215.865 2.19141",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M96 -39.4336C96 -39.4336 109.076 21.3707 155.933 21.3707C202.789 21.3707 215.865 -39.4336 215.865 -39.4336",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("line",{x1:96,y1:71.472,x2:215.865,y2:71.472,stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.867 95.6855C215.867 95.6855 202.79 84.5708 155.934 84.5708C109.078 84.5708 96.0016 95.6855 96.0016 95.6855",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.867 115.518C215.867 115.518 202.79 98.0826 155.934 98.0826C109.078 98.0826 96.0016 115.518 96.0016 115.518",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.867 141.672C215.867 141.672 202.79 110.725 155.934 110.725C109.078 110.725 96.0016 141.672 96.0016 141.672",stroke:"#657A80",strokeWidth:1.35669}),i.createElement("path",{d:"M215.866 183.297C215.866 183.297 202.79 122.493 155.934 122.493C109.078 122.493 96.0013 183.297 96.0013 183.297",stroke:"#657A80",strokeWidth:1.35669}))),i.createElement("rect",{x:116.749,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:"rotate(-180 116.749 86.5273)",fill:"url(#paint0_linear_35832_1410)"}),i.createElement("ellipse",{cx:102.184,cy:71.9997,rx:14.565,ry:14.527,fill:"#817AFE"}),i.createElement("path",{d:"M106.258 67.9648H98.187V76.0354H106.258V67.9648Z",fill:"white"}),i.createElement("path",{d:"M140.556 78.3887L140.232 70.291L133.381 74.6202L140.556 78.3887ZM121.749 69.1189L129.108 72.5139L128.369 64.4436L121.749 69.1189ZM137.182 73.0493L137.645 72.5217C136.53 71.5447 135.079 70.5495 133.191 69.6186L132.88 70.2481L132.57 70.8776C134.358 71.7589 135.705 72.6876 136.719 73.577L137.182 73.0493ZM132.88 70.2481L133.191 69.6186C131.302 68.6877 129.629 68.143 128.176 67.8544L128.039 68.5428L127.902 69.2312C129.225 69.4939 130.782 69.9964 132.57 70.8776L132.88 70.2481Z",fill:"#6C65E5"}),i.createElement("rect",{x:147.284,y:55.7305,width:17.4324,height:32.5405,rx:3.48649,fill:"#1A4049"}),i.createElement("path",{d:"M171.444 78.3887L171.768 70.291L178.619 74.6202L171.444 78.3887ZM190.251 69.1189L182.892 72.5139L183.631 64.4436L190.251 69.1189ZM174.818 73.0493L174.355 72.5217C175.47 71.5447 176.921 70.5495 178.809 69.6186L179.12 70.2481L179.43 70.8776C177.642 71.7589 176.295 72.6876 175.281 73.577L174.818 73.0493ZM179.12 70.2481L178.809 69.6186C180.698 68.6877 182.371 68.143 183.824 67.8544L183.961 68.5428L184.098 69.2312C182.775 69.4939 181.218 69.9964 179.43 70.8776L179.12 70.2481Z",fill:"#6C65E5"}),i.createElement("rect",{x:253.359,y:86.5273,width:58.1081,height:29.0541,rx:14.527,transform:"rotate(-180 253.359 86.5273)",fill:"url(#paint1_linear_35832_1410)"}),i.createElement("ellipse",{cx:238.794,cy:71.9997,rx:14.565,ry:14.527,fill:"#1A4049"}),i.createElement("path",{d:"M242.867 67.9648H234.797V76.0354H242.867V67.9648Z",fill:"#EDF0F1"}),i.createElement("defs",null,i.createElement("linearGradient",{id:"paint0_linear_35832_1410",x1:116.737,y1:100.985,x2:174.889,y2:100.985,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#1A4049",stopOpacity:0}),i.createElement("stop",{offset:1,stopColor:"#0E1A1D"})),i.createElement("linearGradient",{id:"paint1_linear_35832_1410",x1:253.347,y1:100.985,x2:311.499,y2:100.985,gradientUnits:"userSpaceOnUse"},i.createElement("stop",{stopColor:"#657A80",stopOpacity:0}),i.createElement("stop",{offset:1,stopColor:"#1A4049",stopOpacity:.75})))),$e=a("div")(({theme:e})=>({display:"flex",flexDirection:"column",gap:e.spacing(1),maxWidth:e.spacing(80),margin:"auto"})),Pe=a("div")(({theme:e})=>({display:"flex",flexDirection:"row",gap:e.spacing(2.5),marginTop:e.spacing(2.5)})),He=a("div")(({theme:e})=>({border:`1px solid ${e.palette.divider}`,borderRadius:e.shape.borderRadiusLarge,padding:e.spacing(3),flex:1,display:"flex",flexDirection:"column",gap:e.spacing(1.5)})),Ve=a("div")({"& > svg":{width:"auto",maxWidth:"100%",height:"auto",display:"block"}}),Oe=a("ul")(({theme:e})=>({listStyle:"none",marginTop:e.spacing(1),marginBottom:e.spacing(1),paddingLeft:e.spacing(0),display:"flex",flexDirection:"column",gap:e.spacing(1)})),qe=a("li")(({theme:e})=>({display:"flex",alignItems:"center",gap:e.spacing(1)})),Ge=a(Q)(({theme:e})=>({color:e.palette.primary.main,fontSize:"18px"})),Ze=a("div")(({theme:e})=>({display:"flex",justifyContent:"flex-start",margin:e.spacing(-.75)})),Je=()=>t.jsxs($e,{children:[t.jsx(h,{variant:"h3",children:"Which version is right for you?"}),t.jsxs(h,{variant:"body2",color:"text.secondary",children:["Unleash Enterprise Edge is a high-performance proxy engineered for scalability, resilience, and privacy. It acts as a shield between your SDKs and the Unleash API, allowing you to handle thousands of concurrent connections with zero impact on your primary instance. Contact"," ",t.jsx("a",{href:"mailto:license@getunleash.io",children:"license@getunleash.io"})," ","today to provision your private Enterprise Edge environment."]}),t.jsxs(Pe,{children:[t.jsx(b,{image:t.jsx(ee,{}),title:"Cloud hosted",description:"When you need to connect to Unleash from geographically distributed locations.",bullets:["Global infrastructure","No operational burden","Instant flag updates worldwide"],docsUrl:"https://docs.getunleash.io/deploy/hosting-options#cloud-hosted"}),t.jsx(b,{image:t.jsx(Ne,{}),title:"Self hosted",description:"Ensure low latency and data sovereignty by running Enterprise Edge inside your private network.",bullets:["Ideal for PII heavy data","Optimized for minimal latency","Improved security"],docsUrl:"https://docs.getunleash.io/deploy/hosting-options#self-hosted"})]})]}),b=({image:e,title:n,description:s,bullets:o,docsUrl:r})=>t.jsxs(He,{children:[t.jsx(Ve,{children:e}),t.jsx(h,{variant:"h3",children:n}),t.jsx(h,{variant:"body2",color:"text.secondary",children:s}),t.jsx(Oe,{children:o.map(d=>t.jsxs(qe,{children:[t.jsx(Ge,{})," ",t.jsx(h,{variant:"body2",color:"text.secondary",children:d})]},d))}),t.jsxs(h,{variant:"body2",color:"text.secondary",children:["Contact"," ",t.jsx("a",{href:"mailto:license@getunleash.io",children:"license@getunleash.io"})," to get started."]}),t.jsx(Ze,{children:t.jsx(Z,{component:J,to:r,size:"small",sx:{fontSize:"14px"},rel:"noopener noreferrer",target:"_blank",children:"Read docs"})})]}),Qe=a(X)(({theme:e})=>({".body":{padding:e.spacing(0)}})),L=a("div")(({theme:e})=>({padding:e.spacing(4)})),Ye=a("hr")(({theme:e})=>({border:"none",height:"1px",background:e.palette.divider,width:"100%",margin:e.spacing(2,0)})),rt=()=>{Y("Enterprise Edge");const{edgeObservability:e}=ne({refreshInterval:3e4}),n=e.connectedEdges.length>0;return t.jsxs(Qe,{header:"Enterprise Edge",children:[n&&t.jsxs(t.Fragment,{children:[t.jsx(L,{children:t.jsx(Fe,{connectedEdges:e.connectedEdges,revisionIds:e.revisionIds})}),t.jsx(Ye,{})]}),t.jsx(L,{sx:{pb:n?6:4},children:t.jsx(Je,{})})]})};export{rt as EnterpriseEdge,rt as default};
@@ -1,2 +1,2 @@
1
- import{jI as c,dz as m,jw as u,bt as x,b as g,bq as f,r as d,j as b,dU as C,dO as v,dP as j,dQ as M,dR as S,dS as q,jQ as D,jB as E,jA as T,jz as $}from"./index-CiWHTkEm.js";import{d as L}from"./FeatureViewLazyExport-JSvPNdBO.js";import"./MarkCompletedDialogue-CkeYSNgH.js";import"./aggregateFeatureMetrics-DqOEKfDa.js";import"./FeatureStaleDialog-Ckz7F5lw.js";import"./PercentageDonut-WlMbDfDd.js";import"./GridLayoutWrapper-CyXfGdie.js";const O=(e,l,s)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(l,s,o=>o.yes+o.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},t={label:"Exposed",borderColor:e.palette.success.main,backgroundColor:e.palette.success.main,data:p(l,s,o=>o.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},r={label:"Not exposed",borderColor:e.palette.error.main,backgroundColor:e.palette.error.main,data:p(l,s,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,l,s)=>e.map(a=>({x:a.timestamp,y:s(a),variants:a.variants||{}})),P=(e,l)=>{if(l===0)return"";const[s,a]=e,t=Math.floor(Number(a)/l*100);return`${a} (${t}%) - ${s}`},R=(e,l,s,a)=>({locale:a.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.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,itemSort:(t,r)=>{const o=["Total requests","Exposed","Not exposed"],n=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return n-i},callbacks:{label:t=>`${t.formattedValue} - ${t.dataset.label}`,afterLabel:t=>{const r=t.dataset.data[t.dataIndex];if(t.dataset.label!=="Exposed"||r.variants===void 0)return"";const{disabled:o,...n}=r.variants;return Object.entries(n).map(i=>P(i,r.y)).join(`
2
- `)},title:t=>`Time: ${s>48?m(t[0].parsed.x,a.locale,"UTC"):u(t[0].parsed.x,a.locale)}`}},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:_(s),position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary}},scales:{y:{type:"linear",title:{display:!0,text:"Number of requests",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:s>48?"day":"hour"},grid:{display:!1},ticks:{callback:(t,r,o)=>s>48?x(o[r].value,a.locale,"UTC"):u(o[r].value,a.locale),color:e.palette.text.secondary}}}}),_=e=>e===1?"Requests in the last hour":`Requests in the last ${L(e)}`;c.font={...c.font,family:"Sen",size:13,weight:"400"};const A=({metrics:e,hoursBack:l,statsSectionId:s})=>{const a=g(),{locationSettings:t}=f(),r=d.useMemo(()=>[...e].sort((i,y)=>i.timestamp.localeCompare(y.timestamp)),[e]),o=d.useMemo(()=>R(a,r,l,t),[a,r,l,t]),n=d.useMemo(()=>O(a,r,t),[a,r,t]);return b.jsx("div",{style:{height:400},children:b.jsx(C,{options:o,data:n,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":s})})};v.register(j,M,S,q,D,E,T,$);export{A as FeatureMetricsChart,A as default};
1
+ import{bt as y,jm as c,dl as x,jD as u,b as g,bq as f,r as d,j as b,dB as C,dC as v,dD as j,dE as q,dF as M,dG as S,jH as D,js as E,jr as T,jq as $}from"./index-DMSjiFEm.js";import{d as L}from"./FeatureViewLazyExport-Bsw7-knb.js";import"./MarkCompletedDialogue-DFtLyDN0.js";import"./aggregateFeatureMetrics-YEdZNNoV.js";import"./FeatureStaleDialog-DOkhgvaj.js";import"./PercentageDonut-JGNh2FVZ.js";import"./GridLayoutWrapper-DpJcUbQB.js";const _=(e,l,s)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(l,s,o=>o.yes+o.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},t={label:"Exposed",borderColor:e.palette.success.main,backgroundColor:e.palette.success.main,data:p(l,s,o=>o.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},r={label:"Not exposed",borderColor:e.palette.error.main,backgroundColor:e.palette.error.main,data:p(l,s,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,l,s)=>e.map(a=>({x:a.timestamp,y:s(a),variants:a.variants||{}})),h=(e,l)=>{if(l===0)return"";const[s,a]=e,t=Math.floor(Number(a)/l*100);return`${a} (${t}%) - ${s}`},k=(e,l,s,a)=>({locale:a.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.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,itemSort:(t,r)=>{const o=["Total requests","Exposed","Not exposed"],n=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return n-i},callbacks:{label:t=>`${t.formattedValue} - ${t.dataset.label}`,afterLabel:t=>{const r=t.dataset.data[t.dataIndex];if(t.dataset.label!=="Exposed"||r.variants===void 0)return"";const{disabled:o,...n}=r.variants;return Object.entries(n).map(i=>h(i,r.y)).join(`
2
+ `)},title:t=>`Time: ${s>48?x(t[0].parsed.x,a.locale,"UTC"):c(t[0].parsed.x,a.locale)}`}},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:H(s),position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary}},scales:{y:{type:"linear",title:{display:!0,text:"Number of requests",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:s>48?"day":"hour"},grid:{display:!1},ticks:{callback:(t,r,o)=>s>48?y(o[r].value,a.locale,"UTC"):c(o[r].value,a.locale),color:e.palette.text.secondary}}}}),H=e=>e===1?"Requests in the last hour":`Requests in the last ${L(e)}`;u.font={...u.font,family:"Sen",size:13,weight:"400"};const z=({metrics:e,hoursBack:l,statsSectionId:s})=>{const a=g(),{locationSettings:t}=f(),r=d.useMemo(()=>[...e].sort((i,m)=>i.timestamp.localeCompare(m.timestamp)),[e]),o=d.useMemo(()=>k(a,r,l,t),[a,r,l,t]),n=d.useMemo(()=>_(a,r,t),[a,r,t]);return b.jsx("div",{style:{height:400},children:b.jsx(C,{options:o,data:n,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":s})})};v.register(j,q,M,S,D,E,T,$);export{z as FeatureMetricsChart,z as default};
@@ -0,0 +1,7 @@
1
+ import{F as z,j as t,H as G,A as H,m as Y,C as V,n as oe,o as ie,bg as le,iR as ce,q as de,b as J,T as C,s as I,u as ue,b8 as pe,r as v,b7 as W,b9 as K,bb as me,ap as Q,ce as he,cV as ge,iS as fe,cY as ve,cU as B,b6 as _,cT as be,iT as Se,cS as je,h as xe,iU as Te,bC as X,iV as ye,br as Z,iW as Ee,iX as Ce,iY as Re,iZ as Ae,i_ as ke,i0 as De,hS as ee,i$ as we,k as Ie,j0 as Pe,j1 as Oe,c9 as te,aO as ae,bz as Fe,f$ as _e,f as $,bD as Ve,ba as $e,bB as Ue,bI as Ne,cd as qe,ca as Be,i as F,j2 as Le,cA as Me,aR as ze,aS as Ge,aP as He,aV as se,bf as L,bd as ne,j3 as Ye,j4 as Je,j5 as We,hQ as Ke,j6 as Qe,B as Xe,ao as Ze,cB as et,fZ as tt,j7 as at}from"./index-DMSjiFEm.js";var N={},st=G;Object.defineProperty(N,"__esModule",{value:!0});var re=N.default=void 0,nt=st(z()),rt=t,ot=(0,nt.default)((0,rt.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox");re=N.default=ot;const it=ce(),$t=({options:e,selectedOptions:r,indeterminateOptions:n,tagType:u,existingTags:o,disabled:c=!1,onChange:a})=>{const i=t.jsx(de,{fontSize:"small"}),d=p=>p.inputValue?p.inputValue:p.title,g=({key:p,...m},s,{selected:h})=>{const j=(n==null?void 0:n.some(x=>x.title===s.title))??!1;return t.jsxs("li",{...m,children:[t.jsx(V,{condition:!!s.inputValue,show:t.jsx(le,{sx:{mr:x=>x.spacing(.5)}}),elseShow:t.jsx(oe,{icon:i,checkedIcon:t.jsx(ie,{fontSize:"small"}),indeterminateIcon:t.jsx(re,{fontSize:"small"}),sx:{mr:x=>x.spacing(.5)},checked:h&&!j,indeterminate:j})}),s.title]},p)},f=(p,m)=>{const s=m.inputValue.trim(),h=it(p,{...m,inputValue:s}),j=p.some(x=>s===x.title);return s.length>=2&&!j&&h.push({inputValue:s,title:`Create new value "${s}"`}),h};return t.jsx(H,{multiple:!0,id:"checkboxes-tag",sx:{marginTop:p=>p.spacing(2),width:500},disableCloseOnSelect:!0,options:e,value:r,isOptionEqualToValue:(p,m)=>m.inputValue&&m.inputValue!==""?p.title===m.inputValue:p.title===m.title,getOptionLabel:d,renderOption:g,filterOptions:f,ListboxProps:{style:{maxHeight:200,overflow:"auto"}},onChange:a,renderInput:p=>t.jsx(Y,{...p,label:"Select values",placeholder:"Select values"}),disabled:c})},lt=I("li")({flexDirection:"column"}),Ut=({options:e,value:r,disabled:n=!1,onChange:u})=>{const o=J();return t.jsx(H,{disablePortal:!0,disabled:n,id:"tag-type-select",sx:{marginTop:c=>c.spacing(2),width:500},options:e,disableClearable:!0,value:r,getOptionLabel:c=>c.name,renderOption:({key:c,...a},i)=>t.jsxs(lt,{...a,style:{alignItems:"flex-start",gap:o.spacing(.5)},children:[t.jsx(C,{variant:"body1",children:i.name}),t.jsx(C,{variant:"caption",children:i.description})]},c),renderInput:c=>t.jsx(Y,{...c,label:"Tag type",value:r}),onChange:u,ListboxProps:{style:{maxHeight:200,overflow:"auto"}}})},Nt=()=>{const{makeRequest:e,createRequest:r,errors:n,loading:u}=ue({propagateErrors:!0});return{createTag:async a=>{const d=r("api/admin/tags",{method:"POST",body:JSON.stringify(a)});return e(d.caller,d.id)},bulkUpdateTags:async(a,i)=>{const d=`api/admin/projects/${i}/tags`,g=r(d,{method:"PUT",body:JSON.stringify(a)});return e(g.caller,g.id)},errors:n,loading:u}},qt=(e,r={})=>{const n=async()=>{const g=W(`api/admin/tags/${e}`);return(await fetch(g,{method:"GET"}).then(K("Tags"))).json()},u=`api/admin/tags/${e}`,{data:o,error:c}=pe(!!e,{tags:[]},u,n,r),[a,i]=v.useState(!c&&!o),d=()=>{me(u)};return v.useEffect(()=>{i(!c&&!o)},[o,c]),{tags:(o==null?void 0:o.tags)||[],error:c,loading:a,refetch:d}},ct=I("div")({display:"flex",flexDirection:"column"}),dt=({strategy:e,setStrategy:r,projectId:n,environment:u,editable:o,permission:c=be})=>{const{trackEvent:a}=Q(),[i,d]=v.useState([]),g=J(),f=e!=null&&e.parameters&&"stickiness"in(e==null?void 0:e.parameters)?String(e.parameters.stickiness):"default";v.useEffect(()=>{d((e.variants||[]).map(s=>({...s,new:o||!1,isValid:!0,id:crypto.randomUUID(),overrides:[]})))},[]),v.useEffect(()=>{r(s=>({...s,variants:i.map(h=>({stickiness:f,name:h.name,weight:h.weight,payload:h.payload,weightType:h.weightType}))}))},[f,JSON.stringify(i)]);const p=(s,h)=>{d(j=>B(j.map(x=>x.id===h?s:x),1e3))},m=()=>{const s=crypto.randomUUID();d(h=>[...h,{name:"",weightType:je.VARIABLE,weight:0,stickiness:f,new:!0,isValid:!1,id:s}]),a("strategy-variants",{props:{eventType:"variant added"}})};return t.jsxs(t.Fragment,{children:[t.jsxs(C,{component:"h3",sx:{m:0,display:"flex",gap:"1ch"},variant:"h3",children:["Variants",t.jsx(he,{htmlTooltip:!0,tooltip:t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"Variants allow to attach one or more values to this strategy. Variants at the strategy level override variants at the feature level."}),t.jsx(ge,{target:"_blank",href:"https://docs.getunleash.io/concepts/strategy-variants",children:"Learn more"})]})})]}),t.jsxs(ct,{children:[t.jsx(fe,{}),i.map((s,h)=>t.jsx(ve,{disableOverrides:!0,variant:s,variants:i,updateVariant:j=>p(j,s.id),removeVariant:()=>d(j=>B(j.filter(x=>x.id!==s.id),1e3)),decorationColor:g.palette.variants[h%g.palette.variants.length]},s.id))]}),t.jsx(_,{onClick:m,variant:"outlined",permission:c,projectId:n,environmentId:u,"data-testid":"ADD_STRATEGY_VARIANT_BUTTON",children:"Add variant"}),t.jsx(Se,{variants:i})]})},ut=I("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),M=I("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),pt=I("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),mt=({projectId:e,environmentId:r,permission:n,onSubmit:u,onCancel:o,loading:c,strategy:a,setStrategy:i,segments:d,setSegments:g,errors:f})=>{const p=xe("strategyFormConsolidation"),m=Te(a.constraints),{strategyDefinition:s}=X(a==null?void 0:a.name),{segments:h=[]}=ye(),j=h.length>0||d.length>0,x=Z();if(!s)return null;const P=b=>s.parameters.find(y=>y.name===b),k=(b,y)=>{const E=P(b);if(b!=="groupId"){const w=Oe(E,y);return w?(f.setFormError(b,w),!1):(f.removeFormError(b),!0)}return!0},R=()=>s.parameters.map(b=>b.name).map(b=>{var y;return k(b,(y=a.parameters)==null?void 0:y[b])}).every(Boolean),l=()=>{x(`/projects/${e}/settings/default-strategy`)},D=async b=>{if(b.preventDefault(),R())u();else return},O=(b,y)=>{i(Pe(E=>{E.parameters=E.parameters??{},E.parameters[b]=y})),k(b,y)};return t.jsxs(ut,{onSubmit:D,children:[t.jsx(Ee,{title:a.title||"",setTitle:b=>{i(y=>({...y,title:b}))}}),j?t.jsx(Ce,{segments:d,setSegments:g,availableSegments:h}):null,t.jsx(Re,{strategy:a,setStrategy:i}),t.jsx(M,{}),p?t.jsx(Ae,{strategy:a,strategyDefinition:s,updateParameter:O,errors:f}):t.jsx(ke,{strategy:a,strategyDefinition:s,setStrategy:i,validateParameter:k,errors:f}),t.jsx(V,{condition:a.parameters!=null&&"stickiness"in a.parameters,show:t.jsx(dt,{strategy:a,setStrategy:i,environment:r,projectId:e,permission:[De,ee]})}),t.jsx(M,{}),t.jsxs(pt,{children:[t.jsx(_,{permission:n,projectId:e,environmentId:r,variant:"contained",color:"primary",type:"submit",disabled:c||!m||f.hasFormErrors(),"data-testid":we,children:"Save strategy"}),t.jsx(Ie,{type:"button",color:"primary",onClick:o||l,disabled:c,children:"Cancel"})]})]})},ht=(e,r)=>{var a,i;const{project:n,refetch:u}=te(e),o={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:n.defaultStickiness||"default",groupId:""}},c=(i=(a=n.environments)==null?void 0:a.find(d=>d.environment===r))==null?void 0:i.defaultStrategy;return{defaultStrategyFallback:o,strategy:c,refetch:u}},Bt=()=>{const e=ae("projectId"),r=Fe("environmentId"),{refetch:n}=te(e),{defaultStrategyFallback:u,strategy:o,refetch:c}=ht(e,r),[a,i]=v.useState(o||u),[d,g]=v.useState([]),{updateDefaultStrategy:f,loading:p}=_e(),{strategyDefinition:m}=X(a==null?void 0:a.name),{setToastData:s,setToastApiError:h}=$(),j=Ve(),{uiConfig:x}=$e(),{unleashUrl:P}=x,k=Z(),{trackEvent:R}=Q(),{segments:l,refetchSegments:D}=Ue();v.useEffect(()=>{if(l&&(o!=null&&o.segments)){const E=[];for(const w of o==null?void 0:o.segments)E.push(...l.filter(T=>T.id===w));g(E)}},[JSON.stringify(l),JSON.stringify(o==null?void 0:o.segments)]);const O=gt(a,d),b=async E=>{await f(e,r,E),R("default_strategy",{props:{action:"edit",hasTitle:!!E.title}}),D(),n(),s({text:"Default Strategy updated",type:"success"})},y=async()=>{const E=`/projects/${e}/settings/default-strategy`;try{await b(O),await c(),k(E)}catch(w){h(F(w))}};return!m||!a?null:t.jsx(Ne,{modal:!0,title:Be((a==null?void 0:a.name)??""),description:vt,documentationLink:bt,documentationLinkLabel:St,formatApiCode:()=>ft(e,r,O,m,P),children:t.jsx(mt,{projectId:e,strategy:a,setStrategy:i,segments:d,setSegments:g,environmentId:r,onSubmit:y,loading:p,permission:[qe,ee],errors:j,isChangeRequest:!1})})},gt=(e,r)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},variants:e.variants??[],segments:r.map(n=>n.id),disabled:e.disabled??!1}),ft=(e,r,n,u,o)=>{if(!o)return"";const c={...n,parameters:Le(n.parameters??{},u)},a=`${o}/api/admin/projects/${e}/environments/${r}/default-strategy}`,i=JSON.stringify(c,void 0,2);return`curl --location --request PUT '${a}' \\
2
+ --header 'Authorization: INSERT_API_KEY' \\
3
+ --header 'Content-Type: application/json' \\
4
+ --data-raw '${i}'`},vt=`
5
+ An activation strategy will only run when a feature flag is enabled and provides a way to control who will get access to the feature.
6
+ If any of a feature flag's activation strategies returns true, the user will get access.
7
+ `,bt="https://docs.getunleash.io/concepts/projects#project-default-strategy",St="Default strategy documentation",Lt=e=>{const{data:r,error:n,mutate:u}=Me(W(`api/admin/environments/project/${e}`),jt),o=v.useMemo(()=>r||[],[r]),c=v.useCallback(async()=>{await u()},[u]);return{environments:o,refetchEnvironments:c,loading:!n&&!r,error:n}},jt=async e=>(await fetch(e).then(K("Environments")).then(n=>n.json())).environments.sort((n,u)=>n.sortOrder-u.sortOrder),xt=e=>{const{setToastData:r,setToastApiError:n}=$(),{addChange:u}=ze(),{refetch:o}=Ge(e),[c,a]=v.useState(!1),[i,d]=v.useState({isOpen:!1}),g=v.useCallback((m,s,h,j)=>{d({featureName:m,environment:s,enabled:h,shouldActivateDisabledStrategies:j,isOpen:!0})},[]),f=v.useCallback(()=>{d(m=>({...m,isOpen:!1}))},[]),p=v.useCallback(async()=>{try{a(!0),await u(e,i.environment,{feature:i.featureName,action:"updateEnabled",payload:{enabled:!!i.enabled,shouldActivateDisabledStrategies:!!i.shouldActivateDisabledStrategies}}),o(),d(m=>({...m,isOpen:!1})),r({type:"success",text:"Changes added to draft"})}catch(m){n(F(m)),d(s=>({...s,isOpen:!1}))}finally{a(!1)}},[u]);return{pending:c,onChangeRequestToggle:g,onChangeRequestToggleClose:f,onChangeRequestToggleConfirm:p,changeRequestDialogDetails:i}},Tt=({enabled:e,featureName:r,environment:n})=>t.jsxs(C,{"data-testid":"update-enabled-message",children:[t.jsx("strong",{children:e?"Enable":"Disable"})," feature flag"," ",t.jsx("strong",{children:r})," in ",t.jsx("strong",{children:n})]}),yt=I("ul")(({theme:e})=>({margin:e.spacing(1),paddingLeft:e.spacing(2)})),Et=({isOpen:e,onAddDefaultStrategy:r,onActivateDisabledStrategies:n,onClose:u,environment:o,featureId:c})=>{var f,p,m;const a=ae("projectId"),{feature:i}=He(a,c),d=(m=(p=(f=i.environments)==null?void 0:f.find(({name:s})=>s===o))==null?void 0:p.strategies)==null?void 0:m.filter(({disabled:s})=>s).length,g=d?d===1?"1 disabled strategy":`${d} disabled strategies`:"disabled strategies";return t.jsxs(se,{open:e,secondaryButtonText:"Cancel",permissionButton:t.jsxs(t.Fragment,{children:[t.jsx(_,{type:"button",variant:"outlined",permission:L,projectId:a,environmentId:o,onClick:r,children:"Add default strategy"}),t.jsx(_,{type:"button",variant:"outlined",permission:L,projectId:a,environmentId:o,onClick:n,children:"Enable all strategies"})]}),onClose:u,title:`Enable feature flag in ${o}`,fullWidth:!0,children:[t.jsx(C,{sx:{mb:s=>s.spacing(3)},children:"A feature flag cannot be enabled without an enabled strategy."}),t.jsx(C,{children:"To enable this feature flag you can choose to:"}),t.jsxs(yt,{children:[t.jsx("li",{children:t.jsx(C,{children:t.jsx("strong",{children:"Add the default strategy"})})}),t.jsx("li",{children:t.jsxs(C,{children:[t.jsx("strong",{children:"Enable all the disabled strategies"})," ","(this feature flag has ",g,")"]})})]})]})},Ct=e=>{const r=n=>{n<e.length&&e[n](()=>r(n+1))};r(0)},Mt=e=>{const{toggleFeatureEnvironmentOn:r,toggleFeatureEnvironmentOff:n}=ne(),{setToastData:u,setToastApiError:o}=$(),[c,a]=v.useState({open:!1,label:"",loading:!1,onClose:()=>{},onClick:()=>{}}),[i,d]=v.useState({isOpen:!1,environment:"",featureId:"",onClose:()=>{},onActivateDisabledStrategies:()=>{},onAddDefaultStrategy:()=>{}}),{pending:g,onChangeRequestToggle:f,onChangeRequestToggleClose:p,onChangeRequestToggleConfirm:m,changeRequestDialogDetails:s}=xt(e),[h,j]=v.useState(),x=v.useCallback(async(R,l)=>{let D=!1;return Ct([T=>{if(l.isChangeRequestEnabled||!We(l.environmentType||""))return T();a({open:!0,label:`${R?"Enable":"Disable"} Environment`,loading:!1,onClose:()=>{var S;a(A=>({...A,open:!1})),(S=l.onRollback)==null||S.call(l)},onClick:()=>{a(S=>({...S,open:!1,loading:!0})),T()}})},T=>{if(R===!1||!l.hasStrategies||l.hasEnabledStrategies||l.hasReleasePlans)return T();d({isOpen:!0,environment:l.environmentName,featureId:l.featureId,onClose:()=>{var S;d(A=>({...A,isOpen:!1})),(S=l.onRollback)==null||S.call(l)},onActivateDisabledStrategies:()=>{d(S=>({...S,isOpen:!1})),D=!0,T()},onAddDefaultStrategy:()=>{d(S=>({...S,isOpen:!1})),T()}})},T=>{if(!l.isChangeRequestEnabled)return T();j(()=>{var S;j(void 0),(S=l.onRollback)==null||S.call(l)}),f(l.featureId,l.environmentName,R,D)},async T=>{var S,A;if(R!==!1)return T();try{await n(l.projectId,l.featureId,l.environmentName),u({type:"success",text:`Disabled in ${l.environmentName}`}),(S=l.onSuccess)==null||S.call(l)}catch(U){o(F(U)),(A=l.onRollback)==null||A.call(l)}},async T=>{var S,A;if(R!==!0)return T();try{await r(l.projectId,l.featureId,l.environmentName,D),u({type:"success",text:`Enabled in ${l.environmentName}`}),(S=l.onSuccess)==null||S.call(l)}catch(U){o(F(U)),(A=l.onRollback)==null||A.call(l)}}])},[a]),P=i.featureId.length!==0,k=t.jsxs(t.Fragment,{children:[t.jsx(Ye,{...c}),t.jsx(V,{condition:P,show:t.jsx(Et,{...i})}),t.jsx(Je,{isOpen:s.isOpen,onClose:()=>{h==null||h(),p()},environment:s==null?void 0:s.environment,disabled:g,onConfirm:()=>{h==null||h(),m()},messageComponent:t.jsx(Tt,{enabled:s==null?void 0:s.enabled,featureName:s==null?void 0:s.featureName,environment:s.environment})})]});return{onToggle:x,modals:k}},Rt=e=>{const[r,n]=v.useState(e),u=v.useCallback(()=>n(e),[e]);return v.useEffect(()=>{n(e)},[e]),[r,n,u]},At=I(Xe)(()=>({mx:"auto",...Ze})),zt=({projectId:e,featureId:r,environmentName:n,value:u,onToggle:o})=>{const[c,a,i]=Rt(u),d=()=>{a(!c),requestAnimationFrame(()=>{o(!c,i)})},g=`${r}-${n}`;return t.jsx(t.Fragment,{children:t.jsx(At,{"data-testid":`TOGGLE-${g}`,children:t.jsx(Ke,{tooltip:c?`Disable flag in ${n}`:`Enable flag in ${n}`,checked:u,environmentId:n,projectId:e,permission:Qe,inputProps:{"aria-label":n},onClick:d,"data-testid":"permission-switch",disabled:u!==c})},g)})};var q={},kt=G;Object.defineProperty(q,"__esModule",{value:!0});var Dt=q.default=void 0,wt=kt(z()),It=t,Pt=(0,wt.default)((0,It.jsx)("path",{d:"M16 11h-1V3c0-1.1-.9-2-2-2h-2c-1.1 0-2 .9-2 2v8H8c-2.76 0-5 2.24-5 5v7h18v-7c0-2.76-2.24-5-5-5zm3 10h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3h-2v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H9v-3c0-.55-.45-1-1-1s-1 .45-1 1v3H5v-5c0-1.65 1.35-3 3-3h8c1.65 0 3 1.35 3 3v5z"}),"CleaningServices");Dt=q.default=Pt;const Ot="flag-reminders:v1",Ft=50,_t=7,Gt=({days:e=_t,maxReminders:r=Ft}={})=>{const[n,u]=et(Ot,{});return{shouldShowReminder:a=>{const i=n[a];return!i||at(new Date,new Date(i))},snoozeReminder:(a,i=e)=>{const d=tt(new Date,i).getTime();u(g=>{const f={...g,[a]:d},p=Object.entries(f);if(p.length>r){p.sort((s,h)=>s[1]-h[1]);const m=p.slice(p.length-r);return Object.fromEntries(m)}return f})}}},Ht=({isStale:e,isOpen:r,projectId:n,featureId:u,onClose:o})=>{const{setToastData:c,setToastApiError:a}=$(),{patchFeatureToggle:i}=ne(),d=t.jsx(C,{children:"Setting a flag to stale marks it for cleanup"}),g=t.jsx(C,{children:"Setting a flag to active marks it as in active use"}),f=e?"active":"stale",p=async m=>{m.stopPropagation();try{await i(n,u,[{op:"replace",path:"/stale",value:!e}]),o()}catch(s){a(F(s))}c(e?{type:"success",text:"The flag is no longer marked as stale"}:{type:"success",text:"The flag has been marked as stale"})};return t.jsx(se,{open:r,secondaryButtonText:"Cancel",primaryButtonText:`Flip to ${f}`,title:`Set feature state to ${f}`,onClick:p,onClose:o,children:t.jsx(V,{condition:e,show:g,elseShow:d})})};export{Bt as E,zt as F,Ut as T,qt as a,$t as b,ht as c,Lt as d,Mt as e,Gt as f,Dt as g,Ht as h,Nt as u};