unleash-server 5.9.4 → 5.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/frontend/build/index.html +1 -1
- package/frontend/build/static/{AdvancedPlayground-FbP1gTKc.js → AdvancedPlayground-e02viKSS.js} +1 -1
- package/frontend/build/static/{CreateProject-vjn1sh4D.js → CreateProject-YCRw-fJC.js} +1 -1
- package/frontend/build/static/{FeatureArchiveDialog-ctoNJoqg.js → FeatureArchiveDialog-qnffwGpi.js} +1 -1
- package/frontend/build/static/{FeatureMetricsChart-ig6HN-Ms.js → FeatureMetricsChart-PYYF3at0.js} +1 -1
- package/frontend/build/static/{FeatureViewLazyExport-G75iq0Uc.js → FeatureViewLazyExport-vr_olVwX.js} +2 -2
- package/frontend/build/static/{LazyAdminExport-oCRFK_R5.js → LazyAdminExport-75xqDN5Y.js} +2 -2
- package/frontend/build/static/{LazyProjectExport-Ul0xAhZq.js → LazyProjectExport-h_Q-LtiW.js} +12 -12
- package/frontend/build/static/{LineChartComponent-3-eT314R.js → LineChartComponent-uw1CN8YY.js} +1 -1
- package/frontend/build/static/{NetworkOverview-d20eBsIq.js → NetworkOverview-y-lUr9KM.js} +2 -2
- package/frontend/build/static/{NetworkTraffic-_52gjNiG.js → NetworkTraffic-JAI40T_u.js} +1 -1
- package/frontend/build/static/{ReactJSONEditor-0HyqnatD.js → ReactJSONEditor-9k3PTenj.js} +1 -1
- package/frontend/build/static/{RoleCell--QIy8Oj_.js → RoleCell-kEE9Bm3g.js} +1 -1
- package/frontend/build/static/{StrategyItemContainer-X6EIzBwJ.js → StrategyItemContainer-qEJ1Y7Pl.js} +1 -1
- package/frontend/build/static/{flowchart-elk-definition-170a3958-XjUu-j5x.js → flowchart-elk-definition-170a3958-68GLjS5b.js} +1 -1
- package/frontend/build/static/{index-uUGk-gee.js → index-Hq7UZWFv.js} +4 -4
- package/frontend/build/static/{index-UE-HeGu0.js → index-zoHUZAXk.js} +1 -1
- package/frontend/build/static/{is_dark-8v9B-WN0.js → is_dark-KP_BZMFc.js} +1 -1
- package/frontend/build/static/{mindmap-definition-44684416-5sTvrm1Q.js → mindmap-definition-44684416-V-MQhjSh.js} +1 -1
- package/frontend/build/static/{timeline-definition-8e5a9bc6-MtFefIHV.js → timeline-definition-8e5a9bc6-CxD-c-Hv.js} +1 -1
- package/frontend/build/static/{unknownify-joALjS6W.js → unknownify-fWnBWbDJ.js} +1 -1
- package/frontend/build/static/{useApiTokens-gCm2i_7X.js → useApiTokens-1ljBsqm7.js} +1 -1
- package/frontend/build/static/{useProjectForm-oXjjbjX3.js → useProjectForm-xBMtEnPY.js} +1 -1
- package/package.json +2 -2
|
@@ -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-
|
|
23
|
+
<script type="module" crossorigin src="/static/index-Hq7UZWFv.js"></script>
|
|
24
24
|
<link rel="stylesheet" crossorigin href="/static/style-4Ai58kIl.css">
|
|
25
25
|
</head>
|
|
26
26
|
<body>
|
package/frontend/build/static/{AdvancedPlayground-FbP1gTKc.js → AdvancedPlayground-e02viKSS.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as Ke,j as a,u as es,g as ts,r as x,_ as go,s as j,U as ns,a as N,B as E,C as S,d as os,E as rs,b as xo,e as ss,f as $e,T as M,F as is,I as ls,S as as,M as cs,h as tn,p as En,i as In,k as Ue,A as Ut,l as ds,m as us,n as hs,o as fs,q as ms,t as Ln,v as ps,w as gs,x as Ce,D as xs,P as ys,y as yo,z as bs,G as Ie,H as vs,J as ze,K as ge,L as bo,N as nn,O as vo,Q as Cs,R as Ht,V as ot,W as zt,X as Ss,Y as js,Z as ks,$ as Co,a0 as on,a1 as xt,a2 as ws,a3 as G,a4 as yt,a5 as As,a6 as Es,a7 as Is,a8 as Ls,a9 as Rs,aa as Ds,ab as Rn,ac as So,ad as rn,ae as sn,af as jo,ag as ln,ah as ko,ai as wo,aj as Ao,ak as Eo,al as Bs,am as Dn,an as Ts,ao as Ms,ap as Rt,aq as Ps,ar as Os,as as Fs,at as Ws,au as Ns,av as $s}from"./index-uUGk-gee.js";import{E as T,F as Me,c as _e,S as Pe,a as v,T as Dt,C as Us,b as Hs,I as Io,g as Lo,i as st,d as Ro,e as Do,f as Bo,h as Vt,A as bt,j as H,m as we,s as Oe,N as qt,D as To,k as Re,V as vt,l as F,n as X,o as ie,p as Ve,q as J,P as Mo,r as an,t as cn,u as B,v as qe,R as zs,w as Vs,x as dn,y as qs,z as Gs,B as it,M as Js,G as Ks,H as Bn,J as _s,W as Qs,K as Ys,L as Zs,O as Xs,Q as ei,U as ti,X as ni,Y as oi,Z as ri,_ as un,$ as si,a0 as ii,a1 as li,a2 as ai,a3 as ci,a4 as Po,a5 as m,a6 as di,a7 as ui}from"./index-TzAeUmk4.js";import{u as hi}from"./useApiTokens-gCm2i_7X.js";import{S as fi}from"./StrategyItemContainer-X6EIzBwJ.js";const Ct=Ke(a.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"),mi=Ke(a.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"),pi=Ke(a.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"),gi=Ke(a.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"),xi=Ke(a.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"WarningOutlined"),yi=()=>{const{makeRequest:t,createRequest:e,errors:n,loading:o}=es({propagateErrors:!0}),r="api/admin/playground";return{evaluateAdvancedPlayground:async i=>{const l=`${r}/advanced`,c=e(l,{method:"POST",body:JSON.stringify(i)});return(await t(c.caller,c.id)).json()},errors:n,loading:o}};var hn={exports:{}};function Oo(t,e=100,n={}){if(typeof t!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof t}\`.`);if(e<0)throw new RangeError("`wait` must not be negative.");const{immediate:o}=typeof n=="boolean"?{immediate:n}:n;let r,s,i,l,c;function u(){const h=Date.now()-l;if(h<e&&h>=0)i=setTimeout(u,e-h);else if(i=void 0,!o){const f=r,p=s;r=void 0,s=void 0,c=t.apply(f,p)}}const d=function(...h){if(r&&this!==r)throw new Error("Debounced method called with different contexts.");r=this,s=h,l=Date.now();const f=o&&!i;if(i||(i=setTimeout(u,e)),f){const p=r,b=s;r=void 0,s=void 0,c=t.apply(p,b)}return c};return d.clear=()=>{i&&(clearTimeout(i),i=void 0)},d.flush=()=>{if(!i)return;const h=r,f=s;r=void 0,s=void 0,c=t.apply(h,f),clearTimeout(i),i=void 0},d}hn.exports.debounce=Oo;hn.exports=Oo;var bi=hn.exports;const vi=ts(bi);function Gt(){return Gt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},Gt.apply(this,arguments)}function Ci(t,e){if(t==null)return{};var n={},o=Object.keys(t),r,s;for(s=0;s<o.length;s++)r=o[s],!(e.indexOf(r)>=0)&&(n[r]=t[r]);return n}const Si=t=>{let e=mn(t.state);return e.line?ji(t):e.block?wi(t):!1};function fn(t,e){return({state:n,dispatch:o})=>{if(n.readOnly)return!1;let r=t(e,n);return r?(o(n.update(r)),!0):!1}}const ji=fn(Ii,0),ki=fn(Fo,0),wi=fn((t,e)=>Fo(t,e,Ei(e)),0);function mn(t,e=t.selection.main.head){let n=t.languageDataAt("commentTokens",e);return n.length?n[0]:{}}const We=50;function Ai(t,{open:e,close:n},o,r){let s=t.sliceDoc(o-We,o),i=t.sliceDoc(r,r+We),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(i)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&i.slice(c,c+n.length)==n)return{open:{pos:o-l,margin:l&&1},close:{pos:r+c,margin:c&&1}};let d,h;r-o<=2*We?d=h=t.sliceDoc(o,r):(d=t.sliceDoc(o,o+We),h=t.sliceDoc(r-We,r));let f=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(h)[0].length,b=h.length-p-n.length;return d.slice(f,f+e.length)==e&&h.slice(b,b+n.length)==n?{open:{pos:o+f+e.length,margin:/\s/.test(d.charAt(f+e.length))?1:0},close:{pos:r-p-n.length,margin:/\s/.test(h.charAt(b-1))?1:0}}:null}function Ei(t){let e=[];for(let n of t.selection.ranges){let o=t.doc.lineAt(n.from),r=n.to<=o.to?o:t.doc.lineAt(n.to),s=e.length-1;s>=0&&e[s].to>o.from?e[s].to=r.to:e.push({from:o.from,to:r.to})}return e}function Fo(t,e,n=e.selection.ranges){let o=n.map(s=>mn(e,s.from).block);if(!o.every(s=>s))return null;let r=n.map((s,i)=>Ai(e,o[i],s.from,s.to));if(t!=2&&!r.every(s=>s))return{changes:e.changes(n.map((s,i)=>r[i]?[]:[{from:s.from,insert:o[i].open+" "},{from:s.to,insert:" "+o[i].close}]))};if(t!=1&&r.some(s=>s)){let s=[];for(let i=0,l;i<r.length;i++)if(l=r[i]){let c=o[i],{open:u,close:d}=l;s.push({from:u.pos-c.open.length,to:u.pos+u.margin},{from:d.pos-d.margin,to:d.pos+c.close.length})}return{changes:s}}return null}function Ii(t,e,n=e.selection.ranges){let o=[],r=-1;for(let{from:s,to:i}of n){let l=o.length,c=1e9;for(let u=s;u<=i;){let d=e.doc.lineAt(u);if(d.from>r&&(s==i||i>d.from)){r=d.from;let h=mn(e,u).line;if(!h)continue;let f=/^\s*/.exec(d.text)[0].length,p=f==d.length,b=d.text.slice(f,f+h.length)==h?f:-1;f<d.text.length&&f<c&&(c=f),o.push({line:d,comment:b,token:h,indent:f,empty:p,single:!1})}u=d.to+1}if(c<1e9)for(let u=l;u<o.length;u++)o[u].indent<o[u].line.text.length&&(o[u].indent=c);o.length==l+1&&(o[l].single=!0)}if(t!=2&&o.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:u,empty:d,single:h}of o)(h||!d)&&s.push({from:l.from+u,insert:c+" "});let i=e.changes(s);return{changes:i,selection:e.selection.map(i,1)}}else if(t!=1&&o.some(s=>s.comment>=0)){let s=[];for(let{line:i,comment:l,token:c}of o)if(l>=0){let u=i.from+l,d=u+c.length;i.text[d-i.from]==" "&&d++,s.push({from:u,to:d})}return{changes:s}}return null}const Jt=bt.define(),Li=bt.define(),Ri=Me.define(),Wo=Me.define({combine(t){return _e(t,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function Di(t){let e=0;return t.iterChangedRanges((n,o)=>e=o),e}const No=Pe.define({create(){return le.empty},update(t,e){let n=e.state.facet(Wo),o=e.annotation(Jt);if(o){let c=e.docChanged?v.single(Di(e.changes)):void 0,u=_.fromTransaction(e,c),d=o.side,h=d==0?t.undone:t.done;return u?h=lt(h,h.length,n.minDepth,u):h=Ho(h,e.startState.selection),new le(d==0?o.rest:h,d==0?h:o.rest)}let r=e.annotation(Li);if((r=="full"||r=="before")&&(t=t.isolate()),e.annotation(Dt.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let s=_.fromTransaction(e),i=e.annotation(Dt.time),l=e.annotation(Dt.userEvent);return s?t=t.addChanges(s,i,l,n.newGroupDelay,n.minDepth):e.selection&&(t=t.addSelection(e.startState.selection,i,l,n.newGroupDelay)),(r=="full"||r=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new le(t.done.map(_.fromJSON),t.undone.map(_.fromJSON))}});function Bi(t={}){return[No,Wo.of(t),T.domEventHandlers({beforeinput(e,n){let o=e.inputType=="historyUndo"?$o:e.inputType=="historyRedo"?Kt:null;return o?(e.preventDefault(),o(n)):!1}})]}function St(t,e){return function({state:n,dispatch:o}){if(!e&&n.readOnly)return!1;let r=n.field(No,!1);if(!r)return!1;let s=r.pop(t,n,e);return s?(o(s),!0):!1}}const $o=St(0,!1),Kt=St(1,!1),Ti=St(0,!0),Mi=St(1,!0);class _{constructor(e,n,o,r,s){this.changes=e,this.effects=n,this.mapped=o,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new _(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,o;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(o=this.startSelection)===null||o===void 0?void 0:o.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new _(e.changes&&Us.fromJSON(e.changes),[],e.mapped&&Hs.fromJSON(e.mapped),e.startSelection&&v.fromJSON(e.startSelection),e.selectionsAfter.map(v.fromJSON))}static fromTransaction(e,n){let o=te;for(let r of e.startState.facet(Ri)){let s=r(e);s.length&&(o=o.concat(s))}return!o.length&&e.changes.empty?null:new _(e.changes.invert(e.startState.doc),o,void 0,n||e.startState.selection,te)}static selection(e){return new _(void 0,te,void 0,void 0,e)}}function lt(t,e,n,o){let r=e+1>n+20?e-n-1:0,s=t.slice(r,e);return s.push(o),s}function Pi(t,e){let n=[],o=!1;return t.iterChangedRanges((r,s)=>n.push(r,s)),e.iterChangedRanges((r,s,i,l)=>{for(let c=0;c<n.length;){let u=n[c++],d=n[c++];l>=u&&i<=d&&(o=!0)}}),o}function Oi(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,o)=>n.empty!=e.ranges[o].empty).length===0}function Uo(t,e){return t.length?e.length?t.concat(e):t:e}const te=[],Fi=200;function Ho(t,e){if(t.length){let n=t[t.length-1],o=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Fi));return o.length&&o[o.length-1].eq(e)?t:(o.push(e),lt(t,t.length-1,1e9,n.setSelAfter(o)))}else return[_.selection([e])]}function Wi(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function Bt(t,e){if(!t.length)return t;let n=t.length,o=te;for(;n;){let r=Ni(t[n-1],e,o);if(r.changes&&!r.changes.empty||r.effects.length){let s=t.slice(0,n);return s[n-1]=r,s}else e=r.mapped,n--,o=r.selectionsAfter}return o.length?[_.selection(o)]:te}function Ni(t,e,n){let o=Uo(t.selectionsAfter.length?t.selectionsAfter.map(l=>l.map(e)):te,n);if(!t.changes)return _.selection(o);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),i=t.mapped?t.mapped.composeDesc(s):s;return new _(r,H.mapEffects(t.effects,e),i,t.startSelection.map(s),o)}const $i=/^(input\.type|delete)($|\.)/;class le{constructor(e,n,o=0,r=void 0){this.done=e,this.undone=n,this.prevTime=o,this.prevUserEvent=r}isolate(){return this.prevTime?new le(this.done,this.undone):this}addChanges(e,n,o,r,s){let i=this.done,l=i[i.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!o||$i.test(o))&&(!l.selectionsAfter.length&&n-this.prevTime<r&&Pi(l.changes,e.changes)||o=="input.type.compose")?i=lt(i,i.length-1,s,new _(e.changes.compose(l.changes),Uo(e.effects,l.effects),l.mapped,l.startSelection,te)):i=lt(i,i.length,s,e),new le(i,te,n,o)}addSelection(e,n,o,r){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:te;return s.length>0&&n-this.prevTime<r&&o==this.prevUserEvent&&o&&/^select($|\.)/.test(o)&&Oi(s[s.length-1],e)?this:new le(Ho(this.done,e),this.undone,n,o)}addMapping(e){return new le(Bt(this.done,e),Bt(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,n,o){let r=e==0?this.done:this.undone;if(r.length==0)return null;let s=r[r.length-1];if(o&&s.selectionsAfter.length)return n.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:Jt.of({side:e,rest:Wi(r)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let i=r.length==1?te:r.slice(0,r.length-1);return s.mapped&&(i=Bt(i,s.mapped)),n.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:Jt.of({side:e,rest:i}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}le.empty=new le(te,te);const Ui=[{key:"Mod-z",run:$o,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Kt,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Kt,preventDefault:!0},{key:"Mod-u",run:Ti,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Mi,preventDefault:!0}];function Fe(t,e){return v.create(t.ranges.map(e),t.mainIndex)}function ae(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function re({state:t,dispatch:e},n){let o=Fe(t.selection,n);return o.eq(t.selection)?!1:(e(ae(t,o)),!0)}function jt(t,e){return v.cursor(e?t.to:t.from)}function zo(t,e){return re(t,n=>n.empty?t.moveByChar(n,e):jt(n,e))}function V(t){return t.textDirectionAt(t.state.selection.main.head)==To.LTR}const Vo=t=>zo(t,!V(t)),qo=t=>zo(t,V(t));function Go(t,e){return re(t,n=>n.empty?t.moveByGroup(n,e):jt(n,e))}const Hi=t=>Go(t,!V(t)),zi=t=>Go(t,V(t));function Vi(t,e,n){if(e.type.prop(n))return!0;let o=e.to-e.from;return o&&(o>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function kt(t,e,n){let o=Oe(t).resolveInner(e.head),r=n?qt.closedBy:qt.openedBy;for(let c=e.head;;){let u=n?o.childAfter(c):o.childBefore(c);if(!u)break;Vi(t,u,r)?o=u:c=n?u.to:u.from}let s=o.type.prop(r),i,l;return s&&(i=n?we(t,o.from,1):we(t,o.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?o.to:o.from,v.cursor(l,n?-1:1)}const qi=t=>re(t,e=>kt(t.state,e,!V(t))),Gi=t=>re(t,e=>kt(t.state,e,V(t)));function Jo(t,e){return re(t,n=>{if(!n.empty)return jt(n,e);let o=t.moveVertically(n,e);return o.head!=n.head?o:t.moveToLineBoundary(n,e)})}const Ko=t=>Jo(t,!1),_o=t=>Jo(t,!0);function Qo(t){return Math.max(t.defaultLineHeight,Math.min(t.dom.clientHeight,innerHeight)-5)}function Yo(t,e){let{state:n}=t,o=Fe(n.selection,l=>l.empty?t.moveVertically(l,e,Qo(t)):jt(l,e));if(o.eq(n.selection))return!1;let r=t.coordsAtPos(n.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),i;return r&&r.top>s.top&&r.bottom<s.bottom&&r.top-s.top<=t.scrollDOM.scrollHeight-t.scrollDOM.scrollTop-t.scrollDOM.clientHeight&&(i=T.scrollIntoView(o.main.head,{y:"start",yMargin:r.top-s.top})),t.dispatch(ae(n,o),{effects:i}),!0}const Tn=t=>Yo(t,!1),_t=t=>Yo(t,!0);function xe(t,e,n){let o=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,n);if(r.head==e.head&&r.head!=(n?o.to:o.from)&&(r=t.moveToLineBoundary(e,n,!1)),!n&&r.head==o.from&&o.length){let s=/^\s*/.exec(t.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;s&&e.head!=o.from+s&&(r=v.cursor(o.from+s))}return r}const Ji=t=>re(t,e=>xe(t,e,!0)),Ki=t=>re(t,e=>xe(t,e,!1)),_i=t=>re(t,e=>xe(t,e,!V(t))),Qi=t=>re(t,e=>xe(t,e,V(t))),Yi=t=>re(t,e=>v.cursor(t.lineBlockAt(e.head).from,1)),Zi=t=>re(t,e=>v.cursor(t.lineBlockAt(e.head).to,-1));function Xi(t,e,n){let o=!1,r=Fe(t.selection,s=>{let i=we(t,s.head,-1)||we(t,s.head,1)||s.head>0&&we(t,s.head-1,1)||s.head<t.doc.length&&we(t,s.head+1,-1);if(!i||!i.end)return s;o=!0;let l=i.start.from==s.head?i.end.to:i.end.from;return n?v.range(s.anchor,l):v.cursor(l)});return o?(e(ae(t,r)),!0):!1}const el=({state:t,dispatch:e})=>Xi(t,e,!1);function oe(t,e){let n=Fe(t.state.selection,o=>{let r=e(o);return v.range(o.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return n.eq(t.state.selection)?!1:(t.dispatch(ae(t.state,n)),!0)}function Zo(t,e){return oe(t,n=>t.moveByChar(n,e))}const Xo=t=>Zo(t,!V(t)),er=t=>Zo(t,V(t));function tr(t,e){return oe(t,n=>t.moveByGroup(n,e))}const tl=t=>tr(t,!V(t)),nl=t=>tr(t,V(t)),ol=t=>oe(t,e=>kt(t.state,e,!V(t))),rl=t=>oe(t,e=>kt(t.state,e,V(t)));function nr(t,e){return oe(t,n=>t.moveVertically(n,e))}const or=t=>nr(t,!1),rr=t=>nr(t,!0);function sr(t,e){return oe(t,n=>t.moveVertically(n,e,Qo(t)))}const Mn=t=>sr(t,!1),Pn=t=>sr(t,!0),sl=t=>oe(t,e=>xe(t,e,!0)),il=t=>oe(t,e=>xe(t,e,!1)),ll=t=>oe(t,e=>xe(t,e,!V(t))),al=t=>oe(t,e=>xe(t,e,V(t))),cl=t=>oe(t,e=>v.cursor(t.lineBlockAt(e.head).from)),dl=t=>oe(t,e=>v.cursor(t.lineBlockAt(e.head).to)),On=({state:t,dispatch:e})=>(e(ae(t,{anchor:0})),!0),Fn=({state:t,dispatch:e})=>(e(ae(t,{anchor:t.doc.length})),!0),Wn=({state:t,dispatch:e})=>(e(ae(t,{anchor:t.selection.main.anchor,head:0})),!0),Nn=({state:t,dispatch:e})=>(e(ae(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),ul=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),hl=({state:t,dispatch:e})=>{let n=At(t).map(({from:o,to:r})=>v.range(o,Math.min(r+1,t.doc.length)));return e(t.update({selection:v.create(n),userEvent:"select"})),!0},fl=({state:t,dispatch:e})=>{let n=Fe(t.selection,o=>{var r;let s=Oe(t).resolveInner(o.head,1);for(;!(s.from<o.from&&s.to>=o.to||s.to>o.to&&s.from<=o.from||!(!((r=s.parent)===null||r===void 0)&&r.parent));)s=s.parent;return v.range(s.to,s.from)});return e(ae(t,n)),!0},ml=({state:t,dispatch:e})=>{let n=t.selection,o=null;return n.ranges.length>1?o=v.create([n.main]):n.main.empty||(o=v.create([v.cursor(n.main.head)])),o?(e(ae(t,o)),!0):!1};function wt(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:o}=t,r=o.changeByRange(s=>{let{from:i,to:l}=s;if(i==l){let c=e(i);c<i?(n="delete.backward",c=Xe(t,c,!1)):c>i&&(n="delete.forward",c=Xe(t,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=Xe(t,i,!1),l=Xe(t,l,!0);return i==l?{range:s}:{changes:{from:i,to:l},range:v.cursor(i)}});return r.changes.empty?!1:(t.dispatch(o.update(r,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?T.announce.of(o.phrase("Selection deleted")):void 0})),!0)}function Xe(t,e,n){if(t instanceof T)for(let o of t.state.facet(T.atomicRanges).map(r=>r(t)))o.between(e,e,(r,s)=>{r<e&&s>e&&(e=n?s:r)});return e}const ir=(t,e)=>wt(t,n=>{let{state:o}=t,r=o.doc.lineAt(n),s,i;if(!e&&n>r.from&&n<r.from+200&&!/[^ \t]/.test(s=r.text.slice(0,n-r.from))){if(s[s.length-1]==" ")return n-1;let l=Bo(s,o.tabSize),c=l%Vt(o)||Vt(o);for(let u=0;u<c&&s[s.length-1-u]==" ";u++)n--;i=n}else i=Re(r.text,n-r.from,e,e)+r.from,i==n&&r.number!=(e?o.doc.lines:1)&&(i+=e?1:-1);return i}),Qt=t=>ir(t,!1),lr=t=>ir(t,!0),ar=(t,e)=>wt(t,n=>{let o=n,{state:r}=t,s=r.doc.lineAt(o),i=r.charCategorizer(o);for(let l=null;;){if(o==(e?s.to:s.from)){o==n&&s.number!=(e?r.doc.lines:1)&&(o+=e?1:-1);break}let c=Re(s.text,o-s.from,e)+s.from,u=s.text.slice(Math.min(o,c)-s.from,Math.max(o,c)-s.from),d=i(u);if(l!=null&&d!=l)break;(u!=" "||o!=n)&&(l=d),o=c}return o}),cr=t=>ar(t,!1),pl=t=>ar(t,!0),dr=t=>wt(t,e=>{let n=t.lineBlockAt(e).to;return e<n?n:Math.min(t.state.doc.length,e+1)}),gl=t=>wt(t,e=>{let n=t.lineBlockAt(e).from;return e>n?n:Math.max(0,e-1)}),xl=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:Ro.of(["",""])},range:v.cursor(o.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},yl=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(o=>{if(!o.empty||o.from==0||o.from==t.doc.length)return{range:o};let r=o.from,s=t.doc.lineAt(r),i=r==s.from?r-1:Re(s.text,r-s.from,!1)+s.from,l=r==s.to?r+1:Re(s.text,r-s.from,!0)+s.from;return{changes:{from:i,to:l,insert:t.doc.slice(r,l).append(t.doc.slice(i,r))},range:v.cursor(l)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function At(t){let e=[],n=-1;for(let o of t.selection.ranges){let r=t.doc.lineAt(o.from),s=t.doc.lineAt(o.to);if(!o.empty&&o.to==s.from&&(s=t.doc.lineAt(o.to-1)),n>=r.number){let i=e[e.length-1];i.to=s.to,i.ranges.push(o)}else e.push({from:r.from,to:s.to,ranges:[o]});n=s.number+1}return e}function ur(t,e,n){if(t.readOnly)return!1;let o=[],r=[];for(let s of At(t)){if(n?s.to==t.doc.length:s.from==0)continue;let i=t.doc.lineAt(n?s.to+1:s.from-1),l=i.length+1;if(n){o.push({from:s.to,to:i.to},{from:s.from,insert:i.text+t.lineBreak});for(let c of s.ranges)r.push(v.range(Math.min(t.doc.length,c.anchor+l),Math.min(t.doc.length,c.head+l)))}else{o.push({from:i.from,to:s.from},{from:s.to,insert:t.lineBreak+i.text});for(let c of s.ranges)r.push(v.range(c.anchor-l,c.head-l))}}return o.length?(e(t.update({changes:o,scrollIntoView:!0,selection:v.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const bl=({state:t,dispatch:e})=>ur(t,e,!1),vl=({state:t,dispatch:e})=>ur(t,e,!0);function hr(t,e,n){if(t.readOnly)return!1;let o=[];for(let r of At(t))n?o.push({from:r.from,insert:t.doc.slice(r.from,r.to)+t.lineBreak}):o.push({from:r.to,insert:t.lineBreak+t.doc.slice(r.from,r.to)});return e(t.update({changes:o,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Cl=({state:t,dispatch:e})=>hr(t,e,!1),Sl=({state:t,dispatch:e})=>hr(t,e,!0),jl=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(At(e).map(({from:r,to:s})=>(r>0?r--:s<e.doc.length&&s++,{from:r,to:s}))),o=Fe(e.selection,r=>t.moveVertically(r,!0)).map(n);return t.dispatch({changes:n,selection:o,scrollIntoView:!0,userEvent:"delete.line"}),!0};function kl(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=Oe(t).resolveInner(e),o=n.childBefore(e),r=n.childAfter(e),s;return o&&r&&o.to<=e&&r.from>=e&&(s=o.type.prop(qt.closedBy))&&s.indexOf(r.name)>-1&&t.doc.lineAt(o.to).from==t.doc.lineAt(r.from).from?{from:o.to,to:r.from}:null}const wl=fr(!1),Al=fr(!0);function fr(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let o=e.changeByRange(r=>{let{from:s,to:i}=r,l=e.doc.lineAt(s),c=!t&&s==i&&kl(e,s);t&&(s=i=(i<=l.to?l:e.doc.lineAt(i)).to);let u=new Io(e,{simulateBreak:s,simulateDoubleBreak:!!c}),d=Lo(u,s);for(d==null&&(d=/^\s*/.exec(e.doc.lineAt(s).text)[0].length);i<l.to&&/\s/.test(l.text[i-l.from]);)i++;c?{from:s,to:i}=c:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let h=["",st(e,d)];return c&&h.push(st(e,u.lineIndent(l.from,-1))),{changes:{from:s,to:i,insert:Ro.of(h)},range:v.cursor(s+1+h[1].length)}});return n(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0}}function pn(t,e){let n=-1;return t.changeByRange(o=>{let r=[];for(let i=o.from;i<=o.to;){let l=t.doc.lineAt(i);l.number>n&&(o.empty||o.to>l.from)&&(e(l,r,o),n=l.number),i=l.to+1}let s=t.changes(r);return{changes:r,range:v.range(s.mapPos(o.anchor,1),s.mapPos(o.head,1))}})}const El=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),o=new Io(t,{overrideIndentation:s=>{let i=n[s];return i??-1}}),r=pn(t,(s,i,l)=>{let c=Lo(o,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let u=/^\s*/.exec(s.text)[0],d=st(t,c);(u!=d||l.from<s.from+u.length)&&(n[s.from]=c,i.push({from:s.from,to:s.from+u.length,insert:d}))});return r.changes.empty||e(t.update(r,{userEvent:"indent"})),!0},mr=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(pn(t,(n,o)=>{o.push({from:n.from,insert:t.facet(Do)})}),{userEvent:"input.indent"})),!0),pr=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(pn(t,(n,o)=>{let r=/^\s*/.exec(n.text)[0];if(!r)return;let s=Bo(r,t.tabSize),i=0,l=st(t,Math.max(0,s-Vt(t)));for(;i<r.length&&i<l.length&&r.charCodeAt(i)==l.charCodeAt(i);)i++;o.push({from:n.from+i,to:n.from+r.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0),Il=[{key:"Ctrl-b",run:Vo,shift:Xo,preventDefault:!0},{key:"Ctrl-f",run:qo,shift:er},{key:"Ctrl-p",run:Ko,shift:or},{key:"Ctrl-n",run:_o,shift:rr},{key:"Ctrl-a",run:Yi,shift:cl},{key:"Ctrl-e",run:Zi,shift:dl},{key:"Ctrl-d",run:lr},{key:"Ctrl-h",run:Qt},{key:"Ctrl-k",run:dr},{key:"Ctrl-Alt-h",run:cr},{key:"Ctrl-o",run:xl},{key:"Ctrl-t",run:yl},{key:"Ctrl-v",run:_t}],Ll=[{key:"ArrowLeft",run:Vo,shift:Xo,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Hi,shift:tl,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:_i,shift:ll,preventDefault:!0},{key:"ArrowRight",run:qo,shift:er,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:zi,shift:nl,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Qi,shift:al,preventDefault:!0},{key:"ArrowUp",run:Ko,shift:or,preventDefault:!0},{mac:"Cmd-ArrowUp",run:On,shift:Wn},{mac:"Ctrl-ArrowUp",run:Tn,shift:Mn},{key:"ArrowDown",run:_o,shift:rr,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Fn,shift:Nn},{mac:"Ctrl-ArrowDown",run:_t,shift:Pn},{key:"PageUp",run:Tn,shift:Mn},{key:"PageDown",run:_t,shift:Pn},{key:"Home",run:Ki,shift:il,preventDefault:!0},{key:"Mod-Home",run:On,shift:Wn},{key:"End",run:Ji,shift:sl,preventDefault:!0},{key:"Mod-End",run:Fn,shift:Nn},{key:"Enter",run:wl},{key:"Mod-a",run:ul},{key:"Backspace",run:Qt,shift:Qt},{key:"Delete",run:lr},{key:"Mod-Backspace",mac:"Alt-Backspace",run:cr},{key:"Mod-Delete",mac:"Alt-Delete",run:pl},{mac:"Mod-Backspace",run:gl},{mac:"Mod-Delete",run:dr}].concat(Il.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),Rl=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:qi,shift:ol},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Gi,shift:rl},{key:"Alt-ArrowUp",run:bl},{key:"Shift-Alt-ArrowUp",run:Cl},{key:"Alt-ArrowDown",run:vl},{key:"Shift-Alt-ArrowDown",run:Sl},{key:"Escape",run:ml},{key:"Mod-Enter",run:Al},{key:"Alt-l",mac:"Ctrl-l",run:hl},{key:"Mod-i",run:fl,preventDefault:!0},{key:"Mod-[",run:pr},{key:"Mod-]",run:mr},{key:"Mod-Alt-\\",run:El},{key:"Shift-Mod-k",run:jl},{key:"Shift-Mod-\\",run:el},{key:"Mod-/",run:Si},{key:"Alt-A",run:ki}].concat(Ll),Dl={key:"Tab",run:mr,shift:pr},$n=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class De{constructor(e,n,o=0,r=e.length,s,i){this.test=i,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(o,r),this.bufferStart=o,this.normalize=s?l=>s($n(l)):$n,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return X(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=an(e),o=this.bufferStart+this.bufferPos;this.bufferPos+=ie(e);let r=this.normalize(n);for(let s=0,i=o;;s++){let l=r.charCodeAt(s),c=this.match(l,i);if(c)return this.value=c,this;if(s==r.length-1)break;i==o&&s<n.length&&n.charCodeAt(s)==l&&i++}}}match(e,n){let o=null;for(let r=0;r<this.matches.length;r+=2){let s=this.matches[r],i=!1;this.query.charCodeAt(s)==e&&(s==this.query.length-1?o={from:this.matches[r+1],to:n+1}:(this.matches[r]++,i=!0)),i||(this.matches.splice(r,2),r-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:n,to:n+1}:this.matches.push(1,n)),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferPos)&&(o=null),o}}typeof Symbol<"u"&&(De.prototype[Symbol.iterator]=function(){return this});const gr={from:-1,to:-1,match:/.*/.exec("")},gn="gm"+(/x/.unicode==null?"":"u");class xr{constructor(e,n,o,r=0,s=e.length){if(this.text=e,this.to=s,this.curLine="",this.done=!1,this.value=gr,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new yr(e,n,o,r,s);this.re=new RegExp(n,gn+(o!=null&&o.ignoreCase?"i":"")),this.test=o==null?void 0:o.test,this.iter=e.iter();let i=e.lineAt(r);this.curLineStart=i.from,this.matchPos=at(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let o=this.curLineStart+n.index,r=o+n[0].length;if(this.matchPos=at(this.text,r+(o==r?1:0)),o==this.curLineStart+this.curLine.length&&this.nextLine(),(o<r||o>this.value.to)&&(!this.test||this.test(o,r,n)))return this.value={from:o,to:r,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const Tt=new WeakMap;class Le{constructor(e,n){this.from=e,this.text=n}get to(){return this.from+this.text.length}static get(e,n,o){let r=Tt.get(e);if(!r||r.from>=o||r.to<=n){let l=new Le(n,e.sliceString(n,o));return Tt.set(e,l),l}if(r.from==n&&r.to==o)return r;let{text:s,from:i}=r;return i>n&&(s=e.sliceString(n,i)+s,i=n),r.to<o&&(s+=e.sliceString(r.to,o)),Tt.set(e,new Le(i,s)),new Le(n,s.slice(n-i,o-i))}}class yr{constructor(e,n,o,r,s){this.text=e,this.to=s,this.done=!1,this.value=gr,this.matchPos=at(e,r),this.re=new RegExp(n,gn+(o!=null&&o.ignoreCase?"i":"")),this.test=o==null?void 0:o.test,this.flat=Le.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let o=this.flat.from+n.index,r=o+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(o,r,n)))return this.value={from:o,to:r,match:n},this.matchPos=at(this.text,r+(o==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Le.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(xr.prototype[Symbol.iterator]=yr.prototype[Symbol.iterator]=function(){return this});function Bl(t){try{return new RegExp(t,gn),!0}catch{return!1}}function at(t,e){if(e>=t.length)return e;let n=t.lineAt(e),o;for(;e<n.to&&(o=n.text.charCodeAt(e-n.from))>=56320&&o<57344;)e++;return e}function Yt(t){let e=B("input",{class:"cm-textfield",name:"line"}),n=B("form",{class:"cm-gotoLine",onkeydown:r=>{r.keyCode==27?(r.preventDefault(),t.dispatch({effects:ct.of(!1)}),t.focus()):r.keyCode==13&&(r.preventDefault(),o())},onsubmit:r=>{r.preventDefault(),o()}},B("label",t.state.phrase("Go to line"),": ",e)," ",B("button",{class:"cm-button",type:"submit"},t.state.phrase("go")));function o(){let r=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!r)return;let{state:s}=t,i=s.doc.lineAt(s.selection.main.head),[,l,c,u,d]=r,h=u?+u.slice(1):0,f=c?+c:i.number;if(c&&d){let b=f/100;l&&(b=b*(l=="-"?-1:1)+i.number/s.doc.lines),f=Math.round(s.doc.lines*b)}else c&&l&&(f=f*(l=="-"?-1:1)+i.number);let p=s.doc.line(Math.max(1,Math.min(s.doc.lines,f)));t.dispatch({effects:ct.of(!1),selection:v.cursor(p.from+Math.max(0,Math.min(h,p.length))),scrollIntoView:!0}),t.focus()}return{dom:n}}const ct=H.define(),Un=Pe.define({create(){return!0},update(t,e){for(let n of e.effects)n.is(ct)&&(t=n.value);return t},provide:t=>cn.from(t,e=>e?Yt:null)}),Tl=t=>{let e=Ve(t,Yt);if(!e){let n=[ct.of(!0)];t.state.field(Un,!1)==null&&n.push(H.appendConfig.of([Un,Ml])),t.dispatch({effects:n}),e=Ve(t,Yt)}return e&&e.dom.querySelector("input").focus(),!0},Ml=T.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Pl={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},br=Me.define({combine(t){return _e(t,Pl,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function Ol(t){let e=[Ul,$l];return t&&e.push(br.of(t)),e}const Fl=F.mark({class:"cm-selectionMatch"}),Wl=F.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Hn(t,e,n,o){return(n==0||t(e.sliceDoc(n-1,n))!=J.Word)&&(o==e.doc.length||t(e.sliceDoc(o,o+1))!=J.Word)}function Nl(t,e,n,o){return t(e.sliceDoc(n,n+1))==J.Word&&t(e.sliceDoc(o-1,o))==J.Word}const $l=vt.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(br),{state:n}=t,o=n.selection;if(o.ranges.length>1)return F.none;let r=o.main,s,i=null;if(r.empty){if(!e.highlightWordAroundCursor)return F.none;let c=n.wordAt(r.head);if(!c)return F.none;i=n.charCategorizer(r.head),s=n.sliceDoc(c.from,c.to)}else{let c=r.to-r.from;if(c<e.minSelectionLength||c>200)return F.none;if(e.wholeWords){if(s=n.sliceDoc(r.from,r.to),i=n.charCategorizer(r.head),!(Hn(i,n,r.from,r.to)&&Nl(i,n,r.from,r.to)))return F.none}else if(s=n.sliceDoc(r.from,r.to).trim(),!s)return F.none}let l=[];for(let c of t.visibleRanges){let u=new De(n.doc,s,c.from,c.to);for(;!u.next().done;){let{from:d,to:h}=u.value;if((!i||Hn(i,n,d,h))&&(r.empty&&d<=r.from&&h>=r.to?l.push(Wl.range(d,h)):(d>=r.to||h<=r.from)&&l.push(Fl.range(d,h)),l.length>e.maxMatches))return F.none}}return F.set(l)}},{decorations:t=>t.decorations}),Ul=T.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Hl=({state:t,dispatch:e})=>{let{selection:n}=t,o=v.create(n.ranges.map(r=>t.wordAt(r.head)||v.cursor(r.head)),n.mainIndex);return o.eq(n)?!1:(e(t.update({selection:o})),!0)};function zl(t,e){let{main:n,ranges:o}=t.selection,r=t.wordAt(n.head),s=r&&r.from==n.from&&r.to==n.to;for(let i=!1,l=new De(t.doc,e,o[o.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new De(t.doc,e,0,Math.max(0,o[o.length-1].from-1)),i=!0}else{if(i&&o.some(c=>c.from==l.value.from))continue;if(s){let c=t.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const Vl=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(s=>s.from===s.to))return Hl({state:t,dispatch:e});let o=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(s=>t.sliceDoc(s.from,s.to)!=o))return!1;let r=zl(t,o);return r?(e(t.update({selection:t.selection.addRange(v.range(r.from,r.to),!1),effects:T.scrollIntoView(r.to)})),!0):!1},xn=Me.define({combine(t){return _e(t,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new na(e)})}});class vr{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Bl(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,o)=>o=="n"?`
|
|
1
|
+
import{c as Ke,j as a,u as es,g as ts,r as x,_ as go,s as j,U as ns,a as N,B as E,C as S,d as os,E as rs,b as xo,e as ss,f as $e,T as M,F as is,I as ls,S as as,M as cs,h as tn,p as En,i as In,k as Ue,A as Ut,l as ds,m as us,n as hs,o as fs,q as ms,t as Ln,v as ps,w as gs,x as Ce,D as xs,P as ys,y as yo,z as bs,G as Ie,H as vs,J as ze,K as ge,L as bo,N as nn,O as vo,Q as Cs,R as Ht,V as ot,W as zt,X as Ss,Y as js,Z as ks,$ as Co,a0 as on,a1 as xt,a2 as ws,a3 as G,a4 as yt,a5 as As,a6 as Es,a7 as Is,a8 as Ls,a9 as Rs,aa as Ds,ab as Rn,ac as So,ad as rn,ae as sn,af as jo,ag as ln,ah as ko,ai as wo,aj as Ao,ak as Eo,al as Bs,am as Dn,an as Ts,ao as Ms,ap as Rt,aq as Ps,ar as Os,as as Fs,at as Ws,au as Ns,av as $s}from"./index-Hq7UZWFv.js";import{E as T,F as Me,c as _e,S as Pe,a as v,T as Dt,C as Us,b as Hs,I as Io,g as Lo,i as st,d as Ro,e as Do,f as Bo,h as Vt,A as bt,j as H,m as we,s as Oe,N as qt,D as To,k as Re,V as vt,l as F,n as X,o as ie,p as Ve,q as J,P as Mo,r as an,t as cn,u as B,v as qe,R as zs,w as Vs,x as dn,y as qs,z as Gs,B as it,M as Js,G as Ks,H as Bn,J as _s,W as Qs,K as Ys,L as Zs,O as Xs,Q as ei,U as ti,X as ni,Y as oi,Z as ri,_ as un,$ as si,a0 as ii,a1 as li,a2 as ai,a3 as ci,a4 as Po,a5 as m,a6 as di,a7 as ui}from"./index-TzAeUmk4.js";import{u as hi}from"./useApiTokens-1ljBsqm7.js";import{S as fi}from"./StrategyItemContainer-qEJ1Y7Pl.js";const Ct=Ke(a.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"),mi=Ke(a.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"),pi=Ke(a.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"),gi=Ke(a.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"),xi=Ke(a.jsx("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"WarningOutlined"),yi=()=>{const{makeRequest:t,createRequest:e,errors:n,loading:o}=es({propagateErrors:!0}),r="api/admin/playground";return{evaluateAdvancedPlayground:async i=>{const l=`${r}/advanced`,c=e(l,{method:"POST",body:JSON.stringify(i)});return(await t(c.caller,c.id)).json()},errors:n,loading:o}};var hn={exports:{}};function Oo(t,e=100,n={}){if(typeof t!="function")throw new TypeError(`Expected the first parameter to be a function, got \`${typeof t}\`.`);if(e<0)throw new RangeError("`wait` must not be negative.");const{immediate:o}=typeof n=="boolean"?{immediate:n}:n;let r,s,i,l,c;function u(){const h=Date.now()-l;if(h<e&&h>=0)i=setTimeout(u,e-h);else if(i=void 0,!o){const f=r,p=s;r=void 0,s=void 0,c=t.apply(f,p)}}const d=function(...h){if(r&&this!==r)throw new Error("Debounced method called with different contexts.");r=this,s=h,l=Date.now();const f=o&&!i;if(i||(i=setTimeout(u,e)),f){const p=r,b=s;r=void 0,s=void 0,c=t.apply(p,b)}return c};return d.clear=()=>{i&&(clearTimeout(i),i=void 0)},d.flush=()=>{if(!i)return;const h=r,f=s;r=void 0,s=void 0,c=t.apply(h,f),clearTimeout(i),i=void 0},d}hn.exports.debounce=Oo;hn.exports=Oo;var bi=hn.exports;const vi=ts(bi);function Gt(){return Gt=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t},Gt.apply(this,arguments)}function Ci(t,e){if(t==null)return{};var n={},o=Object.keys(t),r,s;for(s=0;s<o.length;s++)r=o[s],!(e.indexOf(r)>=0)&&(n[r]=t[r]);return n}const Si=t=>{let e=mn(t.state);return e.line?ji(t):e.block?wi(t):!1};function fn(t,e){return({state:n,dispatch:o})=>{if(n.readOnly)return!1;let r=t(e,n);return r?(o(n.update(r)),!0):!1}}const ji=fn(Ii,0),ki=fn(Fo,0),wi=fn((t,e)=>Fo(t,e,Ei(e)),0);function mn(t,e=t.selection.main.head){let n=t.languageDataAt("commentTokens",e);return n.length?n[0]:{}}const We=50;function Ai(t,{open:e,close:n},o,r){let s=t.sliceDoc(o-We,o),i=t.sliceDoc(r,r+We),l=/\s*$/.exec(s)[0].length,c=/^\s*/.exec(i)[0].length,u=s.length-l;if(s.slice(u-e.length,u)==e&&i.slice(c,c+n.length)==n)return{open:{pos:o-l,margin:l&&1},close:{pos:r+c,margin:c&&1}};let d,h;r-o<=2*We?d=h=t.sliceDoc(o,r):(d=t.sliceDoc(o,o+We),h=t.sliceDoc(r-We,r));let f=/^\s*/.exec(d)[0].length,p=/\s*$/.exec(h)[0].length,b=h.length-p-n.length;return d.slice(f,f+e.length)==e&&h.slice(b,b+n.length)==n?{open:{pos:o+f+e.length,margin:/\s/.test(d.charAt(f+e.length))?1:0},close:{pos:r-p-n.length,margin:/\s/.test(h.charAt(b-1))?1:0}}:null}function Ei(t){let e=[];for(let n of t.selection.ranges){let o=t.doc.lineAt(n.from),r=n.to<=o.to?o:t.doc.lineAt(n.to),s=e.length-1;s>=0&&e[s].to>o.from?e[s].to=r.to:e.push({from:o.from,to:r.to})}return e}function Fo(t,e,n=e.selection.ranges){let o=n.map(s=>mn(e,s.from).block);if(!o.every(s=>s))return null;let r=n.map((s,i)=>Ai(e,o[i],s.from,s.to));if(t!=2&&!r.every(s=>s))return{changes:e.changes(n.map((s,i)=>r[i]?[]:[{from:s.from,insert:o[i].open+" "},{from:s.to,insert:" "+o[i].close}]))};if(t!=1&&r.some(s=>s)){let s=[];for(let i=0,l;i<r.length;i++)if(l=r[i]){let c=o[i],{open:u,close:d}=l;s.push({from:u.pos-c.open.length,to:u.pos+u.margin},{from:d.pos-d.margin,to:d.pos+c.close.length})}return{changes:s}}return null}function Ii(t,e,n=e.selection.ranges){let o=[],r=-1;for(let{from:s,to:i}of n){let l=o.length,c=1e9;for(let u=s;u<=i;){let d=e.doc.lineAt(u);if(d.from>r&&(s==i||i>d.from)){r=d.from;let h=mn(e,u).line;if(!h)continue;let f=/^\s*/.exec(d.text)[0].length,p=f==d.length,b=d.text.slice(f,f+h.length)==h?f:-1;f<d.text.length&&f<c&&(c=f),o.push({line:d,comment:b,token:h,indent:f,empty:p,single:!1})}u=d.to+1}if(c<1e9)for(let u=l;u<o.length;u++)o[u].indent<o[u].line.text.length&&(o[u].indent=c);o.length==l+1&&(o[l].single=!0)}if(t!=2&&o.some(s=>s.comment<0&&(!s.empty||s.single))){let s=[];for(let{line:l,token:c,indent:u,empty:d,single:h}of o)(h||!d)&&s.push({from:l.from+u,insert:c+" "});let i=e.changes(s);return{changes:i,selection:e.selection.map(i,1)}}else if(t!=1&&o.some(s=>s.comment>=0)){let s=[];for(let{line:i,comment:l,token:c}of o)if(l>=0){let u=i.from+l,d=u+c.length;i.text[d-i.from]==" "&&d++,s.push({from:u,to:d})}return{changes:s}}return null}const Jt=bt.define(),Li=bt.define(),Ri=Me.define(),Wo=Me.define({combine(t){return _e(t,{minDepth:100,newGroupDelay:500},{minDepth:Math.max,newGroupDelay:Math.min})}});function Di(t){let e=0;return t.iterChangedRanges((n,o)=>e=o),e}const No=Pe.define({create(){return le.empty},update(t,e){let n=e.state.facet(Wo),o=e.annotation(Jt);if(o){let c=e.docChanged?v.single(Di(e.changes)):void 0,u=_.fromTransaction(e,c),d=o.side,h=d==0?t.undone:t.done;return u?h=lt(h,h.length,n.minDepth,u):h=Ho(h,e.startState.selection),new le(d==0?o.rest:h,d==0?h:o.rest)}let r=e.annotation(Li);if((r=="full"||r=="before")&&(t=t.isolate()),e.annotation(Dt.addToHistory)===!1)return e.changes.empty?t:t.addMapping(e.changes.desc);let s=_.fromTransaction(e),i=e.annotation(Dt.time),l=e.annotation(Dt.userEvent);return s?t=t.addChanges(s,i,l,n.newGroupDelay,n.minDepth):e.selection&&(t=t.addSelection(e.startState.selection,i,l,n.newGroupDelay)),(r=="full"||r=="after")&&(t=t.isolate()),t},toJSON(t){return{done:t.done.map(e=>e.toJSON()),undone:t.undone.map(e=>e.toJSON())}},fromJSON(t){return new le(t.done.map(_.fromJSON),t.undone.map(_.fromJSON))}});function Bi(t={}){return[No,Wo.of(t),T.domEventHandlers({beforeinput(e,n){let o=e.inputType=="historyUndo"?$o:e.inputType=="historyRedo"?Kt:null;return o?(e.preventDefault(),o(n)):!1}})]}function St(t,e){return function({state:n,dispatch:o}){if(!e&&n.readOnly)return!1;let r=n.field(No,!1);if(!r)return!1;let s=r.pop(t,n,e);return s?(o(s),!0):!1}}const $o=St(0,!1),Kt=St(1,!1),Ti=St(0,!0),Mi=St(1,!0);class _{constructor(e,n,o,r,s){this.changes=e,this.effects=n,this.mapped=o,this.startSelection=r,this.selectionsAfter=s}setSelAfter(e){return new _(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,n,o;return{changes:(e=this.changes)===null||e===void 0?void 0:e.toJSON(),mapped:(n=this.mapped)===null||n===void 0?void 0:n.toJSON(),startSelection:(o=this.startSelection)===null||o===void 0?void 0:o.toJSON(),selectionsAfter:this.selectionsAfter.map(r=>r.toJSON())}}static fromJSON(e){return new _(e.changes&&Us.fromJSON(e.changes),[],e.mapped&&Hs.fromJSON(e.mapped),e.startSelection&&v.fromJSON(e.startSelection),e.selectionsAfter.map(v.fromJSON))}static fromTransaction(e,n){let o=te;for(let r of e.startState.facet(Ri)){let s=r(e);s.length&&(o=o.concat(s))}return!o.length&&e.changes.empty?null:new _(e.changes.invert(e.startState.doc),o,void 0,n||e.startState.selection,te)}static selection(e){return new _(void 0,te,void 0,void 0,e)}}function lt(t,e,n,o){let r=e+1>n+20?e-n-1:0,s=t.slice(r,e);return s.push(o),s}function Pi(t,e){let n=[],o=!1;return t.iterChangedRanges((r,s)=>n.push(r,s)),e.iterChangedRanges((r,s,i,l)=>{for(let c=0;c<n.length;){let u=n[c++],d=n[c++];l>=u&&i<=d&&(o=!0)}}),o}function Oi(t,e){return t.ranges.length==e.ranges.length&&t.ranges.filter((n,o)=>n.empty!=e.ranges[o].empty).length===0}function Uo(t,e){return t.length?e.length?t.concat(e):t:e}const te=[],Fi=200;function Ho(t,e){if(t.length){let n=t[t.length-1],o=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-Fi));return o.length&&o[o.length-1].eq(e)?t:(o.push(e),lt(t,t.length-1,1e9,n.setSelAfter(o)))}else return[_.selection([e])]}function Wi(t){let e=t[t.length-1],n=t.slice();return n[t.length-1]=e.setSelAfter(e.selectionsAfter.slice(0,e.selectionsAfter.length-1)),n}function Bt(t,e){if(!t.length)return t;let n=t.length,o=te;for(;n;){let r=Ni(t[n-1],e,o);if(r.changes&&!r.changes.empty||r.effects.length){let s=t.slice(0,n);return s[n-1]=r,s}else e=r.mapped,n--,o=r.selectionsAfter}return o.length?[_.selection(o)]:te}function Ni(t,e,n){let o=Uo(t.selectionsAfter.length?t.selectionsAfter.map(l=>l.map(e)):te,n);if(!t.changes)return _.selection(o);let r=t.changes.map(e),s=e.mapDesc(t.changes,!0),i=t.mapped?t.mapped.composeDesc(s):s;return new _(r,H.mapEffects(t.effects,e),i,t.startSelection.map(s),o)}const $i=/^(input\.type|delete)($|\.)/;class le{constructor(e,n,o=0,r=void 0){this.done=e,this.undone=n,this.prevTime=o,this.prevUserEvent=r}isolate(){return this.prevTime?new le(this.done,this.undone):this}addChanges(e,n,o,r,s){let i=this.done,l=i[i.length-1];return l&&l.changes&&!l.changes.empty&&e.changes&&(!o||$i.test(o))&&(!l.selectionsAfter.length&&n-this.prevTime<r&&Pi(l.changes,e.changes)||o=="input.type.compose")?i=lt(i,i.length-1,s,new _(e.changes.compose(l.changes),Uo(e.effects,l.effects),l.mapped,l.startSelection,te)):i=lt(i,i.length,s,e),new le(i,te,n,o)}addSelection(e,n,o,r){let s=this.done.length?this.done[this.done.length-1].selectionsAfter:te;return s.length>0&&n-this.prevTime<r&&o==this.prevUserEvent&&o&&/^select($|\.)/.test(o)&&Oi(s[s.length-1],e)?this:new le(Ho(this.done,e),this.undone,n,o)}addMapping(e){return new le(Bt(this.done,e),Bt(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,n,o){let r=e==0?this.done:this.undone;if(r.length==0)return null;let s=r[r.length-1];if(o&&s.selectionsAfter.length)return n.update({selection:s.selectionsAfter[s.selectionsAfter.length-1],annotations:Jt.of({side:e,rest:Wi(r)}),userEvent:e==0?"select.undo":"select.redo",scrollIntoView:!0});if(s.changes){let i=r.length==1?te:r.slice(0,r.length-1);return s.mapped&&(i=Bt(i,s.mapped)),n.update({changes:s.changes,selection:s.startSelection,effects:s.effects,annotations:Jt.of({side:e,rest:i}),filter:!1,userEvent:e==0?"undo":"redo",scrollIntoView:!0})}else return null}}le.empty=new le(te,te);const Ui=[{key:"Mod-z",run:$o,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:Kt,preventDefault:!0},{linux:"Ctrl-Shift-z",run:Kt,preventDefault:!0},{key:"Mod-u",run:Ti,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:Mi,preventDefault:!0}];function Fe(t,e){return v.create(t.ranges.map(e),t.mainIndex)}function ae(t,e){return t.update({selection:e,scrollIntoView:!0,userEvent:"select"})}function re({state:t,dispatch:e},n){let o=Fe(t.selection,n);return o.eq(t.selection)?!1:(e(ae(t,o)),!0)}function jt(t,e){return v.cursor(e?t.to:t.from)}function zo(t,e){return re(t,n=>n.empty?t.moveByChar(n,e):jt(n,e))}function V(t){return t.textDirectionAt(t.state.selection.main.head)==To.LTR}const Vo=t=>zo(t,!V(t)),qo=t=>zo(t,V(t));function Go(t,e){return re(t,n=>n.empty?t.moveByGroup(n,e):jt(n,e))}const Hi=t=>Go(t,!V(t)),zi=t=>Go(t,V(t));function Vi(t,e,n){if(e.type.prop(n))return!0;let o=e.to-e.from;return o&&(o>2||/[^\s,.;:]/.test(t.sliceDoc(e.from,e.to)))||e.firstChild}function kt(t,e,n){let o=Oe(t).resolveInner(e.head),r=n?qt.closedBy:qt.openedBy;for(let c=e.head;;){let u=n?o.childAfter(c):o.childBefore(c);if(!u)break;Vi(t,u,r)?o=u:c=n?u.to:u.from}let s=o.type.prop(r),i,l;return s&&(i=n?we(t,o.from,1):we(t,o.to,-1))&&i.matched?l=n?i.end.to:i.end.from:l=n?o.to:o.from,v.cursor(l,n?-1:1)}const qi=t=>re(t,e=>kt(t.state,e,!V(t))),Gi=t=>re(t,e=>kt(t.state,e,V(t)));function Jo(t,e){return re(t,n=>{if(!n.empty)return jt(n,e);let o=t.moveVertically(n,e);return o.head!=n.head?o:t.moveToLineBoundary(n,e)})}const Ko=t=>Jo(t,!1),_o=t=>Jo(t,!0);function Qo(t){return Math.max(t.defaultLineHeight,Math.min(t.dom.clientHeight,innerHeight)-5)}function Yo(t,e){let{state:n}=t,o=Fe(n.selection,l=>l.empty?t.moveVertically(l,e,Qo(t)):jt(l,e));if(o.eq(n.selection))return!1;let r=t.coordsAtPos(n.selection.main.head),s=t.scrollDOM.getBoundingClientRect(),i;return r&&r.top>s.top&&r.bottom<s.bottom&&r.top-s.top<=t.scrollDOM.scrollHeight-t.scrollDOM.scrollTop-t.scrollDOM.clientHeight&&(i=T.scrollIntoView(o.main.head,{y:"start",yMargin:r.top-s.top})),t.dispatch(ae(n,o),{effects:i}),!0}const Tn=t=>Yo(t,!1),_t=t=>Yo(t,!0);function xe(t,e,n){let o=t.lineBlockAt(e.head),r=t.moveToLineBoundary(e,n);if(r.head==e.head&&r.head!=(n?o.to:o.from)&&(r=t.moveToLineBoundary(e,n,!1)),!n&&r.head==o.from&&o.length){let s=/^\s*/.exec(t.state.sliceDoc(o.from,Math.min(o.from+100,o.to)))[0].length;s&&e.head!=o.from+s&&(r=v.cursor(o.from+s))}return r}const Ji=t=>re(t,e=>xe(t,e,!0)),Ki=t=>re(t,e=>xe(t,e,!1)),_i=t=>re(t,e=>xe(t,e,!V(t))),Qi=t=>re(t,e=>xe(t,e,V(t))),Yi=t=>re(t,e=>v.cursor(t.lineBlockAt(e.head).from,1)),Zi=t=>re(t,e=>v.cursor(t.lineBlockAt(e.head).to,-1));function Xi(t,e,n){let o=!1,r=Fe(t.selection,s=>{let i=we(t,s.head,-1)||we(t,s.head,1)||s.head>0&&we(t,s.head-1,1)||s.head<t.doc.length&&we(t,s.head+1,-1);if(!i||!i.end)return s;o=!0;let l=i.start.from==s.head?i.end.to:i.end.from;return n?v.range(s.anchor,l):v.cursor(l)});return o?(e(ae(t,r)),!0):!1}const el=({state:t,dispatch:e})=>Xi(t,e,!1);function oe(t,e){let n=Fe(t.state.selection,o=>{let r=e(o);return v.range(o.anchor,r.head,r.goalColumn,r.bidiLevel||void 0)});return n.eq(t.state.selection)?!1:(t.dispatch(ae(t.state,n)),!0)}function Zo(t,e){return oe(t,n=>t.moveByChar(n,e))}const Xo=t=>Zo(t,!V(t)),er=t=>Zo(t,V(t));function tr(t,e){return oe(t,n=>t.moveByGroup(n,e))}const tl=t=>tr(t,!V(t)),nl=t=>tr(t,V(t)),ol=t=>oe(t,e=>kt(t.state,e,!V(t))),rl=t=>oe(t,e=>kt(t.state,e,V(t)));function nr(t,e){return oe(t,n=>t.moveVertically(n,e))}const or=t=>nr(t,!1),rr=t=>nr(t,!0);function sr(t,e){return oe(t,n=>t.moveVertically(n,e,Qo(t)))}const Mn=t=>sr(t,!1),Pn=t=>sr(t,!0),sl=t=>oe(t,e=>xe(t,e,!0)),il=t=>oe(t,e=>xe(t,e,!1)),ll=t=>oe(t,e=>xe(t,e,!V(t))),al=t=>oe(t,e=>xe(t,e,V(t))),cl=t=>oe(t,e=>v.cursor(t.lineBlockAt(e.head).from)),dl=t=>oe(t,e=>v.cursor(t.lineBlockAt(e.head).to)),On=({state:t,dispatch:e})=>(e(ae(t,{anchor:0})),!0),Fn=({state:t,dispatch:e})=>(e(ae(t,{anchor:t.doc.length})),!0),Wn=({state:t,dispatch:e})=>(e(ae(t,{anchor:t.selection.main.anchor,head:0})),!0),Nn=({state:t,dispatch:e})=>(e(ae(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0),ul=({state:t,dispatch:e})=>(e(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0),hl=({state:t,dispatch:e})=>{let n=At(t).map(({from:o,to:r})=>v.range(o,Math.min(r+1,t.doc.length)));return e(t.update({selection:v.create(n),userEvent:"select"})),!0},fl=({state:t,dispatch:e})=>{let n=Fe(t.selection,o=>{var r;let s=Oe(t).resolveInner(o.head,1);for(;!(s.from<o.from&&s.to>=o.to||s.to>o.to&&s.from<=o.from||!(!((r=s.parent)===null||r===void 0)&&r.parent));)s=s.parent;return v.range(s.to,s.from)});return e(ae(t,n)),!0},ml=({state:t,dispatch:e})=>{let n=t.selection,o=null;return n.ranges.length>1?o=v.create([n.main]):n.main.empty||(o=v.create([v.cursor(n.main.head)])),o?(e(ae(t,o)),!0):!1};function wt(t,e){if(t.state.readOnly)return!1;let n="delete.selection",{state:o}=t,r=o.changeByRange(s=>{let{from:i,to:l}=s;if(i==l){let c=e(i);c<i?(n="delete.backward",c=Xe(t,c,!1)):c>i&&(n="delete.forward",c=Xe(t,c,!0)),i=Math.min(i,c),l=Math.max(l,c)}else i=Xe(t,i,!1),l=Xe(t,l,!0);return i==l?{range:s}:{changes:{from:i,to:l},range:v.cursor(i)}});return r.changes.empty?!1:(t.dispatch(o.update(r,{scrollIntoView:!0,userEvent:n,effects:n=="delete.selection"?T.announce.of(o.phrase("Selection deleted")):void 0})),!0)}function Xe(t,e,n){if(t instanceof T)for(let o of t.state.facet(T.atomicRanges).map(r=>r(t)))o.between(e,e,(r,s)=>{r<e&&s>e&&(e=n?s:r)});return e}const ir=(t,e)=>wt(t,n=>{let{state:o}=t,r=o.doc.lineAt(n),s,i;if(!e&&n>r.from&&n<r.from+200&&!/[^ \t]/.test(s=r.text.slice(0,n-r.from))){if(s[s.length-1]==" ")return n-1;let l=Bo(s,o.tabSize),c=l%Vt(o)||Vt(o);for(let u=0;u<c&&s[s.length-1-u]==" ";u++)n--;i=n}else i=Re(r.text,n-r.from,e,e)+r.from,i==n&&r.number!=(e?o.doc.lines:1)&&(i+=e?1:-1);return i}),Qt=t=>ir(t,!1),lr=t=>ir(t,!0),ar=(t,e)=>wt(t,n=>{let o=n,{state:r}=t,s=r.doc.lineAt(o),i=r.charCategorizer(o);for(let l=null;;){if(o==(e?s.to:s.from)){o==n&&s.number!=(e?r.doc.lines:1)&&(o+=e?1:-1);break}let c=Re(s.text,o-s.from,e)+s.from,u=s.text.slice(Math.min(o,c)-s.from,Math.max(o,c)-s.from),d=i(u);if(l!=null&&d!=l)break;(u!=" "||o!=n)&&(l=d),o=c}return o}),cr=t=>ar(t,!1),pl=t=>ar(t,!0),dr=t=>wt(t,e=>{let n=t.lineBlockAt(e).to;return e<n?n:Math.min(t.state.doc.length,e+1)}),gl=t=>wt(t,e=>{let n=t.lineBlockAt(e).from;return e>n?n:Math.max(0,e-1)}),xl=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(o=>({changes:{from:o.from,to:o.to,insert:Ro.of(["",""])},range:v.cursor(o.from)}));return e(t.update(n,{scrollIntoView:!0,userEvent:"input"})),!0},yl=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=t.changeByRange(o=>{if(!o.empty||o.from==0||o.from==t.doc.length)return{range:o};let r=o.from,s=t.doc.lineAt(r),i=r==s.from?r-1:Re(s.text,r-s.from,!1)+s.from,l=r==s.to?r+1:Re(s.text,r-s.from,!0)+s.from;return{changes:{from:i,to:l,insert:t.doc.slice(r,l).append(t.doc.slice(i,r))},range:v.cursor(l)}});return n.changes.empty?!1:(e(t.update(n,{scrollIntoView:!0,userEvent:"move.character"})),!0)};function At(t){let e=[],n=-1;for(let o of t.selection.ranges){let r=t.doc.lineAt(o.from),s=t.doc.lineAt(o.to);if(!o.empty&&o.to==s.from&&(s=t.doc.lineAt(o.to-1)),n>=r.number){let i=e[e.length-1];i.to=s.to,i.ranges.push(o)}else e.push({from:r.from,to:s.to,ranges:[o]});n=s.number+1}return e}function ur(t,e,n){if(t.readOnly)return!1;let o=[],r=[];for(let s of At(t)){if(n?s.to==t.doc.length:s.from==0)continue;let i=t.doc.lineAt(n?s.to+1:s.from-1),l=i.length+1;if(n){o.push({from:s.to,to:i.to},{from:s.from,insert:i.text+t.lineBreak});for(let c of s.ranges)r.push(v.range(Math.min(t.doc.length,c.anchor+l),Math.min(t.doc.length,c.head+l)))}else{o.push({from:i.from,to:s.from},{from:s.to,insert:t.lineBreak+i.text});for(let c of s.ranges)r.push(v.range(c.anchor-l,c.head-l))}}return o.length?(e(t.update({changes:o,scrollIntoView:!0,selection:v.create(r,t.selection.mainIndex),userEvent:"move.line"})),!0):!1}const bl=({state:t,dispatch:e})=>ur(t,e,!1),vl=({state:t,dispatch:e})=>ur(t,e,!0);function hr(t,e,n){if(t.readOnly)return!1;let o=[];for(let r of At(t))n?o.push({from:r.from,insert:t.doc.slice(r.from,r.to)+t.lineBreak}):o.push({from:r.to,insert:t.lineBreak+t.doc.slice(r.from,r.to)});return e(t.update({changes:o,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Cl=({state:t,dispatch:e})=>hr(t,e,!1),Sl=({state:t,dispatch:e})=>hr(t,e,!0),jl=t=>{if(t.state.readOnly)return!1;let{state:e}=t,n=e.changes(At(e).map(({from:r,to:s})=>(r>0?r--:s<e.doc.length&&s++,{from:r,to:s}))),o=Fe(e.selection,r=>t.moveVertically(r,!0)).map(n);return t.dispatch({changes:n,selection:o,scrollIntoView:!0,userEvent:"delete.line"}),!0};function kl(t,e){if(/\(\)|\[\]|\{\}/.test(t.sliceDoc(e-1,e+1)))return{from:e,to:e};let n=Oe(t).resolveInner(e),o=n.childBefore(e),r=n.childAfter(e),s;return o&&r&&o.to<=e&&r.from>=e&&(s=o.type.prop(qt.closedBy))&&s.indexOf(r.name)>-1&&t.doc.lineAt(o.to).from==t.doc.lineAt(r.from).from?{from:o.to,to:r.from}:null}const wl=fr(!1),Al=fr(!0);function fr(t){return({state:e,dispatch:n})=>{if(e.readOnly)return!1;let o=e.changeByRange(r=>{let{from:s,to:i}=r,l=e.doc.lineAt(s),c=!t&&s==i&&kl(e,s);t&&(s=i=(i<=l.to?l:e.doc.lineAt(i)).to);let u=new Io(e,{simulateBreak:s,simulateDoubleBreak:!!c}),d=Lo(u,s);for(d==null&&(d=/^\s*/.exec(e.doc.lineAt(s).text)[0].length);i<l.to&&/\s/.test(l.text[i-l.from]);)i++;c?{from:s,to:i}=c:s>l.from&&s<l.from+100&&!/\S/.test(l.text.slice(0,s))&&(s=l.from);let h=["",st(e,d)];return c&&h.push(st(e,u.lineIndent(l.from,-1))),{changes:{from:s,to:i,insert:Ro.of(h)},range:v.cursor(s+1+h[1].length)}});return n(e.update(o,{scrollIntoView:!0,userEvent:"input"})),!0}}function pn(t,e){let n=-1;return t.changeByRange(o=>{let r=[];for(let i=o.from;i<=o.to;){let l=t.doc.lineAt(i);l.number>n&&(o.empty||o.to>l.from)&&(e(l,r,o),n=l.number),i=l.to+1}let s=t.changes(r);return{changes:r,range:v.range(s.mapPos(o.anchor,1),s.mapPos(o.head,1))}})}const El=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let n=Object.create(null),o=new Io(t,{overrideIndentation:s=>{let i=n[s];return i??-1}}),r=pn(t,(s,i,l)=>{let c=Lo(o,s.from);if(c==null)return;/\S/.test(s.text)||(c=0);let u=/^\s*/.exec(s.text)[0],d=st(t,c);(u!=d||l.from<s.from+u.length)&&(n[s.from]=c,i.push({from:s.from,to:s.from+u.length,insert:d}))});return r.changes.empty||e(t.update(r,{userEvent:"indent"})),!0},mr=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(pn(t,(n,o)=>{o.push({from:n.from,insert:t.facet(Do)})}),{userEvent:"input.indent"})),!0),pr=({state:t,dispatch:e})=>t.readOnly?!1:(e(t.update(pn(t,(n,o)=>{let r=/^\s*/.exec(n.text)[0];if(!r)return;let s=Bo(r,t.tabSize),i=0,l=st(t,Math.max(0,s-Vt(t)));for(;i<r.length&&i<l.length&&r.charCodeAt(i)==l.charCodeAt(i);)i++;o.push({from:n.from+i,to:n.from+r.length,insert:l.slice(i)})}),{userEvent:"delete.dedent"})),!0),Il=[{key:"Ctrl-b",run:Vo,shift:Xo,preventDefault:!0},{key:"Ctrl-f",run:qo,shift:er},{key:"Ctrl-p",run:Ko,shift:or},{key:"Ctrl-n",run:_o,shift:rr},{key:"Ctrl-a",run:Yi,shift:cl},{key:"Ctrl-e",run:Zi,shift:dl},{key:"Ctrl-d",run:lr},{key:"Ctrl-h",run:Qt},{key:"Ctrl-k",run:dr},{key:"Ctrl-Alt-h",run:cr},{key:"Ctrl-o",run:xl},{key:"Ctrl-t",run:yl},{key:"Ctrl-v",run:_t}],Ll=[{key:"ArrowLeft",run:Vo,shift:Xo,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:Hi,shift:tl,preventDefault:!0},{mac:"Cmd-ArrowLeft",run:_i,shift:ll,preventDefault:!0},{key:"ArrowRight",run:qo,shift:er,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:zi,shift:nl,preventDefault:!0},{mac:"Cmd-ArrowRight",run:Qi,shift:al,preventDefault:!0},{key:"ArrowUp",run:Ko,shift:or,preventDefault:!0},{mac:"Cmd-ArrowUp",run:On,shift:Wn},{mac:"Ctrl-ArrowUp",run:Tn,shift:Mn},{key:"ArrowDown",run:_o,shift:rr,preventDefault:!0},{mac:"Cmd-ArrowDown",run:Fn,shift:Nn},{mac:"Ctrl-ArrowDown",run:_t,shift:Pn},{key:"PageUp",run:Tn,shift:Mn},{key:"PageDown",run:_t,shift:Pn},{key:"Home",run:Ki,shift:il,preventDefault:!0},{key:"Mod-Home",run:On,shift:Wn},{key:"End",run:Ji,shift:sl,preventDefault:!0},{key:"Mod-End",run:Fn,shift:Nn},{key:"Enter",run:wl},{key:"Mod-a",run:ul},{key:"Backspace",run:Qt,shift:Qt},{key:"Delete",run:lr},{key:"Mod-Backspace",mac:"Alt-Backspace",run:cr},{key:"Mod-Delete",mac:"Alt-Delete",run:pl},{mac:"Mod-Backspace",run:gl},{mac:"Mod-Delete",run:dr}].concat(Il.map(t=>({mac:t.key,run:t.run,shift:t.shift}))),Rl=[{key:"Alt-ArrowLeft",mac:"Ctrl-ArrowLeft",run:qi,shift:ol},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:Gi,shift:rl},{key:"Alt-ArrowUp",run:bl},{key:"Shift-Alt-ArrowUp",run:Cl},{key:"Alt-ArrowDown",run:vl},{key:"Shift-Alt-ArrowDown",run:Sl},{key:"Escape",run:ml},{key:"Mod-Enter",run:Al},{key:"Alt-l",mac:"Ctrl-l",run:hl},{key:"Mod-i",run:fl,preventDefault:!0},{key:"Mod-[",run:pr},{key:"Mod-]",run:mr},{key:"Mod-Alt-\\",run:El},{key:"Shift-Mod-k",run:jl},{key:"Shift-Mod-\\",run:el},{key:"Mod-/",run:Si},{key:"Alt-A",run:ki}].concat(Ll),Dl={key:"Tab",run:mr,shift:pr},$n=typeof String.prototype.normalize=="function"?t=>t.normalize("NFKD"):t=>t;class De{constructor(e,n,o=0,r=e.length,s,i){this.test=i,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(o,r),this.bufferStart=o,this.normalize=s?l=>s($n(l)):$n,this.query=this.normalize(n)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return X(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let n=an(e),o=this.bufferStart+this.bufferPos;this.bufferPos+=ie(e);let r=this.normalize(n);for(let s=0,i=o;;s++){let l=r.charCodeAt(s),c=this.match(l,i);if(c)return this.value=c,this;if(s==r.length-1)break;i==o&&s<n.length&&n.charCodeAt(s)==l&&i++}}}match(e,n){let o=null;for(let r=0;r<this.matches.length;r+=2){let s=this.matches[r],i=!1;this.query.charCodeAt(s)==e&&(s==this.query.length-1?o={from:this.matches[r+1],to:n+1}:(this.matches[r]++,i=!0)),i||(this.matches.splice(r,2),r-=2)}return this.query.charCodeAt(0)==e&&(this.query.length==1?o={from:n,to:n+1}:this.matches.push(1,n)),o&&this.test&&!this.test(o.from,o.to,this.buffer,this.bufferPos)&&(o=null),o}}typeof Symbol<"u"&&(De.prototype[Symbol.iterator]=function(){return this});const gr={from:-1,to:-1,match:/.*/.exec("")},gn="gm"+(/x/.unicode==null?"":"u");class xr{constructor(e,n,o,r=0,s=e.length){if(this.text=e,this.to=s,this.curLine="",this.done=!1,this.value=gr,/\\[sWDnr]|\n|\r|\[\^/.test(n))return new yr(e,n,o,r,s);this.re=new RegExp(n,gn+(o!=null&&o.ignoreCase?"i":"")),this.test=o==null?void 0:o.test,this.iter=e.iter();let i=e.lineAt(r);this.curLineStart=i.from,this.matchPos=at(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let n=this.matchPos<=this.to&&this.re.exec(this.curLine);if(n){let o=this.curLineStart+n.index,r=o+n[0].length;if(this.matchPos=at(this.text,r+(o==r?1:0)),o==this.curLineStart+this.curLine.length&&this.nextLine(),(o<r||o>this.value.to)&&(!this.test||this.test(o,r,n)))return this.value={from:o,to:r,match:n},this;e=this.matchPos-this.curLineStart}else if(this.curLineStart+this.curLine.length<this.to)this.nextLine(),e=0;else return this.done=!0,this}}}const Tt=new WeakMap;class Le{constructor(e,n){this.from=e,this.text=n}get to(){return this.from+this.text.length}static get(e,n,o){let r=Tt.get(e);if(!r||r.from>=o||r.to<=n){let l=new Le(n,e.sliceString(n,o));return Tt.set(e,l),l}if(r.from==n&&r.to==o)return r;let{text:s,from:i}=r;return i>n&&(s=e.sliceString(n,i)+s,i=n),r.to<o&&(s+=e.sliceString(r.to,o)),Tt.set(e,new Le(i,s)),new Le(n,s.slice(n-i,o-i))}}class yr{constructor(e,n,o,r,s){this.text=e,this.to=s,this.done=!1,this.value=gr,this.matchPos=at(e,r),this.re=new RegExp(n,gn+(o!=null&&o.ignoreCase?"i":"")),this.test=o==null?void 0:o.test,this.flat=Le.get(e,r,this.chunkEnd(r+5e3))}chunkEnd(e){return e>=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,n=this.re.exec(this.flat.text);if(n&&!n[0]&&n.index==e&&(this.re.lastIndex=e+1,n=this.re.exec(this.flat.text)),n){let o=this.flat.from+n.index,r=o+n[0].length;if((this.flat.to>=this.to||n.index+n[0].length<=this.flat.text.length-10)&&(!this.test||this.test(o,r,n)))return this.value={from:o,to:r,match:n},this.matchPos=at(this.text,r+(o==r?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=Le.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+this.flat.text.length*2))}}}typeof Symbol<"u"&&(xr.prototype[Symbol.iterator]=yr.prototype[Symbol.iterator]=function(){return this});function Bl(t){try{return new RegExp(t,gn),!0}catch{return!1}}function at(t,e){if(e>=t.length)return e;let n=t.lineAt(e),o;for(;e<n.to&&(o=n.text.charCodeAt(e-n.from))>=56320&&o<57344;)e++;return e}function Yt(t){let e=B("input",{class:"cm-textfield",name:"line"}),n=B("form",{class:"cm-gotoLine",onkeydown:r=>{r.keyCode==27?(r.preventDefault(),t.dispatch({effects:ct.of(!1)}),t.focus()):r.keyCode==13&&(r.preventDefault(),o())},onsubmit:r=>{r.preventDefault(),o()}},B("label",t.state.phrase("Go to line"),": ",e)," ",B("button",{class:"cm-button",type:"submit"},t.state.phrase("go")));function o(){let r=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(e.value);if(!r)return;let{state:s}=t,i=s.doc.lineAt(s.selection.main.head),[,l,c,u,d]=r,h=u?+u.slice(1):0,f=c?+c:i.number;if(c&&d){let b=f/100;l&&(b=b*(l=="-"?-1:1)+i.number/s.doc.lines),f=Math.round(s.doc.lines*b)}else c&&l&&(f=f*(l=="-"?-1:1)+i.number);let p=s.doc.line(Math.max(1,Math.min(s.doc.lines,f)));t.dispatch({effects:ct.of(!1),selection:v.cursor(p.from+Math.max(0,Math.min(h,p.length))),scrollIntoView:!0}),t.focus()}return{dom:n}}const ct=H.define(),Un=Pe.define({create(){return!0},update(t,e){for(let n of e.effects)n.is(ct)&&(t=n.value);return t},provide:t=>cn.from(t,e=>e?Yt:null)}),Tl=t=>{let e=Ve(t,Yt);if(!e){let n=[ct.of(!0)];t.state.field(Un,!1)==null&&n.push(H.appendConfig.of([Un,Ml])),t.dispatch({effects:n}),e=Ve(t,Yt)}return e&&e.dom.querySelector("input").focus(),!0},Ml=T.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),Pl={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},br=Me.define({combine(t){return _e(t,Pl,{highlightWordAroundCursor:(e,n)=>e||n,minSelectionLength:Math.min,maxMatches:Math.min})}});function Ol(t){let e=[Ul,$l];return t&&e.push(br.of(t)),e}const Fl=F.mark({class:"cm-selectionMatch"}),Wl=F.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function Hn(t,e,n,o){return(n==0||t(e.sliceDoc(n-1,n))!=J.Word)&&(o==e.doc.length||t(e.sliceDoc(o,o+1))!=J.Word)}function Nl(t,e,n,o){return t(e.sliceDoc(n,n+1))==J.Word&&t(e.sliceDoc(o-1,o))==J.Word}const $l=vt.fromClass(class{constructor(t){this.decorations=this.getDeco(t)}update(t){(t.selectionSet||t.docChanged||t.viewportChanged)&&(this.decorations=this.getDeco(t.view))}getDeco(t){let e=t.state.facet(br),{state:n}=t,o=n.selection;if(o.ranges.length>1)return F.none;let r=o.main,s,i=null;if(r.empty){if(!e.highlightWordAroundCursor)return F.none;let c=n.wordAt(r.head);if(!c)return F.none;i=n.charCategorizer(r.head),s=n.sliceDoc(c.from,c.to)}else{let c=r.to-r.from;if(c<e.minSelectionLength||c>200)return F.none;if(e.wholeWords){if(s=n.sliceDoc(r.from,r.to),i=n.charCategorizer(r.head),!(Hn(i,n,r.from,r.to)&&Nl(i,n,r.from,r.to)))return F.none}else if(s=n.sliceDoc(r.from,r.to).trim(),!s)return F.none}let l=[];for(let c of t.visibleRanges){let u=new De(n.doc,s,c.from,c.to);for(;!u.next().done;){let{from:d,to:h}=u.value;if((!i||Hn(i,n,d,h))&&(r.empty&&d<=r.from&&h>=r.to?l.push(Wl.range(d,h)):(d>=r.to||h<=r.from)&&l.push(Fl.range(d,h)),l.length>e.maxMatches))return F.none}}return F.set(l)}},{decorations:t=>t.decorations}),Ul=T.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}}),Hl=({state:t,dispatch:e})=>{let{selection:n}=t,o=v.create(n.ranges.map(r=>t.wordAt(r.head)||v.cursor(r.head)),n.mainIndex);return o.eq(n)?!1:(e(t.update({selection:o})),!0)};function zl(t,e){let{main:n,ranges:o}=t.selection,r=t.wordAt(n.head),s=r&&r.from==n.from&&r.to==n.to;for(let i=!1,l=new De(t.doc,e,o[o.length-1].to);;)if(l.next(),l.done){if(i)return null;l=new De(t.doc,e,0,Math.max(0,o[o.length-1].from-1)),i=!0}else{if(i&&o.some(c=>c.from==l.value.from))continue;if(s){let c=t.wordAt(l.value.from);if(!c||c.from!=l.value.from||c.to!=l.value.to)continue}return l.value}}const Vl=({state:t,dispatch:e})=>{let{ranges:n}=t.selection;if(n.some(s=>s.from===s.to))return Hl({state:t,dispatch:e});let o=t.sliceDoc(n[0].from,n[0].to);if(t.selection.ranges.some(s=>t.sliceDoc(s.from,s.to)!=o))return!1;let r=zl(t,o);return r?(e(t.update({selection:t.selection.addRange(v.range(r.from,r.to),!1),effects:T.scrollIntoView(r.to)})),!0):!1},xn=Me.define({combine(t){return _e(t,{top:!1,caseSensitive:!1,literal:!1,wholeWord:!1,createPanel:e=>new na(e)})}});class vr{constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||Bl(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,(n,o)=>o=="n"?`
|
|
2
2
|
`:o=="r"?"\r":o=="t"?" ":"\\")}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new Kl(this):new Gl(this)}getCursor(e,n=0,o){let r=e.doc?e:qe.create({doc:e});return o==null&&(o=r.doc.length),this.regexp?ke(this,r,n,o):je(this,r,n,o)}}class Cr{constructor(e){this.spec=e}}function je(t,e,n,o){return new De(e.doc,t.unquoted,n,o,t.caseSensitive?void 0:r=>r.toLowerCase(),t.wholeWord?ql(e.doc,e.charCategorizer(e.selection.main.head)):void 0)}function ql(t,e){return(n,o,r,s)=>((s>n||s+r.length<o)&&(s=Math.max(0,n-2),r=t.sliceString(s,Math.min(t.length,o+2))),(e(dt(r,n-s))!=J.Word||e(ut(r,n-s))!=J.Word)&&(e(ut(r,o-s))!=J.Word||e(dt(r,o-s))!=J.Word))}class Gl extends Cr{constructor(e){super(e)}nextMatch(e,n,o){let r=je(this.spec,e,o,e.doc.length).nextOverlapping();return r.done&&(r=je(this.spec,e,0,n).nextOverlapping()),r.done?null:r.value}prevMatchInRange(e,n,o){for(let r=o;;){let s=Math.max(n,r-1e4-this.spec.unquoted.length),i=je(this.spec,e,s,r),l=null;for(;!i.nextOverlapping().done;)l=i.value;if(l)return l;if(s==n)return null;r-=1e4}}prevMatch(e,n,o){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,o,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace)}matchAll(e,n){let o=je(this.spec,e,0,e.doc.length),r=[];for(;!o.next().done;){if(r.length>=n)return null;r.push(o.value)}return r}highlight(e,n,o,r){let s=je(this.spec,e,Math.max(0,n-this.spec.unquoted.length),Math.min(o+this.spec.unquoted.length,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}}function ke(t,e,n,o){return new xr(e.doc,t.search,{ignoreCase:!t.caseSensitive,test:t.wholeWord?Jl(e.charCategorizer(e.selection.main.head)):void 0},n,o)}function dt(t,e){return t.slice(Re(t,e,!1),e)}function ut(t,e){return t.slice(e,Re(t,e))}function Jl(t){return(e,n,o)=>!o[0].length||(t(dt(o.input,o.index))!=J.Word||t(ut(o.input,o.index))!=J.Word)&&(t(ut(o.input,o.index+o[0].length))!=J.Word||t(dt(o.input,o.index+o[0].length))!=J.Word)}class Kl extends Cr{nextMatch(e,n,o){let r=ke(this.spec,e,o,e.doc.length).next();return r.done&&(r=ke(this.spec,e,0,n).next()),r.done?null:r.value}prevMatchInRange(e,n,o){for(let r=1;;r++){let s=Math.max(n,o-r*1e4),i=ke(this.spec,e,s,o),l=null;for(;!i.next().done;)l=i.value;if(l&&(s==n||l.from>s+10))return l;if(s==n)return null}}prevMatch(e,n,o){return this.prevMatchInRange(e,0,n)||this.prevMatchInRange(e,o,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace.replace(/\$([$&\d+])/g,(n,o)=>o=="$"?"$":o=="&"?e.match[0]:o!="0"&&+o<e.match.length?e.match[o]:n))}matchAll(e,n){let o=ke(this.spec,e,0,e.doc.length),r=[];for(;!o.next().done;){if(r.length>=n)return null;r.push(o.value)}return r}highlight(e,n,o,r){let s=ke(this.spec,e,Math.max(0,n-250),Math.min(o+250,e.doc.length));for(;!s.next().done;)r(s.value.from,s.value.to)}}const Ge=H.define(),yn=H.define(),me=Pe.define({create(t){return new Mt(Zt(t).create(),null)},update(t,e){for(let n of e.effects)n.is(Ge)?t=new Mt(n.value.create(),t.panel):n.is(yn)&&(t=new Mt(t.query,n.value?bn:null));return t},provide:t=>cn.from(t,e=>e.panel)});class Mt{constructor(e,n){this.query=e,this.panel=n}}const _l=F.mark({class:"cm-searchMatch"}),Ql=F.mark({class:"cm-searchMatch cm-searchMatch-selected"}),Yl=vt.fromClass(class{constructor(t){this.view=t,this.decorations=this.highlight(t.state.field(me))}update(t){let e=t.state.field(me);(e!=t.startState.field(me)||t.docChanged||t.selectionSet||t.viewportChanged)&&(this.decorations=this.highlight(e))}highlight({query:t,panel:e}){if(!e||!t.spec.valid)return F.none;let{view:n}=this,o=new zs;for(let r=0,s=n.visibleRanges,i=s.length;r<i;r++){let{from:l,to:c}=s[r];for(;r<i-1&&c>s[r+1].from-2*250;)c=s[++r].to;t.highlight(n.state,l,c,(u,d)=>{let h=n.state.selection.ranges.some(f=>f.from==u&&f.to==d);o.add(u,d,h?Ql:_l)})}return o.finish()}},{decorations:t=>t.decorations});function Qe(t){return e=>{let n=e.state.field(me,!1);return n&&n.query.spec.valid?t(e,n):Sr(e)}}const ht=Qe((t,{query:e})=>{let{to:n}=t.state.selection.main,o=e.nextMatch(t.state,n,n);return o?(t.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:vn(t,o),userEvent:"select.search"}),!0):!1}),ft=Qe((t,{query:e})=>{let{state:n}=t,{from:o}=n.selection.main,r=e.prevMatch(n,o,o);return r?(t.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0,effects:vn(t,r),userEvent:"select.search"}),!0):!1}),Zl=Qe((t,{query:e})=>{let n=e.matchAll(t.state,1e3);return!n||!n.length?!1:(t.dispatch({selection:v.create(n.map(o=>v.range(o.from,o.to))),userEvent:"select.search.matches"}),!0)}),Xl=({state:t,dispatch:e})=>{let n=t.selection;if(n.ranges.length>1||n.main.empty)return!1;let{from:o,to:r}=n.main,s=[],i=0;for(let l=new De(t.doc,t.sliceDoc(o,r));!l.next().done;){if(s.length>1e3)return!1;l.value.from==o&&(i=s.length),s.push(v.range(l.value.from,l.value.to))}return e(t.update({selection:v.create(s,i),userEvent:"select.search.matches"})),!0},zn=Qe((t,{query:e})=>{let{state:n}=t,{from:o,to:r}=n.selection.main;if(n.readOnly)return!1;let s=e.nextMatch(n,o,o);if(!s)return!1;let i=[],l,c,u=[];if(s.from==o&&s.to==r&&(c=n.toText(e.getReplacement(s)),i.push({from:s.from,to:s.to,insert:c}),s=e.nextMatch(n,s.from,s.to),u.push(T.announce.of(n.phrase("replaced match on line $",n.doc.lineAt(o).number)+"."))),s){let d=i.length==0||i[0].from>=s.to?0:s.to-s.from-c.length;l={anchor:s.from-d,head:s.to-d},u.push(vn(t,s))}return t.dispatch({changes:i,selection:l,scrollIntoView:!!l,effects:u,userEvent:"input.replace"}),!0}),ea=Qe((t,{query:e})=>{if(t.state.readOnly)return!1;let n=e.matchAll(t.state,1e9).map(r=>{let{from:s,to:i}=r;return{from:s,to:i,insert:e.getReplacement(r)}});if(!n.length)return!1;let o=t.state.phrase("replaced $ matches",n.length)+".";return t.dispatch({changes:n,effects:T.announce.of(o),userEvent:"input.replace.all"}),!0});function bn(t){return t.state.facet(xn).createPanel(t)}function Zt(t,e){var n,o,r,s;let i=t.selection.main,l=i.empty||i.to>i.from+100?"":t.sliceDoc(i.from,i.to);if(e&&!l)return e;let c=t.facet(xn);return new vr({search:((n=e==null?void 0:e.literal)!==null&&n!==void 0?n:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:(o=e==null?void 0:e.caseSensitive)!==null&&o!==void 0?o:c.caseSensitive,literal:(r=e==null?void 0:e.literal)!==null&&r!==void 0?r:c.literal,wholeWord:(s=e==null?void 0:e.wholeWord)!==null&&s!==void 0?s:c.wholeWord})}const Sr=t=>{let e=t.state.field(me,!1);if(e&&e.panel){let n=Ve(t,bn);if(!n)return!1;let o=n.dom.querySelector("[main-field]");if(o&&o!=t.root.activeElement){let r=Zt(t.state,e.query.spec);r.valid&&t.dispatch({effects:Ge.of(r)}),o.focus(),o.select()}}else t.dispatch({effects:[yn.of(!0),e?Ge.of(Zt(t.state,e.query.spec)):H.appendConfig.of(ra)]});return!0},jr=t=>{let e=t.state.field(me,!1);if(!e||!e.panel)return!1;let n=Ve(t,bn);return n&&n.dom.contains(t.root.activeElement)&&t.focus(),t.dispatch({effects:yn.of(!1)}),!0},ta=[{key:"Mod-f",run:Sr,scope:"editor search-panel"},{key:"F3",run:ht,shift:ft,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:ht,shift:ft,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:jr,scope:"editor search-panel"},{key:"Mod-Shift-l",run:Xl},{key:"Alt-g",run:Tl},{key:"Mod-d",run:Vl,preventDefault:!0}];class na{constructor(e){this.view=e;let n=this.query=e.state.field(me).query.spec;this.commit=this.commit.bind(this),this.searchField=B("input",{value:n.search,placeholder:Y(e,"Find"),"aria-label":Y(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=B("input",{value:n.replace,placeholder:Y(e,"Replace"),"aria-label":Y(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=B("input",{type:"checkbox",name:"case",form:"",checked:n.caseSensitive,onchange:this.commit}),this.reField=B("input",{type:"checkbox",name:"re",form:"",checked:n.regexp,onchange:this.commit}),this.wordField=B("input",{type:"checkbox",name:"word",form:"",checked:n.wholeWord,onchange:this.commit});function o(r,s,i){return B("button",{class:"cm-button",name:r,onclick:s,type:"button"},i)}this.dom=B("div",{onkeydown:r=>this.keydown(r),class:"cm-search"},[this.searchField,o("next",()=>ht(e),[Y(e,"next")]),o("prev",()=>ft(e),[Y(e,"previous")]),o("select",()=>Zl(e),[Y(e,"all")]),B("label",null,[this.caseField,Y(e,"match case")]),B("label",null,[this.reField,Y(e,"regexp")]),B("label",null,[this.wordField,Y(e,"by word")]),...e.state.readOnly?[]:[B("br"),this.replaceField,o("replace",()=>zn(e),[Y(e,"replace")]),o("replaceAll",()=>ea(e),[Y(e,"replace all")])],B("button",{name:"close",onclick:()=>jr(e),"aria-label":Y(e,"close"),type:"button"},["×"])])}commit(){let e=new vr({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:Ge.of(e)}))}keydown(e){Vs(this.view,e,"search-panel")?e.preventDefault():e.keyCode==13&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?ft:ht)(this.view)):e.keyCode==13&&e.target==this.replaceField&&(e.preventDefault(),zn(this.view))}update(e){for(let n of e.transactions)for(let o of n.effects)o.is(Ge)&&!o.value.eq(this.query)&&this.setQuery(o.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(xn).top}}function Y(t,e){return t.state.phrase(e)}const et=30,tt=/[\s\.,:;?!]/;function vn(t,{from:e,to:n}){let o=t.state.doc.lineAt(e),r=t.state.doc.lineAt(n).to,s=Math.max(o.from,e-et),i=Math.min(r,n+et),l=t.state.sliceDoc(s,i);if(s!=o.from){for(let c=0;c<et;c++)if(!tt.test(l[c+1])&&tt.test(l[c])){l=l.slice(c);break}}if(i!=r){for(let c=l.length-1;c>l.length-et;c--)if(!tt.test(l[c-1])&&tt.test(l[c])){l=l.slice(0,c);break}}return T.announce.of(`${t.state.phrase("current match")}. ${l} ${t.state.phrase("on line")} ${o.number}.`)}const oa=T.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),ra=[me,Mo.lowest(Yl),oa];class kr{constructor(e,n,o){this.state=e,this.pos=n,this.explicit=o,this.abortListeners=[]}tokenBefore(e){let n=Oe(this.state).resolveInner(this.pos,-1);for(;n&&e.indexOf(n.name)<0;)n=n.parent;return n?{from:n.from,to:this.pos,text:this.state.sliceDoc(n.from,this.pos),type:n.type}:null}matchBefore(e){let n=this.state.doc.lineAt(this.pos),o=Math.max(n.from,this.pos-250),r=n.text.slice(o-n.from,this.pos-n.from),s=r.search(wr(e,!1));return s<0?null:{from:o+s,to:this.pos,text:r.slice(s)}}get aborted(){return this.abortListeners==null}addEventListener(e,n){e=="abort"&&this.abortListeners&&this.abortListeners.push(n)}}function Vn(t){let e=Object.keys(t).join(""),n=/\w/.test(e);return n&&(e=e.replace(/\w/g,"")),`[${n?"\\w":""}${e.replace(/[^\w\s]/g,"\\$&")}]`}function sa(t){let e=Object.create(null),n=Object.create(null);for(let{label:r}of t){e[r[0]]=!0;for(let s=1;s<r.length;s++)n[r[s]]=!0}let o=Vn(e)+Vn(n)+"*$";return[new RegExp("^"+o),new RegExp(o)]}function ia(t){let e=t.map(r=>typeof r=="string"?{label:r}:r),[n,o]=e.every(r=>/^\w+$/.test(r.label))?[/\w*$/,/\w+$/]:sa(e);return r=>{let s=r.matchBefore(o);return s||r.explicit?{from:s?s.from:r.pos,options:e,validFor:n}:null}}class qn{constructor(e,n,o){this.completion=e,this.source=n,this.match=o}}function pe(t){return t.selection.main.head}function wr(t,e){var n;let{source:o}=t,r=e&&o[0]!="^",s=o[o.length-1]!="$";return!r&&!s?t:new RegExp(`${r?"^":""}(?:${o})${s?"$":""}`,(n=t.flags)!==null&&n!==void 0?n:t.ignoreCase?"i":"")}const la=bt.define();function aa(t,e,n,o){return Object.assign(Object.assign({},t.changeByRange(r=>{if(r==t.selection.main)return{changes:{from:n,to:o,insert:e},range:v.cursor(n+e.length)};let s=o-n;return!r.empty||s&&t.sliceDoc(r.from-s,r.from)!=t.sliceDoc(n,o)?{range:r}:{changes:{from:r.from-s,to:r.from,insert:e},range:v.cursor(r.from-s+e.length)}})),{userEvent:"input.complete"})}function Ar(t,e){const n=e.completion.apply||e.completion.label;let o=e.source;typeof n=="string"?t.dispatch(Object.assign(Object.assign({},aa(t.state,n,o.from,o.to)),{annotations:la.of(e.completion)})):n(t,e.completion,o.from,o.to)}const Gn=new WeakMap;function ca(t){if(!Array.isArray(t))return t;let e=Gn.get(t);return e||Gn.set(t,e=ia(t)),e}class da{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[];for(let n=0;n<e.length;){let o=X(e,n),r=ie(o);this.chars.push(o);let s=e.slice(n,n+r),i=s.toUpperCase();this.folded.push(X(i==s?s.toLowerCase():i,0)),n+=r}this.astral=e.length!=this.chars.length}match(e){if(this.pattern.length==0)return[0];if(e.length<this.pattern.length)return null;let{chars:n,folded:o,any:r,precise:s,byWord:i}=this;if(n.length==1){let k=X(e,0);return k==n[0]?[0,0,ie(k)]:k==o[0]?[-200,0,ie(k)]:null}let l=e.indexOf(this.pattern);if(l==0)return[0,0,this.pattern.length];let c=n.length,u=0;if(l<0){for(let k=0,$=Math.min(e.length,200);k<$&&u<c;){let y=X(e,k);(y==n[u]||y==o[u])&&(r[u++]=k),k+=ie(y)}if(u<c)return null}let d=0,h=0,f=!1,p=0,b=-1,O=-1,L=/[a-z]/.test(e),U=!0;for(let k=0,$=Math.min(e.length,200),y=0;k<$&&h<c;){let g=X(e,k);l<0&&(d<c&&g==n[d]&&(s[d++]=k),p<c&&(g==n[p]||g==o[p]?(p==0&&(b=k),O=k+1,p++):p=0));let w,R=g<255?g>=48&&g<=57||g>=97&&g<=122?2:g>=65&&g<=90?1:0:(w=an(g))!=w.toLowerCase()?1:w!=w.toUpperCase()?2:0;(!k||R==1&&L||y==0&&R!=0)&&(n[h]==g||o[h]==g&&(f=!0)?i[h++]=k:i.length&&(U=!1)),y=R,k+=ie(g)}return h==c&&i[0]==0&&U?this.result(-100+(f?-200:0),i,e):p==c&&b==0?[-200-e.length,0,O]:l>-1?[-700-e.length,l,l+this.pattern.length]:p==c?[-900-e.length,b,O]:h==c?this.result(-100+(f?-200:0)+-700+(U?0:-1100),i,e):n.length==2?null:this.result((r[0]?-700:0)+-200+-1100,r,e)}result(e,n,o){let r=[e-o.length],s=1;for(let i of n){let l=i+(this.astral?ie(X(o,i)):1);s>1&&r[s-1]==i?r[s-1]=l:(r[s++]=i,r[s++]=l)}return r}}const ne=Me.define({combine(t){return _e(t,{activateOnTyping:!0,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],compareCompletions:(e,n)=>e.label.localeCompare(n.label),interactionDelay:75},{defaultKeymap:(e,n)=>e&&n,closeOnBlur:(e,n)=>e&&n,icons:(e,n)=>e&&n,tooltipClass:(e,n)=>o=>Jn(e(o),n(o)),optionClass:(e,n)=>o=>Jn(e(o),n(o)),addToOptions:(e,n)=>e.concat(n)})}});function Jn(t,e){return t?e?t+" "+e:t:e}function ua(t){let e=t.addToOptions.slice();return t.icons&&e.push({render(n){let o=document.createElement("div");return o.classList.add("cm-completionIcon"),n.type&&o.classList.add(...n.type.split(/\s+/g).map(r=>"cm-completionIcon-"+r)),o.setAttribute("aria-hidden","true"),o},position:20}),e.push({render(n,o,r){let s=document.createElement("span");s.className="cm-completionLabel";let{label:i}=n,l=0;for(let c=1;c<r.length;){let u=r[c++],d=r[c++];u>l&&s.appendChild(document.createTextNode(i.slice(l,u)));let h=s.appendChild(document.createElement("span"));h.appendChild(document.createTextNode(i.slice(u,d))),h.className="cm-completionMatchedText",l=d}return l<i.length&&s.appendChild(document.createTextNode(i.slice(l))),s},position:50},{render(n){if(!n.detail)return null;let o=document.createElement("span");return o.className="cm-completionDetail",o.textContent=n.detail,o},position:80}),e.sort((n,o)=>n.position-o.position).map(n=>n.render)}function Kn(t,e,n){if(t<=n)return{from:0,to:t};if(e<0&&(e=0),e<=t>>1){let r=Math.floor(e/n);return{from:r*n,to:(r+1)*n}}let o=Math.floor((t-e)/n);return{from:t-(o+1)*n,to:t-o*n}}class ha{constructor(e,n){this.view=e,this.stateField=n,this.info=null,this.placeInfo={read:()=>this.measureInfo(),write:l=>this.positionInfo(l),key:this},this.space=null,this.currentClass="";let o=e.state.field(n),{options:r,selected:s}=o.open,i=e.state.facet(ne);this.optionContent=ua(i),this.optionClass=i.optionClass,this.tooltipClass=i.tooltipClass,this.range=Kn(r.length,s,i.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",l=>{for(let c=l.target,u;c&&c!=this.dom;c=c.parentNode)if(c.nodeName=="LI"&&(u=/-(\d+)$/.exec(c.id))&&+u[1]<r.length){Ar(e,r[+u[1]]),l.preventDefault();return}}),this.list=this.dom.appendChild(this.createListBox(r,o.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})}mount(){this.updateSel()}update(e){var n,o,r;let s=e.state.field(this.stateField),i=e.startState.field(this.stateField);this.updateTooltipClass(e.state),s!=i&&(this.updateSel(),((n=s.open)===null||n===void 0?void 0:n.disabled)!=((o=i.open)===null||o===void 0?void 0:o.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!(!((r=s.open)===null||r===void 0)&&r.disabled)))}updateTooltipClass(e){let n=this.tooltipClass(e);if(n!=this.currentClass){for(let o of this.currentClass.split(" "))o&&this.dom.classList.remove(o);for(let o of n.split(" "))o&&this.dom.classList.add(o);this.currentClass=n}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfo)}updateSel(){let e=this.view.state.field(this.stateField),n=e.open;if((n.selected>-1&&n.selected<this.range.from||n.selected>=this.range.to)&&(this.range=Kn(n.options.length,n.selected,this.view.state.facet(ne).maxRenderedOptions),this.list.remove(),this.list=this.dom.appendChild(this.createListBox(n.options,e.id,this.range)),this.list.addEventListener("scroll",()=>{this.info&&this.view.requestMeasure(this.placeInfo)})),this.updateSelectedOption(n.selected)){this.info&&(this.info.remove(),this.info=null);let{completion:o}=n.options[n.selected],{info:r}=o;if(!r)return;let s=typeof r=="string"?document.createTextNode(r):r(o);if(!s)return;"then"in s?s.then(i=>{i&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(i)}).catch(i=>it(this.view.state,i,"completion info")):this.addInfoPane(s)}}addInfoPane(e){let n=this.info=document.createElement("div");n.className="cm-tooltip cm-completionInfo",n.appendChild(e),this.dom.appendChild(n),this.view.requestMeasure(this.placeInfo)}updateSelectedOption(e){let n=null;for(let o=this.list.firstChild,r=this.range.from;o;o=o.nextSibling,r++)r==e?o.hasAttribute("aria-selected")||(o.setAttribute("aria-selected","true"),n=o):o.hasAttribute("aria-selected")&&o.removeAttribute("aria-selected");return n&&ma(this.list,n),n}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let n=this.dom.getBoundingClientRect(),o=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),s=this.space;if(!s){let b=this.dom.ownerDocument.defaultView||window;s={left:0,top:0,right:b.innerWidth,bottom:b.innerHeight}}if(r.top>Math.min(s.bottom,n.bottom)-10||r.bottom<Math.max(s.top,n.top)+10)return null;let i=this.view.textDirection==To.RTL,l=i,c=!1,u,d="",h="",f=n.left-s.left,p=s.right-n.right;if(l&&f<Math.min(o.width,p)?l=!1:!l&&p<Math.min(o.width,f)&&(l=!0),o.width<=(l?f:p))d=Math.max(s.top,Math.min(r.top,s.bottom-o.height))-n.top+"px",u=Math.min(400,l?f:p)+"px";else{c=!0,u=Math.min(400,(i?n.right:s.right-n.left)-30)+"px";let b=s.bottom-n.bottom;b>=o.height||b>n.top?d=r.bottom-n.top+"px":h=n.bottom-r.top+"px"}return{top:d,bottom:h,maxWidth:u,class:c?i?"left-narrow":"right-narrow":l?"left":"right"}}positionInfo(e){this.info&&(e?(this.info.style.top=e.top,this.info.style.bottom=e.bottom,this.info.style.maxWidth=e.maxWidth,this.info.className="cm-tooltip cm-completionInfo cm-completionInfo-"+e.class):this.info.style.top="-1e6px")}createListBox(e,n,o){const r=document.createElement("ul");r.id=n,r.setAttribute("role","listbox"),r.setAttribute("aria-expanded","true"),r.setAttribute("aria-label",this.view.state.phrase("Completions"));for(let s=o.from;s<o.to;s++){let{completion:i,match:l}=e[s];const c=r.appendChild(document.createElement("li"));c.id=n+"-"+s,c.setAttribute("role","option");let u=this.optionClass(i);u&&(c.className=u);for(let d of this.optionContent){let h=d(i,this.view.state,l);h&&c.appendChild(h)}}return o.from&&r.classList.add("cm-completionListIncompleteTop"),o.to<e.length&&r.classList.add("cm-completionListIncompleteBottom"),r}}function fa(t){return e=>new ha(e,t)}function ma(t,e){let n=t.getBoundingClientRect(),o=e.getBoundingClientRect();o.top<n.top?t.scrollTop-=n.top-o.top:o.bottom>n.bottom&&(t.scrollTop+=o.bottom-n.bottom)}function _n(t){return(t.boost||0)*100+(t.apply?10:0)+(t.info?5:0)+(t.type?1:0)}function pa(t,e){let n=[],o=0;for(let l of t)if(l.hasResult())if(l.result.filter===!1){let c=l.result.getMatch;for(let u of l.result.options){let d=[1e9-o++];if(c)for(let h of c(u))d.push(h);n.push(new qn(u,l,d))}}else{let c=new da(e.sliceDoc(l.from,l.to)),u;for(let d of l.result.options)(u=c.match(d.label))&&(d.boost!=null&&(u[0]+=d.boost),n.push(new qn(d,l,u)))}let r=[],s=null,i=e.facet(ne).compareCompletions;for(let l of n.sort((c,u)=>u.match[0]-c.match[0]||i(c.completion,u.completion)))!s||s.label!=l.completion.label||s.detail!=l.completion.detail||s.type!=null&&l.completion.type!=null&&s.type!=l.completion.type||s.apply!=l.completion.apply?r.push(l):_n(l.completion)>_n(s)&&(r[r.length-1]=l),s=l.completion;return r}class Ae{constructor(e,n,o,r,s,i){this.options=e,this.attrs=n,this.tooltip=o,this.timestamp=r,this.selected=s,this.disabled=i}setSelected(e,n){return e==this.selected||e>=this.options.length?this:new Ae(this.options,Qn(n,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,n,o,r,s){let i=pa(e,n);if(!i.length)return r&&e.some(c=>c.state==1)?new Ae(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let l=n.facet(ne).selectOnOpen?0:-1;if(r&&r.selected!=l&&r.selected!=-1){let c=r.options[r.selected].completion;for(let u=0;u<i.length;u++)if(i[u].completion==c){l=u;break}}return new Ae(i,Qn(o,l),{pos:e.reduce((c,u)=>u.hasResult()?Math.min(c,u.from):c,1e8),create:fa(ee),above:s.aboveCursor},r?r.timestamp:Date.now(),l,!1)}map(e){return new Ae(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class mt{constructor(e,n,o){this.active=e,this.id=n,this.open=o}static start(){return new mt(ya,"cm-ac-"+Math.floor(Math.random()*2e6).toString(36),null)}update(e){let{state:n}=e,o=n.facet(ne),s=(o.override||n.languageDataAt("autocomplete",pe(n)).map(ca)).map(l=>(this.active.find(u=>u.source==l)||new K(l,this.active.some(u=>u.state!=0)?1:0)).update(e,o));s.length==this.active.length&&s.every((l,c)=>l==this.active[c])&&(s=this.active);let i=this.open;i&&e.docChanged&&(i=i.map(e.changes)),e.selection||s.some(l=>l.hasResult()&&e.changes.touchesRange(l.from,l.to))||!ga(s,this.active)?i=Ae.build(s,n,this.id,i,o):i&&i.disabled&&!s.some(l=>l.state==1)&&(i=null),!i&&s.every(l=>l.state!=1)&&s.some(l=>l.hasResult())&&(s=s.map(l=>l.hasResult()?new K(l.source,0):l));for(let l of e.effects)l.is(Ir)&&(i=i&&i.setSelected(l.value,this.id));return s==this.active&&i==this.open?this:new mt(s,this.id,i)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:xa}}function ga(t,e){if(t==e)return!0;for(let n=0,o=0;;){for(;n<t.length&&!t[n].hasResult;)n++;for(;o<e.length&&!e[o].hasResult;)o++;let r=n==t.length,s=o==e.length;if(r||s)return r==s;if(t[n++].result!=e[o++].result)return!1}}const xa={"aria-autocomplete":"list"};function Qn(t,e){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":t};return e>-1&&(n["aria-activedescendant"]=t+"-"+e),n}const ya=[];function Xt(t){return t.isUserEvent("input.type")?"input":t.isUserEvent("delete.backward")?"delete":null}class K{constructor(e,n,o=-1){this.source=e,this.state=n,this.explicitPos=o}hasResult(){return!1}update(e,n){let o=Xt(e),r=this;o?r=r.handleUserEvent(e,o,n):e.docChanged?r=r.handleChange(e):e.selection&&r.state!=0&&(r=new K(r.source,0));for(let s of e.effects)if(s.is(Cn))r=new K(r.source,1,s.value?pe(e.state):-1);else if(s.is(pt))r=new K(r.source,0);else if(s.is(Er))for(let i of s.value)i.source==r.source&&(r=i);return r}handleUserEvent(e,n,o){return n=="delete"||!o.activateOnTyping?this.map(e.changes):new K(this.source,1)}handleChange(e){return e.changes.touchesRange(pe(e.startState))?new K(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new K(this.source,this.state,e.mapPos(this.explicitPos))}}class He extends K{constructor(e,n,o,r,s){super(e,2,n),this.result=o,this.from=r,this.to=s}hasResult(){return!0}handleUserEvent(e,n,o){var r;let s=e.changes.mapPos(this.from),i=e.changes.mapPos(this.to,1),l=pe(e.state);if((this.explicitPos<0?l<=s:l<this.from)||l>i||n=="delete"&&pe(e.startState)==this.from)return new K(this.source,n=="input"&&o.activateOnTyping?1:0);let c=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos),u;return ba(this.result.validFor,e.state,s,i)?new He(this.source,c,this.result,s,i):this.result.update&&(u=this.result.update(this.result,s,i,new kr(e.state,l,c>=0)))?new He(this.source,c,u,u.from,(r=u.to)!==null&&r!==void 0?r:pe(e.state)):new K(this.source,1,c)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new K(this.source,0):this.map(e.changes)}map(e){return e.empty?this:new He(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1))}}function ba(t,e,n,o){if(!t)return!1;let r=e.sliceDoc(n,o);return typeof t=="function"?t(r,n,o,e):wr(t,!0).test(r)}const Cn=H.define(),pt=H.define(),Er=H.define({map(t,e){return t.map(n=>n.map(e))}}),Ir=H.define(),ee=Pe.define({create(){return mt.start()},update(t,e){return t.update(e)},provide:t=>[qs.from(t,e=>e.tooltip),T.contentAttributes.from(t,e=>e.attrs)]});function nt(t,e="option"){return n=>{let o=n.state.field(ee,!1);if(!o||!o.open||o.open.disabled||Date.now()-o.open.timestamp<n.state.facet(ne).interactionDelay)return!1;let r=1,s;e=="page"&&(s=Gs(n,o.open.tooltip))&&(r=Math.max(2,Math.floor(s.dom.offsetHeight/s.dom.querySelector("li").offsetHeight)-1));let{length:i}=o.open.options,l=o.open.selected>-1?o.open.selected+r*(t?1:-1):t?0:i-1;return l<0?l=e=="page"?0:i-1:l>=i&&(l=e=="page"?i-1:0),n.dispatch({effects:Ir.of(l)}),!0}}const va=t=>{let e=t.state.field(ee,!1);return t.state.readOnly||!e||!e.open||e.open.selected<0||Date.now()-e.open.timestamp<t.state.facet(ne).interactionDelay?!1:(e.open.disabled||Ar(t,e.open.options[e.open.selected]),!0)},Ca=t=>t.state.field(ee,!1)?(t.dispatch({effects:Cn.of(!0)}),!0):!1,Sa=t=>{let e=t.state.field(ee,!1);return!e||!e.active.some(n=>n.state!=0)?!1:(t.dispatch({effects:pt.of(null)}),!0)};class ja{constructor(e,n){this.active=e,this.context=n,this.time=Date.now(),this.updates=[],this.done=void 0}}const Yn=50,ka=50,wa=1e3,Aa=vt.fromClass(class{constructor(t){this.view=t,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.composing=0;for(let e of t.state.field(ee).active)e.state==1&&this.startQuery(e)}update(t){let e=t.state.field(ee);if(!t.selectionSet&&!t.docChanged&&t.startState.field(ee)==e)return;let n=t.transactions.some(o=>(o.selection||o.docChanged)&&!Xt(o));for(let o=0;o<this.running.length;o++){let r=this.running[o];if(n||r.updates.length+t.transactions.length>ka&&Date.now()-r.time>wa){for(let s of r.context.abortListeners)try{s()}catch(i){it(this.view.state,i)}r.context.abortListeners=null,this.running.splice(o--,1)}else r.updates.push(...t.transactions)}if(this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),this.debounceUpdate=e.active.some(o=>o.state==1&&!this.running.some(r=>r.active.source==o.source))?setTimeout(()=>this.startUpdate(),Yn):-1,this.composing!=0)for(let o of t.transactions)Xt(o)=="input"?this.composing=2:this.composing==2&&o.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1;let{state:t}=this.view,e=t.field(ee);for(let n of e.active)n.state==1&&!this.running.some(o=>o.active.source==n.source)&&this.startQuery(n)}startQuery(t){let{state:e}=this.view,n=pe(e),o=new kr(e,n,t.explicitPos==n),r=new ja(t,o);this.running.push(r),Promise.resolve(t.source(o)).then(s=>{r.context.aborted||(r.done=s||null,this.scheduleAccept())},s=>{this.view.dispatch({effects:pt.of(null)}),it(this.view.state,s)})}scheduleAccept(){this.running.every(t=>t.done!==void 0)?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout(()=>this.accept(),Yn))}accept(){var t;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let e=[],n=this.view.state.facet(ne);for(let o=0;o<this.running.length;o++){let r=this.running[o];if(r.done===void 0)continue;if(this.running.splice(o--,1),r.done){let i=new He(r.active.source,r.active.explicitPos,r.done,r.done.from,(t=r.done.to)!==null&&t!==void 0?t:pe(r.updates.length?r.updates[0].startState:this.view.state));for(let l of r.updates)i=i.update(l,n);if(i.hasResult()){e.push(i);continue}}let s=this.view.state.field(ee).active.find(i=>i.source==r.active.source);if(s&&s.state==1)if(r.done==null){let i=new K(r.active.source,0);for(let l of r.updates)i=i.update(l,n);i.state!=1&&e.push(i)}else this.startQuery(s)}e.length&&this.view.dispatch({effects:Er.of(e)})}},{eventHandlers:{blur(){let t=this.view.state.field(ee,!1);t&&t.tooltip&&this.view.state.facet(ne).closeOnBlur&&this.view.dispatch({effects:pt.of(null)})},compositionstart(){this.composing=1},compositionend(){this.composing==3&&setTimeout(()=>this.view.dispatch({effects:Cn.of(!1)}),20),this.composing=0}}}),Ea=T.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer",padding:"1px 3px",lineHeight:1.2}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"···"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"400px",boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"30px"},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"30px"},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'ƒ'"}},".cm-completionIcon-class":{"&:after":{content:"'○'"}},".cm-completionIcon-interface":{"&:after":{content:"'◌'"}},".cm-completionIcon-variable":{"&:after":{content:"'𝑥'"}},".cm-completionIcon-constant":{"&:after":{content:"'𝐶'"}},".cm-completionIcon-type":{"&:after":{content:"'𝑡'"}},".cm-completionIcon-enum":{"&:after":{content:"'∪'"}},".cm-completionIcon-property":{"&:after":{content:"'□'"}},".cm-completionIcon-keyword":{"&:after":{content:"'🔑︎'"}},".cm-completionIcon-namespace":{"&:after":{content:"'▢'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}}),Je={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ve=H.define({map(t,e){let n=e.mapPos(t,-1,Js.TrackAfter);return n??void 0}}),Sn=H.define({map(t,e){return e.mapPos(t)}}),jn=new class extends Ks{};jn.startSide=1;jn.endSide=-1;const Lr=Pe.define({create(){return Bn.empty},update(t,e){if(e.selection){let n=e.state.doc.lineAt(e.selection.main.head).from,o=e.startState.doc.lineAt(e.startState.selection.main.head).from;n!=e.changes.mapPos(o,-1)&&(t=Bn.empty)}t=t.map(e.changes);for(let n of e.effects)n.is(ve)?t=t.update({add:[jn.range(n.value,n.value+1)]}):n.is(Sn)&&(t=t.update({filter:o=>o!=n.value}));return t}});function Ia(){return[Ra,Lr]}const Pt="()[]{}<>";function Rr(t){for(let e=0;e<Pt.length;e+=2)if(Pt.charCodeAt(e)==t)return Pt.charAt(e+1);return an(t<128?t:t+1)}function Dr(t,e){return t.languageDataAt("closeBrackets",e)[0]||Je}const La=typeof navigator=="object"&&/Android\b/.test(navigator.userAgent),Ra=T.inputHandler.of((t,e,n,o)=>{if((La?t.composing:t.compositionStarted)||t.state.readOnly)return!1;let r=t.state.selection.main;if(o.length>2||o.length==2&&ie(X(o,0))==1||e!=r.from||n!=r.to)return!1;let s=Ta(t.state,o);return s?(t.dispatch(s),!0):!1}),Da=({state:t,dispatch:e})=>{if(t.readOnly)return!1;let o=Dr(t,t.selection.main.head).brackets||Je.brackets,r=null,s=t.changeByRange(i=>{if(i.empty){let l=Ma(t.doc,i.head);for(let c of o)if(c==l&&Et(t.doc,i.head)==Rr(X(c,0)))return{changes:{from:i.head-c.length,to:i.head+c.length},range:v.cursor(i.head-c.length)}}return{range:r=i}});return r||e(t.update(s,{scrollIntoView:!0,userEvent:"delete.backward"})),!r},Ba=[{key:"Backspace",run:Da}];function Ta(t,e){let n=Dr(t,t.selection.main.head),o=n.brackets||Je.brackets;for(let r of o){let s=Rr(X(r,0));if(e==r)return s==r?Fa(t,r,o.indexOf(r+r+r)>-1,n):Pa(t,r,s,n.before||Je.before);if(e==s&&Br(t,t.selection.main.from))return Oa(t,r,s)}return null}function Br(t,e){let n=!1;return t.field(Lr).between(0,t.doc.length,o=>{o==e&&(n=!0)}),n}function Et(t,e){let n=t.sliceString(e,e+2);return n.slice(0,ie(X(n,0)))}function Ma(t,e){let n=t.sliceString(e-2,e);return ie(X(n,0))==n.length?n:n.slice(1)}function Pa(t,e,n,o){let r=null,s=t.changeByRange(i=>{if(!i.empty)return{changes:[{insert:e,from:i.from},{insert:n,from:i.to}],effects:ve.of(i.to+e.length),range:v.range(i.anchor+e.length,i.head+e.length)};let l=Et(t.doc,i.head);return!l||/\s/.test(l)||o.indexOf(l)>-1?{changes:{insert:e+n,from:i.head},effects:ve.of(i.head+e.length),range:v.cursor(i.head+e.length)}:{range:r=i}});return r?null:t.update(s,{scrollIntoView:!0,userEvent:"input.type"})}function Oa(t,e,n){let o=null,r=t.selection.ranges.map(s=>s.empty&&Et(t.doc,s.head)==n?v.cursor(s.head+n.length):o=s);return o?null:t.update({selection:v.create(r,t.selection.mainIndex),scrollIntoView:!0,effects:t.selection.ranges.map(({from:s})=>Sn.of(s))})}function Fa(t,e,n,o){let r=o.stringPrefixes||Je.stringPrefixes,s=null,i=t.changeByRange(l=>{if(!l.empty)return{changes:[{insert:e,from:l.from},{insert:e,from:l.to}],effects:ve.of(l.to+e.length),range:v.range(l.anchor+e.length,l.head+e.length)};let c=l.head,u=Et(t.doc,c),d;if(u==e){if(Zn(t,c))return{changes:{insert:e+e,from:c},effects:ve.of(c+e.length),range:v.cursor(c+e.length)};if(Br(t,c)){let h=n&&t.sliceDoc(c,c+e.length*3)==e+e+e;return{range:v.cursor(c+e.length*(h?3:1)),effects:Sn.of(c)}}}else{if(n&&t.sliceDoc(c-2*e.length,c)==e+e&&(d=Xn(t,c-2*e.length,r))>-1&&Zn(t,d))return{changes:{insert:e+e+e+e,from:c},effects:ve.of(c+e.length),range:v.cursor(c+e.length)};if(t.charCategorizer(c)(u)!=J.Word&&Xn(t,c,r)>-1&&!Wa(t,c,e,r))return{changes:{insert:e+e,from:c},effects:ve.of(c+e.length),range:v.cursor(c+e.length)}}return{range:s=l}});return s?null:t.update(i,{scrollIntoView:!0,userEvent:"input.type"})}function Zn(t,e){let n=Oe(t).resolveInner(e+1);return n.parent&&n.from==e}function Wa(t,e,n,o){let r=Oe(t).resolveInner(e,-1),s=o.reduce((i,l)=>Math.max(i,l.length),0);for(let i=0;i<5;i++){let l=t.sliceDoc(r.from,Math.min(r.to,r.from+n.length+s)),c=l.indexOf(n);if(!c||c>-1&&o.indexOf(l.slice(0,c))>-1){let d=r.firstChild;for(;d&&d.from==r.from&&d.to-d.from>n.length+c;){if(t.sliceDoc(d.to-n.length,d.to)==n)return!1;d=d.firstChild}return!0}let u=r.to==e&&r.parent;if(!u)break;r=u}return!1}function Xn(t,e,n){let o=t.charCategorizer(e);if(o(t.sliceDoc(e-1,e))!=J.Word)return e;for(let r of n){let s=e-r.length;if(t.sliceDoc(s,e)==r&&o(t.sliceDoc(s-1,s))!=J.Word)return s}return-1}function Na(t={}){return[ee,ne.of(t),Aa,$a,Ea]}const Tr=[{key:"Ctrl-Space",run:Ca},{key:"Escape",run:Sa},{key:"ArrowDown",run:nt(!0)},{key:"ArrowUp",run:nt(!1)},{key:"PageDown",run:nt(!0,"page")},{key:"PageUp",run:nt(!1,"page")},{key:"Enter",run:va}],$a=Mo.highest(dn.computeN([ne],t=>t.facet(ne).defaultKeymap?[Tr]:[]));class Ua{constructor(e,n,o){this.from=e,this.to=n,this.diagnostic=o}}class be{constructor(e,n,o){this.diagnostics=e,this.panel=n,this.selected=o}static init(e,n,o){let r=e,s=o.facet(Ee).markerFilter;s&&(r=s(r));let i=F.set(r.map(l=>l.from==l.to||l.from==l.to-1&&o.doc.lineAt(l.from).to==l.from?F.widget({widget:new Ya(l),diagnostic:l}).range(l.from):F.mark({attributes:{class:"cm-lintRange cm-lintRange-"+l.severity},diagnostic:l}).range(l.from,l.to)),!0);return new be(i,n,Be(i))}}function Be(t,e=null,n=0){let o=null;return t.between(n,1e9,(r,s,{spec:i})=>{if(!(e&&i.diagnostic!=e))return o=new Ua(r,s,i.diagnostic),!1}),o}function Ha(t,e){return!!(t.effects.some(n=>n.is(kn))||t.changes.touchesRange(e.pos))}function Mr(t,e){return t.field(Z,!1)?e:e.concat(H.appendConfig.of([Z,T.decorations.compute([Z],n=>{let{selected:o,panel:r}=n.field(Z);return!o||!r||o.from==o.to?F.none:F.set([Va.range(o.from,o.to)])}),_s(qa,{hideOn:Ha}),Xa]))}function za(t,e){return{effects:Mr(t,[kn.of(e)])}}const kn=H.define(),wn=H.define(),Pr=H.define(),Z=Pe.define({create(){return new be(F.none,null,null)},update(t,e){if(e.docChanged){let n=t.diagnostics.map(e.changes),o=null;if(t.selected){let r=e.changes.mapPos(t.selected.from,1);o=Be(n,t.selected.diagnostic,r)||Be(n,null,r)}t=new be(n,t.panel,o)}for(let n of e.effects)n.is(kn)?t=be.init(n.value,t.panel,e.state):n.is(wn)?t=new be(t.diagnostics,n.value?It.open:null,t.selected):n.is(Pr)&&(t=new be(t.diagnostics,t.panel,n.value));return t},provide:t=>[cn.from(t,e=>e.panel),T.decorations.from(t,e=>e.diagnostics)]}),Va=F.mark({class:"cm-lintRange cm-lintRange-active"});function qa(t,e,n){let{diagnostics:o}=t.state.field(Z),r=[],s=2e8,i=0;o.between(e-(n<0?1:0),e+(n>0?1:0),(c,u,{spec:d})=>{e>=c&&e<=u&&(c==u||(e>c||n>0)&&(e<u||n<0))&&(r.push(d.diagnostic),s=Math.min(c,s),i=Math.max(u,i))});let l=t.state.facet(Ee).tooltipFilter;return l&&(r=l(r)),r.length?{pos:s,end:i,above:t.state.doc.lineAt(s).to<i,create(){return{dom:Ga(t,r)}}}:null}function Ga(t,e){return B("ul",{class:"cm-tooltip-lint"},e.map(n=>Fr(t,n,!1)))}const Ja=t=>{let e=t.state.field(Z,!1);(!e||!e.panel)&&t.dispatch({effects:Mr(t.state,[wn.of(!0)])});let n=Ve(t,It.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},eo=t=>{let e=t.state.field(Z,!1);return!e||!e.panel?!1:(t.dispatch({effects:wn.of(!1)}),!0)},Ka=t=>{let e=t.state.field(Z,!1);if(!e)return!1;let n=t.state.selection.main,o=e.diagnostics.iter(n.to+1);return!o.value&&(o=e.diagnostics.iter(0),!o.value||o.from==n.from&&o.to==n.to)?!1:(t.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0}),!0)},_a=[{key:"Mod-Shift-m",run:Ja,preventDefault:!0},{key:"F8",run:Ka}],Qa=vt.fromClass(class{constructor(t){this.view=t,this.timeout=-1,this.set=!0;let{delay:e}=t.state.facet(Ee);this.lintTime=Date.now()+e,this.run=this.run.bind(this),this.timeout=setTimeout(this.run,e)}run(){let t=Date.now();if(t<this.lintTime-10)setTimeout(this.run,this.lintTime-t);else{this.set=!1;let{state:e}=this.view,{sources:n}=e.facet(Ee);Promise.all(n.map(o=>Promise.resolve(o(this.view)))).then(o=>{let r=o.reduce((s,i)=>s.concat(i));this.view.state.doc==e.doc&&this.view.dispatch(za(this.view.state,r))},o=>{it(this.view.state,o)})}}update(t){let e=t.state.facet(Ee);(t.docChanged||e!=t.startState.facet(Ee))&&(this.lintTime=Date.now()+e.delay,this.set||(this.set=!0,this.timeout=setTimeout(this.run,e.delay)))}force(){this.set&&(this.lintTime=Date.now(),this.run())}destroy(){clearTimeout(this.timeout)}}),Ee=Me.define({combine(t){return Object.assign({sources:t.map(e=>e.source)},_e(t.map(e=>e.config),{delay:750,markerFilter:null,tooltipFilter:null}))},enables:Qa});function Or(t){let e=[];if(t)e:for(let{name:n}of t){for(let o=0;o<n.length;o++){let r=n[o];if(/[a-zA-Z]/.test(r)&&!e.some(s=>s.toLowerCase()==r.toLowerCase())){e.push(r);continue e}}e.push("")}return e}function Fr(t,e,n){var o;let r=n?Or(e.actions):[];return B("li",{class:"cm-diagnostic cm-diagnostic-"+e.severity},B("span",{class:"cm-diagnosticText"},e.renderMessage?e.renderMessage():e.message),(o=e.actions)===null||o===void 0?void 0:o.map((s,i)=>{let l=h=>{h.preventDefault();let f=Be(t.state.field(Z).diagnostics,e);f&&s.apply(t,f.from,f.to)},{name:c}=s,u=r[i]?c.indexOf(r[i]):-1,d=u<0?c:[c.slice(0,u),B("u",c.slice(u,u+1)),c.slice(u+1)];return B("button",{type:"button",class:"cm-diagnosticAction",onclick:l,onmousedown:l,"aria-label":` Action: ${c}${u<0?"":` (access key "${r[i]})"`}.`},d)}),e.source&&B("div",{class:"cm-diagnosticSource"},e.source))}class Ya extends Qs{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return B("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class to{constructor(e,n){this.diagnostic=n,this.id="item_"+Math.floor(Math.random()*4294967295).toString(16),this.dom=Fr(e,n,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class It{constructor(e){this.view=e,this.items=[];let n=r=>{if(r.keyCode==27)eo(this.view),this.view.focus();else if(r.keyCode==38||r.keyCode==33)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(r.keyCode==40||r.keyCode==34)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(r.keyCode==36)this.moveSelection(0);else if(r.keyCode==35)this.moveSelection(this.items.length-1);else if(r.keyCode==13)this.view.focus();else if(r.keyCode>=65&&r.keyCode<=90&&this.selectedIndex>=0){let{diagnostic:s}=this.items[this.selectedIndex],i=Or(s.actions);for(let l=0;l<i.length;l++)if(i[l].toUpperCase().charCodeAt(0)==r.keyCode){let c=Be(this.view.state.field(Z).diagnostics,s);c&&s.actions[l].apply(e,c.from,c.to)}}else return;r.preventDefault()},o=r=>{for(let s=0;s<this.items.length;s++)this.items[s].dom.contains(r.target)&&this.moveSelection(s)};this.list=B("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:n,onclick:o}),this.dom=B("div",{class:"cm-panel-lint"},this.list,B("button",{type:"button",name:"close","aria-label":this.view.state.phrase("close"),onclick:()=>eo(this.view)},"×")),this.update()}get selectedIndex(){let e=this.view.state.field(Z).selected;if(!e)return-1;for(let n=0;n<this.items.length;n++)if(this.items[n].diagnostic==e.diagnostic)return n;return-1}update(){let{diagnostics:e,selected:n}=this.view.state.field(Z),o=0,r=!1,s=null;for(e.between(0,this.view.state.doc.length,(i,l,{spec:c})=>{let u=-1,d;for(let h=o;h<this.items.length;h++)if(this.items[h].diagnostic==c.diagnostic){u=h;break}u<0?(d=new to(this.view,c.diagnostic),this.items.splice(o,0,d),r=!0):(d=this.items[u],u>o&&(this.items.splice(o,u-o),r=!0)),n&&d.diagnostic==n.diagnostic?d.dom.hasAttribute("aria-selected")||(d.dom.setAttribute("aria-selected","true"),s=d):d.dom.hasAttribute("aria-selected")&&d.dom.removeAttribute("aria-selected"),o++});o<this.items.length&&!(this.items.length==1&&this.items[0].diagnostic.from<0);)r=!0,this.items.pop();this.items.length==0&&(this.items.push(new to(this.view,{from:-1,to:-1,severity:"info",message:this.view.state.phrase("No diagnostics")})),r=!0),s?(this.list.setAttribute("aria-activedescendant",s.id),this.view.requestMeasure({key:this,read:()=>({sel:s.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:({sel:i,panel:l})=>{i.top<l.top?this.list.scrollTop-=l.top-i.top:i.bottom>l.bottom&&(this.list.scrollTop+=i.bottom-l.bottom)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function n(){let o=e;e=o.nextSibling,o.remove()}for(let o of this.items)if(o.dom.parentNode==this.list){for(;e!=o.dom;)n();e=o.dom.nextSibling}else this.list.insertBefore(o.dom,e);for(;e;)n()}moveSelection(e){if(this.selectedIndex<0)return;let n=this.view.state.field(Z),o=Be(n.diagnostics,this.items[e].diagnostic);o&&this.view.dispatch({selection:{anchor:o.from,head:o.to},scrollIntoView:!0,effects:Pr.of(o)})}static open(e){return new It(e)}}function Za(t,e='viewBox="0 0 40 40"'){return`url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" ${e}>${encodeURIComponent(t)}</svg>')`}function Ot(t){return Za(`<path d="m0 2.5 l2 -1.5 l1 0 l2 1.5 l1 0" stroke="${t}" fill="none" stroke-width=".7"/>`,'width="6" height="3"')}const Xa=T.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:Ot("#d11")},".cm-lintRange-warning":{backgroundImage:Ot("orange")},".cm-lintRange-info":{backgroundImage:Ot("#999")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});var no=function(e){e===void 0&&(e={});var{crosshairCursor:n=!1}=e,o=[];e.closeBracketsKeymap!==!1&&(o=o.concat(Ba)),e.defaultKeymap!==!1&&(o=o.concat(Rl)),e.searchKeymap!==!1&&(o=o.concat(ta)),e.historyKeymap!==!1&&(o=o.concat(Ui)),e.foldKeymap!==!1&&(o=o.concat(Ys)),e.completionKeymap!==!1&&(o=o.concat(Tr)),e.lintKeymap!==!1&&(o=o.concat(_a));var r=[];return e.lineNumbers!==!1&&r.push(Zs()),e.highlightActiveLineGutter!==!1&&r.push(Xs()),e.highlightSpecialChars!==!1&&r.push(ei()),e.history!==!1&&r.push(Bi()),e.foldGutter!==!1&&r.push(ti()),e.drawSelection!==!1&&r.push(ni()),e.dropCursor!==!1&&r.push(oi()),e.allowMultipleSelections!==!1&&r.push(qe.allowMultipleSelections.of(!0)),e.indentOnInput!==!1&&r.push(ri()),e.syntaxHighlighting!==!1&&r.push(un(si,{fallback:!0})),e.bracketMatching!==!1&&r.push(ii()),e.closeBrackets!==!1&&r.push(Ia()),e.autocompletion!==!1&&r.push(Na()),e.rectangularSelection!==!1&&r.push(li()),n!==!1&&r.push(ai()),e.highlightActiveLine!==!1&&r.push(ci()),e.highlightSelectionMatches!==!1&&r.push(Ol()),e.tabSize&&typeof e.tabSize=="number"&&r.push(Do.of(" ".repeat(e.tabSize))),r.concat([dn.of(o.flat())]).filter(Boolean)};const ec="#e5c07b",oo="#e06c75",tc="#56b6c2",nc="#ffffff",rt="#abb2bf",en="#7d8799",oc="#61afef",rc="#98c379",ro="#d19a66",sc="#c678dd",ic="#21252b",so="#2c313a",io="#282c34",Ft="#353a42",lc="#3E4451",lo="#528bff",ac=T.theme({"&":{color:rt,backgroundColor:io},".cm-content":{caretColor:lo},".cm-cursor, .cm-dropCursor":{borderLeftColor:lo},"&.cm-focused .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:lc},".cm-panels":{backgroundColor:ic,color:rt},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847",outline:"1px solid #515a6b"},".cm-gutters":{backgroundColor:io,color:en,border:"none"},".cm-activeLineGutter":{backgroundColor:so},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:Ft},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:Ft,borderBottomColor:Ft},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:so,color:rt}}},{dark:!0}),cc=Po.define([{tag:m.keyword,color:sc},{tag:[m.name,m.deleted,m.character,m.propertyName,m.macroName],color:oo},{tag:[m.function(m.variableName),m.labelName],color:oc},{tag:[m.color,m.constant(m.name),m.standard(m.name)],color:ro},{tag:[m.definition(m.name),m.separator],color:rt},{tag:[m.typeName,m.className,m.number,m.changed,m.annotation,m.modifier,m.self,m.namespace],color:ec},{tag:[m.operator,m.operatorKeyword,m.url,m.escape,m.regexp,m.link,m.special(m.string)],color:tc},{tag:[m.meta,m.comment],color:en},{tag:m.strong,fontWeight:"bold"},{tag:m.emphasis,fontStyle:"italic"},{tag:m.strikethrough,textDecoration:"line-through"},{tag:m.link,color:en,textDecoration:"underline"},{tag:m.heading,fontWeight:"bold",color:oo},{tag:[m.atom,m.bool,m.special(m.variableName)],color:ro},{tag:[m.processingInstruction,m.string,m.inserted],color:rc},{tag:m.invalid,color:nc}]),dc=[ac,un(cc)];var uc=T.theme({"&":{backgroundColor:"#fff"}},{dark:!1}),hc=function(e){e===void 0&&(e={});var{indentWithTab:n=!0,editable:o=!0,readOnly:r=!1,theme:s="light",placeholder:i="",basicSetup:l=!0}=e,c=[];switch(n&&c.unshift(dn.of([Dl])),l&&(typeof l=="boolean"?c.unshift(no()):c.unshift(no(l))),i&&c.unshift(di(i)),s){case"light":c.push(uc);break;case"dark":c.push(dc);break;case"none":break;default:c.push(s);break}return o===!1&&c.push(T.editable.of(!1)),r&&c.push(qe.readOnly.of(!0)),[...c]},fc=t=>({line:t.state.doc.lineAt(t.state.selection.main.from),lineCount:t.state.doc.lines,lineBreak:t.state.lineBreak,length:t.state.doc.length,readOnly:t.state.readOnly,tabSize:t.state.tabSize,selection:t.state.selection,selectionAsSingle:t.state.selection.asSingle().main,ranges:t.state.selection.ranges,selectionCode:t.state.sliceDoc(t.state.selection.main.from,t.state.selection.main.to),selections:t.state.selection.ranges.map(e=>t.state.sliceDoc(e.from,e.to)),selectedText:t.state.selection.ranges.some(e=>!e.empty)}),ao=bt.define(),mc=[];function pc(t){var{value:e,selection:n,onChange:o,onStatistics:r,onCreateEditor:s,onUpdate:i,extensions:l=mc,autoFocus:c,theme:u="light",height:d=null,minHeight:h=null,maxHeight:f=null,width:p=null,minWidth:b=null,maxWidth:O=null,placeholder:L="",editable:U=!0,readOnly:k=!1,indentWithTab:$=!0,basicSetup:y=!0,root:g,initialState:w}=t,[R,P]=x.useState(),[A,z]=x.useState(),[C,D]=x.useState(),q=T.theme({"&":{height:d,minHeight:h,maxHeight:f,width:p,minWidth:b,maxWidth:O},"& .cm-scroller":{height:"100% !important"}}),W=T.updateListener.of(Q=>{if(Q.docChanged&&typeof o=="function"&&!Q.transactions.some(Lt=>Lt.annotation(ao))){var ue=Q.state.doc,Se=ue.toString();o(Se,Q)}r&&r(fc(Q))}),ce=hc({theme:u,editable:U,readOnly:k,placeholder:L,indentWithTab:$,basicSetup:y}),ye=[W,q,...ce];return i&&typeof i=="function"&&ye.push(T.updateListener.of(i)),ye=ye.concat(l),x.useEffect(()=>{if(R&&!C){var Q={doc:e,selection:n,extensions:ye},ue=w?qe.fromJSON(w.json,Q,w.fields):qe.create(Q);if(D(ue),!A){var Se=new T({state:ue,parent:R,root:g});z(Se),s&&s(Se,ue)}}return()=>{A&&(D(void 0),z(void 0))}},[R,C]),x.useEffect(()=>P(t.container),[t.container]),x.useEffect(()=>()=>{A&&(A.destroy(),z(void 0))},[A]),x.useEffect(()=>{c&&A&&A.focus()},[c,A]),x.useEffect(()=>{A&&A.dispatch({effects:H.reconfigure.of(ye)})},[u,l,d,h,f,p,b,O,L,U,k,$,y,o,i]),x.useEffect(()=>{if(e!==void 0){var Q=A?A.state.doc.toString():"";A&&e!==Q&&A.dispatch({changes:{from:0,to:Q.length,insert:e||""},annotations:[ao.of(!0)]})}},[e,A]),{state:C,setState:D,view:A,setView:z,container:R,setContainer:P}}var gc=["className","value","selection","extensions","onChange","onStatistics","onCreateEditor","onUpdate","autoFocus","theme","height","minHeight","maxHeight","width","minWidth","maxWidth","basicSetup","placeholder","indentWithTab","editable","readOnly","root","initialState"],Wr=x.forwardRef((t,e)=>{var{className:n,value:o="",selection:r,extensions:s=[],onChange:i,onStatistics:l,onCreateEditor:c,onUpdate:u,autoFocus:d,theme:h="light",height:f,minHeight:p,maxHeight:b,width:O,minWidth:L,maxWidth:U,basicSetup:k,placeholder:$,indentWithTab:y,editable:g,readOnly:w,root:R,initialState:P}=t,A=Ci(t,gc),z=x.useRef(null),{state:C,view:D,container:q}=pc({container:z.current,root:R,value:o,autoFocus:d,theme:h,height:f,minHeight:p,maxHeight:b,width:O,minWidth:L,maxWidth:U,basicSetup:k,placeholder:$,indentWithTab:y,editable:g,readOnly:w,selection:r,onChange:i,onStatistics:l,onCreateEditor:c,onUpdate:u,extensions:s,initialState:P});if(x.useImperativeHandle(e,()=>({editor:z.current,state:C,view:D}),[z,q,C,D]),typeof o!="string")throw new Error("value must be typeof string but got "+typeof o);var W=typeof h=="string"?"cm-theme-"+h:"cm-theme";return a.jsx("div",Gt({ref:z,className:""+W+(n?" "+n:"")},A))});Wr.displayName="CodeMirror";var Nr=t=>{var{theme:e,settings:n={},styles:o=[]}=t,r={".cm-gutters":{}},s={};n.background&&(s.backgroundColor=n.background),n.backgroundImage&&(s.backgroundImage=n.backgroundImage),n.foreground&&(s.color=n.foreground),(n.background||n.foreground)&&(r["&"]=s),n.fontFamily&&(r["&.cm-editor .cm-scroller"]={fontFamily:n.fontFamily}),n.gutterBackground&&(r[".cm-gutters"].backgroundColor=n.gutterBackground),n.gutterForeground&&(r[".cm-gutters"].color=n.gutterForeground),n.gutterBorder&&(r[".cm-gutters"].borderRightColor=n.gutterBorder),n.caret&&(r[".cm-content"]={caretColor:n.caret},r[".cm-cursor, .cm-dropCursor"]={borderLeftColor:n.caret});var i={};n.gutterActiveForeground&&(i.color=n.gutterActiveForeground),n.lineHighlight&&(r[".cm-activeLine"]={backgroundColor:n.lineHighlight},i.backgroundColor=n.lineHighlight),r[".cm-activeLineGutter"]=i,n.selection&&(r["&.cm-focused .cm-selectionBackground, & .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:n.selection+" !important"}),n.selectionMatch&&(r["& .cm-selectionMatch"]={backgroundColor:n.selectionMatch});var l=T.theme(r,{dark:e==="dark"}),c=Po.define(o),u=[l,un(c)];return u},xc={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#ddceb154"},yc=t=>{var{theme:e="light",settings:n={},styles:o=[]}=t||{};return Nr({theme:e,settings:go({},xc,n),styles:[{tag:[m.comment,m.bracket],color:"#b6ad9a"},{tag:[m.atom,m.number,m.keyword,m.link,m.attributeName,m.quote],color:"#063289"},{tag:[m.emphasis,m.heading,m.tagName,m.propertyName,m.variableName],color:"#2d2006"},{tag:[m.typeName,m.url,m.string],color:"#896724"},{tag:[m.operator,m.string],color:"#1659df"},{tag:[m.propertyName],color:"#b29762"},{tag:[m.unit,m.punctuation],color:"#063289"},...o]})},bc=yc(),vc={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"#91ff6c26",selectionMatch:"#91ff6c26",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},Cc=t=>{var{theme:e="dark",settings:n={},styles:o=[]}=t||{};return Nr({theme:e,settings:go({},vc,n),styles:[{tag:[m.comment,m.bracket],color:"#6c6783"},{tag:[m.atom,m.number,m.keyword,m.link,m.attributeName,m.quote],color:"#ffcc99"},{tag:[m.emphasis,m.heading,m.tagName,m.propertyName,m.className,m.variableName],color:"#eeebff"},{tag:[m.typeName,m.url],color:"#7a63ee"},{tag:m.operator,color:"#ffad5c"},{tag:m.string,color:"#ffb870"},{tag:[m.propertyName],color:"#9a86fd"},{tag:[m.unit,m.punctuation],color:"#e09142"},...o]})},Sc=Cc();const jc=j("aside")(({theme:t})=>({height:"50px",backgroundColor:t.palette.background.paper,borderTopRightRadius:t.shape.borderRadiusMedium,borderTopLeftRadius:t.shape.borderRadiusMedium,padding:t.spacing(1,2),color:t.palette.text.primary,display:"flex",justifyContent:"space-between",alignItems:"center",border:`1px solid ${t.palette.divider}`})),$r=j("div")(({theme:t,style:e})=>({width:t.spacing(3),height:t.spacing(3),display:"flex",alignItems:"center",color:t.palette.background.paper,justifyContent:"center",transition:"background-color 0.5s ease-in-out",borderRadius:"50%",...e})),kc=j("div")(({theme:t})=>({fontSize:t.fontSizes.smallBody,color:t.palette.error.dark,marginRight:t.spacing(1)})),wc=()=>{const t=N();return a.jsx($r,{style:{backgroundColor:t.palette.success.main},children:a.jsx(os,{sx:e=>({width:e.spacing(2),height:e.spacing(2)})})})},Ac=()=>{const t=N();return a.jsx($r,{style:{backgroundColor:t.palette.error.main},children:a.jsx(rs,{})})},Ec=({context:t,setContext:e,error:n})=>{const{themeMode:o}=x.useContext(ns),r=N(),s=x.useCallback(i=>{e(i)},[e]);return a.jsxs(E,{sx:{width:"100%"},children:[a.jsxs(jc,{children:["JSON",a.jsx(S,{condition:!!n,show:a.jsxs(E,{sx:i=>({display:"flex",alignItems:"center"}),children:[a.jsx(kc,{children:n}),a.jsx(Ac,{})]}),elseShow:a.jsx(wc,{})})]}),a.jsx(Wr,{value:t,height:"150px",theme:o==="dark"?Sc:bc,extensions:[ui()],onChange:s,style:{border:`1px solid ${r.palette.divider}`,borderTop:"none"},placeholder:JSON.stringify({currentTime:"2022-07-04T14:13:03.929Z",appName:"playground",userId:"test",remoteAddress:"127.0.0.1"},null,2)})]})};function Ur(t){return Array.isArray(t)?t:[t]}const Ic=t=>!t||t.length===0||t.length===1&&t[0]==="*"?"*":Ur(t),Lc=t=>Ur(t),Rc=t=>{const e=Dc(t);return e.length>0?e[0]:""},Dc=t=>t.filter(({enabled:e})=>!!e).sort((e,n)=>e.sortOrder-n.sortOrder).map(({name:e})=>e),Bc=(t,e)=>t?"100%":e&&!t?"60%":"50%",Tc=t=>typeof t=="string"?!0:Array.isArray(t)?t.every(e=>typeof e=="string"):!1,Mc=t=>{const e=new Set(["appName","environment","userId","sessionId","remoteAddress","currentTime","properties"]),n={...t};let o=!1;for(const r in t)e.has(r)||(n.properties||(n.properties={}),n.properties[r]=t[r],delete n[r],o=!0);return!o&&!t.properties&&delete n.properties,n},Pc=t=>{const[e]=t.split("."),[n,o]=e.split(":");if(!n||!o)throw new Error("Invalid token format");if(o==="*")throw new Error("Admin tokens are not supported in the playground")},Oc=t=>{const[e]=t.split(".");return e.split(":")},Fc=({context:t,setContext:e})=>{const n=N(),{setToastData:o}=xo(),{context:r}=ss(),s=r.sort((y,g)=>y.sortOrder-g.sortOrder).map(({name:y})=>y),[i,l]=x.useState(),[c,u]=x.useState(!1),[d,h]=x.useState(""),[f,p]=x.useState(""),b=x.useMemo(()=>vi(y=>{var g;if(!y)return l(void 0);try{const w=JSON.parse(y);u(w[d]!==void 0||((g=w==null?void 0:w.properties)==null?void 0:g[d])!==void 0)}catch(w){return l($e(w))}return l(void 0)},250),[l,d,u]);x.useEffect(()=>{b(t)},[b,t]);const O=()=>{try{const y=JSON.parse(t||"{}");e(JSON.stringify(Mc({...y,[d]:f}),null,2));const g=r.find(w=>w.name===d);if(g!=null&&g.legalValues&&g.legalValues.length>0||d==="currentTime")return p("")}catch(y){o({type:"error",title:`Error parsing context: ${$e(y)}`})}},L=(y,g)=>{if(Tc(g)){if(Array.isArray(g)){const w=(g||[]).length>1?g.join(","):g[0];return p(w)}p(g)}},U=()=>{if(!f||f==="")return[];const y=r.find(w=>w.name===d),g=((y==null?void 0:y.legalValues)||[]).length>1;return f.includes(",")&&g?f.split(","):[f]},k=()=>{if(d==="currentTime"){const g=En(f),R=g?In(g.toISOString()):In(new Date().toISOString());return a.jsx(Ue,{id:"date",label:"Date",size:"small",type:"datetime-local",value:R,sx:{width:200,maxWidth:"100%"},onChange:P=>{const A=En(P.target.value),z=A==null?void 0:A.toISOString();z&&p(z)},InputLabelProps:{shrink:!0},required:!0})}const y=r.find(g=>g.name===d);if(y!=null&&y.legalValues&&y.legalValues.length>0){const g=y.legalValues.map(({value:w})=>w);return a.jsx(Ut,{disablePortal:!0,limitTags:3,id:"context-legal-values",freeSolo:!0,filterSelectedOptions:!0,size:"small",value:U(),onChange:L,options:g,multiple:!0,sx:{width:370,maxWidth:"100%"},renderInput:w=>a.jsx(Ue,{...w,label:"Value"}),disableCloseOnSelect:!1})}return a.jsx(Ue,{label:"Value",id:"context-value",sx:{width:370,maxWidth:"100%"},placeholder:"value1,value2,value3",size:"small",value:f,onChange:g=>p(g.target.value||"")})},$=y=>{if(h(y.target.value||""),y.target.value==="currentTime")return p(new Date().toISOString());p("")};return a.jsxs(E,{children:[a.jsx(E,{sx:{display:"flex",alignItems:"center",mb:2},children:a.jsx(M,{variant:"body2",color:n.palette.text.primary,sx:{ml:1},children:"Unleash context"})}),a.jsxs(E,{sx:{display:"flex",gap:2,flexWrap:"wrap",mb:2},children:[a.jsxs(is,{children:[a.jsx(ls,{id:"context-field-label",size:"small",children:"Context field"}),a.jsx(as,{label:"Context field",labelId:"context-field-label",id:"context-field",value:d,onChange:$,variant:"outlined",size:"small",sx:{width:200,maxWidth:"100%"},children:s.map(y=>a.jsx(cs,{value:y,children:y},y))})]}),k(),a.jsx(tn,{variant:"outlined",disabled:!d||!!i,onClick:O,sx:{width:"95px",maxHeight:"40px"},children:`${c?"Replace":"Add"} `})]}),a.jsx(Ec,{context:t,setContext:e,error:i})]})},Wc=j(ds)(({theme:t})=>({marginRight:t.spacing(.4)})),co=(t,e,{selected:n})=>a.jsxs("li",{...t,children:[a.jsx(Wc,{icon:a.jsx(us,{fontSize:"small"}),checkedIcon:a.jsx(hs,{fontSize:"small"}),checked:n}),e.label]}),se={label:"ALL",id:"*"},Nc=j(fs)({fontSize:"1.25rem"}),$c=({environments:t,projects:e,token:n,setProjects:o,setEnvironments:r,setToken:s,availableEnvironments:i})=>{const l=N(),{tokens:c}=hi(),[u,d]=x.useState(),{projects:h}=ms(),f=[se,...h.map(({name:C,id:D})=>({label:C,id:D}))],p=[...i.map(C=>({label:C,id:C}))],b=(C,D,q)=>{const W=D;return q==="clear"||W===null?o([se.id]):Array.isArray(W)?W.length===0?o([se.id]):W.find(({id:ce})=>ce===se.id)!==void 0?o([se.id]):o(W.map(({id:ce})=>ce)):W.id===se.id?o([se.id]):o([W.id])},O=(C,D,q)=>{const W=D;return q==="clear"||W===null?r([]):Array.isArray(W)?W.length===0?r([]):r(W.map(({id:ce})=>ce)):r([W.id])},L=e&&(e.length===0||e.length===1&&e[0]==="*"),U=p.filter(({id:C})=>t.includes(C)),k=async C=>{const D=C.target.value;if(s==null||s(D),D===""){P();return}try{Pc(D),d(void 0),$(D)}catch(q){d(q.message)}},$=C=>{const[D,q]=Oc(C);switch(r([q]),D){case"[]":g(C);break;case"*":w();break;default:R(D)}},y=C=>{!C.projects||C.projects==="*"?o([se.id]):typeof C.projects=="string"?o([C.projects]):Array.isArray(C.projects)&&o(C.projects)},g=C=>{const D=c.find(({secret:q})=>q===C);D?y(D):d("Invalid token. Ensure you use a valid token from this Unleash instance.")},w=()=>{o([se.id])},R=C=>{f.map(D=>D.id).includes(C)?o([C]):d(`Invalid token. Project ${C} does not exist.`)},P=()=>{d(void 0)},A=()=>{s==null||s(""),P()},z=()=>a.jsx(gs,{position:"end","data-testid":"TOKEN_INPUT_CLEAR_BTN",children:a.jsx(Ce,{"aria-label":"toggle password visibility",onClick:A,edge:"end",children:a.jsx(Nc,{})})});return a.jsxs(E,{sx:{pb:2},children:[a.jsx(E,{sx:{display:"flex",alignItems:"center",mb:2},children:a.jsx(M,{variant:"body2",color:l.palette.text.primary,sx:{ml:1},children:"Access configuration"})}),a.jsxs(E,{sx:{display:"flex",gap:2,flexWrap:"wrap"},children:[a.jsx(Ln,{arrow:!0,title:n?"Environment is automatically selected because you are using a token":"Select environments to use in the playground",children:a.jsx(Ut,{disablePortal:!0,limitTags:3,id:"environment",multiple:!0,options:p,sx:{flex:1},renderInput:C=>a.jsx(Ue,{...C,label:"Environments"}),renderOption:co,getOptionLabel:({label:C})=>C,disableCloseOnSelect:!1,size:"small",value:U,onChange:O,disabled:!!n,"data-testid":"PLAYGROUND_ENVIRONMENT_SELECT"})}),a.jsx(Ln,{arrow:!0,title:n?"Project is automatically selected because you are using a token":"Select projects to use in the playground",children:a.jsx(Ut,{disablePortal:!0,id:"projects",limitTags:3,multiple:!L,options:f,sx:{flex:1},renderInput:C=>a.jsx(Ue,{...C,label:"Projects"}),renderOption:co,getOptionLabel:({label:C})=>C,disableCloseOnSelect:!0,size:"small",value:L?se:f.filter(({id:C})=>e.includes(C)),onChange:b,disabled:!!n,"data-testid":"PLAYGROUND_PROJECT_SELECT"})})]}),a.jsx(ps,{sx:{mt:2,width:"50%",pr:1},label:"API token",value:n||"",onChange:k,type:"text",error:!!u,errorText:u,placeholder:"Enter your API token","data-testid":"PLAYGROUND_TOKEN_INPUT",InputProps:{endAdornment:n?z():null}})]})},Uc=({availableEnvironments:t,environments:e,onSubmit:n,projects:o,token:r,setToken:s,setProjects:i,setEnvironments:l,context:c,setContext:u})=>a.jsxs(E,{component:"form",onSubmit:n,sx:{display:"flex",flexDirection:"column"},children:[a.jsx($c,{environments:Array.isArray(e)?e:[e],projects:o,token:r,setToken:s,setEnvironments:l,setProjects:i,availableEnvironments:t.map(({name:d})=>d)}),a.jsx(Fc,{context:c,setContext:u}),a.jsx(E,{sx:{mt:2,display:"flex",alignItems:"center",justifyContent:"space-between"},children:a.jsx(tn,{variant:"contained",size:"large",type:"submit",sx:{marginLeft:"auto"},children:"Try configuration"})})]}),Hc=j("div")(({style:t,theme:e})=>({width:"25px",height:"25px",borderRadius:"50%",color:e.palette.common.white,display:"flex",alignItems:"center",justifyContent:"center",fontWeight:"bold",...t})),zc=({style:t,children:e,type:n})=>{const o=N(),r={backgroundColor:o.palette.background.alternative,color:o.palette.common.white};return n==="secondary"&&(r.backgroundColor=o.palette.background.paper,r.color=o.palette.text.secondary),a.jsx(Hc,{style:{...r,...t},children:e})},Wt=({headerText:t,bodyText:e,sectionNumber:n})=>a.jsx(E,{sx:{display:"flex",alignItems:"flex-start",mt:2,flexDirection:"column"},children:a.jsxs(E,{sx:{display:"flex"},children:[a.jsx(E,{children:a.jsx(zc,{children:n})}),a.jsxs(E,{sx:{ml:2,display:"flex",flexDirection:"column"},children:[a.jsx(M,{variant:"body1",sx:{fontWeight:"bold"},children:t}),a.jsx(S,{condition:!!e,show:a.jsx(M,{variant:"body1",sx:{mt:1},children:e})})]})]})}),Hr=()=>a.jsxs(E,{sx:{ml:4},children:[a.jsx(M,{variant:"body1",children:"Unleash playground is for helping you to understand how Unleash works, how feature toggles are evaluated and for you to easily debug your feature toggles."}),a.jsx(xs,{sx:{mt:2,mb:2}}),a.jsx(M,{variant:"body1",sx:{mb:1},children:"What you need to do is:"}),a.jsx(Wt,{headerText:`Select in which environment you want to test your
|
|
3
3
|
feature toggle configuration`,bodyText:`You can also specify specific projects, or check
|
|
4
4
|
toggles in all projects.`,sectionNumber:"1"}),a.jsx(Wt,{headerText:"Select a context field that you'd like to check",bodyText:"You can configure as many context fields as you want. You can also leave the context empty to test against an empty context.",sectionNumber:"2"}),a.jsx(Wt,{headerText:"Submit the form to try the configuration",bodyText:"The results of evaluating your feature toggles will appear after you submit the form. Then view the results.",sectionNumber:"3"})]}),Vc=()=>{const[t,e]=x.useState(null),n=i=>e(i.currentTarget),o=()=>e(null),r=!!t,s="playground-guidance-popper";return a.jsxs(E,{children:[a.jsx(Ce,{onClick:n,"aria-describedby":s,children:a.jsx(gi,{})}),a.jsx(ys,{id:s,open:r,anchorEl:t,sx:i=>({zIndex:i.zIndex.tooltip}),children:a.jsxs(yo,{sx:i=>({padding:i.spacing(8,4),maxWidth:"500px",borderRadius:`${i.shape.borderRadiusExtraLarge}px`}),children:[a.jsx(Ce,{onClick:o,sx:{position:"absolute",right:25,top:15},children:a.jsx(bs,{})}),a.jsx(Hr,{})]})})]})},qc=t=>x.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},x.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84818 0.184159C8.56367 -0.0789547 8.1234 -0.0575747 7.86482 0.231912C7.60623 0.521399 7.62724 0.96937 7.91175 1.23248C9.48292 2.68551 10.6076 4.74934 10.6076 7C10.6076 9.25066 9.48292 11.3145 7.91175 12.7675C7.62724 13.0306 7.60623 13.4786 7.86482 13.7681C8.1234 14.0576 8.56367 14.079 8.84818 13.8158C10.6396 12.1592 11.9998 9.73702 11.9998 7C11.9998 4.26298 10.6396 1.84083 8.84818 0.184159ZM6.04105 2.23302C6.29109 1.93586 6.73054 1.90121 7.02259 2.15563C8.33146 3.29586 9.35426 5.02309 9.35426 6.99995C9.35426 8.97682 8.33145 10.7039 7.02259 11.8441C6.73054 12.0986 6.29109 12.0639 6.04105 11.7668C5.79101 11.4696 5.82506 11.0225 6.11711 10.768C7.19425 9.82969 7.96199 8.46967 7.96199 6.99995C7.96199 5.53021 7.19423 4.17007 6.11711 3.23173C5.82506 2.97731 5.79101 2.53017 6.04105 2.23302ZM6.56908 7.00015C6.56908 8.56492 5.3224 9.83342 3.78454 9.83342C2.24668 9.83342 1 8.56492 1 7.00015C1 5.43539 2.24668 4.16689 3.78454 4.16689C5.3224 4.16689 6.56908 5.43539 6.56908 7.00015Z",fill:"currentColor"})),Gc=t=>x.createElement("svg",{width:14,height:14,viewBox:"0 0 14 14",fill:"none",xmlns:"http://www.w3.org/2000/svg",...t},x.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M8.84835 0.184159C8.56384 -0.0789547 8.12358 -0.0575747 7.86499 0.231912C7.6064 0.521399 7.62741 0.96937 7.91192 1.23248C9.4831 2.68551 10.6078 4.74934 10.6078 7C10.6078 7.40738 10.5709 7.80863 10.5012 8.20125L11.6597 9.35972C11.8783 8.60937 12 7.81877 12 7C12 4.26298 10.6397 1.84083 8.84835 0.184159ZM9.35443 6.99995L9.35418 7.0542L7.63252 5.33255C7.30901 4.52372 6.76993 3.80029 6.11728 3.23173C5.82523 2.97731 5.79118 2.53017 6.04122 2.23302C6.29127 1.93586 6.73072 1.90121 7.02276 2.15563C8.33164 3.29586 9.35443 5.02309 9.35443 6.99995ZM7.57827 8.79752L6.48307 7.70233C6.17606 8.92745 5.08437 9.83342 3.78471 9.83342C2.24685 9.83342 1.00017 8.56492 1.00017 7.00015C1.00017 5.69492 1.8676 4.59583 3.04789 4.26714L0.458225 1.67748C0.172794 1.39205 0.178843 0.923223 0.471736 0.63033C0.764629 0.337437 1.23345 0.331388 1.51889 0.616819L13.2132 12.3111C13.4986 12.5965 13.4926 13.0654 13.1997 13.3583C12.9068 13.6511 12.4379 13.6572 12.1525 13.3718L10.556 11.7753C10.0694 12.539 9.48623 13.2259 8.84835 13.8158C8.56384 14.079 8.12358 14.0576 7.86499 13.7681C7.6064 13.4786 7.62741 13.0306 7.91192 12.7675C8.54021 12.1865 9.0971 11.5078 9.53922 10.7585L8.62356 9.84281C8.20906 10.6195 7.64861 11.2989 7.02276 11.8441C6.73072 12.0986 6.29127 12.0639 6.04122 11.7668C5.79118 11.4696 5.82523 11.0225 6.11728 10.768C6.73471 10.2302 7.25048 9.55374 7.57827 8.79752Z",fill:"currentColor"})),Te=({enabled:t,label:e,showIcon:n=!0})=>{const o=N(),r=a.jsx(S,{condition:t==="unknown"||t==="unevaluated",show:a.jsx(xi,{color:"warning",fontSize:"inherit"}),elseShow:a.jsx(S,{condition:typeof t=="boolean"&&!!t,show:a.jsx(qc,{color:o.palette.success.main,strokeWidth:"0.25"}),elseShow:a.jsx(Gc,{color:o.palette.error.main,strokeWidth:"0.25"})})});return a.jsx(S,{condition:t==="unknown"||t==="unevaluated",show:a.jsx(Ie,{icon:n?r:void 0,color:"warning",children:e}),elseShow:a.jsx(S,{condition:typeof t=="boolean"&&!!t,show:a.jsx(Ie,{color:"success",icon:n?r:void 0,children:e}),elseShow:a.jsx(Ie,{color:"error",icon:n?r:void 0,children:e})})})},Jc=j(E)(({theme:t})=>({display:"flex",alignItems:"center",padding:t.spacing(1,0,1,2)})),Kc=j(E)(()=>({marginRight:"auto"})),zr=({feature:t})=>{const[e,n]=(()=>{var o;return t!=null&&t.isEnabled?[!0,"True"]:((o=t==null?void 0:t.strategies)==null?void 0:o.result)==="unknown"?["unknown","Unknown"]:[!1,"False"]})();return a.jsx(Jc,{children:a.jsx(Kc,{"data-loading":!0,children:a.jsx(Te,{enabled:e,label:n,showIcon:e!=="unknown"})})})},Vr=["default","applicationHostname","flexibleRollout","gradualRolloutRandom","gradualRolloutSessionId","gradualRolloutUserId","remoteAddress","userWithId"];function qr(t){return t===void 0?!0:Object.values(t).every(e=>e&&typeof e=="object"?qr(e):e===null)}const uo=t=>{var e,n;return(n=(e=t.strategies)==null?void 0:e.data)==null?void 0:n.find(o=>!Vr.includes(o.name))},_c=t=>{var e,n,o,r;return((n=(e=t.strategies)==null?void 0:e.data)==null?void 0:n.length)>0&&!((r=(o=t.strategies)==null?void 0:o.data)!=null&&r.find(s=>Vr.includes(s.name)))},Qc=j("div")({display:"flex",justifyContent:"space-between",width:"100%"}),Yc=j("div")(({theme:t})=>({display:"inline-flex",alignItems:"center",gap:t.spacing(1.5),marginTop:t.spacing(1.5)})),ho=j("div")(({theme:t})=>({margin:t.spacing(1,0)})),Zc=j("div")(({theme:t})=>({margin:t.spacing(1,.5)})),Xc=j(M)(({theme:t})=>({fontWeight:600,padding:t.spacing(.5)})),ed=j(Ce)({textAlign:"right"}),td=({feature:t,input:e,onClose:n})=>{var d;const o=N(),[r,s,i]=t.isEnabled?[`This feature toggle is True in ${e==null?void 0:e.environment} because `,"at least one strategy is True",o.palette.success.main]:t.hasUnsatisfiedDependency&&!t.isEnabledInCurrentEnvironment?[`This feature toggle is False in ${e==null?void 0:e.environment} because `,"parent dependency is not satisfied and the environment is disabled",o.palette.error.main]:t.isEnabledInCurrentEnvironment?_c(t)?[`This feature toggle is Unknown in ${e==null?void 0:e.environment} because `,"no strategies could be fully evaluated",o.palette.warning.main]:uo(t)?[`This feature toggle is Unknown in ${e==null?void 0:e.environment} because `,"not all strategies could be fully evaluated",o.palette.warning.main]:t.hasUnsatisfiedDependency?[`This feature toggle is False in ${e==null?void 0:e.environment} because `,"parent dependency is not satisfied",o.palette.error.main]:[`This feature toggle is False in ${e==null?void 0:e.environment} because `,"all strategies are either False or could not be fully evaluated",o.palette.error.main]:[`This feature toggle is False in ${e==null?void 0:e.environment} because `,"the environment is disabled",o.palette.error.main],l=qr(e==null?void 0:e.context)?"You did not provide a value for your context field in step 2 of the configuration":void 0,c=uo(t)?"This feature uses custom strategies. Custom strategies can't be evaluated, so they will be marked accordingly.":void 0,u=n&&(h=>{h.stopPropagation(),n()});return a.jsxs(a.Fragment,{children:[a.jsxs(Qc,{children:[a.jsxs(Yc,{children:[a.jsx(Xc,{variant:"subtitle1",children:t.name}),a.jsx(S,{condition:((d=t==null?void 0:t.strategies)==null?void 0:d.result)!=="unknown",show:()=>a.jsx(Te,{enabled:t.isEnabled,label:t.isEnabled?"True":"False"}),elseShow:()=>a.jsx(Te,{enabled:"unknown",label:"Unknown",showIcon:!1})})]}),a.jsx(ed,{onClick:u,children:a.jsx(vs,{})})]}),a.jsxs(Zc,{children:[a.jsx(M,{variant:"body1",component:"span",children:r}),a.jsx(M,{variant:"subtitle1",color:i,component:"span",children:s}),a.jsx(M,{variant:"body1",component:"span",children:"."})]}),a.jsx(S,{condition:!!l,show:a.jsx(ho,{children:a.jsx(ze,{color:"info",children:l})})}),a.jsx(S,{condition:!!c,show:a.jsx(ho,{children:a.jsx(ze,{severity:"warning",color:"info",children:c})})})]})},nd=j("div")(({theme:t})=>({display:"flex",alignItems:"center",marginTop:t.spacing(1),color:t.palette.error.main})),od=({constraint:t,input:e})=>{const n=()=>{const o=e==null?void 0:e.context[t.contextName];return o?`Constraint not met – the value in the context: { ${o} } is not ${t.operator} ${t.contextName}`:`Constraint not met – no value was specified for ${t.contextName}`};return a.jsxs(nd,{children:[a.jsx(Ct,{style:{marginRight:"0.25rem"}}),a.jsx(M,{variant:"body2",children:n()})]})},rd=j(mi)(({theme:t})=>({color:t.palette.success.main})),sd=j("div")(({theme:t})=>({display:"flex",alignItems:"center",marginTop:t.spacing(1),color:t.palette.success.main})),id=()=>a.jsxs(sd,{children:[a.jsx(rd,{style:{marginRight:"0.25rem"}}),a.jsx(M,{variant:"body2",children:"Constraint met by value in context"})]}),ld=j("div")(()=>({width:"100%",display:"flex",flexDirection:"column"})),Gr=({constraints:t,input:e})=>t?a.jsx(ld,{children:t==null?void 0:t.map((n,o)=>a.jsxs(x.Fragment,{children:[a.jsx(S,{condition:o>0,show:a.jsx(ge,{text:"AND"})}),a.jsx(bo,{constraint:n,compact:!0,renderAfter:a.jsx(S,{condition:n.result,show:a.jsx(id,{}),elseShow:a.jsx(od,{input:e,constraint:n})})})]},nn(n)))}):null,ad=j("div")(({theme:t})=>({color:t.palette.error.main,display:"inline-flex",justifyContent:"center",marginLeft:"auto",gap:t.spacing(1)})),cd=({segments:t,input:e})=>t?a.jsx(a.Fragment,{children:t.map((n,o)=>a.jsxs(x.Fragment,{children:[a.jsx(vo,{segment:n,constraintList:a.jsx(Gr,{constraints:n.constraints,input:e}),headerContent:a.jsx(S,{condition:!n.result,show:a.jsxs(ad,{children:[a.jsx(M,{variant:"subtitle2",sx:{pt:.25},children:"segment is false"}),a.jsx("span",{children:a.jsx(Ct,{})})]})}),isExpanded:!0}),a.jsx(S,{condition:o>=0&&t.length>1&&o!==t.length-1,show:a.jsx(ge,{text:"AND"})})]},n.id))}):null,dd=j("div",{shouldForwardProp:t=>t!=="showReason"})(({theme:t,showReason:e})=>({width:"100%",padding:t.spacing(2,3),borderRadius:t.shape.borderRadiusMedium,border:`1px solid ${t.palette.divider}`,display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:t.spacing(2),opacity:e?.9:1,backgroundColor:e?t.palette.background.paper:"inherit"})),ud=j("div")(({theme:t})=>({flexDirection:"column"})),hd=j(Cs)(({theme:t})=>({margin:t.spacing(.5)})),fd=j("p",{shouldForwardProp:t=>t!=="disabled"})(({theme:t,disabled:e})=>({display:"inline",margin:t.spacing(.5,0),maxWidth:"95%",textAlign:"center",wordBreak:"break-word",color:e?t.palette.text.secondary:"inherit"})),Nt=({value:t,text:e,input:n,showReason:o=!1,disabled:r=!1})=>{const s=N(),i=n==="no value"&&!r?"error":"neutral",l=`value does not match any ${e}`;return a.jsxs(dd,{showReason:o,children:[a.jsx(M,{variant:"subtitle1",color:s.palette[i].main,children:`${n}`}),a.jsxs(ud,{children:[a.jsx(S,{condition:!!o,show:a.jsx(M,{variant:"subtitle1",color:r?s.palette.text.secondary:s.palette.error.main,children:l})}),a.jsx(S,{condition:t.length===0,show:a.jsxs("p",{children:["No ",e,"s added yet."]}),elseShow:a.jsxs("div",{children:[a.jsxs(fd,{disabled:r,children:[t.length," ",t.length>1?`${e}s`:e," will get access."]}),t.map(c=>a.jsx(hd,{disabled:r,label:a.jsx(Ht,{maxWidth:"300",text:c.toString(),maxLength:50})},c))]})})]}),a.jsx(S,{condition:!!o,show:a.jsx(Ct,{color:r?"disabled":"error"}),elseShow:a.jsx("div",{})})]})},An=j(E)(({theme:t})=>({width:"auto",height:"auto",padding:t.spacing(2,3),borderRadius:t.shape.borderRadiusMedium,border:`1px solid ${t.palette.divider}`})),fe=t=>{switch(t.toUpperCase()){case"USERIDS":return"userId";case"IPS":return"remoteAddress";default:return t}},md=({percentage:t,size:e="4rem"})=>{const n=N(),o={display:"block",borderRadius:"100%",transform:"rotate(-90deg)",height:e,width:e,background:n.palette.background.elevation2},r=100/(2*Math.PI),s=2*r;return a.jsxs("svg",{viewBox:`0 0 ${s} ${s}`,style:o,"aria-hidden":!0,children:[a.jsxs("title",{children:["A circle progress bar with ",t,"% completion."]}),a.jsx("circle",{r,cx:r,cy:r,fill:"none",stroke:n.palette.neutral.border,strokeWidth:s,strokeDasharray:`${t} 100`})]})},pd=j("div",{shouldForwardProp:t=>t!=="disabled"})(({theme:t,disabled:e})=>({color:e?t.palette.text.secondary:t.palette.neutral.main})),Jr=({parameters:t,constraints:e,input:n,disabled:o=!1})=>a.jsx(a.Fragment,{children:Object.keys(t).map(r=>{var s,i,l,c,u,d,h,f;switch(r){case"rollout":case"Rollout":{const p=zt(t[r]);return a.jsxs(An,{sx:{display:"flex",alignItems:"center"},children:[a.jsx(E,{sx:b=>({mr:"1rem",color:o?b.palette.neutral.border:b.palette.text.secondary}),children:a.jsx(S,{condition:o,show:a.jsx(md,{percentage:p,size:"2rem"}),elseShow:a.jsx(Ss,{percentage:p,size:"2rem"})})}),a.jsxs(pd,{disabled:o,children:[a.jsxs(Ie,{color:o?"disabled":"success",children:[p,"%"]})," ","of your base"," ",e.length>0?"who match constraints":""," ","is included."]})]},r)}case"userIds":case"UserIds":{const p=ot(t[r]);return a.jsx(Nt,{value:p,text:"user",input:(s=n==null?void 0:n.context)!=null&&s[fe(r)]?(i=n==null?void 0:n.context)==null?void 0:i[fe(r)]:"no value",showReason:(l=n==null?void 0:n.context)!=null&&l[fe(r)]?!p.includes((c=n==null?void 0:n.context)==null?void 0:c[fe(r)]):void 0},r)}case"hostNames":case"HostNames":{const p=ot(t[r]);return a.jsx(Nt,{value:p,text:"host",input:"no value",showReason:void 0,disabled:o},r)}case"IPs":{const p=ot(t[r]);return a.jsx(Nt,{value:p,text:"IP",disabled:o,input:(u=n==null?void 0:n.context)!=null&&u[fe(r)]?(d=n==null?void 0:n.context)==null?void 0:d[fe(r)]:"no value",showReason:(h=n==null?void 0:n.context)!=null&&h[fe(r)]?!p.includes((f=n==null?void 0:n.context)==null?void 0:f[fe(r)]):void 0},r)}case"stickiness":case"groupId":return null;default:return null}})}),gd=j(E)(({theme:t})=>({width:"100%",padding:t.spacing(2,3),borderRadius:t.shape.borderRadiusMedium,border:`1px solid ${t.palette.divider}`,display:"flex",flexDirection:"row",alignItems:"center",gap:2})),Ne=({text:t,input:e=null,isRequired:n=!1})=>{const o=N(),r=e===null?"error":"neutral",s=n&&e===null;return a.jsxs(gd,{children:[a.jsx(M,{variant:"subtitle1",color:o.palette[r].main,sx:{minWidth:118},children:`${e===null?"no value":e}`}),a.jsx(E,{sx:{flexGrow:1,flexDirection:"column"},children:a.jsx(E,{sx:{flexGrow:1},children:a.jsx(S,{condition:!!s,show:a.jsxs(a.Fragment,{children:[a.jsx(M,{component:"span",color:o.palette.error.main,children:" required parameter "}),a.jsx(Ht,{maxWidth:"300",text:t,maxLength:50}),a.jsx(M,{component:"span",color:o.palette.error.main,children:" is not set "})]}),elseShow:a.jsxs(a.Fragment,{children:[a.jsx(M,{component:"span",color:"text.disabled",children:" set on parameter "}),a.jsx(Ht,{maxWidth:"300",text:t,maxLength:50})]})})})}),a.jsx(S,{condition:!!s,show:a.jsx(Ct,{color:"error"}),elseShow:a.jsx("div",{})})]})},Kr=({strategyName:t,parameters:e})=>{const{strategies:n}=js(),o=n.find(s=>s.name===t);if(!(o!=null&&o.editable))return null;const r=o==null?void 0:o.parameters.map(s=>{const i=e[s.name],l=s.required;switch(s==null?void 0:s.type){case"list":{const c=ot(i);return a.jsx(Ne,{isRequired:l,text:s.name,input:(c==null?void 0:c.length)>0?c.join(", "):null})}case"percentage":{const c=zt(i),u=!(i===void 0||i===""||c<0||c>100);return a.jsx(Ne,{text:s.name,isRequired:l,input:u?`${c}%`:void 0})}case"boolean":{const c=["true","false"].includes(i)?i:void 0;return a.jsx(Ne,{isRequired:l,text:s.name,input:i!==void 0?c:void 0})}case"string":{const c=ks(i);return a.jsx(Ne,{text:s.name,isRequired:l,input:c!==void 0?c:void 0})}case"number":{const c=!(i===void 0||i===""),u=zt(i);return a.jsx(Ne,{text:s.name,isRequired:l,input:c?`${u}`:void 0})}case"default":return null}return null});return a.jsx(a.Fragment,{children:r.map((s,i)=>a.jsxs(x.Fragment,{children:[a.jsx(S,{condition:i>0,show:a.jsx(ge,{text:"AND"})}),s]},i))})},xd=j("div")(({theme:t})=>({padding:t.spacing(0)})),yd=({strategyResult:t,input:e})=>{const{name:n,constraints:o,segments:r,parameters:s}=t,i=!!(r&&r.length>0),l=!!(o&&(o==null?void 0:o.length)>0),c=n!=="default"&&Object.keys(Co).includes(n),u=Object.keys(s).length>0&&t.result.evaluationStatus==="incomplete";if(!s)return null;const d=[i&&a.jsx(cd,{segments:r,input:e}),l&&a.jsx(Gr,{constraints:o,input:e}),c&&a.jsx(Jr,{parameters:s,constraints:o,input:e}),u&&a.jsx(Kr,{strategyName:n,parameters:s}),n==="default"&&a.jsxs(An,{sx:{width:"100%"},children:["The standard strategy is ",a.jsx(Ie,{color:"success",children:"ON"})," for all users."]})].filter(Boolean);return a.jsx(xd,{children:d.map((h,f)=>a.jsxs(x.Fragment,{children:[a.jsx(S,{condition:f>0&&(t.name==="flexibleRollout"?f<d.length:f<d.length-1),show:a.jsx(ge,{text:"AND"})}),h]},f))})},bd=j("div")(()=>({width:"100%",display:"flex",flexDirection:"column"})),_r=({constraints:t})=>t?a.jsx(bd,{children:t==null?void 0:t.map((e,n)=>a.jsxs(x.Fragment,{children:[a.jsx(S,{condition:n>0,show:a.jsx(ge,{text:"AND"})}),a.jsx(bo,{constraint:e,compact:!0,disabled:!0})]},nn(e)))}):null,vd=({segments:t})=>t?a.jsx(a.Fragment,{children:t.map((e,n)=>a.jsxs(x.Fragment,{children:[a.jsx(vo,{segment:e,constraintList:a.jsx(_r,{constraints:e.constraints}),isExpanded:!0,disabled:!0}),a.jsx(S,{condition:n>=0&&t.length>1&&n!==t.length-1,show:a.jsx(ge,{text:"AND"})})]},e.id))}):null,Cd=j("div")(({theme:t})=>({padding:t.spacing(0)})),Sd=({strategyResult:t,input:e,percentageFill:n})=>{const{name:o,constraints:r,segments:s,parameters:i}=t,l=!!(s&&s.length>0),c=!!(r&&(r==null?void 0:r.length)>0),u=o!=="default"&&Object.keys(Co).includes(o),d=Object.keys(i).length>0&&t.result.evaluationStatus==="incomplete";if(!i)return null;const h=[l&&a.jsx(vd,{segments:s}),c&&a.jsx(_r,{constraints:r}),u&&a.jsx(Jr,{parameters:i,constraints:r,input:e,disabled:!0}),d&&a.jsx(Kr,{strategyName:o,parameters:i}),o==="default"&&a.jsxs(An,{sx:f=>({width:"100%",color:f.palette.text.secondary}),children:["The standard strategy is"," ",a.jsx(Ie,{color:"disabled",children:"ON"})," for all users."]})].filter(Boolean);return a.jsx(Cd,{children:h.map((f,p)=>a.jsxs(x.Fragment,{children:[a.jsx(S,{condition:p>0&&(t.name==="flexibleRollout"?p<h.length:p<h.length-1),show:a.jsx(ge,{text:"AND"})}),f]},p))})},jd=({strategy:t,input:e,index:n})=>{const{result:o}=t,r=N(),s=o.evaluationStatus==="incomplete"||o.evaluationStatus==="unevaluated"?"Unevaluated":o.enabled?"True":"False";return a.jsx(fi,{style:{borderColor:o.enabled&&o.evaluationStatus==="complete"?r.palette.success.main:"none"},strategy:{...t,id:`${nn(t)}`},orderNumber:n+1,actions:a.jsx(Te,{showIcon:!1,enabled:o.enabled,label:s}),children:a.jsx(S,{condition:!!t.disabled,show:a.jsx(Sd,{strategyResult:t,input:e}),elseShow:a.jsx(yd,{strategyResult:t,input:e,percentageFill:r.palette.background.elevation2})})})},kd=j("div")(({theme:t})=>({display:"flex",padding:"0, 4px",flexDirection:"column",borderRadius:t.shape.borderRadiusMedium,border:`1px solid ${t.palette.warning.border}`})),fo=j("div")(({theme:t})=>({padding:t.spacing(1,.5)})),wd=j(ze)(({theme:t})=>({border:"0!important",borderBottomLeftRadius:0,borderBottomRightRadius:0,borderBottom:`1px solid ${t.palette.warning.border}!important`})),mo=j(M)(({theme:t})=>({margin:t.spacing(2,1,2,0),color:"text.secondary"})),gt=({strategies:t,input:e,titlePrefix:n,infoText:o})=>a.jsx(S,{condition:t.length>0,show:a.jsxs(a.Fragment,{children:[a.jsx(mo,{variant:"subtitle1",children:`${n?n.concat(" strategies"):"Strategies"} (${t==null?void 0:t.length})`}),a.jsx(S,{condition:!!o,show:a.jsx(mo,{variant:"subtitle2",children:o})}),a.jsx(E,{sx:{width:"100%"},children:t==null?void 0:t.map((r,s)=>a.jsxs(x.Fragment,{children:[a.jsx(S,{condition:s>0,show:a.jsx(ge,{text:"OR"})}),a.jsx(jd,{strategy:r,index:s,input:e},r.id)]},r.id))})]})}),Ad=t=>t.hasUnsatisfiedDependency&&!t.isEnabledInCurrentEnvironment?"If environment was enabled and parent dependencies were satisfied":t.hasUnsatisfiedDependency?"If parent dependencies were satisfied":t.isEnabledInCurrentEnvironment?"":"If environment was enabled",Ed=({feature:t,input:e})=>{var s,i,l,c,u;const n=(i=(s=t.strategies)==null?void 0:s.data)==null?void 0:i.filter(d=>!d.disabled),o=(c=(l=t.strategies)==null?void 0:l.data)==null?void 0:c.filter(d=>d.disabled),r=(o==null?void 0:o.length)>0;return a.jsxs(kd,{sx:{pb:1,mt:2},children:[a.jsxs(wd,{severity:"info",color:"warning",children:[Ad(t),", then this feature toggle would be"," ",(u=t.strategies)!=null&&u.result?"TRUE":"FALSE"," with strategies evaluated like so:"," "]}),a.jsx(fo,{sx:{p:2.5},children:a.jsx(gt,{strategies:n||[],input:e,titlePrefix:r?"Enabled":""})}),a.jsx(S,{condition:r,show:a.jsx(fo,{sx:{p:2.5},children:a.jsx(gt,{strategies:o,input:e,titlePrefix:"Disabled",infoText:"Disabled strategies are not evaluated for the overall result."})})})]})},Id=({feature:t,input:e})=>{var s,i,l,c,u,d,h;const n=(i=(s=t.strategies)==null?void 0:s.data)==null?void 0:i.filter(f=>!f.disabled),o=(c=(l=t.strategies)==null?void 0:l.data)==null?void 0:c.filter(f=>f.disabled),r=(o==null?void 0:o.length)>0;return a.jsxs(a.Fragment,{children:[a.jsx(S,{condition:((d=(u=t==null?void 0:t.strategies)==null?void 0:u.data)==null?void 0:d.length)===0,show:a.jsx(ze,{severity:"warning",sx:{mt:2},children:"There are no strategies added to this feature toggle in selected environment."})}),a.jsx(S,{condition:(t.hasUnsatisfiedDependency||!t.isEnabledInCurrentEnvironment)&&!!((h=t==null?void 0:t.strategies)!=null&&h.data),show:a.jsx(Ed,{feature:t,input:e}),elseShow:a.jsxs(a.Fragment,{children:[a.jsx(gt,{strategies:n||[],input:e,titlePrefix:r?"Enabled":""}),a.jsx(S,{condition:r,show:a.jsx(gt,{strategies:o,input:e,titlePrefix:"Disabled",infoText:"Disabled strategies are not evaluated for the overall result."})})]})})]})},Ld=j("div")(({theme:t})=>({alignItems:"flex-end",color:t.palette.divider})),Qr=({feature:t,input:e})=>{const[n,o]=x.useState(!1),r=x.useRef(null),s=()=>{o(!n)};return t?a.jsxs(Ld,{children:[a.jsx(Ce,{onClick:s,children:a.jsx(on,{ref:r})}),a.jsxs(xt,{open:n,onClose:()=>o(!1),anchorEl:r.current,PaperProps:{sx:i=>({display:"flex",flexDirection:"column",padding:i.spacing(6),width:728,maxWidth:"100%",height:"auto",overflowY:"auto",backgroundColor:i.palette.background.elevation2,borderRadius:i.shape.borderRadius})},anchorOrigin:{vertical:"top",horizontal:"right"},transformOrigin:{vertical:"center",horizontal:"left"},children:[a.jsx(td,{feature:t,input:e,onClose:()=>o(!1)}),a.jsx(Id,{feature:t,input:e})]})]}):null},Rd=j("div")(({theme:t})=>({padding:t.spacing(4),maxWidth:"400px"})),$t=j(M)(({theme:t})=>({marginBottom:t.spacing(2)})),Dd=j(pi)(({theme:t})=>({color:t.palette.success.main})),Bd=({variants:t,selectedVariant:e})=>{const n=N(),o=x.useMemo(()=>t.map(d=>({name:d.name,weight:`${ws(d.weight)}%`,selected:d.name===e})),[t,e]),r=x.useMemo(()=>({sortBy:[{id:"name",desc:!1}]}),[]),{getTableProps:s,getTableBodyProps:i,headerGroups:l,rows:c,prepareRow:u}=G.useTable({initialState:r,columns:Td,data:o,sortTypes:yt,autoResetGlobalFilter:!1,autoResetSortBy:!1,disableSortRemove:!0},G.useGlobalFilter,G.useSortBy);return a.jsxs(Rd,{children:[a.jsx($t,{variant:"subtitle2",children:"Variant Information"}),a.jsx($t,{variant:"body2",children:"The following table shows the variants defined on this feature toggle and the variant result based on your context configuration."}),a.jsx($t,{variant:"body2",children:'If you include "userId" or "sessionId" in your context, the variant will be the same every time because unleash uses these properties to ensure that the user receives the same experience.'}),a.jsxs(As,{...s(),rowHeight:"dense",children:[a.jsx(Es,{headerGroups:l}),a.jsx(Is,{...i(),children:c.map(d=>{const h={};return d.original.selected||(h.color=n.palette.text.secondary),u(d),a.jsx(Ls,{hover:!0,...d.getRowProps(),children:d.cells.map(f=>a.jsx(Rs,{...f.getCellProps(),style:h,children:f.render("Cell")}))})})})]})]})},Td=[{id:"Icon",Cell:({row:{original:{selected:t}}})=>a.jsx(a.Fragment,{children:a.jsx(S,{condition:t,show:a.jsx(Ds,{icon:a.jsx(Dd,{})})})}),maxWidth:25,disableGlobalFilter:!0},{Header:"Name",accessor:"name",searchable:!0,Cell:({row:{original:{name:t}}})=>a.jsx(Rn,{children:t}),maxWidth:175,width:175},{Header:"Weight",accessor:"weight",sortType:"alphanumeric",searchable:!0,maxWidth:75,Cell:({row:{original:{weight:t}}})=>a.jsx(Rn,{children:t})}],Md=j("div")(()=>({maxWidth:"100%",display:"flex",alignItems:"center",wordBreak:"break-all"})),Pd=({variant:t,variants:e,feature:n,isEnabled:o})=>{const r=N(),[s,i]=x.useState(null),l=d=>i(d.currentTarget),c=()=>i(null),u=!!s;return a.jsxs(Md,{children:[t,a.jsx(S,{condition:!!e&&e.length>0&&o,show:a.jsxs(a.Fragment,{children:[a.jsx(Ce,{onClick:l,children:a.jsx(on,{})}),a.jsx(xt,{open:u,id:`${n}-result-variants`,PaperProps:{sx:{borderRadius:`${r.shape.borderRadiusLarge}px`}},onClose:c,anchorEl:s,anchorOrigin:{vertical:"bottom",horizontal:-320},children:a.jsx(Bd,{variants:e,selectedVariant:t})})]})})]})},Od=({features:t})=>{const e=N(),n=So(e.breakpoints.down("sm")),o=Object.keys(t[0].context).map(d=>({Header:rn(d),accessor:h=>h.context[d],minWidth:160,Cell:sn})),r=x.useMemo(()=>[...o,{Header:"Variant",id:"variant",accessor:"variant.name",sortType:"alphanumeric",filterName:"variant",maxWidth:200,Cell:({value:d,row:{original:{variant:h,feature:f,variants:p,isEnabled:b}}})=>a.jsx(Pd,{variant:h!=null&&h.enabled?d:"",variants:p,feature:f,isEnabled:b})},{id:"isEnabled",Header:"isEnabled",filterName:"isEnabled",accessor:d=>{var h;return d!=null&&d.isEnabled?"true":((h=d==null?void 0:d.strategies)==null?void 0:h.result)==="unknown"?"unknown":"false"},Cell:({row:d})=>a.jsx(zr,{feature:d.original}),sortType:"playgroundResultState",maxWidth:120,sortInverted:!0},{Header:"",maxWidth:70,id:"info",Cell:({row:d})=>a.jsx(Qr,{feature:d.original,input:{environment:d.original.environment,context:d.original.context}})}],[]),{headerGroups:s,rows:i,prepareRow:l,setHiddenColumns:c}=G.useTable({columns:r,data:t,sortTypes:yt,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},G.useGlobalFilter,G.useFlexLayout,G.useSortBy);jo([{condition:n,columns:["variant"]}],c,r);const u=x.useRef(null);return a.jsx(E,{ref:u,sx:{overflow:"auto",maxHeight:"800px"},children:a.jsx(ln,{parentRef:u,rows:i,headerGroups:s,prepareRow:l})})},Fd=j("div",{})(({theme:t})=>({flexGrow:0,...ko,justifyContent:"flex-start",margin:t.spacing(0,1.5)})),Wd=j(E)(({theme:t})=>({display:"flex",flexDirection:"row",gap:t.spacing(1)})),Nd=({value:t})=>{const e=N(),[n,o]=x.useState(null),r=u=>o(u.currentTarget),s=()=>o(null),i=!!n,l=(t||[]).filter(u=>u.isEnabled),c=(t||[]).filter(u=>!u.isEnabled);return a.jsxs(Fd,{children:[a.jsxs(Wd,{children:[a.jsx(S,{condition:l.length>0,show:a.jsx(Te,{enabled:!0,label:`${l.length}`,showIcon:!0})}),a.jsx(S,{condition:c.length>0,show:a.jsx(Te,{enabled:!1,label:`${c.length}`,showIcon:!0})})]}),a.jsxs(a.Fragment,{children:[a.jsx(Ce,{onClick:r,children:a.jsx(on,{})}),a.jsxs(xt,{open:i,id:`${t}-result-details`,PaperProps:{sx:{borderRadius:`${e.shape.borderRadiusLarge}px`,padding:e.spacing(3)}},onClose:s,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[a.jsx(M,{variant:"subtitle2",sx:{mb:3},children:t[0].environment}),a.jsx(Od,{features:t})]})]})]})},$d=({features:t})=>{const e=Object.keys(t),n=t[e[0]],o=n[0].context,r=x.useMemo(()=>n.map((f,p)=>({...Object.fromEntries(e.map(b=>[b,t[b][p]]))})),[JSON.stringify(t)]),s=Object.keys(o).map(f=>({Header:rn(f),accessor:p=>p[e[0]].context[f],minWidth:160,Cell:sn})),i=e.map(f=>({Header:f,accessor:p=>{var b,O,L;return(b=p[f])!=null&&b.isEnabled?"true":((L=(O=p[f])==null?void 0:O.strategies)==null?void 0:L.result)==="unknown"?"unknown":"false"},Cell:({row:p})=>a.jsxs(E,{sx:{display:"flex"},children:[a.jsx(zr,{feature:p.original[f]}),a.jsx(Qr,{feature:p.original[f],input:{environment:p.original[f].environment,context:p.original[f].context}})]}),sortType:"playgroundResultState",maxWidth:140})),l=x.useMemo(()=>[...s,...i],[]),{headerGroups:c,rows:u,prepareRow:d}=G.useTable({columns:l,data:r,sortTypes:yt,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0},G.useGlobalFilter,G.useFlexLayout,G.useSortBy),h=x.useRef(null);return a.jsx(E,{ref:h,sx:{overflow:"auto",maxHeight:"800px"},children:a.jsx(ln,{parentRef:h,rows:u,headerGroups:c,prepareRow:d})})},Ud=j("div",{})(({theme:t})=>({flexGrow:0,...ko,justifyContent:"flex-start",margin:t.spacing(0,1.5)})),Hd=j(tn)(({theme:t})=>({textAlign:"left",textDecorationStyle:"dotted",textDecorationLine:"underline",textUnderlineOffset:t.spacing(.75),color:t.palette.neutral.dark,padding:0,fontWeight:"normal"})),zd=({value:t})=>{const e=N(),[n,o]=x.useState(null),r=l=>o(l.currentTarget),s=()=>o(null),i=!!n;return a.jsx(Ud,{children:a.jsxs(a.Fragment,{children:[a.jsx(Hd,{variant:"text",onClick:r,children:"View diff"}),a.jsxs(xt,{open:i,id:`${t}-result-details`,PaperProps:{sx:{borderRadius:`${e.shape.borderRadiusLarge}px`,padding:e.spacing(3)}},onClose:s,anchorEl:n,anchorOrigin:{vertical:"bottom",horizontal:-320},children:[a.jsx(M,{variant:"subtitle2",sx:{mb:3},children:"Environments diff"}),a.jsx($d,{features:t})]})]})})},Vd=t=>t.reduce((e,n)=>e+Object.values(n.environments).flatMap(o=>Object.keys(o)).length,0),qd={id:"name"},{value:po,setValue:Gd}=wo("AdvancedPlaygroundResultsTable:v1",qd),Jd=({features:t,input:e,loading:n})=>{const{trackEvent:o}=Ao();t&&o("playground",{props:{eventType:"number-of-combinations",count:Vd(t)}});const[r,s]=Eo(),i=Bs(n),[l,c]=x.useState(r.get("search")||""),u=N(),d=So(u.breakpoints.down("md")),h=t&&t.length>0?Object.keys(t[0].environments).length:0,f=x.useMemo(()=>{var R;return[{Header:"Name",accessor:"name",searchable:!0,minWidth:160,Cell:({value:P,row:{original:A}})=>a.jsx(Dn,{title:P,to:`/projects/${A==null?void 0:A.projectId}/features/${P}`})},{Header:"Project ID",accessor:"projectId",sortType:"alphanumeric",filterName:"projectId",searchable:!0,minWidth:150,Cell:({value:P})=>a.jsx(Dn,{title:P,to:`/projects/${P}`})},...((R=e==null?void 0:e.environments)==null?void 0:R.map(P=>({Header:n?()=>"":rn(P),maxWidth:140,id:`environments.${P}`,align:"flex-start",Cell:({row:A})=>a.jsx(Nd,{value:A.original.environments[P]})})))||[],...h>1?[{Header:"Diff",minWidth:150,id:"diff",align:"left",Cell:({row:P})=>a.jsx(zd,{value:P.original.environments})}]:[]]},[e]),{data:p,getSearchText:b,getSearchContext:O}=Ts(f,l,t||[]),L=x.useMemo(()=>n?Array(5).fill({name:"Feature name",projectId:"Feature Project",environments:{name:"Feature Environments",variants:[]},enabled:!0}):p,[p,n]),[U]=x.useState(()=>({sortBy:[{id:r.get("sort")||po.id,desc:r.has("order")?r.get("order")==="desc":po.desc}]})),{headerGroups:k,rows:$,state:{sortBy:y},prepareRow:g,setHiddenColumns:w}=G.useTable({initialState:U,columns:f,data:L,sortTypes:yt,autoResetGlobalFilter:!1,autoResetHiddenColumns:!1,autoResetSortBy:!1,disableSortRemove:!0,disableMultiSort:!0,defaultColumn:{Cell:sn}},G.useGlobalFilter,G.useFlexLayout,G.useSortBy);return jo([{condition:d,columns:["projectId"]}],w,f),x.useEffect(()=>{if(n)return;const R=Object.fromEntries(r);R.sort=y[0].id,y[0].desc?R.order="desc":R.order&&delete R.order,l?R.search=l:delete R.search,s(R,{replace:!0}),Gd({id:y[0].id,desc:y[0].desc||!1})},[n,y,l]),a.jsxs(a.Fragment,{children:[a.jsxs(E,{sx:{display:"flex",justifyContent:"space-between",alignItems:"center",mb:3},children:[a.jsx(M,{variant:"subtitle1",sx:{ml:1},children:t!==void 0&&!n?`Results (${$.length<L.length?`${$.length} of ${L.length}`:L.length})`:"Results"}),a.jsx(Ms,{initialValue:l,onChange:c,hasFilters:!0,getSearchContext:O,disabled:n,containerStyles:{marginLeft:"1rem",maxWidth:"400px"}})]}),a.jsx(S,{condition:!n&&!L,show:()=>a.jsx(Rt,{children:L===void 0?"None of the feature toggles were evaluated yet.":"No results found."}),elseShow:()=>a.jsxs(E,{ref:i,sx:{overflow:"auto"},children:[a.jsx(Ps,{value:b(l),children:a.jsx(ln,{rows:$,headerGroups:k,prepareRow:g})}),a.jsx(S,{condition:L.length===0&&(l==null?void 0:l.length)>0,show:a.jsxs(Rt,{children:["No feature toggles found matching “",l,"”"]})}),a.jsx(S,{condition:L&&L.length===0&&!l,show:a.jsx(Rt,{children:"No features toggles to display"})})]})})]})},Kd=j(ze)(({theme:t})=>({marginBottom:t.spacing(3)})),Xd=({FormComponent:t=Uc})=>{const e={projects:[],environments:[]},{value:n,setValue:o}=wo("AdvancedPlayground:v1",e),{trackEvent:r}=Ao(),{environments:s}=Os(),i=N(),l=!0,[c,u]=x.useState(),[d,h]=x.useState(n.environments),[f,p]=x.useState(n.projects),[b,O]=x.useState(n.token),[L,U]=x.useState(n.context),[k,$]=x.useState(),{setToastData:y}=xo(),[g,w]=Eo(),R=Array.from(g.entries()).length,{evaluateAdvancedPlayground:P,loading:A,errors:z}=yi(),[C,D]=x.useState(!1);x.useEffect(()=>{(d==null?void 0:d.length)===0&&s.length>0&&h([Rc(s)])},[JSON.stringify(d),JSON.stringify(s)]),x.useEffect(()=>{R>0&&q()},[]);const q=()=>{try{const I=W(),de=ce(),Ye=ye(),Ze=Q();(async()=>{I&&Ye&&await ue(I||[],de||"*",Ye)})()}catch(I){y({type:"error",title:`Failed to parse URL parameters: ${$e(I)}`})}},W=()=>{let I=null;const de=g.get("environments");return de&&(I=de.split(","),h(I)),I},ce=()=>{let I=null;const de=g.get("projects");return de&&(I=de.split(","),p(I)),I},ye=()=>{let I=g.get("context");return I&&(I=decodeURI(I),U(I)),I},Q=()=>{let I=g.get("token");return I&&(I=decodeURI(I),O(I)),I},ue=async(I,de,Ye,Ze)=>{try{u(void 0);const he=JSON.parse(Ye||"{}"),Xr=await P({environments:Lc(I),projects:Ic(de),context:{appName:"playground",...he}});Ze&&typeof Ze=="function"&&Ze(),$(Xr)}catch(he){he instanceof Fs?u(he.message):he instanceof SyntaxError?y({type:"error",title:`Error parsing context: ${$e(he)}`}):y({type:"error",title:$e(he)})}},Se=async I=>{I.preventDefault(),D(!0),b&&b!==""&&r("playground_token_input_used"),await ue(d,f,L,()=>{Lt(),o({environments:d,projects:f,context:L})})},Lt=()=>{g.set("context",encodeURI(L||"")),Array.isArray(d)&&d.length>0&&!(d.length===1&&d[0]==="*")?g.set("environments",d.join(",")):g.delete("projects"),Array.isArray(f)&&f.length>0&&!(f.length===1&&f[0]==="*")?g.set("projects",f.join(",")):g.delete("projects"),w(g)},Yr=k&&!l?"35%":"auto",Zr=Bc(l,k);return a.jsx(Ws,{header:a.jsx(Ns,{title:"Unleash playground",actions:a.jsx(Vc,{})}),disableLoading:!0,bodyClass:"no-padding",children:a.jsxs(E,{sx:{display:"flex",flexDirection:"column"},children:[a.jsx(E,{sx:{background:i.palette.background.elevation2,borderBottomLeftRadius:i.shape.borderRadiusMedium,isolation:"isolate",zIndex:2},children:a.jsx(yo,{elevation:0,sx:{px:4,py:3,background:i.palette.background.elevation2,transition:"width 0.4s ease",minWidth:"auto",width:Yr,position:"sticky",top:0},children:a.jsx(t,{onSubmit:Se,context:L,setContext:U,availableEnvironments:s,projects:f,environments:d,token:b,setToken:O,setProjects:p,setEnvironments:h})})}),a.jsxs(E,{sx:I=>({width:Zr,transition:"width 0.4s ease",padding:I.spacing(4,4),isolation:"isolate",zIndex:1}),children:[a.jsx(S,{condition:!!c,show:a.jsx(Kd,{severity:"warning",children:c})}),a.jsx(S,{condition:A,show:a.jsx($s,{}),elseShow:a.jsxs(a.Fragment,{children:[a.jsx(S,{condition:!!k&&Object.values(z).length===0,show:a.jsx(Jd,{loading:A,features:k==null?void 0:k.features,input:k==null?void 0:k.input})}),a.jsx(S,{condition:!k&&!C,show:a.jsx(Hr,{})})]})})]})]})})};export{Xd as AdvancedPlayground,Xd as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{s as w,h as B,b as D,aw as O,ax as U,ay as J,aj as L,az as b,j as e,aA as F,aB as K,aC as $,f as z,aD as M}from"./index-
|
|
1
|
+
import{s as w,h as B,b as D,aw as O,ax as U,ay as J,aj as L,az as b,j as e,aA as F,aB as K,aC as $,f as z,aD as M}from"./index-Hq7UZWFv.js";import{u as q,P as G,D as Y}from"./useProjectForm-xBMtEnPY.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:h,setProjectStickiness:f,projectStickiness:d,errors:g}=q(),{createProject:y,loading:A}=b(),_=async k=>{k.preventDefault(),n();const v=h(),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(F,{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:g,handleSubmit:_,projectId:s,setProjectId:C,projectName:u,projectStickiness:d,projectMode:r,setProjectMode:P,setProjectStickiness:f,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};
|
package/frontend/build/static/{FeatureArchiveDialog-ctoNJoqg.js → FeatureArchiveDialog-qnffwGpi.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as le,j as t,aE as H,aW as z,b7 as _,C as E,J as D,T as A,cu as ce,s as q,gD as ue,bc as de,bw as X,ay as Z,ax as I,gE as he,gF as ge,gG as pe,gH as me,gI as fe,bI as N,gJ as xe,h as ve,gK as be,cL as ye,bt as je,r as x,az as M,b as O,bx as Se,aj as Te,bv as Ce,aA as Ee,aX as Ae,bm as we,ce as ke,f as F,B as Re,ah as De,eR as qe,gL as Pe,aV as ee,aF as Fe,aJ as W,c6 as U,gM as $e,gN as Oe,gO as Be,fq 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,gP as Ue,m as Ge,a as We,u as Je,bZ as Ye,aQ as Ke,aO as ne,aP as ae,bp as Qe,aK as V,bV as re,a_ as oe}from"./index-
|
|
1
|
+
import{c as le,j as t,aE as H,aW as z,b7 as _,C as E,J as D,T as A,cu as ce,s as q,gD as ue,bc as de,bw as X,ay as Z,ax as I,gE as he,gF as ge,gG as pe,gH as me,gI as fe,bI as N,gJ as xe,h as ve,gK as be,cL as ye,bt as je,r as x,az as M,b as O,bx as Se,aj as Te,bv as Ce,aA as Ee,aX as Ae,bm as we,ce as ke,f as F,B as Re,ah as De,eR as qe,gL as Pe,aV as ee,aF as Fe,aJ as W,c6 as U,gM as $e,gN as Oe,gO as Be,fq 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,gP as Ue,m as Ge,a as We,u as Je,bZ as Ye,aQ as Ke,aO as ne,aP as ae,bp as Qe,aK as V,bV as re,a_ as oe}from"./index-Hq7UZWFv.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(E,{condition:g,show:p}),t.jsx(E,{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(A,{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 P=w(y);if(y!=="groupId"){const j=be(P,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(E,{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 P of s==null?void 0:s.segments)T.push(...c.filter(j=>j.id===P));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(P){u(F(P))}};return!m||!o?null:t.jsx(Ee,{modal:!0,title:Ae((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=`
|
package/frontend/build/static/{FeatureMetricsChart-ig6HN-Ms.js → FeatureMetricsChart-PYYF3at0.js}
RENAMED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{h0 as c,cA as g,h1 as u,b$ as m,a as x,b_ as f,r as d,j as b,gT as C,gU as v,gV as M,gW as S,gX as q,gY as h,g_ as T,gZ as $,h2 as D}from"./index-
|
|
1
|
+
import{h0 as c,cA as g,h1 as u,b$ as m,a as x,b_ as f,r as d,j as b,gT as C,gU as v,gV as M,gW as S,gX as q,gY as h,g_ as T,gZ as $,h2 as D}from"./index-Hq7UZWFv.js";import{L as E}from"./index-zoHUZAXk.js";import{d as L}from"./FeatureViewLazyExport-vr_olVwX.js";import"./FeatureArchiveDialog-qnffwGpi.js";import"./StrategyItemContainer-qEJ1Y7Pl.js";const j=(e,l,s)=>{const a={label:"Total requests",borderColor:e.palette.primary.main,backgroundColor:e.palette.primary.main,data:p(l,s,o=>o.yes+o.no),elements:{point:{radius:6,pointStyle:"circle"},line:{borderDash:[8,4]}}},t={label:"Exposed",borderColor:e.palette.success.main,backgroundColor:e.palette.success.main,data:p(l,s,o=>o.yes),elements:{point:{radius:6,pointStyle:"triangle"}}},r={label:"Not exposed",borderColor:e.palette.error.main,backgroundColor:e.palette.error.main,data:p(l,s,o=>o.no),elements:{point:{radius:6,pointStyle:"triangle",pointRotation:180}}};return{datasets:[t,r,a]}},p=(e,l,s)=>e.map(a=>({x:a.timestamp,y:s(a),variants:a.variants||{}})),_=(e,l)=>{if(l===0)return"";const[s,a]=e,t=Math.floor(Number(a)/l*100);return`${a} (${t}%) - ${s}`},k=(e,l,s,a)=>({locale:a.locale,responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},color:e.palette.text.secondary,plugins:{tooltip:{backgroundColor:e.palette.background.paper,bodyColor:e.palette.text.primary,titleColor:e.palette.text.secondary,borderColor:e.palette.primary.main,borderWidth:1,padding:10,boxPadding:5,usePointStyle:!0,itemSort:(t,r)=>{const o=["Total requests","Exposed","Not exposed"],n=o.indexOf(t.dataset.label),i=o.indexOf(r.dataset.label);return n-i},callbacks:{label:t=>`${t.formattedValue} - ${t.dataset.label}`,afterLabel:t=>{const r=t.dataset.data[t.dataIndex];if(t.dataset.label!=="Exposed"||r.variants===void 0)return"";const{disabled:o,...n}=r.variants;return Object.entries(n).map(i=>_(i,r.y)).join(`
|
|
2
2
|
`)},title:t=>`Time: ${s>48?g(t[0].parsed.x,a.locale,"UTC"):u(t[0].parsed.x,a.locale)}`}},legend:{position:"top",align:"end",labels:{boxWidth:10,boxHeight:10,usePointStyle:!0}},title:{text:O(s),position:"top",align:"start",display:!0,font:{size:16,weight:"400"},color:e.palette.text.primary}},scales:{y:{type:"linear",title:{display:!0,text:"Number of requests",color:e.palette.text.secondary},suggestedMin:0,ticks:{precision:0,color:e.palette.text.secondary},grid:{color:e.palette.divider,borderColor:e.palette.divider}},x:{type:"time",time:{unit:s>48?"day":"hour"},grid:{display:!1},ticks:{callback:(t,r,o)=>s>48?m(o[r].value,a.locale,"UTC"):u(o[r].value,a.locale),color:e.palette.text.secondary}}}}),O=e=>e===1?"Requests in the last hour":`Requests in the last ${L(e)}`;c.font={...c.font,family:"Sen",size:13,weight:"400"};const w=({metrics:e,hoursBack:l,statsSectionId:s})=>{const a=x(),{locationSettings:t}=f(),r=d.useMemo(()=>[...e].sort((i,y)=>i.timestamp.localeCompare(y.timestamp)),[e]),o=d.useMemo(()=>k(a,r,l,t),[a,r,l,t]),n=d.useMemo(()=>j(a,r,t),[a,r,t]);return b.jsx("div",{style:{height:400},children:b.jsx(E,{options:o,data:n,"aria-label":"A feature metrics line chart, with three lines: all requests, positive requests, and negative requests.","aria-describedby":s})})};C.register(v,M,S,q,h,T,$,D);export{w as FeatureMetricsChart,w as default};
|