unleash-server 5.2.6 → 5.2.8

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 (53) hide show
  1. package/dist/lib/addons/datadog-definition.js +20 -0
  2. package/dist/lib/addons/datadog-definition.js.map +1 -1
  3. package/dist/lib/addons/datadog.d.ts +8 -1
  4. package/dist/lib/addons/datadog.js +14 -2
  5. package/dist/lib/addons/datadog.js.map +1 -1
  6. package/dist/lib/addons/datadog.test.js +62 -0
  7. package/dist/lib/addons/datadog.test.js.map +1 -1
  8. package/dist/lib/addons/slack-definition.js +12 -0
  9. package/dist/lib/addons/slack-definition.js.map +1 -1
  10. package/dist/lib/addons/slack.d.ts +9 -1
  11. package/dist/lib/addons/slack.js +15 -3
  12. package/dist/lib/addons/slack.js.map +1 -1
  13. package/dist/lib/addons/slack.test.js +33 -0
  14. package/dist/lib/addons/slack.test.js.map +1 -1
  15. package/dist/lib/addons/teams-definition.js +12 -0
  16. package/dist/lib/addons/teams-definition.js.map +1 -1
  17. package/dist/lib/addons/teams.d.ts +6 -1
  18. package/dist/lib/addons/teams.js +11 -2
  19. package/dist/lib/addons/teams.js.map +1 -1
  20. package/dist/lib/addons/teams.test.js +28 -0
  21. package/dist/lib/addons/teams.test.js.map +1 -1
  22. package/dist/lib/addons/webhook-definition.js +12 -0
  23. package/dist/lib/addons/webhook-definition.js.map +1 -1
  24. package/dist/lib/addons/webhook.d.ts +1 -0
  25. package/dist/lib/addons/webhook.js +11 -1
  26. package/dist/lib/addons/webhook.js.map +1 -1
  27. package/dist/lib/addons/webhook.test.js +29 -0
  28. package/dist/lib/addons/webhook.test.js.map +1 -1
  29. package/frontend/build/index.html +1 -1
  30. package/frontend/build/static/{AdvancedPlayground-fa382438.js → AdvancedPlayground-bc3db7fd.js} +1 -1
  31. package/frontend/build/static/{CreateProject-33102f1d.js → CreateProject-4013b189.js} +1 -1
  32. package/frontend/build/static/{Error-cf795e47.js → Error-2c3030da.js} +1 -1
  33. package/frontend/build/static/{FeatureArchiveDialog-7c45ad83.js → FeatureArchiveDialog-a529848e.js} +1 -1
  34. package/frontend/build/static/{FeatureMetricsChart-098be7ad.js → FeatureMetricsChart-e8ede36a.js} +1 -1
  35. package/frontend/build/static/{FeatureViewLazyExport-c74a2e4d.js → FeatureViewLazyExport-773303d1.js} +2 -2
  36. package/frontend/build/static/{LazyAdminExport-c83e066d.js → LazyAdminExport-a9aeca56.js} +2 -2
  37. package/frontend/build/static/{LazyProjectExport-0e097671.js → LazyProjectExport-7c849a96.js} +1 -1
  38. package/frontend/build/static/{NetworkOverview-d29a2982.js → NetworkOverview-e6f0a590.js} +2 -2
  39. package/frontend/build/static/{NetworkTraffic-75dedea1.js → NetworkTraffic-d1efc782.js} +1 -1
  40. package/frontend/build/static/{Playground-2547cabf.js → Playground-4fd4e26e.js} +1 -1
  41. package/frontend/build/static/{PlaygroundGuidancePopper-de0c6f7c.js → PlaygroundGuidancePopper-c761bfb7.js} +1 -1
  42. package/frontend/build/static/{RoleCell-86b02c95.js → RoleCell-cbb192fa.js} +1 -1
  43. package/frontend/build/static/{StrategyItemContainer-cada0ab5.js → StrategyItemContainer-128fc163.js} +1 -1
  44. package/frontend/build/static/{chartjs-adapter-date-fns.esm-d78073b7.js → chartjs-adapter-date-fns.esm-0d05c046.js} +1 -1
  45. package/frontend/build/static/{flowchart-elk-definition-170a3958-3edd9f6d.js → flowchart-elk-definition-170a3958-cc4ae597.js} +1 -1
  46. package/frontend/build/static/{index-4f1029d3.js → index-a563ae6f.js} +1 -1
  47. package/frontend/build/static/{index-1023a005.js → index-ade82986.js} +1 -1
  48. package/frontend/build/static/{index-6d9a536e.js → index-bd571775.js} +79 -79
  49. package/frontend/build/static/{is_dark-4cf688db.js → is_dark-49e2e68f.js} +1 -1
  50. package/frontend/build/static/{mindmap-definition-44684416-d564c247.js → mindmap-definition-44684416-c6d3a96e.js} +1 -1
  51. package/frontend/build/static/{timeline-definition-8e5a9bc6-d80977bf.js → timeline-definition-8e5a9bc6-920370f9.js} +1 -1
  52. package/frontend/build/static/{unknownify-e541f268.js → unknownify-30fed5e1.js} +1 -1
  53. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,oDAA4B;AAC5B,8EAA8C;AAW9C,MAAqB,OAAQ,SAAQ,eAAK;IACtC,YAAY,IAAgC;QACxC,KAAK,CAAC,4BAAU,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAuB;QACpD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;QACrE,MAAM,OAAO,GAAG;YACZ,KAAK;SACR,CAAC;QAEF,IAAI,IAAI,CAAC;QAET,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,IAAI,GAAG,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,WAAW,IAAI,kBAAkB;gBACjD,aAAa,EAAE,aAAa,IAAI,SAAS;aAC5C;YACD,IAAI;SACP,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kBAAkB,KAAK,CAAC,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAC9D,CAAC;IACN,CAAC;CACJ;AAjCD,0BAiCC"}
1
+ {"version":3,"file":"webhook.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,oDAA4B;AAC5B,8EAA8C;AAY9C,MAAqB,OAAQ,SAAQ,eAAK;IACtC,YAAY,IAAgC;QACxC,KAAK,CAAC,4BAAU,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,UAAuB;QACpD,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,GAClE,UAAU,CAAC;QACf,MAAM,OAAO,GAAG;YACZ,KAAK;SACR,CAAC;QAEF,IAAI,IAAI,CAAC;QAET,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7D,IAAI,GAAG,kBAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACjD;aAAM;YACH,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAChC;QAED,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/D,IAAI;gBACA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;aAC5C;YAAC,OAAO,CAAC,EAAE;gBACR,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,6DAA6D,aAAa,GAAG,CAChF,CAAC;aACL;SACJ;QACD,MAAM,WAAW,GAAG;YAChB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACL,cAAc,EAAE,WAAW,IAAI,kBAAkB;gBACjD,aAAa,EAAE,aAAa,IAAI,SAAS;gBACzC,GAAG,YAAY;aAClB;YACD,IAAI;SACP,CAAC;QACF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CACZ,kBAAkB,KAAK,CAAC,IAAI,mBAAmB,GAAG,CAAC,MAAM,EAAE,CAC9D,CAAC;IACN,CAAC;CACJ;AA7CD,0BA6CC"}
@@ -97,4 +97,33 @@ test('Should format event with "authorization"', () => {
97
97
  expect(call.options.headers.Authorization).toBe(parameters.authorization);
98
98
  expect(call.options.body).toBe('feature-created on toggle some-toggle');
99
99
  });
100
+ test('Should handle custom headers', async () => {
101
+ const addon = new webhook_1.default({ getLogger: no_logger_1.default });
102
+ const event = {
103
+ id: 1,
104
+ createdAt: new Date(),
105
+ type: events_1.FEATURE_CREATED,
106
+ createdBy: 'some@user.com',
107
+ featureName: 'some-toggle',
108
+ data: {
109
+ name: 'some-toggle',
110
+ enabled: false,
111
+ strategies: [{ name: 'default' }],
112
+ },
113
+ };
114
+ const parameters = {
115
+ url: 'http://test.webhook.com/plain',
116
+ bodyTemplate: '{{event.type}} on toggle {{event.data.name}}',
117
+ contentType: 'text/plain',
118
+ authorization: 'API KEY 123abc',
119
+ customHeaders: `{ "MY_CUSTOM_HEADER": "MY_CUSTOM_VALUE" }`,
120
+ };
121
+ addon.handleEvent(event, parameters);
122
+ const call = fetchRetryCalls[0];
123
+ expect(fetchRetryCalls.length).toBe(1);
124
+ expect(call.url).toBe(parameters.url);
125
+ expect(call.options.headers.Authorization).toBe(parameters.authorization);
126
+ expect(call.options.headers.MY_CUSTOM_HEADER).toBe('MY_CUSTOM_VALUE');
127
+ expect(call.options.body).toBe('feature-created on toggle some-toggle');
128
+ });
100
129
  //# sourceMappingURL=webhook.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webhook.test.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook.test.js","sourceRoot":"","sources":["../../../src/lib/addons/webhook.test.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@
16
16
  href="https://fonts.googleapis.com/css2?family=Sen:wght@400;700;800&display=swap"
17
17
  rel="stylesheet"
18
18
  />
19
- <script type="module" crossorigin src="/static/index-6d9a536e.js"></script>
19
+ <script type="module" crossorigin src="/static/index-bd571775.js"></script>
20
20
  <link rel="stylesheet" href="/static/index-66c635eb.css">
21
21
  </head>
22
22
  <body>
@@ -1 +1 @@
1
- import{b as B,d as Y,H as G,r as d,j as e,f as C,s as D,g as Z,B as w,V,t as O,v as _,h as g,C as E,F as I,I as he,w as pe,x as ee,T as z,y as fe,c as te,z as ge,u as ne,a as ye,L as Q,e as be,S as ve,i as W,k as xe,A as Se,l as Ce,m as Pe,n as M,D as Re,P as je,o as Ee,p as we,q as Fe}from"./index-6d9a536e.js";import{V as ke,F as se,a as oe,f as K,u as He,r as Te,g as Ae,b as Be,P as Oe,d as Le,c as $e,e as Ue}from"./PlaygroundGuidancePopper-de0c6f7c.js";import"./StrategyItemContainer-cada0ab5.js";import"./Error-cf795e47.js";const q=t=>t.charAt(0).toUpperCase()+t.slice(1),Ie=({features:t})=>{const l=B(),n=Y(l.breakpoints.down("sm")),h=Object.keys(t[0].context).map(o=>({Header:q(o),accessor:`context.${o}`,minWidth:160,Cell:G})),m=d.useMemo(()=>[...h,{Header:"Variant",id:"variant",accessor:"variant.name",sortType:"alphanumeric",filterName:"variant",maxWidth:200,Cell:({value:o,row:{original:{variant:i,feature:c,variants:u,isEnabled:v}}})=>e(ke,{variant:i!=null&&i.enabled?o:"",variants:u,feature:c,isEnabled:v})},{id:"isEnabled",Header:"isEnabled",filterName:"isEnabled",accessor:o=>{var i;return o!=null&&o.isEnabled?"true":((i=o==null?void 0:o.strategies)==null?void 0:i.result)==="unknown"?"unknown":"false"},Cell:({row:o})=>e(se,{feature:o.original}),sortType:"playgroundResultState",maxWidth:120,sortInverted:!0},{Header:"",maxWidth:70,id:"info",Cell:({row:o})=>e(oe,{feature:o.original,input:{environment:o.original.environment,context:o.original.context}})}],[]),{headerGroups:y,rows:P,prepareRow:a,setHiddenColumns:R}=C.useTable({columns:m,data:t,sortTypes:D,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},C.useGlobalFilter,C.useFlexLayout,C.useSortBy);Z([{condition:n,columns:["variant"]}],R,m);const s=d.useRef(null);return e(w,{ref:s,sx:{overflow:"auto",maxHeight:"800px"},children:e(V,{parentRef:s,rows:P,headerGroups:y,prepareRow:a})})},Ne=O("div",{})(({theme:t})=>({flexGrow:0,..._,justifyContent:"flex-start",margin:t.spacing(0,1.5)})),We=O(w)(({theme:t})=>({display:"flex",flexDirection:"row",gap:t.spacing(1)})),Me=({value:t})=>{const l=B(),[n,h]=d.useState(null),m=s=>h(s.currentTarget),y=()=>h(null),P=!!n,a=(t||[]).filter(s=>s.isEnabled),R=(t||[]).filter(s=>!s.isEnabled);return g(Ne,{children:[g(We,{children:[e(E,{condition:a.length>0,show:e(K,{enabled:!0,label:`${a.length}`,showIcon:!0})}),e(E,{condition:R.length>0,show:e(K,{enabled:!1,label:`${R.length}`,showIcon:!0})})]}),g(I,{children:[e(he,{onClick:m,children:e(pe,{})}),g(ee,{open:P,id:`${t}-result-details`,PaperProps:{sx:{borderRadius:`${l.shape.borderRadiusLarge}px`,padding:l.spacing(3)}},onClose:y,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[e(z,{variant:"subtitle2",sx:{mb:3},children:t[0].environment}),e(Ie,{features:t})]})]})]})},Ge=({features:t})=>{const l=Object.keys(t),n=t[l[0]],h=n[0].context,m=d.useMemo(()=>n.map((c,u)=>({...Object.fromEntries(l.map(v=>[v,t[v][u]]))})),[JSON.stringify(t)]),y=Object.keys(h).map(c=>({Header:q(c),accessor:`${l[0]}.context.${c}`,minWidth:160,Cell:G})),P=l.map(c=>({Header:c,accessor:u=>{var v,p,f;return(v=u[c])!=null&&v.isEnabled?"true":((f=(p=u[c])==null?void 0:p.strategies)==null?void 0:f.result)==="unknown"?"unknown":"false"},Cell:({row:u})=>g(w,{sx:{display:"flex"},children:[e(se,{feature:u.original[c]}),e(oe,{feature:u.original[c],input:{environment:u.original[c].environment,context:u.original[c].context}})]}),sortType:"playgroundResultState",maxWidth:140})),a=d.useMemo(()=>[...y,...P],[]),{headerGroups:R,rows:s,prepareRow:o}=C.useTable({columns:a,data:m,sortTypes:D,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},C.useGlobalFilter,C.useFlexLayout,C.useSortBy),i=d.useRef(null);return e(w,{ref:i,sx:{overflow:"auto",maxHeight:"800px"},children:e(V,{parentRef:i,rows:s,headerGroups:R,prepareRow:o})})},De=O("div",{})(({theme:t})=>({flexGrow:0,..._,justifyContent:"flex-start",margin:t.spacing(0,1.5)})),Ve=O(fe)(({theme:t})=>({textAlign:"left",textDecorationStyle:"dotted",textUnderlineOffset:t.spacing(.75),color:t.palette.neutral.dark})),ze=({value:t})=>{const l=B(),[n,h]=d.useState(null),m=a=>h(a.currentTarget),y=()=>h(null);return e(De,{children:g(I,{children:[e(Ve,{variant:"body2",onClick:m,children:"Preview diff"}),g(ee,{open:!!n,id:`${t}-result-details`,PaperProps:{sx:{borderRadius:`${l.shape.borderRadiusLarge}px`,padding:l.spacing(3)}},onClose:y,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[e(z,{variant:"subtitle2",sx:{mb:3},children:"Environments diff"}),e(Ge,{features:t})]})]})})},qe=t=>t.reduce((l,n)=>l+Object.values(n.environments).flatMap(h=>Object.keys(h)).length,0),Je={id:"name"},{value:X,setValue:Qe}=te("AdvancedPlaygroundResultsTable:v1",Je),Ke=({features:t,input:l,loading:n})=>{const{trackEvent:h}=ge();t&&h("playground",{props:{eventType:"number-of-combinations",count:qe(t)}});const[m,y]=ne(),P=ye(n),[a,R]=d.useState(m.get("search")||""),s=B(),o=Y(s.breakpoints.down("md")),i=t&&t.length>0?Object.keys(t[0].environments).length:0,c=d.useMemo(()=>{var S;return[{Header:"Name",accessor:"name",searchable:!0,minWidth:160,Cell:({value:b,row:{original:k}})=>e(Q,{title:b,to:`/projects/${k==null?void 0:k.projectId}/features/${b}`})},{Header:"Project ID",accessor:"projectId",sortType:"alphanumeric",filterName:"projectId",searchable:!0,minWidth:150,Cell:({value:b})=>e(Q,{title:b,to:`/projects/${b}`})},...((S=l==null?void 0:l.environments)==null?void 0:S.map(b=>({Header:n?()=>"":q(b),maxWidth:140,id:`environments.${b}`,align:"flex-start",Cell:({row:k})=>e(Me,{value:k.original.environments[b]})})))||[],...i>1?[{Header:"Diff",minWidth:150,id:"diff",align:"left",Cell:({row:b})=>e(ze,{value:b.original.environments})}]:[]]},[l]),{data:u,getSearchText:v,getSearchContext:p}=be(c,a,t||[]),f=d.useMemo(()=>n?Array(5).fill({name:"Feature name",projectId:"Feature Project",environments:{name:"Feature Environments",variants:[]},enabled:!0}):u,[u,n]),[T]=d.useState(()=>({sortBy:[{id:m.get("sort")||X.id,desc:m.has("order")?m.get("order")==="desc":X.desc}]})),{headerGroups:x,rows:A,state:{sortBy:F},prepareRow:N,setHiddenColumns:L}=C.useTable({initialState:T,columns:c,data:f,sortTypes:D,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:G}},C.useGlobalFilter,C.useFlexLayout,C.useSortBy);return Z([{condition:o,columns:["projectId"]}],L,c),d.useEffect(()=>{if(n)return;const S=Object.fromEntries(m);S.sort=F[0].id,F[0].desc?S.order="desc":S.order&&delete S.order,a?S.search=a:delete S.search,y(S,{replace:!0}),Qe({id:F[0].id,desc:F[0].desc||!1})},[n,F,a]),g(I,{children:[g(w,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[e(z,{variant:"subtitle1",sx:{ml:1},children:t!==void 0&&!n?`Results (${A.length<f.length?`${A.length} of ${f.length}`:f.length})`:"Results"}),e(ve,{initialValue:a,onChange:R,hasFilters:!0,getSearchContext:p,disabled:n,containerStyles:{marginLeft:"1rem",maxWidth:"400px"}})]}),e(E,{condition:!n&&!f,show:()=>e(W,{children:f===void 0?"None of the feature toggles were evaluated yet.":"No results found."}),elseShow:()=>g(w,{ref:P,sx:{overflow:"auto"},children:[e(xe,{value:v(a),children:e(V,{rows:A,headerGroups:x,prepareRow:N})}),e(E,{condition:f.length===0&&(a==null?void 0:a.length)>0,show:g(W,{children:["No feature toggles found matching “",a,"”"]})}),e(E,{condition:f&&f.length===0&&!a,show:e(W,{children:"No features toggles to display"})})]})})]})},Xe=O(Se)(({theme:t})=>({marginBottom:t.spacing(3)})),tt=({FormComponent:t=$e})=>{const l={projects:[],environments:[]},{value:n,setValue:h}=te("AdvancedPlayground:v1",l),{environments:m}=Ce(),y=B(),P=!0,[a,R]=d.useState(),[s,o]=d.useState(n.environments),[i,c]=d.useState(n.projects),[u,v]=d.useState(n.context),[p,f]=d.useState(),{setToastData:T}=Pe(),[x,A]=ne(),F=Array.from(x.entries()).length,{evaluateAdvancedPlayground:N,loading:L}=He(),[S,b]=d.useState(!1);d.useEffect(()=>{(s==null?void 0:s.length)===0&&o([Te(m)])},[JSON.stringify(s),JSON.stringify(m)]),d.useEffect(()=>{F>0&&k()},[]);const k=()=>{try{const r=re(),j=ae(),$=le();(async()=>{r&&$&&await J(r||[],j||"*",$)})()}catch(r){T({type:"error",title:`Failed to parse URL parameters: ${M(r)}`})}},re=()=>{let r=null;const j=x.get("environments");return j&&(r=j.split(","),o(r)),r},ae=()=>{let r=null,j=x.get("projects");return j&&(r=j.split(","),c(r)),r},le=()=>{let r=x.get("context");return r&&(r=decodeURI(r),v(r)),r},J=async(r,j,$,U)=>{try{R(void 0);const H=JSON.parse($||"{}"),me=await N({environments:Ae(r),projects:Be(j),context:{appName:"playground",...H}});U&&typeof U=="function"&&U(),f(me)}catch(H){H instanceof Re?R(H.message):H instanceof SyntaxError?T({type:"error",title:`Error parsing context: ${M(H)}`}):T({type:"error",title:M(H)})}},ie=async r=>{r.preventDefault(),b(!0),await J(s,i,u,()=>{ce(),h({environments:s,projects:i,context:u})})},ce=()=>{x.set("context",encodeURI(u||"")),Array.isArray(s)&&s.length>0&&!(s.length===1&&s[0]==="*")?x.set("environments",s.join(",")):x.delete("projects"),Array.isArray(i)&&i.length>0&&!(i.length===1&&i[0]==="*")?x.set("projects",i.join(",")):x.delete("projects"),A(x)},de=p&&!P?"35%":"auto",ue=Ue(P,p);return e(je,{header:e(Ee,{title:"Unleash playground",actions:e(Oe,{})}),disableLoading:!0,bodyClass:"no-padding",children:g(w,{sx:{display:"flex",flexDirection:"column"},children:[e(w,{sx:{background:y.palette.background.elevation2,borderBottomLeftRadius:y.shape.borderRadiusMedium},children:e(we,{elevation:0,sx:{px:4,py:3,mb:4,mt:2,background:y.palette.background.elevation2,transition:"width 0.4s ease",minWidth:"auto",width:de,position:"sticky",top:0},children:e(t,{onSubmit:ie,context:u,setContext:v,availableEnvironments:m,projects:i,environments:s,setProjects:c,setEnvironments:o})})}),g(w,{sx:r=>({width:ue,transition:"width 0.4s ease",padding:r.spacing(4,2)}),children:[e(E,{condition:!!a,show:e(Xe,{severity:"warning",children:a})}),e(E,{condition:L,show:e(Fe,{}),elseShow:g(I,{children:[e(E,{condition:!!p,show:e(Ke,{loading:L,features:p==null?void 0:p.features,input:p==null?void 0:p.input})}),e(E,{condition:!p&&!S,show:e(Le,{})})]})})]})]})})};export{tt as AdvancedPlayground,tt as default};
1
+ import{b as B,d as Y,H as G,r as d,j as e,f as C,s as D,g as Z,B as w,V,t as O,v as _,h as g,C as E,F as I,I as he,w as pe,x as ee,T as z,y as fe,c as te,z as ge,u as ne,a as ye,L as Q,e as be,S as ve,i as W,k as xe,A as Se,l as Ce,m as Pe,n as M,D as Re,P as je,o as Ee,p as we,q as Fe}from"./index-bd571775.js";import{V as ke,F as se,a as oe,f as K,u as He,r as Te,g as Ae,b as Be,P as Oe,d as Le,c as $e,e as Ue}from"./PlaygroundGuidancePopper-c761bfb7.js";import"./StrategyItemContainer-128fc163.js";import"./Error-2c3030da.js";const q=t=>t.charAt(0).toUpperCase()+t.slice(1),Ie=({features:t})=>{const l=B(),n=Y(l.breakpoints.down("sm")),h=Object.keys(t[0].context).map(o=>({Header:q(o),accessor:`context.${o}`,minWidth:160,Cell:G})),m=d.useMemo(()=>[...h,{Header:"Variant",id:"variant",accessor:"variant.name",sortType:"alphanumeric",filterName:"variant",maxWidth:200,Cell:({value:o,row:{original:{variant:i,feature:c,variants:u,isEnabled:v}}})=>e(ke,{variant:i!=null&&i.enabled?o:"",variants:u,feature:c,isEnabled:v})},{id:"isEnabled",Header:"isEnabled",filterName:"isEnabled",accessor:o=>{var i;return o!=null&&o.isEnabled?"true":((i=o==null?void 0:o.strategies)==null?void 0:i.result)==="unknown"?"unknown":"false"},Cell:({row:o})=>e(se,{feature:o.original}),sortType:"playgroundResultState",maxWidth:120,sortInverted:!0},{Header:"",maxWidth:70,id:"info",Cell:({row:o})=>e(oe,{feature:o.original,input:{environment:o.original.environment,context:o.original.context}})}],[]),{headerGroups:y,rows:P,prepareRow:a,setHiddenColumns:R}=C.useTable({columns:m,data:t,sortTypes:D,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},C.useGlobalFilter,C.useFlexLayout,C.useSortBy);Z([{condition:n,columns:["variant"]}],R,m);const s=d.useRef(null);return e(w,{ref:s,sx:{overflow:"auto",maxHeight:"800px"},children:e(V,{parentRef:s,rows:P,headerGroups:y,prepareRow:a})})},Ne=O("div",{})(({theme:t})=>({flexGrow:0,..._,justifyContent:"flex-start",margin:t.spacing(0,1.5)})),We=O(w)(({theme:t})=>({display:"flex",flexDirection:"row",gap:t.spacing(1)})),Me=({value:t})=>{const l=B(),[n,h]=d.useState(null),m=s=>h(s.currentTarget),y=()=>h(null),P=!!n,a=(t||[]).filter(s=>s.isEnabled),R=(t||[]).filter(s=>!s.isEnabled);return g(Ne,{children:[g(We,{children:[e(E,{condition:a.length>0,show:e(K,{enabled:!0,label:`${a.length}`,showIcon:!0})}),e(E,{condition:R.length>0,show:e(K,{enabled:!1,label:`${R.length}`,showIcon:!0})})]}),g(I,{children:[e(he,{onClick:m,children:e(pe,{})}),g(ee,{open:P,id:`${t}-result-details`,PaperProps:{sx:{borderRadius:`${l.shape.borderRadiusLarge}px`,padding:l.spacing(3)}},onClose:y,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[e(z,{variant:"subtitle2",sx:{mb:3},children:t[0].environment}),e(Ie,{features:t})]})]})]})},Ge=({features:t})=>{const l=Object.keys(t),n=t[l[0]],h=n[0].context,m=d.useMemo(()=>n.map((c,u)=>({...Object.fromEntries(l.map(v=>[v,t[v][u]]))})),[JSON.stringify(t)]),y=Object.keys(h).map(c=>({Header:q(c),accessor:`${l[0]}.context.${c}`,minWidth:160,Cell:G})),P=l.map(c=>({Header:c,accessor:u=>{var v,p,f;return(v=u[c])!=null&&v.isEnabled?"true":((f=(p=u[c])==null?void 0:p.strategies)==null?void 0:f.result)==="unknown"?"unknown":"false"},Cell:({row:u})=>g(w,{sx:{display:"flex"},children:[e(se,{feature:u.original[c]}),e(oe,{feature:u.original[c],input:{environment:u.original[c].environment,context:u.original[c].context}})]}),sortType:"playgroundResultState",maxWidth:140})),a=d.useMemo(()=>[...y,...P],[]),{headerGroups:R,rows:s,prepareRow:o}=C.useTable({columns:a,data:m,sortTypes:D,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},C.useGlobalFilter,C.useFlexLayout,C.useSortBy),i=d.useRef(null);return e(w,{ref:i,sx:{overflow:"auto",maxHeight:"800px"},children:e(V,{parentRef:i,rows:s,headerGroups:R,prepareRow:o})})},De=O("div",{})(({theme:t})=>({flexGrow:0,..._,justifyContent:"flex-start",margin:t.spacing(0,1.5)})),Ve=O(fe)(({theme:t})=>({textAlign:"left",textDecorationStyle:"dotted",textUnderlineOffset:t.spacing(.75),color:t.palette.neutral.dark})),ze=({value:t})=>{const l=B(),[n,h]=d.useState(null),m=a=>h(a.currentTarget),y=()=>h(null);return e(De,{children:g(I,{children:[e(Ve,{variant:"body2",onClick:m,children:"Preview diff"}),g(ee,{open:!!n,id:`${t}-result-details`,PaperProps:{sx:{borderRadius:`${l.shape.borderRadiusLarge}px`,padding:l.spacing(3)}},onClose:y,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[e(z,{variant:"subtitle2",sx:{mb:3},children:"Environments diff"}),e(Ge,{features:t})]})]})})},qe=t=>t.reduce((l,n)=>l+Object.values(n.environments).flatMap(h=>Object.keys(h)).length,0),Je={id:"name"},{value:X,setValue:Qe}=te("AdvancedPlaygroundResultsTable:v1",Je),Ke=({features:t,input:l,loading:n})=>{const{trackEvent:h}=ge();t&&h("playground",{props:{eventType:"number-of-combinations",count:qe(t)}});const[m,y]=ne(),P=ye(n),[a,R]=d.useState(m.get("search")||""),s=B(),o=Y(s.breakpoints.down("md")),i=t&&t.length>0?Object.keys(t[0].environments).length:0,c=d.useMemo(()=>{var S;return[{Header:"Name",accessor:"name",searchable:!0,minWidth:160,Cell:({value:b,row:{original:k}})=>e(Q,{title:b,to:`/projects/${k==null?void 0:k.projectId}/features/${b}`})},{Header:"Project ID",accessor:"projectId",sortType:"alphanumeric",filterName:"projectId",searchable:!0,minWidth:150,Cell:({value:b})=>e(Q,{title:b,to:`/projects/${b}`})},...((S=l==null?void 0:l.environments)==null?void 0:S.map(b=>({Header:n?()=>"":q(b),maxWidth:140,id:`environments.${b}`,align:"flex-start",Cell:({row:k})=>e(Me,{value:k.original.environments[b]})})))||[],...i>1?[{Header:"Diff",minWidth:150,id:"diff",align:"left",Cell:({row:b})=>e(ze,{value:b.original.environments})}]:[]]},[l]),{data:u,getSearchText:v,getSearchContext:p}=be(c,a,t||[]),f=d.useMemo(()=>n?Array(5).fill({name:"Feature name",projectId:"Feature Project",environments:{name:"Feature Environments",variants:[]},enabled:!0}):u,[u,n]),[T]=d.useState(()=>({sortBy:[{id:m.get("sort")||X.id,desc:m.has("order")?m.get("order")==="desc":X.desc}]})),{headerGroups:x,rows:A,state:{sortBy:F},prepareRow:N,setHiddenColumns:L}=C.useTable({initialState:T,columns:c,data:f,sortTypes:D,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:G}},C.useGlobalFilter,C.useFlexLayout,C.useSortBy);return Z([{condition:o,columns:["projectId"]}],L,c),d.useEffect(()=>{if(n)return;const S=Object.fromEntries(m);S.sort=F[0].id,F[0].desc?S.order="desc":S.order&&delete S.order,a?S.search=a:delete S.search,y(S,{replace:!0}),Qe({id:F[0].id,desc:F[0].desc||!1})},[n,F,a]),g(I,{children:[g(w,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[e(z,{variant:"subtitle1",sx:{ml:1},children:t!==void 0&&!n?`Results (${A.length<f.length?`${A.length} of ${f.length}`:f.length})`:"Results"}),e(ve,{initialValue:a,onChange:R,hasFilters:!0,getSearchContext:p,disabled:n,containerStyles:{marginLeft:"1rem",maxWidth:"400px"}})]}),e(E,{condition:!n&&!f,show:()=>e(W,{children:f===void 0?"None of the feature toggles were evaluated yet.":"No results found."}),elseShow:()=>g(w,{ref:P,sx:{overflow:"auto"},children:[e(xe,{value:v(a),children:e(V,{rows:A,headerGroups:x,prepareRow:N})}),e(E,{condition:f.length===0&&(a==null?void 0:a.length)>0,show:g(W,{children:["No feature toggles found matching “",a,"”"]})}),e(E,{condition:f&&f.length===0&&!a,show:e(W,{children:"No features toggles to display"})})]})})]})},Xe=O(Se)(({theme:t})=>({marginBottom:t.spacing(3)})),tt=({FormComponent:t=$e})=>{const l={projects:[],environments:[]},{value:n,setValue:h}=te("AdvancedPlayground:v1",l),{environments:m}=Ce(),y=B(),P=!0,[a,R]=d.useState(),[s,o]=d.useState(n.environments),[i,c]=d.useState(n.projects),[u,v]=d.useState(n.context),[p,f]=d.useState(),{setToastData:T}=Pe(),[x,A]=ne(),F=Array.from(x.entries()).length,{evaluateAdvancedPlayground:N,loading:L}=He(),[S,b]=d.useState(!1);d.useEffect(()=>{(s==null?void 0:s.length)===0&&o([Te(m)])},[JSON.stringify(s),JSON.stringify(m)]),d.useEffect(()=>{F>0&&k()},[]);const k=()=>{try{const r=re(),j=ae(),$=le();(async()=>{r&&$&&await J(r||[],j||"*",$)})()}catch(r){T({type:"error",title:`Failed to parse URL parameters: ${M(r)}`})}},re=()=>{let r=null;const j=x.get("environments");return j&&(r=j.split(","),o(r)),r},ae=()=>{let r=null,j=x.get("projects");return j&&(r=j.split(","),c(r)),r},le=()=>{let r=x.get("context");return r&&(r=decodeURI(r),v(r)),r},J=async(r,j,$,U)=>{try{R(void 0);const H=JSON.parse($||"{}"),me=await N({environments:Ae(r),projects:Be(j),context:{appName:"playground",...H}});U&&typeof U=="function"&&U(),f(me)}catch(H){H instanceof Re?R(H.message):H instanceof SyntaxError?T({type:"error",title:`Error parsing context: ${M(H)}`}):T({type:"error",title:M(H)})}},ie=async r=>{r.preventDefault(),b(!0),await J(s,i,u,()=>{ce(),h({environments:s,projects:i,context:u})})},ce=()=>{x.set("context",encodeURI(u||"")),Array.isArray(s)&&s.length>0&&!(s.length===1&&s[0]==="*")?x.set("environments",s.join(",")):x.delete("projects"),Array.isArray(i)&&i.length>0&&!(i.length===1&&i[0]==="*")?x.set("projects",i.join(",")):x.delete("projects"),A(x)},de=p&&!P?"35%":"auto",ue=Ue(P,p);return e(je,{header:e(Ee,{title:"Unleash playground",actions:e(Oe,{})}),disableLoading:!0,bodyClass:"no-padding",children:g(w,{sx:{display:"flex",flexDirection:"column"},children:[e(w,{sx:{background:y.palette.background.elevation2,borderBottomLeftRadius:y.shape.borderRadiusMedium},children:e(we,{elevation:0,sx:{px:4,py:3,mb:4,mt:2,background:y.palette.background.elevation2,transition:"width 0.4s ease",minWidth:"auto",width:de,position:"sticky",top:0},children:e(t,{onSubmit:ie,context:u,setContext:v,availableEnvironments:m,projects:i,environments:s,setProjects:c,setEnvironments:o})})}),g(w,{sx:r=>({width:ue,transition:"width 0.4s ease",padding:r.spacing(4,2)}),children:[e(E,{condition:!!a,show:e(Xe,{severity:"warning",children:a})}),e(E,{condition:L,show:e(Fe,{}),elseShow:g(I,{children:[e(E,{condition:!!p,show:e(Ke,{loading:L,features:p==null?void 0:p.features,input:p==null?void 0:p.input})}),e(E,{condition:!p&&!S,show:e(Le,{})})]})})]})]})})};export{tt as AdvancedPlayground,tt as default};
@@ -1,4 +1,4 @@
1
- import{m as k,ar as R,a6 as w,as as O,z as U,at as D,au as J,j as e,av as b,aw as x,ax as B,ay as F,az as L,n as z,aA as K}from"./index-6d9a536e.js";const $="CREATE_PROJECT_BTN",H=()=>{const{setToastData:n,setToastApiError:i}=k(),{refetchUser:d}=R(),{uiConfig:l}=w(),t=O(),{trackEvent:u}=U(),{projectId:a,projectName:j,projectMode:p,projectDesc:m,setProjectId:P,setProjectName:C,setProjectDesc:T,getProjectPayload:o,clearErrors:r,validateProjectId:s,validateName:h,setProjectStickiness:E,setProjectMode:f,projectStickiness:c,errors:g}=D(),{createProject:A,loading:_}=J();return e(b,{loading:_,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:()=>`curl --location --request POST '${l.unleashUrl}/api/admin/projects' \\
1
+ import{m as k,ar as R,a6 as w,as as O,z as U,at as D,au as J,j as e,av as b,aw as x,ax as B,ay as F,az as L,n as z,aA as K}from"./index-bd571775.js";const $="CREATE_PROJECT_BTN",H=()=>{const{setToastData:n,setToastApiError:i}=k(),{refetchUser:d}=R(),{uiConfig:l}=w(),t=O(),{trackEvent:u}=U(),{projectId:a,projectName:j,projectMode:p,projectDesc:m,setProjectId:P,setProjectName:C,setProjectDesc:T,getProjectPayload:o,clearErrors:r,validateProjectId:s,validateName:h,setProjectStickiness:E,setProjectMode:f,projectStickiness:c,errors:g}=D(),{createProject:A,loading:_}=J();return e(b,{loading:_,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:()=>`curl --location --request POST '${l.unleashUrl}/api/admin/projects' \\
2
2
  --header 'Authorization: INSERT_API_KEY' \\
3
3
  --header 'Content-Type: application/json' \\
4
4
  --data-raw '${JSON.stringify(o(),void 0,2)}'`,children:e(x,{errors:g,handleSubmit:async N=>{N.preventDefault(),r();const v=h(),y=await s();if(v&&y){const S=o();try{await A(S),d(),t(`/projects/${a}`),n({title:"Project created",text:"Now you can add toggles to this project",confetti:!0,type:"success"}),c!==L&&u("project_stickiness_set")}catch(I){i(z(I))}}},handleCancel:()=>{t(K)},projectId:a,setProjectId:P,projectName:j,projectMode:p,projectStickiness:c,setProjectStickiness:E,setProjectMode:f,setProjectName:C,projectDesc:m,setProjectDesc:T,mode:"Create",clearErrors:r,validateProjectId:s,children:e(B,{name:"project",permission:F,"data-testid":$})})})};export{H as default};
@@ -1 +1 @@
1
- import{E as r,j as o}from"./index-6d9a536e.js";const a=r(o("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"}),"Error");export{a as E};
1
+ import{E as r,j as o}from"./index-bd571775.js";const a=r(o("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"}),"Error");export{a as E};
@@ -1,4 +1,4 @@
1
- import{E as ie,j as r,b as ce,aI as Y,a_ as Z,h as C,bb as W,C as U,A as we,T as O,ca as Ae,t as j,fx as xe,bh as Re,fy as X,as as J,a6 as ee,fz as ke,fA as Fe,fB as De,fC as Pe,bv as G,fD as $e,ai as Oe,fE as Be,fF as N,cl as le,r as w,au as ue,m as z,fG as de,z as ge,fH as he,av as fe,a$ as pe,br as qe,fI as _e,n as B,dp as Le,b0 as Ue,aZ as me,aJ as Q,b2 as ye,fJ as je,fK as Ve,fL as Ie,fM as ze,fN as Ye,fO as We,b3 as be,bc as He,fP as Me,F as K,aN as ne,B as Ge,v as Je,bR as te,fQ as Ke,ej as Ne,fR as Qe,fS as Ze,fT as Xe,be as et,bf as tt,bg as at,am as Se,al as ve,bU as st,cc as nt,df as rt,$ as ot,fU as it,de as ct,a8 as lt,bP as ut,aU as dt,aS as gt,aT as ht}from"./index-6d9a536e.js";const ft=ie(r("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"}),"Cloud"),zt=ie(r("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"),Yt=({enabled:e,className:s})=>{const t=ce(),i=e?"Environment enabled":"Environment disabled",a={backgroundColor:e?t.palette.primary.light:t.palette.neutral.border,borderRadius:"50%",width:"28px",height:"28px",minWidth:"28px",display:"flex",alignItems:"center",justifyContent:"center",marginRight:t.spacing(1)},n={fill:t.palette.common.white,width:"16px",height:"16px"};return r("div",{style:a,className:s,children:r(ft,{style:n,titleAccess:i})})},pt=({isOpen:e,onConfirm:s,onClose:t,showBanner:i,environment:a,messageComponent:n})=>{const o=Y("projectId"),{data:u}=Z(o),{changeRequestInReviewOrApproved:f,alert:g}=Ae(u),l=f(a||"");return C(W,{open:e,primaryButtonText:l?"Add to existing change request":"Add suggestion to draft",secondaryButtonText:"Cancel",onClick:s,onClose:t,title:"Request changes",fullWidth:!0,children:[r(U,{condition:l,show:g}),r(U,{condition:!!i,show:C(we,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",a,". 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."]})}),r(O,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),n]})},mt=(e,s)=>{const t={};return s.parameters.forEach(i=>{t[i.name]=yt(e,i)}),{name:s.name,constraints:[],parameters:t}},yt=(e,s)=>s.name==="rollout"||s.name==="percentage"||s.type==="percentage"?"50":s.name==="stickiness"?"":s.name==="groupId"?e:s.type==="boolean"?"false":"",bt=j("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),re=j("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),St=j("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),vt=({projectId:e,environmentId:s,permission:t,onSubmit:i,onCancel:a,loading:n,strategy:o,setStrategy:u,segments:f,setSegments:g,errors:l})=>{const S=xe(o.constraints),c=Re(t,e,s),{strategyDefinition:d}=X(o==null?void 0:o.name),m=J(),{uiConfig:h,error:v,loading:x}=ee();if(v)throw v;if(x||!d)return null;const D=p=>d.parameters.find(E=>E.name===p),A=(p,E)=>{const F=D(p);if(p!=="groupId"){const T=Be(F,E);return T?(l.setFormError(p,T),!1):(l.removeFormError(p),!0)}return!0},y=()=>d.parameters.map(p=>p.name).map(p=>{var E;return A(p,(E=o.parameters)==null?void 0:E[p])}).every(Boolean),q=()=>{m(`/projects/${e}/settings/default-strategy`)};return C(bt,{onSubmit:async p=>{if(p.preventDefault(),y())i();else return},children:[r(ke,{title:o.title||"",setTitle:p=>{u(E=>({...E,title:p}))}}),r(U,{condition:!!h.flags.SE,show:r(Fe,{segments:f,setSegments:g,projectId:e})}),r(De,{projectId:e,environmentId:s,strategy:o,setStrategy:u}),r(re,{}),r(Pe,{strategy:o,strategyDefinition:d,setStrategy:u,validateParameter:A,errors:l,hasAccess:c}),r(re,{}),C(St,{children:[r(G,{permission:t,projectId:e,environmentId:s,variant:"contained",color:"primary",type:"submit",disabled:n||!S||l.hasFormErrors(),"data-testid":$e,children:"Save strategy"}),r(Oe,{type:"button",color:"primary",onClick:a||q,disabled:n,children:"Cancel"})]})]})},Te={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:"default",groupId:""}},Wt=()=>{var F;const e=Y("projectId"),s=N("environmentId"),{project:t,refetch:i}=le(e),a=(F=t.environments.find(T=>T.environment===s))==null?void 0:F.defaultStrategy,[n,o]=w.useState(a||Te),[u,f]=w.useState([]),{updateDefaultStrategy:g,loading:l}=ue(),{strategyDefinition:S}=X(n==null?void 0:n.name),{setToastData:c,setToastApiError:d}=z(),m=de(),{uiConfig:h}=ee(),{unleashUrl:v}=h,x=J(),{trackEvent:D}=ge(),{segments:A,refetchSegments:y}=he();w.useEffect(()=>{if(A&&(a!=null&&a.segments)){const T=[];for(const P of a==null?void 0:a.segments)T.push(...A.filter(V=>V.id===P));f(T)}},[JSON.stringify(A),JSON.stringify(a==null?void 0:a.segments)]);const q=h!=null&&h.flags.SE?u:[],k=Tt(n,q),p=async T=>{await g(e,s,T),D("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),await y(),c({title:"Default Strategy updated",type:"success",confetti:!0})},E=async()=>{const T=`/projects/${e}/settings/default-strategy`;try{await p(k),await i(),x(T)}catch(P){d(B(P))}};return!S||!n?null:r(fe,{modal:!0,title:pe((n==null?void 0:n.name)??""),description:Et,documentationLink:wt,documentationLinkLabel:At,formatApiCode:()=>Ct(e,s,k,S,v),children:r(vt,{projectId:e,strategy:n,setStrategy:o,segments:u,setSegments:f,environmentId:s,onSubmit:E,loading:l,permission:qe,errors:m,isChangeRequest:!1})})},Tt=(e,s)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},segments:s.map(t=>t.id),disabled:e.disabled??!1}),Ct=(e,s,t,i,a)=>{if(!a)return"";const n={...t,parameters:_e(t.parameters??{},i)},o=`${a}/api/admin/projects/${e}/environments/${s}/default-strategy}`,u=JSON.stringify(n,void 0,2);return`curl --location --request PUT '${o}' \\
1
+ import{E as ie,j as r,b as ce,aI as Y,a_ as Z,h as C,bb as W,C as U,A as we,T as O,ca as Ae,t as j,fx as xe,bh as Re,fy as X,as as J,a6 as ee,fz as ke,fA as Fe,fB as De,fC as Pe,bv as G,fD as $e,ai as Oe,fE as Be,fF as N,cl as le,r as w,au as ue,m as z,fG as de,z as ge,fH as he,av as fe,a$ as pe,br as qe,fI as _e,n as B,dp as Le,b0 as Ue,aZ as me,aJ as Q,b2 as ye,fJ as je,fK as Ve,fL as Ie,fM as ze,fN as Ye,fO as We,b3 as be,bc as He,fP as Me,F as K,aN as ne,B as Ge,v as Je,bR as te,fQ as Ke,ej as Ne,fR as Qe,fS as Ze,fT as Xe,be as et,bf as tt,bg as at,am as Se,al as ve,bU as st,cc as nt,df as rt,$ as ot,fU as it,de as ct,a8 as lt,bP as ut,aU as dt,aS as gt,aT as ht}from"./index-bd571775.js";const ft=ie(r("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96z"}),"Cloud"),zt=ie(r("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"),Yt=({enabled:e,className:s})=>{const t=ce(),i=e?"Environment enabled":"Environment disabled",a={backgroundColor:e?t.palette.primary.light:t.palette.neutral.border,borderRadius:"50%",width:"28px",height:"28px",minWidth:"28px",display:"flex",alignItems:"center",justifyContent:"center",marginRight:t.spacing(1)},n={fill:t.palette.common.white,width:"16px",height:"16px"};return r("div",{style:a,className:s,children:r(ft,{style:n,titleAccess:i})})},pt=({isOpen:e,onConfirm:s,onClose:t,showBanner:i,environment:a,messageComponent:n})=>{const o=Y("projectId"),{data:u}=Z(o),{changeRequestInReviewOrApproved:f,alert:g}=Ae(u),l=f(a||"");return C(W,{open:e,primaryButtonText:l?"Add to existing change request":"Add suggestion to draft",secondaryButtonText:"Cancel",onClick:s,onClose:t,title:"Request changes",fullWidth:!0,children:[r(U,{condition:l,show:g}),r(U,{condition:!!i,show:C(we,{severity:"info",sx:{mb:2},children:["Change requests feature is enabled for ",a,". 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."]})}),r(O,{variant:"body2",color:"text.secondary",children:"Your suggestion:"}),n]})},mt=(e,s)=>{const t={};return s.parameters.forEach(i=>{t[i.name]=yt(e,i)}),{name:s.name,constraints:[],parameters:t}},yt=(e,s)=>s.name==="rollout"||s.name==="percentage"||s.type==="percentage"?"50":s.name==="stickiness"?"":s.name==="groupId"?e:s.type==="boolean"?"false":"",bt=j("form")(({theme:e})=>({display:"grid",gap:e.spacing(2)})),re=j("hr")(({theme:e})=>({width:"100%",height:"1px",margin:e.spacing(2,0),border:"none",background:e.palette.background.elevation2})),St=j("div")(({theme:e})=>({display:"flex",justifyContent:"end",gap:e.spacing(2),paddingBottom:e.spacing(10)})),vt=({projectId:e,environmentId:s,permission:t,onSubmit:i,onCancel:a,loading:n,strategy:o,setStrategy:u,segments:f,setSegments:g,errors:l})=>{const S=xe(o.constraints),c=Re(t,e,s),{strategyDefinition:d}=X(o==null?void 0:o.name),m=J(),{uiConfig:h,error:v,loading:x}=ee();if(v)throw v;if(x||!d)return null;const D=p=>d.parameters.find(E=>E.name===p),A=(p,E)=>{const F=D(p);if(p!=="groupId"){const T=Be(F,E);return T?(l.setFormError(p,T),!1):(l.removeFormError(p),!0)}return!0},y=()=>d.parameters.map(p=>p.name).map(p=>{var E;return A(p,(E=o.parameters)==null?void 0:E[p])}).every(Boolean),q=()=>{m(`/projects/${e}/settings/default-strategy`)};return C(bt,{onSubmit:async p=>{if(p.preventDefault(),y())i();else return},children:[r(ke,{title:o.title||"",setTitle:p=>{u(E=>({...E,title:p}))}}),r(U,{condition:!!h.flags.SE,show:r(Fe,{segments:f,setSegments:g,projectId:e})}),r(De,{projectId:e,environmentId:s,strategy:o,setStrategy:u}),r(re,{}),r(Pe,{strategy:o,strategyDefinition:d,setStrategy:u,validateParameter:A,errors:l,hasAccess:c}),r(re,{}),C(St,{children:[r(G,{permission:t,projectId:e,environmentId:s,variant:"contained",color:"primary",type:"submit",disabled:n||!S||l.hasFormErrors(),"data-testid":$e,children:"Save strategy"}),r(Oe,{type:"button",color:"primary",onClick:a||q,disabled:n,children:"Cancel"})]})]})},Te={name:"flexibleRollout",constraints:[],parameters:{rollout:"100",stickiness:"default",groupId:""}},Wt=()=>{var F;const e=Y("projectId"),s=N("environmentId"),{project:t,refetch:i}=le(e),a=(F=t.environments.find(T=>T.environment===s))==null?void 0:F.defaultStrategy,[n,o]=w.useState(a||Te),[u,f]=w.useState([]),{updateDefaultStrategy:g,loading:l}=ue(),{strategyDefinition:S}=X(n==null?void 0:n.name),{setToastData:c,setToastApiError:d}=z(),m=de(),{uiConfig:h}=ee(),{unleashUrl:v}=h,x=J(),{trackEvent:D}=ge(),{segments:A,refetchSegments:y}=he();w.useEffect(()=>{if(A&&(a!=null&&a.segments)){const T=[];for(const P of a==null?void 0:a.segments)T.push(...A.filter(V=>V.id===P));f(T)}},[JSON.stringify(A),JSON.stringify(a==null?void 0:a.segments)]);const q=h!=null&&h.flags.SE?u:[],k=Tt(n,q),p=async T=>{await g(e,s,T),D("default_strategy",{props:{action:"edit",hasTitle:!!T.title}}),await y(),c({title:"Default Strategy updated",type:"success",confetti:!0})},E=async()=>{const T=`/projects/${e}/settings/default-strategy`;try{await p(k),await i(),x(T)}catch(P){d(B(P))}};return!S||!n?null:r(fe,{modal:!0,title:pe((n==null?void 0:n.name)??""),description:Et,documentationLink:wt,documentationLinkLabel:At,formatApiCode:()=>Ct(e,s,k,S,v),children:r(vt,{projectId:e,strategy:n,setStrategy:o,segments:u,setSegments:f,environmentId:s,onSubmit:E,loading:l,permission:qe,errors:m,isChangeRequest:!1})})},Tt=(e,s)=>({name:e.name,title:e.title,constraints:e.constraints??[],parameters:e.parameters??{},segments:s.map(t=>t.id),disabled:e.disabled??!1}),Ct=(e,s,t,i,a)=>{if(!a)return"";const n={...t,parameters:_e(t.parameters??{},i)},o=`${a}/api/admin/projects/${e}/environments/${s}/default-strategy}`,u=JSON.stringify(n,void 0,2);return`curl --location --request PUT '${o}' \\
2
2
  --header 'Authorization: INSERT_API_KEY' \\
3
3
  --header 'Content-Type: application/json' \\
4
4
  --data-raw '${u}'`},Et=`
@@ -1,2 +1,2 @@
1
- import{f_ as c,b as m,bK as g,r as d,j as u}from"./index-6d9a536e.js";import{d as b,L as x,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 L}from"./chartjs-adapter-date-fns.esm-d78073b7.js";import"./index-1023a005.js";import"./index-4f1029d3.js";const $=(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=(e,s)=>{if(s===0)return"";const[n,a]=e,t=Math.floor(Number(a)/s*100);return`${a} (${t}%) - ${n}`},P=(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=>E(i,r.y)).join(`
1
+ import{f_ as c,b as m,bK as g,r as d,j as u}from"./index-bd571775.js";import{d as b,L as x,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 L}from"./chartjs-adapter-date-fns.esm-0d05c046.js";import"./index-ade82986.js";import"./index-a563ae6f.js";const $=(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=(e,s)=>{if(s===0)return"";const[n,a]=e,t=Math.floor(Number(a)/s*100);return`${a} (${t}%) - ${n}`},P=(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=>E(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:T(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}}}}),T=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=m(),{locationSettings:t}=g(),r=d.useMemo(()=>[...e].sort((i,y)=>i.timestamp.localeCompare(y.timestamp)),[e]),o=d.useMemo(()=>P(a,r,s,t),[a,r,s,t]),l=d.useMemo(()=>$(a,r,t),[a,r,t]);return u("div",{style:{height:400},children:u(x,{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,L);export{R as FeatureMetricsChart,R as default};