unleash-server 5.8.0 → 5.8.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 (48) hide show
  1. package/dist/lib/features/scheduler/scheduler-service.d.ts.map +1 -1
  2. package/dist/lib/features/scheduler/scheduler-service.js +2 -2
  3. package/dist/lib/features/scheduler/scheduler-service.js.map +1 -1
  4. package/dist/lib/features/scheduler/scheduler-service.test.js +9 -24
  5. package/dist/lib/features/scheduler/scheduler-service.test.js.map +1 -1
  6. package/dist/lib/metrics.d.ts +2 -0
  7. package/dist/lib/metrics.d.ts.map +1 -1
  8. package/dist/lib/metrics.js +48 -18
  9. package/dist/lib/metrics.js.map +1 -1
  10. package/dist/lib/metrics.test.js +25 -1
  11. package/dist/lib/metrics.test.js.map +1 -1
  12. package/dist/lib/routes/admin-api/api-token.d.ts.map +1 -1
  13. package/dist/lib/routes/admin-api/api-token.js +1 -1
  14. package/dist/lib/routes/admin-api/api-token.js.map +1 -1
  15. package/dist/lib/routes/admin-api/project/api-token.d.ts.map +1 -1
  16. package/dist/lib/routes/admin-api/project/api-token.js +1 -1
  17. package/dist/lib/routes/admin-api/project/api-token.js.map +1 -1
  18. package/dist/lib/services/scheduler-service.test.js +6 -8
  19. package/dist/lib/services/scheduler-service.test.js.map +1 -1
  20. package/dist/lib/util/extract-user.d.ts +1 -0
  21. package/dist/lib/util/extract-user.d.ts.map +1 -1
  22. package/dist/lib/util/extract-user.js +6 -3
  23. package/dist/lib/util/extract-user.js.map +1 -1
  24. package/dist/lib/util/extract-user.test.js +7 -4
  25. package/dist/lib/util/extract-user.test.js.map +1 -1
  26. package/frontend/build/index.html +1 -1
  27. package/frontend/build/static/{AdvancedPlayground-iXZHz_Rq.js → AdvancedPlayground-FxfPUa2V.js} +1 -1
  28. package/frontend/build/static/{CreateProject-BbtWHPl8.js → CreateProject-aN-UGdcb.js} +1 -1
  29. package/frontend/build/static/{FeatureArchiveDialog-D_tZ06Sa.js → FeatureArchiveDialog-eHyhx7Yo.js} +1 -1
  30. package/frontend/build/static/{FeatureMetricsChart-SiwdLhRh.js → FeatureMetricsChart-ExGq1eXl.js} +1 -1
  31. package/frontend/build/static/{FeatureViewLazyExport-baWLSkEu.js → FeatureViewLazyExport-S8mj8m0z.js} +2 -2
  32. package/frontend/build/static/{LazyAdminExport-ckQgco28.js → LazyAdminExport-fpVZFnP9.js} +2 -2
  33. package/frontend/build/static/{LazyProjectExport-R4jiFkLZ.js → LazyProjectExport-_QSE5C5m.js} +1 -1
  34. package/frontend/build/static/{NetworkOverview-StnrlVkY.js → NetworkOverview-ylTzmeDg.js} +2 -2
  35. package/frontend/build/static/{NetworkTraffic-V87e4GGP.js → NetworkTraffic-qj5h7JRk.js} +1 -1
  36. package/frontend/build/static/{ReactJSONEditor-Ybg5ijJk.js → ReactJSONEditor-E59dRBYR.js} +1 -1
  37. package/frontend/build/static/{RoleCell-3lnoYolp.js → RoleCell-TGTVkKHO.js} +1 -1
  38. package/frontend/build/static/{StrategyItemContainer-wRkYMo4g.js → StrategyItemContainer-JoMPKX3L.js} +1 -1
  39. package/frontend/build/static/{chartjs-adapter-date-fns.esm-kkU_hxq-.js → chartjs-adapter-date-fns.esm-JSlDxtwH.js} +1 -1
  40. package/frontend/build/static/{flowchart-elk-definition-170a3958-vkzW0gdf.js → flowchart-elk-definition-170a3958-NkZoK_zv.js} +1 -1
  41. package/frontend/build/static/{index-ORDXjnpF.js → index-JVRlSBvr.js} +64 -64
  42. package/frontend/build/static/{is_dark-zSU9-MOM.js → is_dark-gjUQW15t.js} +1 -1
  43. package/frontend/build/static/{mindmap-definition-44684416-2v9fPc7w.js → mindmap-definition-44684416-obuYUG0L.js} +1 -1
  44. package/frontend/build/static/{timeline-definition-8e5a9bc6-RDFfY8I3.js → timeline-definition-8e5a9bc6-33WsNwwr.js} +1 -1
  45. package/frontend/build/static/{unknownify-vwm75Pg9.js → unknownify-YD2Teyht.js} +1 -1
  46. package/frontend/build/static/{useApiTokens-T6gzMZPt.js → useApiTokens-XTOY616x.js} +1 -1
  47. package/frontend/build/static/{useProjectForm-o3r31UMh.js → useProjectForm--jxh4Dtm.js} +1 -1
  48. package/package.json +1 -1
@@ -1,15 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractUserInfo = exports.extractUserId = exports.extractUsername = exports.extractUsernameFromUser = void 0;
3
+ exports.extractUserInfo = exports.extractUserId = exports.extractUserIdFromUser = exports.extractUsername = exports.extractUsernameFromUser = void 0;
4
+ const types_1 = require("../../lib/types");
4
5
  function extractUsernameFromUser(user) {
5
- return user?.email || user?.username || 'unknown';
6
+ return user?.email || user?.username || types_1.SYSTEM_USER.username;
6
7
  }
7
8
  exports.extractUsernameFromUser = extractUsernameFromUser;
8
9
  function extractUsername(req) {
9
10
  return extractUsernameFromUser(req.user);
10
11
  }
11
12
  exports.extractUsername = extractUsername;
12
- const extractUserId = (req) => req.user.id;
13
+ const extractUserIdFromUser = (user) => user?.id || types_1.SYSTEM_USER.id;
14
+ exports.extractUserIdFromUser = extractUserIdFromUser;
15
+ const extractUserId = (req) => (0, exports.extractUserIdFromUser)(req.user);
13
16
  exports.extractUserId = extractUserId;
14
17
  const extractUserInfo = (req) => ({
15
18
  id: (0, exports.extractUserId)(req),
@@ -1 +1 @@
1
- {"version":3,"file":"extract-user.js","sourceRoot":"","sources":["../../../src/lib/util/extract-user.ts"],"names":[],"mappings":";;;AAEA,SAAgB,uBAAuB,CAAC,IAAW;IAC/C,OAAO,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,QAAQ,IAAI,SAAS,CAAC;AACtD,CAAC;AAFD,0DAEC;AAED,SAAgB,eAAe,CAAC,GAAiB;IAC7C,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAEM,MAAM,aAAa,GAAG,CAAC,GAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;AAAnD,QAAA,aAAa,iBAAsC;AAEzD,MAAM,eAAe,GAAG,CAAC,GAAiB,EAAE,EAAE,CAAC,CAAC;IACnD,EAAE,EAAE,IAAA,qBAAa,EAAC,GAAG,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;CACjC,CAAC,CAAC;AAHU,QAAA,eAAe,mBAGzB"}
1
+ {"version":3,"file":"extract-user.js","sourceRoot":"","sources":["../../../src/lib/util/extract-user.ts"],"names":[],"mappings":";;;AAAA,2CAA8C;AAG9C,SAAgB,uBAAuB,CAAC,IAAW;IAC/C,OAAO,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,QAAQ,IAAI,mBAAW,CAAC,QAAQ,CAAC;AACjE,CAAC;AAFD,0DAEC;AAED,SAAgB,eAAe,CAAC,GAAiB;IAC7C,OAAO,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAFD,0CAEC;AAEM,MAAM,qBAAqB,GAAG,CAAC,IAAW,EAAE,EAAE,CACjD,IAAI,EAAE,EAAE,IAAI,mBAAW,CAAC,EAAE,CAAC;AADlB,QAAA,qBAAqB,yBACH;AAExB,MAAM,aAAa,GAAG,CAAC,GAAiB,EAAE,EAAE,CAC/C,IAAA,6BAAqB,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AADvB,QAAA,aAAa,iBACU;AAE7B,MAAM,eAAe,GAAG,CAAC,GAAiB,EAAE,EAAE,CAAC,CAAC;IACnD,EAAE,EAAE,IAAA,qBAAa,EAAC,GAAG,CAAC;IACtB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC;CACjC,CAAC,CAAC;AAHU,QAAA,eAAe,mBAGzB"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ const types_1 = require("../../lib/types");
3
4
  const extract_user_1 = require("./extract-user");
4
5
  describe('extractUsernameFromUser', () => {
5
6
  test('Should return the email if it exists', () => {
@@ -15,13 +16,15 @@ describe('extractUsernameFromUser', () => {
15
16
  };
16
17
  expect((0, extract_user_1.extractUsernameFromUser)(user)).toBe(user.username);
17
18
  });
18
- test('Should return "unknown" if neither email nor username exists', () => {
19
+ test('Should return the system user if neither email nor username exists', () => {
19
20
  const user = {};
20
- expect((0, extract_user_1.extractUsernameFromUser)(user)).toBe('unknown');
21
+ expect((0, extract_user_1.extractUsernameFromUser)(user)).toBe(types_1.SYSTEM_USER.username);
22
+ expect((0, extract_user_1.extractUserIdFromUser)(user)).toBe(types_1.SYSTEM_USER.id);
21
23
  });
22
- test('Should return "unknown" if user is null', () => {
24
+ test('Should return the system user if user is null', () => {
23
25
  const user = null;
24
- expect((0, extract_user_1.extractUsernameFromUser)(user)).toBe('unknown');
26
+ expect((0, extract_user_1.extractUsernameFromUser)(user)).toBe(types_1.SYSTEM_USER.username);
27
+ expect((0, extract_user_1.extractUserIdFromUser)(user)).toBe(types_1.SYSTEM_USER.id);
25
28
  });
26
29
  });
27
30
  //# sourceMappingURL=extract-user.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-user.test.js","sourceRoot":"","sources":["../../../src/lib/util/extract-user.test.ts"],"names":[],"mappings":";;AACA,iDAAyD;AAEzD,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG;YACT,KAAK,EAAE,yBAAyB;YAChC,QAAQ,EAAE,WAAW;SACf,CAAC;QAEX,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG;YACT,QAAQ,EAAE,WAAW;SACf,CAAC;QAEX,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,IAAI,GAAG,EAAW,CAAC;QAEzB,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,IAAwB,CAAC;QACtC,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"extract-user.test.js","sourceRoot":"","sources":["../../../src/lib/util/extract-user.test.ts"],"names":[],"mappings":";;AAAA,2CAA8C;AAE9C,iDAAgF;AAEhF,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG;YACT,KAAK,EAAE,yBAAyB;YAChC,QAAQ,EAAE,WAAW;SACf,CAAC;QAEX,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,IAAI,GAAG;YACT,QAAQ,EAAE,WAAW;SACf,CAAC;QAEX,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,oEAAoE,EAAE,GAAG,EAAE;QAC5E,MAAM,IAAI,GAAG,EAAW,CAAC;QAEzB,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,IAAA,oCAAqB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+CAA+C,EAAE,GAAG,EAAE;QACvD,MAAM,IAAI,GAAG,IAAwB,CAAC;QACtC,MAAM,CAAC,IAAA,sCAAuB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,CAAC,IAAA,oCAAqB,EAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAW,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -20,7 +20,7 @@
20
20
  rel="stylesheet"
21
21
  href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0"
22
22
  />
23
- <script type="module" crossorigin src="/static/index-ORDXjnpF.js"></script>
23
+ <script type="module" crossorigin src="/static/index-JVRlSBvr.js"></script>
24
24
  <link rel="stylesheet" crossorigin href="/static/style-gSb9cHBe.css">
25
25
  </head>
26
26
  <body>
@@ -1,4 +1,4 @@
1
- import{c as Gi,j as d,u as df,r as B,_ as pf,a as to,s as W,U as mf,b as pe,B as G,C as F,d as gf,E as xf,e as Ya,f as yf,g as Mi,T as ne,F as bf,I as wf,S as vf,M as kf,h as io,p as zo,i as $o,k as Oi,A as rr,l as Sf,m as Cf,n as Af,o as Mf,q as Of,t as qo,v as Df,w as Tf,x as Vt,D as Pf,P as Rf,y as Xa,z as Bf,G as Yt,H as Ef,J as Bi,K as Rt,L as Za,N as no,O as eh,Q as Lf,R as or,V as kn,W as lr,X as jf,Y as If,Z as Nf,$ as th,a0 as so,a1 as us,a2 as Ff,a3 as Ae,a4 as fs,a5 as Wf,a6 as Vf,a7 as Hf,a8 as zf,a9 as $f,aa as qf,ab as Uo,ac as ih,ad as ro,ae as oo,af as nh,ag as lo,ah as sh,ai as rh,aj as oh,ak as lh,al as Uf,am as Go,an as Gf,ao as Kf,ap as Ts,aq as Qf,ar as Jf,as as _f,at as Yf,au as Xf,av as Zf}from"./index-ORDXjnpF.js";import{u as ed}from"./useApiTokens-T6gzMZPt.js";import{S as td}from"./StrategyItemContainer-wRkYMo4g.js";const ds=Gi(d.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 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 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"}),"CancelOutlined"),id=Gi(d.jsx("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline"),nd=Gi(d.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"),sd=Gi(d.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"),rd=Gi(d.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"WarningOutlined"),od=()=>{const{makeRequest:n,createRequest:e,errors:t,loading:i}=df({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async o=>{const l=`${s}/advanced`,a=e(l,{method:"POST",body:JSON.stringify(o)});return(await n(a.caller,a.id)).json()},errors:t,loading:i}};function ar(n,e,t){var i,s,r,o,l;e==null&&(e=100);function a(){var c=Date.now()-o;c<e&&c>=0?i=setTimeout(a,e-c):(i=null,t||(l=n.apply(r,s),r=s=null))}var h=function(){r=this,s=arguments,o=Date.now();var c=t&&!i;return i||(i=setTimeout(a,e)),c&&(l=n.apply(r,s),r=s=null),l};return h.clear=function(){i&&(clearTimeout(i),i=null)},h.flush=function(){i&&(l=n.apply(r,s),r=s=null,clearTimeout(i),i=null)},h}ar.debounce=ar;var ld=ar;class K{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=si(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ze.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=si(this,e,t);let i=[];return this.decompose(e,t,i,0),Ze.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Di(this),r=new Di(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Di(this,e)}iterRange(e,t=this.length){return new ah(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new hh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?K.empty:e.length<=32?new ae(e):Ze.from(ae.split(e,[]))}}class ae extends K{constructor(e,t=ad(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new hd(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new ae(Ko(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Sn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new ae(l,o.length+r.length));else{let a=l.length>>1;i.push(new ae(l.slice(0,a)),new ae(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof ae))return super.replace(e,t,i);[e,t]=si(this,e,t);let s=Sn(this.text,Sn(i.text,Ko(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new ae(s,r):Ze.from(ae.split(s,[]),r)}sliceString(e,t=this.length,i=`
1
+ import{c as Gi,j as d,u as df,r as B,_ as pf,a as to,s as W,U as mf,b as pe,B as G,C as F,d as gf,E as xf,e as Ya,f as yf,g as Mi,T as ne,F as bf,I as wf,S as vf,M as kf,h as io,p as zo,i as $o,k as Oi,A as rr,l as Sf,m as Cf,n as Af,o as Mf,q as Of,t as qo,v as Df,w as Tf,x as Vt,D as Pf,P as Rf,y as Xa,z as Bf,G as Yt,H as Ef,J as Bi,K as Rt,L as Za,N as no,O as eh,Q as Lf,R as or,V as kn,W as lr,X as jf,Y as If,Z as Nf,$ as th,a0 as so,a1 as us,a2 as Ff,a3 as Ae,a4 as fs,a5 as Wf,a6 as Vf,a7 as Hf,a8 as zf,a9 as $f,aa as qf,ab as Uo,ac as ih,ad as ro,ae as oo,af as nh,ag as lo,ah as sh,ai as rh,aj as oh,ak as lh,al as Uf,am as Go,an as Gf,ao as Kf,ap as Ts,aq as Qf,ar as Jf,as as _f,at as Yf,au as Xf,av as Zf}from"./index-JVRlSBvr.js";import{u as ed}from"./useApiTokens-XTOY616x.js";import{S as td}from"./StrategyItemContainer-JoMPKX3L.js";const ds=Gi(d.jsx("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 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 8zm3.59-13L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41z"}),"CancelOutlined"),id=Gi(d.jsx("path",{d:"M16.59 7.58 10 14.17l-3.59-3.58L5 12l5 5 8-8zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"}),"CheckCircleOutline"),nd=Gi(d.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"),sd=Gi(d.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"),rd=Gi(d.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"WarningOutlined"),od=()=>{const{makeRequest:n,createRequest:e,errors:t,loading:i}=df({propagateErrors:!0}),s="api/admin/playground";return{evaluateAdvancedPlayground:async o=>{const l=`${s}/advanced`,a=e(l,{method:"POST",body:JSON.stringify(o)});return(await n(a.caller,a.id)).json()},errors:t,loading:i}};function ar(n,e,t){var i,s,r,o,l;e==null&&(e=100);function a(){var c=Date.now()-o;c<e&&c>=0?i=setTimeout(a,e-c):(i=null,t||(l=n.apply(r,s),r=s=null))}var h=function(){r=this,s=arguments,o=Date.now();var c=t&&!i;return i||(i=setTimeout(a,e)),c&&(l=n.apply(r,s),r=s=null),l};return h.clear=function(){i&&(clearTimeout(i),i=null)},h.flush=function(){i&&(l=n.apply(r,s),r=s=null,clearTimeout(i),i=null)},h}ar.debounce=ar;var ld=ar;class K{lineAt(e){if(e<0||e>this.length)throw new RangeError(`Invalid position ${e} in document of length ${this.length}`);return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError(`Invalid line number ${e} in ${this.lines}-line document`);return this.lineInner(e,!0,1,0)}replace(e,t,i){[e,t]=si(this,e,t);let s=[];return this.decompose(0,e,s,2),i.length&&i.decompose(0,i.length,s,3),this.decompose(t,this.length,s,1),Ze.from(s,this.length-(t-e)+i.length)}append(e){return this.replace(this.length,this.length,e)}slice(e,t=this.length){[e,t]=si(this,e,t);let i=[];return this.decompose(e,t,i,0),Ze.from(i,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),i=this.length-this.scanIdentical(e,-1),s=new Di(this),r=new Di(e);for(let o=t,l=t;;){if(s.next(o),r.next(o),o=0,s.lineBreak!=r.lineBreak||s.done!=r.done||s.value!=r.value)return!1;if(l+=s.value.length,s.done||l>=i)return!0}}iter(e=1){return new Di(this,e)}iterRange(e,t=this.length){return new ah(this,e,t)}iterLines(e,t){let i;if(e==null)i=this.iter();else{t==null&&(t=this.lines+1);let s=this.line(e).from;i=this.iterRange(s,Math.max(s,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new hh(i)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(e.length==0)throw new RangeError("A document must have at least one line");return e.length==1&&!e[0]?K.empty:e.length<=32?new ae(e):Ze.from(ae.split(e,[]))}}class ae extends K{constructor(e,t=ad(e)){super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.text[r],l=s+o.length;if((t?i:l)>=e)return new hd(s,l,i,o);s=l+1,i++}}decompose(e,t,i,s){let r=e<=0&&t>=this.length?this:new ae(Ko(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(s&1){let o=i.pop(),l=Sn(r.text,o.text.slice(),0,r.length);if(l.length<=32)i.push(new ae(l,o.length+r.length));else{let a=l.length>>1;i.push(new ae(l.slice(0,a)),new ae(l.slice(a)))}}else i.push(r)}replace(e,t,i){if(!(i instanceof ae))return super.replace(e,t,i);[e,t]=si(this,e,t);let s=Sn(this.text,Sn(i.text,Ko(this.text,0,e)),t),r=this.length+i.length-(t-e);return s.length<=32?new ae(s,r):Ze.from(ae.split(s,[]),r)}sliceString(e,t=this.length,i=`
2
2
  `){[e,t]=si(this,e,t);let s="";for(let r=0,o=0;r<=t&&o<this.text.length;o++){let l=this.text[o],a=r+l.length;r>e&&o&&(s+=i),e<a&&t>r&&(s+=l.slice(Math.max(0,e-r),t-r)),r=a+1}return s}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let i=[],s=-1;for(let r of e)i.push(r),s+=r.length+1,i.length==32&&(t.push(new ae(i,s)),i=[],s=-1);return s>-1&&t.push(new ae(i,s)),t}}class Ze extends K{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let i of e)this.lines+=i.lines}lineInner(e,t,i,s){for(let r=0;;r++){let o=this.children[r],l=s+o.length,a=i+o.lines-1;if((t?a:l)>=e)return o.lineInner(e,t,i,s);s=l+1,i=a+1}}decompose(e,t,i,s){for(let r=0,o=0;o<=t&&r<this.children.length;r++){let l=this.children[r],a=o+l.length;if(e<=a&&t>=o){let h=s&((o<=e?1:0)|(a>=t?2:0));o>=e&&a<=t&&!h?i.push(l):l.decompose(e-o,t-o,i,h)}o=a+1}}replace(e,t,i){if([e,t]=si(this,e,t),i.lines<this.lines)for(let s=0,r=0;s<this.children.length;s++){let o=this.children[s],l=r+o.length;if(e>=r&&t<=l){let a=o.replace(e-r,t-r,i),h=this.lines-o.lines+a.lines;if(a.lines<h>>4&&a.lines>h>>6){let c=this.children.slice();return c[s]=a,new Ze(c,this.length-(t-e)+i.length)}return super.replace(r,l,a)}r=l+1}return super.replace(e,t,i)}sliceString(e,t=this.length,i=`
3
3
  `){[e,t]=si(this,e,t);let s="";for(let r=0,o=0;r<this.children.length&&o<=t;r++){let l=this.children[r],a=o+l.length;o>e&&r&&(s+=i),e<a&&t>o&&(s+=l.sliceString(e-o,t-o,i)),o=a+1}return s}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof Ze))return 0;let i=0,[s,r,o,l]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;s+=t,r+=t){if(s==o||r==l)return i;let a=this.children[s],h=e.children[r];if(a!=h)return i+a.scanIdentical(h,t);i+=a.length+1}}static from(e,t=e.reduce((i,s)=>i+s.length+1,-1)){let i=0;for(let p of e)i+=p.lines;if(i<32){let p=[];for(let m of e)m.flatten(p);return new ae(p,t)}let s=Math.max(32,i>>5),r=s<<1,o=s>>1,l=[],a=0,h=-1,c=[];function u(p){let m;if(p.lines>r&&p instanceof Ze)for(let y of p.children)u(y);else p.lines>o&&(a>o||!a)?(f(),l.push(p)):p instanceof ae&&a&&(m=c[c.length-1])instanceof ae&&p.lines+m.lines<=32?(a+=p.lines,h+=p.length+1,c[c.length-1]=new ae(m.text.concat(p.text),m.length+1+p.length)):(a+p.lines>s&&f(),a+=p.lines,h+=p.length+1,c.push(p))}function f(){a!=0&&(l.push(c.length==1?c[0]:Ze.from(c,h)),h=-1,a=c.length=0)}for(let p of e)u(p);return f(),l.length==1?l[0]:new Ze(l,t)}}K.empty=new ae([""],0);function ad(n){let e=-1;for(let t of n)e+=t.length+1;return e}function Sn(n,e,t=0,i=1e9){for(let s=0,r=0,o=!0;r<n.length&&s<=i;r++){let l=n[r],a=s+l.length;a>=t&&(a>i&&(l=l.slice(0,i-s)),s<t&&(l=l.slice(t-s)),o?(e[e.length-1]+=l,o=!1):e.push(l)),s=a+1}return e}function Ko(n,e,t){return Sn(n,[""],e,t)}class Di{constructor(e,t=1){this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof ae?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let i=this.nodes.length-1,s=this.nodes[i],r=this.offsets[i],o=r>>1,l=s instanceof ae?s.text.length:s.children.length;if(o==(t>0?l:0)){if(i==0)return this.done=!0,this.value="",this;t>0&&this.offsets[i-1]++,this.nodes.pop(),this.offsets.pop()}else if((r&1)==(t>0?0:1)){if(this.offsets[i]+=t,e==0)return this.lineBreak=!0,this.value=`
4
4
  `,this;e--}else if(s instanceof ae){let a=s.text[o+(t<0?-1:0)];if(this.offsets[i]+=t,a.length>Math.max(0,e))return this.value=e==0?a:t>0?a.slice(e):a.slice(0,a.length-e),this;e-=a.length}else{let a=s.children[o+(t<0?-1:0)];e>a.length?(e-=a.length,this.offsets[i]+=t):(t<0&&this.offsets[i]--,this.nodes.push(a),this.offsets.push(t>0?1:(a instanceof ae?a.text.length:a.children.length)<<1))}}}next(e=0){return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class ah{constructor(e,t,i){this.value="",this.done=!1,this.cursor=new Di(e,t>i?-1:1),this.pos=t>i?e.length:0,this.from=Math.min(t,i),this.to=Math.max(t,i)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let i=t<0?this.pos-this.from:this.to-this.pos;e>i&&(e=i),i-=e;let{value:s}=this.cursor.next(e);return this.pos+=(s.length+e)*t,this.value=s.length<=i?s:t<0?s.slice(s.length-i):s.slice(0,i),this.done=!this.value,this}next(e=0){return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&this.value!=""}}class hh{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(e=0){let{done:t,lineBreak:i,value:s}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):i?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=s,this.afterBreak=!1),this}get lineBreak(){return!1}}typeof Symbol<"u"&&(K.prototype[Symbol.iterator]=function(){return this.iter()},Di.prototype[Symbol.iterator]=ah.prototype[Symbol.iterator]=hh.prototype[Symbol.iterator]=function(){return this});class hd{constructor(e,t,i,s){this.from=e,this.to=t,this.number=i,this.text=s}get length(){return this.to-this.from}}function si(n,e,t){return e=Math.max(0,Math.min(n.length,e)),[e,Math.max(e,Math.min(n.length,t))]}let Xt="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map(n=>n?parseInt(n,36):1);for(let n=1;n<Xt.length;n++)Xt[n]+=Xt[n-1];function cd(n){for(let e=1;e<Xt.length;e+=2)if(Xt[e]>n)return Xt[e-1]<=n;return!1}function Qo(n){return n>=127462&&n<=127487}const Jo=8205;function Me(n,e,t=!0,i=!0){return(t?ch:ud)(n,e,i)}function ch(n,e,t){if(e==n.length)return e;e&&uh(n.charCodeAt(e))&&fh(n.charCodeAt(e-1))&&e--;let i=ge(n,e);for(e+=je(i);e<n.length;){let s=ge(n,e);if(i==Jo||s==Jo||t&&cd(s))e+=je(s),i=s;else if(Qo(s)){let r=0,o=e-2;for(;o>=0&&Qo(ge(n,o));)r++,o-=2;if(r%2==0)break;e+=2}else break}return e}function ud(n,e,t){for(;e>0;){let i=ch(n,e-2,t);if(i<e)return i;e--}return 0}function uh(n){return n>=56320&&n<57344}function fh(n){return n>=55296&&n<56320}function ge(n,e){let t=n.charCodeAt(e);if(!fh(t)||e+1==n.length)return t;let i=n.charCodeAt(e+1);return uh(i)?(t-55296<<10)+(i-56320)+65536:t}function ao(n){return n<=65535?String.fromCharCode(n):(n-=65536,String.fromCharCode((n>>10)+55296,(n&1023)+56320))}function je(n){return n<65536?1:2}const hr=/\r\n?|\n/;var Ce=function(n){return n[n.Simple=0]="Simple",n[n.TrackDel=1]="TrackDel",n[n.TrackBefore=2]="TrackBefore",n[n.TrackAfter=3]="TrackAfter",n}(Ce||(Ce={}));class it{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t<this.sections.length;t+=2)e+=this.sections[t];return e}get newLength(){let e=0;for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t+1];e+=i<0?this.sections[t]:i}return e}get empty(){return this.sections.length==0||this.sections.length==2&&this.sections[1]<0}iterGaps(e){for(let t=0,i=0,s=0;t<this.sections.length;){let r=this.sections[t++],o=this.sections[t++];o<0?(e(i,s,r),s+=r):s+=o,i+=r}}iterChangedRanges(e,t=!1){cr(this,e,t)}get invertedDesc(){let e=[];for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];s<0?e.push(i,s):e.push(s,i)}return new it(e)}composeDesc(e){return this.empty?e:e.empty?this:dh(this,e)}mapDesc(e,t=!1){return e.empty?this:ur(this,e,t)}mapPos(e,t=-1,i=Ce.Simple){let s=0,r=0;for(let o=0;o<this.sections.length;){let l=this.sections[o++],a=this.sections[o++],h=s+l;if(a<0){if(h>e)return r+(e-s);r+=l}else{if(i!=Ce.Simple&&h>=e&&(i==Ce.TrackDel&&s<e&&h>e||i==Ce.TrackBefore&&s<e||i==Ce.TrackAfter&&h>e))return null;if(h>e||h==e&&t<0&&!l)return e==s||t<0?r:r+a;r+=a}s=h}if(e>s)throw new RangeError(`Position ${e} is out of range for changeset of length ${s}`);return r}touchesRange(e,t=e){for(let i=0,s=0;i<this.sections.length&&s<=t;){let r=this.sections[i++],o=this.sections[i++],l=s+r;if(o>=0&&s<=t&&l>=e)return s<e&&l>t?"cover":!0;s=l}return!1}toString(){let e="";for(let t=0;t<this.sections.length;){let i=this.sections[t++],s=this.sections[t++];e+=(e?" ":"")+i+(s>=0?":"+s:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some(t=>typeof t!="number"))throw new RangeError("Invalid JSON representation of ChangeDesc");return new it(e)}static create(e){return new it(e)}}class ue extends it{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return cr(this,(t,i,s,r,o)=>e=e.replace(s,s+(i-t),o),!1),e}mapDesc(e,t=!1){return ur(this,e,t,!0)}invert(e){let t=this.sections.slice(),i=[];for(let s=0,r=0;s<t.length;s+=2){let o=t[s],l=t[s+1];if(l>=0){t[s]=l,t[s+1]=o;let a=s>>1;for(;i.length<a;)i.push(K.empty);i.push(o?e.slice(r,r+o):K.empty)}r+=o}return new ue(t,i)}compose(e){return this.empty?e:e.empty?this:dh(this,e,!0)}map(e,t=!1){return e.empty?this:ur(this,e,t,!0)}iterChanges(e,t=!1){cr(this,e,t)}get desc(){return it.create(this.sections)}filter(e){let t=[],i=[],s=[],r=new Ei(this);e:for(let o=0,l=0;;){let a=o==e.length?1e9:e[o++];for(;l<a||l==a&&r.len==0;){if(r.done)break e;let c=Math.min(r.len,a-l);we(s,c,-1);let u=r.ins==-1?-1:r.off==0?r.ins:0;we(t,c,u),u>0&&bt(i,t,r.text),r.forward(c),l+=c}let h=e[o++];for(;l<h;){if(r.done)break e;let c=Math.min(r.len,h-l);we(t,c,-1),we(s,c,r.ins==-1?-1:r.off==0?r.ins:0),r.forward(c),l+=c}}return{changes:new ue(t,i),filtered:it.create(s)}}toJSON(){let e=[];for(let t=0;t<this.sections.length;t+=2){let i=this.sections[t],s=this.sections[t+1];s<0?e.push(i):s==0?e.push([i]):e.push([i].concat(this.inserted[t>>1].toJSON()))}return e}static of(e,t,i){let s=[],r=[],o=0,l=null;function a(c=!1){if(!c&&!s.length)return;o<t&&we(s,t-o,-1);let u=new ue(s,r);l=l?l.compose(u.map(l)):u,s=[],r=[],o=0}function h(c){if(Array.isArray(c))for(let u of c)h(u);else if(c instanceof ue){if(c.length!=t)throw new RangeError(`Mismatched change set length (got ${c.length}, expected ${t})`);a(),l=l?l.compose(c.map(l)):c}else{let{from:u,to:f=u,insert:p}=c;if(u>f||u<0||f>t)throw new RangeError(`Invalid change range ${u} to ${f} (in doc of length ${t})`);let m=p?typeof p=="string"?K.of(p.split(i||hr)):p:K.empty,y=m.length;if(u==f&&y==0)return;u<o&&a(),u>o&&we(s,u-o,-1),we(s,f-u,y),bt(r,s,m),o=f}}return h(e),a(!l),l}static empty(e){return new ue(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],i=[];for(let s=0;s<e.length;s++){let r=e[s];if(typeof r=="number")t.push(r,-1);else{if(!Array.isArray(r)||typeof r[0]!="number"||r.some((o,l)=>l&&typeof o!="string"))throw new RangeError("Invalid JSON representation of ChangeSet");if(r.length==1)t.push(r[0],0);else{for(;i.length<s;)i.push(K.empty);i[s]=K.of(r.slice(1)),t.push(r[0],i[s].length)}}}return new ue(t,i)}static createSet(e,t){return new ue(e,t)}}function we(n,e,t,i=!1){if(e==0&&t<=0)return;let s=n.length-2;s>=0&&t<=0&&t==n[s+1]?n[s]+=e:e==0&&n[s]==0?n[s+1]+=t:i?(n[s]+=e,n[s+1]+=t):n.push(e,t)}function bt(n,e,t){if(t.length==0)return;let i=e.length-2>>1;if(i<n.length)n[n.length-1]=n[n.length-1].append(t);else{for(;n.length<i;)n.push(K.empty);n.push(t)}}function cr(n,e,t){let i=n.inserted;for(let s=0,r=0,o=0;o<n.sections.length;){let l=n.sections[o++],a=n.sections[o++];if(a<0)s+=l,r+=l;else{let h=s,c=r,u=K.empty;for(;h+=l,c+=a,a&&i&&(u=u.append(i[o-2>>1])),!(t||o==n.sections.length||n.sections[o+1]<0);)l=n.sections[o++],a=n.sections[o++];e(s,h,r,c,u),s=h,r=c}}}function ur(n,e,t,i=!1){let s=[],r=i?[]:null,o=new Ei(n),l=new Ei(e);for(let a=-1;;)if(o.ins==-1&&l.ins==-1){let h=Math.min(o.len,l.len);we(s,h,-1),o.forward(h),l.forward(h)}else if(l.ins>=0&&(o.ins<0||a==o.i||o.off==0&&(l.len<o.len||l.len==o.len&&!t))){let h=l.len;for(we(s,l.ins,-1);h;){let c=Math.min(o.len,h);o.ins>=0&&a<o.i&&o.len<=c&&(we(s,0,o.ins),r&&bt(r,s,o.text),a=o.i),o.forward(c),h-=c}l.next()}else if(o.ins>=0){let h=0,c=o.len;for(;c;)if(l.ins==-1){let u=Math.min(c,l.len);h+=u,c-=u,l.forward(u)}else if(l.ins==0&&l.len<c)c-=l.len,l.next();else break;we(s,h,a<o.i?o.ins:0),r&&a<o.i&&bt(r,s,o.text),a=o.i,o.forward(o.len-c)}else{if(o.done&&l.done)return r?ue.createSet(s,r):it.create(s);throw new Error("Mismatched change set lengths")}}function dh(n,e,t=!1){let i=[],s=t?[]:null,r=new Ei(n),o=new Ei(e);for(let l=!1;;){if(r.done&&o.done)return s?ue.createSet(i,s):it.create(i);if(r.ins==0)we(i,r.len,0,l),r.next();else if(o.len==0&&!o.done)we(i,0,o.ins,l),s&&bt(s,i,o.text),o.next();else{if(r.done||o.done)throw new Error("Mismatched change set lengths");{let a=Math.min(r.len2,o.len),h=i.length;if(r.ins==-1){let c=o.ins==-1?-1:o.off?0:o.ins;we(i,a,c,l),s&&c&&bt(s,i,o.text)}else o.ins==-1?(we(i,r.off?0:r.len,a,l),s&&bt(s,i,r.textBit(a))):(we(i,r.off?0:r.len,o.off?0:o.ins,l),s&&!o.off&&bt(s,i,o.text));l=(r.ins>a||o.ins>=0&&o.len>a)&&(l||i.length>h),r.forward2(a),o.forward(a)}}}}class Ei{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i<e.length?(this.len=e[this.i++],this.ins=e[this.i++]):(this.len=0,this.ins=-2),this.off=0}get done(){return this.ins==-2}get len2(){return this.ins<0?this.len:this.ins}get text(){let{inserted:e}=this.set,t=this.i-2>>1;return t>=e.length?K.empty:e[t]}textBit(e){let{inserted:t}=this.set,i=this.i-2>>1;return i>=t.length&&!e?K.empty:t[i].slice(this.off,e==null?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){this.ins==-1?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class It{constructor(e,t,i){this.from=e,this.to=t,this.flags=i}get anchor(){return this.flags&32?this.to:this.from}get head(){return this.flags&32?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return this.flags&8?-1:this.flags&16?1:0}get bidiLevel(){let e=this.flags&7;return e==7?null:e}get goalColumn(){let e=this.flags>>6;return e==16777215?void 0:e}map(e,t=-1){let i,s;return this.empty?i=s=e.mapPos(this.from,t):(i=e.mapPos(this.from,1),s=e.mapPos(this.to,-1)),i==this.from&&s==this.to?this:new It(i,s,this.flags)}extend(e,t=e){if(e<=this.anchor&&t>=this.anchor)return k.range(e,t);let i=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return k.range(this.anchor,i)}eq(e){return this.anchor==e.anchor&&this.head==e.head}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||typeof e.anchor!="number"||typeof e.head!="number")throw new RangeError("Invalid JSON representation for SelectionRange");return k.range(e.anchor,e.head)}static create(e,t,i){return new It(e,t,i)}}class k{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e,t=-1){return e.empty?this:k.create(this.ranges.map(i=>i.map(e,t)),this.mainIndex)}eq(e){if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let t=0;t<this.ranges.length;t++)if(!this.ranges[t].eq(e.ranges[t]))return!1;return!0}get main(){return this.ranges[this.mainIndex]}asSingle(){return this.ranges.length==1?this:new k([this.main],0)}addRange(e,t=!0){return k.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e,t=this.mainIndex){let i=this.ranges.slice();return i[t]=e,k.create(i,this.mainIndex)}toJSON(){return{ranges:this.ranges.map(e=>e.toJSON()),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||typeof e.main!="number"||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new k(e.ranges.map(t=>It.fromJSON(t)),e.main)}static single(e,t=e){return new k([k.range(e,t)],0)}static create(e,t=0){if(e.length==0)throw new RangeError("A selection needs at least one range");for(let i=0,s=0;s<e.length;s++){let r=e[s];if(r.empty?r.from<=i:r.from<i)return k.normalized(e.slice(),t);i=r.to}return new k(e,t)}static cursor(e,t=0,i,s){return It.create(e,e,(t==0?0:t<0?8:16)|(i==null?7:Math.min(6,i))|(s??16777215)<<6)}static range(e,t,i,s){let r=(i??16777215)<<6|(s==null?7:Math.min(6,s));return t<e?It.create(t,e,48|r):It.create(e,t,(t>e?8:0)|r)}static normalized(e,t=0){let i=e[t];e.sort((s,r)=>s.from-r.from),t=e.indexOf(i);for(let s=1;s<e.length;s++){let r=e[s],o=e[s-1];if(r.empty?r.from<=o.to:r.from<o.to){let l=o.from,a=Math.max(r.to,o.to);s<=t&&t--,e.splice(--s,2,r.anchor>r.head?k.range(a,l):k.range(l,a))}}return new k(e,t)}}function ph(n,e){for(let t of n.ranges)if(t.to>e)throw new RangeError("Selection points outside of document")}let ho=0;class E{constructor(e,t,i,s,r){this.combine=e,this.compareInput=t,this.compare=i,this.isStatic=s,this.id=ho++,this.default=e([]),this.extensions=typeof r=="function"?r(this):r}get reader(){return this}static define(e={}){return new E(e.combine||(t=>t),e.compareInput||((t,i)=>t===i),e.compare||(e.combine?(t,i)=>t===i:co),!!e.static,e.enables)}of(e){return new Cn([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Cn(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new Cn(e,this,2,t)}from(e,t){return t||(t=i=>i),this.compute([e],i=>t(i.field(e)))}}function co(n,e){return n==e||n.length==e.length&&n.every((t,i)=>t===e[i])}class Cn{constructor(e,t,i,s){this.dependencies=e,this.facet=t,this.type=i,this.value=s,this.id=ho++}dynamicSlot(e){var t;let i=this.value,s=this.facet.compareInput,r=this.id,o=e[r]>>1,l=this.type==2,a=!1,h=!1,c=[];for(let u of this.dependencies)u=="doc"?a=!0:u=="selection"?h=!0:((t=e[u.id])!==null&&t!==void 0?t:1)&1||c.push(e[u.id]);return{create(u){return u.values[o]=i(u),1},update(u,f){if(a&&f.docChanged||h&&(f.docChanged||f.selection)||fr(u,c)){let p=i(u);if(l?!_o(p,u.values[o],s):!s(p,u.values[o]))return u.values[o]=p,1}return 0},reconfigure:(u,f)=>{let p,m=f.config.address[r];if(m!=null){let y=Ln(f,m);if(this.dependencies.every(x=>x instanceof E?f.facet(x)===u.facet(x):x instanceof be?f.field(x,!1)==u.field(x,!1):!0)||(l?_o(p=i(u),y,s):s(p=i(u),y)))return u.values[o]=y,0}else p=i(u);return u.values[o]=p,1}}}}function _o(n,e,t){if(n.length!=e.length)return!1;for(let i=0;i<n.length;i++)if(!t(n[i],e[i]))return!1;return!0}function fr(n,e){let t=!1;for(let i of e)Ti(n,i)&1&&(t=!0);return t}function fd(n,e,t){let i=t.map(a=>n[a.id]),s=t.map(a=>a.type),r=i.filter(a=>!(a&1)),o=n[e.id]>>1;function l(a){let h=[];for(let c=0;c<i.length;c++){let u=Ln(a,i[c]);if(s[c]==2)for(let f of u)h.push(f);else h.push(u)}return e.combine(h)}return{create(a){for(let h of i)Ti(a,h);return a.values[o]=l(a),1},update(a,h){if(!fr(a,r))return 0;let c=l(a);return e.compare(c,a.values[o])?0:(a.values[o]=c,1)},reconfigure(a,h){let c=fr(a,i),u=h.config.facets[e.id],f=h.facet(e);if(u&&!c&&co(t,u))return a.values[o]=f,0;let p=l(a);return e.compare(p,f)?(a.values[o]=f,0):(a.values[o]=p,1)}}}const Yo=E.define({static:!0});class be{constructor(e,t,i,s,r){this.id=e,this.createF=t,this.updateF=i,this.compareF=s,this.spec=r,this.provides=void 0}static define(e){let t=new be(ho++,e.create,e.update,e.compare||((i,s)=>i===s),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(Yo).find(i=>i.field==this);return((t==null?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:i=>(i.values[t]=this.create(i),1),update:(i,s)=>{let r=i.values[t],o=this.updateF(r,s);return this.compareF(r,o)?0:(i.values[t]=o,1)},reconfigure:(i,s)=>s.config.address[this.id]!=null?(i.values[t]=s.field(this),0):(i.values[t]=this.create(i),1)}}init(e){return[this,Yo.of({field:this,create:e})]}get extension(){return this}}const Lt={lowest:4,low:3,default:2,high:1,highest:0};function gi(n){return e=>new mh(e,n)}const di={highest:gi(Lt.highest),high:gi(Lt.high),default:gi(Lt.default),low:gi(Lt.low),lowest:gi(Lt.lowest)};class mh{constructor(e,t){this.inner=e,this.prec=t}}class ps{of(e){return new dr(this,e)}reconfigure(e){return ps.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class dr{constructor(e,t){this.compartment=e,this.inner=t}}class En{constructor(e,t,i,s,r,o){for(this.base=e,this.compartments=t,this.dynamicSlots=i,this.address=s,this.staticValues=r,this.facets=o,this.statusTemplate=[];this.statusTemplate.length<i.length;)this.statusTemplate.push(0)}staticFacet(e){let t=this.address[e.id];return t==null?e.default:this.staticValues[t>>1]}static resolve(e,t,i){let s=[],r=Object.create(null),o=new Map;for(let f of dd(e,t,o))f instanceof be?s.push(f):(r[f.facet.id]||(r[f.facet.id]=[])).push(f);let l=Object.create(null),a=[],h=[];for(let f of s)l[f.id]=h.length<<1,h.push(p=>f.slot(p));let c=i==null?void 0:i.config.facets;for(let f in r){let p=r[f],m=p[0].facet,y=c&&c[f]||[];if(p.every(x=>x.type==0))if(l[m.id]=a.length<<1|1,co(y,p))a.push(i.facet(m));else{let x=m.combine(p.map(b=>b.value));a.push(i&&m.compare(x,i.facet(m))?i.facet(m):x)}else{for(let x of p)x.type==0?(l[x.id]=a.length<<1|1,a.push(x.value)):(l[x.id]=h.length<<1,h.push(b=>x.dynamicSlot(b)));l[m.id]=h.length<<1,h.push(x=>fd(x,m,p))}}let u=h.map(f=>f(l));return new En(e,o,u,l,a,r)}}function dd(n,e,t){let i=[[],[],[],[],[]],s=new Map;function r(o,l){let a=s.get(o);if(a!=null){if(a<=l)return;let h=i[a].indexOf(o);h>-1&&i[a].splice(h,1),o instanceof dr&&t.delete(o.compartment)}if(s.set(o,l),Array.isArray(o))for(let h of o)r(h,l);else if(o instanceof dr){if(t.has(o.compartment))throw new RangeError("Duplicate use of compartment in extensions");let h=e.get(o.compartment)||o.inner;t.set(o.compartment,h),r(h,l)}else if(o instanceof mh)r(o.inner,o.prec);else if(o instanceof be)i[l].push(o),o.provides&&r(o.provides,l);else if(o instanceof Cn)i[l].push(o),o.facet.extensions&&r(o.facet.extensions,Lt.default);else{let h=o.extension;if(!h)throw new Error(`Unrecognized extension value in extension set (${o}). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks.`);r(h,l)}}return r(n,Lt.default),i.reduce((o,l)=>o.concat(l))}function Ti(n,e){if(e&1)return 2;let t=e>>1,i=n.status[t];if(i==4)throw new Error("Cyclic dependency between fields and/or facets");if(i&2)return i;n.status[t]=4;let s=n.computeSlot(n,n.config.dynamicSlots[t]);return n.status[t]=2|s}function Ln(n,e){return e&1?n.config.staticValues[e>>1]:n.values[e>>1]}const gh=E.define(),pr=E.define({combine:n=>n.some(e=>e),static:!0}),xh=E.define({combine:n=>n.length?n[0]:void 0,static:!0}),yh=E.define(),bh=E.define(),wh=E.define(),vh=E.define({combine:n=>n.length?n[0]:!1});class ut{constructor(e,t){this.type=e,this.value=t}static define(){return new pd}}class pd{of(e){return new ut(this,e)}}class md{constructor(e){this.map=e}of(e){return new V(this,e)}}class V{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return t===void 0?void 0:t==this.value?this:new V(this.type,t)}is(e){return this.type==e}static define(e={}){return new md(e.map||(t=>t))}static mapEffects(e,t){if(!e.length)return e;let i=[];for(let s of e){let r=s.map(t);r&&i.push(r)}return i}}V.reconfigure=V.define();V.appendConfig=V.define();class fe{constructor(e,t,i,s,r,o){this.startState=e,this.changes=t,this.selection=i,this.effects=s,this.annotations=r,this.scrollIntoView=o,this._doc=null,this._state=null,i&&ph(i,t.newLength),r.some(l=>l.type==fe.time)||(this.annotations=r.concat(fe.time.of(Date.now())))}static create(e,t,i,s,r,o){return new fe(e,t,i,s,r,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(fe.userEvent);return!!(t&&(t==e||t.length>e.length&&t.slice(0,e.length)==e&&t[e.length]=="."))}}fe.time=ut.define();fe.userEvent=ut.define();fe.addToHistory=ut.define();fe.remote=ut.define();function gd(n,e){let t=[];for(let i=0,s=0;;){let r,o;if(i<n.length&&(s==e.length||e[s]>=n[i]))r=n[i++],o=n[i++];else if(s<e.length)r=e[s++],o=e[s++];else return t;!t.length||t[t.length-1]<r?t.push(r,o):t[t.length-1]<o&&(t[t.length-1]=o)}}function kh(n,e,t){var i;let s,r,o;return t?(s=e.changes,r=ue.empty(e.changes.length),o=n.changes.compose(e.changes)):(s=e.changes.map(n.changes),r=n.changes.mapDesc(e.changes,!0),o=n.changes.compose(s)),{changes:o,selection:e.selection?e.selection.map(r):(i=n.selection)===null||i===void 0?void 0:i.map(s),effects:V.mapEffects(n.effects,s).concat(V.mapEffects(e.effects,r)),annotations:n.annotations.length?n.annotations.concat(e.annotations):e.annotations,scrollIntoView:n.scrollIntoView||e.scrollIntoView}}function mr(n,e,t){let i=e.selection,s=Zt(e.annotations);return e.userEvent&&(s=s.concat(fe.userEvent.of(e.userEvent))),{changes:e.changes instanceof ue?e.changes:ue.of(e.changes||[],t,n.facet(xh)),selection:i&&(i instanceof k?i:k.single(i.anchor,i.head)),effects:Zt(e.effects),annotations:s,scrollIntoView:!!e.scrollIntoView}}function Sh(n,e,t){let i=mr(n,e.length?e[0]:{},n.doc.length);e.length&&e[0].filter===!1&&(t=!1);for(let r=1;r<e.length;r++){e[r].filter===!1&&(t=!1);let o=!!e[r].sequential;i=kh(i,mr(n,e[r],o?i.changes.newLength:n.doc.length),o)}let s=fe.create(n,i.changes,i.selection,i.effects,i.annotations,i.scrollIntoView);return yd(t?xd(s):s)}function xd(n){let e=n.startState,t=!0;for(let s of e.facet(yh)){let r=s(n);if(r===!1){t=!1;break}Array.isArray(r)&&(t=t===!0?r:gd(t,r))}if(t!==!0){let s,r;if(t===!1)r=n.changes.invertedDesc,s=ue.empty(e.doc.length);else{let o=n.changes.filter(t);s=o.changes,r=o.filtered.mapDesc(o.changes).invertedDesc}n=fe.create(e,s,n.selection&&n.selection.map(r),V.mapEffects(n.effects,r),n.annotations,n.scrollIntoView)}let i=e.facet(bh);for(let s=i.length-1;s>=0;s--){let r=i[s](n);r instanceof fe?n=r:Array.isArray(r)&&r.length==1&&r[0]instanceof fe?n=r[0]:n=Sh(e,Zt(r),!1)}return n}function yd(n){let e=n.startState,t=e.facet(wh),i=n;for(let s=t.length-1;s>=0;s--){let r=t[s](n);r&&Object.keys(r).length&&(i=kh(i,mr(e,r,n.changes.newLength),!0))}return i==n?n:fe.create(e,n.changes,n.selection,i.effects,i.annotations,i.scrollIntoView)}const bd=[];function Zt(n){return n==null?bd:Array.isArray(n)?n:[n]}var se=function(n){return n[n.Word=0]="Word",n[n.Space=1]="Space",n[n.Other=2]="Other",n}(se||(se={}));const wd=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let gr;try{gr=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch{}function vd(n){if(gr)return gr.test(n);for(let e=0;e<n.length;e++){let t=n[e];if(/\w/.test(t)||t>"€"&&(t.toUpperCase()!=t.toLowerCase()||wd.test(t)))return!0}return!1}function kd(n){return e=>{if(!/\S/.test(e))return se.Space;if(vd(e))return se.Word;for(let t=0;t<n.length;t++)if(e.indexOf(n[t])>-1)return se.Word;return se.Other}}class U{constructor(e,t,i,s,r,o){this.config=e,this.doc=t,this.selection=i,this.values=s,this.status=e.statusTemplate.slice(),this.computeSlot=r,o&&(o._state=this);for(let l=0;l<this.config.dynamicSlots.length;l++)Ti(this,l<<1);this.computeSlot=null}field(e,t=!0){let i=this.config.address[e.id];if(i==null){if(t)throw new RangeError("Field is not present in this state");return}return Ti(this,i),Ln(this,i)}update(...e){return Sh(this,e,!0)}applyTransaction(e){let t=this.config,{base:i,compartments:s}=t;for(let l of e.effects)l.is(ps.reconfigure)?(t&&(s=new Map,t.compartments.forEach((a,h)=>s.set(h,a)),t=null),s.set(l.value.compartment,l.value.extension)):l.is(V.reconfigure)?(t=null,i=l.value):l.is(V.appendConfig)&&(t=null,i=Zt(i).concat(l.value));let r;t?r=e.startState.values.slice():(t=En.resolve(i,s,this),r=new U(t,this.doc,this.selection,t.dynamicSlots.map(()=>null),(a,h)=>h.reconfigure(a,this),null).values);let o=e.startState.facet(pr)?e.newSelection:e.newSelection.asSingle();new U(t,e.newDoc,o,r,(l,a)=>a.update(l,e),e)}replaceSelection(e){return typeof e=="string"&&(e=this.toText(e)),this.changeByRange(t=>({changes:{from:t.from,to:t.to,insert:e},range:k.cursor(t.from+e.length)}))}changeByRange(e){let t=this.selection,i=e(t.ranges[0]),s=this.changes(i.changes),r=[i.range],o=Zt(i.effects);for(let l=1;l<t.ranges.length;l++){let a=e(t.ranges[l]),h=this.changes(a.changes),c=h.map(s);for(let f=0;f<l;f++)r[f]=r[f].map(c);let u=s.mapDesc(h,!0);r.push(a.range.map(u)),s=s.compose(c),o=V.mapEffects(o,c).concat(V.mapEffects(Zt(a.effects),u))}return{changes:s,selection:k.create(r,t.mainIndex),effects:o}}changes(e=[]){return e instanceof ue?e:ue.of(e,this.doc.length,this.facet(U.lineSeparator))}toText(e){return K.of(e.split(this.facet(U.lineSeparator)||hr))}sliceDoc(e=0,t=this.doc.length){return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return t==null?e.default:(Ti(this,t),Ln(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let i in e){let s=e[i];s instanceof be&&this.config.address[s.id]!=null&&(t[i]=s.spec.toJSON(this.field(e[i]),this))}return t}static fromJSON(e,t={},i){if(!e||typeof e.doc!="string")throw new RangeError("Invalid JSON representation for EditorState");let s=[];if(i){for(let r in i)if(Object.prototype.hasOwnProperty.call(e,r)){let o=i[r],l=e[r];s.push(o.init(a=>o.spec.fromJSON(l,a)))}}return U.create({doc:e.doc,selection:k.fromJSON(e.selection),extensions:t.extensions?s.concat([t.extensions]):s})}static create(e={}){let t=En.resolve(e.extensions||[],new Map),i=e.doc instanceof K?e.doc:K.of((e.doc||"").split(t.staticFacet(U.lineSeparator)||hr)),s=e.selection?e.selection instanceof k?e.selection:k.single(e.selection.anchor,e.selection.head):k.single(0);return ph(s,i.length),t.staticFacet(pr)||(s=s.asSingle()),new U(t,i,s,t.dynamicSlots.map(()=>null),(r,o)=>o.create(r),null)}get tabSize(){return this.facet(U.tabSize)}get lineBreak(){return this.facet(U.lineSeparator)||`
@@ -1,4 +1,4 @@
1
- import{s as w,h as B,e as D,aw as O,ax as U,ay as J,aj as L,az as F,j as e,aA as b,aB as K,aC as $,g as z,aD as M}from"./index-ORDXjnpF.js";import{u as q,P as G,D as Y}from"./useProjectForm-o3r31UMh.js";const H="CREATE_PROJECT_BTN",Q=w(B)(({theme:t})=>({marginLeft:t.spacing(3)})),X=()=>{const{setToastData:t,setToastApiError:j}=D(),{refetchUser:l}=O(),{uiConfig:p}=U(),o=J(),{trackEvent:a}=L(),{projectId:s,projectName:u,projectDesc:m,projectMode:r,setProjectMode:P,setProjectId:C,setProjectName:E,setProjectDesc:T,getCreateProjectPayload:c,clearErrors:n,validateProjectId:i,validateName:g,setProjectStickiness:h,projectStickiness:d,errors:f}=q(),{createProject:y,loading:A}=F(),_=async k=>{k.preventDefault(),n();const v=g(),x=await i();if(v&&x){const I=c();try{await y(I),l(),o(`/projects/${s}`),t({title:"Project created",text:"Now you can add toggles to this project",confetti:!0,type:"success"}),d!==Y&&a("project_stickiness_set"),a("project-mode",{props:{mode:r,action:"added"}})}catch(R){j(z(R))}}},N=()=>`curl --location --request POST '${p.unleashUrl}/api/admin/projects' \\
1
+ import{s as w,h as B,e as D,aw as O,ax as U,ay as J,aj as L,az as F,j as e,aA as b,aB as K,aC as $,g as z,aD as M}from"./index-JVRlSBvr.js";import{u as q,P as G,D as Y}from"./useProjectForm--jxh4Dtm.js";const H="CREATE_PROJECT_BTN",Q=w(B)(({theme:t})=>({marginLeft:t.spacing(3)})),X=()=>{const{setToastData:t,setToastApiError:j}=D(),{refetchUser:l}=O(),{uiConfig:p}=U(),o=J(),{trackEvent:a}=L(),{projectId:s,projectName:u,projectDesc:m,projectMode:r,setProjectMode:P,setProjectId:C,setProjectName:E,setProjectDesc:T,getCreateProjectPayload:c,clearErrors:n,validateProjectId:i,validateName:g,setProjectStickiness:h,projectStickiness:d,errors:f}=q(),{createProject:y,loading:A}=F(),_=async k=>{k.preventDefault(),n();const v=g(),x=await i();if(v&&x){const I=c();try{await y(I),l(),o(`/projects/${s}`),t({title:"Project created",text:"Now you can add toggles to this project",confetti:!0,type:"success"}),d!==Y&&a("project_stickiness_set"),a("project-mode",{props:{mode:r,action:"added"}})}catch(R){j(z(R))}}},N=()=>`curl --location --request POST '${p.unleashUrl}/api/admin/projects' \\
2
2
  --header 'Authorization: INSERT_API_KEY' \\
3
3
  --header 'Content-Type: application/json' \\
4
4
  --data-raw '${JSON.stringify(c(),void 0,2)}'`,S=()=>{o(M)};return e.jsx(b,{loading:A,title:"Create project",description:"Projects allows you to group feature toggles together in the management UI.",documentationLink:"https://docs.getunleash.io/reference/projects",documentationLinkLabel:"Projects documentation",formatApiCode:N,children:e.jsxs(G,{errors:f,handleSubmit:_,projectId:s,setProjectId:C,projectName:u,projectStickiness:d,projectMode:r,setProjectMode:P,setProjectStickiness:h,setProjectName:E,projectDesc:m,setProjectDesc:T,mode:"Create",clearErrors:n,validateProjectId:i,children:[e.jsx(K,{name:"project",permission:$,"data-testid":H}),e.jsx(Q,{onClick:S,children:"Cancel"})]})})};export{X as default};
@@ -1,4 +1,4 @@
1
- import{c as le,j as t,aE as H,aW as z,b7 as _,C as A,J as D,T as E,ct as ce,s as q,gy as ue,bc as de,bv as X,ay as Z,ax as I,gz as he,gA as ge,gB as pe,gC as me,cd as fe,bH as N,gD as xe,h as ve,gE as be,cF as ye,bs as je,r as x,az as M,e as O,bw as Se,aj as Te,bu as Ce,aA as Ae,aX as Ee,bm as we,ce as ke,g as P,B as Re,ah as De,eS as qe,gF as Fe,aV as ee,aF as Pe,aJ as W,c6 as U,gG as $e,gH as Oe,gI as Be,fA as Ve,ba as _e,bb as Le,A as te,k as se,c9 as Ne,l as He,n as ze,Q as Me,gJ as Ue,m as Ge,b as We,u as Je,bZ as Ye,aQ as Ke,aO as ne,aP as ae,b6 as Qe,aK as V,bV as re,a_ as oe}from"./index-ORDXjnpF.js";const kt=le(t.jsx("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater"),Xe=({isOpen:e,onConfirm:a,onClose:n,showBanner:s,environment:r,messageComponent:o})=>{const i=H("projectId"),{data:d}=z(i),{changeRequestInReviewOrApproved:h,alert:p}=ce(d),g=h(r||""),m=g?"Add to existing change request":"Add suggestion to draft";return t.jsxs(_,{open:e,primaryButtonText:m,secondaryButtonText:"Cancel",onClick:a,onClose:n,title:"Request changes",fullWidth:!0,children:[t.jsx(A,{condition:g,show:p}),t.jsx(A,{condition:!!s,show:t.jsxs(D,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",r,". Your changes need to be approved before they will be live. All the changes you do now will be added into a draft that you can submit for review."]})}),t.jsx(E,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),o]})},Ze=q("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),J=q("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),Ie=q("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),et=({projectId:e,environmentId:a,permission:n,onSubmit:s,onCancel:r,loading:o,strategy:i,setStrategy:d,segments:h,setSegments:p,errors:g})=>{const m=ue(i.constraints),l=de(n,e,a),{strategyDefinition:u}=X(i==null?void 0:i.name),v=Z(),{uiConfig:b,error:S,loading:C}=I();if(S)throw S;if(C||!u)return null;const w=y=>u.parameters.find(T=>T.name===y),c=(y,T)=>{const F=w(y);if(y!=="groupId"){const j=be(F,T);return j?(g.setFormError(y,j),!1):(g.removeFormError(y),!0)}return!0},R=()=>u.parameters.map(y=>y.name).map(y=>{var T;return c(y,(T=i.parameters)==null?void 0:T[y])}).every(Boolean),$=()=>{v(`/projects/${e}/settings/default-strategy`)},B=async y=>{if(y.preventDefault(),R())s();else return};return t.jsxs(Ze,{onSubmit:B,children:[t.jsx(he,{title:i.title||"",setTitle:y=>{d(T=>({...T,title:y}))}}),t.jsx(ge,{segments:h,setSegments:p,projectId:e}),t.jsx(pe,{projectId:e,environmentId:a,strategy:i,setStrategy:d}),t.jsx(J,{}),t.jsx(me,{strategy:i,strategyDefinition:u,setStrategy:d,validateParameter:c,errors:g,hasAccess:l}),t.jsx(A,{condition:i.parameters!=null&&"stickiness"in i.parameters,show:t.jsx(fe,{strategy:i,setStrategy:d,environment:a,projectId:e})}),t.jsx(J,{}),t.jsxs(Ie,{children:[t.jsx(N,{permission:n,projectId:e,environmentId:a,variant:"contained",color:"primary",type:"submit",disabled:o||!m||g.hasFormErrors(),"data-testid":xe,children:"Save strategy"}),t.jsx(ve,{type:"button",color:"primary",onClick:r||$,disabled:o,children:"Cancel"})]})]})},tt=(e,a)=>{var i;const{project:n,refetch:s}=ye(e),r={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:n.defaultStickiness||"default",groupId:""}},o=(i=n.environments.find(d=>d.environment===a))==null?void 0:i.defaultStrategy;return{defaultStrategyFallback:r,strategy:o,refetch:s}},Rt=()=>{const e=H("projectId"),a=je("environmentId"),{defaultStrategyFallback:n,strategy:s,refetch:r}=tt(e,a),[o,i]=x.useState(s||n),[d,h]=x.useState([]),{updateDefaultStrategy:p,loading:g}=M(),{strategyDefinition:m}=X(o==null?void 0:o.name),{setToastData:l,setToastApiError:u}=O(),v=Se(),{uiConfig:b}=I(),{unleashUrl:S}=b,C=Z(),{trackEvent:w}=Te(),{segments:c,refetchSegments:R}=Ce();x.useEffect(()=>{if(c&&(s!=null&&s.segments)){const T=[];for(const F of s==null?void 0:s.segments)T.push(...c.filter(j=>j.id===F));h(T)}},[JSON.stringify(c),JSON.stringify(s==null?void 0:s.segments)]);const $=st(o,d),B=async T=>{await p(e,a,T),w("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),await R(),l({title:"Default Strategy updated",type:"success",confetti:!0})},y=async()=>{const T=`/projects/${e}/settings/default-strategy`;try{await B($),await r(),C(T)}catch(F){u(P(F))}};return!m||!o?null:t.jsx(Ae,{modal:!0,title:Ee((o==null?void 0:o.name)??""),description:at,documentationLink:rt,documentationLinkLabel:ot,formatApiCode:()=>nt(e,a,$,m,S),children:t.jsx(et,{projectId:e,strategy:o,setStrategy:i,segments:d,setSegments:h,environmentId:a,onSubmit:y,loading:g,permission:we,errors:v,isChangeRequest:!1})})},st=(e,a)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},variants:e.variants??[],segments:a.map(n=>n.id),disabled:e.disabled??!1}),nt=(e,a,n,s,r)=>{if(!r)return"";const o={...n,parameters:ke(n.parameters??{},s)},i=`${r}/api/admin/projects/${e}/environments/${a}/default-strategy}`,d=JSON.stringify(o,void 0,2);return`curl --location --request PUT '${i}' \\
1
+ import{c as le,j as t,aE as H,aW as z,b7 as _,C as A,J as D,T as E,ct as ce,s as q,gy as ue,bc as de,bv as X,ay as Z,ax as I,gz as he,gA as ge,gB as pe,gC as me,cd as fe,bH as N,gD as xe,h as ve,gE as be,cF as ye,bs as je,r as x,az as M,e as O,bw as Se,aj as Te,bu as Ce,aA as Ae,aX as Ee,bm as we,ce as ke,g as P,B as Re,ah as De,eS as qe,gF as Fe,aV as ee,aF as Pe,aJ as W,c6 as U,gG as $e,gH as Oe,gI as Be,fA as Ve,ba as _e,bb as Le,A as te,k as se,c9 as Ne,l as He,n as ze,Q as Me,gJ as Ue,m as Ge,b as We,u as Je,bZ as Ye,aQ as Ke,aO as ne,aP as ae,b6 as Qe,aK as V,bV as re,a_ as oe}from"./index-JVRlSBvr.js";const kt=le(t.jsx("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater"),Xe=({isOpen:e,onConfirm:a,onClose:n,showBanner:s,environment:r,messageComponent:o})=>{const i=H("projectId"),{data:d}=z(i),{changeRequestInReviewOrApproved:h,alert:p}=ce(d),g=h(r||""),m=g?"Add to existing change request":"Add suggestion to draft";return t.jsxs(_,{open:e,primaryButtonText:m,secondaryButtonText:"Cancel",onClick:a,onClose:n,title:"Request changes",fullWidth:!0,children:[t.jsx(A,{condition:g,show:p}),t.jsx(A,{condition:!!s,show:t.jsxs(D,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",r,". Your changes need to be approved before they will be live. All the changes you do now will be added into a draft that you can submit for review."]})}),t.jsx(E,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),o]})},Ze=q("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),J=q("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),Ie=q("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),et=({projectId:e,environmentId:a,permission:n,onSubmit:s,onCancel:r,loading:o,strategy:i,setStrategy:d,segments:h,setSegments:p,errors:g})=>{const m=ue(i.constraints),l=de(n,e,a),{strategyDefinition:u}=X(i==null?void 0:i.name),v=Z(),{uiConfig:b,error:S,loading:C}=I();if(S)throw S;if(C||!u)return null;const w=y=>u.parameters.find(T=>T.name===y),c=(y,T)=>{const F=w(y);if(y!=="groupId"){const j=be(F,T);return j?(g.setFormError(y,j),!1):(g.removeFormError(y),!0)}return!0},R=()=>u.parameters.map(y=>y.name).map(y=>{var T;return c(y,(T=i.parameters)==null?void 0:T[y])}).every(Boolean),$=()=>{v(`/projects/${e}/settings/default-strategy`)},B=async y=>{if(y.preventDefault(),R())s();else return};return t.jsxs(Ze,{onSubmit:B,children:[t.jsx(he,{title:i.title||"",setTitle:y=>{d(T=>({...T,title:y}))}}),t.jsx(ge,{segments:h,setSegments:p,projectId:e}),t.jsx(pe,{projectId:e,environmentId:a,strategy:i,setStrategy:d}),t.jsx(J,{}),t.jsx(me,{strategy:i,strategyDefinition:u,setStrategy:d,validateParameter:c,errors:g,hasAccess:l}),t.jsx(A,{condition:i.parameters!=null&&"stickiness"in i.parameters,show:t.jsx(fe,{strategy:i,setStrategy:d,environment:a,projectId:e})}),t.jsx(J,{}),t.jsxs(Ie,{children:[t.jsx(N,{permission:n,projectId:e,environmentId:a,variant:"contained",color:"primary",type:"submit",disabled:o||!m||g.hasFormErrors(),"data-testid":xe,children:"Save strategy"}),t.jsx(ve,{type:"button",color:"primary",onClick:r||$,disabled:o,children:"Cancel"})]})]})},tt=(e,a)=>{var i;const{project:n,refetch:s}=ye(e),r={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:n.defaultStickiness||"default",groupId:""}},o=(i=n.environments.find(d=>d.environment===a))==null?void 0:i.defaultStrategy;return{defaultStrategyFallback:r,strategy:o,refetch:s}},Rt=()=>{const e=H("projectId"),a=je("environmentId"),{defaultStrategyFallback:n,strategy:s,refetch:r}=tt(e,a),[o,i]=x.useState(s||n),[d,h]=x.useState([]),{updateDefaultStrategy:p,loading:g}=M(),{strategyDefinition:m}=X(o==null?void 0:o.name),{setToastData:l,setToastApiError:u}=O(),v=Se(),{uiConfig:b}=I(),{unleashUrl:S}=b,C=Z(),{trackEvent:w}=Te(),{segments:c,refetchSegments:R}=Ce();x.useEffect(()=>{if(c&&(s!=null&&s.segments)){const T=[];for(const F of s==null?void 0:s.segments)T.push(...c.filter(j=>j.id===F));h(T)}},[JSON.stringify(c),JSON.stringify(s==null?void 0:s.segments)]);const $=st(o,d),B=async T=>{await p(e,a,T),w("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),await R(),l({title:"Default Strategy updated",type:"success",confetti:!0})},y=async()=>{const T=`/projects/${e}/settings/default-strategy`;try{await B($),await r(),C(T)}catch(F){u(P(F))}};return!m||!o?null:t.jsx(Ae,{modal:!0,title:Ee((o==null?void 0:o.name)??""),description:at,documentationLink:rt,documentationLinkLabel:ot,formatApiCode:()=>nt(e,a,$,m,S),children:t.jsx(et,{projectId:e,strategy:o,setStrategy:i,segments:d,setSegments:h,environmentId:a,onSubmit:y,loading:g,permission:we,errors:v,isChangeRequest:!1})})},st=(e,a)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},variants:e.variants??[],segments:a.map(n=>n.id),disabled:e.disabled??!1}),nt=(e,a,n,s,r)=>{if(!r)return"";const o={...n,parameters:ke(n.parameters??{},s)},i=`${r}/api/admin/projects/${e}/environments/${a}/default-strategy}`,d=JSON.stringify(o,void 0,2);return`curl --location --request PUT '${i}' \\
2
2
  --header 'Authorization: INSERT_API_KEY' \\
3
3
  --header 'Content-Type: application/json' \\
4
4
  --data-raw '${d}'`},at=`
@@ -1,2 +1,2 @@
1
- import{gN as c,b as x,b_ as g,r as d,j as u}from"./index-ORDXjnpF.js";import{d as b,L as m,C as f,a as C,b as v,P as S,c as h,T as q,p as k,e as M,f as E}from"./chartjs-adapter-date-fns.esm-kkU_hxq-.js";const L=(e,s,n)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(s,n,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(s,n,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(s,n,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,s,n)=>e.map(a=>({x:a.timestamp,y:n(a),variants:a.variants})),$=(e,s)=>{if(s===0)return"";const[n,a]=e,t=Math.floor(Number(a)/s*100);return`${a} (${t}%) - ${n}`},j=(e,s,n,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"],l=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return l-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,...l}=r.variants;return Object.entries(l).map(i=>$(i,r.y)).join(`
1
+ import{gN as c,b as x,b_ as g,r as d,j as u}from"./index-JVRlSBvr.js";import{d as b,L as m,C as f,a as C,b as v,P as S,c as h,T as q,p as k,e as M,f as E}from"./chartjs-adapter-date-fns.esm-JSlDxtwH.js";const L=(e,s,n)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(s,n,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(s,n,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(s,n,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,s,n)=>e.map(a=>({x:a.timestamp,y:n(a),variants:a.variants})),$=(e,s)=>{if(s===0)return"";const[n,a]=e,t=Math.floor(Number(a)/s*100);return`${a} (${t}%) - ${n}`},j=(e,s,n,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"],l=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return l-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,...l}=r.variants;return Object.entries(l).map(i=>$(i,r.y)).join(`
2
2
  `)},title:t=>`Time: ${c(t[0].parsed.x,a.locale)}`}},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:P(n),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:"hour"},grid:{display:!1},ticks:{callback:(t,r,o)=>c(o[r].value,a.locale),color:e.palette.text.secondary}}}}),P=e=>e===1?"Requests in the last hour":`Requests in the last ${e} hours`;b.font={...b.font,family:"Sen",size:13,weight:"400"};const R=({metrics:e,hoursBack:s,statsSectionId:n})=>{const a=x(),{locationSettings:t}=g(),r=d.useMemo(()=>[...e].sort((i,y)=>i.timestamp.localeCompare(y.timestamp)),[e]),o=d.useMemo(()=>j(a,r,s,t),[a,r,s,t]),l=d.useMemo(()=>L(a,r,t),[a,r,t]);return u.jsx("div",{style:{height:400},children:u.jsx(m,{options:o,data:l,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":n})})};f.register(C,v,S,h,q,k,M,E);export{R as FeatureMetricsChart,R as default};