performance.mark("js-parse-end:89996-124ecb455bc9c191.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["89996"],{82526(t,r,n){n.d(r,{W:()=>o});var e=n(13999),u=n(4883),a=n(35840),f=n(2642);function o(t,r){let{years:n=0,months:o=0,weeks:i=0,days:c=0,hours:l=0,minutes:v=0,seconds:d=0}=r,g=(0,f.a)(t),s=o||n?(0,u.P)(g,o+12*n):g,A=c||i?(0,e.f)(s,c+7*i):s;return(0,a.w)(t,A.getTime()+1e3*(d+60*(v+60*l)))}},93218(t,r,n){n.d(r,{D:()=>i});var e=n(35840),u=n(47728),a=n(4721),f=n(19684),o=n(2642);function i(t,r){let n=(0,o.a)(t),i=(0,f.c)(n);if(isNaN(r))return(0,e.w)(t,NaN);let c=n.getHours(),l=r<0?-1:1,v=Math.trunc(r/5);n.setDate(n.getDate()+7*v);let d=Math.abs(r%5);for(;d>0;)n.setDate(n.getDate()+l),(0,f.c)(n)||(d-=1);return i&&(0,f.c)(n)&&0!==r&&((0,u._)(n)&&n.setDate(n.getDate()+(l<0?2:-1)),(0,a.X)(n)&&n.setDate(n.getDate()+(l<0?1:-2))),n.setHours(c),n}},8723(t,r,n){n.d(r,{P:()=>u});var e=n(2642);function u(t){return(0,e.a)(t).getDay()}},14051(t,r,n){n.d(r,{P:()=>a});var e=n(2642),u=n(35840);function a(t){let r=(0,e.a)(t),n=r.getFullYear(),a=r.getMonth(),f=(0,u.w)(t,0);return f.setFullYear(n,a+1,0),f.setHours(0,0,0,0),f.getDate()}},89369(t,r,n){n.d(r,{d:()=>u});var e=n(2642);function u(t,r){let n=(0,e.a)(t),u=(0,e.a)(r);return n.getTime()>u.getTime()}},72880(t,r,n){n.d(r,{Y:()=>u});var e=n(2642);function u(t,r){return+(0,e.a)(t)<+(0,e.a)(r)}},84583(t,r,n){n.d(r,{n:()=>u});var e=n(2642);function u(t,r){return+(0,e.a)(t)==+(0,e.a)(r)}},12108(t,r,n){n.d(r,{C:()=>u});var e=n(2642);function u(t){return 5===(0,e.a)(t).getDay()}},68406(t,r,n){n.d(r,{p:()=>u});var e=n(2642);function u(t){return 1===(0,e.a)(t).getDay()}},65855(t,r,n){n.d(r,{t:()=>u});var e=n(2642);function u(t,r){let n=(0,e.a)(t),u=(0,e.a)(r);return n.getFullYear()===u.getFullYear()&&n.getMonth()===u.getMonth()}},47728(t,r,n){n.d(r,{_:()=>u});var e=n(2642);function u(t){return 6===(0,e.a)(t).getDay()}},4721(t,r,n){n.d(r,{X:()=>u});var e=n(2642);function u(t){return 0===(0,e.a)(t).getDay()}},26320(t,r,n){n.d(r,{c:()=>u});var e=n(85551);function u(t){return(0,e.r)(t,Date.now())}},19684(t,r,n){n.d(r,{c:()=>u});var e=n(2642);function u(t){let r=(0,e.a)(t).getDay();return 0===r||6===r}},93724(t,r,n){n.d(r,{W:()=>u});var e=n(2642);function u(t){let r=(0,e.a)(t),n=r.getMonth();return r.setFullYear(r.getFullYear(),n+1,0),r.setHours(0,0,0,0),r}},29508(t,r,n){n.d(r,{s:()=>a});var e=n(13999),u=n(8723);function a(t,r){let n=r-(0,u.P)(t);return n<=0&&(n+=7),(0,e.f)(t,n)}},50879(t,r,n){n.d(r,{j:()=>u});var e=n(29508);function u(t){return(0,e.s)(t,5)}},7818(t,r,n){n.d(r,{u:()=>u});var e=n(29508);function u(t){return(0,e.s)(t,1)}},55375(t,r,n){n.d(r,{R:()=>u});var e=n(29508);function u(t){return(0,e.s)(t,6)}},75740(t,r,n){n.d(r,{K:()=>a});var e=n(8723),u=n(40828);function a(t,r){let n=(0,e.P)(t)-r;return n<=0&&(n+=7),(0,u.e)(t,n)}},5604(t,r,n){n.d(r,{N:()=>u});var e=n(75740);function u(t){return(0,e.K)(t,5)}},6146(t,r,n){n.d(r,{_:()=>u});var e=n(75740);function u(t){return(0,e.K)(t,1)}},26638(t,r,n){n.d(r,{W:()=>u});var e=n(75740);function u(t){return(0,e.K)(t,0)}},49087(t,r,n){n.d(r,{X:()=>u});var e=n(2642);function u(t,r){let n=(0,e.a)(t);return n.setDate(r),n}},91789(t,r,n){n.d(r,{j:()=>f});var e=n(40828),u=n(39804),a=n(35840);function f(t,r){let{years:n=0,months:f=0,weeks:o=0,days:i=0,hours:c=0,minutes:l=0,seconds:v=0}=r,d=(0,u.a)(t,f+12*n),g=(0,e.e)(d,i+7*o);return(0,a.w)(t,g.getTime()-1e3*(v+60*(l+60*c)))}},31422(t,r,n){n.d(r,{E:()=>u});var e=n(93218);function u(t,r){return(0,e.D)(t,-r)}},40828(t,r,n){n.d(r,{e:()=>u});var e=n(13999);function u(t,r){return(0,e.f)(t,-r)}},39804(t,r,n){n.d(r,{a:()=>u});var e=n(4883);function u(t,r){return(0,e.P)(t,-r)}},77396(t,r,n){n.d(r,{k:()=>u});var e=n(11897);function u(t,r){return(0,e.J)(t,-r)}},12837(t,r,n){n.d(r,{d:()=>u});var e=n(93876);function u(t,r){return(0,e.e)(t,-r)}},37688(t,r,n){n.d(r,{A:()=>e});let e=function(t,r,n){var e=-1,u=t.length;r<0&&(r=-r>u?0:u+r),(n=n>u?u:n)<0&&(n+=u),u=r>n?0:n-r>>>0,r>>>=0;for(var a=Array(u);++eu});var e=/^(?:0|[1-9]\d*)$/;let u=function(t,r){var n=typeof t;return!!(r=null==r?0x1fffffffffffff:r)&&("number"==n||"symbol"!=n&&e.test(t))&&t>-1&&t%1==0&&to});var e=n(66984),u=n(38446),a=n(25353),f=n(23149);let o=function(t,r,n){if(!(0,f.A)(n))return!1;var o=typeof r;return("number"==o?!!((0,u.A)(n)&&(0,a.A)(r,n.length)):"string"==o&&r in n)&&(0,e.A)(n[r],t)}},61389(t,r,n){n.d(r,{A:()=>l});var e=n(37688),u=n(6832),a=n(41127),f=1/0;let o=function(t){var r,n=(r=t)?(r=(0,a.A)(r))===f||r===-f?(r<0?-1:1)*17976931348623157e292:r==r?r:0:0===r?r:0,e=n%1;return n==n?e?n-e:n:0};var i=Math.ceil,c=Math.max;let l=function(t,r,n){r=(n?(0,u.A)(t,r,n):void 0===r)?1:c(o(r),0);var a=null==t?0:t.length;if(!a||r<1)return[];for(var f=0,l=0,v=Array(i(a/r));fe});let e=function(t,r){return t===r||t!=t&&r!=r}},38446(t,r,n){n.d(r,{A:()=>a});var e=n(89610),u=n(5254);let a=function(t){return null!=t&&(0,u.A)(t.length)&&!(0,e.A)(t)}},89610(t,r,n){n.d(r,{A:()=>a});var e=n(18348),u=n(23149);let a=function(t){if(!(0,u.A)(t))return!1;var r=(0,e.A)(t);return"[object Function]"==r||"[object GeneratorFunction]"==r||"[object AsyncFunction]"==r||"[object Proxy]"==r}},5254(t,r,n){n.d(r,{A:()=>e});let e=function(t){return"number"==typeof t&&t>-1&&t%1==0&&t<=0x1fffffffffffff}}}]); //# sourceMappingURL=89996-124ecb455bc9c191-efa9edef849e296f.js.map performance.mark("js-parse-end:91859-d9d1598b3a47862c.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["91859"],{23167(e,t,n){n.d(t,{J:()=>d});var l=n(74848),o=n(16522),a=n(7624),i=n(83223),r=n(38750),s=n(56149),c=n(39081),m=n(96540),u=n(14842);let d=e=>{let t,n,d,p,x,g,_,b,j,y,f,v,C,A,S,k=(0,o.c)(34),{onDismiss:w,experimentsDialogRef:T}=e,[P,D]=(0,m.useState)(h),[E,L]=(0,m.useState)(void 0),N=(0,m.useRef)("\u200B");k[0]!==P||k[1]!==w?(t=()=>{let e=[];for(let t of P.split(","))if(""!==t.trim()){if(2!==t.split("=").length){L(`Invalid experiment key=value pair${N.current}`),N.current=N.current+"\u200B";return}L(""),e.push(t)}(0,u.R)(e),w()},k[0]=P,k[1]=w,k[2]=t):t=k[2];let I=t;k[3]!==w?(n=()=>{D(""),(0,u.R)([]),L(""),w()},k[3]=w,k[4]=n):n=k[4];let R=n;return k[5]===Symbol.for("react.memo_cache_sentinel")?(d=(0,l.jsx)(a.A.Label,{children:"Experiments"}),k[5]=d):d=k[5],k[6]===Symbol.for("react.memo_cache_sentinel")?(p=(0,l.jsx)("code",{children:"key=value"}),k[6]=p):p=k[6],k[7]===Symbol.for("react.memo_cache_sentinel")?(x=(0,l.jsx)(a.A.Caption,{children:(0,l.jsxs)("span",{children:["List experiments as comma separated ",p," pairs. To see available experiments,"," ",(0,l.jsx)(i.A,{inline:!0,target:"_blank",href:`/search?q=${encodeURIComponent("repo:github/copilot-api path:experiments.go")}`,children:"read this code"}),"."]})}),k[7]=x):x=k[7],k[8]===Symbol.for("react.memo_cache_sentinel")?(g=e=>D(e.target.value),k[8]=g):g=k[8],k[9]!==I?(_=e=>{"Enter"===e.key&&I()},k[9]=I,k[10]=_):_=k[10],k[11]!==P||k[12]!==_?(b=(0,l.jsx)(r.A,{"aria-label":"Experiments",name:"experiments",value:P,onChange:g,onKeyDown:_,className:"ExperimentsDialog-module__experimentsInput__TlI1z"}),k[11]=P,k[12]=_,k[13]=b):b=k[13],k[14]!==E?(j=E&&(0,l.jsx)(a.A.Validation,{variant:"error",children:E}),k[14]=E,k[15]=j):j=k[15],k[16]!==b||k[17]!==j?(y=(0,l.jsx)(c.l.Body,{children:(0,l.jsx)("div",{className:"ExperimentsDialog-module__dialogContentContainer__SZIJx",children:(0,l.jsxs)(a.A,{children:[d,x,b,j]})})}),k[16]=b,k[17]=j,k[18]=y):y=k[18],k[19]!==R?(f={type:"button",onClick:R,content:"Clear all",buttonType:"danger"},k[19]=R,k[20]=f):f=k[20],k[21]!==w?(v={type:"button",onClick:w,content:"Cancel"},k[21]=w,k[22]=v):v=k[22],k[23]!==I?(C={type:"button",onClick:I,content:"Save",buttonType:"primary"},k[23]=I,k[24]=C):C=k[24],k[25]!==f||k[26]!==v||k[27]!==C?(A=(0,l.jsx)(c.l.Footer,{children:(0,l.jsx)(c.l.Buttons,{buttons:[f,v,C]})}),k[25]=f,k[26]=v,k[27]=C,k[28]=A):A=k[28],k[29]!==T||k[30]!==w||k[31]!==y||k[32]!==A?(S=(0,l.jsx)(s.ZL,{children:(0,l.jsxs)(c.l,{ref:T,onClose:w,title:"Experiments",width:"xlarge",children:[y,A]})}),k[29]=T,k[30]=w,k[31]=y,k[32]=A,k[33]=S):S=k[33],S};function h(){return(0,u.f)().join(",")}d.displayName="ExperimentsDialog"},49422(e,t,n){n.d(t,{X:()=>b});var l=n(74848),o=n(16522),a=n(38621),i=n(7624),r=n(65820),s=n(38750),c=n(46251),m=n(90288),u=n(26108),d=n(21373),h=n(56149),p=n(39081),x=n(96540),g=n(3972),_=n(75058);let b=e=>{let t,n,b,y,f,v,C,A,S,k,w,T,P,D,E,L,N,I,R,V,z,B,F,J=(0,o.c)(53),{onDismiss:O,promptDialogRef:$}=e,M=(0,_.b)(),Z=g.Jt.settings,[q,K]=(0,x.useState)(Z?.instructionPrompt||void 0);J[0]===Symbol.for("react.memo_cache_sentinel")?(t=Z?.skillOverrides??[],J[0]=t):t=J[0];let[Q,Y]=(0,x.useState)(t),[H,U]=(0,x.useState)(Z?.temperature||.7),W=(0,x.useRef)(void 0);J[1]!==M||J[2]!==O||J[3]!==q||J[4]!==H||J[5]!==Q?(n=()=>{let e=Q.filter(j);M.setCopilotSettings({instructionPrompt:q||"",skillOverrides:e,temperature:H}),O()},J[1]=M,J[2]=O,J[3]=q,J[4]=H,J[5]=Q,J[6]=n):n=J[6];let X=n;J[7]!==M?(b=async()=>{if(W.current)return void K(W.current);let e=await M.getSystemPrompt();W.current=e,K(e)},J[7]=M,J[8]=b):b=J[8];let G=b;J[9]!==G||J[10]!==q?(y=()=>{(async()=>{void 0===q&&await G()})()},J[9]=G,J[10]=q,J[11]=y):y=J[11],J[12]!==G||J[13]!==M||J[14]!==q?(f=[G,M,q],J[12]=G,J[13]=M,J[14]=q,J[15]=f):f=J[15],(0,x.useEffect)(y,f),J[16]!==G?(v=()=>{G(),Y([]),U(.7)},J[16]=G,J[17]=v):v=J[17];let ee=v;return J[18]===Symbol.for("react.memo_cache_sentinel")?(C=(0,l.jsx)(i.A.Label,{children:"System Instructions"}),J[18]=C):C=J[18],J[19]===Symbol.for("react.memo_cache_sentinel")?(A=(0,l.jsx)(i.A.Caption,{children:(0,l.jsx)("span",{children:"Make adjustments to the system instructions or add new instructions."})}),J[19]=A):A=J[19],J[20]===Symbol.for("react.memo_cache_sentinel")?(S=e=>K(e.target.value),J[20]=S):S=J[20],J[21]!==q?(k=(0,l.jsxs)(i.A,{children:[C,A,(0,l.jsx)(r.Ay,{block:!0,"aria-label":"Prompt",name:"Prompt",value:q,onChange:S,className:"PromptDialog-module__systemInstructionsTextarea__kAWJm"})]}),J[21]=q,J[22]=k):k=J[22],J[23]===Symbol.for("react.memo_cache_sentinel")?(w=(0,l.jsx)(i.A.Label,{children:"Temperature"}),T=(0,l.jsx)(i.A.Caption,{children:"Controls the randomness of the model's responses. Lower temperatures are more deterministic, while higher temperatures are more random."}),J[23]=w,J[24]=T):(w=J[23],T=J[24]),J[25]===Symbol.for("react.memo_cache_sentinel")?(P=e=>U(Number(e.target.value)),J[25]=P):P=J[25],J[26]!==H?(D=(0,l.jsxs)(i.A,{className:"PromptDialog-module__temperatureFormControl__dO86l",children:[w,T,(0,l.jsx)(s.A,{type:"number",min:"0",max:"1",step:"0.01",block:!0,value:H,onChange:P})]}),J[26]=H,J[27]=D):D=J[27],J[28]===Symbol.for("react.memo_cache_sentinel")?(E=(0,l.jsx)("div",{className:"PromptDialog-module__toolsSectionHeader__YdFgV",children:"Tools"}),J[28]=E):E=J[28],J[29]!==Q?(L=Q.map((e,t)=>(0,l.jsxs)(x.Fragment,{children:[(0,l.jsxs)(c.B,{direction:"horizontal",className:"py-2",children:[(0,l.jsxs)(i.A,{children:[(0,l.jsx)(i.A.Label,{children:"Name"}),(0,l.jsx)(i.A.Caption,{children:(0,l.jsx)("span",{children:"Slug of tool you want to adjust"})}),(0,l.jsx)(s.A,{defaultValue:e.slug,onChange:e=>{Q.map((n,l)=>{l===t&&(n.slug=e.target.value)})}})]}),(0,l.jsxs)(i.A,{children:[(0,l.jsx)(i.A.Label,{children:"Description"}),(0,l.jsx)(i.A.Caption,{children:(0,l.jsx)("span",{children:"Make changes to the tool description"})}),(0,l.jsx)(s.A,{defaultValue:e.description,onChange:n=>{Q.map((l,o)=>{o===t&&(e.description=n.target.value)})}})]}),(0,l.jsxs)(i.A,{children:[(0,l.jsx)(i.A.Label,{id:"toggle",children:"Enabled?"}),(0,l.jsx)(m.A,{size:"small","aria-labelledby":"toggle",defaultChecked:e.enabled,onChange:e=>{Q.map((n,l)=>{l===t&&(n.enabled=e)})}})]}),(0,l.jsx)(u.K,{icon:a.TrashIcon,"aria-label":"Delete tool",variant:"invisible",onClick:()=>{let e=[...Q];1===Q.length?Y([]):(e.splice(t,1),Y(e))},className:"PromptDialog-module__deleteToolButton__YcTod"})]}),t===Q.length-1&&(0,l.jsx)(d.Q,{leadingVisual:(0,l.jsx)(a.PlusIcon,{}),onClick:()=>Y([...Q,{slug:"",description:"",enabled:!0}]),variant:"invisible",size:"small",children:"Add another tool"})]},`tool-${e.slug}-${t}`)),J[29]=Q,J[30]=L):L=J[30],J[31]!==Q?(N=0===Q.length&&(0,l.jsx)(d.Q,{leadingVisual:(0,l.jsx)(a.PlusIcon,{}),onClick:()=>Y([...Q,{slug:"",description:"",enabled:!0}]),variant:"invisible",size:"small",children:"Add a tool"}),J[31]=Q,J[32]=N):N=J[32],J[33]!==k||J[34]!==D||J[35]!==L||J[36]!==N?(I=(0,l.jsxs)(p.l.Body,{children:[k,D,E,L,N]}),J[33]=k,J[34]=D,J[35]=L,J[36]=N,J[37]=I):I=J[37],J[38]!==O?(R={type:"button",onClick:O,content:"Cancel"},J[38]=O,J[39]=R):R=J[39],J[40]!==ee?(V={type:"button",onClick:ee,content:"Reset"},J[40]=ee,J[41]=V):V=J[41],J[42]!==X?(z={type:"button",onClick:X,content:"Save",buttonType:"primary"},J[42]=X,J[43]=z):z=J[43],J[44]!==R||J[45]!==V||J[46]!==z?(B=(0,l.jsx)(p.l.Footer,{children:(0,l.jsx)(p.l.Buttons,{buttons:[R,V,z]})}),J[44]=R,J[45]=V,J[46]=z,J[47]=B):B=J[47],J[48]!==O||J[49]!==$||J[50]!==I||J[51]!==B?(F=(0,l.jsx)(h.ZL,{children:(0,l.jsxs)(p.l,{ref:$,onClose:O,title:"Prompt Settings",width:"xlarge",className:"PromptDialog-module__Dialog__OoVlJ",children:[I,B]})}),J[48]=O,J[49]=$,J[50]=I,J[51]=B,J[52]=F):F=J[52],F};function j(e){return e.slug&&e.description}b.displayName="PromptDialog"},73607(e,t,n){n.d(t,{E:()=>h,q:()=>d});var l=n(16522),o=n(5225),a=n(35148),i=n(50131),r=n(58388),s=n(96540);async function c(e){let t=await (0,r.lS)(e);return t.ok?await t.json():void 0}let m=new Map,u=(0,o.A)(c,{cache:m});function d(){m.clear()}function h(e,t,n,o){let i,r,c,m,d,h=(0,l.c)(15),[x,g]=(0,s.useState)(),[_,b]=(0,s.useState)(!1),[j,y]=(0,s.useState)(!0);h[0]!==n||h[1]!==o||h[2]!==t||h[3]!==e?(i=t&&e&&n&&o?(0,a.IO9)({repo:{name:t,ownerLogin:e},commitish:n,action:"latest-commit",path:o}):null,h[0]=n,h[1]=o,h[2]=t,h[3]=e,h[4]=i):i=h[4];let f=i;return h[5]===Symbol.for("react.memo_cache_sentinel")?(r=[],h[5]=r):r=h[5],(0,s.useEffect)(p,r),h[6]!==f?(c=()=>{let e=!1;return(async()=>{if(!f)return;b(!1),y(!0),g(void 0);let t=await u(f);if(!e){try{t?g(t):b(!0)}catch{b(!0)}y(!1)}})(),function(){e=!0}},h[6]=f,h[7]=c):c=h[7],h[8]!==f||h[9]!==n?(m=[f,n],h[8]=f,h[9]=n,h[10]=m):m=h[10],(0,s.useEffect)(c,m),h[11]!==_||h[12]!==x||h[13]!==j?(d=[x,j,_],h[11]=_,h[12]=x,h[13]=j,h[14]=d):d=h[14],d}function p(){let e=new AbortController;return document.addEventListener(i.z.START,d,{signal:e.signal}),()=>{e.abort()}}}}]); //# sourceMappingURL=91859-d9d1598b3a47862c-89f85a364eb863b6.js.map performance.mark("js-parse-end:9247-d69fd4f5c10d5caf.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["9247"],{83968(e,n,t){t.d(n,{A:()=>s});let r="object"==typeof self?self:globalThis,l=e=>{var n;let t,l;return(n=new Map,t=(e,t)=>(n.set(t,e),e),l=i=>{if(n.has(i))return n.get(i);let[o,a]=e[i];switch(o){case 0:case -1:return t(a,i);case 1:{let e=t([],i);for(let n of a)e.push(l(n));return e}case 2:{let e=t({},i);for(let[n,t]of a)e[l(n)]=l(t);return e}case 3:return t(new Date(a),i);case 4:{let{source:e,flags:n}=a;return t(new RegExp(e,n),i)}case 5:{let e=t(new Map,i);for(let[n,t]of a)e.set(l(n),l(t));return e}case 6:{let e=t(new Set,i);for(let n of a)e.add(l(n));return e}case 7:{let{name:e,message:n}=a;return t(new r[e](n),i)}case 8:return t(BigInt(a),i);case"BigInt":return t(Object(BigInt(a)),i);case"ArrayBuffer":return t(new Uint8Array(a).buffer,a);case"DataView":{let{buffer:e}=new Uint8Array(a);return t(new DataView(e),a)}}return t(new r[o](a),i)})(0)},{toString:i}={},{keys:o}=Object,a=e=>{let n=typeof e;if("object"!==n||!e)return[0,n];let t=i.call(e).slice(8,-1);switch(t){case"Array":return[1,""];case"Object":return[2,""];case"Date":return[3,""];case"RegExp":return[4,""];case"Map":return[5,""];case"Set":return[6,""];case"DataView":return[1,t]}return t.includes("Array")?[1,t]:t.includes("Error")?[7,t]:[2,t]},u=([e,n])=>0===e&&("function"===n||"symbol"===n),c=(e,{json:n,lossy:t}={})=>{var r,l,i;let c,s,f=[];return(r=!(n||t),l=!!n,i=new Map,c=(e,n)=>{let t=f.push(e)-1;return i.set(n,t),t},s=e=>{if(i.has(e))return i.get(e);let[n,t]=a(e);switch(n){case 0:{let l=e;switch(t){case"bigint":n=8,l=e.toString();break;case"function":case"symbol":if(r)throw TypeError("unable to serialize "+t);l=null;break;case"undefined":return c([-1],e)}return c([n,l],e)}case 1:{if(t){let n=e;return"DataView"===t?n=new Uint8Array(e.buffer):"ArrayBuffer"===t&&(n=new Uint8Array(e)),c([t,[...n]],e)}let r=[],l=c([n,r],e);for(let n of e)r.push(s(n));return l}case 2:{if(t)switch(t){case"BigInt":return c([t,e.toString()],e);case"Boolean":case"Number":case"String":return c([t,e.valueOf()],e)}if(l&&"toJSON"in e)return s(e.toJSON());let i=[],f=c([n,i],e);for(let n of o(e))(r||!u(a(e[n])))&&i.push([s(n),s(e[n])]);return f}case 3:return c([n,e.toISOString()],e);case 4:{let{source:t,flags:r}=e;return c([n,{source:t,flags:r}],e)}case 5:{let t=[],l=c([n,t],e);for(let[n,l]of e)(r||!(u(a(n))||u(a(l))))&&t.push([s(n),s(l)]);return l}case 6:{let t=[],l=c([n,t],e);for(let n of e)(r||!u(a(n)))&&t.push(s(n));return l}}let{message:f}=e;return c([n,{name:t,message:f}],e)})(e),f},s="function"==typeof structuredClone?(e,n)=>n&&("json"in n||"lossy"in n)?l(c(e,n)):structuredClone(e):(e,n)=>l(c(e,n))},72282(e,n,t){function r(e){let n=[],t=String(e||""),r=t.indexOf(","),l=0,i=!1;for(;!i;){-1===r&&(r=t.length,i=!0);let e=t.slice(l,r).trim();(e||!i)&&n.push(e),l=r+1,r=t.indexOf(",",l)}return n}function l(e,n){let t=n||{};return(""===e[e.length-1]?[...e,""]:e).join((t.padRight?" ":"")+","+(!1===t.padLeft?"":" ")).trim()}t.d(n,{A:()=>l,q:()=>r})},96206(e,n,t){t.d(n,{s:()=>l});let r=document.createElement("i");function l(e){let n="&"+e+";";r.innerHTML=n;let t=r.textContent;return(59!==t.charCodeAt(t.length-1)||"semi"===e)&&t!==n&&t}},86350(e,n,t){t.d(n,{Y:()=>d});var r=t(72534),l=t(43926),i=t(59839),o=t(2611),a=t(43589),u=t(22177),c=t(9638),s=t(96206),f=t(47188);let p={}.hasOwnProperty;function d(e,n,t){return"string"!=typeof n&&(t=n,n=void 0),(function(e){let n={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:l(E),autolinkProtocol:k,autolinkEmail:k,atxHeading:l(C),blockQuote:l(function(){return{type:"blockquote",children:[]}}),characterEscape:k,characterReference:k,codeFenced:l(S),codeFencedFenceInfo:i,codeFencedFenceMeta:i,codeIndented:l(S,i),codeText:l(function(){return{type:"inlineCode",value:""}},i),codeTextData:k,data:k,codeFlowValue:k,definition:l(function(){return{type:"definition",identifier:"",label:null,title:null,url:""}}),definitionDestinationString:i,definitionLabelString:i,definitionTitleString:i,emphasis:l(function(){return{type:"emphasis",children:[]}}),hardBreakEscape:l(w),hardBreakTrailing:l(w),htmlFlow:l(P,i),htmlFlowData:k,htmlText:l(P,i),htmlTextData:k,image:l(function(){return{type:"image",title:null,url:"",alt:null}}),label:i,link:l(E),listItem:l(function(e){return{type:"listItem",spread:e._spread,checked:null,children:[]}}),listItemValue:function(e){this.data.expectingFirstListItemValue&&(this.stack[this.stack.length-2].start=Number.parseInt(this.sliceSerialize(e),10),this.data.expectingFirstListItemValue=void 0)},listOrdered:l(O,function(){this.data.expectingFirstListItemValue=!0}),listUnordered:l(O),paragraph:l(function(){return{type:"paragraph",children:[]}}),reference:function(){this.data.referenceType="collapsed"},referenceString:i,resourceDestinationString:i,resourceTitleString:i,setextHeading:l(C),strong:l(function(){return{type:"strong",children:[]}}),thematicBreak:l(function(){return{type:"thematicBreak"}})},exit:{atxHeading:d(),atxHeadingSequence:function(e){let n=this.stack[this.stack.length-1];n.depth||(n.depth=this.sliceSerialize(e).length)},autolink:d(),autolinkEmail:function(e){x.call(this,e),this.stack[this.stack.length-1].url="mailto:"+this.sliceSerialize(e)},autolinkProtocol:function(e){x.call(this,e),this.stack[this.stack.length-1].url=this.sliceSerialize(e)},blockQuote:d(),characterEscapeValue:x,characterReferenceMarkerHexadecimal:v,characterReferenceMarkerNumeric:v,characterReferenceValue:function(e){let n,t=this.sliceSerialize(e),r=this.data.characterReferenceType;r?(n=(0,a.C)(t,"characterReferenceMarkerNumeric"===r?10:16),this.data.characterReferenceType=void 0):n=(0,s.s)(t);let l=this.stack[this.stack.length-1];l.value+=n},characterReference:function(e){this.stack.pop().position.end=h(e.end)},codeFenced:d(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}),codeFencedFence:function(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)},codeFencedFenceInfo:function(){let e=this.resume();this.stack[this.stack.length-1].lang=e},codeFencedFenceMeta:function(){let e=this.resume();this.stack[this.stack.length-1].meta=e},codeFlowValue:x,codeIndented:d(function(){let e=this.resume();this.stack[this.stack.length-1].value=e.replace(/(\r?\n|\r)$/g,"")}),codeText:d(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),codeTextData:x,data:x,definition:d(),definitionDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},definitionLabelString:function(e){let n=this.resume(),t=this.stack[this.stack.length-1];t.label=n,t.identifier=(0,c.B)(this.sliceSerialize(e)).toLowerCase()},definitionTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},emphasis:d(),hardBreakEscape:d(b),hardBreakTrailing:d(b),htmlFlow:d(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlFlowData:x,htmlText:d(function(){let e=this.resume();this.stack[this.stack.length-1].value=e}),htmlTextData:x,image:d(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let n=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=n,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),label:function(){let e=this.stack[this.stack.length-1],n=this.resume(),t=this.stack[this.stack.length-1];this.data.inReference=!0,"link"===t.type?t.children=e.children:t.alt=n},labelText:function(e){let n=this.sliceSerialize(e),t=this.stack[this.stack.length-2];t.label=(0,u.s)(n),t.identifier=(0,c.B)(n).toLowerCase()},lineEnding:function(e){let t=this.stack[this.stack.length-1];if(this.data.atHardBreak){t.children[t.children.length-1].position.end=h(e.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&n.canContainEols.includes(t.type)&&(k.call(this,e),x.call(this,e))},link:d(function(){let e=this.stack[this.stack.length-1];if(this.data.inReference){let n=this.data.referenceType||"shortcut";e.type+="Reference",e.referenceType=n,delete e.url,delete e.title}else delete e.identifier,delete e.label;this.data.referenceType=void 0}),listItem:d(),listOrdered:d(),listUnordered:d(),paragraph:d(),referenceString:function(e){let n=this.resume(),t=this.stack[this.stack.length-1];t.label=n,t.identifier=(0,c.B)(this.sliceSerialize(e)).toLowerCase(),this.data.referenceType="full"},resourceDestinationString:function(){let e=this.resume();this.stack[this.stack.length-1].url=e},resourceTitleString:function(){let e=this.resume();this.stack[this.stack.length-1].title=e},resource:function(){this.data.inReference=void 0},setextHeading:d(function(){this.data.setextHeadingSlurpLineEnding=void 0}),setextHeadingLineSequence:function(e){this.stack[this.stack.length-1].depth=61===this.sliceSerialize(e).codePointAt(0)?1:2},setextHeadingText:function(){this.data.setextHeadingSlurpLineEnding=!0},strong:d(),thematicBreak:d()}};!function e(n,t){let r=-1;for(;++r0){let e=l.tokenStack[l.tokenStack.length-1];(e[1]||m).call(l,void 0,e[0])}for(r.position={start:h(e.length>0?e[0][1].start:{line:1,column:1,offset:0}),end:h(e.length>0?e[e.length-2][1].end:{line:1,column:1,offset:0})},u=-1;++uv});var r=t(97471),l=t(83968),i=t(63215);function o(e,n){let t=[{type:"text",value:"\u21A9"}];return n>1&&t.push({type:"element",tagName:"sup",properties:{},children:[{type:"text",value:String(n)}]}),t}function a(e,n){return"Back to reference "+(e+1)+(n>1?"-"+n:"")}var u=t(47970),c=t(5824);function s(e,n){let t=n.referenceType,r="]";if("collapsed"===t?r+="[]":"full"===t&&(r+="["+(n.label||n.identifier)+"]"),"imageReference"===n.type)return[{type:"text",value:"!["+n.alt+r}];let l=e.all(n),i=l[0];i&&"text"===i.type?i.value="["+i.value:l.unshift({type:"text",value:"["});let o=l[l.length-1];return o&&"text"===o.type?o.value+=r:l.push({type:"text",value:r}),l}function f(e){let n=e.spread;return null==n?e.children.length>1:n}function p(e,n,t){let r=0,l=e.length;if(n){let n=e.codePointAt(r);for(;9===n||32===n;)r++,n=e.codePointAt(r)}if(t){let n=e.codePointAt(l-1);for(;9===n||32===n;)l--,n=e.codePointAt(l-1)}return l>r?e.slice(r,l):""}let d={blockquote:function(e,n){let t={type:"element",tagName:"blockquote",properties:{},children:e.wrap(e.all(n),!0)};return e.patch(n,t),e.applyData(n,t)},break:function(e,n){let t={type:"element",tagName:"br",properties:{},children:[]};return e.patch(n,t),[e.applyData(n,t),{type:"text",value:"\n"}]},code:function(e,n){let t=n.value?n.value+"\n":"",r={},l=n.lang?n.lang.split(/\s+/):[];l.length>0&&(r.className=["language-"+l[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:t}]};return n.meta&&(i.data={meta:n.meta}),e.patch(n,i),i={type:"element",tagName:"pre",properties:{},children:[i=e.applyData(n,i)]},e.patch(n,i),i},delete:function(e,n){let t={type:"element",tagName:"del",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)},emphasis:function(e,n){let t={type:"element",tagName:"em",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)},footnoteReference:function(e,n){let t,r="string"==typeof e.options.clobberPrefix?e.options.clobberPrefix:"user-content-",l=String(n.identifier).toUpperCase(),o=(0,i.e)(l.toLowerCase()),a=e.footnoteOrder.indexOf(l),u=e.footnoteCounts.get(l);void 0===u?(u=0,e.footnoteOrder.push(l),t=e.footnoteOrder.length):t=a+1,u+=1,e.footnoteCounts.set(l,u);let c={type:"element",tagName:"a",properties:{href:"#"+r+"fn-"+o,id:r+"fnref-"+o+(u>1?"-"+u:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(t)}]};e.patch(n,c);let s={type:"element",tagName:"sup",properties:{},children:[c]};return e.patch(n,s),e.applyData(n,s)},heading:function(e,n){let t={type:"element",tagName:"h"+n.depth,properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)},html:function(e,n){if(e.options.allowDangerousHtml){let t={type:"raw",value:n.value};return e.patch(n,t),e.applyData(n,t)}},imageReference:function(e,n){let t=String(n.identifier).toUpperCase(),r=e.definitionById.get(t);if(!r)return s(e,n);let l={src:(0,i.e)(r.url||""),alt:n.alt};null!==r.title&&void 0!==r.title&&(l.title=r.title);let o={type:"element",tagName:"img",properties:l,children:[]};return e.patch(n,o),e.applyData(n,o)},image:function(e,n){let t={src:(0,i.e)(n.url)};null!==n.alt&&void 0!==n.alt&&(t.alt=n.alt),null!==n.title&&void 0!==n.title&&(t.title=n.title);let r={type:"element",tagName:"img",properties:t,children:[]};return e.patch(n,r),e.applyData(n,r)},inlineCode:function(e,n){let t={type:"text",value:n.value.replace(/\r?\n|\r/g," ")};e.patch(n,t);let r={type:"element",tagName:"code",properties:{},children:[t]};return e.patch(n,r),e.applyData(n,r)},linkReference:function(e,n){let t=String(n.identifier).toUpperCase(),r=e.definitionById.get(t);if(!r)return s(e,n);let l={href:(0,i.e)(r.url||"")};null!==r.title&&void 0!==r.title&&(l.title=r.title);let o={type:"element",tagName:"a",properties:l,children:e.all(n)};return e.patch(n,o),e.applyData(n,o)},link:function(e,n){let t={href:(0,i.e)(n.url)};null!==n.title&&void 0!==n.title&&(t.title=n.title);let r={type:"element",tagName:"a",properties:t,children:e.all(n)};return e.patch(n,r),e.applyData(n,r)},listItem:function(e,n,t){let r=e.all(n),l=t?function(e){let n=!1;if("list"===e.type){n=e.spread||!1;let t=e.children,r=-1;for(;!n&&++r0&&e.children.unshift({type:"text",value:" "}),e.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:n.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let a=-1;for(;++a0){let r={type:"element",tagName:"tbody",properties:{},children:e.wrap(t,!0)},i=(0,c.PW)(n.children[1]),o=(0,c.Y)(n.children[n.children.length-1]);i&&o&&(r.position={start:i,end:o}),l.push(r)}let i={type:"element",tagName:"table",properties:{},children:e.wrap(l,!0)};return e.patch(n,i),e.applyData(n,i)},tableCell:function(e,n){let t={type:"element",tagName:"td",properties:{},children:e.all(n)};return e.patch(n,t),e.applyData(n,t)},tableRow:function(e,n,t){let r=t?t.children:void 0,l=0===(r?r.indexOf(n):1)?"th":"td",i=t&&"table"===t.type?t.align:void 0,o=i?i.length:n.children.length,a=-1,u=[];for(;++a0,!0),r[0]),l=r.index+r[0].length,r=t.exec(n);return i.push(p(n.slice(l),l>0,!1)),i.join("")}(String(n.value))};return e.patch(n,t),e.applyData(n,t)},thematicBreak:function(e,n){let t={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(n,t),e.applyData(n,t)},toml:h,yaml:h,definition:h,footnoteDefinition:h};function h(){}let m={}.hasOwnProperty,g={};function y(e,n){e.position&&(n.position=(0,c.G1)(e))}function k(e,n){let t=n;if(e&&e.data){let n=e.data.hName,r=e.data.hChildren,i=e.data.hProperties;"string"==typeof n&&("element"===t.type?t.tagName=n:t={type:"element",tagName:n,properties:{},children:"children"in t?t.children:[t]}),"element"===t.type&&i&&Object.assign(t.properties,(0,l.A)(i)),"children"in t&&t.children&&null!=r&&(t.children=r)}return t}function x(e,n){let t=[],r=-1;for(n&&t.push({type:"text",value:"\n"});++r0&&t.push({type:"text",value:"\n"}),t}function b(e){let n=0,t=e.charCodeAt(n);for(;9===t||32===t;)n++,t=e.charCodeAt(n);return e.slice(n)}function v(e,n){let t,c,s,f,p=(t=n||g,c=new Map,s=new Map,f={all:function(e){let n=[];if("children"in e){let t=e.children,r=-1;for(;++r0&&s.push({type:"text",value:" "});let e="string"==typeof t?t:t(p,c);"string"==typeof e&&(e={type:"text",value:e}),s.push({type:"element",tagName:"a",properties:{href:"#"+n+"fnref-"+u+(c>1?"-"+c:""),dataFootnoteBackref:"",ariaLabel:"string"==typeof r?r:r(p,c),className:["data-footnote-backref"]},children:Array.isArray(e)?e:[e]})}let h=o[o.length-1];if(h&&"element"===h.type&&"p"===h.tagName){let e=h.children[h.children.length-1];e&&"text"===e.type?e.value+=" ":h.children.push({type:"text",value:" "}),h.children.push(...s)}else o.push(...s);let m={type:"element",tagName:"li",properties:{id:n+"fn-"+u},children:e.wrap(o,!0)};e.patch(l,m),f.push(m)}if(0!==f.length)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:c,properties:{...(0,l.A)(s),id:"footnote-label"},children:[{type:"text",value:u}]},{type:"text",value:"\n"},{type:"element",tagName:"ol",properties:{},children:e.wrap(f,!0)},{type:"text",value:"\n"}]}}(p),S=Array.isArray(h)?{type:"root",children:h}:h||{type:"root",children:[]};return v&&((0,r.ok)("children"in S),S.children.push({type:"text",value:"\n"},v)),S}},72534(e,n,t){t.d(n,{d:()=>l});let r={};function l(e,n){let t=n||r;return i(e,"boolean"!=typeof t.includeImageAlt||t.includeImageAlt,"boolean"!=typeof t.includeHtml||t.includeHtml)}function i(e,n,t){var r;if((r=e)&&"object"==typeof r){if("value"in e)return"html"!==e.type||t?e.value:"";if(n&&"alt"in e&&e.alt)return e.alt;if("children"in e)return o(e.children,n,t)}return Array.isArray(e)?o(e,n,t):""}function o(e,n,t){let r=[],l=-1;for(;++li});var r=t(40433),l=t(40574);let i={partial:!0,tokenize:function(e,n,t){return function(n){return(0,l.On)(n)?(0,r.N)(e,i,"linePrefix")(n):i(n)};function i(e){return null===e||(0,l.HP)(e)?n(e):t(e)}}}},40433(e,n,t){t.d(n,{N:()=>l});var r=t(40574);function l(e,n,t,l){let i=l?l-1:1/0,o=0;return function(l){return(0,r.On)(l)?(e.enter(t),function l(a){return(0,r.On)(a)&&o++a,CW:()=>r,Ee:()=>f,HP:()=>s,JQ:()=>o,Ny:()=>h,On:()=>p,cx:()=>i,es:()=>d,lV:()=>l,ok:()=>u,ol:()=>c});let r=m(/[A-Za-z]/),l=m(/[\dA-Za-z]/),i=m(/[#-'*+\--9=?A-Z^-~]/);function o(e){return null!==e&&(e<32||127===e)}let a=m(/\d/),u=m(/[\dA-Fa-f]/),c=m(/[!-/:-@[-`{-~]/);function s(e){return null!==e&&e<-2}function f(e){return null!==e&&(e<0||32===e)}function p(e){return -2===e||-1===e||32===e}let d=m(/\p{P}|\p{S}/u),h=m(/\s/);function m(e){return function(n){return null!==n&&n>-1&&e.test(String.fromCharCode(n))}}},82777(e,n,t){function r(e,n,t,r){let l,i=e.length,o=0;if(n=n<0?-n>i?0:i+n:n>i?i:n,t=t>0?t:0,r.length<1e4)(l=Array.from(r)).unshift(n,t),e.splice(...l);else for(t&&e.splice(n,t);o0?(r(e,e.length,0,n),e):n}t.d(n,{V:()=>l,m:()=>r})},10691(e,n,t){t.d(n,{S:()=>l});var r=t(40574);function l(e){return null===e||(0,r.Ee)(e)||(0,r.Ny)(e)?1:(0,r.es)(e)?2:void 0}},5389(e,n,t){t.d(n,{v:()=>o,y:()=>i});var r=t(82777);let l={}.hasOwnProperty;function i(e){let n={},t=-1;for(;++tr});function r(e,n){let t=Number.parseInt(e,n);return t<9||11===t||t>13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(65535&t)==65535||(65535&t)==65534||t>1114111?"\uFFFD":String.fromCodePoint(t)}},22177(e,n,t){t.d(n,{s:()=>o});var r=t(96206),l=t(43589);let i=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function o(e){return e.replace(i,a)}function a(e,n,t){if(n)return n;if(35===t.charCodeAt(0)){let e=t.charCodeAt(1),n=120===e||88===e;return(0,l.C)(t.slice(n?2:1),n?16:10)}return(0,r.s)(t)||e}},75737(e,n,t){t.d(n,{l:()=>l});let r={'"':"quot","&":"amp","<":"lt",">":"gt"};function l(e){return e.replace(/["&<>]/g,function(e){return"&"+r[e]+";"})}},9638(e,n,t){t.d(n,{B:()=>r});function r(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}},45535(e,n,t){t.d(n,{W:()=>r});function r(e,n,t){let r=[],l=-1;for(;++li,e:()=>o});var r=t(40574),l=t(75737);function i(e,n){let t=(0,l.l)(o(e||""));if(!n)return t;let r=t.indexOf(":"),i=t.indexOf("?"),a=t.indexOf("#"),u=t.indexOf("/");return r<0||u>-1&&r>u||i>-1&&r>i||a>-1&&r>a||n.test(t.slice(0,r))?t:""}function o(e){let n=[],t=-1,l=0,i=0;for(;++t55295&&o<57344){let n=e.charCodeAt(t+1);o<56320&&n>56319&&n<57344?(a=String.fromCharCode(o,n),i=1):a="\uFFFD"}else a=String.fromCharCode(o);a&&(n.push(e.slice(l,t),encodeURIComponent(a)),l=t+i+1,a=""),i&&(t+=i,i=0)}return n.join("")+e.slice(l)}},12487(e,n,t){t.d(n,{w:()=>o});var r=t(82777);class l{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return ethis.left.length?this.right.slice(this.right.length-t+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-t+this.left.length).reverse())}splice(e,n,t){this.setCursor(Math.trunc(e));let r=this.right.splice(this.right.length-(n||0),1/0);return t&&i(this.left,t),r.reverse()}pop(){return this.setCursor(1/0),this.left.pop()}push(e){this.setCursor(1/0),this.left.push(e)}pushMany(e){this.setCursor(1/0),i(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),i(this.right,e.reverse())}setCursor(e){if(e!==this.left.length&&(!(e>this.left.length)||0!==this.right.length)&&(!(e<0)||0!==this.left.length))if(eef});var r={};t.r(r),t.d(r,{attentionMarkers:()=>ec,contentInitial:()=>er,disable:()=>es,document:()=>et,flow:()=>ei,flowInitial:()=>el,insideSpan:()=>eu,string:()=>eo,text:()=>ea});var l=t(5389),i=t(40433),o=t(40574);let a={tokenize:function(e){let n,t=e.attempt(this.parser.constructs.contentInitial,function(n){return null===n?void e.consume(n):(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),(0,i.N)(e,t,"linePrefix"))},function(t){return e.enter("paragraph"),function t(r){let l=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=l),n=l,function n(r){if(null===r){e.exit("chunkText"),e.exit("paragraph"),e.consume(r);return}return(0,o.HP)(r)?(e.consume(r),e.exit("chunkText"),t):(e.consume(r),n)}(r)}(t)});return t}};var u=t(82777);let c={tokenize:function(e){let n,t,r,l=this,i=[],a=0;return c;function c(n){if(ar))return;let o=l.events.length,c=o;for(;c--;)if("exit"===l.events[c][0]&&"chunkFlow"===l.events[c][1].type){if(e){t=l.events[c][1].end;break}e=!0}for(x(a),i=o;in;){let n=i[t];l.containerState=n[1],n[0].exit.call(l,e)}i.length=n}function b(){n.write([null]),t=void 0,n=void 0,l.containerState._closeFlow=void 0}}},s={tokenize:function(e,n,t){return(0,i.N)(e,e.attempt(this.parser.constructs.document,n,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}};var f=t(9283),p=t(12487);let d={resolve:function(e){return(0,p.w)(e),e},tokenize:function(e,n){let t;return function(n){return e.enter("content"),t=e.enter("chunkContent",{contentType:"content"}),r(n)};function r(n){return null===n?l(n):(0,o.HP)(n)?e.check(h,i,l)(n):(e.consume(n),r)}function l(t){return e.exit("chunkContent"),e.exit("content"),n(t)}function i(n){return e.consume(n),e.exit("chunkContent"),t.next=e.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,r}}},h={partial:!0,tokenize:function(e,n,t){let r=this;return function(n){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),(0,i.N)(e,l,"linePrefix")};function l(l){if(null===l||(0,o.HP)(l))return t(l);let i=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?n(l):e.interrupt(r.parser.constructs.flow,t,n)(l)}}},m={tokenize:function(e){let n=this,t=e.attempt(f.B,function(r){return null===r?void e.consume(r):(e.enter("lineEndingBlank"),e.consume(r),e.exit("lineEndingBlank"),n.currentConstruct=void 0,t)},e.attempt(this.parser.constructs.flowInitial,r,(0,i.N)(e,e.attempt(this.parser.constructs.flow,r,e.attempt(d,r)),"linePrefix")));return t;function r(r){return null===r?void e.consume(r):(e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),n.currentConstruct=void 0,t)}}},g={resolveAll:b()},y=x("string"),k=x("text");function x(e){return{resolveAll:b("text"===e?v:void 0),tokenize:function(n){let t=this,r=this.parser.constructs[e],l=n.attempt(r,i,o);return i;function i(e){return u(e)?l(e):o(e)}function o(e){return null===e?void n.consume(e):(n.enter("data"),n.consume(e),a)}function a(e){return u(e)?(n.exit("data"),l(e)):(n.consume(e),a)}function u(e){if(null===e)return!0;let n=r[e],l=-1;if(n)for(;++l=3&&(null===u||(0,o.HP)(u))?(e.exit("thematicBreak"),n(u)):t(u)}(u)}}},C={continuation:{tokenize:function(e,n,t){let r=this;return r.containerState._closeFlow=void 0,e.check(f.B,function(t){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,(0,i.N)(e,n,"listItemIndent",r.containerState.size+1)(t)},function(t){return r.containerState.furtherBlankLines||!(0,o.On)(t)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,l(t)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(P,n,l)(t))});function l(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,(0,i.N)(e,e.attempt(C,n,t),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}},exit:function(e){e.exit(this.containerState.type)},name:"list",tokenize:function(e,n,t){let r=this,l=r.events[r.events.length-1],i=l&&"linePrefix"===l[1].type?l[2].sliceSerialize(l[1],!0).length:0,a=0;return function(n){let l=r.containerState.type||(42===n||43===n||45===n?"listUnordered":"listOrdered");if("listUnordered"===l?!r.containerState.marker||n===r.containerState.marker:(0,o.BM)(n)){if(r.containerState.type||(r.containerState.type=l,e.enter(l,{_container:!0})),"listUnordered"===l)return e.enter("listItemPrefix"),42===n||45===n?e.check(S,t,u)(n):u(n);if(!r.interrupt||49===n)return e.enter("listItemPrefix"),e.enter("listItemValue"),function n(l){return(0,o.BM)(l)&&++a<10?(e.consume(l),n):(!r.interrupt||a<2)&&(r.containerState.marker?l===r.containerState.marker:41===l||46===l)?(e.exit("listItemValue"),u(l)):t(l)}(n)}return t(n)};function u(n){return e.enter("listItemMarker"),e.consume(n),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||n,e.check(f.B,r.interrupt?t:c,e.attempt(w,p,s))}function c(e){return r.containerState.initialBlankLine=!0,i++,p(e)}function s(n){return(0,o.On)(n)?(e.enter("listItemPrefixWhitespace"),e.consume(n),e.exit("listItemPrefixWhitespace"),p):t(n)}function p(t){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,n(t)}}},w={partial:!0,tokenize:function(e,n,t){let r=this;return(0,i.N)(e,function(e){let l=r.events[r.events.length-1];return!(0,o.On)(e)&&l&&"listItemPrefixWhitespace"===l[1].type?n(e):t(e)},"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5)}},P={partial:!0,tokenize:function(e,n,t){let r=this;return(0,i.N)(e,function(e){let l=r.events[r.events.length-1];return l&&"listItemIndent"===l[1].type&&l[2].sliceSerialize(l[1],!0).length===r.containerState.size?n(e):t(e)},"listItemIndent",r.containerState.size+1)}},E={continuation:{tokenize:function(e,n,t){let r=this;return function(n){return(0,o.On)(n)?(0,i.N)(e,l,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):l(n)};function l(r){return e.attempt(E,n,t)(r)}}},exit:function(e){e.exit("blockQuote")},name:"blockQuote",tokenize:function(e,n,t){let r=this;return function(n){if(62===n){let t=r.containerState;return t.open||(e.enter("blockQuote",{_container:!0}),t.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(n),e.exit("blockQuoteMarker"),l}return t(n)};function l(t){return(0,o.On)(t)?(e.enter("blockQuotePrefixWhitespace"),e.consume(t),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),n):(e.exit("blockQuotePrefix"),n(t))}}};function O(e,n,t,r,l,i,a,u,c){let s=c||1/0,f=0;return function(n){return 60===n?(e.enter(r),e.enter(l),e.enter(i),e.consume(n),e.exit(i),p):null===n||32===n||41===n||(0,o.JQ)(n)?t(n):(e.enter(r),e.enter(a),e.enter(u),e.enter("chunkString",{contentType:"string"}),m(n))};function p(t){return 62===t?(e.enter(i),e.consume(t),e.exit(i),e.exit(l),e.exit(r),n):(e.enter(u),e.enter("chunkString",{contentType:"string"}),d(t))}function d(n){return 62===n?(e.exit("chunkString"),e.exit(u),p(n)):null===n||60===n||(0,o.HP)(n)?t(n):(e.consume(n),92===n?h:d)}function h(n){return 60===n||62===n||92===n?(e.consume(n),d):d(n)}function m(l){return!f&&(null===l||41===l||(0,o.Ee)(l))?(e.exit("chunkString"),e.exit(u),e.exit(a),e.exit(r),n(l)):f999||null===p||91===p||93===p&&!a||94===p&&!c&&"_hiddenFootnoteSupport"in u.parser.constructs?t(p):93===p?(e.exit(i),e.enter(l),e.consume(p),e.exit(l),e.exit(r),n):(0,o.HP)(p)?(e.enter("lineEnding"),e.consume(p),e.exit("lineEnding"),s):(e.enter("chunkString",{contentType:"string"}),f(p))}function f(n){return null===n||91===n||93===n||(0,o.HP)(n)||c++>999?(e.exit("chunkString"),s(n)):(e.consume(n),a||(a=!(0,o.On)(n)),92===n?p:f)}function p(n){return 91===n||92===n||93===n?(e.consume(n),c++,f):f(n)}}function D(e,n,t,r,l,a){let u;return function(n){return 34===n||39===n||40===n?(e.enter(r),e.enter(l),e.consume(n),e.exit(l),u=40===n?41:n,c):t(n)};function c(t){return t===u?(e.enter(l),e.consume(t),e.exit(l),e.exit(r),n):(e.enter(a),s(t))}function s(n){return n===u?(e.exit(a),c(u)):null===n?t(n):(0,o.HP)(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),(0,i.N)(e,s,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),f(n))}function f(n){return n===u||null===n||(0,o.HP)(n)?(e.exit("chunkString"),s(n)):(e.consume(n),92===n?p:f)}function p(n){return n===u||92===n?(e.consume(n),f):f(n)}}function M(e,n){let t;return function r(l){return(0,o.HP)(l)?(e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),t=!0,r):(0,o.On)(l)?(0,i.N)(e,r,t?"linePrefix":"lineSuffix")(l):n(l)}}var I=t(9638);let L={partial:!0,tokenize:function(e,n,t){return function(n){return(0,o.Ee)(n)?M(e,r)(n):t(n)};function r(n){return D(e,l,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(n)}function l(n){return(0,o.On)(n)?(0,i.N)(e,a,"whitespace")(n):a(n)}function a(e){return null===e||(0,o.HP)(e)?n(e):t(e)}}},z={name:"codeIndented",tokenize:function(e,n,t){let r=this;return function(n){return e.enter("codeIndented"),(0,i.N)(e,l,"linePrefix",5)(n)};function l(n){let l=r.events[r.events.length-1];return l&&"linePrefix"===l[1].type&&l[2].sliceSerialize(l[1],!0).length>=4?function n(t){return null===t?a(t):(0,o.HP)(t)?e.attempt(A,n,a)(t):(e.enter("codeFlowValue"),function t(r){return null===r||(0,o.HP)(r)?(e.exit("codeFlowValue"),n(r)):(e.consume(r),t)}(t))}(n):t(n)}function a(t){return e.exit("codeIndented"),n(t)}}},A={partial:!0,tokenize:function(e,n,t){let r=this;return l;function l(n){return r.parser.lazy[r.now().line]?t(n):(0,o.HP)(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),l):(0,i.N)(e,a,"linePrefix",5)(n)}function a(e){let i=r.events[r.events.length-1];return i&&"linePrefix"===i[1].type&&i[2].sliceSerialize(i[1],!0).length>=4?n(e):(0,o.HP)(e)?l(e):t(e)}}},H={name:"setextUnderline",resolveTo:function(e,n){let t,r,l,i=e.length;for(;i--;)if("enter"===e[i][0]){if("content"===e[i][1].type){t=i;break}"paragraph"===e[i][1].type&&(r=i)}else"content"===e[i][1].type&&e.splice(i,1),l||"definition"!==e[i][1].type||(l=i);let o={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[r][1].type="setextHeadingText",l?(e.splice(r,0,["enter",o,n]),e.splice(l+1,0,["exit",e[t][1],n]),e[t][1].end={...e[l][1].end}):e[t][1]=o,e.push(["exit",o,n]),e},tokenize:function(e,n,t){let r,l=this;return function(n){var u;let c,s=l.events.length;for(;s--;)if("lineEnding"!==l.events[s][1].type&&"linePrefix"!==l.events[s][1].type&&"content"!==l.events[s][1].type){c="paragraph"===l.events[s][1].type;break}return!l.parser.lazy[l.now().line]&&(l.interrupt||c)?(e.enter("setextHeadingLine"),r=n,u=n,e.enter("setextHeadingLineSequence"),function n(t){return t===r?(e.consume(t),n):(e.exit("setextHeadingLineSequence"),(0,o.On)(t)?(0,i.N)(e,a,"lineSuffix")(t):a(t))}(u)):t(n)};function a(r){return null===r||(0,o.HP)(r)?(e.exit("setextHeadingLine"),n(r)):t(r)}}},F=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],R=["pre","script","style","textarea"],B={partial:!0,tokenize:function(e,n,t){return function(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),e.attempt(f.B,n,t)}}},N={partial:!0,tokenize:function(e,n,t){let r=this;return function(n){return(0,o.HP)(n)?(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),l):t(n)};function l(e){return r.parser.lazy[r.now().line]?t(e):n(e)}}},_={partial:!0,tokenize:function(e,n,t){let r=this;return function(n){return null===n?t(n):(e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),l)};function l(e){return r.parser.lazy[r.now().line]?t(e):n(e)}}},V={concrete:!0,name:"codeFenced",tokenize:function(e,n,t){let r,l=this,a={partial:!0,tokenize:function(e,n,t){let a=0;return function(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),u};function u(n){return e.enter("codeFencedFence"),(0,o.On)(n)?(0,i.N)(e,s,"linePrefix",l.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):s(n)}function s(n){return n===r?(e.enter("codeFencedFenceSequence"),function n(l){return l===r?(a++,e.consume(l),n):a>=c?(e.exit("codeFencedFenceSequence"),(0,o.On)(l)?(0,i.N)(e,f,"whitespace")(l):f(l)):t(l)}(n)):t(n)}function f(r){return null===r||(0,o.HP)(r)?(e.exit("codeFencedFence"),n(r)):t(r)}}},u=0,c=0;return function(n){var a;let f;return a=n,u=(f=l.events[l.events.length-1])&&"linePrefix"===f[1].type?f[2].sliceSerialize(f[1],!0).length:0,r=a,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),function n(l){return l===r?(c++,e.consume(l),n):c<3?t(l):(e.exit("codeFencedFenceSequence"),(0,o.On)(l)?(0,i.N)(e,s,"whitespace")(l):s(l))}(a)};function s(a){return null===a||(0,o.HP)(a)?(e.exit("codeFencedFence"),l.interrupt?n(a):e.check(_,p,g)(a)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),function n(l){return null===l||(0,o.HP)(l)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),s(l)):(0,o.On)(l)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),(0,i.N)(e,f,"whitespace")(l)):96===l&&l===r?t(l):(e.consume(l),n)}(a))}function f(n){return null===n||(0,o.HP)(n)?s(n):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),function n(l){return null===l||(0,o.HP)(l)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),s(l)):96===l&&l===r?t(l):(e.consume(l),n)}(n))}function p(n){return e.attempt(a,g,d)(n)}function d(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),h}function h(n){return u>0&&(0,o.On)(n)?(0,i.N)(e,m,"linePrefix",u+1)(n):m(n)}function m(n){return null===n||(0,o.HP)(n)?e.check(_,p,g)(n):(e.enter("codeFlowValue"),function n(t){return null===t||(0,o.HP)(t)?(e.exit("codeFlowValue"),m(t)):(e.consume(t),n)}(n))}function g(t){return e.exit("codeFenced"),n(t)}}};var U=t(96206);let q={name:"characterReference",tokenize:function(e,n,t){let r,l,i=this,a=0;return function(n){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(n),e.exit("characterReferenceMarker"),u};function u(n){return 35===n?(e.enter("characterReferenceMarkerNumeric"),e.consume(n),e.exit("characterReferenceMarkerNumeric"),c):(e.enter("characterReferenceValue"),r=31,l=o.lV,s(n))}function c(n){return 88===n||120===n?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(n),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),r=6,l=o.ok,s):(e.enter("characterReferenceValue"),r=7,l=o.BM,s(n))}function s(u){if(59===u&&a){let r=e.exit("characterReferenceValue");return l!==o.lV||(0,U.s)(i.sliceSerialize(r))?(e.enter("characterReferenceMarker"),e.consume(u),e.exit("characterReferenceMarker"),e.exit("characterReference"),n):t(u)}return l(u)&&a++1&&e[f][1].end.offset-e[f][1].start.offset>1?2:1;let p={...e[t][1].end},d={...e[f][1].start};ee(p,-a),ee(d,a),i={type:a>1?"strongSequence":"emphasisSequence",start:p,end:{...e[t][1].end}},o={type:a>1?"strongSequence":"emphasisSequence",start:{...e[f][1].start},end:d},l={type:a>1?"strongText":"emphasisText",start:{...e[t][1].end},end:{...e[f][1].start}},r={type:a>1?"strong":"emphasis",start:{...i.start},end:{...o.end}},e[t][1].end={...i.start},e[f][1].start={...o.end},c=[],e[t][1].end.offset-e[t][1].start.offset&&(c=(0,u.V)(c,[["enter",e[t][1],n],["exit",e[t][1],n]])),c=(0,u.V)(c,[["enter",r,n],["enter",i,n],["exit",i,n],["enter",l,n]]),c=(0,u.V)(c,(0,Q.W)(n.parser.constructs.insideSpan.null,e.slice(t+1,f),n)),c=(0,u.V)(c,[["exit",l,n],["enter",o,n],["exit",o,n],["exit",r,n]]),e[f][1].end.offset-e[f][1].start.offset?(s=2,c=(0,u.V)(c,[["enter",e[f][1],n],["exit",e[f][1],n]])):s=0,(0,u.m)(e,t-1,f-t+3,c),f=t+c.length-s-2;break}}for(f=-1;++fi&&"whitespace"===e[l][1].type&&(l-=2),"atxHeadingSequence"===e[l][1].type&&(i===l-1||l-4>i&&"whitespace"===e[l-2][1].type)&&(l-=i+1===l?2:4),l>i&&(t={type:"atxHeadingText",start:e[i][1].start,end:e[l][1].end},r={type:"chunkText",start:e[i][1].start,end:e[l][1].end,contentType:"text"},(0,u.m)(e,i,l-i+1,[["enter",t,n],["enter",r,n],["exit",r,n],["exit",t,n]])),e},tokenize:function(e,n,t){let r=0;return function(l){var a;return e.enter("atxHeading"),a=l,e.enter("atxHeadingSequence"),function l(a){return 35===a&&r++<6?(e.consume(a),l):null===a||(0,o.Ee)(a)?(e.exit("atxHeadingSequence"),function t(r){return 35===r?(e.enter("atxHeadingSequence"),function n(r){return 35===r?(e.consume(r),n):(e.exit("atxHeadingSequence"),t(r))}(r)):null===r||(0,o.HP)(r)?(e.exit("atxHeading"),n(r)):(0,o.On)(r)?(0,i.N)(e,t,"whitespace")(r):(e.enter("atxHeadingText"),function n(r){return null===r||35===r||(0,o.Ee)(r)?(e.exit("atxHeadingText"),t(r)):(e.consume(r),n)}(r))}(a)):t(a)}(a)}}},42:S,45:[H,S],60:{concrete:!0,name:"htmlFlow",resolveTo:function(e){let n=e.length;for(;n--&&("enter"!==e[n][0]||"htmlFlow"!==e[n][1].type););return n>1&&"linePrefix"===e[n-2][1].type&&(e[n][1].start=e[n-2][1].start,e[n+1][1].start=e[n-2][1].start,e.splice(n-2,2)),e},tokenize:function(e,n,t){let r,l,i,a,u,c=this;return function(n){var t;return t=n,e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(t),s};function s(a){return 33===a?(e.consume(a),f):47===a?(e.consume(a),l=!0,h):63===a?(e.consume(a),r=3,c.interrupt?n:z):(0,o.CW)(a)?(e.consume(a),i=String.fromCharCode(a),m):t(a)}function f(l){return 45===l?(e.consume(l),r=2,p):91===l?(e.consume(l),r=5,a=0,d):(0,o.CW)(l)?(e.consume(l),r=4,c.interrupt?n:z):t(l)}function p(r){return 45===r?(e.consume(r),c.interrupt?n:z):t(r)}function d(r){let l="CDATA[";return r===l.charCodeAt(a++)?(e.consume(r),a===l.length)?c.interrupt?n:P:d:t(r)}function h(n){return(0,o.CW)(n)?(e.consume(n),i=String.fromCharCode(n),m):t(n)}function m(a){if(null===a||47===a||62===a||(0,o.Ee)(a)){let u=47===a,s=i.toLowerCase();return!u&&!l&&R.includes(s)?(r=1,c.interrupt?n(a):P(a)):F.includes(i.toLowerCase())?(r=6,u)?(e.consume(a),g):c.interrupt?n(a):P(a):(r=7,c.interrupt&&!c.parser.lazy[c.now().line]?t(a):l?function n(t){return(0,o.On)(t)?(e.consume(t),n):C(t)}(a):y(a))}return 45===a||(0,o.lV)(a)?(e.consume(a),i+=String.fromCharCode(a),m):t(a)}function g(r){return 62===r?(e.consume(r),c.interrupt?n:P):t(r)}function y(n){return 47===n?(e.consume(n),C):58===n||95===n||(0,o.CW)(n)?(e.consume(n),k):(0,o.On)(n)?(e.consume(n),y):C(n)}function k(n){return 45===n||46===n||58===n||95===n||(0,o.lV)(n)?(e.consume(n),k):x(n)}function x(n){return 61===n?(e.consume(n),b):(0,o.On)(n)?(e.consume(n),x):y(n)}function b(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),u=n,v):(0,o.On)(n)?(e.consume(n),b):function n(t){return null===t||34===t||39===t||47===t||60===t||61===t||62===t||96===t||(0,o.Ee)(t)?x(t):(e.consume(t),n)}(n)}function v(n){return n===u?(e.consume(n),u=null,S):null===n||(0,o.HP)(n)?t(n):(e.consume(n),v)}function S(e){return 47===e||62===e||(0,o.On)(e)?y(e):t(e)}function C(n){return 62===n?(e.consume(n),w):t(n)}function w(n){return null===n||(0,o.HP)(n)?P(n):(0,o.On)(n)?(e.consume(n),w):t(n)}function P(n){return 45===n&&2===r?(e.consume(n),D):60===n&&1===r?(e.consume(n),M):62===n&&4===r?(e.consume(n),A):63===n&&3===r?(e.consume(n),z):93===n&&5===r?(e.consume(n),L):(0,o.HP)(n)&&(6===r||7===r)?(e.exit("htmlFlowData"),e.check(B,H,E)(n)):null===n||(0,o.HP)(n)?(e.exit("htmlFlowData"),E(n)):(e.consume(n),P)}function E(n){return e.check(N,O,H)(n)}function O(n){return e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),T}function T(n){return null===n||(0,o.HP)(n)?E(n):(e.enter("htmlFlowData"),P(n))}function D(n){return 45===n?(e.consume(n),z):P(n)}function M(n){return 47===n?(e.consume(n),i="",I):P(n)}function I(n){if(62===n){let t=i.toLowerCase();return R.includes(t)?(e.consume(n),A):P(n)}return(0,o.CW)(n)&&i.length<8?(e.consume(n),i+=String.fromCharCode(n),I):P(n)}function L(n){return 93===n?(e.consume(n),z):P(n)}function z(n){return 62===n?(e.consume(n),A):45===n&&2===r?(e.consume(n),z):P(n)}function A(n){return null===n||(0,o.HP)(n)?(e.exit("htmlFlowData"),H(n)):(e.consume(n),A)}function H(t){return e.exit("htmlFlow"),n(t)}}},61:H,95:S,96:V,126:V},eo={38:q,92:W},ea={[-5]:j,[-4]:j,[-3]:j,33:Z,38:q,42:G,60:[{name:"autolink",tokenize:function(e,n,t){let r=0;return function(n){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(n),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),l};function l(n){return(0,o.CW)(n)?(e.consume(n),i):64===n?t(n):u(n)}function i(n){return 43===n||45===n||46===n||(0,o.lV)(n)?(r=1,function n(t){return 58===t?(e.consume(t),r=0,a):(43===t||45===t||46===t||(0,o.lV)(t))&&r++<32?(e.consume(t),n):(r=0,u(t))}(n)):u(n)}function a(r){return 62===r?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(r),e.exit("autolinkMarker"),e.exit("autolink"),n):null===r||32===r||60===r||(0,o.JQ)(r)?t(r):(e.consume(r),a)}function u(n){return 64===n?(e.consume(n),c):(0,o.cx)(n)?(e.consume(n),u):t(n)}function c(l){return(0,o.lV)(l)?function l(i){return 46===i?(e.consume(i),r=0,c):62===i?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(i),e.exit("autolinkMarker"),e.exit("autolink"),n):function n(i){if((45===i||(0,o.lV)(i))&&r++<63){let t=45===i?n:l;return e.consume(i),t}return t(i)}(i)}(l):t(l)}}},{name:"htmlText",tokenize:function(e,n,t){let r,l,a,u=this;return function(n){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(n),c};function c(n){return 33===n?(e.consume(n),s):47===n?(e.consume(n),S):63===n?(e.consume(n),b):(0,o.CW)(n)?(e.consume(n),w):t(n)}function s(n){return 45===n?(e.consume(n),f):91===n?(e.consume(n),l=0,m):(0,o.CW)(n)?(e.consume(n),x):t(n)}function f(n){return 45===n?(e.consume(n),h):t(n)}function p(n){return null===n?t(n):45===n?(e.consume(n),d):(0,o.HP)(n)?(a=p,L(n)):(e.consume(n),p)}function d(n){return 45===n?(e.consume(n),h):p(n)}function h(e){return 62===e?I(e):45===e?d(e):p(e)}function m(n){let r="CDATA[";return n===r.charCodeAt(l++)?(e.consume(n),l===r.length?g:m):t(n)}function g(n){return null===n?t(n):93===n?(e.consume(n),y):(0,o.HP)(n)?(a=g,L(n)):(e.consume(n),g)}function y(n){return 93===n?(e.consume(n),k):g(n)}function k(n){return 62===n?I(n):93===n?(e.consume(n),k):g(n)}function x(n){return null===n||62===n?I(n):(0,o.HP)(n)?(a=x,L(n)):(e.consume(n),x)}function b(n){return null===n?t(n):63===n?(e.consume(n),v):(0,o.HP)(n)?(a=b,L(n)):(e.consume(n),b)}function v(e){return 62===e?I(e):b(e)}function S(n){return(0,o.CW)(n)?(e.consume(n),C):t(n)}function C(n){return 45===n||(0,o.lV)(n)?(e.consume(n),C):function n(t){return(0,o.HP)(t)?(a=n,L(t)):(0,o.On)(t)?(e.consume(t),n):I(t)}(n)}function w(n){return 45===n||(0,o.lV)(n)?(e.consume(n),w):47===n||62===n||(0,o.Ee)(n)?P(n):t(n)}function P(n){return 47===n?(e.consume(n),I):58===n||95===n||(0,o.CW)(n)?(e.consume(n),E):(0,o.HP)(n)?(a=P,L(n)):(0,o.On)(n)?(e.consume(n),P):I(n)}function E(n){return 45===n||46===n||58===n||95===n||(0,o.lV)(n)?(e.consume(n),E):function n(t){return 61===t?(e.consume(t),O):(0,o.HP)(t)?(a=n,L(t)):(0,o.On)(t)?(e.consume(t),n):P(t)}(n)}function O(n){return null===n||60===n||61===n||62===n||96===n?t(n):34===n||39===n?(e.consume(n),r=n,T):(0,o.HP)(n)?(a=O,L(n)):(0,o.On)(n)?(e.consume(n),O):(e.consume(n),D)}function T(n){return n===r?(e.consume(n),r=void 0,M):null===n?t(n):(0,o.HP)(n)?(a=T,L(n)):(e.consume(n),T)}function D(n){return null===n||34===n||39===n||60===n||61===n||96===n?t(n):47===n||62===n||(0,o.Ee)(n)?P(n):(e.consume(n),D)}function M(e){return 47===e||62===e||(0,o.Ee)(e)?P(e):t(e)}function I(r){return 62===r?(e.consume(r),e.exit("htmlTextData"),e.exit("htmlText"),n):t(r)}function L(n){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(n),e.exit("lineEnding"),z}function z(n){return(0,o.On)(n)?(0,i.N)(e,A,"linePrefix",u.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(n):A(n)}function A(n){return e.enter("htmlTextData"),a(n)}}}],91:en,92:[{name:"hardBreakEscape",tokenize:function(e,n,t){return function(n){return e.enter("hardBreakEscape"),e.consume(n),r};function r(r){return(0,o.HP)(r)?(e.exit("hardBreakEscape"),n(r)):t(r)}}},W],93:Y,95:G,96:{name:"codeText",previous:function(e){return 96!==e||"characterEscape"===this.events[this.events.length-1][1].type},resolve:function(e){let n,t,r=e.length-4,l=3;if(("lineEnding"===e[3][1].type||"space"===e[l][1].type)&&("lineEnding"===e[r][1].type||"space"===e[r][1].type)){for(n=l;++n-1){let e=t[0];"string"==typeof e?t[0]=e.slice(l):t.shift()}o>0&&t.push(e[i].slice(0,o))}return t}(a,e)}function h(){let{_bufferIndex:e,_index:n,line:t,column:l,offset:i}=r;return{_bufferIndex:e,_index:n,line:t,column:l,offset:i}}function m(e,n){n.restore()}function g(e,n){return function(t,l,i){var o;let a,u,p,d;return Array.isArray(t)?m(t):"tokenize"in t?m([t]):(o=t,function(e){let n=null!==e&&o[e],t=null!==e&&o.null;return m([...Array.isArray(n)?n:n?[n]:[],...Array.isArray(t)?t:t?[t]:[]])(e)});function m(e){return(a=e,u=0,0===e.length)?i:g(e[u])}function g(e){return function(t){let l,i,o,a,u;return(l=h(),i=f.previous,o=f.currentConstruct,a=f.events.length,u=Array.from(c),d={from:a,restore:function(){r=l,f.previous=i,f.currentConstruct=o,f.events.length=a,c=u,k()}},p=e,e.partial||(f.currentConstruct=e),e.name&&f.parser.constructs.disable.null.includes(e.name))?x(t):e.tokenize.call(n?Object.assign(Object.create(f),n):f,s,y,x)(t)}}function y(n){return e(p,d),l}function x(e){return(d.restore(),++ul});var r=t(12487);function l(e){for(;!(0,r.w)(e););return e}},2611(e,n,t){t.d(n,{v:()=>l});let r=/[\0\t\n\r]/g;function l(){let e,n=1,t="",l=!0;return function(i,o,a){let u,c,s,f,p,d=[];for(i=t+("string"==typeof i?i.toString():new TextDecoder(o||void 0).decode(i)),s=0,t="",l&&(65279===i.charCodeAt(0)&&s++,l=void 0);sk,qy:()=>y});class r{constructor(e,n,t){this.normal=n,this.property=e,t&&(this.space=t)}}function l(e,n){let t={},l={};for(let n of e)Object.assign(t,n.property),Object.assign(l,n.normal);return new r(t,l,n)}r.prototype.normal={},r.prototype.property={},r.prototype.space=void 0;var i=t(77457),o=t(75147);function a(e){let n={},t={};for(let[r,l]of Object.entries(e.properties)){let a=new o.E(r,e.transform(e.attributes||{},r),l,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(a.mustUseProperty=!0),n[r]=a,t[(0,i.S)(r)]=r,t[(0,i.S)(a.attribute)]=r}return new r(n,t,e.space)}var u=t(65018);let c=a({properties:{ariaActiveDescendant:null,ariaAtomic:u.booleanish,ariaAutoComplete:null,ariaBusy:u.booleanish,ariaChecked:u.booleanish,ariaColCount:u.number,ariaColIndex:u.number,ariaColSpan:u.number,ariaControls:u.spaceSeparated,ariaCurrent:null,ariaDescribedBy:u.spaceSeparated,ariaDetails:null,ariaDisabled:u.booleanish,ariaDropEffect:u.spaceSeparated,ariaErrorMessage:null,ariaExpanded:u.booleanish,ariaFlowTo:u.spaceSeparated,ariaGrabbed:u.booleanish,ariaHasPopup:null,ariaHidden:u.booleanish,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:u.spaceSeparated,ariaLevel:u.number,ariaLive:null,ariaModal:u.booleanish,ariaMultiLine:u.booleanish,ariaMultiSelectable:u.booleanish,ariaOrientation:null,ariaOwns:u.spaceSeparated,ariaPlaceholder:null,ariaPosInSet:u.number,ariaPressed:u.booleanish,ariaReadOnly:u.booleanish,ariaRelevant:null,ariaRequired:u.booleanish,ariaRoleDescription:u.spaceSeparated,ariaRowCount:u.number,ariaRowIndex:u.number,ariaRowSpan:u.number,ariaSelected:u.booleanish,ariaSetSize:u.number,ariaSort:null,ariaValueMax:u.number,ariaValueMin:u.number,ariaValueNow:u.number,ariaValueText:null,role:null},transform:(e,n)=>"role"===n?n:"aria-"+n.slice(4).toLowerCase()});function s(e,n){return n in e?e[n]:n}function f(e,n){return s(e,n.toLowerCase())}let p=a({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:u.commaSeparated,acceptCharset:u.spaceSeparated,accessKey:u.spaceSeparated,action:null,allow:null,allowFullScreen:u.boolean,allowPaymentRequest:u.boolean,allowUserMedia:u.boolean,alt:null,as:null,async:u.boolean,autoCapitalize:null,autoComplete:u.spaceSeparated,autoFocus:u.boolean,autoPlay:u.boolean,blocking:u.spaceSeparated,capture:null,charSet:null,checked:u.boolean,cite:null,className:u.spaceSeparated,cols:u.number,colSpan:null,content:null,contentEditable:u.booleanish,controls:u.boolean,controlsList:u.spaceSeparated,coords:u.number|u.commaSeparated,crossOrigin:null,data:null,dateTime:null,decoding:null,default:u.boolean,defer:u.boolean,dir:null,dirName:null,disabled:u.boolean,download:u.overloadedBoolean,draggable:u.booleanish,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:u.boolean,formTarget:null,headers:u.spaceSeparated,height:u.number,hidden:u.overloadedBoolean,high:u.number,href:null,hrefLang:null,htmlFor:u.spaceSeparated,httpEquiv:u.spaceSeparated,id:null,imageSizes:null,imageSrcSet:null,inert:u.boolean,inputMode:null,integrity:null,is:null,isMap:u.boolean,itemId:null,itemProp:u.spaceSeparated,itemRef:u.spaceSeparated,itemScope:u.boolean,itemType:u.spaceSeparated,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:u.boolean,low:u.number,manifest:null,max:null,maxLength:u.number,media:null,method:null,min:null,minLength:u.number,multiple:u.boolean,muted:u.boolean,name:null,nonce:null,noModule:u.boolean,noValidate:u.boolean,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:u.boolean,optimum:u.number,pattern:null,ping:u.spaceSeparated,placeholder:null,playsInline:u.boolean,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:u.boolean,referrerPolicy:null,rel:u.spaceSeparated,required:u.boolean,reversed:u.boolean,rows:u.number,rowSpan:u.number,sandbox:u.spaceSeparated,scope:null,scoped:u.boolean,seamless:u.boolean,selected:u.boolean,shadowRootClonable:u.boolean,shadowRootDelegatesFocus:u.boolean,shadowRootMode:null,shape:null,size:u.number,sizes:null,slot:null,span:u.number,spellCheck:u.booleanish,src:null,srcDoc:null,srcLang:null,srcSet:null,start:u.number,step:null,style:null,tabIndex:u.number,target:null,title:null,translate:null,type:null,typeMustMatch:u.boolean,useMap:null,value:u.booleanish,width:u.number,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:u.spaceSeparated,axis:null,background:null,bgColor:null,border:u.number,borderColor:null,bottomMargin:u.number,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:u.boolean,declare:u.boolean,event:null,face:null,frame:null,frameBorder:null,hSpace:u.number,leftMargin:u.number,link:null,longDesc:null,lowSrc:null,marginHeight:u.number,marginWidth:u.number,noResize:u.boolean,noHref:u.boolean,noShade:u.boolean,noWrap:u.boolean,object:null,profile:null,prompt:null,rev:null,rightMargin:u.number,rules:null,scheme:null,scrolling:u.booleanish,standby:null,summary:null,text:null,topMargin:u.number,valueType:null,version:null,vAlign:null,vLink:null,vSpace:u.number,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:u.boolean,disableRemotePlayback:u.boolean,prefix:null,property:null,results:u.number,security:null,unselectable:null},space:"html",transform:f}),d=a({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:u.commaOrSpaceSeparated,accentHeight:u.number,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:u.number,amplitude:u.number,arabicForm:null,ascent:u.number,attributeName:null,attributeType:null,azimuth:u.number,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:u.number,by:null,calcMode:null,capHeight:u.number,className:u.spaceSeparated,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:u.number,diffuseConstant:u.number,direction:null,display:null,dur:null,divisor:u.number,dominantBaseline:null,download:u.boolean,dx:null,dy:null,edgeMode:null,editable:null,elevation:u.number,enableBackground:null,end:null,event:null,exponent:u.number,externalResourcesRequired:null,fill:null,fillOpacity:u.number,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:u.commaSeparated,g2:u.commaSeparated,glyphName:u.commaSeparated,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:u.number,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:u.number,horizOriginX:u.number,horizOriginY:u.number,id:null,ideographic:u.number,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:u.number,k:u.number,k1:u.number,k2:u.number,k3:u.number,k4:u.number,kernelMatrix:u.commaOrSpaceSeparated,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:u.number,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:u.number,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:u.number,overlineThickness:u.number,paintOrder:null,panose1:null,path:null,pathLength:u.number,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:u.spaceSeparated,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:u.number,pointsAtY:u.number,pointsAtZ:u.number,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:u.commaOrSpaceSeparated,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:u.commaOrSpaceSeparated,rev:u.commaOrSpaceSeparated,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:u.commaOrSpaceSeparated,requiredFeatures:u.commaOrSpaceSeparated,requiredFonts:u.commaOrSpaceSeparated,requiredFormats:u.commaOrSpaceSeparated,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:u.number,specularExponent:u.number,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:u.number,strikethroughThickness:u.number,string:null,stroke:null,strokeDashArray:u.commaOrSpaceSeparated,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:u.number,strokeOpacity:u.number,strokeWidth:null,style:null,surfaceScale:u.number,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:u.commaOrSpaceSeparated,tabIndex:u.number,tableValues:null,target:null,targetX:u.number,targetY:u.number,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:u.commaOrSpaceSeparated,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:u.number,underlineThickness:u.number,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:u.number,values:null,vAlphabetic:u.number,vMathematical:u.number,vectorEffect:null,vHanging:u.number,vIdeographic:u.number,version:null,vertAdvY:u.number,vertOriginX:u.number,vertOriginY:u.number,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:u.number,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:s}),h=a({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform:(e,n)=>"xlink:"+n.slice(5).toLowerCase()}),m=a({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:f}),g=a({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform:(e,n)=>"xml:"+n.slice(3).toLowerCase()}),y=l([c,p,h,m,g],"html"),k=l([c,d,h,m,g],"svg")},91775(e,n,t){t.d(n,{I:()=>c});var r=t(75147),l=t(48627),i=t(77457);let o=/[A-Z]/g,a=/-[a-z]/g,u=/^data[-\w.:]+$/i;function c(e,n){let t=(0,i.S)(n),c=n,p=l.R;if(t in e.normal)return e.property[e.normal[t]];if(t.length>4&&"data"===t.slice(0,4)&&u.test(n)){if("-"===n.charAt(4)){let e=n.slice(5).replace(a,f);c="data"+e.charAt(0).toUpperCase()+e.slice(1)}else{let e=n.slice(4);if(!a.test(e)){let t=e.replace(o,s);"-"!==t.charAt(0)&&(t="-"+t),n="data"+t}}p=r.E}return new p(c,n)}function s(e){return"-"+e.toLowerCase()}function f(e){return e.charAt(1).toUpperCase()}},77457(e,n,t){t.d(n,{S:()=>r});function r(e){return e.toLowerCase()}},75147(e,n,t){t.d(n,{E:()=>o});var r=t(48627),l=t(65018);let i=Object.keys(l);class o extends r.R{constructor(e,n,t,r){let o=-1;if(super(e,n),function(e,n,t){t&&(e[n]=t)}(this,"space",r),"number"==typeof t)for(;++or});class r{constructor(e,n){this.attribute=n,this.property=e}}r.prototype.attribute="",r.prototype.booleanish=!1,r.prototype.boolean=!1,r.prototype.commaOrSpaceSeparated=!1,r.prototype.commaSeparated=!1,r.prototype.defined=!1,r.prototype.mustUseProperty=!1,r.prototype.number=!1,r.prototype.overloadedBoolean=!1,r.prototype.property="",r.prototype.spaceSeparated=!1,r.prototype.space=void 0},65018(e,n,t){t.r(n),t.d(n,{boolean:()=>l,booleanish:()=>i,commaOrSpaceSeparated:()=>s,commaSeparated:()=>c,number:()=>a,overloadedBoolean:()=>o,spaceSeparated:()=>u});let r=0,l=f(),i=f(),o=f(),a=f(),u=f(),c=f(),s=f();function f(){return 2**++r}},72485(e,n,t){function r(e){let n=String(e||"").trim();return n?n.split(/[ \t\n\r\f]+/g):[]}function l(e){return e.join(" ").trim()}t.d(n,{A:()=>l,q:()=>r})},5824(e,n,t){t.d(n,{G1:()=>o,PW:()=>l,Y:()=>r});let r=i("end"),l=i("start");function i(e){return function(n){let t=n&&n.position&&n.position[e]||{};if("number"==typeof t.line&&t.line>0&&"number"==typeof t.column&&t.column>0)return{line:t.line,column:t.column,offset:"number"==typeof t.offset&&t.offset>-1?t.offset:void 0}}}function o(e){let n=l(e),t=r(e);if(n&&t)return{start:n,end:t}}}}]); //# sourceMappingURL=9247-d69fd4f5c10d5caf-4f68407c9bc402fe.js.map performance.mark("js-parse-end:92845-b5a69fb2bf5dba74.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["92845"],{46391(e,n,t){t.d(n,{BX:()=>i,HS:()=>s,Oc:()=>r,Tv:()=>h,Xr:()=>c,f7:()=>d,fD:()=>u,qR:()=>a});var o=t(50467);class i extends Event{constructor(e){super("open-copilot-chat",{bubbles:!1,cancelable:!0}),(0,o._)(this,"payload",void 0),this.payload=e}}Event;class l extends Event{constructor(e,n=!1,t){super("add-copilot-chat-reference",{bubbles:!1,cancelable:!0}),(0,o._)(this,"reference",void 0),(0,o._)(this,"openPanel",void 0),(0,o._)(this,"id",void 0),this.reference=e,this.openPanel=n,this.id=t}}class c extends Event{constructor(e){super("symbol-changed",{bubbles:!1,cancelable:!0}),(0,o._)(this,"context",void 0),this.context=e}}function a(e){window.dispatchEvent(new i(e))}function r(e,n=!1,t){window.dispatchEvent(new l(e,n,t))}function s(e){return window.addEventListener("open-copilot-chat",e),()=>{window.removeEventListener("open-copilot-chat",e)}}function d(e){return window.addEventListener("add-copilot-chat-reference",e),()=>{window.removeEventListener("add-copilot-chat-reference",e)}}function u(e){return window.addEventListener("search-copilot-chat",e),()=>{window.removeEventListener("search-copilot-chat",e)}}function h(e){return window.addEventListener("symbol-changed",e),()=>{window.removeEventListener("symbol-changed",e)}}},86569(e,n,t){t.d(n,{F:()=>r,t:()=>s});var o=t(74848),i=t(25891),l=t(94583),c=t(18990),a=t(74104);function r({eventName:e,menuLocation:n,mode:t,action:o,text:i}){let c=`${n.toUpperCase()}_${e.toUpperCase()}`;(0,l.BI)("dotcom_chat.activate",{target:c,text:i,category:n,action:o,mode:t})}function s({menuLocation:e,mode:n,onItemClick:t}){return Object.entries(a.A).map(([l,{name:a,url:s,icon:d}])=>(0,o.jsxs)(c.l.LinkItem,{href:s,onClick:()=>{t?.(),i.W.freeToPaidTelemetry&&r({eventName:l,menuLocation:e,mode:n,action:"menu_item_click",text:a})},children:[a,(0,o.jsx)(c.l.LeadingVisual,{children:(0,o.jsx)("img",{src:d,alt:"",height:"20",width:"20"})})]},l))}s.displayName="EditorMenuItems"},26335(e,n,t){t.d(n,{$P:()=>P});var o=t(74848),i=t(16522),l=t(94583),c=t(67323),a=t(4925),r=t(18990),s=t(38621),d=t(86569),u=t(46391),h=t(1361),m=t(25891),p=t(97286),b=t(58388);let f=()=>{let e,n,t,o=(0,i.c)(5);o[0]===Symbol.for("react.memo_cache_sentinel")?(e=["copilot-chat","entitlement"],o[0]=e):e=o[0],o[1]===Symbol.for("react.memo_cache_sentinel")?(n={queryKey:e,queryFn:v,placeholderData:{licenseType:h.mF.Unlicensed},staleTime:3e5},o[1]=n):n=o[1];let{data:l}=(0,p.I)(n),c=l?.plan,a=l?.licenseType??h.mF.Unlicensed;return o[2]!==c||o[3]!==a?(t={plan:c,licenseType:a},o[2]=c,o[3]=a,o[4]=t):t=o[4],t};async function v(){let e=await (0,b.lS)("/github-copilot/chat/entitlement");if(!e.ok)throw Error(`Failed to retrieve Copilot chat entitlement (${e.status} on ${e.url})`);return await e.json()}var _=t(85461),g=t(70966),x=t(73925),j=t(86280),w=t(96540);let y="GlobalCopilotMenu-module__proLabel__Gyv3w";var S=t(31789);let E="global_copilot_menu",I="global_nav",C=e=>{m.W.freeToPaidTelemetry?(0,d.F)({eventName:e,menuLocation:E,mode:I}):(0,l.BI)("dotcom_chat.activate",{target:`GLOBAL_COPILOT_MENU_${e}`,mode:"global_nav"})};function L(e){window.location.replace(`${window.location.origin}/github-copilot/signup?return_to=${encodeURIComponent(e)}`)}let N=()=>{(0,u.qR)({id:"copilot-assistive",intent:h.wh.conversation,newThread:!0}),C("ASSISTIVE")},O=()=>{window.location.href="/copilot",(0,l.BI)("dotcom_chat.activate",{target:"GLOBAL_COPILOT_MENU_FULLSCREEN",mode:"global_nav"}),C("IMMERSIVE")};function T(e){let n,t,l,a,r=(0,i.c)(9),{ref:s,open:d,setOpen:u}=(0,x.Mm)(e.reactPartialAnchor);return r[0]!==e.defaultOpen||r[1]!==u?(n=()=>{e.defaultOpen&&u(!0)},t=[e.defaultOpen,u],r[0]=e.defaultOpen,r[1]=u,r[2]=n,r[3]=t):(n=r[2],t=r[3]),(0,w.useEffect)(n,t),r[4]===Symbol.for("react.memo_cache_sentinel")?(l=(0,o.jsx)(G,{}),r[4]=l):l=r[4],r[5]!==s||r[6]!==d||r[7]!==u?(a=(0,o.jsx)(c.W,{anchorRef:s,open:d,onOpenChange:u,children:l}),r[5]=s,r[6]=d,r[7]=u,r[8]=a):a=r[8],a}function k(e){let n,t,l,a=(0,i.c)(6),{anchorProps:r,defaultOpen:d}=e,[u,h]=(0,w.useState)(d??!1);return a[0]!==r?(n=(0,o.jsx)(c.W.Button,{leadingVisual:s.CopilotIcon,"aria-label":"Open Copilot\u2026",...r,children:""}),a[0]=r,a[1]=n):n=a[1],a[2]===Symbol.for("react.memo_cache_sentinel")?(t=(0,o.jsx)(G,{}),a[2]=t):t=a[2],a[3]!==u||a[4]!==n?(l=(0,o.jsxs)(c.W,{open:u,onOpenChange:h,children:[n,t]}),a[3]=u,a[4]=n,a[5]=l):l=a[5],l}function P(e){let n,t,l=(0,i.c)(5),{reactPartialAnchor:c,anchorProps:a,defaultOpen:r}=e;return l[0]===Symbol.for("react.memo_cache_sentinel")?(n=(0,o.jsx)(g.ak,{commands:{"copilot-chat:open-assistive":N,"copilot-chat:open-immersive":O}}),l[0]=n):n=l[0],l[1]!==a||l[2]!==r||l[3]!==c?(t=(0,o.jsxs)(j.t,{fallback:null,children:[n,c?(0,o.jsx)(T,{reactPartialAnchor:c,defaultOpen:r}):(0,o.jsx)(k,{anchorProps:a,defaultOpen:r})]}),l[1]=a,l[2]=r,l[3]=c,l[4]=t):t=l[4],t}function V(){let e,n,t,l=(0,i.c)(5),c=(()=>{let{plan:e}=f();return e})();return l[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,o.jsx)(r.l.LeadingVisual,{children:(0,o.jsx)(s.CopilotIcon,{})}),l[0]=e):e=l[0],l[1]!==c?(n=c&&(0,o.jsx)(r.l.TrailingVisual,{children:function(e){switch(e){case h.UH.IndividualProPlus:return(0,o.jsx)(a.A,{className:y,children:"Pro+"});case h.UH.IndividualPro:return(0,o.jsx)(a.A,{className:y,children:"Pro"});case h.UH.IndividualFree:return(0,o.jsx)(a.A,{children:"Free"});default:return null}}(c)}),l[1]=c,l[2]=n):n=l[2],l[3]!==n?(t=(0,o.jsxs)(r.l.LinkItem,{href:"/settings/copilot",onClick:A,children:["Your Copilot",e,n]}),l[3]=n,l[4]=t):t=l[4],t}function A(){return C("SETTINGS")}function G(){let e,n,t,l,a,u,p,b,v,g,x,j,w,y,O,T=(0,i.c)(22),{licenseType:k}=f(),P=k===h.mF.Unlicensed;T[0]!==P?(e=()=>{if(P){C("ASSISTIVE"),L(window.location.pathname);return}N()},T[0]=P,T[1]=e):e=T[1];let A=e;T[2]!==P?(n=e=>{C("SPACES"),P&&(e.preventDefault(),L(_.VR))},T[2]=P,T[3]=n):n=T[3];let G=n;return T[4]===Symbol.for("react.memo_cache_sentinel")?(t={width:"15rem"},T[4]=t):t=T[4],T[5]===Symbol.for("react.memo_cache_sentinel")?(l=(0,o.jsx)(r.l.GroupHeading,{children:"New conversation in"}),T[5]=l):l=T[5],T[6]!==A?(a=!m.W.removeAssistiveChatButton&&(0,o.jsxs)(r.l.Item,{onSelect:A,children:[(0,o.jsx)(r.l.LeadingVisual,{children:(0,o.jsx)(s.CommentIcon,{})}),"Assistive"]}),T[6]=A,T[7]=a):a=T[7],T[8]===Symbol.for("react.memo_cache_sentinel")?(u=(0,o.jsx)(r.l.LeadingVisual,{children:(0,o.jsx)(S.Dy,{})}),T[8]=u):u=T[8],T[9]!==G?(p=(0,o.jsxs)(r.l.LinkItem,{href:_.VR,onClick:G,children:[u,"Spaces"]}),T[9]=G,T[10]=p):p=T[10],T[11]!==a||T[12]!==p?(b=(0,o.jsxs)(r.l.Group,{children:[l,a,p]}),T[11]=a,T[12]=p,T[13]=b):b=T[13],T[14]===Symbol.for("react.memo_cache_sentinel")?(v=(0,o.jsx)(r.l.Divider,{}),T[14]=v):v=T[14],T[15]===Symbol.for("react.memo_cache_sentinel")?(g=(0,o.jsx)(c.W.Anchor,{children:(0,o.jsxs)(r.l.Item,{onSelect:W,children:[(0,o.jsx)(r.l.LeadingVisual,{children:(0,o.jsx)(s.DownloadIcon,{})}),"Download for"]})}),T[15]=g):g=T[15],T[16]===Symbol.for("react.memo_cache_sentinel")?(x=(0,o.jsx)(d.t,{menuLocation:E,mode:I}),j=(0,o.jsx)(r.l.Divider,{}),T[16]=x,T[17]=j):(x=T[16],j=T[17]),T[18]===Symbol.for("react.memo_cache_sentinel")?(w=(0,o.jsxs)(c.W,{onOpenChange:B,children:[g,(0,o.jsx)(c.W.Overlay,{children:(0,o.jsxs)(r.l,{children:[x,j,(0,o.jsxs)(r.l.LinkItem,{href:"https://docs.github.com/en/copilot/managing-copilot/configure-personal-settings/installing-github-copilot-in-the-cli",onClick:U,children:["CLI",(0,o.jsx)(r.l.LeadingVisual,{children:(0,o.jsx)(s.TerminalIcon,{})})]})]})})]}),y=m.W.freeToPaidYourCopilotSettings?(0,o.jsx)(V,{}):(0,o.jsxs)(r.l.LinkItem,{href:"/settings/copilot",onClick:M,children:["Settings",(0,o.jsx)(r.l.LeadingVisual,{children:(0,o.jsx)(s.GearIcon,{})})]}),T[18]=w,T[19]=y):(w=T[18],y=T[19]),T[20]!==b?(O=(0,o.jsx)(c.W.Overlay,{align:"end",children:(0,o.jsxs)(r.l,{style:t,children:[b,v,w,y]})}),T[20]=b,T[21]=O):O=T[21],O}function M(){return C("SETTINGS")}function U(){return C("CLI")}function W(){return C("OPEN_WITH")}function B(e){return e&&C("IDE_MENU_OPEN")}T.displayName="ExternallyAnchoredGlobalCopilotMenu",k.displayName="GlobalCopilotMenuWithAnchor",P.displayName="GlobalCopilotMenu",V.displayName="YourCopilotButton",G.displayName="GlobalCopilotMenuOverlay"},74104(e,n,t){t.d(n,{A:()=>c});let o=t.p+"eclipse-e10e9aade4cd04b3.png",i=t.p+"jetbrains-07512f8e683dfa79.png",l=t.p+"neovim-72e78d3ac521fc80.png",c={vscode:{url:"https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat",icon:t.p+"vscode-652cab584afb283e.png",name:"Visual Studio Code",eventName:"VSCODE"},visualstudio:{url:"https://visualstudio.microsoft.com/github-copilot/",icon:t.p+"vsstudio-5147b3932ecb062c.png",name:"Visual Studio",eventName:"VS"},xcode:{url:"https://github.com/github/CopilotForXcode",icon:t.p+"xcode-b29b431a53b778e9.png",name:"Xcode",eventName:"XCODE"},jetbrains:{url:"https://plugins.jetbrains.com/plugin/17718-github-copilot",icon:i,name:"JetBrains",eventName:"JETBRAINS"},eclipse:{url:"https://marketplace.eclipse.org/content/github-copilot",icon:o,name:"Eclipse",eventName:"ECLIPSE"},neovim:{url:"https://github.com/github/copilot.vim",icon:l,name:"Neovim",eventName:"NEOVIM"}}}}]); //# sourceMappingURL=92845-b5a69fb2bf5dba74-b14fe7c50a52c3e8.js.map performance.mark("js-parse-end:93206-2d9b718e61a7a972.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["93206"],{45062(e,t,s){s.d(t,{s:()=>i});var r=s(70170);function i(e=0,t={}){return(s,i,n)=>{if(!n||"function"!=typeof n.value)throw Error("debounce can only decorate functions");let o=n.value;n.value=(0,r.s)(o,e,t),Object.defineProperty(s,i,n)}}},28926(e,t,s){s.d(t,{a:()=>o});let r=new Set(["children","localName","ref","style","className"]),i=new WeakMap,n=(e,t,s,r,n)=>{let o,a,l=null==n?void 0:n[t];void 0===l||s===r?null==s&&t in HTMLElement.prototype?e.removeAttribute(t):e[t]=s:(void 0===(o=i.get(e))&&i.set(e,o=new Map),a=o.get(l),void 0!==s?void 0===a?(o.set(l,a={handleEvent:s}),e.addEventListener(l,a)):a.handleEvent=s:void 0!==a&&(o.delete(l),e.removeEventListener(l,a)))};function o(e=window.React,t,s,i,a){let l,u,h;void 0===t?({tagName:u,elementClass:h,events:i,displayName:a}=e,l=e.react):(l=e,h=s,u=t);let c=l.Component,d=l.createElement,f=new Set(Object.keys(null!=i?i:{}));class p extends c{constructor(){super(...arguments),this.o=null}t(e){if(null!==this.o)for(let t in this.i)n(this.o,t,this.props[t],e?e[t]:void 0,i)}componentDidMount(){var e;this.t(),null==(e=this.o)||e.removeAttribute("defer-hydration")}componentDidUpdate(e){this.t(e)}render(){let{_$Gl:e,...t}=this.props;this.h!==e&&(this.u=t=>{null!==e&&("function"==typeof e?e(t):e.current=t),this.o=t,this.h=e}),this.i={};let s={ref:this.u};for(let[e,i]of Object.entries(t))r.has(e)?s["className"===e?"class":e]=i:f.has(e)||e in h.prototype?this.i[e]=i:s[e]=i;return s.suppressHydrationWarning=!0,d(u,s)}}p.displayName=null!=a?a:h.name;let b=l.forwardRef((e,t)=>d(p,{...e,_$Gl:t},null==e?void 0:e.children));return b.displayName=p.displayName,b}},56819(e,t,s){s.d(t,{lG:()=>v,jl:()=>h,m4:()=>w});var r=s(16969),i=s(49539),n=s(38267),o=s(96540),a=s(74848);let l=(0,n.Ay)(r.A).withConfig({shouldForwardProp:e=>"sx"!==e}).withConfig({displayName:"TabNav__StyledTabNav",componentId:"sc-13kad3t-0"})(["",""],i.sx),u=(0,n.Ay)(r.A.Link).withConfig({shouldForwardProp:e=>"sx"!==e}).withConfig({displayName:"TabNav__StyledTabNavLink",componentId:"sc-13kad3t-1"})(["",""],i.sx),h=Object.assign(({as:e,...t})=>(0,a.jsx)(l,{...t,...e?{forwardedAs:e}:{}}),{Link:(0,o.forwardRef)(({as:e,...t},s)=>(0,a.jsx)(u,{...t,...e?{forwardedAs:e}:{},ref:s}))});var c=s(49305),d=s(45846);let f=(0,o.forwardRef)(function(e,t){return(0,a.jsx)(d.a,{as:c.A,ref:t,...e})}),p=(0,o.forwardRef)(({as:e,...t},s)=>(0,a.jsx)(f,{...t,...e?{forwardedAs:e}:{},ref:s})),b=(0,o.forwardRef)(function(e,t){return(0,a.jsx)(d.a,{as:c.A.Header,ref:t,...e})}),v=Object.assign(p,{Header:(0,o.forwardRef)(({as:e,...t},s)=>(0,a.jsx)(b,{...t,...e?{forwardedAs:e}:{},ref:s}))});var g=s(10095);let m=(0,n.Ay)(g.A).withConfig({shouldForwardProp:e=>"sx"!==e}).withConfig({displayName:"Octicon__StyledOcticon",componentId:"sc-jtj3m8-0"})(["",""],({color:e,sx:t})=>(0,i.sx)({sx:{color:e,...t}})),w=(0,o.forwardRef)(({as:e,...t},s)=>(0,a.jsx)(m,{...t,...e?{forwardedAs:e}:{},ref:s}));var y=s(30331);let R=(0,n.Ay)(y.A).withConfig({shouldForwardProp:e=>"sx"!==e}).withConfig({displayName:"Tooltip__StyledTooltip",componentId:"sc-145jcib-0"})(["",""],i.sx),x=(0,o.forwardRef)(function({as:e,...t},s){return(0,a.jsx)(R,{...t,...e?{forwardedAs:e}:{},ref:s})});x.alignments=y.A.alignments,x.directions=y.A.directions,x.__SLOT__=y.A.__SLOT__;var O=s(40236);let E=(0,o.forwardRef)(function(e,t){return(0,a.jsx)(d.a,{as:O.l,ref:t,...e})}),A=(0,n.Ay)(O.l.Item).withConfig({shouldForwardProp:e=>"sx"!==e}).withConfig({displayName:"ActionList__StyledActionListItem",componentId:"sc-1ugfmds-0"})(["",""],i.sx);Object.assign(E,{Item:(0,o.forwardRef)(({as:e,...t},s)=>(0,a.jsx)(A,{...t,...e?{forwardedAs:e}:{},ref:s})),Group:function(e){return(0,a.jsx)(d.a,{as:O.l.Group,...e})},Divider:function(e){return(0,a.jsx)(d.a,{as:O.l.Divider,...e})}})},8255(e,t,s){s.d(t,{z:()=>n});var r=s(1651),i=s(58959),n=class extends r.${constructor(e,t){super(e,t)}bindMethods(){super.bindMethods(),this.fetchNextPage=this.fetchNextPage.bind(this),this.fetchPreviousPage=this.fetchPreviousPage.bind(this)}setOptions(e){super.setOptions({...e,behavior:(0,i.PL)()})}getOptimisticResult(e){return e.behavior=(0,i.PL)(),super.getOptimisticResult(e)}fetchNextPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"forward"}}})}fetchPreviousPage(e){return this.fetch({...e,meta:{fetchMore:{direction:"backward"}}})}createResult(e,t){let{state:s}=e,r=super.createResult(e,t),{isFetching:n,isRefetching:o,isError:a,isRefetchError:l}=r,u=s.fetchMeta?.fetchMore?.direction,h=a&&"forward"===u,c=n&&"forward"===u,d=a&&"backward"===u,f=n&&"backward"===u;return{...r,fetchNextPage:this.fetchNextPage,fetchPreviousPage:this.fetchPreviousPage,hasNextPage:(0,i.rB)(t,s.data),hasPreviousPage:(0,i.RQ)(t,s.data),isFetchNextPageError:h,isFetchingNextPage:c,isFetchPreviousPageError:d,isFetchingPreviousPage:f,isRefetchError:l&&!h&&!d,isRefetching:o&&!c&&!f}}}},79915(e,t,s){s.d(t,{T:()=>l});var r=s(26261),i=s(1651),n=s(66500),o=s(24880);function a(e,t){let s=new Set(t);return e.filter(e=>!s.has(e))}var l=class extends n.Q{#e;#t;#s;#r;#i;#n;#o;#a;#l=[];constructor(e,t,s){super(),this.#e=e,this.#r=s,this.#s=[],this.#i=[],this.#t=[],this.setQueries(t)}onSubscribe(){1===this.listeners.size&&this.#i.forEach(e=>{e.subscribe(t=>{this.#u(e,t)})})}onUnsubscribe(){this.listeners.size||this.destroy()}destroy(){this.listeners=new Set,this.#i.forEach(e=>{e.destroy()})}setQueries(e,t){this.#s=e,this.#r=t,r.jG.batch(()=>{let e=this.#i,t=this.#h(this.#s);t.forEach(e=>e.observer.setOptions(e.defaultedQueryOptions));let s=t.map(e=>e.observer),r=s.map(e=>e.getCurrentResult()),i=e.length!==s.length,n=s.some((t,s)=>t!==e[s]),l=i||n,u=!!l||r.some((e,t)=>{let s=this.#t[t];return!s||!(0,o.f8)(e,s)});(l||u)&&(l&&(this.#l=t,this.#i=s),this.#t=r,this.hasListeners()&&(l&&(a(e,s).forEach(e=>{e.destroy()}),a(s,e).forEach(e=>{e.subscribe(t=>{this.#u(e,t)})})),this.#c()))})}getCurrentResult(){return this.#t}getQueries(){return this.#i.map(e=>e.getCurrentQuery())}getObservers(){return this.#i}getOptimisticResult(e,t){let s=this.#h(e),r=s.map(e=>e.observer.getOptimisticResult(e.defaultedQueryOptions));return[r,e=>this.#d(e??r,t),()=>this.#f(r,s)]}#f(e,t){return t.map((s,r)=>{let i=e[r];return s.defaultedQueryOptions.notifyOnChangeProps?i:s.observer.trackResult(i,e=>{t.forEach(t=>{t.observer.trackProp(e)})})})}#d(e,t){return t?(this.#n&&this.#t===this.#a&&t===this.#o||(this.#o=t,this.#a=this.#t,this.#n=(0,o.BH)(this.#n,t(e))),this.#n):e}#h(e){let t=new Map;this.#i.forEach(e=>{let s=e.options.queryHash;if(!s)return;let r=t.get(s);r?r.push(e):t.set(s,[e])});let s=[];return e.forEach(e=>{let r=this.#e.defaultQueryOptions(e),n=t.get(r.queryHash)?.shift()??new i.$(this.#e,r);s.push({defaultedQueryOptions:r,observer:n})}),s}#u(e,t){let s=this.#i.indexOf(e);if(-1!==s){var r;let e;this.#t=(r=this.#t,(e=r.slice(0))[s]=t,e),this.#c()}}#c(){if(this.hasListeners()){let e=this.#n,t=this.#f(this.#t,this.#l);e!==this.#d(t,this.#r?.combine)&&r.jG.batch(()=>{this.listeners.forEach(e=>{e(this.#t)})})}}}},85402(e,t,s){s.d(t,{q:()=>n});var r=s(8255),i=s(15985);function n(e,t){return(0,i.t)(e,r.z,t)}},40458(e,t,s){s.d(t,{E:()=>f});var r=s(96540),i=s(79915),n=s(26261),o=s(24880),a=s(1651),l=s(97665),u=s(3335),h=s(96672),c=s(68590),d=s(60791);function f({queries:e,...t},s){let f=(0,l.jE)(s),p=(0,u.w)(),b=(0,h.h)(),v=r.useMemo(()=>e.map(e=>{let t=f.defaultQueryOptions(e);return t._optimisticResults=p?"isRestoring":"optimistic",t}),[e,f,p]);v.forEach(e=>{(0,d.jv)(e);let t=f.getQueryCache().get(e.queryHash);(0,c.LJ)(e,b,t)}),(0,c.wZ)(b);let[g]=r.useState(()=>new i.T(f,v,t)),[m,w,y]=g.getOptimisticResult(v,t.combine),R=!p&&!1!==t.subscribed;r.useSyncExternalStore(r.useCallback(e=>R?g.subscribe(n.jG.batchCalls(e)):o.lQ,[g,R]),()=>g.getCurrentResult(),()=>g.getCurrentResult()),r.useEffect(()=>{g.setQueries(v,t)},[v,t,g]);let x=m.some((e,t)=>(0,d.EU)(v[t],e))?m.flatMap((e,t)=>{let s=v[t];if(s){let t=new a.$(f,s);if((0,d.EU)(s,e))return(0,d.iL)(s,t,b);(0,d.nE)(e,p)&&(0,d.iL)(s,t,b)}return[]}):[];if(x.length>0)throw Promise.all(x);let O=m.find((e,t)=>{let s=v[t];return s&&(0,c.$1)({result:e,errorResetBoundary:b,throwOnError:s.throwOnError,query:f.getQueryCache().get(s.queryHash),suspense:s.suspense})});if(O?.error)throw O.error;return w(y())}},65510(e,t,s){s.d(t,{U:()=>o});var r=s(1651),i=s(15985),n=s(60791);function o(e,t){return(0,i.t)({...e,enabled:!0,suspense:!0,throwOnError:n.R3,placeholderData:void 0},r.$,t)}},74022(e,t,s){s.d(t,{A:()=>n});var r=s(52246),i=s(23149);let n=function(e,t,s){var n=!0,o=!0;if("function"!=typeof e)throw TypeError("Expected a function");return(0,i.A)(s)&&(n="leading"in s?!!s.leading:n,o="trailing"in s?!!s.trailing:o),(0,r.A)(e,t,{leading:n,maxWait:t,trailing:o})}},11561(e,t,s){s.d(t,{A:()=>r});function r(e,t){if(!e)throw Error("Invariant failed")}}}]); //# sourceMappingURL=93206-2d9b718e61a7a972-22c3905a245b6de0.js.map performance.mark("js-parse-end:94536-0b91ee2a6c9c09fc.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["94536"],{24824(e,t,i){i.d(t,{Z:()=>j});var l=i(74848),r=i(16522),s=i(86280),n=i(70730),a=i(96540),o=i(38621),d=i(26108),c=i(39081),u=i(64451),h=i(7624),f=i(85965),m=i(65820),b=i(21373);let p=[{label:"Comment is harmful or unsafe",value:"OFFENSIVE_OR_DISCRIMINATORY"},{label:"Comment is poorly formatted",value:"POORLY_FORMATTED"},{label:"Comment is not true",value:"INCORRECT"},{label:"Comment is not helpful",value:"UNHELPFUL"},{label:"Comment is attached to the wrong line(s)",value:"INCORRECT_LINE"},{label:"Comment is a duplicate of another comment",value:"DUPLICATE"},{label:"Code suggestion is harmful or unsafe",value:"SUGGESTION_OFFENSIVE_OR_DISCRIMINATORY"},{label:"Code suggestion is poorly formatted",value:"SUGGESTION_POORLY_FORMATTED"},{label:"Code suggestion does not solve the problem in the comment",value:"SUGGESTION_UNHELPFUL"},{label:"Code suggestion is invalid",value:"SUGGESTION_INVALID"}],v=e=>{let t,i,s,n,o=(0,r.c)(16),{commentId:d,onClose:v,onSubmit:x,feedbackOptions:g,returnFocusRef:_}=e,N=void 0===g?p:g,[j,w]=(0,a.useState)(!1);o[0]===Symbol.for("react.memo_cache_sentinel")?(t=[],o[0]=t):t=o[0];let[I,F]=(0,a.useState)(t),[O,k]=(0,a.useState)("");o[1]!==d||o[2]!==I||o[3]!==x||o[4]!==O?(i=e=>{e.preventDefault(),w(!0),I.length&&x({commentId:d,type:"NEGATIVE",feedbackChoice:I,textResponse:O})},o[1]=d,o[2]=I,o[3]=x,o[4]=O,o[5]=i):i=o[5];let C=i,S=(0,a.useId)(),y=j&&0===I.length;return o[6]!==N||o[7]!==C||o[8]!==y||o[9]!==O||o[10]!==S?(s=()=>(0,l.jsxs)("form",{onSubmit:C,children:[(0,l.jsxs)(c.l.Body,{children:[(0,l.jsx)("div",{className:"tmp-mb-3",children:(0,l.jsxs)(u.A,{onChange:F,required:!0,children:[(0,l.jsx)(u.A.Label,{children:"Category"}),N.map(e=>(0,l.jsxs)(h.A,{id:`feedback_choice_${e.value}`,children:[(0,l.jsx)(f.A,{value:e.value,"aria-describedby":y?S:void 0}),(0,l.jsx)(h.A.Label,{children:e.label})]},e.value)),y&&(0,l.jsx)(u.A.Validation,{variant:"error",children:"Please select a feedback category"})]})}),(0,l.jsxs)(h.A,{id:"text_response",children:[(0,l.jsx)(h.A.Label,{children:"How should we improve this response?"}),(0,l.jsx)(m.Ay,{block:!0,rows:2,wrap:"wrap",name:"text_response",value:O,resize:"vertical",onChange:e=>k(e.currentTarget.value)})]})]}),(0,l.jsx)(c.l.Footer,{children:(0,l.jsx)(b.Q,{type:"submit",disabled:y,children:"Submit"})})]}),o[6]=N,o[7]=C,o[8]=y,o[9]=O,o[10]=S,o[11]=s):s=o[11],o[12]!==v||o[13]!==_||o[14]!==s?(n=(0,l.jsx)(c.l,{onClose:v,title:"Provide additional feedback",subtitle:"Please help us improve GitHub Copilot by sharing more details about this comment.",returnFocusRef:_,renderBody:s}),o[12]=v,o[13]=_,o[14]=s,o[15]=n):n=o[15],n};v.displayName="NegativeFeedbackForm";let x=e=>{let t,i,s=(0,r.c)(6),{onClick:n,commentId:a,disabled:c}=e;return s[0]!==a||s[1]!==n?(t=()=>n({type:"POSITIVE",commentId:a}),s[0]=a,s[1]=n,s[2]=t):t=s[2],s[3]!==c||s[4]!==t?(i=(0,l.jsx)(d.K,{size:"small",variant:"invisible",disabled:c,icon:o.ThumbsupIcon,title:"Positive Feedback","aria-label":"Positive Feedback",onClick:t}),s[3]=c,s[4]=t,s[5]=i):i=s[5],i};x.displayName="PositiveFeedbackButton";let g=e=>{let t,i,s,n,c,u=(0,r.c)(18),{onClick:h,commentId:f,disabled:m,feedbackOptions:b,showNegativeFeedbackModal:p}=e,x=void 0===p||p,[g,_]=(0,a.useState)(!1),N=(0,a.useRef)(null);u[0]!==h?(t=e=>{h(e),_(!1)},u[0]=h,u[1]=t):t=u[1];let j=t;u[2]!==f||u[3]!==h||u[4]!==x?(i=()=>{x?_(!0):h({type:"NEGATIVE",commentId:f})},u[2]=f,u[3]=h,u[4]=x,u[5]=i):i=u[5];let w=i;return u[6]!==f||u[7]!==g||u[8]!==b||u[9]!==j||u[10]!==x?(s=g&&x&&(0,l.jsx)(v,{onClose:()=>_(!1),onSubmit:j,commentId:f,feedbackOptions:b,returnFocusRef:N}),u[6]=f,u[7]=g,u[8]=b,u[9]=j,u[10]=x,u[11]=s):s=u[11],u[12]!==m||u[13]!==w?(n=(0,l.jsx)(d.K,{ref:N,size:"small",variant:"invisible",disabled:m,icon:o.ThumbsdownIcon,title:"Negative Feedback","aria-label":"Negative Feedback",onClick:w}),u[12]=m,u[13]=w,u[14]=n):n=u[14],u[15]!==s||u[16]!==n?(c=(0,l.jsxs)(l.Fragment,{children:[s,n]}),u[15]=s,u[16]=n,u[17]=c):c=u[17],c};g.displayName="NegativeFeedbackButton";var _=i(58388);let N=e=>{let t,i,s,o,d,c,u=(0,r.c)(21),{commentId:h,commentUrl:f,feedbackPath:m,feedbackOptions:b,additionalParameters:p,showNegativeFeedbackModal:v}=e,N=void 0===v||v,[j,w]=(0,a.useState)();e:{if(m){t=m;break e}if(f){let e;u[0]!==f?((e=new URL(f,n.fV.origin)).hash="",u[0]=f,u[1]=e):e=u[1],t=`${e}/code_review_feedback`;break e}throw Error("missing feedbackPath and commentUrl")}let I=t;u[2]!==p||u[3]!==I?(i={path:I,additionalParameters:p},u[2]=p,u[3]=I,u[4]=i):i=u[4];let F=(({path:e,additionalParameters:t})=>(0,a.useCallback)(({type:i,commentId:l,feedbackChoice:r,textResponse:s})=>{try{let n=new FormData;if(n.set("comment_id",l),n.set("feedback",i),t)for(let[e,i]of Object.entries(t))n.set(e,i);for(let e of r??[])n.append("feedback_choice[]",e);s&&n.set("text_response",s),(0,_.DI)(e,{method:"POST",body:n})}catch{}},[e,t]))(i);u[5]!==F?(s=e=>{w(e.type),F(e)},u[5]=F,u[6]=s):s=u[6];let O=s,k=`copilot-code-review-feedback-${h}`;return u[7]!==h||u[8]!==O||u[9]!==j?(o="NEGATIVE"!==j&&(0,l.jsx)(x,{disabled:!!j,commentId:h,onClick:O}),u[7]=h,u[8]=O,u[9]=j,u[10]=o):o=u[10],u[11]!==h||u[12]!==b||u[13]!==O||u[14]!==N||u[15]!==j?(d="POSITIVE"!==j&&(0,l.jsx)(g,{disabled:!!j,onClick:O,commentId:h,feedbackOptions:b,showNegativeFeedbackModal:N}),u[11]=h,u[12]=b,u[13]=O,u[14]=N,u[15]=j,u[16]=d):d=u[16],u[17]!==k||u[18]!==o||u[19]!==d?(c=(0,l.jsxs)("div",{"data-testid":k,className:"d-flex gap-1",children:[o,d]}),u[17]=k,u[18]=o,u[19]=d,u[20]=c):c=u[20],c};N.displayName="Feedback";let j=e=>{let t,i=(0,r.c)(2);return i[0]!==e?(t=(0,l.jsx)(s.t,{boundaryName:"CopilotCodeReviewFeedback",fallback:null,children:(0,l.jsx)(N,{...e})}),i[0]=e,i[1]=t):t=i[1],t};j.displayName="CopilotCodeReviewFeedback"},41757(e,t,i){i.d(t,{F7:()=>h,kF:()=>f});var l=i(74848),r=(i(16522),i(38621)),s=i(38750),n=i(67323),a=i(26108),o=(i(7478),i(18990)),d=i(7771),c=i(96540),u=i(34164);let h="No extension";function f({ref:e,filterSize:t="medium",filterText:i,onFilterTextChange:f,fileExtensions:m,unselectedFileExtensions:b,onFilterChange:p,onClearAllFilters:v,additionalFilterGroups:x,isFilteringActive:g}){m=m??{},b=b??new Set;let[_,N]=(0,c.useState)(i??""),j=(e,t)=>{p?.(e?"selectFileExtension":"unselectFileExtension",{extension:t})},w=Object.keys(m).filter(e=>e!==h).sort(),I=!!m[h];return(0,l.jsxs)("div",{id:"diff-file-tree-filter",className:"d-flex flex-nowrap gap-2",children:[(0,l.jsx)(s.A,{ref:e,block:!0,"aria-label":"Filter files\u2026",leadingVisual:r.SearchIcon,placeholder:"Filter files\u2026",size:t,className:(0,u.$)("small"===t&&"FileFilter-module__filterMaxHeight__Dwlbv"),value:_,onChange:e=>{N(e.target.value),f?.(e.target.value)}}),(0,l.jsxs)("div",{className:"position-relative",children:[(0,l.jsxs)(n.W,{children:[(0,l.jsx)(n.W.Anchor,{children:(0,l.jsx)(a.K,{"aria-label":"Filter options",icon:r.FilterIcon,className:"flex-shrink-0",size:t})}),(0,l.jsx)(n.W.Overlay,{children:(0,l.jsxs)(o.l,{children:[(0,l.jsxs)(o.l.Group,{selectionVariant:"multiple",children:[(0,l.jsx)(o.l.GroupHeading,{children:"File extensions"}),w.map(e=>{let t=!b.has(e);return(0,l.jsxs)(o.l.Item,{selected:t,onSelect:()=>j(!t,e),children:[e,(0,l.jsx)(o.l.TrailingVisual,{children:(0,l.jsx)(d.A,{children:m[e]})})]},e)}),I&&(0,l.jsxs)(o.l.Item,{selected:!b.has(h),onSelect:()=>j(!!b.has(h),h),children:[h,(0,l.jsx)(o.l.TrailingVisual,{children:(0,l.jsx)(d.A,{children:m[h]})})]},h)]}),x,g&&v&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(o.l.Divider,{}),(0,l.jsx)(o.l.Item,{onSelect:()=>{N(""),v?.()},children:(0,l.jsx)("span",{className:"FileFilter-module__clearFiltersText__VDuqu",children:"Clear filters"})})]})]})})]}),g&&(0,l.jsx)("span",{className:"FileFilter-module__filterIndicator__VAdlm"})]})]})}f.displayName="FileFilterShared"},97627(e,t,i){i.d(t,{QC:()=>m,s2:()=>b,wH:()=>a,xY:()=>f});var l=i(35750),r=i(18150),s=i(50467),n=i(41757);function a(e,t){return e.startsWith(t)&&e!==t?-1:t.startsWith(e)&&e!==t?1:et)}function o(e,t){return a(e.name,t.name)}function d(e,t){return a(e.fileName,t.fileName)}class c{constructor(e,t){(0,s._)(this,"diff",void 0),(0,s._)(this,"filePath",void 0),(0,s._)(this,"fileName",void 0),(0,s._)(this,"directoryParts",void 0),(0,s._)(this,"sortOrder",void 0),this.diff=e,this.filePath=e.path;const i=this.filePath.split("/");this.fileName=i[i.length-1],this.directoryParts=i.slice(0,i.length-1),this.sortOrder=t}}var u=new WeakMap;class h{getOrCreateDirectory(e,t){let i=(0,l._)(this,u).get(e);if(!i){let r=this.path?`${this.path}/`:"";i=new h(e,`${r}${e}`,t),this.directories.push(i),(0,l._)(this,u).set(e,i)}return i}sort(){for(let e of(this.directories.sort(o),this.files.sort(d),this.directories))e.sort()}constructor(e,t,i){(0,s._)(this,"directories",[]),(0,s._)(this,"files",[]),(0,r._)(this,u,{writable:!0,value:new Map}),(0,s._)(this,"name",void 0),(0,s._)(this,"path",void 0),(0,s._)(this,"sortOrder",void 0),this.name=e,this.path=t,this.sortOrder=i}}function f(e){let t=new h("","",Number.MAX_SAFE_INTEGER);for(let i of e.map((e,t)=>new c(e,t))){let e=t;for(let t of i.directoryParts)(e=e.getOrCreateDirectory(t,i.sortOrder)).sortOrder=Math.min(e.sortOrder,i.sortOrder);e.files.push(i)}return function e(t){for(let i of t.directories)e(i);let i=t.directories.map(e=>e.sortOrder),l=t.files.map(e=>e.sortOrder);t.sortOrder=Math.min(t.sortOrder,...i,...l)}(t),t.sort(),t}function m(e){let t;t="string"==typeof e?e:e?.newPath||e?.oldPath;let i=t?.lastIndexOf(".");return t?!i||i<0?n.F7:`.${t.substring(i+1)}`:""}function b(e){let t={};return e.map(e=>{let i=m(e.path);void 0!==t[i]?t[i]+=1:t[i]=1}),t}},29604(e,t,i){i.d(t,{C0:()=>h,ID:()=>c,Qn:()=>f,aX:()=>o,bJ:()=>u,w$:()=>d});var l=i(16522),r=i(41626),s=i(97286),n=i(82799),a=i(84471);let o={splitPreference:"split",lineSpacing:"relaxed",commentsPreference:i(54395).sI.Visible};function d(){return[r.uT.diffViewUserSettings]}function c(e){let t,i,r,n=(0,l.c)(6);n[0]===Symbol.for("react.memo_cache_sentinel")?(t=d(),n[0]=t):t=n[0];let a=t;return n[1]!==e?(i=async()=>e||o,n[1]=e,n[2]=i):i=n[2],n[3]!==e||n[4]!==i?(r={queryKey:a,queryFn:i,initialData:e,staleTime:1/0},n[3]=e,n[4]=i,n[5]=r):r=n[5],(0,s.I)(r)}function u(e,t){let i=new URL(window.location.href,window.location.origin);if(t){let l=encodeURIComponent(t);i.searchParams.set(e,l)}else i.searchParams.delete(e);(0,a.bj)(i.toString())}function h(e){let t,i=(0,l.c)(2),r=e,[s]=(0,n.ok)();i[0]!==s?(t=s.get("diff"),i[0]=s,i[1]=t):t=i[1];let a=t;return("split"===a||"unified"===a)&&(r=a),r}function f(e){let t=e,[i]=(0,n.ok)(),l=i.get("w");return"1"===l?t=!0:"0"===l&&(t=!1),t}},54395(e,t,i){i.d(t,{Ud:()=>r,sI:()=>l});let l={Visible:"visible",Collapsed:"collapsed"},r={Compact:"compact",Relaxed:"relaxed"}},92163(e,t,i){i.d(t,{EW:()=>s,Gl:()=>b,ZD:()=>c,e3:()=>p,i8:()=>u,j$:()=>h,jU:()=>d,o9:()=>m,pd:()=>a,pk:()=>f,yI:()=>o});var l=i(84471),r=i(70730);function s(e){let t=e.match(/^#?(diff-[a-f0-9]+)(L|R)(\d+)(?:-(L|R)(\d+))?$/i);if(null!=t&&6===t.length)return t;let i=e.match(/^#?(discussion-diff-[0-9]+)(L|R)(\d+)(?:-(L|R)(\d+))?$/i);return null!=i&&6===i.length?i:null}function n(e,t){return`${"left"===t?"L":"R"}${e}`}function a(e){let t=e.match(/^#?(diff-[a-f0-9]+)/);return t?.[1]}function o(e){return!!(s(e)||s(`diff-${e}`))&&(e.includes("R")||e.includes("L"))}function d(e){if(!(a(e)||a(`diff-${e}`)))return;let t=e.replace("#","").replace("diff-","");return t.includes("-")&&(t=t.split("-")[0]??""),t.includes("L")&&(t=t.split("L")[0]??""),t.includes("R")&&(t=t.split("R")[0]??""),t}function c(e){let t=s(e);if(t){let e=t[1],i=t[2]?"L"===t[2]?"left":"right":void 0,l=t[3]?parseInt(t[3]):void 0;if(!e||!i||void 0===l)return;return{diffAnchor:e,startOrientation:i,startLineNumber:l,endOrientation:(t[4]?"L"===t[4]?"left":"right":void 0)??i,endLineNumber:(t[5]?parseInt(t[5]):void 0)??l,firstSelectedLineNumber:l,firstSelectedOrientation:i}}}function u(e){let t=h(e);(0,l.Zu)(t),(0,l.kd)(window.location.href)}function h(e){let t=n(e.startLineNumber,e.startOrientation),i=`${e.diffAnchor}${t}`;if(e.endLineNumber!==e.startLineNumber||e.endOrientation!==e.startOrientation){let t=n(e.endLineNumber,e.endOrientation);i+=`-${t}`}return i}function f(e){let t=`#${e}`;if(t===window.location.hash)return;let i=window.location.href;(0,l.Zu)(t),window.dispatchEvent(new HashChangeEvent("hashchange",{newURL:window.location.href,oldURL:i}))}function m(){let e=s(r.fV.hash??"")??"";return(""===e?a(r.fV.hash??"")??"":e?.[0]??"").replace("#","").replace("diff-","")}function b(){let e,t;return e=(r.fV.hash??"").match(/^#?(r\d+)/),(t=e?.[1])?parseInt(t.slice(1)):void 0}function p(){let e,t;return e=(r.fV.hash??"").match(/^#annotation_(\d+)/),(t=e?.[1])?parseInt(t):void 0}}}]); //# sourceMappingURL=94536-0b91ee2a6c9c09fc-c051c7d89b85430b.js.map performance.mark("js-parse-end:96109-91aaadf48132d6d5.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["96109"],{5522(e,t,n){n.d(t,{A:()=>a});let a={container:"UserMessage-module__container__WFrYn",mention:"UserMessage-module__mention__AUifU",command:"UserMessage-module__command__OOnAY"}},98922(e,t,n){n.d(t,{V:()=>nl});var a=n(74848),r=n(16522),i=n(59969),s=n(94583),l=n(35044),o=n(70966),c=n(82799),d=n(61405),u=n(38621),m=n(52870),h=n(9141),f=n(67323),p=n(26108),g=n(18990),y=n(4925),x=n(21373),v=n(7478),_=n(34164),b=n(96540),C=n(96371),S=n(94747),w=n(58388),I=n(67050),R=n(47970),E=n(80831),j=n(75058),T=n(17039),A=n(59518),N=n(85461);let k=/^(?:https:\/\/)?(?:www\.)?(figma\.com\/.+)$/;function O(e,t){return!t||t.includes(e)}class L extends Error{constructor(){super(),this.name="FigmaNotAuthorizedError"}}async function P(e){let t=await (0,w.lS)(`/copilot/immersive/figma-link?item_url=${e}`);if(!t.ok){if(403===t.status)throw new L;throw Error(`Failed to fetch Figma reference data (${t.status}: ${t.statusText})`)}return await t.json()}async function F(e){let{itemUrl:t}=e,n=await (0,w.lS)(`/copilot/chat-links?item_url=${t}`);if(!n.ok)throw Error(`Failed to fetch reference data (${n.status}: ${n.statusText})`);return await n.json()}var M=n(55345),D=n(20407),$=n(74022),W=n(91873),U=n(1361),B=n(25891),V=n(3972),z=n(8883);let q=async(e,t,n,a,r,i,l)=>{let o=B.W.askModeDropdown&&i===U.II.Task;if(!o){if((e[0]??"")!=="/")return!1;e=e.substring(1)}let c=(({manager:e,chatState:t,availableCommands:n})=>{let a="assistive"===t.mode?[{label:"Delete chat",key:"delete",icon:u.TrashIcon,action:async(t,n)=>{e.dispatch({type:"SLASH_COMMANDS_LOADING"});try{let t=(0,z.W)(n);if(!t)throw Error("Thread not found");await e.deleteThread(t),(0,s.BI)("dotcom_chat.activate",{target:"SLASH_COMMAND_DELETE_THREAD",mode:n.mode}),e.dispatch({type:"SLASH_COMMANDS_LOADED"})}catch{e.dispatch({type:"SLASH_COMMANDS_ERROR"})}return!0}},{label:"Rename conversation",key:"rename",icon:u.PencilIcon,action:async(t,n)=>{e.dispatch({type:"SLASH_COMMANDS_LOADING"});try{let a=(0,z.W)(n);if(!a)throw Error("Thread not found");await e.renameThread(a,t),(0,s.BI)("dotcom_chat.activate",{target:"SLASH_COMMAND_RENAME",mode:n.mode}),e.dispatch({type:"SLASH_COMMANDS_LOADED"})}catch{e.dispatch({type:"SLASH_COMMANDS_ERROR"})}return!0}},{label:"Start a new conversation",key:"new",icon:u.PlusIcon,action:async(t,n)=>{e.dispatch({type:"SLASH_COMMANDS_LOADING"});try{await e.selectThread(null),(0,s.BI)("dotcom_chat.activate",{target:"SLASH_COMMAND_NEW_THREAD",mode:n.mode}),e.dispatch({type:"SLASH_COMMANDS_LOADED"})}catch{e.dispatch({type:"SLASH_COMMANDS_ERROR"})}return!0}}]:[];if("immersive"===t.mode&&B.W.chatInputCommands)for(let t of n)t.execute&&a.push({key:t.key,action:async(n,a,r)=>await t.execute(n,a,r,e)});return a})({manager:n,chatState:t,availableCommands:r}),d=o?c.filter(e=>e.key.toLowerCase()===i?.toLowerCase()):c.filter(t=>{let n=(e.split(" ",1)[0]??"").toLowerCase().trim();return t.key.toLowerCase()===n});if(1!==d.length)return!1;let m=d[0],h=o?e.trim():e.substring(m.key.length).trim();return l&&(l.selectedRepo||l.selectedBranch||l.selectedAgent)&&(h=JSON.stringify({text:h,selectedRepo:l.selectedRepo,selectedBranch:l.selectedBranch,selectedAgent:l.selectedAgent})),(0,s.BI)("dotcom_chat.activate",{target:"SLASH_COMMAND_EXECUTED",mode:t.mode,command:m.key,activeModeName:i}),await m.action(h,t,a)};var H=n(45986),G=n(96808),K=n(40560);function Q(e,t){return B.W.askModeDropdown?e===U.II.Task:"task"===t}function J(e,t,n){if("immersive"===e&&/^\/copilot(\/agents|\/spaces\/[a-zA-Z0-9-_]+\/[0-9]+)?\/?$/.test(t)){let e=n.get("prompt");if(e)return e}}var X=n(23339),Y=n(32997),Z=n(378),ee=n(10731),et=n(24661),en=n(65768),ea=n(60937),er=n(93607),ei=n(30762);let es=()=>(0,a.jsx)("span",{role:"img","aria-label":"Starred",style:{color:"var(--button-star-iconColor)"},children:(0,a.jsx)(u.StarFillIcon,{})});es.displayName="StarredIcon";let el=e=>`${e.owner}-${e.id}`;function eo({openCreateSpaceDialog:e,setPendingSpace:t,clearSpaceSelection:n,activeCopilotSpaceId:r,readOnly:i}){let l=(0,j.b)(),[o,c]=(0,b.useState)(!1),d=(0,b.useRef)(null),[m,h]=(0,b.useState)(""),[f,p]=(0,b.useState)(""),[y,v]=(0,b.useState)([]),[_,C]=(0,b.useState)(!1),[S,I]=(0,b.useState)(!1);(0,b.useEffect)(()=>{I(window.location.pathname.startsWith(N.Jz))},[]);let R=()=>{c(!1),e(!0),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_COPILOT_SPACES_CREATE_SPACE",mode:"immersive"})},E=(0,b.useCallback)(e=>{r&&e.id===r.id&&e.owner===r.owner?n():(l.addReference({...e,type:"copilot-space"},"spaces"),t({id:e.id,owner:e.owner}),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_COPILOT_SPACES_SELECT_SPACE",space:`${e.owner}/${e.id}`})),c(!1)},[r,n,l,t]),T=(0,b.useCallback)(async e=>{try{let t=new URLSearchParams({q:e}),n=await (0,w.lS)(`/github-copilot/chat/custom_copilots/search?${t.toString()}`);if(!n.ok)throw Error("Failed to fetch spaces");return await n.json()}catch{return[]}},[]);(0,b.useEffect)(()=>{let e=!1;return(async()=>{if(!o)return;C(!0);let t=await T(f);e||(v(t),C(!1))})(),()=>{e=!0}},[T,f,o]),(0,b.useEffect)(()=>()=>{d.current&&clearTimeout(d.current)},[]);let A=(0,ei.BV)(),k=(0,b.useMemo)(()=>y.map(e=>({id:el(e),key:el(e),text:e.name.length>40?`${e.name.slice(0,40)}...`:e.name,description:e.owner,descriptionVariant:"inline",value:el(e),trailingVisual:e.starred?es:void 0})),[y]);if(!A||i)return null;let O=r?k.find(e=>e.id===el(r)):void 0;return(0,a.jsx)(a.Fragment,{children:(0,a.jsx)(er.X,{align:"end",title:"Select a space",subtitle:"Recent spaces",renderAnchor:e=>(0,a.jsxs)(g.l.Item,{as:"button",...e,children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.SpaceIcon,{})}),"Spaces\u2026",(0,a.jsx)(g.l.TrailingVisual,{children:(0,a.jsx)(u.ChevronRightIcon,{})})]}),open:o,onOpenChange:e=>{e&&(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_COPILOT_SPACES",mode:"immersive"}),c(e)},loading:_,items:k,filterValue:m,onFilterChange:e=>{h(e),d.current&&clearTimeout(d.current),d.current=setTimeout(()=>{p(e)},350)},...{selected:O,onSelectedChange:e=>{let t=y.find(t=>el(t)===e?.id);t&&(E(t),V.Jt.setLastSelectedSpace(t))}},overlayProps:{height:"auto",width:"large",anchorSide:"outside-right"},message:0!==y.length||_?void 0:{title:"No spaces found",body:"You can create a new space to get started.",variant:"empty",action:(0,a.jsx)(x.Q,{variant:"default",size:"small",onClick:R,children:"Create a new space"})},secondaryAction:S&&y.length>0?(0,a.jsx)(er.X.SecondaryActionButton,{onClick:R,children:"Create a space"}):void 0})})}eo.displayName="SpacesSelectNew";var ec=n(43573),ed=n(62912),eu=n(23274),em=n(35592);function eh(e){let t,n,i,l,o,c,d=(0,r.c)(24),{onSelectPanel:m,onSelectAgent:h}=e,{availableAgents:p,showLimit:y,disabled:x,loading:v}=(0,eu.JE)(),_=p&&p.length>0;if(v){let e;return d[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,a.jsxs)(g.l.Item,{disabled:!0,children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.AppsIcon,{})}),"Extensions\u2026"]}),d[0]=e):e=d[0],e}if(x){let e,t,n;return d[1]!==m?(e=()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_EXTENSION_NOT_SUPPORTED",mode:"immersive"}),m("agents-not-supported")},d[1]=m,d[2]=e):e=d[2],d[3]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.AppsIcon,{})}),d[3]=t):t=d[3],d[4]!==e?(n=(0,a.jsxs)(g.l.Item,{onSelect:e,children:[t,"Extensions\u2026"]}),d[4]=e,d[5]=n):n=d[5],n}if(!_){let e,t,n;return d[6]!==m?(e=()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_EXTENSION_NOT_AVAILABLE",mode:"immersive"}),m("no-agents-available")},d[6]=m,d[7]=e):e=d[7],d[8]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.AppsIcon,{})}),d[8]=t):t=d[8],d[9]!==e?(n=(0,a.jsxs)(g.l.Item,{onSelect:e,children:[t,"Extensions\u2026"]}),d[9]=e,d[10]=n):n=d[10],n}if(d[11]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)(f.W.Anchor,{children:(0,a.jsxs)(g.l.Item,{onSelect:ep,children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.AppsIcon,{})}),"Extensions\u2026"]})}),d[11]=t):t=d[11],d[12]!==p||d[13]!==h||d[14]!==y){let e;d[16]!==h||d[17]!==y?(e=e=>(0,a.jsxs)(g.l.Item,{onSelect:()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_EXTENSION_SELECTED",mode:"immersive"}),h(e)},children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(em.r,{src:e.avatarUrl})}),e.name,!y&&(0,a.jsxs)(g.l.Description,{variant:"inline",truncate:!0,children:[eu.Z3,e.slug]}),y&&(0,a.jsx)(g.l.Description,{variant:"block",children:"Start a new chat to use other extensions."})]},e.slug),d[16]=h,d[17]=y,d[18]=e):e=d[18],n=p.map(e),d[12]=p,d[13]=h,d[14]=y,d[15]=n}else n=d[15];return d[19]===Symbol.for("react.memo_cache_sentinel")?(i=(0,a.jsx)(g.l.Divider,{}),d[19]=i):i=d[19],d[20]===Symbol.for("react.memo_cache_sentinel")?(l=(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.TelescopeIcon,{})}),d[20]=l):l=d[20],d[21]===Symbol.for("react.memo_cache_sentinel")?(o=(0,a.jsxs)(g.l.LinkItem,{href:eu.bn,onClick:ef,children:[l,"Marketplace",(0,a.jsx)(g.l.TrailingVisual,{children:(0,a.jsx)(u.LinkExternalIcon,{})})]}),d[21]=o):o=d[21],d[22]!==n?(c=(0,a.jsxs)(f.W,{children:[t,(0,a.jsx)(f.W.Overlay,{width:"small",children:(0,a.jsxs)(g.l,{children:[n,i,o]})})]}),d[22]=n,d[23]=c):c=d[23],c}function ef(){(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_EXTENSION_MARKETPLACE",mode:"immersive"})}function ep(){(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_EXTENSION",mode:"immersive"})}eh.displayName="AgentMenu";var eg=n(83223),ey=n(39081);let ex="AgentsDialogs-module__dialogContentWrapper__Og_qP",ev="AgentsDialogs-module__dialogTitle__o_6Xr",e_="AgentsDialogs-module__dialogDescription__uOAQk";function eb(e){let t,n,i=(0,r.c)(4),{onClose:s,returnFocusRef:l}=e;return i[0]===Symbol.for("react.memo_cache_sentinel")?(t={narrow:"fullscreen",regular:"center"},i[0]=t):t=i[0],i[1]!==s||i[2]!==l?(n=(0,a.jsx)(ey.l,{width:"large",title:"Extensions",position:t,onClose:s,returnFocusRef:l,renderBody:eC}),i[1]=s,i[2]=l,i[3]=n):n=i[3],n}function eC(){return(0,a.jsx)("div",{className:"AgentsDialogs-module__AgentsDialogsMainContainer__GPOXQ",children:(0,a.jsxs)("div",{className:ex,children:[(0,a.jsx)(u.TelescopeIcon,{size:24}),(0,a.jsx)("h3",{className:ev,children:"Chat with your favorite tools and services"}),(0,a.jsx)("p",{className:e_,children:"Browse the marketplace to find extensions for the tools and services you rely on"}),(0,a.jsx)(x.Q,{as:"a",href:eu.bn,children:"Browse marketplace"}),(0,a.jsx)("div",{className:"AgentsDialogs-module__documentationLinkContainer___mRel",children:(0,a.jsx)(eg.A,{href:"https://gh.io/copilot-extensions-docs",children:"Documentation"})})]})})}function eS(e){let t,n,i,s=(0,r.c)(9),{onClose:l,returnFocusRef:o}=e,c=(0,j.b)(),d=(0,E.Pk)(),m=(0,ei.BV)(),h=(0,H.GF)(d.availableModels);return s[0]===Symbol.for("react.memo_cache_sentinel")?(t={narrow:"fullscreen",regular:"center"},s[0]=t):t=s[0],s[1]!==m||s[2]!==h||s[3]!==c?(n=()=>(0,a.jsx)("div",{className:"AgentsDialogs-module__AgentsDialogsAlternateContainer__jeeJw",children:(0,a.jsxs)("div",{className:ex,children:[(0,a.jsx)("div",{className:"AgentsDialogs-module__alertIconContainer__wKu5A",children:(0,a.jsx)(u.AlertIcon,{size:24})}),(0,a.jsxs)("h3",{className:ev,children:[m?"Copilots and extensions":"Extensions"," aren't supported by this model"]}),(0,a.jsxs)("p",{className:e_,children:["Switch back to the ",h.displayName," model or start a new chat"]}),(0,a.jsx)(x.Q,{onClick:()=>{c.selectThread(null),c.selectModel(h)},children:"New chat"})]})}),s[1]=m,s[2]=h,s[3]=c,s[4]=n):n=s[4],s[5]!==l||s[6]!==o||s[7]!==n?(i=(0,a.jsx)(ey.l,{width:"large",title:"Extensions",position:t,onClose:l,returnFocusRef:o,renderBody:n}),s[5]=l,s[6]=o,s[7]=n,s[8]=i):i=s[8],i}eb.displayName="NoAgentsAvailableDialog",eS.displayName="AgentsNotSupportedDialog";var ew=n(72302),eI=n(58664);function eR(e){let t,n,i,s=(0,r.c)(10),{isOpen:l,onClose:o,initialRepo:c,onRepoSelect:d}=e,u=(0,j.b)(),{findFileWorkerPath:m}=(0,E.Pk)(),h=(0,b.useRef)(null);s[0]!==u||s[1]!==o?(t=async e=>{if(0===e.length)return void o();let t=await (0,eI.V)(e[0].repositoryId);for(let n of e.map(e=>"github_folder"===e.type?(0,N.OC)(e.filePath,t):(0,N.Od)(e.filePath,t)))u.addReference(n,"references-menu");o()},s[0]=u,s[1]=o,s[2]=t):t=s[2];let f=t;return l?(s[3]===Symbol.for("react.memo_cache_sentinel")?(n=[],s[3]=n):n=s[3],s[4]!==m||s[5]!==f||s[6]!==c||s[7]!==o||s[8]!==d?(i=(0,a.jsx)(ew.Q,{formData:n,onCancel:o,onSaveFiles:f,findFileWorkerPath:m,attachmentButtonRef:h,initialRepo:c,onRepoSelect:d,allowFolderReferences:!0,maxFileCount:20}),s[4]=m,s[5]=f,s[6]=c,s[7]=o,s[8]=d,s[9]=i):i=s[9],i):null}eR.displayName="CopilotFilePicker";var eE=n(58417),ej=n(95915);let eT=(0,b.memo)(e=>{let t,n,o,c,d,m,h,p,y,x,v,_,C,S,w,I,R,T,A,N,k,O,L,P,F,M,D,$=(0,r.c)(101);$[0]!==e?({panel:c,onPanelChange:m,anchorRef:t,initialRepo:n,onRepoSelect:o,...d}=e,$[0]=e,$[1]=t,$[2]=n,$[3]=o,$[4]=c,$[5]=d,$[6]=m):(t=$[1],n=$[2],o=$[3],c=$[4],d=$[5],m=$[6]);let{inputRef:W}=d,U=(0,j.b)(),V=(0,E.Pk)(),z=(0,ed.qw)(),{supportedAttachmentTypes:q,supportedReferenceTypes:H}=function(){let e,t=(0,r.c)(2),n=null!==(0,ec.G)();if(t[0]!==n){let a=["upload"];n||a.push("repositories"),n||a.push("copilot-spaces"),n||a.push("agents"),n||a.push("plugin-attachment-contribution"),e={supportedAttachmentTypes:a,supportedReferenceTypes:n?["files"]:["files","folders"]},t[0]=n,t[1]=e}else e=t[1];return e}(),{model:G}=(0,E.bP)("model"),K=B.W.previewFeaturesVisionGate&&V.hasCEorCBAccess&&!V.optedInToPreviewFeatures,Q="immersive"===V.mode&&!!G.capabilities?.supports?.vision&&!K,J=(0,eu.kw)(d),X=(0,b.useRef)(null),{handleSpaceSelect:Z,clearSpaceSelection:et,activeCopilotSpaceId:en,readOnly:er}=(0,i.C)(),[ei,es]=(0,b.useState)(!1);$[7]!==Q||$[8]!==U||$[9]!==G||$[10]!==V||$[11]!==q?(h=q.includes("upload")&&(0,a.jsx)("input",{id:"image-uploader",...(0,l.G)("image-uploader"),hidden:!0,ref:X,type:"file",accept:[Q?Y.s.getAllowedImageFileExtensions(G):"",ee.E.getTextFileExtensions()].join(","),multiple:!0,onChange:e=>{if(!e.target.files)return;let[t,n]=Y.s.getAllowedFiles([...e.target.files],G),a=[];for(let e of(Q?new Y.s(V,U).addImageAttachments(t,"menu"):a.push(...t),n))new ee.E(U).addAttachment(e);for(let e of a)(0,s.BI)("dotcom_chat.upload_unsupported_file",{name:e.name,type:e.type,size:e.size});e.currentTarget.value=""}}),$[7]=Q,$[8]=U,$[9]=G,$[10]=V,$[11]=q,$[12]=h):h=$[12];let el="attachment-types"===c;$[13]!==m?(p=e=>m(t=>e&&null===t?"attachment-types":e||"attachment-types"!==t?t:null),$[13]=m,$[14]=p):p=$[14];let em=d.side??"outside-bottom",ef="assistive"===V.mode?"relative":void 0,ep="assistive"===V.mode?eE.E5:void 0;if($[15]!==m||$[16]!==V.mode||$[17]!==q?(y=!B.W.copilotChatRepositoryPicker&&q.includes("repositories")&&(0,a.jsxs)(g.l.Item,{onSelect:()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"open",component:"ATTACHMENT_MENU",mode:V.mode}),m("repositories")},children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.RepoIcon,{})}),"Repositories\u2026"]}),$[15]=m,$[16]=V.mode,$[17]=q,$[18]=y):y=$[18],$[19]!==m||$[20]!==V.mode?(x=()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_MULTI_FILE_PICKER",mode:V.mode}),m("multi-file-picker")},$[19]=m,$[20]=V.mode,$[21]=x):x=$[21],$[22]===Symbol.for("react.memo_cache_sentinel")?(v=(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.FileCodeIcon,{})}),$[22]=v):v=$[22],$[23]!==H){let e,t,n;e=H.includes("files"),t=H.includes("folders"),n=H.includes("symbols"),_=e&&t&&n?"Files, folders, and symbols":e&&t?"Files and folders":e&&n?"Files and symbols":t&&n?"Folders and symbols":e?"Files":t?"Folders":n?"Symbols":"References",$[23]=H,$[24]=_}else _=$[24];if($[25]!==_||$[26]!==x?(C=(0,a.jsxs)(g.l.Item,{onSelect:x,children:[v,_,"\u2026"]}),$[25]=_,$[26]=x,$[27]=C):C=$[27],$[28]!==en||$[29]!==et||$[30]!==er||$[31]!==Z||$[32]!==q?(S=q.includes("copilot-spaces")&&(0,a.jsx)(eo,{openCreateSpaceDialog:es,setPendingSpace:Z,clearSpaceSelection:et,activeCopilotSpaceId:en,readOnly:er}),$[28]=en,$[29]=et,$[30]=er,$[31]=Z,$[32]=q,$[33]=S):S=$[33],$[34]!==z||$[35]!==m){let e;$[37]!==m?(e=e=>{let t=e.attachmentMenuContribution;return t?(0,a.jsx)(t.MenuItemComponent,{onSelect:()=>m(t.attachmentType)},e.id):null},$[37]=m,$[38]=e):e=$[38],w=z.map(e),$[34]=z,$[35]=m,$[36]=w}else w=$[36];return $[39]!==m||$[40]!==V.mode||$[41]!==q?(I=q.includes("upload")&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.l.Divider,{}),(0,a.jsxs)(g.l.Item,{onSelect:()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_IMAGES",mode:V.mode}),m(null),X.current?.click()},children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.UploadIcon,{})}),"Upload from computer"]})]}),$[39]=m,$[40]=V.mode,$[41]=q,$[42]=I):I=$[42],$[43]!==J||$[44]!==m||$[45]!==q?(R=q.includes("agents")&&!B.W.hideExtensionsInDotcomChat&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.l.Divider,{}),(0,a.jsx)(eh,{onSelectPanel:e=>m(e),onSelectAgent:e=>setTimeout(()=>J(e.slug))})]}),$[43]=J,$[44]=m,$[45]=q,$[46]=R):R=$[46],$[47]!==C||$[48]!==S||$[49]!==w||$[50]!==I||$[51]!==R||$[52]!==y?(T=(0,a.jsxs)(g.l,{children:[y,C,S,w,I,R]}),$[47]=C,$[48]=S,$[49]=w,$[50]=I,$[51]=R,$[52]=y,$[53]=T):T=$[53],$[54]!==T||$[55]!==em||$[56]!==ef||$[57]!==ep?(A=(0,a.jsx)(f.W.Overlay,{width:"small",side:em,position:ef,align:"start",portalContainerName:ep,children:T}),$[54]=T,$[55]=em,$[56]=ef,$[57]=ep,$[58]=A):A=$[58],$[59]!==t||$[60]!==A||$[61]!==el||$[62]!==p?(N=(0,a.jsx)(f.W,{anchorRef:t,open:el,onOpenChange:p,children:A}),$[59]=t,$[60]=A,$[61]=el,$[62]=p,$[63]=N):N=$[63],$[64]!==n||$[65]!==o||$[66]!==c||$[67]!==m?(k="multi-file-picker"===c&&(0,a.jsx)(eR,{isOpen:!0,onClose:()=>m(null),initialRepo:n,onRepoSelect:o}),$[64]=n,$[65]=o,$[66]=c,$[67]=m,$[68]=k):k=$[68],$[69]!==t||$[70]!==W||$[71]!==o||$[72]!==c||$[73]!==m?(O=!B.W.copilotChatRepositoryPicker&&(0,a.jsx)(ej.F,{open:"repositories"===c,onOpenChange:e=>m(e?"repositories":null),submitReturnFocusRef:W,cancelReturnFocusRef:t,onRepoSelect:o}),$[69]=t,$[70]=W,$[71]=o,$[72]=c,$[73]=m,$[74]=O):O=$[74],$[75]!==ei?(L=ei&&(0,a.jsx)(ea.D,{closeDialog:()=>es(!1),onSubmit:eA}),$[75]=ei,$[76]=L):L=$[76],$[77]!==t||$[78]!==c||$[79]!==m?(P="no-agents-available"===c&&(0,a.jsx)(eb,{onClose:()=>m(null),returnFocusRef:t}),$[77]=t,$[78]=c,$[79]=m,$[80]=P):P=$[80],$[81]!==t||$[82]!==c||$[83]!==m?(F="agents-not-supported"===c&&(0,a.jsx)(eS,{onClose:()=>m(null),returnFocusRef:t}),$[81]=t,$[82]=c,$[83]=m,$[84]=F):F=$[84],$[85]!==t||$[86]!==W||$[87]!==c||$[88]!==z||$[89]!==m||$[90]!==q?(M=q.includes("plugin-attachment-contribution")&&z.map(e=>e.attachmentMenuContribution&&e.attachmentMenuContribution.attachmentType===c?(0,a.jsx)(e.attachmentMenuContribution.PanelComponent,{onSubmit:()=>{m(null),W.current?.focus()},onDismiss:()=>{m(null),t.current?.focus()}},e.id):null),$[85]=t,$[86]=W,$[87]=c,$[88]=z,$[89]=m,$[90]=q,$[91]=M):M=$[91],$[92]!==h||$[93]!==N||$[94]!==k||$[95]!==O||$[96]!==L||$[97]!==P||$[98]!==F||$[99]!==M?(D=(0,a.jsxs)("div",{children:[h,N,k,O,L,P,F,M]}),$[92]=h,$[93]=N,$[94]=k,$[95]=O,$[96]=L,$[97]=P,$[98]=F,$[99]=M,$[100]=D):D=$[100],D});function eA(){(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_COPILOT_SPACES_SPACE_CREATED",mode:"immersive"})}eT.displayName="AttachmentMenu",eT.displayName="AttachmentMenu";var eN=n(97376);let ek={agents:"Extensions",repositories:"Repositories",files:"Files and folders",issues:"Issues",pulls:"Pull requests",discussions:"Discussions"},eO=[{name:ek.agents,icon:u.AppsIcon,value:"agents",where:"start"},{name:ek.repositories,icon:u.RepoIcon,value:"repositories",where:"anywhere"},{name:ek.files,icon:u.FileIcon,value:"repositories:files",where:"anywhere"},{name:ek.issues,icon:u.IssueOpenedIcon,value:"repositories:issues",where:"anywhere"},{name:ek.pulls,icon:u.GitPullRequestIcon,value:"repositories:pulls",where:"anywhere"},{name:ek.discussions,icon:u.CommentDiscussionIcon,value:"repositories:discussions",where:"anywhere"}];function eL(e){let t,n,i,s,l,o=(0,r.c)(12);return o[0]!==e?({agent:t,...n}=e,o[0]=e,o[1]=t,o[2]=n):(t=o[1],n=o[2]),o[3]!==t.avatarUrl?(i=(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(em.r,{src:t.avatarUrl})}),o[3]=t.avatarUrl,o[4]=i):i=o[4],o[5]!==t.slug?(s=(0,a.jsxs)(g.l.Description,{variant:"inline",truncate:!0,children:[eu.Z3,t.slug]}),o[5]=t.slug,o[6]=s):s=o[6],o[7]!==t.name||o[8]!==n||o[9]!==i||o[10]!==s?(l=(0,a.jsxs)(g.l.Item,{...n,children:[i,t.name,s]}),o[7]=t.name,o[8]=n,o[9]=i,o[10]=s,o[11]=l):l=o[11],l}function eP(e){let t,n,i,s,l,o,c,d,m=(0,r.c)(20);m[0]!==e?({leadingVisual:t,...n}=e,m[0]=e,m[1]=t,m[2]=n):(t=m[1],n=m[2]);let h=(0,b.useId)(),f=(0,b.useId)();return m[3]!==f||m[4]!==h?(i=(0,_.$)(h,f),m[3]=f,m[4]=h,m[5]=i):i=m[5],m[6]!==t?(s=void 0!==t&&(0,a.jsx)(g.l.LeadingVisual,{children:t}),m[6]=t,m[7]=s):s=m[7],m[8]!==h||m[9]!==n.children?(l=(0,a.jsx)("span",{id:h,children:n.children}),m[8]=h,m[9]=n.children,m[10]=l):l=m[10],m[11]!==f?(o=(0,a.jsx)("span",{className:"d-none","aria-hidden":!0,id:f,children:"Opens in new tab."}),m[11]=f,m[12]=o):o=m[12],m[13]===Symbol.for("react.memo_cache_sentinel")?(c=(0,a.jsx)(g.l.TrailingVisual,{children:(0,a.jsx)(u.LinkExternalIcon,{})}),m[13]=c):c=m[13],m[14]!==n||m[15]!==i||m[16]!==s||m[17]!==l||m[18]!==o?(d=(0,a.jsxs)(g.l.Item,{...n,"aria-labelledby":i,children:[s,l,o,c]}),m[14]=n,m[15]=i,m[16]=s,m[17]=l,m[18]=o,m[19]=d):d=m[19],d}function eF(e){return{value:`@${e.slug}`,render:t=>(0,a.jsx)(eL,{agent:e,...t})}}function eM(e){let t,n,i,s,l,o=(0,r.c)(9);return o[0]!==e?({leadingVisual:t,...n}=e,o[0]=e,o[1]=t,o[2]=n):(t=o[1],n=o[2]),o[3]!==t?(i=void 0!==t&&(0,a.jsx)(g.l.LeadingVisual,{children:t}),o[3]=t,o[4]=i):i=o[4],o[5]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)(g.l.TrailingVisual,{children:(0,a.jsx)(u.ArrowRightIcon,{})}),o[5]=s):s=o[5],o[6]!==n||o[7]!==i?(l=(0,a.jsxs)(g.l.Item,{"aria-haspopup":!0,...n,children:[i,n.children,s]}),o[6]=n,o[7]=i,o[8]=l):l=o[8],l}function eD(e){let t,n,i,s,l=(0,r.c)(9);l[0]!==e?({category:n,...t}=e,l[0]=e,l[1]=t,l[2]=n):(t=l[1],n=l[2]);let{name:o,icon:c}=n;return l[3]!==c?(i=(0,a.jsx)(c,{}),l[3]=c,l[4]=i):i=l[4],l[5]!==o||l[6]!==t||l[7]!==i?(s=(0,a.jsx)(eM,{leadingVisual:i,...t,children:o}),l[5]=o,l[6]=t,l[7]=i,l[8]=s):s=l[8],s}eL.displayName="AgentSuggestion",eP.displayName="LinkSuggestion",eM.displayName="MultistepSuggestion",eD.displayName="CategorySuggestion";var e$=n(39775);let eW="shared-module__asyncSuggestion__ve8IV",eU="shared-module__stale__E8ofL";function eB(e){let t,n,i,s,l,o,c,d,m,h,f,p=(0,r.c)(25);p[0]!==e?({discussion:n,stale:s,className:t,...i}=e,p[0]=e,p[1]=t,p[2]=n,p[3]=i,p[4]=s):(t=p[1],n=p[2],i=p[3],s=p[4]);let y=s&&eU;return p[5]!==t||p[6]!==y?(l=(0,_.$)(eW,y,t),p[5]=t,p[6]=y,p[7]=l):l=p[7],p[8]!==n.state?(o="open"===n.state&&(0,a.jsx)(u.CommentDiscussionIcon,{className:"fgColor-open"}),p[8]=n.state,p[9]=o):o=p[9],p[10]!==n.state?(c="closed"===n.state&&(0,a.jsx)(u.DiscussionClosedIcon,{className:"fgColor-muted"}),p[10]=n.state,p[11]=c):c=p[11],p[12]!==o||p[13]!==c?(d=(0,a.jsxs)(g.l.LeadingVisual,{children:[o,c]}),p[12]=o,p[13]=c,p[14]=d):d=p[14],p[15]!==n.title?(m=(0,a.jsx)(e$.A,{title:n.title,maxWidth:350,children:n.title}),p[15]=n.title,p[16]=m):m=p[16],p[17]!==n.number?(h=(0,a.jsxs)(g.l.Description,{children:["#",n.number]}),p[17]=n.number,p[18]=h):h=p[18],p[19]!==i||p[20]!==l||p[21]!==d||p[22]!==m||p[23]!==h?(f=(0,a.jsxs)(g.l.Item,{...i,className:l,children:[d,m,h]}),p[19]=i,p[20]=l,p[21]=d,p[22]=m,p[23]=h,p[24]=f):f=p[24],f}function eV(e){let t,n,i,s,l,o,c,d,m,h,f,p,y,x,v,b=(0,r.c)(35);if(b[0]!==e?({type:l,path:n,stale:s,className:t,...i}=e,b[0]=e,b[1]=t,b[2]=n,b[3]=i,b[4]=s,b[5]=l):(t=b[1],n=b[2],i=b[3],s=b[4],l=b[5]),b[6]!==t||b[7]!==n||b[8]!==i||b[9]!==s||b[10]!==l){let e=n.split("/"),r=e.pop();c=g.l.Item,h=i;let x=s&&eU;b[19]!==t||b[20]!==x?(f=(0,_.$)(eW,x,t),b[19]=t,b[20]=x,b[21]=f):f=b[21],b[22]!==l?(p=(0,a.jsx)(g.l.LeadingVisual,{children:"folder"===l?(0,a.jsx)(u.FileDirectoryFillIcon,{}):(0,a.jsx)(u.FileIcon,{})}),b[22]=l,b[23]=p):p=b[23],y=r,o=g.l.Description,d="inline",m=e.join("/"),b[6]=t,b[7]=n,b[8]=i,b[9]=s,b[10]=l,b[11]=o,b[12]=c,b[13]=d,b[14]=m,b[15]=h,b[16]=f,b[17]=p,b[18]=y}else o=b[11],c=b[12],d=b[13],m=b[14],h=b[15],f=b[16],p=b[17],y=b[18];return b[24]!==o||b[25]!==d||b[26]!==m?(x=(0,a.jsxs)(o,{variant:d,children:[m,"/"]}),b[24]=o,b[25]=d,b[26]=m,b[27]=x):x=b[27],b[28]!==c||b[29]!==h||b[30]!==f||b[31]!==p||b[32]!==y||b[33]!==x?(v=(0,a.jsxs)(c,{...h,className:f,children:[p,y,x]}),b[28]=c,b[29]=h,b[30]=f,b[31]=p,b[32]=y,b[33]=x,b[34]=v):v=b[34],v}function ez(e){let t,n,i,s,l,o,c,d,m,h,f,p,y=(0,r.c)(28);y[0]!==e?({issue:n,stale:s,className:t,...i}=e,y[0]=e,y[1]=t,y[2]=n,y[3]=i,y[4]=s):(t=y[1],n=y[2],i=y[3],s=y[4]);let x=s&&eU;return y[5]!==t||y[6]!==x?(l=(0,_.$)(eW,x,t),y[5]=t,y[6]=x,y[7]=l):l=y[7],y[8]!==n.state?(o="draft"===n.state&&(0,a.jsx)(u.IssueDraftIcon,{className:"fgColor-draft"}),y[8]=n.state,y[9]=o):o=y[9],y[10]!==n.state?(c="open"===n.state&&(0,a.jsx)(u.IssueOpenedIcon,{className:"fgColor-open"}),y[10]=n.state,y[11]=c):c=y[11],y[12]!==n.state?(d="closed"===n.state&&(0,a.jsx)(u.IssueClosedIcon,{className:"fgColor-done"}),y[12]=n.state,y[13]=d):d=y[13],y[14]!==o||y[15]!==c||y[16]!==d?(m=(0,a.jsxs)(g.l.LeadingVisual,{children:[o,c,d]}),y[14]=o,y[15]=c,y[16]=d,y[17]=m):m=y[17],y[18]!==n.title?(h=(0,a.jsx)(e$.A,{title:n.title,maxWidth:350,children:n.title}),y[18]=n.title,y[19]=h):h=y[19],y[20]!==n.number?(f=(0,a.jsxs)(g.l.Description,{children:["#",n.number]}),y[20]=n.number,y[21]=f):f=y[21],y[22]!==i||y[23]!==l||y[24]!==m||y[25]!==h||y[26]!==f?(p=(0,a.jsxs)(g.l.Item,{...i,className:l,children:[m,h,f]}),y[22]=i,y[23]=l,y[24]=m,y[25]=h,y[26]=f,y[27]=p):p=y[27],p}function eq(e){let t,n,i,s,l,o,c,d,m,h,f,p,y=(0,r.c)(28);y[0]!==e?({pullRequest:i,stale:s,className:t,...n}=e,y[0]=e,y[1]=t,y[2]=n,y[3]=i,y[4]=s):(t=y[1],n=y[2],i=y[3],s=y[4]);let x=s&&eU;return y[5]!==t||y[6]!==x?(l=(0,_.$)(eW,x,t),y[5]=t,y[6]=x,y[7]=l):l=y[7],y[8]!==i.state?(o="draft"===i.state&&(0,a.jsx)(u.GitPullRequestDraftIcon,{className:"fgColor-draft"}),y[8]=i.state,y[9]=o):o=y[9],y[10]!==i.state?(c="open"===i.state&&(0,a.jsx)(u.GitPullRequestIcon,{className:"fgColor-open"}),y[10]=i.state,y[11]=c):c=y[11],y[12]!==i.state?(d="closed"===i.state&&(0,a.jsx)(u.GitPullRequestClosedIcon,{className:"fgColor-done"}),y[12]=i.state,y[13]=d):d=y[13],y[14]!==o||y[15]!==c||y[16]!==d?(m=(0,a.jsxs)(g.l.LeadingVisual,{children:[o,c,d]}),y[14]=o,y[15]=c,y[16]=d,y[17]=m):m=y[17],y[18]!==i.title?(h=(0,a.jsx)(e$.A,{title:i.title,maxWidth:350,children:i.title}),y[18]=i.title,y[19]=h):h=y[19],y[20]!==i.number?(f=(0,a.jsxs)(g.l.Description,{children:["#",i.number]}),y[20]=i.number,y[21]=f):f=y[21],y[22]!==n||y[23]!==l||y[24]!==m||y[25]!==h||y[26]!==f?(p=(0,a.jsxs)(g.l.Item,{...n,className:l,children:[m,h,f]}),y[22]=n,y[23]=l,y[24]=m,y[25]=h,y[26]=f,y[27]=p):p=y[27],p}function eH(e){let t,n,i,s,l,o,c,d,m=(0,r.c)(18);m[0]!==e?({repository:s,isMultistep:n,stale:l,className:t,...i}=e,m[0]=e,m[1]=t,m[2]=n,m[3]=i,m[4]=s,m[5]=l):(t=m[1],n=m[2],i=m[3],s=m[4],l=m[5]);let h=l&&eU;m[6]!==t||m[7]!==h?(o=(0,_.$)(eW,h,t),m[6]=t,m[7]=h,m[8]=o):o=m[8];let f=o;m[9]!==s.isInOrganization||m[10]!==s.ownerAvatarUrl?(c=s.ownerAvatarUrl?(0,a.jsx)(em.r,{src:s.ownerAvatarUrl,alt:"",size:16,square:s.isInOrganization}):(0,a.jsx)(u.RepoIcon,{}),m[9]=s.isInOrganization,m[10]=s.ownerAvatarUrl,m[11]=c):c=m[11];let p=c;return m[12]!==p||m[13]!==f||m[14]!==n||m[15]!==i||m[16]!==s.nwo?(d=n?(0,a.jsx)(eM,{...i,className:f,leadingVisual:p,children:s.nwo},s.nwo):(0,a.jsxs)(g.l.Item,{...i,className:f,children:[(0,a.jsx)(g.l.LeadingVisual,{children:p}),s.nwo]},s.nwo),m[12]=p,m[13]=f,m[14]=n,m[15]=i,m[16]=s.nwo,m[17]=d):d=m[17],d}function eG(e){return{value:null,key:e.value,render:t=>(0,a.jsx)(eD,{category:e,...t})}}function eK(e){return null!==e}eB.displayName="DiscussionSuggestion",eV.displayName="FileSuggestion",ez.displayName="IssueSuggestion",eq.displayName="PullRequestSuggestion",eH.displayName="RepositorySuggestion";var eQ=n(99559);function eJ(e){return{value:`/${e.key}`,key:e.key,render:t=>(0,a.jsxs)(g.l.Item,{...t,children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(e.icon,{})}),e.name,(0,a.jsx)(g.l.Description,{variant:"block",children:e.description})]})}}var eX=n(97286);function eY(e){let t,n,a=(0,r.c)(3),[i,s]=(0,b.useState)(null);return(null===i&&null!==e||null!==i&&null===e)&&s(e),a[0]!==e?(t=()=>{let t=setTimeout(()=>s(e),200);return()=>clearTimeout(t)},n=[e],a[0]=e,a[1]=t,a[2]=n):(t=a[1],n=a[2]),(0,b.useEffect)(t,n),i}function eZ(e){return e}async function e0(e,t,n,a){return new Promise((r,i)=>{if(!window.Worker)return void setTimeout(()=>r(e.filter(e=>e.includes(t))));let s=new Worker(n);s.addEventListener("message",e=>r(e.data.list)),s.addEventListener("error",e=>i(Error(`Worker error: ${e.message}`))),a.addEventListener("abort",()=>{s.terminate(),i(Error("Worker aborted"))}),s.postMessage({baseList:e,query:t})})}function e1(e){return e}function e2(e){return e}function e5(e){return e}var e3=n(70804),e4=n(52503);function e8(e){let t,n,i,s,l=(0,r.c)(9);return l[0]!==e?({org:t,...n}=e,l[0]=e,l[1]=t,l[2]=n):(t=l[1],n=l[2]),l[3]!==t.avatarUrl?(i=(0,a.jsx)(em.r,{square:!0,src:t.avatarUrl}),l[3]=t.avatarUrl,l[4]=i):i=l[4],l[5]!==t.login||l[6]!==n||l[7]!==i?(s=(0,a.jsx)(eP,{leadingVisual:i,...n,children:t.login}),l[5]=t.login,l[6]=n,l[7]=i,l[8]=s):s=l[8],s}function e7(e){let t,n,i,s=(0,r.c)(7);return s[0]!==e?({orgs:t,...n}=e,s[0]=e,s[1]=t,s[2]=n):(t=s[1],n=s[2]),s[3]!==t[0]?.login||s[4]!==t.length||s[5]!==n?(i=1===t.length?(0,a.jsxs)(eP,{leadingVisual:(0,a.jsx)(u.ShieldLockIcon,{}),...n,children:["Single sign-on to ",(0,a.jsx)("strong",{children:t[0]?.login})," for more"]}):(0,a.jsx)(eM,{leadingVisual:(0,a.jsx)(u.ShieldLockIcon,{}),...n,children:"Single sign-on for more"}),s[3]=t[0]?.login,s[4]=t.length,s[5]=n,s[6]=i):i=s[6],i}e8.displayName="SSOOrgSuggestion",e7.displayName="SSOPromptSuggestion";let e6=e=>`/orgs/${encodeURIComponent(e.login)}/sso?return_to=${encodeURIComponent(location.href)}`;function e9(e){return{value:null,key:`open-link:${e6(e)}`,render:t=>(0,a.jsx)(e8,{org:e,...t})}}function te(e){return e.id}function tt(e){return"repository"===e.type}function tn(e){let t,n,i,l,o,c,d,m,h,f,p,y,x,v=(0,r.c)(36),{children:_,onSelectCommand:C,onSelectReference:S,onShowAgentsDialog:w,hideAutocomplete:I,availableCommands:R,availableModes:A}=e,{mode:N}=(0,E.Pk)();v[0]===Symbol.for("react.memo_cache_sentinel")?(t=[{triggerChar:"@",insertSpaceOnCommit:!0,keepTriggerCharOnCommit:!1,multiWord:!0}],B.W.chatInputCommands&&t.push({triggerChar:"/",insertSpaceOnCommit:!0,keepTriggerCharOnCommit:!1,multiWord:!1}),v[0]=t):t=v[0];let[k,O]=(0,b.useState)(ta);v[1]===Symbol.for("react.memo_cache_sentinel")?(n=()=>O(!0),i=[],v[1]=n,v[2]=i):(n=v[1],i=v[2]),(0,b.useEffect)(n,i);let[L,P]=(0,b.useState)(null);v[3]!==R||v[4]!==L?(l={query:L,availableCommands:R},v[3]=R,v[4]=L,v[5]=l):l=v[5];let{suggestions:F,stale:M}=function(e){let t=(0,r.c)(9),{query:n,availableCommands:i}=e,s=function(e,t){let n,a=(0,r.c)(5);e:{let r,i;if(!t){n=null;break e}a[0]!==e||a[1]!==t.filter?(r=""===t.filter.trim()?e:e.filter(e=>(0,eQ.dt)(e.name,t.filter)>.5&&e.key!==t.filter.toLowerCase()),a[0]=e,a[1]=t.filter,a[2]=r):r=a[2];let s=r;a[3]!==s?(i=s.map(eJ),a[3]=s,a[4]=i):i=a[4],n=i}return n}(i,n?.category==="commands"?n:null),l=function(e){let t,n=(0,r.c)(3),{currentReferences:i}=(0,E.Pk)();e:{let r;if(!e){t=null;break e}if(n[0]!==i||n[1]!==e){let t=e.filter.toLowerCase(),s=e=>e.toLowerCase().includes(t)&&e.toLowerCase()!==t,l=i.map(e=>{let t=T.Q.for(e);switch(t?.type){case void 0:break;case"repository":{let e=`${t.reference.ownerLogin}/${t.reference.name}`;if(!s(e))return null;return{value:T.Q.stringify(t),render:n=>(0,a.jsx)(eH,{repository:{databaseId:t.reference.id,isInOrganization:"Organization"===t.reference.ownerType,name:t.reference.name,nwo:e,ownerLogin:t.reference.ownerLogin},...n})}}case"issue":{let e=t.reference.title??"";if(!s(e))return null;return{value:T.Q.stringify(t),render:n=>(0,a.jsx)(ez,{issue:{number:t.reference.number,state:t.reference.state??"",title:e},...n})}}case"pull-request":{let e=t.reference.title??"";if(!s(e))return null;return{value:T.Q.stringify(t),render:n=>(0,a.jsx)(eq,{pullRequest:{number:t.reference.number,state:t.reference.state??"",title:e},...n})}}case"discussion":{let e=t.reference.title??"";if(!s(e))return null;return{value:T.Q.stringify(t),render:n=>(0,a.jsx)(eB,{discussion:{number:t.reference.number,state:t.reference.state,title:e},...n})}}case"file":{let e=t.reference.path;if(!s(e))return null;return{value:T.Q.stringify(t),render:n=>(0,a.jsx)(eV,{type:"folder"===t.reference.type?"folder":"file",path:e,...n})}}}return null}).filter(eK),o=(B.W.hideExtensionsInDotcomChat?eO.filter(e=>"agents"!==e.value):eO).filter(n=>n.name.toLowerCase().includes(t)&&function(e,t){switch(e){case"start":return 0===t.index;case"anywhere":return!0}}(n.where,e)).map(eG);if(o.length>0){let e=l.at(-1);if(e&&"object"==typeof e){let t=e.render;e.render=e=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t,{...e}),(0,a.jsx)(g.l.Divider,{})]})}}r=l.concat(o),n[0]=i,n[1]=e,n[2]=r}else r=n[2];t=r}return t}(n?.category==="categories"?n:null),o=function(e){let t,n=(0,r.c)(4),{availableAgents:i,loading:s,showLimit:l,disabled:o}=(0,eu.JE)(null!==e);e:{let r;if(o||!e){t=null;break e}if(s&&!i){t="loading";break e}n[0]!==i||n[1]!==e||n[2]!==l?(r=i?.filter(t=>e?.category==="agents"&&t.name.toLowerCase().includes(e.filter.toLowerCase())).map(eF).concat({value:null,key:`open-link:${eu.bn}`,render:e=>(0,a.jsxs)(a.Fragment,{children:[i.length>0&&(0,a.jsx)(g.l.Divider,{}),(0,a.jsx)(eP,{leadingVisual:(0,a.jsx)(u.TelescopeIcon,{}),...e,inactiveText:l?"Start a new conversation to use other extensions.":void 0,children:"Marketplace"})]})})??null,n[0]=i,n[1]=e,n[2]=l,n[3]=r):r=n[3],t=r}return t}(n?.category==="agents"?n:null),c=function(e){var t,n;let i,s,l,o,c,d,u,m,h=(0,r.c)(17),{currentReferences:f}=(0,E.Pk)(),p=eY(e),y=e!==p,{repositories:x,loading:v}=(t=p?.filter??"",n=null!==p,(c=(0,r.c)(1))[0]===Symbol.for("react.memo_cache_sentinel")?(o=(0,e4.P)(),c[0]=o):o=c[0],d=o,u=(0,e3.U)(t,n,void 0,void 0,!1,!1,d),m=(0,e4.q)(t,n,void 0,void 0,!1,!1,d),d?m:u);h[0]!==f?(i=new Set(f.filter(tt).map(te)),h[0]=f,h[1]=i):i=h[1];let _=i,{ssoOrganizations:b}=(0,E.Pk)();e:{let e;if(!p){s=null;break e}if("initial"===v){s="loading";break e}let t=void 0!==p.nextCategory;if(h[2]!==y||h[3]!==t||h[4]!==v||h[5]!==x||h[6]!==_||h[7]!==b){if(e=x.toSorted((e,t)=>_.has(e.databaseId)&&!_.has(t.databaseId)?-1:_.has(t.databaseId)&&!_.has(e.databaseId)?1:0).slice(0,5).map(e=>({value:t?null:T.Q.stringify({type:"repository",repo:e.nwo}),key:e.nwo,render:n=>(0,a.jsx)(eH,{repository:e,isMultistep:t,stale:!!v||y,...n})}))??[],b.length>0){let t,n;h[9]!==b[0]||h[10]!==b.length?(t=1===b.length?`open-link:${e6(b[0])}`:"sso-orgs",h[9]=b[0],h[10]=b.length,h[11]=t):t=h[11],h[12]!==b?(n=e=>(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.l.Divider,{}),(0,a.jsx)(e7,{orgs:b,...e})]}),h[12]=b,h[13]=n):n=h[13],e.push({value:null,key:t,render:n})}h[2]=y,h[3]=t,h[4]=v,h[5]=x,h[6]=_,h[7]=b,h[8]=e}else e=h[8];s=e}let C=s,S=!0===v;return h[14]!==C||h[15]!==S?(l={suggestions:C,stale:S},h[14]=C,h[15]=S,h[16]=l):l=h[16],l}(n?.category==="repositories"?n:null),d=function(e){let t,n,i,s,l,o=(0,r.c)(18),{service:c}=(0,j.b)(),d=eY(e),u=e!==d,m=null!==d,h=d?.repository,f=d?.filter;o[0]!==h||o[1]!==f?(t=["copilot-autocomplete-issues",h,f],o[0]=h,o[1]=f,o[2]=t):t=o[2],o[3]!==d||o[4]!==c?(n=async()=>c.fetchAutocompleteIssues(d.repository,d.filter),o[3]=d,o[4]=c,o[5]=n):n=o[5],o[6]!==m||o[7]!==t||o[8]!==n?(i={enabled:m,queryKey:t,queryFn:n,placeholderData:e2},o[6]=m,o[7]=t,o[8]=n,o[9]=i):i=o[9];let p=(0,eX.I)(i);e:{let e;if(!d){s=null;break e}if(p.isLoading){s="loading";break e}o[10]!==d||o[11]!==u||o[12]!==p.data||o[13]!==p.isPlaceholderData?(e=p.data?.map(e=>({value:T.Q.stringify({type:"issue",repo:d.repository,id:e.number.toString()}),key:e.number.toString(),render:t=>(0,a.jsx)(ez,{...t,issue:e,stale:p.isPlaceholderData||u})}))??null,o[10]=d,o[11]=u,o[12]=p.data,o[13]=p.isPlaceholderData,o[14]=e):e=o[14],s=e}let g=s;return o[15]!==p.isPlaceholderData||o[16]!==g?(l={suggestions:g,stale:p.isPlaceholderData},o[15]=p.isPlaceholderData,o[16]=g,o[17]=l):l=o[17],l}(n?.category==="issues"?n:null),m=function(e){let t,n,i,s,l,o=(0,r.c)(18),{service:c}=(0,j.b)(),d=eY(e),u=e!==d,m=null!==d,h=d?.repository,f=d?.filter;o[0]!==h||o[1]!==f?(t=["copilot-autocomplete-pulls",h,f],o[0]=h,o[1]=f,o[2]=t):t=o[2],o[3]!==d||o[4]!==c?(n=async()=>c.fetchAutocompletePullRequests(d.repository,d.filter),o[3]=d,o[4]=c,o[5]=n):n=o[5],o[6]!==m||o[7]!==t||o[8]!==n?(i={enabled:m,queryKey:t,queryFn:n,placeholderData:e5},o[6]=m,o[7]=t,o[8]=n,o[9]=i):i=o[9];let p=(0,eX.I)(i);e:{let e;if(!d){s=null;break e}if(p.isLoading){s="loading";break e}o[10]!==d||o[11]!==u||o[12]!==p.data||o[13]!==p.isPlaceholderData?(e=p.data?.map(e=>({value:T.Q.stringify({type:"pull-request",repo:d.repository,id:e.number.toString()}),key:e.number.toString(),render:t=>(0,a.jsx)(eq,{...t,pullRequest:e,stale:p.isPlaceholderData||u})}))??null,o[10]=d,o[11]=u,o[12]=p.data,o[13]=p.isPlaceholderData,o[14]=e):e=o[14],s=e}let g=s;return o[15]!==p.isPlaceholderData||o[16]!==g?(l={suggestions:g,stale:p.isPlaceholderData},o[15]=p.isPlaceholderData,o[16]=g,o[17]=l):l=o[17],l}(n?.category==="pulls"?n:null),h=function(e){let t,n,i,s,l,o=(0,r.c)(18),{service:c}=(0,j.b)(),d=eY(e),u=e!==d,m=null!==d,h=d?.repository,f=d?.filter;o[0]!==h||o[1]!==f?(t=["copilot-autocomplete-discussions",h,f],o[0]=h,o[1]=f,o[2]=t):t=o[2],o[3]!==d||o[4]!==c?(n=async()=>c.fetchAutocompleteDiscussions(d.repository,d.filter),o[3]=d,o[4]=c,o[5]=n):n=o[5],o[6]!==m||o[7]!==t||o[8]!==n?(i={enabled:m,queryKey:t,queryFn:n,placeholderData:eZ},o[6]=m,o[7]=t,o[8]=n,o[9]=i):i=o[9];let p=(0,eX.I)(i);e:{let e;if(!d){s=null;break e}if(p.isLoading){s="loading";break e}o[10]!==d||o[11]!==p.data||o[12]!==p.isPlaceholderData||o[13]!==u?(e=p.data?.map(e=>({value:T.Q.stringify({type:"discussion",repo:d.repository,id:e.number.toString()}),key:e.number.toString(),render:t=>(0,a.jsx)(eB,{...t,discussion:e,stale:p.isPlaceholderData||u})}))??null,o[10]=d,o[11]=p.data,o[12]=p.isPlaceholderData,o[13]=u,o[14]=e):e=o[14],s=e}let g=s;return o[15]!==p.isPlaceholderData||o[16]!==g?(l={suggestions:g,stale:p.isPlaceholderData},o[15]=p.isPlaceholderData,o[16]=g,o[17]=l):l=o[17],l}(n?.category==="discussions"?n:null),f=function(e){var t;let n,i,s,l,o,c,d,u,m,h,f,p,g,y,x=(0,r.c)(23),v=(0,j.b)(),_=null!==e,b=e?.repository;x[0]!==b?(n=["copilot-repository",b],x[0]=b,x[1]=n):n=x[1],x[2]!==v||x[3]!==e?.repository?(i=async()=>{if(!e?.repository)return null;let t=await v.service.fetchRepo(e?.repository);if(!t.ok)throw Error("Failed to fetch repository");return t.payload},x[2]=v,x[3]=e?.repository,x[4]=i):i=x[4],x[5]!==_||x[6]!==n||x[7]!==i?(s={enabled:_,queryKey:n,queryFn:i,staleTime:3e5},x[5]=_,x[6]=n,x[7]=i,x[8]=s):s=x[8];let C=(0,eX.I)(s),S=(t=C.data??null,p=(0,r.c)(11),g=(0,j.b)(),y=null!==t,!0!==p[0]||p[1]!==t?(m=["copilot-repository-files",t,!0],p[0]=!0,p[1]=t,p[2]=m):m=p[2],!0!==p[3]||p[4]!==g||p[5]!==t?(h=async()=>{if(!t)return{};let e=await g.service.listRepoFiles(t,!0);if(!e.ok)throw Error("Failed to fetch files for repository");return e.payload},p[3]=!0,p[4]=g,p[5]=t,p[6]=h):h=p[6],p[7]!==y||p[8]!==m||p[9]!==h?(f={enabled:y,queryKey:m,queryFn:h,staleTime:3e5},p[7]=y,p[8]=m,p[9]=h,p[10]=f):f=p[10],(0,eX.I)(f));S.data?.directories,x[9]!==S.data?.directories?(l=S.data?.directories??[],x[9]=S.data?.directories,x[10]=l):l=x[10],x[11]!==l?(o=new Set(l),x[11]=l,x[12]=o):o=x[12];let w=o;x[13]!==S.data?(c=S.data?(S.data.paths??[]).concat(S.data.directories??[]):null,x[13]=S.data,x[14]=c):c=x[14];let I=function(e,t){let n,a,i,s=(0,r.c)(9),{findFileWorkerPath:l}=(0,E.Pk)();s[0]!==e||s[1]!==t||s[2]!==l?(n=["copilot-worker-filter",l,e,t],a=async n=>{let{signal:a}=n;return e?0===t.length?e:e0(e,t,l,a):[]},s[0]=e,s[1]=t,s[2]=l,s[3]=n,s[4]=a):(n=s[3],a=s[4]);let o=null!==e;return s[5]!==n||s[6]!==a||s[7]!==o?(i={queryKey:n,queryFn:a,enabled:o,staleTime:1/0,gcTime:1e4,networkMode:"always",retry:!1,placeholderData:e1},s[5]=n,s[6]=a,s[7]=o,s[8]=i):i=s[8],(0,eX.I)(i)}(c,e?.filter??"");e:{let t;if(!e){d=null;break e}if(C.isLoading||S.isLoading||I.isLoading){d="loading";break e}x[15]!==w||x[16]!==I.data||x[17]!==I.isPlaceholderData||x[18]!==e?(t=[...I.data?.slice(0,5).map(t=>({value:T.Q.stringify({repo:e.repository,type:"file",id:t}),key:t,render:e=>(0,a.jsx)(eV,{...e,path:t,type:w.has(t)?"folder":"file",stale:I.isPlaceholderData})}))??[]],x[15]=w,x[16]=I.data,x[17]=I.isPlaceholderData,x[18]=e,x[19]=t):t=x[19];let n=t;d=n.length>0?n:null}let R=d;return x[20]!==C.isPlaceholderData||x[21]!==R?(u={suggestions:R,stale:C.isPlaceholderData},x[20]=C.isPlaceholderData,x[21]=R,x[22]=u):u=x[22],u}(n?.category==="files"?n:null),p=function(e){let t,n=(0,r.c)(5),{ssoOrganizations:a}=(0,E.Pk)();e:{let r;if(!e){t=null;break e}if(n[0]!==e||n[1]!==a){let t;n[3]!==e?(t=t=>t.login.toLowerCase().includes(e.filter.toLowerCase()),n[3]=e,n[4]=t):t=n[4],r=a.filter(t).slice(0,10).map(e9),n[0]=e,n[1]=a,n[2]=r}else r=n[2];t=r}return t}(n?.category==="sso-orgs"?n:null);switch(n?.category){case"commands":{let e;return t[0]!==s?(e={suggestions:s,stale:!1},t[0]=s,t[1]=e):e=t[1],e}case void 0:{let e;return t[2]===Symbol.for("react.memo_cache_sentinel")?(e={suggestions:null,stale:!1},t[2]=e):e=t[2],e}case"categories":{let e;return t[3]!==l?(e={suggestions:l,stale:!1},t[3]=l,t[4]=e):e=t[4],e}case"repositories":return c;case"issues":return d;case"agents":{let e;return t[5]!==o?(e={suggestions:o,stale:!1},t[5]=o,t[6]=e):e=t[6],e}case"discussions":return h;case"pulls":return m;case"files":return f;case"sso-orgs":{let e;return t[7]!==p?(e={suggestions:p,stale:!1},t[7]=p,t[8]=e):e=t[8],e}}}(l);if(v[6]!==w||v[7]!==L?(o={query:L,onShowAgentsDialog:w},v[6]=w,v[7]=L,v[8]=o):o=v[8],!function(e){let t,n,a=(0,r.c)(12),{query:i,onShowAgentsDialog:s}=e,l=i?.category==="agents",{availableAgents:o,loading:c,disabled:d}=(0,eu.JE)(l);a[0]!==l||a[1]!==o?.length||a[2]!==d||a[3]!==c||a[4]!==s?(t=()=>{l&&!c&&(d?s("agents-not-supported"):o?.length||s("no-agents-available"))},a[0]=l,a[1]=o?.length,a[2]=d,a[3]=c,a[4]=s,a[5]=t):t=a[5],a[6]!==l||a[7]!==o||a[8]!==d||a[9]!==c||a[10]!==s?(n=[l,c,o,d,s],a[6]=l,a[7]=o,a[8]=d,a[9]=c,a[10]=s,a[11]=n):n=a[11],(0,b.useEffect)(t,n)}(o),!k||I){let e;return v[9]!==_?(e=(0,a.jsx)("div",{children:_}),v[9]=_,v[10]=e):e=v[10],e}v[11]!==N||v[12]!==C||v[13]!==S||v[14]!==L?(c=e=>{let{suggestion:t}=e,n="string"==typeof t?t:t.value;if((0,s.BI)("dotcom_chat.activate",{target:"AUTOCOMPLETE_ITEM_SELECTED",mode:N,suggestion:n}),"object"==typeof t&&L?.category==="commands")return void C?.(t.key);let a=null!==n&&L?.category!=="agents"?T.Q.parse(n):void 0;if(a&&S(a),"object"!=typeof t||null!==t.value)return;let r=/^open-link:(.+)$/.exec(t.key);if(r){P(null),window.open(r[1],"_blank");return}switch(L?.category){case"categories":let i;i=t.key,eO.some(e=>e.value===i)&&P(function(e){switch(e){case"repositories":return{category:"repositories",filter:""};case"agents":return{category:"agents",filter:""};case"repositories:discussions":return{category:"repositories",filter:"",nextCategory:"discussions"};case"repositories:issues":return{category:"repositories",filter:"",nextCategory:"issues"};case"repositories:pulls":return{category:"repositories",filter:"",nextCategory:"pulls"};case"repositories:files":return{category:"repositories",filter:"",nextCategory:"files"}}}(t.key));break;case"repositories":"sso-orgs"===t.key?P({category:"sso-orgs",filter:""}):L.nextCategory&&P({category:L.nextCategory,filter:"",repository:t.key})}},v[11]=N,v[12]=C,v[13]=S,v[14]=L,v[15]=c):c=v[15];let D=c;v[16]!==L?(d=e=>{let t=e.target;if("/"===e.trigger.triggerChar){(null===L&&1===t.selectionStart&&1===t.selectionEnd||L?.category==="commands")&&P({category:"commands",filter:e.query});return}P(n=>n?{...n,filter:e.query}:{category:"categories",filter:e.query,index:(t.selectionStart??0)-(e.query.length+e.trigger.triggerChar.length)})},v[16]=L,v[17]=d):d=v[17];let $=d;v[18]===Symbol.for("react.memo_cache_sentinel")?(m=()=>P(null),v[18]=m):m=v[18];let W=m;v[19]!==A||v[20]!==L?.category?(h=e=>{let{suggestion:t}=e;return!("object"==typeof t&&L?.category==="commands"&&void 0!==t.key&&B.W.askModeDropdown&&A.some(e=>e.name.toLowerCase()===t.key.toLowerCase()))&&!0},v[19]=A,v[20]=L?.category,v[21]=h):h=v[21];let U=h;return v[22]!==L?(f=L&&function(e){switch(e.category){case"categories":case"commands":return null;case"repositories":switch(e.nextCategory){case"discussions":case"issues":case"pulls":case"files":return`${ek[e.nextCategory]} \u{203A}`;default:return"Repositories \u203A"}case"agents":return ek[e.category];case"discussions":case"issues":case"pulls":case"files":return`${ek[e.category]} \u{203A} ${e.repository} \u{203A}`;case"sso-orgs":return"Single sign-on"}}(L)||void 0,v[22]=L,v[23]=f):f=v[23],v[24]!==_||v[25]!==D||v[26]!==$||v[27]!==U||v[28]!==F||v[29]!==f?(p=(0,a.jsx)(eN.a,{fullWidth:!0,suggestions:F,triggers:t,tabInsertsSuggestions:!1,onHideSuggestions:W,onShowSuggestions:$,onSelectSuggestion:D,shouldReplaceText:U,suggestionsPlacement:"below",title:f,asMenu:!0,children:_}),v[24]=_,v[25]=D,v[26]=$,v[27]=U,v[28]=F,v[29]=f,v[30]=p):p=v[30],v[31]!==M?(y=M&&(0,a.jsx)("span",{role:"status","aria-live":"polite",className:"sr-only",children:"Loading"}),v[31]=M,v[32]=y):y=v[32],v[33]!==p||v[34]!==y?(x=(0,a.jsxs)(a.Fragment,{children:[p,y]}),v[33]=p,v[34]=y,v[35]=x):x=v[35],x}function ta(){return"u">typeof document}tn.displayName="ChatInputAutocomplete";let tr="ChatInput-module__chatForm__YoMl2",ti="ChatInput-module__input__lPYf_",ts="ChatInput-module__container__KgJ7p",tl="ChatInput-module__containerDisabled___i1aL",to="ChatInput-module__toolbar__GgrRy",tc="ChatInput-module__containerSmall__f72WT",td="ChatInput-module__inputContainer__xJ5m6",tu="ChatInput-module__inputPreview__DrDP3",tm="ChatInput-module__clicked__lXrMT",th="ChatInput-module__submitButtonInForm__EOE8m",tf="ChatInput-module__submitButtonOutsideForm__gaqAH",tp="ChatInput-module__attachments___l4k5",tg="ChatInput-module__attachmentButton__mHdsj",ty="ChatInput-module__attachmentButtonText__h7hlu",tx="ChatInput-module__attachmentIconButton__FyRnH",tv="ChatInput-module__inputContainerNewConversation__wkuTL",t_="ChatInput-module__inputDisabled__veTBi",tb="ChatInput-module__toolbarNoModes__VGWWh",tC="ChatInput-module__extra__SMO8K",tS="ChatInput-module__CommandIconButton__Avrym",tw="ChatInput-module__mode__NL1lh",tI="ChatInput-module__modeSelectButton__cyrB_",tR="ChatInput-module__actions__sh8XX",tE="ChatInput-module__actionsMultiple__T49V8",tj="ChatInput-module__toolbarButtons__Mqs1z";var tT=n(201),tA=n(5522);function tN(e){let t,n,i,s=(0,r.c)(8),{ref:o,text:c,availableCommandKeys:d}=e,u=(0,b.useDeferredValue)(c),m=B.W.chatInputPerformanceOptimizations?u:c;s[0]!==m?(t=(0,tT._)(m),s[0]=m,s[1]=t):t=s[1];let{availableAgents:h}=(0,eu.JE)(t),{currentReferences:f}=(0,E.Pk)(),p=(0,j.b)(),g=(0,I.l)().use(A.U,{references:f,agents:void 0===h?[]:h,commands:d}).parse(m),y=(0,tT.O)(g),x=(0,b.useRef)(y);(0,b.useEffect)(function(){for(let e of x.current)if(!y.has(e)){let t=f.find(t=>(0,N.Vb)(t)===e);t&&p.removeReference(t)}x.current=y}),s[2]===Symbol.for("react.memo_cache_sentinel")?(n=(0,l.G)("copilot-chat-input-textarea-preview"),s[2]=n):n=s[2];let v=g.children.map(tk);return s[3]!==o||s[4]!==n||s[5]!==tu||s[6]!==v?(i=(0,a.jsx)("div",{id:"copilot-chat-textarea-preview",...n,"aria-hidden":!0,className:tu,ref:o,role:"presentation",children:v}),s[3]=o,s[4]=n,s[5]=tu,s[6]=v,s[7]=i):i=s[7],i}function tk(e,t){switch(e.type){case"text":return e.value;case"command":return(0,a.jsx)("span",{className:tA.A.command,...(0,l.G)("input-preview-command"),children:e.value},t);case"reference-mention":return void 0!==e.data.mentionedReferenceId?(0,a.jsx)("span",{className:tA.A.mention,...(0,l.G)("input-preview-ref"),children:e.value},t):e.value;case"agent-mention":return(0,a.jsx)("span",{className:tA.A.mention,children:e.value},t)}}tN.displayName="ChatInputPreview";var tO=n(29941),tL=n(45800),tP=n(65494),tF=n(14486);function tM(e){return e.scrollWidth>e.clientWidth}var tD=n(68396),t$=n(37893),tW=n(60856);let tU=(0,b.memo)(e=>{let t,n,i,s,o,c,d,m,h,y,C,S,w,I,R,T,A,k=(0,r.c)(55),{className:O,isLoading:L,returnFocusRef:P,tokenSize:F,onSelectReference:M,getReferenceVersion:D,showConvertToFileText:$,onConvertToFile:W,onConvertToFileDismiss:U,hideAttachmentsMenu:V,onRemoveReference:z,referenceTypeFilter:q}=e,H=void 0===F?"medium":F,{currentReferences:G,implicitReferences:K,selectedThreadID:Q}=(0,E.bP)("currentReferences","implicitReferences","selectedThreadID"),J=(0,j.b)(),X=(0,b.useRef)(null),Y=(0,tF.g)(X),[Z,ee]=(0,b.useState)(!1);if(k[0]!==G||k[1]!==q||k[2]!==Q){if(t=(0,N.rT)(G),B.W.copilotChatRepositoryPicker&&!Q&&(t=t.filter(tz)),q){let e;k[4]!==q?(e=e=>q.includes(e.type),k[4]=q,k[5]=e):e=k[5],t=t.filter(e)}k[0]=G,k[1]=q,k[2]=Q,k[3]=t}else t=k[3];let et=t,{setSelectedCopilotSpaceId:en}=(0,tP.O)(),ea=(0,b.useRef)(null);k[6]===Symbol.for("react.memo_cache_sentinel")?(n={containerRef:ea,focusableElementFilter:tq,bindKeys:tO.z0.ArrowHorizontal|tO.z0.HomeAndEnd,focusInStrategy:"previous",focusOutBehavior:"stop"},k[6]=n):n=k[6],k[7]!==et?(i=[et],k[7]=et,k[8]=i):i=k[8],(0,tL.G)(n,i),k[9]===Symbol.for("react.memo_cache_sentinel")?(s=[],k[9]=s):s=k[9];let er=(0,b.useRef)(s),ei=(e,t)=>{let n=er.current[t+1]??er.current[t-1]??P.current;n?.focus(),z?.(e),(0,N.yA)(e)&&en(void 0),J.removeReference(e)};k[10]!==J||k[11]!==P||k[12]!==et||k[13]!==en?(o=()=>{setTimeout(()=>P.current?.focus()),et.filter(N.yA).length>0&&en(void 0),J.clearCurrentReferences()},k[10]=J,k[11]=P,k[12]=et,k[13]=en,k[14]=o):o=k[14];let es=o,el=(0,b.useRef)(et);k[15]!==et?(c=()=>{if(el.current.length!el.current.find(t=>(0,N.x_)(t,e))),t=e?et.indexOf(e):-1;er?.current?.[t]?.scrollIntoView({behavior:"smooth",block:"nearest",inline:"end"})}el.current=et},d=[et],k[15]=et,k[16]=c,k[17]=d):(c=k[16],d=k[17]),(0,b.useLayoutEffect)(c,d),k[18]!==U?(m=()=>{U?.()},k[18]=U,k[19]=m):m=k[19];let eo=m;k[20]===Symbol.for("react.memo_cache_sentinel")?(h=()=>{ee(tH)},k[20]=h):h=k[20];let ec=h,ed=function(e,t,n,a){let i,s,l,o=(0,r.c)(8),[c,d]=(0,b.useState)(!1);o[0]!==a||o[1]!==t?(i=()=>{if(!t.current)return void d(!1);let e=[];for(let n of t.current){if(!n)continue;let t=n.querySelector(a);t&&e.push(t)}d(e.some(tM))},o[0]=a,o[1]=t,o[2]=i):i=o[2];let u=(0,b.useEffectEvent)(i);return o[3]!==u||o[4]!==n?(s=()=>{let e,t=n.current;if(!t)return;let a=()=>{void 0!==e&&cancelAnimationFrame(e),e=requestAnimationFrame(u)},r=new ResizeObserver(a);return r.observe(t),a(),()=>{void 0!==e&&cancelAnimationFrame(e),r.disconnect()}},o[3]=u,o[4]=n,o[5]=s):s=o[5],o[6]!==n?(l=[n],o[6]=n,o[7]=l):l=o[7],(0,b.useEffect)(s,l),c&&0===e.length&&d(!1),c&&e.length>0}(et,er,ea,`.${tW.A.name}`),eu=(0,b.useId)();k[21]!==eo||k[22]!==$?(y=e=>{("Delete"===e.key||"Backspace"===e.key)&&(e.preventDefault(),e.stopPropagation(),$&&eo())},k[21]=eo,k[22]=$,k[23]=y):y=k[23];let em=y;if(0===et.length&&!L&&!$)return null;k[24]!==O?(C=(0,_.$)(O,"ChatInputReferences-module__container__Z3ZRq"),k[24]=O,k[25]=C):C=k[25];let eh=Y&&"ChatInputReferences-module__scrolledToEnd__EvOmv",ef=L&&"ChatInputReferences-module__loading__n73Kr";k[26]!==eh||k[27]!==ef?(S=(0,_.$)("ChatInputReferences-module__attachmentsList__KwM2e",eh,ef),k[26]=eh,k[27]=ef,k[28]=S):S=k[28],k[29]!==eu||k[30]!==eo||k[31]!==W||k[32]!==em||k[33]!==$||k[34]!==H?(w=$&&(0,a.jsxs)("div",{className:"ChatInputReferences-module__convertToFileContainer__zjtuG",children:[(0,a.jsx)(x.Q,{onClick:W,leadingVisual:u.FileIcon,className:"ChatInputReferences-module__convertToFileButton__Myfpe","aria-describedby":eu,onKeyDown:em,children:"Convert to file"}),(0,a.jsx)(t$.lh,{size:H,onRemove:eo,descriptionId:eu})]}),k[29]=eu,k[30]=eo,k[31]=W,k[32]=em,k[33]=$,k[34]=H,k[35]=w):w=k[35];let ep=et.map((e,t)=>{if(e.TokenComponent){let n=e.TokenComponent;return(0,a.jsx)(n,{reference:e,onRemove:()=>ei(e,t),size:H,fullWidth:Z,tokenRef:e=>{er.current[t]=e}},(0,N.Vb)(e))}return"repository"===e.type?(0,a.jsx)(tB,{reference:e,ref:e=>{er.current[t]=e},"data-index":t,size:H,fullWidth:Z,onRemove:()=>ei(e,t),onClick:M,getReferenceVersion:D},(0,N.Vb)(e)):(0,a.jsx)(t$.BR,{reference:e,ref:e=>{er.current[t]=e},"data-index":t,size:H,fullWidth:Z,onRemove:()=>ei(e,t),onClick:M,getReferenceVersion:D,isImplicitReference:K.has(e)},(0,N.Vb)(e))});return k[36]!==L?(I=L&&(0,a.jsxs)("div",{className:"ChatInputReferences-module__functionLoading__QRYt8",...(0,l.G)("loading-indicator"),children:[(0,a.jsx)(v.A,{size:"small"}),"Retrieving\u2026"]}),k[36]=L,k[37]=I):I=k[37],k[38]!==S||k[39]!==w||k[40]!==ep||k[41]!==I?(R=(0,a.jsxs)("div",{className:S,ref:X,children:[w,ep,I]}),k[38]=S,k[39]=w,k[40]=ep,k[41]=I,k[42]=R):R=k[42],k[43]!==ec||k[44]!==ed||k[45]!==V||k[46]!==es||k[47]!==et.length||k[48]!==Z||k[49]!==H?(T=et.length>0&&!V&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("div",{className:"ChatInputReferences-module__divider__G7_Fm"}),(0,a.jsxs)(f.W,{children:[(0,a.jsx)(f.W.Anchor,{children:(0,a.jsx)(p.K,{icon:u.KebabHorizontalIcon,"aria-label":"Attachments options",variant:"invisible",tooltipDirection:"n",className:"ChatInputReferences-module__menuButton___ItUb",size:H})}),(0,a.jsx)(f.W.Overlay,{width:"small",children:(0,a.jsxs)(g.l,{children:[ed&&(0,a.jsxs)(g.l.Item,{onSelect:ec,children:[(0,a.jsx)(g.l.LeadingVisual,{children:Z?(0,a.jsx)(u.EyeClosedIcon,{}):(0,a.jsx)(u.EyeIcon,{})}),Z?"Hide full attachment names":"Show full attachment names"]}),(0,a.jsxs)(g.l.Item,{onSelect:es,children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(u.TrashIcon,{})}),"Remove attachments"]})]})})]})]}),k[43]=ec,k[44]=ed,k[45]=V,k[46]=es,k[47]=et.length,k[48]=Z,k[49]=H,k[50]=T):T=k[50],k[51]!==C||k[52]!==R||k[53]!==T?(A=(0,a.jsxs)("div",{role:"toolbar","aria-label":"Attachments",className:C,ref:ea,children:[R,T]}),k[51]=C,k[52]=R,k[53]=T,k[54]=A):A=k[54],A});function tB(e){let t,n,i,s,l,o=(0,r.c)(11);o[0]!==e?({ref:n,...t}=e,o[0]=e,o[1]=t,o[2]=n):(t=o[1],n=o[2]);let c=t.reference,d=(0,E.pn)(tV),u=`${c.ownerLogin}/${c.name}`,[m,h]=(0,tD.vn)(u),f=(0,b.useRef)(!1),p=m.code===tD.W5.Unindexed||m.docs===tD.W5.Unindexed;return o[3]!==d||o[4]!==p||o[5]!==h?(i=function(){!f.current&&p&&d&&(f.current=!0,h())},s=[d,p,h],o[3]=d,o[4]=p,o[5]=h,o[6]=i,o[7]=s):(i=o[6],s=o[7]),(0,b.useEffect)(i,s),o[8]!==t||o[9]!==n?(l=(0,a.jsx)(t$.BR,{...t,ref:n}),o[8]=t,o[9]=n,o[10]=l):l=o[10],l}function tV(e){return e.model&&!e.model.hasLimitedCapabilities}function tz(e){return"repository"!==e.type}function tq(e){return!e.hasAttribute("aria-hidden")}function tH(e){return!e}tU.displayName="ChatInputReferences",tU.displayName="ChatInputReferences",tB.displayName="RepoReferenceToken";var tG=n(35931),tK=n(2806),tQ=n(65554),tJ=n(18312),tX=n(89919);function tY(e){let t,n,i,l,o,c,d,m,h,f,p,g,y,x,v,_=(0,r.c)(49),{showIconOnly:S,tooltipDirection:w}=e,I=void 0!==S&&S,R=(0,j.b)(),T=(0,C.d)(),A=(0,tJ.useRelayEnvironment)(),k=(0,b.useRef)(void 0),{currentReferences:O,currentRepository:L,currentUserLogin:P,mode:F}=(0,E.bP)("currentReferences","currentRepository","currentUserLogin","mode"),M=B.W.deprecateRelay;_[0]===Symbol.for("react.memo_cache_sentinel")?(t=[],_[0]=t):t=_[0];let[D,$]=(0,b.useState)(t);_[1]===Symbol.for("react.memo_cache_sentinel")?(n=[],_[1]=n):n=_[1];let[W,U]=(0,b.useState)(n),V=(0,b.useRef)("");_[2]===Symbol.for("react.memo_cache_sentinel")?(i=[],_[2]=i):i=_[2];let[z,q]=(0,b.useState)(i);_[3]!==O?(l=O.filter(t7),_[3]=O,_[4]=l):l=_[4];let H=l;if(_[5]!==H){for(let e of(o=[],H))o.push({id:e.id,name:`${e.ownerLogin}/${e.name}`,enabled:!0,private:"public"!==e.visibility});_[5]=H,_[6]=o}else o=_[6];let G=o;_[7]!==W||_[8]!==G?(c=e=>{let t=V.current;V.current=e,e.trim()&&!t.trim()&&(U([]),q(G)),e.trim()&&t.trim()&&e.trim()!==t.trim()&&q(G),!e.trim()&&t.trim()&&($((0,tX.p)([...G,...W],t8)),U([]))},_[7]=W,_[8]=G,_[9]=c):c=_[9];let K=c;_[10]!==L||_[11]!==R.service||_[12]!==D||_[13]!==W||_[14]!==z||_[15]!==K?(d=async e=>{let t;if(K(e),k.current||(k.current=nt(await R.service.fetchTopRepositories(10,!0,L?.id),L)),e.trim())t=nt(await R.service.fetchRepositoriesSearch(e.trim(),10,!0,L?.id),L);else{let e=(0,tX.p)([...D,...W],t4);t=t9(k.current??[],e)}if(e.trim()){let n=e.toLowerCase(),a=z.filter(e=>e.name.toLowerCase().includes(n));a.length>0&&(t=ne(t,a))}return t.slice(0,10)},_[10]=L,_[11]=R.service,_[12]=D,_[13]=W,_[14]=z,_[15]=K,_[16]=d):d=_[16];let Q=d;_[17]!==L||_[18]!==P||_[19]!==D||_[20]!==W||_[21]!==A||_[22]!==z||_[23]!==K?(m=async e=>{let t;K(e),k.current||(k.current=function(e,t){let n=e.filter(e=>null!=e.databaseId).map(e=>({id:e.databaseId,name:e.nameWithOwner,enabled:!0,private:e.isPrivate}));if(t){let e=`${t.ownerLogin}/${t.name}`;n.some(t=>t.name===e)||n.unshift({id:t.id,name:e,enabled:!0,private:void 0})}return n}(await (0,tG.St)(A,{first:10}),L));let n=e.includes("/")?e.split("/")[0]:void 0;if(e.trim())if(n){let{repositories:a}=await (0,tG.vO)(A,{query:(0,et.rl)(n,e,!0)});t=function(e,t){let n=t6(e);if(t){let e=new Set(t.map(e=>e.id));return[...n.filter(t=>e.has(t.id)),...n.filter(t=>!e.has(t.id))]}return n}(a,k.current)}else{let n=e.toLowerCase(),i=k.current.filter(e=>e.name.toLowerCase().includes(n));if(i.length>=10)t=i;else{var a,r;let n,s=[],{query:l,containsUserLogin:o}=(0,e3.p)(e,P);o&&P&&s.push((async()=>{let{repositories:e}=await (0,tG.vO)(A,{query:(0,et.rl)(P,l,!0)});return e})()),s.push((async()=>{let{repositories:t}=await (0,tG.vO)(A,{query:(0,tK.J)(e)});return t})());let c=await Promise.all(s);a=i,r=(0,tX.p)(c.flat(),t5),n=new Set(a.map(e=>e.id)),t=[...a,...t6(r).filter(e=>!n.has(e.id))]}}else{let e=(0,tX.p)([...D,...W],t3);t=t9(k.current??[],e)}if(e.trim()){let n=e.toLowerCase(),a=z.filter(e=>e.name.toLowerCase().includes(n));a.length>0&&(t=ne(t,a))}return t.slice(0,10)},_[17]=L,_[18]=P,_[19]=D,_[20]=W,_[21]=A,_[22]=z,_[23]=K,_[24]=m):m=_[24];let J=m,X=M?Q:J;_[25]!==R||_[26]!==F||_[27]!==H?(h=async e=>{if(!e){let e=[];for(let t of H)e.push({id:t.id,name:`${t.ownerLogin}/${t.name}`,enabled:!0,private:"public"!==t.visibility}),R.removeReference(t),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"removed",component:"REPOSITORY_PICKER",mode:F});U(t=>(0,tX.p)([...t,...e],t2));return}let t=new Set(e.map(t1)),n=[];for(let e of H)t.has(e.id)||(n.push({id:e.id,name:`${e.ownerLogin}/${e.name}`,enabled:!0,private:"public"!==e.visibility}),R.removeReference(e),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"removed",component:"REPOSITORY_PICKER",mode:F}));n.length>0&&U(e=>(0,tX.p)([...e,...n],t0));let a=e.filter(e=>!H.some(t=>t.id===e.id)).map(tZ);for(let t of(a.length>0&&U(e=>e.filter(e=>!a.includes(e.id))),e))if(!H.some(e=>e.id===t.id)&&null!=t.id){let e=await R.service.fetchRepo(t.id);if(e.ok){let t=(0,N.qS)(e.payload);R.addReference(t,"repoMenu"),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"selected",component:"REPOSITORY_PICKER",mode:F})}}},_[25]=R,_[26]=F,_[27]=H,_[28]=h):h=_[28];let Y=h;e:{let e=G.length;if(0===e){f="All repositories";break e}if(1===e){f=G[0]?.name||"Select repositories";break e}f=`${e} repositories`}let Z=f;t:{let e=G.length;if(0===e){p=u.RepoIcon;break t}if(1===e){p=G?.[0]?.private?u.RepoLockedIcon:u.RepoIcon;break t}p=u.RepoCloneIcon}let ee=p;_[29]!==F||_[30]!==G?(g=()=>{V.current="",$(G),q(G),U([]),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"open",component:"REPOSITORY_PICKER",mode:F})},_[29]=F,_[30]=G,_[31]=g):g=_[31];let en=g;_[32]!==G?(y=()=>{U([]),$(G)},_[32]=G,_[33]=y):y=_[33];let ea=y,er="assistive"===F?eE.E5:void 0,ei="assistive"===F?"relative":void 0;return _[34]!==ee?(x={leadingVisual:ee,"aria-label":"Select repositories to attach to conversation"},_[34]=ee,_[35]=x):x=_[35],_[36]!==Z||_[37]!==ea||_[38]!==en||_[39]!==Y||_[40]!==T||_[41]!==X||_[42]!==G||_[43]!==I||_[44]!==er||_[45]!==ei||_[46]!==x||_[47]!==w?(v=(0,a.jsx)(tQ.P,{repositoryLoader:X,selectionVariant:"multiple",selectAllOption:!1,onSelect:Y,currentSelection:G,width:"medium",responsiveStyle:"icon-on-mobile",iconOnly:I,liveSelection:!0,buttonText:Z,anchorSide:T,tooltipDirection:w,portalContainerName:er,overlayPosition:ei,additionalButtonProps:x,onOpen:en,onClose:ea}),_[36]=Z,_[37]=ea,_[38]=en,_[39]=Y,_[40]=T,_[41]=X,_[42]=G,_[43]=I,_[44]=er,_[45]=ei,_[46]=x,_[47]=w,_[48]=v):v=_[48],v}function tZ(e){return e.id}function t0(e){return e.id}function t1(e){return e.id}function t2(e){return e.id}function t5(e){return e.id}function t3(e){return e.id}function t4(e){return e.id}function t8(e){return e.id}function t7(e){return"repository"===e.type}function t6(e){return e.filter(e=>null!=e.databaseId).map(e=>({id:e.databaseId,name:e.nameWithOwner,enabled:!0,private:e.isPrivate}))}function t9(e,t){if(0===t.length)return e;let n=new Set(e.map(e=>e.id)),a=new Set(t.map(e=>e.id)),r=t.filter(e=>!n.has(e.id)),i=e.filter(e=>a.has(e.id)),s=e.filter(e=>!a.has(e.id)),l=Math.max(0,10-(r.length+i.length));return[...r,...i,...s.slice(0,l)]}function ne(e,t){if(0===t.length)return e;let n=new Set(t.map(e=>e.id));return[...t,...e.filter(e=>!n.has(e.id))]}function nt(e,t){let n=e.filter(e=>null!=e.databaseId).map(e=>({id:e.databaseId,name:e.nwo,enabled:!0,private:void 0}));if(t){let e=`${t.ownerLogin}/${t.name}`;n.some(t=>t.name===e)||n.unshift({id:t.id,name:e,enabled:!0,private:void 0})}return n}tY.displayName="ChatReposPicker";var nn=n(56075),na=n(11299),nr=n(27585);let ni=["github:cancel","copilot-chat:send-message","copilot-chat:edit-last-message"],ns="Start task",nl=e=>{let t,n,u,h,f,p,g,y,x,v,z,ea,er,ei,es,el,eo,ec,ed,eu,em,eh,ef,ep,eg,ey,ex,ev,e_,eb,eC,eS,ew,eI,eR,eE,ej,eA,eN,ek,eO,eL,eP,eF,eM,eD,e$,eW,eU,eB,eV,ez,eq,eH,eG,eK,eQ,eJ,eX,eY,eZ=(0,r.c)(300),e0=(0,E.bP)("defaultRecipient","isWaitingOnAttachment","attachmentProcessingType","isWaitingOnCopilot","messages","mode","model","selectedThreadID","skillOptions","slashCommandLoading"),{model:e1}=e0,e2=(0,en.tD)(),e5=(0,j.b)(),e3=e5.maxMessagesReached(),[e4,e8]=(0,b.useState)(null),e7="loading"===e0.slashCommandLoading.state,{safeSetTimeout:e6}=(0,m.A)(),{onSelectReference:e9,containerRef:te,shouldClearTextOnCommandSubmit:tt,shouldClearTextOnSubmit:ta,slashCommandsEnabled:to,shouldSubmitWithModifier:tu,extraToolbar:tm}=e,th=void 0===tt||tt,tg=void 0===ta||ta,ty=void 0!==to&&to,tx=void 0!==tu&&tu,tb=(0,b.useRef)(null),tC=(0,b.useRef)(""),tS=(0,b.useRef)(!1),tw=(0,c.Zp)();eZ[0]!==ty?(t={enabled:ty},eZ[0]=ty,eZ[1]=t):t=eZ[1];let{availableCommands:tI,availableCommandKeys:tR}=(0,M.j)(t);eZ[2]!==tI?(n=tI.map(nm).filter(nh),eZ[2]=tI,eZ[3]=n):n=eZ[3];let tE=n,tj=B.W.askModeDropdown&&tE.length>0?tE:e.modes;eZ[4]!==tj||eZ[5]!==e.activeModeName?(u=()=>{if(e.activeModeName){let t=tj.find(t=>t.name===e.activeModeName);if(t)return t}let t=V.Jt.getActiveMode();if(t){let e=tj.find(e=>e.name===t);if(e)return e}return tj[0]},eZ[4]=tj,eZ[5]=e.activeModeName,eZ[6]=u):u=eZ[6];let[tT,tA]=(0,b.useState)(u);eZ[7]!==e?(h=(t,n)=>{e.onClickMode?.(t.name),e.activeModeName||tA(t),V.Jt.setActiveMode(t.name),(0,s.BI)("dotcom_chat.activate",{target:"MODE_SWITCH",mode:t.name,autoComplete:n})},eZ[7]=e,eZ[8]=h):h=eZ[8];let tk=h,{activeCopilotSpaceId:tO}=(0,i.C)();eZ[9]!==tT||eZ[10]!==tj||eZ[11]!==e.activeModeName?(f=B.W.askModeDropdown?tT:tj.find(t=>t.name===e.activeModeName)||tj[0],eZ[9]=tT,eZ[10]=tj,eZ[11]=e.activeModeName,eZ[12]=f):f=eZ[12];let tL=f;eZ[13]!==tj||eZ[14]!==tk?(p=e=>{if(B.W.askModeDropdown){let t=tj.find(t=>t?.name===e);t&&tk(t)}},eZ[13]=tj,eZ[14]=tk,eZ[15]=p):p=eZ[15];let tP=p,tF=(0,b.useRef)(void 0);eZ[16]!==e5||eZ[17]!==e.initialReference?(g=()=>{!e.initialReference||(0,N.x_)(tF.current,e.initialReference)||(e5.addReference(e.initialReference,"page-file-reference"),tF.current=e.initialReference)},y=[e.initialReference,e5],eZ[16]=e5,eZ[17]=e.initialReference,eZ[18]=g,eZ[19]=y):(g=eZ[18],y=eZ[19]),(0,b.useEffect)(g,y),eZ[20]!==tT||eZ[21]!==tj||eZ[22]!==e.activeModeName?(x=()=>{if(e.activeModeName){let t=tj.find(t=>t.name===e.activeModeName);t&&t!==tT&&tA(t)}},v=[e.activeModeName,tj,tT],eZ[20]=tT,eZ[21]=tj,eZ[22]=e.activeModeName,eZ[23]=x,eZ[24]=v):(x=eZ[23],v=eZ[24]),(0,b.useEffect)(x,v),eZ[25]!==tT||eZ[26]!==tj?(z=()=>{let e=tj.find(e=>e.name===tT.name);e&&e!==tT&&tA(e)},ea=[tj,tT],eZ[25]=tT,eZ[26]=tj,eZ[27]=z,eZ[28]=ea):(z=eZ[27],ea=eZ[28]),(0,b.useEffect)(z,ea),eZ[29]!==e4||eZ[30]!==e0.mode?(er=e=>{tb.current=null,tC.current="",tS.current=!1,e4&&(e8(null),void 0!==e&&e&&(0,s.BI)("dotcom_chat.activate",{target:"CONVERT_TO_FILE_DISMISS",mode:e0.mode}))},eZ[29]=e4,eZ[30]=e0.mode,eZ[31]=er):er=eZ[31];let tM=er,tD=e0.isWaitingOnCopilot||e0.isWaitingOnAttachment||e7,t$=tL?.name;eZ[32]!==tI||eZ[33]!==tM||eZ[34]!==e.initialText||eZ[35]!==e.isInPortal||eZ[36]!==e.maxTextareaHeight||eZ[37]!==e.onChatCommandChange||eZ[38]!==e.onSubmit||eZ[39]!==e.source||eZ[40]!==e.storageKeySuffix||eZ[41]!==e.textAreaRef||eZ[42]!==th||eZ[43]!==tg||eZ[44]!==tD||eZ[45]!==t$?(ei={isLoading:tD,onSubmit:e.onSubmit,textAreaRef:e.textAreaRef,clearPastedFile:tM,onChatCommandChange:e.onChatCommandChange,isInPortal:e.isInPortal,shouldClearTextOnCommandSubmit:th,shouldClearTextOnSubmit:tg,availableCommands:tI,activeModeName:t$,storageKeySuffix:e.storageKeySuffix,initialText:e.initialText,maxTextareaHeight:e.maxTextareaHeight,source:e.source},eZ[32]=tI,eZ[33]=tM,eZ[34]=e.initialText,eZ[35]=e.isInPortal,eZ[36]=e.maxTextareaHeight,eZ[37]=e.onChatCommandChange,eZ[38]=e.onSubmit,eZ[39]=e.source,eZ[40]=e.storageKeySuffix,eZ[41]=e.textAreaRef,eZ[42]=th,eZ[43]=tg,eZ[44]=tD,eZ[45]=t$,eZ[46]=ei):ei=eZ[46];let{typingHasStarted:tW,textAreaRef:tB,textareaPreviewRef:tV,textAreaPreviewContainerRef:tz,text:tq,setText:tH,isAgentTaskSubmitInProgress:tG,handleSubmit:tK,handleSubmitToNewThread:tQ,handleScroll:tJ,handleChange:tX,handleStop:tY,handleFocus:tZ,command:t0,setLastUsedRepo:t1,selectedRepo:t2,setSelectedRepo:t5,selectedBranch:t3,setSelectedBranch:t4,selectedAgent:t8,setSelectedAgent:t7,initialRepoNWO:t6}=function(e){let t=(0,E.Pk)(),n=(0,j.b)(),a=(0,c.Zp)(),{selectedThreadID:r,mode:i,autoSubmit:l,model:o}=t,{activeModeName:d,clearPastedFile:u,isLoading:h,onSubmit:f,onChatCommandChange:p,isInPortal:g,shouldClearTextOnCommandSubmit:y=!0,shouldClearTextOnSubmit:x=!0,availableCommands:v=[],storageKeySuffix:_,source:C="immersive"}=e,S=_??r,w=V.Jt.getSavedMessage(S,C),I=V.Jt.getSavedUserMessageOnError(S),{pathname:R}=(0,c.zy)(),[T,A]=(0,c.ok)(),[N,k]=(0,b.useState)(()=>e.initialText?e.initialText:J(t.mode,R,T)??I??w??""),[O,L]=(0,b.useState)(!1),[P,F]=(0,b.useState)(null),[M,z]=(0,b.useState)(!1),X=(0,b.useRef)(null),Y=e.textAreaRef||X,Z=(0,b.useRef)(null),ee=(0,b.useRef)(null),et=(0,b.useRef)(0),en=(0,b.useRef)(null),ea=(0,b.useRef)(()=>{}),er=(0,b.useRef)(!1),ei=(0,H.GF)(t.availableModels),es=(0,b.useRef)(S),{safeSetTimeout:el}=(0,m.A)(),eo=(0,b.useRef)(0),[ec,ed]=(0,K.T)(),[eu,em]=(0,b.useState)(void 0),eh=t.currentReferences.find(e=>"repository"===e.type),ef=eh?`${eh.ownerLogin}/${eh.name}`:`${ec?.ownerLogin}/${ec?.name}`,ep=(0,b.useCallback)(e=>{em(e)},[]),[eg,ey]=(0,b.useState)(void 0),[ex,ev]=(0,D.s)();(0,b.useEffect)(()=>{B.W.stableConversationView?S===es.current?V.Jt.setSavedMessage(S,C,N):(k(V.Jt.getSavedMessage(S,C)||""),es.current=S):V.Jt.setSavedMessage(S,C,N)},[S,C,N]),(0,b.useLayoutEffect)(()=>{let t=0;!function n(){if(!Y.current||!ee.current||!Z.current)return;if(t++,(g||"assistive"===i)&&0===Y.current.scrollHeight&&t<10)return void el(n,1);if(0===N.length&&56===eo.current)return;Y.current.style.height="0";let a=Math.max(Y.current.scrollHeight,56),r=Math.min(a,e.maxTextareaHeight??300);Z.current.style.height=`${a}px`,Y.current.style.height=`${a}px`,ee.current.style.height=`${r}px`,ee.current.style.maxHeight=e.maxTextareaHeight?`${e.maxTextareaHeight}px`:"",eo.current=r}()},[i,el,N,Y,Z,g,d,e.maxTextareaHeight]);let e_=(0,b.useCallback)(()=>{Y?.current&&Z?.current&&ee?.current&&(B.W.chatInputPerformanceOptimizations?requestAnimationFrame(()=>{Y?.current&&Z?.current&&(Z.current.scrollTop=Y.current.scrollTop,Z.current.scrollLeft=Y.current.scrollLeft)}):(Z.current.scrollTop=Y.current.scrollTop,Z.current.scrollLeft=Y.current.scrollLeft))},[Y]),eb=(0,b.useMemo)(()=>B.W.chatInputPerformanceOptimizations?(0,$.A)(e_,16,{leading:!0,trailing:!0}):e_,[e_]);(0,b.useEffect)(()=>()=>{B.W.chatInputPerformanceOptimizations&&"cancel"in eb&&eb.cancel()},[eb]);let eC=(0,b.useMemo)(()=>t.currentReferences.filter(e=>!("isClientOnly"in e)||!e.isClientOnly),[t.currentReferences]),eS=(0,b.useCallback)(async e=>{z(!1),V.Jt.clearSavedUserMessage(S,C),V.Jt.clearSavedUserMessageOnError(S),t.defaultRecipient&&!N.includes(`@${t.defaultRecipient}`)&&n.clearDefaultRecipient(),e?.preventDefault();let r=Q(d,P);if(r&&eu?.id!=null){let e=await n.service.fetchRepo(eu.id);e.ok&&e.payload&&ed(e.payload)}if(await q(N,t,n,a,v,d,r?{selectedRepo:eu,selectedBranch:eg,selectedAgent:ex}:{})){if("/new"===N.trim()&&V.Jt.setSavedMessageFast(S,C,null),y)k("");else{let e=N.substring(N.indexOf(" ")+1).trim();L(!0),k(`Creating ${e}...`)}return}if(!h){let e=N;if(!e){let[t,a]=n.tryInferMessage(eC);if(!t||!a)return;e=a}d===U.II.CreateIssue&&(e=`/create-issue ${e}`);try{x?k(""):(L(!0),k(`Creating ${N}...`));let t=[];if(r&&eu){let n={type:"task-request",description:e,repoOwner:eu.owner,repoName:eu.nameOnly,ref:eg||eu.defaultBranch,customAgent:ex.subAgentSlug,agentId:ex.topLevelAgentId};t.push(n)}await f?.(e,t.length>0?t:void 0),x||V.Jt.clearSavedUserMessage(S,C)}catch(t){if(L(!1),t instanceof G.q)return void k(e);throw t}}},[S,C,t,N,d,P,eu,n,a,v,eg,ex,h,ed,y,eC,x,f]),ew=(0,b.useCallback)(()=>n.sendMessageToNewThread(S,N,eC,t.context,ei,C),[n,S,N,eC,t.context,ei,C]);(0,b.useEffect)(()=>{(async()=>{let e=J(i,R,T),t=new URLSearchParams(T),n=t.get("model"),a=!n||n===o.id;e&&a&&!er.current&&(t.delete("prompt"),t.delete("model"),(0,s.BI)("dotcom_chat.activate",{target:"COPILOT_PROMPT_LOADED_FROM_URL",mode:"immersive"}),A(t,{replace:!0}),l&&(er.current=!0,await Promise.resolve(),await eS()))})()},[R,T,A,i,l,o,eS]);let eI=(0,b.useCallback)(e=>{z(!0),Y?.current&&(k(e.target.value),u?.(),et.current=0,eb())},[eb,u,Y]),eR=(0,b.useCallback)(async()=>{await n.stopStreaming(),null!=S&&(n.startThreadReload(),await new Promise(e=>{en.current=setTimeout(()=>e(S),6e3)}),ea.current=await n.fetchMessages(S,!0,!0))},[n,S]);return(0,b.useEffect)(()=>{ea.current&&(ea.current(),ea.current=()=>{})},[t.messages]),(0,b.useEffect)(()=>()=>{en.current&&(clearTimeout(en.current),en.current=null),n.cancelThreadReload(),ea.current=()=>{}},[n]),(0,b.useEffect)(()=>{if(0===v.length&&!B.W.taskWithinChatThread)return;let e=(0,W.V)(N,v.map(e=>e.key));P!==e&&(F(e),p?.(e))},[N,P,p,v]),{typingHasStarted:M,textAreaRef:Y,textareaPreviewRef:Z,textAreaPreviewContainerRef:ee,text:N,setText:k,isAgentTaskSubmitInProgress:O,command:P,setCommand:F,handleSubmit:eS,handleSubmitToNewThread:ew,handleScroll:eb,handleChange:eI,handleStop:eR,handleFocus:e=>{e.currentTarget.selectionStart>0||e.currentTarget.setSelectionRange(e.currentTarget.value.length,e.currentTarget.value.length)},lastUsedRepo:ec,setLastUsedRepo:ed,selectedRepo:eu,setSelectedRepo:ep,selectedBranch:eg,setSelectedBranch:ey,selectedAgent:ex,setSelectedAgent:ev,initialRepoNWO:ef}}(ei);eZ[47]!==tT||eZ[48]!==tI||eZ[49]!==tk||eZ[50]!==tH||eZ[51]!==tq?(es=()=>{if(tq.startsWith("/task ")&&B.W.askModeDropdown){let e=tI.find(nf);e?.mode&&e.mode!==tT&&(tk(e.mode,!0),tH(tq.slice(6)))}},el=[tq,tI,tT,tH,tk],eZ[47]=tT,eZ[48]=tI,eZ[49]=tk,eZ[50]=tH,eZ[51]=tq,eZ[52]=es,eZ[53]=el):(es=eZ[52],el=eZ[53]),(0,b.useEffect)(es,el);let{onTextChange:t9}=e;if(eZ[54]!==t9||eZ[55]!==tq?(eo=()=>{t9?.(tq)},ec=[tq,t9],eZ[54]=t9,eZ[55]=tq,eZ[56]=eo,eZ[57]=ec):(eo=eZ[56],ec=eZ[57]),(0,b.useEffect)(eo,ec),eZ[58]!==tT.name||eZ[59]!==tI||eZ[60]!==t0){let e;eZ[62]!==tT.name||eZ[63]!==t0?(e=e=>e.key===t0||e.mode?.name===tT.name,eZ[62]=tT.name,eZ[63]=t0,eZ[64]=e):e=eZ[64],ed=tI.find(e),eZ[58]=tT.name,eZ[59]=tI,eZ[60]=t0,eZ[61]=ed}else ed=eZ[61];let ne=ed,nt=ne?.customModelPicker??e.customModelPicker,na=e.disabled||tG||e3;eZ[65]!==tH?(eu=()=>({setText:tH}),em=[tH],eZ[65]=tH,eZ[66]=eu,eZ[67]=em):(eu=eZ[66],em=eZ[67]),(0,b.useImperativeHandle)(e.chatInputRef,eu,em),eZ[68]!==tX||eZ[69]!==tB?(eh={inputRef:tB,fallbackEventHandler:tX},eZ[68]=tX,eZ[69]=tB,eZ[70]=eh):eh=eZ[70];let ns=(0,d.H)(eh);eZ[71]!==ns||eZ[72]!==e.figmaAuthUrl||eZ[73]!==tB?(ef={figmaAuthUrl:e.figmaAuthUrl,textAreaRef:tB,emitChange:ns},eZ[71]=ns,eZ[72]=e.figmaAuthUrl,eZ[73]=tB,eZ[74]=ef):ef=eZ[74];let{replaceUrlWithReferenceMention:nl}=function(e){let t,n,a,i,s,l,o,c,d,u,m,h,f=(0,r.c)(35),{figmaAuthUrl:p,textAreaRef:g,emitChange:y}=e,x=(0,j.b)(),{currentReferences:v}=(0,E.Pk)();f[0]!==y||f[1]!==g?(t=(e,t,n)=>{if(!g.current||e===t)return;let a=n?.[0]??0,r=g.current.value.slice(a,n?.[1]),i=r.indexOf(e);for(;i>-1;){let n=i+e.length;y(t,[i+a,n+a]),i=(r=r.replace(e,t)).indexOf(e)}},f[0]=y,f[1]=g,f[2]=t):t=f[2];let _=t;f[3]!==x?(n=e=>{let{itemUrl:t}=e,n=(0,N.Vc)(t);return x.addReference(n,"url-attacher"),x.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!0,attachmentType:"url-reference"}),n},f[3]=x,f[4]=n):n=f[4],f[5]!==_||f[6]!==x?(a=(e,t,n)=>{let{parsedReferenceMention:a}=t;x.replaceReference(n,e);let r=T.Q.for(e);if(!r)return;let i=T.Q.stringify(a),s=T.Q.stringify(r);i!==s&&_(i,s)},i=(e,t,n)=>{let{itemUrl:a,parsedReferenceMention:r}=t;x.removeReference(n),_(T.Q.stringify(r),a)},f[5]=_,f[6]=x,f[7]=a,f[8]=i):(a=f[7],i=f[8]),f[9]!==x?(s=()=>{x.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!1})},f[9]=x,f[10]=s):s=f[10],f[11]!==n||f[12]!==a||f[13]!==i||f[14]!==s?(l={mutationFn:F,onMutate:n,onSuccess:a,onError:i,onSettled:s},f[11]=n,f[12]=a,f[13]=i,f[14]=s,f[15]=l):l=f[15];let b=(0,S.n)(l);f[16]!==x?(o=e=>{let t=(0,N.Vc)(e);return x.addReference(t,"figma-attacher"),x.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!0,attachmentType:"url-reference"}),t},c=(e,t,n)=>{x.replaceReference(n,e)},f[16]=x,f[17]=o,f[18]=c):(o=f[17],c=f[18]),f[19]!==p||f[20]!==x?(d=(e,t,n)=>{n&&p&&e instanceof L?x.replaceReference(n,{type:"figma",title:"Sign in to Figma",id:`forbidden-${t}`,url:p,thumbnailUrl:"",fullImageUrl:"",authenticationRequired:!0}):x.removeReference(n)},f[19]=p,f[20]=x,f[21]=d):d=f[21],f[22]!==x?(u=()=>{x.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!1})},f[22]=x,f[23]=u):u=f[23],f[24]!==u||f[25]!==o||f[26]!==c||f[27]!==d?(m={mutationFn:P,onMutate:o,onSuccess:c,onError:d,onSettled:u},f[24]=u,f[25]=o,f[26]=c,f[27]=d,f[28]=m):m=f[28];let C=(0,S.n)(m);return f[29]!==v||f[30]!==C||f[31]!==_||f[32]!==b||f[33]!==g?(h={replaceUrlWithReferenceMention:(e,t)=>{let n=g.current?.value.slice(...e)??"";if(/\s/.test(n))return n;let a=T.Q.fromUrl(n);if(a){if(!O(a.type,t))return n;v.every(e=>!T.Q.refersTo(a,e))&&b.mutate({itemUrl:n,parsedReferenceMention:a}),_(n,T.Q.stringify(a),e)}let r=k.exec(n);if(r){if(!O("figma",t))return n;C.mutate(n),_(n,r[1],e)}return n}},f[29]=v,f[30]=C,f[31]=_,f[32]=b,f[33]=g,f[34]=h):h=f[34],h}(ef),{isLoading:no,addReferenceForMention:nu,addReferencesForMentions:nv}=function(){let e=(0,j.b)(),{currentReferences:t,mode:n}=(0,E.Pk)(),a=(0,S.n)({mutationFn:async e=>{let t="repository"===e.type?[e.repo]:[e.repo,(e=>{switch(e){case"issue":return"issue";case"pull-request":return"pull_request";case"discussion":return"discussion";case"thread-scoped-file":case"file":return"file"}})(e.type),e.id??""],a=await (0,w.lS)(`/copilot/chat/reference/${t.join("/")}`);if(!a.ok)throw Error(`Failed to fetch reference data (${a.status}: ${a.statusText})`);return(0,s.BI)("dotcom_chat.activate",{target:"REFERENCE_LINK_PASTE",mode:n,linkType:e.type}),await a.json()},onSuccess:t=>e.addReference(t,"chatInput")}),r=e=>{t.every(t=>!T.Q.refersTo(e,t))&&a.mutate(e)};return{isLoading:a.isPending,addReferenceForMention:r,addReferencesForMentions:(e,n)=>{let a=(0,I.l)().use(A.U,{references:t,agents:[],commands:[]}).parse(e),i=0;(0,R.YR)(a,e=>{if("reference-mention"===e.type&&void 0===e.data.mentionedReferenceId&&i<20){var t;t=e.data.referenceMention.type,(!n||n.includes(t))&&(i++,r(e.data.referenceMention))}})}}}(),n_=(0,et.FQ)(),nb=tO&&n_,nC=(0,C.d)();eZ[75]!==t0||eZ[76]!==tq?(ep=(0,W.x)(tq,t0),eZ[75]=t0,eZ[76]=tq,eZ[77]=ep):ep=eZ[77];let nS=ep,nw=tT?.name;eZ[78]!==t0||eZ[79]!==nw?(eg=Q(nw,t0),eZ[78]=t0,eZ[79]=nw,eZ[80]=eg):eg=eZ[80];let nI=eg;eZ[81]!==tE||eZ[82]!==tL||eZ[83]!==tG||eZ[84]!==nS||eZ[85]!==nI||eZ[86]!==no||eZ[87]!==e.submitDisabled||eZ[88]!==t3||eZ[89]!==t2||eZ[90]!==e7||eZ[91]!==e0.isWaitingOnAttachment?(ey=e7||no||e0.isWaitingOnAttachment||!!e.submitDisabled||nI&&tE.includes(tL)&&!t2&&!t3||tG||nS,eZ[81]=tE,eZ[82]=tL,eZ[83]=tG,eZ[84]=nS,eZ[85]=nI,eZ[86]=no,eZ[87]=e.submitDisabled,eZ[88]=t3,eZ[89]=t2,eZ[90]=e7,eZ[91]=e0.isWaitingOnAttachment,eZ[92]=ey):ey=eZ[92];let nR=ey,nE=0===tq.length;eZ[93]!==tY||eZ[94]!==e0.mode?(ex=()=>{(0,s.BI)("dotcom_chat.activate",{target:"CHAT_MESSAGE_STOP",mode:e0.mode}),tY()},eZ[93]=tY,eZ[94]=e0.mode,eZ[95]=ex):ex=eZ[95];let nj=ex;eZ[96]!==tO||eZ[97]!==tM||eZ[98]!==tL.name||eZ[99]!==tK||eZ[100]!==n_||eZ[101]!==e4||eZ[102]!==e0.mode||eZ[103]!==e0.selectedThreadID||eZ[104]!==nR?(ev=()=>{if(nR)return;let e=tO?`${tO.owner}/${tO.id}`:"";(0,s.BI)("dotcom_chat.activate",{target:"CHAT_MESSAGE_SUBMIT",mode:e0.mode,selectedThreadId:e0.selectedThreadID,copilotSpace:e,fromSpaceUI:n_,askModeDropdown:B.W.askModeDropdown,activeMode:tL.name}),e4&&tM(!1),tK()},eZ[96]=tO,eZ[97]=tM,eZ[98]=tL.name,eZ[99]=tK,eZ[100]=n_,eZ[101]=e4,eZ[102]=e0.mode,eZ[103]=e0.selectedThreadID,eZ[104]=nR,eZ[105]=ev):ev=eZ[105];let nT=ev;eZ[106]!==tQ||eZ[107]!==nR?(e_=()=>{nR||tQ()},eZ[106]=tQ,eZ[107]=nR,eZ[108]=e_):e_=eZ[108];let nA=e_;eZ[109]!==e5||eZ[110]!==e0.messages?(eb=()=>{let e=e0.messages.findLast(np)?.id;e&&e5.startEditingMessage(e)},eZ[109]=e5,eZ[110]=e0.messages,eZ[111]=eb):eb=eZ[111];let nN=eb;e:{if(e0.isWaitingOnCopilot){eC="Copilot is responding\u2026";break e}if(e0.defaultRecipient){eC=void 0;break e}if(e3){eC="Message limit reached. To continue chatting with Copilot, start a new conversation.";break e}eC=tL.placeholder??"Ask anything"}let nk=eC;e0.defaultRecipient&&""===tq&&!tW&&tH(`@${e0.defaultRecipient} `);let nO=(0,b.useRef)(null),[nL,nP]=(0,b.useState)(null),[nF,nM]=(0,b.useState)(null);eZ[112]!==nP||eZ[113]!==e0.mode?(eS=()=>{(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU",mode:e0.mode}),nP(ng)},eZ[112]=nP,eZ[113]=e0.mode,eZ[114]=eS):eS=eZ[114];let nD=eS;eZ[115]!==e5||eZ[116]!==e0.mode||eZ[117]!==e0.skillOptions?.deepCodeSearch?(ew=()=>{(0,s.BI)("dotcom_chat.activate",{target:"DEEP_CODESEARCH",mode:e0.mode}),e5.dispatch({type:"SET_DEEP_CODESEARCH",deepCodeSearch:!e0.skillOptions?.deepCodeSearch})},eZ[115]=e5,eZ[116]=e0.mode,eZ[117]=e0.skillOptions?.deepCodeSearch,eZ[118]=ew):ew=eZ[118],e0.skillOptions?.deepCodeSearch;let n$=ew,nW="immersive"===e0.mode&&!!e1.capabilities?.supports?.vision;eZ[119]!==e2||eZ[120]!==e5||eZ[121]!==e1||eZ[122]!==e.existingFileNames||eZ[123]!==nW?(eI=async(t,n,a,r)=>{let i=new Y.s(e2(),e5),s=new ee.E(e5,e.existingFileNames),l=[];[...t].some(ny)&&!e1.capabilities?.supports?.vision&&(e5.addAmbientError(`The ${e1.displayName} model doesn't support answering questions about images. Select a different model and try again.`),(0,Z.d)("vision_not_supported_for_model",{modelId:e1.id,uploadType:n}));let[o,c]=Y.s.getAllowedFiles([...t],e1);if(nW){let e=await i.addImageAttachments(o,n);e&&l.push(...e)}let d=[];for(let e of c)if(await ee.E.isAttachable(e)){let t=await s.addAttachment(e,a,r);t&&l.push(t)}else d.push(e.type);return nW&&d.length>0&&(0,Z.d)("included_unsupported_file",{fileTypes:d.join(","),uploadType:n}),l},eZ[119]=e2,eZ[120]=e5,eZ[121]=e1,eZ[122]=e.existingFileNames,eZ[123]=nW,eZ[124]=eI):eI=eZ[124];let nU=eI;eZ[125]!==tM||eZ[126]!==nU||eZ[127]!==e4||eZ[128]!==tH||eZ[129]!==e0.mode||eZ[130]!==tq?(eR=async()=>{if(!e4)return;let e=[e4],t=await nU(e,"paste",tb.current||void 0,tC.current);if(t.length>0&&t[0]?.type==="thread-scoped-file"){let e=await e4.text();tH(tq.replaceAll(e,`@${t[0].name}`)),tM(!1),(0,s.BI)("dotcom_chat.activate",{target:"CONVERT_TO_FILE_CONVERT",mode:e0.mode})}},eZ[125]=tM,eZ[126]=nU,eZ[127]=e4,eZ[128]=tH,eZ[129]=e0.mode,eZ[130]=tq,eZ[131]=eR):eR=eZ[131];let nB=eR;eZ[132]!==tM?(eE=()=>{tM(!0)},eZ[132]=tM,eZ[133]=eE):eE=eZ[133];let nV=eE;eZ[134]!==e4||eZ[135]!==e0.isWaitingOnAttachment||eZ[136]!==e0.mode?(ej=()=>{!e4||e0.isWaitingOnAttachment||tS.current||(tS.current=!0,(0,s.BI)("dotcom_chat.activate",{target:"CONVERT_TO_FILE_TRIGGER",mode:e0.mode}))},eA=[e4,e0.isWaitingOnAttachment,e0.mode],eZ[134]=e4,eZ[135]=e0.isWaitingOnAttachment,eZ[136]=e0.mode,eZ[137]=ej,eZ[138]=eA):(ej=eZ[137],eA=eZ[138]),(0,b.useEffect)(ej,eA);let nz=(tL.supportsReferenceAttachments??!0)&&"task"!==t0,nq=tL.supportedReferenceTypes;eZ[139]!==nv||eZ[140]!==nU||eZ[141]!==e5||eZ[142]!==e.existingFileNames||eZ[143]!==nl||eZ[144]!==e6||eZ[145]!==nq||eZ[146]!==nz||eZ[147]!==tB?(eN=t=>{let n=t.clipboardData;if(!n?.items)return;let a=[];for(let t of Array.from(n.items))if("file"===t.kind){let e=t.getAsFile();e&&a.push(e)}else if("string"===t.kind&&["text","text/plain"].includes(t.type)){let a=n.getData(t.type);if(a.length>1e3&&a.length<=ee.E.getAttachmentSizeLimit())e6(()=>{tS.current=!1;let t=new File([a],"",{type:ee.x}),n=new ee.E(e5,e.existingFileNames);e8(t),tb.current=n.generateFileName(a,t.type).then(e=>tC.current=e)},0);else if(nz){nv(a,nq);let e=tB.current?.selectionStart??0;setTimeout(()=>nl([e,e+a.length],nq))}return}a.length>0&&(t.preventDefault(),nU(a,"paste"))},eZ[139]=nv,eZ[140]=nU,eZ[141]=e5,eZ[142]=e.existingFileNames,eZ[143]=nl,eZ[144]=e6,eZ[145]=nq,eZ[146]=nz,eZ[147]=tB,eZ[148]=eN):eN=eZ[148];let nH=eN;eZ[149]!==nU?(ek=e=>{nU(e,"drag")},eZ[149]=nU,eZ[150]=ek):ek=eZ[150];let nG=ek;eZ[151]!==t1?(eO=e=>{e&&t1(e),nM(e)},eZ[151]=t1,eZ[152]=eO):eO=eZ[152];let nK=eO;eZ[153]!==tT.name||eZ[154]!==tI||eZ[155]!==tj||eZ[156]!==tw||eZ[157]!==tk||eZ[158]!==tH||eZ[159]!==tq?(eL=e=>{let t=tI.find(t=>t.key===e);if(t?.enabled?.()===!1&&t.disabledAction)return void t.disabledAction(tw);if(B.W.askModeDropdown){if(t?.mode){tk(t.mode,!0);let n=RegExp(`^/${e}\\s*`);n.test(tq)&&tH(tq.replace(n,""))}else if(tT.name!==U.II.Ask){let e=tj.find(nx);e&&tk(e,!0)}}},eZ[153]=tT.name,eZ[154]=tI,eZ[155]=tj,eZ[156]=tw,eZ[157]=tk,eZ[158]=tH,eZ[159]=tq,eZ[160]=eL):eL=eZ[160];let nQ=eL,nJ=e.isStreaming||e0.isWaitingOnCopilot,nX=!!tL.supportsAttachments&&"task"!==t0,nY=o.tL,nZ=nJ?nj:void 0,n0=tx?void 0:nT,n1=nE?nN:void 0;eZ[161]!==nD||eZ[162]!==nT||eZ[163]!==nA||eZ[164]!==n$||eZ[165]!==nZ||eZ[166]!==n0||eZ[167]!==n1?(eP={"github:cancel":nZ,"copilot-chat:send-message":n0,"github:submit-form":nT,"copilot-chat:send-message-new-conversation":nA,"copilot-chat:add-attachment":nD,"copilot-chat:edit-last-message":n1,"copilot-chat:deep-codesearch":n$},eZ[161]=nD,eZ[162]=nT,eZ[163]=nA,eZ[164]=n$,eZ[165]=nZ,eZ[166]=n0,eZ[167]=n1,eZ[168]=eP):eP=eZ[168];let n2=eP,n5=(0,_.$)(tr,{[tc]:"small"===e.size,[tl]:na},e.className);eZ[169]===Symbol.for("react.memo_cache_sentinel")?(eF=(0,l.G)("copilot-chat-input-form"),eZ[169]=eF):eF=eZ[169];let n3=e.dropTargetProps;eZ[170]!==tL.supportsAttachmentsMenu||eZ[171]!==nB||eZ[172]!==nV||eZ[173]!==no||eZ[174]!==e9||eZ[175]!==e4||eZ[176]!==e.getReferenceVersion||eZ[177]!==e.initialReference||eZ[178]!==e.onRemoveReference||eZ[179]!==e.size||eZ[180]!==e0.isWaitingOnAttachment||eZ[181]!==nq||eZ[182]!==nz?(eM=nz&&(0,a.jsx)(tU,{className:tp,returnFocusRef:nO,tokenSize:"small"===e.size?"small":"medium",isLoading:no,onSelectReference:e9,onRemoveReference:e.onRemoveReference,getReferenceVersion:e.getReferenceVersion,showConvertToFileText:!!e4&&!e0.isWaitingOnAttachment,onConvertToFile:nB,onConvertToFileDismiss:nV,hideAttachmentsMenu:!!e.initialReference||!1===tL.supportsAttachmentsMenu,referenceTypeFilter:nq}),eZ[170]=tL.supportsAttachmentsMenu,eZ[171]=nB,eZ[172]=nV,eZ[173]=no,eZ[174]=e9,eZ[175]=e4,eZ[176]=e.getReferenceVersion,eZ[177]=e.initialReference,eZ[178]=e.onRemoveReference,eZ[179]=e.size,eZ[180]=e0.isWaitingOnAttachment,eZ[181]=nq,eZ[182]=nz,eZ[183]=eM):eM=eZ[183];let n4=o.tL;eZ[184]!==e.isNewConversation?(eD=(0,_.$)(td,{[tv]:e.isNewConversation}),eZ[184]=e.isNewConversation,eZ[185]=eD):eD=eZ[185];let n8=!tL.supportsAutocompletion,n7=!e.disableAutoFocus,n6=X.wg,n9=(0,_.$)(ti,{[t_]:na}),ae=tL.textAreaAriaLabel||nk,at=e.onPaste??nH,an=e.maxPromptLength;eZ[186]===Symbol.for("react.memo_cache_sentinel")?(e$=(0,l.G)("copilot-chat-input-textarea"),eZ[186]=e$):e$=eZ[186],eZ[187]!==na||eZ[188]!==tX||eZ[189]!==tZ||eZ[190]!==tJ||eZ[191]!==nk||eZ[192]!==e.maxPromptLength||eZ[193]!==n7||eZ[194]!==n6||eZ[195]!==n9||eZ[196]!==ae||eZ[197]!==at||eZ[198]!==tq||eZ[199]!==tB?(eW=(0,a.jsx)("textarea",{autoFocus:n7,id:n6,className:n9,autoComplete:"off",autoCorrect:"off",spellCheck:"false","aria-label":ae,"aria-multiline":"true",onPaste:at,ref:tB,onScroll:tJ,onChange:tX,onFocus:tZ,placeholder:nk,value:tq,"data-react-autofocus":!0,disabled:na,maxLength:an,...e$}),eZ[187]=na,eZ[188]=tX,eZ[189]=tZ,eZ[190]=tJ,eZ[191]=nk,eZ[192]=e.maxPromptLength,eZ[193]=n7,eZ[194]=n6,eZ[195]=n9,eZ[196]=ae,eZ[197]=at,eZ[198]=tq,eZ[199]=tB,eZ[200]=eW):eW=eZ[200],eZ[201]!==tn||eZ[202]!==nu||eZ[203]!==tI||eZ[204]!==tj||eZ[205]!==nQ||eZ[206]!==nP||eZ[207]!==n8||eZ[208]!==eW?(eU=(0,a.jsx)(tn,{onSelectReference:nu,onShowAgentsDialog:nP,onSelectCommand:nQ,hideAutocomplete:n8,availableCommands:tI,availableModes:tj,children:eW}),eZ[201]=tn,eZ[202]=nu,eZ[203]=tI,eZ[204]=tj,eZ[205]=nQ,eZ[206]=nP,eZ[207]=n8,eZ[208]=eW,eZ[209]=eU):eU=eZ[209],eZ[210]!==tR||eZ[211]!==tq||eZ[212]!==tV?(eB=(0,a.jsx)(tN,{text:tq,ref:tV,availableCommandKeys:tR}),eZ[210]=tR,eZ[211]=tq,eZ[212]=tV,eZ[213]=eB):eB=eZ[213],eZ[214]!==n4.LimitKeybindingScope||eZ[215]!==ni||eZ[216]!==eD||eZ[217]!==eU||eZ[218]!==eB||eZ[219]!==tz?(eV=(0,a.jsxs)(n4.LimitKeybindingScope,{commandIds:ni,className:eD,ref:tz,children:[eU,eB]}),eZ[214]=n4.LimitKeybindingScope,eZ[215]=ni,eZ[216]=eD,eZ[217]=eU,eZ[218]=eB,eZ[219]=tz,eZ[220]=eV):eV=eZ[220];let aa=e0.skillOptions?.deepCodeSearch;eZ[221]!==tm||eZ[222]!==t6||eZ[223]!==e.forceIconOnly||eZ[224]!==e.isNewConversation||eZ[225]!==t8||eZ[226]!==t3||eZ[227]!==t2||eZ[228]!==t7||eZ[229]!==t4||eZ[230]!==t5||eZ[231]!==tB?(ez=tm??(0,a.jsx)(nr.j,{iconOnly:!e.isNewConversation||e.forceIconOnly,selectedRepo:t2,selectedBranch:t3,selectedAgent:t8,onRepoSelect:t5,onBranchSelect:t4,onAgentSelect:e=>t7(e),agentSelectionEnabled:B.W.sweAgentUseSubagents,initialRepoNWO:t6,textAreaRef:tB}),eZ[221]=tm,eZ[222]=t6,eZ[223]=e.forceIconOnly,eZ[224]=e.isNewConversation,eZ[225]=t8,eZ[226]=t3,eZ[227]=t2,eZ[228]=t7,eZ[229]=t4,eZ[230]=t5,eZ[231]=tB,eZ[232]=ez):ez=eZ[232],eZ[233]!==tm||eZ[234]!==ez?(eq={default:tm,task:ez},eZ[233]=tm,eZ[234]=ez,eZ[235]=eq):eq=eZ[235];let ar="assistive"===e0.mode,ai=!!tO;eZ[236]!==nD||eZ[237]!==tI||eZ[238]!==tj||eZ[239]!==t0||eZ[240]!==tL||eZ[241]!==nt||eZ[242]!==na||eZ[243]!==tG||eZ[244]!==nS||eZ[245]!==tw||eZ[246]!==tP||eZ[247]!==e.forceIconOnly||eZ[248]!==e.isNewConversation||eZ[249]!==e.onNewThreadSelected||eZ[250]!==e.showStartTaskButton||eZ[251]!==t8||eZ[252]!==tx||eZ[253]!==nJ||eZ[254]!==nR||eZ[255]!==nX||eZ[256]!==aa||eZ[257]!==eq||eZ[258]!==ar||eZ[259]!==ai?(eH=(0,a.jsx)(nc,{addAttachment:nD,currentMode:tL,attachmentButtonRef:nO,deepCodeSearch:aa,modes:tj,onClickMode:tP,stoppable:nJ,submitDisabled:nR,isNewConversation:e.isNewConversation,onNewThreadSelected:e.onNewThreadSelected,supportsAttachments:nX,disabled:na,shouldSubmitWithModifier:tx,extraToolbarByMode:eq,chatCommand:t0,isAssistive:ar,isCopilotSpace:ai,isAgentTaskSubmitInProgress:tG,isIncompleteCommand:nS,customModelPicker:nt,selectedAgent:t8,showStartTaskButton:e.showStartTaskButton,availableCommands:tI,navigate:tw,forceIconOnly:e.forceIconOnly}),eZ[236]=nD,eZ[237]=tI,eZ[238]=tj,eZ[239]=t0,eZ[240]=tL,eZ[241]=nt,eZ[242]=na,eZ[243]=tG,eZ[244]=nS,eZ[245]=tw,eZ[246]=tP,eZ[247]=e.forceIconOnly,eZ[248]=e.isNewConversation,eZ[249]=e.onNewThreadSelected,eZ[250]=e.showStartTaskButton,eZ[251]=t8,eZ[252]=tx,eZ[253]=nJ,eZ[254]=nR,eZ[255]=nX,eZ[256]=aa,eZ[257]=eq,eZ[258]=ar,eZ[259]=ai,eZ[260]=eH):eH=eZ[260],eZ[261]!==te||eZ[262]!==e.dropTargetProps||eZ[263]!==n5||eZ[264]!==eF||eZ[265]!==eM||eZ[266]!==eV||eZ[267]!==eH?(eG=(0,a.jsxs)("form",{className:n5,ref:te,...eF,...n3,children:[eM,eV,eH]}),eZ[261]=te,eZ[262]=e.dropTargetProps,eZ[263]=n5,eZ[264]=eF,eZ[265]=eM,eZ[266]=eV,eZ[267]=eH,eZ[268]=eG):eG=eZ[268],eZ[269]!==tL.submitLabel||eZ[270]!==tG||eZ[271]!==nS||eZ[272]!==e.showStartTaskButton||eZ[273]!==tx||eZ[274]!==nR?(eK=e.showStartTaskButton&&(0,a.jsx)(nd,{disabled:nR,label:tL.submitLabel,isAgentTaskSubmitInProgress:tG,isIncompleteCommand:nS,showStartTaskButton:e.showStartTaskButton,shouldSubmitWithModifier:tx,className:(0,_.$)(tf)}),eZ[269]=tL.submitLabel,eZ[270]=tG,eZ[271]=nS,eZ[272]=e.showStartTaskButton,eZ[273]=tx,eZ[274]=nR,eZ[275]=eK):eK=eZ[275],eZ[276]!==nY||eZ[277]!==n2||eZ[278]!==eG||eZ[279]!==eK?(eQ=(0,a.jsxs)(nY,{commands:n2,children:[eG,eK]}),eZ[276]=nY,eZ[277]=n2,eZ[278]=eG,eZ[279]=eK,eZ[280]=eQ):eQ=eZ[280];let as=e.attachmentMenuSide??nC;return eZ[281]!==nL||eZ[282]!==tX||eZ[283]!==nF||eZ[284]!==nK||eZ[285]!==nP||eZ[286]!==as||eZ[287]!==tB?(eJ=(0,a.jsx)(eT,{inputRef:tB,inputOnChange:tX,anchorRef:nO,panel:nL,onPanelChange:nP,initialRepo:nF,onRepoSelect:nK,side:as}),eZ[281]=nL,eZ[282]=tX,eZ[283]=nF,eZ[284]=nK,eZ[285]=nP,eZ[286]=as,eZ[287]=tB,eZ[288]=eJ):eJ=eZ[288],eZ[289]!==nG||eZ[290]!==nb||eZ[291]!==e0.attachmentProcessingType||eZ[292]!==e0.isWaitingOnAttachment||eZ[293]!==nX?(eX=nX&&!nb&&(0,a.jsx)(nn.A,{onFilesDrop:nG,isUploading:e0.isWaitingOnAttachment&&"file-upload"===e0.attachmentProcessingType}),eZ[289]=nG,eZ[290]=nb,eZ[291]=e0.attachmentProcessingType,eZ[292]=e0.isWaitingOnAttachment,eZ[293]=nX,eZ[294]=eX):eX=eZ[294],eZ[295]!==ts||eZ[296]!==eQ||eZ[297]!==eJ||eZ[298]!==eX?(eY=(0,a.jsxs)("div",{className:ts,children:[eQ,eJ,eX]}),eZ[295]=ts,eZ[296]=eQ,eZ[297]=eJ,eZ[298]=eX,eZ[299]=eY):eY=eZ[299],eY};nl.displayName="ChatInput";let no={default:null,task:null},nc=(0,b.memo)(e=>{let{chatCommand:t,extraToolbarByMode:n=no,currentMode:r,supportsAttachments:i,submitDisabled:s,isAssistive:l,isCopilotSpace:c,isAgentTaskSubmitInProgress:d=!1,isIncompleteCommand:m,showStartTaskButton:v,availableCommands:b,navigate:S,shouldSubmitWithModifier:w=!1}=e,I=(0,C.d)(),R="outside-top"===I?"n":"s",E=("task"!==t||B.W.codingAgentModelSelection)&&"loop"!==t&&"spark"!==t,j=!!(e.onNewThreadSelected&&r.supportsModelSwitching&&E),T=Q(r.name,t),A=c?"Add files":B.W.copilotChatRepositoryPicker?"Add files, and spaces":"Add repositories, files, and spaces",{customModelPicker:N,selectedAgent:k,onNewThreadSelected:O,disabled:L,isNewConversation:P,forceIconOnly:F}=e,M=(0,h.tv)({narrow:!0},!1)||!P||F;return(0,a.jsxs)("div",{className:(0,_.$)(to,{[tb]:1===e.modes.length}),children:[e.modes.length>1&&(0,a.jsx)("div",{className:tw,children:(0,a.jsx)("div",{className:"d-flex",children:(0,a.jsxs)(f.W,{children:[M?(0,a.jsx)(f.W.Anchor,{children:(0,a.jsx)(p.K,{"aria-label":r.name,className:tI,variant:"invisible",icon:r.icon,tooltipDirection:R})}):(0,a.jsx)(f.W.Button,{className:tI,leadingVisual:(0,a.jsx)(r.icon,{}),variant:"invisible",trailingAction:u.TriangleDownIcon,children:r.name}),(0,a.jsx)(f.W.Overlay,{width:"auto",side:I,position:l?"relative":void 0,portalContainerName:l?eE.E5:void 0,children:(0,a.jsx)(g.l,{selectionVariant:"single",role:"menu","aria-label":"Item",children:e.modes.map(t=>{let n=b.find(e=>e.mode?.name===t.name),i=!1;return n?.enabled&&(i=!1===n.enabled()),(0,a.jsxs)(g.l.Item,{selected:r.name===t.name,onSelect:()=>{i&&n?.disabledAction?n.disabledAction(S):e.onClickMode?.(t.name)},children:[(0,a.jsx)(g.l.LeadingVisual,{children:(0,a.jsx)(t.icon,{})}),t.name,i&&(0,a.jsx)(g.l.TrailingVisual,{children:(0,a.jsx)(y.A,{children:"Upgrade"})})]},t.name)})})})]})})}),(0,a.jsxs)("div",{className:tC,children:[i&&B.W.copilotChatRepositoryPicker&&!c&&(0,a.jsx)(tY,{showIconOnly:M,tooltipDirection:R}),i&&(B.W.askModeDropdown?(0,a.jsx)(p.K,{ref:e.attachmentButtonRef,icon:u.PlusIcon,className:tx,"aria-label":A,tooltipDirection:R,onClick:e.addAttachment,"data-testid":"attachment-menu-button"}):(0,a.jsx)(x.Q,{ref:e.attachmentButtonRef,leadingVisual:u.PlusIcon,variant:"invisible","aria-label":A,className:tg,onClick:e.addAttachment,"data-testid":"attachment-menu-button",children:(0,a.jsx)("span",{className:(0,_.$)(ty,{"sr-only":T}),children:A})})),B.W.showDeepCodeSearchButton&&(0,a.jsx)(o.N5,{commandId:"copilot-chat:deep-codesearch",icon:u.RocketIcon,variant:"invisible",tooltipDirection:R,className:(0,_.$)({[tm]:e.deepCodeSearch})}),n[T?"task":"default"]]}),(0,a.jsxs)("div",{className:(0,_.$)(tR,{[tE]:j}),children:[j&&(N?N({selectedAgent:k}):(0,a.jsx)(na.Yb,{onNewThreadSelected:O,disabled:L})),(0,a.jsx)("div",{className:tj,children:e.stoppable?(0,a.jsx)(nu,{tooltipDirection:R}):(0,a.jsx)(nd,{disabled:s,label:r.submitLabel,isAgentTaskSubmitInProgress:d,isIncompleteCommand:m,showStartTaskButton:v,shouldSubmitWithModifier:w,tooltipDirection:R,className:v?th:void 0})})]})]})});function nd(e){let t,n,i,s=(0,r.c)(14),{disabled:l,label:c,isAgentTaskSubmitInProgress:d,isIncompleteCommand:m,showStartTaskButton:h,shouldSubmitWithModifier:f,tooltipDirection:g,className:y}=e,_=void 0!==d&&d,b=void 0!==f&&f,C=void 0===g?"s":g;s[0]!==l||s[1]!==m||s[2]!==c?(t=()=>l?m?"Complete your slash command before sending":c||"Sending a message is unavailable":c||"Send now",s[0]=l,s[1]=m,s[2]=c,s[3]=t):t=s[3];let S=t;s[4]!==l||s[5]!==S||s[6]!==_||s[7]!==b||s[8]!==h||s[9]!==C?(n=_?(0,a.jsx)("div",{className:"d-flex flex-items-center height-full mx-2",children:(0,a.jsx)(v.A,{size:"small"})}):h&&l?(0,a.jsx)(x.Q,{size:"medium",leadingVisual:u.PaperAirplaneIcon,inactive:!0,children:ns}):l?(0,a.jsx)(p.K,{variant:"invisible",size:"medium",icon:u.PaperAirplaneIcon,"aria-label":S(),tooltipDirection:C,inactive:!0,"aria-disabled":!0}):h?(0,a.jsx)(o.cQ,{commandId:b?"github:submit-form":"copilot-chat:send-message",leadingVisual:u.PaperAirplaneIcon,children:ns}):(0,a.jsx)(o.N5,{commandId:b?"github:submit-form":"copilot-chat:send-message",variant:"invisible",size:"medium",icon:u.PaperAirplaneIcon,"aria-label":S(),tooltipDirection:C}),s[4]=l,s[5]=S,s[6]=_,s[7]=b,s[8]=h,s[9]=C,s[10]=n):n=s[10];let w=n;return s[11]!==w||s[12]!==y?(i=y?(0,a.jsx)("div",{className:y,children:w}):w,s[11]=w,s[12]=y,s[13]=i):i=s[13],i}function nu(e){let t,n,i=(0,r.c)(3),{tooltipDirection:s}=e;return i[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,l.G)("copilot-chat-stop-button"),i[0]=t):t=i[0],i[1]!==s?(n=(0,a.jsx)(o.N5,{...t,commandId:"github:cancel",variant:"invisible",size:"medium",icon:u.SquareFillIcon,tooltipDirection:s,className:tS}),i[1]=s,i[2]=n):n=i[2],n}function nm(e){return e.mode}function nh(e){return void 0!==e}function nf(e){return"task"===e.key}function np(e){return"user"===e.role}function ng(e){return"attachment-types"===e?null:"attachment-types"}function ny(e){return e.type.startsWith("image/")}function nx(e){return e.name===U.II.Ask}nc.displayName="ChatInputToolbar",nd.displayName="SubmitButton",nu.displayName="StopButton"},56075(e,t,n){n.d(t,{A:()=>m});var a=n(74848),r=n(16522),i=n(70730),s=n(7478),l=n(96540);function o(e){e.preventDefault(),e.stopPropagation()}function c(e){return e instanceof DragEvent}let d=e=>{let t,n,i,s,l,o,c,d,u,m,h,f,p,g,y,x,v=(0,r.c)(17);return v[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,a.jsx)("path",{fill:"var(--bgColor-default)",fillRule:"evenodd",d:"M56.66 10.322v.002l16.824 7.846L92.44 70.254a8.75 8.75 0 0 1-5.23 11.217l-37.009 13.47a8.75 8.75 0 0 1-11.217-5.23L18.531 33.512a8.75 8.75 0 0 1 5.23-11.217z",clipRule:"evenodd"}),n=(0,a.jsx)("path",{fill:"var(--bgColor-open-muted)",fillRule:"evenodd",d:"M56.66 10.322v.002l16.824 7.846L92.44 70.254a8.75 8.75 0 0 1-5.23 11.217l-37.009 13.47a8.75 8.75 0 0 1-11.217-5.23L18.531 33.512a8.75 8.75 0 0 1 5.23-11.217z",clipRule:"evenodd"}),i=(0,a.jsx)("path",{fill:"var(--bgColor-open-emphasis)",fillRule:"evenodd",d:"m55.29 10.822.802-.293a1.46 1.46 0 0 1 1.116.049l15.73 7.335c.35.163.62.459.753.822l.294.804 18.458 50.715a8.75 8.75 0 0 1-5.23 11.217l-37.008 13.47a8.75 8.75 0 0 1-11.218-5.23L18.533 33.512a8.75 8.75 0 0 1 5.231-11.217zm.997 2.74L24.762 25.038a5.835 5.835 0 0 0-3.487 7.478l20.454 56.198a5.835 5.835 0 0 0 7.478 3.487l37.008-13.47a5.835 5.835 0 0 0 3.487-7.478L71.243 20.537l-5.482 1.996a5.82 5.82 0 0 1-4.461-.195 5.82 5.82 0 0 1-3.017-3.293z",clipRule:"evenodd",opacity:"0.12"}),v[0]=t,v[1]=n,v[2]=i):(t=v[0],n=v[1],i=v[2]),v[3]===Symbol.for("react.memo_cache_sentinel")?(s=(0,a.jsx)("g",{clipPath:"url(#clip0_12526_110155)",children:(0,a.jsx)("path",{fill:"var(--bgColor-open-emphasis)",fillRule:"evenodd",d:"M64.035 44.691c-.703 2.448-1.974 5.334-3.06 7.703-.93 2.029-1.94 3.575-2.932 4.66a5.46 5.46 0 0 1 .165 4.949c-.376.806-1.116 1.478-1.841 2.006-.754.549-1.631 1.04-2.446 1.445a31 31 0 0 1-3.066 1.318l-.053.02-.015.004-.004.002h-.002a1.095 1.095 0 0 1-1.388-.647v-.002l-.002-.004-.006-.015-.02-.053-.07-.196a30.973 30.973 0 0 1-.89-2.999c-.214-.885-.402-1.872-.466-2.803-.062-.895-.022-1.894.354-2.7a5.46 5.46 0 0 1 3.883-3.052c.178-1.474.697-3.268 1.635-5.314 1.092-2.383 2.494-5.198 3.94-7.294.718-1.039 1.498-1.978 2.313-2.587.804-.603 1.896-1.056 3.022-.53 1.134.53 1.46 1.673 1.497 2.667.037 1.011-.2 2.208-.548 3.422m-9.653 9.647a5.5 5.5 0 0 1 2.228 1.035c.515-.598 1.067-1.388 1.623-2.394l-3.1-1.445c-.397 1.08-.635 2.02-.751 2.804m7.55-10.25c-.61 2.121-1.702 4.662-2.733 6.928l-3.212-1.498c1.049-2.259 2.309-4.736 3.565-6.556.672-.973 1.292-1.682 1.823-2.08.541-.404.74-.318.783-.297h.003c.026.012.21.096.235.764.024.663-.136 1.594-.464 2.739m-8.986 19.408c-.682.34-1.342.627-1.862.84a29 29 0 0 1-.553-1.966c-.198-.823-.357-1.68-.41-2.441-.054-.796.02-1.336.155-1.625a3.282 3.282 0 1 1 5.949 2.774c-.135.29-.5.693-1.146 1.162-.617.45-1.375.878-2.133 1.256",clipRule:"evenodd"})}),l=(0,a.jsx)("path",{fill:"var(--bgColor-default)",fillRule:"evenodd",d:"M198.941 19.499 166.042 7.525a8.75 8.75 0 0 0-11.217 5.23L134.37 68.953a8.75 8.75 0 0 0 5.231 11.217l37.008 13.47a8.75 8.75 0 0 0 11.217-5.231l18.959-52.089z",clipRule:"evenodd"}),o=(0,a.jsx)("path",{fill:"var(--bgColor-sponsors-muted)",fillRule:"evenodd",d:"M198.941 19.499 166.042 7.525a8.75 8.75 0 0 0-11.217 5.23L134.37 68.953a8.75 8.75 0 0 0 5.231 11.217l37.008 13.47a8.75 8.75 0 0 0 11.217-5.231l18.959-52.089z",clipRule:"evenodd"}),c=(0,a.jsx)("path",{fill:"var(--bgColor-sponsors-emphasis)",fillRule:"evenodd",d:"m197.568 19.003.803.292c.363.132.659.404.823.754l7.335 15.73c.163.35.181.751.049 1.114l-.293.805-18.458 50.715a8.75 8.75 0 0 1-11.217 5.23l-37.008-13.47a8.75 8.75 0 0 1-5.231-11.217l20.454-56.197a8.75 8.75 0 0 1 11.217-5.23zm-.998 2.741L165.045 10.27a5.836 5.836 0 0 0-7.479 3.487l-20.454 56.197a5.834 5.834 0 0 0 3.487 7.478l37.008 13.47a5.836 5.836 0 0 0 7.479-3.487L203.544 36.7l-5.483-1.995a5.82 5.82 0 0 1-3.292-3.017 5.82 5.82 0 0 1-.195-4.461z",clipRule:"evenodd",opacity:"0.12"}),v[3]=s,v[4]=l,v[5]=o,v[6]=c):(s=v[3],l=v[4],o=v[5],c=v[6]),v[7]===Symbol.for("react.memo_cache_sentinel")?(u=(0,a.jsx)("g",{clipPath:"url(#clip1_12526_110155)",children:(0,a.jsx)("path",{fill:"var(--bgColor-sponsors-emphasis)",fillRule:"evenodd",d:"M179.168 44.01a2.553 2.553 0 0 1 3.393 1.235l.946 2.03a2.55 2.55 0 0 1-1.235 3.392l-16.096 7.506a2.55 2.55 0 0 1-1.259.232l-4.919-.348a1.094 1.094 0 0 1-.808-1.734l2.894-3.992c.255-.351.595-.632.988-.815zm1.41 2.16a.365.365 0 0 0-.485-.177l-2.36 1.1 1.254 2.692 2.361-1.101a.365.365 0 0 0 .176-.485zm-3.574 4.54-1.254-2.692-11.753 5.48a.36.36 0 0 0-.141.117l-1.739 2.399 2.955.209a.36.36 0 0 0 .18-.033z",clipRule:"evenodd"})}),m=(0,a.jsx)("path",{fill:"var(--bgColor-default)",fillRule:"evenodd",d:"M128.059 0H93.052A8.75 8.75 0 0 0 84.3 8.752v59.804a8.75 8.75 0 0 0 8.752 8.751h39.383a8.75 8.75 0 0 0 8.751-8.751v-55.43z",clipRule:"evenodd"}),h=(0,a.jsx)("path",{fill:"var(--bgColor-accent-muted)",fillRule:"evenodd",d:"M128.059 0H93.052A8.75 8.75 0 0 0 84.3 8.752v59.804a8.75 8.75 0 0 0 8.752 8.751h39.383a8.75 8.75 0 0 0 8.751-8.751v-55.43z",clipRule:"evenodd"}),d=(0,a.jsx)("path",{fill:"var(--bgColor-accent-emphasis)",fillRule:"evenodd",d:"M126.6 0h.855c.386 0 .757.154 1.031.427L140.758 12.7c.274.273.427.644.428 1.03v54.826a8.75 8.75 0 0 1-8.751 8.751H93.052a8.75 8.75 0 0 1-8.752-8.751V8.752A8.75 8.75 0 0 1 93.052 0zm0 2.917H93.052a5.835 5.835 0 0 0-5.835 5.835v59.804a5.835 5.835 0 0 0 5.835 5.834h39.383a5.834 5.834 0 0 0 5.834-5.834v-53.97h-5.834a5.82 5.82 0 0 1-4.126-1.709 5.82 5.82 0 0 1-1.709-4.125z",clipRule:"evenodd",opacity:"0.12"}),v[7]=d,v[8]=u,v[9]=m,v[10]=h):(d=v[7],u=v[8],m=v[9],h=v[10]),v[11]===Symbol.for("react.memo_cache_sentinel")?(f=(0,a.jsx)("g",{clipPath:"url(#clip2_12526_110155)",children:(0,a.jsx)("path",{fill:"var(--bgColor-accent-emphasis)",fillRule:"evenodd",d:"M104.354 31.356a.364.364 0 0 0-.364.365v15.315c0 .202.163.365.364.365h1.373l.042-.045 8.864-8.864c.962-.962 2.509-1 3.518-.088l4.801 4.344V31.72a.365.365 0 0 0-.365-.365zM122.587 47.4h-13.768l7.361-7.362a.365.365 0 0 1 .503-.013l6.269 5.672v1.338a.365.365 0 0 1-.365.365m2.553-.365V31.721a2.553 2.553 0 0 0-2.553-2.553h-18.233a2.553 2.553 0 0 0-2.552 2.553v15.315a2.553 2.553 0 0 0 2.552 2.553h18.233a2.553 2.553 0 0 0 2.553-2.553m-15.316-10.575a.729.729 0 1 1-1.458 0 .729.729 0 0 1 1.458 0m2.188 0a2.917 2.917 0 1 1-5.834 0 2.917 2.917 0 0 1 5.834 0",clipRule:"evenodd"})}),v[11]=f):f=v[11],v[12]===Symbol.for("react.memo_cache_sentinel")?(p=(0,a.jsx)("clipPath",{id:"clip0_12526_110155",children:(0,a.jsx)("path",{fill:"var(--bgColor-default)",d:"m41.466 45.344 21.93-7.982 7.982 21.93-21.93 7.982z"})}),v[12]=p):p=v[12],v[13]===Symbol.for("react.memo_cache_sentinel")?(g=(0,a.jsx)("clipPath",{id:"clip1_12526_110155",children:(0,a.jsx)("path",{fill:"var(--bgColor-default)",d:"m164.786 36.563 21.93 7.982-7.982 21.93-21.93-7.982z"})}),v[13]=g):g=v[13],v[14]===Symbol.for("react.memo_cache_sentinel")?(y=(0,a.jsxs)("defs",{children:[p,g,(0,a.jsx)("clipPath",{id:"clip2_12526_110155",children:(0,a.jsx)("path",{fill:"var(--bgColor-default)",d:"M101.802 27.71h23.338V51.05h-23.338z"})})]}),v[14]=y):y=v[14],v[15]!==e?(x=(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"226",height:"103",fill:"none",viewBox:"0 0 226 103",...e,children:[t,n,i,s,l,o,c,u,m,h,d,f,y]}),v[15]=e,v[16]=x):x=v[16],x};d.displayName="DragAndDropSVG";let u="FullScreenDragOverlay-module__text___t1qO";function m(e){let t,n,m,h=(0,r.c)(9),{onFilesDrop:f,isUploading:p}=e,g=void 0!==p&&p;h[0]!==g||h[1]!==f?(t=e=>{g||f(e)},h[0]=g,h[1]=f,h[2]=t):t=h[2];let y=t;h[3]!==y?(n={onFilesDrop:y,targetElement:i.XC},h[3]=y,h[4]=n):n=h[4];let{isDragging:x}=function(e){let t,n,a,i=(0,r.c)(6),{onFilesDrop:s,targetElement:d}=e,[u,m]=(0,l.useState)(!1),h=(0,l.useRef)(0);return i[0]!==s||i[1]!==d?(t=()=>{if(!d)return;let e=e=>{c(e)&&(e.preventDefault(),e.stopPropagation(),e.dataTransfer?.types.includes("Files")&&(h.current=h.current+1,1===h.current&&m(!0)))},t=e=>{e.preventDefault(),e.stopPropagation(),h.current=h.current-1,h.current<=0&&(h.current=0,m(!1))},n=e=>{if(!c(e))return;e.preventDefault(),e.stopPropagation(),h.current=0,m(!1);let t=e.dataTransfer?.files;t&&0!==t.length&&s(t)};return d.addEventListener("dragover",o),d.addEventListener("dragenter",e),d.addEventListener("dragleave",t),d.addEventListener("drop",n),()=>{d.removeEventListener("dragover",o),d.removeEventListener("dragenter",e),d.removeEventListener("dragleave",t),d.removeEventListener("drop",n)}},n=[s,d],i[0]=s,i[1]=d,i[2]=t,i[3]=n):(t=i[2],n=i[3]),(0,l.useEffect)(t,n),i[4]!==u?(a={isDragging:u},i[4]=u,i[5]=a):a=i[5],a}(n),v=null;if(g){let e;h[5]===Symbol.for("react.memo_cache_sentinel")?(e=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.A,{size:"large"}),(0,a.jsx)("p",{className:u,children:"Uploading files..."})]}),h[5]=e):e=h[5],v=e}else if(x){let e;h[6]===Symbol.for("react.memo_cache_sentinel")?(e=(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d,{}),(0,a.jsx)("p",{className:u,children:"Drop files to upload"})]}),h[6]=e):e=h[6],v=e}return v?(h[7]!==v?(m=(0,a.jsx)("div",{className:"FullScreenDragOverlay-module__overlay__dT4Zu",children:(0,a.jsx)("div",{className:"FullScreenDragOverlay-module__centeredContent__E4HBn",children:v})}),h[7]=v,h[8]=m):m=h[8],m):null}m.displayName="FullScreenDragOverlay"},95915(e,t,n){n.d(t,{F:()=>w,X:()=>E});var a=n(74848),r=n(16522),i=n(70170),s=n(94583),l=n(64855),o=n(35044),c=n(18990),d=n(53133),u=n(34164),m=n(96540),h=n(40961),f=n(70804),p=n(52503),g=n(89919),y=n(85461),x=n(80831),v=n(75058);let _=e=>{let t,n,i,s=(0,r.c)(6),{children:l,delay:o,assertive:c}=e,d=void 0===o?500:o,[u,h]=(0,m.useState)(!1);if(s[0]!==d?(t=()=>{h(!1);let e=setTimeout(()=>h(!0),d);return()=>clearTimeout(e)},n=[d,h],s[0]=d,s[1]=t,s[2]=n):(t=s[1],n=s[2]),(0,m.useEffect)(t,n),!u)return null;let f=void 0!==c&&c?"assertive":"polite";return s[3]!==l||s[4]!==f?(i=(0,a.jsx)("div",{role:"alert","aria-live":f,"aria-atomic":"true",children:l}),s[3]=l,s[4]=f,s[5]=i):i=s[5],i};_.displayName="DelayedComponent";var b=n(58417);let C="RepoSelectPanel-module__ActionList__J4OsG";var S=n(15442);function w(e){let t,n,i,o,c=(0,r.c)(13),{currentReferences:d}=(0,x.Pk)(),u=(0,v.b)(),h=(0,l.u)("copilot_chat_attachments_improved_repo_search");c[0]!==d?(n=new Set((t=d.filter(R)).map(I)),c[0]=d,c[1]=t,c[2]=n):(t=c[1],n=c[2]);let f=n,[p,g]=(0,m.useState)();c[3]!==u||c[4]!==e||c[5]!==t?(i=async(n,a)=>{g(void 0);let r=t.find(e=>e.id===n);if(r){u.removeReference(r),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"removed",component:"ATTACHMENT_MENU",mode:"immersive"});return}let i=await u.service.fetchRepo(n);if(!i.ok){g("Error: failed to attach repository. Please try again."),e.onOpenChange(!0);return}e.onRepoSelect?.(i.payload);let l=(0,y.qS)(i.payload);u.addReference(l,"repoMenu"),(0,s.BI)("dotcom_chat.activate",{target:"ATTACHMENT_MENU_REPOSITORIES",action:"selected",component:"ATTACHMENT_MENU",mode:"immersive",queryLength:a})},c[3]=u,c[4]=e,c[5]=t,c[6]=i):i=c[6];let _=i;return c[7]!==p||c[8]!==e||c[9]!==h||c[10]!==f||c[11]!==_?(o=(0,a.jsx)(E,{...e,selectionVariant:"multiple",selectedRepoIds:f,onSelectRepo:_,description:"Choose repositories to chat about.",error:p,searchUserReposFirst:h}),c[7]=p,c[8]=e,c[9]=h,c[10]=f,c[11]=_,c[12]=o):o=c[12],o}function I(e){return e.id}function R(e){return"repository"===e.type}function E(e){let t,n,l,y,v,w,I,R,E,T,A,N,k,O,L,P,F,M,D,$,W=(0,r.c)(51),{open:U,onOpenChange:B,submitReturnFocusRef:V,cancelReturnFocusRef:z,selectedRepoIds:q,featuredRepoIds:H,onSelectRepo:G,selectionVariant:K,description:Q,error:J,ownerDisplayLogin:X,includeForks:Y,searchUserReposFirst:Z,anchorRef:ee}=e,et=void 0===H?q:H,en=void 0!==Y&&Y,{ssoOrganizations:ea}=(0,x.Pk)(),[er,ei]=(0,m.useState)("");W[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,i.s)(e=>ei(e),150,{start:!1}),W[0]=t):t=W[0];let es=t;W[1]!==U?(n=()=>{U||ei("")},l=[U],W[1]=U,W[2]=n,W[3]=l):(n=W[2],l=W[3]),(0,m.useEffect)(n,l),W[4]===Symbol.for("react.memo_cache_sentinel")?(y=(0,p.P)(),W[4]=y):y=W[4];let el=y,eo=(0,f.U)(er,U,void 0,X,en,void 0!==Z&&Z,el),ec=(0,p.q)(er,U,void 0,X,en,!1,el),{repositories:ed,loading:eu}=el?ec:eo;e:{if(eu){v="Loading repositories";break e}if(0===ed.length){v="No repositories found";break e}if(1===ed.length){v="1 repository found";break e}v=`${ed.length} repositories found`}let em=v;W[5]===Symbol.for("react.memo_cache_sentinel")?(w=e=>{es(e.currentTarget.value)},W[5]=w):w=W[5];let eh=w;t:{let e;if(!ea){let e;W[6]===Symbol.for("react.memo_cache_sentinel")?(e=[],W[6]=e):e=W[6],I=e;break t}W[7]!==ea?(e=ea.map(j),W[7]=ea,W[8]=e):e=W[8],I=e}let ef=I;W[9]!==et?(R=e=>et.has(e.databaseId)?"featuredRepos":"nonFeaturedRepos",W[9]=et,W[10]=R):R=W[10];let{featuredRepos:ep,nonFeaturedRepos:eg}=(0,g.O)(ed,R),[ey,ex]=(0,m.useState)(!1);W[11]!==er||W[12]!==G?(E=async e=>{ex(!0),await G(e,er.length),ex(!1)},W[11]=er,W[12]=G,W[13]=E):E=W[13];let ev=E;W[14]===Symbol.for("react.memo_cache_sentinel")?(T=(0,o.G)("repo-select-panel"),W[14]=T):T=W[14];let e_=d.X,eb=ee&&"RepoSelectPanel-module__CopilotRepoSelectPanelAnchored__AVsfX";W[15]!==eb?(A=(0,u.$)(eb),W[15]=eb,W[16]=A):A=W[16],W[17]!==z||W[18]!==B?(N=()=>{(0,h.flushSync)(()=>B(!1)),z.current?.focus(),(0,s.BI)("dotcom_chat.activate",{target:"REPOSITORY_DIALOG_CLOSE",mode:"immersive"})},W[17]=z,W[18]=B,W[19]=N):N=W[19],W[20]!==B||W[21]!==V?(k=()=>{(0,h.flushSync)(()=>B(!1)),V.current?.focus()},W[20]=B,W[21]=V,W[22]=k):k=W[22];let eC=ee?"anchored":"modal",eS="multiple"===K?"Select repositories":"Select a repository",ew=ef.length>0&&"border-bottom-0";W[23]!==ew?(O=(0,u.$)(ew),W[23]=ew,W[24]=O):O=W[24];let eI=!0===eu||ey;W[25]!==eI?(L=(0,a.jsx)(d.X.SearchInput,{loading:eI,onChange:eh,placeholder:"Search repositories","aria-label":"Search repositories"}),W[25]=eI,W[26]=L):L=W[26],W[27]!==O||W[28]!==L?(P=(0,a.jsx)(d.X.Header,{className:O,children:L}),W[27]=O,W[28]=L,W[29]=P):P=W[29],W[30]===Symbol.for("react.memo_cache_sentinel")?(F=(0,a.jsx)(b.hl,{}),W[30]=F):F=W[30],W[31]!==J?(M=J&&(0,a.jsx)(d.X.Message,{variant:"error",size:"inline",children:J}),W[31]=J,W[32]=M):M=W[32];let eR="initial"===eu?(0,a.jsxs)("div",{className:C,children:[(0,a.jsx)("div",{className:"sr-only",children:em}),(0,a.jsx)(d.X.Loading,{children:"Fetching repositories\u2026"})]}):0!==ed.length||eu?(0,a.jsxs)(c.l,{className:C,children:[(0,a.jsx)("div",{className:"sr-only",children:em}),ep?.map(e=>(0,a.jsx)(S.W,{repo:e,onSelect:ev,selected:q.has(e.databaseId)},e.databaseId)),ep&&eg&&(0,a.jsx)(c.l.Divider,{}),eg?.map(e=>(0,a.jsx)(S.W,{repo:e,onSelect:ev,selected:q.has(e.databaseId)},e.databaseId))]}):(0,a.jsxs)("div",{className:C,children:[(0,a.jsx)("div",{className:"sr-only",children:em}),(0,a.jsx)("div",{className:"RepoSelectPanel-module__emptyStateMessage__h6amH",children:(0,a.jsx)(_,{delay:750,children:(0,a.jsx)(d.X.Message,{variant:"empty",title:"No repositories found",children:"Try a different search term"})})})]});return W[33]!==e_||W[34]!==ee||W[35]!==Q||W[36]!==U||W[37]!==K||W[38]!==A||W[39]!==N||W[40]!==k||W[41]!==eC||W[42]!==eS||W[43]!==P||W[44]!==F||W[45]!==M||W[46]!==eR?(D=(0,a.jsxs)(e_,{className:A,width:"large",maxHeight:"xlarge",onCancel:N,onSubmit:k,open:U,variant:eC,selectionVariant:K,title:eS,description:Q,anchorRef:ee,children:[P,F,M,eR]}),W[33]=e_,W[34]=ee,W[35]=Q,W[36]=U,W[37]=K,W[38]=A,W[39]=N,W[40]=k,W[41]=eC,W[42]=eS,W[43]=P,W[44]=F,W[45]=M,W[46]=eR,W[47]=D):D=W[47],W[48]!==T||W[49]!==D?($=(0,a.jsx)("div",{...T,children:D}),W[48]=T,W[49]=D,W[50]=$):$=W[50],$}function j(e){return e.login}w.displayName="RepoReferencesSelectPanel",E.displayName="RepoSelectPanel"},15442(e,t,n){n.d(t,{W:()=>l});var a=n(74848),r=n(16522),i=n(35592),s=n(18990);function l(e){let t,n,l,o,c=(0,r.c)(14),{onSelect:d,repo:u,selected:m,trailingVisualComponent:h}=e,{databaseId:f,isInOrganization:p,nwo:g,ownerAvatarUrl:y}=u;return c[0]!==f||c[1]!==d?(t=()=>d(f),c[0]=f,c[1]=d,c[2]=t):t=c[2],c[3]!==p||c[4]!==y?(n=(0,a.jsx)(s.l.LeadingVisual,{children:(0,a.jsx)(i.r,{src:y,square:p,size:16})}),c[3]=p,c[4]=y,c[5]=n):n=c[5],c[6]!==h?(l=h&&(0,a.jsx)(s.l.TrailingVisual,{children:h}),c[6]=h,c[7]=l):l=c[7],c[8]!==g||c[9]!==m||c[10]!==t||c[11]!==n||c[12]!==l?(o=(0,a.jsxs)(s.l.Item,{onSelect:t,selected:m,children:[n,g,l]},g),c[8]=g,c[9]=m,c[10]=t,c[11]=n,c[12]=l,c[13]=o):o=c[13],o}l.displayName="RepositoryListItem"},55345(e,t,n){n.d(t,{j:()=>o});var a=n(16522),r=n(38621),i=n(62912),s=n(1361),l=n(25891);function o(e){let t,n,o,h=(0,a.c)(8),{enabled:f}=e,p=(0,i.qw)();if(h[0]!==f||h[1]!==p){e:{let e=[];if(!f){t=e;break e}for(let t of p)t.slashCommand&&e.push({key:t.slashCommand.key,name:t.slashCommand.name,description:t.slashCommand.description,icon:t.slashCommand.icon,isNew:t.slashCommand.isNew,order:t.slashCommand.order,suggestions:t.slashCommand.suggestions,enabled:t.slashCommand.enabled,disabledAction:t.slashCommand.disabledAction,customModelPicker:t.slashCommand.customModelPicker,execute:async(e,n,a)=>await t.slashCommand.execute(e,n,a),mode:t.slashCommand.mode});l.W.askModeDropdown&&e.push({key:"ask",name:"Ask",description:"Get an answer to a question",icon:r.CommentIcon,order:0,suggestions:[],execute:m,mode:{name:s.II.Ask,icon:r.CommentIcon,supportsAttachments:!0,supportsModelSwitching:!0,supportsSpaces:!0,supportsAutocompletion:!0}}),e.push({key:"create-issue",name:"Create issue",description:"Create a GitHub issue from your conversation",icon:r.IssueDraftIcon,suggestions:["First, create a new draft issue. Then ask for additional information to fill out the issue.","First, create an issue with sub issues. Then ask for additional information to fill out these issues."],execute:u}),t=e.sort(d)}h[0]=f,h[1]=p,h[2]=t}else t=h[2];let g=t;return h[3]!==g?(n=g.map(c),h[3]=g,h[4]=n):n=h[4],h[5]!==g||h[6]!==n?(o={availableCommands:g,availableCommandKeys:n},h[5]=g,h[6]=n,h[7]=o):o=h[7],o}function c(e){return e.key}function d(e,t){return void 0!==e.order&&void 0!==t.order?e.order-t.order:void 0!==e.order?-1:void 0!==t.order?1:e.name.localeCompare(t.name)}function u(){return!1}function m(){return!1}},14486(e,t,n){n.d(t,{g:()=>i});var a=n(16522),r=n(96540);function i(e){let t,n=(0,a.c)(2),[i,s]=(0,r.useState)(!1);return n[0]!==e?(t=()=>{let t=e.current,n=t?.lastElementChild;if(!n)return;let a=new IntersectionObserver(e=>{let[t]=e;return s(t?.isIntersecting??!0)},{root:t,threshold:1});return a.observe(n),()=>a.disconnect()},n[0]=e,n[1]=t):t=n[1],(0,r.useEffect)(t),i}},40560(e,t,n){n.d(t,{T:()=>s});var a=n(16522),r=n(96540),i=n(3972);function s(){let e,t,n=(0,a.c)(3),[s,o]=(0,r.useState)(l);n[0]===Symbol.for("react.memo_cache_sentinel")?(e=e=>{o(e),e&&i.Jt.setLastUsedRepository(e)},n[0]=e):e=n[0];let c=e;return n[1]!==s?(t=[s,c],n[1]=s,n[2]=t):t=n[2],t}function l(){return i.Jt.getLastUsedRepository()}},52503(e,t,n){n.d(t,{P:()=>o,q:()=>l});var a=n(96540),r=n(25891),i=n(80831),s=n(75058);function l(e,t,n,r,o=!1,c=!1,d=!0){let{topRepositoriesCache:u,currentRepository:m}=(0,i.Pk)(),h=(0,s.b)(),{service:f}=h,[p,g]=(0,a.useState)([]),[y,x]=(0,a.useState)(!u&&"initial"),v=(0,a.useRef)(!1),_=(0,a.useCallback)(()=>{h.setTopRepositoryTopics(void 0),v.current=!1},[h]),b=r&&""!==r.trim();return((0,a.useEffect)(()=>{if(!d)return;let e=async()=>{if(t&&!v.current&&!u){x("initial");try{let e=await f.fetchRepositoriesSearch(void 0,n,o,m?.id);h.setTopRepositoryTopics(e),v.current=!0}catch{}finally{x(!1)}}};b||e()},[d,t,f,b,n,m,h,u,o]),(0,a.useEffect)(()=>{if(!d)return;let t=new AbortController,n=async e=>{x(!0);try{let n=await f.fetchRepositoriesSearch(e,void 0,o,m?.id,b?r:void 0);t.signal.aborted||g(n)}catch{t.signal.aborted||g([])}finally{t.signal.aborted||x(!1)}};return e||b?n(e):u&&g(u),()=>{t.abort()}},[d,e,b,r,m,f,u,o]),(0,a.useEffect)(()=>{d&&(h.setTopRepositoryTopics(void 0),v.current=!1)},[d,h,r]),!u||e||b)?{repositories:p,loading:y,resetTopRepoResults:_}:{repositories:u,loading:!1,resetTopRepoResults:_}}function o(){return r.W.deprecateRelay}},70804(e,t,n){n.d(t,{U:()=>u,p:()=>h});var a=n(35931),r=n(2806),i=n(96540),s=n(18312),l=n(89919),o=n(80831),c=n(75058),d=n(24661);function u(e,t,n,f,p=!1,g=!1,y=!1){let[x,v]=(0,i.useState)(),_=(0,i.useCallback)(()=>v(void 0),[]),{topRepositoriesCache:b,currentRepository:C,currentUserLogin:S}=(0,o.Pk)(),w=(0,c.b)(),[I,R]=(0,i.useState)([]),[E,j]=(0,i.useState)(!b&&"initial"),T=(0,i.useRef)([void 0,void 0]),A=(0,s.useRelayEnvironment)(),N=f&&""!==f.trim();if(x&&!b&&!e&&!N){let e=m(x||[]),{ownerLogin:t,name:n}=C??{};C&&!e.find(e=>`${e.ownerLogin}/${e.name}`==`${t}/${n}`)&&e.splice(0,0,{databaseId:C.id,isInOrganization:"Organization"===C.ownerType,name:C.name,nwo:`${C.ownerLogin}/${C.name}`,ownerLogin:C.ownerLogin,ownerAvatarUrl:`/${C.ownerLogin}.png?s=40`}),setTimeout(()=>w.setTopRepositoryTopics(e),10),j(!1),v(void 0)}let k=(0,i.useCallback)(async()=>{try{let e=await (0,a.St)(A,{first:n,owner:N?f:void 0});v(e)}catch{}finally{j(!1)}},[N,f,A,v,n]);return((0,i.useEffect)(()=>{y||t&&!N&&k()},[k,y,N,t,f]),(0,i.useEffect)(()=>{if(y)return;let t=async e=>{j(!0);let t=[],{query:n,containsUserLogin:i}=h(e,S);g&&i&&!N&&t.push((async()=>{let{repositories:e}=await (0,a.vO)(A,{query:(0,d.rl)(S,n,p),onStart:e=>{T.current[0]?.unsubscribe(),T.current[0]=e}});return e})()),t.push((async()=>{let t=N?(0,d.rl)(f,e,p):(0,r.J)(e,{includeForks:p}),{repositories:n}=await (0,a.vO)(A,{query:t,onStart:e=>{T.current[1]?.unsubscribe(),T.current[1]=e}});return n})());let s=await Promise.all(t);R(m((0,l.p)(s.flat(),e=>e.id))),j(!1)};e||N?t(e):b&&R(b);let n=T.current;return()=>{n[0]?.unsubscribe(),n[1]?.unsubscribe()}},[e,y,N,S,f,A,b,p,g]),(0,i.useEffect)(()=>{y||w.setTopRepositoryTopics(void 0)},[w,y,f]),!b||e||N)?{repositories:I,loading:E,resetTopRepoResults:_}:{repositories:b,loading:!1,resetTopRepoResults:_}}function m(e){return e.map(({owner:{login:e,avatarUrl:t},isInOrganization:n,name:a,databaseId:r})=>({databaseId:r??0,isInOrganization:n,name:a,nwo:`${e}/${a}`,ownerLogin:e,ownerAvatarUrl:t}))}function h(e,t){let n=e.trimStart();if(t.startsWith(n)){let t=e.replace(n,"");return t.startsWith("/")?{query:t.slice(1),containsUserLogin:!0}:{query:t,containsUserLogin:!0}}return{query:e,containsUserLogin:!1}}},43573(e,t,n){n.d(t,{G:()=>c});var a=n(16522),r=n(6758),i=n(96540),s=n(80831),l=n(24661),o=n(8883);function c(){let e,t=(0,a.c)(1),n=(0,i.useRef)(null);t[0]===Symbol.for("react.memo_cache_sentinel")?(e=e=>{let t=(0,o.W)(e),a=(0,r.O)(t);return(0,l.Ym)(n.current,a)?n.current:(n.current=a,a)},t[0]=e):e=t[0];let c=(0,s.pn)(e);return(0,l.iI)()||c}},23274(e,t,n){n.d(t,{JE:()=>f,Z3:()=>m,bn:()=>u,kw:()=>p,qj:()=>h});var a=n(16522),r=n(97286),i=n(61405),s=n(43573),l=n(85461),o=n(80831),c=n(75058),d=n(65768);let u="https://github.com/marketplace?type=apps&copilot_app=true",m="@",h=/^@(?\S+)$/;function f(e){let t,n,i,u,m,h,f=(0,a.c)(25),{agentsPath:p,model:g}=(0,o.bP)("agentsPath","model"),y=(0,d.tD)(),x=(0,c.b)(),v=!!(0,s.G)(),_=g?.hasLimitedCapabilities;f[0]!==y||f[1]!==v||f[2]!==_?(t=e=>{let{messages:t}=y();if(_||v)return{agents:[],showLimit:!1};let n=(0,l.Q7)(t)[0];return n?{agents:e.filter(e=>e.slug===n.name),showLimit:e.length>1}:{agents:e,showLimit:!1}},f[0]=y,f[1]=v,f[2]=_,f[3]=t):t=f[3];let b=t;f[4]!==p?(n=["copilot-chat","agents",p],f[4]=p,f[5]=n):n=f[5],f[6]!==p||f[7]!==x?(i=()=>p?x.fetchAgents(p):[],f[6]=p,f[7]=x,f[8]=i):i=f[8];let C=(void 0===e||e)&&!_&&!v;f[9]!==b||f[10]!==n||f[11]!==i||f[12]!==C?(u={queryKey:n,queryFn:i,select:b,enabled:C},f[9]=b,f[10]=n,f[11]=i,f[12]=C,f[13]=u):u=f[13];let{isLoading:S,data:w,refetch:I,isStale:R,isFetched:E}=(0,r.I)(u);f[14]!==w||f[15]!==E||f[16]!==R||f[17]!==I?(m=async()=>!E||R?(await I()).data:w,f[14]=w,f[15]=E,f[16]=R,f[17]=I,f[18]=m):m=f[18];let j=m,T=w?.agents,A=w?.showLimit??!1;return f[19]!==j||f[20]!==S||f[21]!==T||f[22]!==A||f[23]!==_?(h={loading:S,disabled:_,availableAgents:T,showLimit:A,imperativelyFetch:j},f[19]=j,f[20]=S,f[21]=T,f[22]=A,f[23]=_,f[24]=h):h=f[24],h}function p(e){let t,n,r=(0,a.c)(6),{inputOnChange:s,inputRef:l}=e;r[0]!==s||r[1]!==l?(t={inputRef:l,fallbackEventHandler:s},r[0]=s,r[1]=l,r[2]=t):t=r[2];let o=(0,i.H)(t);return r[3]!==o||r[4]!==l?(n=e=>{l.current?.value&&o(" ",[0,0]);let t=`${m}${void 0===e?"":e}`;o(t,[0,0],t.length)},r[3]=o,r[4]=l,r[5]=n):n=r[5],n}},89919(e,t,n){function a(e,t){let n={};for(let a of e){let e=t(a);n[e]??(n[e]=[]),n[e].push(a)}return n}function r(e,t){let n=[],a=new Set;for(let r of e){let e=t(r);a.has(e)||(a.add(e),n.push(r))}return n}n.d(t,{O:()=>a,p:()=>r})},91873(e,t,n){n.d(t,{V:()=>r,x:()=>i});var a=n(25891);function r(e,t){if(0===t.length||!a.W.chatInputCommands)return null;let n=RegExp(`^\\/(${t.join("|")})(?:\\s|$)`,"i"),r=e.match(n);return r&&r[1]?r[1].toLowerCase():null}function i(e,t){return!!t&&e.trim().toLowerCase()===`/${t.toLowerCase()}`}},68396(e,t,n){n.d(t,{Ld:()=>f,Tz:()=>g,W5:()=>u,cx:()=>h,vn:()=>p});var a=n(16522),r=n(78143),i=n(97665),s=n(97286),l=n(94747),o=n(58388),c=n(96540),d=n(3972);n(80831),n(75058);let u={Unindexed:"not_indexed",Indexed:"indexed",Indexing:"indexing",PartiallyIndexed:"partially_indexed",Unknown:"unknown"},m={requestStatus:"unknown",code:u.Unknown,docs:u.Unknown},h=256,f=400;function p(e){var t,n;let r,o,d,h,f,p,g,v,_,b,C,S,w,I=(0,a.c)(18),R=(0,i.jE)();I[0]!==R||I[1]!==e?(p=()=>Promise.resolve(R.invalidateQueries({queryKey:["repo-indexing-state",e]})),I[0]=R,I[1]=e,I[2]=p):p=I[2];let E=p;I[3]!==e?(g={queryKey:["copilot-chat","repo-indexing-state",e],queryFn:()=>y(e),placeholderData:m,staleTime:1/0},I[3]=e,I[4]=g):g=I[4];let j=(0,s.I)(g);I[5]===Symbol.for("react.memo_cache_sentinel")?(v=["repo-indexing-state"],I[5]=v):v=I[5],I[6]!==e?(_=()=>x([e]),I[6]=e,I[7]=_):_=I[7],I[8]!==E||I[9]!==_?(b={mutationKey:v,mutationFn:_,onSuccess:E},I[8]=E,I[9]=_,I[10]=b):b=I[10];let{mutate:T}=(0,l.n)(b),A=j.data??m,N=A.code===u.Indexing&&"indexing_error"!==A.requestStatus;return I[11]!==E?(C=()=>void E(),I[11]=E,I[12]=C):C=I[12],t=C,n=1e4*!!N,d=(0,a.c)(5),h=(0,c.useRef)(void 0),f=(0,c.useEffectEvent)(t),d[0]!==n||d[1]!==f?(r=()=>{if(n>0)return h.current=window.setInterval(()=>f(),n),()=>window.clearInterval(h.current)},d[0]=n,d[1]=f,d[2]=r):r=d[2],d[3]!==n?(o=[n],d[3]=n,d[4]=o):o=d[4],(0,c.useEffect)(r,o),I[13]!==T?(S=()=>T(),I[13]=T,I[14]=S):S=I[14],I[15]!==A||I[16]!==S?(w=[A,S],I[15]=A,I[16]=S,I[17]=w):w=I[17],w}function g(){let e=d.Jt.getPanelHeight(),t=d.Jt.getPanelWidth(),n=(0,c.useRef)(null),a=(0,c.useRef)(e),r=(0,c.useRef)(e),i=(0,c.useRef)(null),s=(0,c.useRef)(t),l=(0,c.useRef)(t),[o,u]=(0,c.useState)(e),[m,p]=(0,c.useState)(t),g=(0,c.useRef)(0);(0,c.useEffect)(()=>{g.current=parseFloat(getComputedStyle(document.documentElement).fontSize)},[]);let y=e=>Math.min(Math.max(e,h),window.innerHeight-g.current),x=e=>Math.min(Math.max(e,f),window.innerWidth-2*g.current),v=(0,c.useCallback)(e=>{if(null!==n.current){let t=n.current-e.clientY,i=y(a.current+t);u(i),r.current=i}if(null!==i.current){let t=i.current-e.clientX,n=x(s.current+t);p(n),l.current=n}},[]),_=(0,c.useCallback)(()=>{window.removeEventListener("mousemove",v),window.removeEventListener("mouseup",_),null!==n.current&&(d.Jt.setPanelHeight(r.current),n.current=null),null!==i.current&&(d.Jt.setPanelWidth(l.current),i.current=null)},[v]),b=(0,c.useCallback)((e,t,r)=>{0===e.button&&(e.preventDefault(),r&&(n.current=e.clientY,a.current=o),t&&(i.current=e.clientX,s.current=m),window.addEventListener("mousemove",v),window.addEventListener("mouseup",_))},[o,m,v,_]),C=(0,c.useCallback)(e=>{if("ArrowUp"===e.key){let t=y(o+4);u(t),d.Jt.setPanelHeight(t),e.preventDefault()}else if("ArrowDown"===e.key){let t=y(o-4);u(t),d.Jt.setPanelHeight(t),e.preventDefault()}else if("ArrowRight"===e.key){let t=x(m-4);p(t),d.Jt.setPanelWidth(t),e.preventDefault()}else if("ArrowLeft"===e.key){let t=x(m+4);p(t),d.Jt.setPanelWidth(t),e.preventDefault()}},[o,m]);return{panelWidth:m,panelHeight:o,startResize:b,onResizerKeyDown:C}}async function y(e){let t=await fetch(`/search/check_indexing_status?nwo=${encodeURIComponent(e)}`,{headers:{Accept:"application/json",...(0,r.kt)()}});if(!t.ok)return{requestStatus:"request_failed",code:u.Unknown,docs:u.Unknown};let n=await t.json();return{requestStatus:n.can_index,code:n.code_status,docs:n.docs_status}}async function x(e){let t=1===e.length?`nwo=${encodeURIComponent(e[0])}`:`nwos=${encodeURIComponent(JSON.stringify(e))}`;return(0,o.DI)(`/search/index_embeddings?${t}&index_code=true`,{method:"POST"})}},32997(e,t,n){n.d(t,{s:()=>d});var a=n(50467),r=n(94583),i=n(85461),s=n(25891),l=n(378),o=n(57148);let c=["image/gif","image/jpeg","image/png","image/webp"];class d{static getAllowedImageFileExtensions(e){return this.getFileExtensions(e).join(",")}static isTypeAllowed(e,t){return e=e.toLowerCase(),this.getMimeTypes(t).includes(e)}static getAllowedFiles(e,t){let[n,a]=e.reduce(([e,n],a)=>this.isTypeAllowed(a.type,t)?[[...e,a],n]:[e,[...n,a]],[[],[]]);return[n,a]}static getAttachmentLimit(){return s.W.attachMultipleImages?4:1}static getAttachmentSizeLimit(){return 3932160}static makeImageReference(e,t){let n=crypto.randomUUID(),a=new o.N(n,e,t);return{id:n,attachment:a,type:"image",name:e.name||"Image"}}static getFileExtensions(e){if(Array.isArray(e))return Array.from(new Set(e.flatMap(e=>this.getFileExtensions(e))));let t=this.getMimeTypes(e).map(e=>`.${e.split("/")[1]}`);return t.includes(".jpeg")&&t.push(".jpg"),t}static getMimeTypes(e){return Array.isArray(e)?Array.from(new Set(e.flatMap(e=>this.getMimeTypes(e)))):e.capabilities.limits.vision?e.capabilities.limits.vision.supported_media_types.filter(e=>c.includes(e)):[]}async addImageAttachments(e,t="unknown"){if(0===e.length)return[];if(s.W.previewFeaturesVisionGate&&this.state.hasCEorCBAccess&&!this.state.optedInToPreviewFeatures)return this.manager.addAmbientError("Copilot in GitHub.com preview features must be enabled to upload images. Please request access from your administrator and try again."),(0,l.d)("preview_features_not_enabled"),[];let n=this.state.currentReferences.filter(e=>"image"===e.type).length,a=d.getAttachmentLimit();if(n+e.length>a){let e=s.W.attachMultipleImages?`You can add up to ${a} image files per message.`:"Only one image can be uploaded at a time";return this.manager.addAmbientError(e),(0,l.d)("file_limit_reached"),[]}let o=[],c=[];for(let n of e){if(!d.isTypeAllowed(n.type,this.state.model))return(0,l.d)("included_unsupported_file",{fileTypes:n.type,uploadType:t}),[];if(n.size>d.getAttachmentSizeLimit())return this.manager.addAmbientError("Only images below 3.75MB are supported"),(0,l.d)("size_limit_exceeded",{size:n.size}),[];let e=d.makeImageReference(n,this.state.selectedThreadID);if(this.state.model.id.startsWith("claude")&&this.state.model.capabilities.supports.vision){let t=await e.attachment.getDimensions();if(t.width&&t.height&&(t.width>8e3||t.height>8e3)){this.manager.addAmbientError("The image you uploaded exceeds the maximum allowed dimensions for Claude models. Please try again with another model."),(0,l.d)("dimension_limit_exceeded",{width:t.width,height:t.height});continue}}let a=(0,i.Vc)(n.name);this.manager.addReference(a,"image-attacher"),0===c.length&&this.manager.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!0,attachmentType:"file-upload"}),c.push({file:n,placeholder:a,reference:e})}try{c.forEach(({file:e,placeholder:n,reference:a})=>{try{this.manager.setImageAttachmentUploaded(a.id,a.attachment),this.manager.replaceReference(n,a),(0,r.BI)("dotcom_chat.vision.image_added",{uploadType:t}),o.push(a)}catch(a){this.manager.removeReference(n);let t="An unexpected error occurred while reading the file";if("string"==typeof a)throw this.manager.addAmbientError(`An error occurred uploading the attachment ${e.name}`),(0,l.d)("ErrorString",{message:a}),Error(a);if(a instanceof Error)if((0,l.d)(a.name,{message:a.message}),"GenericServerError"===a.name&&a.message.includes("Error creating policy"))this.manager.addAmbientError(t);else throw this.manager.addAmbientError(t),a;else throw this.manager.addAmbientError(t),a}})}finally{this.manager.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!1})}return o}constructor(e,t){(0,a._)(this,"state",void 0),(0,a._)(this,"manager",void 0),this.state=e,this.manager=t}}},378(e,t,n){n.d(t,{d:()=>r});var a=n(94583);function r(e,t){(0,a.BI)("dotcom_chat.vision.error",{type:e,...t})}},10731(e,t,n){n.d(t,{E:()=>c,x:()=>l});var a=n(50467),r=n(94583),i=n(85461),s=n(18291);let l="application/x.clipboard",o=/^\s*`?([\w-_]{3,40}\.\w{1,10})`?\s*$/;class c{static async isAttachable(e){if(e.size>c.getAttachmentSizeLimit())return!1;let t=await e.text();return c.isPlainText(t)}static getTextFileExtensions(){return c.fileExtensionsCache??(c.fileExtensionsCache=Object.values(s.r4).flatMap(e=>e.extensions??[]).filter(e=>"stl"!==e).join(","))}static getAttachmentSizeLimit(){return 512e3}static isPlainText(e){let t=Math.min(e.length,1e3),n=0,a=0;for(let r=0;r127&&a++}let r=n/t,i=a/t;return r<=.1&&i<=.2}async makeReference(e,t){let n=await e.text(),a=e.name||(t?await t:await this.generateFileName(n,e.type));return this.makeReferenceSync(n,a)}makeReferenceSync(e,t){let n=t.split(".").pop();return(0,r.BI)("copilot.attach_pasted_file",{extension:n,characters:e.length}),{type:"thread-scoped-file",name:t,text:e,language:""}}async addAttachment(e,t,n){let a;if(e.size>c.getAttachmentSizeLimit())return void this.manager.addAmbientError("Attached text files must be smaller than 500KB");let r=await e.text();if(!c.isPlainText(r))return void this.manager.addAmbientError(`"${e.name}" has an unsupported file type. Please try again with a plain text file`);if(n)a=this.makeReferenceSync(r,n),this.manager.addReference(a,"text-attacher");else{let n=(0,i.Vc)(e.name);this.manager.addReference(n,"text-attacher"),this.manager.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!0,attachmentType:"file-upload"});try{a=await this.makeReference(e,t),this.manager.replaceReference(n,a)}catch{this.manager.addAmbientError("Failed to process file. Please try again."),this.manager.removeReference(n)}finally{this.manager.dispatch({type:"WAITING_ON_ATTACHMENT",loading:!1})}}return a}async generateFileName(e,t){let n=this.existingFileNames.size>0?` Follow the naming formats used by these existing files: ${Array.from(this.existingFileNames).slice(0,5).join(", ")}`:"",a=await this.manager.service.getSimpleCompletion(`Return a suitable filename for the following file contents. Follow the file naming conventions of the language and do not include any special characters except for period, underscore or hyphens. Try to limit the name to 20 characters or less. You MUST include the file extension. Include only the filename in your response and nothing else.${n} File contents: \`\`\` ${e} \`\`\` `),i=a.ok?o.exec(a.payload)?.[1]:null;return i?(0,r.BI)("copilot.generate_pasted_file_name.success"):(0,r.BI)("copilot.generate_pasted_file_name.failure"),this.uniqueFileName(i??this.defaultFileName(t))}uniqueFileName(e){if(!this.existingFileNames.has(e))return e;let t=e.lastIndexOf("."),n=t>0&&ta});function a(e){return e.selectedThreadID&&e.threads.get(e.selectedThreadID)||null}},17039(e,t,n){n.d(t,{Q:()=>s});let a=/^@(?[\w-.]+\/[\w-.]+)(?:\/(?\w+)\/(?.+))?$/,r=/^@(?[a-zA-Z0-9_.-]+)$/,i={fromUrlType(e){switch(e){case"issues":return"issue";case"pull":return"pull-request";case"discussions":return"discussion";case"blob":case"tree":return"file";case void 0:return"repository"}},fromMentionType(e){switch(e){case"issues":return"issue";case"pull":return"pull-request";case"discussions":return"discussion";case"files":return"file";case void 0:return"repository"}}},s={fromUrl(e){let t;try{t=new URL(e)}catch{return}if(t.hostname!==window.location.hostname||t.search||t.hash)return;let[,n,a,r,...s]=t.pathname.split("/"),l=s.join("/"),o=i.fromUrlType(r);if(n&&a&&o)return{repo:`${n}/${a}`,type:l?o:"repository",id:l}},stringify(e){switch(e.type){case"issue":return`@${e.repo}/issues/${e.id??""}`;case"pull-request":return`@${e.repo}/pull/${e.id??""}`;case"discussion":return`@${e.repo}/discussions/${e.id??""}`;case"repository":return`@${e.repo}`;case"file":return`@${e.repo}/files/${e.id??""}`;case"thread-scoped-file":return`@${e.id??""}`}},parse(e){let t=a.exec(e)?.groups;if(!t){let t=r.exec(e)?.groups;return t?{repo:"",type:"thread-scoped-file",id:t.id}:void 0}let n=i.fromMentionType(t.type);return n?{repo:t.repo,type:n,id:t.id}:void 0},isEqual:(e,t)=>s.stringify(e)===s.stringify(t),refersTo(e,t){let n=s.for(t);return null!==n&&s.isEqual(e,n)},for:e=>{switch(e.type){case"repository":return{type:"repository",repo:`${e.ownerLogin}/${e.name}`,reference:e};case"issue":return{type:"issue",repo:`${e.repository.owner}/${e.repository.name}`,id:e.number.toString(),reference:e};case"pull-request":return{type:"pull-request",repo:`${e.repository.ownerLogin}/${e.repository.name}`,id:e.number.toString(),reference:e};case"discussion":return{type:"discussion",repo:`${e.repository.owner}/${e.repository.name}`,id:e.number.toString(),reference:e};case"file":case"folder":return{type:"file",repo:`${e.repoOwner}/${e.repoName}`,id:e.path,reference:e};case"thread-scoped-file":return{type:"thread-scoped-file",repo:"",id:e.name,reference:e};default:return null}}}},59518(e,t,n){n.d(t,{U:()=>o});var a=n(23274),r=n(91873),i=n(85461),s=n(25891),l=n(17039);let o=function({references:e,agents:t,commands:n}){this.parser=function(o){let c=o.split(/(\s+)/),d=[];for(let[o,u]of c.entries()){if(s.W.chatInputCommands&&0===o){let e=(0,r.V)(u,n);if(e){d.push({type:"command",value:u,data:{command:e}});continue}}let c=0===o&&a.qj.exec(u)?.groups?.slug,m=c&&t.find(e=>e.slug===c);if(m){d.push({type:"agent-mention",value:u,data:{mentionedAgent:m}});continue}let h=l.Q.parse(u),f=h&&e?.find(e=>l.Q.refersTo(h,e));if(h){d.push({type:"reference-mention",value:u,data:{mentionedReferenceId:f&&(0,i.Vb)(f),referenceMention:h}});continue}let p=d.at(-1);p?.type==="text"?p.value+=u:d.push({type:"text",value:u})}return{type:"root",children:d}}}},201(e,t,n){n.d(t,{O:()=>i,_:()=>s});var a=n(47970),r=n(23274);function i(e){let t=new Set;return(0,a.YR)(e,e=>{"reference-mention"===e.type&&void 0!==e.data.mentionedReferenceId&&t.add(e.data.mentionedReferenceId)}),t}function s(e){return r.qj.test(e.split(/\s/)[0]??"")}},96808(e,t,n){n.d(t,{q:()=>a});class a extends Error{constructor(e){super(e),this.name="ChatInputValidationError"}}},60937(e,t,n){n.d(t,{D:()=>_});var a=n(74848),r=n(24661),i=n(45008),s=n(30762),l=n(99623),o=n(94583),c=n(47829),d=n(82799),u=n(44472),m=n(39081),h=n(41431),f=n(46251),p=n(7624),g=n(38750),y=n(96540),x=n(3972),v=n(94143);function _({dialogTitle:e="New Space",closeDialog:t,initialSpace:n,onSubmit:_,returnFocusRef:b}){let C=(0,d.Zp)(),S=(0,y.useRef)(null),w=(0,s.AV)(),[I,R]=(0,y.useState)(n?.name??w),[E,j]=(0,y.useState)(null),[T,A]=(0,y.useState)({}),[N,k]=(0,y.useState)(!1),{upsertCopilotSpace:O,isPending:L}=(0,l.$)(),P=(0,u.S)(),F=(0,y.useCallback)(e=>{k(!1);let t={...T};for(let n of e)t[n]&&delete t[n];A(t)},[T]),M=(0,y.useCallback)(e=>j(e),[]);(0,y.useEffect)(()=>{(0,o.BI)("copilot_spaces.create_space_v3_dialog_opened",{})},[]),(0,y.useEffect)(()=>{S.current?.focus()},[T.name,T.slug]),(0,y.useEffect)(()=>{n?S.current?.focus():S.current?.select()},[n]);let D=async()=>{if(L)return;let e=n?.resources?[...n.resources]:[],i=[];if(n&&E){let t=function(e,t){let n=[],a=[];if("Organization"!==t.type||t.allowsPrivateReposFromOtherOrgs)return{resourcesToSave:e,resourcesThatWillNotTransfer:[]};for(let r of e)"ownerId"in r&&"private"in r&&r.private&&r.ownerId!==t.id?a.push(r):n.push(r);return{resourcesToSave:n,resourcesThatWillNotTransfer:a}}(n.resources||[],E);e=t.resourcesToSave,i=t.resourcesThatWillNotTransfer}let s=!0;if(i.length>0){let e=new Intl.ListFormat().format(Array.from(new Set(i.map(e=>e.ownerLogin).filter(e=>void 0!==e)))),t=`Private resources owned by ${e} will not be duplicated to the new space.`;s=await P({title:"Some resources will not be duplicated",content:(0,a.jsx)(c.BC,{html:t}),cancelButtonContent:"Never mind",confirmButtonContent:"Continue",confirmButtonType:"primary"})}if(s)try{let a=await O({name:I,ownerId:E?.id,ownerType:E?.type,resources:e,generalInstructions:n?.generalInstructions});A({}),k(!1),t(),_?.(),x.Jt.setLastSelectedSpace(a);let i=(0,r.Cb)(a);return C(i)}catch(e){e&&"object"==typeof e&&Object.keys(e).length>0?(k(!1),A(e)):(A({}),k(!0))}},$=()=>{t(),setTimeout(()=>b?.current?.focus(),0)};return(0,a.jsx)(m.l,{position:{narrow:"fullscreen"},title:e,onClose:$,width:"large","aria-label":e,className:"CreateSpaceDialog-module__createSpaceDialog__ivPJH",renderFooter:()=>(0,a.jsx)(i.m,{onCancel:$,onSave:D,isLoading:L,disabled:!E,saveButtonText:"Create Space"}),children:(0,a.jsxs)("form",{onSubmit:async e=>{e.preventDefault(),e.stopPropagation(),await D()},children:[N&&(0,a.jsx)(h.l,{className:"tmp-mb-3",variant:"critical",title:"Error saving space",hideTitle:!0,description:"Something went wrong while saving."}),(0,a.jsxs)(f.B,{children:[(0,a.jsxs)(p.A,{children:[(0,a.jsx)(p.A.Label,{required:!0,children:"Space name"}),(0,a.jsx)(g.A,{ref:S,autoFocus:!0,block:!0,"data-testid":"copilot-space-name-input",name:"copilot-space-name",value:I,onChange:e=>{R(e.target.value),F(["name","slug"])}}),(0,a.jsx)(p.A.Caption,{children:"Choose a name that describes your project or use case"}),T.name?(0,a.jsx)(p.A.Validation,{variant:"error",children:(0,a.jsxs)("span",{children:["Name ",T.name]})}):T.slug?(0,a.jsx)(p.A.Validation,{variant:"error",children:(0,a.jsx)("span",{children:r.j0})}):null]}),(0,a.jsx)(v.E,{onSelect:M})]})]})})}_.displayName="CreateSpaceDialog"},72302(e,t,n){n.d(t,{Q:()=>ed});var a=n(74848),r=n(26108),i=n(39081),s=n(46251),l=n(7624),o=n(21373),c=n(59134),d=n(38621),u=n(96540),m=n(58664),h=n(78994),f=n(2752),p=n(42605),g=n(95915),y=n(8836),x=n(712),v=n(259),_=n(36570),b=n(29827),C=n(99153),S=n(77728),w=n(85501),I=n(35044),R=n(90797),E=n(38489),j=n(62812),T=n(8334),A=n(27159),N=n(35148),k=n(7392),O=n(33304),L=n(82799),P=n(29941),F=n(45800),M=n(66818),D=n(94709),$=n(10095),W=n(91385),U=n(70170),B=n(73702),V=n(70730),z=n(34164);let q=({ref:e,ariaActiveDescendant:t,ariaControls:n,ariaExpanded:r,ariaHasPopup:i,className:s,onBlur:l,onFocus:o,onKeyDown:c,onPreload:m,onSearch:h,query:f,searchPlaceholder:p,loading:g,sx:y})=>{let{sendRepoClickEvent:x}=(0,R.T)(),[v,_]=u.useState(f),b=u.useRef((0,U.s)(e=>h(e),250));u.useEffect(()=>{_(f)},[f]);let C=f?(0,a.jsx)(D.ks.Action,{onClick:()=>{x("FILE_TREE.CANCEL_SEARCH"),h("")},icon:d.XCircleFillIcon,"aria-label":"Clear",className:"fgColor-muted"}):void 0;return(0,a.jsx)(D.ks,{autoFocus:H(),className:(0,z.$)("d-flex",s),ref:e,value:v,onKeyDown:c,onChange:e=>{_(e.target.value),m(),b.current(e.target.value)},sx:y,"aria-label":p||"Go to file","aria-activedescendant":t,role:i?"combobox":void 0,"aria-controls":n,"aria-expanded":r,"aria-haspopup":i?"dialog":void 0,autoCorrect:"off",spellCheck:"false",placeholder:p||"Go to file",loading:""!==f&&g,leadingVisual:d.SearchIcon,trailingAction:C,trailingVisual:C?void 0:()=>(0,a.jsx)(B.E,{children:(0,a.jsx)("kbd",{children:"t"})}),onFocus:e=>{m(),e.target.select(),o?.(e)},onBlur:l,onClick:()=>x("FILE_TREE.SEARCH_BOX")})};function H(){return"1"===new URLSearchParams(V.fV.search).get("search")}q.displayName="FilesSearchBox",q.displayName="FilesSearchBox";let G={excludeDirectories:!1,excludeSeeAllResults:!1};function K({actionListSx:e,additionalResults:t,className:n,commitOid:r,config:i=G,findFileWorkerPath:s,getItemUrl:l,onRenderRow:o,onItemSelected:d,searchBoxRef:m,sx:f}){var p;let g,{excludeDirectories:v,excludeSeeAllResults:_}=i,{query:b,setQuery:S}=(0,x.JS)(),w=(0,y.t)(),I=u.useRef(null),k=m??I,[$,W]=u.useState(b.length>0),[U,B]=u.useState(!!b),{list:V,directories:z,loading:K,error:Q}=(0,h.o)(r,$,!!v),J=(0,C.l)(),{getUrl:X}=(0,E.Z)(),{queryText:Z,queryLine:ee}=(g=(p=(p=b).replaceAll(" ","")).indexOf(":"))>=0?{queryText:p.substring(0,g),queryLine:parseInt(p.substring(g+1),10)}:{queryText:p,queryLine:void 0},{matches:et,clearMatches:en}=function(e,t,n,a){let[r,i]=u.useState(),s=u.useRef(""),l=u.useRef(null),{sendStats:o}=(0,R.T)(),c=u.useRef(!1),d=u.useCallback(()=>{let e=new j.z(n,T.j);e.onmessage=({data:e})=>{c.current=!1,i(e.list),s.current=e.query,e.startTime&&o("repository.find-file",{"find-file-base-count":e.baseCount,"find-file-results-count":e.list.length,"find-file-duration-ms":performance.now()-e.startTime})},l.current=e},[o,n]);return u.useEffect(()=>{if(a)return d(),function(){l.current?.terminate()}},[d,a]),u.useEffect(()=>{if(e.length&&t){c.current&&(l.current?.terminate(),d());let n=s.current&&t.startsWith(s.current);c.current=!0,l.current?.postMessage({baseList:n&&r||e,query:t,startTime:performance.now()})}},[e,t,d]),{matches:r,clearMatches:()=>i(void 0)}}((0,u.useMemo)(()=>[...V,...t??[]].sort(),[t,V]),Z,s,$),{sendRepoClickEvent:ea}=(0,R.T)(),er=(0,L.Zp)(),[ei,es]=u.useState(0),[el,eo]=u.useState(()=>H()),ec=u.useRef(null),ed=u.useRef(null),eu="file-results-list",{sendRepoKeyDownEvent:em}=(0,R.T)(),{screenSize:eh}=(0,O.lm)(),ef=i.enableOverlay??eh>=O.Gy.large,ep=u.useCallback(e=>{ea("FILE_TREE.SEARCH_RESULT_CLICK"),d?.(e),B(!1)},[ea,d]),eg=(e,t,n)=>l?l(e,t,n):X({path:e,action:t?"tree":"blob",hash:n}),{containerRef:ey}=(0,F.G)({bindKeys:P.z0.ArrowVertical|P.z0.HomeAndEnd,focusInStrategy:"previous"},[K,Q]);u.useEffect(()=>{b||B(!1)},[b]),u.useEffect(()=>{document.activeElement!==k.current&&ef&&B(!1)},[J,k,ef]);let ex=et?.slice(0,20)||[],ev=et&&et.length>ex.length,e_=!i.disableNavigation,eb=ed.current?.getBoundingClientRect().width,eC=(0,a.jsx)(D.az,{sx:{maxHeight:ef?"180px":"100% !important",width:ef?eb:"100%"},className:"FileResultsList-module__Box__D4E8B",children:Q?(0,a.jsx)(c.A,{variant:"danger",className:"tmp-m-3",children:"Failed to search"}):(0,a.jsxs)(D.lF,{ref:ey,sx:{p:ef?2:3,pr:3*!!ef,pt:ef?3:"2px !important",...e},role:"listbox",className:"FileResultsList-module__ActionList__ja94g",children:[!K&&ex.map((e,t)=>{let n=z.includes(e),r=eg(e,n,ee?`L${ee}`:"");return(0,a.jsx)(Y,{active:!1,index:t,focused:el&&ei===t,match:e,onRender:o,query:Z,onClick:ep,isDirectory:n,to:r,useOverlay:ef,listRef:ey,noAnchor:i.disableNavigation},e)}),0===ex.length&&(0,a.jsx)("div",{role:"status",className:"text-center fgColor-muted",children:"No matches found"})]})});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(D.az,{className:n,ref:ed,sx:f,children:(0,a.jsx)(q,{ariaActiveDescendant:(!ef&&b||ef&&U)&&el&&ei>-1?ev&&ei===ex.length?"see-all-results-link":`file-result-${ei}`:void 0,ariaExpanded:ef?U:void 0,ariaHasPopup:ef,ariaControls:ef?eu:void 0,ref:k,loading:K,query:b,onKeyDown:e=>{let{key:t,shiftKey:n,metaKey:a,altKey:r,ctrlKey:i}=e;if(!n&&!a&&!r){if("Escape"===t)b?(em("FILE_TREE.CANCEL_SEARCH"),S(""),en()):document.activeElement&&document.activeElement.blur();else if(!b)return;else if("Enter"===t){if(!_&&ev&&ei===ex.length)e_&&er((0,N.Y8Y)({owner:w.ownerLogin,repo:w.name,searchTerm:`path:${Z}`})),d?.();else if(ex[ei]){let e=ex[ei];e_&&er(eg(ex[ei],!1,ee?`L${ee}`:"")),B(!1),d?.(e)}}else if("ArrowDown"===t||i&&"n"===t){if(!_&&ev&&ei>=ex.length-1){if(es(ex.length),ec.current&&ey.current){let e=(0,A.U)(ey.current);(0,P.Rt)(ec.current,e,{behavior:"instant"})}}else es(Math.min(ei+1,ex.length-1));e.preventDefault();return}else if("ArrowUp"===t||i&&"p"===t){es(Math.max(ei-1,0)),e.preventDefault();return}}},onPreload:()=>W(!0),onSearch:e=>{S(e),e?B(!0):(en(),B(!1)),es(0)},onBlur:e=>{ey.current?.contains(e.relatedTarget)||(B(!1),eo(!1))},onFocus:()=>{b&&B(!0),eo(!0)},searchPlaceholder:i.searchPlaceholder,className:"FileResultsList-module__FilesSearchBox__yytPI"})}),ef&&ex.length>0&&(0,a.jsx)(M.T,{anchorRef:ed,open:ef&&U,renderAnchor:null,onClose:()=>{B(!1)},focusZoneSettings:{disabled:!0},focusTrapSettings:{disabled:!0},align:"end",overlayProps:{id:eu,role:"dialog"},children:eC}),!ef&&b&&eC]})}K.displayName="FileResultsList";let Q=({active:e,focused:t,index:n,match:r,query:i,to:s,isDirectory:l,onClick:o,onRender:c,useOverlay:d,listRef:m,noAnchor:h})=>{let f=(0,W.Xq)(i,r);c?.();let p=u.useRef(null),g=l?J:X;u.useEffect(()=>{if(t&&p.current&&m?.current){let e=(0,A.U)(m.current);(0,P.Rt)(p.current,e,{behavior:"instant"})}},[t,m]);let y={};t&&(y={outline:"none",border:"2 solid",boxShadow:"0 0 0 2px #0969da"});let x={id:`file-result-${n}`,active:e,onSelect:(0,u.useCallback)(()=>{o?.(r)},[r,o]),sx:{fontWeight:"normal",":hover":{textDecoration:"none"},mx:"2px",width:"calc(100% - 4px)",...y},role:"option","data-focus-visible-added":t||void 0,tabIndex:d?-1:0},v=(0,a.jsx)("div",{className:"d-flex",children:(0,a.jsx)("div",{className:"d-flex flex-1 flex-column overflow-hidden",children:(0,a.jsx)(Z,{text:r,positionsList:f,LeadingIcon:g,className:"FileResultsList-module__HighlightMatch__QPJyX"})})});return h?(0,a.jsx)(D.lF.Item,{...x,children:v},r):(0,a.jsx)(D.lF.LinkItem,{...x,ref:p,as:k.N,to:s,children:v},r)};Q.displayName="FileResultRow";let J=()=>(0,a.jsx)($.A,{"aria-label":"Directory",icon:d.FileDirectoryFillIcon,size:"small",className:"FileResultsList-module__Octicon__n4fcw"});J.displayName="DirectoryIcon";let X=()=>(0,a.jsx)($.A,{"aria-label":"File",icon:d.FileIcon,className:"fgColor-muted mr-2",size:"small"});X.displayName="FileResultIcon";let Y=u.memo(Q);function Z({className:e,text:t,positionsList:n,sx:r,LeadingIcon:i}){let s=[],l=0;for(let e of n){if(Number(e)!==e||et.length)continue;let n=t.slice(l,e);n&&s.push(ee(n)),l=e+1,s.push((0,a.jsx)("mark",{className:"text-bold bgColor-transparent fgColor-default",children:t[e]},e))}return s.push(ee(t.slice(l))),(0,a.jsx)(D.az,{className:e,sx:r,children:(0,a.jsxs)(a.Fragment,{children:[i&&(0,a.jsx)(i,{}),s]})})}function ee(e){return e.replaceAll("/","/\u200B")}Y.displayName="MemoizedFileResultRow",Z.displayName="HighlightMatch";var et=n(94583);let en=new Set(Object.values(n(18291).r4).flatMap(e=>e.extensions??[])),ea=new Set([".png",".jpg",".jpeg",".gif",".bmp",".svg",".webp",".ico",".tiff",".tif"]);function er(e,t,n){return{id:`${n.id}${"github_folder"===t?"-folder":""}-${e}`,repositoryId:n.id,nwo:`${n.ownerLogin}/${n.name}`,filePath:e,sha:n.defaultBranch,type:t}}function ei(e,t,n,a,r,i){let s=Array.from(e).filter(e=>t.has(e)),l=Array.from(e).filter(e=>!t.has(e));if(!i)return l.map(e=>er(e,"github_file",n));let o=[],c=new Set;for(let e of s){if(s.some(t=>t!==e&&e.startsWith(`${t}/`)))continue;let t=l.filter(t=>t.startsWith(`${e}/`));if(i&&0===t.length){o.push(er(e,"github_folder",n));continue}if(i&&t.length>=r)for(let a of(o.push(er(e,"github_folder",n)),t))c.add(a);else for(let e of t)o.push(er(e,"github_file",n)),c.add(e)}let d=l.filter(e=>!c.has(e));if(a&&i){let e=new Map;for(let t of d){let n=t.lastIndexOf("/"),a=n>0?t.substring(0,n):"";e.has(a)||e.set(a,[]),e.get(a)?.push(t)}for(let[t,a]of e)if(""===t)for(let e of a)o.push(er(e,"github_file",n));else o.push(er(t,"github_folder",n))}else for(let e of d)o.push(er(e,"github_file",n));return o}function es(e,t=30){return e.length<=t?e:`...${e.slice(-t)}`}function el({files:e,error:t}){if(0===e.length)return null;if(1===e.length&&e[0])return(0,a.jsxs)(a.Fragment,{children:[t?"This file can't be submitted: ":"This file was filtered out: "," ",(0,a.jsx)("strong",{children:es(e[0])}),". Only supported file types are allowed."]});let n=e.slice(0,3),r=e.length-3;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{children:t?"These files can't be submitted: ":"These files were filtered out: "}),n.map((e,t)=>(0,a.jsxs)("span",{children:[t>0&&(0,a.jsx)("span",{children:", "}),(0,a.jsx)("strong",{children:es(e)})]},e)),r>0&&(0,a.jsxs)("span",{children:[", and ",r," more"]}),(0,a.jsx)("span",{children:". Only supported file types are allowed."})]})}function eo({currentRepo:e,setLocalFormData:t,fetchError:n,onFileCountChange:r,expandedPath:i,resourceCounts:s,allowFolderReferences:l,maxFileCount:o,onRejectionMessage:c,onDisplayCountChange:d,onFilteredFilesChange:m}){let[g,y]=(0,u.useState)(()=>new Set),[x,v]=(0,u.useState)(()=>new Set),_=o??50,{list:b,directories:C,loading:S}=(0,h.o)(e.commitOID,!0),[w,I]=(0,u.useState)([]);(0,u.useEffect)(()=>{I((0,f.k)({paths:b,directories:C})),v(new Set(C))},[b,C,I,e.commitOID]),(0,u.useEffect)(()=>{let n=Array.from(g).filter(e=>!x.has(e)),a=Array.from(g).filter(e=>x.has(e));r?.(n.length);let i=!1;if(l&&n.length>0){let e=a.map(e=>`${e}/`),t=n.filter(t=>!e.some(e=>t.startsWith(e))),r=t.some(e=>e.includes("/"));i=t.length>_&&r}let s=ei(g,x,e,i,_,l??!1);t(s),d&&d(s.length)},[g,x,e,t,r,d,l,_]);let R=(0,u.useCallback)(t=>`/${e.name}/${e.ownerLogin}/tree/${e.refInfo.name}/${t.path}`,[e]),E=(0,u.useCallback)(t=>{let n=Array.from(t).filter(e=>!g.has(e)),a=[],r=[];for(let e of n){let t=x.has(e);!function(e,t){if(t)return!0;let n=e.lastIndexOf("."),a=e.lastIndexOf("/");if(-1===n||n0?m?.(a):i.size<=g.size&&m?.([]),i.size<=g.size){y(i),c?.(null);return}if(!l){let e=Array.from(i).filter(e=>!x.has(e)),t=s?s.maxResourceCount-s.currentResourceCount:_;if(e.length>t){let t=s?`${s.currentResourceCount+e.length} / ${s.maxResourceCount} possible sources selected, add fewer files.`:`Up to ${_} files can be added at a time.`;c?.(t),y(i);return}c?.(null),y(i);return}let o=Array.from(i).filter(e=>!x.has(e)),d=Array.from(i).filter(e=>x.has(e)).map(e=>`${e}/`),u=o.filter(e=>!d.some(t=>e.startsWith(t))),h=u.some(e=>e.includes("/"));ei(i,x,e,u.length>_&&h,_,l).length,y(i)},[g,_,x,l,c,e,s,m]);return(0,a.jsx)("div",{className:"MultiFilePicker-module__Box__bRbLt",children:(0,a.jsx)(p.Rw,{rootItems:w,expandedPath:i,selectedItemRef:()=>{},setRootItems:I,navigateOnClick:!1,directoryNavigateOnClick:!1,selectedItems:g,onSelectionChange:E,loading:S||!1,fetchError:!!n,getItemUrl:R,allowFolderReferences:!!l,sortDirectoryItems:e=>e.sort((e,t)=>e.data.name.localeCompare(t.data.name))})})}function ec({onClose:e}){return(0,a.jsx)(r.K,{icon:d.XIcon,"aria-label":"Close",onClick:e,variant:"invisible"})}function ed({formData:e,onCancel:t,onSaveFiles:n,findFileWorkerPath:h,attachmentButtonRef:f,owner:p,resourceCounts:R,initialRepo:E,onRepoSelect:j,hideBackButton:T=!1,allowFolderReferences:A=!1,maxFileCount:N=50}){let[k,O]=(0,u.useState)({}),[L,P]=(0,u.useState)(null),[F,M]=(0,u.useState)(E||null),[D,$]=(0,u.useState)(!0),[W,U]=(0,u.useState)(e),[B,V]=(0,u.useState)(!1),[z,q]=(0,u.useState)(null),[H,G]=(0,u.useState)(""),[Q,J]=(0,u.useState)(null),[X,Y]=(0,u.useState)(0),[Z,ee]=(0,u.useState)(0),[en,ea]=(0,u.useState)([]),er=(0,u.useRef)(!1),ei=async e=>{let t;if(er.current=!0,k[e]){M(t=k[e]),j?.(t);return}try{t=await (0,m.V)(e),O(n=>({...n,[e]:t})),M(t),j?.(t),$(!1)}catch(e){P(e instanceof Error?e.message:"An unknown error occurred")}er.current=!1},es=()=>{j?.(null),M(null),U([]),$(!0)},ed=void 0!==R,eu=(ed?Z:X)>(ed?R.maxResourceCount-R.currentResourceCount:N),em=async()=>{V(!0);try{if(eu)return;(0,et.BI)("copilot-spaces.click",{target:"SAVED_FILES_FROM_FILE_PICKER"}),await n(W)}catch(t){let e={errorMessage:"An unknown error occurred",filePaths:[]};t&&"object"==typeof t&&"base"in t&&"string"==typeof t.base&&(t.base.startsWith("unsupported_file_type")&&"files"in t?e.filePaths=t.files:t.base.startsWith("The size of the space exceeds the current limit")?e.errorMessage="The size of the space exceeds the current limit":e.errorMessage=t.base),q(e)}finally{V(!1)}};(0,u.useEffect)(()=>{q(null)},[W]);let eh=eu?ed?`${R.currentResourceCount+Z} / ${R.maxResourceCount} possible sources selected, add fewer files.`:`Up to ${N} items can be added at a time.`:Q,ef=eu||!!Q;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(g.X,{selectionVariant:"instant",open:!F&&D,onOpenChange:e=>{er.current||($(e),t())},selectedRepoIds:new Set,onSelectRepo:async e=>{e&&(U([]),(0,et.BI)("copilot-spaces.click",{target:"SELECTED_REPO_FROM_REPO_PICKER"}),await ei(e))},cancelReturnFocusRef:f,submitReturnFocusRef:f,error:L??void 0,ownerDisplayLogin:p,includeForks:!0}),F&&(0,a.jsx)(i.l,{onClose:t,title:`Add files from ${F.ownerLogin}/${F.name}`,width:"large",position:{narrow:"fullscreen"},renderHeader:({onClose:e,dialogLabelId:t})=>(0,a.jsxs)(i.l.Header,{children:[(0,a.jsx)("div",{className:"MultiFilePicker-module__dialogHeader__uFsP2",children:(0,a.jsx)(i.l.Title,{id:t,children:(0,a.jsxs)(s.B,{align:"center",direction:"horizontal",gap:"none",children:[!T&&(0,a.jsx)(s.B.Item,{children:(0,a.jsx)(r.K,{icon:d.ArrowLeftIcon,"aria-label":"Back",onClick:es,variant:"invisible"})}),(0,a.jsxs)(s.B.Item,{grow:!0,className:"mx-1",children:["Select folders and files in ",F.ownerLogin,"/",F.name]}),(0,a.jsx)(s.B.Item,{children:(0,a.jsx)(ec,{onClose:()=>e("close-button")})})]})})}),(0,a.jsx)(i.l.Subtitle,{className:"mt-0",children:(0,a.jsx)(y.d,{repository:F,children:(0,a.jsx)(x.Ck,{children:(0,a.jsx)(C.n,{path:"test",children:(0,a.jsx)(S.O,{action:"tree",children:(0,a.jsx)(v.d,{copilotAccessAllowed:!0,children:(0,a.jsx)(b.x,{refInfo:{name:F.refInfo.name,canEdit:!0,listCacheKey:"anything",currentOid:F.commitOID},children:(0,a.jsx)(_.O,{canEdit:!0,canEditOnDefaultBranch:!1,fileExistsOnDefault:!1,children:(0,a.jsx)(w.$,{allShortcutsEnabled:!1,children:(0,a.jsx)(K,{commitOid:F.commitOID,findFileWorkerPath:h,onItemSelected:e=>{e&&G(e)},config:{enableOverlay:!0,disableNavigation:!0,searchPlaceholder:"Search for files or folders",actionText:"Search for files or folders"}})})})})})})})})})})]}),renderFooter:()=>(0,a.jsx)(i.l.Footer,{children:(0,a.jsxs)("div",{className:"d-flex flex-justify-between flex-items-center width-full",children:[(0,a.jsx)("div",{className:"d-flex flex-items-center",children:eh&&(0,a.jsx)(l.A.Validation,{variant:"error",children:eh})}),(0,a.jsxs)("div",{className:"d-flex flex-row flex-justify-end gap-2",children:[(0,a.jsx)(o.Q,{onClick:t,children:"Cancel"}),(0,a.jsx)(o.Q,{...(0,I.G)("save-resource-button"),variant:"primary",onClick:em,count:B?void 0:(ed?Z:X)||void 0,loading:B,disabled:ef,children:"Add"})]})]})}),renderBody:()=>(0,a.jsxs)("div",{className:"d-flex flex-column",children:[L&&(0,a.jsx)("span",{children:L}),z&&(0,a.jsx)("div",{className:"position-sticky top-0 bgColor-default flash-banner",children:(0,a.jsx)(c.A,{full:!0,variant:"danger",children:z.filePaths.length>0?(0,a.jsx)(el,{files:z.filePaths,error:!0}):(0,a.jsx)("span",{children:z.errorMessage})})}),en.length>0&&(0,a.jsx)("div",{className:"position-sticky top-0 bgColor-default flash-banner",children:(0,a.jsx)(c.A,{full:!0,variant:"warning",children:(0,a.jsx)(el,{files:en})})}),(0,a.jsx)(y.d,{repository:F,children:(0,a.jsx)(x.Ck,{children:(0,a.jsx)(C.n,{path:"test",children:(0,a.jsx)(S.O,{action:"tree",children:(0,a.jsx)(v.d,{copilotAccessAllowed:!0,children:(0,a.jsx)(b.x,{refInfo:{name:F.refInfo.name,canEdit:!0,listCacheKey:"anything",currentOid:F.commitOID},children:(0,a.jsx)(_.O,{canEdit:!0,canEditOnDefaultBranch:!1,fileExistsOnDefault:!1,children:(0,a.jsx)(eo,{expandedPath:H,currentRepo:F,localFormData:W,setLocalFormData:U,onFileCountChange:ee,onDisplayCountChange:Y,fetchError:L,resourceCounts:R,allowFolderReferences:A,maxFileCount:N,onRejectionMessage:J,onFilteredFilesChange:ea})})})})})})})})]}),className:"MultiFilePicker-module__Dialog__vl57t"})]})}el.displayName="FilteredFilesWarning",eo.displayName="FilePickerForm",ec.displayName="CloseButton",ed.displayName="MultiFilePicker"},42605(e,t,n){n.d(t,{Rw:()=>A});var a=n(74848),r=n(90797),i=n(38489),s=n(89497),l=n(63187),o=n(82799),c=n(38621),d=n(58630),u=n(85965),m=n(7478),h=n(94709),f=n(10095),p=n(96540),g=n(58388),y=n(52870);function x(e,t,n){let a=[];for(let r of t)if(r.startsWith(e)){let t=r.slice(e.length+1),i=t.indexOf("/"),s=i>0?t.slice(0,i):t,l=`${e}/${s}`;if(n&&n.some(e=>e.path===l))continue;let o={items:[],data:{contentType:l===r?"file":"directory",name:s,path:l,isClientOnly:!0}};a.push(o)}return a}let v="FileTreePicker-module__checkbox__Lycbe",_="FileTreePicker-module__itemContainer__vS5F4";var b=n(94583);function C(e,t){let n=new Set(e);switch(t.type){case"SINGLE_SELECT_FILE":n.clear(),n.add(t.path),(0,b.BI)("copilot-spaces.click",{target:"FILE_PICKER",action:"SINGLE_SELECT_FILE",newFileCount:n.size});break;case"SELECT_FILE":n.add(t.path),(0,b.BI)("copilot-spaces.click",{target:"FILE_PICKER",action:"SELECT_FILE",newFileCount:n.size});break;case"DESELECT_FILE":n.delete(t.path),(0,b.BI)("copilot-spaces.click",{target:"FILE_PICKER",action:"DESELECT_FILE",newFileCount:n.size});break;case"SELECT_DIRECTORY":for(let e of t.paths)n.add(e);(0,b.BI)("copilot-spaces.click",{target:"FILE_PICKER",action:"SELECT_DIRECTORY",newFileCount:n.size,directoryCount:t.paths.length});break;case"DESELECT_DIRECTORY":for(let e of t.paths)n.delete(e);(0,b.BI)("copilot-spaces.click",{target:"FILE_PICKER",action:"DESELECT_DIRECTORY",newFileCount:n.size,directoryCount:t.paths.length})}return n}function S({isActive:e,file:t,onItemSelected:n,getItemUrl:i,selectedItemRef:o,navigate:m,onRenderRow:h,getFileTrailingVisual:f,getFileIcon:g,navigateOnClick:y,isSelected:x,singleSelect:b}){let{sendRepoClickEvent:C}=(0,r.T)(),S=p.useRef(null),w=(0,l.Z)({focusRowRef:S,mouseRowRef:S}),I="submodule"===t.data.contentType,R=f?.(t.data);(0,p.useEffect)(()=>{e&&S.current&&requestAnimationFrame(()=>{S.current?.scrollIntoView({block:"center"})})},[e]);let E=p.useCallback(e=>{I?(e.preventDefault(),t.data.submoduleUrl&&(window.location.href=t.data.submoduleUrl)):e.metaKey||e.ctrlKey||1===e.button?(window.open(i?.(t.data),"_blank"),e.preventDefault()):(n?.(t.data,t),C("FILES_TREE.ITEM",{item_path:t.data.path}),y&&m(i?.(t.data)||""),e.stopPropagation())},[t,i,I,m,y,n,C]);return h?.(),(0,a.jsxs)(d.G.Item,{ref:S,onSelect:E,current:e,id:`${t.data.path}-item`,containIntrinsicSize:e?void 0:"auto 2rem",children:[(0,a.jsx)(d.G.LeadingVisual,{children:g?g(t.data):I?(0,a.jsx)(c.FileSubmoduleIcon,{}):(0,a.jsx)(c.FileIcon,{})}),(0,a.jsxs)("div",{className:_,children:[!b&&(0,a.jsx)(u.A,{className:v,checked:x||!1,readOnly:!0,"aria-label":`Select ${t.data.name}`}),(0,a.jsx)("span",{ref:o,style:{color:I?"var(--fgColor-accent, var(--color-accent-fg))":void 0},children:(0,a.jsx)("span",{"data-testid":`${t.data.path}-file-item`,children:t.data.name})})]}),w&&(0,a.jsx)(s.m,{"data-testid":`${t.data.name}-item-tooltip`,id:`${t.data.name}-item-tooltip`,contentRef:S,"aria-label":t.data.name,open:!0,direction:"ne"}),!!R?.screenReaderText&&(0,a.jsx)("span",{className:"sr-only",children:R.screenReaderText}),!!R?.trailingVisual&&(0,a.jsx)(d.G.TrailingVisual,{children:R.trailingVisual})]})}S.displayName="WrappedFileTreeRow";let w=p.memo(S);w.displayName="FileTreeRow";let I=p.memo(u.A);function R({clientOnlyFilePaths:e,directory:t,isActive:n,isAncestorOfActive:i,leadingPath:o,onItemSelected:c,getItemUrl:u,getFetchUrl:m,selectedItemRef:h,navigate:f,onRenderRow:b,getFileTrailingVisual:C,getFileIcon:S,navigateOnClick:w,selectedChildren:R,expandedPath:E,singleSelect:j}){let[A,k]=(0,p.useState)(i),{sendRepoClickEvent:O}=(0,r.T)(),L=p.useRef(null),P=p.useRef(null),F=(0,l.Z)({focusRowRef:P,mouseRowRef:L}),M=p.useMemo(()=>R?R.filter(e=>e===t.data.path||e.startsWith(`${t.data.path}/`)):[],[R,t.data.path]),D=p.useMemo(()=>R?.includes(t.data.path)??!1,[R,t.data.path]),$=t.items.length>1e3,W=p.useMemo(()=>(function(e,t,n){if(n?.selectedSelf&&n?.isLarge)return"all";if(!t||0===t.length)return"none";let a=new Set(t);if(n?.isLarge&&a.has(e.data.path))return"all";let r=e=>{let t=new Set;for(let n of e.items)if("directory"===n.data.contentType)for(let e of r(n))t.add(e);else t.add(n.data.path);return t},i=r(e),s=Array.from(i).filter(e=>a.has(e)).length;return 0===s?"none":s===i.size?"all":"partial"})(t,M,{selectedSelf:D,isLarge:$}),[t,M,D,$]),[U,B,V,z,q,H,G]=function(e,t,n){let[a,r]=p.useState(e.items),[i,s]=p.useState(e.data.totalCount||0),[l,o]=p.useState(!1),[c,d]=p.useState(!1),{safeSetTimeout:u}=(0,y.A)();p.useEffect(()=>{r(e.items)},[e.items]),p.useEffect(()=>{void 0!==e.data.totalCount&&s(e.data.totalCount)},[e.data.totalCount]);let m=p.useCallback(()=>{d(!1)},[]),h=p.useCallback((e,t)=>{let n=e||[...a];r(n.slice(0,100)),u(()=>{r(n),void 0!==t&&s(t)},1)},[a,u]);return[p.useCallback(async a=>{let i=new Map;if(e.data.isClientOnly){if(a){let n=x(e.data.path,a);for(let e of n)i.set(e.data.path,e);t({type:"add",folders:i,processingTime:0}),n.length>100?h(n,n.length):(r(n),s(n.length))}}else{let l=n(e.data);d(!1),o(!0);let c=Date.now(),u=await (0,g.lS)(`${l}?noancestors=1`);try{if(u.ok){let n=await u.json(),l=n.payload.tree.items.map(e=>{let t={items:[],data:{...e},autoExpand:"directory"===e.contentType&&1===n.payload.tree.items.length};return(i.set(e.path,t),e.hasSimplifiedPath)?function e(t,n,a){t.data.name=t.data.name.slice(t.data.name.lastIndexOf("/")+1,t.data.name.length);let r=n.name.slice(0,n.name.lastIndexOf("/")),i=r.indexOf("/")>-1,s={path:n.path.slice(0,n.path.lastIndexOf("/")),contentType:n.contentType,name:r,hasSimplifiedPath:i},l={items:[t],data:s};return(a.set(s.path,l),i)?e(l,{...s},a):l}(t,e,i):t});if(a){let t=e.data.path,r=x(t,a,n.payload.tree.items);for(let e of(l.push(...r),r))i.set(e.data.path,e)}t({type:"add",folders:i,processingTime:Date.now()-c}),e.items=l,e.data.totalCount=n.payload.tree.totalCount,l.length>100?h(l,n.payload.tree.totalCount):(r(l),s(n.payload.tree.totalCount))}else d(!0)}catch{d(!0)}}o(!1)},[n,e,t,h]),h,a,l,c,m,i]}(t,()=>{},m),K=o?`${o}/`:"",Q=G-V.length;(0,p.useEffect)(()=>{n&&L.current&&requestAnimationFrame(()=>{L.current?.scrollIntoView({block:"center"})})},[n]);let J=p.useCallback(e=>{!e||A||z||q||!(t.items.length>100)||B(),e!==A&&k(e)},[A,z,q,t.items.length,B]),X=p.useCallback(e=>{e.metaKey||e.ctrlKey||1===e.button&&w?(window.open(u?.(t.data),"_blank"),e.preventDefault()):(j?J(!A):(c?.(t.data,t),O("FILES_TREE.ITEM",{item_path:t.data.path}),w&&f(u?.(t.data)||"")),e.stopPropagation())},[t,u,A,f,w,c,J,O,j]);p.useEffect(()=>{i&&!A&&J?.(!0)},[i]),p.useEffect(()=>{0===t.items.length&&A?J?.(!1):!A&&t.autoExpand&&J?.(!0)},[t.items.length]);let Y=p.useCallback(e=>{h&&n&&h(e),L.current=e},[h,n]);if(1===t.items.length){let r=t.items[0];if(r&&"directory"===r.data.contentType)return(0,a.jsx)(T,{clientOnlyFilePaths:e,directoryItems:t.items,leadingPath:K+t.data.name,inheritsActive:n,onItemSelected:c,selectedItemRef:h,getItemUrl:u,directoryNavigateOnClick:w,navigateOnClick:w,getFileTrailingVisual:C,getFileIcon:S,selectedChildren:M,expandedPath:E,singleSelect:j})}return b?.(),(0,a.jsxs)(d.G.Item,{ref:P,expanded:A,onExpandedChange:J,current:n,onSelect:X,id:`${t.data.path}-item`,containIntrinsicSize:n?void 0:"auto 2rem",children:[(0,a.jsx)(d.G.LeadingVisual,{children:(0,a.jsx)(d.G.DirectoryIcon,{})}),(0,a.jsxs)("div",{className:_,children:[!j&&(0,a.jsx)(I,{className:v,checked:"all"===W,indeterminate:"partial"===W,readOnly:!0,"aria-label":`Select ${t.data.name}`,"data-indeterminate":"partial"===W?"true":void 0}),(0,a.jsxs)("span",{ref:Y,children:[K&&(0,a.jsx)("span",{children:K}),(0,a.jsx)("span",{"data-testid":`${t.data.path}-directory-item`,children:t.data.name})]})]}),F&&(0,a.jsx)(s.m,{"data-testid":`${t.data.name}-directory-item-tooltip`,id:`${t.data.name}-directory-item-tooltip`,contentRef:P,"aria-label":`${K}${t.data.name}`,open:!0,direction:"ne"}),(0,a.jsx)(d.G.SubTree,{state:z?"loading":q?"error":"done",children:q?(0,a.jsx)(d.G.ErrorDialog,{onRetry:U,onDismiss:H,children:"There was an error loading the folder contents."}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(T,{clientOnlyFilePaths:e,directoryItems:V,onItemSelected:c,selectedItemRef:h,getItemUrl:u,directoryNavigateOnClick:w,navigateOnClick:w,getFileTrailingVisual:C,getFileIcon:S,selectedChildren:M,expandedPath:E,singleSelect:j}),Q>0&&(0,a.jsx)(N,{message:`${Q} entries not shown`})]})})]})}I.displayName="MemoizedCheckbox",R.displayName="WrappedDirectoryTreeRow";let E=p.memo(R,(e,t)=>e.isActive===t.isActive&&e.isAncestorOfActive===t.isAncestorOfActive&&e.directory===t.directory&&(e.selectedChildren===t.selectedChildren||0===e.selectedChildren.length&&0===t.selectedChildren.length)&&e.expandedPath===t.expandedPath);function j({clientOnlyFilePaths:e,directoryItems:t,leadingPath:n,inheritsActive:r,onItemSelected:s,selectedItemRef:l,onRenderRow:c,getItemUrl:d,getFileTrailingVisual:u,getFileIcon:m,directoryNavigateOnClick:h,navigateOnClick:f,selectedChildren:g,expandedPath:y,singleSelect:x}){let v=(0,i.Z)(),_=(0,o.Zp)(),b=p.useRef(_),C=p.useRef(s);p.useEffect(()=>{C.current=s,b.current=_},[s,_]);let S=p.useCallback((e,t)=>{C.current?.(e,t)},[]),I=p.useMemo(()=>t.map(t=>{let i=y===t.data.path,s=g?.includes(t.data.path),o=i||y.startsWith(`${t.data.path}/`),p=g?.filter(e=>e===t.data.path||e.startsWith(`${t.data.path}/`))||[];return"directory"===t.data.contentType?(0,a.jsx)(E,{clientOnlyFilePaths:e,isActive:r||i,isAncestorOfActive:o,onItemSelected:S,leadingPath:n,directory:t,getItemUrl:d,getFetchUrl:v.getItemUrl,selectedItemRef:o?l:void 0,navigate:_,onRenderRow:c,navigateOnClick:h,getFileTrailingVisual:u,getFileIcon:m,itemCount:t.items.length,isSelected:s,selectedChildren:p,expandedPath:y,singleSelect:x},t.data.name):(0,a.jsx)(w,{onItemSelected:S,file:t,isActive:i,getItemUrl:d,selectedItemRef:i?l:void 0,navigate:_,navigateOnClick:f,onRenderRow:c,getFileTrailingVisual:u,getFileIcon:m,isSelected:s,singleSelect:x},t.data.name)}),[t,y,g,S,d,l,_,f,c,u,m,x,e,r,n,v.getItemUrl,h]);return(0,a.jsx)(a.Fragment,{children:I})}E.displayName="DirectoryTreeRow",j.displayName="WrappedDirectoryContents";let T=p.memo(j);function A(e){let{clientOnlyFilePaths:t,rootItems:n,fetchError:r,loading:i,onRenderRow:s,getItemUrl:l,getFileTrailingVisual:o,getFileIcon:c,expandedPath:u,onSelectionChange:f}=e,[g,y]=(0,p.useReducer)(C,new Set),x=e.selectedItems||g,v=(0,p.useCallback)(e=>{let t=new Set;if(t.add(e.data.path),"directory"===e.data.contentType)for(let n of e.items)for(let e of v(n))t.add(e);return Array.from(t)},[]),_=(0,p.useCallback)((t,n)=>{var a;let r=(a=!!e.singleSelect,a?{type:"SINGLE_SELECT_FILE",path:t}:n?{type:"DESELECT_FILE",path:t}:{type:"SELECT_FILE",path:t});f?f(C(x,r)):y(r)},[f,e.singleSelect,x]),b=(0,p.useCallback)((t,n)=>{if(e.allowFolderReferences&&t.items.length>1e3){let e=t.data.path,n=x.has(e)?{type:"DESELECT_FILE",path:e}:{type:"SELECT_FILE",path:e};f?f(C(x,n)):y(n);return}let a=v(t),r=n?{type:"DESELECT_DIRECTORY",paths:a}:{type:"SELECT_DIRECTORY",paths:a};f?f(C(x,r)):y(r)},[v,f,x,e.allowFolderReferences]),S=(0,p.useCallback)((t,n)=>{if("directory"===t.contentType){if(e.allowFolderReferences&&n.items.length>1e3)return void b(n,x.has(t.path));let a=v(n),r=a.filter(e=>x.has(e)),i=r.length>0,s=a.length===r.length;i&&!s?b(n,!0):b(n,s)}else _(t.path,x.has(t.path))},[v,b,_,x,e.allowFolderReferences]),w=(0,p.useCallback)(e=>{1===e.button&&e.preventDefault()},[]);return(0,a.jsx)(h.az,{onMouseDown:w,sx:{...e.sx},"data-testid":"repos-file-tree-container",className:"FileTreePicker-module__Box__wWXsb",children:i?(0,a.jsxs)("div",{className:"FileTreePicker-module__Box_1__kQpJx",children:[(0,a.jsx)(m.A,{"aria-label":"Loading file tree"}),(0,a.jsx)("span",{className:"fgColor-muted",children:"Fetching files..."})]}):(0,a.jsx)("nav",{"aria-label":"File Tree Navigation",children:(0,a.jsxs)(d.G,{"aria-label":"Files",children:[r&&(0,a.jsx)(N,{message:"Some files could not be loaded."}),(0,a.jsx)(T,{clientOnlyFilePaths:t,directoryItems:n,onItemSelected:S,selectedChildren:x?Array.from(x):[],selectedItemRef:e.selectedItemRef,onRenderRow:s,directoryNavigateOnClick:e.directoryNavigateOnClick,navigateOnClick:e.navigateOnClick,getItemUrl:l,getFileTrailingVisual:o,getFileIcon:c,expandedPath:u,singleSelect:e.singleSelect})]})})})}function N({message:e}){return(0,a.jsxs)(d.G.Item,{id:"error-tree-row",children:[(0,a.jsx)(d.G.LeadingVisual,{children:(0,a.jsx)(f.A,{icon:c.AlertFillIcon,className:"FileTreePicker-module__Octicon__ffuPI"})}),(0,a.jsx)("div",{className:"FileTreePicker-module__Box_2__xs_Kz",children:e||"Couldn't load."})]})}T.displayName="DirectoryContents",A.displayName="FileTreePicker",N.displayName="ErrorTreeRow"},30762(e,t,n){n.d(t,{$7:()=>y,$W:()=>N,AV:()=>A,Ao:()=>C,BV:()=>T,OW:()=>g,Tx:()=>S,Vs:()=>E,a5:()=>I,i9:()=>p,nl:()=>j,yV:()=>w,yk:()=>R});var a=n(50467),r=n(97665),i=n(94747),s=n(97286),l=n(24880),o=n(85402),c=n(86900),d=n(75058),u=n(96540),m=n(80831),h=n(70730),f=n(24661);class p extends Error{constructor(e="Copilot Space not found"){super(e),this.name="CopilotSpaceNotFoundError"}}class g extends Error{constructor(e,t="Copilot Space SSO error"){super(t),(0,a._)(this,"protectedOrganizations",void 0),this.protectedOrganizations=e,this.name="CopilotSpaceSSOError"}}function y(){let e=(0,r.jE)(),t=(0,d.b)();return(0,i.n)({mutationFn:async e=>{let n=await (0,c.ee)(e);if(!n.ok)throw Error(n.error);return t.dispatch({type:"REMOVE_CUSTOM_COPILOT",customCopilotId:e}),{status:n.status,ok:!0,payload:n.payload}},onSuccess:async()=>{await e.invalidateQueries({queryKey:c.O6})}})}function x(e,t,n={}){return(0,s.I)({queryKey:(0,c.X_)(e),queryFn:()=>(0,c.CT)(e),enabled:t,staleTime:3e5,throwOnError:n.throwOnError})}function v(e,t,n,a={}){return(0,s.I)({queryKey:[...(0,c.X_)(e),"searchTerm",t],queryFn:()=>(0,c.kT)(e,t),enabled:n,staleTime:3e5,throwOnError:a.throwOnError,placeholderData:l.rX})}function _(e,t,n={}){let{perPage:a=c.WU,throwOnError:r}=n;return(0,o.q)({queryKey:[...(0,c.X_)(e),"paginated",a],queryFn:async({pageParam:t})=>(0,c.rP)({type:e,perPage:a,cursor:t}),initialPageParam:null,getNextPageParam:e=>e.pagination.nextCursor,getPreviousPageParam:e=>e.pagination.prevCursor,enabled:t,staleTime:3e5,throwOnError:r})}function b(e){return(0,u.useMemo)(()=>e?e.pages.flatMap(e=>e.spaces):[],[e])}function C(e){return(0,s.I)({queryKey:(0,c.dp)(e),queryFn:async()=>{let t=await (0,c.Lr)(e);if(!t.ok){if(404===t.status)throw new p;throw Error(t.error)}if(void 0===t.payload.id)throw new g(t.payload.protectedOrganizations);return t.payload},enabled:!!e})}function S(e,t){return(0,s.I)({queryKey:["visibility-settings",e,t],queryFn:async()=>(0,c.A2)({owner:e,id:t}),enabled:""!==e&&-1!==t,staleTime:3e5})}function w(e,t){return(0,s.I)({queryKey:["menu-actions",e,t],queryFn:async()=>(0,c.vC)({owner:e,id:t}),enabled:""!==e&&-1!==t,staleTime:3e5})}function I(e){return(0,s.I)({queryKey:c.Ku,queryFn:c.Bj,enabled:e,staleTime:3e5})}function R(e,t={}){let{individualAccessEnabled:n=!0}=t,{data:a,isLoading:r}=x("starred",e),{data:i,isLoading:s}=x("user_owned",e&&n),{data:l,isLoading:o}=x("org_owned",e),{data:c,isLoading:d}=x("shared_with_user",e&&n);return{categorizedSpaces:(0,u.useMemo)(()=>({starred:a,userOwned:i,orgOwned:l,sharedWithUser:c}),[a,i,l,c]),categorizedLoading:(0,u.useMemo)(()=>({starred:r,userOwned:s,orgOwned:o,sharedWithUser:d}),[r,s,o,d])}}function E(e,t={}){let{perPage:n=c.WU,individualAccessEnabled:a=!0}=t,r=_("starred",e,{perPage:n}),i=_("user_owned",e&&a,{perPage:n}),s=_("org_owned",e,{perPage:n}),l=_("shared_with_user",e&&a,{perPage:n}),o=b(r.data),d=b(i.data),m=b(s.data),h=b(l.data),f=(0,u.useMemo)(()=>({starred:o,userOwned:d,orgOwned:m,sharedWithUser:h}),[o,d,m,h]),p=(0,u.useMemo)(()=>({starred:r.isLoading,userOwned:i.isLoading,orgOwned:s.isLoading,sharedWithUser:l.isLoading}),[r.isLoading,i.isLoading,s.isLoading,l.isLoading]),g=(0,u.useMemo)(()=>({starred:r.isFetchingNextPage,userOwned:i.isFetchingNextPage,orgOwned:s.isFetchingNextPage,sharedWithUser:l.isFetchingNextPage}),[r.isFetchingNextPage,i.isFetchingNextPage,s.isFetchingNextPage,l.isFetchingNextPage]),y=(0,u.useMemo)(()=>({starred:r.hasNextPage,userOwned:i.hasNextPage,orgOwned:s.hasNextPage,sharedWithUser:l.hasNextPage}),[r.hasNextPage,i.hasNextPage,s.hasNextPage,l.hasNextPage]),x=(0,u.useCallback)(()=>{r.hasNextPage&&!r.isFetchingNextPage&&r.fetchNextPage()},[r]),v=(0,u.useCallback)(()=>{i.hasNextPage&&!i.isFetchingNextPage&&i.fetchNextPage()},[i]),C=(0,u.useCallback)(()=>{s.hasNextPage&&!s.isFetchingNextPage&&s.fetchNextPage()},[s]),S=(0,u.useCallback)(()=>{l.hasNextPage&&!l.isFetchingNextPage&&l.fetchNextPage()},[l]);return{categorizedSpaces:f,categorizedLoading:p,categorizedFetchingMore:g,categorizedHasMore:y,categorizedFetchMore:(0,u.useMemo)(()=>({starred:x,userOwned:v,orgOwned:C,sharedWithUser:S}),[x,v,C,S])}}function j(e,t,n={}){let{individualAccessEnabled:a=!0}=n,{data:r,isLoading:i}=v("starred",t,e),{data:s,isLoading:l}=v("user_owned",t,e&&a),{data:o,isLoading:c}=v("org_owned",t,e),{data:d,isLoading:m}=v("shared_with_user",t,e&&a);return{filteredCategorizedSpaces:(0,u.useMemo)(()=>({starred:r,userOwned:s,orgOwned:o,sharedWithUser:d}),[r,s,o,d]),filteredCategorizedLoading:(0,u.useMemo)(()=>({starred:i,userOwned:l,orgOwned:c,sharedWithUser:m}),[i,l,c,m])}}function T(){return(0,m.A3)("customCopilotsEnabled")}function A(){let e,t=(e=(0,m.A3)("customCopilots"),e?.length??0);return(0,u.useMemo)(()=>`New Space ${t+1}`,[t])}function N(e){return(0,u.useMemo)(()=>{if(!e)return;let{owner:t}=e,n=h.cg?.location.origin;if(!n)return;let a=(0,f.Cb)(e),r=`${n}${a}`,i=`content_url=${encodeURIComponent(r)}&report=${t}+(user)`;return`${n}/contact/report-content?${i}`},[e])}},59969(e,t,n){n.d(t,{C:()=>s});var a=n(65494),r=n(43573),i=n(96540);function s(){let e=(0,r.G)(),{selectedCopilotSpaceId:t,setSelectedCopilotSpaceId:n,selectedThreadId:s}=(0,a.O)(),l=!!s||!!e;(0,i.useEffect)(()=>{n(e||void 0)},[e,n]);let o=t||e,c=(0,i.useCallback)(e=>{l||n({id:e.id,owner:e.owner})},[n,l]),d=(0,i.useCallback)(()=>{l||n(void 0)},[n,l]);return{activeCopilotSpaceId:o,readOnly:l,handleSpaceSelect:c,clearSpaceSelection:d}}},99623(e,t,n){n.d(t,{$:()=>d});var a=n(75058),r=n(24661),i=n(86900),s=n(97665),l=n(94747),o=n(58388),c=n(10735);let d=e=>{let t=(0,a.b)(),n=(0,s.jE)(),{mutateAsync:d,...u}=(0,l.n)({onSuccess:async()=>{n.invalidateQueries({queryKey:i.O6}),e&&await n.invalidateQueries({queryKey:(0,i.dp)(e)})},mutationFn:async n=>{let a=e?(0,r.fn)(e):"/custom_copilots",i={custom_copilot:{owner_id:n.ownerId,owner_type:n.ownerType,name:n.name,icon_type:n.iconType,icon_color:n.iconColor,description:n.description,general_instructions:n.generalInstructions,resources_attributes:n.resources?.map(e=>({id:e.databaseId,copilot_chat_attachment_id:e.copilotChatAttachmentId,resource_type:e.type,_destroy:e.markedForDestroy,metadata:(0,c.M)(e)})),visibility:n.visibility,base_role:n.baseRole}},s=await (0,o.lS)(a,{method:e?"PUT":"POST",body:i}),l=await s.json();if(!s.ok)throw l.errorMessages;return t?.dispatch({type:"SET_CUSTOM_COPILOT",customCopilot:l}),l}});return{upsertCopilotSpace:d,...u}}},2752(e,t,n){n.d(t,{k:()=>a});function a(e){return function e(t,n){let a=t[n];return a?a.items.map(n=>({data:n,items:"directory"===n.contentType?e(t,n.path):[]})).sort((e,t)=>"directory"===e.data.contentType&&"directory"!==t.data.contentType?-1:"directory"!==e.data.contentType&&"directory"===t.data.contentType?1:e.data.name.localeCompare(t.data.name)):[]}(function(e){let{paths:t,directories:n}=e,a={},r=new Set(n);for(let e of(a[""]={items:[],totalCount:0},[...n].sort())){let t=e.substring(0,e.lastIndexOf("/"))||"",n={name:e.substring(e.lastIndexOf("/")+1),path:e,contentType:"directory"};a[t]||(a[t]={items:[],totalCount:0}),a[t].items.push(n),a[e]||(a[e]={items:[],totalCount:0})}for(let e of t.filter(e=>!r.has(e)).sort()){let t=e.substring(0,e.lastIndexOf("/"))||"",n={name:e.substring(e.lastIndexOf("/")+1),path:e,contentType:"file"};a[t]||(a[t]={items:[],totalCount:0}),a[t].items.push(n)}for(let e in a){let t=a[e];t&&t.items.sort((e,t)=>"directory"===e.contentType&&"directory"!==t.contentType?-1:"directory"!==e.contentType&&"directory"===t.contentType?1:e.name.localeCompare(t.name))}let i=e=>{let t=a[e];return t?t.items.reduce((e,t)=>"directory"===t.contentType?e+1+i(t.path):e+1,0):0};for(let e in a){let t=a[e];t&&(t.totalCount=i(e))}return a}(e),"")}},58664(e,t,n){n.d(t,{V:()=>r});var a=n(58388);async function r(e){let t=await (0,a.lS)(`/github-copilot/chat/repositories/${e}`,{method:"GET"});if(!t.ok)throw Error(`Failed to fetch repository details: ${t.status}`);return await t.json()}}}]); //# sourceMappingURL=96109-91aaadf48132d6d5-4f6c9dc9be8c5862.js.map performance.mark("js-parse-end:96232-fb82336d69225835.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["96232"],{21403(e,t,r){r.d(t,{lB:()=>F});var n=r(6986),o=null,i=null,s=[];function a(e,t){var r=[];function n(){var e=r;r=[],t(e)}return function(){for(var t=arguments.length,o=Array(t),i=0;in});var o,i=window.document.documentElement,s=i.matches||i.webkitMatchesSelector||i.mozMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;n.prototype.matchesSelector=function(e,t){return s.call(e,t)},n.prototype.querySelectorAll=function(e,t){return t.querySelectorAll(e)},n.prototype.indexes=[];var a=/^#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/g;n.prototype.indexes.push({name:"ID",selector:function(e){var t;if(t=e.match(a))return t[0].slice(1)},element:function(e){if(e.id)return[e.id]}});var l=/^\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/g;n.prototype.indexes.push({name:"CLASS",selector:function(e){var t;if(t=e.match(l))return t[0].slice(1)},element:function(e){var t=e.className;if(t){if("string"==typeof t)return t.split(/\s/);else if("object"==typeof t&&"baseVal"in t)return t.baseVal.split(/\s/)}}});var c=/^((?:[\w\u00c0-\uFFFF\-]|\\.)+)/g;n.prototype.indexes.push({name:"TAG",selector:function(e){var t;if(t=e.match(c))return t[0].toUpperCase()},element:function(e){return[e.nodeName.toUpperCase()]}}),n.prototype.indexes.default={name:"UNIVERSAL",selector:function(){return!0},element:function(){return[!0]}},o="function"==typeof window.Map?window.Map:function(){function e(){this.map={}}return e.prototype.get=function(e){return this.map[e+" "]},e.prototype.set=function(e,t){this.map[e+" "]=t},e}();var u=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g;function d(e,t){var r,n,o,i,s,a,l=(e=e.slice(0).concat(e.default)).length,c=t,d=[];do if(u.exec(""),(o=u.exec(c))&&(c=o[3],o[2]||!c)){for(r=0;rr});function r(e){let t,s=null;return{load:()=>(s||(s=e().then(e=>t=e)),s),read(){if(t)return t;throw this.load()}}}},63484(e,t,s){s.d(t,{BV:()=>i,My:()=>o,QM:()=>n,ZK:()=>d});var r=s(50467),a=s(58388);async function i(e,t,s){let r=await (0,a.DI)(t,{method:"POST",body:c(e),signal:s}),i=await r.json();if(!r.ok)throw new d("Error creating policy",i.errors);if(!i.asset_upload_url)throw Error("Unexpected error, missing asset upload URL");return i}async function n(e,t,s){let r=await fetch(t.upload_url,{method:"POST",body:c({...t.form,file:e}),signal:s});if(!r.ok)throw Error(await r.text())}async function o(e,t){let s=await (0,a.DI)(e.asset_upload_url,{method:"PUT",signal:t}),r=await s.json();if(!s.ok)throw new d("Error completing the upload",r.errors);return r}class d extends Error{constructor(e,t){super(e),(0,r._)(this,"errors",void 0),this.name="GenericServerError",this.errors=t}}function c(e){let t=new FormData;for(let[s,r]of Object.entries(e).filter(([,e])=>null!=e))t.append(s,r);return t}},65494(e,t,s){s.d(t,{M:()=>o,O:()=>d});var r=s(74848),a=s(16522),i=s(96540);let n=(0,i.createContext)(null);function o(e){let t,s,o,d=(0,a.c)(7),{selectedThreadId:c,children:l}=e,[h,u]=(0,i.useState)();d[0]===Symbol.for("react.memo_cache_sentinel")?(t=e=>{u(e)},d[0]=t):t=d[0];let p=t;d[1]!==h||d[2]!==c?(s={selectedCopilotSpaceId:h,setSelectedCopilotSpaceId:p,selectedThreadId:c},d[1]=h,d[2]=c,d[3]=s):s=d[3];let g=s;return d[4]!==l||d[5]!==g?(o=(0,r.jsx)(n,{value:g,children:l}),d[4]=l,d[5]=g,d[6]=o):o=d[6],o}function d(){let e=(0,i.use)(n);if(!e)throw Error("useCopilotSpaceSelection must be used within a CopilotSpaceSelectionProvider");return e}n.displayName="CopilotSpaceSelectionContext",o.displayName="CopilotSpaceSelectionProvider"},62912(e,t,s){s.d(t,{Hb:()=>o,qw:()=>d});var r=s(74848),a=s(16522),i=s(96540);let n=(0,i.createContext)([]);function o(e){let t,s=(0,a.c)(3),{plugins:i,children:o}=e;return s[0]!==o||s[1]!==i?(t=(0,r.jsx)(n,{value:i,children:o}),s[0]=o,s[1]=i,s[2]=t):t=s[2],t}function d(){return(0,i.use)(n)}n.displayName="PluginsContext",o.displayName="ImmersivePluginsProvider"},2159(e,t,s){function r(e,t){if(e?.components)return e.components.find(e=>e.routes.some(e=>e instanceof RegExp?e.test(t.pathname):e(t)))}function a(e,t){let{pathname:s}=e;if(!s)return;let r={pathname:s,search:e.search||"",hash:e.hash||""};return t.find(e=>{var t,s;return!!e.components&&e.components.length>0&&(t=e,s=r,!!t.components&&t.components.length>0&&t.components.some(e=>e.routes.some(e=>e instanceof RegExp?e.test(s.pathname):e(s))))})}s.d(t,{BW:()=>a,bG:()=>r})},80831(e,t,s){s.d(t,{Pk:()=>x,mo:()=>B,Mj:()=>b,pn:()=>H,bP:()=>k,A3:()=>U,IJ:()=>F});var r=s(74848),a=s(16522),i=s(55387),n=s(96540),o=s(7154),d=s(65494);let c=(0,s(69991).A)("sessionStorage");function l(e,t){return!!e&&"assistive"===t}let h="restored-chat-messages";function u(e,t){if("childMessages"!==e&&"parentMessage"!==e)return t}function p(){c.removeItem(h)}var g=s(85461),E=s(20267),m=s(94583),f=s(57756),_=s(25891),T=s(3972),R=s(24661);let I=(e,t)=>{let s=t=>{T.Jt.selectedThreadID=t;let s=t!==e.selectedThreadID,r=T.Jt.getModel(t)?.id,a=e.availableModels?.find(e=>e.id===r)??e.model;return{...e,model:a,selectedThreadID:t,threadSelectedAt:s?new Date:e.threadSelectedAt,currentView:"thread",showTopicPicker:!t&&e.showTopicPicker,currentReferences:s?[]:e.currentReferences,threadHasNewMessages:!s&&e.threadHasNewMessages,editingMessage:s?void 0:e.editingMessage,pendingFirstMessage:s?void 0:e.pendingFirstMessage}};switch(t.type){case"SLASH_COMMANDS_ERROR":return(0,m.BI)("copilot.slash_commands_error"),{...e,slashCommandLoading:{...e.slashCommandLoading,state:"error"}};case"SLASH_COMMANDS_LOADED":return(0,m.BI)("copilot.slash_commands_loaded"),{...e,slashCommandLoading:{...e.slashCommandLoading,state:"loaded"}};case"SLASH_COMMANDS_LOADING":return{...e,slashCommandLoading:{...e.slashCommandLoading,state:"loading"}};case"OPEN_COPILOT_CHAT":return(0,m.BI)("copilot.open_copilot_chat",{source:t.source}),{...e,chatIsOpen:!0,chatIsVisible:!0,entryPointId:t.id};case"CLOSE_COPILOT_CHAT":return(0,m.BI)("copilot.close_copilot_chat"),{...e,chatIsOpen:!1};case"HIDE_COPILOT_CHAT":return(0,m.BI)("copilot.hide_copilot_chat"),{...e,chatIsVisible:!1};case"THREAD_CREATED":{let r=new Map(e.threads);return(0,m.BI)("copilot.thread_created",{...A(t.thread),mode:e.mode,count:r.size+1,defaultToTask:_.W.defaultToTaskInput,defaultToTaskControl:_.W.defaultToTaskControl,askModeDropdown:_.W.askModeDropdown}),r.set(t.thread.id,t.thread),{...t.preventThreadSelection?e:s(t.thread.id),threads:r,pendingFirstMessage:e.pendingFirstMessage}}case"THREAD_CONTINUED":{let r=new Map(e.threads);return(0,m.BI)("copilot.thread_continued",{...A(t.thread),mode:e.mode,count:r.size+1}),r.set(t.thread.id,t.thread),{...s(t.thread.id),threads:r}}case"THREAD_CONTINUED_FAILED":return(0,m.BI)("copilot.thread_continued_failed",{stateSelectedThreadID:e.selectedThreadID,sharedIdOnFetch:e.fetchSharedThreads?.shareId,mode:e.mode}),{...e};case"SUGGESTIONS_GENERATED":return{...e,suggestions:t.suggestions};case"CLEAR_SUGGESTIONS":return{...e,suggestions:null};case"CLEAR_THREAD":return(0,m.BI)("copilot.clear_thread"),{...e,messages:[],currentReferences:[]};case"CLEAR_CURRENT_REFERENCES":{(0,m.BI)("copilot.clear_current_references");let s=t.keepTypes&&new Set(t.keepTypes),r=s?e.currentReferences.filter(e=>s.has(e.type)):[];return{...e,currentReferences:r}}case"CLEAR_IMPLICIT_REFERENCES":{if(0===e.implicitReferences.size)return e;let t=e.currentReferences.filter(t=>!e.implicitReferences.has(t)),s=t.length===e.currentReferences.length?e.currentReferences:t;return{...e,currentReferences:s,implicitReferences:new Set}}case"CLEAR_ALL_REFERENCES":return(0,m.BI)("copilot.clear_all_references"),{...e,currentReferences:[]};case"MESSAGES_UPDATED":if("error"===t.state&&((0,m.BI)("copilot.messages_updated",{count:t.messages?.length,loading:t.state}),t.notFound&&t.missingOrgIds&&t.missingOrgIds.length>0&&T.Jt.clearAuthToken()),!t.messages)return{...e,messagesLoading:{...e.messagesLoading,state:t.state,missingOrgIds:t.missingOrgIds,notFound:t.notFound}};{let s=[...t.messages],r=e.messages.length>0&&e.messages.some(e=>"root"!==e.id&&e.clientSide),a=null!=e.pendingFirstMessage||e.isWaitingOnCopilot||null!=e.streamingMessage;if(0===s.length&&null!=e.selectedThreadID&&(r||a))return{...e,messagesLoading:{...e.messagesLoading,state:t.state,missingOrgIds:t.missingOrgIds,notFound:t.notFound}};let i=e.defaultRecipient,n=e.allClientConfirmations;for(let r of("loaded"===t.state&&s.length>0&&(i=M(s[s.length-1],e),n=s.map(e=>e.clientConfirmations?.map(e=>JSON.stringify(Object.values(e.confirmation).sort()))).flat().filter(Boolean)),s))r.clientSide=!1;return{...e,defaultRecipient:i,allClientConfirmations:n,messages:(0,f.zh)(s),messagesLoading:{...e.messagesLoading,state:t.state,missingOrgIds:t.missingOrgIds,notFound:t.notFound},messagesRestored:!1}}case"WAITING_ON_COPILOT":return{...e,isWaitingOnCopilot:t.loading,threadHasNewMessages:!0};case"WAITING_ON_ATTACHMENT":return{...e,isWaitingOnAttachment:t.loading,attachmentProcessingType:t.loading&&t.attachmentType||null};case"SELECT_THREAD":{(0,m.BI)("copilot.select_thread",{threadID:t.thread?.id,mode:e.mode});let r={...s(t.thread?.id||null),currentTopic:t.clearTopic?void 0:e.currentTopic,topicLoading:t.clearTopic?{error:null,state:"loaded"}:e.topicLoading};return null===t.thread&&e.currentRepository&&(r.currentReferences=[(0,g.qS)(e.currentRepository)]),r}case"HANDLE_EVENT_START":return(0,m.BI)("copilot.handle_event_start"),{...e,chatIsOpen:!0,chatIsVisible:!0,entryPointId:t.id,currentReferences:t.references??e.currentReferences};case"THREADS_LOADING":return{...e,threadsLoading:{...e.threadsLoading,state:"loading"}};case"LATEST_THREAD_LOADED":{let s=new Map(e.threads);return s.set(t.latestThread.id,t.latestThread),{...e,threads:s}}case"THREADS_LOADED":{(0,m.BI)("copilot.threads_loaded",{count:t.threads.length,mode:e.mode});let s=e.selectedThreadID&&e.threads.get(e.selectedThreadID);return s&&Date.now()-new Date(s.createdAt).getTime()<6e4&&!t.threads.find(e=>e.id===s.id)&&t.threads.push(s),{...e,threadsLoading:{...e.threadsLoading,state:"loaded"},threads:new Map(t.threads.map(e=>[e.id,e]))}}case"THREADS_LOADING_ERROR":return(0,m.BI)("copilot.threads_loading_error",{error:t.message}),{...e,threadsLoading:{error:t.message,state:"error",status:t.status}};case"DELETE_THREAD_KEEP_SELECTION":{let r=new Map(e.threads);return(0,m.BI)("copilot.thread_deleted",{...A(t.thread),count:r.size-1}),r.delete(t.thread.id),{...s(null),threads:r,threadsLoading:{...e.threadsLoading,state:"loaded"},messages:[],messagesLoading:{state:"loaded",error:null},currentReferences:[],currentView:"list"}}case"DELETE_ALL_THREADS_KEEP_SELECTION":{let r=new Map(e.threads);for(let e of t.threads)(0,m.BI)("copilot.thread_deleted",{...A(e),count:r.size-1}),r.delete(e.id);return{...s(null),threads:r,threadsLoading:{...e.threadsLoading,state:"loaded"},messages:[],messagesLoading:{state:"loaded",error:null},currentReferences:[],currentView:"list"}}case"DELETE_THREAD":{let r=new Map(e.threads);if((0,m.BI)("copilot.thread_deleted",{...A(t.thread),count:r.size-1,mode:e.mode}),r.delete(t.thread.id),e.selectedThreadID===t.thread.id)return{...s(null),threads:r,threadsLoading:{...e.threadsLoading,state:"loaded"},messages:[],messagesLoading:{state:"loaded",error:null},currentReferences:[]};return{...e,threads:r}}case"DELETE_THREAD_ERROR":{(0,m.BI)("copilot.delete_thread_error",{...A(t.thread),error:t.error});let s=new Map(e.threads);return s.set(t.thread.id,t.thread),{...e,threadsLoading:{...e.threadsLoading,error:t.error},threads:s}}case"DELETE_ALL_THREADS_ERROR":{for(let e of t.threads)(0,m.BI)("copilot.delete_thread_error",{...A(e),error:t.error});let s=new Map(e.threads);for(let e of t.threads)s.set(e.id,e);return{...e,threadsLoading:{...e.threadsLoading,error:t.error},threads:s}}case"MESSAGE_ADDED":{(0,m.BI)("copilot.message_added",{...C(t.message),count:e.messages.length+1,repoHasCustomInstructions:!!t.repoHasCustomInstructions,usedRepoCustomInstructions:!!t.usedRepoCustomInstructions,customInstructionsOwners:t.customInstructionsOwners||""});let s=(0,f.HR)(e.messages,t.message);return{...e,messages:s,messagesLoading:{state:"loaded",error:null},pendingFirstMessage:void 0,threadHasNewMessages:!0,editingMessage:void 0}}case"MESSAGE_FEEDBACK":{let s=[...e.messages],r=s.findIndex(e=>e.id===t.message.id),a=s[r];if(!a)return(0,m.BI)("copilot.message_feedback_no_message_found",{...C(t.message)}),e;return s[r]={...a,feedback:t.feedback},{...e,messages:s}}case"MESSAGES_SET_SELECTED_MESSAGE":{let s=(0,f.ws)(e.messages,t.message);return(0,m.BI)("copilot.chat_subthread_changed",{removedReferences:e.currentReferences.length}),{...e,messages:s,threadHasNewMessages:!1,threadSelectedAt:new Date}}case"MESSAGES_UNSELECT_PREVIOUS_MESSAGE":{let s=(0,f.TC)(e.messages,t.message);return{...e,messages:s,threadHasNewMessages:!1}}case"THREAD_UPDATED":return{...e,threads:S(e,t.thread)};case"REFERENCES_LOADED":return(0,m.BI)("copilot.references_loaded",{count:t.references.length}),{...e,currentReferences:e.currentReferences.filter(e=>t.references.every(t=>(0,g.Vb)(t)!==(0,g.Vb)(e))).concat(t.references)};case"ADD_REFERENCE":{let s=[...e.currentReferences.filter(e=>!(0,g.x_)(e,t.reference)),t.reference],r=e.implicitReferences;if(s.length>e.currentReferences.length&&((0,m.BI)("copilot.add_reference",{...D(t.reference),source:t.source,count:e.currentReferences.length+1,implicit:!!t.implicit}),"repository"===t.reference.type&&T.Jt.setLastUsedRepository(t.reference)),t.reference&&("issue"===t.reference.type||"pull-request"===t.reference.type||"discussion"===t.reference.type)&&(0,E.i)(`Adding ${t.reference.type} ${t.reference.number} as a reference.`),t.implicit){let e=new Set(r);e.add(t.reference),r=e}return{...e,currentReferences:s,implicitReferences:r}}case"REMOVE_REFERENCES":{let s=t.references;s.length>0&&(0,m.BI)("copilot.remove_reference",{count:e.currentReferences.length-s.length}),s[0]&&("issue"===s[0].type||"pull-request"===s[0].type||"discussion"===s[0].type)&&(0,E.i)(`Removing ${s[0].type} ${s[0].number} as a reference.`);let r=T.Jt.getCurrentReferences(e.selectedThreadID);if(r){let t=r.filter(e=>!s.some(t=>(0,g.x_)(t,e)));T.Jt.setCurrentReferences(e.selectedThreadID,t)}return{...e,currentReferences:e.currentReferences.filter(e=>!s.includes(e)),implicitReferences:new Set([...e.implicitReferences].filter(e=>!s.includes(e)))}}case"REPLACE_REFERENCE":{let s=[],r=e.implicitReferences;for(let a of e.currentReferences)if((0,g.x_)(a,t.referenceToDelete)){if(s.push(t.referenceToInsert),r.has(a)){let e=new Set(r);e.delete(a),e.add(t.referenceToInsert),r=e}}else(0,g.x_)(a,t.referenceToInsert)||s.push(a);return(0,m.BI)("copilot.replace_reference",{removedReference:(0,g.Vb)(t.referenceToDelete),addedReference:(0,g.Vb)(t.referenceToInsert),count:s.length}),{...e,implicitReferences:r,currentReferences:s}}case"SHOW_TOPIC_PICKER":return{...e,showTopicPicker:t.show};case"CURRENT_TOPIC_UPDATED":return t.topic&&(0,m.BI)("copilot.current_topic_updated",{type:t.topic?"repository":"none",mode:e.mode}),{...e,currentTopic:t.topic,topicLoading:{...e.topicLoading,state:t.state}};case"MESSAGE_STREAMING_STARTED":return(0,m.BI)("copilot.message_streaming_started",{...C(t.message),model:e.model?.id,mode:e.mode}),{...e,isWaitingOnCopilot:!0,streamingMessage:t.message,messages:[...e.messages]};case"MESSAGE_STREAMING_TOKEN_ADDED":return{...e,streamingMessage:e.streamingMessage?{...e.streamingMessage,content:e.streamingMessage.content+t.token}:null};case"MESSAGE_STREAMING_FUNCTION_CALLED":if(e.streamingMessage){let s=e.streamingMessage.skillExecutions||[],r=-1,a=(r=t.callId&&_.W.enableToolCallLogs?s.findIndex(e=>e.callId===t.callId):s.findIndex(e=>"started"===e.status||"progress"===e.status))>=0?s[r]:null,i=s,n=e.streamingMessage.references||[];switch(t.status){case"started":i=[...s,{slug:t.name,status:t.status,arguments:t.arguments,errorMessage:t.errorMessage,references:[],callId:t.callId}];break;case"progress":if(a){let e={...a,status:t.status,statusMessage:t.statusMessage};i=[...s.slice(0,r),e,...s.slice(r+1)]}break;case"completed":if(a){i=[...s];let e=a.references;a.references?.length||(e=t.references,n=Array.from(new Set([...n,...t.references]))),i[r]={...a,status:t.status,references:e}}else(0,m.BI)("copilot.function_call_missing_callid",{referenceCount:t.references.length,tool:t.name,callId:t.callId??"missing"});break;case"error":a&&((i=[...s])[r]={...a,status:t.status,errorMessage:t.errorMessage})}return{...e,streamingMessage:{...e.streamingMessage,skillExecutions:i,references:n}}}return e;case"MESSAGE_STREAMING_COMPLETED":{let s,r=e.defaultRecipient,a=e.messages;if(e.streamingMessage){let i=e.streamingMessage.skillExecutions;e.streamingMessage.skillExecutions&&(i=e.streamingMessage.skillExecutions.map(e=>"started"===e.status||"progress"===e.status?{...e,status:"completed"}:e)),r=M(s={...e.streamingMessage,id:t.messageResponse.id,references:t.messageResponse.references,createdAt:t.messageResponse.createdAt,intent:t.messageResponse.intent,copilotAnnotations:t.messageResponse.copilotAnnotations,parentMessageID:t.messageResponse.parentMessageID,model:t.messageResponse.model,clientSide:!1,skillExecutions:i},e),(0,m.BI)("copilot.message_streaming_completed",{...C(s),...y(t.timings),model:e.model?.id,mode:e.mode,count:e.messages.length+1}),e.streamingMessage.requestID&&T.Jt.addRequestID(s.id,e.streamingMessage?.requestID),a=(0,f.Y$)(a,s),a=(0,f.HR)(a,s)}return{...e,defaultRecipient:r,isWaitingOnCopilot:!1,streamingMessage:null,messages:a}}case"MESSAGE_STREAMING_FAILED":return(0,m.BI)("copilot.message_streaming_failed",{...e.streamingMessage?C(e.streamingMessage):{},...y(t.timings),model:e.model?.id,mode:e.mode}),{...e,isWaitingOnCopilot:!1,streamingMessage:null};case"MESSAGE_STREAMING_STOPPED":{let s,r=(0,f.B)(e.messages).findLast(e=>"user"===e.role)?.id;e.streamingMessage?(s={...e.streamingMessage,interrupted:!0,parentMessageID:r},(0,m.BI)("copilot.message_streaming_stopped",{...C(s),...y(t.timings),model:e.model?.id,mode:e.mode,count:e.messages.length+1})):e.isWaitingOnCopilot&&(s={id:crypto.randomUUID(),role:"assistant",threadID:e.selectedThreadID??"",references:[],createdAt:new Date().toISOString(),interrupted:!0,clientSide:!0,parentMessageID:r});let a=e.messages;if(null!=s){let e=a.findLast(e=>"user"===e.role);void 0!==e&&(s.parentMessageID=e.id),a=(0,f.HR)(a,s)}return{...e,isWaitingOnCopilot:!1,streamingMessage:null,messages:a}}case"MESSAGES_CLEAR_LAST_ERROR":{let t=(0,f.B)(e.messages),s=e.messages,r=t[t.length-1],a=r?.error||r?.interrupted,i=s;return a&&(i=s.filter(e=>e.id!==r?.id)),{...e,streamingMessage:null,messages:[...i]}}case"SELECT_REFERENCE":return t.reference&&(0,m.BI)("copilot.select_reference",D(t.reference)),{...e,selectedReference:t.reference};case"MODELS_LOADING":return{...e,modelsLoading:{state:"loading",error:null}};case"MODELS_LOADING_ERROR":return{...e,modelsLoading:{state:"error",error:t.error}};case"MODELS_LOADED":{let s=t.models;return _.W.visionAllowedInClaude||(s=t.models.map(e=>{if(e.id.startsWith("claude")){let t={...e};return t.capabilities.supports.vision=!1,t}return e})),{...e,model:(s||[]).find(t=>t.id===e.model.id)||e.model,availableModels:s||[],modelsLoading:{state:"loaded",error:null}}}case"SELECT_MODEL":{if("immersive"!==e.mode&&!_.W.immersiveEmbedded)return e;let s=t.model?.capabilities?.supports?.vision?e.currentReferences:e.currentReferences.filter(e=>"image"!==e.type);return(0,m.BI)("copilot.select_model",{model:t.model?.name,mode:e.mode}),{...e,model:t.model,currentReferences:s}}case"VIEW_ALL_THREADS":return{...e,currentView:"list"};case"VIEW_CURRENT_THREAD":return{...e,currentView:"thread"};case"IMPLICIT_CONTEXT_UPDATED":if(!(0,g.yR)(t.context,e.context))return{...e,context:t.context};return e;case"SET_TOP_REPOSITORIES":return{...e,topRepositoriesCache:t.topics};case"SET_AGENTS":return{...e,agents:t.agents};case"SET_CUSTOM_COPILOT":{let s=e.customCopilots?.find(e=>(0,R.UG)(e,t.customCopilot)),r=s&&t.partial,a=s?e.customCopilots?.map(e=>(0,R.UG)(e,s)?r?{...e,...t.customCopilot}:t.customCopilot:e):[...e.customCopilots??[],t.customCopilot];return{...e,customCopilots:a}}case"SET_CUSTOM_COPILOTS":return{...e,customCopilots:t.customCopilots};case"REMOVE_CUSTOM_COPILOT":return{...e,customCopilots:e.customCopilots?.filter(e=>!(0,R.UG)(e,t.customCopilotId))};case"SET_DEEP_CODESEARCH":return{...e,skillOptions:{...e.skillOptions,deepCodeSearch:t.deepCodeSearch}};case"MESSAGE_STREAMING_CONFIRMATION":{let s={title:t.title,message:t.message,confirmation:t.confirmation};return{...e,streamingMessage:e.streamingMessage?{...e.streamingMessage,confirmations:e.streamingMessage.confirmations?[...e.streamingMessage.confirmations,s]:[s]}:null}}case"AGENT_ERROR":{let s=e.streamingMessage,r=t.error;return{...e,streamingMessage:s&&{...s,agentErrors:[...s.agentErrors??[],{type:r.type,code:r.code,message:r.message,identifier:r.identifier}]}}}case"ENTITLEMENT_UPDATED":return{...e,entitlement:t.entitlement??e.entitlement};case"TOGGLE_REPO_CUSTOM_INSTRUCTIONS":return(0,m.BI)("copilot.repo_custom_instructions_toggled",{isEnabling:!!t.value}),{...e,repoCustomInstructionsEnabled:t.value};case"DISMISS_EDITOR_UPSELL_BANNER":return{...e,isEditorUpsellBannerDismissed:!0};case"DISMISS_COPILOT_SPACES_MCP_BANNER":return{...e,showCopilotSpacesMcpBanner:!1};case"DISMISS_AMBIENT_ERROR":return{...e,ambientError:null};case"ADD_AMBIENT_ERROR":return{...e,ambientError:{message:t.message}};case"SET_PERSONAL_INSTRUCTIONS":return{...e,personalInstructions:t.personalInstructions};case"SHARED_THREAD_UPDATED":{let s=S(e,t.thread),r=s.get(t.thread.id);return r&&(0,m.BI)("copilot.shared_thread_update",A(r)),{...e,threads:s}}case"SHARED_THREADS_LOADING":return{...e,sharedThreadsLoading:{...e.sharedThreadsLoading,state:"loading"}};case"SHARED_THREADS_LOADED":return(0,m.BI)("copilot.shared_threads_loaded"),{...e,sharedThreadsLoading:{...e.sharedThreadsLoading,state:"loaded"}};case"SHARED_THREADS_LOADING_ERROR":return(0,m.BI)("copilot.shared_threads_loading_error",{error:t.message}),{...e,sharedThreadsLoading:{...e.sharedThreadsLoading,state:"error",error:t.message}};case"IMAGE_UPLOADED":return{...e,currentReferences:e.currentReferences.map(e=>"image"===e.type&&e.id===t.referenceId?{...e,imageUrl:t.dotcomAttachment.previewUrl}:e)};case"START_EDITING_MESSAGE":return(0,m.BI)("dotcom_chat.activate",{target:"USER_MESSAGE_ACTION_EDIT",mode:"immersive"}),{...e,editingMessage:t.messageId};case"CANCEL_EDITING_MESSAGE":return{...e,editingMessage:void 0};case"FETCH_SHARED_THREAD_MESSAGES":return{...e,fetchSharedThreads:{ok:t.ok,status:t.status,shareId:t.shareId,originalThreadId:t.originalThreadId}};case"SET_WRAP_CODE_LINES":return{...e,wrapCodeLines:t.value};case"CLEAR_SHARED_THREAD_CHANNEL":return{...e,sharedThreadChannel:null};case"CLEAR_DEFAULT_RECIPIENT":return{...e,defaultRecipient:void 0};case"SET_PENDING_FIRST_MESSAGE":return{...e,pendingFirstMessage:t.message};case"SET_SHOULD_REPLACE_HISTORY_ON_NAVIGATION":return{...e,shouldReplaceHistoryOnNavigation:t.value}}};function S(e,t){let s=new Map(e.threads),r=e.threads.get(t.id);if(!r)return s;let a={...r,...t};return s.set(t.id,a),s}function C(e){var t;if(!e)return(0,m.Ti)({});let s={id:e.id,role:e.role,createdAt:e.createdAt,threadID:e.threadID,referenceCount:e.references?.length??0};return e.intent&&(s.intent=e.intent),e.error&&(s.error=e.error),e.copilotAnnotations&&(s.copilotAnnotations=function(e){if(e)return{CodeVulnerability:e.CodeVulnerability?.map(e=>({details:{type:e?.details?.type}})),PublicCodeReference:e.PublicCodeReference?.map(e=>({details:{license:e?.details?.license,language:e?.details?.language}}))}}(e.copilotAnnotations)),e.skillExecutions&&(s.skillExecutions=(t=e.skillExecutions)?t.map(e=>({slug:e?.slug,status:e?.status,argumentCount:e?.arguments?.length??0,errorMessage:e?.errorMessage,references:e?.references?.length??0})):[]),e.interrupted&&(s.interrupted=!0),(0,m.Ti)(s)}function A(e){return e?(0,m.Ti)({id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,currentReferenceCount:e.currentReferences?.length??0}):(0,m.Ti)({})}function D(e){return e?(0,m.Ti)({type:e.type}):(0,m.Ti)({})}function y(e){let t={totalTime:e.endTime-e.startTime};return void 0!==e.firstByte&&(t.ttfb=e.firstByte-e.startTime),void 0!==e.firstToken&&(t.ttft=e.firstToken-e.startTime),t}function M(e,t){let s=(0,g.Th)(e,t.currentUserLogin);if("agent"===s.type)return s.name}var w=s(75058),v=s(45986),O=s(65768);let L=(0,n.createContext)(null);L.displayName="CopilotChatDispatchContext";let N=new Set;function b(e){var t,s,i,E;let m,_,R,S,C,A,D,y,M,O,b,P,x,B,H=(0,a.c)(70),{children:U,topic:k,workerPath:F,threadId:W,refs:V,selectedReference:J,mode:j,ssoOrganizations:q,chatIsOpen:z,chatIsVisible:$,chatVisibleSettingPath:K,agents:Y,customCopilots:X,messages:Q,testReducerState:Z,realIp:ee,currentView:et,copilotChatPayload:es}=e,er=function(e,t){let s,r,i,o=(0,a.c)(4),d=l(e,t);if(o[0]===Symbol.for("react.memo_cache_sentinel")){let e=c.getItem(h);s=e?JSON.parse(e):void 0,o[0]=s}else s=o[0];let u=s;if(o[1]===Symbol.for("react.memo_cache_sentinel")?(r=[],o[1]=r):r=o[1],(0,n.useEffect)(p,r),d&&u?.expiry&&u.expiry>Date.now()&&u.threadId===e){let e;return o[2]===Symbol.for("react.memo_cache_sentinel")?(e={restoredMessages:u.restoredMessages,restoredThreadTitle:u.threadTitle},o[2]=e):e=o[2],e}return o[3]===Symbol.for("react.memo_cache_sentinel")?(i={},o[3]=i):i=o[3],i}(W,j),ea=er.restoredMessages,ei=er.restoredThreadTitle;if(ea){let e;H[0]!==ea?(e=(0,f.zh)(ea),H[0]=ea,H[1]=e):e=H[1],ea=e}H[2]!==k?(m=k?(0,g.qS)(k):void 0,H[2]=k,H[3]=m):m=H[3];let en=m;H[4]===Symbol.for("react.memo_cache_sentinel")?(_=(0,v.fZ)(null,null),H[4]=_):_=H[4];let eo=_;H[5]!==Y||H[6]!==z||H[7]!==$||H[8]!==K||H[9]!==es.agentsEnabled||H[10]!==es.agentsPath||H[11]!==es.apiURL||H[12]!==es.autoSubmit||H[13]!==es.currentUserLogin||H[14]!==es.customCopilotsEnabled||H[15]!==es.customCopilotsIndividualAccessEnabled||H[16]!==es.customInstructions||H[17]!==es.hasCEorCBAccess||H[18]!==es.optedInToPreviewFeatures||H[19]!==es.optedInToUserFeedback||H[20]!==es.personalInstructions||H[21]!==es.plan||H[22]!==es.renderBetaLabel||H[23]!==es.reviewLab||H[24]!==es.sharedThreadChannel||H[25]!==es.showCopilotSpacesMcpBanner||H[26]!==et||H[27]!==X||H[28]!==Q||H[29]!==j||H[30]!==V||H[31]!==ea||H[32]!==ei||H[33]!==J||H[34]!==q||H[35]!==Z||H[36]!==W||H[37]!==k||H[38]!==en||H[39]!==F?(R=Z||{threadSelectedAt:new Date,threadsLoading:{state:"pending",error:null},messagesLoading:{state:"pending",error:null},messagesRestored:!!ea,slashCommandLoading:{state:"pending",error:null},showTopicPicker:"immersive"!==j&&(!W||"assistive"===j)&&!k,topicLoading:{state:"pending",error:null},threads:new Map,restoredThreadTitle:ei,model:eo,availableModels:[eo],modelsLoading:{state:"pending",error:null},messages:Q??ea??[],streamingMessage:null,selectedThreadID:W,currentTopic:void 0,chatIsOpen:!!z,isWaitingOnCopilot:!1,isWaitingOnAttachment:!1,attachmentProcessingType:null,currentUserLogin:es.currentUserLogin,apiUrl:es.apiURL,currentReferences:en?[en,...V]:V,implicitReferences:N,findFileWorkerPath:F,currentView:et||"thread",selectedReference:J??null,mode:j,currentRepository:k,ssoOrganizations:q,context:void 0,customInstructions:es.customInstructions,chatIsVisible:$,chatVisibleSettingPath:K,renderBetaLabel:es.renderBetaLabel,topRepositoriesCache:void 0,agentsPath:es.agentsPath,customCopilotsEnabled:es.customCopilotsEnabled??!1,customCopilotsIndividualAccessEnabled:es.customCopilotsIndividualAccessEnabled??!0,optedInToPreviewFeatures:es.optedInToPreviewFeatures,optedInToUserFeedback:es.optedInToUserFeedback,agents:Y,customCopilots:X,reviewLab:es.reviewLab,repoCustomInstructionsEnabled:T.Jt.getRepoCustomInstructionsState(),ambientError:void 0,personalInstructions:es.personalInstructions??null,threadHasNewMessages:!1,sharedThreadsLoading:{state:"pending",error:null},skillOptions:{deepCodeSearch:!1},wrapCodeLines:T.Jt.getWrapCodeLines(),showCopilotSpacesMcpBanner:es.showCopilotSpacesMcpBanner??!1,sharedThreadChannel:es.sharedThreadChannel,autoSubmit:es.autoSubmit??!1,plan:es.plan,hasCEorCBAccess:es.hasCEorCBAccess,agentsEnabled:es.agentsEnabled},H[5]=Y,H[6]=z,H[7]=$,H[8]=K,H[9]=es.agentsEnabled,H[10]=es.agentsPath,H[11]=es.apiURL,H[12]=es.autoSubmit,H[13]=es.currentUserLogin,H[14]=es.customCopilotsEnabled,H[15]=es.customCopilotsIndividualAccessEnabled,H[16]=es.customInstructions,H[17]=es.hasCEorCBAccess,H[18]=es.optedInToPreviewFeatures,H[19]=es.optedInToUserFeedback,H[20]=es.personalInstructions,H[21]=es.plan,H[22]=es.renderBetaLabel,H[23]=es.reviewLab,H[24]=es.sharedThreadChannel,H[25]=es.showCopilotSpacesMcpBanner,H[26]=et,H[27]=X,H[28]=Q,H[29]=j,H[30]=V,H[31]=ea,H[32]=ei,H[33]=J,H[34]=q,H[35]=Z,H[36]=W,H[37]=k,H[38]=en,H[39]=F,H[40]=R):R=H[40];let ed=R,[ec,el]=(0,n.useReducer)(I,ed);return t=ec.messages,s=ec.selectedThreadID,i=ec.threads,E=ec.mode,(x=(0,a.c)(9))[0]!==E||x[1]!==s?(O=l(s,E),x[0]=E,x[1]=s,x[2]=O):O=x[2],B=O,x[3]!==t||x[4]!==B||x[5]!==s||x[6]!==i?(b=()=>{if(!B)return;let e=()=>{if(!t?.length||!s)return;let e=i.get(s),r=e?.name,a={expiry:Date.now()+8e3,restoredMessages:t,threadId:s,threadTitle:r};c.setItem(h,JSON.stringify(a,u))};return window.addEventListener("turbo:before-fetch-response",e),window.addEventListener("beforeunload",e),window.addEventListener("popstate",e),()=>{window.removeEventListener("turbo:before-fetch-response",e),window.removeEventListener("beforeunload",e),window.removeEventListener("popstate",e)}},P=[t,B,s,i],x[3]=t,x[4]=B,x[5]=s,x[6]=i,x[7]=b,x[8]=P):(b=x[7],P=x[8]),(0,n.useEffect)(b,P),H[41]!==ec.chatIsOpen||H[42]!==ec.currentReferences||H[43]!==ec.currentRepository?.id||H[44]!==ec.selectedThreadID?(S=function(){if(!ec.chatIsOpen)return;let e=ec.currentReferences.filter(e=>"repository"!==e.type||e.id!==ec.currentRepository?.id);T.Jt.setCurrentReferences(ec.selectedThreadID,e)},H[41]=ec.chatIsOpen,H[42]=ec.currentReferences,H[43]=ec.currentRepository?.id,H[44]=ec.selectedThreadID,H[45]=S):S=H[45],H[46]!==ec.chatIsOpen||H[47]!==ec.currentReferences||H[48]!==ec.currentRepository||H[49]!==ec.selectedThreadID?(C=[ec.selectedThreadID,ec.currentReferences,ec.currentRepository,ec.chatIsOpen],H[46]=ec.chatIsOpen,H[47]=ec.currentReferences,H[48]=ec.currentRepository,H[49]=ec.selectedThreadID,H[50]=C):C=H[50],(0,n.useEffect)(S,C),H[51]!==U||H[52]!==ec.selectedThreadID?(A=(0,r.jsx)(d.M,{selectedThreadId:ec.selectedThreadID,children:U}),H[51]=U,H[52]=ec.selectedThreadID,H[53]=A):A=H[53],H[54]!==es.apiURL||H[55]!==es.apiVersion||H[56]!==es.hasCEorCBAccess||H[57]!==ee||H[58]!==q||H[59]!==ec||H[60]!==A?(D=(0,r.jsx)(L,{value:el,children:(0,r.jsx)(w.v,{apiURL:es.apiURL,apiVersion:es.apiVersion,state:ec,dispatch:el,ssoOrganizations:q,realIp:ee,hasCEorCBAccess:es.hasCEorCBAccess,children:A})}),H[54]=es.apiURL,H[55]=es.apiVersion,H[56]=es.hasCEorCBAccess,H[57]=ee,H[58]=q,H[59]=ec,H[60]=A,H[61]=D):D=H[61],H[62]!==ec||H[63]!==D?(y=(0,r.jsx)(G,{state:ec,children:D}),H[62]=ec,H[63]=D,H[64]=y):y=H[64],H[65]!==es.licenseType||H[66]!==es.plan||H[67]!==es.quotas||H[68]!==y?(M=(0,r.jsx)(o.$d,{initialLicenseType:es.licenseType,initialPlan:es.plan,initialQuotas:es.quotas,children:y}),H[65]=es.licenseType,H[66]=es.plan,H[67]=es.quotas,H[68]=y,H[69]=M):M=H[69],M}b.displayName="CopilotChatProvider";let P=(0,n.createContext)(null);function G(e){let t,s,o,d,c=(0,a.c)(14),{state:l,children:h}=e,[u,p]=(0,i.XG)(l);return c[0]!==p||c[1]!==l||c[2]!==u.current.value?(t=()=>{l!==u.current.value&&p(l)},c[0]=p,c[1]=l,c[2]=u.current.value,c[3]=t):t=c[3],c[4]!==p||c[5]!==l||c[6]!==u?(s=[l,u,p],c[4]=p,c[5]=l,c[6]=u,c[7]=s):s=c[7],(0,n.useLayoutEffect)(t,s),c[8]!==h||c[9]!==l?(o=(0,r.jsx)(P,{value:l,children:h}),c[8]=h,c[9]=l,c[10]=o):o=c[10],c[11]!==u||c[12]!==o?(d=(0,r.jsx)(O.sw,{value:u,children:o}),c[11]=u,c[12]=o,c[13]=d):d=c[13],d}function x(){let e=(0,n.use)(P);if(!e)throw Error("useChatState can only be used inside a CopilotChatProvider");return e}function B(){return(0,n.use)(P)??void 0}function H(e){let t=(0,O.rE)();if(!t||!t.current)throw Error("useChatStateLens can only be used inside a CopilotChatProvider");let s=(0,i.Sk)(t.current,e);return(0,i.HN)(s)}function U(e){let t,s=(0,a.c)(2);return s[0]!==e?(t=t=>t[e],s[0]=e,s[1]=t):t=s[1],H(t)}function k(...e){let t,s=(0,a.c)(2);return s[0]!==e?(t=t=>(function(e,t){let s={};for(let r of t)s[r]=e[r];return s})(t,e),s[0]=e,s[1]=t):t=s[1],H(t)}function F(){let e=(0,n.use)(L);if(!e)throw Error("useChatDispatch can only be used inside a CopilotChatProvider");return e}P.displayName="ChatStateContext",G.displayName="ChatStateProvider"},75058(e,t,s){s.d(t,{b:()=>E,v:()=>g});var r=s(74848),a=s(16522),i=s(70170),n=s(96540),o=s(7154),d=s(80903),c=s(62912),l=s(4545),h=s(25891),u=s(65768);let p=(0,n.createContext)(null);function g(e){let t,s,g,E,m,f=(0,a.c)(24),{apiURL:_,state:T,dispatch:R,ssoOrganizations:I,children:S,realIp:C,hasCEorCBAccess:A,apiVersion:D}=e,y=(0,u.tD)(),M=(0,c.qw)(),w=(0,d.jR)();f[0]!==_||f[1]!==D||f[2]!==R||f[3]!==y||f[4]!==A||f[5]!==M||f[6]!==C||f[7]!==I||f[8]!==w?(t=new l.e8(R,_,I,y,C,void 0,A,M,D,w),f[0]=_,f[1]=D,f[2]=R,f[3]=y,f[4]=A,f[5]=M,f[6]=C,f[7]=I,f[8]=w,f[9]=t):t=f[9];let v=t,{licenseType:O}=(0,o.xR)(),L=(0,n.useRef)(T.currentReferences.length);return f[10]!==T.currentReferences.length?(s=()=>{L.current=T.currentReferences.length},f[10]=T.currentReferences.length,f[11]=s):s=f[11],(0,n.useEffect)(s),f[12]!==v||f[13]!==T.chatIsOpen||f[14]!==T.mode?(g=()=>{let e=new AbortController,t=h.W.immersiveEmbedded&&"immersive"===T.mode,s=async e=>{let t=window.location.hash,s=window.location.pathname,r=window.location.hash?`${s}${t}`:s,a=r.slice(1).split("/");if(a.length<2)return;let i=a[0],n=a[1];i&&n&&await v.fetchImplicitContext(r,i,n,e)},r=e=>{s(e)},a=(0,i.s)(()=>r(!t),500);return T.chatIsOpen&&(r(!0),!function(){let{replaceState:t,pushState:s}=window.history;window.history.replaceState=function(...e){t.apply(window.history,e),v.clearSuggestions(),window.dispatchEvent(new Event("replaceState"))},window.history.pushState=function(...e){s.apply(window.history,e),v.clearSuggestions(),window.dispatchEvent(new Event("pushState"))},window.addEventListener("popstate",a,{signal:e.signal}),window.addEventListener("replaceState",a,{signal:e.signal}),window.addEventListener("pushState",a,{signal:e.signal})}()),()=>{e.abort()}},f[12]=v,f[13]=T.chatIsOpen,f[14]=T.mode,f[15]=g):g=f[15],f[16]!==O||f[17]!==v||f[18]!==T.chatIsOpen||f[19]!==T.mode?(E=[v,T.chatIsOpen,T.mode,O],f[16]=O,f[17]=v,f[18]=T.chatIsOpen,f[19]=T.mode,f[20]=E):E=f[20],(0,n.useEffect)(g,E),f[21]!==S||f[22]!==v?(m=(0,r.jsx)(p,{value:v,children:S}),f[21]=S,f[22]=v,f[23]=m):m=f[23],m}function E(){let e=(0,n.use)(p);if(!e)throw Error("useChatManager must be used within a CopilotChatManagerProvider");return e}p.displayName="CopilotChatManagerContext",g.displayName="CopilotChatManagerProvider"},65768(e,t,s){s.d(t,{rE:()=>c,sw:()=>o,tD:()=>d});var r=s(74848),a=s(16522),i=s(96540);let n=(0,i.createContext)(null);function o(e){let t,s=(0,a.c)(3),{children:i,value:o}=e;return s[0]!==i||s[1]!==o?(t=(0,r.jsx)(n,{value:o,children:i}),s[0]=i,s[1]=o,s[2]=t):t=s[2],t}function d(){let e=(0,i.use)(n);if(!e||!e.current)throw Error("useGetChatState can only be used inside a CopilotChatProvider");return(0,i.useCallback)(()=>e.current.value,[e])}function c(){return(0,i.use)(n)}n.displayName="ObservableChatStateContext",o.displayName="ObservableChatStateProvider"},23339(e,t,s){s.d(t,{Qs:()=>d,fv:()=>i,uN:()=>a,wJ:()=>o,wX:()=>n,wg:()=>r});let r="copilot-chat-textarea",a="copilot-chat-topic-search",i="copilot-chat-header-button",n="copilot-diff-header-button",o="copilot-chat-panel",d="copilot-chat-panel"},4545(e,t,s){s.d(t,{L9:()=>S,e8:()=>D});var r=s(50467),a=s(74848),i=s(6758),n=s(94583),o=s(29681),d=s(58388),c=s(2159),l=s(23339),h=s(85461),u=s(73991),p=s(70791),g=s(57756),E=s(1361),m=s(25891),f=s(3972),_=s(1932),T=s(45986),R=s(35152),I=s(57148);let S=99,C="Only one agent is allowed per thread, and their context can't be shared. If you want to interact with another agent, please start a new thread and @ mention the new agent.",A=null;class D{async fetchRepoForInstructions(e){let t=await this.service.fetchRepo(e);return t.ok?(0,h.qS)(t.payload):null}async openChat(e,t,s,r,a,i){if(this.dispatch({type:"OPEN_COPILOT_CHAT",source:s}),"thread"===t&&await this.findOrStartNewThread(e,a,i),f.Jt.setCollapsedState(!1),O(this.getChatState().entryPointId??l.fv,!0),r){let e=new FormData;e.set("copilot_chat_visible","true"),(0,d.DI)(r,{method:"PUT",body:e})}}closeChat(){this.dispatch({type:"CLOSE_COPILOT_CHAT"}),f.Jt.setCollapsedState(!0),O(this.getChatState().entryPointId??l.fv,!1)}hideChat(e){if(this.dispatch({type:"HIDE_COPILOT_CHAT"}),this.closeChat(),e){let t=new FormData;t.set("copilot_chat_visible","false"),(0,d.DI)(e,{method:"PUT",body:t})}}toggleRepoCustomInstructions(e){this.dispatch({type:"TOGGLE_REPO_CUSTOM_INSTRUCTIONS",value:e}),f.Jt.setRepoCustomInstructionsState(e)}viewAllThreads(){this.dispatch({type:"VIEW_ALL_THREADS"})}viewCurrentThread(){this.dispatch({type:"VIEW_CURRENT_THREAD"})}maxMessagesReached(){return this.getChatState().messages.length>=3e3}setShouldReplaceHistoryOnNavigation(e){this.dispatch({type:"SET_SHOULD_REPLACE_HISTORY_ON_NAVIGATION",value:e})}async sendChatMessage({thread:e,content:t,references:s,topic:r,context:a,confirmations:i,customInstructions:n,model:o,customCopilotId:d,intent:c,parentMessageId:l,modeOverride:u,skillOptions:p,noSend:g,mediaContent:E}){let m=e;if(!m){let e=(0,h.Y6)({role:"user",content:t,mediaContent:[],references:s});this.dispatch({type:"SET_PENDING_FIRST_MESSAGE",message:e});try{m=await this.createThread({customCopilotId:d})}catch(s){let e="An unexpected error has occurred.";return s instanceof Error&&(e=s.message),this.handleSendMessageError(m,w(e),t,"ERROR_THREAD_CREATION",e),null}}E||(E=s.length?await Promise.all(s.filter(e=>"image"===e.type).map(async e=>{let{attachment:s}=e;if(!s.threadID){s.threadID=m?.id||null;try{await s.prefetch()}catch{let e="An error occurred uploading image attachments";this.handleSendMessageError(m,w(e),t,"ERROR_IMAGE_UPLOAD",e)}}let r=await s.url(),a=s.file;return{mediaType:a.type,name:a.name,url:r,chatAttachmentUrl:r,width:s.width,height:s.height}})):[]);let f=s.filter(e=>"image"!==e.type);return(f=f.filter(e=>"figma"!==e.type||!e.authenticationRequired),null!=m&&this.clearEditedReferencesFromSessionStorage(m.id),g)?{thread:m,references:f,mediaContent:E}:(await this.sendNewMessage(m,t,E,f,c,r,a,i,n,o,d,l,u,p),null)}FindLastMessageID(){let e=(0,g.B)(this.getChatState().messages);return e[e.length-1]?.id||"root"}async retryLastUnsuccessfulChatMessage(e){let{currentTopic:t,context:s,customInstructions:r,model:a}=this.getChatState(),i=(0,g.B)(this.getChatState().messages).findLast(e=>"user"===e.role);if(!i?.content)return;let n=i.references?.length?i.references:e.currentReferences??[],o=i.mediaContent||[];this.dispatch({type:"MESSAGES_CLEAR_LAST_ERROR"}),this.unselectPreviousChildMessage(i);let d="";if(i.clientSide){let e=(0,g.B)(this.getChatState().messages).findLast(e=>!e.clientSide);d=e?"user"===e.role?e.parentMessageID||"root":e.id:"root"}else d=i.id;return this.sendMessage(e,i.content,o,n,i.intent,s,t,r,a,void 0,d)}async retryUserChatMessage(e,t,s){let r,{currentTopic:a,context:i,customInstructions:n,model:o}=this.getChatState();if(t.parentMessageID&&(r=this.getChatState().messages.findLast(e=>e.id===t.parentMessageID)),!r||!r.content)return;this.unselectPreviousChildMessage(r);let d=r.references||[],c=r.mediaContent||[];return this.sendMessage(e,r.content,c,d,t.intent,i,a,n,s||o,void 0,r.id)}async editUserChatMessage(e,t,s){if(!s)return;let{currentTopic:r,context:a,customInstructions:i,messages:n,model:o}=this.getChatState(),d=(0,g.CX)(n,t);if(!d)return;let c=d?.id||"",l=t.clientConfirmations??[],u=t.references||[],p=t.mediaContent||[],E=(0,h.Y6)({role:"user",content:s,mediaContent:p,references:u,thread:e,confirmationResponses:l,parentMessageID:c}),f=m.W.customInstructionsFileReferences?await (0,h.f2)(u,e=>this.fetchRepoForInstructions(e)):(0,h.lG)(u),_=m.W.customInstructionsFileReferences?await (0,h.B5)(u,e=>this.fetchRepoForInstructions(e)):(0,h.j$)(u);if(this.dispatch({type:"MESSAGE_ADDED",message:E,repoHasCustomInstructions:!!f,usedRepoCustomInstructions:!!(f&&this.repoInstructionsEnabled()),customInstructionsOwners:_}),this.reloadingThreadPromise&&(this.dispatch({type:"WAITING_ON_COPILOT",loading:!0}),this.afterThreadReloadCallback=()=>{this.dispatch({type:"MESSAGE_ADDED",message:E,repoHasCustomInstructions:!!f,usedRepoCustomInstructions:!!(f&&this.repoInstructionsEnabled()),customInstructionsOwners:_})},!await this.reloadingThreadPromise))return;let T=d;for(;T&&T.clientSide;)T=(0,g.CX)(n,T);return this.sendMessage(e,s,p,u,t.intent,a,r,i,o,void 0,T?.id||"")}handleFeedback(e,t){this.dispatch({type:"MESSAGE_FEEDBACK",message:e,feedback:t})}setSelectedMessage(e){this.clearEditedReferencesFromSessionStorage(e.threadID),this.dispatch({type:"MESSAGES_SET_SELECTED_MESSAGE",message:e})}unselectPreviousChildMessage(e){this.dispatch({type:"MESSAGES_UNSELECT_PREVIOUS_MESSAGE",message:e})}async stopStreaming(){this.streamer?(await this.streamer.stop(),this.streamer=void 0):this.messageAbortController?.abort(),this.dispatch({type:"MESSAGE_STREAMING_STOPPED",timings:this.completeTiming()})}async getSystemPrompt(){let{mode:e}=this.getChatState(),t=m.W.immersiveEmbedded?"immersive":e;return await this.systemPrompt(t)}async createThread(e){let t,{customCopilotId:s,preventThreadSelection:r=!1,scopeId:a,savedMessageSource:i="immersive"}=e||{},n=await this.service.createThread(s,a);if(n.ok)return t=n.payload,f.Jt.migrateNullThreadToNewThread(t.id,i),this.dispatch({type:"THREAD_CREATED",thread:t,preventThreadSelection:r}),t;throw Error(n.error)}async sendNewMessage(e,t,s,r,a,i,n,o,d,c,l,u,p,E){let{mode:_}=this.getChatState(),T=(0,h.Y6)({role:"user",content:t,mediaContent:s,references:r,thread:e,confirmationResponses:o?[o]:[],parentMessageID:u||this.FindLastMessageID(),skillOptions:E}),R=m.W.customInstructionsFileReferences?await (0,h.f2)(r,e=>this.fetchRepoForInstructions(e)):(0,h.lG)(r),I=m.W.customInstructionsFileReferences?await (0,h.B5)(r,e=>this.fetchRepoForInstructions(e)):(0,h.j$)(r);if(this.dispatch({type:"MESSAGE_ADDED",message:T,repoHasCustomInstructions:!!R,usedRepoCustomInstructions:!!(R&&this.repoInstructionsEnabled()),customInstructionsOwners:I}),!e)try{e=await this.createThread({customCopilotId:l})}catch(r){let s="An unexpected error has occurred.";r instanceof Error&&(s=r.message),this.handleSendMessageError(e,w(s),t,"ERROR_THREAD_CREATION",s);return}this.dispatch({type:"THREAD_UPDATED",thread:{id:e.id,updatedAt:new Date().toISOString()}}),this.dispatch({type:"CLEAR_CURRENT_REFERENCES"}),c&&("assistive"!==_||m.W.immersiveEmbedded)&&f.Jt.setModel(e.id,c,!1);let S="";if(!u){let e=(0,g.B)(this.getChatState().messages),t=e[e.length-1];if(u=t?t.clientSide?e.findLast(e=>!e.clientSide&&"assistant"===e.role)?.id||"root":t.id:"root",this.reloadingThreadPromise&&(this.dispatch({type:"WAITING_ON_COPILOT",loading:!0}),this.afterThreadReloadCallback=e=>{0!==e.length&&(T.parentMessageID=S=e[e.length-1].id,this.dispatch({type:"MESSAGE_ADDED",message:T,repoHasCustomInstructions:!!R,usedRepoCustomInstructions:!!(R&&this.repoInstructionsEnabled()),customInstructionsOwners:I}))},!await this.reloadingThreadPromise))return}return this.sendMessage(e,t,s,r,a,n,i,d,c,o,S||u,p,E)}async sendMessage(e,t,s,r,a,o,d,c,l,p,g,f,_){a??(a=E.wh.conversation);let T=(0,h.Y6)({role:"assistant",content:"",mediaContent:[],thread:e,parentMessageID:g});T.messageIndex=-1,this.dispatch({type:"WAITING_ON_COPILOT",loading:!0});let R=r.length&&(1!==r.length||r[0]?.type!=="repository")?void 0:o;(0,n.BI)("copilot.implicit_context",{usedImplicitContext:!!R,type:R?.[0]?.type,count:R?.length}),!r.length&&d&&(r=[(0,h.qS)(d)]);let I=[];if(this.repoInstructionsEnabled()){let e=m.W.customInstructionsFileReferences?await (0,h.hm)(r,e=>this.fetchRepoForInstructions(e)):(0,h.NJ)(r);I.push(...e)}c?.type!=="Organization"||I.find(e=>"Organization"===e.type)||I.push(c),c?.type==="Assistant"&&I.push(c);let S=I.find(e=>"Organization"===e.type);S&&r.push((0,h.lj)(S.owner));let C=I.map(e=>e.prompt),{mode:A}=this.getChatState();this.timings={startTime:Date.now()},this.streamer=void 0,this.messageAbortController=new AbortController;try{let n={threadID:e.id,messageID:T.id,content:t,mediaContent:s,intent:a,mode:f||A,references:r,context:R??[],confirmations:p?[p]:[],customInstructions:C,model:l?.id,customCopilotID:(0,i.O)(e),parentMessageID:g,signal:this.messageAbortController.signal,skillOptions:_},o=this.activePlugin?.overrideCreateMessageOptions?await this.activePlugin.overrideCreateMessageOptions(n):n,d=await this.service.createMessageStreaming(o);if(d.ok){let s=d.response.body?.getReader();if(!s)return void this.handleSendMessageError(e,w(h.DW),t,"ERROR_STREAM_READER",h.DW);T.requestID=d.response.headers.get("x-github-request-id")||void 0;let r=new u.X(s);this.streamer=r,this.dispatch({type:"MESSAGE_STREAMING_STARTED",message:T}),await this.handleStreamingMessage(e,r),await this.generateThreadName(e)}else{if(this.messageAbortController.signal.aborted)return;this.handleSendMessageError(e,w(d.error),t,"ERROR_MESSAGE_STREAMING",d.error)}}finally{this.streamer=void 0,this.messageAbortController=void 0}}repoInstructionsEnabled(){return!!f.Jt.getRepoCustomInstructionsState()}async populateReferenceLanguage(e){let t=await this.service.fetchLanguageForFileReference(e);if(t.ok&&t.payload.language){let{languageName:s,languageId:r}=t.payload.language;this.replaceReference(e,{...e,languageName:s,languageId:r})}}clearEditedReferencesFromSessionStorage(e){(0,o.zB)(`edited-${e}-`)}addReference(e,t,s={}){this.dispatch({type:"ADD_REFERENCE",reference:e,source:t,implicit:!!s.implicit}),(0,h.SI)(e)&&(void 0===e.languageId||void 0===e.languageName)&&this.populateReferenceLanguage(e)}removeReference(e){e&&(L([e]),this.dispatch({type:"REMOVE_REFERENCES",references:[e]}))}removeReferences(e){L(e),this.dispatch({type:"REMOVE_REFERENCES",references:e})}clearImplicitReferences(){this.dispatch({type:"CLEAR_IMPLICIT_REFERENCES"})}replaceReference(e,t){this.dispatch({type:"REPLACE_REFERENCE",referenceToDelete:e,referenceToInsert:t})}setImageAttachmentUploaded(e,t){this.dispatch({type:"IMAGE_UPLOADED",referenceId:e,dotcomAttachment:t})}selectModel(e,t=!0,s=!0){this.dispatch({type:"SELECT_MODEL",model:e}),t&&f.Jt.setModel(this.getChatState().selectedThreadID,e,s)}get activePlugin(){return(0,c.BW)(location,this.plugins)}setCopilotSettings(e){f.Jt.settings=e}async selectThread(e,t){let{clearTopic:s,includeThreads:r=!0}=t??{};await this.fetchModels(),await this.stopStreaming(),this.dispatch({type:"CLEAR_SHARED_THREAD_CHANNEL"}),this.dispatch({type:"SELECT_THREAD",thread:e,clearTopic:s});let a=[];a.push(this.fetchMessages(e?.id||null)),r&&a.push(this.fetchThreads()),await Promise.all(a)}addMessage(e,t,s,r,a,i,n){let o=(0,h.Y6)({role:e,content:s,mediaContent:r,references:a,thread:t,confirmationResponses:i,clientSkillConfirmations:n,parentMessageID:this.FindLastMessageID()});this.dispatch({type:"MESSAGE_ADDED",message:o})}async renameThread(e,t){(await this.service.renameThread(e.id,t)).ok&&this.dispatch({type:"THREAD_UPDATED",thread:{id:e.id,name:t}})}async generateThreadName(e){if(!e.id||""===e.id.trim())return;let t=this.getChatState().messages;if(""!==e.name&&t.length>8)return;let s=await this.service.generateThreadName(e.id);s.ok&&this.dispatch({type:"THREAD_UPDATED",thread:{id:e.id,name:s.payload}})}dismissAmbientError(){this.dispatch({type:"DISMISS_AMBIENT_ERROR"})}addAmbientError(e){this.dispatch({type:"ADD_AMBIENT_ERROR",message:e});let{mode:t}=this.getChatState();(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_AMBIENT",mode:t,message:e})}async clearThread(e){(await this.service.clearThread(e.id)).ok&&this.dispatch({type:"CLEAR_THREAD",threadID:e.id})}async deleteThreadKeepSelection(e){this.dispatch({type:"DELETE_THREAD_KEEP_SELECTION",thread:e});let t=await this.service.deleteThread(e.id);t.ok||this.dispatch({type:"DELETE_THREAD_ERROR",thread:e,error:t.error})}async deleteAllThreadKeepSelection(e){this.dispatch({type:"DELETE_ALL_THREADS_KEEP_SELECTION",threads:e});let t=e.map(e=>e.id);for(let s=0;s!0){return Array.from(e.values()).filter(e=>t(e)&&!e.scopeID).sort((e,t)=>new Date(t.updatedAt).getTime()-new Date(e.updatedAt).getTime())}async sendMessageToNewThread(e,t,s,r,a,i="immersive"){if(""===t.trim()){let[e,r]=this.tryInferMessage(s);if(!e||!r)return;t=r}e&&(f.Jt.setSavedMessageFast(e,i,null),f.Jt.clearCurrentReferences(e)),await this.sendNewMessage(null,t,[],s,void 0,void 0,r,void 0,void 0,a)}startThreadReload(){this.reloadingThreadPromise=new Promise(e=>{this.resolvePromise=e})}cancelThreadReload(){this.resolvePromise(!1),this.resolvePromise=()=>{},this.reloadingThreadPromise=void 0,this.afterThreadReloadCallback=void 0,this.fetchingThreadID=null}async fetchMessages(e,t=!1,s=!1){let r=f.Jt.getCurrentReferences(e);if(!e)return this.threadDataLoaded(e,[],r||[]),()=>{};t||this.dispatch({type:"MESSAGES_UPDATED",state:"loading"});let a=this.getChatState().messages;this.fetchingThreadID=e;let i=async s=>{let n=await this.service.listMessages(e);if(t&&this.fetchingThreadID!==e)return!1;if(!n.ok)return this.setMessageUpdatedError(n.status,n.payload?.missingOrgIds),this.afterThreadReloadCallback=void 0,!1;if(s&&n.payload.messages.length===a.length)return i(!1);{let t=n.payload.thread;return this.threadDataLoaded(e,n.payload.messages,r||t.currentReferences||[]),this.afterThreadReloadCallback&&(this.afterThreadReloadCallback(n.payload.messages),this.afterThreadReloadCallback=void 0),!0}},n=await i(s);return()=>{this.resolvePromise(n),this.resolvePromise=()=>{},this.reloadingThreadPromise=void 0}}async fetchSharedThreadMessages(e){if(!e)return;this.dispatch({type:"MESSAGES_UPDATED",state:"loading"});let t=await this.service.listSharedThreadMessages(e);if(this.dispatch({type:"FETCH_SHARED_THREAD_MESSAGES",ok:t.ok,status:t.status,shareId:e,originalThreadId:t.ok?t.payload.thread.id:void 0}),t.ok){this.threadDataLoaded(e,t.payload.messages,[]),await this.fetchModels();let s=t.payload.messages?.at(-1)?.model,r=s&&this.getChatState().availableModels?.find(e=>e.id===s);r&&this.selectModel(r)}else this.setMessageUpdatedError(t.status,t.payload?.missingOrgIds)}setMessageUpdatedError(e,t){this.dispatch({type:"MESSAGES_UPDATED",state:"error",...404===e?{notFound:!0,missingOrgIds:t}:{}})}selectReference(e){this.dispatch({type:"SELECT_REFERENCE",reference:e})}setTopRepositoryTopics(e){this.dispatch({type:"SET_TOP_REPOSITORIES",topics:e})}async handleStreamingMessage(e,t){try{for await(let s of t.stream())this.processStreamingMessage(e,s)}catch(s){let t;if(this.isWrappedStreamingResponseError(s))t=this.getStreamingErrorMessage(s.error);else{t=w(h.DW);let{mode:e}=this.getChatState();(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_STREAMING_GENERIC",mode:e,message:"An unexpected error occurred during message streaming."})}this.handleSendMessageError(e,t);return}}isWrappedStreamingResponseError(e){return!!e&&"object"==typeof e&&"error"in e&&!!e.error&&"object"==typeof e.error&&"errorType"in e.error&&"string"==typeof e.error.errorType&&E.C6.includes(e.error.errorType)}processStreamingMessage(e,t){var s,r,a;switch((s=this.timings).firstByte??(s.firstByte=Date.now()),t.type){case"content":(r=this.timings).firstToken??(r.firstToken=Date.now()),this.dispatch({type:"MESSAGE_STREAMING_TOKEN_ADDED",token:t.body});break;case"functionCall":a=t.name,E.xP.includes(a)&&this.dispatch({type:"MESSAGE_STREAMING_FUNCTION_CALLED",name:t.name,status:t.status,arguments:t.arguments,errorMessage:t.errorMessage,references:t.references,statusMessage:t.statusMessage,callId:t.callId});break;case"confirmation":this.dispatch({type:"MESSAGE_STREAMING_CONFIRMATION",title:t.title,message:t.message,confirmation:t.confirmation});break;case"threadTitle":this.dispatch({type:"THREAD_UPDATED",thread:{...e,name:t.title}});break;case"complete":t.references=(0,_.q)(t.references),this.dispatch({type:"MESSAGE_STREAMING_COMPLETED",messageResponse:t,timings:this.completeTiming()}),this.handleSendMessageSuccess(e);break;case"error":{let s=this.getStreamingErrorMessage(t);this.handleSendMessageError(e,s);break}case"debug":console.log("Prompt Body:",t.body);break;case"trace":{let s=this.getChatState().streamingMessage?.createdAt;try{if(!t.traceId){console.error("Received trace data without trace ID from backend, ignoring trace");break}let r=(0,R.r)(t.spans);if(r[0]){let a=s||t.traceId;this.traceDispatch?.({type:"SET_TRACE_INFO",traceInfo:{spanNode:r[0],messageId:a,threadId:e.id,actualTraceId:t.traceId}})}}catch(e){console.error("Failed to process trace info:",e)}break}case"agentError":this.dispatch({type:"AGENT_ERROR",error:{type:t.agentErrorType,code:t.code,message:t.message,identifier:t.identifier}})}}getStreamingErrorMessage(e){let{mode:t}=this.getChatState();switch(e.errorType){case"publicCode":{let e="https://docs.github.com/en/copilot/managing-copilot/managing-copilot-as-an-individual-subscriber/managing-copilot-policies-as-an-individual-subscriber",s=(0,a.jsxs)(a.Fragment,{children:["This response cannot be shown because it references public code, which is restricted by"," ",(0,a.jsx)("a",{href:e,children:"your Copilot settings"}),"."]});return this.hasCEorCBAccess&&(e="https://docs.github.com/en/enterprise-cloud@latest/copilot/managing-copilot/managing-github-copilot-in-your-organization/managing-policies-for-copilot-in-your-organization",s=(0,a.jsxs)(a.Fragment,{children:["This response cannot be shown because it references public code, which is restricted by"," ",(0,a.jsx)("a",{href:e,children:"your organization's Copilot settings"}),"."]})),(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_PUBLIC_CODE",mode:t,message:"This response cannot be shown because it references public code, which is restricted by your Copilot settings."}),{type:"publicCode",isError:!0,message:s,retryable:!0}}case"filtered":{let e=(0,a.jsxs)(a.Fragment,{children:["This response has been filtered because it violates ",(0,a.jsx)("a",{href:"https://docs.github.com/en/site-policy/github-terms/github-terms-for-additional-products-and-features#github-copilot",children:"GitHub's safety policies"}),"."]});return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_FILTERED_RESPONSE",mode:t,message:"This response has been filtered because it violates GitHub's safety policies."}),{type:"filtered",isError:!0,message:e,retryable:!1}}case"contentTooLarge":return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_CONTENT_TOO_LARGE",mode:t,message:h.nN["413"]||h.DW}),v(h.nN["413"]||h.DW);case"rateLimit":return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_RATE_LIMIT",mode:t,message:h.nN["429"]||h.DW}),w(h.nN["429"]||h.DW);case"agentUnauthorized":{let s=JSON.parse(e.description),r=`You haven't authorized ${s.name} to access your account. You can do that by going here: ${window.location.origin}/login/oauth/authorize?client_id=${s.client_id}`;return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_AGENT_UNAUTHORIZED",mode:t,message:r}),{type:"agentUnauthorized",isError:!0,message:r,details:s}}case"agentRequest":{let s=JSON.parse(e.description);return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_AGENT_REQUEST",mode:t,message:s.message}),{type:"agentRequest",isError:!0,message:s.message,details:s}}case"multipleAgentsAttempt":return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_MULTIPLE_AGENTS_ATTEMPT",mode:t,message:C}),w(C);case"networkError":return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_NETWORK",mode:t,message:h.nN["408"]||h.DW}),w(h.nN["408"]||h.DW);case"quotaExceeded":return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_QUOTA_EXCEEDED",mode:t,message:e.description||h.nN["402"]||h.DW}),v(e.description||h.nN["402"]||h.DW);case"billingNotConfigured":return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_BILLING_NOT_CONFIGURED",mode:t,message:e.description||h.nN["402"]||h.DW}),{isError:!0,message:(0,a.jsxs)(a.Fragment,{children:["You have Copilot licenses from multiple organizations or enterprises. To use premium requests, please select a billing entity in your ",(0,a.jsx)("a",{href:h.rU,children:"Copilot billing settings"}),"."]}),type:"basic",retryable:!1};default:return(0,n.BI)("dotcom_chat.activate.error",{target:"ERROR_EXCEPTION",mode:t,message:h.FF[e.errorType]||h.DW}),w(h.FF[e.errorType]||h.DW)}}handleSendMessageSuccess(e){f.Jt.clearCurrentReferences(e.id),this.dispatch({type:"WAITING_ON_COPILOT",loading:!1})}handleSendMessageError(e,t,s,r,a=h.DW){e&&s&&f.Jt.setSavedUserMessageOnError(e.id,s);let i=(0,g.B)(this.getChatState().messages).findLast(e=>"user"===e.role)?.id||"root",o=(0,h.Y6)({role:"assistant",content:"",mediaContent:[],error:t,thread:e,parentMessageID:i});if(this.dispatch({type:"MESSAGE_ADDED",message:o}),this.dispatch({type:"WAITING_ON_COPILOT",loading:!1}),this.dispatch({type:"MESSAGE_STREAMING_FAILED",timings:this.completeTiming()}),r){let{mode:e}=this.getChatState();(0,n.BI)("dotcom_chat.activate.error",{target:r,mode:e,message:a})}}async fetchModels(){if(A){let{availableModels:e}=this.getChatState();(!e||A.length>e.length)&&this.dispatch({type:"MODELS_LOADED",models:A});return}this.dispatch({type:"MODELS_LOADING"});let e=await this.service.listModels();if(e.ok){let t=(0,T.eW)(e.payload);A=t,this.dispatch({type:"MODELS_LOADED",models:t});let s=f.Jt.getModel(this.getChatState().selectedThreadID)?.id,r=t.find(e=>e.id===s)||t.find(e=>e.is_chat_default);r&&this.dispatch({type:"SELECT_MODEL",model:r})}else this.dispatch({type:"MODELS_LOADING_ERROR",error:e.error})}async fetchThreads(){if(!this.fetchThreadsPromise)try{return this.fetchThreadsPromise=this.fetchThreadsImpl(),await this.fetchThreadsPromise}finally{this.fetchThreadsPromise=null}return this.fetchThreadsPromise}async fetchThreadsImpl(){this.dispatch({type:"THREADS_LOADING"});let e=await this.service.fetchThreads();return e.ok?(setTimeout(()=>this.dispatch({type:"THREADS_LOADED",threads:e.payload}),100),e.payload):(setTimeout(()=>this.dispatch({type:"THREADS_LOADING_ERROR",message:e.error,status:e.status}),100),null)}async fetchSharedThreads(){this.dispatch({type:"SHARED_THREADS_LOADING"});let e=await this.service.fetchSharedThreads();return e.ok?(setTimeout(()=>this.dispatch({type:"SHARED_THREADS_LOADED"}),100),e.payload):(setTimeout(()=>this.dispatch({type:"SHARED_THREADS_LOADING_ERROR",message:e.error}),100),null)}async fetchLatestThread(e){let t=await this.service.fetchLatestThread(e);return t.ok?(t.payload&&this.dispatch({type:"LATEST_THREAD_LOADED",latestThread:t.payload}),t.payload):null}async continueSharedThread(e){if(!e)return this.dispatch({type:"THREAD_CONTINUED_FAILED"}),null;this.dispatch({type:"MESSAGES_UPDATED",state:"loading"});let t=await this.service.continueSharedThread(e);if(!t.ok)return null;{let{thread:e,messages:s}=t.payload;this.dispatch({type:"THREAD_CONTINUED",thread:e}),this.dispatch({type:"MESSAGES_UPDATED",state:"loaded",messages:s})}return t.payload}async unshareAllThreads(){let e=await this.service.unshareAllThreads();if(!e.ok)return this.dispatch({type:"ADD_AMBIENT_ERROR",message:e.error||"Failed to unshare all threads"}),e;for(let e of Array.from(this.getChatState().threads.values()))e.sharedAt&&this.dispatch({type:"THREAD_UPDATED",thread:{id:e.id,sharedAt:void 0,sharedID:void 0}});return e}async findOrStartNewThread(e,t,s){let r=null;if(e)r=e;else if(!s){let e=f.Jt.selectedThreadID||void 0;r=await this.fetchLatestThread(e)}if(r&&((0,h.F2)(r)||r.customCopilotID)&&(r=null),r&&t){let e=await this.service.listMessages(r.id);if(e.ok){let s=e.payload.messages,a=s?.length;a>=2&&!s[a-2]?.references?.find(e=>(0,h.x_)(e,t))&&(r=null)}}return await this.selectThread(r,{includeThreads:!1}),r}async systemPrompt(e){let t=await this.service.getSystemPrompt(e);return t.ok?t.payload.prompt:""}async fetchAgents(e){let t=await this.service.listAgents(e),s=[];return t.ok&&(s=t.payload,this.dispatch({type:"SET_AGENTS",agents:s})),s}async fetchCopilotSpace(e){let t=await this.service.fetchCopilotSpace(e),s={};return t.ok&&(s=t.payload),s}async fetchCurrentRepo(e){let t=await this.service.fetchRepo(e);if(t.ok)return this.dispatch({type:"ADD_REFERENCE",reference:(0,h.qS)(t.payload),source:"currentRepo"}),t.payload}async fetchImplicitContext(e,t,s,r=!0){let a=await this.service.fetchImplicitContext(e,t,s);if(a.ok){let e=a.payload?Array.isArray(a.payload)?a.payload:[a.payload]:void 0;this.dispatch({type:"IMPLICIT_CONTEXT_UPDATED",context:e});let i=this.getChatState();if(r&&"immersive"===i.mode&&e&&e.length>0){let r=m.W.immersiveEmbeddedImplicitReferences?e:e.filter(e=>e?.type==="repository");if(r.length>0){for(let e of(await Promise.all(r.map(async e=>{if(!e)return e;if("pull-request"===e.type||"issue"===e.type||"discussion"===e.type){let r="pull-request"===e.type?"pull_request":e.type,a=await this.service.fetchReferenceDetails(t,s,r,e.number);if(a.ok&&a.payload)return a.payload}return e}))))if(e){let t=this.getChatState(),s=t.currentReferences?.find(t=>(0,h.x_)(t,e));s?this.replaceReference(s,e):this.addReference(e,"implicit-context",{implicit:!0})}}}e&&e.length>0&&void 0!==e[0]&&this.generateSuggestions(e[0])}}threadDataLoaded(e,t,s){this.dispatch({type:"MESSAGES_UPDATED",messages:t,state:"loaded"}),this.dispatch({type:"REFERENCES_LOADED",references:s})}dismissEditorUpsellBanner(){let e=new FormData;e.set("copilot_editor_upsell_banner_dismissed","true"),(0,d.DI)("/github-copilot/preferences",{method:"PUT",body:e}),this.dispatch({type:"DISMISS_EDITOR_UPSELL_BANNER"})}tryInferMessage(e){return e&&e.find(e=>"image"===e.type)?[!0,"Describe this image"]:[!1,void 0]}setWrapCodeLines(e){this.dispatch({type:"SET_WRAP_CODE_LINES",value:e}),f.Jt.setWrapCodeLines(e)}clearDefaultRecipient(){this.dispatch({type:"CLEAR_DEFAULT_RECIPIENT"})}completeTiming(){return{...this.timings,endTime:Date.now()}}getCustomCopilotKey(e){return e?`${e.owner}:${e.id}`:"default"}getThreadById(e){return e&&this.getChatState().threads.get(e)||null}constructor(e,t,s,a,i,n,o,d,c,l){(0,r._)(this,"dispatch",void 0),(0,r._)(this,"traceDispatch",void 0),(0,r._)(this,"service",void 0),(0,r._)(this,"getChatState",void 0),(0,r._)(this,"hasCEorCBAccess",void 0),(0,r._)(this,"timings",{startTime:0}),(0,r._)(this,"streamer",void 0),(0,r._)(this,"messageAbortController",void 0),(0,r._)(this,"reloadingThreadPromise",void 0),(0,r._)(this,"fetchingThreadID",null),(0,r._)(this,"afterThreadReloadCallback",void 0),(0,r._)(this,"plugins",void 0),(0,r._)(this,"clearCurrentReferences",e=>{e&&e.includes("image")||L(this.getChatState().currentReferences),this.dispatch({type:"CLEAR_CURRENT_REFERENCES",keepTypes:e})}),(0,r._)(this,"clearAllReferences",()=>{L(this.getChatState().currentReferences),this.dispatch({type:"CLEAR_ALL_REFERENCES"})}),(0,r._)(this,"resolvePromise",()=>{}),(0,r._)(this,"fetchThreadsPromise",null),(0,r._)(this,"clearCurrentTopic",()=>{this.dispatch({type:"CURRENT_TOPIC_UPDATED",topic:void 0,state:"loaded"})}),(0,r._)(this,"showTopicPicker",(e=!0)=>{this.dispatch({type:"SHOW_TOPIC_PICKER",show:e})}),(0,r._)(this,"startEditingMessage",e=>this.dispatch({type:"START_EDITING_MESSAGE",messageId:e})),(0,r._)(this,"cancelEditingMessage",()=>this.dispatch({type:"CANCEL_EDITING_MESSAGE"})),this.dispatch=e,this.traceDispatch=l,this.service=n??new p.k(t,s,i,c),this.getChatState=a,this.hasCEorCBAccess=!!o,this.plugins=d}}function y(e){var t;return M(e,[E.wh.explain,E.wh.suggest])||M(e,[E.wh.conversation])&&"content"in(t=e)&&"string"==typeof t.content}function M(e,t){return new Set(t).has(e.intent)}function w(e){return{isError:!0,message:e,type:"basic",retryable:!0}}function v(e,t){return{isError:!0,message:e,type:t||"basic",retryable:!1}}function O(e,t){let s=document.getElementById(e);s?.setAttribute("aria-expanded",t?"true":"false")}function L(e){for(let t of e)if("image"===t.type){let e=t.attachment;e instanceof I.N&&e.abortController.abort("Reference removed before upload completed")}}},73991(e,t,s){s.d(t,{X:()=>n});var r=s(50467);let a=/^data:\s+/;class i extends Error{constructor(e){super(e.description),(0,r._)(this,"error",void 0),this.error=e,this.name="CopilotStreamingError"}}class n{async *stream(){let e=new TextDecoder("utf-8"),t="";for(;;){let s,r;try{({value:s,done:r}=await this.reader.read())}catch{throw new i({type:"error",errorType:"networkError",description:"NETWORK_CONNECTION_INTERRUPTED"})}if(r)break;for(t+=e.decode(s);;){let e=t.indexOf("\n\n");if(-1===e)break;let s=t.slice(0,e).replace(a,"");if("[DONE]"===s)return;let r=JSON.parse(s);if(yield r,r?.type==="complete")return;t=t.slice(e+2)}}}async stop(){return this.reader.cancel()}constructor(e){(0,r._)(this,"reader",void 0),this.reader=e}}},57756(e,t,s){s.d(t,{B:()=>i,CX:()=>l,HR:()=>d,TC:()=>o,Y$:()=>c,ws:()=>n,zh:()=>a});var r=s(94583);function a(e,t=!0){let s=performance.now(),i=0,n={id:"root",role:"user",createdAt:"",threadID:"",references:null,childMessageIndexes:[],messageIndex:0,clientSide:!1};if(0===e.length)return e=[n],i=performance.now()-s,(0,r.BI)("copilot.timings",{function:"constructMessagesHierarchy",timeElapsed:i,messagesLength:e.length,selectMostRecentMessages:t}),e;"root"!==e[0].id&&(e=[n,...e],(0,r.BI)("copilot.legacy_thread_updated",{threadID:e[1].threadID,messagesLength:e.length,selectMostRecentMessages:t}));let o=e[1];if(!o)return e;[e,o]=h(e,1,"parentMessageID","root");let d=new Map,c=[];for(let[t,s]of e.entries()){if([e,s]=h(e,t,"messageIndex",t),c[t]=[],d.set(s.id,t),"root"===s.id)continue;s.parentMessageID||([e,s]=h(e,t,"parentMessageID",o.id),o=s);let r=d.get(s.parentMessageID);if(void 0!==r){[e,s]=h(e,t,"parentMessageIndex",r);let a=e[r];a&&(c[r].push(t),void 0===a.selectedChildIndex&&([e,a]=h(e,r,"selectedChildIndex",t)))}}for(let t=0;t({...e})),r=s[t.parentMessageIndex];return r&&(r.selectedChildIndex=t.messageIndex),s}function o(e,t){let s=e.map(e=>({...e})),r=s[t.messageIndex];return r&&void 0!==r.selectedChildIndex&&(r.selectedChildIndex=void 0),s}function d(e,t){let s=e.findIndex(e=>e.id===t?.parentMessageID);if(-1!==s){let r=e[s],a={...t};a.messageIndex=e.length,a.childMessageIndexes=[],a.parentMessageIndex=r.messageIndex;let i=r.childMessageIndexes?.slice()||[];i.includes(a.messageIndex)||i.push(a.messageIndex),r={...r,childMessageIndexes:i,selectedChildIndex:a.messageIndex},e=[...e,a].toSpliced(s,1,r)}return e}function c(e,t){if(null==e.find(e=>e.id===t?.parentMessageID)){let s=i(e),r=s[s.length-1];if(void 0!==r)if(r.clientSide&&"user"===r.role){let s=e.indexOf(r);[e,r]=h(e,s,"id",t.parentMessageID),[e,r]=h(e,s,"clientSide",!1)}else t.parentMessageID=r.id}return e}function l(e,t){return void 0!==t.parentMessageIndex?e[t.parentMessageIndex]:void 0}function h(e,t,s,r){let a=e[t];if(!a)throw Error(`Message at index ${t} does not exist.`);let i=a[s];if(i===r||Array.isArray(i)&&Array.isArray(r)&&i.length===r.length&&i.every((e,t)=>e===r[t]))return[e,a];let n={...a,[s]:r},o=[...e];return o[t]=n,[o,o[t]]}},57148(e,t,s){s.d(t,{N:()=>p});var r=s(35750),a=s(18150),i=s(85242),n=s(50467),o=s(63484),d=s(49069);async function c(e,t){return void 0!==t.width&&void 0!==t.height?{width:t.width,height:t.height}:e.type.startsWith("image/")?new Promise((s,r)=>{let a=new FileReader;a.onload=e=>{if(!e.target?.result||"string"!=typeof e.target.result)return void s({width:void 0,height:void 0});let a=new Image;a.onload=()=>{t.width=a.width,t.height=a.height,s({width:a.width,height:a.height})},a.onerror=()=>r(Error("Failed to load image for dimension extraction")),a.src=e.target.result},a.readAsDataURL(e)}):{width:void 0,height:void 0}}var l=new WeakMap,h=new WeakMap,u=new WeakMap;class p{prefetch(){return(0,r._)(this,u).load()}get previewUrl(){return(0,r._)(this,u).read().href}async url(){return(await (0,r._)(this,u).load()).href}async getDimensions(){return c(this.file,this)}constructor(e,t,s=null){(0,n._)(this,"file",void 0),(0,n._)(this,"width",void 0),(0,n._)(this,"height",void 0),(0,a._)(this,l,{writable:!0,value:void 0}),(0,a._)(this,h,{writable:!0,value:void 0}),(0,n._)(this,"abortController",void 0),(0,n._)(this,"key",void 0),(0,n._)(this,"threadID",void 0),(0,n._)(this,"isLoaded",!1),(0,n._)(this,"hasError",!1),(0,a._)(this,u,{writable:!0,value:(0,d.Z)(async()=>{let e=await (0,o.BV)({name:this.file.name,size:String(this.file.size),content_type:this.file.type,thread_id:this.threadID},"/upload/policies/copilot-chat-attachments",(0,r._)(this,h));await (0,o.QM)(this.file,e,(0,r._)(this,h));let t=await (0,o.My)(e,(0,r._)(this,h)),s=await (0,r._)(this,l);return this.width=s.width,this.height=s.height,this.isLoaded=!0,t})}),this.file=t,this.abortController=new AbortController,(0,i._)(this,h,this.abortController.signal),this.key=e,(0,i._)(this,l,this.getDimensions()),this.threadID=s}}},6758(e,t,s){s.d(t,{O:()=>r});function r(e){return e&&e.customCopilotID&&e.customCopilotOwner?{id:e.customCopilotID,owner:e.customCopilotOwner}:null}},29681(e,t,s){s.d(t,{Fo:()=>f,D6:()=>g,zB:()=>m,MV:()=>E});var r=s(16522),a=s(96540);let{cache:i,readStorage:n,writeStorage:o,resetStorage:d,subscribe:c,clearKeys:l,clearKeysByPrefix:h,getItemsByPrefix:u,clearAll:p}=(0,s(51732).y)("sessionStorage");function g(e){l(e)}function E(e){return u(e)}function m(e){h(e)}function f(e,t){let s,l,h,u,p,g,E,m=(0,r.c)(17),f=(0,a.useRef)(t);m[0]!==t?(s=()=>{f.current=t},m[0]=t,m[1]=s):s=m[1],(0,a.useEffect)(s),m[2]!==t||m[3]!==e?(l=()=>(i.has(e)||n(e,t),i.get(e)),m[2]=t,m[3]=e,m[4]=l):l=m[4];let _=l;m[5]!==t?(h=()=>t,m[5]=t,m[6]=h):h=m[6];let T=h;m[7]!==e?(u=t=>c(e,t),m[7]=e,m[8]=u):u=m[8];let R=u,I=(0,a.useSyncExternalStore)(R,_,T);m[9]!==e?(p=t=>{let s=i.has(e)?i.get(e):f.current,r="function"==typeof t?t(s):t;void 0===r?d(e,f.current):o(e,r)},m[9]=e,m[10]=p):p=m[10];let S=p;m[11]!==e?(g=()=>{d(e,f.current)},m[11]=e,m[12]=g):g=m[12];let C=g;return m[13]!==C||m[14]!==S||m[15]!==I?(E=[I,S,C],m[13]=C,m[14]=S,m[15]=I,m[16]=E):E=m[16],E}}}]); //# sourceMappingURL=97044-0330d61ff778f216-1ab4b23077b948e1.js.map performance.mark("js-parse-end:9751-e245755b735860a1.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["9751"],{27530(e,o,a){let s;a.d(o,{WP:()=>A,aq:()=>O,_S:()=>P,wb:()=>S,Gp:()=>M,Jc:()=>U,RW:()=>W,bG:()=>I});var i={};a.r(i),a.d(i,{consentControlOptions:()=>w,cookieCategories:()=>x});var r={};a.r(r),a.d(r,{consentControlOptions:()=>C,cookieCategories:()=>H});var t={};a.r(t),a.d(t,{consentControlOptions:()=>q,cookieCategories:()=>G});var n={};a.r(n),a.d(n,{consentControlOptions:()=>$,cookieCategories:()=>L});var c={};a.r(c),a.d(c,{consentControlOptions:()=>j,cookieCategories:()=>z});var l=a(31631),d=a(77291);let u="Required",m="Analytics",p="SocialMedia",b="Advertising",f="https://docs.github.com/site-policy/privacy-policies/github-privacy-statement",h="https://docs.github.com/site-policy/privacy-policies/github-subprocessors-and-cookies",g="https://docs.github.com/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-personal-account-settings/managing-your-cookie-preferences-for-githubs-enterprise-marketing-pages",k={[u]:!0,[m]:!1,[p]:!1,[b]:!1},y={[u]:!0,[m]:!0,[p]:!0,[b]:!0},v={github:{"close-button-color":"#d8b9ff","secondary-button-disabled-opacity":"0.5","secondary-button-hover-shadow":"none","primary-button-disabled-opacity":"0.5","primary-button-hover-border":"1px solid transparent","primary-button-disabled-border":"1px solid transparent","primary-button-hover-shadow":"none","banner-background-color":"#24292f","dialog-background-color":"#24292f","primary-button-color":"#ffffff","text-color":"#ffffff","secondary-button-color":"#32383f","secondary-button-disabled-color":"#424a53","secondary-button-border":"1px solid #eaeef2","background-color-between-page-and-dialog":"rgba(23, 23, 23, 0.8)","dialog-border-color":"#d8b9ff","hyperlink-font-color":"#d8b9ff","secondary-button-hover-color":"#24292f","secondary-button-hover-border":"1px solid #ffffff","secondary-button-disabled-border":"1px solid #6e7781","secondary-button-focus-border-color":"#6e7781","secondary-button-text-color":"#ffffff","secondary-button-disabled-text-color":"#ffffff","primary-button-hover-color":"#d8b9ff","primary-button-disabled-color":"#ffffff","primary-button-border":"1px solid #ffffff","primary-button-focus-border-color":"#ffffff","primary-button-text-color":"#1f2328","primary-button-disabled-text-color":"#1f2328","radio-button-border-color":"#d8b9ff","radio-button-checked-background-color":"#d8b9ff","radio-button-hover-border-color":"#ffffff","radio-button-hover-background-color":"#ffffff","radio-button-disabled-color":"rgba(227, 227, 227, 0.2)","radio-button-disabled-border-color":"rgba(227, 227, 227, 0.2)"}},x=[{id:u,name:"Required",descHtml:"GitHub uses required cookies to perform essential website functions and to provide the services. For example, cookies are used to log you in, save your language preferences, provide a shopping cart experience, improve performance, route traffic between web servers, detect the size of your screen, determine page load times, improve user experience, and for audience measurement. These cookies are necessary for our websites to work.",isUnswitchable:!0},{id:m,name:"Analytics",descHtml:"We allow third parties to use analytics cookies to understand how you use our websites so we can make them better. For example, cookies are used to gather information about the pages you visit and how many clicks you need to accomplish a task. We also use some analytics cookies to provide personalized advertising."},{id:p,name:"Social Media",descHtml:"GitHub and third parties use social media cookies to show you ads and content based on your social media profiles and activity on GitHub's websites. This ensures that the ads and content you see on our websites and on social media will better reflect your interests. This also enables third parties to develop and improve their products, which they may use on websites that are not owned or operated by GitHub."},{id:b,name:"Advertising",descHtml:"In addition, GitHub and third parties use advertising cookies to show you new ads based on ads you've already seen. Cookies also track which ads you click or purchases you make after clicking an ad. This is done to show you ads that are more relevant to you and for business purposes with our advertising partners. For example, cookies are used to detect when you click an ad and to show you ads based on your social media interests and website browsing history."}],w={textResources:{bannerMessageHtml:`We use optional cookies to improve your experience on our websites and to display personalized advertising based on your online activity. If you reject optional cookies, only cookies necessary to provide you the services listed above will be used. You may change your selection on which cookies to accept by clicking "Manage Cookies" at the bottom of the page to change your selection. This selection is maintained for 180 days. Please review your selections regularly.

How to manage cookie preferences | Privacy Statement | Third-Party Cookies.`,acceptAllLabel:"Accept",rejectAllLabel:"Reject",moreInfoLabel:"Manage cookies",preferencesDialogCloseLabel:"Close",preferencesDialogTitle:"Manage cookie preferences",preferencesDialogDescHtml:`Most GitHub websites use cookies. Cookies are small text files placed on your device to store data so web servers can use it later. GitHub and our third-party partners use cookies to remember your preferences and settings, help you sign in, show you personalized ads, and analyze how well our websites are working. For more info, see the Cookies and similar technologies section of the Privacy Statement.`},themes:v,initialTheme:"github"},H=[{id:u,name:"Obrigat\xf3rios",descHtml:"O GitHub usa cookies obrigat\xf3rios para realizar fun\xe7\xf5es essenciais do site e fornecer servi\xe7os. Por exemplo, cookies s\xe3o usados para permitir seu login, salvar suas prefer\xeancias de idioma, fornecer uma experi\xeancia de carrinho de compras, melhorar o desempenho, rotear tr\xe1fego entre servidores web, detectar o tamanho da sua tela, determinar tempos de carregamento de p\xe1ginas, melhorar a experi\xeancia de usu\xe1rio e para medi\xe7\xe3o de p\xfablico. Esses cookies s\xe3o necess\xe1rios para que nossos sites funcionem.",isUnswitchable:!0},{id:m,name:"Anal\xedticos",descHtml:"Permitimos que terceiros usem cookies anal\xedticos para entender como voc\xea usa nossos sites para que possamos melhor\xe1-los. Por exemplo, cookies s\xe3o usados para coletar informa\xe7\xf5es sobre as p\xe1ginas que voc\xea visita e quantos cliques s\xe3o necess\xe1rios para concluir uma tarefa. Tamb\xe9m usamos cookies anal\xedticos para veicular an\xfancios personalizados."},{id:p,name:"M\xeddia social",descHtml:"O GitHub e terceiros usam cookies de m\xeddia social para mostrar an\xfancios e conte\xfado com base em seus perfis de m\xeddia social e atividade em sites do GitHub. Isso garante que os an\xfancios e o conte\xfado que voc\xea v\xea em nossos sites e redes sociais v\xe3o estar mais alinhados aos seus interesses. Tamb\xe9m permite que terceiros desenvolvam e melhorem seus produtos, que podem ser usados em sites que n\xe3o s\xe3o de propriedade ou operados pelo GitHub."},{id:b,name:"Publicidade",descHtml:"Al\xe9m disso, o GitHub e terceiros usam cookies de publicidade para mostrar novos an\xfancios com base em an\xfancios que voc\xea j\xe1 viu. Os cookies tamb\xe9m rastreiam em quais an\xfancios voc\xea clicou ou compras que realizou ap\xf3s clicar em um an\xfancio. Isso \xe9 feito para veicular os an\xfancios que s\xe3o mais relevantes para voc\xea e para fins comerciais com nossos parceiros de publicidade. Por exemplo, cookies s\xe3o usados para detectar quando voc\xea clica em um an\xfancio e para veicular an\xfancios com base em seus interesses de m\xeddia social e hist\xf3rico de navega\xe7\xe3o em sites."}],C={textResources:{bannerMessageHtml:`Usamos cookies opcionais para melhorar sua experi\xeancia em nossos sites e para exibir publicidade personalizada com base em sua atividade on-line. Se voc\xea rejeitar os cookies opcionais, somente ser\xe3o usados os cookies necess\xe1rios para fornecer os servi\xe7os listados acima. Voc\xea pode alterar sua escolha de quais cookies voc\xea aceita ao clicar em \u{201C}Gerenciar cookies\u{201D} no parte inferior da p\xe1gina. Essa escolha \xe9 mantida por 180 dias. Revise suas escolhas regularmente.

Como gerenciar prefer\xeancias de cookies | Declara\xe7\xe3o de Privacidade | Cookies de terceiros.`,acceptAllLabel:"Aceitar",rejectAllLabel:"Rejeitar",moreInfoLabel:"Gerenciar cookies",preferencesDialogCloseLabel:"Fechar",preferencesDialogTitle:"Gerenciar prefer\xeancias de cookies",preferencesDialogDescHtml:`A maioria dos sites do GitHub usa cookies. Cookies s\xe3o pequenos arquivos de texto que s\xe3o colocados em seu dispositivo para armazenar dados para que servidores web possam us\xe1-los posteriormente. O GitHub e nossos parceiros terceiros usam cookies para lembrar de suas prefer\xeancias e configura\xe7\xf5es, permitir seu login, veicular an\xfancios personalizados e analisar o n\xedvel de funcionamento de nossos sites. Para obter mais informa\xe7\xf5es, consulte a se\xe7\xe3o Cookies e tecnologias de rastreamento da Declara\xe7\xe3o de Privacidade.`,acceptLabel:"Aceitar",rejectLabel:"Rejeitar",saveLabel:"Salvar altera\xe7\xf5es",resetLabel:"Redefinir tudo"},themes:v,initialTheme:"github"},G=[{id:u,name:"\u5FC5\u9808",descHtml:"GitHub \u306F\u3001\u5FC5\u8981\u4E0D\u53EF\u6B20\u306A\u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u6A5F\u80FD\u3092\u5B9F\u884C\u3057\u3001\u30B5\u30FC\u30D3\u30B9\u3092\u63D0\u4F9B\u3059\u308B\u305F\u3081\u306B\u5FC5\u9808 Cookie \u3092\u4F7F\u7528\u3057\u307E\u3059\u3002Cookie \u306E\u4F7F\u7528\u4F8B\u306B\u306F\u3001\u30ED\u30B0\u30A4\u30F3\u306E\u5B9F\u884C\u3001\u8A00\u8A9E\u8A2D\u5B9A\u306E\u4FDD\u5B58\u3001\u30B7\u30E7\u30C3\u30D4\u30F3\u30B0 \u30AB\u30FC\u30C8 \u30A8\u30AF\u30B9\u30DA\u30EA\u30A8\u30F3\u30B9\u306E\u63D0\u4F9B\u3001\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u306E\u5411\u4E0A\u3001\u30A6\u30A7\u30D6 \u30B5\u30FC\u30D0\u30FC\u9593\u306E\u30C8\u30E9\u30D5\u30A3\u30C3\u30AF\u306E\u30EB\u30FC\u30C6\u30A3\u30F3\u30B0\u3001\u753B\u9762\u30B5\u30A4\u30BA\u306E\u691C\u77E5\u3001\u30DA\u30FC\u30B8\u8AAD\u307F\u8FBC\u307F\u6642\u9593\u306E\u78BA\u5B9A\u3001\u30E6\u30FC\u30B6\u30FC \u30A8\u30AF\u30B9\u30DA\u30EA\u30A8\u30F3\u30B9\u306E\u6539\u5584\u3001\u304A\u3088\u3073\u30AA\u30FC\u30C7\u30A3\u30A8\u30F3\u30B9\u6E2C\u5B9A\u306A\u3069\u304C\u3042\u308A\u307E\u3059\u3002\u3053\u308C\u3089\u306E Cookie \u306F\u3001GitHub \u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u3092\u6A5F\u80FD\u3055\u305B\u308B\u305F\u3081\u306B\u5FC5\u8981\u3067\u3059\u3002.",isUnswitchable:!0},{id:m,name:"\u5206\u6790",descHtml:"GitHub \u306F\u3001\u5206\u6790 Cookie \u306E\u4F7F\u7528\u3092\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306B\u8A31\u53EF\u3057\u3001GitHub \u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u306E\u4F7F\u7528\u72B6\u6CC1\u3092\u628A\u63E1\u3059\u308B\u3053\u3068\u3067\u3001\u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u306E\u6539\u5584\u3092\u56F3\u3063\u3066\u3044\u307E\u3059\u3002\u4F8B\u3048\u3070\u3001Cookie \u306F\u30E6\u30FC\u30B6\u30FC\u304C\u30A2\u30AF\u30BB\u30B9\u3059\u308B\u30DA\u30FC\u30B8\u3084\u3001\u30BF\u30B9\u30AF\u3092\u5B8C\u4E86\u3059\u308B\u305F\u3081\u306B\u5FC5\u8981\u306A\u30AF\u30EA\u30C3\u30AF\u6570\u306B\u95A2\u3059\u308B\u60C5\u5831\u3092\u53CE\u96C6\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002\u307E\u305F\u3001\u30D1\u30FC\u30BD\u30CA\u30E9\u30A4\u30BA\u3055\u308C\u305F\u5E83\u544A\u3092\u63D0\u4F9B\u3059\u308B\u305F\u3081\u306B\u3082\u5206\u6790 Cookie \u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002."},{id:p,name:"\u30BD\u30FC\u30B7\u30E3\u30EB \u30E1\u30C7\u30A3\u30A2",descHtml:"GitHub \u3068\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306F\u3001\u30E6\u30FC\u30B6\u30FC\u306E\u30BD\u30FC\u30B7\u30E3\u30EB \u30E1\u30C7\u30A3\u30A2 \u30D7\u30ED\u30D5\u30A1\u30A4\u30EB\u3068\u3001GitHub \u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u3067\u306E\u30A2\u30AF\u30C6\u30A3\u30D3\u30C6\u30A3\u306B\u57FA\u3065\u3044\u305F\u5E83\u544A\u3068\u30B3\u30F3\u30C6\u30F3\u30C4\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306B\u3001\u30BD\u30FC\u30B7\u30E3\u30EB \u30E1\u30C7\u30A3\u30A2 Cookie \u3092\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002\u3053\u308C\u3089\u306E Cookie \u3092\u4F7F\u7528\u3059\u308B\u3053\u3068\u3067\u3001GitHub \u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u3084\u30BD\u30FC\u30B7\u30E3\u30EB \u30E1\u30C7\u30A3\u30A2\u3067\u8868\u793A\u3055\u308C\u308B\u5E83\u544A\u3068\u30B3\u30F3\u30C6\u30F3\u30C4\u306B\u30E6\u30FC\u30B6\u30FC\u306E\u95A2\u5FC3\u304C\u3088\u308A\u826F\u304F\u53CD\u6620\u3055\u308C\u308B\u3088\u3046\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u306B\u3088\u308A\u3001\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306F\u88FD\u54C1\u306E\u958B\u767A\u304A\u3088\u3073\u6539\u5584\u3082\u53EF\u80FD\u306B\u306A\u308A\u307E\u3059\u3002\u3053\u308C\u3089\u306E\u88FD\u54C1\u306F\u3001GitHub \u304C\u6240\u6709\u307E\u305F\u306F\u904B\u55B6\u3057\u306A\u3044\u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u3067\u4F7F\u7528\u3055\u308C\u308B\u5834\u5408\u304C\u3042\u308A\u307E\u3059\u3002."},{id:b,name:"\u5E83\u544A",descHtml:"\u4E0A\u8A18\u306B\u52A0\u3048\u3066\u3001GitHub \u3068\u30B5\u30FC\u30C9\u30D1\u30FC\u30C6\u30A3\u306F\u3001\u30E6\u30FC\u30B6\u30FC\u304C\u65E2\u306B\u95B2\u89A7\u3057\u305F\u5E83\u544A\u306B\u57FA\u3065\u3044\u3066\u65B0\u3057\u3044\u5E83\u544A\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306E\u5E83\u544A Cookie \u3082\u4F7F\u7528\u3057\u3066\u3044\u307E\u3059\u3002Cookie \u306F\u3001\u30E6\u30FC\u30B6\u30FC\u304C\u30AF\u30EA\u30C3\u30AF\u3059\u308B\u5E83\u544A\u3084\u3001\u5E83\u544A\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u5F8C\u3067\u306E\u8CFC\u5165\u3082\u8FFD\u8DE1\u3057\u307E\u3059\u3002\u3053\u308C\u306F\u3001\u95A2\u9023\u6027\u306E\u9AD8\u3044\u5E83\u544A\u306E\u8868\u793A\u3001\u304A\u3088\u3073\u5E83\u544A\u30D1\u30FC\u30C8\u30CA\u30FC\u3068\u306E\u696D\u52D9\u4E0A\u306E\u76EE\u7684\u306E\u305F\u3081\u306B\u884C\u308F\u308C\u307E\u3059\u3002\u4F8B\u3048\u3070\u3001Cookie \u306F\u30E6\u30FC\u30B6\u30FC\u304C\u5E83\u544A\u3092\u30AF\u30EA\u30C3\u30AF\u3057\u305F\u3053\u3068\u3092\u691C\u77E5\u3057\u3001\u30BD\u30FC\u30B7\u30E3\u30EB \u30E1\u30C7\u30A3\u30A2\u3067\u306E\u95A2\u5FC3\u3084\u30A6\u30A7\u30D6\u30B5\u30A4\u30C8\u306E\u95B2\u89A7\u5C65\u6B74\u306B\u57FA\u3065\u3044\u3066\u5E83\u544A\u3092\u8868\u793A\u3059\u308B\u305F\u3081\u306B\u4F7F\u7528\u3055\u308C\u307E\u3059\u3002."}],q={textResources:{bannerMessageHtml:`GitHub \u{306F}\u{3001}GitHub \u{30A6}\u{30A7}\u{30D6}\u{30B5}\u{30A4}\u{30C8}\u{3067}\u{306E}\u{30E6}\u{30FC}\u{30B6}\u{30FC} \u{30A8}\u{30AF}\u{30B9}\u{30DA}\u{30EA}\u{30A8}\u{30F3}\u{30B9}\u{3092}\u{5411}\u{4E0A}\u{3055}\u{305B}\u{308B}\u{3068}\u{3068}\u{3082}\u{306B}\u{3001}\u{30AA}\u{30F3}\u{30E9}\u{30A4}\u{30F3} \u{30A2}\u{30AF}\u{30C6}\u{30A3}\u{30D3}\u{30C6}\u{30A3}\u{306B}\u{57FA}\u{3065}\u{3044}\u{3066}\u{30D1}\u{30FC}\u{30BD}\u{30CA}\u{30E9}\u{30A4}\u{30BA}\u{3055}\u{308C}\u{305F}\u{5E83}\u{544A}\u{3092}\u{8868}\u{793A}\u{3059}\u{308B}\u{305F}\u{3081}\u{306B}\u{3001}\u{30AA}\u{30D7}\u{30B7}\u{30E7}\u{30F3}\u{306E} Cookie \u{3092}\u{4F7F}\u{7528}\u{3057}\u{3066}\u{3044}\u{307E}\u{3059}\u{3002}\u{30AA}\u{30D7}\u{30B7}\u{30E7}\u{30F3}\u{306E} Cookie \u{3092}\u{62D2}\u{5426}\u{3059}\u{308B}\u{5834}\u{5408}\u{306F}\u{3001}\u{4E0A}\u{8A18}\u{306E}\u{30B5}\u{30FC}\u{30D3}\u{30B9}\u{3092}\u{63D0}\u{4F9B}\u{3059}\u{308B}\u{305F}\u{3081}\u{306B}\u{5FC5}\u{8981}\u{306A} Cookie \u{306E}\u{307F}\u{304C}\u{4F7F}\u{7528}\u{3055}\u{308C}\u{307E}\u{3059}\u{3002}\u{8A31}\u{53EF}\u{3059}\u{308B} Cookie \u{306E}\u{9078}\u{629E}\u{306F}\u{3001}\u{30DA}\u{30FC}\u{30B8}\u{306E}\u{6700}\u{4E0B}\u{90E8}\u{306B}\u{3042}\u{308B} [Manage Cookies] \u{3092}\u{30AF}\u{30EA}\u{30C3}\u{30AF}\u{3059}\u{308B}\u{3053}\u{3068}\u{3067}\u{5909}\u{66F4}\u{3067}\u{304D}\u{307E}\u{3059}\u{3002}\u{3053}\u{306E}\u{9078}\u{629E}\u{306F} 180 \u{65E5}\u{9593}\u{4FDD}\u{6301}\u{3055}\u{308C}\u{307E}\u{3059}\u{3002}Cookie \u{306E}\u{9078}\u{629E}\u{306F}\u{5B9A}\u{671F}\u{7684}\u{306B}\u{78BA}\u{8A8D}\u{3059}\u{308B}\u{3088}\u{3046}\u{306B}\u{3057}\u{3066}\u{304F}\u{3060}\u{3055}\u{3044}\u{3002}

Cookie \u{8A2D}\u{5B9A}\u{306E}\u{7BA1}\u{7406}\u{65B9}\u{6CD5} | \u{30D7}\u{30E9}\u{30A4}\u{30D0}\u{30B7}\u{30FC} \u{30B9}\u{30C6}\u{30FC}\u{30C8}\u{30E1}\u{30F3}\u{30C8} | \u{30B5}\u{30FC}\u{30C9}\u{30D1}\u{30FC}\u{30C6}\u{30A3} Cookie\u{3002}`,acceptAllLabel:"\u627F\u8A8D",rejectAllLabel:"\u62D2\u5426",moreInfoLabel:"Cookie\u306E\u7BA1\u7406",preferencesDialogCloseLabel:"\u9589\u3058\u308B",preferencesDialogTitle:"Cookie \u8A2D\u5B9A\u3092\u7BA1\u7406\u3059\u308B",preferencesDialogDescHtml:`\u{307B}\u{3068}\u{3093}\u{3069}\u{306E} GitHub \u{30A6}\u{30A7}\u{30D6}\u{30B5}\u{30A4}\u{30C8}\u{3067}\u{306F}\u{3001}Cookie \u{304C}\u{4F7F}\u{7528}\u{3055}\u{308C}\u{3066}\u{3044}\u{307E}\u{3059}\u{3002}Cookie \u{306F}\u{3001}\u{30C7}\u{30FC}\u{30BF}\u{3092}\u{4FDD}\u{5B58}\u{3057}\u{3066}\u{30A6}\u{30A7}\u{30D6} \u{30B5}\u{30FC}\u{30D0}\u{30FC}\u{304C}\u{5F8C}\u{307B}\u{3069}\u{4F7F}\u{7528}\u{3067}\u{304D}\u{308B}\u{3088}\u{3046}\u{306B}\u{3059}\u{308B}\u{305F}\u{3081}\u{306B}\u{3001}\u{30C7}\u{30D0}\u{30A4}\u{30B9}\u{4E0A}\u{306B}\u{4FDD}\u{5B58}\u{3055}\u{308C}\u{308B}\u{5C0F}\u{3055}\u{306A}\u{30C6}\u{30AD}\u{30B9}\u{30C8}\u{30D5}\u{30A1}\u{30A4}\u{30EB}\u{3067}\u{3059}\u{3002}GitHub \u{3068} GitHub \u{306E}\u{30B5}\u{30FC}\u{30C9}\u{30D1}\u{30FC}\u{30C6}\u{30A3} \u{30D1}\u{30FC}\u{30C8}\u{30CA}\u{30FC}\u{306F}\u{3001}\u{30E6}\u{30FC}\u{30B6}\u{30FC}\u{306E}\u{597D}\u{307F}\u{3084}\u{8A2D}\u{5B9A}\u{306E}\u{8A18}\u{61B6}\u{3001}\u{30B5}\u{30A4}\u{30F3}\u{30A4}\u{30F3}\u{306E}\u{7C21}\u{7565}\u{5316}\u{3001}\u{30D1}\u{30FC}\u{30BD}\u{30CA}\u{30E9}\u{30A4}\u{30BA}\u{3055}\u{308C}\u{305F}\u{5E83}\u{544A}\u{306E}\u{8868}\u{793A}\u{3001}\u{30A6}\u{30A7}\u{30D6}\u{30B5}\u{30A4}\u{30C8}\u{306E}\u{6A5F}\u{80FD}\u{6027}\u{3092}\u{5206}\u{6790}\u{3059}\u{308B}\u{305F}\u{3081}\u{306B} Cookie \u{3092}\u{4F7F}\u{7528}\u{3057}\u{307E}\u{3059}\u{3002}\u{8A73}\u{7D30}\u{306B}\u{3064}\u{3044}\u{3066}\u{306F}\u{3001}\u{30D7}\u{30E9}\u{30A4}\u{30D0}\u{30B7}\u{30FC} \u{30B9}\u{30C6}\u{30FC}\u{30C8}\u{30E1}\u{30F3}\u{30C8}\u{306E}\u{300C}Cookie \u{304A}\u{3088}\u{3073}\u{985E}\u{4F3C}\u{306E}\u{30C6}\u{30AF}\u{30CE}\u{30ED}\u{30B8}\u{3068}\u{306F}?\u{300D}\u{30BB}\u{30AF}\u{30B7}\u{30E7}\u{30F3}\u{3092}\u{53C2}\u{7167}\u{3057}\u{3066}\u{304F}\u{3060}\u{3055}\u{3044}\u{3002}`,acceptLabel:"\u540C\u610F\u3059\u308B",rejectLabel:"\u62D2\u5426\u3059\u308B",saveLabel:"\u5909\u66F4\u306E\u4FDD\u5B58",resetLabel:"\u3059\u3079\u3066\u30EA\u30BB\u30C3\u30C8"},themes:v,initialTheme:"github"},L=[{id:u,name:"Requerido",descHtml:"GitHub utiliza las cookies necesarias para ejecutar las funciones esenciales del sitio web y prestar los servicios. Por ejemplo, las cookies se utilizan para iniciar sesi\xf3n, guardar tus preferencias de idioma, proporcionar una buena experiencia con el carrito de la compra, mejorar el rendimiento, dirigir el tr\xe1fico entre servidores web, detectar el tama\xf1o de la pantalla, determinar los tiempos de carga de la p\xe1gina, mejorar la experiencia del usuario y medir la audiencia. Estas cookies son necesarias para que nuestros sitios web funcionen.",isUnswitchable:!0},{id:m,name:"Anal\xedticas",descHtml:"Permitimos que los terceros utilicen cookies de an\xe1lisis para comprender c\xf3mo utiliza nuestros sitios web y poder mejorarlos. Por ejemplo, las cookies se utilizan para recopilar informaci\xf3n sobre las p\xe1ginas que visita y cu\xe1ntos clics se necesitan para realizar una tarea. Tambi\xe9n utilizamos algunas cookies de an\xe1lisis para ofrecer publicidad personalizada."},{id:p,name:"Redes sociales",descHtml:"GitHub y otros terceros utilizan cookies de redes sociales para mostrarte anuncios y contenidos basados en tus perfiles de redes sociales y tu actividad en los sitios web de GitHub. Esto garantiza que los anuncios y contenidos que aparecen en nuestros sitios web y en las redes sociales reflejen mejor tus intereses. Esto tambi\xe9n permite a terceros desarrollar y mejorar sus productos, que pueden utilizar en sitios web que no son propiedad ni est\xe1n gestionados por GitHub."},{id:b,name:"Publicidad",descHtml:"Adem\xe1s, GitHub y otros terceros utilizan cookies de publicidad para mostrarte nuevos anuncios basados en los que ya has visto. Las cookies tambi\xe9n rastrean los anuncios en los que haces clic o las compras que realizas despu\xe9s de hacer clic en un anuncio. Lo hacemos para mostrarte anuncios que sean m\xe1s relevantes para ti y con fines comerciales con nuestros socios publicitarios. Por ejemplo, las cookies se utilizan para detectar cu\xe1ndo haces clic en un anuncio y mostrarte anuncios basados en tus intereses en las redes sociales y en tu historial de navegaci\xf3n por el sitio web."}],$={textResources:{bannerMessageHtml:`Utilizamos cookies opcionales para mejorar tu experiencia en nuestros sitios web y mostrarte publicidad personalizada basada en tu actividad en l\xednea. Si rechazas las cookies opcionales, solo se utilizar\xe1n las cookies necesarias para prestarte los servicios indicados anteriormente. Para cambiar la selecci\xf3n de las cookies que deseas aceptar, haz clic en \u{201C}Administrar cookies\u{201D} en la parte inferior de la p\xe1gina. Esta selecci\xf3n se mantiene durante 180 d\xedas. Revisa tu selecci\xf3n con regularidad.

C\xf3mo gestionar las preferencias de cookies | Declaraci\xf3n de privacidad | Cookies de terceros.`,acceptAllLabel:"Aceptar",rejectAllLabel:"Rechazar",moreInfoLabel:"Administrar cookies",preferencesDialogCloseLabel:"Cerrar",preferencesDialogTitle:"Gestionar las preferencias de cookies",preferencesDialogDescHtml:`La mayor\xeda de los sitios web de GitHub utilizan cookies. Las cookies son peque\xf1os archivos de texto que se almacenan en tu dispositivo para que los servidores web puedan utilizarlos posteriormente. GitHub y nuestros socios terceros utilizan cookies para recordar tus preferencias y configuraci\xf3n, ayudarte a iniciar sesi\xf3n, mostrarte anuncios personalizados y analizar el funcionamiento de nuestros sitios web. Para obtener m\xe1s informaci\xf3n, consulta la secci\xf3n Cookies y tecnolog\xedas similares de la Declaraci\xf3n de privacidad.`,acceptLabel:"Aceptar",rejectLabel:"Rechazar",saveLabel:"Guardar cambios",resetLabel:"Restablecer todas"},themes:v,initialTheme:"github"},z=[{id:u,name:"\uD544\uC218",descHtml:"GitHub\uB294 \uD544\uC218 \uC6F9 \uC0AC\uC774\uD2B8 \uAE30\uB2A5\uC744 \uC218\uD589\uD558\uACE0 \uC11C\uBE44\uC2A4\uB97C \uC81C\uACF5\uD558\uAE30 \uC704\uD574 \uD544\uC218 \uCFE0\uD0A4\uB97C \uC0AC\uC6A9\uD569\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uCFE0\uD0A4\uB294 \uB85C\uADF8\uC778, \uC5B8\uC5B4 \uAE30\uBCF8 \uC124\uC815 \uC800\uC7A5, \uC7A5\uBC14\uAD6C\uB2C8 \uD658\uACBD \uC81C\uACF5, \uC131\uB2A5 \uAC1C\uC120, \uC6F9 \uC11C\uBC84 \uAC04 \uD2B8\uB798\uD53D \uB77C\uC6B0\uD305, \uD654\uBA74 \uD06C\uAE30 \uAC10\uC9C0, \uD398\uC774\uC9C0 \uB85C\uB4DC \uC2DC\uAC04 \uACB0\uC815, \uC0AC\uC6A9\uC790 \uACBD\uD5D8 \uAC1C\uC120, \uC778\uD130\uB137 \uBC29\uBB38\uC790 \uBD84\uC11D \uB4F1\uC5D0 \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uC774\uB7EC\uD55C \uCFE0\uD0A4\uB294 \uC6F9 \uC0AC\uC774\uD2B8 \uC791\uB3D9\uC5D0 \uD544\uC694\uD569\uB2C8\uB2E4.",isUnswitchable:!0},{id:m,name:"\uBD84\uC11D",descHtml:"\uB2F9\uC0AC\uB294 \uD0C0\uC0AC\uAC00 \uC6F9 \uC0AC\uC774\uD2B8 \uAC1C\uC120\uC744 \uC704\uD574 \uC0AC\uC6A9\uC790\uAC00 \uB2F9\uC0AC \uC6F9 \uC0AC\uC774\uD2B8\uB97C \uC5B4\uB5BB\uAC8C \uC0AC\uC6A9\uD558\uB294\uC9C0 \uD30C\uC545\uD558\uB294 \uB370 \uBD84\uC11D \uCFE0\uD0A4\uB97C \uC0AC\uC6A9\uD558\uB294 \uAC83\uC744 \uD5C8\uC6A9\uD569\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uCFE0\uD0A4\uB294 \uC0AC\uC6A9\uC790\uAC00 \uBC29\uBB38\uD55C \uD398\uC774\uC9C0\uC640 \uC791\uC5C5\uC744 \uC644\uB8CC\uD558\uB294 \uB370 \uD544\uC694\uD55C \uD074\uB9AD \uC218\uC5D0 \uB300\uD55C \uC815\uBCF4\uB97C \uC218\uC9D1\uD558\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4. \uB9DE\uCDA4\uD615 \uAD11\uACE0\uB97C \uC81C\uACF5\uD558\uAE30 \uC704\uD574 \uC77C\uBD80 \uBD84\uC11D \uCFE0\uD0A4\uB3C4 \uC0AC\uC6A9\uB429\uB2C8\uB2E4."},{id:p,name:"\uC18C\uC15C \uBBF8\uB514\uC5B4",descHtml:"GitHub\uC640 \uD0C0\uC0AC\uB294 \uC18C\uC15C \uBBF8\uB514\uC5B4 \uCFE0\uD0A4\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC0AC\uC6A9\uC790\uC758 \uC18C\uC15C \uBBF8\uB514\uC5B4 \uD504\uB85C\uD544\uACFC GitHub \uC6F9 \uC0AC\uC774\uD2B8 \uD65C\uB3D9\uC744 \uAE30\uBC18\uC73C\uB85C \uAD11\uACE0\uC640 \uCF58\uD150\uCE20\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uC774\uB97C \uD1B5\uD574 \uB2F9\uC0AC \uC6F9 \uC0AC\uC774\uD2B8\uC640 \uC18C\uC15C \uBBF8\uB514\uC5B4\uC5D0\uC11C \uC0AC\uC6A9\uC790\uAC00 \uBCF4\uB294 \uAD11\uACE0\uC640 \uCF58\uD150\uCE20\uAC00 \uC0AC\uC6A9\uC790\uC758 \uAD00\uC2EC\uC0AC\uB97C \uB354 \uC798 \uBC18\uC601\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4. \uB610\uD55C \uC774\uB97C \uD1B5\uD574 \uD0C0\uC0AC\uB294 GitHub\uAC00 \uC18C\uC720\uD558\uAC70\uB098 \uC6B4\uC601\uD558\uC9C0 \uC54A\uB294 \uC6F9 \uC0AC\uC774\uD2B8\uC5D0\uC11C \uC0AC\uC6A9\uD560 \uC218 \uC788\uB294 \uC81C\uD488\uC744 \uAC1C\uBC1C\uD558\uACE0 \uAC1C\uC120\uD560 \uC218 \uC788\uC2B5\uB2C8\uB2E4."},{id:b,name:"\uAD11\uACE0",descHtml:"GitHub\uC640 \uD0C0\uC0AC\uB294 \uAD11\uACE0 \uCFE0\uD0A4\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC0AC\uC6A9\uC790\uAC00 \uC774\uBBF8 \uBCF8 \uAD11\uACE0\uB97C \uAE30\uBC18\uC73C\uB85C \uC0C8\uB85C\uC6B4 \uAD11\uACE0\uB97C \uD45C\uC2DC\uD569\uB2C8\uB2E4. \uB610\uD55C \uCFE0\uD0A4\uB294 \uC0AC\uC6A9\uC790\uAC00 \uC5B4\uB5A4 \uAD11\uACE0\uB97C \uD074\uB9AD\uD588\uB294\uC9C0 \uB610\uB294 \uAD11\uACE0 \uD074\uB9AD \uD6C4 \uBB34\uC5C7\uC744 \uAD6C\uB9E4\uD588\uB294\uC9C0 \uCD94\uC801\uD569\uB2C8\uB2E4. \uC774\uB294 \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uB354 \uAD00\uB828\uC131\uC774 \uB192\uC740 \uAD11\uACE0\uB97C \uD45C\uC2DC\uD558\uACE0 \uAD11\uACE0 \uD30C\uD2B8\uB108\uC640\uC758 \uBE44\uC988\uB2C8\uC2A4 \uBAA9\uC801\uC744 \uC704\uD574 \uC218\uD589\uB429\uB2C8\uB2E4. \uC608\uB97C \uB4E4\uC5B4, \uCFE0\uD0A4\uB294 \uC0AC\uC6A9\uC790\uAC00 \uAD11\uACE0\uB97C \uD074\uB9AD\uD558\uB294 \uC2DC\uC810\uC744 \uAC10\uC9C0\uD558\uACE0 \uC18C\uC15C \uBBF8\uB514\uC5B4 \uAD00\uC2EC\uC0AC \uBC0F \uC6F9 \uC0AC\uC774\uD2B8 \uAC80\uC0C9 \uAE30\uB85D\uC744 \uAE30\uBC18\uC73C\uB85C \uAD11\uACE0\uB97C \uD45C\uC2DC\uD558\uB294 \uB370 \uC0AC\uC6A9\uB429\uB2C8\uB2E4."}],j={textResources:{bannerMessageHtml:`\u{B2F9}\u{C0AC}\u{B294} \u{C120}\u{D0DD}\u{C801} \u{CFE0}\u{D0A4}\u{B97C} \u{C0AC}\u{C6A9}\u{D558}\u{C5EC} \u{C6F9} \u{C0AC}\u{C774}\u{D2B8} \u{ACBD}\u{D5D8}\u{C744} \u{AC1C}\u{C120}\u{D558}\u{ACE0} \u{C0AC}\u{C6A9}\u{C790}\u{C758} \u{C628}\u{B77C}\u{C778} \u{D65C}\u{B3D9}\u{C744} \u{AE30}\u{BC18}\u{C73C}\u{B85C} \u{B9DE}\u{CDA4} \u{AD11}\u{ACE0}\u{B97C} \u{D45C}\u{C2DC}\u{D569}\u{B2C8}\u{B2E4}. \u{C120}\u{D0DD}\u{C801} \u{CFE0}\u{D0A4}\u{B97C} \u{AC70}\u{BD80}\u{D558}\u{BA74} \u{C704}\u{C5D0} \u{B098}\u{C5F4}\u{B41C} \u{C11C}\u{BE44}\u{C2A4}\u{B97C} \u{C81C}\u{ACF5}\u{D558}\u{B294} \u{B370} \u{D544}\u{C694}\u{D55C} \u{CFE0}\u{D0A4}\u{B9CC} \u{C0AC}\u{C6A9}\u{B429}\u{B2C8}\u{B2E4}. \u{D398}\u{C774}\u{C9C0} \u{D558}\u{B2E8}\u{C758} "\u{CFE0}\u{D0A4} \u{AD00}\u{B9AC}"\u{B97C} \u{D074}\u{B9AD}\u{D558}\u{C5EC} \u{D5C8}\u{C6A9}\u{D560} \u{CFE0}\u{D0A4}\u{C5D0} \u{B300}\u{D55C} \u{C120}\u{D0DD} \u{C0AC}\u{D56D}\u{C744} \u{BCC0}\u{ACBD}\u{D560} \u{C218} \u{C788}\u{C2B5}\u{B2C8}\u{B2E4}. \u{C774} \u{C120}\u{D0DD} \u{C0AC}\u{D56D}\u{C740} 180\u{C77C} \u{B3D9}\u{C548} \u{C720}\u{C9C0}\u{B429}\u{B2C8}\u{B2E4}. \u{C815}\u{AE30}\u{C801}\u{C73C}\u{B85C} \u{C120}\u{D0DD} \u{C0AC}\u{D56D}\u{C744} \u{AC80}\u{D1A0}\u{D558}\u{C2ED}\u{C2DC}\u{C624}.

\u{CFE0}\u{D0A4} \u{AE30}\u{BCF8} \u{C124}\u{C815} \u{AD00}\u{B9AC} \u{BC29}\u{BC95} | \u{AC1C}\u{C778} \u{C815}\u{BCF4} \u{BCF4}\u{D638} \u{C815}\u{CC45} | \u{D0C0}\u{C0AC} \u{CFE0}\u{D0A4}`,acceptAllLabel:"\uD5C8\uC6A9",rejectAllLabel:"\uAC70\uBD80",moreInfoLabel:"\uCFE0\uD0A4 \uAD00\uB9AC",preferencesDialogCloseLabel:"\uB2EB\uAE30",preferencesDialogTitle:"\uCFE0\uD0A4 \uAE30\uBCF8 \uC124\uC815 \uAD00\uB9AC",preferencesDialogDescHtml:`\u{B300}\u{BD80}\u{BD84}\u{C758} GitHub \u{C6F9} \u{C0AC}\u{C774}\u{D2B8}\u{C5D0}\u{C11C} \u{CFE0}\u{D0A4}\u{B97C} \u{C0AC}\u{C6A9}\u{D569}\u{B2C8}\u{B2E4}. \u{CFE0}\u{D0A4}\u{B294} \u{C6F9} \u{C11C}\u{BC84}\u{AC00} \u{B098}\u{C911}\u{C5D0} \u{C0AC}\u{C6A9}\u{D560} \u{C218} \u{C788}\u{B3C4}\u{B85D} \u{B370}\u{C774}\u{D130}\u{B97C} \u{C800}\u{C7A5}\u{D558}\u{AE30} \u{C704}\u{D574} \u{C0AC}\u{C6A9}\u{C790} \u{C7A5}\u{CE58}\u{C5D0} \u{BC30}\u{CE58}\u{B418}\u{B294} \u{C791}\u{C740} \u{D14D}\u{C2A4}\u{D2B8} \u{D30C}\u{C77C}\u{C785}\u{B2C8}\u{B2E4}. GitHub\u{C640} \u{D0C0}\u{C0AC} \u{D30C}\u{D2B8}\u{B108}\u{B294} \u{CFE0}\u{D0A4}\u{B97C} \u{C0AC}\u{C6A9}\u{D558}\u{C5EC} \u{C0AC}\u{C6A9}\u{C790}\u{C758} \u{AE30}\u{BCF8} \u{C124}\u{C815}\u{ACFC} \u{C124}\u{C815}\u{C744} \u{AE30}\u{C5B5}\u{D558}\u{ACE0}, \u{B85C}\u{ADF8}\u{C778}\u{C744} \u{B3D5}\u{ACE0}, \u{B9DE}\u{CDA4} \u{AD11}\u{ACE0}\u{B97C} \u{D45C}\u{C2DC}\u{D558}\u{ACE0}, \u{C6F9} \u{C0AC}\u{C774}\u{D2B8}\u{AC00} \u{C5BC}\u{B9C8}\u{B098} \u{C798} \u{C791}\u{B3D9}\u{D558}\u{B294}\u{C9C0} \u{BD84}\u{C11D}\u{D569}\u{B2C8}\u{B2E4}. \u{C790}\u{C138}\u{D55C} \u{B0B4}\u{C6A9}\u{C740} \u{AC1C}\u{C778} \u{C815}\u{BCF4} \u{BCF4}\u{D638} \u{C815}\u{CC45}\u{C758} \u{CFE0}\u{D0A4} \u{BC0F} \u{C720}\u{C0AC} \u{AE30}\u{C220} \u{C139}\u{C158}\u{C744} \u{CC38}\u{C870}\u{D558}\u{C2ED}\u{C2DC}\u{C624}.`,acceptLabel:"\uB3D9\uC758",rejectLabel:"\uAC70\uBD80",saveLabel:"\uBCC0\uACBD \uC0AC\uD56D \uC800\uC7A5",resetLabel:"\uBAA8\uB450 \uC7AC\uC124\uC815"},themes:v,initialTheme:"github"},D={en:i,pt:r,ja:t,es:n,ko:c},A="GHCC",T=new Date(Date.now()+15552e6),R=async e=>{_(e),s?.hideBanner()};async function P(e="en"){let{ConsentControl:o}=await a.e("85825").then(a.t.bind(a,95672,23)),i=e.split("-")[0]||"en",r=D[i]?D[i]:D.en;if(!r)throw Error(`No language config found for locale: ${e}`);return s=new o("ghcc",e,R,r.cookieCategories,r.consentControlOptions)}function M(){s?.showPreferences(W()||{})}function O(){s?.showBanner(k)}function U(){_(y)}function S(){return null===W()}let E=(0,d.Y)();function I(){return E.promise}function _(e){let o=Object.keys(e).map(o=>`${o}:${e[o]?"1":"0"}`).join("-");(0,l.TV)(A,o,T.toUTCString()),E.resolve(e)}function W(){let e=(0,l.Ri)(A);if(!e)return null;let o=e.value.split("-"),a={};for(let e of o){let[o,s]=e.split(":");o&&(a[o]="1"===s)}return a}let F=W();F&&E.resolve(F)},31631(e,o,a){function s(e){return i(e)[0]}function i(e){let o=[];for(let a of function(){try{return document.cookie.split(";")}catch{return[]}}()){let[s,i]=a.trim().split("=");e===s&&void 0!==i&&o.push({key:s,value:i})}return o}function r(e,o,a=null,s=!1,i="lax"){let t=document.domain;if(null==t)throw Error("Unable to get document domain");t.endsWith(".github.com")&&(t="github.com");let n="https:"===location.protocol?"; secure":"",c=a?`; expires=${a}`:"";!1===s&&(t=`.${t}`);try{document.cookie=`${e}=${o}; path=/; domain=${t}${c}${n}; samesite=${i}`}catch{}}function t(e,o=!1){let a=document.domain;if(null==a)throw Error("Unable to get document domain");a.endsWith(".github.com")&&(a="github.com");let s=new Date(Date.now()-1).toUTCString(),i="https:"===location.protocol?"; secure":"",r=`; expires=${s}`;!1===o&&(a=`.${a}`);try{document.cookie=`${e}=''; path=/; domain=${a}${r}${i}`}catch{}}a.d(o,{OR:()=>i,Ri:()=>s,TV:()=>r,Yj:()=>t})}}]); //# sourceMappingURL=9751-e245755b735860a1-9a6c17665da7c99b.js.map performance.mark("js-parse-end:99602-c73ac59eaad5b283.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["99602"],{43084(e,t,a){a.d(t,{F:()=>c});var n=a(74848),r=a(16522),i=a(18990),l=a(96540),s=a(51220);function c({items:e,itemHeight:t,style:a,renderItem:r,makeKey:i,ariaControls:c,shouldUseActionList:h=!1,className:u,containerRole:m="none"}){let f=(0,l.useRef)(null),g=(0,s.Te)({count:e.length,getScrollElement:(0,l.useCallback)(()=>f.current,[]),estimateSize:(0,l.useCallback)(()=>t,[t])});return(0,n.jsx)(o,{ref:f,style:a,virtualizer:g,id:c,shouldUseActionList:h,className:u,children:g.getVirtualItems().map((t,a)=>(0,n.jsx)(d,{containerRole:m,virtualRow:t,children:r(e[t.index],a)},i(e[t.index])))})}function o(e){let t,a,l=(0,r.c)(11),{ref:s,children:c,style:o,virtualizer:d,id:h,shouldUseActionList:u,className:m}=e;return l[0]!==c||l[1]!==h||l[2]!==u||l[3]!==d?(t=u?(0,n.jsx)(i.l,{id:h,role:"menu",style:{height:d.getTotalSize(),width:"100%",position:"relative"},selectionVariant:"single",children:c}):(0,n.jsx)("ul",{role:"menu",style:{height:d.getTotalSize(),width:"100%",position:"relative"},id:h,children:c}),l[0]=c,l[1]=h,l[2]=u,l[3]=d,l[4]=t):t=l[4],l[5]!==m||l[6]!==s||l[7]!==h||l[8]!==o||l[9]!==t?(a=(0,n.jsx)("div",{ref:s,style:o,id:h,className:m,children:t}),l[5]=m,l[6]=s,l[7]=h,l[8]=o,l[9]=t,l[10]=a):a=l[10],a}function d(e){let t,a,i=(0,r.c)(7),{children:l,containerRole:s,virtualRow:c}=e,o=void 0===s?"none":s,d=`${c.size}px`,h=`translateY(${c.start}px)`;return i[0]!==d||i[1]!==h?(t={position:"absolute",top:0,left:0,width:"100%",height:d,transform:h},i[0]=d,i[1]=h,i[2]=t):t=i[2],i[3]!==l||i[4]!==o||i[5]!==t?(a=(0,n.jsx)("li",{role:o,style:t,children:l}),i[3]=l,i[4]=o,i[5]=t,i[6]=a):a=i[6],a}c.displayName="FixedSizeVirtualList",o.displayName="ListContainer",d.displayName="ItemContainer"},96898(e,t,a){a.d(t,{z:()=>i});var n=a(74848),r=a(16522);function i(e){let t,a,i,s=(0,r.c)(10),{text:c,search:o,hideOverflow:d,overflowWidth:h}=e,u=void 0===h?0:h;s[0]!==o||s[1]!==c?(t=(function(e,t){if(!t)return[e];let a=e.toLowerCase().split(t.toLowerCase());if(a.length<2)return[e];let n=0,r=[];for(let i of a)r.push(e.substring(n,n+i.length)),n+=i.length,r.push(e.substring(n,n+t.length)),n+=t.length;return r})(c,o).map(l),s[0]=o,s[1]=c,s[2]=t):t=s[2];let m=t,f=void 0!==d&&d?"hidden":"visible",g=u?`${u}px`:void 0,_=o.length?"fg.muted":"fg.default";return s[3]!==f||s[4]!==g||s[5]!==_?(a={maxWidth:g,overflow:f,color:_},s[3]=f,s[4]=g,s[5]=_,s[6]=a):a=s[6],s[7]!==m||s[8]!==a?(i=(0,n.jsx)("div",{style:a,className:"HighlightedText-module__HighlightedText__No12X",children:m}),s[7]=m,s[8]=a,s[9]=i):i=s[9],i}function l(e,t){return t%2==1?(0,n.jsx)("strong",{className:"color-fg-default",children:e},t):e}i.displayName="HighlightedText"},87913(e,t,a){a.d(t,{JJ:()=>el,PI:()=>es,aH:()=>eo,Qe:()=>ec});var n=a(74848),r=a(16522),i=a(21373),l=a(59134),s=a(16969),c=a(35148),o=a(38621),d=a(46249),h=a(26108),u=a(18990),m=a(38750),f=a(7478),g=a(96540),_=a(70730),p=a(5847),b=a(49305),y=a(40961);function x(e){let t,a,l=(0,r.c)(6),{isOpen:s,onDismiss:c,onConfirm:o}=e;l[0]===Symbol.for("react.memo_cache_sentinel")?(t=[_.XC?.body],l[0]=t):t=l[0];let[d]=(0,p.I)(S,null,t);return l[1]!==d||l[2]!==s||l[3]!==o||l[4]!==c?(a=d?(0,y.createPortal)((0,n.jsxs)(b.A,{isOpen:s,onDismiss:c,children:[(0,n.jsx)(b.A.Header,{children:"Create branch"}),(0,n.jsxs)("div",{className:"tmp-p-3",children:[(0,n.jsx)("span",{children:"A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?"}),(0,n.jsxs)("div",{className:"CheckTagNameDialog-module__DialogFooterButtons__jbi95",children:[(0,n.jsx)(i.Q,{onClick:c,children:"Cancel"}),(0,n.jsx)(i.Q,{variant:"danger",onClick:o,className:"ml-2",children:"Create"})]})]})]}),document.body):null,l[1]=d,l[2]=s,l[3]=o,l[4]=c,l[5]=a):a=l[5],a}function S(){return document.body}x.displayName="CheckTagNameDialog";var v=a(7624),R=a(39081),j=a(58388),C=a(70170);function T({onDismiss:e,onCreate:t,initialTagName:a,tagValidationUrl:r}){let[i,l]=(0,g.useState)(a),s=(0,g.useRef)(!1),c=(0,g.useRef)(null),o=i?.trim(),{state:d,message:h,validateTag:u}=function(e){let[t,a]=(0,g.useState)("empty"),[n,r]=(0,g.useState)(""),i=(0,g.useRef)(""),l=(0,g.useCallback)(async t=>{if(i.current=t,!t){a("empty"),r("Tag cannot be blank");return}a("loading");let n=new URL(e,window.location.origin),l=new URLSearchParams(n.search.slice(1));l.append("tag_name",t),n.search=l.toString();try{let e=await (0,j.DI)(n.toString(),{headers:{Accept:"application/json"}});if(t!==i.current)return;if(!e.ok){a("invalid"),r("Unable to validate tag name. Please try again.");return}let l=(await e.json()).status;a(l||"empty"),r(function(e,t){switch(e){case"branch_exists":case"pending":case"valid":return`${t} will be created on publish`;case"duplicate":return`${t} is used by another release`;case"empty":return"Tag cannot be blank";case"immutable":return`${t} is used by an immutable release and cannot be reused`;case"invalid":return"Contains invalid characters. Use safe special characters ., -, or _ instead";default:return""}}(l||"empty",t))}catch{if(t!==i.current)return;a("invalid"),r("Unable to validate tag name. Please try again.")}},[e]);return{state:t,message:n,validateTag:(0,g.useMemo)(()=>(0,C.s)(l,500),[l])}}(r),f="loading"===d,_="empty"===d&&s.current,p="invalid"===d||"immutable"===d||"duplicate"===d||_,b=!f&&h&&("valid"===d||"pending"===d||"branch_exists"===d||p);(0,g.useEffect)(()=>{a?.trim()&&u(a.trim())},[]);let y=(0,g.useCallback)(e=>{let t=e.target.value;l(t),s.current=!0,u(t.trim())},[u]),x=(0,g.useCallback)(()=>{o&&(t(o),e())},[o,t,e]),S=(0,g.useCallback)(e=>{e.preventDefault(),f||p||x()},[x,f,p]);return(0,n.jsx)(R.l,{onClose:e,title:"Create new tag",width:"medium",className:"CreateTagDialog-module__Dialog__MD5s3",initialFocusRef:c,footerButtons:[{buttonType:"default",content:"Cancel",onClick:e},{buttonType:"primary",content:"Create",onClick:x,disabled:f||p,type:"submit"}],children:(0,n.jsx)("form",{onSubmit:S,children:(0,n.jsxs)(v.A,{required:!0,children:[(0,n.jsx)(v.A.Label,{children:"Tag"}),(0,n.jsx)(m.A,{ref:c,value:i,onChange:y,"aria-label":"Tag name",block:!0,loading:f}),b&&(0,n.jsx)(v.A.Validation,{variant:p?"error":"success",children:h}),"branch_exists"===d&&(0,n.jsx)(v.A.Caption,{children:"Creating a tag with the same name as a branch can cause ambiguity when selecting refs"})]})})})}async function w(e,t){let a=new FormData;a.set("value",t);let n=await (0,j.DI)(e,{method:"POST",body:a,headers:{Accept:"application/json"}});return!!n.ok&&!!await n.text()}async function N(e,t,a){let n=new FormData;n.set("name",t),n.set("branch",a);let r=await (0,j.DI)(e,{method:"POST",body:n,headers:{Accept:"application/json"}});if(r.ok)return{success:!0,name:(await r.json()).name};try{let{error:e}=await r.json();if(e)return{success:!1,error:e};throw Error("Unknown response from create branch API")}catch{return{success:!1,error:"Something went wrong."}}}T.displayName="CreateTagDialog";var k=a(66818),L=a(29941),A=a(34164);function I(e){let t,a,l,s,c,d,h,u,m,f,_,p=(0,r.c)(52),{ariaDescribedBy:b,ariaLabelledBy:y,ariaLabel:x,hotKey:S,onOpenChange:v,size:R,displayCommitish:j,variant:C,refType:T,children:w,preventClosing:N,inputRef:I,overlayOpen:O,onOverlayChange:E,focusTrapEnabled:F,buttonClassName:D,buttonText:P,persistButtonText:V,buttonPrefix:$,showIcon:B,allowResizing:K,useFocusZone:z,disabled:H,anchoredOverlayProps:W,renderAnchor:U}=e,M=void 0===V||V,Q=void 0===B||B,X=(0,g.useId)(),G=`-${e.idEnding||X}`,Z=`ref-picker${G}`;p[0]!==v||p[1]!==E?(t=e=>{E(e),v?.(e)},p[0]=v,p[1]=E,p[2]=t):t=p[2];let Y=t;e:{let e;if(void 0===F||F){let e;p[3]!==I?(e={initialFocusRef:I},p[3]=I,p[4]=e):e=p[4],a=e;break e}p[5]!==I?(e={initialFocusRef:I,disabled:!0},p[5]=I,p[6]=e):e=p[6],a=e}let q=a;p[7]!==$||p[8]!==P||p[9]!==j||p[10]!==M?(l=()=>{let e=j.length>0,t=P&&M?P:e?j:P||"";return $?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("span",{className:"fgColor-muted",children:[$,":"]}),(0,n.jsxs)("span",{children:[" ",t]})]}):t},p[7]=$,p[8]=P,p[9]=j,p[10]=M,p[11]=l):l=p[11];let J=l,ee="branch"===T?"Select a branch":"Select a tag";return p[12]!==ee?(s={role:"dialog",width:"medium","aria-label":ee},p[12]=ee,p[13]=s):s=p[13],p[14]!==Y?(c=()=>Y(!0),p[14]=Y,p[15]=c):c=p[15],p[16]!==Y||p[17]!==N?(d=()=>!N&&Y(!1),p[16]=Y,p[17]=N,p[18]=d):d=p[18],p[19]!==K||p[20]!==b||p[21]!==x||p[22]!==y||p[23]!==D||p[24]!==Z||p[25]!==H||p[26]!==j||p[27]!==J||p[28]!==S||p[29]!==Y||p[30]!==T||p[31]!==U||p[32]!==Q||p[33]!==R||p[34]!==C?(h=e=>U?U({...e,"aria-labelledby":y,disabled:H}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.Q,{...e,"data-hotkey":S,disabled:H,size:R,variant:C,style:{minWidth:K?0:void 0},trailingVisual:o.TriangleDownIcon,"aria-describedby":b,"aria-labelledby":y,"aria-label":y?void 0:x??`${j} ${T}`,"data-testid":"anchor-button",id:Z,className:(0,A.$)(D,"RefSelectorAnchoredOverlay-module__RefSelectorOverlayBtn__a3WK3"),children:(0,n.jsxs)("div",{className:"RefSelectorAnchoredOverlay-module__RefSelectorOverlayContainer__yaf4p",children:[Q&&(0,n.jsx)("div",{className:"RefSelectorAnchoredOverlay-module__RefSelectorOverlayHeader__XtXRG",children:"tag"===T?(0,n.jsx)(o.TagIcon,{size:"small"}):(0,n.jsx)(o.GitBranchIcon,{size:"small"})}),(0,n.jsx)("div",{style:{maxWidth:K?void 0:125},className:(0,A.$)("ref-selector-button-text-container","RefSelectorAnchoredOverlay-module__RefSelectorBtnTextContainer__Di3rk"),children:(0,n.jsxs)("span",{className:"RefSelectorAnchoredOverlay-module__RefSelectorText__w_fmP",children:["\xa0",J()]})})]})}),(0,n.jsx)("button",{hidden:!0,"data-testid":"ref-selector-hotkey-button","data-hotkey":S,onClick:()=>Y(!0),"data-hotkey-scope":"read-only-cursor-text-area",disabled:H})]}),p[19]=K,p[20]=b,p[21]=x,p[22]=y,p[23]=D,p[24]=Z,p[25]=H,p[26]=j,p[27]=J,p[28]=S,p[29]=Y,p[30]=T,p[31]=U,p[32]=Q,p[33]=R,p[34]=C,p[35]=h):h=p[35],p[36]!==z?(u=z?{bindKeys:L.z0.ArrowAll|L.z0.Tab}:{disabled:!0},p[36]=z,p[37]=u):u=p[37],p[38]===Symbol.for("react.memo_cache_sentinel")?(m={height:"100%"},p[38]=m):m=p[38],p[39]!==Z||p[40]!==w?(f=(0,n.jsx)("div",{"data-testid":"overlay-content","aria-labelledby":Z,id:"selectPanel",style:m,children:w}),p[39]=Z,p[40]=w,p[41]=f):f=p[41],p[42]!==W||p[43]!==q||p[44]!==O||p[45]!==h||p[46]!==u||p[47]!==f||p[48]!==s||p[49]!==c||p[50]!==d?(_=(0,n.jsx)(k.T,{open:O,overlayProps:s,onOpen:c,onClose:d,renderAnchor:h,focusTrapSettings:q,focusZoneSettings:u,...W,children:f}),p[42]=W,p[43]=q,p[44]=O,p[45]=h,p[46]=u,p[47]=f,p[48]=s,p[49]=c,p[50]=d,p[51]=_):_=p[51],_}I.displayName="RefSelectorAnchoredOverlay";let O="RefSelectorFooter-module__actionListItem__Bnv4v";function E(e){let t,a,i=(0,r.c)(8),{text:l,onClick:s,href:c,className:o}=e,d=!!c;i[0]!==o||i[1]!==l?(t=(0,n.jsx)("div",{className:o,children:l}),i[0]=o,i[1]=l,i[2]=t):t=i[2];let h=t;return i[3]!==c||i[4]!==h||i[5]!==d||i[6]!==s?(a=d?(0,n.jsx)(u.l.LinkItem,{role:"link",href:c,onClick:()=>s?.(),className:O,children:h}):(0,n.jsx)(u.l.Item,{role:"button",onSelect:()=>s?.(),className:O,children:h}),i[3]=c,i[4]=h,i[5]=d,i[6]=s,i[7]=a):a=i[7],a}E.displayName="RefSelectorFooter";var F=a(43084),D=a(4925),P=a(96898),V=a(82799);let $=g.memo(function(e){let t,a,i=(0,r.c)(7),{isCurrent:l,isDefault:s,href:c,gitRef:o,filterText:d,ariaPosInSet:h,ariaSetSize:m,onSelect:f,onClick:g,shouldSetAsDiv:_,isPendingTag:p}=e,b=void 0!==_&&_,y=void 0!==p&&p;i[0]!==d||i[1]!==o||i[2]!==l||i[3]!==s||i[4]!==y?(t=(0,n.jsx)(B,{gitRef:o,isDefault:s,isCurrent:l,filterText:d,isPendingTag:y}),i[0]=d,i[1]=o,i[2]=l,i[3]=s,i[4]=y,i[5]=t):t=i[5];let x=t;i[6]===Symbol.for("react.memo_cache_sentinel")?(a={minWidth:0},i[6]=a):a=i[6];let S={"aria-posinset":b?void 0:h,"aria-setsize":b?void 0:m,"aria-checked":l,sx:a,onSelect:()=>{f?.(o),c&&v(c,{reloadDocument:!0})},onClick:()=>{g?.(o),c&&v(c,{reloadDocument:!0})}},v=(0,V.Zp)();return b?(0,n.jsxs)(u.l.Item,{role:"menuitemradio",as:"div",...S,children:[x,y&&(0,n.jsx)(u.l.TrailingVisual,{className:"fg-muted mr-1",children:"Created on publish"})]}):(0,n.jsxs)(u.l.Item,{role:"menuitemradio",...S,children:[x,y&&(0,n.jsx)(u.l.TrailingVisual,{className:"fg-muted mr-1",children:"Created on publish"})]})});$.displayName="RefItem";let B=g.memo(function(e){let t,a,i,l,s,c,d,h=(0,r.c)(16),{isCurrent:u,isDefault:m,gitRef:f,filterText:g,showLeadingVisual:_}=e,p=void 0===_||_;return h[0]===Symbol.for("react.memo_cache_sentinel")?(t={display:"flex",justifyContent:"space-between"},a={display:"flex",minWidth:0,alignItems:"flex-end"},h[0]=t,h[1]=a):(t=h[0],a=h[1]),h[2]!==u||h[3]!==p?(i=p&&(0,n.jsx)(o.CheckIcon,{"aria-hidden":!0,"data-icon-visibility":u?"visible":"hidden",className:"RefItem-module__ItemIcon__bDj7Q"}),h[2]=u,h[3]=p,h[4]=i):i=h[4],h[5]!==g||h[6]!==f?(l=(0,n.jsx)(P.z,{hideOverflow:!0,search:g,text:f},f),h[5]=g,h[6]=f,h[7]=l):l=h[7],h[8]!==i||h[9]!==l?(s=(0,n.jsxs)("div",{style:a,children:[i,l]}),h[8]=i,h[9]=l,h[10]=s):s=h[10],h[11]!==m?(c=m&&(0,n.jsx)(D.A,{children:"default"}),h[11]=m,h[12]=c):c=h[12],h[13]!==s||h[14]!==c?(d=(0,n.jsxs)("div",{style:t,children:[s,c]}),h[13]=s,h[14]=c,h[15]=d):d=h[15],d});B.displayName="RefItemContent";function K(e){let t,a=(0,r.c)(2);return a[0]!==e?(t=e.refs.length>20?(0,n.jsx)(H,{...e}):(0,n.jsx)(z,{...e}),a[0]=e,a[1]=t):t=a[1],t}function z(e){let t,a,i,l=(0,r.c)(20),{refs:s,defaultBranch:c,currentCommitish:o,getHref:d,filterText:h,onSelectItem:u,ariaControls:m,pendingTag:f}=e;if(l[0]===Symbol.for("react.memo_cache_sentinel")?(t={maxHeight:330,height:"100%",overflowY:"auto",padding:"var(--base-size-8)"},l[0]=t):t=l[0],l[1]!==o||l[2]!==c||l[3]!==h||l[4]!==d||l[5]!==u||l[6]!==f||l[7]!==s){let e;l[9]!==o||l[10]!==c||l[11]!==h||l[12]!==d||l[13]!==u||l[14]!==f||l[15]!==s.length?(e=(e,t)=>(0,n.jsx)($,{href:d?.(e),isCurrent:o===e,isDefault:c===e,filterText:h,gitRef:e,onSelect:u,onClick:u,ariaPosInSet:t+1,ariaSetSize:s.length,isPendingTag:f===e},e),l[9]=o,l[10]=c,l[11]=h,l[12]=d,l[13]=u,l[14]=f,l[15]=s.length,l[16]=e):e=l[16],a=s.map(e),l[1]=o,l[2]=c,l[3]=h,l[4]=d,l[5]=u,l[6]=f,l[7]=s,l[8]=a}else a=l[8];return l[17]!==m||l[18]!==a?(i=(0,n.jsx)("ul",{style:t,id:m,children:a}),l[17]=m,l[18]=a,l[19]=i):i=l[19],i}function H(e){let t,a,i,l,s=(0,r.c)(16),{refs:c,defaultBranch:o,currentCommitish:d,getHref:h,filterText:u,onSelectItem:m,ariaControls:f,pendingTag:g}=e;if(s[0]!==c){t=new Map;for(let e=0;e(0,n.jsx)($,{shouldSetAsDiv:!0,href:h?.(e),isCurrent:d===e,isDefault:o===e,filterText:u,gitRef:e,onSelect:m,onClick:m,ariaPosInSet:(_.get(e)??0)+1,ariaSetSize:c.length,isPendingTag:g===e},e),s[3]=d,s[4]=o,s[5]=u,s[6]=h,s[7]=_,s[8]=m,s[9]=g,s[10]=c.length,s[11]=i):i=s[11],s[12]!==f||s[13]!==c||s[14]!==i?(l=(0,n.jsx)(F.F,{ariaControls:f,items:c,itemHeight:32,style:a,containerRole:"group",makeKey:W,renderItem:i,className:"RefsList-module__FixedSizeVirtualList__YEA5B"}),s[12]=f,s[13]=c,s[14]=i,s[15]=l):l=s[15],l}function W(e){return e}K.displayName="RefsList",z.displayName="FullRefsList",H.displayName="VirtualRefsList";var U=a(99099);function M(e,t,a,n,r){return new U.d("branch"===n?U._.Branch:U._.Tag,r,(0,c.SHX)({owner:t,repo:a,action:"refs"}),e,`${t}/${a}`)}function Q(e,t){let a=e.fetchFailed?"failed":e.isLoading?"loading":"loaded";return{status:a,refs:e.currentSearchResult,showCreateAction:t&&e.searchTerm.length>0&&!e.exactMatchFound,searchIndex:e}}function X(e){let t=(0,g.useRef)(void 0);return t.current||(t.current=e()),t}var G=a(20267);let Z="RefSelectorV1-module__RefActionText__PX9V2",Y="RefSelectorV1-module__Divider__Zk_Bk";function q(e){let t,a,i,l,s,o,d,h,u,m,f,_,p,b,y,S,v,R=(0,r.c)(90),{ariaDescribedBy:j,ariaLabelledBy:C,ariaLabel:k,cacheKey:L,owner:A,repo:O,canCreate:E,canCreateTag:F,types:D,hotKey:P,onOpenChange:V,size:$,variant:B,getHref:K,onBeforeCreate:z,onRefTypeChanged:H,currentCommitish:W,onCreateError:U,onSelectItem:G,closeOnSelect:Z,selectedRefType:Y,customFooterItemProps:q,buttonClassName:ee,buttonText:et,persistButtonText:ea,buttonPrefix:en,showIcon:er,allowResizing:ei,idEnding:es,useFocusZone:ec,disabled:eo,anchoredOverlayProps:ed,renderAnchor:eh,actionListDescription:eu}=e,em=void 0!==F&&F,[ef,eg]=(0,g.useState)(""),e_=(0,g.useRef)(null),ep=(0,g.useRef)(null),eb="tree"===Y?"branch":Y;R[0]!==W||R[1]!==Y?(t="tree"===Y?W.slice(0,7):W,R[0]=W,R[1]=Y,R[2]=t):t=R[2];let ey=t,[ex,eS]=(0,g.useState)(!1),[ev,eR]=(0,g.useState)(!0),[ej,eC]=(0,g.useState)(!1),[eT,ew]=(0,g.useState)(!1),[eN,ek]=(0,g.useState)(null),[eL,eA]=(0,g.useState)(eb??(D??el)[0]),eI=(0,g.useId)(),eO=function(e,t,a,n,r,i){let[l,s]=(0,g.useState)({status:"uninitialized",refs:[],showCreateAction:!1,searchIndex:null}),c=(0,g.useRef)({render:()=>{s(Q(d.current,i))}}),o=(0,g.useRef)({render:()=>{s(Q(h.current,i))}}),d=X(()=>M(e,t,a,"branch",c.current)),h=X(()=>M(e,t,a,"tag",o.current));return(0,g.useEffect)(()=>{let r=`${t}/${a}`;d.current.nameWithOwner!==r&&(d.current=M(e,t,a,"branch",c.current)),h.current.nameWithOwner!==r&&(h.current=M(e,t,a,"tag",o.current)),async function(){let e="branch"===n?d.current:h.current;e.render(),await e.fetchData(),e.search(""),e.render()}()},[e,t,a,n,d,h]),(0,g.useEffect)(()=>{let e="branch"===n?d.current:h.current;e.search(r),e.render()},[r,n,d,h]),l}(L,A,O,eL,ef,E);R[3]!==A||R[4]!==O?(a=(0,c.SHX)({owner:A,repo:O,action:"branches"}),R[3]=A,R[4]=O,R[5]=a):a=R[5];let eE=a;R[6]!==A||R[7]!==O?(i=(0,c.FeW)({owner:A,repo:O}),R[6]=A,R[7]=O,R[8]=i):i=R[8];let eF=i;R[9]!==A||R[10]!==O?(l=(0,c.BUl)({owner:A,repo:O}),R[9]=A,R[10]=O,R[11]=l):l=R[11];let eD=l;R[12]!==W||R[13]!==K||R[14]!==ef||R[15]!==z||R[16]!==U||R[17]!==eE||R[18]!==eO.searchIndex?(s=async()=>{z?.(ef);let e=await N(eE,ef,W);e.success?K&&(eO.searchIndex?.clearLocalStorage(),window.location.href=K(e.name)):U?.(e.error)},R[12]=W,R[13]=K,R[14]=ef,R[15]=z,R[16]=U,R[17]=eE,R[18]=eO.searchIndex,R[19]=s):s=R[19];let eP=s;R[20]!==eF||R[21]!==eP||R[22]!==ef?(o=async()=>{if(await w(eF,ef)){eC(!0),eR(!1);return}eC(!1),eR(!1),eP()},R[20]=eF,R[21]=eP,R[22]=ef,R[23]=o):o=R[23];let eV=o;R[24]!==H?(d=e=>{eA(e),H?.(e)},R[24]=H,R[25]=d):d=R[25];let e$=d;R[26]===Symbol.for("react.memo_cache_sentinel")?(h=function(){eS(!1)},R[26]=h):h=R[26];let eB=h;R[27]!==G?(u=(e,t)=>{G?.(e,t),eB()},R[27]=G,R[28]=u):u=R[28];let eK=u;R[29]!==eV||R[30]!==ef||R[31]!==eK||R[32]!==eL?(m=()=>{"tag"===eL?(eK(ef,"tag"),eB()):eV()},R[29]=eV,R[30]=ef,R[31]=eK,R[32]=eL,R[33]=m):m=R[33];let ez=m;R[34]!==eK||R[35]!==eO.refs?(f=e=>{eO.refs.includes(e)||ek(e),eg(""),eK(e,"tag"),ew(!1)},R[34]=eK,R[35]=eO.refs,R[36]=f):f=R[36];let eH=f;R[37]===Symbol.for("react.memo_cache_sentinel")?(_=()=>{ew(!0),eB()},R[37]=_):_=R[37];let eW=_,eU=eu?eI:j;return R[38]!==em||R[39]!==e$||R[40]!==Z||R[41]!==q||R[42]!==eI||R[43]!==ey||R[44]!==ef||R[45]!==ez||R[46]!==eK||R[47]!==eN||R[48]!==e||R[49]!==eL||R[50]!==eO||R[51]!==ej?(p=(0,n.jsx)(J,{filterText:ef,displayCommitish:ey,onFilterChange:eg,refType:eL,onRefTypeChange:e$,refsState:eO,onCreateError:e.onCreateError,showTagWarningDialog:ej,setShowTagWarningDialog:eC,onCreateRef:ez,inputRef:e_,createButtonRef:ep,onSelectItem:eK,closeOnSelect:Z,closeRefSelector:eB,customFooterItemProps:q,...e,selectedRefType:eL,onOpenCreateTagDialog:eW,pendingTag:eN,canCreateTag:em,descriptionId:eI}),R[38]=em,R[39]=e$,R[40]=Z,R[41]=q,R[42]=eI,R[43]=ey,R[44]=ef,R[45]=ez,R[46]=eK,R[47]=eN,R[48]=e,R[49]=eL,R[50]=eO,R[51]=ej,R[52]=p):p=R[52],R[53]!==ei||R[54]!==ed||R[55]!==k||R[56]!==C||R[57]!==ee||R[58]!==en||R[59]!==et||R[60]!==eo||R[61]!==ey||R[62]!==ev||R[63]!==P||R[64]!==es||R[65]!==V||R[66]!==ex||R[67]!==ea||R[68]!==eL||R[69]!==eh||R[70]!==er||R[71]!==ej||R[72]!==$||R[73]!==eU||R[74]!==p||R[75]!==ec||R[76]!==B?(b=(0,n.jsx)(I,{ariaDescribedBy:eU,ariaLabelledBy:C,ariaLabel:k,refType:eL,displayCommitish:ey,focusTrapEnabled:ev,preventClosing:ej,size:$,variant:B,onOpenChange:V,hotKey:P,inputRef:e_,overlayOpen:ex,onOverlayChange:eS,buttonClassName:ee,buttonText:et,persistButtonText:ea,buttonPrefix:en,showIcon:er,allowResizing:ei,idEnding:es,useFocusZone:ec,disabled:eo,anchoredOverlayProps:ed,renderAnchor:eh,children:p}),R[53]=ei,R[54]=ed,R[55]=k,R[56]=C,R[57]=ee,R[58]=en,R[59]=et,R[60]=eo,R[61]=ey,R[62]=ev,R[63]=P,R[64]=es,R[65]=V,R[66]=ex,R[67]=ea,R[68]=eL,R[69]=eh,R[70]=er,R[71]=ej,R[72]=$,R[73]=eU,R[74]=p,R[75]=ec,R[76]=B,R[77]=b):b=R[77],R[78]!==eP||R[79]!==ej?(y=ej&&(0,n.jsx)(x,{isOpen:ej,onDismiss:()=>{eC(!1),ep.current?.focus()},onConfirm:eP}),R[78]=eP,R[79]=ej,R[80]=y):y=R[80],R[81]!==eH||R[82]!==ef||R[83]!==eT||R[84]!==eD?(S=eT&&(0,n.jsx)(T,{onDismiss:()=>ew(!1),onCreate:eH,initialTagName:ef,tagValidationUrl:eD}),R[81]=eH,R[82]=ef,R[83]=eT,R[84]=eD,R[85]=S):S=R[85],R[86]!==b||R[87]!==y||R[88]!==S?(v=(0,n.jsxs)(n.Fragment,{children:[b,y,S]}),R[86]=b,R[87]=y,R[88]=S,R[89]=v):v=R[89],v}function J(e){var t;let a,l,s,c,m,f,_,p,b,y,x,S,v,R,j,C,T,w,N,k,L,I,O,F=(0,r.c)(96),{canCreate:D,currentCommitish:P,displayCommitish:V,defaultBranch:$,filterText:B,getHref:z,hideShowAll:H,onSelectItem:W,closeOnSelect:U,closeRefSelector:M,onFilterChange:Q,onRefTypeChange:X,owner:Z,selectedRefType:q,refsState:J,refType:ei,repo:es,types:ed,onCreateRef:eh,inputRef:eu,createButtonRef:em,customFooterItemProps:ef,viewAllJustify:eg,actionListHeadingText:e_,actionListDescription:ep,onOpenCreateTagDialog:eb,pendingTag:ey,canCreateTag:ex,descriptionId:eS}=e,{refs:ev,showCreateAction:eR,status:ej}=J;e:{if("tag"===ei&&ey&&!ev.includes(ey)){let e;F[0]!==ey||F[1]!==ev?(e=[ey,...ev],F[0]=ey,F[1]=ev,F[2]=e):e=F[2],a=e;break e}a=ev}let eC=a;F[3]!==M||F[4]!==ef?(l=function(){ef?.onClick?.(),M()},F[3]=M,F[4]=ef,F[5]=l):l=F[5];let eT=l;F[6]!==eC.length||F[7]!==ei?(s=()=>{let{single:e,plural:t}={branch:{single:"branch",plural:"branches"},tag:{single:"tag",plural:"tags"}}[ei],a=`${eC.length} ${1===eC.length?e:t} found`,n=setTimeout(()=>{(0,G.i)(a)},1e3);return()=>clearTimeout(n)},F[6]=eC.length,F[7]=ei,F[8]=s):s=F[8],F[9]!==eC||F[10]!==ei?(c=[eC,ei],F[9]=eC,F[10]=ei,F[11]=c):c=F[11],(0,g.useEffect)(s,c),F[12]===Symbol.for("react.memo_cache_sentinel")?(m={display:"flex",flexDirection:"column",height:"100%"},F[12]=m):m=F[12],F[13]!==e_||F[14]!==ed?(f=e_??((t=ed??el).includes("branch")&&t.includes("tag")?"Switch branches/tags":t.includes("branch")?"Switch branches":t.includes("tag")?"Switch tags":void 0),F[13]=e_,F[14]=ed,F[15]=f):f=F[15],F[16]!==f?(_=(0,n.jsx)(d.A,{as:"h2",className:"RefSelectorV1-module__RefSelectorHeading__j2mcd",children:f}),F[16]=f,F[17]=_):_=F[17],F[18]!==M?(p=(0,n.jsx)(h.K,{tooltipDirection:"w","aria-label":"Cancel",variant:"invisible",icon:o.XIcon,onClick:M,className:"RefSelectorV1-module__RefSelectorCloseButton__pTwr7"}),F[18]=M,F[19]=p):p=F[19],F[20]!==_||F[21]!==p?(b=(0,n.jsxs)("div",{className:"RefSelectorV1-module__RefSelectorInnerContainer__q4YHK",children:[_,p]}),F[20]=_,F[21]=p,F[22]=b):b=F[22],F[23]!==ep||F[24]!==eS?(y=ep&&(0,n.jsx)("p",{id:eS,className:"color-fg-muted f5",style:{paddingLeft:"16px",paddingRight:"16px",paddingBottom:"8px"},children:ep}),F[23]=ep,F[24]=eS,F[25]=y):y=F[25],F[26]!==D||F[27]!==B||F[28]!==eu||F[29]!==Q||F[30]!==ei?(x=(0,n.jsx)(ee,{defaultText:B,refType:ei,canCreate:D,onFilterChange:Q,ref:eu}),F[26]=D,F[27]=B,F[28]=eu,F[29]=Q,F[30]=ei,F[31]=x):x=F[31],F[32]!==y||F[33]!==x||F[34]!==b?(S=(0,n.jsxs)("div",{className:"RefSelectorV1-module__RefSelectorContainer__rEbu7",children:[b,y,x]}),F[32]=y,F[33]=x,F[34]=b,F[35]=S):S=F[35];let ew=eR&&0===eC.length?0:2;return F[36]!==ew?(v={paddingBottom:ew,flex:1,minHeight:0},F[36]=ew,F[37]=v):v=F[37],F[38]!==X||F[39]!==ei||F[40]!==ed?(R=(ed??el).length>1&&(0,n.jsx)("div",{className:"px-2 pb-2",children:(0,n.jsx)(ec,{refType:ei,onRefTypeChanged:X,className:"RefSelectorV1-module__RefTypeTabs__TQteC"})}),F[38]=X,F[39]=ei,F[40]=ed,F[41]=R):R=F[41],F[42]!==U||F[43]!==M||F[44]!==P||F[45]!==$||F[46]!==eC||F[47]!==B||F[48]!==z||F[49]!==W||F[50]!==ey||F[51]!==ei||F[52]!==q||F[53]!==eR||F[54]!==ej?(j="loading"===ej||"uninitialized"===ej?(0,n.jsx)(et,{refType:ei}):"failed"===ej?(0,n.jsx)(eo,{refType:ei}):0!==eC.length||eR&&"tag"!==ei?(0,n.jsx)(K,{ariaControls:"branch"===ei?"branches":"tags",filterText:B,refs:eC,defaultBranch:"branch"===ei?$:"",currentCommitish:ei===q?P:"",getHref:z,onSelectItem:e=>{W?.(e,ei),U&&M()},pendingTag:ey}):(0,n.jsx)(ea,{}),F[42]=U,F[43]=M,F[44]=P,F[45]=$,F[46]=eC,F[47]=B,F[48]=z,F[49]=W,F[50]=ey,F[51]=ei,F[52]=q,F[53]=eR,F[54]=ej,F[55]=j):j=F[55],F[56]!==v||F[57]!==R||F[58]!==j?(C=(0,n.jsxs)("div",{style:v,children:[R,j]}),F[56]=v,F[57]=R,F[58]=j,F[59]=C):C=F[59],F[60]!==em||F[61]!==V||F[62]!==B||F[63]!==eh||F[64]!==ei||F[65]!==ev||F[66]!==eR?(T=eR&&(0,n.jsxs)(n.Fragment,{children:["branch"===ei&&ev.length>0&&(0,n.jsx)(u.l.Divider,{className:(0,A.$)("d-block mt-0",Y)}),(0,n.jsx)(er,{displayCommitish:V,newRefName:B,onCreateRef:eh,createButtonRef:em,refType:ei})]}),F[60]=em,F[61]=V,F[62]=B,F[63]=eh,F[64]=ei,F[65]=ev,F[66]=eR,F[67]=T):T=F[67],F[68]!==ef||F[69]!==H||F[70]!==eR?(w=(!H||ef)&&(0,n.jsx)(u.l.Divider,{className:(0,A.$)(`d-block ${eR?"mt-2":"mt-0"}`,Y)}),F[68]=ef,F[69]=H,F[70]=eR,F[71]=w):w=F[71],F[72]!==M||F[73]!==H||F[74]!==Z||F[75]!==ei||F[76]!==es||F[77]!==eg?(N=!H&&(0,n.jsx)(en,{justify:eg,refType:ei,owner:Z,repo:es,onClick:M}),F[72]=M,F[73]=H,F[74]=Z,F[75]=ei,F[76]=es,F[77]=eg,F[78]=N):N=F[78],F[79]!==ef||F[80]!==eT?(k=ef&&(0,n.jsx)(E,{...ef,onClick:eT}),F[79]=ef,F[80]=eT,F[81]=k):k=F[81],F[82]!==T||F[83]!==w||F[84]!==N||F[85]!==k?(L=(0,n.jsxs)(u.l,{className:"p-0",children:[T,w,N,k]}),F[82]=T,F[83]=w,F[84]=N,F[85]=k,F[86]=L):L=F[86],F[87]!==ex||F[88]!==eb||F[89]!==ei?(I="tag"===ei&&ex&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(u.l.Divider,{className:(0,A.$)("d-block mt-0",Y)}),(0,n.jsx)("div",{className:"px-2",children:(0,n.jsx)(i.Q,{onClick:eb,block:!0,children:"Create new tag"})})]}),F[87]=ex,F[88]=eb,F[89]=ei,F[90]=I):I=F[90],F[91]!==S||F[92]!==C||F[93]!==L||F[94]!==I?(O=(0,n.jsxs)("div",{className:"py-2",style:m,children:[S,C,L,I]}),F[91]=S,F[92]=C,F[93]=L,F[94]=I,F[95]=O):O=F[95],O}function ee(e){let t,a,i=(0,r.c)(8),{refType:l,canCreate:s,onFilterChange:c,defaultText:d,ref:h}=e,[u,f]=(0,g.useState)(d),[_,p]=(0,g.useState)(d);d!==_&&(f(d),p(d));let b="tag"===l?s?"Search or create a new tag":"Search":s?"Find or create a branch...":"Find a branch...",y="tag"===l?"Filter tags":"Filter branches";return i[0]!==c?(t=e=>{let t=e.target;t instanceof HTMLInputElement&&(f(t.value),(0,g.startTransition)(()=>{c(t.value)}))},i[0]=c,i[1]=t):t=i[1],i[2]!==y||i[3]!==u||i[4]!==b||i[5]!==h||i[6]!==t?(a=(0,n.jsx)("div",{className:"RefSelectorV1-module__RefSelectorFilterContainer__UeAPt",children:(0,n.jsx)(m.A,{"aria-label":y,leadingVisual:o.SearchIcon,value:u,placeholder:b,ref:h,onInput:t,className:"RefSelectorV1-module__RefSelectorInput__xaRA4"})}),i[2]=y,i[3]=u,i[4]=b,i[5]=h,i[6]=t,i[7]=a):a=i[7],a}function et(e){let t,a=(0,r.c)(2),{refType:i}=e,l=`Loading ${"branch"===i?"branches":"tags"}...`;return a[0]!==l?(t=(0,n.jsx)("div",{className:"RefSelectorV1-module__LoadingContainer__PCvFa",children:(0,n.jsx)(f.A,{size:"medium","aria-label":l})}),a[0]=l,a[1]=t):t=a[1],t}function ea(){let e,t=(0,r.c)(1);return t[0]===Symbol.for("react.memo_cache_sentinel")?(e=(0,n.jsx)("div",{className:"RefSelectorV1-module__ZeroStateText__t_1OI",children:"Nothing to show"}),t[0]=e):e=t[0],e}function en(e){let t,a,i,l,s=(0,r.c)(13),{refType:o,owner:d,repo:h,onClick:m,justify:f}=e,g=void 0===f?"start":f,_="branch"===o?"branches":"tags";return s[0]!==d||s[1]!==h||s[2]!==_?(t=(0,c.SHX)({owner:d,repo:h,action:_}),s[0]=d,s[1]=h,s[2]=_,s[3]=t):t=s[3],s[4]!==g?(a={justifyContent:g},s[4]=g,s[5]=a):a=s[5],s[6]!==a||s[7]!==_?(i=(0,n.jsxs)("div",{style:a,className:"RefSelectorV1-module__ViewAllRefsActionText__HfC03",children:["View all ",_]}),s[6]=a,s[7]=_,s[8]=i):i=s[8],s[9]!==m||s[10]!==t||s[11]!==i?(l=(0,n.jsx)(u.l.LinkItem,{role:"link",href:t,onClick:m,className:"RefSelectorV1-module__ViewAllRefsActionLink__Z80Vu",children:i}),s[9]=m,s[10]=t,s[11]=i,s[12]=l):l=s[12],l}function er(e){let t,a,i,l,s,c,d=(0,r.c)(12),{displayCommitish:h,newRefName:m,onCreateRef:f,createButtonRef:g,refType:_}=e;return"tag"===_?null:(d[0]===Symbol.for("react.memo_cache_sentinel")?(t=(0,n.jsx)(o.GitBranchIcon,{className:"RefSelectorV1-module__BranchOcticon__VyWYn"}),a=(0,n.jsx)("span",{children:"Create branch\xa0"}),d[0]=t,d[1]=a):(t=d[0],a=d[1]),d[2]!==m?(i=(0,n.jsx)("span",{className:Z,children:m}),d[2]=m,d[3]=i):i=d[3],d[4]===Symbol.for("react.memo_cache_sentinel")?(l=(0,n.jsx)("span",{children:"\xa0from\xa0"}),d[4]=l):l=d[4],d[5]!==h?(s=(0,n.jsx)("span",{className:Z,children:h}),d[5]=h,d[6]=s):s=d[6],d[7]!==g||d[8]!==f||d[9]!==i||d[10]!==s?(c=(0,n.jsxs)(u.l.Item,{role:"button",onSelect:f,ref:g,children:[t,a,i,l,s]}),d[7]=g,d[8]=f,d[9]=i,d[10]=s,d[11]=c):c=d[11],c)}q.displayName="RefSelectorV1",J.displayName="RefSelectorActionList",ee.displayName="RefTextFilter",et.displayName="Loading",ea.displayName="RefsZeroState",en.displayName="ViewAllRefsAction",er.displayName="CreateRefAction";let ei="RefSelector-module__RefSelectorTabLink__NbcT1",el=["branch","tag"];function es(e){let t,a=(0,r.c)(2);return a[0]!==e?(t=(0,n.jsx)(q,{...e}),a[0]=e,a[1]=t):t=a[1],t}function ec(e){let t,a,l,c,o,d,h=(0,r.c)(16),{refType:u,onRefTypeChanged:m,className:f}=e;h[0]!==f?(t=(0,A.$)("RefSelector-module__RefSelectorTabs__j_8pE",f),h[0]=f,h[1]=t):t=h[1];let g="branch"===u;h[2]!==m?(a=()=>m("branch"),h[2]=m,h[3]=a):a=h[3],h[4]!==g||h[5]!==a?(l=(0,n.jsx)(s.A.Link,{as:i.Q,id:"branch-button","aria-controls":"branches",selected:g,onClick:a,className:ei,children:"Branches"}),h[4]=g,h[5]=a,h[6]=l):l=h[6];let _="tag"===u;return h[7]!==m?(c=()=>m("tag"),h[7]=m,h[8]=c):c=h[8],h[9]!==_||h[10]!==c?(o=(0,n.jsx)(s.A.Link,{as:i.Q,id:"tag-button","aria-controls":"tags",selected:_,onClick:c,className:ei,children:"Tags"}),h[9]=_,h[10]=c,h[11]=o):o=h[11],h[12]!==t||h[13]!==l||h[14]!==o?(d=(0,n.jsxs)(s.A,{"aria-label":"Ref type",className:t,children:[l,o]}),h[12]=t,h[13]=l,h[14]=o,h[15]=d):d=h[15],d}function eo(e){let t,a=(0,r.c)(2),{refType:i}=e,s="branch"===i?"branches":"tags";return a[0]!==s?(t=(0,n.jsxs)(l.A,{variant:"danger",children:["Could not load ",s]}),a[0]=s,a[1]=t):t=a[1],t}es.displayName="RefSelector",ec.displayName="RefTypeTabs",eo.displayName="LoadingFailed"},99099(e,t,a){a.d(t,{_:()=>o,d:()=>d});var n=a(50467),r=a(69991),i=a(99159);let{getItem:l,setItem:s,removeItem:c}=(0,r.A)("localStorage",{throwQuotaErrorsOnSet:!0}),o={Branch:"branch",Tag:"tag"};class d{render(){this.selector.render()}async fetchData(){try{if(!this.isLoading||this.fetchInProgress)return;if(!this.bootstrapFromLocalStorage()){this.fetchInProgress=!0,this.fetchFailed=!1;let e=await fetch(`${this.refEndpoint}?type=${this.refType}`,{headers:{Accept:"application/json"}});await this.processResponse(e)}this.isLoading=!1,this.fetchInProgress=!1,this.render()}catch{this.fetchInProgress=!1,this.fetchFailed=!0}}async processResponse(e){if(this.emitStats(e),!e.ok){this.fetchFailed=!0;return}let t=e.clone(),a=await e.json();this.knownItems=a.refs,this.cacheKey=a.cacheKey,this.flushToLocalStorage(await t.text())}emitStats(e){if(!e.ok)return void(0,i.iv)({incrementKey:"REF_SELECTOR_BOOT_FAILED"},!0);switch(e.status){case 200:(0,i.iv)({incrementKey:"REF_SELECTOR_BOOTED_FROM_UNCACHED_HTTP"});break;case 304:(0,i.iv)({incrementKey:"REF_SELECTOR_BOOTED_FROM_HTTP_CACHE"});break;default:(0,i.iv)({incrementKey:"REF_SELECTOR_UNEXPECTED_RESPONSE"})}}search(e){let t;if(this.searchTerm=e,""===e){this.currentSearchResult=this.knownItems;return}let a=[],n=[];for(let r of(this.exactMatchFound=!1,this.knownItems))if(!((t=r.indexOf(e))<0)){if(0===t){e===r?(n.unshift(r),this.exactMatchFound=!0):n.push(r);continue}a.push(r)}this.currentSearchResult=[...n,...a]}bootstrapFromLocalStorage(){let e=l(this.localStorageKey);if(!e)return!1;let t=JSON.parse(e);return t.cacheKey===this.cacheKey&&"refs"in t?(this.knownItems=t.refs,this.isLoading=!1,(0,i.iv)({incrementKey:"REF_SELECTOR_BOOTED_FROM_LOCALSTORAGE"}),!0):(c(this.localStorageKey),!1)}async flushToLocalStorage(e){try{s(this.localStorageKey,e)}catch(t){if(t.message.toLowerCase().includes("quota")){this.clearSiblingLocalStorage(),(0,i.iv)({incrementKey:"REF_SELECTOR_LOCALSTORAGE_OVERFLOWED"});try{s(this.localStorageKey,e)}catch(e){e.message.toLowerCase().includes("quota")&&(0,i.iv)({incrementKey:"REF_SELECTOR_LOCALSTORAGE_GAVE_UP"})}}else throw t}}clearSiblingLocalStorage(){for(let e of Object.keys(localStorage))e.startsWith(d.LocalStoragePrefix)&&c(e)}clearLocalStorage(){c(this.localStorageKey)}get localStorageKey(){return`${d.LocalStoragePrefix}:${this.nameWithOwner}:${this.refType}`}constructor(e,t,a,r,i){(0,n._)(this,"refType",void 0),(0,n._)(this,"selector",void 0),(0,n._)(this,"knownItems",[]),(0,n._)(this,"currentSearchResult",[]),(0,n._)(this,"exactMatchFound",!1),(0,n._)(this,"searchTerm",""),(0,n._)(this,"refEndpoint",void 0),(0,n._)(this,"cacheKey",void 0),(0,n._)(this,"nameWithOwner",void 0),(0,n._)(this,"isLoading",!0),(0,n._)(this,"fetchInProgress",!1),(0,n._)(this,"fetchFailed",!1),this.refType=e,this.selector=t,this.refEndpoint=a,this.cacheKey=r,this.nameWithOwner=i}}(0,n._)(d,"LocalStoragePrefix","ref-selector")}}]); //# sourceMappingURL=99602-c73ac59eaad5b283-3cf8ecd7c555d408.js.map import React, { useState, useCallback } from 'react'; const hiddenStyles = { display: 'none' }; function HiddenText(_ref) { let { id, value } = _ref; return React.createElement("div", { id: id, style: hiddenStyles }, value); } function LiveRegion(_ref) { let { id, announcement, ariaLiveType = "assertive" } = _ref; // Hide element visually but keep it readable by screen readers const visuallyHidden = { position: 'fixed', width: 1, height: 1, margin: -1, border: 0, padding: 0, overflow: 'hidden', clip: 'rect(0 0 0 0)', clipPath: 'inset(100%)', whiteSpace: 'nowrap' }; return React.createElement("div", { id: id, style: visuallyHidden, role: "status", "aria-live": ariaLiveType, "aria-atomic": true }, announcement); } function useAnnouncement() { const [announcement, setAnnouncement] = useState(''); const announce = useCallback(value => { if (value != null) { setAnnouncement(value); } }, []); return { announce, announcement }; } export { HiddenText, LiveRegion, useAnnouncement }; //# sourceMappingURL=accessibility.esm.js.map // Global handler for uncaught AJAX errors. // // Only enabled by default on new style `data-remote` requests. import {on} from 'delegated-events' export function showGlobalError() { const ajaxErrorMessage = document.getElementById('ajax-error-message') if (ajaxErrorMessage) { ajaxErrorMessage.hidden = false } } export function hideGlobalError() { const ajaxErrorMessage = document.getElementById('ajax-error-message') if (ajaxErrorMessage) { ajaxErrorMessage.hidden = true } } on('deprecatedAjaxError', '[data-remote]', function (event) { const detail = (event as CustomEvent).detail const {error, text} = detail if (event.currentTarget !== event.target) { return } if (error === 'abort' || error === 'canceled') { return } if (/('.js-ajax-pagination')! let response try { response = await wants.html() } catch (err) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (err.response && err.response.status === 404) { container.remove() return } else { throw err } } container.replaceWith(response.html) fire(form, 'page:loaded') }) // Commenting: AJAX form submission // // Markup // //
// // // // // //
// // Primer Validation example: // see: https://primer.style/css/components/forms#form-group-validation // //
//
// //
// // //
// import {observe} from '@github/selector-observer' const setButtonText = (button: HTMLButtonElement, hasValue: boolean) => { const spanText = button.querySelector('.js-form-action-text') const textTarget = spanText ? spanText : button textTarget.textContent = hasValue ? button.getAttribute('data-comment-text')! : textTarget.getAttribute('data-default-action-text')! } const createInputHandler = (button: HTMLButtonElement): ((event: Event) => void) => { let previousHasValue: string // Handle input. return (event: Event) => { const target = event.currentTarget const newValue = (target as HTMLInputElement).value.trim() if (newValue !== previousHasValue) { previousHasValue = newValue setButtonText(button, Boolean(newValue)) } } } observe('.js-comment-and-button', { constructor: HTMLButtonElement, initialize(button) { const commentField = button.form!.querySelector('.js-comment-field')! const handleInput = createInputHandler(button) return { add() { commentField.addEventListener('input', handleInput) commentField.addEventListener('change', handleInput) }, remove() { commentField.removeEventListener('input', handleInput) commentField.removeEventListener('change', handleInput) }, } }, }) import type {CodeEditor} from './editor/code-editor' import {on} from 'delegated-events' const codeEditors: WeakMap = new WeakMap() export function getCodeEditor(el: HTMLElement): CodeEditor | undefined { return codeEditors.get(el) } export async function getAsyncCodeEditor(el: HTMLElement): Promise { return codeEditors.get(el) || onEditorFromEvent(await nextEvent(el, 'codeEditor:ready')) } function onEditorFromEvent(event: Event): CodeEditor { if (!(event instanceof CustomEvent)) throw new Error('assert: event is not a CustomEvent') const editor: CodeEditor = event.detail.editor if (!event.target) throw new Error('assert: event.target is null') codeEditors.set(event.target as HTMLElement, editor) return editor } on('codeEditor:ready', '.js-code-editor', onEditorFromEvent) function nextEvent(target: EventTarget, event: string): Promise { return new Promise(resolve => { target.addEventListener(event, resolve, {once: true}) }) } /** * Character codes. * * This module is compiled away! * * micromark works based on character codes. * This module contains constants for the ASCII block and the replacement * character. * A couple of them are handled in a special way, such as the line endings * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal * tab) and its expansion based on what column it’s at (virtual space), * and the end-of-file (eof) character. * As values are preprocessed before handling them, the actual characters LF, * CR, HT, and NUL (which is present as the replacement character), are * guaranteed to not exist. * * Unicode basic latin block. */ export const codes = /** @type {const} */ ({ carriageReturn: -5, lineFeed: -4, carriageReturnLineFeed: -3, horizontalTab: -2, virtualSpace: -1, eof: null, nul: 0, soh: 1, stx: 2, etx: 3, eot: 4, enq: 5, ack: 6, bel: 7, bs: 8, ht: 9, // `\t` lf: 10, // `\n` vt: 11, // `\v` ff: 12, // `\f` cr: 13, // `\r` so: 14, si: 15, dle: 16, dc1: 17, dc2: 18, dc3: 19, dc4: 20, nak: 21, syn: 22, etb: 23, can: 24, em: 25, sub: 26, esc: 27, fs: 28, gs: 29, rs: 30, us: 31, space: 32, exclamationMark: 33, // `!` quotationMark: 34, // `"` numberSign: 35, // `#` dollarSign: 36, // `$` percentSign: 37, // `%` ampersand: 38, // `&` apostrophe: 39, // `'` leftParenthesis: 40, // `(` rightParenthesis: 41, // `)` asterisk: 42, // `*` plusSign: 43, // `+` comma: 44, // `,` dash: 45, // `-` dot: 46, // `.` slash: 47, // `/` digit0: 48, // `0` digit1: 49, // `1` digit2: 50, // `2` digit3: 51, // `3` digit4: 52, // `4` digit5: 53, // `5` digit6: 54, // `6` digit7: 55, // `7` digit8: 56, // `8` digit9: 57, // `9` colon: 58, // `:` semicolon: 59, // `;` lessThan: 60, // `<` equalsTo: 61, // `=` greaterThan: 62, // `>` questionMark: 63, // `?` atSign: 64, // `@` uppercaseA: 65, // `A` uppercaseB: 66, // `B` uppercaseC: 67, // `C` uppercaseD: 68, // `D` uppercaseE: 69, // `E` uppercaseF: 70, // `F` uppercaseG: 71, // `G` uppercaseH: 72, // `H` uppercaseI: 73, // `I` uppercaseJ: 74, // `J` uppercaseK: 75, // `K` uppercaseL: 76, // `L` uppercaseM: 77, // `M` uppercaseN: 78, // `N` uppercaseO: 79, // `O` uppercaseP: 80, // `P` uppercaseQ: 81, // `Q` uppercaseR: 82, // `R` uppercaseS: 83, // `S` uppercaseT: 84, // `T` uppercaseU: 85, // `U` uppercaseV: 86, // `V` uppercaseW: 87, // `W` uppercaseX: 88, // `X` uppercaseY: 89, // `Y` uppercaseZ: 90, // `Z` leftSquareBracket: 91, // `[` backslash: 92, // `\` rightSquareBracket: 93, // `]` caret: 94, // `^` underscore: 95, // `_` graveAccent: 96, // `` ` `` lowercaseA: 97, // `a` lowercaseB: 98, // `b` lowercaseC: 99, // `c` lowercaseD: 100, // `d` lowercaseE: 101, // `e` lowercaseF: 102, // `f` lowercaseG: 103, // `g` lowercaseH: 104, // `h` lowercaseI: 105, // `i` lowercaseJ: 106, // `j` lowercaseK: 107, // `k` lowercaseL: 108, // `l` lowercaseM: 109, // `m` lowercaseN: 110, // `n` lowercaseO: 111, // `o` lowercaseP: 112, // `p` lowercaseQ: 113, // `q` lowercaseR: 114, // `r` lowercaseS: 115, // `s` lowercaseT: 116, // `t` lowercaseU: 117, // `u` lowercaseV: 118, // `v` lowercaseW: 119, // `w` lowercaseX: 120, // `x` lowercaseY: 121, // `y` lowercaseZ: 122, // `z` leftCurlyBrace: 123, // `{` verticalBar: 124, // `|` rightCurlyBrace: 125, // `}` tilde: 126, // `~` del: 127, // Unicode Specials block. byteOrderMarker: 65_279, // Unicode Specials block. replacementCharacter: 65_533 // `�` }) import {ready} from '@github-ui/document-ready' import {setCookie} from '@github-ui/cookies' export type ColorMode = 'light' | 'dark' export type ColorModeWithAuto = ColorMode | 'auto' /** * Set the OS preferred color mode on page load */ ;(async () => { await ready setPreferredColorModeCookie() // update the cookie when OS preferred color mode changes if (window.matchMedia) { const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)') if (mediaQuery?.addEventListener) { mediaQuery.addEventListener('change', setPreferredColorModeCookie) } else { mediaQuery.addListener(setPreferredColorModeCookie) } } })() function setPreferredColorModeCookie() { setCookie('preferred_color_mode', getPreferredColorMode() as string) } export function getPreferredColorMode(): ColorMode | undefined { if (prefersColorScheme('dark')) { return 'dark' } else if (prefersColorScheme('light')) { return 'light' } return undefined } function prefersColorScheme(scheme: ColorMode): boolean { return window.matchMedia && window.matchMedia(`(prefers-color-scheme: ${scheme})`).matches } function getColorModeAttribute() { const rootEl = document.querySelector('html[data-color-mode]') if (!rootEl) return undefined return rootEl.getAttribute('data-color-mode') } /** * Set the `data-color-mode` attribute on the html element of the page. */ export function setClientMode(mode: ColorModeWithAuto) { const rootEl = document.querySelector('html[data-color-mode]') if (!rootEl) { // Color modes are not active on this page return } rootEl.setAttribute('data-color-mode', mode) } export function setClientTheme(theme: string, type: ColorMode) { const rootEl = document.querySelector('html[data-color-mode]') if (!rootEl) { // Color modes are not active on this page return } rootEl.setAttribute(`data-${type}-theme`, theme) } /** * Returns the user theme as defined by the `data-light-theme` or * `data-dark-theme` attribute. */ export function getClientTheme(type: ColorMode) { const rootEl = document.querySelector('html[data-color-mode]') if (!rootEl) { // Color modes are not active on this page return } return rootEl.getAttribute(`data-${type}-theme`) } /** * Provides a stable color mode. This does not delineate the theme, but rather the light vs dark modes. * * If you're after the theme, please use {@link getClientTheme} */ export function getColorMode(fallback: ColorMode = 'light') { const mode = getColorModeAttribute() return (mode === 'auto' ? getPreferredColorMode() : mode) ?? fallback } // important to import type so we don't bring in all the code import type {BaseNode, ContentNode, QualifierNode, NodeWithChildren} from '@github/blackbird-parser' export const CaretPositionKind = { Is: 'Is', Repository: 'Repository', Owner: 'Owner', Enterprise: 'Enterprise', Language: 'Language', Path: 'Path', Regex: 'Regex', Text: 'Text', Saved: 'Saved', OtherQualifier: 'OtherQualifier', } as const export type CaretPositionKind = (typeof CaretPositionKind)[keyof typeof CaretPositionKind] export function isQualifier(node: BaseNode): node is QualifierNode { return !!(node as QualifierNode).qualifier } export function isSavedQualifier(node: BaseNode): node is QualifierNode { return !!isQualifier(node) && node.qualifier === 'Saved' } const slashRegex = new RegExp('\\/', 'g') const slashOrCommaRegex = /^[^/,]+$/ export function shouldRedirectInsteadOfSearch(node: BaseNode, path: string): string | null { // If the entire user's query is `repo:a/b`, it doesn't make sense to search // within the repository with no actual query. They probably want to navigate to // the repository itself, so let's just direct them there instead. if (isQualifier(node) && isContentNode(node.content)) { if (node.qualifier === 'Repo') { // Only redirect if it looks like a repository, i.e. contains exactly one slash if ([...node.content.value.toString().matchAll(slashRegex)].length !== 1) { return null } } else if (node.qualifier === 'Org') { // Only redirect if it looks like a single organization, i.e. contains exactly zero slashes and no commas if (!slashOrCommaRegex.test(node.content.value.toString())) { return null } } else if (node.qualifier === 'Enterprise') { // Only redirect if it looks like an enterprise, i.e. contains exactly zero slashes if ([...node.content.value.toString().matchAll(slashRegex)].length !== 0) { return null } } else { // Don't do this redirect behaviour for any other qualifier type return null } // Disallow redirects to repositories or organizations that begin with a /, since // that would form an absolute URL! if (node.content.value.toString().startsWith('/')) { return null } let redirectURL = `/${node.content.value.toString().split('/').map(encodeURIComponent).join('/')}` if (node.qualifier === 'Enterprise') { redirectURL = `/enterprises${redirectURL}` } // If the redirect would take them to the path they're already on, then it's pointless, so // just do a search instead. if (redirectURL === path) { return null } return redirectURL } return null } // this function is unfortunately duplicated from @github/blackbird-parser so that the code that // uses it doesn't import that whole huge module export function isContentNode(node: BaseNode): node is ContentNode { return (node as ContentNode).value !== undefined } export function hasChildren(node: BaseNode): node is NodeWithChildren { return !!(node as NodeWithChildren).children } export function containsQualifier(node: BaseNode, qualifierKind: string): boolean { if (isQualifier(node) && node.qualifier === qualifierKind) { return true } if (hasChildren(node)) { for (const child of node.children) { if (containsQualifier(child, qualifierKind)) { return true } } } return false } // Extract all of the text nodes from the AST, ignoring qualifiers. For example, // the query `lang:typescript repo:github/atom asdf` would return `['asdf']`. export function extractTextQuery(node: BaseNode): string { if (hasChildren(node)) { return node.children .map(extractTextQuery) .filter(x => x.length > 0) .join(' ') } if (isQualifier(node) || node.kind === 'Regex') { return '' } if (isContentNode(node)) { return node.value.toString() } return '' } interface RepoOrgScope { kind: 'repo' | 'org' | 'enterprise' | 'saved' value: string } // Extract all repo and orgs mentioned in the query export function extractRepoOrgScopes(node: BaseNode): RepoOrgScope[] { if (node.kind === 'Not') { return [] } if (hasChildren(node)) { return node.children.map(extractRepoOrgScopes).flat() } if (isQualifier(node)) { if (node.qualifier === 'Repo' && isContentNode(node.content)) { return [{kind: 'repo', value: node.content.value.toString()}] } else if (node.qualifier === 'Org' && isContentNode(node.content)) { return [{kind: 'org', value: node.content.value.toString()}] } else if (node.qualifier === 'Enterprise' && isContentNode(node.content)) { return [{kind: 'enterprise', value: node.content.value.toString()}] } else if (isSavedQualifier(node) && isContentNode(node.content)) { return [{kind: 'saved', value: node.content.value.toString()}] } } return [] } export function restrictToScopedOrgs(node: BaseNode, orgs: string[]): string[] { const repoOrgScopes = new Set( extractRepoOrgScopes(node) .map(scope => { if (scope.kind === 'org') { return scope.value } else if (scope.kind === 'repo' && scope.value.includes('/')) { return scope.value.split('/')[0] } else { return null } }) .filter(s => s !== null) .map(s => s?.toLowerCase()), ) if (repoOrgScopes.size === 0) { return orgs } return orgs.filter(org => repoOrgScopes.has(org.toLowerCase())) } import {onInput} from '@github-ui/onfocus' onInput('.js-company-name-input', function (event) { const field = event.target as HTMLInputElement const form = field.form! const corpTOSLink = form.querySelector('.js-corp-tos-link') const regTOSLink = form.querySelector('.js-tos-link') if (regTOSLink) { // TODO Replace with hidden attribute so aria-hidden is not required. /* eslint-disable-next-line github/no-d-none */ regTOSLink.classList.add('d-none') regTOSLink.setAttribute('aria-hidden', 'true') if (corpTOSLink) { // TODO Replace with hidden attribute so aria-hidden is not required. /* eslint-disable-next-line github/no-d-none */ corpTOSLink.classList.remove('d-none') corpTOSLink.setAttribute('aria-hidden', 'false') } } const hints = form.querySelectorAll('.js-company-name-text') if (hints.length === 0) { return } for (const hint of hints) { if (field.value) { const hasWording = hint.hasAttribute('data-wording') if (hasWording) { const wording = hint.getAttribute('data-wording')! hint.textContent = ` ${wording} ${field.value}` } else { hint.textContent = field.value } } else { hint.textContent = '' } } }) import {on} from 'delegated-events' // Show/hide event settings when the user's overall thread subscription option changes. on('change', '.js-thread-notification-setting', toggleEventSettings) // Validate event settings when the user's event selection changes. on('change', '.js-custom-thread-notification-option', toggleEventSettings) // Show/hide event settings when the user dismisses the form. on('reset', '.js-custom-thread-settings-form', toggleEventSettings) function toggleEventSettings() { const eventSettingsVisible = document.querySelector('.js-reveal-custom-thread-settings')!.checked const noEventSelected = !document.querySelector('.js-custom-thread-notification-option:checked') const eventSettingsContainer = document.querySelector('.js-custom-thread-settings')! const checkbox = document.querySelector('[data-custom-option-required-text]')! const message = eventSettingsVisible && noEventSelected ? checkbox.getAttribute('data-custom-option-required-text')! : '' checkbox.setCustomValidity(message) eventSettingsContainer.hidden = !eventSettingsVisible } // Confirm // // Prompts native confirm dialog before activating link. // // data-confirm - Message to pass to confirm(). // //
`, ) render(html`${renderedSections}`, this.list) } } var toPropertyKey = require("./toPropertyKey.js"); function _defineProperty(e, r, t) { return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports; import {fire, on} from 'delegated-events' import type {IncludeFragmentElement} from '@github/include-fragment-element' import RemoteInputElement from '@github/remote-input-element' import {fromEvent} from '@github-ui/subscription' import {microtask} from '@github-ui/eventloop-tasks' import {observe} from '@github/selector-observer' import {onKey} from '@github-ui/onfocus' import {announceFromElement} from '@github-ui/aria-live' // Match deprecated .js-select-menu state classes. observe('details.select-menu details-menu include-fragment', function (el) { const details = el.closest('details') if (!details) return el.addEventListener('loadstart', function () { details.classList.add('is-loading') details.classList.remove('has-error') }) el.addEventListener('error', function () { details.classList.add('has-error') }) el.addEventListener('loadend', function () { details.classList.remove('is-loading') const filter = details.querySelector('.js-filterable-field') if (filter) fire(filter, 'filterable:change') }) }) // Clear filter when menu closes. observe('details details-menu .js-filterable-field', { constructor: HTMLInputElement, add(filter) { const details = filter.closest('details')! details.addEventListener('toggle', function () { if (!details.hasAttribute('open')) { filter.value = '' fire(filter, 'filterable:change') } }) }, }) // Temporary fix for role=menu containing input observe('details-menu[role=menu] [role=menu]', el => { const menu = el.closest('details-menu[role]') if (menu && menu !== el) menu.removeAttribute('role') }) // Clear filter when menu closes. observe('details details-menu remote-input input', { constructor: HTMLInputElement, add(filter) { const details = filter.closest('details')! details.addEventListener('toggle', function () { if (!details.hasAttribute('open')) { filter.value = '' } }) }, }) // On form reset fire change on input so details-menu can apply state changes. observe('form details-menu', menu => { const form = menu.closest('form')! form.addEventListener('reset', () => { setTimeout(() => resetMenus(form), 0) }) }) // Re-fires the `change` event for checked radios in a details-menu form. function resetMenus(form: Element) { const inputs = form.querySelectorAll('details-menu [role=menuitemradio] input[type=radio]:checked') for (const input of inputs) { fire(input, 'change') } } /** * Auto trigger the first item on Enter when filterable field is focused. */ onKey('keypress', 'details-menu .js-filterable-field, details-menu filter-input input', (event: KeyboardEvent) => { // TODO: Refactor to use data-hotkey /* eslint eslint-comments/no-use: off */ /* eslint-disable @github-ui/ui-commands/no-manual-shortcut-logic */ if (event.key === 'Enter') { const input = event.currentTarget const menu = (input as HTMLInputElement).closest('details-menu')! const firstItem = menu.querySelector('[role^="menuitem"]:not([hidden])') if (firstItem instanceof HTMLElement && !firstItem.classList.contains('select-menu-clear-item')) firstItem.click() event.preventDefault() } /* eslint-enable @github-ui/ui-commands/no-manual-shortcut-logic */ }) // Focus filterable field after selecting an item on( 'details-menu-selected', 'details-menu', event => { const menu = event.currentTarget const filterableField = (menu as HTMLElement).querySelector('.js-filterable-field') if (filterableField instanceof HTMLInputElement && filterableField.value) filterableField.focus() }, {capture: true}, ) const syncInputValue = (event: Event) => { if (!(event.target instanceof Element)) return const id = event.target.getAttribute('data-menu-input')! const el = document.getElementById(id) if (!(el instanceof HTMLInputElement || el instanceof HTMLTextAreaElement)) return const button = ((event as CustomEvent).detail.relatedTarget as HTMLButtonElement) || ((event as CustomEvent).detail.item.querySelector('button') as HTMLButtonElement) el.value = button.value } // On selection, sync selectedItem.value to input[id=data-menu-input] on('itemActivated', '[data-menu-input]', syncInputValue, {capture: true}) // Delete this line when data-menu-input attributes aren't on details-menu elements anymore // app/components/github/menu_component.html.erb // app/views/businesses/pre_receive_hook_targets/_environments.html.erb // app/views/businesses/pre_receive_hook_targets/_files.html.erb on('details-menu-selected', '[data-menu-input]', syncInputValue, {capture: true}) // Restore focus on the previously focused element after results have been updated // Otherwise return focus to input observe('details-menu remote-input', { constructor: RemoteInputElement, initialize(el) { const resultsContainer = document.getElementById(el.getAttribute('aria-owns') || '') if (!resultsContainer) return let activeElementId: string | null = null el.addEventListener('load', () => { if (document.activeElement && resultsContainer.contains(document.activeElement) && document.activeElement.id) { activeElementId = document.activeElement.id } else { activeElementId = null } }) el.addEventListener('loadend', () => { if (activeElementId) { const focusEl = resultsContainer.querySelector(`#${activeElementId}`) || resultsContainer.querySelector('[role^="menu"]') if (focusEl instanceof HTMLElement) { focusEl.focus() } else if (el.input) { el.input.focus() } } }) }, }) on( 'details-menu-selected', 'details-menu[data-menu-max-options]', event => { const max = +event.currentTarget.getAttribute('data-menu-max-options')! const checkedItems = event.currentTarget.querySelectorAll('[role="menuitemcheckbox"][aria-checked="true"]') const atLimit = max === checkedItems.length const warningEl = event.currentTarget.querySelector('[data-menu-max-options-warning]')! warningEl.hidden = !atLimit if (atLimit) { announceFromElement(warningEl, {assertive: true}) } for (const item of event.currentTarget.querySelectorAll('[role="menuitemcheckbox"] input')) { item.disabled = atLimit && !item.checked } }, {capture: true}, ) // Make js-select-menu & navigation behaviors work with detail select menus observe('details > details-menu', { subscribe(el) { const details = el.closest('details')! return fromEvent(details, 'toggle', fireMenuToggleEvent) }, }) // Fire a menu:[de]activate[d] event depending on the state of the menu. async function fireMenuToggleEvent({currentTarget}: Event) { const details = currentTarget as HTMLElement const isOpen = details.hasAttribute('open') if (isOpen) { const filterableField = details.querySelector('.js-filterable-field') if (filterableField instanceof HTMLInputElement) filterableField.focus() } fire(details, isOpen ? 'menu:activate' : 'menu:deactivate') await microtask() fire(details, isOpen ? 'menu:activated' : 'menu:deactivated') } observe('details > details-menu[preload]:not([src])', { subscribe(el) { return fromEvent(el.parentElement!, 'mouseover', function (event) { const menu = event.currentTarget as HTMLElement const loader = menu.querySelector('include-fragment[src]') loader?.load() }) }, }) // Behaviors complementing dialogs import {observe} from '@github/selector-observer' // Eagerly load an inside a / when a user hovers on the button to click it observe('button[data-show-dialog-id]', button => { button?.addEventListener('mouseenter', () => { const id = button.getAttribute('data-show-dialog-id') const dialog = button.ownerDocument.getElementById(id!) dialog?.querySelector('include-fragment[loading=lazy]')?.setAttribute('loading', 'eager') }) }) observe('summary[data-show-dialog-id]', button => { button?.addEventListener('click', () => { const id = button.getAttribute('data-show-dialog-id') if (!id) return const dialog = button.ownerDocument.getElementById(id) as HTMLDialogElement dialog?.show() }) }) // Commenting: Edit and delete buttons import {fire, on} from 'delegated-events' import type {IncludeFragmentElement} from '@github/include-fragment-element' import {morph, morphContent} from '@github-ui/morpheus' import {dialog} from '@github-ui/details-dialog' import {fetchSafeDocumentFragment} from '@github-ui/fetch-utils' import {fromEvent} from '@github-ui/subscription' import {hasDirtyFields, hasInteractions} from '@github-ui/has-interactions' import {observe} from '@github/selector-observer' import {remoteForm} from '@github-ui/remote-form' import {updateContent} from '@github-ui/updatable-content' let bodyErrors: string[] = [] // Preload the edit form fragment when the dropdown menu is loaded observe('.js-comment-header-actions-deferred-include-fragment', { subscribe: el => fromEvent( el, 'loadstart', () => { const container = el.closest('.js-comment')! loadEditFormDeferredIncludeFragment(container) }, {capture: false, once: true}, ), }) // If the comment contains a task list we need to immediately load the edit form // because it's used to decide if the user can edit tasks in the list or not observe('.js-comment .contains-task-list', { add: el => { const container = el.closest('.js-comment')! loadEditFormDeferredIncludeFragment(container) }, }) // Edit button on('click', '.js-comment-edit-button', function (event) { const container = event.currentTarget.closest('.js-comment')! container.classList.add('is-comment-editing') // Focus on the edit form when it is loaded const editFormIncludeFragment = findEditFormDeferredIncludeFragment(container) if (!editFormIncludeFragment) { // Edit form is already loaded into the DOM so just focus on it focusEditForm(container) } else { // If an exists, wait till it's loaded before focusing editFormIncludeFragment.addEventListener('include-fragment-replaced', () => focusEditForm(container), {once: true}) } const dropdown = event.currentTarget.closest('.js-dropdown-details') if (dropdown) { dropdown.removeAttribute('open') } }) function focusEditForm(container: HTMLElement) { container.querySelector('.js-write-tab')!.click() const field = container.querySelector('.js-comment-field')! ;(field as HTMLTextAreaElement).focus() // Trigger size-to-fit (see #15696) fire(field, 'change') } function findEditFormDeferredIncludeFragment(container: HTMLElement) { return container.querySelector('.js-comment-edit-form-deferred-include-fragment') } // By default the edit form include fragment is set to `loading=lazy` to avoid triggering // loading on pageload, however sometimes we want to pre-emptively load it function loadEditFormDeferredIncludeFragment(container: HTMLElement) { findEditFormDeferredIncludeFragment(container)?.setAttribute('loading', 'eager') } // Show minimize form button on('click', '.js-comment-hide-button', function (event) { const comment = event.currentTarget.closest('.js-comment')! toggleMinimizeError(comment, false) const minimizeForm = comment.querySelector('.js-minimize-comment') /* eslint-disable-next-line github/no-d-none */ if (minimizeForm) minimizeForm.classList.remove('d-none') const dropdown = event.currentTarget.closest('.js-dropdown-details') if (dropdown) { dropdown.removeAttribute('open') } }) // Hide minimize form button on('click', '.js-comment-hide-minimize-form', function (event) { const minimizeForm = event.currentTarget.closest('.js-minimize-comment')! /* eslint-disable-next-line github/no-d-none */ minimizeForm.classList.add('d-none') }) // Comment Cancel button export function handleCommentCancelButtonClick(event: Event & {currentTarget: Element}) { const form = event.currentTarget.closest('form')! const confirmText = event.currentTarget.getAttribute('data-confirm-text')! if (hasDirtyFields(form) && !confirm(confirmText)) { return false } for (const field of form.querySelectorAll('input, textarea')) { const fieldEl = field as HTMLInputElement | HTMLTextAreaElement fieldEl.value = fieldEl.defaultValue if (fieldEl.classList.contains('session-resumable-canceled')) { fieldEl.classList.add('js-session-resumable') fieldEl.classList.remove('session-resumable-canceled') } } const comment = event.currentTarget.closest('.js-comment') if (comment) { comment.classList.remove('is-comment-editing') } return true } on('click', '.js-comment-cancel-button', handleCommentCancelButtonClick) // Issue edit cancel on('click', '.js-cancel-issue-edit', function (event) { const container = event.currentTarget.closest('.js-details-container')! container.querySelector('.js-comment-form-error')!.hidden = true }) // Show loading state for updating, deleting, minimizing, and unminimizing // Add version so server can decide if we're working with fresh data remoteForm( '.js-comment-delete, .js-comment .js-comment-update, .js-issue-update, .js-comment-minimize, .js-comment-unminimize', function (form, wants, request) { const comment = form.closest('.js-comment')! comment.classList.add('is-comment-loading') const bodyVersion = comment.getAttribute('data-body-version') if (bodyVersion) { request.headers.set('X-Body-Version', bodyVersion) } }, ) // Rejected updates that are stale freezes the form and shows an error. // See AbstractRepositoryController#render_stale_error for stale error response. remoteForm('.js-comment .js-comment-update', async function (form, wants) { let response const comment = form.closest('.js-comment')! const updateError = comment.querySelector('.js-comment-update-error') const bodyError = comment.querySelector('.js-comment-body-error') if (updateError instanceof HTMLElement) { updateError.hidden = true } if (bodyError instanceof HTMLElement) { bodyError.hidden = true } bodyErrors = [] // Prevent live updates while the form is submitting. form.classList.add('is-dirty') try { response = await wants.json() } catch (error) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (error.response.status === 422) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it const data = JSON.parse(error.response.text) if (data.errors) { if (updateError instanceof HTMLElement) { // eslint-disable-next-line i18n-text/no-en updateError.textContent = `There was an error posting your comment: ${data.errors.join(', ')}` updateError.hidden = false } return } } else { throw error } } finally { form.classList.remove('is-dirty') } if (!response) return const data = response.json if (data.errors && data.errors.length > 0) { bodyErrors = data.errors showBodyErrors(bodyError as HTMLElement) } const commentBody = comment.querySelector('.js-comment-body') const trackingBlockDirty = commentBody != null && form.getAttribute('data-submitting-tracking-block-update') === 'async' && hasInteractions(commentBody, true, true) if (commentBody && data.body && !trackingBlockDirty) { morphContent(commentBody, data.body, {keepInputValues: true}) } if (data.source != null) { const commentField = comment.querySelector('.js-comment-field') if (commentField) { commentField.defaultValue = data.source // Only update the markdown if the tracking block has not already updated it. if (!trackingBlockDirty) { commentField.value = data.source } } // if the issue is a PR, update the merge commit message with the updated body text if (data.default_merge_commit_message) { if (document.querySelector('.js-merge-pr.is-merging')) { const mergeFieldMessage = document.querySelector('.js-merge-pull-request textarea') if ( mergeFieldMessage instanceof HTMLTextAreaElement && mergeFieldMessage.value === mergeFieldMessage.defaultValue ) { mergeFieldMessage.value = mergeFieldMessage.defaultValue = data.default_merge_commit_message } } if (data.default_squash_commit_message) { if (document.querySelector('.js-merge-pr.is-squashing')) { const mergeFieldMessage = document.querySelector('.js-merge-pull-request textarea') if ( mergeFieldMessage instanceof HTMLTextAreaElement && mergeFieldMessage.value === mergeFieldMessage.defaultValue ) { mergeFieldMessage.value = mergeFieldMessage.defaultValue = data.default_squash_commit_message } } } } document .querySelector('.js-merge-box-button-merge') ?.setAttribute('data-input-message-value', data.default_merge_commit_message) document .querySelector('.js-merge-box-button-squash') ?.setAttribute('data-input-message-value', data.default_squash_commit_message) } comment.setAttribute('data-body-version', data.newBodyVersion) const bodyVersionInput = comment.querySelector('.js-body-version') if (bodyVersionInput instanceof HTMLInputElement) { bodyVersionInput.value = data.newBodyVersion } const discussionPoll = comment.querySelector('.js-discussion-poll') if (discussionPoll && data.poll) { discussionPoll.innerHTML = data.poll } for (const field of comment.querySelectorAll('input, textarea')) { const fieldEl = field as HTMLInputElement | HTMLTextAreaElement fieldEl.defaultValue = fieldEl.value } // If the comment was previously stale, remove the warning as it is now fresh comment.classList.remove('is-comment-stale') // Only leave edit mode if the user manually submitted the form. if (!form.hasAttribute('data-submitting-tracking-block-update')) { comment.classList.remove('is-comment-editing') } const edits = comment.querySelector('.js-comment-edit-history') if (edits) { const html = await fetchSafeDocumentFragment(document, data.editUrl) morph(edits, html) } }) // this block will show the error block if there were errors on body modification observe('.js-comment-body-error', { add: el => { if (bodyErrors && bodyErrors.length > 0) { showBodyErrors(el as HTMLElement) } }, }) function showBodyErrors(el: HTMLElement) { const ol = el.querySelector('ol') if (ol) { ol.textContent = '' const items = bodyErrors.map(e => { const li = document.createElement('li') li.textContent = e return li }) for (const li of items) { ol.appendChild(li) } } el.hidden = false } // Hide loading state for updating, deleting, minimizing, and unminimizing remoteForm( '.js-comment .js-comment-delete, .js-comment .js-comment-update, .js-comment-minimize, .js-comment-unminimize', async function (form, wants) { const comment = form.closest('.js-comment')! let error try { await wants.text() } catch (err) { error = err // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (error.response.status === 422) { let data try { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it data = JSON.parse(error.response.text) } catch { // Do nothing } if (data && data.stale) comment.classList.add('is-comment-stale') } else { throw error } } finally { form.dispatchEvent(new CustomEvent('submit:complete', {bubbles: true, detail: {error}})) } comment.classList.remove('is-comment-loading') }, ) function toggleMinimizeError(comment: HTMLElement, errored: boolean) { const minimizeError = comment.querySelector('.js-comment-show-on-error') if (minimizeError) { minimizeError.hidden = !errored } const minimizeForm = comment.querySelector('.js-comment-hide-on-error') if (minimizeForm) { minimizeForm.hidden = errored } } remoteForm('.js-timeline-comment-unminimize, .js-timeline-comment-minimize', async function (form, wants) { const comment = form.closest('.js-minimize-container')! try { const response = await wants.html() comment.replaceWith(response.html) } catch { toggleMinimizeError(comment, true) } }) remoteForm('.js-discussion-comment-unminimize, .js-discussion-comment-minimize', async function (form, wants) { const comment = form.closest('.js-discussion-comment')! const minimizeError = comment.querySelector('.js-discussion-comment-error') if (minimizeError) { minimizeError.hidden = true } try { const response = await wants.html() comment.replaceWith(response.html) } catch (error) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (error.response.status >= 400 && error.response.status < 500) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (error.response.html) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it const errorMessage = error.response.html.querySelector('.js-discussion-comment')!.getAttribute('data-error')! if (minimizeError instanceof HTMLElement) { minimizeError.textContent = errorMessage minimizeError.hidden = false } } } else { throw error } } }) // Remove comment if deleted successfully remoteForm('.js-comment-delete', async function (form, wants) { await wants.json() let container = form.closest('.js-comment-container') || form.closest('.js-line-comments') const isAutomatedReviewComment = container && container.querySelectorAll("react-partial[partial-name='automated-review-comment']").length > 0 if (container && (container.querySelectorAll('.js-comment').length !== 1 || isAutomatedReviewComment)) { container = form.closest('.js-comment')! } const thread = container?.closest('.js-comment-container') || container?.closest('.js-line-comments') container?.remove() if (thread && thread.querySelectorAll('.js-comment').length === 1) { for (const x of thread.querySelectorAll('.js-delete-on-last-reply-deleted')) { x.remove() } } }) // Update issue/PR/discussion title if successful remoteForm('.js-issue-update', async function (form, wants) { const container = form.closest('.js-details-container')! const errorDisplay = container.querySelector('.js-comment-form-error')! let response try { response = await wants.json() } catch (error) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it // eslint-disable-next-line i18n-text/no-en errorDisplay.textContent = error.response?.json?.errors?.[0] || 'Something went wrong. Please try again.' errorDisplay.hidden = false } if (!response) return container.classList.remove('open') errorDisplay.hidden = true const data = response.json if (data.issue_title != null) { container.querySelector('.js-issue-title')!.textContent = data.issue_title const issuesContainer = container.closest('.js-issues-results') if (issuesContainer) { if (issuesContainer.querySelector('.js-merge-pr.is-merging')) { const mergeFieldTitle = issuesContainer.querySelector('.js-merge-pull-request .js-merge-title') if (mergeFieldTitle instanceof HTMLInputElement && mergeFieldTitle.value === mergeFieldTitle.defaultValue) { mergeFieldTitle.value = mergeFieldTitle.defaultValue = data.default_merge_commit_title } } else if (issuesContainer.querySelector('.js-merge-pr.is-squashing')) { const mergeFieldTitle = issuesContainer.querySelector('.js-merge-pull-request .js-merge-title') if (mergeFieldTitle instanceof HTMLInputElement && mergeFieldTitle.value === mergeFieldTitle.defaultValue) { mergeFieldTitle.value = mergeFieldTitle.defaultValue = data.default_squash_commit_title } } const mergeButton = issuesContainer.querySelector('button[value=merge]') if (mergeButton) { mergeButton.setAttribute('data-input-title-value', data.default_merge_commit_title) } const squashInput = issuesContainer.querySelector('button[value=squash]') if (squashInput) { squashInput.setAttribute('data-input-title-value', data.default_squash_commit_title) } } } document.title = data.page_title for (const field of form.elements) { if (field instanceof HTMLInputElement || field instanceof HTMLTextAreaElement) { field.defaultValue = field.value } } }) // Hide comment if minimized successfully remoteForm('.js-comment-minimize', async function (form, wants) { await wants.json() const comment = form.closest('.js-comment')! const minimizeForm = comment.querySelector('.js-minimize-comment') if (minimizeForm && minimizeForm.classList.contains('js-update-minimized-content')) { const submitButton = form.querySelector( 'input[type=submit], button[type=submit]', ) if (submitButton) { submitButton.classList.add('disabled') } const updatableCommentContainer = comment.closest('.js-comment-container') if (updatableCommentContainer) { await updateContent(updatableCommentContainer) } } else { /* eslint-disable-next-line github/no-d-none */ if (minimizeForm) minimizeForm.classList.add('d-none') const unminimizedComment = form.closest('.unminimized-comment')! /* eslint-disable-next-line github/no-d-none */ unminimizedComment.classList.add('d-none') unminimizedComment.classList.remove('js-comment') const commentGroup = form.closest('.js-minimizable-comment-group')! const minimizedComment = commentGroup.querySelector('.minimized-comment') /* eslint-disable-next-line github/no-d-none */ if (minimizedComment) minimizedComment.classList.remove('d-none') if (minimizedComment) minimizedComment.classList.add('js-comment') } }) // Show comment if unminimized successfully remoteForm('.js-comment-unminimize', async function (form, wants) { await wants.json() const commentGroup = form.closest('.js-minimizable-comment-group')! const unminimizedComment = commentGroup.querySelector('.unminimized-comment') const minimizedComment = commentGroup.querySelector('.minimized-comment') if (unminimizedComment) { /* eslint-disable-next-line github/no-d-none */ unminimizedComment.classList.remove('d-none') unminimizedComment.classList.add('js-comment') /* eslint-disable-next-line github/no-d-none */ if (minimizedComment) minimizedComment.classList.add('d-none') if (minimizedComment) minimizedComment.classList.remove('js-comment') } else { // if the unminimizedComment is not present at this point, // try to fetch it from the server if (minimizedComment) { const actionForm = minimizedComment.querySelector('.timeline-comment-actions') // hide form while waiting for updated content /* eslint-disable-next-line github/no-d-none */ if (actionForm) actionForm.classList.add('d-none') minimizedComment.classList.remove('js-comment') } const updatableCommentContainer = commentGroup.closest('.js-comment-container')! await updateContent(updatableCommentContainer) } }) on( 'details-menu-select', '.js-comment-edit-history-menu', event => { const url = (event as CustomEvent).detail.relatedTarget.getAttribute('data-edit-history-url') if (!url) return // Prevent menu from closing event.preventDefault() const content = fetchSafeDocumentFragment(document, url) dialog({ content, dialogClass: 'Box-overlay--wide overflow-visible', errorMessage: "Couldn't display edit history diff", }) }, {capture: true}, ) performance.mark("js-parse-end:element-registry-559588089abef811.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["69324"],{49783(e,t,a){(0,a(94571).Se)({"animated-image":()=>Promise.all([a.e("13726"),a.e("64492"),a.e("64220"),a.e("95009")]).then(a.bind(a,9803)),"actions-caches-filter":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("7463"),a.e("96232"),a.e("61110"),a.e("8173"),a.e("52719"),a.e("4138"),a.e("66695")]).then(a.bind(a,26046)),"actions-workflow-filter":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("7463"),a.e("96232"),a.e("61110"),a.e("8173"),a.e("52719"),a.e("4138"),a.e("33785")]).then(a.bind(a,35864)),"actions-workflow-list":()=>Promise.all([a.e("13726"),a.e("32995")]).then(a.bind(a,84750)),"variable-value":()=>Promise.all([a.e("13726"),a.e("15995")]).then(a.bind(a,12790)),"variables-input":()=>Promise.all([a.e("13726"),a.e("5151")]).then(a.bind(a,85365)),"variables-pagination":()=>Promise.all([a.e("13726"),a.e("7827")]).then(a.bind(a,71326)),"cvss-calculator":()=>Promise.all([a.e("13726"),a.e("11151")]).then(a.bind(a,50770)),"cvss-calculator-metric":()=>Promise.all([a.e("13726"),a.e("1378")]).then(a.bind(a,21369)),"metric-selection":()=>Promise.all([a.e("13726"),a.e("69240")]).then(a.bind(a,78443)),"severity-calculator":()=>Promise.all([a.e("13726"),a.e("90691")]).then(a.bind(a,26990)),"severity-score":()=>Promise.all([a.e("13726"),a.e("57457")]).then(a.bind(a,64680)),"severity-selection":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("96232"),a.e("35861")]).then(a.bind(a,33556)),"severity-selection-next":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("96232"),a.e("6859")]).then(a.bind(a,68678)),"severity-tracking":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("45699")]).then(a.bind(a,75015)),"webauthn-status":()=>Promise.all([a.e("13726"),a.e("64052")]).then(a.bind(a,86815)),"downgrade-dialog":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("91473")]).then(a.bind(a,1160)),"manage-subscription":()=>Promise.all([a.e("13726"),a.e("28507")]).then(a.bind(a,89814)),"pending-cycle-changes-component":()=>Promise.all([a.e("13726"),a.e("39689")]).then(a.bind(a,60304)),"create-branch":()=>Promise.all([a.e("13726"),a.e("2887"),a.e("26093"),a.e("64220"),a.e("30476"),a.e("1513")]).then(a.bind(a,59632)),"create-repo-from-selector":()=>Promise.all([a.e("13726"),a.e("37656")]).then(a.bind(a,54411)),"select-all":()=>Promise.all([a.e("13726"),a.e("99516")]).then(a.bind(a,26295)),"close-reason-selector":()=>Promise.all([a.e("13726"),a.e("22873")]).then(a.bind(a,4704)),"reopen-reason-selector":()=>Promise.all([a.e("13726"),a.e("73708")]).then(a.bind(a,47783)),"code-scanning-alert-filter":()=>Promise.all([a.e("13726"),a.e("98131"),a.e("7542"),a.e("2966"),a.e("7463"),a.e("96232"),a.e("32769"),a.e("28819"),a.e("61110"),a.e("8173"),a.e("56093"),a.e("810"),a.e("28272"),a.e("52719"),a.e("4138"),a.e("35537")]).then(a.bind(a,87439)),"pretty-cron":()=>Promise.all([a.e("13726"),a.e("93859"),a.e("39618")]).then(a.bind(a,20505)),"timeout-content":()=>Promise.all([a.e("13726"),a.e("80746")]).then(a.bind(a,2737)),"message-list":()=>Promise.all([a.e("13726"),a.e("66343")]).then(a.bind(a,69530)),"sku-list":()=>Promise.all([a.e("13726"),a.e("92594")]).then(a.bind(a,36873)),"create-button":()=>Promise.all([a.e("13726"),a.e("33532")]).then(a.bind(a,82930)),"editor-forwarder":()=>Promise.all([a.e("13726"),a.e("71098")]).then(a.bind(a,30593)),"command-palette-page":()=>Promise.all([a.e("13726"),a.e("36038"),a.e("64220"),a.e("1200"),a.e("90590")]).then(a.bind(a,92653)),"command-palette-page-stack":()=>Promise.all([a.e("13726"),a.e("36038"),a.e("64220"),a.e("1200"),a.e("90590"),a.e("54103")]).then(a.bind(a,92618)),"feed-post":()=>Promise.all([a.e("13726"),a.e("89845")]).then(a.bind(a,34100)),"copilot-signup-choose-plan-type":()=>Promise.all([a.e("13726"),a.e("26676")]).then(a.bind(a,90271)),"copilot-business-signup-seat-management":()=>Promise.all([a.e("13726"),a.e("85292")]).then(a.bind(a,76199)),"loading-context":()=>Promise.all([a.e("13726"),a.e("16930")]).then(a.bind(a,4025)),"portal-fragment":()=>Promise.all([a.e("13726"),a.e("69823")]).then(a.bind(a,19202)),"query-search":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("7463"),a.e("96232"),a.e("61110"),a.e("8173"),a.e("52719"),a.e("4138"),a.e("36018")]).then(a.bind(a,61066)),"dependabot-alert-dismissal":()=>Promise.all([a.e("13726"),a.e("85641")]).then(a.bind(a,45328)),"dependabot-alert-load-all":()=>Promise.all([a.e("13726"),a.e("54154")]).then(a.bind(a,74961)),"dependabot-alert-row":()=>Promise.all([a.e("13726"),a.e("83690")]).then(a.bind(a,59313)),"dependabot-alert-table-header":()=>Promise.all([a.e("13726"),a.e("88982")]).then(a.bind(a,10581)),"dependabot-updates-paused":()=>Promise.all([a.e("13726"),a.e("84512")]).then(a.bind(a,12099)),"deferred-diff-lines":()=>Promise.all([a.e("13726"),a.e("29433")]).then(a.bind(a,40864)),"edit-history":()=>Promise.all([a.e("13726"),a.e("13944")]).then(a.bind(a,32555)),"conduit-profile-feed-visibility":()=>Promise.all([a.e("13726"),a.e("39272")]).then(a.bind(a,6107)),"readme-toc":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("21929")]).then(a.bind(a,30505)),"delayed-loading":()=>Promise.all([a.e("13726"),a.e("39752")]).then(a.bind(a,82011)),"remote-pagination":()=>Promise.all([a.e("13726"),a.e("76410")]).then(a.bind(a,90305)),"dialog-hydro":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("22346")]).then(a.bind(a,34744)),"track-view":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("88730")]).then(a.bind(a,47432)),"load-versions":()=>Promise.all([a.e("13726"),a.e("71463")]).then(a.bind(a,78522)),"math-renderer":()=>Promise.all([a.e("13726"),a.e("61110"),a.e("64220"),a.e("83330")]).then(a.bind(a,54116)),"memex-project-picker":()=>Promise.all([a.e("13726"),a.e("9344"),a.e("39237")]).then(a.bind(a,78404)),"memex-project-picker-panel":()=>Promise.all([a.e("13726"),a.e("93976")]).then(a.bind(a,11371)),"memex-project-picker-interstitial":()=>Promise.all([a.e("13726"),a.e("82743")]).then(a.bind(a,11882)),"memex-project-picker-unlink":()=>Promise.all([a.e("13726"),a.e("36940")]).then(a.bind(a,47815)),"project-buttons-list":()=>Promise.all([a.e("13726"),a.e("51737")]).then(a.bind(a,7424)),"navigation-list":()=>Promise.all([a.e("13726"),a.e("11053")]).then(a.bind(a,44860)),"notification-shelf-watcher":()=>Promise.all([a.e("13726"),a.e("96232"),a.e("2887"),a.e("64220"),a.e("28360"),a.e("3039")]).then(a.bind(a,65190)),"feature-request":()=>Promise.all([a.e("13726"),a.e("71912")]).then(a.bind(a,47707)),"allowed-values-input":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("20872")]).then(a.bind(a,38555)),"host-setup":()=>Promise.all([a.e("13726"),a.e("57334")]).then(a.bind(a,15253)),"max-value":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("69708")]).then(a.bind(a,91687)),"codespaces-policy-form":()=>Promise.all([a.e("13726"),a.e("42674")]).then(a.bind(a,10281)),"private-registry-form":()=>Promise.all([a.e("13726"),a.e("57802")]).then(a.bind(a,90577)),"repository-selection-input":()=>Promise.all([a.e("13726"),a.e("50589")]).then(a.bind(a,65580)),"experimental-action-menu":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("21485")]).then(a.bind(a,68476)),"custom-focus-group":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("41405")]).then(a.bind(a,49311)),"select-panel":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("2966"),a.e("39433")]).then(a.bind(a,29872)),"internal-nav-list-group":()=>Promise.all([a.e("13726"),a.e("43882")]).then(a.bind(a,45361)),"split-page-layout":()=>Promise.all([a.e("13726"),a.e("76217")]).then(a.bind(a,36160)),"toggle-switch":()=>Promise.all([a.e("13726"),a.e("21631")]).then(a.bind(a,5666)),"lazy-load-section":()=>Promise.all([a.e("13726"),a.e("4760")]).then(a.bind(a,55595)),"profile-timezone":()=>Promise.all([a.e("13726"),a.e("74433")]).then(a.bind(a,78776)),"comment-actions":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("39442")]).then(a.bind(a,16450)),"copilot-marketing-popover":()=>Promise.all([a.e("13726"),a.e("25981")]).then(a.bind(a,32268)),"file-filter":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("13258")]).then(a.bind(a,42170)),"file-tree":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("80561")]).then(a.bind(a,20916)),"file-tree-toggle":()=>Promise.all([a.e("13726"),a.e("38716")]).then(a.bind(a,91927)),"reactions-menu":()=>Promise.all([a.e("13726"),a.e("21106")]).then(a.bind(a,30281)),"pin-organization-repo":()=>Promise.all([a.e("13726"),a.e("43728")]).then(a.bind(a,21875)),"custom-scopes":()=>Promise.all([a.e("13726"),a.e("51121")]).then(a.bind(a,14312)),"feature-preview-auto-enroll":()=>Promise.all([a.e("13726"),a.e("45748")]).then(a.bind(a,23935)),"qbsearch-input":()=>Promise.all([a.e("13726"),a.e("26533"),a.e("62758"),a.e("64220"),a.e("56093"),a.e("35204"),a.e("73494"),a.e("76725"),a.e("38631")]).then(a.bind(a,83306)),"alert-dismissal":()=>Promise.all([a.e("13726"),a.e("54962")]).then(a.bind(a,35817)),"preview-announcement-button":()=>Promise.all([a.e("13726"),a.e("99547")]).then(a.bind(a,41590)),"recovery-codes":()=>Promise.all([a.e("13726"),a.e("62111")]).then(a.bind(a,43042)),"project-picker":()=>Promise.all([a.e("13726"),a.e("26533"),a.e("64220"),a.e("9344"),a.e("47903")]).then(a.bind(a,95695)),"launch-code":()=>Promise.all([a.e("13726"),a.e("4590")]).then(a.bind(a,37021)),"deferred-side-panel":()=>Promise.all([a.e("13726"),a.e("15117")]).then(a.bind(a,95068)),"notification-indicator":()=>Promise.all([a.e("13726"),a.e("53178")]).then(a.bind(a,99585)),"user-drawer-side-panel":()=>Promise.all([a.e("13726"),a.e("26753")]).then(a.bind(a,49496)),"slash-command-toolbar-button":()=>Promise.all([a.e("13726"),a.e("69444")]).then(a.bind(a,19343)),"featured-work":()=>Promise.all([a.e("13726"),a.e("50352")]).then(a.bind(a,20595)),"sponsors-account-switcher":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("28735")]).then(a.bind(a,94095)),"adjacent-text-nodes-menu":()=>Promise.all([a.e("13726"),a.e("92476")]).then(a.bind(a,7351)),"variant-menu-item":()=>Promise.all([a.e("13726"),a.e("77396")]).then(a.bind(a,79103)),"metered-billing-settings-component":()=>Promise.all([a.e("13726"),a.e("21420")]).then(a.bind(a,20231)),"billing-transaction-component":()=>Promise.all([a.e("13726"),a.e("79854")]).then(a.bind(a,24125)),"invoice-download":()=>Promise.all([a.e("13726"),a.e("35078")]).then(a.bind(a,14053)),"payment-history":()=>Promise.all([a.e("13726"),a.e("67431")]).then(a.bind(a,40122)),"sponsorships-tabs":()=>Promise.all([a.e("13726"),a.e("50623")]).then(a.bind(a,50274)),"bundle-size-stats":()=>Promise.all([a.e("13726"),a.e("61110"),a.e("64220"),a.e("40560")]).then(a.bind(a,37251)),"datahpc-staffbar":()=>Promise.all([a.e("13726"),a.e("90131")]).then(a.bind(a,98270)),"react-profiling-toggle":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("98647")]).then(a.bind(a,55649)),"react-query-devtools":()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("19762"),a.e("49863"),a.e("64220"),a.e("63014")]).then(a.bind(a,24791)),"react-staffbar":()=>Promise.all([a.e("13726"),a.e("90225"),a.e("25808")]).then(a.bind(a,36147)),"relay-cache-staffbar":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("21955")]).then(a.bind(a,74577)),"soft-nav-staffbar":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("36557")]).then(a.bind(a,46867)),"soft-nav-staffbar-preview":()=>Promise.all([a.e("13726"),a.e("35103")]).then(a.bind(a,24418)),"stafftools-invoiced-sponsorship-payment-options":()=>Promise.all([a.e("13726"),a.e("78673")]).then(a.bind(a,67656)),"suggestions-collapsible":()=>Promise.all([a.e("13726"),a.e("53471")]).then(a.bind(a,10133)),"themed-picture":()=>Promise.all([a.e("13726"),a.e("23873")]).then(a.bind(a,84984)),"two-factor-fallback-sms-config-toggle":()=>Promise.all([a.e("13726"),a.e("9217")]).then(a.bind(a,15576)),"two-factor-inline-expander":()=>Promise.all([a.e("13726"),a.e("78078")]).then(a.bind(a,34669)),"actions-announceable-search-result-summary":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("56382")]).then(a.bind(a,53837)),"announce-live":()=>Promise.all([a.e("13726"),a.e("7053"),a.e("34323")]).then(a.bind(a,92574)),"avatar-reset":()=>Promise.all([a.e("13726"),a.e("97261")]).then(a.bind(a,26748)),"billing-checkout":()=>Promise.all([a.e("13726"),a.e("98131"),a.e("64220"),a.e("56093"),a.e("38728"),a.e("71365"),a.e("9751"),a.e("51672"),a.e("18392")]).then(a.bind(a,89282)),"billing-country-and-region-selection":()=>Promise.all([a.e("13726"),a.e("90414")]).then(a.bind(a,71357)),"business-shipping-information":()=>Promise.all([a.e("13726"),a.e("49320")]).then(a.bind(a,98299)),"business-trial-accounts-form":()=>Promise.all([a.e("13726"),a.e("74401")]).then(a.bind(a,16472)),"business-use-billing-information-for-shipping":()=>Promise.all([a.e("13726"),a.e("86500")]).then(a.bind(a,81967)),"bypass-reason-selector":()=>Promise.all([a.e("13726"),a.e("87247")]).then(a.bind(a,64434)),"change-password":()=>Promise.all([a.e("13726"),a.e("64658")]).then(a.bind(a,39337)),"codespace-share-dialog":()=>Promise.all([a.e("13726"),a.e("10022")]).then(a.bind(a,93893)),"codespaces-user-settings":()=>Promise.all([a.e("13726"),a.e("66497")]).then(a.bind(a,40696)),"cohort-widget":()=>Promise.all([a.e("13726"),a.e("87038")]).then(a.bind(a,38605)),"context-region":()=>Promise.all([a.e("13726"),a.e("43471"),a.e("64894")]).then(a.bind(a,63021)),"cookie-consent-link":()=>Promise.all([a.e("13726"),a.e("9751"),a.e("10386")]).then(a.bind(a,97131)),"copilot-business-settings":()=>Promise.all([a.e("13726"),a.e("90206")]).then(a.bind(a,23501)),"copilot-business-settings-toggle":()=>Promise.all([a.e("13726"),a.e("68640")]).then(a.bind(a,53315)),"copilot-comment-mention-telemetry":()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("98131"),a.e("7542"),a.e("64220"),a.e("24927"),a.e("50630")]).then(a.bind(a,23592)),"copilot-dashboard-entrypoint":()=>Promise.all([a.e("13726"),a.e("98131"),a.e("64220"),a.e("56093"),a.e("38728"),a.e("71365"),a.e("51625")]).then(a.bind(a,39739)),"copilot-dashboard-no-quota":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("37094")]).then(a.bind(a,40786)),"copilot-mentions-hint":()=>Promise.all([a.e("13726"),a.e("10809")]).then(a.bind(a,82848)),"copilot-mixed-license-orgs-list":()=>Promise.all([a.e("13726"),a.e("92355")]).then(a.bind(a,93678)),"copilot-plan-account-select":()=>Promise.all([a.e("13726"),a.e("9729")]).then(a.bind(a,4280)),"copilot-plan-select-dialog":()=>Promise.all([a.e("13726"),a.e("72618")]).then(a.bind(a,8849)),"copilot-purchase-intent-form":()=>Promise.all([a.e("13726"),a.e("9751"),a.e("51672"),a.e("419")]).then(a.bind(a,99908)),"copilot-user-settings":()=>Promise.all([a.e("13726"),a.e("22570")]).then(a.bind(a,14737)),"copy-project":()=>Promise.all([a.e("13726"),a.e("2536")]).then(a.bind(a,42043)),"dashboard-tab-panels":()=>Promise.all([a.e("13726"),a.e("94685")]).then(a.bind(a,70316)),"dependabot-runner-settings":()=>Promise.all([a.e("13726"),a.e("96181")]).then(a.bind(a,37876)),"dependabot-settings-toggle":()=>Promise.all([a.e("13726"),a.e("86091")]).then(a.bind(a,25862)),"deploy-key-policy-warning":()=>Promise.all([a.e("13726"),a.e("14110")]).then(a.bind(a,12877)),"discussion-spotlight-container":()=>Promise.all([a.e("13726"),a.e("60630")]).then(a.bind(a,1621)),"document-dropzone":()=>Promise.all([a.e("13726"),a.e("4187")]).then(a.bind(a,43478)),"edit-hook-secret":()=>Promise.all([a.e("13726"),a.e("30395")]).then(a.bind(a,62422)),"education-overview-component":()=>Promise.all([a.e("13726"),a.e("76987")]).then(a.bind(a,66710)),"emu-contribution-blocked-hint":()=>Promise.all([a.e("13726"),a.e("92524")]).then(a.bind(a,76039)),"expandable-role-row":()=>Promise.all([a.e("13726"),a.e("17932")]).then(a.bind(a,72231)),"experimental-action-list":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("8980")]).then(a.bind(a,7295)),"fgp-search":()=>Promise.all([a.e("13726"),a.e("93329")]).then(a.bind(a,66408)),"flywheel-return-to-tour":()=>Promise.all([a.e("13726"),a.e("21097")]).then(a.bind(a,39344)),"fullstory-capture":()=>Promise.all([a.e("13726"),a.e("28534"),a.e("64220"),a.e("9751"),a.e("46370")]).then(a.bind(a,84123)),"ghcc-consent":()=>Promise.all([a.e("13726"),a.e("9751"),a.e("96634")]).then(a.bind(a,45411)),"inline-security-checkup-notice":()=>Promise.all([a.e("13726"),a.e("11324")]).then(a.bind(a,17719)),"input-page-refresh":()=>Promise.all([a.e("13726"),a.e("22252")]).then(a.bind(a,34919)),"integration-agent-form":()=>Promise.all([a.e("13726"),a.e("97684")]).then(a.bind(a,62431)),"issue-create":()=>Promise.all([a.e("13726"),a.e("38629")]).then(a.bind(a,72804)),"jump-to":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("96232"),a.e("8173"),a.e("64220"),a.e("52719"),a.e("76725"),a.e("65290")]).then(a.bind(a,45649)),"licensing-apply-coupon-code":()=>Promise.all([a.e("13726"),a.e("28408")]).then(a.bind(a,50827)),"linked-sku-select":()=>Promise.all([a.e("13726"),a.e("27027")]).then(a.bind(a,31614)),"markdown-accessiblity-table":()=>Promise.all([a.e("13726"),a.e("88264")]).then(a.bind(a,13467)),"marketplace-security-compliance-trader-self-certification":()=>Promise.all([a.e("13726"),a.e("83901")]).then(a.bind(a,13420)),"microsoft-analytics":()=>Promise.all([a.e("13726"),a.e("9751"),a.e("51672"),a.e("15246")]).then(a.bind(a,65295)),"microsoft-analytics-event":()=>Promise.all([a.e("13726"),a.e("9751"),a.e("51672"),a.e("16340")]).then(a.bind(a,8901)),"query-builder":()=>Promise.all([a.e("13726"),a.e("62758"),a.e("64220"),a.e("35204"),a.e("14451")]).then(a.bind(a,73169)),"react-partial-anchor":()=>Promise.all([a.e("13726"),a.e("30368")]).then(a.bind(a,82083)),"security-analysis-dependabot-updates":()=>Promise.all([a.e("13726"),a.e("2959")]).then(a.bind(a,14661)),"security-analysis-ghas":()=>Promise.all([a.e("13726"),a.e("53324")]).then(a.bind(a,14727)),"share-button-form-submit-handler":()=>Promise.all([a.e("13726"),a.e("78647")]).then(a.bind(a,23658)),"show-dialog-on-load":()=>Promise.all([a.e("13726"),a.e("15784")]).then(a.bind(a,55195)),"sidebar-pinned-topics":()=>Promise.all([a.e("13726"),a.e("94854")]).then(a.bind(a,7429)),"signup-form":()=>Promise.all([a.e("13726"),a.e("40986")]).then(a.bind(a,69409)),"signups-marketing-consent-fields":()=>Promise.all([a.e("13726"),a.e("65528")]).then(a.bind(a,48171)),"site-header-logged-in-user-menu":()=>Promise.all([a.e("13726"),a.e("12087")]).then(a.bind(a,49226)),"stafftools-topics-table":()=>Promise.all([a.e("13726"),a.e("57984")]).then(a.bind(a,70691)),"task-component":()=>Promise.all([a.e("13726"),a.e("94290")]).then(a.bind(a,61929)),"team-sync-okta-config-form":()=>Promise.all([a.e("13726"),a.e("86560")]).then(a.bind(a,75907)),"unveil-container":()=>Promise.all([a.e("13726"),a.e("30160")]).then(a.bind(a,37235)),"updatable-content":()=>Promise.all([a.e("13726"),a.e("96232"),a.e("2887"),a.e("64220"),a.e("28360"),a.e("54469")]).then(a.bind(a,89691)),"visible-password":()=>Promise.all([a.e("13726"),a.e("50103")]).then(a.bind(a,47338)),"webauthn-get":()=>Promise.all([a.e("13726"),a.e("3735")]).then(a.bind(a,69674)),"webauthn-subtle":()=>Promise.all([a.e("13726"),a.e("10378")]).then(a.bind(a,12017)),'react-partial[partial-name="delete-configuration-dialog"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41013"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("95506")]).then(a.bind(a,84973)),'react-partial[partial-name="single-sign-on-dropdown-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("9331")]).then(a.bind(a,50642)),'react-partial[partial-name="actions-custom-images-policy"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("89996"),a.e("5062"),a.e("17856"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("88975"),a.e("4161"),a.e("57059"),a.e("10690")]).then(a.bind(a,39190)),'react-partial[partial-name="actions-custom-images-retention-policy"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("71947")]).then(a.bind(a,71537)),'react-partial[partial-name="actions-repos-picker"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("32769"),a.e("28819"),a.e("82530"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("810"),a.e("28272"),a.e("9073"),a.e("96413"),a.e("91600"),a.e("43244"),a.e("27365")]).then(a.bind(a,23139)),'react-partial[partial-name="actions-run-jobs-list"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("44155"),a.e("66064")]).then(a.bind(a,17481)),'react-partial[partial-name="actions-secrets-variables-list"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41013"),a.e("62249"),a.e("43540"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("72399"),a.e("1363")]).then(a.bind(a,36582)),'react-partial[partial-name="actions-survey"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("86669")]).then(a.bind(a,45495)),'react-partial[partial-name="appearance-settings-page"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("52831"),a.e("56517")]).then(a.bind(a,12400)),'react-partial[partial-name="appearance-settings"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("52831"),a.e("71849")]).then(a.bind(a,45684)),'react-partial[partial-name="automated-review-comment-actions"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("64718"),a.e("27127"),a.e("91022")]).then(a.bind(a,61651)),'react-partial[partial-name="automated-review-comment"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("32769"),a.e("89996"),a.e("79039"),a.e("437"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("67985"),a.e("66554"),a.e("46148"),a.e("22110"),a.e("14737"),a.e("88957"),a.e("65536"),a.e("79903"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("38728"),a.e("99602"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("26330"),a.e("73945"),a.e("10079"),a.e("58311"),a.e("371"),a.e("79860"),a.e("37840"),a.e("82545"),a.e("25586"),a.e("21396"),a.e("11149"),a.e("6753"),a.e("94536"),a.e("35226"),a.e("5520")]).then(a.bind(a,54570)),'react-partial[partial-name="browser-geo-location"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("42097")]).then(a.bind(a,83011)),'react-partial[partial-name="code-scanning-alert-show-header"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41013"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("371"),a.e("56369")]).then(a.bind(a,32672)),'react-partial[partial-name="code-scanning-alert-sidebar"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("32769"),a.e("89996"),a.e("79039"),a.e("437"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("67985"),a.e("66554"),a.e("46148"),a.e("22110"),a.e("14737"),a.e("67065"),a.e("38775"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("38728"),a.e("99602"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("26330"),a.e("73945"),a.e("10079"),a.e("58311"),a.e("371"),a.e("79860"),a.e("37840"),a.e("82545"),a.e("25586"),a.e("21396"),a.e("95847"),a.e("79620"),a.e("28956"),a.e("1993"),a.e("41552")]).then(a.bind(a,63464)),'react-partial[partial-name="code-scanning-assignees-section"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("79039"),a.e("67065"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("69174"),a.e("26330"),a.e("79620"),a.e("89727"),a.e("44301")]).then(a.bind(a,99548)),'react-partial[partial-name="code-scanning-development-section"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("41013"),a.e("437"),a.e("96012"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("99602"),a.e("69174"),a.e("95847"),a.e("28956"),a.e("90192"),a.e("28012")]).then(a.bind(a,84987)),'react-partial[partial-name="code-scanning-tracking-section"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("32769"),a.e("89996"),a.e("79039"),a.e("437"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("67985"),a.e("66554"),a.e("46148"),a.e("22110"),a.e("14737"),a.e("38775"),a.e("89446"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("38728"),a.e("99602"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("26330"),a.e("73945"),a.e("10079"),a.e("58311"),a.e("371"),a.e("79860"),a.e("37840"),a.e("82545"),a.e("25586"),a.e("21396"),a.e("1993"),a.e("99213"),a.e("76352")]).then(a.bind(a,70053)),'react-partial[partial-name="codespaces-business-enablement"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("24670"),a.e("12352")]).then(a.bind(a,30704)),'react-partial[partial-name="codespaces-organization-ownership-setting"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("83765"),a.e("83142")]).then(a.bind(a,7779)),'react-partial[partial-name="codespaces-policy-name-input"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("35373")]).then(a.bind(a,11270)),'react-partial[partial-name="codespaces-survey"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("37342")]).then(a.bind(a,61716)),'react-partial[partial-name="consent-experience"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("80640"),a.e("95864")]).then(a.bind(a,43266)),'react-partial[partial-name="copilot-actions-chat-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("38728"),a.e("71365"),a.e("33608"),a.e("72691")]).then(a.bind(a,25232)),'react-partial[partial-name="copilot-activation-progress-bar"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("46752"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("31956"),a.e("46259")]).then(a.bind(a,81973)),'react-partial[partial-name="copilot-apply-changes-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("37773")]).then(a.bind(a,8950)),'react-partial[partial-name="copilot-assisted-review-upsell"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("14519")]).then(a.bind(a,66247)),'react-partial[partial-name="copilot-byok-enterprise-settings"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("88957"),a.e("3690"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("53650"),a.e("18714"),a.e("51371")]).then(a.bind(a,4641)),'react-partial[partial-name="copilot-chat-input-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("32769"),a.e("89996"),a.e("79039"),a.e("437"),a.e("5062"),a.e("28819"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("67985"),a.e("66554"),a.e("46148"),a.e("22110"),a.e("14737"),a.e("25206"),a.e("12287"),a.e("30045"),a.e("14467"),a.e("59765"),a.e("8857"),a.e("74542"),a.e("93206"),a.e("88957"),a.e("65536"),a.e("72608"),a.e("75271"),a.e("40402"),a.e("48860"),a.e("10011"),a.e("12488"),a.e("41710"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("38728"),a.e("99602"),a.e("88975"),a.e("4161"),a.e("71365"),a.e("69174"),a.e("810"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("26330"),a.e("73945"),a.e("10079"),a.e("58311"),a.e("371"),a.e("41954"),a.e("8332"),a.e("79860"),a.e("37840"),a.e("65439"),a.e("1805"),a.e("82545"),a.e("25586"),a.e("38342"),a.e("21396"),a.e("96109"),a.e("11149"),a.e("89272"),a.e("56147"),a.e("67338"),a.e("47563"),a.e("78563"),a.e("6753"),a.e("56099"),a.e("51120"),a.e("3961"),a.e("68930"),a.e("16073"),a.e("8769"),a.e("34703"),a.e("46720"),a.e("86390"),a.e("86071"),a.e("94536"),a.e("35226"),a.e("19634"),a.e("64718"),a.e("24966"),a.e("72367"),a.e("52211"),a.e("890"),a.e("40285"),a.e("19867"),a.e("23885"),a.e("26172"),a.e("18983"),a.e("86247"),a.e("17380"),a.e("65780"),a.e("56797"),a.e("14122"),a.e("62864"),a.e("5573")]).then(a.bind(a,98198)),'react-partial[partial-name="copilot-chat"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41013"),a.e("79039"),a.e("437"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("67985"),a.e("66554"),a.e("12287"),a.e("30045"),a.e("14467"),a.e("59765"),a.e("8857"),a.e("74542"),a.e("10011"),a.e("56545"),a.e("46945"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("38728"),a.e("99602"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("26330"),a.e("10079"),a.e("41954"),a.e("8332"),a.e("65439"),a.e("38342"),a.e("96109"),a.e("47563"),a.e("51120"),a.e("86390"),a.e("72367"),a.e("87561"),a.e("91859"),a.e("16251"),a.e("35871"),a.e("74511"),a.e("49076"),a.e("44216")]).then(a.bind(a,12944)),'react-partial[partial-name="copilot-code-chat"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("38728"),a.e("71365"),a.e("12038"),a.e("17662")]).then(a.bind(a,48446)),'react-partial[partial-name="copilot-code-review-feedback"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("23526")]).then(a.bind(a,21703)),'react-partial[partial-name="copilot-code-review-upsell"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("39628")]).then(a.bind(a,78159)),'react-partial[partial-name="copilot-content-exclusion"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41013"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("12872")]).then(a.bind(a,89006)),'react-partial[partial-name="copilot-generate-pull-title"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("38728"),a.e("36966")]).then(a.bind(a,86111)),'react-partial[partial-name="copilot-immersive-embedded"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("32769"),a.e("89996"),a.e("79039"),a.e("437"),a.e("5062"),a.e("28819"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("67985"),a.e("66554"),a.e("46148"),a.e("22110"),a.e("14737"),a.e("25206"),a.e("12287"),a.e("30045"),a.e("70641"),a.e("14467"),a.e("59765"),a.e("8857"),a.e("74542"),a.e("93206"),a.e("88957"),a.e("65536"),a.e("72608"),a.e("75271"),a.e("40402"),a.e("46752"),a.e("48860"),a.e("10011"),a.e("12488"),a.e("6469"),a.e("41710"),a.e("8667"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("38728"),a.e("99602"),a.e("88975"),a.e("4161"),a.e("71365"),a.e("69174"),a.e("810"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("26330"),a.e("73945"),a.e("10079"),a.e("58311"),a.e("371"),a.e("41954"),a.e("8332"),a.e("79860"),a.e("37840"),a.e("65439"),a.e("1805"),a.e("82545"),a.e("25586"),a.e("38342"),a.e("21396"),a.e("96109"),a.e("11149"),a.e("89272"),a.e("56147"),a.e("67338"),a.e("47563"),a.e("78563"),a.e("6753"),a.e("56099"),a.e("51120"),a.e("3961"),a.e("68930"),a.e("16073"),a.e("8769"),a.e("34703"),a.e("46720"),a.e("86390"),a.e("86071"),a.e("94536"),a.e("35226"),a.e("19634"),a.e("64718"),a.e("24966"),a.e("72367"),a.e("52211"),a.e("890"),a.e("40285"),a.e("19867"),a.e("23885"),a.e("87561"),a.e("26172"),a.e("18983"),a.e("86247"),a.e("17380"),a.e("20339"),a.e("65780"),a.e("91859"),a.e("56797"),a.e("8717"),a.e("84913"),a.e("66664"),a.e("84769"),a.e("14982")]).then(a.bind(a,74927)),'react-partial[partial-name="copilot-markdown-toolbar-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("32769"),a.e("28819"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("810"),a.e("28272"),a.e("17262")]).then(a.bind(a,85727)),'react-partial[partial-name="copilot-model-settings"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("49861"),a.e("11635"),a.e("70735")]).then(a.bind(a,36874)),'react-partial[partial-name="copilot-progress-indicator"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("96773")]).then(a.bind(a,91517)),'react-partial[partial-name="copilot-quota-usage"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("1318")]).then(a.bind(a,11888)),'react-partial[partial-name="copilot-summary-banner"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("24927"),a.e("46217"),a.e("32515")]).then(a.bind(a,46225)),'react-partial[partial-name="copilot-survey"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("10524")]).then(a.bind(a,72865)),'react-partial[partial-name="copilot-swe-agent-repos-picker"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("32769"),a.e("28819"),a.e("82530"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("810"),a.e("28272"),a.e("9073"),a.e("52831"),a.e("96413"),a.e("91600"),a.e("43244"),a.e("36328")]).then(a.bind(a,31425)),'react-partial[partial-name="copilot-swe-agent-third-party-agent-picker"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("52831"),a.e("63891"),a.e("53171")]).then(a.bind(a,41563)),'react-partial[partial-name="copilot-user-checklist"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("38728"),a.e("71365"),a.e("78984"),a.e("5128")]).then(a.bind(a,30703)),'react-partial[partial-name="create-branch-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("7463"),a.e("79039"),a.e("437"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("99602"),a.e("26424"),a.e("5147")]).then(a.bind(a,62331)),'react-partial[partial-name="create-branch-dialog"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("437"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("99602"),a.e("95847"),a.e("94261"),a.e("51843")]).then(a.bind(a,81259)),'react-partial[partial-name="custom-copilot-code-review-comment"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("45422")]).then(a.bind(a,80934)),'react-partial[partial-name="custom-signup-content-manager"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("20765")]).then(a.bind(a,14560)),'react-partial[partial-name="custom-signup-content"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("70641"),a.e("71236"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("1442"),a.e("347")]).then(a.bind(a,42764)),'react-partial[partial-name="dashboard-lists"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("89996"),a.e("79039"),a.e("437"),a.e("5062"),a.e("62094"),a.e("46903"),a.e("9247"),a.e("26842"),a.e("53336"),a.e("66554"),a.e("25206"),a.e("81949"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("38728"),a.e("99602"),a.e("88975"),a.e("4161"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("61300"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("73945"),a.e("10079"),a.e("58311"),a.e("37840"),a.e("1805"),a.e("89272"),a.e("8769"),a.e("26172"),a.e("56329"),a.e("4809")]).then(a.bind(a,51199)),'react-partial[partial-name="dashboard-repositories"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("25206"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("73945"),a.e("66984"),a.e("57380"),a.e("3798")]).then(a.bind(a,31313)),'react-partial[partial-name="date-picker-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("86604")]).then(a.bind(a,63313)),'react-partial[partial-name="date-time-settings"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("52831"),a.e("90622"),a.e("46633")]).then(a.bind(a,71082)),'react-partial[partial-name="demo-repo-tour"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("10236"),a.e("94762")]).then(a.bind(a,95318)),'react-partial[partial-name="dependabot-alert-assignees-section"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("79039"),a.e("67065"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("69174"),a.e("26330"),a.e("79620"),a.e("95411"),a.e("29523")]).then(a.bind(a,98954)),'react-partial[partial-name="dependabot-alert-show-header"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41013"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("371"),a.e("27704")]).then(a.bind(a,11657)),'react-partial[partial-name="dependabot-repository-access-org-settings"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("32769"),a.e("28819"),a.e("82530"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("810"),a.e("28272"),a.e("9073"),a.e("96413"),a.e("91600"),a.e("43244"),a.e("73340")]).then(a.bind(a,85866)),'react-partial[partial-name="education-schools-auto-complete"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("8999")]).then(a.bind(a,54272)),'react-partial[partial-name="email-subscription-form"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("77790")]).then(a.bind(a,20287)),'react-partial[partial-name="enterprise-team"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("88975"),a.e("72682"),a.e("67638")]).then(a.bind(a,35165)),'react-partial[partial-name="enterprise-teams-table-view"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("19489"),a.e("51640")]).then(a.bind(a,52263)),'react-partial[partial-name="external-group-team-mismatch-widget"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("26698")]).then(a.bind(a,10148)),'react-partial[partial-name="fix-workflow-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("89996"),a.e("79039"),a.e("437"),a.e("5062"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("93206"),a.e("24259"),a.e("69326"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("38728"),a.e("99602"),a.e("88975"),a.e("4161"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("58311"),a.e("41954"),a.e("8332"),a.e("65439"),a.e("1805"),a.e("38342"),a.e("96109"),a.e("89272"),a.e("56147"),a.e("3961"),a.e("75203"),a.e("38968"),a.e("33403")]).then(a.bind(a,20873)),'react-partial[partial-name="getting-started-todo-list"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("90096"),a.e("74759")]).then(a.bind(a,35209)),'react-partial[partial-name="global-agents-menu"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("89996"),a.e("79039"),a.e("437"),a.e("5062"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("93206"),a.e("24259"),a.e("91707"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("38728"),a.e("99602"),a.e("88975"),a.e("4161"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("58311"),a.e("41954"),a.e("8332"),a.e("65439"),a.e("1805"),a.e("38342"),a.e("96109"),a.e("89272"),a.e("56147"),a.e("3961"),a.e("75203"),a.e("44201")]).then(a.bind(a,14049)),'react-partial[partial-name="global-copilot-menu"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("58850"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("38728"),a.e("8332"),a.e("92845"),a.e("5711")]).then(a.bind(a,99899)),'react-partial[partial-name="global-create-menu"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("70889"),a.e("70931")]).then(a.bind(a,18361)),'react-partial[partial-name="global-nav-bar"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("79039"),a.e("25206"),a.e("26533"),a.e("40402"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("38728"),a.e("69174"),a.e("73945"),a.e("8332"),a.e("56099"),a.e("70889"),a.e("92845"),a.e("15010"),a.e("81758")]).then(a.bind(a,33387)),'react-partial[partial-name="global-nav-menu"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("25206"),a.e("52454"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("73945"),a.e("66984"),a.e("60102"),a.e("49420"),a.e("87176")]).then(a.bind(a,69117)),'react-partial[partial-name="global-sso-banner"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("67338"),a.e("33291")]).then(a.bind(a,54332)),'react-partial[partial-name="global-user-nav-drawer"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("67338"),a.e("13803"),a.e("88694"),a.e("38832")]).then(a.bind(a,80575)),'react-partial[partial-name="growth-banner-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("70785")]).then(a.bind(a,87207)),'react-partial[partial-name="insights-sidenav-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("23481")]).then(a.bind(a,55655)),'react-partial[partial-name="integration-permission-selector"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("89996"),a.e("5062"),a.e("95475"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("88975"),a.e("4161"),a.e("39621")]).then(a.bind(a,32831)),'react-partial[partial-name="internal-api-insights"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("34079"),a.e("86583")]).then(a.bind(a,28196)),'react-partial[partial-name="keyboard-shortcuts-dialog"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("36469"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("39454"),a.e("38963")]).then(a.bind(a,57845)),'react-partial[partial-name="launch-code"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("70641"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("36500"),a.e("84182")]).then(a.bind(a,38302)),'react-partial[partial-name="licensify-licenses"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("89996"),a.e("5062"),a.e("95475"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("88975"),a.e("4161"),a.e("99272")]).then(a.bind(a,8391)),'react-partial[partial-name="licensing-advanced-security-overview"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41167"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("57389"),a.e("6258"),a.e("64583"),a.e("19015")]).then(a.bind(a,98554)),'react-partial[partial-name="licensing-copilot-details"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("89996"),a.e("5062"),a.e("95475"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("88975"),a.e("4161"),a.e("57389"),a.e("20235")]).then(a.bind(a,82778)),'react-partial[partial-name="licensing-copilot-overview"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("57389"),a.e("10602"),a.e("37814")]).then(a.bind(a,88721)),'react-partial[partial-name="licensing-enterprise-cloud-details"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("41167"),a.e("24218"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("57389"),a.e("63503"),a.e("37653"),a.e("8786")]).then(a.bind(a,11508)),'react-partial[partial-name="licensing-enterprise-overview"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41167"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("57389"),a.e("6258"),a.e("63503"),a.e("79583"),a.e("20753")]).then(a.bind(a,29186)),'react-partial[partial-name="licensing-enterprise-server-overview"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41167"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("28574"),a.e("38797")]).then(a.bind(a,25743)),'react-partial[partial-name="marketing-navigation"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("71236"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("62620"),a.e("91088"),a.e("70168")]).then(a.bind(a,88115)),'react-partial[partial-name="mergebox-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41167"),a.e("41013"),a.e("78885"),a.e("89996"),a.e("79039"),a.e("5062"),a.e("18050"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("38728"),a.e("88975"),a.e("4161"),a.e("71365"),a.e("1805"),a.e("97856")]).then(a.bind(a,18462)),'react-partial[partial-name="metadata-suggestion-staffbar-component"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("37639"),a.e("97179")]).then(a.bind(a,68045)),'react-partial[partial-name="metered-enterprise-server-licenses"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("42871"),a.e("31982")]).then(a.bind(a,31916)),'react-partial[partial-name="navigation-test-nav"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("57636")]).then(a.bind(a,91567)),'react-partial[partial-name="network-configurations-select-panel"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("33959")]).then(a.bind(a,12291)),'react-partial[partial-name="new-agent-task-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("47746")]).then(a.bind(a,13819)),'react-partial[partial-name="new-agent-task-form"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("79039"),a.e("437"),a.e("62094"),a.e("40145"),a.e("46903"),a.e("2594"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("22843"),a.e("38728"),a.e("99602"),a.e("71365"),a.e("69174"),a.e("11152"),a.e("58489"),a.e("61300"),a.e("25414"),a.e("55084"),a.e("97044"),a.e("87598"),a.e("30028"),a.e("46280"),a.e("58311"),a.e("41954"),a.e("8332"),a.e("65439"),a.e("38342"),a.e("96109"),a.e("56147"),a.e("90808")]).then(a.bind(a,68230)),'react-partial[partial-name="notifications-subscriptions-menu"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("87616"),a.e("7872")]).then(a.bind(a,38786)),'react-partial[partial-name="nux-dashboard-refresh"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("78984"),a.e("36694"),a.e("52425")]).then(a.bind(a,72284)),'react-partial[partial-name="product-announcement"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("70641"),a.e("46752"),a.e("6469"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("20339"),a.e("91948")]).then(a.bind(a,65497)),'react-partial[partial-name="pull-requests-processing-indicator"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("97864"),a.e("29777")]).then(a.bind(a,64634)),'react-partial[partial-name="react-partial-anchor-example"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("69049")]).then(a.bind(a,82770)),'react-partial[partial-name="react-partial-example"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("68225")]).then(a.bind(a,43004)),'react-partial[partial-name="react-sandbox-sidenav"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56681")]).then(a.bind(a,91484)),'react-partial[partial-name="ref-selector-partial"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("437"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("99602"),a.e("83997"),a.e("60336")]).then(a.bind(a,62859)),'react-partial[partial-name="repos-overview"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("7463"),a.e("41013"),a.e("79039"),a.e("437"),a.e("25206"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("56093"),a.e("99602"),a.e("73945"),a.e("41954"),a.e("78563"),a.e("56099"),a.e("16073"),a.e("86071"),a.e("11518"),a.e("98212"),a.e("93110"),a.e("97522")]).then(a.bind(a,76070)),'react-partial[partial-name="repository-runners"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("89996"),a.e("5062"),a.e("95475"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("88975"),a.e("4161"),a.e("86495")]).then(a.bind(a,33540)),'react-partial[partial-name="search-results"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("31034")]).then(a.bind(a,2532)),'react-partial[partial-name="secret-scanning-bypass-reviewers-dialog"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("59339"),a.e("77972")]).then(a.bind(a,55507)),'react-partial[partial-name="security-center-pagination"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("850")]).then(a.bind(a,64021)),'react-partial[partial-name="security-overview-export-button"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("87271")]).then(a.bind(a,73146)),'react-partial[partial-name="sessions-auth-header"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("91032"),a.e("27525")]).then(a.bind(a,85230)),'react-partial[partial-name="shared-dismissal"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("17223"),a.e("16975"),a.e("71640")]).then(a.bind(a,97287)),'react-partial[partial-name="sponsor-org-dependencies"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("4360"),a.e("61356")]).then(a.bind(a,84162)),'react-partial[partial-name="sponsors-dashboard-your-sponsors"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("64075")]).then(a.bind(a,75469)),'react-partial[partial-name="sponsors-explore-filter"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("82810"),a.e("95159")]).then(a.bind(a,93131)),'react-partial[partial-name="sponsors-meet-the-team-list"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("41167"),a.e("78885"),a.e("89996"),a.e("5062"),a.e("22303"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("42584"),a.e("62922"),a.e("30255")]).then(a.bind(a,8446)),'react-partial[partial-name="sponsors-newsletters"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("74263")]).then(a.bind(a,84969)),'react-partial[partial-name="sponsors-signup"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("75353"),a.e("21679")]).then(a.bind(a,52815)),'react-partial[partial-name="sso-orgs-settings-list"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("16355"),a.e("7829")]).then(a.bind(a,76542)),'react-partial[partial-name="teams-settings-page"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("86244"),a.e("92457")]).then(a.bind(a,73593)),'react-partial[partial-name="trade-screening-status-banner"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("76732")]).then(a.bind(a,68381)),'react-partial[partial-name="user-status-dialog"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("13835"),a.e("437"),a.e("46148"),a.e("3612"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22843"),a.e("58489"),a.e("98652"),a.e("81107"),a.e("11446")]).then(a.bind(a,14392)),'react-partial[partial-name="webcam-upload"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("92988"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("22072")]).then(a.bind(a,20899)),'react-partial[partial-name="your-sponsorships"]':()=>Promise.all([a.e("13726"),a.e("59299"),a.e("83465"),a.e("90225"),a.e("98131"),a.e("7542"),a.e("7053"),a.e("2966"),a.e("19762"),a.e("49863"),a.e("78168"),a.e("68751"),a.e("64220"),a.e("16111"),a.e("51597"),a.e("2164"),a.e("13670")]).then(a.bind(a,2185)),"profile-pins":()=>Promise.all([a.e("13726"),a.e("24312"),a.e("75334")]).then(a.bind(a,14117)),"emoji-picker":()=>Promise.all([a.e("13726"),a.e("44449")]).then(a.bind(a,85016)),"insights-query":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("64220"),a.e("45214"),a.e("31408")]).then(a.bind(a,33690)),"remote-clipboard-copy":()=>Promise.all([a.e("13726"),a.e("96232"),a.e("87238")]).then(a.bind(a,70565)),"series-table":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("45214"),a.e("35727")]).then(a.bind(a,95706)),"line-chart":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("45214"),a.e("40170")]).then(a.bind(a,85425)),"bar-chart":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("45214"),a.e("51729")]).then(a.bind(a,17056)),"column-chart":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("45214"),a.e("37066")]).then(a.bind(a,38289)),"stacked-area-chart":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("45214"),a.e("9463")]).then(a.bind(a,12578)),"hero-stat":()=>Promise.all([a.e("13726"),a.e("7463"),a.e("41167"),a.e("78885"),a.e("6880"),a.e("64969"),a.e("45214"),a.e("99162")]).then(a.bind(a,33089)),"pulse-authors-graph":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("54761")]).then(a.bind(a,51568)),"community-contributions-graph":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("15687"),a.e("53451"),a.e("69496")]).then(a.bind(a,1963)),"discussion-page-views-graph":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("15687"),a.e("1142")]).then(a.bind(a,949)),"discussions-daily-contributors":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("15687"),a.e("53451"),a.e("33377")]).then(a.bind(a,80792)),"discussions-new-contributors":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("15687"),a.e("53451"),a.e("69278")]).then(a.bind(a,92365)),"contributors-graph":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("15687"),a.e("53451"),a.e("94577"),a.e("84225"),a.e("30181")]).then(a.bind(a,836)),"marketplace-insights-graph":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("15687"),a.e("53451"),a.e("50586")]).then(a.bind(a,12577)),"user-sessions-map":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("94577"),a.e("74399"),a.e("99064")]).then(a.bind(a,65387)),"reload-after-polling":()=>Promise.all([a.e("13726"),a.e("9660")]).then(a.bind(a,59607)),"package-dependencies-security-graph":()=>Promise.all([a.e("13726"),a.e("5266"),a.e("74448")]).then(a.bind(a,60755)),".js-sub-dependencies":()=>Promise.all([a.e("13726"),a.e("71264")]).then(a.bind(a,76675)),"network-graph":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("34279")]).then(a.bind(a,53562)),"inline-machine-translation":()=>Promise.all([a.e("13726"),a.e("64220"),a.e("73903")]).then(a.bind(a,74557)),"custom-patterns-filter":()=>Promise.all([a.e("13726"),a.e("2966"),a.e("7463"),a.e("96232"),a.e("61110"),a.e("8173"),a.e("52719"),a.e("4138"),a.e("80326")]).then(a.bind(a,92489))})},94571(e,t,a){let i;a.d(t,{Se:()=>A,FB:()=>c,p_:()=>O,CF:()=>P,aC:()=>$,zV:()=>q});let n=new WeakSet,l=new WeakMap;function r(e=document){if(l.has(e))return l.get(e);let t=!1,a=new MutationObserver(e=>{for(let t of e)if("attributes"===t.type&&t.target instanceof Element)m(t.target);else if("childList"===t.type&&t.addedNodes.length)for(let e of t.addedNodes)e instanceof Element&&o(e)});a.observe(e,{childList:!0,subtree:!0,attributeFilter:["data-action"]});let i={get closed(){return t},unsubscribe(){t=!0,l.delete(e),a.disconnect()}};return l.set(e,i),i}function o(e){for(let t of e.querySelectorAll("[data-action]"))m(t);e instanceof Element&&e.hasAttribute("data-action")&&m(e)}function s(e){let t=e.currentTarget;for(let a of d(t))if(e.type===a.type){let i=t.closest(a.tag);n.has(i)&&"function"==typeof i[a.method]&&i[a.method](e);let l=t.getRootNode();if(l instanceof ShadowRoot&&n.has(l.host)&&l.host.matches(a.tag)){let t=l.host;"function"==typeof t[a.method]&&t[a.method](e)}}}function*d(e){for(let t of(e.getAttribute("data-action")||"").trim().split(/\s+/)){let e=t.lastIndexOf(":"),a=Math.max(0,t.lastIndexOf("#"))||t.length;yield{type:t.slice(0,e),tag:t.slice(e+1,a),method:t.slice(a+1)||"handleEvent"}}}function m(e){for(let t of d(e))e.addEventListener(t.type,s)}function c(e,t){let a=e.tagName.toLowerCase();if(e.shadowRoot){for(let i of e.shadowRoot.querySelectorAll(`[data-target~="${a}.${t}"]`))if(!i.closest(a))return i}for(let i of e.querySelectorAll(`[data-target~="${a}.${t}"]`))if(i.closest(a)===e)return i}let p=e=>String("symbol"==typeof e?e.description:e).replace(/([A-Z]($|[a-z]))/g,"-$1").replace(/--/g,"-").replace(/^-|-$/,"").toLowerCase(),b=(e,t="property")=>{let a=p(e);if(!a.includes("-"))throw new DOMException(`${t}: ${String(e)} is not a valid ${t} name`,"SyntaxError");return a},h="attr";function P(e,t){j(e,h).add(t)}let u=new WeakSet;function g(e,t){if(u.has(e))return;u.add(e);let a=Object.getPrototypeOf(e),i=a?.constructor?.attrPrefix??"data-";for(let n of(t||(t=j(a,h)),t)){let t=e[n],a=b(`${i}${n}`),l={configurable:!0,get(){return this.getAttribute(a)||""},set(e){this.setAttribute(a,e||"")}};"number"==typeof t?l={configurable:!0,get(){return Number(this.getAttribute(a)||0)},set(e){this.setAttribute(a,e)}}:"boolean"==typeof t&&(l={configurable:!0,get(){return this.hasAttribute(a)},set(e){this.toggleAttribute(a,e)}}),Object.defineProperty(e,n,l),n in e&&!e.hasAttribute(a)&&l.set.call(e,t)}}let f=new Map,y=new Promise(e=>{"loading"!==document.readyState?e():document.addEventListener("readystatechange",()=>e(),{once:!0})}),w=new Promise(e=>{let t=new AbortController;t.signal.addEventListener("abort",()=>e());let a={once:!0,passive:!0,signal:t.signal},i=()=>t.abort();document.addEventListener("mousedown",i,a),document.addEventListener("touchstart",i,a),document.addEventListener("keydown",i,a),document.addEventListener("pointerdown",i,a)}),v={ready:()=>y,firstInteraction:()=>w,visible:e=>new Promise(t=>{let a=new IntersectionObserver(e=>{for(let i of e)if(i.isIntersecting){t(),a.disconnect();return}},{rootMargin:"0px 0px 256px 0px",threshold:.01});for(let t of document.querySelectorAll(e))a.observe(t)})},k=new WeakMap;function x(e){cancelAnimationFrame(k.get(e)||0),k.set(e,requestAnimationFrame(()=>{for(let t of f.keys()){let a=e instanceof Element&&e.matches(t)?e:e.querySelector(t);if(customElements.get(t)||a){let i=a?.getAttribute("data-load-on")||"ready",n=i in v?v[i]:v.ready;for(let e of f.get(t)||[])n(t).then(e);f.delete(t),k.delete(e)}}}))}function A(e,t){for(let[a,i]of("string"==typeof e&&t&&(e={[e]:t}),Object.entries(e)))f.has(a)||f.set(a,new Set),f.get(a).add(i);C(document)}function C(e){i||(i=new MutationObserver(e=>{if(f.size)for(let t of e)for(let e of t.addedNodes)e instanceof Element&&x(e)})),x(e),i.observe(e,{subtree:!0,childList:!0})}let S=Symbol.for("catalyst");class E{constructor(e,t){const a=this,i=e.prototype.connectedCallback;e.prototype.connectedCallback=function(){a.connectedCallback(this,i)};const n=e.prototype.disconnectedCallback;e.prototype.disconnectedCallback=function(){a.disconnectedCallback(this,n)};const l=e.prototype.attributeChangedCallback;e.prototype.attributeChangedCallback=function(e,t,i){a.attributeChangedCallback(this,e,t,i,l)};let r=e.observedAttributes||[];Object.defineProperty(e,"observedAttributes",{configurable:!0,get(){return a.observedAttributes(this,r)},set(e){r=e}}),function(e){let t=e.observedAttributes||[],a=e.attrPrefix??"data-",i=e=>b(`${a}${e}`);Object.defineProperty(e,"observedAttributes",{configurable:!0,get:()=>[...j(e.prototype,h)].map(i).concat(t),set(e){t=e}})}(e),function(e,t){let a=t||p(e.name).replace(/-element$/,"");try{window.customElements.define(a,e),window[e.name]=customElements.get(a)}catch(e){if(!(e instanceof DOMException&&"NotSupportedError"===e.name))throw e}}(e,t)}observedAttributes(e,t){return t}connectedCallback(e,t){var a,i;for(let t of(e.toggleAttribute("data-catalyst",!0),customElements.upgrade(e),e.querySelectorAll("template[data-shadowroot]")))t.parentElement===e&&e.attachShadow({mode:"closed"===t.getAttribute("data-shadowroot")?"closed":"open"}).append(t.content.cloneNode(!0));(g(e),n.add(e),e.shadowRoot&&(o(i=e.shadowRoot),r(i)),o(e),r(e.ownerDocument),t?.call(e),e.shadowRoot)&&(o(a=e.shadowRoot),r(a),C(e.shadowRoot))}disconnectedCallback(e,t){t?.call(e)}attributeChangedCallback(e,t,a,i,n){g(e),"data-catalyst"!==t&&n&&n.call(e,t,a,i)}}function j(e,t){if(!Object.prototype.hasOwnProperty.call(e,S)){let t=e[S],a=e[S]=new Map;if(t)for(let[e,i]of t)a.set(e,new Set(i))}let a=e[S];return a.has(t)||a.set(t,new Set),a.get(t)}function $(e,t){j(e,"target").add(t),Object.defineProperty(e,t,{configurable:!0,get(){return c(this,t)}})}function q(e,t){j(e,"targets").add(t),Object.defineProperty(e,t,{configurable:!0,get(){let e=this.tagName.toLowerCase(),a=[];if(this.shadowRoot)for(let i of this.shadowRoot.querySelectorAll(`[data-targets~="${e}.${t}"]`))i.closest(e)||a.push(i);for(let i of this.querySelectorAll(`[data-targets~="${e}.${t}"]`))i.closest(e)===this&&a.push(i);return a}})}function O(e){if("string"==typeof e)return t=>{new E(t,e)};new E(e)}}},function(e){e(e.s=49783)}]); //# sourceMappingURL=element-registry-559588089abef811-627b4ec8990f406e.js.map import { lazyDefine } from '@github/catalyst'; lazyDefine({ 'animated-image': () => import('../../components/accessibility/animated-image-element.ts'), 'actions-caches-filter': () => import('../../components/actions/actions-caches-filter-element.ts'), 'actions-workflow-filter': () => import('../../components/actions/actions-workflow-filter-element.ts'), 'actions-workflow-list': () => import('../../components/actions/actions-workflow-list-element.ts'), 'variable-value': () => import('../../components/actions/variables/variable-value-element.ts'), 'variables-input': () => import('../../components/actions/variables/variables-input-element.ts'), 'variables-pagination': () => import('../../components/actions/variables/variables-pagination-element.ts'), 'cvss-calculator': () => import('../../components/advisories/cvss-calculator-element.ts'), 'cvss-calculator-metric': () => import('../../components/advisories/cvss-calculator-metric-element.ts'), 'metric-selection': () => import('../../components/advisories/metric-selection-element.ts'), 'severity-calculator': () => import('../../components/advisories/severity-calculator-element.ts'), 'severity-score': () => import('../../components/advisories/severity-score-element.ts'), 'severity-selection': () => import('../../components/advisories/severity-selection-element.ts'), 'severity-selection-next': () => import('../../components/advisories/severity-selection-next-element.ts'), 'severity-tracking': () => import('../../components/advisories/severity-tracking-element.ts'), 'webauthn-status': () => import('../../components/behaviors/webauthn-status-element.ts'), 'downgrade-dialog': () => import('../../components/billing/settings/downgrade-dialog-element.ts'), 'manage-subscription': () => import('../../components/billing/settings/upgrade/manage-subscription-element.ts'), 'pending-cycle-changes-component': () => import('../../components/billing/stafftools/pending-cycle-changes-component-element.ts'), 'create-branch': () => import('../../components/branch/create-branch-element.ts'), 'create-repo-from-selector': () => import('../../components/branch/create-repo-from-selector-element.ts'), 'select-all': () => import('../../components/businesses/people/select-all-element.ts'), 'close-reason-selector': () => import('../../components/closables/buttons/close-reason-selector-element.ts'), 'reopen-reason-selector': () => import('../../components/closables/buttons/reopen-reason-selector-element.ts'), 'code-scanning-alert-filter': () => import('../../components/code_scanning/code-scanning-alert-filter-element.ts'), 'pretty-cron': () => import('../../components/code_scanning/pretty-cron-element.ts'), 'timeout-content': () => import('../../components/code_scanning/timeout-content-element.ts'), 'message-list': () => import('../../components/code_scanning/tool_status/message-list-element.ts'), 'sku-list': () => import('../../components/codespaces/advanced_options/sku-list-element.ts'), 'create-button': () => import('../../components/codespaces/create-button-element.ts'), 'editor-forwarder': () => import('../../components/codespaces/editor-forwarder-element.ts'), 'command-palette-page': () => import('../../components/command_palette/command-palette-page-element.ts'), 'command-palette-page-stack': () => import('../../components/command_palette/command-palette-page-stack-element.ts'), 'feed-post': () => import('../../components/conduit/feed-post-element.ts'), 'copilot-signup-choose-plan-type': () => import('../../components/copilot/copilot-signup-choose-plan-type-element.ts'), 'copilot-business-signup-seat-management': () => import('../../components/copilot/seat_management/copilot-business-signup-seat-management-element.ts'), 'loading-context': () => import('../../components/dashboard/loading-context-element.ts'), 'portal-fragment': () => import('../../components/dashboard/portal-fragment-element.ts'), 'query-search': () => import('../../components/dashboard/query-search-element.ts'), 'dependabot-alert-dismissal': () => import('../../components/dependabot_alerts/dependabot-alert-dismissal-element.ts'), 'dependabot-alert-load-all': () => import('../../components/dependabot_alerts/dependabot-alert-load-all-element.ts'), 'dependabot-alert-row': () => import('../../components/dependabot_alerts/dependabot-alert-row-element.ts'), 'dependabot-alert-table-header': () => import('../../components/dependabot_alerts/dependabot-alert-table-header-element.ts'), 'dependabot-updates-paused': () => import('../../components/dependabot/dependabot-updates-paused-element.ts'), 'deferred-diff-lines': () => import('../../components/diffs/deferred-diff-lines-element.ts'), 'edit-history': () => import('../../components/discussions/edit-history-element.ts'), 'conduit-profile-feed-visibility': () => import('../../components/feed/conduit-profile-feed-visibility-element.ts'), 'readme-toc': () => import('../../components/files/readme-toc-element.ts'), 'delayed-loading': () => import('../../components/github/delayed-loading-element.ts'), 'remote-pagination': () => import('../../components/github/remote-pagination-element.ts'), 'dialog-hydro': () => import('../../components/hydro/dialog-hydro-element.ts'), 'track-view': () => import('../../components/hydro/track-view-element.ts'), 'load-versions': () => import('../../components/marketplace/load-versions-element.ts'), 'math-renderer': () => import('../../components/mathjax/math-renderer-element.ts'), 'memex-project-picker': () => import('../../components/memex/memex-project-picker-element.ts'), 'memex-project-picker-panel': () => import('../../components/memex/memex-project-picker-panel-element.ts'), 'memex-project-picker-interstitial': () => import('../../components/memex/project_list/memex-project-picker-interstitial-element.ts'), 'memex-project-picker-unlink': () => import('../../components/memex/project_list/memex-project-picker-unlink-element.ts'), 'project-buttons-list': () => import('../../components/memex/project_list/project-buttons-list-element.ts'), 'navigation-list': () => import('../../components/navigation/navigation-list-element.ts'), 'notification-shelf-watcher': () => import('../../components/notifications/notification-shelf-watcher-element.ts'), 'feature-request': () => import('../../components/organizations/member_requests/feature-request-element.ts'), 'allowed-values-input': () => import('../../components/organizations/settings/codespaces_policy_form/constraint_row/allowed-values-input-element.ts'), 'host-setup': () => import('../../components/organizations/settings/codespaces_policy_form/constraint_row/host-setup-element.ts'), 'max-value': () => import('../../components/organizations/settings/codespaces_policy_form/constraint_row/max-value-element.ts'), 'codespaces-policy-form': () => import('../../components/organizations/settings/codespaces-policy-form-element.ts'), 'private-registry-form': () => import('../../components/organizations/settings/private-registry-form-element.ts'), 'repository-selection-input': () => import('../../components/packages/repository-selection-input-element.ts'), 'experimental-action-menu': () => import('../../components/primer/action_menu/experimental-action-menu-element.ts'), 'custom-focus-group': () => import('../../components/primer/experimental/select_menu/custom-focus-group-element.ts'), 'select-panel': () => import('../../components/primer/experimental/select-panel-element.ts'), 'internal-nav-list-group': () => import('../../components/primer/experimental/side_panel/nav_list/internal-nav-list-group-element.ts'), 'split-page-layout': () => import('../../components/primer/experimental/split-page-layout-element.ts'), 'toggle-switch': () => import('../../components/primer/experimental/toggle-switch-element.ts'), 'lazy-load-section': () => import('../../components/primer/navigation_list/lazy-load-section-element.ts'), 'profile-timezone': () => import('../../components/profiles/profile-timezone-element.ts'), 'comment-actions': () => import('../../components/pull_requests/comment-actions-element.ts'), 'copilot-marketing-popover': () => import('../../components/pull_requests/copilot-marketing-popover-element.ts'), 'file-filter': () => import('../../components/pull_requests/file_tree/file-filter-element.ts'), 'file-tree': () => import('../../components/pull_requests/file_tree/file-tree-element.ts'), 'file-tree-toggle': () => import('../../components/pull_requests/file_tree/file-tree-toggle-element.ts'), 'reactions-menu': () => import('../../components/reactions/reactions-menu-element.ts'), 'pin-organization-repo': () => import('../../components/repositories/pin-organization-repo-element.ts'), 'custom-scopes': () => import('../../components/search/custom-scopes-element.ts'), 'feature-preview-auto-enroll': () => import('../../components/search/feature-preview-auto-enroll-element.ts'), 'qbsearch-input': () => import('../../components/search/qbsearch-input-element.ts'), 'alert-dismissal': () => import('../../components/secret_scanning/alert_centric_view/alert-dismissal-element.ts'), 'preview-announcement-button': () => import('../../components/settings/messages/preview-announcement-button-element.ts'), 'recovery-codes': () => import('../../components/settings/recovery-codes-element.ts'), 'project-picker': () => import('../../components/sidebar/project-picker-element.ts'), 'launch-code': () => import('../../components/signups/launch-code-element.ts'), 'deferred-side-panel': () => import('../../components/site/header/deferred-side-panel-element.ts'), 'notification-indicator': () => import('../../components/site/header/notification-indicator-element.ts'), 'user-drawer-side-panel': () => import('../../components/site/header/user-drawer-side-panel-element.ts'), 'slash-command-toolbar-button': () => import('../../components/slash_commands/slash-command-toolbar-button-element.ts'), 'featured-work': () => import('../../components/sponsors/dashboard/featured-work-element.ts'), 'sponsors-account-switcher': () => import('../../components/sponsors/sponsors-account-switcher-element.ts'), 'adjacent-text-nodes-menu': () => import('../../components/stafftools/adjacent_text_nodes/adjacent-text-nodes-menu-element.ts'), 'variant-menu-item': () => import('../../components/stafftools/azure_exp/variant-menu-item-element.ts'), 'metered-billing-settings-component': () => import('../../components/stafftools/billing/businesses/metered-billing-settings-component-element.ts'), 'billing-transaction-component': () => import('../../components/stafftools/billing/history/billing-transaction-component-element.ts'), 'invoice-download': () => import('../../components/stafftools/billing/history/invoice-download-element.ts'), 'payment-history': () => import('../../components/stafftools/billing/history/payment-history-element.ts'), 'sponsorships-tabs': () => import('../../components/stafftools/billing/sponsorships-tabs-element.ts'), 'bundle-size-stats': () => import('../../components/stafftools/bundle-size-stats/bundle-size-stats-element.ts'), 'datahpc-staffbar': () => import('../../components/stafftools/data_hpc/datahpc-staffbar-element.ts'), 'react-profiling-toggle': () => import('../../components/stafftools/react/react-profiling-toggle-element.ts'), 'react-query-devtools': () => import('../../components/stafftools/react/react-query-devtools-element.ts'), 'react-staffbar': () => import('../../components/stafftools/react/react-staffbar-element.ts'), 'relay-cache-staffbar': () => import('../../components/stafftools/relay_cache/relay-cache-staffbar-element.ts'), 'soft-nav-staffbar': () => import('../../components/stafftools/soft_nav/soft-nav-staffbar-element.ts'), 'soft-nav-staffbar-preview': () => import('../../components/stafftools/soft_nav/soft-nav-staffbar-preview-element.ts'), 'stafftools-invoiced-sponsorship-payment-options': () => import('../../components/stafftools/sponsors/invoiced/stafftools-invoiced-sponsorship-payment-options-element.ts'), 'suggestions-collapsible': () => import('../../components/suggestions/suggestions-collapsible-element.ts'), 'themed-picture': () => import('../../components/themed_pictures/themed-picture-element.ts'), 'two-factor-fallback-sms-config-toggle': () => import('../../components/users/settings/two-factor-fallback-sms-config-toggle-element.ts'), 'two-factor-inline-expander': () => import('../../components/users/settings/two-factor-inline-expander-element.ts'), 'actions-announceable-search-result-summary': () => import('../../../packages/actions-announceable-search-result-summary-element/element-entry.ts'), 'announce-live': () => import('../../../packages/announce-live-element/element-entry.ts'), 'avatar-reset': () => import('../../../packages/avatar-reset-element/element-entry.ts'), 'billing-checkout': () => import('../../../packages/billing-checkout-element/element-entry.ts'), 'billing-country-and-region-selection': () => import('../../../packages/billing-country-and-region-selection-element/element-entry.ts'), 'business-shipping-information': () => import('../../../packages/business-shipping-information-element/element-entry.ts'), 'business-trial-accounts-form': () => import('../../../packages/business-trial-accounts-form-element/element-entry.ts'), 'business-use-billing-information-for-shipping': () => import('../../../packages/business-use-billing-information-for-shipping-element/element-entry.ts'), 'bypass-reason-selector': () => import('../../../packages/bypass-reason-selector-element/element-entry.ts'), 'change-password': () => import('../../../packages/change-password-element/element-entry.ts'), 'codespace-share-dialog': () => import('../../../packages/codespace-share-dialog-element/element-entry.ts'), 'codespaces-user-settings': () => import('../../../packages/codespaces-user-settings-element/element-entry.ts'), 'cohort-widget': () => import('../../../packages/cohort-widget-element/element-entry.ts'), 'context-region': () => import('../../../packages/context-region-element/element-entry.ts'), 'cookie-consent-link': () => import('../../../packages/cookie-consent-link-element/element-entry.ts'), 'copilot-business-settings': () => import('../../../packages/copilot-business-settings-element/element-entry.ts'), 'copilot-business-settings-toggle': () => import('../../../packages/copilot-business-settings-toggle-element/element-entry.ts'), 'copilot-comment-mention-telemetry': () => import('../../../packages/copilot-comment-mention-telemetry-element/element-entry.ts'), 'copilot-dashboard-entrypoint': () => import('../../../packages/copilot-dashboard-entrypoint-element/element-entry.ts'), 'copilot-dashboard-no-quota': () => import('../../../packages/copilot-dashboard-no-quota-element/element-entry.ts'), 'copilot-mentions-hint': () => import('../../../packages/copilot-mentions-hint-element/element-entry.ts'), 'copilot-mixed-license-orgs-list': () => import('../../../packages/copilot-mixed-license-orgs-list-element/element-entry.ts'), 'copilot-plan-account-select': () => import('../../../packages/copilot-plan-account-select-element/element-entry.ts'), 'copilot-plan-select-dialog': () => import('../../../packages/copilot-plan-select-dialog-element/element-entry.ts'), 'copilot-purchase-intent-form': () => import('../../../packages/copilot-purchase-intent-form-element/element-entry.ts'), 'copilot-user-settings': () => import('../../../packages/copilot-user-settings-element/element-entry.ts'), 'copy-project': () => import('../../../packages/copy-project-element/element-entry.ts'), 'dashboard-tab-panels': () => import('../../../packages/dashboard-tab-panels-element/element-entry.ts'), 'dependabot-runner-settings': () => import('../../../packages/dependabot-runner-settings-element/element-entry.ts'), 'dependabot-settings-toggle': () => import('../../../packages/dependabot-settings-toggle-element/element-entry.ts'), 'deploy-key-policy-warning': () => import('../../../packages/deploy-key-policy-warning-element/element-entry.ts'), 'discussion-spotlight-container': () => import('../../../packages/discussion-spotlight-container-element/element-entry.ts'), 'document-dropzone': () => import('../../../packages/document-dropzone-element/element-entry.ts'), 'edit-hook-secret': () => import('../../../packages/edit-hook-secret-element/element-entry.ts'), 'education-overview-component': () => import('../../../packages/education-overview-component-element/element-entry.ts'), 'emu-contribution-blocked-hint': () => import('../../../packages/emu-contribution-blocked-hint-element/element-entry.ts'), 'expandable-role-row': () => import('../../../packages/expandable-role-row-element/element-entry.ts'), 'experimental-action-list': () => import('../../../packages/experimental-action-list-element/element-entry.ts'), 'fgp-search': () => import('../../../packages/fgp-search-element/element-entry.ts'), 'flywheel-return-to-tour': () => import('../../../packages/flywheel-return-to-tour-element/element-entry.ts'), 'fullstory-capture': () => import('../../../packages/fullstory-capture-element/element-entry.ts'), 'ghcc-consent': () => import('../../../packages/ghcc-consent-element/element-entry.ts'), 'inline-security-checkup-notice': () => import('../../../packages/inline-security-checkup-notice-element/element-entry.ts'), 'input-page-refresh': () => import('../../../packages/input-page-refresh-element/element-entry.ts'), 'integration-agent-form': () => import('../../../packages/integration-agent-form-element/element-entry.ts'), 'issue-create': () => import('../../../packages/issue-create-element/element-entry.ts'), 'jump-to': () => import('../../../packages/jump-to-element/element-entry.ts'), 'licensing-apply-coupon-code': () => import('../../../packages/licensing-apply-coupon-code-element/element-entry.ts'), 'linked-sku-select': () => import('../../../packages/linked-sku-select-element/element-entry.ts'), 'markdown-accessiblity-table': () => import('../../../packages/markdown-accessiblity-table-element/element-entry.ts'), 'marketplace-security-compliance-trader-self-certification': () => import('../../../packages/marketplace-security-compliance-trader-self-certification-element/element-entry.ts'), 'microsoft-analytics': () => import('../../../packages/microsoft-analytics-element/element-entry.ts'), 'microsoft-analytics-event': () => import('../../../packages/microsoft-analytics-event-element/element-entry.ts'), 'query-builder': () => import('../../../packages/query-builder-element/element-entry.ts'), 'react-partial-anchor': () => import('../../../packages/react-partial-anchor-element/element-entry.ts'), 'security-analysis-dependabot-updates': () => import('../../../packages/security-analysis-dependabot-updates-element/element-entry.ts'), 'security-analysis-ghas': () => import('../../../packages/security-analysis-ghas-element/element-entry.ts'), 'share-button-form-submit-handler': () => import('../../../packages/share-button-form-submit-handler-element/element-entry.ts'), 'show-dialog-on-load': () => import('../../../packages/show-dialog-on-load-element/element-entry.ts'), 'sidebar-pinned-topics': () => import('../../../packages/sidebar-pinned-topics-element/element-entry.ts'), 'signup-form': () => import('../../../packages/signup-form-element/element-entry.ts'), 'signups-marketing-consent-fields': () => import('../../../packages/signups-marketing-consent-fields-element/element-entry.ts'), 'site-header-logged-in-user-menu': () => import('../../../packages/site-header-logged-in-user-menu-element/element-entry.ts'), 'stafftools-topics-table': () => import('../../../packages/stafftools-topics-table-element/element-entry.ts'), 'task-component': () => import('../../../packages/task-component-element/element-entry.ts'), 'team-sync-okta-config-form': () => import('../../../packages/team-sync-okta-config-form-element/element-entry.ts'), 'unveil-container': () => import('../../../packages/unveil-container-element/element-entry.ts'), 'updatable-content': () => import('../../../packages/updatable-content-element/element-entry.ts'), 'visible-password': () => import('../../../packages/visible-password-element/element-entry.ts'), 'webauthn-get': () => import('../../../packages/webauthn-get-element/element-entry.ts'), 'webauthn-subtle': () => import('../../../packages/webauthn-subtle-element/element-entry.ts'), 'react-partial[partial-name="delete-configuration-dialog"]': () => import(/* webpackChunkName: "lazy-react-partial-delete-configuration-dialog" */'./react-partials/delete-configuration-dialog/index.ts'), 'react-partial[partial-name="single-sign-on-dropdown-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-single-sign-on-dropdown-partial" */'./react-partials/single-sign-on-dropdown-partial/index.ts'), 'react-partial[partial-name="actions-custom-images-policy"]': () => import(/* webpackChunkName: "lazy-react-partial-actions-custom-images-policy" */'../../../packages/actions-custom-images-policy/entry.ts'), 'react-partial[partial-name="actions-custom-images-retention-policy"]': () => import(/* webpackChunkName: "lazy-react-partial-actions-custom-images-retention-policy" */'../../../packages/actions-custom-images-retention-policy/entry.ts'), 'react-partial[partial-name="actions-repos-picker"]': () => import(/* webpackChunkName: "lazy-react-partial-actions-repos-picker" */'../../../packages/actions-repos-picker/entry.ts'), 'react-partial[partial-name="actions-run-jobs-list"]': () => import(/* webpackChunkName: "lazy-react-partial-actions-run-jobs-list" */'../../../packages/actions-run-jobs-list/entry.ts'), 'react-partial[partial-name="actions-secrets-variables-list"]': () => import(/* webpackChunkName: "lazy-react-partial-actions-secrets-variables-list" */'../../../packages/actions-secrets-variables-list/entry.ts'), 'react-partial[partial-name="actions-survey"]': () => import(/* webpackChunkName: "lazy-react-partial-actions-survey" */'../../../packages/actions-survey/entry.ts'), 'react-partial[partial-name="appearance-settings-page"]': () => import(/* webpackChunkName: "lazy-react-partial-appearance-settings-page" */'../../../packages/appearance-settings-page/entry.ts'), 'react-partial[partial-name="appearance-settings"]': () => import(/* webpackChunkName: "lazy-react-partial-appearance-settings" */'../../../packages/appearance-settings/entry.ts'), 'react-partial[partial-name="automated-review-comment-actions"]': () => import(/* webpackChunkName: "lazy-react-partial-automated-review-comment-actions" */'../../../packages/automated-review-comment-actions/entry.ts'), 'react-partial[partial-name="automated-review-comment"]': () => import(/* webpackChunkName: "lazy-react-partial-automated-review-comment" */'../../../packages/automated-review-comment/entry.ts'), 'react-partial[partial-name="browser-geo-location"]': () => import(/* webpackChunkName: "lazy-react-partial-browser-geo-location" */'../../../packages/browser-geo-location/entry.ts'), 'react-partial[partial-name="code-scanning-alert-show-header"]': () => import(/* webpackChunkName: "lazy-react-partial-code-scanning-alert-show-header" */'../../../packages/code-scanning-alert-show-header/entry.ts'), 'react-partial[partial-name="code-scanning-alert-sidebar"]': () => import(/* webpackChunkName: "lazy-react-partial-code-scanning-alert-sidebar" */'../../../packages/code-scanning-alert-sidebar/entry.ts'), 'react-partial[partial-name="code-scanning-assignees-section"]': () => import(/* webpackChunkName: "lazy-react-partial-code-scanning-assignees-section" */'../../../packages/code-scanning-assignees-section/entry.ts'), 'react-partial[partial-name="code-scanning-development-section"]': () => import(/* webpackChunkName: "lazy-react-partial-code-scanning-development-section" */'../../../packages/code-scanning-development-section/entry.ts'), 'react-partial[partial-name="code-scanning-tracking-section"]': () => import(/* webpackChunkName: "lazy-react-partial-code-scanning-tracking-section" */'../../../packages/code-scanning-tracking-section/entry.ts'), 'react-partial[partial-name="codespaces-business-enablement"]': () => import(/* webpackChunkName: "lazy-react-partial-codespaces-business-enablement" */'../../../packages/codespaces-business-enablement/entry.ts'), 'react-partial[partial-name="codespaces-organization-ownership-setting"]': () => import(/* webpackChunkName: "lazy-react-partial-codespaces-organization-ownership-setting" */'../../../packages/codespaces-organization-ownership-setting/entry.ts'), 'react-partial[partial-name="codespaces-policy-name-input"]': () => import(/* webpackChunkName: "lazy-react-partial-codespaces-policy-name-input" */'../../../packages/codespaces-policy-name-input/entry.ts'), 'react-partial[partial-name="codespaces-survey"]': () => import(/* webpackChunkName: "lazy-react-partial-codespaces-survey" */'../../../packages/codespaces-survey/entry.ts'), 'react-partial[partial-name="consent-experience"]': () => import(/* webpackChunkName: "lazy-react-partial-consent-experience" */'../../../packages/consent-experience/entry.ts'), 'react-partial[partial-name="copilot-actions-chat-button"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-actions-chat-button" */'../../../packages/copilot-actions-chat-button/entry.ts'), 'react-partial[partial-name="copilot-activation-progress-bar"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-activation-progress-bar" */'../../../packages/copilot-activation-progress-bar/entry.ts'), 'react-partial[partial-name="copilot-apply-changes-button"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-apply-changes-button" */'../../../packages/copilot-apply-changes-button/entry.ts'), 'react-partial[partial-name="copilot-assisted-review-upsell"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-assisted-review-upsell" */'../../../packages/copilot-assisted-review-upsell/entry.ts'), 'react-partial[partial-name="copilot-byok-enterprise-settings"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-byok-enterprise-settings" */'../../../packages/copilot-byok-enterprise-settings/entry.ts'), 'react-partial[partial-name="copilot-chat-input-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-chat-input-partial" */'../../../packages/copilot-chat-input-partial/entry.ts'), 'react-partial[partial-name="copilot-chat"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-chat" */'../../../packages/copilot-chat/entry.ts'), 'react-partial[partial-name="copilot-code-chat"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-code-chat" */'../../../packages/copilot-code-chat/entry.ts'), 'react-partial[partial-name="copilot-code-review-feedback"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-code-review-feedback" */'../../../packages/copilot-code-review-feedback/entry.ts'), 'react-partial[partial-name="copilot-code-review-upsell"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-code-review-upsell" */'../../../packages/copilot-code-review-upsell/entry.ts'), 'react-partial[partial-name="copilot-content-exclusion"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-content-exclusion" */'../../../packages/copilot-content-exclusion/entry.ts'), 'react-partial[partial-name="copilot-generate-pull-title"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-generate-pull-title" */'../../../packages/copilot-generate-pull-title/entry.ts'), 'react-partial[partial-name="copilot-immersive-embedded"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-immersive-embedded" */'../../../packages/copilot-immersive-embedded/entry.ts'), 'react-partial[partial-name="copilot-markdown-toolbar-button"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-markdown-toolbar-button" */'../../../packages/copilot-markdown-toolbar-button/entry.ts'), 'react-partial[partial-name="copilot-model-settings"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-model-settings" */'../../../packages/copilot-model-settings/entry.ts'), 'react-partial[partial-name="copilot-progress-indicator"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-progress-indicator" */'../../../packages/copilot-progress-indicator/entry.ts'), 'react-partial[partial-name="copilot-quota-usage"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-quota-usage" */'../../../packages/copilot-quota-usage/entry.ts'), 'react-partial[partial-name="copilot-summary-banner"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-summary-banner" */'../../../packages/copilot-summary-banner/entry.ts'), 'react-partial[partial-name="copilot-survey"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-survey" */'../../../packages/copilot-survey/entry.ts'), 'react-partial[partial-name="copilot-swe-agent-repos-picker"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-swe-agent-repos-picker" */'../../../packages/copilot-swe-agent-repos-picker/entry.ts'), 'react-partial[partial-name="copilot-swe-agent-third-party-agent-picker"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-swe-agent-third-party-agent-picker" */'../../../packages/copilot-swe-agent-third-party-agent-picker/entry.ts'), 'react-partial[partial-name="copilot-user-checklist"]': () => import(/* webpackChunkName: "lazy-react-partial-copilot-user-checklist" */'../../../packages/copilot-user-checklist/entry.ts'), 'react-partial[partial-name="create-branch-button"]': () => import(/* webpackChunkName: "lazy-react-partial-create-branch-button" */'../../../packages/create-branch-button/entry.ts'), 'react-partial[partial-name="create-branch-dialog"]': () => import(/* webpackChunkName: "lazy-react-partial-create-branch-dialog" */'../../../packages/create-branch-dialog/entry.ts'), 'react-partial[partial-name="custom-copilot-code-review-comment"]': () => import(/* webpackChunkName: "lazy-react-partial-custom-copilot-code-review-comment" */'../../../packages/custom-copilot-code-review-comment/entry.ts'), 'react-partial[partial-name="custom-signup-content-manager"]': () => import(/* webpackChunkName: "lazy-react-partial-custom-signup-content-manager" */'../../../packages/custom-signup-content-manager/entry.ts'), 'react-partial[partial-name="custom-signup-content"]': () => import(/* webpackChunkName: "lazy-react-partial-custom-signup-content" */'../../../packages/custom-signup-content/entry.ts'), 'react-partial[partial-name="dashboard-lists"]': () => import(/* webpackChunkName: "lazy-react-partial-dashboard-lists" */'../../../packages/dashboard-lists/entry.ts'), 'react-partial[partial-name="dashboard-repositories"]': () => import(/* webpackChunkName: "lazy-react-partial-dashboard-repositories" */'../../../packages/dashboard-repositories/entry.ts'), 'react-partial[partial-name="date-picker-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-date-picker-partial" */'../../../packages/date-picker-partial/entry.ts'), 'react-partial[partial-name="date-time-settings"]': () => import(/* webpackChunkName: "lazy-react-partial-date-time-settings" */'../../../packages/date-time-settings/entry.ts'), 'react-partial[partial-name="demo-repo-tour"]': () => import(/* webpackChunkName: "lazy-react-partial-demo-repo-tour" */'../../../packages/demo-repo-tour/entry.ts'), 'react-partial[partial-name="dependabot-alert-assignees-section"]': () => import(/* webpackChunkName: "lazy-react-partial-dependabot-alert-assignees-section" */'../../../packages/dependabot-alert-assignees-section/entry.ts'), 'react-partial[partial-name="dependabot-alert-show-header"]': () => import(/* webpackChunkName: "lazy-react-partial-dependabot-alert-show-header" */'../../../packages/dependabot-alert-show-header/entry.ts'), 'react-partial[partial-name="dependabot-repository-access-org-settings"]': () => import(/* webpackChunkName: "lazy-react-partial-dependabot-repository-access-org-settings" */'../../../packages/dependabot-repository-access-org-settings/entry.ts'), 'react-partial[partial-name="education-schools-auto-complete"]': () => import(/* webpackChunkName: "lazy-react-partial-education-schools-auto-complete" */'../../../packages/education-schools-auto-complete/entry.ts'), 'react-partial[partial-name="email-subscription-form"]': () => import(/* webpackChunkName: "lazy-react-partial-email-subscription-form" */'../../../packages/email-subscription-form/entry.ts'), 'react-partial[partial-name="enterprise-team"]': () => import(/* webpackChunkName: "lazy-react-partial-enterprise-team" */'../../../packages/enterprise-team/entry.ts'), 'react-partial[partial-name="enterprise-teams-table-view"]': () => import(/* webpackChunkName: "lazy-react-partial-enterprise-teams-table-view" */'../../../packages/enterprise-teams-table-view/entry.ts'), 'react-partial[partial-name="external-group-team-mismatch-widget"]': () => import(/* webpackChunkName: "lazy-react-partial-external-group-team-mismatch-widget" */'../../../packages/external-group-team-mismatch-widget/entry.ts'), 'react-partial[partial-name="fix-workflow-button"]': () => import(/* webpackChunkName: "lazy-react-partial-fix-workflow-button" */'../../../packages/fix-workflow-button/entry.ts'), 'react-partial[partial-name="getting-started-todo-list"]': () => import(/* webpackChunkName: "lazy-react-partial-getting-started-todo-list" */'../../../packages/getting-started-todo-list/entry.ts'), 'react-partial[partial-name="global-agents-menu"]': () => import(/* webpackChunkName: "lazy-react-partial-global-agents-menu" */'../../../packages/global-agents-menu/entry.ts'), 'react-partial[partial-name="global-copilot-menu"]': () => import(/* webpackChunkName: "lazy-react-partial-global-copilot-menu" */'../../../packages/global-copilot-menu/entry.ts'), 'react-partial[partial-name="global-create-menu"]': () => import(/* webpackChunkName: "lazy-react-partial-global-create-menu" */'../../../packages/global-create-menu/entry.ts'), 'react-partial[partial-name="global-nav-bar"]': () => import(/* webpackChunkName: "lazy-react-partial-global-nav-bar" */'../../../packages/global-nav-bar/entry.ts'), 'react-partial[partial-name="global-nav-menu"]': () => import(/* webpackChunkName: "lazy-react-partial-global-nav-menu" */'../../../packages/global-nav-menu/entry.ts'), 'react-partial[partial-name="global-sso-banner"]': () => import(/* webpackChunkName: "lazy-react-partial-global-sso-banner" */'../../../packages/global-sso-banner/entry.ts'), 'react-partial[partial-name="global-user-nav-drawer"]': () => import(/* webpackChunkName: "lazy-react-partial-global-user-nav-drawer" */'../../../packages/global-user-nav-drawer/entry.ts'), 'react-partial[partial-name="growth-banner-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-growth-banner-partial" */'../../../packages/growth-banner-partial/entry.ts'), 'react-partial[partial-name="insights-sidenav-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-insights-sidenav-partial" */'../../../packages/insights-sidenav-partial/entry.ts'), 'react-partial[partial-name="integration-permission-selector"]': () => import(/* webpackChunkName: "lazy-react-partial-integration-permission-selector" */'../../../packages/integration-permission-selector/entry.ts'), 'react-partial[partial-name="internal-api-insights"]': () => import(/* webpackChunkName: "lazy-react-partial-internal-api-insights" */'../../../packages/internal-api-insights/entry.ts'), 'react-partial[partial-name="keyboard-shortcuts-dialog"]': () => import(/* webpackChunkName: "lazy-react-partial-keyboard-shortcuts-dialog" */'../../../packages/keyboard-shortcuts-dialog/entry.ts'), 'react-partial[partial-name="launch-code"]': () => import(/* webpackChunkName: "lazy-react-partial-launch-code" */'../../../packages/launch-code/entry.ts'), 'react-partial[partial-name="licensify-licenses"]': () => import(/* webpackChunkName: "lazy-react-partial-licensify-licenses" */'../../../packages/licensify-licenses/entry.ts'), 'react-partial[partial-name="licensing-advanced-security-overview"]': () => import(/* webpackChunkName: "lazy-react-partial-licensing-advanced-security-overview" */'../../../packages/licensing-advanced-security-overview/entry.ts'), 'react-partial[partial-name="licensing-copilot-details"]': () => import(/* webpackChunkName: "lazy-react-partial-licensing-copilot-details" */'../../../packages/licensing-copilot-details/entry.ts'), 'react-partial[partial-name="licensing-copilot-overview"]': () => import(/* webpackChunkName: "lazy-react-partial-licensing-copilot-overview" */'../../../packages/licensing-copilot-overview/entry.ts'), 'react-partial[partial-name="licensing-enterprise-cloud-details"]': () => import(/* webpackChunkName: "lazy-react-partial-licensing-enterprise-cloud-details" */'../../../packages/licensing-enterprise-cloud-details/entry.ts'), 'react-partial[partial-name="licensing-enterprise-overview"]': () => import(/* webpackChunkName: "lazy-react-partial-licensing-enterprise-overview" */'../../../packages/licensing-enterprise-overview/entry.ts'), 'react-partial[partial-name="licensing-enterprise-server-overview"]': () => import(/* webpackChunkName: "lazy-react-partial-licensing-enterprise-server-overview" */'../../../packages/licensing-enterprise-server-overview/entry.ts'), 'react-partial[partial-name="marketing-navigation"]': () => import(/* webpackChunkName: "lazy-react-partial-marketing-navigation" */'../../../packages/marketing-navigation/entry.ts'), 'react-partial[partial-name="mergebox-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-mergebox-partial" */'../../../packages/mergebox-partial/entry.ts'), 'react-partial[partial-name="metadata-suggestion-staffbar-component"]': () => import(/* webpackChunkName: "lazy-react-partial-metadata-suggestion-staffbar-component" */'../../../packages/metadata-suggestion-staffbar-component/entry.ts'), 'react-partial[partial-name="metered-enterprise-server-licenses"]': () => import(/* webpackChunkName: "lazy-react-partial-metered-enterprise-server-licenses" */'../../../packages/metered-enterprise-server-licenses/entry.ts'), 'react-partial[partial-name="navigation-test-nav"]': () => import(/* webpackChunkName: "lazy-react-partial-navigation-test-nav" */'../../../packages/navigation-test-nav/entry.ts'), 'react-partial[partial-name="network-configurations-select-panel"]': () => import(/* webpackChunkName: "lazy-react-partial-network-configurations-select-panel" */'../../../packages/network-configurations-select-panel/entry.ts'), 'react-partial[partial-name="new-agent-task-button"]': () => import(/* webpackChunkName: "lazy-react-partial-new-agent-task-button" */'../../../packages/new-agent-task-button/entry.ts'), 'react-partial[partial-name="new-agent-task-form"]': () => import(/* webpackChunkName: "lazy-react-partial-new-agent-task-form" */'../../../packages/new-agent-task-form/entry.ts'), 'react-partial[partial-name="notifications-subscriptions-menu"]': () => import(/* webpackChunkName: "lazy-react-partial-notifications-subscriptions-menu" */'../../../packages/notifications-subscriptions-menu/entry.ts'), 'react-partial[partial-name="nux-dashboard-refresh"]': () => import(/* webpackChunkName: "lazy-react-partial-nux-dashboard-refresh" */'../../../packages/nux-dashboard-refresh/entry.ts'), 'react-partial[partial-name="product-announcement"]': () => import(/* webpackChunkName: "lazy-react-partial-product-announcement" */'../../../packages/product-announcement/entry.ts'), 'react-partial[partial-name="pull-requests-processing-indicator"]': () => import(/* webpackChunkName: "lazy-react-partial-pull-requests-processing-indicator" */'../../../packages/pull-requests-processing-indicator/entry.ts'), 'react-partial[partial-name="react-partial-anchor-example"]': () => import(/* webpackChunkName: "lazy-react-partial-react-partial-anchor-example" */'../../../packages/react-partial-anchor-example/entry.ts'), 'react-partial[partial-name="react-partial-example"]': () => import(/* webpackChunkName: "lazy-react-partial-react-partial-example" */'../../../packages/react-partial-example/entry.ts'), 'react-partial[partial-name="react-sandbox-sidenav"]': () => import(/* webpackChunkName: "lazy-react-partial-react-sandbox-sidenav" */'../../../packages/react-sandbox-sidenav/entry.ts'), 'react-partial[partial-name="ref-selector-partial"]': () => import(/* webpackChunkName: "lazy-react-partial-ref-selector-partial" */'../../../packages/ref-selector-partial/entry.ts'), 'react-partial[partial-name="repos-overview"]': () => import(/* webpackChunkName: "lazy-react-partial-repos-overview" */'../../../packages/repos-overview/entry.ts'), 'react-partial[partial-name="repository-runners"]': () => import(/* webpackChunkName: "lazy-react-partial-repository-runners" */'../../../packages/repository-runners/entry.ts'), 'react-partial[partial-name="search-results"]': () => import(/* webpackChunkName: "lazy-react-partial-search-results" */'../../../packages/search-results/entry.ts'), 'react-partial[partial-name="secret-scanning-bypass-reviewers-dialog"]': () => import(/* webpackChunkName: "lazy-react-partial-secret-scanning-bypass-reviewers-dialog" */'../../../packages/secret-scanning-bypass-reviewers-dialog/entry.ts'), 'react-partial[partial-name="security-center-pagination"]': () => import(/* webpackChunkName: "lazy-react-partial-security-center-pagination" */'../../../packages/security-center-pagination/entry.ts'), 'react-partial[partial-name="security-overview-export-button"]': () => import(/* webpackChunkName: "lazy-react-partial-security-overview-export-button" */'../../../packages/security-overview-export-button/entry.ts'), 'react-partial[partial-name="sessions-auth-header"]': () => import(/* webpackChunkName: "lazy-react-partial-sessions-auth-header" */'../../../packages/sessions-auth-header/entry.ts'), 'react-partial[partial-name="shared-dismissal"]': () => import(/* webpackChunkName: "lazy-react-partial-shared-dismissal" */'../../../packages/shared-dismissal/entry.ts'), 'react-partial[partial-name="sponsor-org-dependencies"]': () => import(/* webpackChunkName: "lazy-react-partial-sponsor-org-dependencies" */'../../../packages/sponsor-org-dependencies/entry.ts'), 'react-partial[partial-name="sponsors-dashboard-your-sponsors"]': () => import(/* webpackChunkName: "lazy-react-partial-sponsors-dashboard-your-sponsors" */'../../../packages/sponsors-dashboard-your-sponsors/entry.ts'), 'react-partial[partial-name="sponsors-explore-filter"]': () => import(/* webpackChunkName: "lazy-react-partial-sponsors-explore-filter" */'../../../packages/sponsors-explore-filter/entry.ts'), 'react-partial[partial-name="sponsors-meet-the-team-list"]': () => import(/* webpackChunkName: "lazy-react-partial-sponsors-meet-the-team-list" */'../../../packages/sponsors-meet-the-team-list/entry.ts'), 'react-partial[partial-name="sponsors-newsletters"]': () => import(/* webpackChunkName: "lazy-react-partial-sponsors-newsletters" */'../../../packages/sponsors-newsletters/entry.ts'), 'react-partial[partial-name="sponsors-signup"]': () => import(/* webpackChunkName: "lazy-react-partial-sponsors-signup" */'../../../packages/sponsors-signup/entry.ts'), 'react-partial[partial-name="sso-orgs-settings-list"]': () => import(/* webpackChunkName: "lazy-react-partial-sso-orgs-settings-list" */'../../../packages/sso-orgs-settings-list/entry.ts'), 'react-partial[partial-name="teams-settings-page"]': () => import(/* webpackChunkName: "lazy-react-partial-teams-settings-page" */'../../../packages/teams-settings-page/entry.ts'), 'react-partial[partial-name="trade-screening-status-banner"]': () => import(/* webpackChunkName: "lazy-react-partial-trade-screening-status-banner" */'../../../packages/trade-screening-status-banner/entry.ts'), 'react-partial[partial-name="user-status-dialog"]': () => import(/* webpackChunkName: "lazy-react-partial-user-status-dialog" */'../../../packages/user-status-dialog/entry.ts'), 'react-partial[partial-name="webcam-upload"]': () => import(/* webpackChunkName: "lazy-react-partial-webcam-upload" */'../../../packages/webcam-upload/entry.ts'), 'react-partial[partial-name="your-sponsorships"]': () => import(/* webpackChunkName: "lazy-react-partial-your-sponsorships" */'../../../packages/your-sponsorships/entry.ts'), 'profile-pins': ()=>import('./github/profile/profile-pins-element'), 'emoji-picker': ()=>import('./github/emoji-picker-element'), 'insights-query': ()=>import('./github/insights/insights-query'), 'remote-clipboard-copy': ()=>import('./github/behaviors/remote-clipboard-copy'), 'series-table': ()=>import('./github/insights/series-table'), 'line-chart': ()=>import('./github/insights/line-chart'), 'bar-chart': ()=>import('./github/insights/bar-chart'), 'column-chart': ()=>import('./github/insights/column-chart'), 'stacked-area-chart': ()=>import('./github/insights/stacked-area-chart'), 'hero-stat': ()=>import('./github/insights/hero-stat'), 'pulse-authors-graph': ()=>import('./github/graphs/pulse-authors-graph-element'), 'community-contributions-graph': ()=>import('./github/graphs/community-contributions'), 'discussion-page-views-graph': ()=>import('./github/graphs/discussion-page-views'), 'discussions-daily-contributors': ()=>import('./github/graphs/discussions-daily-contributors'), 'discussions-new-contributors': ()=>import('./github/graphs/discussions-new-contributors'), 'contributors-graph': ()=>import('./github/graphs/contributors-graph-element'), 'marketplace-insights-graph': ()=>import('./github/graphs/marketplace-insights-graph-element'), 'user-sessions-map': ()=>import('./github/settings/user-sessions-map-element'), 'reload-after-polling': ()=>import('./github/behaviors/reload-after-polling-element'), 'package-dependencies-security-graph': ()=>import('./github/graphs/package-dependencies-security-graph-element'), '.js-sub-dependencies': ()=>import('./github/dependencies'), 'network-graph': ()=>import('./github/graphs/network-graph-element'), 'inline-machine-translation': ()=>import('./github/localization/inline-machine-translation-element'), 'custom-patterns-filter': ()=>import('./github/secret-scanning/custom-patterns-filter') }); import {compose, fromEvent} from '@github-ui/subscription' import {compare} from '@github-ui/fuzzy-filter' import {fetchSafeDocumentFragment} from '@github-ui/fetch-utils' import {filterSort} from '@github-ui/filter-sort' import memoize from '@github/memoize' import {observe} from '@github/selector-observer' function getValue(el: Element): string | undefined | null { if (el.hasAttribute('data-use-colon-emoji')) { return el.getAttribute('data-value') } const emojiEl = el.firstElementChild if (emojiEl && 'G-EMOJI' === emojiEl.tagName && !emojiEl.firstElementChild) { return emojiEl.textContent } else { return el.getAttribute('data-value') } } function search(items: Element[], searchQuery: string): Element[] { const query = ` ${searchQuery.toLowerCase().replace(/_/g, ' ')}` const key = (item: Element) => { const text = item.getAttribute('data-emoji-name')! const score = emojiScore(emojiText(item), query) return score > 0 ? {score, text} : null } return filterSort(items, key, compare) } function emojiText(item: Element): string { const aliases = item.getAttribute('data-text')!.trim().toLowerCase().replace(/_/g, ' ') return ` ${aliases}` } function emojiScore(aliases: string, query: string): number { const score = aliases.indexOf(query) return score > -1 ? 1000 - score : 0 } observe('text-expander[data-emoji-url]', { subscribe: el => compose( fromEvent(el, 'text-expander-change', onchange), fromEvent(el, 'text-expander-value', onvalue), fromEvent(el, 'text-expander-activate', onactivate), ), }) function onvalue(event: Event) { const detail = (event as CustomEvent).detail if (detail.key !== ':') return detail.value = getValue(detail.item) } function onchange(event: Event) { const {key, provide, text} = (event as CustomEvent).detail if (key !== ':') return const menu = event.target as Element const url = menu.getAttribute('data-emoji-url')! provide(emojiMenu(url, text)) } function onactivate(event: Event) { const expander = event.target as Element const popover = expander.querySelector('.emoji-suggestions[popover]') if (popover) popover.showPopover() } async function emojiMenu(url: string, query: string): Promise<{fragment: HTMLElement; matched: boolean}> { const [list, children] = await cachedEmoji(url) const results = search(children, query).slice(0, 5) list.textContent = '' for (const el of results) list.append(el) return {fragment: list, matched: results.length > 0} } async function fetchEmoji(url: string): Promise<[HTMLElement, Element[]]> { const fragment = await fetchSafeDocumentFragment(document, url) const root = fragment.firstElementChild as HTMLElement return [root, [...root.children]] } const cachedEmoji = memoize(fetchEmoji) import {TemplateInstance} from '@github/template-parts' import {on} from 'delegated-events' // Encrypt plain text with a public key. export async function encrypt(publicKey: Uint8Array, value: string): Promise { const encryption = await import('@github-ui/encryption') return encryption.encrypt(publicKey, value) } // Decode base64 data into a byte array. export function decode(encoded: string): Uint8Array { const bytes = atob(encoded) .split('') .map(x => x.charCodeAt(0)) return Uint8Array.from(bytes) } // Encode a byte array as a base64 string. export function encode(bytes: Uint8Array): string { let str = '' for (const byte of bytes) { str += String.fromCharCode(byte) } return btoa(str) } on('submit', 'form.js-encrypt-submit', async function (event) { const form = event.currentTarget as HTMLFormElement if (event.defaultPrevented || !form.checkValidity()) return const plainText = form.elements.namedItem('secret_value') as HTMLTextAreaElement // Prevent serializing plain text value in form submission. plainText.disabled = true if (!plainText.value) return event.preventDefault() // Submit encrypted value in hidden input. const publicKey = decode(form.getAttribute('data-public-key')!) ;(form.elements.namedItem('encrypted_value') as HTMLInputElement).value = encode( await encrypt(publicKey, plainText.value), ) form.submit() }) // Submit multiple encrypted values in hidden inputs. If an unencrypted field is empty, // its associated hidden encrypted field is disabled. on('submit', 'form.js-encrypt-bulk-submit', submitBulk(true)) // Submit multiple encrypted values in hidden inputs. If an unencrypted field is empty, // its associated hidden encrypted field is not disabled. on('submit', 'form.js-encrypt-bulk-submit-enable-empty', submitBulk(false)) // Submit multiple encrypted values. If an unencrypted field is empty, // its associated hidden encrypted field is enabled or disabled depending on "disableEmptyValues". function submitBulk(disableEmptyValues: boolean) { return async function (event: Event) { const form = event.currentTarget as HTMLFormElement if (event.defaultPrevented || !form.checkValidity()) return // Submit encrypted value in hidden input. const publicKey = decode(form.getAttribute('data-public-key')!) event.preventDefault() for (const element of form.elements) { // Prevent serializing plain text value in form submission. const formElement = element as HTMLInputElement if (formElement.id.endsWith('secret')) { formElement.disabled = true if (formElement.required && !formElement.value) { const message = `${formElement.name} is invalid!` const template = document.querySelector('template.js-flash-template')! template.after(new TemplateInstance(template, {className: 'flash-error', message})) return } const encryptedValueElementName = `${formElement.name}_encrypted_value` if (!formElement.value) { ;(form.elements.namedItem(encryptedValueElementName) as HTMLInputElement).disabled = disableEmptyValues continue } ;(form.elements.namedItem(encryptedValueElementName) as HTMLInputElement).value = encode( await encrypt(publicKey, formElement.value), ) } } form.submit() } } performance.mark("js-parse-end:environment-2cd02065315011b3.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["85363"],{57197(e,t,r){r.d(t,{O:()=>i,S:()=>a});var n=r(70730);let o=n.cg?.document?.head?.querySelector('meta[name="release"]')?.content||"",a="X-GitHub-Client-Version";function i(){return o}},27972(e,t,r){var n=r(24535),o=r(70730);o.cg?.addEventListener("error",e=>{e.error&&(0,n.N7)(e.error)}),o.cg?.addEventListener("unhandledrejection",async e=>{if(e.promise)try{await e.promise}catch(e){(0,n.N7)(e)}}),o.cg?.location.hash==="#b00m"&&setTimeout(()=>{throw Error("b00m")}),r(89272);var a=r(99159);let i=fetch;function c({input:e,error:t,status:r}){if(!t)return;let n=e instanceof Request?e.url:e.toString();(0,a.iv)({incrementKey:"FETCH_ERROR",requestUrl:window.location.href,referredRequestUrl:n,incrementTags:{status:String(r)}},!1,1)}let s=/\breact-(?:dom|lib|profiling)\b/;function l(e){return!!e&&s.test(e)}var u=r(63856),f=r(78143);let m=window.fetch,h=(e,t)=>{if(e instanceof Request){let t={...Object.fromEntries(e.headers.entries()),...(0,f.kt)()};return m(new Request(e,{headers:t}))}{let r={...t?.headers??{},...(0,f.kt)()};return m(new Request(e,{...t,headers:r}))}};document.documentElement.hasAttribute("override-fetch")&&window.fetch!==h&&(window.fetch=h);var d=r(51807),p=r(10149);if((0,u.Bb)(),"u">typeof document){if(o.cg&&(o.cg.fetch=async(e,t)=>{try{let r=await i(e,t);return c({input:e,error:!r.ok,status:r.status}),r}catch(t){throw c({input:e,error:!0,status:"unknown"}),t}}),"function"==typeof Node&&Node.prototype){let e=Node.prototype.removeChild;Node.prototype.removeChild=function(t){try{return e.apply(this,[t])}catch(e){if(e instanceof Error&&l(e.stack))return t;throw e}}}if("function"==typeof Node&&Node.prototype){let e=Node.prototype.insertBefore;Node.prototype.insertBefore=function(t,r){try{return e.apply(this,[t,r])}catch(e){if(e instanceof Error&&l(e.stack))return t;throw e}}}(0,d.pS)(),(0,p.kt)()}},24535(e,t,r){let n;r.d(t,{N7:()=>S,AW:()=>w,fE:()=>g,ff:()=>q});var o=r(36301),a=r(63856),i=r(24212);function c(e){return(0,i.q)(e.stack||"").map(e=>({filename:e.file||"",function:String(e.methodName),lineno:(e.lineNumber||0).toString(),colno:(e.column||0).toString()}))}function s(e){let t=document.querySelectorAll(e);if(t.length>0)return t[t.length-1]}var l=r(14995),u=r(70730),f=r(73420),m=r(24043),h=r(10149);let d=!1,p=0,y=Date.now(),g=new Set(["AbortError","AuthSessionExpiredError","TypeError","RateLimitError","NotAcceptableError","SecFetchHeaderError","FetchNetworkError","NoiseError","ServiceUnavailableError"]),w=new Set(["Failed to fetch","NetworkError when attempting to fetch resource.","Unable to perform this operation. Please try again later."]);function S(e,t={}){if(!(e instanceof Error||"object"==typeof e&&null!==e&&"name"in e&&"string"==typeof e.name&&"message"in e&&"string"==typeof e.message)){if(function(e){if(!e||"boolean"==typeof e||"number"==typeof e)return!0;if("string"==typeof e){if(N.some(t=>e.includes(t)))return!0}else if("object"==typeof e&&"string"==typeof e.message&&"number"==typeof e.code)return!0;return!1}(e))return;let r=Error(),n=function(e){try{return JSON.stringify(e)}catch{return"Unserializable"}}(e);v(E({type:"UnknownError",value:`Unable to report error, due to a thrown non-Error type: ${typeof e}, with value ${n}`,stacktrace:c(r),catalogService:document.head?.querySelector('meta[name="current-catalog-service"]')?.content,catalogServiceHash:document.head?.querySelector('meta[name="current-catalog-service-hash"]')?.content},t));return}e.name&&("AbortError"===e.name||"RateLimitError"===e.name||"NotAcceptableError"===e.name||"SecFetchHeaderError"===e.name||"FetchNetworkError"===e.name||"NoiseError"===e.name||"ServiceUnavailableError"===e.name&&q()||g.has(e.name)&&w.has(e.message)||e.name.startsWith("ApiError")&&w.has(e.message))||v(E({type:e.name,value:e.message,stacktrace:c(e),catalogService:e.catalogService||globalThis.document?.head?.querySelector('meta[name="current-catalog-service"]')?.content,catalogServiceHash:e.catalogServiceHash||globalThis.document?.head?.querySelector('meta[name="current-catalog-service-hash"]')?.content},t))}async function v(e){if(!(!A&&!d&&p<10&&(n??(n=(0,a.TT)()&&function(){let e=u.cg?.history,t=u.cg?.location;if(!e||!t)return!1;try{return e.replaceState(e.state,document.title,t.href),!0}catch{return!1}}()))))return;let t=document.head?.querySelector('meta[name="browser-errors-url"]')?.content;if(t){if(e.error.stacktrace.some(e=>b.test(e.filename)||b.test(e.function))){d=!0;return}p++;try{await fetch(t,{method:"post",body:JSON.stringify({context:e,target:document.head?.querySelector('meta[name="ui-target"]')?.content||"full"})})}catch{}}}function E(e,t={}){let r,n={...t};return(0,m.G7)("failbot_report_error_react_apps_on_page")&&!n.reactAppName&&(n.reactAppName=function(e){let t=function(){let e=new Set;for(let[t,r]of k)for(let n of document.querySelectorAll(t))if(n instanceof HTMLElement){let t=n.getAttribute(r);t&&e.add(t)}return Array.from(e)}();if(!t||!t.length||!e||!e.length)return;let r=new Set;for(let n of e){if(!n||!n.filename)continue;let e=n.filename.split(/[\\/]/).pop();if(!e||r.has(e))continue;r.add(e);let o=t.find(t=>e.toLowerCase().includes(t.toLowerCase()));if(o)return o}}(e.stacktrace)),Object.assign({error:e,sanitizedUrl:`${window.location.protocol}//${window.location.host}${((r=s("meta[name=analytics-location]"))?r.content:window.location.pathname)+function(){let e=s("meta[name=analytics-location-query-strip]"),t="";e||(t=window.location.search);let r=s("meta[name=analytics-location-params]");for(let e of(r&&(t+=(t?"&":"?")+r.content),document.querySelectorAll("meta[name=analytics-param-rename]"))){let r=e.content.split(":",2);t=t.replace(RegExp(`(^|[?&])${r[0]}($|=)`,"g"),`$1${r[1]}$2`)}return t}()}`||window.location.href,readyState:document.readyState,referrer:(0,f.dR)(),timeSinceLoad:Math.round(Date.now()-y),user:function(){let e=document.head?.querySelector('meta[name="user-login"]')?.content;if(e)return e;let t=(0,o.y)();return`anonymous-${t}`}()||void 0,actorId:document.head?.querySelector('meta[name="octolytics-actor-id"]')?.content,bundler:l.vV,ui:"vite-tss"===l.vV,release:document.head?.querySelector('meta[name="release"]')?.content,pastRequestIds:(0,h.xA)()},n)}let b=/(chrome|moz|safari)-extension:\/\//;function q(){return!document.head?.querySelector('meta[name="user-login"]')?.content}let A=!1;u.cg?.addEventListener("pageshow",()=>A=!1),u.cg?.addEventListener("pagehide",()=>A=!0),"function"==typeof BroadcastChannel&&new BroadcastChannel("shared-worker-error").addEventListener("message",e=>{S(e.data.error)});let N=["Object Not Found Matching Id","Not implemented on this platform","provider because it's not your default extension"],k=[["react-app","app-name"],["react-partial","partial-name"]]},78143(e,t,r){r.d(t,{jC:()=>c,kt:()=>a,tV:()=>i});var n=r(57197),o=r(51807);function a(e){let t={"X-Requested-With":"XMLHttpRequest",...(0,o.wE)(e)};return{...t,[n.S]:(0,n.O)()}}function i(e,t){for(let[r,n]of Object.entries(a(t)))e.set(r,n)}function c(e){return{"X-GitHub-App-Type":e}}},51807(e,t,r){r.d(t,{$r:()=>i,M1:()=>c,li:()=>o,pS:()=>l,wE:()=>s});var n=r(70730);let o="X-Fetch-Nonce",a=new Set;function i(e){a.add(e)}function c(){return a.values().next().value||""}function s(e){let t={};return void 0!==e&&(t["X-Fetch-Nonce-To-Validate"]=e),void 0===e?t[o]=c():a.has(e)?t[o]=e:t[o]=Array.from(a).join(","),t}function l(){let e=n.XC?.head?.querySelector('meta[name="fetch-nonce"]')?.content||"";e&&i(e)}},10149(e,t,r){r.d(t,{Ex:()=>i,kt:()=>s,xA:()=>c});var n=r(70730);let o=Array(10).fill(null),a=0;function i(e){o[a]=e,a=(a+1)%10}function c(){let e=[];for(let t=0;t<10;t++){let r=o[(a-1-t+10)%10];r&&e.push(r)}return e}function s(){let e=n.XC;if(!e)return;let t=e.querySelector('meta[name="request-id"]'),r=t?.getAttribute("content");r&&i(r)}},69991(e,t,r){r.d(t,{A:()=>i,D:()=>c});var n=r(70730),o=r(99159);class a{getItem(){return null}setItem(){}removeItem(){}clear(){}key(){return null}get length(){return 0}}function i(e,t={throwQuotaErrorsOnSet:!1},r=n.cg,c=e=>e,s=e=>e){let l;try{if(!r)throw Error();l=r[e]||new a}catch{l=new a}let{throwQuotaErrorsOnSet:u}=t;function f(e){t.sendCacheStats&&(0,o.iv)({incrementKey:e})}function m(e){try{if(l.removeItem(e),t.ttl){let t=`${e}:expiry`;l.removeItem(t)}}catch{}}return{getItem:function(e,t=Date.now()){try{let r=l.getItem(e);if(!r)return null;let n=`${e}:expiry`,o=Number(l.getItem(n));if(o&&t>o)return m(e),m(n),f("SAFE_STORAGE_VALUE_EXPIRED"),null;return f("SAFE_STORAGE_VALUE_WITHIN_TTL"),c(r)}catch{return null}},setItem:function(e,r,n=Date.now()){try{if(l.setItem(e,s(r)),t.ttl){let r=`${e}:expiry`,o=n+t.ttl;l.setItem(r,o.toString())}}catch(e){if(u&&e instanceof Error&&e.message.toLowerCase().includes("quota"))throw e}},removeItem:m,clear:()=>l.clear(),getKeys:function(){return Object.keys(l)},get length(){return l.length}}}function c(e){return i(e,{throwQuotaErrorsOnSet:!1},n.cg,JSON.parse,JSON.stringify)}},81076(e,t,r){r.d(t,{Ai:()=>a,Gq:()=>n,SO:()=>o});let{getItem:n,setItem:o,removeItem:a}=(0,r(69991).A)("sessionStorage")},73420(e,t,r){r.d(t,{BW:()=>i,Dm:()=>E,Ff:()=>p,HK:()=>b,JA:()=>O,LM:()=>y,Pv:()=>N,Vy:()=>d,ZW:()=>A,dR:()=>q,di:()=>g,gc:()=>k,k9:()=>v,my:()=>S,wG:()=>w,xT:()=>h});var n=r(81076),o=r(70730),a=r(74635);let i="reload",c="soft-nav:fail",s="soft-nav:fail-referrer",l="soft-nav:referrer",u="soft-nav:marker",f="soft-nav:react-app-name",m="soft-nav:latest-mechanism";function h(){(0,n.SO)(u,"0"),(0,n.Ai)(l),(0,n.Ai)(c),(0,n.Ai)(s),(0,n.Ai)(f),(0,n.Ai)(m)}function d(e){(0,n.SO)(u,e)}function p(){(0,n.SO)(u,"0")}function y(){let e=(0,n.Gq)(u);return e&&"0"!==e}function g(){return(0,n.Gq)(u)}function w(){return!!S()}function S(){return(0,n.Gq)(c)}function v(e){(0,n.SO)(c,e||i),(0,n.SO)(s,window.location.href)}function E(){(0,n.Ai)(c),(0,n.Ai)(s)}function b(){(0,n.SO)(l,window.location.href)}function q(){return(0,n.Gq)(l)||document.referrer}function A(){let e=(0,a.f)();e?(0,n.SO)(f,e):(0,n.Ai)(f)}function N(){return(0,n.Gq)(f)}function k(){return!!o.XC?.querySelector("react-app")?.getAttribute("app-name")||!!o.XC?.querySelector("projects-v2")}function O(e){(0,n.SO)(m,e)}},89272(){if(void 0!==globalThis.Element&&void 0!==globalThis.Document&&(!("ariaNotify"in Element.prototype)||!("ariaNotify"in Document.prototype))){let e=`${Date.now()}`;try{e=crypto.randomUUID()}catch{}let t=Symbol(),r=`live-region-${e}`;class n{element;message;priority="normal";constructor({element:e,message:t,priority:r="normal"}){this.element=e,this.message=t,this.priority=r}#e(){return this.element.isConnected&&!this.element.closest("[inert]")&&(this.element.ownerDocument.querySelector(CSS.supports("selector(:modal)")?":modal":"dialog[open]")?.contains(this.element)??!0)}async announce(){if(!this.#e())return;let e=this.element.closest("dialog")||this.element.closest("[role='dialog']")||this.element.getRootNode();(!e||e instanceof Document)&&(e=document.body);let n=e.querySelector(r);n||(n=document.createElement(r),e.append(n)),await new Promise(e=>setTimeout(e,250)),n.handleMessage(t,this.message)}}let o=new class{#t=[];#r;enqueue(e){let{priority:t}=e;if("high"===t){let t=this.#t.findLastIndex(e=>"high"===e.priority);this.#t.splice(t+1,0,e)}else this.#t.push(e);this.#r||this.#n()}async #n(){this.#r=this.#t.shift(),this.#r&&(await this.#r.announce(),this.#n())}};class a extends HTMLElement{#o=this.attachShadow({mode:"closed"});connectedCallback(){this.ariaLive="polite",this.ariaAtomic="true",this.style.marginLeft="-1px",this.style.marginTop="-1px",this.style.position="absolute",this.style.width="1px",this.style.height="1px",this.style.overflow="hidden",this.style.clipPath="rect(0 0 0 0)",this.style.overflowWrap="normal"}handleMessage(e=null,r=""){t===e&&(this.#o.textContent==r&&(r+="\xa0"),this.#o.textContent=r)}}customElements.define(r,a),"ariaNotify"in Element.prototype||(Element.prototype.ariaNotify=function(e,{priority:t="normal"}={}){o.enqueue(new n({element:this,message:e,priority:t}))}),"ariaNotify"in Document.prototype||(Document.prototype.ariaNotify=function(e,{priority:t="normal"}={}){o.enqueue(new n({element:this.documentElement,message:e,priority:t}))})}}},function(e){e.O(0,["19762","49863","64220"],function(){return e(e.s=27972)}),e.O()}]); //# sourceMappingURL=environment-2cd02065315011b3-d03bc7c6e3341e80.js.map import type {AnchorAlignment, AnchorSide} from '@primer/behaviors' import {getAnchoredPosition} from '@primer/behaviors' import type {IncludeFragmentElement} from '@github/include-fragment-element' class ExperimentalActionMenuElement extends HTMLElement { #abortController!: AbortController #firstCharactersOfItems!: string[] #firstMenuItem!: HTMLElement #lastMenuItem!: HTMLElement #shouldTryLoadingFragment = true get anchorAlign(): AnchorAlignment { return (this.getAttribute('data-anchor-align') || 'start') as AnchorAlignment } get anchorSide(): AnchorSide { return (this.getAttribute('data-anchor-side') || 'outside-bottom') as AnchorSide } get menu(): HTMLUListElement | null { return this.querySelector('[role="menu"],[role="listbox"]') } get isListBox(): boolean { if (!this.menu) return false return this.menu.getAttribute('role') === 'listbox' } get trigger(): HTMLButtonElement | null { return this.querySelector('button') } get overlay(): HTMLDivElement | null { return this.querySelector('.Overlay') } get menuItems(): HTMLElement[] | null { if (!this.menu) return null if (this.isListBox) { return Array.from(this.menu.querySelectorAll('[role="option"]')) } return Array.from( this.menu.querySelectorAll('[role="menuitem"],[role="menuitemcheckbox"],[role="menuitemradio"]'), ) } get includeFragment(): IncludeFragmentElement | null { return this.querySelector(`[data-target~="action-menu.includeFragment"]`) } get includeFragmentLoadingItem(): HTMLElement | null { return this.querySelector(`[data-target~="action-menu.includeFragmentLoadingItem"]`) } get open() { return this.hasAttribute('open') } set open(value: boolean) { const initialBodyWidth = document.body.clientWidth const observer = new ResizeObserver(entries => { for (const entry of entries) { if (initialBodyWidth !== entry.contentRect.width && this.open) { this.#updatePosition() } } }) if (value) { if (this.open) return if (!this.trigger || !this.menu) return this.setAttribute('open', '') this.trigger.setAttribute('aria-expanded', 'true') this.overlay?.removeAttribute('hidden') this.menu.style.visibility = 'hidden' this.#updatePosition() // If the window width is changed when the menu is open, // this keeps the menu aligned to the button observer.observe(document.body) this.menu.style.visibility = 'visible' if (this.includeFragmentLoadingItem) { this.includeFragmentLoadingItem.tabIndex = 0 this.includeFragmentLoadingItem.focus() } } else { if (!this.open) return this.removeAttribute('open') this.trigger?.setAttribute('aria-expanded', 'false') this.overlay?.setAttribute('hidden', 'true') observer.unobserve(document.body) // TODO: Do this without a setTimeout setTimeout(() => { // There are some actions that may move focus to another part of the page intentionally. // For example: "Quote Reply" in the comment options moves focus to the comment box. // This only moves focus to the trigger if it's not managed in another way. if (document.activeElement === document.body) this.trigger?.focus() }, 1) } } connectedCallback() { if (!this.trigger) return this.#addEvents() } disconnectedCallback() { this.#abortController.abort() } show() { this.open = true } hide() { this.open = false } #addEvents() { this.#abortController = new AbortController() const {signal} = this.#abortController if (!this.trigger || !this.menu) return this.trigger.addEventListener('keydown', this.buttonKeydown.bind(this), {signal}) this.trigger.addEventListener('click', this.buttonClick.bind(this), {signal}) if (this.hasAttribute('preload')) { this.trigger.addEventListener('mouseenter', this.loadHTMLFragment.bind(this), {signal}) this.trigger.addEventListener('focus', this.loadHTMLFragment.bind(this), {signal}) } this.#firstCharactersOfItems = [] this.#addEventsToMenuItems(signal) if (this.includeFragment) { this.includeFragment.addEventListener('load', this.handleIncludeFragmentLoaded.bind(this)) } window.addEventListener('mousedown', this.backgroundMousedown.bind(this), true) } #addEventsToMenuItems(signal: AbortSignal) { if (!this.menuItems) return for (const menuItem of this.menuItems) { if (menuItem.textContent) { this.#firstCharactersOfItems.push(menuItem.textContent.trim()[0]!.toLowerCase()) } menuItem.addEventListener('keydown', this.menuItemKeydown.bind(this), {signal}) menuItem.addEventListener('click', this.menuItemClick.bind(this), {signal}) menuItem.addEventListener('mouseover', this.menuItemMouseover.bind(this), {signal}) if (!this.#firstMenuItem) { this.#firstMenuItem = menuItem } this.#lastMenuItem = menuItem } } setFocusToMenuItem(newMenuItem: HTMLElement) { if (!this.menuItems) return for (const item of this.menuItems) { if (item === newMenuItem) { item.tabIndex = 0 newMenuItem.focus() } else { item.tabIndex = -1 } } } setFocusToPreviousMenuItem(currentMenuItem: HTMLElement) { if (!this.menuItems) return let newMenuItem = null let index = null if (currentMenuItem === this.#firstMenuItem) { newMenuItem = this.#lastMenuItem } else { index = this.menuItems.indexOf(currentMenuItem) newMenuItem = this.menuItems[index - 1]! } this.setFocusToMenuItem(newMenuItem) return newMenuItem } setFocusToNextMenuItem(currentMenuItem: HTMLElement) { if (!this.menuItems) return let newMenuItem = null let index = null if (currentMenuItem === this.#lastMenuItem) { newMenuItem = this.#firstMenuItem } else { index = this.menuItems.indexOf(currentMenuItem) newMenuItem = this.menuItems[index + 1]! } this.setFocusToMenuItem(newMenuItem) return newMenuItem } setFocusByFirstCharacter(currentMenuItem: HTMLElement, character: string) { if (!this.menuItems) return let start = null let index = null if (character.length > 1) { return } character = character.toLowerCase() // Get start index for search based on position of currentMenuItem start = this.menuItems.indexOf(currentMenuItem) + 1 if (start >= this.menuItems.length) { start = 0 } // Check remaining slots in the menu index = this.#firstCharactersOfItems.indexOf(character, start) // If character is not found in remaining slots, check from beginning if (index === -1) { index = this.#firstCharactersOfItems.indexOf(character, 0) } // If match is found if (index > -1) { this.setFocusToMenuItem(this.menuItems[index]!) } } #updatePosition() { if (!this.trigger || !this.menu) return const float = this.querySelector('[data-menu-overlay]') || this.menu const anchor = this.trigger const {top, left} = getAnchoredPosition(float, anchor, {side: this.anchorSide, align: this.anchorAlign}) float.style.top = `${top}px` float.style.left = `${left}px` } // Menu event handlers buttonKeydown(event: KeyboardEvent) { // TODO: use data-hotkey // eslint-disable-next-line @github-ui/ui-commands/no-manual-shortcut-logic const key = event.key let flag = false switch (key) { case ' ': case 'Enter': case 'ArrowDown': case 'Down': this.show() this.setFocusToMenuItem(this.#firstMenuItem) flag = true break case 'Esc': case 'Escape': this.hide() flag = true break case 'Up': case 'ArrowUp': this.show() this.setFocusToMenuItem(this.#lastMenuItem) flag = true break default: break } if (flag) { event.stopPropagation() event.preventDefault() } } buttonClick(event: MouseEvent) { if (this.open) { this.hide() } else { this.show() this.setFocusToMenuItem(this.#firstMenuItem) } event.stopPropagation() event.preventDefault() } menuItemKeydown(event: KeyboardEvent) { const currentTarget = event.currentTarget // eslint-disable-next-line @github-ui/ui-commands/no-manual-shortcut-logic const key = event.key let flag = false function isPrintableCharacter(str: string) { return str.length === 1 && str.match(/\S/) } // eslint-disable-next-line @github-ui/ui-commands/no-manual-shortcut-logic if (event.ctrlKey || event.altKey || event.metaKey) { return } if (event.shiftKey) { if (isPrintableCharacter(key)) { this.setFocusByFirstCharacter(currentTarget as HTMLElement, key) flag = true } // eslint-disable-next-line @github-ui/ui-commands/no-manual-shortcut-logic if (event.key === 'Tab') { this.trigger?.focus() this.hide() flag = true } } else { switch (key) { case 'Enter': this.selectMenuItem(currentTarget as HTMLElement) break case 'Esc': case 'Escape': this.hide() flag = true break case 'Up': case 'ArrowUp': this.setFocusToPreviousMenuItem(currentTarget as HTMLElement) flag = true break case 'ArrowDown': case 'Down': this.setFocusToNextMenuItem(currentTarget as HTMLElement) flag = true break case 'Home': case 'PageUp': this.setFocusToMenuItem(this.#firstMenuItem) flag = true break case 'End': case 'PageDown': this.setFocusToMenuItem(this.#lastMenuItem) flag = true break case 'Tab': this.selectMenuItem(currentTarget as HTMLElement) break default: if (isPrintableCharacter(key)) { this.setFocusByFirstCharacter(currentTarget as HTMLElement, key) flag = true } break } } if (flag) { event.stopPropagation() event.preventDefault() } } menuItemClick(event: MouseEvent) { const currentTarget = event.currentTarget if (this.isListBox && this.menuItems && currentTarget) { for (const menuItem of this.menuItems) { if (menuItem.contains(currentTarget as HTMLElement)) { this.selectMenuItem(menuItem) return } } } this.hide() } menuItemMouseover(event: MouseEvent) { ;(event.currentTarget as HTMLButtonElement).focus() } backgroundMousedown(event: MouseEvent) { if (!this) return if (!this.contains(event.target as Node)) { if (this.open) { this.hide() } } } handleIncludeFragmentLoaded() { const {signal} = this.#abortController this.#addEventsToMenuItems(signal) if (this.open) { this.setFocusToMenuItem(this.#firstMenuItem) } } async loadHTMLFragment(): Promise { if (!this.#shouldTryLoadingFragment) return this.#shouldTryLoadingFragment = false try { const htmlFragment = await this.includeFragment?.load() return htmlFragment } catch { //allow retries on failure this.#shouldTryLoadingFragment = true return } } selectMenuItem(selectedItem: HTMLElement) { if (this.isListBox && this.menuItems) { for (const menuItem of this.menuItems) { const selected = menuItem === selectedItem menuItem.setAttribute('aria-selected', selected.toString()) if (selected) { const radioInput = menuItem.querySelector('input[type=radio]') if (radioInput !== null) { radioInput.checked = selected } const itemLabel = menuItem.getAttribute('aria-label') const menuLabelId = this.menu?.getAttribute('aria-labelledby') const menuLabelNode = menuLabelId && document.getElementById(menuLabelId) if (menuLabelNode && itemLabel !== null) { menuLabelNode.textContent = itemLabel } } } } this.hide() } } if (!window.customElements.get('experimental-action-menu')) { window.ExperimentalActionMenuElement = ExperimentalActionMenuElement window.customElements.define('experimental-action-menu', ExperimentalActionMenuElement) } declare global { interface Window { ExperimentalActionMenuElement: typeof ExperimentalActionMenuElement } } export default ExperimentalActionMenuElement import safeStorage from '@github-ui/safe-storage' const experimentsLocalStorageKey = 'blackbird_experiments' const experimentsDebugScoringKey = 'blackbird_debug_scoring' export function getBlackbirdExperiments(): string[] { const experiments = safeStorage('localStorage').getItem(experimentsLocalStorageKey) if (!experiments) return [] return experiments.split(',') } export function setBlackbirdExperiments(experiments: string[]): void { safeStorage('localStorage').setItem(experimentsLocalStorageKey, experiments.join(',')) } export function debugScoringInfoEnabled(): boolean { const enabled = safeStorage('localStorage').getItem(experimentsDebugScoringKey) return enabled !== null } export function setDebugScoringInfoEnabled(enabled: boolean): void { if (enabled) { safeStorage('localStorage').setItem(experimentsDebugScoringKey, '1') } else { safeStorage('localStorage').removeItem(experimentsDebugScoringKey) } } // Temporary file to hold the ExplorePage type and the initial and full list of ExplorePages. // The list is hardcoded for now as we experiment with the Explore search provider. export interface ExplorePage { title: string url: string octicon: string } // Initial suggestions are: Enterprise, Security, Copilot, and Pricing - before the user types anything. export const InitialExplorePages: ExplorePage[] = [ {title: 'Enterprise', url: '/enterprise', octicon: 'organization'}, {title: 'Security', url: '/security', octicon: 'shield-check'}, {title: 'Copilot', url: '/features/copilot', octicon: 'copilot'}, {title: 'Pricing', url: '/pricing', octicon: 'credit-card'}, ] export const ExplorePages: ExplorePage[] = [ {title: 'GitHub Actions', url: '/features/actions', octicon: 'workflow'}, {title: 'Blog', url: 'https://github.blog', octicon: 'book'}, {title: 'CI/CD', url: '/solutions/ci-cd/', octicon: 'workflow'}, {title: 'Code review', url: '/features/code-review', octicon: 'code-review'}, {title: 'Codespaces', url: '/features/codespaces', octicon: 'codespaces'}, {title: 'Copilot', url: '/features/copilot', octicon: 'copilot'}, {title: 'Customer stories', url: '/customer-stories', octicon: 'comment'}, {title: 'Discussions', url: '/features/discussions', octicon: 'comment-discussion'}, {title: 'Documentation', url: 'https://docs.github.com', octicon: 'book'}, {title: 'Enterprise', url: '/enterprise', octicon: 'organization'}, {title: 'Features', url: '/features', octicon: 'rocket'}, {title: 'GitHub Security', url: '/security', octicon: 'shield-check'}, {title: 'GitHub Sponsors', url: '/sponsors', octicon: 'heart'}, {title: 'GitHub Pages', url: 'https://pages.github.com', octicon: 'server'}, {title: 'Integrations', url: '/features/integrations', octicon: 'globe'}, {title: 'Issues', url: '/features/issues', octicon: 'issue-opened'}, {title: 'GitHub Mobile', url: '/mobile', octicon: 'device-mobile'}, {title: 'GitHub Packages', url: '/features/packages', octicon: 'package'}, {title: 'Pricing', url: '/pricing', octicon: 'credit-card'}, {title: 'Resources', url: 'https://resources.github.com', octicon: 'book'}, {title: 'Secure your code', url: '/features/security/code-scanning', octicon: 'shield-check'}, {title: 'Security features', url: '/features/security', octicon: 'shield-check'}, {title: 'Software supply chain', url: '/features/security/software-supply-chain', octicon: 'shield-check'}, {title: 'Startups', url: '/enterprise/startups', octicon: 'rocket'}, {title: 'Team', url: '/team', octicon: 'organization'}, {title: 'The ReadME Project', url: '/readme', octicon: 'book'}, {title: 'The ReadME Podcast', url: '/readme/podcast', octicon: 'play'}, {title: 'Feature Previews', url: '/features/preview', octicon: 'gift'}, {title: 'Code Search', url: '/features/code-search', octicon: 'code-square'}, {title: 'GitHub Changelog', url: 'https://github.blog/changelog', octicon: 'book'}, {title: 'GitHub Shop', url: 'https://www.thegithubshop.com/', octicon: 'gift'}, {title: 'GitHub Desktop', url: 'https://desktop.github.com', octicon: 'device-desktop'}, ] import {filterSort} from '@github-ui/filter-sort' import {compare, fuzzyScore} from '@github-ui/fuzzy-filter' import type {QueryEvent, SearchProvider, Octicon} from '@github-ui/query-builder-element/query-builder-api' import {FetchDataEvent, SearchItem} from '@github-ui/query-builder-element/query-builder-api' import type {QueryBuilderElement} from '@github-ui/query-builder-element' import {isContentNode, isQualifier} from '../parsing/common' import type {ParsedIntermediateRepresentation} from '../qbsearch-input-element' import {ExplorePages, InitialExplorePages} from '../suggestions/explore-pages' interface ExplorePage { title: string url: string octicon: Octicon | string } const resultsPriority = 11 // The priority of the explore search provider, higher numbers appear at the bottom of the results export class ExploreProvider extends EventTarget implements SearchProvider { priority = resultsPriority name = 'Explore' singularItemName = 'explore page' value = 'explore' type = 'search' as const manuallyDetermineFilterEligibility = true #querySuggestions: ExplorePage[] | null = null #defaultSuggestions: ExplorePage[] | null = null queryBuilder: QueryBuilderElement constructor(queryBuilder: QueryBuilderElement) { super() this.queryBuilder = queryBuilder this.queryBuilder.addEventListener('query', this) } // For experimental / testing, we will get the explore pages from a hardcoded list from now. #fetchQuerySuggestions() { const data = Promise.resolve(ExplorePages) this.dispatchEvent(new FetchDataEvent(data)) return data } #fetchDefaultSuggestions() { const data = Promise.resolve(InitialExplorePages) this.dispatchEvent(new FetchDataEvent(data)) return data } async #addDefaultSuggestions() { this.#defaultSuggestions = await this.#fetchDefaultSuggestions() for (const page of this.#defaultSuggestions) { this.dispatchEvent( new SearchItem({ value: page.title, icon: page.octicon as Octicon, priority: resultsPriority, scope: 'EXPLORE', action: { url: `${page.url}?ref_loc=search`, }, }), ) } } async handleEvent(event: QueryEvent) { const path = window.location.pathname const isHomePagePath = path === '/' || path === '/home' const isMarketingPagePath = ExplorePages.some(page => page.url.startsWith('/') && path.startsWith(page.url)) // @ts-expect-error - Unfortunately, Vitest's browser mode modifies location.pathname if (!isHomePagePath && !isMarketingPagePath && !window.__vitest_browser__) { // We only want to show suggestions on the homepage and marketing pages return [] } const state = event.parsedMetadata as ParsedIntermediateRepresentation | undefined if (!state?.query) { await this.#addDefaultSuggestions() return [] } if (this.#querySuggestions === null) { this.#querySuggestions = await this.#fetchQuerySuggestions() } // make sure we only suggest for terms that are user typed content (number, text etc.) let term = state?.query if (state?.caretSelectedNode && isQualifier(state?.caretSelectedNode)) { if (isContentNode(state.caretSelectedNode.content)) { term = state.caretSelectedNode.content.value as string } else { term = '' } } let matches = this.#querySuggestions if (term && term.length > 0) { const fuzzyQuery = term.replace(/\s/g, '') const key = (page: ExplorePage) => { const score = fuzzyScore(page.title, fuzzyQuery) return score > 0 ? {score, text: page.title} : null } matches = filterSort(this.#querySuggestions, key, compare) } for (const page of matches.slice(0, 5)) { this.dispatchEvent( new SearchItem({ value: page.title, icon: page.octicon as Octicon, priority: resultsPriority, scope: 'EXPLORE', action: { url: `${page.url}?q=${term}&ref_loc=search`, }, }), ) } } } function _extends() { return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, module.exports.__esModule = true, module.exports["default"] = module.exports, _extends.apply(null, arguments); } module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports; // Favicon manager // // Manages light and dark favicon variations, and handles status, // showing a ✕, check, or pending dot over depending on the page status import {observe} from '@github/selector-observer' import {SOFT_NAV_STATE} from '@github-ui/soft-nav/states' import {resetFavicon, syncFaviconToTheme, updateFaviconByHref} from '@github-ui/favicon' observe('[data-favicon-override]', { add(el) { const href = el.getAttribute('data-favicon-override')! // allow `remove` for the old element to fire first setTimeout(() => updateFaviconByHref(href)) }, remove() { resetFavicon() }, }) syncFaviconToTheme() document.addEventListener(SOFT_NAV_STATE.SUCCESS, syncFaviconToTheme) window.matchMedia('(prefers-color-scheme: dark)').addListener(() => { syncFaviconToTheme() }) import {fire, on} from 'delegated-events' import {dialog} from '@github-ui/details-dialog' import {fetchSafeDocumentFragment} from '@github-ui/fetch-utils' import {remoteForm} from '@github-ui/remote-form' import {sendStats} from '@github-ui/stats' /* Opens the feature preview dialog to a given feature specified by it's slug You can react to a feature being enrolled/unenrolled by the user with these events: - `feature-preview-enroll:my_feature` - `feature-preview-unenroll:my_feature` e.g. document.addEventListener('feature-preview-enroll:my_feature', () => { optInButton.hidden = true optOutButton.hidden = false }) document.addEventListener('feature-preview-unenroll:my_feature', () => { optInButton.hidden = false optOutButton.hidden = true }) */ on('click', '[data-feature-preview-trigger-url]', async event => { const trigger = event.currentTarget const url = trigger.getAttribute('data-feature-preview-trigger-url')! const newDialog = await dialog({ content: fetchSafeDocumentFragment(document, url), dialogClass: 'feature-preview-dialog', }) const closeDetails = trigger.getAttribute('data-feature-preview-close-details')! const closeHmac = trigger.getAttribute('data-feature-preview-close-hmac')! newDialog.addEventListener('dialog:remove', () => { sendStats({hydroEventPayload: closeDetails, hydroEventHmac: closeHmac}, true) }) const indicators = document.querySelectorAll('.js-feature-preview-indicator') for (const indicator of indicators) { indicator.hidden = true } }) remoteForm('.js-feature-preview-unenroll', async (form, wants) => { await wants.text() const feature = form.querySelector('.js-feature-preview-slug')!.value fire(form, `feature-preview-unenroll:${feature}`) }) remoteForm('.js-feature-preview-enroll', async (form, wants) => { await wants.text() const feature = form.querySelector('.js-feature-preview-slug')!.value fire(form, `feature-preview-enroll:${feature}`) }) import {resetState, upload} from '../upload/batch-upload' import Batch from '../upload/batch' import type FileAttachmentElement from '@github/file-attachment-element' import {observe} from '@github/selector-observer' import {on} from 'delegated-events' // Synchronize element state with primer styles. This should be replaced with CSS. observe('file-attachment[hover]', { add(el) { el.classList.add('dragover') }, remove(el) { el.classList.remove('dragover') }, }) // Cancel empty drops after filtering out hidden dot files. on('file-attachment-accept', 'file-attachment', function (event) { const {attachments} = event.detail if (attachments.length === 0) { resetState(event.currentTarget, 'is-hidden-file') event.preventDefault() } }) // Upload batched files after passing validation. on('file-attachment-accepted', 'file-attachment', function (event) { // CodeEditor will hide this element if it wants to handle uploads const dragAndDropLabel = event.currentTarget.querySelector('.drag-and-drop') if (dragAndDropLabel && dragAndDropLabel.hidden) { return } const {attachments} = event.detail upload(new Batch(attachments), event.currentTarget as FileAttachmentElement) }) // Transfer click on button to hidden file input. on('click', 'button[data-file-attachment-for]', function (event) { const button = event.currentTarget as HTMLButtonElement const inputId = button.getAttribute('data-file-attachment-for') const input = document.querySelector(`input[type=file]#${inputId}`)! input.click() }) let count = 0 observe('file-attachment', { add(el) { if (count++ === 0) { document.addEventListener('drop', onDocumentDrop) document.addEventListener('dragover', onDocumentDragover) } const form = el.closest('form') if (form) { form.addEventListener('reset', onFormReset) } }, remove(el) { if (--count === 0) { document.removeEventListener('drop', onDocumentDrop) document.removeEventListener('dragover', onDocumentDragover) } const form = el.closest('form') if (form) { form.removeEventListener('reset', onFormReset) } }, }) function hasFile(transfer: DataTransfer): boolean { return Array.from(transfer.types).indexOf('Files') >= 0 } // Ignores accidental drops that miss the textarea. function onDocumentDrop(event: DragEvent) { const transfer = event.dataTransfer if (transfer && hasFile(transfer)) { event.preventDefault() } } // Prevent accidental drops until we're over a textarea. function onDocumentDragover(event: DragEvent) { const transfer = event.dataTransfer if (transfer && hasFile(transfer)) { event.preventDefault() } } // Parent form has been reset. Reset uploadable state back to default. function onFormReset({currentTarget}: Event) { const container = (currentTarget as Element).querySelector('file-attachment')! resetState(container, 'is-default') } import FilterInputElement from '@github/filter-input-element' import {announce} from '@github-ui/aria-live' import {on} from 'delegated-events' // Use data- attributes on the element to construct the options arguments to pass to // announce(). function announceOptions(filterElement: FilterInputElement) { const ariaLiveRegionId = filterElement.getAttribute('data-aria-live-element') if (!ariaLiveRegionId) return {} const ariaLiveRegion = document.getElementById(ariaLiveRegionId) if (!ariaLiveRegion) return {} return {element: ariaLiveRegion} } on('filter-input-updated', 'filter-input', event => { const filterElement = event.target as FilterInputElement const input = filterElement.input if (!(document.activeElement && document.activeElement === input)) return const {count, total} = event.detail const options = announceOptions(filterElement) // eslint-disable-next-line i18n-text/no-en announce(`Found ${count} out of ${total} ${total === 1 ? 'item' : 'items'}`, options) }) on( 'toggle', 'details', event => { // Wait for the next click to ensure that focus has left input setTimeout(() => resetFilter(event.target as Element), 0) }, {capture: true}, ) on( 'tab-container-changed', 'tab-container', event => { if (!(event.target instanceof HTMLElement)) return const {relatedTarget: panel} = event.detail const filterInput = event.target.querySelector('filter-input') if (panel && filterInput instanceof FilterInputElement) { filterInput.setAttribute('aria-owns', panel.id) } }, {capture: true}, ) function resetFilter(target: Element) { const filterInput = target.querySelector('filter-input') if (filterInput && !target.hasAttribute('open')) { filterInput.reset() } } type Predicate = (el: Element, query: string) => boolean | null type Options = {limit?: number | null} export function filterList(list: Element, query: string, isVisible: Predicate, options: Options = {}): number { const limit = options.limit ?? Infinity let visible = 0 for (const item of list.children) { const show = isVisible(item, query) if (show == null) { // ignore } else if (show && visible < limit) { visible++ toggle(item as HTMLElement, true) } else { toggle(item as HTMLElement, false) } } return visible } function toggle(el: HTMLElement, show: boolean) { el.style.display = show ? '' : 'none' el.hidden = !show } import type {TextScore} from '@github-ui/fuzzy-filter' import {compare} from '@github-ui/fuzzy-filter' import {filterSort} from '@github-ui/filter-sort' const originalOrder = new WeakMap() interface FilterOptions { limit?: number | null sortKey: (item: HTMLElement) => TextScore | null | undefined } // Filters and sorts list element items against a text query. For use with lists that // are already in the DOM, not with lists of results that are changed dynamically // via ajax. // // Returns Number of visible items. export function filterSortList(list: Element, string: string, options: FilterOptions): number { const query = string.toLowerCase() const limit = options.limit let allItems = originalOrder.get(list) const checkedInputBeforeFilter = list.querySelector('input[type="radio"]:checked') const children = Array.from(list.children) if (!allItems) { allItems = Array.from(list.children) as HTMLElement[] originalOrder.set(list, allItems) } else if (list.classList.contains('filter-sort-list-refresh')) { // if we get this class, it means the items in the list might have been changed // in this case, we check if there are new items to be added to the cache // this is the case when creating a new label from the label picker (see app/assets/modules/github/issues/labels.ts) list.classList.remove('filter-sort-list-refresh') const currentItems = Array.from(list.children) as HTMLElement[] for (const currentItem of currentItems) { if (!allItems.includes(currentItem)) { allItems.push(currentItem) } } } for (const item of children) { list.removeChild(item) if (item instanceof HTMLElement) item.style.display = '' } const found = query ? filterSort(allItems, options.sortKey, compare) : allItems const limited = limit == null ? found : found.slice(0, limit) const visible = limited.length const results = document.createDocumentFragment() for (const item of limited) { results.appendChild(item) } // This ensures that checked input before and after filtering is the same one // See https://github.com/github/github/issues/88129#issuecomment-434839397 let inputStateReset = false if (checkedInputBeforeFilter instanceof HTMLInputElement) { for (const checkedInput of results.querySelectorAll('input[type="radio"]:checked')) { if (checkedInput instanceof HTMLInputElement && checkedInput.value !== checkedInputBeforeFilter.value) { checkedInput.checked = false inputStateReset = true } } } list.appendChild(results) // Dispatch a change event after render for details-menu or any other code reacting to the input state if (checkedInputBeforeFilter && inputStateReset) { checkedInputBeforeFilter.dispatchEvent(new Event('change', {bubbles: true})) } return visible } // Filterable Behavior // // Automatically filters and sorts a list of items against a text field. // // Markup // // * js-filterable-field - Set on field to enable filtering. // * data-filterable-for - Set to ID of input field to bind too. // * data-filterable-type - Filtering type. Either "prefix", "substring", "fuzzy", or "fuzzy-prio". Defaults to "prefix" // The difference between "fuzzy" and "fuzzy-prio", is the latter supports an additional attribute `data-prio-filter-value` // to specify a custom priority value that will be weighted more heavily when determining the score. // // // //
    //
  • Foo
  • //
  • Bar
  • //
  • Baz
  • //
// // // Events // // filterable:change // // * **Bubbles** Yes // * **Cancelable** No // * **Target** List container Element // * **Context info** // * relatedTarget - Input field Element // // $('ul').on('filterable:change', function() { // console.log('order changed') // }) // import {addThrottledInputEventListener, removeThrottledInputEventListener} from '../throttled-input' import {fire, on} from 'delegated-events' import {announce} from '@github-ui/aria-live' import {filterList} from '../filter-list' import {filterSortList} from '../filter-sort-list' import {fuzzyScore} from '@github-ui/fuzzy-filter' import {microtask} from '@github-ui/eventloop-tasks' import {observe} from '@github/selector-observer' import {substringMemoryFilterList} from '../substring-memory-filter-list' import {labelsTypeaheadFilterList} from '../labels-typeahead-filter-list' observe('.js-filterable-field', { constructor: HTMLInputElement, initialize(field) { if (!field.autocomplete) { field.autocomplete = 'off' } // A null value will default to whatever is specified within `throttled-input.ts` const throttleWaitInMs = field.hasAttribute('type-ahead') ? 200 : null let value = field.value async function onInputChange(input: HTMLInputElement | HTMLTextAreaElement) { if (value === input.value) return value = input.value await microtask() fire(input, 'filterable:change') } async function onFocus() { value = field.value await microtask() fire(field, 'filterable:change') } return { add(el) { el.addEventListener('focus', onFocus) addThrottledInputEventListener(el, onInputChange, {wait: throttleWaitInMs}) if (document.activeElement === el) onFocus() }, remove(el) { el.removeEventListener('focus', onFocus) removeThrottledInputEventListener(el, onInputChange) }, } }, }) // Trigger 'filterable:change' on an input after any // direct val() calls on('filterable:change', '.js-filterable-field', async function (event: Event) { const target = event.currentTarget as HTMLInputElement const queryString = target.value.trim().toLowerCase() const filterable = document.querySelectorAll(`[data-filterable-for="${target.id}"]`) for (const list of filterable) { const visible = await filter(list, queryString) if (visible === -1) return if (document.activeElement && target === document.activeElement) { announce(`${visible} results found.`) } list.dispatchEvent( new CustomEvent('filterable:change', { bubbles: true, cancelable: false, detail: { inputField: target, }, }), ) } }) function defaultText(content: Element): string { return content.hasAttribute('data-filter-value') ? content.getAttribute('data-filter-value')!.toLowerCase().trim() : content.textContent.toLowerCase().trim() } async function filter(list: Element, queryString: string): Promise { const limit = parseInt(list.getAttribute('data-filterable-limit')!, 10) || null let visible = 0 switch (list.getAttribute('data-filterable-type')) { case 'fuzzy-prio': { const searchQuery = queryString.toLowerCase() const sortKey = (item: HTMLElement) => { const prioText = item.getAttribute('data-prio-filter-value')!.toLowerCase().trim() const text = item.textContent.toLowerCase().trim() // Increase the weighting of the score of the custom priority value const prioScore = fuzzyScore(prioText, searchQuery, 0.01) * 2 let score = fuzzyScore(text, searchQuery, 0.01) if (prioScore > score) score = prioScore return score > 0 ? {score, text} : null } visible = filterSortList(list, queryString, {limit, sortKey}) break } case 'fuzzy': { const searchQuery = queryString.toLowerCase() const sortKey = (item: HTMLElement) => { const text = defaultText(item) const score = fuzzyScore(text, searchQuery) return score > 0 ? {score, text} : null } visible = filterSortList(list, queryString, {limit, sortKey}) break } case 'substring': visible = filterList(list, queryString.toLowerCase(), substring, {limit}) break case 'substring-memory': visible = await substringMemoryFilterList(list, queryString, {limit}) break case 'labels-typeahead': visible = await labelsTypeaheadFilterList(list, queryString, {limit}) break default: visible = filterList(list, queryString.toLowerCase(), prefix, {limit}) break } list.classList.toggle('filterable-active', queryString.length > 0) list.classList.toggle('filterable-empty', visible === 0) return visible } function prefix(el: Element, queryString: string): boolean { return el.textContent.toLowerCase().trim().startsWith(queryString) } // Does the text of the given element match the given query string? // // Note: you can add a `data-skip-substring-filter` attribute to exclude an // element from substring filtering. // // Returns Boolean or null, if element cannot be filtered function substring(el: Element, queryString: string): boolean | null { if (el.hasAttribute('data-skip-substring-filter')) return null if (el.classList.contains('select-menu-no-results')) return null const target = el.querySelector('[data-filterable-item-text]') || el return target.textContent.toLowerCase().trim().includes(queryString) } // Toggle new create new item form when filter doesn't match any existing items on('filterable:change', 'details-menu .select-menu-list', function (event) { const list = event.currentTarget const form = list.querySelector('.js-new-item-form') if (form) { toggleForm(list, form, event.detail.inputField.value) } }) function toggleForm(list: Element, form: Element, filterText: string) { const show = filterText.length > 0 && !itemExists(list, filterText) list.classList.toggle('is-showing-new-item-form', show) if (!show) return form.querySelector('.js-new-item-name')!.textContent = filterText const item = form.querySelector('.js-new-item-value') if (item instanceof HTMLInputElement || item instanceof HTMLButtonElement) { item.value = filterText } } // Detect if filtered item is already present in the list. // // container - filterable list element // filterText - String value of filter field // // Returns true if item already exists, otherwise false. function itemExists(container: Element, filterText: string): boolean { for (const item of container.querySelectorAll('[data-menu-button-text]')) { const text = (item as HTMLElement).textContent.toLowerCase().trim() if (text === filterText.toLowerCase()) { return true } } return false } // Hoist empty class to parent for styling. observe('tab-container .select-menu-list .filterable-empty, details-menu .select-menu-list .filterable-empty', { add(el) { const list = el.closest('.select-menu-list')! list.classList.add('filterable-empty') }, remove(el) { const list = el.closest('.select-menu-list')! list.classList.remove('filterable-empty') }, }) // Installs observer to account for sticky/fixed overlay offsets when navigating // to a fragment. import {computeFixedYOffset, scrollToFragmentTarget} from '../sticky-scroll-into-view' import hashChange from './hash-change' import {on} from 'delegated-events' import {SOFT_NAV_STATE} from '@github-ui/soft-nav/states' function scrollTargetIntoViewIfNeeded() { const root = document.firstElementChild! as HTMLHtmlElement if (root.classList.contains('js-skip-scroll-target-into-view')) return if (computeFixedYOffset()) { scrollToFragmentTarget(document) } } hashChange(scrollTargetIntoViewIfNeeded) on('click', 'a[href^="#"]', function (event) { const {currentTarget} = event if (!(currentTarget instanceof HTMLAnchorElement)) return // this defers the execution of scrollTargetIntoViewIfNeeded until after all the click stuff happened, including after scroll setTimeout(scrollTargetIntoViewIfNeeded, 0) }) // After a soft navigation, scroll to the fragment target if there is one. // Turbo frame navigations restore the hash in the URL but don't scroll to it. if (typeof document !== 'undefined') { document.addEventListener(SOFT_NAV_STATE.SUCCESS, () => { scrollToFragmentTarget(document) }) } import {filterSort} from '@github-ui/filter-sort' import {compare, fuzzyScore} from '@github-ui/fuzzy-filter' import type {QueryEvent, FilterProvider} from '@github-ui/query-builder-element/query-builder-api' import {FilterItem, Octicon} from '@github-ui/query-builder-element/query-builder-api' import type {QueryBuilderElement} from '@github-ui/query-builder-element' import {CaretPositionKind, isContentNode, isQualifier} from '../parsing/common' import type {ParsedIntermediateRepresentation} from '../qbsearch-input-element' import type {BaseNode} from '@github/blackbird-parser' // eslint-disable-next-line import/no-namespace import type * as Parsing from '../parsing/parsing' export class FixedValuesProvider extends EventTarget implements FilterProvider { priority = 3 name = 'Values' singularItemName = 'value' value = 'value' type = 'filter' as const manuallyDetermineFilterEligibility = true #parsing: typeof Parsing | undefined queryBuilder: QueryBuilderElement constructor(queryBuilder: QueryBuilderElement) { super() this.queryBuilder = queryBuilder this.queryBuilder.addEventListener('query', this) } async handleEvent(event: QueryEvent) { const state = event.parsedMetadata as ParsedIntermediateRepresentation | undefined if (!state) { return [] } if ( state.caretPositionKind !== CaretPositionKind.OtherQualifier && state.caretPositionKind !== CaretPositionKind.Is ) { return [] } if (!state.caretSelectedNode || !isQualifier(state.caretSelectedNode)) { return [] } if (!this.#parsing) { this.#parsing = await import('../parsing/parsing') } let matches = [] const isLicense = state.caretSelectedNode.qualifier === 'License' const isLanguage = state.caretSelectedNode.qualifier === 'Language' if (isLicense) { matches = [ ['BSD Zero Clause License', '0bsd'], ['MIT License', 'mit'], ['Apache License 2.0', 'apache-2.0'], ['Creative Commons', 'cc'], ['GNU General Public License', 'gpl'], ['GNU Lesser General Public License', 'lgpl'], ] } else { matches = this.#parsing .getPossibleQualifierValues( this.#parsing.chooseSearchType(state.ast as BaseNode, true), state.caretSelectedNode.qualifier, ) .map(r => [r, r]) } let term = state.query if (state.caretSelectedNode && isQualifier(state.caretSelectedNode)) { if (isContentNode(state.caretSelectedNode.content)) { term = state.caretSelectedNode.content.value as string } else { term = '' } } if (term.length > 0) { const fuzzyQuery = term.replace(/\s/g, '') const key = (r: string[]) => { const t = r[0] === r[1] ? r[0]! : `${r[0]} ${r[1]}` const score = fuzzyScore(t, fuzzyQuery) return score > 0 ? {score, text: t} : undefined } matches = filterSort(matches, key, compare) } for (const suggestion of matches.slice(0, 5)) { if (state.caretSelectedNode && isQualifier(state.caretSelectedNode)) { let rewriteStart = state.caretSelectedNode.location.end let rewriteEnd = state.caretSelectedNode.location.end if (isContentNode(state.caretSelectedNode.content)) { rewriteStart = state.caretSelectedNode.content.location.start rewriteEnd = state.caretSelectedNode.content.location.end } const quotedValue = suggestion[1]!.includes(' ') ? `"${suggestion[1]}"` : suggestion[1]! const newQuery = `${state.query.slice(0, rewriteStart) + quotedValue} ${state.query.slice(rewriteEnd)}` const action = { replaceQueryWith: newQuery, moveCaretTo: rewriteStart + quotedValue.length + 1, } this.dispatchEvent( new FilterItem({ filter: 'owner', value: suggestion[0]!, icon: isLanguage ? Octicon.Circle : undefined, priority: 0, action, }), ) } } } } import {displayFlash} from '../flash' import {observe} from '@github/selector-observer' observe('template.js-flash-template', { constructor: HTMLTemplateElement, add(el) { displayFlash(el) }, }) import {loaded} from '@github-ui/document-ready' // Flash // // Fades out and removes flash element from the page on close. // // Markup // //
//
// <%= octicon('x', :class => 'flash-close js-flash-close') %> // Flash Message //
//
// import {on} from 'delegated-events' // Only headings and focusable elements are allowed to be passed in as targets, // otherwise they won't exist in the allFocusableElements array. type FocusableElementsAndHeadings = | HTMLButtonElement | HTMLAnchorElement | HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLHeadingElement // Ensures that focus is not lost when a user dismisses a flash message. // Finds the closest, previous focusable element or

that is not hidden or disabled and moves focus to that element. const focusPreviousElementInDOM = (targetElement: FocusableElementsAndHeadings) => { // Get all focusable elements and headings (h1-h3) in the DOM that are not disabled or hidden const allFocusableElementsAndHeadings: FocusableElementsAndHeadings[] = Array.from( document.querySelectorAll( 'h1:not([hidden]),h2:not([hidden]),h3:not([hidden]),button:not([disabled]):not([hidden]),a:not([hidden]),input:not([disabled]):not([hidden]), select:not([disabled]):not([hidden]), textarea:not([disabled]):not([hidden]), [tabindex]:not([tabindex="-1"]):not([disabled]):not([hidden])', ), ) const visibleElements = Array.from(allFocusableElementsAndHeadings).filter(element => { // Check if the element and it's parent element is visible and not disabled or hidden if ( !element.getAttribute('aria-hidden') && !(element.offsetWidth <= 0 && element.offsetHeight <= 0) && (element?.offsetParent as HTMLElement)?.style.visibility !== 'hidden' ) { return true } }) const indexOfElement = visibleElements.indexOf(targetElement) if (indexOfElement !== -1 && indexOfElement > 0) { // Get the element right before the target element const elementBefore = visibleElements[indexOfElement - 1] // Forces the heading to have a tabindex of -1 so that it can be focused if ( elementBefore && (elementBefore.tagName === 'H1' || elementBefore.tagName === 'H2' || elementBefore.tagName === 'H3') ) { elementBefore.setAttribute('tabindex', '-1') } elementBefore?.focus() } } on('click', '.js-flash-close', function (event) { const container = event.currentTarget.closest('.flash-messages') const dismissButton = event.target as HTMLButtonElement focusPreviousElementInDOM(dismissButton) const flash = event.currentTarget.closest('.flash') flash!.remove() if (container && !container.querySelector('.flash')) { container.remove() } }) /** * Inserts an sr-only span with a non-breaking space into the flash content. * The sr-only ensures there are no visual changes. /** */ export function insertNonBreakingSpace(flashAlertContent: HTMLElement) { const nonBreakingSpace = document.createTextNode('\u00A0') const span = document.createElement('span') span.classList.add('sr-only') span.appendChild(nonBreakingSpace) flashAlertContent.appendChild(span) } /** * Contains accessibility logic for server-rendered flash. * This JS ensures that the flash content with '.js-flash-alert[role="alert"]' is announced. * See: https://github.com/github/accessibility/issues/290 * Please consult #accessibility if you have any questions. */ ;(async function () { await loaded const flashAlertContent: HTMLElement | null = document.querySelector('.js-flash-alert[role="alert"]') if (flashAlertContent) { // Delay and non-breaking space to ensure that screen readers announce this alert. setTimeout(() => { insertNonBreakingSpace(flashAlertContent) }, 200) } })() import {deleteCookie, getCookies} from '@github-ui/cookies' import {TemplateInstance} from '@github/template-parts' const ALLOWED_FLASH_COOKIES = ['flash-notice', 'flash-error', 'flash-message', 'flash-warn', 'flash-success'] // Find cookies named something like "flash-notice" and render the // .js-flash-template template for them. export function displayFlash(el: HTMLTemplateElement) { for (const {key, value} of ALLOWED_FLASH_COOKIES.flatMap(getCookies)) { deleteCookie(key) let message try { message = atob(decodeURIComponent(value)) } catch { continue } el.after(new TemplateInstance(el, {className: key, message})) } } // Delayed Focus Events // // Provides a family cancelable focus/blur that trigger slightly later. // This makes it easier to build menus that only display when you are // focused in on a field. // // Events // // `focusin:delay` // // Fired when field is being focused for the first time. Will not fire // if field is blurred, and refocused in less than 200ms. // // * **Synchronicity** Sync // * **Bubbles** Yes // * **Cancelable** Yes // * **Target** Element that is receiving focus. // // `focusout:delay` // // Fired when field has been blurred for the first time. Won't fire if // the field is not refocused in under 200ms or the `focusout:delay` is // canceled. // // * **Synchronicity** Sync // * **Bubbles** Yes // * **Cancelable** No // * **Target** Element that is receiving focus. // // ```javascript // on('focusin:delay', function() { // showAutocompletions() // }) // // on('focusout:delay', function() { // hideAutocompletions() // }) // ``` // import {fire} from 'delegated-events' const focused = new WeakMap() // We use the "focus" and "blur" event in the capture phase because Firefox // historically had a limitation with "focusin" and "focusout" not bubbling. document.addEventListener( 'focus', function (event: Event) { const target = event.target if (target instanceof Element && !focused.get(target)) { fire(target, 'focusin:delay') focused.set(target, true) } }, {capture: true}, ) document.addEventListener( 'blur', function (event: Event) { setTimeout(function () { const target = event.target if (target instanceof Element && target !== document.activeElement) { fire(target, 'focusout:delay') focused.delete(target) } }, 200) }, {capture: true}, ) // Commenting: Focus CSS hacks // // Bubbles js-comment-field focus state up to js-write-bucket. // // So we can have a focused ring around the drag and drop section. // // TODO: `focused` class should be `is-focused` import {onFocus} from '@github-ui/onfocus' // Sync focused class. function toggleFocus(el: Element, focused: boolean) { const container = el.closest('.js-write-bucket') if (container) { container.classList.toggle('focused', focused) } } // Clean up focused class on blur. function blurred(event: Event) { const el = event.currentTarget if (el instanceof Element) { toggleFocus(el, false) } } onFocus('.js-comment-field', function (el) { toggleFocus(el, true) el.addEventListener('blur', blurred, {once: true}) }) import {announce} from '@github-ui/aria-live' import {remoteForm} from '@github-ui/remote-form' remoteForm('.js-form-toggle-target', async function (form, wants) { try { await wants.text() } catch { return } const container = form.closest('.js-form-toggle-container')! const button = container.querySelector('.js-form-toggle-target[hidden]') button!.hidden = false form.hidden = true const feedback = form.getAttribute('data-sr-feedback') || '' if (feedback) { announce(feedback) } button?.querySelector('input[type=submit], button[type=submit]')?.focus() }) // Find element within document matching location hash. export function findFragmentTarget(document: Document, hash: string = location.hash): Element | null { return findElementByFragmentName(document, decodeFragmentValue(hash)) } // Find element within document matching id or name. export function findElementByFragmentName(document: Document, name: string): Element | null { if (name === '') return null return document.getElementById(name) || document.getElementsByName(name)[0]! } // Decode location hash. export function decodeFragmentValue(hash: string): string { try { return decodeURIComponent(hash.slice(1)) } catch { return '' } } import {score as fuzzyScore, hasMatch, positions} from 'fzy.js' const getScore = (value: string, text: string, minScore: number) => { if (!hasMatch(value, text)) return -Infinity const score = fuzzyScore(value, text) if (score < minScore) return -Infinity return score } const highlightElement = (node: HTMLElement, value: string, text: string) => { node.textContent = '' let lastPosition = 0 for (const i of positions(value, text)) { const slice = text.slice(lastPosition, i) if (slice !== '') { node.appendChild(document.createTextNode(text.slice(lastPosition, i))) } lastPosition = i + 1 const mark = document.createElement('mark') mark.textContent = text[i]! node.appendChild(mark) } node.appendChild(document.createTextNode(text.slice(lastPosition))) } interface sortAbort { aborted: boolean } const sorting: WeakMap = new WeakMap() type FuzzyListLazyRenderCallback = (text: string) => Node interface state { timer: number | null handler: MutationObserver items: Set lazyItems: Map } const states: WeakMap = new WeakMap() const textCache: WeakMap = new WeakMap() const getTextCache = (item: Node) => { if (!textCache.has(item) && item instanceof HTMLElement) { const value = (item.getAttribute('data-value') || item.textContent || '').trim() textCache.set(item, value) return value } return textCache.get(item) || '' } class FuzzyListElement extends HTMLElement { connectedCallback() { /* eslint-disable-next-line wc/no-child-traversal-in-connectedcallback */ const list = this.querySelector('ul') if (!list) return const items = new Set(list.querySelectorAll('li')) /* eslint-disable-next-line wc/no-child-traversal-in-connectedcallback */ const inputEl = this.querySelector('input') if (inputEl instanceof HTMLInputElement) { inputEl.addEventListener('input', () => { this.value = inputEl.value }) } const handler = new MutationObserver(mutations => { let update = false for (const mutation of mutations) { if (mutation.type === 'childList' && mutation.addedNodes.length) { for (const item of mutation.addedNodes) { if (item instanceof HTMLLIElement && !items.has(item)) { const text = getTextCache(item) update = update || hasMatch(this.value, text) items.add(item) } } } } if (update) this.sort() }) handler.observe(list, {childList: true}) const state = {handler, items, lazyItems: new Map(), timer: null} states.set(this, state) } disconnectedCallback() { const state = states.get(this) if (state) { state.handler.disconnect() states.delete(this) } } addLazyItems(dataset: string[], render: FuzzyListLazyRenderCallback) { const state = states.get(this) if (!state) return const {lazyItems} = state const {value} = this let update = false for (const item of dataset) { lazyItems.set(item, render) update = update || (Boolean(value) && hasMatch(value, item)) } if (update) this.sort() } sort() { const oldSortAbort = sorting.get(this) if (oldSortAbort) oldSortAbort.aborted = true const sortAbort = {aborted: false} sorting.set(this, sortAbort) const {minScore, markSelector, maxMatches, value} = this const state = states.get(this) if (!state) return if (!this.dispatchEvent(new CustomEvent('fuzzy-list-will-sort', {cancelable: true, detail: value}))) return const {items, lazyItems} = state const shouldMark = this.hasAttribute('mark-selector') const list = this.querySelector('ul') if (!list) return const itemsToRender: Array< {render: FuzzyListLazyRenderCallback; text: string; score: number} | {item: Node; score: number} > = [] if (value) { for (const item of items) { const text = getTextCache(item) const score = getScore(value, text, minScore) if (score === -Infinity) continue itemsToRender.push({item, score}) } for (const [text, render] of lazyItems) { const score = getScore(value, text, minScore) if (score === -Infinity) continue itemsToRender.push({text, render, score}) } itemsToRender.sort((a, b) => b.score - a.score).splice(maxMatches) } else { let i = itemsToRender.length for (const item of items) { if (i >= maxMatches) break itemsToRender.push({item, score: 1}) i += 1 } for (const [text, render] of lazyItems) { if (i >= maxMatches) break itemsToRender.push({text, render, score: 1}) i += 1 } } requestAnimationFrame(() => { if (sortAbort.aborted) return // Store a reference to the checked input (if there is one) as when we // append other (stale) items they could be checked, and we want to keep // the originally checked item as the only checked item const checkedInputBeforeFilter = list.querySelector('input[type="radio"]:checked') list.textContent = '' let offset = 0 const nextBatch = () => { if (sortAbort.aborted) return const end = Math.min(itemsToRender.length, offset + 100) const fragment = document.createDocumentFragment() for (let i = offset; i < end; i += 1) { const itemToRender = itemsToRender[i]! let item = null if ('render' in itemToRender && 'text' in itemToRender) { const {render, text} = itemToRender item = render(text) items.add(item) textCache.set(item, text) lazyItems.delete(text) } else if ('item' in itemToRender) { item = itemToRender.item } if (item instanceof HTMLElement) { if (shouldMark) { highlightElement( markSelector ? item.querySelector(markSelector) || item : item, shouldMark ? value : '', getTextCache(item), ) } fragment.appendChild(item) } } offset = end // Loop through all items that are about to be rendered - if there are // any radios that are checked that conflict with the one checked item, // then reset them to unchecked state let inputStateReset = false if (checkedInputBeforeFilter instanceof HTMLInputElement) { for (const checkedInput of fragment.querySelectorAll('input[type="radio"]:checked')) { if (checkedInput instanceof HTMLInputElement && checkedInput.value !== checkedInputBeforeFilter.value) { checkedInput.checked = false inputStateReset = true } } } if (this.getAttribute('data-tab-only-first')) { // Only make first button tabbable, others are navigable by arrow keys // https://github.com/github/accessibility-audits/issues/6591 const buttons = this.querySelectorAll('button.js-emoji-button') for (const button of buttons) { button.setAttribute('tabindex', '-1') } buttons.item(0)?.setAttribute('tabindex', '0') } else { // Make sure that the fragments we're appending are accessible by 'tab' for (const button of fragment.querySelectorAll('button[tabindex="-1"]')) { button.setAttribute('tabindex', '0') } } list.appendChild(fragment) // If any checked items were changed then a change event should be // fired to let other observers know if (checkedInputBeforeFilter && inputStateReset) { checkedInputBeforeFilter.dispatchEvent(new Event('change', {bubbles: true})) } if (end < itemsToRender.length) { requestAnimationFrame(nextBatch) } else { list.hidden = itemsToRender.length === 0 const emptyEl = this.querySelector('[data-fuzzy-list-show-on-empty]') if (emptyEl) { emptyEl.hidden = itemsToRender.length > 0 } this.dispatchEvent(new CustomEvent('fuzzy-list-sorted', {detail: itemsToRender.length})) } } nextBatch() }) } get value(): string { return this.getAttribute('value') || '' } set value(value: string) { this.setAttribute('value', value) } get markSelector(): string { return this.getAttribute('mark-selector') || '' } set markSelector(value: string) { if (value) { this.setAttribute('mark-selector', value) } else { this.removeAttribute('mark-selector') } } get minScore(): number { return Number(this.getAttribute('min-score') || 0) } set minScore(value: number) { if (Number.isNaN(value)) return this.setAttribute('min-score', String(value)) } get maxMatches(): number { return Number(this.getAttribute('max-matches') || Infinity) } set maxMatches(value: number) { if (Number.isNaN(value)) return this.setAttribute('max-matches', String(value)) } get ariaLiveElement(): HTMLElement | undefined { const targetId = this.getAttribute('data-aria-live-element') if (!targetId) return const element = document.getElementById(targetId) if (!element) return return element } static get observedAttributes(): string[] { return ['value', 'mark-selector', 'min-score', 'max-matches'] } attributeChangedCallback(name: string, oldValue: string, newValue: string) { if (oldValue === newValue) return const state = states.get(this) if (!state) return if (state.timer) window.clearTimeout(state.timer) state.timer = window.setTimeout(() => this.sort(), 100) } } export default FuzzyListElement if (!window.customElements.get('fuzzy-list')) { window.FuzzyListElement = FuzzyListElement window.customElements.define('fuzzy-list', FuzzyListElement) } declare global { interface Window { FuzzyListElement: typeof FuzzyListElement } } import {score as fuzzyScore, hasMatch, positions} from 'fzy.js' const getScore = (value: string, text: string, minScore: number) => { if (!hasMatch(value, text)) return -Infinity const score = fuzzyScore(value, text) if (score < minScore) return -Infinity return score } const highlightElement = (node: HTMLElement, value: string, text: string) => { node.textContent = '' let lastPosition = 0 for (const i of positions(value, text)) { const slice = text.slice(lastPosition, i) if (slice !== '') { node.appendChild(document.createTextNode(text.slice(lastPosition, i))) } lastPosition = i + 1 const mark = document.createElement('mark') mark.textContent = text[i]! node.appendChild(mark) } node.appendChild(document.createTextNode(text.slice(lastPosition))) } interface sortAbort { aborted: boolean } const sorting: WeakMap = new WeakMap() type FuzzyListLazyRenderCallback = (text: string) => Node interface state { timer: number | null handler: MutationObserver items: Set lazyItems: Map } const states: WeakMap = new WeakMap() const textCache: WeakMap = new WeakMap() const getTextCache = (item: Node) => { if (!textCache.has(item) && item instanceof HTMLElement) { const value = (item.getAttribute('data-value') || item.textContent || '').trim() textCache.set(item, value) return value } return textCache.get(item) || '' } class FuzzyListElement extends HTMLElement { connectedCallback() { /* eslint-disable-next-line wc/no-child-traversal-in-connectedcallback */ const list = this.querySelector('ul') if (!list) return const items = new Set(list.querySelectorAll('li')) /* eslint-disable-next-line wc/no-child-traversal-in-connectedcallback */ const inputEl = this.querySelector('input') if (inputEl instanceof HTMLInputElement) { inputEl.addEventListener('input', () => { this.value = inputEl.value }) } const handler = new MutationObserver(mutations => { let update = false for (const mutation of mutations) { if (mutation.type === 'childList' && mutation.addedNodes.length) { for (const item of mutation.addedNodes) { if (item instanceof HTMLLIElement && !items.has(item)) { const text = getTextCache(item) update = update || hasMatch(this.value, text) items.add(item) } } } } if (update) this.sort() }) handler.observe(list, {childList: true}) const state = {handler, items, lazyItems: new Map(), timer: null} states.set(this, state) } disconnectedCallback() { const state = states.get(this) if (state) { state.handler.disconnect() states.delete(this) } } addLazyItems(dataset: string[], render: FuzzyListLazyRenderCallback) { const state = states.get(this) if (!state) return const {lazyItems} = state const {value} = this let update = false for (const item of dataset) { lazyItems.set(item, render) update = update || (Boolean(value) && hasMatch(value, item)) } if (update) this.sort() } sort() { const oldSortAbort = sorting.get(this) if (oldSortAbort) oldSortAbort.aborted = true const sortAbort = {aborted: false} sorting.set(this, sortAbort) const {minScore, markSelector, maxMatches, value} = this const state = states.get(this) if (!state) return if (!this.dispatchEvent(new CustomEvent('fuzzy-list-will-sort', {cancelable: true, detail: value}))) return const {items, lazyItems} = state const shouldMark = this.hasAttribute('mark-selector') const list = this.querySelector('ul') if (!list) return const itemsToRender: Array< {render: FuzzyListLazyRenderCallback; text: string; score: number} | {item: Node; score: number} > = [] if (value) { for (const item of items) { const text = getTextCache(item) const score = getScore(value, text, minScore) if (score === -Infinity) continue itemsToRender.push({item, score}) } for (const [text, render] of lazyItems) { const score = getScore(value, text, minScore) if (score === -Infinity) continue itemsToRender.push({text, render, score}) } itemsToRender.sort((a, b) => b.score - a.score).splice(maxMatches) } else { let i = itemsToRender.length for (const item of items) { if (i >= maxMatches) break itemsToRender.push({item, score: 1}) i += 1 } for (const [text, render] of lazyItems) { if (i >= maxMatches) break itemsToRender.push({text, render, score: 1}) i += 1 } } requestAnimationFrame(() => { if (sortAbort.aborted) return // Store a reference to the checked input (if there is one) as when we // append other (stale) items they could be checked, and we want to keep // the originally checked item as the only checked item const checkedInputBeforeFilter = list.querySelector('input[type="radio"]:checked') list.textContent = '' let offset = 0 const nextBatch = () => { if (sortAbort.aborted) return const end = Math.min(itemsToRender.length, offset + 100) const fragment = document.createDocumentFragment() for (let i = offset; i < end; i += 1) { const itemToRender = itemsToRender[i]! let item = null if ('render' in itemToRender && 'text' in itemToRender) { const {render, text} = itemToRender item = render(text) items.add(item) textCache.set(item, text) lazyItems.delete(text) } else if ('item' in itemToRender) { item = itemToRender.item } if (item instanceof HTMLElement) { if (shouldMark) { highlightElement( markSelector ? item.querySelector(markSelector) || item : item, shouldMark ? value : '', getTextCache(item), ) } fragment.appendChild(item) } } offset = end // Loop through all items that are about to be rendered - if there are // any radios that are checked that conflict with the one checked item, // then reset them to unchecked state let inputStateReset = false if (checkedInputBeforeFilter instanceof HTMLInputElement) { for (const checkedInput of fragment.querySelectorAll('input[type="radio"]:checked')) { if (checkedInput instanceof HTMLInputElement && checkedInput.value !== checkedInputBeforeFilter.value) { checkedInput.checked = false inputStateReset = true } } } if (this.getAttribute('data-tab-only-first')) { // Only make first button tabbable, others are navigable by arrow keys // https://github.com/github/accessibility-audits/issues/6591 const buttons = this.querySelectorAll('button.js-emoji-button') for (const button of buttons) { button.setAttribute('tabindex', '-1') } buttons.item(0)?.setAttribute('tabindex', '0') } else { // Make sure that the fragments we're appending are accessible by 'tab' for (const button of fragment.querySelectorAll('button[tabindex="-1"]')) { button.setAttribute('tabindex', '0') } } list.appendChild(fragment) // If any checked items were changed then a change event should be // fired to let other observers know if (checkedInputBeforeFilter && inputStateReset) { checkedInputBeforeFilter.dispatchEvent(new Event('change', {bubbles: true})) } if (end < itemsToRender.length) { requestAnimationFrame(nextBatch) } else { list.hidden = itemsToRender.length === 0 const emptyEl = this.querySelector('[data-fuzzy-list-show-on-empty]') if (emptyEl) { emptyEl.hidden = itemsToRender.length > 0 } this.dispatchEvent(new CustomEvent('fuzzy-list-sorted', {detail: itemsToRender.length})) } } nextBatch() }) } get value(): string { return this.getAttribute('value') || '' } set value(value: string) { this.setAttribute('value', value) } get markSelector(): string { return this.getAttribute('mark-selector') || '' } set markSelector(value: string) { if (value) { this.setAttribute('mark-selector', value) } else { this.removeAttribute('mark-selector') } } get minScore(): number { return Number(this.getAttribute('min-score') || 0) } set minScore(value: number) { if (Number.isNaN(value)) return this.setAttribute('min-score', String(value)) } get maxMatches(): number { return Number(this.getAttribute('max-matches') || Infinity) } set maxMatches(value: number) { if (Number.isNaN(value)) return this.setAttribute('max-matches', String(value)) } get ariaLiveElement(): HTMLElement | undefined { const targetId = this.getAttribute('data-aria-live-element') if (!targetId) return const element = document.getElementById(targetId) if (!element) return return element } static get observedAttributes(): string[] { return ['value', 'mark-selector', 'min-score', 'max-matches'] } attributeChangedCallback(name: string, oldValue: string, newValue: string) { if (oldValue === newValue) return const state = states.get(this) if (!state) return if (state.timer) window.clearTimeout(state.timer) state.timer = window.setTimeout(() => this.sort(), 100) } } export default FuzzyListElement if (!window.customElements.get('fuzzy-list')) { window.FuzzyListElement = FuzzyListElement window.customElements.define('fuzzy-list', FuzzyListElement) } declare global { interface Window { FuzzyListElement: typeof FuzzyListElement } } import FuzzyListElement from '../fuzzy-list-element' import {announce} from '@github-ui/aria-live' import {fromEvent} from '@github-ui/subscription' import {observe} from '@github/selector-observer' function noticeHandler(event: Event) { if (!(event instanceof CustomEvent)) return const options = {} as {element?: HTMLElement} if (event.target instanceof FuzzyListElement) { options.element = event.target.ariaLiveElement } announce(`${event.detail} results found.`, options) } observe('fuzzy-list', { constructor: FuzzyListElement, subscribe: fuzzyList => fromEvent(fuzzyList, 'fuzzy-list-sorted', noticeHandler), }) import {on} from 'delegated-events' // Behaviors related to special cases in GFM content // Toggles quoted email reply content on('click', '.email-hidden-toggle', function (event) { // assert nextElementSibling is .email-hidden-reply const replyContainer = event.currentTarget.nextElementSibling if (!(replyContainer instanceof HTMLElement)) return replyContainer.style.display = '' replyContainer.classList.toggle('expanded') event.preventDefault() }) import {controller, target, targets} from '@github/catalyst' @controller('git-clone-help') class GitCloneHelpElement extends HTMLElement { @target declare helpField: HTMLInputElement @targets declare helpTexts: HTMLElement[] @targets declare cloneURLButtons: HTMLElement[] updateURL(event: Event) { const switcher = event.currentTarget as HTMLElement const url = switcher.getAttribute('data-url') || '' this.helpField.value = url if (switcher.matches('.js-git-protocol-clone-url')) { for (const el of this.helpTexts) { el.textContent = url } } for (const button of this.cloneURLButtons) { button.classList.remove('selected') } switcher.classList.add('selected') } } performance.mark("js-parse-end:github-elements-6065e846b60ac1a6.js"); "use strict";(globalThis.webpackChunk_github_ui_github_ui=globalThis.webpackChunk_github_ui_github_ui||[]).push([["79117"],{36327(t,e,i){i(39242),i(58466),i(74057),i(91707),i(62044),i(90204);var n=i(28078);i(524),i(27552),i(72705),i(9841),i(44911),i(92284);var s=i(78143),r=i(70730);r.cg&&(r.cg.IncludeFragmentElement.prototype.fetch=function(t){let e=this.getAttribute("data-nonce")||"";return(0,s.tV)(t.headers,e),window.fetch(t)}),i(48176);var a=i(31635),o=i(94571);class l extends HTMLElement{updateURL(t){let e=t.currentTarget,i=e.getAttribute("data-url")||"";if(this.helpField.value=i,e.matches(".js-git-protocol-clone-url"))for(let t of this.helpTexts)t.textContent=i;for(let t of this.cloneURLButtons)t.classList.remove("selected");e.classList.add("selected")}}(0,a.Cg)([o.aC],l.prototype,"helpField",void 0),(0,a.Cg)([o.zV],l.prototype,"helpTexts",void 0),(0,a.Cg)([o.zV],l.prototype,"cloneURLButtons",void 0),l=(0,a.Cg)([(0,o.p_)("git-clone-help")],l);var u=i(35750),d=i(18150),h=i(85242),c=i(50467),m=new WeakMap,p=new WeakMap,f=new WeakMap,g=new WeakMap;class v extends HTMLElement{get query(){return this.ownerInput?this.ownerInput.value:this.getAttribute("query")||""}set query(t){this.setAttribute("query",t)}get ownerInput(){let t=this.ownerDocument.getElementById(this.getAttribute("data-owner-input")||"");return t instanceof HTMLInputElement?t:null}connectedCallback(){this.handleEvent(),this.ownerInput?.addEventListener("input",this),(0,h._)(this,f,new MutationObserver(()=>this.handleEvent()))}handleEvent(){(0,u._)(this,g)&&cancelAnimationFrame((0,u._)(this,g)),(0,h._)(this,g,requestAnimationFrame(()=>this.mark()))}disconnectedCallback(){this.ownerInput?.removeEventListener("input",this),(0,u._)(this,f).disconnect()}mark(){let t=this.textContent||"",e=this.query;if(t===(0,u._)(this,m)&&e===(0,u._)(this,p))return;(0,h._)(this,m,t),(0,h._)(this,p,e),(0,u._)(this,f).disconnect();let i=0,n=document.createDocumentFragment();for(let s of(this.positions||function(t,e){let i=[],n=0;for(let s=0;st.length)continue;""!==t.slice(i,s)&&n.appendChild(document.createTextNode(t.slice(i,s))),i=s+1;let e=document.createElement("mark");e.textContent=t[s],n.appendChild(e)}n.appendChild(document.createTextNode(t.slice(i))),this.replaceChildren(n),(0,u._)(this,f).observe(this,{attributes:!0,childList:!0,subtree:!0})}constructor(...t){super(...t),(0,d._)(this,m,{writable:!0,value:""}),(0,d._)(this,p,{writable:!0,value:""}),(0,d._)(this,f,{writable:!0,value:void 0}),(0,d._)(this,g,{writable:!0,value:void 0}),(0,c._)(this,"positions",void 0)}}(0,c._)(v,"observedAttributes",["query","data-owner-input"]),window.customElements.get("marked-text")||(window.MarkedTextElement=v,window.customElements.define("marked-text",v));var b=i(7431);class w extends HTMLElement{connectedCallback(){this.addEventListener("input",E)}disconnectedCallback(){this.removeEventListener("input",E)}}function E(t){var e,i;let n,s=t.currentTarget;if(!(s instanceof w))return;let r=t.target;if(!(r instanceof HTMLInputElement))return;let a=r.form;if(!(a instanceof HTMLFormElement))return;let o=(e=r.value,i={minimumCharacterCount:Number(s.getAttribute("minimum-character-count")),passphraseLength:Number(s.getAttribute("passphrase-length"))},(n={valid:!1,hasMinimumCharacterCount:e.length>=i.minimumCharacterCount,hasMinimumPassphraseLength:0!==i.passphraseLength&&e.length>=i.passphraseLength,hasLowerCase:/[a-z]/.test(e),hasNumber:/\d/.test(e)}).valid=n.hasMinimumPassphraseLength||n.hasMinimumCharacterCount&&n.hasLowerCase&&n.hasNumber,n);if(o.valid){r.setCustomValidity("");let t=s.querySelector("dl.form-group");t&&(t.classList.remove("errored"),t.classList.add("successed"))}else"true"!==s.getAttribute("skip-custom-validity")&&r.setCustomValidity(s.getAttribute("invalid-message")||"Invalid");(function(t,e){let i=t.querySelector("[data-more-than-n-chars]"),n=t.querySelector("[data-min-chars]"),s=t.querySelector("[data-number-requirement]"),r=t.querySelector("[data-letter-requirement]"),a=t.getAttribute("error-class")?.split(" ").filter(t=>t.length>0)||[],o=t.getAttribute("pass-class")?.split(" ").filter(t=>t.length>0)||[];for(let t of[i,n,s,r])t?.classList.remove(...a,...o);if(e.hasMinimumPassphraseLength&&i)i.classList.add(...o);else if(e.valid)n.classList.add(...o),s.classList.add(...o),r.classList.add(...o);else{let t=e.hasMinimumCharacterCount?o:a,l=e.hasNumber?o:a,u=e.hasLowerCase?o:a;i?.classList.add(...a),n.classList.add(...t),s.classList.add(...l),r.classList.add(...u)}})(s,o),(0,b.t)(a)}window.customElements.get("password-strength")||(window.PasswordStrengthElement=w,window.customElements.define("password-strength",w)),i(97698);class y extends n.T{async fetch(t,e){let i=await super.fetch(t),n=e||this.intervalMilliseconds;(!n||isNaN(n))&&(n=1e3);let s=isNaN(this.backoffMultiplier)?1.5:this.backoffMultiplier;return 202===i.status?(await new Promise(t=>{this.pollingTimeout=setTimeout(t,n)}),this.fetch(t,n*s)):i}refetch(){return this.cancelPolling(),super.refetch()}connectedCallback(){super.connectedCallback(),this.retryButton&&this.retryButton.addEventListener("click",()=>{this.refetch()})}disconnectedCallback(){this.cancelPolling()}cancelPolling(){this.pollingTimeout&&clearTimeout(this.pollingTimeout)}constructor(...t){super(...t),(0,c._)(this,"intervalMilliseconds",1e3),(0,c._)(this,"backoffMultiplier",1.5),(0,c._)(this,"pollingTimeout",null)}}(0,a.Cg)([o.aC],y.prototype,"retryButton",void 0),(0,a.Cg)([o.CF],y.prototype,"intervalMilliseconds",void 0),(0,a.Cg)([o.CF],y.prototype,"backoffMultiplier",void 0),y=(0,a.Cg)([(0,o.p_)("poll-include-fragment")],y);var C=i(35908);let _=t=>void 0===t||/\n/.test(t),x=["position:absolute;","overflow:auto;","word-wrap:break-word;","top:0px;","left:-9999px;"],L=["box-sizing","font-family","font-size","font-style","font-variant","font-weight","height","letter-spacing","line-height","max-height","min-height","padding-bottom","padding-left","padding-right","padding-top","border-bottom","border-left","border-right","border-top","text-decoration","text-indent","text-transform","width","word-spacing"],k=new WeakMap,M=new WeakMap;class A{destroy(){this.input.removeEventListener("paste",this.onpaste),this.input.removeEventListener("input",this.oninput),this.input.removeEventListener("keydown",this.onkeydown),this.input.removeEventListener("blur",this.onblur)}activate(t,e){this.input===document.activeElement&&this.setMenu(t,e)}deactivate(){let t=this.menu,e=this.combobox;return!!t&&!!e&&(this.createLink?.removeEventListener("hotkey-fire",this.onCreateCommandLinkKeyDown),this.menu=null,this.createLink=null,this.combobox=null,t.removeEventListener("combobox-commit",this.oncommit),t.removeEventListener("mousedown",this.onmousedown),e.destroy(),t.remove(),!0)}setMenu(t,e){this.deactivate(),this.menu=e,this.createLink=e.querySelector(".js-slash-command-menu-create-link"),e.id||(e.id=`text-expander-${Math.floor(1e5*Math.random()).toString()}`),this.expander.append(e);let i=e.querySelector(".js-command-list-container"),n={tabInsertsSuggestions:!1};i?this.combobox=new C.A(this.input,i,n):this.combobox=new C.A(this.input,e,n);let{top:s,left:r}=function(t,e=t.selectionEnd){let{mirror:i,marker:n}=function(t,e){let i,n,s=t.nodeName.toLowerCase();if("textarea"!==s&&"input"!==s)throw Error("expected textField to a textarea or input");let r=k.get(t);if(r&&r.parentElement===t.parentElement)r.textContent="";else{r=document.createElement("div"),k.set(t,r);let e=window.getComputedStyle(t),i=x.slice(0);"textarea"===s?i.push("white-space:pre-wrap;"):i.push("white-space:nowrap;");for(let t=0,n=L.length;t{i.remove()},5e3),{top:r.top-s.top,left:r.left-s.left}}(this.input,t.position),a=parseInt(window.getComputedStyle(this.input).fontSize);e.style.top=`${s+a}px`,e.style.left=`${r}px`,this.combobox.start(),e.addEventListener("combobox-commit",this.oncommit),e.addEventListener("mousedown",this.onmousedown),this.createLink?.addEventListener("hotkey-fire",this.onCreateCommandLinkKeyDown),this.combobox.navigate(1)}setValue(t){if(null==t)return;let e=this.match;if(!e)return;let{cursor:i,value:n}=this.replaceCursorMark(t);n=n?.length===0?n:`${n} `;let s=e.position-e.key.length,r=e.position+e.text.length;this.input.focus();let a=!1;try{this.input.setSelectionRange(s,r),a=document.execCommand("insertText",!1,n)}catch{a=!1}if(!a){let t=this.input.value.substring(0,e.position-e.key.length),i=this.input.value.substring(e.position+e.text.length);this.input.value=t+n+i}this.deactivate(),i=s+(i||n.length),this.input.selectionStart=i,this.input.selectionEnd=i}replaceCursorMark(t){let e=/%cursor%/gm,i=e.exec(t);return i?{cursor:i.index,value:t.replace(e,"")}:{cursor:null,value:t}}async onCommit({target:t}){if(!(t instanceof HTMLElement)||!this.combobox)return;let e=this.match;if(!e)return;let n={item:t,key:e.key,value:null},s=new CustomEvent("text-expander-value",{cancelable:!0,detail:n}),r=!this.expander.dispatchEvent(s),{onValue:a}=await i.e("43247").then(i.bind(i,92626));await a(this.expander,e.key,t),!r&&n.value&&this.setValue(n.value)}onBlur(){if(this.interactingWithMenu){this.interactingWithMenu=!1;return}this.deactivate()}onPaste(){this.justPasted=!0}async delay(t){return new Promise(e=>setTimeout(e,t))}async onInput(){if(this.justPasted){this.justPasted=!1;return}let t=this.findMatch();if(t){if(this.match=t,await this.delay(this.appropriateDelay()),this.match!==t)return;let e=await this.notifyProviders(t);if(!this.match)return;e?this.activate(t,e):this.deactivate()}else this.match=null,this.deactivate()}appropriateDelay(){return 250}findMatch(){let t=this.input.selectionEnd,e=this.input.value;for(let i of this.expander.getKeys()){let n=function(t,e,i){let n=t.lastIndexOf(e,i-1);if(-1===n||t.lastIndexOf(" ",i-1)>n||t.lastIndexOf("\n",i-1)>n)return;let s=t[n-1];if(!s||"\n"===s)return{word:t.substring(n+e.length,i),position:n+e.length,beginningOfLine:_(s)}}(e,i,t);if(n)return{text:n.word,key:i,position:n.position,beginningOfLine:n.beginningOfLine}}}async notifyProviders(t){let e=[],n=t=>e.push(t),s=new CustomEvent("text-expander-change",{cancelable:!0,detail:{provide:n,text:t.text,key:t.key}});if(!this.expander.dispatchEvent(s))return;let{onChange:r}=await i.e("43247").then(i.bind(i,92626));return r(this.expander,t.key,n,t.text),(await Promise.all(e)).filter(t=>t.matched).map(t=>t.fragment)[0]}onMousedown(){this.interactingWithMenu=!0}onKeydown(t){if("Tab"===t.key&&this.createLink){t.stopImmediatePropagation(),t.preventDefault();let e=this.combobox;this.combobox=null,this.createLink.focus(),this.combobox=e;return}"Escape"===t.key&&this.deactivate()&&(t.stopImmediatePropagation(),t.preventDefault())}onCreateCommandLinkKeyDown(t){t.stopImmediatePropagation(),t.preventDefault(),this.input?.focus()}constructor(t,e){(0,c._)(this,"expander",void 0),(0,c._)(this,"input",void 0),(0,c._)(this,"menu",void 0),(0,c._)(this,"createLink",void 0),(0,c._)(this,"oninput",void 0),(0,c._)(this,"onkeydown",void 0),(0,c._)(this,"onpaste",void 0),(0,c._)(this,"oncommit",void 0),(0,c._)(this,"onblur",void 0),(0,c._)(this,"onmousedown",void 0),(0,c._)(this,"combobox",void 0),(0,c._)(this,"match",void 0),(0,c._)(this,"justPasted",void 0),(0,c._)(this,"interactingWithMenu",void 0),this.expander=t,this.input=e,this.combobox=null,this.menu=null,this.createLink=null,this.match=null,this.justPasted=!1,this.oninput=this.onInput.bind(this),this.onpaste=this.onPaste.bind(this),this.onkeydown=this.onKeydown.bind(this),this.oncommit=this.onCommit.bind(this),this.onmousedown=this.onMousedown.bind(this),this.onblur=this.onBlur.bind(this),this.onCreateCommandLinkKeyDown=this.onCreateCommandLinkKeyDown.bind(this),this.interactingWithMenu=!1,e.addEventListener("paste",this.onpaste),e.addEventListener("input",this.oninput),e.addEventListener("keydown",this.onkeydown),e.addEventListener("blur",this.onblur)}}class T extends HTMLElement{getKeys(){let t=this.getAttribute("keys");return t?t.split(" "):[]}connectedCallback(){let t=this.querySelector('input[type="text"], textarea');if(!(t instanceof HTMLInputElement||t instanceof HTMLTextAreaElement))return;let e=new A(this,t);M.set(this,e)}reconnect(){if(null!==this.querySelector(".js-slash-command-menu:not(.d-none)"))return;let t=M.get(this);t&&(t.destroy(),M.delete(this)),this.connectedCallback()}disconnectedCallback(){let t=M.get(this);t&&(t.destroy(),M.delete(this))}setValue(t){let e=M.get(this);e&&e.setValue(t)}setMenu(t,e=!1){let i=M.get(this);!i||i.match&&(e&&(i.interactingWithMenu=!0),i.setMenu(i.match,t))}closeMenu(){let t=M.get(this);t&&t.setValue("")}isLoading(){let t=this.getElementsByClassName("js-slash-command-expander-loading")[0];if(t){let e=t.cloneNode(!0);e.classList.remove("d-none"),this.setMenu(e)}}showError(){let t=this.getElementsByClassName("js-slash-command-expander-error")[0];if(t){let e=t.cloneNode(!0);e.classList.remove("d-none"),this.setMenu(e)}}}window.customElements.get("slash-command-expander")||(window.SlashCommandExpanderElement=T,window.customElements.define("slash-command-expander",T));class S extends HTMLElement{acceptSuggestion(){this.suggestion?.textContent&&(this.input.value=this.suggestion.textContent,this.input.dispatchEvent(new Event("input")),this.suggestionContainer&&(this.suggestionContainer.hidden=!0),this.input.focus())}}(0,a.Cg)([o.aC],S.prototype,"input",void 0),(0,a.Cg)([o.aC],S.prototype,"suggestionContainer",void 0),(0,a.Cg)([o.aC],S.prototype,"suggestion",void 0),S=(0,a.Cg)([(0,o.p_)("text-suggester")],S);var q=new WeakMap,I=new WeakMap,N=new WeakMap,z=new WeakMap,V=new WeakMap,F=new WeakMap;class H extends HTMLElement{static get observedAttributes(){return["src","loading","data-property","aria-owns"]}get filtered(){if((0,u._)(this,F))return(0,u._)(this,F);if(this.hasAttribute("aria-owns")){let t=this.ownerDocument.getElementById(this.getAttribute("aria-owns")||"");t&&(t instanceof Set||t&&"object"==typeof t&&"size"in t&&"add"in t&&"delete"in t&&"clear"in t)&&(0,h._)(this,F,t)}return(0,h._)(this,F,(0,u._)(this,F)||new Set)}set filtered(t){(0,h._)(this,F,t)}get input(){return this.querySelector("input, textarea")}get src(){return this.getAttribute("src")||""}set src(t){this.setAttribute("src",t)}get loading(){return"lazy"===this.getAttribute("loading")?"lazy":"eager"}set loading(t){this.setAttribute("loading",t)}get accept(){return this.getAttribute("accept")||""}set accept(t){this.setAttribute("accept",t)}get property(){return this.getAttribute("data-property")||""}set property(t){this.setAttribute("data-property",t)}reset(){this.filtered.clear(),(0,h._)(this,V,new Set)}clear(){this.input&&(this.input.value="",this.input.dispatchEvent(new Event("input")))}attributeChangedCallback(t,e,i){let n=this.isConnected&&this.src,s="eager"===this.loading,r=e!==i;("src"===t||"data-property"===t)&&r&&((0,h._)(this,N,null),(0,u._)(this,z)&&clearTimeout((0,u._)(this,z))),n&&s&&("src"===t||"loading"===t||"accept"===t||"data-property"===t)&&r?(cancelAnimationFrame((0,u._)(this,I)),(0,h._)(this,I,requestAnimationFrame(()=>this.load()))):"aria-owns"===t&&(0,h._)(this,F,null)}connectedCallback(){this.src&&"eager"===this.loading&&(cancelAnimationFrame((0,u._)(this,I)),(0,h._)(this,I,requestAnimationFrame(()=>this.load())));let t=this.input;if(!t)return;let e=this.getAttribute("aria-owns");null!==e&&this.attributeChangedCallback("aria-owns","",e),t.setAttribute("autocomplete","off"),t.setAttribute("spellcheck","false"),this.src&&"lazy"===this.loading&&(document.activeElement===t?this.load():t.addEventListener("focus",()=>{this.load()},{once:!0})),t.addEventListener("input",this)}disconnectedCallback(){this.input?.removeEventListener("input",this)}handleEvent(t){"input"===t.type&&((0,u._)(this,z)&&clearTimeout((0,u._)(this,z)),(0,h._)(this,z,window.setTimeout(()=>this.filterItems(),(this.input?.value?.length,300))))}async load(){(0,u._)(this,q)?.abort(),(0,h._)(this,q,new AbortController);let{signal:t}=(0,u._)(this,q);if(!this.src)throw Error("missing src");if(await new Promise(t=>setTimeout(t,0)),!t.aborted){this.dispatchEvent(new Event("loadstart"));try{let e=await this.fetch(this.request(),{signal:t,headers:{...(0,s.kt)()}});if(location.origin+this.src!==e.url)return;if(!e.ok)throw Error(`Failed to load resource: the server responded with a status of ${e.status}`);(0,h._)(this,V,new Set((await e.json())[this.property])),(0,h._)(this,N,null),this.dispatchEvent(new Event("loadend"))}catch(e){if(t.aborted)return void this.dispatchEvent(new Event("loadend"));throw(async()=>{this.dispatchEvent(new Event("error")),this.dispatchEvent(new Event("loadend"))})(),e}this.filtered.clear(),this.filterItems()}}request(){return new Request(this.src,{method:"GET",credentials:"same-origin",headers:{Accept:this.accept||"application/json"}})}fetch(t,e){return fetch(t,e)}filterItems(){let t,e=this.input?.value.trim()??"",i=(0,u._)(this,N);if((0,h._)(this,N,e),e!==i){for(let n of(this.dispatchEvent(new CustomEvent("virtual-filter-input-filter")),i&&e.includes(i)?t=this.filtered:(t=(0,u._)(this,V),this.filtered.clear()),t))this.filter(n,e)?this.filtered.add(n):this.filtered.delete(n);this.dispatchEvent(new CustomEvent("virtual-filter-input-filtered"))}}constructor(...t){super(...t),(0,d._)(this,q,{writable:!0,value:void 0}),(0,d._)(this,I,{writable:!0,value:0}),(0,d._)(this,N,{writable:!0,value:null}),(0,d._)(this,z,{writable:!0,value:void 0}),(0,d._)(this,V,{writable:!0,value:new Set}),(0,d._)(this,F,{writable:!0,value:null}),(0,c._)(this,"filter",(t,e)=>String(t).includes(e))}}window.customElements.get("virtual-filter-input")||(window.VirtualFilterInputElement=H,window.customElements.define("virtual-filter-input",H));let W=new IntersectionObserver(t=>{for(let e of t)e.isIntersecting&&e.target instanceof K&&"eager"===e.target.updating&&e.target.update()});var B=new WeakMap,P=new WeakMap,R=new WeakMap,j=new WeakMap,O=new WeakMap,D=new WeakMap,$=new WeakMap;class K extends HTMLElement{static get observedAttributes(){return["data-updating","aria-activedescendant"]}get updating(){return"lazy"===this.getAttribute("data-updating")?"lazy":"eager"}set updating(t){this.setAttribute("data-updating",t)}get size(){return(0,u._)(this,P).size}get range(){let t=this.getBoundingClientRect().height,{scrollTop:e}=this,i=`${e}-${t}`;if((0,u._)(this,O).has(i))return(0,u._)(this,O).get(i);let n=0,s=0,r=0,a=0,o=(0,u._)(this,R);for(let i of(0,u._)(this,P)){let l=o.get(i)||(0,u._)(this,j);if(r+l=t)break}return[n,s]}get list(){let t=this.querySelector("ul, ol, tbody");if(!t)throw Error("virtual-list must have a container element inside: any of
    ,
      , ");return t}attributeChangedCallback(t,e,i){if(e===i||!this.isConnected)return;let n="data-updating"===t&&"eager"===i,s="data-sorted"===t&&this.hasAttribute("data-sorted");if((n||s)&&this.update(),"aria-activedescendant"===t){let t=this.getIndexByElementId(i);this.dispatchEvent(new X(t,i)),"eager"===this.updating&&this.update()}}connectedCallback(){this.addEventListener("scroll",()=>this.update()),this.updateSync=this.updateSync.bind(this),W.observe(this)}update(){(0,u._)(this,$)&&cancelAnimationFrame((0,u._)(this,$)),!(0,u._)(this,B)&&this.hasAttribute("data-sorted")?(0,h._)(this,$,requestAnimationFrame(()=>{this.dispatchEvent(new CustomEvent("virtual-list-sort",{cancelable:!0}))&&this.sort()})):(0,h._)(this,$,requestAnimationFrame(this.updateSync))}renderItem(t){let e={item:t,fragment:document.createDocumentFragment()};return this.dispatchEvent(new CustomEvent("virtual-list-render-item",{detail:e})),e.fragment.children[0]}recalculateHeights(t){let e=this.list;if(!e)return;let i=this.renderItem(t);if(!i)return;e.append(i);let n=e.children[0].getBoundingClientRect().height;e.replaceChildren(),n&&((0,h._)(this,j,n),(0,u._)(this,R).set(t,n))}getIndexByElementId(t){if(!t)return -1;let e=0;for(let[,i]of(0,u._)(this,D)){if(i.id===t||i.querySelector(`#${t}`))return e;e++}return -1}updateSync(){let t=this.list,[e,i]=this.range;if(ii){a=!1;break}let h=null;if(s.has(t))h=s.get(t);else{if(!(h=this.renderItem(t)))continue;h.querySelector("[aria-setsize]")?.setAttribute("aria-setsize",(0,u._)(this,P).size.toString()),h.querySelector("[aria-posinset]")?.setAttribute("aria-posinset",(r+1).toString()),s.set(t,h)}h.querySelector("[tabindex]")?.setAttribute("data-scrolltop",l.toString()),l+=d,n.set(t,h)}t.replaceChildren(...n.values()),t.style.paddingTop=`${o}px`;let h=this.size*(0,u._)(this,j);t.style.height=`${h||0}px`;let c=!1,m=this.getBoundingClientRect().bottom;for(let[t,e]of n){let{height:i,bottom:n}=e.getBoundingClientRect();c=c||n>=m,(0,u._)(this,R).set(t,i)}if(!a&&this.size>n.size&&!c)return(0,u._)(this,O).delete(`${this.scrollTop}-${this.getBoundingClientRect().height}`),this.update();this.dispatchEvent(new U(s)),this.dispatchEvent(new CustomEvent("virtual-list-updated"))}resetRenderCache(){(0,h._)(this,D,new Map)}has(t){return(0,u._)(this,P).has(t)}add(t){return(0,u._)(this,P).add(t),(0,h._)(this,B,!1),Number.isFinite((0,u._)(this,j))||this.recalculateHeights(t),this.resetRenderCache(),this.dispatchEvent(new Event("virtual-list-data-updated")),"eager"===this.updating&&this.update(),this}delete(t){let e=(0,u._)(this,P).delete(t);return(0,h._)(this,B,!1),(0,u._)(this,R).delete(t),this.resetRenderCache(),this.dispatchEvent(new Event("virtual-list-data-updated")),"eager"===this.updating&&this.update(),e}clear(){(0,u._)(this,P).clear(),(0,u._)(this,R).clear(),(0,h._)(this,j,1/0),(0,h._)(this,B,!0),this.resetRenderCache(),this.dispatchEvent(new Event("virtual-list-data-updated")),"eager"===this.updating&&this.update()}forEach(t,e){for(let i of this)t.call(e,i,i,this)}entries(){return(0,u._)(this,P).entries()}values(){return(0,u._)(this,P).values()}keys(){return(0,u._)(this,P).keys()}[Symbol.iterator](){return(0,u._)(this,P)[Symbol.iterator]()}sort(t){return(0,h._)(this,P,new Set(Array.from(this).sort(t))),(0,h._)(this,B,!0),this.dispatchEvent(new Event("virtual-list-data-updated")),"eager"===this.updating&&this.update(),this}constructor(...t){super(...t),(0,d._)(this,B,{writable:!0,value:!1}),(0,d._)(this,P,{writable:!0,value:new Set}),(0,d._)(this,R,{writable:!0,value:new Map}),(0,d._)(this,j,{writable:!0,value:1/0}),(0,d._)(this,O,{writable:!0,value:new Map}),(0,d._)(this,D,{writable:!0,value:new Map}),(0,d._)(this,$,{writable:!0,value:0}),(0,c._)(this,Symbol.toStringTag,"VirtualListElement")}}class X extends Event{constructor(t,e){super("virtual-list-activedescendant-changed"),(0,c._)(this,"index",void 0),(0,c._)(this,"id",void 0),this.index=t,this.id=e}}class U extends Event{constructor(t){super("virtual-list-rendered"),(0,c._)(this,"rowsCache",void 0),this.rowsCache=t}}window.customElements.get("virtual-list")||(window.VirtualListElement=K,window.customElements.define("virtual-list",K))},7431(t,e,i){i.d(e,{t:()=>l});var n=i(10255),s=i(21403),r=i(21744);function a(t){let e=t.getAttribute("data-required-value"),i=t.getAttribute("data-required-value-prefix");if(t.value===e)t.setCustomValidity("");else{let n=e;i&&(n=i+n),t.setCustomValidity(n)}}(0,n.eC)("[data-required-value]",function(t){a(t.currentTarget)}),(0,r.on)("change","[data-required-value]",function(t){let e=t.currentTarget;a(e),l(e.form)}),(0,n.eC)("[data-required-trimmed]",function(t){let e=t.currentTarget;""===e.value.trim()?e.setCustomValidity(e.getAttribute("data-required-trimmed")):e.setCustomValidity("")}),(0,r.on)("change","[data-required-trimmed]",function(t){let e=t.currentTarget;""===e.value.trim()?e.setCustomValidity(e.getAttribute("data-required-trimmed")):e.setCustomValidity(""),l(e.form)}),(0,n.uE)("input[pattern],input[required],textarea[required],input[data-required-change],textarea[data-required-change],input[data-required-value],textarea[data-required-value]",t=>{let e=t.checkValidity();function i(){let i=t.checkValidity();i!==e&&t.form&&l(t.form),e=i}t.addEventListener("input",i),t.addEventListener("blur",function e(){t.removeEventListener("input",i),t.removeEventListener("blur",e)})});let o=new WeakMap;function l(t){let e=t.checkValidity();for(let i of t.querySelectorAll("button[data-disable-invalid]"))i.disabled=!e}(0,s.lB)("button[data-disable-invalid]",{constructor:HTMLButtonElement,initialize(t){let e=t.form;e&&(o.get(e)||(e.addEventListener("change",()=>l(e)),o.set(e,!0)),t.disabled=!e.checkValidity())}}),(0,s.lB)("input[data-required-change], textarea[data-required-change]",function(t){let e="radio"===t.type&&t.form?t.form.elements.namedItem(t.name).value:null;function i(i){let n=t.form;if(i&&"radio"===t.type&&n&&e)for(let i of n.elements.namedItem(t.name))i instanceof HTMLInputElement&&i.setCustomValidity(t.value===e?"unchanged":"");else t.setCustomValidity(t.value===(e||t.defaultValue)?"unchanged":"")}t.addEventListener("input",i),t.addEventListener("change",i),i(),t.form&&l(t.form)}),document.addEventListener("reset",function(t){if(t.target instanceof HTMLFormElement){let e=t.target;setTimeout(()=>l(e))}})},48176(t,e,i){i.d(e,{A:()=>h});var n=i(91385);let s=(t,e,i)=>{if(!(0,n.qA)(t,e))return-1/0;let s=(0,n.fN)(t,e);return s{t.textContent="";let s=0;for(let r of(0,n.Xq)(e,i)){""!==i.slice(s,r)&&t.appendChild(document.createTextNode(i.slice(s,r))),s=r+1;let e=document.createElement("mark");e.textContent=i[r],t.appendChild(e)}t.appendChild(document.createTextNode(i.slice(s)))},a=new WeakMap,o=new WeakMap,l=new WeakMap,u=t=>{if(!l.has(t)&&t instanceof HTMLElement){let e=(t.getAttribute("data-value")||t.textContent||"").trim();return l.set(t,e),e}return l.get(t)||""};class d extends HTMLElement{connectedCallback(){let t=this.querySelector("ul");if(!t)return;let e=new Set(t.querySelectorAll("li")),i=this.querySelector("input");i instanceof HTMLInputElement&&i.addEventListener("input",()=>{this.value=i.value});let s=new MutationObserver(t=>{let i=!1;for(let s of t)if("childList"===s.type&&s.addedNodes.length){for(let t of s.addedNodes)if(t instanceof HTMLLIElement&&!e.has(t)){let s=u(t);i=i||(0,n.qA)(this.value,s),e.add(t)}}i&&this.sort()});s.observe(t,{childList:!0});let r={handler:s,items:e,lazyItems:new Map,timer:null};o.set(this,r)}disconnectedCallback(){let t=o.get(this);t&&(t.handler.disconnect(),o.delete(this))}addLazyItems(t,e){let i=o.get(this);if(!i)return;let{lazyItems:s}=i,{value:r}=this,a=!1;for(let i of t)s.set(i,e),a=a||!!r&&(0,n.qA)(r,i);a&&this.sort()}sort(){let t=a.get(this);t&&(t.aborted=!0);let e={aborted:!1};a.set(this,e);let{minScore:i,markSelector:n,maxMatches:d,value:h}=this,c=o.get(this);if(!c||!this.dispatchEvent(new CustomEvent("fuzzy-list-will-sort",{cancelable:!0,detail:h})))return;let{items:m,lazyItems:p}=c,f=this.hasAttribute("mark-selector"),g=this.querySelector("ul");if(!g)return;let v=[];if(h){for(let t of m){let e=s(h,u(t),i);e!==-1/0&&v.push({item:t,score:e})}for(let[t,e]of p){let n=s(h,t,i);n!==-1/0&&v.push({text:t,render:e,score:n})}v.sort((t,e)=>e.score-t.score).splice(d)}else{let t=v.length;for(let e of m){if(t>=d)break;v.push({item:e,score:1}),t+=1}for(let[e,i]of p){if(t>=d)break;v.push({text:e,render:i,score:1}),t+=1}}requestAnimationFrame(()=>{if(e.aborted)return;let t=g.querySelector('input[type="radio"]:checked');g.textContent="";let i=0,s=()=>{if(e.aborted)return;let a=Math.min(v.length,i+100),o=document.createDocumentFragment();for(let t=i;t0),this.dispatchEvent(new CustomEvent("fuzzy-list-sorted",{detail:v.length}))}};s()})}get value(){return this.getAttribute("value")||""}set value(t){this.setAttribute("value",t)}get markSelector(){return this.getAttribute("mark-selector")||""}set markSelector(t){t?this.setAttribute("mark-selector",t):this.removeAttribute("mark-selector")}get minScore(){return Number(this.getAttribute("min-score")||0)}set minScore(t){Number.isNaN(t)||this.setAttribute("min-score",String(t))}get maxMatches(){return Number(this.getAttribute("max-matches")||1/0)}set maxMatches(t){Number.isNaN(t)||this.setAttribute("max-matches",String(t))}get ariaLiveElement(){let t=this.getAttribute("data-aria-live-element");if(!t)return;let e=document.getElementById(t);if(e)return e}static get observedAttributes(){return["value","mark-selector","min-score","max-matches"]}attributeChangedCallback(t,e,i){if(e===i)return;let n=o.get(this);n&&(n.timer&&window.clearTimeout(n.timer),n.timer=window.setTimeout(()=>this.sort(),100))}}let h=d;window.customElements.get("fuzzy-list")||(window.FuzzyListElement=d,window.customElements.define("fuzzy-list",d))},97698(t,e,i){function n(){return/Windows/.test(navigator.userAgent)?"windows":/Macintosh/.test(navigator.userAgent)?"mac":null}i.d(e,{u:()=>n}),(0,i(21403).lB)(".js-remove-unless-platform",function(t){let e,i;e=(t.getAttribute("data-platforms")||"").split(","),(i=n())&&e.includes(i)||t.remove()})},57197(t,e,i){i.d(e,{O:()=>a,S:()=>r});var n=i(70730);let s=n.cg?.document?.head?.querySelector('meta[name="release"]')?.content||"",r="X-GitHub-Client-Version";function a(){return s}},78143(t,e,i){i.d(e,{jC:()=>o,kt:()=>r,tV:()=>a});var n=i(57197),s=i(51807);function r(t){let e={"X-Requested-With":"XMLHttpRequest",...(0,s.wE)(t)};return{...e,[n.S]:(0,n.O)()}}function a(t,e){for(let[i,n]of Object.entries(r(e)))t.set(i,n)}function o(t){return{"X-GitHub-App-Type":t}}},51807(t,e,i){i.d(e,{$r:()=>a,M1:()=>o,li:()=>s,pS:()=>u,wE:()=>l});var n=i(70730);let s="X-Fetch-Nonce",r=new Set;function a(t){r.add(t)}function o(){return r.values().next().value||""}function l(t){let e={};return void 0!==t&&(e["X-Fetch-Nonce-To-Validate"]=t),void 0===t?e[s]=o():r.has(t)?e[s]=t:e[s]=Array.from(r).join(","),e}function u(){let t=n.XC?.head?.querySelector('meta[name="fetch-nonce"]')?.content||"";t&&a(t)}},10255(t,e,i){i.d(e,{Ff:()=>l,eC:()=>u,uE:()=>o});var n=i(6986);let s=!1,r=new n.A;function a(t){let e=t.target;if(e instanceof HTMLElement&&e.nodeType!==Node.DOCUMENT_NODE)for(let t of r.matches(e))t.data.call(null,e)}function o(t,e){s||(s=!0,document.addEventListener("focus",a,!0)),r.add(t,e),document.activeElement instanceof HTMLElement&&document.activeElement.matches(t)&&e(document.activeElement)}function l(t,e,i){function n(e){let s=e.currentTarget;s&&(s.removeEventListener(t,i),s.removeEventListener("blur",n))}o(e,function(e){e.addEventListener(t,i),e.addEventListener("blur",n)})}function u(t,e){function i(t){let{currentTarget:n}=t;n&&(n.removeEventListener("input",e),n.removeEventListener("blur",i))}o(t,function(t){t.addEventListener("input",e),t.addEventListener("blur",i)})}},70730(t,e,i){i.d(e,{Kn:()=>a,XC:()=>s,cg:()=>r,fV:()=>o});let n="u">typeof FORCE_SERVER_ENV&&FORCE_SERVER_ENV,s="u"('template.js-flash-template')!, { className: `flash-error ${flashClassName}`, message, }) const node = document.importNode(template, true) const flashContainer = document.querySelector('#js-flash-container') // make sure we are on a page that has a flash container if (flashContainer) { removeFlash() flashContainer.appendChild(node) } } function removeFlash(): void { const flashContainer = document.querySelector('#js-flash-container') // make sure we are on a page that has a flash container if (flashContainer) { // make sure we don't show more than one flash message for github mobile auth at the same time for (const child of flashContainer.children) { if (!child.classList.contains('js-flash-template') && child.classList.contains(flashClassName)) { flashContainer.removeChild(child) } } } } export function hidePromptAndShowErrorMessage(): void { const githubMobileAuthenticatePrompt = document.getElementById('github-mobile-authenticate-prompt') if (githubMobileAuthenticatePrompt) { githubMobileAuthenticatePrompt.hidden = true } const githubMobileAuthenticateErrorAndRetry = document.getElementById('github-mobile-authenticate-error-and-retry') if (githubMobileAuthenticateErrorAndRetry) { githubMobileAuthenticateErrorAndRetry.hidden = false } } export function resetPrompt(): void { removeFlash() const githubMobileAuthenticatePrompt = document.getElementById('github-mobile-authenticate-prompt') if (githubMobileAuthenticatePrompt) { githubMobileAuthenticatePrompt.hidden = false } const githubMobileAuthenticateErrorAndRetry = document.getElementById('github-mobile-authenticate-error-and-retry') if (githubMobileAuthenticateErrorAndRetry) { githubMobileAuthenticateErrorAndRetry.hidden = true } } // the user has approved the mobile request - reload the page which will trigger the redirects // // token - An optional parameter - only used during the password reset flow function approvedHandler(token?: string, signInMethod?: string): void { let url if (token) { // during password reset, when the user approves the mobile request, we need to update the url // to use the new SAT token instead of the old SAT token url = new URL(`password_reset/${encodeURIComponent(token)}`, window.location.origin) } else { url = new URL('', window.location.href) } url.searchParams.set('redirect', 'true') if (signInMethod) { url.searchParams.set('sign_in_method', signInMethod) } window.location.assign(url) } // two_factor_login info erased from session - send them back to login form function rejectedHandler(): void { document.getElementById('github-mobile-rejected-redirect')!.click() } function genericHandler(message: string): void { if (message) { addFlashMessage(message) } hidePromptAndShowErrorMessage() } function getErrorAndRetryMessage(attributeName: string): string { return document.getElementById('github-mobile-authenticate-error-and-retry')!.getAttribute(attributeName)! } function pollMobileAuthRequestStatus( url: RequestInfo, successCallback?: () => void, failCallback?: (message: string) => void, checkCancelCallback?: () => boolean, ): Promise { return (async function poll(errorCount: number): Promise { if (checkCancelCallback && checkCancelCallback()) { return } let status = 'STATUS_UNKNOWN' let token let signInMethod: string | undefined try { const form = document.getElementById('github-mobile-authenticate-form') as HTMLFormElement const csrfInput = form.querySelector('.js-data-url-csrf') as HTMLInputElement const response = await self.fetch( new Request(url, { method: 'POST', body: new FormData(form), mode: 'same-origin', headers: { Accept: 'application/json', 'Scoped-CSRF-Token': csrfInput.value, ...getBaseFetchHeaders(), }, }), ) if (response.ok) { const responseJSON = await response.json() status = responseJSON.status token = responseJSON.token signInMethod = responseJSON.sign_in_method // capture the sign-in method if provided } else { status = 'STATUS_ERROR' } } catch { status = 'STATUS_ERROR' } let message switch (status) { case 'STATUS_APPROVED': // stop polling and handle approved case specifically return successCallback ? successCallback() : approvedHandler(token, signInMethod) case 'STATUS_EXPIRED': // stop polling and handle expired case specifically message = getErrorAndRetryMessage('timeout-flash') return failCallback ? failCallback(message) : genericHandler(message) case 'STATUS_ACTIVE': case 'STATUS_ERROR': case 'STATUS_UNKNOWN': // keep polling break case 'STATUS_REJECTED': // stop polling and handle rejected case specifically message = getErrorAndRetryMessage('error-flash') return failCallback ? failCallback(message) : rejectedHandler() case 'STATUS_NOT_FOUND': // not expected, we shouldn't reach the poller if this is the case case 'STATUS_UNSUPPORTED': // not expected, we shouldn't reach the poller if this is the case default: // stop polling and handle these cases generically message = getErrorAndRetryMessage('error-flash') return failCallback ? failCallback(message) : genericHandler(message) } // wait between polls await new Promise(resolve => setTimeout(resolve, POLL_WAIT_TIME_MS)) poll(errorCount) })(0) } export async function initializeMobileAuthRequestStatusPoll( el: Element, successCallback?: () => void, failCallback?: (message: string) => void, checkCancelCallback?: () => boolean, ): Promise { try { await pollMobileAuthRequestStatus( el.getAttribute('data-poll-url')!, successCallback, failCallback, checkCancelCallback, ) } catch { // if an error was thrown that we didn't handle properly in the poller // we need to make sure to still update the UI in a meaningful way const message = getErrorAndRetryMessage('error-flash') return genericHandler(message) } } observe('.js-poll-github-mobile-two-factor-authenticate', function (el) { initializeMobileAuthRequestStatusPoll(el) }) observe('.js-poll-github-mobile-verified-device-authenticate', function (el) { initializeMobileAuthRequestStatusPoll(el) }) observe('.js-poll-github-mobile-two-factor-password-reset-authenticate', function (el) { initializeMobileAuthRequestStatusPoll(el) }) // Variant on the native `hashchange` event with extra features: // // * Guarantees that handlers run on DOMContentLoaded, or immediately if page has // already loaded; // * If the anchor references an element by id, the `data.target` property of the // argument passed to handlers will be a reference to that DOM element. // // Each handler will be invoked with a `data` object containing properties: // // * `oldURL` - String URL prior to the hash change, or `null` on initial page load; // * `newURL` - String URL after hash change, or current page URL; // * `target` - DOM element whose id matches the anchor value, or `null`. // // Examples // // ```js // // Redirect old anchor issue urls // hashChange((data) => { // const m = data.newURL.match(/\/issues#issue\/(\d+)$/) // if (m) window.location = data.newURL.replace(/\/?#issue\/.+/, "/#{m[1]}") // }) // // // Ensure that the referenced comment's parent container is visible // hashChange((data) => { // const container = data.target && data.target.closest('.js-comments-container') // if (container) container.classList.remove('d-none') // }) // ``` import {ready} from '@github-ui/document-ready' import {SOFT_NAV_STATE} from '@github-ui/soft-nav/states' const handlers: HashChangeListener[] = [] let ran = 0 type HashChangeListener = (opts: {oldURL: string | null; newURL: string; target?: Element | null}) => unknown export default function hashChange(handler: HashChangeListener) { ;(async function () { handlers.push(handler) await ready runRemainingHandlers() })() } hashChange.clear = () => { handlers.length = ran = 0 } function runRemainingHandlers() { const index = ran ran = handlers.length runHandlers(handlers.slice(index), null, window.location.href) } function runHandlers(handlersToRun: HashChangeListener[], oldURL: string | null, newURL: string) { const id = window.location.hash.slice(1) const target = id ? document.getElementById(id) : null const data = {oldURL, newURL, target} for (const fn of handlersToRun) { fn.call(null, data) } } // Track ieOldURL manually to work around an open IE bug where the hashchange // event does not have oldURL or newURL attributes. See // https://connect.microsoft.com/IE/feedback/details/828283/implement-hashchangeevent-oldurl-and-newurl let ieOldURL = window.location.href window.addEventListener('popstate', function () { ieOldURL = window.location.href }) window.addEventListener('hashchange', function (event) { const newURL = window.location.href try { runHandlers(handlers, event.oldURL || ieOldURL, newURL) } finally { ieOldURL = newURL } }) let softNavOldURL: string | null = null document.addEventListener(SOFT_NAV_STATE.START, function () { softNavOldURL = window.location.href }) document.addEventListener(SOFT_NAV_STATE.SUCCESS, function () { runHandlers(handlers, softNavOldURL, window.location.href) }) // Variant on the native `hashchange` event with extra features: // // * Guarantees that handlers run on DOMContentLoaded, or immediately if page has // already loaded; // * If the anchor references an element by id, the `data.target` property of the // argument passed to handlers will be a reference to that DOM element. // // Each handler will be invoked with a `data` object containing properties: // // * `oldURL` - String URL prior to the hash change, or `null` on initial page load; // * `newURL` - String URL after hash change, or current page URL; // * `target` - DOM element whose id matches the anchor value, or `null`. // // Examples // // ```js // // Redirect old anchor issue urls // hashChange((data) => { // const m = data.newURL.match(/\/issues#issue\/(\d+)$/) // if (m) window.location = data.newURL.replace(/\/?#issue\/.+/, "/#{m[1]}") // }) // // // Ensure that the referenced comment's parent container is visible // hashChange((data) => { // const container = data.target && data.target.closest('.js-comments-container') // if (container) container.classList.remove('d-none') // }) // ``` import {ready} from '@github-ui/document-ready' import {SOFT_NAV_STATE} from '@github-ui/soft-nav/states' const handlers: HashChangeListener[] = [] let ran = 0 type HashChangeListener = (opts: {oldURL: string | null; newURL: string; target?: Element | null}) => unknown export default function hashChange(handler: HashChangeListener) { ;(async function () { handlers.push(handler) await ready runRemainingHandlers() })() } hashChange.clear = () => { handlers.length = ran = 0 } function runRemainingHandlers() { const index = ran ran = handlers.length runHandlers(handlers.slice(index), null, window.location.href) } function runHandlers(handlersToRun: HashChangeListener[], oldURL: string | null, newURL: string) { const id = window.location.hash.slice(1) const target = id ? document.getElementById(id) : null const data = {oldURL, newURL, target} for (const fn of handlersToRun) { fn.call(null, data) } } // Track ieOldURL manually to work around an open IE bug where the hashchange // event does not have oldURL or newURL attributes. See // https://connect.microsoft.com/IE/feedback/details/828283/implement-hashchangeevent-oldurl-and-newurl let ieOldURL = window.location.href window.addEventListener('popstate', function () { ieOldURL = window.location.href }) window.addEventListener('hashchange', function (event) { const newURL = window.location.href try { runHandlers(handlers, event.oldURL || ieOldURL, newURL) } finally { ieOldURL = newURL } }) let softNavOldURL: string | null = null document.addEventListener(SOFT_NAV_STATE.START, function () { softNavOldURL = window.location.href }) document.addEventListener(SOFT_NAV_STATE.SUCCESS, function () { runHandlers(handlers, softNavOldURL, window.location.href) }) import {observe} from '@github/selector-observer' import {toggleDetailsTarget} from './details' observe('.js-skip-to-content', element => { element.addEventListener('focus', event => { const target = event.currentTarget as HTMLElement if (target.getAttribute('data-skip-target-assigned') === 'true') return const defaultContentID = 'main-content' let mainElement = document.querySelector('main') if (!mainElement) mainElement = document.querySelector('#skip-to-content')?.nextElementSibling as HTMLElement if (!mainElement) return let mainElementID = mainElement.getAttribute('id') if (!mainElementID) { mainElementID = defaultContentID mainElement.setAttribute('id', mainElementID) } target.setAttribute('href', `#${mainElementID}`) target.setAttribute('data-skip-target-assigned', 'true') }) element.addEventListener('click', event => { const target = event.currentTarget as HTMLElement const href = target.getAttribute('href') if (!href) return const mainContent = document.querySelector(href) as HTMLElement if (!mainContent) return mainContent.setAttribute('tabindex', '-1') mainContent.setAttribute('data-skipped-to-content', '1') mainContent.focus() }) }) export function hasSkippedToContent() { const skippedToContent = document.querySelector('[data-skipped-to-content]') if (skippedToContent) { skippedToContent.removeAttribute('data-skipped-to-content') return true } return false } const touchDevice = 'ontouchstart' in document const headerMenuItems = document.querySelectorAll('.js-header-menu-item') for (const menuItem of headerMenuItems) { menuItem.addEventListener('details:toggled', event => { const target = event.target as HTMLInputElement if (event instanceof CustomEvent && event.detail.open) { for (const item of headerMenuItems) { if (item !== target) { toggleDetailsTarget(item, {force: false}) } } } }) if (!touchDevice) { menuItem.addEventListener('mouseleave', event => { const target = event.target as HTMLInputElement if (target.classList.contains('open')) { toggleDetailsTarget(target, {force: false}) } }) } } document.addEventListener('context-region-label:update', event => { if (!(event instanceof CustomEvent && event.detail.label)) return const contextRegionLabels = document.querySelectorAll('.js-context-region-label') for (const contextRegionLabel of contextRegionLabels) { contextRegionLabel.textContent = event.detail.label } }) document.addEventListener('turbo:before-cache', event => { for (const dialog of (event.target as HTMLElement).querySelectorAll('dialog[open], modal-dialog[open]')) { ;(dialog as HTMLDialogElement).close() } }) // Add a class to the body when the search input is active so we can apply some custom styles observe('qbsearch-input', () => { document.addEventListener('qbsearch-input:expand', () => { document.body.setAttribute('blackbird-search-active', 'true') }) document.addEventListener('qbsearch-input:close', () => { document.body.setAttribute('blackbird-search-active', 'false') document.body.style.overflow = '' }) }) import type {SearchProvider, QueryEvent} from '@github-ui/query-builder-element/query-builder-api' import {SearchItem, Octicon} from '@github-ui/query-builder-element/query-builder-api' import type {QueryBuilderElement} from '@github-ui/query-builder-element' import safeStorage from '@github-ui/safe-storage' import {CaretPositionKind} from '../parsing/common' import type {ParsedIntermediateRepresentation} from '../qbsearch-input-element' const safeLocalStorage = safeStorage('localStorage') export class HistoryProvider extends EventTarget implements SearchProvider { priority = 5 name = 'History' singularItemName = 'history' value = 'history' type = 'search' as const queryBuilder: QueryBuilderElement constructor(queryBuilder: QueryBuilderElement) { super() this.queryBuilder = queryBuilder this.queryBuilder.addEventListener('query', this) } handleEvent(event: QueryEvent) { const state = event.parsedMetadata as ParsedIntermediateRepresentation | undefined if (!state || state.caretPositionKind !== CaretPositionKind.Text) { return [] } const query = event.toString() let suggestions: string[] = JSON.parse(safeLocalStorage.getItem('github-search-history') ?? '[]') const trimmedQuery = state.query.trim() if (trimmedQuery.length !== 0) { return [] } // Deduplicate suggestions const seen: Record = {} suggestions = suggestions.filter(item => { if (!seen[item]) { seen[item] = true return true } return false }) let suggestionCount = 0 for (const suggestion of suggestions) { if (suggestionCount >= 5) break const historyQuery = suggestion.trim() if (historyQuery.startsWith(query)) { suggestionCount += 1 this.dispatchEvent( new SearchItem({ value: historyQuery, icon: Octicon.Search, scope: 'GENERAL', priority: historyQuery.length, action: {url: `/search?q=${historyQuery}`}, }), ) } } } } import {addThrottledInputEventListener} from '../throttled-input' import {fetchSafeDocumentFragment} from '@github-ui/fetch-utils' import {observe} from '@github/selector-observer' import {on} from 'delegated-events' import {remoteForm} from '@github-ui/remote-form' import type {ModalDialogElement} from '@primer/view-components/app/components/primer/alpha/modal_dialog' // Toggle verify SSL visibility for https web hook URLs observe('.js-hook-url-field', { constructor: HTMLInputElement, add(input) { function checkUrl() { const form = input.form if (!form) return let url try { // eslint-disable-next-line no-restricted-syntax url = new URL(input.value) } catch { // Do nothing. } const sslFields = form.querySelector('.js-ssl-hook-fields') if (sslFields instanceof HTMLElement) { sslFields.hidden = !(url && 'https:' === url.protocol) } } addThrottledInputEventListener(input, checkUrl) checkUrl() }, }) function chooseEvents(selector: string): void { const events = document.querySelectorAll('.js-hook-event-checkbox') for (const eventCheckbox of events) { eventCheckbox.checked = eventCheckbox.matches(selector) } } on('change', '.js-hook-event-choice', function (event) { const checkbox = event.currentTarget as HTMLInputElement const customIsSelected = checkbox.checked && checkbox.value === 'custom' const hookEventsField = checkbox.closest('.js-hook-events-field') if (hookEventsField) hookEventsField.classList.toggle('is-custom', customIsSelected) const hookEventSelectorCollection = document.getElementsByClassName( 'js-hook-event-selector', ) as HTMLCollectionOf const hookEventSelector = hookEventSelectorCollection[0] as HTMLElement if (hookEventSelector && customIsSelected) { hookEventSelector.hidden = false } else if (hookEventSelector && !customIsSelected && hookEventSelector.hidden === false) { hookEventSelector.hidden = true } if (checkbox.checked) { if (customIsSelected) { const hookWildcardEvent = document.querySelector('.js-hook-wildcard-event')! hookWildcardEvent.checked = false } else if (checkbox.value === 'push') { chooseEvents('[value="push"]') } else if (checkbox.value === 'all') { chooseEvents('.js-hook-wildcard-event') } } }) // Load more delivery logs on('click', '.js-hook-deliveries-pagination-button', async function (event) { const button = event.currentTarget as HTMLButtonElement button.disabled = true const wrapper = button.parentElement! const url = button.getAttribute('data-url')! wrapper.before(await fetchSafeDocumentFragment(document, url)) wrapper.remove() }) // Redeliver Payload Button remoteForm('.js-redeliver-hook-form', async function (form, wants) { let response try { response = await wants.html() } catch { form.classList.add('failed') return } // replace the whole deliveries index const deliveriesDetails = document.querySelector(`.js-hook-deliveries-container`)! deliveriesDetails.replaceWith(response.html) }) function registerInsecureSslVerificationDialog() { const dialog = document.getElementById('insecure_ssl_verification') as ModalDialogElement | HTMLDialogElement | null const submitButton = document.getElementById('insecure_ssl_verification_submit') as HTMLInputElement | null const disallowInsecureRadio = document.getElementById('insecure_ssl_0') as HTMLInputElement | null const allowInsecureRadio = document.getElementById('insecure_ssl_1') as HTMLInputElement | null if (dialog && submitButton && disallowInsecureRadio && allowInsecureRadio) { // on radio buttons, 'change' only fires when they become checked allowInsecureRadio.addEventListener('change', event => { event.stopPropagation() disallowInsecureRadio.checked = true if (dialog instanceof HTMLDialogElement) { dialog.showModal() } else { dialog.show() } }) submitButton.addEventListener('click', () => { allowInsecureRadio.checked = true }) dialog.addEventListener('dialog:remove', () => { allowInsecureRadio.checked = true }) } } registerInsecureSslVerificationDialog() import {observeHotkey} from '@github-ui/hotkey/observer' // calling this here keeps the sideffect in behaviors and out of @github-ui/hotkey observeHotkey('[data-hotkey]') import {compose, fromEvent} from '@github-ui/subscription' import {fetchSafeDocumentFragment} from '@github-ui/fetch-utils' import {isFeatureEnabled} from '@github-ui/feature-flags' import {hovercardAriaLabelForType, isHovercardEnabledForType} from '@github-ui/hovercards' import { isHovercardEnabledForUser, isHovercardHintEnabledForUser, HOVERCARD_KEYBOARD_SHORTCUT, } from '@github-ui/hovercards/preferences' import memoize from '@github/memoize' import {observe} from '@github/selector-observer' import {focusTrap} from '@primer/behaviors' import {on} from 'delegated-events' import {trackView} from '../hydro-tracking' type Position = { containerTop: number containerLeft: number contentClassSuffix: string } let hovercardFocusTrapAbortController: AbortController | undefined = undefined // The card content. Moved around the page to where the current hover is let cardContentContainer = document.querySelector('.js-hovercard-content') observe('.js-hovercard-content', { add: el => { cardContentContainer = el }, remove: () => { cardContentContainer = document.querySelector('.js-hovercard-content') }, }) const cachedFetchSafeDocumentFragment = memoize(fetchSafeDocumentFragment, { hash: (document: Document, url: RequestInfo) => { return JSON.stringify([document.location, url]) }, }) let currentTarget: Element | null | undefined // Link with hovercard elements set on it let hovercardTrigger: HTMLElement | null = null let deactivateTimer: number | null // Mouse position for when links wrap lines let mouseX = 0 const caretDistanceFromTarget = 12 // For calculating position of the card when it hangs to the left // NOTE: These need to stay in sync with certain CSS rules in order to keep the // caret pointing at the target. // // caret distance from edge of card const caretPaddingX = 24 const caretMarginY = 7 const caretPaddingY = caretPaddingX - caretMarginY const caretHeight = 16 // The amount of extra time given to move into the content const deactivateTimeout = 100 // The minimum time before opening the hovercard via mouseover const activateTimeout = 500 // Get the content class of a given selector. // (Prefixes the selector with `Popover-message--`). function contentClass(suffix: string): string { const contentClassPrefix = 'Popover-message--' return contentClassPrefix + suffix } // Track a load of the hovercard in octolytics if it stays for > 500ms. function trackLoad(cardContentBody: HTMLElement) { setTimeout(() => { if (document.body && document.body.contains(cardContentBody)) { const trackingElement = cardContentBody.querySelector('[data-hydro-view]') if (trackingElement instanceof HTMLElement) { trackView(trackingElement) } } }, 500) } function hideCard() { if (!(cardContentContainer instanceof HTMLElement)) return window.removeEventListener('keydown', onEscapeWithCardOpen) cardContentContainer.style.display = 'none' cardContentContainer.removeAttribute('data-hovercard-target-url') const cardContent = cardContentContainer.querySelector('.Popover-message') if (cardContent instanceof HTMLElement) { cardContent.textContent = '' } currentTarget = null if (hovercardFocusTrapAbortController) { hovercardFocusTrapAbortController.abort() } } function selectRectNearestMouse(target: Element): DOMRect { const rects = target.getClientRects() let foundRect = rects[0] || target.getBoundingClientRect() || {top: 0, left: 0, height: 0, width: 0} if (rects.length > 0) { for (const rect of rects) { if (rect.left < mouseX && rect.right > mouseX) { foundRect = rect break } } } return foundRect } function calculatePositions(target: Element): Position { const {width: contentWidth, height: contentHeight} = cardContentContainer!.getBoundingClientRect() const {left: targetX, top: targetY, height: targetHeight, width: targetWidth} = selectRectNearestMouse(target) const roomBelowTarget = window.innerHeight - targetY const roomAbove = targetY > contentHeight const roomBelow = roomBelowTarget > contentHeight const moreRoomAbove = targetY >= roomBelowTarget // Check horizontal space availability const roomRight = window.innerWidth - (targetX + targetWidth) > contentWidth + caretDistanceFromTarget const roomLeft = targetX > contentWidth + caretDistanceFromTarget // Explicitly set via class, or auto-detect: if no room on right but room on left, hang left const hangLeft = target.classList.contains('js-hovercard-left') || (!roomRight && roomLeft) if (hangLeft) { // Position hovercard to the LEFT of the target const left = targetX - contentWidth - caretDistanceFromTarget const targetCenterY = targetY + targetHeight / 2 let top // If there is no room above or below, show the hovercard on the top or bottom (whichever has the most room) if (!roomAbove && !roomBelow) { if (moreRoomAbove) { top = targetCenterY - contentHeight + caretPaddingY + caretHeight / 2 } else { top = targetCenterY - caretPaddingY - caretHeight / 2 } } else { top = roomAbove ? targetCenterY - contentHeight + caretPaddingY + caretHeight / 2 : targetCenterY - caretPaddingY - caretHeight / 2 } return { containerTop: top, containerLeft: left, contentClassSuffix: roomAbove ? 'right-bottom' : 'right-top', } } else { // Position hovercard ABOVE or BELOW the target const targetCenterX = targetX + targetWidth / 2 const left = roomRight ? targetCenterX - caretPaddingX : targetCenterX - contentWidth + caretPaddingX let top // If there is no room above, below, or to the right, show the hovercard on the top or bottom (whichever has the most room) if (!roomAbove && !roomBelow && !roomRight) { if (moreRoomAbove) { top = targetY - contentHeight - caretDistanceFromTarget } else { top = targetY + targetHeight + caretDistanceFromTarget } } else { top = roomAbove ? targetY - contentHeight - caretDistanceFromTarget : targetY + targetHeight + caretDistanceFromTarget } const contentClassSuffix = roomAbove ? roomRight ? 'bottom-left' : 'bottom-right' : roomRight ? 'top-left' : 'top-right' return {containerTop: top, containerLeft: left, contentClassSuffix} } } function positionCard(target: Element, cardContent: Element) { if (!(cardContentContainer instanceof HTMLElement)) return // Hide container, reset popover styles cardContentContainer.style.visibility = 'hidden' cardContentContainer.style.display = 'block' cardContent.classList.remove( contentClass('bottom-left'), contentClass('bottom-right'), contentClass('right-top'), contentClass('right-bottom'), contentClass('top-left'), contentClass('top-right'), ) const {containerTop, containerLeft, contentClassSuffix} = calculatePositions(target) // Add the class for correct caret location cardContent.classList.add(contentClass(contentClassSuffix)) const ignorePageOffset = hasFixedPositioningAttribute(target, cardContentContainer) const yOffset = ignorePageOffset ? 0 : window.pageYOffset const xOffset = ignorePageOffset ? 0 : window.pageXOffset // Position the popover & inner message correctly cardContentContainer.style.setProperty('top', `${containerTop + yOffset}px`, 'important') cardContentContainer.style.setProperty('bottom', 'auto', 'important') cardContentContainer.style.left = `${containerLeft + xOffset}px` setZIndexOverride(target, cardContentContainer) // After positioning correctly, show the popover again cardContentContainer.style.visibility = '' } function showCard(fragment: DocumentFragment, target: Element, isMouseOver: boolean): AbortController | undefined { if (!(cardContentContainer instanceof HTMLElement)) return const cardContent = cardContentContainer.querySelector('.Popover-message') if (!(cardContent instanceof HTMLElement)) return window.addEventListener('keydown', onEscapeWithCardOpen) cardContent.textContent = '' const cardContentBody = document.createElement('div') for (const child of fragment.children) { cardContentBody.appendChild(child.cloneNode(true)) } cardContent.appendChild(cardContentBody) positionCard(target, cardContent) trackLoad(cardContentBody) cardContentContainer.style.display = 'block' cardContentContainer.setAttribute('data-hovercard-target-url', target.getAttribute('data-hovercard-url') || '') cardContentContainer.setAttribute('aria-label', hovercardAriaLabelForType(target.getAttribute('data-hovercard-type'))) cardContentContainer.setAttribute('role', 'region') if (isMouseOver) return undefined return focusTrap(cardContentContainer) } function determineEnclosingSubject(target: Element): string | null { const tag = target.closest('[data-hovercard-subject-tag]') if (tag) return tag.getAttribute('data-hovercard-subject-tag') // Fall back to page context const meta = document.head && document.head.querySelector('meta[name="hovercard-subject-tag"]') if (meta) return meta.getAttribute('content') return null } function hovercardUrlFromTarget(target: Element): string { const baseHovercardUrl = target.getAttribute('data-hovercard-url') if (baseHovercardUrl) { const subjectTag = determineEnclosingSubject(target) if (subjectTag) { const url = new URL(baseHovercardUrl, window.location.origin) const params = new URLSearchParams(url.search.slice(1)) params.append('subject', subjectTag) params.append('current_path', window.location.pathname + window.location.search) if (isFeatureEnabled('memex_live_update_hovercard')) { const cacheValue = target.getAttribute('data-hovercard-cache') if (cacheValue) { params.append('hovercard_cache', cacheValue) } } url.search = params.toString() return url.toString() } return baseHovercardUrl } return '' } // Wrapper for backward compatibility with existing call sites function hovercardsAreEnabledForType(target: Element): boolean { return isHovercardEnabledForType(target, target.getAttribute('data-hovercard-type')) } // When mousing over a hovercard target or pressing the hovercard-opening keyboard shortcut, load the data and show the card. async function activateFn(event: Event, minimumTimeout?: number): Promise { // Don't show hovercards on touch devices. Prevents mobile Safari users // from needing to double tap links with hovercards. // https://humanwhocodes.com/blog/2012/07/05/ios-has-a-hover-problem/ const touchDevice = 'ontouchstart' in document if (touchDevice) return const isMouseOver = event instanceof MouseEvent const target = event.currentTarget if (event instanceof MouseEvent) { mouseX = event.clientX } // Prevent hovercards loading inside hovercards -- these variables aren't set unless a hovercard is already rendered if (!(target instanceof Element)) return if (currentTarget === target) return if (target.closest('.js-hovercard-content')) return // Don't actually show issue or PR hovercards unless the link has an ancestor // element with data-issue-and-pr-hovercards-enabled if (!hovercardsAreEnabledForType(target)) return hideCard() // Set the current target as the one we're currently hovered or focused on currentTarget = target const hovercardUrl = hovercardUrlFromTarget(target) let fragment: DocumentFragment | null | undefined try { const forcedDelay = new Promise(r => window.setTimeout(r, minimumTimeout, 0)) await forcedDelay if (target === currentTarget) { fragment = await cachedFetchSafeDocumentFragment(document, hovercardUrl) } } catch (err) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it const response: Response = err.response if (response && response.status === 404) { // eslint-disable-next-line i18n-text/no-en const notAvailableMessage = 'Hovercard is unavailable' target.setAttribute('aria-label', notAvailableMessage) target.classList.add('tooltipped', 'tooltipped-ne') } else if (response && response.status === 410) { const data: {[key: string]: string} = await response.clone().json() target.setAttribute('aria-label', data.message!) target.classList.add('tooltipped', 'tooltipped-ne') } return } // Ensure that the target is still the active one if (target === currentTarget && fragment) { hovercardFocusTrapAbortController = showCard(fragment, target, isMouseOver) } } // Load the data but don't show until at least `activateTimeout`. Only used when // loading via mouseover. function activateWithTimeoutFn(event: Event) { activateFn(event, activateTimeout) } // When leaving a hovercard, deactivate unless we're moving to another child. // This allows the user to move to the content area without dismissing. function deactivateFn(event: Event) { if (!currentTarget) return if (event instanceof MouseEvent && event.relatedTarget instanceof HTMLElement) { const relatedTarget = event.relatedTarget if (relatedTarget.closest('.js-hovercard-content') || relatedTarget.closest('[data-hovercard-url]')) { return } } hideCard() } // Deactivate after 250 ms unless the deactivate timer is canceled as a result // of the user entering the hovercard content area. function deactivateWithTimeoutFn(event: Event) { const targetWas = currentTarget deactivateTimer = window.setTimeout(() => { if (currentTarget === targetWas) { deactivateFn(event) } }, deactivateTimeout) } function preventScrolling(event: Event) { // This is specifically to prevent default browser behavior, not changing keyboard shortcuts. /* eslint eslint-comments/no-use: off */ /* eslint-disable @github-ui/ui-commands/no-manual-shortcut-logic */ if (!(event instanceof KeyboardEvent)) return if (event.altKey && event.key === 'ArrowUp') { // Don't scroll while moving focus (this occurs on non-Firefox browsers) event.preventDefault() } /* eslint-enable @github-ui/ui-commands/no-manual-shortcut-logic */ } // Triggered when a link which has a hovercard is focused. function keyupFn(event: Event) { // TODO: Refactor to use data-hotkey /* eslint-disable @github-ui/ui-commands/no-manual-shortcut-logic */ if (!(event instanceof KeyboardEvent)) return switch (event.key) { case 'ArrowUp': if (event.altKey) { hovercardTrigger = document.activeElement as HTMLElement activateFn(event, 0) } break case 'Escape': deactivateFn(event) break } /* eslint-enable @github-ui/ui-commands/no-manual-shortcut-logic */ } // Cancel the deactivation timer since the user is inside the content now function cancelDeactivation() { if (deactivateTimer) clearTimeout(deactivateTimer) } if (cardContentContainer && isHovercardEnabledForUser()) { observe('[data-hovercard-url]', { subscribe: el => compose( fromEvent(el, 'mouseover', onMouseOver), fromEvent(el, 'mouseleave', onMouseLeave), fromEvent(el, 'keyup', keyupFn), fromEvent(el, 'keydown', preventScrolling), ), }) if (isHovercardHintEnabledForUser()) { observe('[data-hovercard-url]', { add(el) { el.setAttribute('aria-keyshortcuts', HOVERCARD_KEYBOARD_SHORTCUT) }, }) } observe('[data-hovercard-url]', { remove(el) { // Hide the card if we're removing the element that triggered it if (currentTarget === el) hideCard() }, }) observe('.js-hovercard-content', { subscribe: el => compose( fromEvent(el, 'mouseover', onContentsMouseOver), fromEvent(el, 'focusin', onContentsFocusIn), fromEvent(el, 'mouseleave', onMouseLeave), fromEvent(el, 'keydown', onContentsKeyDown), ), }) // eslint-disable-next-line delegated-events/global-on on('menu:activated', 'details', hideCard) // hide the card when a turbo completes a new visit window.addEventListener('turbo:load', hideCard) window.addEventListener('statechange', hideCard) } /** * Refocus the hovercard trigger when the user keyboard-escapes out of the content. */ function onContentsKeyDown(event: Event) { /* eslint-disable @github-ui/ui-commands/no-manual-shortcut-logic */ if (event instanceof KeyboardEvent) { if (event.key === 'Escape') { deactivateFn(event) hovercardTrigger?.focus() } } /* eslint-enable @github-ui/ui-commands/no-manual-shortcut-logic */ } function onMouseLeave(event: Event) { deactivateWithTimeoutFn(event) } function onMouseOver(event: Event) { activateWithTimeoutFn(event) } function onContentsMouseOver() { cancelDeactivation() } function onContentsFocusIn() { // Don't dismiss the hovercard now that either mouse hover or keyboard focus is here cancelDeactivation() } function setZIndexOverride(target: Element, container: HTMLElement) { const zIndex = target.getAttribute('data-hovercard-z-index-override') if (zIndex) { container.style.zIndex = zIndex } else { // Reset to default z-index container.style.zIndex = '1000' } } // if the attribute is present, it will ignore the window scroll // when positioning the element, allowing the hovercard to be placed // as child of parents with position: fixed and still be properly positioned function hasFixedPositioningAttribute(target: Element, container: HTMLElement) { const fixedPositionAttr = 'data-hovercard-fixed-positioning' return target.getAttribute(fixedPositionAttr) || container.getAttribute(fixedPositionAttr) } function onEscapeWithCardOpen(event: Event) { // eslint-disable-next-line @github-ui/ui-commands/no-manual-shortcut-logic if (event instanceof KeyboardEvent && event.key === 'Escape') { hideCard() } } import {onFocus, onInput} from '@github-ui/onfocus' import {observe} from '@github/selector-observer' import {on} from 'delegated-events' const supportedFields = [ 'input[pattern]', 'input[required]', 'textarea[required]', 'input[data-required-change]', 'textarea[data-required-change]', 'input[data-required-value]', 'textarea[data-required-value]', ].join(',') type Field = HTMLInputElement | HTMLTextAreaElement function checkValidityForRequiredValueField(field: Field) { const requiredValue = field.getAttribute('data-required-value')! const prefix = field.getAttribute('data-required-value-prefix') if (field.value === requiredValue) { field.setCustomValidity('') } else { let message = requiredValue if (prefix) { message = prefix + message } field.setCustomValidity(message) } } onInput('[data-required-value]', function (event) { const field = event.currentTarget as Field checkValidityForRequiredValueField(field) }) on('change', '[data-required-value]', function (event) { const field = event.currentTarget as Field checkValidityForRequiredValueField(field) // We need to call validate since we don't fire a `change` event on the form // when session-resume dumps the text back into the field. validate(field.form!) }) onInput('[data-required-trimmed]', function (event) { const field = event.currentTarget as Field if (field.value.trim() === '') { field.setCustomValidity(field.getAttribute('data-required-trimmed')!) } else { field.setCustomValidity('') } }) on('change', '[data-required-trimmed]', function (event) { const field = event.currentTarget as Field if (field.value.trim() === '') { field.setCustomValidity(field.getAttribute('data-required-trimmed')!) } else { field.setCustomValidity('') } // We need to call validate since we don't fire a `change` event on the form // when session-resume dumps the text back into the field. validate(field.form!) }) // Observe required fields and validate form when their validation state // changes. onFocus(supportedFields, field => { let previousValid = (field as Field).checkValidity() function inputHandler() { const currentValid = (field as Field).checkValidity() if (currentValid !== previousValid && (field as Field).form) { validate((field as Field).form!) } previousValid = currentValid } field.addEventListener('input', inputHandler) field.addEventListener('blur', function blurHandler() { field.removeEventListener('input', inputHandler) field.removeEventListener('blur', blurHandler) }) }) const installedForms = new WeakMap() // Install validation handlers on a form. function installHandlers(form: HTMLFormElement) { if (installedForms.get(form)) return form.addEventListener('change', () => validate(form)) installedForms.set(form, true) } // Validate a form or input. export function validate(form: HTMLInputElement | HTMLFormElement) { const validity = form.checkValidity() for (const button of form.querySelectorAll('button[data-disable-invalid]')) { button.disabled = !validity } } observe('button[data-disable-invalid]', { constructor: HTMLButtonElement, initialize(button) { const form = button.form if (form) { installHandlers(form) button.disabled = !form.checkValidity() } }, }) // A custom attribute similar to `required`, but only passes validation once // the value of the field has changed from its initial value. observe('input[data-required-change], textarea[data-required-change]', function (element) { const field = element as Field const radioInputDefault = field.type === 'radio' && field.form ? (field.form.elements.namedItem(field.name) as RadioNodeList).value : null // Custom Validity Event Handler. function customValidity(event?: Event) { const form = field.form! if (event && field.type === 'radio' && form && radioInputDefault) { for (const radio of form.elements.namedItem(field.name) as RadioNodeList) { if (radio instanceof HTMLInputElement) { radio.setCustomValidity(field.value === radioInputDefault ? 'unchanged' : '') } } } else { field.setCustomValidity(field.value === (radioInputDefault || field.defaultValue) ? 'unchanged' : '') } } field.addEventListener('input', customValidity) field.addEventListener('change', customValidity) customValidity() if (field.form) { validate(field.form) } }) document.addEventListener('reset', function (event: Event) { if (event.target instanceof HTMLFormElement) { const form = event.target setTimeout(() => validate(form)) } }) import {onFocus, onInput} from '@github-ui/onfocus' import {observe} from '@github/selector-observer' import {on} from 'delegated-events' const supportedFields = [ 'input[pattern]', 'input[required]', 'textarea[required]', 'input[data-required-change]', 'textarea[data-required-change]', 'input[data-required-value]', 'textarea[data-required-value]', ].join(',') type Field = HTMLInputElement | HTMLTextAreaElement function checkValidityForRequiredValueField(field: Field) { const requiredValue = field.getAttribute('data-required-value')! const prefix = field.getAttribute('data-required-value-prefix') if (field.value === requiredValue) { field.setCustomValidity('') } else { let message = requiredValue if (prefix) { message = prefix + message } field.setCustomValidity(message) } } onInput('[data-required-value]', function (event) { const field = event.currentTarget as Field checkValidityForRequiredValueField(field) }) on('change', '[data-required-value]', function (event) { const field = event.currentTarget as Field checkValidityForRequiredValueField(field) // We need to call validate since we don't fire a `change` event on the form // when session-resume dumps the text back into the field. validate(field.form!) }) onInput('[data-required-trimmed]', function (event) { const field = event.currentTarget as Field if (field.value.trim() === '') { field.setCustomValidity(field.getAttribute('data-required-trimmed')!) } else { field.setCustomValidity('') } }) on('change', '[data-required-trimmed]', function (event) { const field = event.currentTarget as Field if (field.value.trim() === '') { field.setCustomValidity(field.getAttribute('data-required-trimmed')!) } else { field.setCustomValidity('') } // We need to call validate since we don't fire a `change` event on the form // when session-resume dumps the text back into the field. validate(field.form!) }) // Observe required fields and validate form when their validation state // changes. onFocus(supportedFields, field => { let previousValid = (field as Field).checkValidity() function inputHandler() { const currentValid = (field as Field).checkValidity() if (currentValid !== previousValid && (field as Field).form) { validate((field as Field).form!) } previousValid = currentValid } field.addEventListener('input', inputHandler) field.addEventListener('blur', function blurHandler() { field.removeEventListener('input', inputHandler) field.removeEventListener('blur', blurHandler) }) }) const installedForms = new WeakMap() // Install validation handlers on a form. function installHandlers(form: HTMLFormElement) { if (installedForms.get(form)) return form.addEventListener('change', () => validate(form)) installedForms.set(form, true) } // Validate a form or input. export function validate(form: HTMLInputElement | HTMLFormElement) { const validity = form.checkValidity() for (const button of form.querySelectorAll('button[data-disable-invalid]')) { button.disabled = !validity } } observe('button[data-disable-invalid]', { constructor: HTMLButtonElement, initialize(button) { const form = button.form if (form) { installHandlers(form) button.disabled = !form.checkValidity() } }, }) // A custom attribute similar to `required`, but only passes validation once // the value of the field has changed from its initial value. observe('input[data-required-change], textarea[data-required-change]', function (element) { const field = element as Field const radioInputDefault = field.type === 'radio' && field.form ? (field.form.elements.namedItem(field.name) as RadioNodeList).value : null // Custom Validity Event Handler. function customValidity(event?: Event) { const form = field.form! if (event && field.type === 'radio' && form && radioInputDefault) { for (const radio of form.elements.namedItem(field.name) as RadioNodeList) { if (radio instanceof HTMLInputElement) { radio.setCustomValidity(field.value === radioInputDefault ? 'unchanged' : '') } } } else { field.setCustomValidity(field.value === (radioInputDefault || field.defaultValue) ? 'unchanged' : '') } } field.addEventListener('input', customValidity) field.addEventListener('change', customValidity) customValidity() if (field.form) { validate(field.form) } }) document.addEventListener('reset', function (event: Event) { if (event.target instanceof HTMLFormElement) { const form = event.target setTimeout(() => validate(form)) } }) import {loaded} from '@github-ui/document-ready' import {sendPageView} from '@github-ui/hydro-analytics' import {SOFT_NAV_STATE} from '@github-ui/soft-nav/states' import {getSoftNavMechanism} from '@github-ui/soft-nav/utils' import {getCurrentReactAppName} from '@github-ui/stats-metadata' import type {Context} from '@github/hydro-analytics-client' function getContext(context: Context = {}) { const reactAppName = getCurrentReactAppName() if (!reactAppName) return context return { ...context, react_app: reactAppName, } } ;(async function () { // Turbo loads should be treated like pageloads document.addEventListener(SOFT_NAV_STATE.FRAME_UPDATE, () => sendPageView(getContext({turbo: 'true'}))) document.addEventListener(SOFT_NAV_STATE.SUCCESS, () => { if (getSoftNavMechanism() === 'turbo.frame') { return } else { sendPageView(getContext({turbo: 'true'})) } }) // Send a page view as soon as the page is loaded await loaded sendPageView(getContext()) })() import type {Context} from '@github/hydro-analytics-client' import {on} from 'delegated-events' import {sendEvent} from '@github-ui/hydro-analytics' on('click', '[data-octo-click]', function (event) { const targetEl = event.currentTarget if (!(targetEl instanceof HTMLElement)) { return } const eventType = targetEl.getAttribute('data-octo-click') || '' const context: Context = {} if (targetEl.hasAttribute('data-ga-click')) { const gaEvent = targetEl.getAttribute('data-ga-click')! const parts = gaEvent.split(',') context.category = parts[0]!.trim() context.action = parts[1]!.trim() } if (targetEl.hasAttribute('data-octo-dimensions')) { const dimensionsList = targetEl.getAttribute('data-octo-dimensions')!.split(',') for (const dimensionPair of dimensionsList) { const [key, value] = dimensionPair.split(/:(.+)/) if (key) { context[key] = value || '' } } } sendEvent(eventType, context) }) import {on} from 'delegated-events' import {sendData} from '../hydro-tracking' import {debugHydroPayload} from '@github-ui/console-debug' on('click', '[data-hydro-click]', function (event) { const el = event.currentTarget const payload = el.getAttribute('data-hydro-click') || '' const hmac = el.getAttribute('data-hydro-click-hmac') || '' const hydroClientContext = el.getAttribute('data-hydro-client-context') || '' debugHydroPayload('hydro-debug.click', payload) sendData(payload, hmac, hydroClientContext) }) import {sendStats} from '@github-ui/stats' export function sendData(hydroEventPayload: string, hydroEventHmac: string, hydroClientContext: string): void { const data = { hydroEventPayload, hydroEventHmac, visitorPayload: '', visitorHmac: '', hydroClientContext, } const visitorPayload = document.querySelector('meta[name=visitor-payload]') if (visitorPayload instanceof HTMLMetaElement) { data['visitorPayload'] = visitorPayload.content } const visitorHmac = document.querySelector('meta[name=visitor-hmac]') || '' if (visitorHmac instanceof HTMLMetaElement) { data['visitorHmac'] = visitorHmac.content } // TEMPORARY: Special handling for staff bar events to remove sampling let eventName = '' try { eventName = JSON.parse(hydroEventPayload).event_name } catch { // Ignore JSON parse errors } sendStats(data, true, eventName?.startsWith('staff_bar.') ? 1 : undefined) } export function trackView(el: HTMLElement) { const payload = el.getAttribute('data-hydro-view') || '' const hmac = el.getAttribute('data-hydro-view-hmac') || '' const hydroClientContext = el.getAttribute('data-hydro-client-context') || '' sendData(payload, hmac, hydroClientContext) } export function sendHydroEvent(el: HTMLElement) { const payload = el.getAttribute('data-hydro-click-payload') || '' const hmac = el.getAttribute('data-hydro-click-hmac') || '' const hydroClientContext = el.getAttribute('data-hydro-client-context') || '' sendData(payload, hmac, hydroClientContext) } function promisifyRequest(request) { return new Promise((resolve, reject) => { // @ts-ignore - file size hacks request.oncomplete = request.onsuccess = () => resolve(request.result); // @ts-ignore - file size hacks request.onabort = request.onerror = () => reject(request.error); }); } function createStore(dbName, storeName) { let dbp; const getDB = () => { if (dbp) return dbp; const request = indexedDB.open(dbName); request.onupgradeneeded = () => request.result.createObjectStore(storeName); dbp = promisifyRequest(request); dbp.then((db) => { // It seems like Safari sometimes likes to just close the connection. // It's supposed to fire this event when that happens. Let's hope it does! db.onclose = () => (dbp = undefined); }, () => { }); return dbp; }; return (txMode, callback) => getDB().then((db) => callback(db.transaction(storeName, txMode).objectStore(storeName))); } let defaultGetStoreFunc; function defaultGetStore() { if (!defaultGetStoreFunc) { defaultGetStoreFunc = createStore('keyval-store', 'keyval'); } return defaultGetStoreFunc; } /** * Get a value by its key. * * @param key * @param customStore Method to get a custom store. Use with caution (see the docs). */ function get(key, customStore = defaultGetStore()) { return customStore('readonly', (store) => promisifyRequest(store.get(key))); } /** * Set a value with a key. * * @param key * @param value * @param customStore Method to get a custom store. Use with caution (see the docs). */ function set(key, value, customStore = defaultGetStore()) { return customStore('readwrite', (store) => { store.put(value, key); return promisifyRequest(store.transaction); }); } /** * Set multiple values at once. This is faster than calling set() multiple times. * It's also atomic – if one of the pairs can't be added, none will be added. * * @param entries Array of entries, where each entry is an array of `[key, value]`. * @param customStore Method to get a custom store. Use with caution (see the docs). */ function setMany(entries, customStore = defaultGetStore()) { return customStore('readwrite', (store) => { entries.forEach((entry) => store.put(entry[1], entry[0])); return promisifyRequest(store.transaction); }); } /** * Get multiple values by their keys * * @param keys * @param customStore Method to get a custom store. Use with caution (see the docs). */ function getMany(keys, customStore = defaultGetStore()) { return customStore('readonly', (store) => Promise.all(keys.map((key) => promisifyRequest(store.get(key))))); } /** * Update a value. This lets you see the old value and update it as an atomic operation. * * @param key * @param updater A callback that takes the old value and returns a new value. * @param customStore Method to get a custom store. Use with caution (see the docs). */ function update(key, updater, customStore = defaultGetStore()) { return customStore('readwrite', (store) => // Need to create the promise manually. // If I try to chain promises, the transaction closes in browsers // that use a promise polyfill (IE10/11). new Promise((resolve, reject) => { store.get(key).onsuccess = function () { try { store.put(updater(this.result), key); resolve(promisifyRequest(store.transaction)); } catch (err) { reject(err); } }; })); } /** * Delete a particular key from the store. * * @param key * @param customStore Method to get a custom store. Use with caution (see the docs). */ function del(key, customStore = defaultGetStore()) { return customStore('readwrite', (store) => { store.delete(key); return promisifyRequest(store.transaction); }); } /** * Delete multiple keys at once. * * @param keys List of keys to delete. * @param customStore Method to get a custom store. Use with caution (see the docs). */ function delMany(keys, customStore = defaultGetStore()) { return customStore('readwrite', (store) => { keys.forEach((key) => store.delete(key)); return promisifyRequest(store.transaction); }); } /** * Clear all values in the store. * * @param customStore Method to get a custom store. Use with caution (see the docs). */ function clear(customStore = defaultGetStore()) { return customStore('readwrite', (store) => { store.clear(); return promisifyRequest(store.transaction); }); } function eachCursor(store, callback) { store.openCursor().onsuccess = function () { if (!this.result) return; callback(this.result); this.result.continue(); }; return promisifyRequest(store.transaction); } /** * Get all keys in the store. * * @param customStore Method to get a custom store. Use with caution (see the docs). */ function keys(customStore = defaultGetStore()) { return customStore('readonly', (store) => { // Fast path for modern browsers if (store.getAllKeys) { return promisifyRequest(store.getAllKeys()); } const items = []; return eachCursor(store, (cursor) => items.push(cursor.key)).then(() => items); }); } /** * Get all values in the store. * * @param customStore Method to get a custom store. Use with caution (see the docs). */ function values(customStore = defaultGetStore()) { return customStore('readonly', (store) => { // Fast path for modern browsers if (store.getAll) { return promisifyRequest(store.getAll()); } const items = []; return eachCursor(store, (cursor) => items.push(cursor.value)).then(() => items); }); } /** * Get all entries in the store. Each entry is an array of `[key, value]`. * * @param customStore Method to get a custom store. Use with caution (see the docs). */ function entries(customStore = defaultGetStore()) { return customStore('readonly', (store) => { // Fast path for modern browsers // (although, hopefully we'll get a simpler path some day) if (store.getAll && store.getAllKeys) { return Promise.all([ promisifyRequest(store.getAllKeys()), promisifyRequest(store.getAll()), ]).then(([keys, values]) => keys.map((key, i) => [key, values[i]])); } const items = []; return customStore('readonly', (store) => eachCursor(store, (cursor) => items.push([cursor.key, cursor.value])).then(() => items)); }); } export { clear, createStore, del, delMany, entries, get, getMany, keys, promisifyRequest, set, setMany, update, values }; import {ssrSafeDocument} from '@github-ui/ssr-utils' import {Subscription} from '@github-ui/subscription' type IdleListener = (isIdle: boolean) => unknown const idleListeners: IdleListener[] = [] const DEBOUNCE_UNTIL_IDLE = 30000 const DEBOUNCE_UNTIL_ACTIVE = 0 // If active, we want to send immediately let idle = ssrSafeDocument?.hidden || false // if the page is hidden on load, consider it idle immediately let visibilityDebounceTimeout: ReturnType | undefined export function addIdleStateListener(listener: IdleListener) { listener(idle) idleListeners.push(listener) return new Subscription(() => { const index = idleListeners.indexOf(listener) if (index !== -1) { idleListeners.splice(index, 1) } }) } ;(() => { // listen for visibility change events, which trigger the wait period for idle changes ssrSafeDocument?.addEventListener('visibilitychange', () => { const pageIsHidden = ssrSafeDocument?.hidden || false if (visibilityDebounceTimeout !== undefined) { // we were waiting to send an idle change, cancel the previous timeout and queue a new one clearTimeout(visibilityDebounceTimeout) } // When page visibility changes, wait a little bit before marking as idle in case visibility comes back const debouncePeriod = pageIsHidden ? DEBOUNCE_UNTIL_IDLE : DEBOUNCE_UNTIL_ACTIVE visibilityDebounceTimeout = setTimeout(() => { if (pageIsHidden === idle) { // idle hasn't changed, don't call any listeners return } idle = pageIsHidden visibilityDebounceTimeout = undefined // send current idle state to all listeners for (const idleListener of idleListeners) { idleListener(idle) } }, debouncePeriod) }) })() // Handle immediate updates returned from the server on ajax success. // // See ShowPartial#render_immediate_partials import {remoteForm} from '@github-ui/remote-form' import {replaceContent} from '@github-ui/updatable-content' remoteForm('.js-immediate-updates', async function (form, wants) { let updateContent try { const response = await wants.json() updateContent = response.json.updateContent } catch (error) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (error.response.json) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it updateContent = error.response.json.updateContent } } if (updateContent) { for (const selector in updateContent) { const html = updateContent[selector] const el = document.querySelector(selector) if (el instanceof HTMLElement) { replaceContent(el, html) } } } }) // Toggle hidden attribute on elements inside and // elements that have the data-hide-on-error and // data-show-on-error attributes on them when error events are fired. import {compose, fromEvent} from '@github-ui/subscription' import type {IncludeFragmentElement} from '@github/include-fragment-element' import {observe} from '@github/selector-observer' import {on} from 'delegated-events' observe('include-fragment, poll-include-fragment', { subscribe: el => compose(fromEvent(el, 'error', onError), fromEvent(el, 'loadstart', onLoad)), }) on('click', 'include-fragment button[data-retry-button]', ({currentTarget}) => { const includeFragment = currentTarget.closest('include-fragment')! // The refetch API was added in v6.1.1 of @github/include-fragment-element: // https://github.com/github/include-fragment-element/releases/tag/v6.1.1 includeFragment.refetch() }) function toggleElements(event: Event, showError: boolean) { const fragment = event.currentTarget if (!(fragment instanceof Element)) return const showForbiddenError = showError && event instanceof CustomEvent && event.detail?.error?.message?.includes('responded with a status of 403') for (const el of fragment.querySelectorAll('[data-show-on-forbidden-error]')) { if (el instanceof HTMLElement) el.hidden = !showForbiddenError } for (const el of fragment.querySelectorAll('[data-show-on-error]')) { if (el instanceof HTMLElement) el.hidden = showForbiddenError || !showError } for (const el of fragment.querySelectorAll('[data-hide-on-error]')) { if (el instanceof HTMLElement) el.hidden = showError } } function onLoad(event: Event) { toggleElements(event, false) } function onError(event: Event) { toggleElements(event, true) } export function loadDeferredContentByEvent({currentTarget}: Event) { if (!(currentTarget instanceof Element)) return loadDeferredContent(currentTarget) } export function loadDeferredContent(element: Element) { const details = element.closest('details') if (details) { setIncludeFragmentSrc(details) } } function setIncludeFragmentSrc(detailsElement: HTMLElement) { const url = detailsElement.getAttribute('data-deferred-details-content-url') if (url) { detailsElement.removeAttribute('data-deferred-details-content-url') const includeFragmentElement = detailsElement.querySelector( 'include-fragment, poll-include-fragment', ) if (includeFragmentElement) { includeFragmentElement.src = url } } } import {observe} from '@github/selector-observer' observe('[data-indeterminate]', { constructor: HTMLInputElement, initialize(el) { el.indeterminate = true }, }) export var base = { 8: "Backspace", 9: "Tab", 10: "Enter", 12: "NumLock", 13: "Enter", 16: "Shift", 17: "Control", 18: "Alt", 20: "CapsLock", 27: "Escape", 32: " ", 33: "PageUp", 34: "PageDown", 35: "End", 36: "Home", 37: "ArrowLeft", 38: "ArrowUp", 39: "ArrowRight", 40: "ArrowDown", 44: "PrintScreen", 45: "Insert", 46: "Delete", 59: ";", 61: "=", 91: "Meta", 92: "Meta", 106: "*", 107: "+", 108: ",", 109: "-", 110: ".", 111: "/", 144: "NumLock", 145: "ScrollLock", 160: "Shift", 161: "Shift", 162: "Control", 163: "Control", 164: "Alt", 165: "Alt", 173: "-", 186: ";", 187: "=", 188: ",", 189: "-", 190: ".", 191: "/", 192: "`", 219: "[", 220: "\\", 221: "]", 222: "'" } export var shift = { 48: ")", 49: "!", 50: "@", 51: "#", 52: "$", 53: "%", 54: "^", 55: "&", 56: "*", 57: "(", 59: ":", 61: "+", 173: "_", 186: ":", 187: "+", 188: "<", 189: "_", 190: ">", 191: "?", 192: "~", 219: "{", 220: "|", 221: "}", 222: "\"" } var chrome = typeof navigator != "undefined" && /Chrome\/(\d+)/.exec(navigator.userAgent) var gecko = typeof navigator != "undefined" && /Gecko\/\d+/.test(navigator.userAgent) var mac = typeof navigator != "undefined" && /Mac/.test(navigator.platform) var ie = typeof navigator != "undefined" && /MSIE \d|Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent) var brokenModifierNames = mac || chrome && +chrome[1] < 57 // Fill in the digit keys for (var i = 0; i < 10; i++) base[48 + i] = base[96 + i] = String(i) // The function keys for (var i = 1; i <= 24; i++) base[i + 111] = "F" + i // And the alphabetic keys for (var i = 65; i <= 90; i++) { base[i] = String.fromCharCode(i + 32) shift[i] = String.fromCharCode(i) } // For each code that doesn't have a shift-equivalent, copy the base name for (var code in base) if (!shift.hasOwnProperty(code)) shift[code] = base[code] export function keyName(event) { var ignoreKey = brokenModifierNames && (event.ctrlKey || event.altKey || event.metaKey) || ie && event.shiftKey && event.key && event.key.length == 1 || event.key == "Unidentified" var name = (!ignoreKey && event.key) || (event.shiftKey ? shift : base)[event.keyCode] || event.key || "Unidentified" // Edge sometimes produces wrong names (Issue #3) if (name == "Esc") name = "Escape" if (name == "Del") name = "Delete" // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8860571/ if (name == "Left") name = "ArrowLeft" if (name == "Up") name = "ArrowUp" if (name == "Right") name = "ArrowRight" if (name == "Down") name = "ArrowDown" return name } 'use strict'; function checkDCE() { /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ if ( typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function' ) { return; } if (process.env.NODE_ENV !== 'production') { // This branch is unreachable because this function is only called // in production, but the condition is true only in development. // Therefore if the branch is still here, dead code elimination wasn't // properly applied. // Don't change the message. React DevTools relies on it. Also make sure // this message doesn't occur elsewhere in this function, or it will cause // a false positive. throw new Error('^_^'); } try { // Verify that the code above has been dead code eliminated (DCE'd). __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); } catch (err) { // DevTools shouldn't crash React, no matter what. // We should still report in case we break this code. console.error(err); } } if (process.env.NODE_ENV === 'production') { // DCE check should happen before ReactDOM bundle executes so that // DevTools can report bad minification during injection. checkDCE(); module.exports = require('./cjs/react-dom.production.js'); } else { module.exports = require('./cjs/react-dom.development.js'); } /* This was pulled in from github/text-expander-element to make iterating and testing easier. See https://github.com/github/ui-platform/issues/88 */ import SlashCommandExpanderElement from './slash-command-expander-element' export {SlashCommandExpanderElement as default} declare global { interface Window { SlashCommandExpanderElement: typeof SlashCommandExpanderElement } } if (!window.customElements.get('slash-command-expander')) { window.SlashCommandExpanderElement = SlashCommandExpanderElement window.customElements.define('slash-command-expander', SlashCommandExpanderElement) } var setPrototypeOf = require("./setPrototypeOf.js"); function _inheritsLoose(t, o) { t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o); } module.exports = _inheritsLoose, module.exports.__esModule = true, module.exports["default"] = module.exports; import type {QueryEvent, SearchProvider, SearchScopeText} from '@github-ui/query-builder-element/query-builder-api' import {Octicon, SearchItem} from '@github-ui/query-builder-element/query-builder-api' import type {QueryBuilderElement} from '@github-ui/query-builder-element' import type {ParsedIntermediateRepresentation} from '../qbsearch-input-element' import type {QualifierNode, NodeWithChildren, ContentNode} from '@github/blackbird-parser' import {CaretPositionKind, extractRepoOrgScopes, hasChildren, isQualifier} from '../parsing/common' // eslint-disable-next-line import/no-namespace import type * as Parsing from '../parsing/parsing' export class InputProvider extends EventTarget implements SearchProvider { priority = 0 name = '' singularItemName = 'search' value = 'search' type = 'search' as const copilotChatEnabled: boolean = false #input: HTMLElement #parser: typeof Parsing | undefined queryBuilder: QueryBuilderElement constructor(queryBuilder: QueryBuilderElement, input: HTMLElement) { super() this.queryBuilder = queryBuilder this.queryBuilder.addEventListener('query', this) this.#input = input } async handleEvent(event: QueryEvent) { const state = event.parsedMetadata as ParsedIntermediateRepresentation | undefined if (event.rawQuery) { // Always emit a fallback suggestion, if no other suggestions exist this.dispatchEvent( new SearchItem({ value: event.rawQuery, scope: 'GITHUB', icon: Octicon.Search, priority: 0, action: { query: event.rawQuery, }, isFallbackSuggestion: true, }), ) } if (!state || state.caretPositionKind !== CaretPositionKind.Text) { return [] } let trimmedQuery = state.query.trim() let repo = this.#input.getAttribute('data-current-repository') let org = this.#input.getAttribute('data-current-org') let orgNode: QualifierNode | undefined = undefined let user = this.#input.getAttribute('data-current-owner') let business = this.#input.getAttribute('data-current-business') if (!this.#parser) { this.#parser = await import('../parsing/parsing') } // Use query to extract the current qualifier for suggestions const astNode: NodeWithChildren = this.#parser.parseString(trimmedQuery || '') as NodeWithChildren // No qualifiers found if (astNode.children) { const qualifierNodes = astNode.children.filter(node => node.kind === 'Qualifier') repo = (qualifierNodes.find(node => node.qualifier === 'Repo')?.content as ContentNode)?.value?.toString() || repo orgNode = qualifierNodes.find(node => node.qualifier === 'Org') org = (orgNode?.content as ContentNode)?.value?.toString() || org user = ( qualifierNodes.find(node => node.qualifier === 'Org' && node.raw === 'user:')?.content as ContentNode )?.value?.toString() || user business = (qualifierNodes.find(node => node.qualifier === 'Enterprise')?.content as ContentNode)?.value?.toString() || business // Get owner from nwo if (repo && !orgNode) { org = repo.split('/')[0]! } } interface Suggestion { query: string scope?: keyof typeof SearchScopeText } const suggestions: Suggestion[] = [] let containsScopes = false if (state.ast) { const node = state.ast // check if node has query text attached to it (not just qualifier) if (hasChildren(node)) { trimmedQuery = node.children .filter(item => item.kind === 'Text') .map(item => item.value) .join(' ') const scopes = extractRepoOrgScopes(node) // If the scopes contains a saved scope, don't generate input suggestions, // since we can't generate sensible parent scopes. if (scopes.find(s => s.kind === 'saved')) { return [] } // If text has a repo or org qualifier within it, show just query text at the bottom of input if (scopes.length) { containsScopes = true } } else if (isQualifier(node)) { // if node is only a qualifier, don't include it as part of query text trimmedQuery = '' } if (repo && repo.length > 0) { suggestions.push({ query: `repo:${repo} ${trimmedQuery}`, scope: 'REPO', }) } if (orgNode) { suggestions.push({ query: `${orgNode.raw}${org} ${trimmedQuery}`, scope: 'ORG', }) } else { if (org && org.length > 0) { suggestions.push({ query: `org:${org} ${trimmedQuery}`, scope: 'ORG', }) } if (user && user.length > 0) { suggestions.push({ query: `user:${user} ${trimmedQuery}`, scope: 'OWNER', }) } } if (business && business.length > 0) { suggestions.push({ query: `enterprise:${business} ${trimmedQuery}`, scope: 'ENTERPRISE', }) } } if (trimmedQuery.length > 0) { if (!containsScopes) { suggestions.unshift({ query: trimmedQuery, scope: 'GITHUB', }) } else { suggestions.push({query: trimmedQuery, scope: 'GITHUB'}) } } // If we are currently on a non-root tree view page, offer to search within // the current directory. const path = getPathQualifier(window.location.pathname) if (path) { const query = `repo:${repo} path:${path} ${trimmedQuery}` this.dispatchEvent( new SearchItem({ value: query, scope: 'DIRECTORY', icon: Octicon.Search, priority: 0, action: { commandName: 'blackbird-monolith.search', data: { query, }, }, }), ) } for (const suggestion of suggestions.slice(0, 3)) { this.dispatchEvent( new SearchItem({ value: suggestion.query, scope: suggestion.scope, icon: Octicon.Search, priority: 0, action: { commandName: 'blackbird-monolith.search', data: { query: suggestion.query, }, }, }), ) } } getQualifierType(input: string): string { if (input.includes('repo')) { // eslint-disable-next-line i18n-text/no-en return 'In this repository' } else if (input.includes('org')) { // eslint-disable-next-line i18n-text/no-en return 'In this organization' } else if (input.includes('user')) { // eslint-disable-next-line i18n-text/no-en return 'In this user' } else if (input.includes('owner')) { // eslint-disable-next-line i18n-text/no-en return 'In this owner' } else if (input.includes('enterprise')) { // eslint-disable-next-line i18n-text/no-en return 'In this enterprise' } else { // eslint-disable-next-line i18n-text/no-en return 'All of GitHub' } } } function buildRegexQuery(path: string): string { // Decode any URL characters path = decodeURIComponent(path) // Strip trailing slash if (path.endsWith('/')) { path = path.substring(0, path.length - 1) } // Escape regex chars const escaped = path.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // Build path regex query return `/^${escaped.replaceAll('/', '\\/')}\\//` } export function getPathQualifier(pathname: string): string | undefined { const treeRegex = /^\/[^/]+\/[^/]+\/tree\/[^/]+\/(.*)/ const m = treeRegex.exec(pathname) if (m) { for (let i = 1; i < m.length; i++) { if (m[i]) { return buildRegexQuery(m[i]!) } } } return undefined } function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; "use strict"; var isIpadOS = require("./is-ipados"); module.exports = function isIos(ua, checkIpadOS, document) { if (checkIpadOS === void 0) { checkIpadOS = true; } ua = ua || window.navigator.userAgent; var iOsTest = /iPhone|iPod|iPad/i.test(ua); return checkIpadOS ? iOsTest || isIpadOS(ua, document) : iOsTest; }; "use strict"; module.exports = function isIpadOS(ua, document) { ua = ua || window.navigator.userAgent; document = document || window.document; // "ontouchend" is used to determine if a browser is on an iPad, otherwise // user-agents for iPadOS behave/identify as a desktop browser return /Mac|iPad/i.test(ua) && "ontouchend" in document; }; import {fromEvent} from '@github-ui/subscription' import {observe} from '@github/selector-observer' import {getBaseFetchHeaders} from '@github-ui/fetch-headers' // Load issue/PR/discussion references to display the title for the tooltip from the server on hover. // If hovercards are enabled for the referenced type on this part of the DOM, // this behavior is bypassed in favor of the hovercard. async function issueLabel(event: Event) { const currentTarget = event.currentTarget as HTMLElement const url = currentTarget.getAttribute('data-url') if (!url || isHovercardEnabled(currentTarget)) { return } const id = currentTarget.getAttribute('data-id') || '' const text = currentTarget.textContent const elements = document.querySelectorAll(`.js-issue-link[data-id='${id}']`) for (const el of elements) { el.removeAttribute('data-url') } try { const titleUrl = `${url}/title` const response = await fetch(titleUrl, { headers: { ...getBaseFetchHeaders(), Accept: 'application/json', }, }) if (!response.ok) { const responseError = new Error() const statusText = response.statusText ? ` ${response.statusText}` : '' responseError.message = `HTTP ${response.status}${statusText}` throw responseError } const data = await response.json() setLabel(elements, `${text}, ${data.title}`) } catch (error) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it const status = (error.response != null ? error.response.status : undefined) || 500 const message = (() => { switch (status) { case 404: return currentTarget.getAttribute('data-permission-text') default: return currentTarget.getAttribute('data-error-text') } })() setLabel(elements, message || '') } } function setLabel(elements: NodeList, text: string) { for (const el of elements) { if (!(el instanceof HTMLElement)) continue el.classList.add('tooltipped', 'tooltipped-ne') el.setAttribute('aria-label', text) } } function isHovercardEnabled(element: HTMLElement): boolean { const hovercardType = element.getAttribute('data-hovercard-type') switch (hovercardType) { case 'issue': case 'pull_request': return !!element.closest('[data-issue-and-pr-hovercards-enabled]') case 'discussion': return !!element.closest('[data-discussion-hovercards-enabled]') default: return false } } observe('.js-issue-link', { subscribe: el => fromEvent(el, 'mouseenter', issueLabel), }) import {compare, fuzzyScore} from '@github-ui/fuzzy-filter' import {compose, fromEvent} from '@github-ui/subscription' import {html, render, unsafeHTML} from '@github-ui/jtml-shimmed' import type TextExpanderElement from '@github/text-expander-element' import {filterSort} from '@github-ui/filter-sort' import memoize from '@github/memoize' import {observe} from '@github/selector-observer' import {parseHTML} from '@github-ui/parse-html' import {isFeatureEnabled} from '@github-ui/feature-flags' import {getBaseFetchHeaders} from '@github-ui/fetch-headers' // Structure of the JSON data returned by the suggester endpoint. interface Data { suggestions: SuggestionData[] icons: Icons } // Limited subset of the JSON Data returned by the suggester that matches a user's current query prefix. interface SearchResults { matches: SuggestionData[] icons: Icons } interface SuggestionData { id: number number: number title: string type: string } interface Icons { [key: string]: string } // Maximum number of results in the intial batch of results fetched by cachedJSON. If there are exactly this many // results for the suggester, then the repository almost certainly has more that are not included. This should be // kept in sync with: // - `SUGGESTION_LIMIT` constant in packages/collaboration/app/models/suggester/repository_suggester.rb // - `SUGGESTION_LIMIT` in packages/issues/app/models/issue.rb // - `SUGGESTION_LIMIT` in packages/discussions/app/models/discussion.rb const REFINED_QUERY_THRESHOLD = 1000 // The minimum number of characters required to trigger a follow-up "refined" query. const REFINED_QUERY_PREFIX_SIZE = 3 // The number of previous "refined" query results to cache. const REFINED_QUERY_CACHE_SIZE = 5 // The maximum number of suggester results to display at once. const SEARCH_RESULTS_MAX = 5 function asText(item: SuggestionData): string { return `${item.number} ${item.title.trim().toLowerCase()}` } function search(items: SuggestionData[], query: string): SuggestionData[] { if (!query) return items const re = new RegExp(`\\b${escapeRegExp(query)}`) const hashedScore = /^\d+$/.test(query) ? (text: string) => issueNumberScore(text, re) : (text: string) => fuzzyScore(text, query) const key = (item: SuggestionData) => { const text = asText(item) const score = hashedScore(text) return score > 0 ? {score, text} : null } return filterSort(items, key, compare) } function escapeRegExp(regex: string): string { return regex.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') } // Returns a score that gets higher as the query that matches a number starting // on a word boundary is found earlier in the string. function issueNumberScore(text: string, query: RegExp): number { const score = text.search(query) if (score > -1) { return 1000 - score } else { return 0 } } // Apply the search function to JSON data acquired from the suggester endpoint. Return a (possibly empty) subset of // that data that matches the user's current suggester query, up to a maximum of SEARCH_RESULTS_MAX, ordered by // match quality. function searchWithin(data: Data, query: string): SearchResults { const matches = search(data.suggestions, query).slice(0, SEARCH_RESULTS_MAX) return {matches, icons: data.icons} } function renderResults(issues: SuggestionData[], container: HTMLElement, icons: Icons, query = ''): void { const itemsTemplate = (items: SuggestionData[]) => html`
        ${items.map(itemTemplate)}
      ` const itemTemplate = (item: SuggestionData) => { const icon = item.type in icons ? parseHTML(document, icons[item.type]!) : '' return html`
    1. ${icon} #${item.number} ${ // eslint-disable-next-line no-restricted-syntax unsafeHTML(item.title) }
    2. ` } render(itemsTemplate(issues), container) } observe('text-expander[data-issue-url]', { subscribe: el => { const subscriptions = [ fromEvent(el, 'text-expander-change', onchange), fromEvent(el, 'text-expander-value', onvalue), fromEvent(el, 'keydown', onkeydown), fromEvent(el, 'click', onclick), ] return compose(...subscriptions) }, }) function onvalue(event: Event) { const detail = (event as CustomEvent).detail if (detail.key !== '#') return const value = detail.item.getAttribute('data-value')! detail.value = `#${value}` } function onchange(event: Event) { const {key, provide, text} = (event as CustomEvent).detail if (key !== '#') return if (text === '#') { hideSuggestions(event.target) return } const menu = event.target as Element const url = menu.getAttribute('data-issue-url')! provide(issueMenu(url, text, menu)) } function hideSuggestions(target: EventTarget | null) { if (!target) return const textExpander = (target as HTMLElement).closest('text-expander') as TextExpanderElement if (textExpander && 'dismiss' in textExpander && typeof textExpander.dismiss === 'function') { textExpander.dismiss() } } function onclick(event: Event) { hideSuggestions(event.target) } function onkeydown(event: Event) { const specialKeys = ['ArrowRight', 'ArrowLeft'] const {key} = event as KeyboardEvent if (specialKeys.indexOf(key) < 0) return hideSuggestions(event.target) } async function issueMenu( url: string, query: string, menu: Element, ): Promise<{fragment: HTMLElement; matched: boolean}> { const searchResults = await queryResults(url, query, menu) const list = document.createElement('div') renderResults(searchResults.matches, list, searchResults.icons, query) const root = list.firstElementChild as HTMLElement return {fragment: root, matched: searchResults.matches.length > 0} } // Track which query prefixes have already triggered refined query requests, but have not returned results yet. const queriesInProgress = new Set() // Cache the most recent REFINED_QUERY_CACHE_SIZE refined query results, keyed by query prefix. const queryCache = new Map() // Identify the most appropriate collection of suggester data given the current query and return promise that resolves // to SearchResults containing the result of applying the query to that data. // // If the query is shorter than REFINED_QUERY_PREFIX_SIZE, use cached data of the most recently updated 1k issues, // pull requests, and discussions for this repository. // // If the query is at least REFINED_QUERY_PREFIX_SIZE characters long and the query's prefix does not currently have // cached data available, trigger a refined query request if one is not already running, then search within the cached // data of the most recently updated 1k as an interim. When the refined query request's response arrives, the menu // will be replaced if the active query still has this prefix. // // If the query is at least REFINED_QUERY_PREFIX_SIZE characters long and the query's prefix has cached data // available, use those cached data to construct the search results. async function queryResults(url: string, query: string, menu: Element | null): Promise { const basicResults = await cachedJSON(url) const basicSearchResults = searchWithin(basicResults, query) if (query.length < REFINED_QUERY_PREFIX_SIZE || basicResults.suggestions.length < REFINED_QUERY_THRESHOLD) { return basicSearchResults } let prefix = query.slice(0, REFINED_QUERY_PREFIX_SIZE) // Elastic Search does not support partial match on an Integer field // as a workaround for number queries we will query for every size if (isFeatureEnabled('repository_suggester_elastic_search') && Number.isFinite(Number(query))) { prefix = query } const refinedResults = queryCache.get(prefix) if (refinedResults) { return searchWithin(refinedResults, query) } if (!queriesInProgress.has(prefix)) { queriesInProgress.add(prefix) const refinedPromise = refinedQuery(url, prefix, menu) if (basicSearchResults.matches.length === 0) { const deferredRefinedResults = await refinedPromise return searchWithin(deferredRefinedResults, query) } } return searchWithin(basicResults, query) } // Query dotcom for a list of suggestion results that match the given query prefix. This appends a `?q=` query // parameter to the normal issue suggestions URL. // // When the response arrives, updates queryCache with the new results. If a non-null `menu` element is provided and // the current suggestions menu within it is still showing results for a query with the same prefix, the menu's // options will be updated live to show suggestions from the refined query results, instead. Any active selection // within the menu will be preserved in the new menu contents. async function refinedQuery(url: string, prefix: string, menu: Element | null): Promise { const refinedQueryUrl = new URL(url, window.location.origin) refinedQueryUrl.searchParams.set('q', prefix) const data: Data = await jsonRequest(refinedQueryUrl.toString()) queryCache.set(prefix, data) queriesInProgress.delete(prefix) // Evict cached query results, oldest first, to bring us down to the cache limit. if (queryCache.size > REFINED_QUERY_CACHE_SIZE) { const overage = queryCache.size - REFINED_QUERY_CACHE_SIZE const oldestKeys = Array.from(queryCache.keys()).slice(0, overage) for (const key of oldestKeys) { queryCache.delete(key) } } // Replace live suggestions if still visible, preserving any active selection const liveSuggestions = menu?.querySelector('ul.suggestions') const liveQuery = liveSuggestions?.getAttribute('data-query') if (liveSuggestions && liveQuery?.startsWith(prefix)) { const selectedID = menu?.querySelector('[aria-activedescendant]')?.getAttribute('aria-activedescendant') const list = document.createElement('div') const results = searchWithin(data, liveQuery) renderResults(results.matches, list, results.icons) if (selectedID) { for (const selectedElement of list.querySelectorAll(`#${selectedID}`)) { selectedElement.setAttribute('aria-selected', 'true') } } const root = list.firstElementChild as HTMLElement liveSuggestions.replaceChildren(...root.children) } return data } async function jsonRequest(url: RequestInfo): Promise { const response = await self.fetch(url, { headers: { ...getBaseFetchHeaders(), Accept: 'application/json', }, }) if (!response.ok) { const responseError = new Error() const statusText = response.statusText ? ` ${response.statusText}` : '' responseError.message = `HTTP ${response.status}${statusText}` throw responseError } return response.json() } const cachedJSON = memoize(jsonRequest) function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); } module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports; import {dialog} from '@github-ui/details-dialog' import {fetchSafeDocumentFragment} from '@github-ui/fetch-utils' import {observe} from '@github/selector-observer' import {on} from 'delegated-events' let shortcutModalShown = false async function showKeyboardShortcuts() { if (shortcutModalShown) return shortcutModalShown = true const metaKeyboardShortcuts = document.querySelector('meta[name=github-keyboard-shortcuts]')! const options = {contexts: metaKeyboardShortcuts.content} const url = `/site/keyboard_shortcuts?${new URLSearchParams(options).toString()}` const shortcutModal = await dialog({ content: fetchSafeDocumentFragment(document, url), labelledBy: 'keyboard-shortcuts-heading', }) shortcutModal.style.width = '800px' shortcutModal.addEventListener( 'dialog:remove', function () { shortcutModalShown = false }, {once: true}, ) } // Toggles ajax request to display keyboard shortcuts. // // Add a class of `js-keyboard-shortcuts` to get this behavior on your page. on('click', '.js-keyboard-shortcuts', showKeyboardShortcuts) observe('.js-modifier-key', { constructor: HTMLElement, add(container) { if (/Macintosh/.test(navigator.userAgent)) { let shortcut = container.textContent if (shortcut) { shortcut = shortcut.replace(/ctrl/, '⌘') shortcut = shortcut.replace(/alt/, '⌥') container.textContent = shortcut } } }, }) /* This was pulled in from github/text-expander-element to make iterating and testing easier. See https://github.com/github/ui-platform/issues/88 */ type Keyword = { word: string position: number beginningOfLine: boolean } // Extracts a keyword from the source text, backtracking from the cursor position. export default function keyword(text: string, key: string, cursor: number): Keyword | void { // Activation key not found in front of the cursor. const keyIndex = text.lastIndexOf(key, cursor - 1) if (keyIndex === -1) return // Space between the cursor and previous activation key. const spaceIndex = text.lastIndexOf(' ', cursor - 1) if (spaceIndex > keyIndex) return const newlineIndex = text.lastIndexOf('\n', cursor - 1) if (newlineIndex > keyIndex) return // Activation key must occur at beginning of line. const pre = text[keyIndex - 1]! if (pre && pre !== '\n') return // Extract matched keyword. const word = text.substring(keyIndex + key.length, cursor) return {word, position: keyIndex + key.length, beginningOfLine: isBeginningOfLine(pre)} } const isBeginningOfLine = (character: string): boolean => { // When slash is the first character in the text area, the previous character is undefined return character === undefined || /\n/.test(character) } import verifySsoSession from './sso' import {getBaseFetchHeaders} from '@github-ui/fetch-headers' interface FilterOptions { limit?: number | null } interface Label { id: string name: string htmlName: string color: string selected: boolean element?: HTMLElement description?: string } interface Data { labels: Label[] } interface TypeAheadData { lastSearchResult: Data lastSearchText?: string cachedSuggestions: Label[] // Used to cache a user ID to a pre-existing rendered element (if they exist in multiple search results). // This is needed to persist their selected state across multiple searches. // Key is label.id (as a string) to the rendered element labelResultCache: Map } // Used to abort any previous type-ahead request if not needed let abortController = new AbortController() const typeAheadCache = new WeakMap() const cache = new WeakMap() const currentQueryForList = new WeakMap() // This is like `substringFilterList`, but instead of filtering down direct // children of a DOM element, obtain most data from a JSON payload and search // within that instead, only generating actual DOM elements when they are // "revealed" by matching the search term. Similarly, remove elements from the // DOM when they don't match a search term and they're not selected. // // Also, because elements might already exist in the DOM because of their // pre-selected state, merge those elements with the data coming from JSON. export async function labelsTypeaheadFilterList( list: Element, queryText: string, options: FilterOptions, ): Promise { await verifySsoSession() currentQueryForList.set(list, queryText) let data = cache.get(list) // If we don't have data, fetch it if (!data) { try { data = await getData(list, queryText) } catch (error) { // @ts-expect-error catch blocks are bound to `unknown` so we need to validate the type before using it if (error.name === 'AbortError') { // A stale type-ahead request was aborted return -1 } else { throw error } } } // create an index of items already rendered into DOM - already selected items const existingElements: {[key: string]: HTMLInputElement} = {} for (const existing of list.querySelectorAll('label[aria-checked=true] > div > input[hidden]')) { existingElements[`${existing.name}${existing.value}`] = existing } const template = list.querySelector('template')! // remove all non-selected items after the template element let cutoffPoint = template.nextElementSibling while (cutoffPoint) { const el = cutoffPoint cutoffPoint = el.nextElementSibling if ( el instanceof HTMLElement && (el.getAttribute('aria-checked') === 'true' || el.classList.contains('select-menu-divider')) ) { el.hidden = true } else { el.remove() } } // create new list of items const items = document.createDocumentFragment() const typeAheadData = typeAheadCache.get(list) const limit = options.limit let visible = 0 function addItem(label: Label) { const containsQueryText = `${label.name}`.toLowerCase().trim().includes(queryText.toLocaleLowerCase()) const matching = !(limit != null && visible >= limit) && containsQueryText const shouldGenerate = matching || label.selected if (shouldGenerate) { const item = createLabelItem(label, template, existingElements, typeAheadData) item.hidden = !matching if (matching) visible++ items.appendChild(item) } } for (const l of data.labels) { addItem(l) } // add new items to DOM list.append(items) return visible } function initializeTypeAheadCache(list: Element) { typeAheadCache.set(list, { lastSearchResult: {labels: []}, cachedSuggestions: [], labelResultCache: new Map(), }) } async function getData(list: Element, queryText: string): Promise { if (!typeAheadCache.has(list)) { initializeTypeAheadCache(list) } const hasPreRenderedData = list.hasAttribute('data-filterable-data-pre-rendered') if (hasPreRenderedData) { return getPreRenderedLabels(list) } return await fetchQueryIfNeeded(list, queryText) } // This function will try to find any server side rendered users through the tag `.js-filterable-label` // If any are found, they will be added to the API returned data. function getPreRenderedLabels(list: Element): Data { const data = [] // Add all server rendered labels to our data const labels = list.querySelectorAll('.js-filterable-label') list.removeAttribute('data-filterable-data-pre-rendered') // If the list has been refreshed, or first time loaded, this will be non-zero, and therefore we clear the array and re-add the new items if (labels.length > 0) { // Read the server-side rendered elements that need to be added to suggestions. // This is a work-around to allow the server-side rendered elements to work with the filtering. for (const renderedLabel of list.querySelectorAll('.js-filterable-label')) { renderedLabel.classList.remove('js-filterable-label') // Deconstruct the element into a