diff --git a/docs/github-app-setup.md b/docs/github-app-setup.md
index daf9599..0aa41e2 100644
--- a/docs/github-app-setup.md
+++ b/docs/github-app-setup.md
@@ -108,6 +108,14 @@ Public reads use a [repository-scoped App user token](https://docs.github.com/en
Each API request renews through its own repository binding, rechecking identity
and public visibility while keeping the same user quota.
Existing installation bindings retain their installation checks.
+
+If a previously public source becomes private, its existing public-only binding
+continues to reject private reads. Select the repository in the App installation,
+then open the anonymization's Edit page and click **Repair GitHub access**. This
+verifies installation access to the same GitHub repository ID and published commit
+before replacing the binding. It preserves the anonymous URL, snapshot and settings.
+Signing in again alone does not change a resource's binding. The Connections page
+also provides **Reconnect read-only access** for this purpose.
This uses GitHub's documented [public resource access for App user tokens](https://docs.github.com/en/apps/creating-github-apps/registering-a-github-app/choosing-permissions-for-a-github-app).
The explicit **Use existing OAuth access** choice handles repositories not yet
diff --git a/public/asset-manifest.json b/public/asset-manifest.json
index a6bd5da..1c45c44 100644
--- a/public/asset-manifest.json
+++ b/public/asset-manifest.json
@@ -1,6 +1,6 @@
{
"core.min.js": "core.3b07189932.min.js",
- "vendor.min.js": "vendor.c091cfcbfd.min.js",
+ "vendor.min.js": "vendor.0ae693973a.min.js",
"mermaid.min.js": "mermaid.f848a72d16.min.js",
"all.min.css": "all.904f999bac.min.css",
"markdown.min.js": "markdown.44f2e93820.min.js",
diff --git a/public/partials/anonymize.htm b/public/partials/anonymize.htm
index 3322e2d..de40112 100644
--- a/public/partials/anonymize.htm
+++ b/public/partials/anonymize.htm
@@ -119,6 +119,13 @@
Select repositories on GitHub, then return here. Selected content will be published, including content from private repositories.
+
+ If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.
+ Repair GitHub access
+ Manage access
+ {{ accessRepairMessage }}
+
+
If you deleted and recreated this repository, reconnect it before choosing a branch.
Reconnect source repository
diff --git a/public/script/app.js b/public/script/app.js
index 8f8fe77..eeea77b 100644
--- a/public/script/app.js
+++ b/public/script/app.js
@@ -1404,6 +1404,38 @@ export const anonymizeController = function (state, http, html, params, location
return null;
}
+ state.accessRepairAllowed = false;
+ state.repairingGitHubAccess = false;
+ state.accessRepairMessage = "";
+ state.repairGitHubAccess = async () => {
+ if (!state.accessRepairAllowed || state.repairingGitHubAccess || !state.githubConnections?.appEnabled || !params.repoId || state.role !== "owner" ||
+ state.githubConnection !== "github-app" || parseRepoFullName(state.sourceUrl) !== state._originalFullName) return;
+ state.repairingGitHubAccess = true;
+ state.accessRepairMessage = "";
+ const request = beginSourceRequest();
+ try {
+ const connections = await http.get("/github/connections");
+ state.githubConnections = connections.data;
+ if (!connections.data.appEnabled) return;
+ const repaired = await http.post("/github/connections/migrate", { type: "repository", id: params.repoId, connection: "github-app" },
+ { headers: { "X-CSRF-Token": connections.data.csrf } });
+ if (!isCurrentSource(request)) return;
+ state.error = null;
+ if (repaired.data.fullName) {
+ state._originalFullName = repaired.data.fullName;
+ state.source.fullName = repaired.data.fullName;
+ state.sourceUrl = "https://github.com/" + repaired.data.fullName;
+ }
+ state.accessRepairMessage = "GitHub access repaired. Your anonymous URL and published commit are unchanged.";
+ await state.urlSelected(true);
+ } catch (_) {
+ if (isCurrentSource(request)) state.accessRepairMessage = "Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.";
+ } finally {
+ state.repairingGitHubAccess = false;
+ finishSourceRequest(request);
+ }
+ };
+
state.reconnectingSource = false;
state.reconnectRepositoryId = undefined;
state.reconnectSource = async () => {
@@ -1461,6 +1493,7 @@ export const anonymizeController = function (state, http, html, params, location
state.repoId = params.repoId;
http.get("/api/repo/" + state.repoId).then(
async (res) => {
+ state.accessRepairAllowed = !["removed", "archived", "preparing", "queue", "download", "removing", "expiring"].includes(res.data.status);
state.githubConnection = res.data.connection || "oauth";
state.sourceUrl = "https://github.com/" + res.data.source.fullName;
state._originalFullName = res.data.source.fullName;
diff --git a/public/script/vendor.min.js b/public/script/vendor.min.js
index c3b5e89..ea52a13 100644
--- a/public/script/vendor.min.js
+++ b/public/script/vendor.min.js
@@ -1,30 +1,30 @@
-"use strict";(()=>{var hd=Object.defineProperty;var vd=(e,t)=>{for(var n in t)hd(e,n,{get:t[n],enumerable:!0})};var he=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var ve={notebook:"/script/notebook.c3144c18ae.min.js",org:"/script/org.f61f262915.min.js",markdown:"/script/markdown.44f2e93820.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js",editor:"/script/editor.4f142d3adc.min.js"};function hr(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let n=new URLSearchParams(t);if([...n.keys()].length!==3||[...n.keys()].some(a=>!["clientId","intentId","token"].includes(a)))return null;let r=n.get("clientId"),s=n.get("intentId"),i=n.get("token");return!/^[a-f0-9]{32}$/.test(r||"")||!/^[a-f0-9]{32}$/.test(s||"")||!/^[a-f0-9]{64}$/.test(i||"")?null:{contract:"4open.artifacts/1",clientId:r,intentId:s,token:i}}function vr(e,t){let{http:n,promises:r,window:s}=t,i=t.takeReviewHandoff(),a=i?{clientId:i.clientId,intentId:i.intentId}:null,u,f,w,h,k,m=!0,E,y=r.defer(),g=()=>[...s.crypto.getRandomValues(new Uint8Array(16))].map(F=>F.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:i?"":"Open a new artifact link from your submission. This link is missing or invalid."});let C=()=>m&&e.user?.username===k;function R(){m=!1,i=u=f=void 0,y.resolve(),s.clearTimeout(E)}e.on("dispose",R),e.on("routeLeave",R),e.watch(()=>e.user?.username,F=>{!k&&F?k=F:k&&F!==k&&(R(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let T=()=>({timeout:y.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":f}}),I=F=>F?.status===404?"Artifact linking is not available on this server.":F?.status===401?"Sign in, then open a new artifact link from your submission.":F?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!m||!i||e.busy||e.uncertain||e.saved||!e.user?.username)return;k=e.user.username;let F=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(F)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,u=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,s.clearTimeout(E),h||(h=g());try{let P=(await n.get("/api/review-consent/csrf",{timeout:y.promise})).data;if(!C())return;if(f=P.csrf,e.handoffEnabled=P.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(f||""))throw new Error("invalid_csrf");let M=(await n.post("/api/review-consent/preview",{repositoryId:F,intent:{...i,requestId:h}},T())).data;if(!C())return;if(!M||typeof M.ticket!="string"||!M.ticket||M.ticket.length>8192||typeof M.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(M.policy?.access)||!Number.isSafeInteger(M.policy.version)||!Number.isFinite(Date.parse(M.policy.retainUntil))||!Number.isFinite(Date.parse(M.expiresAt))||Date.parse(M.expiresAt)<=Date.now()||Date.parse(M.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");u=M.ticket,w=g(),e.preview={repositoryName:M.repositoryName,policy:{...M.policy},expiresAt:M.expiresAt},E=s.setTimeout(()=>{m&&(e.expired=!0)},Math.max(0,Date.parse(M.expiresAt)-Date.now()))}catch(P){C()&&(e.error=I(P))}finally{C()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!C()||e.busy||e.saved||!u||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let F=(await n.post("/api/review-consent/confirm",{ticket:u,requestId:w,acceptAccess:!0,acceptRetention:!0},T())).data;if(!C())return;if(F?.requestId!==w||!Number.isFinite(Date.parse(F.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,i=void 0,e.handoffEnabled||(u=void 0)}catch{C()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{C()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!C()||e.busy||!e.saved||!e.handoffEnabled||!u||!a)return;e.busy=!0,e.error="";let F,P=()=>{F?.remove(),s.removeEventListener("securitypolicyviolation",M)},M=se=>{se.violatedDirective?.startsWith("form-action")&&(P(),C()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let se=(await n.post("/api/review-consent/handoff",{ticket:u},T())).data;if(!C())return;let oe=se?.completion,S=new URL(se?.callbackUrl);if(!oe||Object.keys(oe).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||oe.contract!=="4open.artifacts/1"||oe.clientId!==a.clientId||oe.intentId!==a.intentId||!/^[a-f0-9]{64}$/.test(oe.code||"")||!Number.isFinite(Date.parse(oe.expiresAt))||Date.parse(oe.expiresAt)<=Date.now()||Date.parse(oe.expiresAt)>Date.now()+3e5||S.protocol!=="https:"||S.href!==se.callbackUrl||S.username||S.password||se.callbackUrl.includes("?")||se.callbackUrl.includes("#"))throw new Error("invalid_handoff");F=s.document.createElement("form"),F.method="POST",F.action=S.href;let O=s.document.createElement("input");O.type="hidden",O.name="completion",O.value=JSON.stringify(oe),F.appendChild(O),s.document.body.appendChild(F),s.addEventListener("securitypolicyviolation",M),e.on("dispose",P),F.submit()}catch{P(),C()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var hn=new Map,bd=ve;function oo(e){if(!hn.has(e)){let t=document.createElement("script");t.src=bd[e];let n=new Promise((r,s)=>{t.onload=r,t.onerror=()=>{hn.delete(e),t.remove(),s(new Error(`Unable to load ${e}. Please retry.`))}});hn.set(e,n),document.head.appendChild(t)}return hn.get(e)}async function yr(){await oo("editor"),ace.config.set("basePath","/script/external/ace/")}function vo(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return n=>n in t}var Ie={},xt=[],at=()=>{},ds=()=>!1,yo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),go=e=>e.startsWith("onUpdate:"),Ge=Object.assign,qo=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},wd=Object.prototype.hasOwnProperty,Ne=(e,t)=>wd.call(e,t),ye=Array.isArray,Ht=e=>Mo(e)==="[object Map]",Ct=e=>Mo(e)==="[object Set]",gr=e=>Mo(e)==="[object Date]";var we=e=>typeof e=="function",Fe=e=>typeof e=="string",mt=e=>typeof e=="symbol",Te=e=>e!==null&&typeof e=="object",us=e=>(Te(e)||we(e))&&we(e.then)&&we(e.catch),Er=Object.prototype.toString,Mo=e=>Er.call(e),cs=e=>Mo(e).slice(8,-1),vn=e=>Mo(e)==="[object Object]",yn=e=>Fe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bo=vo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var gn=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},kd=/-\w/g,Je=gn(e=>e.replace(kd,t=>t.slice(1).toUpperCase())),Ed=/\B([A-Z])/g,Dt=gn(e=>e.replace(Ed,"-$1").toLowerCase()),no=gn(e=>e.charAt(0).toUpperCase()+e.slice(1)),$o=gn(e=>e?`on${no(e)}`:""),gt=(e,t)=>!Object.is(e,t),wo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ko=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var br,Lo=()=>br||(br=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function qe(e){if(ye(e)){let t={};for(let n=0;nn.startsWith("/*")?"":n).split(Cd).forEach(n=>{if(n){let r=n.split(_d);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function A(e){let t="";if(Fe(e))t=e;else if(ye(e))for(let n=0;n_t(n,t))}var Sr=e=>!!(e&&e.__v_isRef===!0),c=e=>Fe(e)?e:e==null?"":ye(e)||Te(e)&&(e.toString===Er||!we(e.toString))?Sr(e)?c(e.value):JSON.stringify(e,Nr,2):String(e),Nr=(e,t)=>Sr(t)?Nr(e,t.value):Ht(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[ls(r,i)+" =>"]=s,n),{})}:Ct(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ls(n))}:mt(t)?ls(t):Te(t)&&!ye(t)&&!vn(t)?String(t):t,ls=(e,t="")=>{var n;return mt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function Ad(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Qe,Ho=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Qe&&(Qe.active?(this.parent=Qe,this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){let r=this.scopes.slice();for(t=0,n=r.length;t0&&--this._on===0){if(Qe===this)Qe=this.prevScope;else{let t=Qe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(zo){let t=zo;for(zo=void 0;t;){let n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Fo;){let t=Fo;for(Fo=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Ir(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Pr(e){let t,n=e.depsTail,r=n;for(;r;){let s=r.prevDep;r.version===-1?(r===n&&(n=s),Ss(r),Od(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function hs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Bo)||(e.globalVersion=Bo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!hs(e))))return;e.flags|=2;let t=e.dep,n=Le,r=St;Le=e,St=!0;try{Ir(e);let s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Le=n,St=r,Pr(e),e.flags&=-3}}function Ss(e,t=!1){let{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ss(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Od(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var St=!0,qr=[];function It(){qr.push(St),St=!1}function Pt(){let e=qr.pop();St=e===void 0?!0:e}function Dr(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let n=Le;Le=void 0;try{t()}finally{Le=n}}}var Bo=0,vs=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},jo=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Le||!St||Le===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Le)n=this.activeLink=new vs(Le,this),Le.deps?(n.prevDep=Le.depsTail,Le.depsTail.nextDep=n,Le.depsTail=n):Le.deps=Le.depsTail=n,Mr(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){let r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Le.depsTail,n.nextDep=void 0,Le.depsTail.nextDep=n,Le.depsTail=n,Le.deps===n&&(Le.deps=r)}return n}trigger(t){this.version++,Bo++,this.notify(t)}notify(t){Cs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{_s()}}};function Mr(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Mr(r)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var ys=new WeakMap,ro=Symbol(""),gs=Symbol(""),Go=Symbol("");function xe(e,t,n){if(St&&Le){let r=ys.get(e);r||ys.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new jo),s.map=r,s.key=n),s.track()}}function Tt(e,t,n,r,s,i){let a=ys.get(e);if(!a){Bo++;return}let u=f=>{f&&f.trigger()};if(Cs(),t==="clear")a.forEach(u);else{let f=ye(e),w=f&&yn(n);if(f&&n==="length"){let h=Number(r);a.forEach((k,m)=>{(m==="length"||m===Go||!mt(m)&&m>=h)&&u(k)})}else switch((n!==void 0||a.has(void 0))&&u(a.get(n)),w&&u(a.get(Go)),t){case"add":f?w&&u(a.get("length")):(u(a.get(ro)),Ht(e)&&u(a.get(gs)));break;case"delete":f||(u(a.get(ro)),Ht(e)&&u(a.get(gs)));break;case"set":Ht(e)&&u(a.get(ro));break}}_s()}function Eo(e){let t=De(e);return t===e||(xe(t,"iterate",Go),lt(e))?t:bt(e)?Ot(e)?t.map(n=>jt(ht(n))):t.map(jt):t.map(ht)}function Ko(e){return xe(e=De(e),"iterate",Go),e}function Rt(e,t){return bt(e)?jt(Ot(e)?ht(t):t):ht(t)}var Id={__proto__:null,[Symbol.iterator](){return fs(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Eo(this).concat(...e.map(t=>ye(t)?Eo(t):t))},entries(){return fs(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return Bt(this,"every",e,t,void 0,arguments)},filter(e,t){return Bt(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return Bt(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return Bt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Bt(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return Bt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Bt(this,"forEach",e,t,void 0,arguments)},includes(...e){return ms(this,"includes",e)},indexOf(...e){return ms(this,"indexOf",e)},join(e){return Eo(this).join(e)},lastIndexOf(...e){return ms(this,"lastIndexOf",e)},map(e,t){return Bt(this,"map",e,t,void 0,arguments)},pop(){return Uo(this,"pop")},push(...e){return Uo(this,"push",e)},reduce(e,...t){return Rr(this,"reduce",e,t)},reduceRight(e,...t){return Rr(this,"reduceRight",e,t)},shift(){return Uo(this,"shift")},some(e,t){return Bt(this,"some",e,t,void 0,arguments)},splice(...e){return Uo(this,"splice",e)},toReversed(){return Eo(this).toReversed()},toSorted(e){return Eo(this).toSorted(e)},toSpliced(...e){return Eo(this).toSpliced(...e)},unshift(...e){return Uo(this,"unshift",e)},values(){return fs(this,"values",e=>Rt(this,e))}};function fs(e,t,n){let r=Ko(e),s=r[t]();return r!==e&&!lt(e)&&(s._next=s.next,s.next=()=>{let i=s._next();return i.done||(i.value=n(i.value)),i}),s}var Pd=Array.prototype;function Bt(e,t,n,r,s,i){let a=Ko(e),u=a!==e&&!lt(e),f=a[t];if(f!==Pd[t]){let k=f.apply(e,i);return u?ht(k):k}let w=n;a!==e&&(u?w=function(k,m){return n.call(this,Rt(e,k),m,e)}:n.length>2&&(w=function(k,m){return n.call(this,k,m,e)}));let h=f.call(a,w,r);return u&&s?s(h):h}function Rr(e,t,n,r){let s=Ko(e),i=s!==e&&!lt(e),a=n,u=!1;s!==e&&(i?(u=r.length===0,a=function(w,h,k){return u&&(u=!1,w=Rt(e,w)),n.call(this,w,Rt(e,h),k,e)}):n.length>3&&(a=function(w,h,k){return n.call(this,w,h,k,e)}));let f=s[t](a,...r);return u?Rt(e,f):f}function ms(e,t,n){let r=De(e);xe(r,"iterate",Go);let s=r[t](...n);return(s===-1||s===!1)&&Jo(n[0])?(n[0]=De(n[0]),r[t](...n)):s}function Uo(e,t,n=[]){It(),Cs();let r=De(e)[t].apply(e,n);return _s(),Pt(),r}var Vd=vo("__proto__,__v_isRef,__isVue"),$r=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(mt));function qd(e){mt(e)||(e=String(e));let t=De(this);return xe(t,"has",e),t.hasOwnProperty(e)}var Sn=class{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;let s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?jd:Fr:i?Ur:Lr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;let a=ye(t);if(!s){let f;if(a&&(f=Id[n]))return f;if(n==="hasOwnProperty")return qd}let u=Reflect.get(t,n,Ze(t)?t:r);if((mt(n)?$r.has(n):Vd(n))||(s||xe(t,"get",n),i))return u;if(Ze(u)){let f=a&&yn(n)?u:u.value;return s&&Te(f)?Dn(f):f}return Te(u)?s?Dn(u):ze(u):u}},Nn=class extends Sn{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n],a=ye(t)&&yn(n);if(!this._isShallow){let w=bt(i);if(!lt(r)&&!bt(r)&&(i=De(i),r=De(r)),!a&&Ze(i)&&!Ze(r))return w||(i.value=r),!0}let u=a?Number(n)e,En=e=>Reflect.getPrototypeOf(e);function Ud(e,t,n){return function(...r){let s=this.__v_raw,i=De(s),a=Ht(i),u=e==="entries"||e===Symbol.iterator&&a,f=e==="keys"&&a,w=s[e](...r),h=n?ws:t?jt:ht;return!t&&xe(i,"iterate",f?gs:ro),Ge(Object.create(w),{next(){let{value:k,done:m}=w.next();return m?{value:k,done:m}:{value:u?[h(k[0]),h(k[1])]:h(k),done:m}}})}}function Cn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Fd(e,t){let n={get(s){let i=this.__v_raw,a=De(i),u=De(s);e||(gt(s,u)&&xe(a,"get",s),xe(a,"get",u));let{has:f}=En(a),w=t?ws:e?jt:ht;if(f.call(a,s))return w(i.get(s));if(f.call(a,u))return w(i.get(u));i!==a&&i.get(s)},get size(){let s=this.__v_raw;return!e&&xe(De(s),"iterate",ro),s.size},has(s){let i=this.__v_raw,a=De(i),u=De(s);return e||(gt(s,u)&&xe(a,"has",s),xe(a,"has",u)),s===u?i.has(s):i.has(s)||i.has(u)},forEach(s,i){let a=this,u=a.__v_raw,f=De(u),w=t?ws:e?jt:ht;return!e&&xe(f,"iterate",ro),u.forEach((h,k)=>s.call(i,w(h),w(k),a))}};return Ge(n,e?{add:Cn("add"),set:Cn("set"),delete:Cn("delete"),clear:Cn("clear")}:{add(s){let i=De(this),a=En(i),u=De(s),f=!t&&!lt(s)&&!bt(s)?u:s;return a.has.call(i,f)||gt(s,f)&&a.has.call(i,s)||gt(u,f)&&a.has.call(i,u)||(i.add(f),Tt(i,"add",f,f)),this},set(s,i){!t&&!lt(i)&&!bt(i)&&(i=De(i));let a=De(this),{has:u,get:f}=En(a),w=u.call(a,s);w||(s=De(s),w=u.call(a,s));let h=f.call(a,s);return a.set(s,i),w?gt(i,h)&&Tt(a,"set",s,i,h):Tt(a,"add",s,i),this},delete(s){let i=De(this),{has:a,get:u}=En(i),f=a.call(i,s);f||(s=De(s),f=a.call(i,s));let w=u?u.call(i,s):void 0,h=i.delete(s);return f&&Tt(i,"delete",s,void 0,w),h},clear(){let s=De(this),i=s.size!==0,a=void 0,u=s.clear();return i&&Tt(s,"clear",void 0,void 0,a),u}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Ud(s,e,t)}),n}function Ns(e,t){let n=Fd(e,t);return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Ne(n,s)&&s in r?n:r,s,i)}var zd={get:Ns(!1,!1)},Hd={get:Ns(!1,!0)},Bd={get:Ns(!0,!1)};var Lr=new WeakMap,Ur=new WeakMap,Fr=new WeakMap,jd=new WeakMap;function Gd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ze(e){return bt(e)?e:Ds(e,!1,Md,zd,Lr)}function Yo(e){return Ds(e,!1,Ld,Hd,Ur)}function Dn(e){return Ds(e,!0,$d,Bd,Fr)}function Ds(e,t,n,r,s){if(!Te(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let i=s.get(e);if(i)return i;let a=Gd(cs(e));if(a===0)return e;let u=new Proxy(e,a===2?r:n);return s.set(e,u),u}function Ot(e){return bt(e)?Ot(e.__v_raw):!!(e&&e.__v_isReactive)}function bt(e){return!!(e&&e.__v_isReadonly)}function lt(e){return!!(e&&e.__v_isShallow)}function Jo(e){return e?!!e.__v_raw:!1}function De(e){let t=e&&e.__v_raw;return t?De(t):e}function Rs(e){return!Ne(e,"__v_skip")&&Object.isExtensible(e)&&bn(e,"__v_skip",!0),e}var ht=e=>Te(e)?ze(e):e,jt=e=>Te(e)?Dn(e):e;function Ze(e){return e?e.__v_isRef===!0:!1}function et(e){return zr(e,!1)}function Tn(e){return zr(e,!0)}function zr(e,t){return Ze(e)?e:new ks(e,t)}var ks=class{constructor(t,n){this.dep=new jo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:De(t),this._value=n?t:ht(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){let n=this._rawValue,r=this.__v_isShallow||lt(t)||bt(t);t=r?t:De(t),gt(t,n)&&(this._rawValue=t,this._value=r?t:ht(t),this.dep.trigger())}};function Gt(e){return Ze(e)?e.value:e}var Wd={get:(e,t,n)=>t==="__v_raw"?e:Gt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let s=e[t];return Ze(s)&&!Ze(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function An(e){return Ot(e)?e:new Proxy(e,Wd)}var Es=class{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new jo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Bo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Le!==this)return Or(this,!0),!0}get value(){let t=this.dep.track();return Vr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Hr(e,t,n=!1){let r,s;return we(e)?r=e:(r=e.get,s=e.set),new Es(r,s,n)}var _n={},Rn=new WeakMap,so;function Br(e,t=!1,n=so){if(n){let r=Rn.get(n);r||Rn.set(n,r=[]),r.push(e)}}function jr(e,t,n=Ie){let{immediate:r,deep:s,once:i,scheduler:a,augmentJob:u,call:f}=n,w=P=>{(n.onWarn||Ad)("Invalid watch source: ",P,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},h=P=>s?P:lt(P)||s===!1||s===0?At(P,1):At(P),k,m,E,y,g=!1,C=!1;if(Ze(e)?(m=()=>e.value,g=lt(e)):Ot(e)?(m=()=>h(e),g=!0):ye(e)?(C=!0,g=e.some(P=>Ot(P)||lt(P)),m=()=>e.map(P=>{if(Ze(P))return P.value;if(Ot(P))return h(P);if(we(P))return f?f(P,2):P()})):we(e)?t?m=f?()=>f(e,2):e:m=()=>{if(E){It();try{E()}finally{Pt()}}let P=so;so=k;try{return f?f(e,3,[y]):e(y)}finally{so=P}}:m=at,t&&s){let P=m,M=s===!0?1/0:s;m=()=>At(P(),M)}let R=Tr(),T=()=>{k.stop(),R&&R.active&&qo(R.effects,k)};if(i&&t){let P=t;t=(...M)=>{let se=P(...M);return T(),se}}let I=C?new Array(e.length).fill(_n):_n,F=P=>{if(!(!(k.flags&1)||!k.dirty&&!P))if(t){let M=k.run();if(P||s||g||(C?M.some((se,oe)=>gt(se,I[oe])):gt(M,I))){E&&E();let se=so;so=k;try{let oe=[M,I===_n?void 0:C&&I[0]===_n?[]:I,y];I=M,f?f(t,3,oe):t(...oe)}finally{so=se}}}else k.run()};return u&&u(F),k=new Co(m),k.scheduler=a?()=>a(F,!1):F,y=P=>Br(P,!1,k),E=k.onStop=()=>{let P=Rn.get(k);if(P){if(f)f(P,4);else for(let M of P)M();Rn.delete(k)}},t?r?F(!0):I=k.run():a?a(F.bind(null,!0),!0):k.run(),T.pause=k.pause.bind(k),T.resume=k.resume.bind(k),T.stop=T,T}function At(e,t=1/0,n){if(t<=0||!Te(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ze(e))At(e.value,t,n);else if(ye(e))for(let r=0;r{At(r,t,n)});else if(vn(e)){for(let r in e)At(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&At(e[r],t,n)}return e}function rn(e,t,n,r){try{return r?e(...r):e()}catch(s){an(s,t,n)}}function wt(e,t,n,r){if(we(e)){let s=rn(e,t,n,r);return s&&us(s)&&s.catch(i=>{an(i,t,n)}),s}if(ye(e)){let s=[];for(let i=0;i>>1,s=rt[r],i=on(s);i=on(n)?rt.push(e):rt.splice(Xd(t),0,e),e.flags|=1,li()}}function li(){Pn||(Pn=ai.then(ci))}function di(e){if(!ye(e))eo&&e.id===-1?eo.splice(_o+1,0,e):e.flags&1||(So.push(e),e.flags|=1);else for(let t=0;ton(n)-on(r));if(So.length=0,eo){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ci(e){let t=at;try{for(qt=0;qt{r._d&&$n(-1);let i=Vn(t),a=lo.length,u;try{u=e(...s)}finally{for(let f=lo.length;f>a;f--)zi();Vn(i),r._d&&$n(1)}return u};return r._n=!0,r._c=!0,r._d=!0,r}function D(e,t){if(vt===null)return e;let n=Kn(vt),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&we(t)?t.call(r&&r.proxy):t}}var xd=Symbol.for("v-scx"),eu=()=>{{let e=ut(xd);return e}};function Be(e,t,n){return fi(e,t,n)}function fi(e,t,n=Ie){let{immediate:r,deep:s,flush:i,once:a}=n,u=Ge({},n),f=t&&r||!t&&i!=="post",w;if(Ro){if(i==="sync"){let E=eu();w=E.__watcherHandles||(E.__watcherHandles=[])}else if(!f){let E=()=>{};return E.stop=at,E.resume=at,E.pause=at,E}}let h=tt;u.call=(E,y,g)=>wt(E,h,y,g);let k=!1;i==="post"?u.scheduler=E=>{dt(E,h&&h.suspense)}:i!=="sync"&&(k=!0,u.scheduler=(E,y)=>{y?E():$s(E)}),u.augmentJob=E=>{t&&(E.flags|=4),k&&(E.flags|=2,h&&(E.id=h.uid,E.i=h))};let m=jr(e,t,u);return Ro&&(w?w.push(m):f&&m()),m}function tu(e,t,n){let r=this.proxy,s=Fe(e)?e.includes(".")?mi(r,e):()=>r[e]:e.bind(r,r),i;we(t)?i=t:(i=t.handler,n=t);let a=un(this),u=fi(s,i.bind(r),n);return a(),u}function mi(e,t){let n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport;var Ts=Symbol("_leaveCb");function nu(e){let t=e[0];if(e.length>1){let n=!1;for(let r of e)if(r.type!==Kt){t=r,n=!0;break}}return t}function hi(e){if(!Bn(e))return zn(e.type)&&e.children?nu(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&we(n.default))return n.default()}}function Hn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Hn(zn(n.type)&&hi(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ln(e,t){return we(e)?Ge({name:e.name},t,{setup:e}):e}function Ls(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Wr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var qn=new WeakMap;function Zo(e,t,n,r,s=!1){if(ye(e)){e.forEach((g,C)=>Zo(g,t&&(ye(t)?t[C]:t),n,r,s));return}if(xo(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Zo(e,t,n,r.component.subTree);return}let i=r.shapeFlag&4?Kn(r.component):r.el,a=s?null:i,{i:u,r:f}=e,w=t&&t.r,h=u.refs===Ie?u.refs={}:u.refs,k=u.setupState,m=De(k),E=k===Ie?ds:g=>Wr(h,g)?!1:Ne(m,g),y=(g,C)=>!(C&&Wr(h,C));if(w!=null&&w!==f){if(Kr(t),Fe(w))h[w]=null,E(w)&&(k[w]=null);else if(Ze(w)){let g=t;y(w,g.k)&&(w.value=null),g.k&&(h[g.k]=null)}}if(we(f))rn(f,u,12,[a,h]);else{let g=Fe(f),C=Ze(f);if(g||C){let R=()=>{if(e.f){let T=g?E(f)?k[f]:h[f]:y(f)||!e.k?f.value:h[e.k];if(s)ye(T)&&qo(T,i);else if(ye(T))T.includes(i)||T.push(i);else if(g)h[f]=[i],E(f)&&(k[f]=h[f]);else{let I=[i];y(f,e.k)&&(f.value=I),e.k&&(h[e.k]=I)}}else g?(h[f]=a,E(f)&&(k[f]=a)):C&&(y(f,e.k)&&(f.value=a),e.k&&(h[e.k]=a))};if(a){let T=()=>{R(),qn.delete(e)};T.id=-1,qn.set(e,T),dt(T,n)}else Kr(e),R()}}}function Kr(e){let t=qn.get(e);t&&(t.flags|=8,qn.delete(e))}var Yr=e=>e.nodeType===8;var j6=Lo().requestIdleCallback||(e=>setTimeout(e,1)),G6=Lo().cancelIdleCallback||(e=>clearTimeout(e));function su(e,t){if(Yr(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Yr(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}var xo=e=>!!e.type.__asyncLoader;function vi(e){we(e)&&(e={loader:e});let{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:i,timeout:a,suspensible:u=!0,onError:f}=e,w=null,h,k=0,m=()=>(k++,w=null,E()),E=()=>{let y;return w||(y=w=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),f)return new Promise((C,R)=>{f(g,()=>C(m()),()=>R(g),k+1)});throw g}).then(g=>y!==w&&w?w:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),h=g,g)))};return ln({name:"AsyncComponentWrapper",__asyncLoader:E,__asyncHydrate(y,g,C){let R=y.isConnected,T=!1;(g.bu||(g.bu=[])).push(()=>T=!0);let I=()=>{T||!y.parentNode||R&&!y.isConnected||C()},F=i?()=>{let P=i(I,M=>su(y,M));P&&(g.bum||(g.bum=[])).push(P)}:I;h?F():E().then(()=>!g.isUnmounted&&F())},get __asyncResolved(){return h},setup(){let y=tt;if(Ls(y),h)return()=>On(h,y);let g=P=>{w=null,an(P,y,13,!r)};if(u&&y.suspense||Ro)return E().then(P=>()=>On(P,y)).catch(P=>(g(P),()=>r?Ce(r,{error:P}):null));let C=et(!1),R=et(),T=et(!!s),I,F;return dn(()=>{I!=null&&clearTimeout(I),F!=null&&clearTimeout(F)}),s&&(F=setTimeout(()=>{y.isUnmounted||(T.value=!1)},s)),a!=null&&(I=setTimeout(()=>{if(!y.isUnmounted&&!C.value&&!R.value){let P=new Error(`Async component timed out after ${a}ms.`);g(P),R.value=P}},a)),E().then(()=>{y.isUnmounted||(C.value=!0,y.parent&&Bn(y.parent.vnode)&&y.parent.update())}).catch(P=>{if(y.isUnmounted){w=null;return}g(P),R.value=P}),()=>{if(C.value&&h)return On(h,y);if(R.value&&r)return Ce(r,{error:R.value});if(n&&!T.value)return On(n,y)}}})}function On(e,t){let{ref:n,props:r,children:s,ce:i}=t.vnode,a=Ce(e,r,s);return a.ref=n,a.ce=i,delete t.vnode.ce,a}var Bn=e=>e.type.__isKeepAlive;function yi(e,t){bi(e,"a",t)}function gi(e,t){bi(e,"da",t)}function bi(e,t,n=tt){let r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(jn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Bn(s.parent.vnode)&&ru(r,t,n,s),s=s.parent}}function ru(e,t,n,r){let s=jn(t,e,r,!0);dn(()=>{qo(r[t],s)},n)}function jn(e,t,n=tt,r=!1){if(n){let s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...a)=>{It();let u=un(n),f=wt(t,n,e,a);return u(),Pt(),f});return r?s.unshift(i):s.push(i),i}}var Yt=e=>(t,n=tt)=>{(!Ro||e==="sp")&&jn(e,(...r)=>t(...r),n)},iu=Yt("bm"),$t=Yt("m"),wi=Yt("bu"),ki=Yt("u"),co=Yt("bum"),dn=Yt("um"),au=Yt("sp"),lu=Yt("rtg"),du=Yt("rtc");function uu(e,t=tt){jn("ec",e,t)}var Ei="components",cu="directives";function We(e,t){return Ci(Ei,e,!0,t)||e}var pu=Symbol.for("v-ndc");function be(e){return Ci(cu,e)}function Ci(e,t,n=!0,r=!1){let s=vt||tt;if(s){let i=s.type;if(e===Ei){let u=Ju(i,!1);if(u&&(u===t||u===Je(t)||u===no(Je(t))))return i}let a=Jr(s[e]||i[e],t)||Jr(s.appContext[e],t);return!a&&r?i:a}}function Jr(e,t){return e&&(e[t]||e[Je(t)]||e[no(Je(t))])}function ae(e,t,n,r){let s,i=n&&n[r],a=ye(e);if(a||Fe(e)){let u=a&&Ot(e),f=!1,w=!1;u&&(f=!lt(e),w=bt(e),e=Ko(e)),s=new Array(e.length);for(let h=0,k=e.length;ht(u,f,void 0,i&&i[f]));else{let u=Object.keys(e);s=new Array(u.length);for(let f=0,w=u.length;fe?ji(e)?Kn(e):Ps(e.parent):null;var en=Ge(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ps(e.parent),$root:e=>Ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Us(e),$forceUpdate:e=>e.f||(e.f=()=>{$s(e.update)}),$nextTick:e=>e.n||(e.n=nt.bind(e.proxy)),$watch:e=>tu.bind(e)});var As=(e,t)=>e!==Ie&&!e.__isScriptSetup&&Ne(e,t),fu={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:n,setupState:r,data:s,props:i,accessCache:a,type:u,appContext:f}=e;if(t[0]!=="$"){let m=a[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(As(r,t))return a[t]=1,r[t];if(s!==Ie&&Ne(s,t))return a[t]=2,s[t];if(Ne(i,t))return a[t]=3,i[t];if(n!==Ie&&Ne(n,t))return a[t]=4,n[t];Vs&&(a[t]=0)}}let w=en[t],h,k;if(w)return t==="$attrs"&&xe(e.attrs,"get",""),w(e);if((h=u.__cssModules)&&(h=h[t]))return h;if(n!==Ie&&Ne(n,t))return a[t]=4,n[t];if(k=f.config.globalProperties,Ne(k,t))return k[t]},set({_:e},t,n){let{data:r,setupState:s,ctx:i}=e;return As(s,t)?(s[t]=n,!0):r!==Ie&&Ne(r,t)?(r[t]=n,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:i,type:a}},u){let f;return!!(n[u]||e!==Ie&&u[0]!=="$"&&Ne(e,u)||As(t,u)||Ne(i,u)||Ne(r,u)||Ne(en,u)||Ne(s.config.globalProperties,u)||(f=a.__cssModules)&&f[u])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Qr(e){return ye(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}var Vs=!0;function mu(e){let t=Us(e),n=e.proxy,r=e.ctx;Vs=!1,t.beforeCreate&&Xr(t.beforeCreate,e,"bc");let{data:s,computed:i,methods:a,watch:u,provide:f,inject:w,created:h,beforeMount:k,mounted:m,beforeUpdate:E,updated:y,activated:g,deactivated:C,beforeDestroy:R,beforeUnmount:T,destroyed:I,unmounted:F,render:P,renderTracked:M,renderTriggered:se,errorCaptured:oe,serverPrefetch:S,expose:O,inheritAttrs:Y,components:Z,directives:te,filters:J}=t;if(w&&hu(w,r,null),a)for(let fe in a){let le=a[fe];we(le)&&(r[fe]=le.bind(n))}if(s){let fe=s.call(n,n);Te(fe)&&(e.data=ze(fe))}if(Vs=!0,i)for(let fe in i){let le=i[fe],Oe=we(le)?le.bind(n,n):we(le.get)?le.get.bind(n,n):at,_e=!we(le)&&we(le.set)?le.set.bind(n):at,Ue=ot({get:Oe,set:_e});Object.defineProperty(r,fe,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:Re=>Ue.value=Re})}if(u)for(let fe in u)_i(u[fe],r,n,fe);if(f){let fe=we(f)?f.call(n):f;Reflect.ownKeys(fe).forEach(le=>{uo(le,fe[le])})}h&&Xr(h,e,"c");function ce(fe,le){ye(le)?le.forEach(Oe=>fe(Oe.bind(n))):le&&fe(le.bind(n))}if(ce(iu,k),ce($t,m),ce(wi,E),ce(ki,y),ce(yi,g),ce(gi,C),ce(uu,oe),ce(du,M),ce(lu,se),ce(co,T),ce(dn,F),ce(au,S),ye(O))if(O.length){let fe=e.exposed||(e.exposed={});O.forEach(le=>{Object.defineProperty(fe,le,{get:()=>n[le],set:Oe=>n[le]=Oe,enumerable:!0})})}else e.exposed||(e.exposed={});P&&e.render===at&&(e.render=P),Y!=null&&(e.inheritAttrs=Y),Z&&(e.components=Z),te&&(e.directives=te),S&&Ls(e)}function hu(e,t,n=at){ye(e)&&(e=qs(e));for(let r in e){let s=e[r],i;Te(s)?"default"in s?i=ut(s.from||r,s.default,!0):i=ut(s.from||r):i=ut(s),Ze(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[r]=i}}function Xr(e,t,n){wt(ye(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function _i(e,t,n,r){let s=r.includes(".")?mi(n,r):()=>n[r];if(Fe(e)){let i=t[e];we(i)&&Be(s,i)}else if(we(e))Be(s,e.bind(n));else if(Te(e))if(ye(e))e.forEach(i=>_i(i,t,n,r));else{let i=we(e.handler)?e.handler.bind(n):t[e.handler];we(i)&&Be(s,i,e)}}function Us(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,u=i.get(t),f;return u?f=u:!s.length&&!n&&!r?f=t:(f={},s.length&&s.forEach(w=>Mn(f,w,a,!0)),Mn(f,t,a)),Te(t)&&i.set(t,f),f}function Mn(e,t,n,r=!1){let{mixins:s,extends:i}=t;i&&Mn(e,i,n,!0),s&&s.forEach(a=>Mn(e,a,n,!0));for(let a in t)if(!(r&&a==="expose")){let u=vu[a]||n&&n[a];e[a]=u?u(e[a],t[a]):t[a]}return e}var vu={data:Zr,props:xr,emits:xr,methods:Xo,computed:Xo,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Xo,directives:Xo,watch:gu,provide:Zr,inject:yu};function Zr(e,t){return t?e?function(){return Ge(we(e)?e.call(this,this):e,we(t)?t.call(this,this):t)}:t:e}function yu(e,t){return Xo(qs(e),qs(t))}function qs(e){if(ye(e)){let t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${Dt(t)}Modifiers`];function Eu(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||Ie,s=n,i=t.startsWith("update:"),a=i&&ku(r,t.slice(7));a&&(a.trim&&(s=n.map(h=>Fe(h)?h.trim():h)),a.number&&(s=s.map(ko)));let u,f=r[u=$o(t)]||r[u=$o(Je(t))];!f&&i&&(f=r[u=$o(Dt(t))]),f&&wt(f,e,6,s);let w=r[u+"Once"];if(w){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,wt(w,e,6,s)}}var Cu=new WeakMap;function Ni(e,t,n=!1){let r=n?Cu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;let i=e.emits,a={},u=!1;if(!we(e)){let f=w=>{let h=Ni(w,t,!0);h&&(u=!0,Ge(a,h))};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!i&&!u?(Te(e)&&r.set(e,null),null):(ye(i)?i.forEach(f=>a[f]=null):Ge(a,i),Te(e)&&r.set(e,a),a)}function Gn(e,t){return!e||!yo(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,Dt(t))||Ne(e,t))}function Os(e){let{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:a,attrs:u,emit:f,render:w,renderCache:h,props:k,data:m,setupState:E,ctx:y,inheritAttrs:g}=e,C=Vn(e),R,T;try{if(n.shapeFlag&4){let P=s||r,M=P;R=Mt(w.call(M,P,h,k,E,m,y)),T=u}else{let P=t;R=Mt(P.length>1?P(k,{attrs:u,slots:a,emit:f}):P(k,null)),T=t.props?u:_u(u)}}catch(P){lo.length=0,an(P,e,1),R=Ce(Kt)}let I=R,F;if(T&&g!==!1){let P=Object.keys(T),{shapeFlag:M}=I;P.length&&M&7&&(i&&P.some(go)&&(T=Su(T,i)),I=Do(I,T,!1,!0))}if(n.dirs&&(I=Do(I,null,!1,!0),I.dirs=I.dirs?I.dirs.concat(n.dirs):n.dirs),n.transition){let P=zn(I.type)&&hi(I)||I;Hn(P,n.transition)}return R=I,Vn(C),R}var _u=e=>{let t;for(let n in e)(n==="class"||n==="style"||yo(n))&&((t||(t={}))[n]=e[n]);return t},Su=(e,t)=>{let n={};for(let r in e)(!go(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Nu(e,t,n){let{props:r,children:s,component:i}=e,{props:a,children:u,patchFlag:f}=t,w=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&f>=0){if(f&1024)return!0;if(f&16)return r?ei(r,a,w):!!a;if(f&8){let h=t.dynamicProps;for(let k=0;kObject.create(Ri),Ai=e=>Object.getPrototypeOf(e)===Ri;function Ru(e,t,n,r=!1){let s={},i=Ti();e.propsDefaults=Object.create(null),Oi(e,t,s,i);for(let a in e.propsOptions[0])a in s||(s[a]=void 0);n?e.props=r?s:Yo(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Tu(e,t,n,r){let{props:s,attrs:i,vnode:{patchFlag:a}}=e,u=De(s),[f]=e.propsOptions,w=!1;if((r||a>0)&&!(a&16)){if(a&8){let h=e.vnode.dynamicProps;for(let k=0;k{f=!0;let[m,E]=Ii(k,t,!0);Ge(a,m),E&&u.push(...E)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!f)return Te(e)&&r.set(e,xt),xt;if(ye(i))for(let h=0;he==="_"||e==="_ctx"||e==="$stable",zs=e=>ye(e)?e.map(Mt):[Mt(e)],Ou=(e,t,n)=>{if(t._n)return t;let r=Zd((...s)=>zs(t(...s)),n);return r._c=!1,r},Pi=(e,t,n)=>{let r=e._ctx;for(let s in e){if(Fs(s))continue;let i=e[s];if(we(i))t[s]=Ou(s,i,r);else if(i!=null){let a=zs(i);t[s]=()=>a}}},Vi=(e,t)=>{let n=zs(t);e.slots.default=()=>n},qi=(e,t,n)=>{for(let r in t)(n||!Fs(r))&&(e[r]=t[r])},Iu=(e,t,n)=>{let r=e.slots=Ti();if(e.vnode.shapeFlag&32){let s=t._;s?(qi(r,t,n),n&&bn(r,"_",s,!0)):Pi(t,r)}else t&&Vi(e,t)},Pu=(e,t,n)=>{let{vnode:r,slots:s}=e,i=!0,a=Ie;if(r.shapeFlag&32){let u=t._;u?n&&u===1?i=!1:qi(s,t,n):(i=!t.$stable,Pi(t,s)),a=t}else t&&(Vi(e,t),a={default:1});if(i)for(let u in s)!Fs(u)&&a[u]==null&&delete s[u]};function Vu(){let e=[]}var dt=Lu;function Mi(e){return qu(e)}function qu(e,t){Vu();let n=Lo();n.__VUE__=!0;let{insert:r,remove:s,patchProp:i,createElement:a,createText:u,createComment:f,setText:w,setElementText:h,parentNode:k,nextSibling:m,setScopeId:E=at,insertStaticContent:y}=e,g=(v,N,q,H=null,j=null,U=null,G=void 0,ee=null,x=!!N.dynamicChildren)=>{if(v===N)return;v&&!Qo(v,N)&&(H=ne(v),Me(v,j,U,!0),v=null),N.patchFlag===-2&&(x=!1,N.dynamicChildren=null),N.dynamicChildren&&v&&v.dynamicChildren&&v.dynamicChildren.hasOnce&&(N.dynamicChildren===xt&&(N.dynamicChildren=[]),N.dynamicChildren.hasOnce=!0);let{type:W,ref:me,shapeFlag:ie}=N;switch(W){case Wn:C(v,N,q,H);break;case Kt:R(v,N,q,H);break;case tn:v==null&&T(N,q,H,G);break;case X:te(v,N,q,H,j,U,G,ee,x);break;default:ie&1?M(v,N,q,H,j,U,G,ee,x):ie&6?J(v,N,q,H,j,U,G,ee,x):(ie&64||ie&128)&&W.process(v,N,q,H,j,U,G,ee,x,V)}me!=null&&j?Zo(me,v&&v.ref,U,N||v,!N):me==null&&v&&v.ref!=null&&Zo(v.ref,null,U,v,!0)},C=(v,N,q,H)=>{if(v==null)r(N.el=u(N.children),q,H);else{let j=N.el=v.el;N.children!==v.children&&w(j,N.children)}},R=(v,N,q,H)=>{v==null?r(N.el=f(N.children||""),q,H):N.el=v.el},T=(v,N,q,H)=>{[v.el,v.anchor]=y(v.children,N,q,H,v.el,v.anchor)},I=(v,N,q,H)=>{if(N.children!==v.children){let j=m(v.anchor);P(v),[N.el,N.anchor]=y(N.children,q,j,H)}else N.el=v.el,N.anchor=v.anchor},F=({el:v,anchor:N},q,H)=>{let j;for(;v&&v!==N;)j=m(v),r(v,q,H),v=j;r(N,q,H)},P=({el:v,anchor:N})=>{let q;for(;v&&v!==N;)q=m(v),s(v),v=q;s(N)},M=(v,N,q,H,j,U,G,ee,x)=>{if(N.type==="svg"?G="svg":N.type==="math"&&(G="mathml"),v==null)se(N,q,H,j,U,G,ee,x);else{let W=v.el&&v.el._isVueCE?v.el:null;try{W&&W._beginPatch(),O(v,N,j,U,G,ee,x)}finally{W&&W._endPatch()}}},se=(v,N,q,H,j,U,G,ee)=>{let x,W,{props:me,shapeFlag:ie,transition:ue,dirs:ge}=v;if(x=v.el=a(v.type,U,me&&me.is,me),ie&8?h(x,v.children):ie&16&&S(v.children,x,null,H,j,Is(v,U),G,ee),ge&&io(v,null,H,"created"),oe(x,v,v.scopeId,G,H),me){for(let $e in me)$e!=="value"&&!bo($e)&&i(x,$e,null,me[$e],U,H);"value"in me&&i(x,"value",null,me.value,U),(W=me.onVnodeBeforeMount)&&Vt(W,H,v)}ge&&io(v,null,H,"beforeMount");let Se=Mu(j,ue);Se&&ue.beforeEnter(x),r(x,N,q),((W=me&&me.onVnodeMounted)||Se||ge)&&dt(()=>{let Ve;W&&Vt(W,H,v),Se&&ue.enter(x),ge&&io(v,null,H,"mounted")},j)},oe=(v,N,q,H,j)=>{if(q&&E(v,q),H)for(let U=0;U{for(let W=x;W{let ee=N.el=v.el,{patchFlag:x,dynamicChildren:W,dirs:me}=N;x|=v.patchFlag&16;let ie=v.props||Ie,ue=N.props||Ie,ge;if(q&&ao(q,!1),(ge=ue.onVnodeBeforeUpdate)&&Vt(ge,q,N,v),me&&io(N,v,q,"beforeUpdate"),q&&ao(q,!0),W&&(!v.dynamicChildren||v.dynamicChildren.length!==W.length)&&(x=0,G=!1,W=null),(ie.innerHTML&&ue.innerHTML==null||ie.textContent&&ue.textContent==null)&&h(ee,""),W?Y(v.dynamicChildren,W,ee,q,H,Is(N,j),U):G||Oe(v,N,ee,null,q,H,Is(N,j),U,!1),x>0){if(x&16)Z(ee,ie,ue,q,j);else if(x&2&&ie.class!==ue.class&&i(ee,"class",null,ue.class,j),x&4&&i(ee,"style",ie.style,ue.style,j),x&8){let Se=N.dynamicProps;for(let $e=0;$e{ge&&Vt(ge,q,N,v),me&&io(N,v,q,"updated")},H)},Y=(v,N,q,H,j,U,G)=>{for(let ee=0;ee{if(N!==q){if(N!==Ie)for(let U in N)!bo(U)&&!(U in q)&&i(v,U,N[U],null,j,H);for(let U in q){if(bo(U))continue;let G=q[U],ee=N[U];G!==ee&&U!=="value"&&i(v,U,ee,G,j,H)}"value"in q&&i(v,"value",N.value,q.value,j)}},te=(v,N,q,H,j,U,G,ee,x)=>{let W=N.el=v?v.el:u(""),me=N.anchor=v?v.anchor:u(""),{patchFlag:ie,dynamicChildren:ue,slotScopeIds:ge}=N;ge&&(ee=ee?ee.concat(ge):ge),v==null?(r(W,q,H),r(me,q,H),S(N.children||[],q,me,j,U,G,ee,x)):ie>0&&ie&64&&ue&&v.dynamicChildren&&v.dynamicChildren.length===ue.length?(Y(v.dynamicChildren,ue,q,j,U,G,ee),(N.key!=null||j&&N===j.subTree)&&$i(v,N,!0)):Oe(v,N,q,me,j,U,G,ee,x)},J=(v,N,q,H,j,U,G,ee,x)=>{N.slotScopeIds=ee,v==null?N.shapeFlag&512?j.ctx.activate(N,q,H,G,x):re(N,q,H,j,U,G,x):ce(v,N,x)},re=(v,N,q,H,j,U,G)=>{let ee=v.component=ju(v,H,j);if(Bn(v)&&(ee.ctx.renderer=V),Gu(ee,!1,G),ee.asyncDep){if(j&&j.registerDep(ee,fe,G),!v.el){let x=ee.subTree=Ce(Kt);R(null,x,N,q),v.placeholder=x.el}}else fe(ee,v,N,q,j,U,G)},ce=(v,N,q)=>{let H=N.component=v.component;if(Nu(v,N,q))if(H.asyncDep&&!H.asyncResolved){N.el=v.el,le(H,N,q);return}else H.next=N,H.update();else N.el=v.el,H.vnode=N},fe=(v,N,q,H,j,U,G)=>{let ee=()=>{if(v.isMounted){let{next:ie,bu:ue,u:ge,parent:Se,vnode:$e}=v;{let pt=Li(v);if(pt){ie&&(ie.el=$e.el,le(v,ie,G)),pt.asyncDep.then(()=>{dt(()=>{v.isUnmounted||W()},j)});return}}let Ve=ie,Ke;ao(v,!1),ie?(ie.el=$e.el,le(v,ie,G)):ie=$e,ue&&wo(ue),(Ke=ie.props&&ie.props.onVnodeBeforeUpdate)&&Vt(Ke,Se,ie,$e),ao(v,!0);let Ye=Os(v),Et=v.subTree;v.subTree=Ye,g(Et,Ye,k(Et.el),ne(Et),v,j,U),ie.el=Ye.el,Ve===null&&Du(v,Ye.el),ge&&dt(ge,j),(Ke=ie.props&&ie.props.onVnodeUpdated)&&dt(()=>Vt(Ke,Se,ie,$e),j)}else{let ie,{el:ue,props:ge}=N,{bm:Se,m:$e,parent:Ve,root:Ke,type:Ye}=v,Et=xo(N);if(ao(v,!1),Se&&wo(Se),!Et&&(ie=ge&&ge.onVnodeBeforeMount)&&Vt(ie,Ve,N),ao(v,!0),ue&&L){let pt=()=>{v.subTree=Os(v),L(ue,v.subTree,v,j,null)};Et&&Ye.__asyncHydrate?Ye.__asyncHydrate(ue,v,pt):pt()}else{Ke.ce&&Ke.ce._hasShadowRoot()&&Ke.ce._injectChildStyle(Ye,v.parent?v.parent.type:void 0);let pt=v.subTree=Os(v);g(null,pt,q,H,v,j,U),N.el=pt.el}if($e&&dt($e,j),!Et&&(ie=ge&&ge.onVnodeMounted)){let pt=N;dt(()=>Vt(ie,Ve,pt),j)}(N.shapeFlag&256||Ve&&xo(Ve.vnode)&&Ve.vnode.shapeFlag&256)&&v.a&&dt(v.a,j),v.isMounted=!0,N=q=H=null}};v.scope.on();let x=v.effect=new Co(ee);v.scope.off();let W=v.update=x.run.bind(x),me=v.job=x.runIfDirty.bind(x);me.i=v,me.id=v.uid,x.scheduler=()=>$s(me),ao(v,!0),W()},le=(v,N,q)=>{N.component=v;let H=v.vnode.props;v.vnode=N,v.next=null,Tu(v,N.props,H,q),Pu(v,N.children,q),It(),Gr(v),Pt()},Oe=(v,N,q,H,j,U,G,ee,x=!1)=>{let W=v&&v.children,me=v?v.shapeFlag:0,ie=N.children,{patchFlag:ue,shapeFlag:ge}=N;if(ue>0){if(ue&128){Ue(W,ie,q,H,j,U,G,ee,x);return}else if(ue&256){_e(W,ie,q,H,j,U,G,ee,x);return}}ge&8?(me&16&&z(W,j,U),ie!==W&&h(q,ie)):me&16?ge&16?Ue(W,ie,q,H,j,U,G,ee,x):z(W,j,U,!0):(me&8&&h(q,""),ge&16&&S(ie,q,H,j,U,G,ee,x))},_e=(v,N,q,H,j,U,G,ee,x)=>{v=v||xt,N=N||xt;let W=v.length,me=N.length,ie=Math.min(W,me),ue;for(ue=0;ueme?z(v,j,U,!0,!1,ie):S(N,q,H,j,U,G,ee,x,ie)},Ue=(v,N,q,H,j,U,G,ee,x)=>{let W=0,me=N.length,ie=v.length-1,ue=me-1;for(;W<=ie&&W<=ue;){let ge=v[W],Se=N[W]=x?Wt(N[W]):Mt(N[W]);if(Qo(ge,Se))g(ge,Se,q,null,j,U,G,ee,x);else break;W++}for(;W<=ie&&W<=ue;){let ge=v[ie],Se=N[ue]=x?Wt(N[ue]):Mt(N[ue]);if(Qo(ge,Se))g(ge,Se,q,null,j,U,G,ee,x);else break;ie--,ue--}if(W>ie){if(W<=ue){let ge=ue+1,Se=geue)for(;W<=ie;)Me(v[W],j,U,!0),W++;else{let ge=W,Se=W,$e=new Map;for(W=Se;W<=ue;W++){let ft=N[W]=x?Wt(N[W]):Mt(N[W]);ft.key!=null&&$e.set(ft.key,W)}let Ve,Ke=0,Ye=ue-Se+1,Et=!1,pt=0,Vo=new Array(Ye);for(W=0;W=Ye){Me(ft,j,U,!0);continue}let Nt;if(ft.key!=null)Nt=$e.get(ft.key);else for(Ve=Se;Ve<=ue;Ve++)if(Vo[Ve-Se]===0&&Qo(ft,N[Ve])){Nt=Ve;break}Nt===void 0?Me(ft,j,U,!0):(Vo[Nt-Se]=W+1,Nt>=pt?pt=Nt:Et=!0,g(ft,N[Nt],q,null,j,U,G,ee,x),Ke++)}let pr=Et?$u(Vo):xt;for(Ve=pr.length-1,W=Ye-1;W>=0;W--){let ft=Se+W,Nt=N[ft],fr=N[ft+1],mr=ft+1{let{el:U,type:G,transition:ee,children:x,shapeFlag:W}=v;if(W&6){Re(v.component.subTree,N,q,H);return}if(W&128){v.suspense.move(N,q,H);return}if(W&64){G.move(v,N,q,V);return}if(G===X){r(U,N,q);for(let ie=0;ieee.enter(U),j));else{let{leave:ie,delayLeave:ue,afterLeave:ge}=ee,Se=()=>{v.ctx.isUnmounted?s(U):r(U,N,q)},$e=()=>{let Ve=U._isLeaving||!!U[Ts];U._isLeaving&&U[Ts](!0),ee.persisted&&!Ve?Se():ie(U,()=>{Se(),ge&&ge()})};ue?ue(U,Se,$e):$e()}else r(U,N,q)},Me=(v,N,q,H=!1,j=!1)=>{let{type:U,props:G,ref:ee,children:x,dynamicChildren:W,shapeFlag:me,patchFlag:ie,dirs:ue,cacheIndex:ge,memo:Se}=v;if((ie===-2||W&&W.hasOnce)&&(j=!1),ee!=null&&(It(),Zo(ee,null,q,v,!0),Pt()),ge!=null&&(!v.ctx||v.ctx===N)&&(N.renderCache[ge]=void 0),me&256){N.ctx.deactivate(v);return}let $e=me&1&&ue,Ve=!xo(v),Ke;if(Ve&&(Ke=G&&G.onVnodeBeforeUnmount)&&Vt(Ke,N,v),me&6)Ee(v.component,q,H);else{if(me&128){v.suspense.unmount(q,H);return}$e&&io(v,null,N,"beforeUnmount"),me&64?v.type.remove(v,N,q,V,H):W&&!W.hasOnce&&(U!==X||ie>0&&ie&64)?z(W,N,q,!1,!0):(U===X&&ie&384||!j&&me&16)&&z(x,N,q),H&&Pe(v)}let Ye=Se!=null&&ge==null;(Ve&&(Ke=G&&G.onVnodeUnmounted)||$e||Ye)&&dt(()=>{Ke&&Vt(Ke,N,v),$e&&io(v,null,N,"unmounted"),Ye&&(v.el=null)},q)},Pe=v=>{let{type:N,el:q,anchor:H,transition:j}=v;if(N===X){He(q,H);return}if(N===tn){P(v),j&&!j.persisted&&j.afterLeave&&j.afterLeave();return}let U=()=>{s(q),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(v.shapeFlag&1&&j&&!j.persisted){let{leave:G,delayLeave:ee}=j,x=()=>G(q,U);ee?ee(v.el,U,x):x()}else U()},He=(v,N)=>{let q;for(;v!==N;)q=m(v),s(v),v=q;s(N)},Ee=(v,N,q)=>{let{bum:H,scope:j,job:U,subTree:G,um:ee,m:x,a:W}=v;oi(x),oi(W),H&&wo(H),j.stop(),U?(U.flags|=8,Me(G,v,N,q)):v.vnode.el&&G&&(G.transition=v.vnode.transition,Me(G,v,N,q)),ee&&dt(ee,N),dt(()=>{v.isUnmounted=!0},N)},z=(v,N,q,H=!1,j=!1,U=0)=>{for(let G=U;G{if(v.shapeFlag&6)return ne(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();let N=m(v.anchor||v.el),q=N&&N[ou];return q?m(q):N},Q=!1,_=(v,N,q)=>{let H;v==null?N._vnode&&(Me(N._vnode,null,null,!0),H=N._vnode.component):g(N._vnode||null,v,N,null,null,null,q),N._vnode=v,Q||(Q=!0,Gr(H),ui(),Q=!1)},V={p:g,um:Me,m:Re,r:Pe,mt:re,mc:S,pc:Oe,pbc:Y,n:ne,o:e},B,L;return t&&([B,L]=t(V)),{render:_,hydrate:B,createApp:wu(_,B)}}function Is({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ao({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Mu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function $i(e,t,n=!1){let r=e.children,s=t.children;if(ye(r)&&ye(s))for(let i=0;i>1,e[n[u]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,a=n[i-1];i-- >0;)n[i]=a,a=t[a];return n}function Li(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Li(t)}function oi(e){if(e)for(let t=0;te.__isSuspense;function Lu(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):di(e)}var X=Symbol.for("v-fgt"),Wn=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),tn=Symbol.for("v-stc"),lo=[],yt=null;function l(e=!1){lo.push(yt=e?null:[])}function zi(){lo.pop(),yt=lo[lo.length-1]||null}var nn=1;function $n(e,t=!1){nn+=e,e<0&&yt&&t&&(yt.hasOnce=!0)}function Hi(e){return e.dynamicChildren=nn>0?yt||xt:null,zi(),nn>0&&yt&&yt.push(e),e}function d(e,t,n,r,s,i){return Hi(o(e,t,n,r,s,i,!0))}function Lt(e,t,n,r,s){return Hi(Ce(e,t,n,r,s,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function Qo(e,t){return e.type===t.type&&e.key===t.key}var Bi=({key:e})=>e??null,In=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Fe(e)||Ze(e)||we(e)?{i:vt,r:e,k:t,f:!!n}:e:null);function o(e,t=null,n=null,r=0,s=null,i=e===X?0:1,a=!1,u=!1){let f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bi(t),ref:t&&In(t),scopeId:pi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:vt};return u?(Un(f,n),i&128&&e.normalize(f)):n&&(f.shapeFlag|=Fe(n)?8:16),nn>0&&!a&&yt&&(f.patchFlag>0||i&6)&&f.patchFlag!==32&&yt.push(f),f}var Ce=Uu;function Uu(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===pu)&&(e=Kt),Ln(e)){let u=Do(e,t,!0);return n&&Un(u,n),nn>0&&!i&&yt&&(u.shapeFlag&6?yt[yt.indexOf(e)]=u:yt.push(u)),u.patchFlag=-2,u}if(Qu(e)&&(e=e.__vccOpts),t){t=Fu(t);let{class:u,style:f}=t;u&&!Fe(u)&&(t.class=A(u)),Te(f)&&(Jo(f)&&!ye(f)&&(f=Ge({},f)),t.style=qe(f))}let a=Fe(e)?1:Fi(e)?128:zn(e)?64:Te(e)?4:we(e)?2:0;return o(e,t,n,r,s,a,i,!0)}function Fu(e){return e?Jo(e)||Ai(e)?Ge({},e):e:null}function Do(e,t,n=!1,r=!1){let{props:s,ref:i,patchFlag:a,children:u,transition:f}=e,w=t?zu(s||{},t):s,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:w,key:w&&Bi(w),ref:t&&t.ref?n&&i?ye(i)?i.concat(In(t)):[i,In(t)]:In(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==X?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:f,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Do(e.ssContent),ssFallback:e.ssFallback&&Do(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return f&&r&&Hn(h,f.clone(h)),h}function b(e=" ",t=0){return Ce(Wn,null,e,t)}function pe(e,t){let n=Ce(tn,null,e);return n.staticCount=t,n}function p(e="",t=!1){return t?(l(),Lt(Kt,null,e)):Ce(Kt,null,e)}function Mt(e){return e==null||typeof e=="boolean"?Ce(Kt):ye(e)?Ce(X,null,e.slice()):Ln(e)?Wt(e):Ce(Wn,null,String(e))}function Wt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Do(e)}function Un(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(ye(t))n=16;else if(typeof t=="object")if(r&65){let s=t.default;s&&(s._c&&(s._d=!1),Un(e,s()),s._c&&(s._d=!0));return}else{n=32;let s=t._;!s&&!Ai(t)?t._ctx=vt:s===3&&vt&&(vt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(we(t)){if(r&65){Un(e,{default:t});return}t={default:t,_ctx:vt},n=32}else t=String(t),r&64?(n=16,t=[b(t)]):n=8;e.children=t,e.shapeFlag|=n}function zu(...e){let t={};for(let n=0;ntt||vt,Fn,sn;{let e=Lo(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(a=>a(i)):s[0](i)}};Fn=t("__VUE_INSTANCE_SETTERS__",n=>tt=n),sn=t("__VUE_SSR_SETTERS__",n=>Ro=n)}var un=e=>{let t=tt;return Fn(e),e.scope.on(),()=>{e.scope.off(),Fn(t)}},ni=()=>{tt&&tt.scope.off(),Fn(null)};function ji(e){return e.vnode.shapeFlag&4}var Ro=!1;function Gu(e,t=!1,n=!1){t&&sn(t);let{props:r,children:s}=e.vnode,i=ji(e);Ru(e,r,i,t),Iu(e,s,n||t);let a=i?Wu(e,t):void 0;return t&&sn(!1),a}function Wu(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fu);let{setup:r}=n;if(r){It();let s=e.setupContext=r.length>1?Yu(e):null,i=un(e),a=rn(r,e,0,[e.props,s]),u=us(a);if(Pt(),i(),(u||e.sp)&&!xo(e)&&Ls(e),u){if(a.then(ni,ni),t)return a.then(f=>{sn(!0);try{si(e,f,t)}finally{sn(!1)}}).catch(f=>{an(f,e,0)});e.asyncDep=a}else si(e,a,t)}else Gi(e,t)}function si(e,t,n){we(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Te(t)&&(e.setupState=An(t)),Gi(e,n)}var ri,ii;function Gi(e,t,n){let r=e.type;if(!e.render){if(!t&&ri&&!r.render){let s=r.template||Us(e).template;if(s){let{isCustomElement:i,compilerOptions:a}=e.appContext.config,{delimiters:u,compilerOptions:f}=r,w=Ge(Ge({isCustomElement:i,delimiters:u},a),f);r.render=ri(s,w)}}e.render=r.render||at,ii&&ii(e)}{let s=un(e);It();try{mu(e)}finally{Pt(),s()}}}var Ku={get(e,t){return xe(e,"get",""),e[t]}};function Yu(e){let t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ku),slots:e.slots,emit:e.emit,expose:t}}function Kn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(An(Rs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in en)return en[n](e)},has(t,n){return n in t||n in en}})):e.proxy}function Ju(e,t=!0){return we(e)?e.displayName||e.name:e.name||t&&e.__name}function Qu(e){return we(e)&&"__vccOpts"in e}var ot=(e,t)=>Hr(e,t,Ro);function ke(e,t,n){try{$n(-1);let r=arguments.length;return r===2?Te(t)&&!ye(t)?Ln(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ln(n)&&(n=[n]),Ce(e,t,n))}finally{$n(1)}}var Xu="3.5.43";var Ws,Wi=typeof window<"u"&&window.trustedTypes;if(Wi)try{Ws=Wi.createPolicy("vue",{createHTML:e=>e})}catch{}var sa=Ws?e=>Ws.createHTML(e):e=>e,Zu="http://www.w3.org/2000/svg",xu="http://www.w3.org/1998/Math/MathML",Jt=typeof document<"u"?document:null,Ki=Jt&&Jt.createElement("template"),ec={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let s=t==="svg"?Jt.createElementNS(Zu,e):t==="mathml"?Jt.createElementNS(xu,e):n?Jt.createElement(e,{is:n}):Jt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){let a=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{Ki.innerHTML=sa(r==="svg"?`${e} `:r==="mathml"?`${e} `:e);let u=Ki.content;if(r==="svg"||r==="mathml"){let f=u.firstChild;for(;f.firstChild;)u.appendChild(f.firstChild);u.removeChild(f)}t.insertBefore(u,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};var tc=Symbol("_vtc");function oc(e,t,n){let r=e[tc];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}var Qn=Symbol("_vod"),ra=Symbol("_vsh"),K={name:"show",beforeMount(e,{value:t},{transition:n}){e[Qn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):cn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),cn(e,!0),r.enter(e)):r.leave(e,()=>{cn(e,!1)}):cn(e,t))},beforeUnmount(e,{value:t}){cn(e,t)}};function cn(e,t){e.style.display=t?e[Qn]:"none",e[ra]=!t}var nc=Symbol("");var sc=/(?:^|;)\s*display\s*:/;function rc(e,t,n){let r=e.style,s=Fe(n),i=!1;if(n&&!s){if(t)if(Fe(t))for(let a of t.split(";")){let u=a.slice(0,a.indexOf(":")).trim();n[u]==null&&pn(r,u,"")}else for(let a in t)n[a]==null&&pn(r,a,"");for(let a in n){a==="display"&&(i=!0);let u=n[a];u!=null?ac(e,a,!Fe(t)&&t?t[a]:void 0,u)||pn(r,a,u):pn(r,a,"")}}else if(s){if(t!==n){let a=r[nc];a&&(n+=";"+a),r.cssText=n,i=sc.test(n)}}else t&&e.removeAttribute("style");Qn in e&&(e[Qn]=i?r.display:"",e[ra]&&(r.display="none"))}var Yn=/\s*!important$/;function pn(e,t,n){if(ye(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))Yn.test(n)?e.setProperty(t,n.replace(Yn,""),"important"):e.setProperty(t,n);else{let r=ic(e,t);Yn.test(n)?e.setProperty(Dt(r),n.replace(Yn,""),"important"):e[r]=n}}var Yi=["Webkit","Moz","ms"],Bs={};function ic(e,t){let n=Bs[t];if(n)return n;let r=Je(t);if(r!=="filter"&&r in e)return Bs[t]=r;r=no(r);for(let s=0;sjs||(fc.then(()=>js=0),js=Date.now());function hc(e,t){let n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;let s=n.value;if(ye(s)){let i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};let a=s.slice(),u=[r];for(let f=0;fe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,vc=(e,t,n,r,s,i)=>{let a=s==="svg";t==="class"?oc(e,r,a):t==="style"?rc(e,n,r):yo(t)?go(t)||dc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):yc(e,t,r,a))?(Xi(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Qi(e,t,r,a,i,t!=="value")):e._isVueCE&&(gc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Fe(r)))?Xi(e,Je(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Qi(e,t,r,a))};function yc(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&xi(t)&&we(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return xi(t)&&Fe(n)?!1:t in e}function gc(e,t){let n=e._def.props;if(!n)return!1;let r=Je(t);return Array.isArray(n)?n.some(s=>Je(s)===r):Object.keys(n).some(s=>Je(s)===r)}var To=e=>{let t=e.props["onUpdate:modelValue"]||!1;return ye(t)?n=>wo(t,n):t};function bc(e){e.target.composing=!0}function ea(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var Ut=Symbol("_assign"),Jn=Symbol("_initialValue");function Gs(e,t,n){return t&&(e=e.trim()),n&&(e=ko(e)),e}var Ft={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e.parentNode&&(e.type==="text"?e[Jn]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Jn]=e.defaultValue.replace(/\r\n?/g,`
-`))),e[Ut]=To(s);let i=r||s.props&&s.props.type==="number";to(e,t?"change":"input",a=>{a.target.composing||e[Ut](Gs(e.value,n,i))}),(n||i)&&to(e,"change",()=>{e.value=Gs(e.value,n,i)}),t||(to(e,"compositionstart",bc),to(e,"compositionend",ea),to(e,"change",ea))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let s=t??"",i=e[Jn];delete e[Jn],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ut](Gs(e.value,n,r)):e.value=s},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},a){if(e[Ut]=To(a),e.composing)return;let u=(i||e.type==="number")&&!/^0\d/.test(e.value)?ko(e.value):e.value,f=t??"";if(u===f)return;let w=e.getRootNode();(w instanceof Document||w instanceof ShadowRoot)&&w.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===f)||(e.value=f)}},Ks={deep:!0,created(e,t,n){e[Ut]=To(n),to(e,"change",()=>{let r=e._modelValue,s=fn(e),i=e.checked,a=e[Ut];if(ye(r)){let u=kn(r,s),f=u!==-1;if(i&&!f)a(r.concat(s));else if(!i&&f){let w=[...r];w.splice(u,1),a(w)}}else if(Ct(r)){let u=new Set(r);i?u.add(s):u.delete(s),a(u)}else a(aa(e,i))})},mounted:ta,beforeUpdate(e,t,n){e[Ut]=To(n),ta(e,t,n)}};function ta(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(ye(t))s=kn(t,r.props.value)>-1;else if(Ct(t))s=t.has(r.props.value);else{if(t===n)return;s=_t(t,aa(e,!0))}e.checked!==s&&(e.checked=s)}var ia={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,to(e,"change",()=>{let s=Array.prototype.filter.call(e.options,f=>f.selected).map(f=>n?ko(fn(f)):fn(f)),i=e.multiple,a=i?Ct(e._modelValue)?new Set(s):s:s[0],u=e._pendingValue=[i,i?ye(a)?s.slice():s:a];try{e[Ut](a)}finally{nt(()=>{e._pendingValue===u&&(e._pendingValue=void 0)})}}),e[Ut]=To(r)},mounted(e,{value:t}){oa(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Ut]=To(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!wc(t,n[1],n[0]))&&oa(e,t)}};function wc(e,t,n){if(!n)return _t(e,t);if(ye(e))return _t(e,t);if(Ct(e)){if(e.size!==t.length)return!1;for(let r of t)if(!e.has(r))return!1;return!0}return!1}function oa(e,t){let n=e.multiple,r=ye(t);if(!(n&&!r&&!Ct(t))){for(let s=0,i=e.options.length;sString(w)===String(u)):a.selected=kn(t,u)>-1}else a.selected=t.has(u);else if(_t(fn(a),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function fn(e){return"_value"in e?e._value:e.value}function aa(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}var kc=["ctrl","shift","alt","meta"],Ec={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>kc.some(n=>e[`${n}Key`]&&!t.includes(n))},de=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...i)=>{for(let a=0;a{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;let i=Dt(s.key);if(t.some(a=>a===i||Cc[a]===i))return e(s)}))},_c=Ge({patchProp:vc},ec),na;function Sc(){return na||(na=Mi(_c))}var la=((...e)=>{let t=Sc().createApp(...e),{mount:n}=t;return t.mount=r=>{let s=Dc(r);if(!s)return;let i=t._component;!we(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");let a=n(s,!1,Nc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t});function Nc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Dc(e){return Fe(e)?document.querySelector(e):e}var mo=typeof document<"u";function ua(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Rc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ua(e.default)}var Ae=Object.assign;function Xn(e,t){let n={};for(let r in t){let s=t[r];n[r]=kt(s)?s.map(e):e(s)}return n}var Io=()=>{},kt=Array.isArray;function Qs(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var ca=/#/g,Tc=/&/g,Ac=/\//g,Oc=/=/g,Ic=/\?/g,pa=/\+/g,Pc=/%5B/g,Vc=/%5D/g,fa=/%5E/g,qc=/%60/g,ma=/%7B/g,Mc=/%7C/g,ha=/%7D/g,$c=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Mc,"|").replace(Pc,"[").replace(Vc,"]")}function va(e){return Xs(e).replace(ma,"{").replace(ha,"}").replace(fa,"^")}function Ys(e){return Xs(e).replace(pa,"%2B").replace($c,"+").replace(ca,"%23").replace(Tc,"%26").replace(qc,"`").replace(ma,"{").replace(ha,"}").replace(fa,"^")}function Lc(e){return Ys(e).replace(Oc,"%3D")}function Uc(e){return Xs(e).replace(ca,"%23").replace(Ic,"%3F")}function ya(e){return Uc(e).replace(Ac,"%2F")}function Oo(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Fc=/\/$/,zc=e=>e.replace(Fc,"");function Zn(e,t,n="/"){let r,s={},i="",a="",u=t.indexOf("#"),f=t.indexOf("?");return f=u>=0&&f>u?-1:f,f>=0&&(r=t.slice(0,f),i=t.slice(f,u>0?u:t.length),s=e(i.slice(1))),u>=0&&(r=r||t.slice(0,u),a=t.slice(u,t.length)),r=Bc(r??t,n),{fullPath:r+i+a,path:r,query:s,hash:Oo(a)}}function ga(e,t){let n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Zs(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ba(e,t,n){let r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&po(t.matched[r],n.matched[s])&&xs(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xs(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Hc(e[n],t[n]))return!1;return!0}function Hc(e,t){return kt(e)?da(e,t):kt(t)?da(t,e):e?.valueOf()===t?.valueOf()}function da(e,t){return kt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Bc(e,t){if(e.startsWith("/"))return e;if(!e)return t;let n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,a,u;for(a=0;a1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(a).join("/")}var Xt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},xn=(function(e){return e.pop="pop",e.push="push",e})({}),es=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function wa(e){if(!e)if(mo){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),zc(e)}var jc=/^[^#]+#/;function ka(e,t){return e.replace(jc,"#")+t}function Gc(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var mn=()=>({left:window.scrollX,top:window.scrollY});function Ea(e){let t;if("el"in e){let n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Gc(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function er(e,t){return(history.state?history.state.position-t:-1)+e}var Js=new Map;function Ca(e,t){Js.set(e,t)}function _a(e){let t=Js.get(e);return Js.delete(e),t}function Wc(e){return typeof e=="string"||e&&typeof e=="object"}function tr(e){return typeof e=="string"||typeof e=="symbol"}var je=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),Sa=Symbol("");var E$={[je.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for
+"use strict";(()=>{var hd=Object.defineProperty;var vd=(e,t)=>{for(var n in t)hd(e,n,{get:t[n],enumerable:!0})};var he=["abap","abc","actionscript","ada","alda","apache_conf","apex","applescript","aql","asciidoc","asl","assembly_x86","autohotkey","batchfile","c9search","c_cpp","cirru","clojure","cobol","coffee","coldfusion","crystal","csharp","csound_document","csound_orchestra","csound_score","csp","css","curly","d","dart","diff","django","dockerfile","dot","drools","edifact","eiffel","ejs","elixir","elm","erlang","forth","fortran","fsharp","fsl","ftl","gcode","gherkin","gitignore","glsl","gobstones","golang","graphqlschema","groovy","haml","handlebars","haskell","haskell_cabal","haxe","hjson","html","html_elixir","html_ruby","ini","io","jack","jade","java","javascript","json","json5","jsoniq","jsp","jssm","jsx","julia","kotlin","latex","less","liquid","lisp","livescript","logiql","logtalk","lsl","lua","luapage","lucene","makefile","markdown","mask","matlab","maze","mediawiki","mel","mixal","mushcode","mysql","nginx","nim","nix","nsis","nunjucks","objectivec","ocaml","pascal","perl","perl6","pgsql","php","php_laravel_blade","pig","plain_text","powershell","praat","prisma","prolog","properties","protobuf","puppet","python","qml","r","razor","rdoc","red","redshift","rhtml","rst","ruby","rust","sass","scad","scala","scheme","scss","sh","sjs","slim","smarty","snippets","soy_template","space","sparql","sql","sqlserver","stylus","svg","swift","tcl","terraform","tex","text","textile","toml","tsx","turtle","twig","typescript","vala","vbscript","velocity","verilog","vhdl","visualforce","wollok","xml","xquery","yaml","zeek"];var ve={notebook:"/script/notebook.c3144c18ae.min.js",org:"/script/org.f61f262915.min.js",markdown:"/script/markdown.44f2e93820.min.js",pdf:"/script/pdf.4d9cc6ff49.min.js",editor:"/script/editor.4f142d3adc.min.js"};function hr(e){let t=e.location.hash.slice(1);if(e.history.replaceState(null,"","/review-link"),t.length>2048)return null;let n=new URLSearchParams(t);if([...n.keys()].length!==3||[...n.keys()].some(a=>!["clientId","intentId","token"].includes(a)))return null;let r=n.get("clientId"),s=n.get("intentId"),i=n.get("token");return!/^[a-f0-9]{32}$/.test(r||"")||!/^[a-f0-9]{32}$/.test(s||"")||!/^[a-f0-9]{64}$/.test(i||"")?null:{contract:"4open.artifacts/1",clientId:r,intentId:s,token:i}}function vr(e,t){let{http:n,promises:r,window:s}=t,i=t.takeReviewHandoff(),a=i?{clientId:i.clientId,intentId:i.intentId}:null,u,f,w,h,k,m=!0,E,y=r.defer(),g=()=>[...s.crypto.getRandomValues(new Uint8Array(16))].map(F=>F.toString(16).padStart(2,"0")).join("");Object.assign(e,{repositoryId:"",handoffEnabled:!1,busy:!1,preview:null,acceptAccess:!1,acceptRetention:!1,uncertain:!1,saved:!1,expired:!1,error:i?"":"Open a new artifact link from your submission. This link is missing or invalid."});let _=()=>m&&e.user?.username===k;function R(){m=!1,i=u=f=void 0,y.resolve(),s.clearTimeout(E)}e.on("dispose",R),e.on("routeLeave",R),e.watch(()=>e.user?.username,F=>{!k&&F?k=F:k&&F!==k&&(R(),e.preview=null,e.repositoryId="",e.busy=!1,e.saved=!1,e.handoffEnabled=!1,e.error="Your account changed. Open a new artifact link from your submission.")});let T=()=>({timeout:y.promise,headers:{"Content-Type":"application/json","X-Review-CSRF":f}}),P=F=>F?.status===404?"Artifact linking is not available on this server.":F?.status===401?"Sign in, then open a new artifact link from your submission.":F?.status===403?"This account cannot approve this repository or this link.":"The request could not be completed. You can retry from this page.";e.loadPreview=async()=>{if(!m||!i||e.busy||e.uncertain||e.saved||!e.user?.username)return;k=e.user.username;let F=e.repositoryId.trim();if(!/^[A-Za-z0-9_-]{3,128}$/.test(F)){e.error="Enter the anonymous repository ID from its URL.";return}e.busy=!0,e.error="",e.preview=null,u=void 0,e.acceptAccess=e.acceptRetention=!1,e.expired=!1,s.clearTimeout(E),h||(h=g());try{let V=(await n.get("/api/review-consent/csrf",{timeout:y.promise})).data;if(!_())return;if(f=V.csrf,e.handoffEnabled=V.handoffEnabled===!0,!/^[a-f0-9]{64}$/.test(f||""))throw new Error("invalid_csrf");let M=(await n.post("/api/review-consent/preview",{repositoryId:F,intent:{...i,requestId:h}},T())).data;if(!_())return;if(!M||typeof M.ticket!="string"||!M.ticket||M.ticket.length>8192||typeof M.repositoryName!="string"||!["restricted-review","anonymous-link"].includes(M.policy?.access)||!Number.isSafeInteger(M.policy.version)||!Number.isFinite(Date.parse(M.policy.retainUntil))||!Number.isFinite(Date.parse(M.expiresAt))||Date.parse(M.expiresAt)<=Date.now()||Date.parse(M.expiresAt)>Date.now()+6e5)throw new Error("invalid_preview");u=M.ticket,w=g(),e.preview={repositoryName:M.repositoryName,policy:{...M.policy},expiresAt:M.expiresAt},E=s.setTimeout(()=>{m&&(e.expired=!0)},Math.max(0,Date.parse(M.expiresAt)-Date.now()))}catch(V){_()&&(e.error=P(V))}finally{_()&&(e.busy=!1)}},e.confirmConsent=async()=>{if(!(!_()||e.busy||e.saved||!u||!e.acceptAccess||!e.acceptRetention)){if(Date.parse(e.preview.expiresAt)<=Date.now()){e.expired=!0;return}e.busy=!0,e.error="";try{let F=(await n.post("/api/review-consent/confirm",{ticket:u,requestId:w,acceptAccess:!0,acceptRetention:!0},T())).data;if(!_())return;if(F?.requestId!==w||!Number.isFinite(Date.parse(F.confirmedAt)))throw new Error("invalid_receipt");e.saved=!0,e.uncertain=!1,i=void 0,e.handoffEnabled||(u=void 0)}catch{_()&&(e.uncertain=!0,e.error="The confirmation was not verified. Retry with the same approval, or return to your submission to check its status.")}finally{_()&&(e.busy=!1)}}},e.continueReview=async()=>{if(!_()||e.busy||!e.saved||!e.handoffEnabled||!u||!a)return;e.busy=!0,e.error="";let F,V=()=>{F?.remove(),s.removeEventListener("securitypolicyviolation",M)},M=se=>{se.violatedDirective?.startsWith("form-action")&&(V(),_()&&(e.busy=!1,e.error="The return address was blocked. Return to your submission to check the artifact status."))};try{let se=(await n.post("/api/review-consent/handoff",{ticket:u},T())).data;if(!_())return;let oe=se?.completion,S=new URL(se?.callbackUrl);if(!oe||Object.keys(oe).sort().join(",")!=="clientId,code,contract,expiresAt,intentId"||oe.contract!=="4open.artifacts/1"||oe.clientId!==a.clientId||oe.intentId!==a.intentId||!/^[a-f0-9]{64}$/.test(oe.code||"")||!Number.isFinite(Date.parse(oe.expiresAt))||Date.parse(oe.expiresAt)<=Date.now()||Date.parse(oe.expiresAt)>Date.now()+3e5||S.protocol!=="https:"||S.href!==se.callbackUrl||S.username||S.password||se.callbackUrl.includes("?")||se.callbackUrl.includes("#"))throw new Error("invalid_handoff");F=s.document.createElement("form"),F.method="POST",F.action=S.href;let O=s.document.createElement("input");O.type="hidden",O.name="completion",O.value=JSON.stringify(oe),F.appendChild(O),s.document.body.appendChild(F),s.addEventListener("securitypolicyviolation",M),e.on("dispose",V),F.submit()}catch{V(),_()&&(e.busy=!1,e.error="The return to review could not be prepared. Retry from this page, or return to your submission to check its status.")}}}var hn=new Map,bd=ve;function oo(e){if(!hn.has(e)){let t=document.createElement("script");t.src=bd[e];let n=new Promise((r,s)=>{t.onload=r,t.onerror=()=>{hn.delete(e),t.remove(),s(new Error(`Unable to load ${e}. Please retry.`))}});hn.set(e,n),document.head.appendChild(t)}return hn.get(e)}async function yr(){await oo("editor"),ace.config.set("basePath","/script/external/ace/")}function vo(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return n=>n in t}var Ie={},xt=[],at=()=>{},ds=()=>!1,yo=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),go=e=>e.startsWith("onUpdate:"),Ge=Object.assign,qo=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},wd=Object.prototype.hasOwnProperty,Ne=(e,t)=>wd.call(e,t),ye=Array.isArray,Ht=e=>Mo(e)==="[object Map]",Ct=e=>Mo(e)==="[object Set]",gr=e=>Mo(e)==="[object Date]";var we=e=>typeof e=="function",Fe=e=>typeof e=="string",mt=e=>typeof e=="symbol",Te=e=>e!==null&&typeof e=="object",us=e=>(Te(e)||we(e))&&we(e.then)&&we(e.catch),Er=Object.prototype.toString,Mo=e=>Er.call(e),cs=e=>Mo(e).slice(8,-1),vn=e=>Mo(e)==="[object Object]",yn=e=>Fe(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,bo=vo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted");var gn=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},kd=/-\w/g,Je=gn(e=>e.replace(kd,t=>t.slice(1).toUpperCase())),Ed=/\B([A-Z])/g,Dt=gn(e=>e.replace(Ed,"-$1").toLowerCase()),no=gn(e=>e.charAt(0).toUpperCase()+e.slice(1)),$o=gn(e=>e?`on${no(e)}`:""),gt=(e,t)=>!Object.is(e,t),wo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},ko=e=>{let t=parseFloat(e);return isNaN(t)?e:t};var br,Lo=()=>br||(br=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function qe(e){if(ye(e)){let t={};for(let n=0;nn.startsWith("/*")?"":n).split(Cd).forEach(n=>{if(n){let r=n.split(_d);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function A(e){let t="";if(Fe(e))t=e;else if(ye(e))for(let n=0;n_t(n,t))}var Sr=e=>!!(e&&e.__v_isRef===!0),c=e=>Fe(e)?e:e==null?"":ye(e)||Te(e)&&(e.toString===Er||!we(e.toString))?Sr(e)?c(e.value):JSON.stringify(e,Nr,2):String(e),Nr=(e,t)=>Sr(t)?Nr(e,t.value):Ht(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],i)=>(n[ls(r,i)+" =>"]=s,n),{})}:Ct(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>ls(n))}:mt(t)?ls(t):Te(t)&&!ye(t)&&!vn(t)?String(t):t,ls=(e,t="")=>{var n;return mt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};function Ad(e,...t){console.warn(`[Vue warn] ${e}`,...t)}var Qe,Ho=class{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this._warnOnRun=!0,this.__v_skip=!0,!t&&Qe&&(Qe.active?(this.parent=Qe,this.index=(Qe.scopes||(Qe.scopes=[])).push(this)-1):(this._active=!1,this._warnOnRun=!1))}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes){let r=this.scopes.slice();for(t=0,n=r.length;t0&&--this._on===0){if(Qe===this)Qe=this.prevScope;else{let t=Qe;for(;t;){if(t.prevScope===this){t.prevScope=this.prevScope;break}t=t.prevScope}}this.prevScope=void 0}}stop(t){if(this._active){this._active=!1;let n,r;for(n=0,r=this.effects.length;n0)return;if(zo){let t=zo;for(zo=void 0;t;){let n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Fo;){let t=Fo;for(Fo=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Ir(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Pr(e){let t,n=e.depsTail,r=n;for(;r;){let s=r.prevDep;r.version===-1?(r===n&&(n=s),Ss(r),Od(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function hs(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Vr(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Vr(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Bo)||(e.globalVersion=Bo,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!hs(e))))return;e.flags|=2;let t=e.dep,n=Le,r=St;Le=e,St=!0;try{Ir(e);let s=e.fn(e._value);(t.version===0||gt(s,e._value))&&(e.flags|=128,e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Le=n,St=r,Pr(e),e.flags&=-3}}function Ss(e,t=!1){let{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Ss(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function Od(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var St=!0,qr=[];function It(){qr.push(St),St=!1}function Pt(){let e=qr.pop();St=e===void 0?!0:e}function Dr(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let n=Le;Le=void 0;try{t()}finally{Le=n}}}var Bo=0,vs=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}},jo=class{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!Le||!St||Le===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Le)n=this.activeLink=new vs(Le,this),Le.deps?(n.prevDep=Le.depsTail,Le.depsTail.nextDep=n,Le.depsTail=n):Le.deps=Le.depsTail=n,Mr(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){let r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Le.depsTail,n.nextDep=void 0,Le.depsTail.nextDep=n,Le.depsTail=n,Le.deps===n&&(Le.deps=r)}return n}trigger(t){this.version++,Bo++,this.notify(t)}notify(t){Cs();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{_s()}}};function Mr(e){if(e.dep.sc++,e.sub.flags&4){let t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)Mr(r)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var ys=new WeakMap,ro=Symbol(""),gs=Symbol(""),Go=Symbol("");function xe(e,t,n){if(St&&Le){let r=ys.get(e);r||ys.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new jo),s.map=r,s.key=n),s.track()}}function Tt(e,t,n,r,s,i){let a=ys.get(e);if(!a){Bo++;return}let u=f=>{f&&f.trigger()};if(Cs(),t==="clear")a.forEach(u);else{let f=ye(e),w=f&&yn(n);if(f&&n==="length"){let h=Number(r);a.forEach((k,m)=>{(m==="length"||m===Go||!mt(m)&&m>=h)&&u(k)})}else switch((n!==void 0||a.has(void 0))&&u(a.get(n)),w&&u(a.get(Go)),t){case"add":f?w&&u(a.get("length")):(u(a.get(ro)),Ht(e)&&u(a.get(gs)));break;case"delete":f||(u(a.get(ro)),Ht(e)&&u(a.get(gs)));break;case"set":Ht(e)&&u(a.get(ro));break}}_s()}function Eo(e){let t=De(e);return t===e||(xe(t,"iterate",Go),lt(e))?t:bt(e)?Ot(e)?t.map(n=>jt(ht(n))):t.map(jt):t.map(ht)}function Ko(e){return xe(e=De(e),"iterate",Go),e}function Rt(e,t){return bt(e)?jt(Ot(e)?ht(t):t):ht(t)}var Id={__proto__:null,[Symbol.iterator](){return fs(this,Symbol.iterator,e=>Rt(this,e))},concat(...e){return Eo(this).concat(...e.map(t=>ye(t)?Eo(t):t))},entries(){return fs(this,"entries",e=>(e[1]=Rt(this,e[1]),e))},every(e,t){return Bt(this,"every",e,t,void 0,arguments)},filter(e,t){return Bt(this,"filter",e,t,n=>n.map(r=>Rt(this,r)),arguments)},find(e,t){return Bt(this,"find",e,t,n=>Rt(this,n),arguments)},findIndex(e,t){return Bt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Bt(this,"findLast",e,t,n=>Rt(this,n),arguments)},findLastIndex(e,t){return Bt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Bt(this,"forEach",e,t,void 0,arguments)},includes(...e){return ms(this,"includes",e)},indexOf(...e){return ms(this,"indexOf",e)},join(e){return Eo(this).join(e)},lastIndexOf(...e){return ms(this,"lastIndexOf",e)},map(e,t){return Bt(this,"map",e,t,void 0,arguments)},pop(){return Uo(this,"pop")},push(...e){return Uo(this,"push",e)},reduce(e,...t){return Rr(this,"reduce",e,t)},reduceRight(e,...t){return Rr(this,"reduceRight",e,t)},shift(){return Uo(this,"shift")},some(e,t){return Bt(this,"some",e,t,void 0,arguments)},splice(...e){return Uo(this,"splice",e)},toReversed(){return Eo(this).toReversed()},toSorted(e){return Eo(this).toSorted(e)},toSpliced(...e){return Eo(this).toSpliced(...e)},unshift(...e){return Uo(this,"unshift",e)},values(){return fs(this,"values",e=>Rt(this,e))}};function fs(e,t,n){let r=Ko(e),s=r[t]();return r!==e&&!lt(e)&&(s._next=s.next,s.next=()=>{let i=s._next();return i.done||(i.value=n(i.value)),i}),s}var Pd=Array.prototype;function Bt(e,t,n,r,s,i){let a=Ko(e),u=a!==e&&!lt(e),f=a[t];if(f!==Pd[t]){let k=f.apply(e,i);return u?ht(k):k}let w=n;a!==e&&(u?w=function(k,m){return n.call(this,Rt(e,k),m,e)}:n.length>2&&(w=function(k,m){return n.call(this,k,m,e)}));let h=f.call(a,w,r);return u&&s?s(h):h}function Rr(e,t,n,r){let s=Ko(e),i=s!==e&&!lt(e),a=n,u=!1;s!==e&&(i?(u=r.length===0,a=function(w,h,k){return u&&(u=!1,w=Rt(e,w)),n.call(this,w,Rt(e,h),k,e)}):n.length>3&&(a=function(w,h,k){return n.call(this,w,h,k,e)}));let f=s[t](a,...r);return u?Rt(e,f):f}function ms(e,t,n){let r=De(e);xe(r,"iterate",Go);let s=r[t](...n);return(s===-1||s===!1)&&Jo(n[0])?(n[0]=De(n[0]),r[t](...n)):s}function Uo(e,t,n=[]){It(),Cs();let r=De(e)[t].apply(e,n);return _s(),Pt(),r}var Vd=vo("__proto__,__v_isRef,__isVue"),$r=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(mt));function qd(e){mt(e)||(e=String(e));let t=De(this);return xe(t,"has",e),t.hasOwnProperty(e)}var Sn=class{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){if(n==="__v_skip")return t.__v_skip;let s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?jd:Fr:i?Ur:Lr).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;let a=ye(t);if(!s){let f;if(a&&(f=Id[n]))return f;if(n==="hasOwnProperty")return qd}let u=Reflect.get(t,n,Ze(t)?t:r);if((mt(n)?$r.has(n):Vd(n))||(s||xe(t,"get",n),i))return u;if(Ze(u)){let f=a&&yn(n)?u:u.value;return s&&Te(f)?Dn(f):f}return Te(u)?s?Dn(u):ze(u):u}},Nn=class extends Sn{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n],a=ye(t)&&yn(n);if(!this._isShallow){let w=bt(i);if(!lt(r)&&!bt(r)&&(i=De(i),r=De(r)),!a&&Ze(i)&&!Ze(r))return w||(i.value=r),!0}let u=a?Number(n)e,En=e=>Reflect.getPrototypeOf(e);function Ud(e,t,n){return function(...r){let s=this.__v_raw,i=De(s),a=Ht(i),u=e==="entries"||e===Symbol.iterator&&a,f=e==="keys"&&a,w=s[e](...r),h=n?ws:t?jt:ht;return!t&&xe(i,"iterate",f?gs:ro),Ge(Object.create(w),{next(){let{value:k,done:m}=w.next();return m?{value:k,done:m}:{value:u?[h(k[0]),h(k[1])]:h(k),done:m}}})}}function Cn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Fd(e,t){let n={get(s){let i=this.__v_raw,a=De(i),u=De(s);e||(gt(s,u)&&xe(a,"get",s),xe(a,"get",u));let{has:f}=En(a),w=t?ws:e?jt:ht;if(f.call(a,s))return w(i.get(s));if(f.call(a,u))return w(i.get(u));i!==a&&i.get(s)},get size(){let s=this.__v_raw;return!e&&xe(De(s),"iterate",ro),s.size},has(s){let i=this.__v_raw,a=De(i),u=De(s);return e||(gt(s,u)&&xe(a,"has",s),xe(a,"has",u)),s===u?i.has(s):i.has(s)||i.has(u)},forEach(s,i){let a=this,u=a.__v_raw,f=De(u),w=t?ws:e?jt:ht;return!e&&xe(f,"iterate",ro),u.forEach((h,k)=>s.call(i,w(h),w(k),a))}};return Ge(n,e?{add:Cn("add"),set:Cn("set"),delete:Cn("delete"),clear:Cn("clear")}:{add(s){let i=De(this),a=En(i),u=De(s),f=!t&&!lt(s)&&!bt(s)?u:s;return a.has.call(i,f)||gt(s,f)&&a.has.call(i,s)||gt(u,f)&&a.has.call(i,u)||(i.add(f),Tt(i,"add",f,f)),this},set(s,i){!t&&!lt(i)&&!bt(i)&&(i=De(i));let a=De(this),{has:u,get:f}=En(a),w=u.call(a,s);w||(s=De(s),w=u.call(a,s));let h=f.call(a,s);return a.set(s,i),w?gt(i,h)&&Tt(a,"set",s,i,h):Tt(a,"add",s,i),this},delete(s){let i=De(this),{has:a,get:u}=En(i),f=a.call(i,s);f||(s=De(s),f=a.call(i,s));let w=u?u.call(i,s):void 0,h=i.delete(s);return f&&Tt(i,"delete",s,void 0,w),h},clear(){let s=De(this),i=s.size!==0,a=void 0,u=s.clear();return i&&Tt(s,"clear",void 0,void 0,a),u}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=Ud(s,e,t)}),n}function Ns(e,t){let n=Fd(e,t);return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(Ne(n,s)&&s in r?n:r,s,i)}var zd={get:Ns(!1,!1)},Hd={get:Ns(!1,!0)},Bd={get:Ns(!0,!1)};var Lr=new WeakMap,Ur=new WeakMap,Fr=new WeakMap,jd=new WeakMap;function Gd(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function ze(e){return bt(e)?e:Ds(e,!1,Md,zd,Lr)}function Yo(e){return Ds(e,!1,Ld,Hd,Ur)}function Dn(e){return Ds(e,!0,$d,Bd,Fr)}function Ds(e,t,n,r,s){if(!Te(e)||e.__v_raw&&!(t&&e.__v_isReactive)||e.__v_skip||!Object.isExtensible(e))return e;let i=s.get(e);if(i)return i;let a=Gd(cs(e));if(a===0)return e;let u=new Proxy(e,a===2?r:n);return s.set(e,u),u}function Ot(e){return bt(e)?Ot(e.__v_raw):!!(e&&e.__v_isReactive)}function bt(e){return!!(e&&e.__v_isReadonly)}function lt(e){return!!(e&&e.__v_isShallow)}function Jo(e){return e?!!e.__v_raw:!1}function De(e){let t=e&&e.__v_raw;return t?De(t):e}function Rs(e){return!Ne(e,"__v_skip")&&Object.isExtensible(e)&&bn(e,"__v_skip",!0),e}var ht=e=>Te(e)?ze(e):e,jt=e=>Te(e)?Dn(e):e;function Ze(e){return e?e.__v_isRef===!0:!1}function et(e){return zr(e,!1)}function Tn(e){return zr(e,!0)}function zr(e,t){return Ze(e)?e:new ks(e,t)}var ks=class{constructor(t,n){this.dep=new jo,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:De(t),this._value=n?t:ht(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){let n=this._rawValue,r=this.__v_isShallow||lt(t)||bt(t);t=r?t:De(t),gt(t,n)&&(this._rawValue=t,this._value=r?t:ht(t),this.dep.trigger())}};function Gt(e){return Ze(e)?e.value:e}var Wd={get:(e,t,n)=>t==="__v_raw"?e:Gt(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let s=e[t];return Ze(s)&&!Ze(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function An(e){return Ot(e)?e:new Proxy(e,Wd)}var Es=class{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new jo(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Bo-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Le!==this)return Or(this,!0),!0}get value(){let t=this.dep.track();return Vr(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}};function Hr(e,t,n=!1){let r,s;return we(e)?r=e:(r=e.get,s=e.set),new Es(r,s,n)}var _n={},Rn=new WeakMap,so;function Br(e,t=!1,n=so){if(n){let r=Rn.get(n);r||Rn.set(n,r=[]),r.push(e)}}function jr(e,t,n=Ie){let{immediate:r,deep:s,once:i,scheduler:a,augmentJob:u,call:f}=n,w=V=>{(n.onWarn||Ad)("Invalid watch source: ",V,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},h=V=>s?V:lt(V)||s===!1||s===0?At(V,1):At(V),k,m,E,y,g=!1,_=!1;if(Ze(e)?(m=()=>e.value,g=lt(e)):Ot(e)?(m=()=>h(e),g=!0):ye(e)?(_=!0,g=e.some(V=>Ot(V)||lt(V)),m=()=>e.map(V=>{if(Ze(V))return V.value;if(Ot(V))return h(V);if(we(V))return f?f(V,2):V()})):we(e)?t?m=f?()=>f(e,2):e:m=()=>{if(E){It();try{E()}finally{Pt()}}let V=so;so=k;try{return f?f(e,3,[y]):e(y)}finally{so=V}}:m=at,t&&s){let V=m,M=s===!0?1/0:s;m=()=>At(V(),M)}let R=Tr(),T=()=>{k.stop(),R&&R.active&&qo(R.effects,k)};if(i&&t){let V=t;t=(...M)=>{let se=V(...M);return T(),se}}let P=_?new Array(e.length).fill(_n):_n,F=V=>{if(!(!(k.flags&1)||!k.dirty&&!V))if(t){let M=k.run();if(V||s||g||(_?M.some((se,oe)=>gt(se,P[oe])):gt(M,P))){E&&E();let se=so;so=k;try{let oe=[M,P===_n?void 0:_&&P[0]===_n?[]:P,y];P=M,f?f(t,3,oe):t(...oe)}finally{so=se}}}else k.run()};return u&&u(F),k=new Co(m),k.scheduler=a?()=>a(F,!1):F,y=V=>Br(V,!1,k),E=k.onStop=()=>{let V=Rn.get(k);if(V){if(f)f(V,4);else for(let M of V)M();Rn.delete(k)}},t?r?F(!0):P=k.run():a?a(F.bind(null,!0),!0):k.run(),T.pause=k.pause.bind(k),T.resume=k.resume.bind(k),T.stop=T,T}function At(e,t=1/0,n){if(t<=0||!Te(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,Ze(e))At(e.value,t,n);else if(ye(e))for(let r=0;r{At(r,t,n)});else if(vn(e)){for(let r in e)At(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&At(e[r],t,n)}return e}function rn(e,t,n,r){try{return r?e(...r):e()}catch(s){an(s,t,n)}}function wt(e,t,n,r){if(we(e)){let s=rn(e,t,n,r);return s&&us(s)&&s.catch(i=>{an(i,t,n)}),s}if(ye(e)){let s=[];for(let i=0;i>>1,s=rt[r],i=on(s);i=on(n)?rt.push(e):rt.splice(Xd(t),0,e),e.flags|=1,li()}}function li(){Pn||(Pn=ai.then(ci))}function di(e){if(!ye(e))eo&&e.id===-1?eo.splice(_o+1,0,e):e.flags&1||(So.push(e),e.flags|=1);else for(let t=0;ton(n)-on(r));if(So.length=0,eo){for(let n=0;ne.id==null?e.flags&2?-1:1/0:e.id;function ci(e){let t=at;try{for(qt=0;qt{r._d&&$n(-1);let i=Vn(t),a=lo.length,u;try{u=e(...s)}finally{for(let f=lo.length;f>a;f--)zi();Vn(i),r._d&&$n(1)}return u};return r._n=!0,r._c=!0,r._d=!0,r}function D(e,t){if(vt===null)return e;let n=Kn(vt),r=e.dirs||(e.dirs=[]);for(let s=0;s1)return n&&we(t)?t.call(r&&r.proxy):t}}var xd=Symbol.for("v-scx"),eu=()=>{{let e=ut(xd);return e}};function Be(e,t,n){return fi(e,t,n)}function fi(e,t,n=Ie){let{immediate:r,deep:s,flush:i,once:a}=n,u=Ge({},n),f=t&&r||!t&&i!=="post",w;if(Ro){if(i==="sync"){let E=eu();w=E.__watcherHandles||(E.__watcherHandles=[])}else if(!f){let E=()=>{};return E.stop=at,E.resume=at,E.pause=at,E}}let h=tt;u.call=(E,y,g)=>wt(E,h,y,g);let k=!1;i==="post"?u.scheduler=E=>{dt(E,h&&h.suspense)}:i!=="sync"&&(k=!0,u.scheduler=(E,y)=>{y?E():$s(E)}),u.augmentJob=E=>{t&&(E.flags|=4),k&&(E.flags|=2,h&&(E.id=h.uid,E.i=h))};let m=jr(e,t,u);return Ro&&(w?w.push(m):f&&m()),m}function tu(e,t,n){let r=this.proxy,s=Fe(e)?e.includes(".")?mi(r,e):()=>r[e]:e.bind(r,r),i;we(t)?i=t:(i=t.handler,n=t);let a=un(this),u=fi(s,i.bind(r),n);return a(),u}function mi(e,t){let n=t.split(".");return()=>{let r=e;for(let s=0;se.__isTeleport;var Ts=Symbol("_leaveCb");function nu(e){let t=e[0];if(e.length>1){let n=!1;for(let r of e)if(r.type!==Kt){t=r,n=!0;break}}return t}function hi(e){if(!Bn(e))return zn(e.type)&&e.children?nu(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&we(n.default))return n.default()}}function Hn(e,t){if(e.shapeFlag&6&&e.component){e.transition=t;let n=e.component.subTree;Hn(zn(n.type)&&hi(n)||n,t)}else e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ln(e,t){return we(e)?Ge({name:e.name},t,{setup:e}):e}function Ls(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function Wr(e,t){let n;return!!((n=Object.getOwnPropertyDescriptor(e,t))&&!n.configurable)}var qn=new WeakMap;function Zo(e,t,n,r,s=!1){if(ye(e)){e.forEach((g,_)=>Zo(g,t&&(ye(t)?t[_]:t),n,r,s));return}if(xo(r)&&!s){r.shapeFlag&512&&r.type.__asyncResolved&&r.component.subTree.component&&Zo(e,t,n,r.component.subTree);return}let i=r.shapeFlag&4?Kn(r.component):r.el,a=s?null:i,{i:u,r:f}=e,w=t&&t.r,h=u.refs===Ie?u.refs={}:u.refs,k=u.setupState,m=De(k),E=k===Ie?ds:g=>Wr(h,g)?!1:Ne(m,g),y=(g,_)=>!(_&&Wr(h,_));if(w!=null&&w!==f){if(Kr(t),Fe(w))h[w]=null,E(w)&&(k[w]=null);else if(Ze(w)){let g=t;y(w,g.k)&&(w.value=null),g.k&&(h[g.k]=null)}}if(we(f))rn(f,u,12,[a,h]);else{let g=Fe(f),_=Ze(f);if(g||_){let R=()=>{if(e.f){let T=g?E(f)?k[f]:h[f]:y(f)||!e.k?f.value:h[e.k];if(s)ye(T)&&qo(T,i);else if(ye(T))T.includes(i)||T.push(i);else if(g)h[f]=[i],E(f)&&(k[f]=h[f]);else{let P=[i];y(f,e.k)&&(f.value=P),e.k&&(h[e.k]=P)}}else g?(h[f]=a,E(f)&&(k[f]=a)):_&&(y(f,e.k)&&(f.value=a),e.k&&(h[e.k]=a))};if(a){let T=()=>{R(),qn.delete(e)};T.id=-1,qn.set(e,T),dt(T,n)}else Kr(e),R()}}}function Kr(e){let t=qn.get(e);t&&(t.flags|=8,qn.delete(e))}var Yr=e=>e.nodeType===8;var K6=Lo().requestIdleCallback||(e=>setTimeout(e,1)),Y6=Lo().cancelIdleCallback||(e=>clearTimeout(e));function su(e,t){if(Yr(e)&&e.data==="["){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Yr(r))if(r.data==="]"){if(--n===0)break}else r.data==="["&&n++;r=r.nextSibling}}else t(e)}var xo=e=>!!e.type.__asyncLoader;function vi(e){we(e)&&(e={loader:e});let{loader:t,loadingComponent:n,errorComponent:r,delay:s=200,hydrate:i,timeout:a,suspensible:u=!0,onError:f}=e,w=null,h,k=0,m=()=>(k++,w=null,E()),E=()=>{let y;return w||(y=w=t().catch(g=>{if(g=g instanceof Error?g:new Error(String(g)),f)return new Promise((_,R)=>{f(g,()=>_(m()),()=>R(g),k+1)});throw g}).then(g=>y!==w&&w?w:(g&&(g.__esModule||g[Symbol.toStringTag]==="Module")&&(g=g.default),h=g,g)))};return ln({name:"AsyncComponentWrapper",__asyncLoader:E,__asyncHydrate(y,g,_){let R=y.isConnected,T=!1;(g.bu||(g.bu=[])).push(()=>T=!0);let P=()=>{T||!y.parentNode||R&&!y.isConnected||_()},F=i?()=>{let V=i(P,M=>su(y,M));V&&(g.bum||(g.bum=[])).push(V)}:P;h?F():E().then(()=>!g.isUnmounted&&F())},get __asyncResolved(){return h},setup(){let y=tt;if(Ls(y),h)return()=>On(h,y);let g=V=>{w=null,an(V,y,13,!r)};if(u&&y.suspense||Ro)return E().then(V=>()=>On(V,y)).catch(V=>(g(V),()=>r?Ce(r,{error:V}):null));let _=et(!1),R=et(),T=et(!!s),P,F;return dn(()=>{P!=null&&clearTimeout(P),F!=null&&clearTimeout(F)}),s&&(F=setTimeout(()=>{y.isUnmounted||(T.value=!1)},s)),a!=null&&(P=setTimeout(()=>{if(!y.isUnmounted&&!_.value&&!R.value){let V=new Error(`Async component timed out after ${a}ms.`);g(V),R.value=V}},a)),E().then(()=>{y.isUnmounted||(_.value=!0,y.parent&&Bn(y.parent.vnode)&&y.parent.update())}).catch(V=>{if(y.isUnmounted){w=null;return}g(V),R.value=V}),()=>{if(_.value&&h)return On(h,y);if(R.value&&r)return Ce(r,{error:R.value});if(n&&!T.value)return On(n,y)}}})}function On(e,t){let{ref:n,props:r,children:s,ce:i}=t.vnode,a=Ce(e,r,s);return a.ref=n,a.ce=i,delete t.vnode.ce,a}var Bn=e=>e.type.__isKeepAlive;function yi(e,t){bi(e,"a",t)}function gi(e,t){bi(e,"da",t)}function bi(e,t,n=tt){let r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(jn(t,r,n),n){let s=n.parent;for(;s&&s.parent;)Bn(s.parent.vnode)&&ru(r,t,n,s),s=s.parent}}function ru(e,t,n,r){let s=jn(t,e,r,!0);dn(()=>{qo(r[t],s)},n)}function jn(e,t,n=tt,r=!1){if(n){let s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...a)=>{It();let u=un(n),f=wt(t,n,e,a);return u(),Pt(),f});return r?s.unshift(i):s.push(i),i}}var Yt=e=>(t,n=tt)=>{(!Ro||e==="sp")&&jn(e,(...r)=>t(...r),n)},iu=Yt("bm"),$t=Yt("m"),wi=Yt("bu"),ki=Yt("u"),co=Yt("bum"),dn=Yt("um"),au=Yt("sp"),lu=Yt("rtg"),du=Yt("rtc");function uu(e,t=tt){jn("ec",e,t)}var Ei="components",cu="directives";function We(e,t){return Ci(Ei,e,!0,t)||e}var pu=Symbol.for("v-ndc");function be(e){return Ci(cu,e)}function Ci(e,t,n=!0,r=!1){let s=vt||tt;if(s){let i=s.type;if(e===Ei){let u=Ju(i,!1);if(u&&(u===t||u===Je(t)||u===no(Je(t))))return i}let a=Jr(s[e]||i[e],t)||Jr(s.appContext[e],t);return!a&&r?i:a}}function Jr(e,t){return e&&(e[t]||e[Je(t)]||e[no(Je(t))])}function ae(e,t,n,r){let s,i=n&&n[r],a=ye(e);if(a||Fe(e)){let u=a&&Ot(e),f=!1,w=!1;u&&(f=!lt(e),w=bt(e),e=Ko(e)),s=new Array(e.length);for(let h=0,k=e.length;ht(u,f,void 0,i&&i[f]));else{let u=Object.keys(e);s=new Array(u.length);for(let f=0,w=u.length;fe?ji(e)?Kn(e):Ps(e.parent):null;var en=Ge(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Ps(e.parent),$root:e=>Ps(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Us(e),$forceUpdate:e=>e.f||(e.f=()=>{$s(e.update)}),$nextTick:e=>e.n||(e.n=nt.bind(e.proxy)),$watch:e=>tu.bind(e)});var As=(e,t)=>e!==Ie&&!e.__isScriptSetup&&Ne(e,t),fu={get({_:e},t){if(t==="__v_skip")return!0;let{ctx:n,setupState:r,data:s,props:i,accessCache:a,type:u,appContext:f}=e;if(t[0]!=="$"){let m=a[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(As(r,t))return a[t]=1,r[t];if(s!==Ie&&Ne(s,t))return a[t]=2,s[t];if(Ne(i,t))return a[t]=3,i[t];if(n!==Ie&&Ne(n,t))return a[t]=4,n[t];Vs&&(a[t]=0)}}let w=en[t],h,k;if(w)return t==="$attrs"&&xe(e.attrs,"get",""),w(e);if((h=u.__cssModules)&&(h=h[t]))return h;if(n!==Ie&&Ne(n,t))return a[t]=4,n[t];if(k=f.config.globalProperties,Ne(k,t))return k[t]},set({_:e},t,n){let{data:r,setupState:s,ctx:i}=e;return As(s,t)?(s[t]=n,!0):r!==Ie&&Ne(r,t)?(r[t]=n,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,props:i,type:a}},u){let f;return!!(n[u]||e!==Ie&&u[0]!=="$"&&Ne(e,u)||As(t,u)||Ne(i,u)||Ne(r,u)||Ne(en,u)||Ne(s.config.globalProperties,u)||(f=a.__cssModules)&&f[u])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Qr(e){return ye(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}var Vs=!0;function mu(e){let t=Us(e),n=e.proxy,r=e.ctx;Vs=!1,t.beforeCreate&&Xr(t.beforeCreate,e,"bc");let{data:s,computed:i,methods:a,watch:u,provide:f,inject:w,created:h,beforeMount:k,mounted:m,beforeUpdate:E,updated:y,activated:g,deactivated:_,beforeDestroy:R,beforeUnmount:T,destroyed:P,unmounted:F,render:V,renderTracked:M,renderTriggered:se,errorCaptured:oe,serverPrefetch:S,expose:O,inheritAttrs:Y,components:Z,directives:te,filters:J}=t;if(w&&hu(w,r,null),a)for(let fe in a){let le=a[fe];we(le)&&(r[fe]=le.bind(n))}if(s){let fe=s.call(n,n);Te(fe)&&(e.data=ze(fe))}if(Vs=!0,i)for(let fe in i){let le=i[fe],Oe=we(le)?le.bind(n,n):we(le.get)?le.get.bind(n,n):at,_e=!we(le)&&we(le.set)?le.set.bind(n):at,Ue=ot({get:Oe,set:_e});Object.defineProperty(r,fe,{enumerable:!0,configurable:!0,get:()=>Ue.value,set:Re=>Ue.value=Re})}if(u)for(let fe in u)_i(u[fe],r,n,fe);if(f){let fe=we(f)?f.call(n):f;Reflect.ownKeys(fe).forEach(le=>{uo(le,fe[le])})}h&&Xr(h,e,"c");function ce(fe,le){ye(le)?le.forEach(Oe=>fe(Oe.bind(n))):le&&fe(le.bind(n))}if(ce(iu,k),ce($t,m),ce(wi,E),ce(ki,y),ce(yi,g),ce(gi,_),ce(uu,oe),ce(du,M),ce(lu,se),ce(co,T),ce(dn,F),ce(au,S),ye(O))if(O.length){let fe=e.exposed||(e.exposed={});O.forEach(le=>{Object.defineProperty(fe,le,{get:()=>n[le],set:Oe=>n[le]=Oe,enumerable:!0})})}else e.exposed||(e.exposed={});V&&e.render===at&&(e.render=V),Y!=null&&(e.inheritAttrs=Y),Z&&(e.components=Z),te&&(e.directives=te),S&&Ls(e)}function hu(e,t,n=at){ye(e)&&(e=qs(e));for(let r in e){let s=e[r],i;Te(s)?"default"in s?i=ut(s.from||r,s.default,!0):i=ut(s.from||r):i=ut(s),Ze(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:a=>i.value=a}):t[r]=i}}function Xr(e,t,n){wt(ye(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function _i(e,t,n,r){let s=r.includes(".")?mi(n,r):()=>n[r];if(Fe(e)){let i=t[e];we(i)&&Be(s,i)}else if(we(e))Be(s,e.bind(n));else if(Te(e))if(ye(e))e.forEach(i=>_i(i,t,n,r));else{let i=we(e.handler)?e.handler.bind(n):t[e.handler];we(i)&&Be(s,i,e)}}function Us(e){let t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:a}}=e.appContext,u=i.get(t),f;return u?f=u:!s.length&&!n&&!r?f=t:(f={},s.length&&s.forEach(w=>Mn(f,w,a,!0)),Mn(f,t,a)),Te(t)&&i.set(t,f),f}function Mn(e,t,n,r=!1){let{mixins:s,extends:i}=t;i&&Mn(e,i,n,!0),s&&s.forEach(a=>Mn(e,a,n,!0));for(let a in t)if(!(r&&a==="expose")){let u=vu[a]||n&&n[a];e[a]=u?u(e[a],t[a]):t[a]}return e}var vu={data:Zr,props:xr,emits:xr,methods:Xo,computed:Xo,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:Xo,directives:Xo,watch:gu,provide:Zr,inject:yu};function Zr(e,t){return t?e?function(){return Ge(we(e)?e.call(this,this):e,we(t)?t.call(this,this):t)}:t:e}function yu(e,t){return Xo(qs(e),qs(t))}function qs(e){if(ye(e)){let t={};for(let n=0;nt==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Je(t)}Modifiers`]||e[`${Dt(t)}Modifiers`];function Eu(e,t,...n){if(e.isUnmounted)return;let r=e.vnode.props||Ie,s=n,i=t.startsWith("update:"),a=i&&ku(r,t.slice(7));a&&(a.trim&&(s=n.map(h=>Fe(h)?h.trim():h)),a.number&&(s=s.map(ko)));let u,f=r[u=$o(t)]||r[u=$o(Je(t))];!f&&i&&(f=r[u=$o(Dt(t))]),f&&wt(f,e,6,s);let w=r[u+"Once"];if(w){if(!e.emitted)e.emitted={};else if(e.emitted[u])return;e.emitted[u]=!0,wt(w,e,6,s)}}var Cu=new WeakMap;function Ni(e,t,n=!1){let r=n?Cu:t.emitsCache,s=r.get(e);if(s!==void 0)return s;let i=e.emits,a={},u=!1;if(!we(e)){let f=w=>{let h=Ni(w,t,!0);h&&(u=!0,Ge(a,h))};!n&&t.mixins.length&&t.mixins.forEach(f),e.extends&&f(e.extends),e.mixins&&e.mixins.forEach(f)}return!i&&!u?(Te(e)&&r.set(e,null),null):(ye(i)?i.forEach(f=>a[f]=null):Ge(a,i),Te(e)&&r.set(e,a),a)}function Gn(e,t){return!e||!yo(t)?!1:(t=t.slice(2),t=t==="Once"?t:t.replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,Dt(t))||Ne(e,t))}function Os(e){let{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:a,attrs:u,emit:f,render:w,renderCache:h,props:k,data:m,setupState:E,ctx:y,inheritAttrs:g}=e,_=Vn(e),R,T;try{if(n.shapeFlag&4){let V=s||r,M=V;R=Mt(w.call(M,V,h,k,E,m,y)),T=u}else{let V=t;R=Mt(V.length>1?V(k,{attrs:u,slots:a,emit:f}):V(k,null)),T=t.props?u:_u(u)}}catch(V){lo.length=0,an(V,e,1),R=Ce(Kt)}let P=R,F;if(T&&g!==!1){let V=Object.keys(T),{shapeFlag:M}=P;V.length&&M&7&&(i&&V.some(go)&&(T=Su(T,i)),P=Do(P,T,!1,!0))}if(n.dirs&&(P=Do(P,null,!1,!0),P.dirs=P.dirs?P.dirs.concat(n.dirs):n.dirs),n.transition){let V=zn(P.type)&&hi(P)||P;Hn(V,n.transition)}return R=P,Vn(_),R}var _u=e=>{let t;for(let n in e)(n==="class"||n==="style"||yo(n))&&((t||(t={}))[n]=e[n]);return t},Su=(e,t)=>{let n={};for(let r in e)(!go(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Nu(e,t,n){let{props:r,children:s,component:i}=e,{props:a,children:u,patchFlag:f}=t,w=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&f>=0){if(f&1024)return!0;if(f&16)return r?ei(r,a,w):!!a;if(f&8){let h=t.dynamicProps;for(let k=0;kObject.create(Ri),Ai=e=>Object.getPrototypeOf(e)===Ri;function Ru(e,t,n,r=!1){let s={},i=Ti();e.propsDefaults=Object.create(null),Oi(e,t,s,i);for(let a in e.propsOptions[0])a in s||(s[a]=void 0);n?e.props=r?s:Yo(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function Tu(e,t,n,r){let{props:s,attrs:i,vnode:{patchFlag:a}}=e,u=De(s),[f]=e.propsOptions,w=!1;if((r||a>0)&&!(a&16)){if(a&8){let h=e.vnode.dynamicProps;for(let k=0;k{f=!0;let[m,E]=Ii(k,t,!0);Ge(a,m),E&&u.push(...E)};!n&&t.mixins.length&&t.mixins.forEach(h),e.extends&&h(e.extends),e.mixins&&e.mixins.forEach(h)}if(!i&&!f)return Te(e)&&r.set(e,xt),xt;if(ye(i))for(let h=0;he==="_"||e==="_ctx"||e==="$stable",zs=e=>ye(e)?e.map(Mt):[Mt(e)],Ou=(e,t,n)=>{if(t._n)return t;let r=Zd((...s)=>zs(t(...s)),n);return r._c=!1,r},Pi=(e,t,n)=>{let r=e._ctx;for(let s in e){if(Fs(s))continue;let i=e[s];if(we(i))t[s]=Ou(s,i,r);else if(i!=null){let a=zs(i);t[s]=()=>a}}},Vi=(e,t)=>{let n=zs(t);e.slots.default=()=>n},qi=(e,t,n)=>{for(let r in t)(n||!Fs(r))&&(e[r]=t[r])},Iu=(e,t,n)=>{let r=e.slots=Ti();if(e.vnode.shapeFlag&32){let s=t._;s?(qi(r,t,n),n&&bn(r,"_",s,!0)):Pi(t,r)}else t&&Vi(e,t)},Pu=(e,t,n)=>{let{vnode:r,slots:s}=e,i=!0,a=Ie;if(r.shapeFlag&32){let u=t._;u?n&&u===1?i=!1:qi(s,t,n):(i=!t.$stable,Pi(t,s)),a=t}else t&&(Vi(e,t),a={default:1});if(i)for(let u in s)!Fs(u)&&a[u]==null&&delete s[u]};function Vu(){let e=[]}var dt=Lu;function Mi(e){return qu(e)}function qu(e,t){Vu();let n=Lo();n.__VUE__=!0;let{insert:r,remove:s,patchProp:i,createElement:a,createText:u,createComment:f,setText:w,setElementText:h,parentNode:k,nextSibling:m,setScopeId:E=at,insertStaticContent:y}=e,g=(v,N,q,H=null,j=null,U=null,G=void 0,ee=null,x=!!N.dynamicChildren)=>{if(v===N)return;v&&!Qo(v,N)&&(H=ne(v),Me(v,j,U,!0),v=null),N.patchFlag===-2&&(x=!1,N.dynamicChildren=null),N.dynamicChildren&&v&&v.dynamicChildren&&v.dynamicChildren.hasOnce&&(N.dynamicChildren===xt&&(N.dynamicChildren=[]),N.dynamicChildren.hasOnce=!0);let{type:W,ref:me,shapeFlag:ie}=N;switch(W){case Wn:_(v,N,q,H);break;case Kt:R(v,N,q,H);break;case tn:v==null&&T(N,q,H,G);break;case X:te(v,N,q,H,j,U,G,ee,x);break;default:ie&1?M(v,N,q,H,j,U,G,ee,x):ie&6?J(v,N,q,H,j,U,G,ee,x):(ie&64||ie&128)&&W.process(v,N,q,H,j,U,G,ee,x,I)}me!=null&&j?Zo(me,v&&v.ref,U,N||v,!N):me==null&&v&&v.ref!=null&&Zo(v.ref,null,U,v,!0)},_=(v,N,q,H)=>{if(v==null)r(N.el=u(N.children),q,H);else{let j=N.el=v.el;N.children!==v.children&&w(j,N.children)}},R=(v,N,q,H)=>{v==null?r(N.el=f(N.children||""),q,H):N.el=v.el},T=(v,N,q,H)=>{[v.el,v.anchor]=y(v.children,N,q,H,v.el,v.anchor)},P=(v,N,q,H)=>{if(N.children!==v.children){let j=m(v.anchor);V(v),[N.el,N.anchor]=y(N.children,q,j,H)}else N.el=v.el,N.anchor=v.anchor},F=({el:v,anchor:N},q,H)=>{let j;for(;v&&v!==N;)j=m(v),r(v,q,H),v=j;r(N,q,H)},V=({el:v,anchor:N})=>{let q;for(;v&&v!==N;)q=m(v),s(v),v=q;s(N)},M=(v,N,q,H,j,U,G,ee,x)=>{if(N.type==="svg"?G="svg":N.type==="math"&&(G="mathml"),v==null)se(N,q,H,j,U,G,ee,x);else{let W=v.el&&v.el._isVueCE?v.el:null;try{W&&W._beginPatch(),O(v,N,j,U,G,ee,x)}finally{W&&W._endPatch()}}},se=(v,N,q,H,j,U,G,ee)=>{let x,W,{props:me,shapeFlag:ie,transition:ue,dirs:ge}=v;if(x=v.el=a(v.type,U,me&&me.is,me),ie&8?h(x,v.children):ie&16&&S(v.children,x,null,H,j,Is(v,U),G,ee),ge&&io(v,null,H,"created"),oe(x,v,v.scopeId,G,H),me){for(let $e in me)$e!=="value"&&!bo($e)&&i(x,$e,null,me[$e],U,H);"value"in me&&i(x,"value",null,me.value,U),(W=me.onVnodeBeforeMount)&&Vt(W,H,v)}ge&&io(v,null,H,"beforeMount");let Se=Mu(j,ue);Se&&ue.beforeEnter(x),r(x,N,q),((W=me&&me.onVnodeMounted)||Se||ge)&&dt(()=>{let Ve;W&&Vt(W,H,v),Se&&ue.enter(x),ge&&io(v,null,H,"mounted")},j)},oe=(v,N,q,H,j)=>{if(q&&E(v,q),H)for(let U=0;U{for(let W=x;W{let ee=N.el=v.el,{patchFlag:x,dynamicChildren:W,dirs:me}=N;x|=v.patchFlag&16;let ie=v.props||Ie,ue=N.props||Ie,ge;if(q&&ao(q,!1),(ge=ue.onVnodeBeforeUpdate)&&Vt(ge,q,N,v),me&&io(N,v,q,"beforeUpdate"),q&&ao(q,!0),W&&(!v.dynamicChildren||v.dynamicChildren.length!==W.length)&&(x=0,G=!1,W=null),(ie.innerHTML&&ue.innerHTML==null||ie.textContent&&ue.textContent==null)&&h(ee,""),W?Y(v.dynamicChildren,W,ee,q,H,Is(N,j),U):G||Oe(v,N,ee,null,q,H,Is(N,j),U,!1),x>0){if(x&16)Z(ee,ie,ue,q,j);else if(x&2&&ie.class!==ue.class&&i(ee,"class",null,ue.class,j),x&4&&i(ee,"style",ie.style,ue.style,j),x&8){let Se=N.dynamicProps;for(let $e=0;$e{ge&&Vt(ge,q,N,v),me&&io(N,v,q,"updated")},H)},Y=(v,N,q,H,j,U,G)=>{for(let ee=0;ee{if(N!==q){if(N!==Ie)for(let U in N)!bo(U)&&!(U in q)&&i(v,U,N[U],null,j,H);for(let U in q){if(bo(U))continue;let G=q[U],ee=N[U];G!==ee&&U!=="value"&&i(v,U,ee,G,j,H)}"value"in q&&i(v,"value",N.value,q.value,j)}},te=(v,N,q,H,j,U,G,ee,x)=>{let W=N.el=v?v.el:u(""),me=N.anchor=v?v.anchor:u(""),{patchFlag:ie,dynamicChildren:ue,slotScopeIds:ge}=N;ge&&(ee=ee?ee.concat(ge):ge),v==null?(r(W,q,H),r(me,q,H),S(N.children||[],q,me,j,U,G,ee,x)):ie>0&&ie&64&&ue&&v.dynamicChildren&&v.dynamicChildren.length===ue.length?(Y(v.dynamicChildren,ue,q,j,U,G,ee),(N.key!=null||j&&N===j.subTree)&&$i(v,N,!0)):Oe(v,N,q,me,j,U,G,ee,x)},J=(v,N,q,H,j,U,G,ee,x)=>{N.slotScopeIds=ee,v==null?N.shapeFlag&512?j.ctx.activate(N,q,H,G,x):re(N,q,H,j,U,G,x):ce(v,N,x)},re=(v,N,q,H,j,U,G)=>{let ee=v.component=ju(v,H,j);if(Bn(v)&&(ee.ctx.renderer=I),Gu(ee,!1,G),ee.asyncDep){if(j&&j.registerDep(ee,fe,G),!v.el){let x=ee.subTree=Ce(Kt);R(null,x,N,q),v.placeholder=x.el}}else fe(ee,v,N,q,j,U,G)},ce=(v,N,q)=>{let H=N.component=v.component;if(Nu(v,N,q))if(H.asyncDep&&!H.asyncResolved){N.el=v.el,le(H,N,q);return}else H.next=N,H.update();else N.el=v.el,H.vnode=N},fe=(v,N,q,H,j,U,G)=>{let ee=()=>{if(v.isMounted){let{next:ie,bu:ue,u:ge,parent:Se,vnode:$e}=v;{let pt=Li(v);if(pt){ie&&(ie.el=$e.el,le(v,ie,G)),pt.asyncDep.then(()=>{dt(()=>{v.isUnmounted||W()},j)});return}}let Ve=ie,Ke;ao(v,!1),ie?(ie.el=$e.el,le(v,ie,G)):ie=$e,ue&&wo(ue),(Ke=ie.props&&ie.props.onVnodeBeforeUpdate)&&Vt(Ke,Se,ie,$e),ao(v,!0);let Ye=Os(v),Et=v.subTree;v.subTree=Ye,g(Et,Ye,k(Et.el),ne(Et),v,j,U),ie.el=Ye.el,Ve===null&&Du(v,Ye.el),ge&&dt(ge,j),(Ke=ie.props&&ie.props.onVnodeUpdated)&&dt(()=>Vt(Ke,Se,ie,$e),j)}else{let ie,{el:ue,props:ge}=N,{bm:Se,m:$e,parent:Ve,root:Ke,type:Ye}=v,Et=xo(N);if(ao(v,!1),Se&&wo(Se),!Et&&(ie=ge&&ge.onVnodeBeforeMount)&&Vt(ie,Ve,N),ao(v,!0),ue&&L){let pt=()=>{v.subTree=Os(v),L(ue,v.subTree,v,j,null)};Et&&Ye.__asyncHydrate?Ye.__asyncHydrate(ue,v,pt):pt()}else{Ke.ce&&Ke.ce._hasShadowRoot()&&Ke.ce._injectChildStyle(Ye,v.parent?v.parent.type:void 0);let pt=v.subTree=Os(v);g(null,pt,q,H,v,j,U),N.el=pt.el}if($e&&dt($e,j),!Et&&(ie=ge&&ge.onVnodeMounted)){let pt=N;dt(()=>Vt(ie,Ve,pt),j)}(N.shapeFlag&256||Ve&&xo(Ve.vnode)&&Ve.vnode.shapeFlag&256)&&v.a&&dt(v.a,j),v.isMounted=!0,N=q=H=null}};v.scope.on();let x=v.effect=new Co(ee);v.scope.off();let W=v.update=x.run.bind(x),me=v.job=x.runIfDirty.bind(x);me.i=v,me.id=v.uid,x.scheduler=()=>$s(me),ao(v,!0),W()},le=(v,N,q)=>{N.component=v;let H=v.vnode.props;v.vnode=N,v.next=null,Tu(v,N.props,H,q),Pu(v,N.children,q),It(),Gr(v),Pt()},Oe=(v,N,q,H,j,U,G,ee,x=!1)=>{let W=v&&v.children,me=v?v.shapeFlag:0,ie=N.children,{patchFlag:ue,shapeFlag:ge}=N;if(ue>0){if(ue&128){Ue(W,ie,q,H,j,U,G,ee,x);return}else if(ue&256){_e(W,ie,q,H,j,U,G,ee,x);return}}ge&8?(me&16&&z(W,j,U),ie!==W&&h(q,ie)):me&16?ge&16?Ue(W,ie,q,H,j,U,G,ee,x):z(W,j,U,!0):(me&8&&h(q,""),ge&16&&S(ie,q,H,j,U,G,ee,x))},_e=(v,N,q,H,j,U,G,ee,x)=>{v=v||xt,N=N||xt;let W=v.length,me=N.length,ie=Math.min(W,me),ue;for(ue=0;ueme?z(v,j,U,!0,!1,ie):S(N,q,H,j,U,G,ee,x,ie)},Ue=(v,N,q,H,j,U,G,ee,x)=>{let W=0,me=N.length,ie=v.length-1,ue=me-1;for(;W<=ie&&W<=ue;){let ge=v[W],Se=N[W]=x?Wt(N[W]):Mt(N[W]);if(Qo(ge,Se))g(ge,Se,q,null,j,U,G,ee,x);else break;W++}for(;W<=ie&&W<=ue;){let ge=v[ie],Se=N[ue]=x?Wt(N[ue]):Mt(N[ue]);if(Qo(ge,Se))g(ge,Se,q,null,j,U,G,ee,x);else break;ie--,ue--}if(W>ie){if(W<=ue){let ge=ue+1,Se=geue)for(;W<=ie;)Me(v[W],j,U,!0),W++;else{let ge=W,Se=W,$e=new Map;for(W=Se;W<=ue;W++){let ft=N[W]=x?Wt(N[W]):Mt(N[W]);ft.key!=null&&$e.set(ft.key,W)}let Ve,Ke=0,Ye=ue-Se+1,Et=!1,pt=0,Vo=new Array(Ye);for(W=0;W=Ye){Me(ft,j,U,!0);continue}let Nt;if(ft.key!=null)Nt=$e.get(ft.key);else for(Ve=Se;Ve<=ue;Ve++)if(Vo[Ve-Se]===0&&Qo(ft,N[Ve])){Nt=Ve;break}Nt===void 0?Me(ft,j,U,!0):(Vo[Nt-Se]=W+1,Nt>=pt?pt=Nt:Et=!0,g(ft,N[Nt],q,null,j,U,G,ee,x),Ke++)}let pr=Et?$u(Vo):xt;for(Ve=pr.length-1,W=Ye-1;W>=0;W--){let ft=Se+W,Nt=N[ft],fr=N[ft+1],mr=ft+1{let{el:U,type:G,transition:ee,children:x,shapeFlag:W}=v;if(W&6){Re(v.component.subTree,N,q,H);return}if(W&128){v.suspense.move(N,q,H);return}if(W&64){G.move(v,N,q,I);return}if(G===X){r(U,N,q);for(let ie=0;ieee.enter(U),j));else{let{leave:ie,delayLeave:ue,afterLeave:ge}=ee,Se=()=>{v.ctx.isUnmounted?s(U):r(U,N,q)},$e=()=>{let Ve=U._isLeaving||!!U[Ts];U._isLeaving&&U[Ts](!0),ee.persisted&&!Ve?Se():ie(U,()=>{Se(),ge&&ge()})};ue?ue(U,Se,$e):$e()}else r(U,N,q)},Me=(v,N,q,H=!1,j=!1)=>{let{type:U,props:G,ref:ee,children:x,dynamicChildren:W,shapeFlag:me,patchFlag:ie,dirs:ue,cacheIndex:ge,memo:Se}=v;if((ie===-2||W&&W.hasOnce)&&(j=!1),ee!=null&&(It(),Zo(ee,null,q,v,!0),Pt()),ge!=null&&(!v.ctx||v.ctx===N)&&(N.renderCache[ge]=void 0),me&256){N.ctx.deactivate(v);return}let $e=me&1&&ue,Ve=!xo(v),Ke;if(Ve&&(Ke=G&&G.onVnodeBeforeUnmount)&&Vt(Ke,N,v),me&6)Ee(v.component,q,H);else{if(me&128){v.suspense.unmount(q,H);return}$e&&io(v,null,N,"beforeUnmount"),me&64?v.type.remove(v,N,q,I,H):W&&!W.hasOnce&&(U!==X||ie>0&&ie&64)?z(W,N,q,!1,!0):(U===X&&ie&384||!j&&me&16)&&z(x,N,q),H&&Pe(v)}let Ye=Se!=null&&ge==null;(Ve&&(Ke=G&&G.onVnodeUnmounted)||$e||Ye)&&dt(()=>{Ke&&Vt(Ke,N,v),$e&&io(v,null,N,"unmounted"),Ye&&(v.el=null)},q)},Pe=v=>{let{type:N,el:q,anchor:H,transition:j}=v;if(N===X){He(q,H);return}if(N===tn){V(v),j&&!j.persisted&&j.afterLeave&&j.afterLeave();return}let U=()=>{s(q),j&&!j.persisted&&j.afterLeave&&j.afterLeave()};if(v.shapeFlag&1&&j&&!j.persisted){let{leave:G,delayLeave:ee}=j,x=()=>G(q,U);ee?ee(v.el,U,x):x()}else U()},He=(v,N)=>{let q;for(;v!==N;)q=m(v),s(v),v=q;s(N)},Ee=(v,N,q)=>{let{bum:H,scope:j,job:U,subTree:G,um:ee,m:x,a:W}=v;oi(x),oi(W),H&&wo(H),j.stop(),U?(U.flags|=8,Me(G,v,N,q)):v.vnode.el&&G&&(G.transition=v.vnode.transition,Me(G,v,N,q)),ee&&dt(ee,N),dt(()=>{v.isUnmounted=!0},N)},z=(v,N,q,H=!1,j=!1,U=0)=>{for(let G=U;G{if(v.shapeFlag&6)return ne(v.component.subTree);if(v.shapeFlag&128)return v.suspense.next();let N=m(v.anchor||v.el),q=N&&N[ou];return q?m(q):N},Q=!1,C=(v,N,q)=>{let H;v==null?N._vnode&&(Me(N._vnode,null,null,!0),H=N._vnode.component):g(N._vnode||null,v,N,null,null,null,q),N._vnode=v,Q||(Q=!0,Gr(H),ui(),Q=!1)},I={p:g,um:Me,m:Re,r:Pe,mt:re,mc:S,pc:Oe,pbc:Y,n:ne,o:e},B,L;return t&&([B,L]=t(I)),{render:C,hydrate:B,createApp:wu(C,B)}}function Is({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ao({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Mu(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function $i(e,t,n=!1){let r=e.children,s=t.children;if(ye(r)&&ye(s))for(let i=0;i>1,e[n[u]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,a=n[i-1];i-- >0;)n[i]=a,a=t[a];return n}function Li(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Li(t)}function oi(e){if(e)for(let t=0;te.__isSuspense;function Lu(e,t){t&&t.pendingBranch?ye(e)?t.effects.push(...e):t.effects.push(e):di(e)}var X=Symbol.for("v-fgt"),Wn=Symbol.for("v-txt"),Kt=Symbol.for("v-cmt"),tn=Symbol.for("v-stc"),lo=[],yt=null;function l(e=!1){lo.push(yt=e?null:[])}function zi(){lo.pop(),yt=lo[lo.length-1]||null}var nn=1;function $n(e,t=!1){nn+=e,e<0&&yt&&t&&(yt.hasOnce=!0)}function Hi(e){return e.dynamicChildren=nn>0?yt||xt:null,zi(),nn>0&&yt&&yt.push(e),e}function d(e,t,n,r,s,i){return Hi(o(e,t,n,r,s,i,!0))}function Lt(e,t,n,r,s){return Hi(Ce(e,t,n,r,s,!0))}function Ln(e){return e?e.__v_isVNode===!0:!1}function Qo(e,t){return e.type===t.type&&e.key===t.key}var Bi=({key:e})=>e??null,In=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Fe(e)||Ze(e)||we(e)?{i:vt,r:e,k:t,f:!!n}:e:null);function o(e,t=null,n=null,r=0,s=null,i=e===X?0:1,a=!1,u=!1){let f={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Bi(t),ref:t&&In(t),scopeId:pi,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:vt};return u?(Un(f,n),i&128&&e.normalize(f)):n&&(f.shapeFlag|=Fe(n)?8:16),nn>0&&!a&&yt&&(f.patchFlag>0||i&6)&&f.patchFlag!==32&&yt.push(f),f}var Ce=Uu;function Uu(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===pu)&&(e=Kt),Ln(e)){let u=Do(e,t,!0);return n&&Un(u,n),nn>0&&!i&&yt&&(u.shapeFlag&6?yt[yt.indexOf(e)]=u:yt.push(u)),u.patchFlag=-2,u}if(Qu(e)&&(e=e.__vccOpts),t){t=Fu(t);let{class:u,style:f}=t;u&&!Fe(u)&&(t.class=A(u)),Te(f)&&(Jo(f)&&!ye(f)&&(f=Ge({},f)),t.style=qe(f))}let a=Fe(e)?1:Fi(e)?128:zn(e)?64:Te(e)?4:we(e)?2:0;return o(e,t,n,r,s,a,i,!0)}function Fu(e){return e?Jo(e)||Ai(e)?Ge({},e):e:null}function Do(e,t,n=!1,r=!1){let{props:s,ref:i,patchFlag:a,children:u,transition:f}=e,w=t?zu(s||{},t):s,h={__v_isVNode:!0,__v_skip:!0,type:e.type,props:w,key:w&&Bi(w),ref:t&&t.ref?n&&i?ye(i)?i.concat(In(t)):[i,In(t)]:In(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:u,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==X?a===-1?16:a|16:a,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:f,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Do(e.ssContent),ssFallback:e.ssFallback&&Do(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce,cacheIndex:e.cacheIndex};return f&&r&&Hn(h,f.clone(h)),h}function b(e=" ",t=0){return Ce(Wn,null,e,t)}function pe(e,t){let n=Ce(tn,null,e);return n.staticCount=t,n}function p(e="",t=!1){return t?(l(),Lt(Kt,null,e)):Ce(Kt,null,e)}function Mt(e){return e==null||typeof e=="boolean"?Ce(Kt):ye(e)?Ce(X,null,e.slice()):Ln(e)?Wt(e):Ce(Wn,null,String(e))}function Wt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Do(e)}function Un(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(ye(t))n=16;else if(typeof t=="object")if(r&65){let s=t.default;s&&(s._c&&(s._d=!1),Un(e,s()),s._c&&(s._d=!0));return}else{n=32;let s=t._;!s&&!Ai(t)?t._ctx=vt:s===3&&vt&&(vt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else if(we(t)){if(r&65){Un(e,{default:t});return}t={default:t,_ctx:vt},n=32}else t=String(t),r&64?(n=16,t=[b(t)]):n=8;e.children=t,e.shapeFlag|=n}function zu(...e){let t={};for(let n=0;ntt||vt,Fn,sn;{let e=Lo(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(a=>a(i)):s[0](i)}};Fn=t("__VUE_INSTANCE_SETTERS__",n=>tt=n),sn=t("__VUE_SSR_SETTERS__",n=>Ro=n)}var un=e=>{let t=tt;return Fn(e),e.scope.on(),()=>{e.scope.off(),Fn(t)}},ni=()=>{tt&&tt.scope.off(),Fn(null)};function ji(e){return e.vnode.shapeFlag&4}var Ro=!1;function Gu(e,t=!1,n=!1){t&&sn(t);let{props:r,children:s}=e.vnode,i=ji(e);Ru(e,r,i,t),Iu(e,s,n||t);let a=i?Wu(e,t):void 0;return t&&sn(!1),a}function Wu(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,fu);let{setup:r}=n;if(r){It();let s=e.setupContext=r.length>1?Yu(e):null,i=un(e),a=rn(r,e,0,[e.props,s]),u=us(a);if(Pt(),i(),(u||e.sp)&&!xo(e)&&Ls(e),u){if(a.then(ni,ni),t)return a.then(f=>{sn(!0);try{si(e,f,t)}finally{sn(!1)}}).catch(f=>{an(f,e,0)});e.asyncDep=a}else si(e,a,t)}else Gi(e,t)}function si(e,t,n){we(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Te(t)&&(e.setupState=An(t)),Gi(e,n)}var ri,ii;function Gi(e,t,n){let r=e.type;if(!e.render){if(!t&&ri&&!r.render){let s=r.template||Us(e).template;if(s){let{isCustomElement:i,compilerOptions:a}=e.appContext.config,{delimiters:u,compilerOptions:f}=r,w=Ge(Ge({isCustomElement:i,delimiters:u},a),f);r.render=ri(s,w)}}e.render=r.render||at,ii&&ii(e)}{let s=un(e);It();try{mu(e)}finally{Pt(),s()}}}var Ku={get(e,t){return xe(e,"get",""),e[t]}};function Yu(e){let t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,Ku),slots:e.slots,emit:e.emit,expose:t}}function Kn(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(An(Rs(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in en)return en[n](e)},has(t,n){return n in t||n in en}})):e.proxy}function Ju(e,t=!0){return we(e)?e.displayName||e.name:e.name||t&&e.__name}function Qu(e){return we(e)&&"__vccOpts"in e}var ot=(e,t)=>Hr(e,t,Ro);function ke(e,t,n){try{$n(-1);let r=arguments.length;return r===2?Te(t)&&!ye(t)?Ln(t)?Ce(e,null,[t]):Ce(e,t):Ce(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ln(n)&&(n=[n]),Ce(e,t,n))}finally{$n(1)}}var Xu="3.5.43";var Ws,Wi=typeof window<"u"&&window.trustedTypes;if(Wi)try{Ws=Wi.createPolicy("vue",{createHTML:e=>e})}catch{}var sa=Ws?e=>Ws.createHTML(e):e=>e,Zu="http://www.w3.org/2000/svg",xu="http://www.w3.org/1998/Math/MathML",Jt=typeof document<"u"?document:null,Ki=Jt&&Jt.createElement("template"),ec={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let s=t==="svg"?Jt.createElementNS(Zu,e):t==="mathml"?Jt.createElementNS(xu,e):n?Jt.createElement(e,{is:n}):Jt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>Jt.createTextNode(e),createComment:e=>Jt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Jt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){let a=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{Ki.innerHTML=sa(r==="svg"?`${e} `:r==="mathml"?`${e} `:e);let u=Ki.content;if(r==="svg"||r==="mathml"){let f=u.firstChild;for(;f.firstChild;)u.appendChild(f.firstChild);u.removeChild(f)}t.insertBefore(u,n)}return[a?a.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}};var tc=Symbol("_vtc");function oc(e,t,n){let r=e[tc];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}var Qn=Symbol("_vod"),ra=Symbol("_vsh"),K={name:"show",beforeMount(e,{value:t},{transition:n}){e[Qn]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):cn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),cn(e,!0),r.enter(e)):r.leave(e,()=>{cn(e,!1)}):cn(e,t))},beforeUnmount(e,{value:t}){cn(e,t)}};function cn(e,t){e.style.display=t?e[Qn]:"none",e[ra]=!t}var nc=Symbol("");var sc=/(?:^|;)\s*display\s*:/;function rc(e,t,n){let r=e.style,s=Fe(n),i=!1;if(n&&!s){if(t)if(Fe(t))for(let a of t.split(";")){let u=a.slice(0,a.indexOf(":")).trim();n[u]==null&&pn(r,u,"")}else for(let a in t)n[a]==null&&pn(r,a,"");for(let a in n){a==="display"&&(i=!0);let u=n[a];u!=null?ac(e,a,!Fe(t)&&t?t[a]:void 0,u)||pn(r,a,u):pn(r,a,"")}}else if(s){if(t!==n){let a=r[nc];a&&(n+=";"+a),r.cssText=n,i=sc.test(n)}}else t&&e.removeAttribute("style");Qn in e&&(e[Qn]=i?r.display:"",e[ra]&&(r.display="none"))}var Yn=/\s*!important$/;function pn(e,t,n){if(ye(n))n.forEach(r=>pn(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))Yn.test(n)?e.setProperty(t,n.replace(Yn,""),"important"):e.setProperty(t,n);else{let r=ic(e,t);Yn.test(n)?e.setProperty(Dt(r),n.replace(Yn,""),"important"):e[r]=n}}var Yi=["Webkit","Moz","ms"],Bs={};function ic(e,t){let n=Bs[t];if(n)return n;let r=Je(t);if(r!=="filter"&&r in e)return Bs[t]=r;r=no(r);for(let s=0;sjs||(fc.then(()=>js=0),js=Date.now());function hc(e,t){let n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;let s=n.value;if(ye(s)){let i=r.stopImmediatePropagation;r.stopImmediatePropagation=()=>{i.call(r),r._stopped=!0};let a=s.slice(),u=[r];for(let f=0;fe.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,vc=(e,t,n,r,s,i)=>{let a=s==="svg";t==="class"?oc(e,r,a):t==="style"?rc(e,n,r):yo(t)?go(t)||dc(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):yc(e,t,r,a))?(Xi(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Qi(e,t,r,a,i,t!=="value")):e._isVueCE&&(gc(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!Fe(r)))?Xi(e,Je(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Qi(e,t,r,a))};function yc(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&xi(t)&&we(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){let s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return xi(t)&&Fe(n)?!1:t in e}function gc(e,t){let n=e._def.props;if(!n)return!1;let r=Je(t);return Array.isArray(n)?n.some(s=>Je(s)===r):Object.keys(n).some(s=>Je(s)===r)}var To=e=>{let t=e.props["onUpdate:modelValue"]||!1;return ye(t)?n=>wo(t,n):t};function bc(e){e.target.composing=!0}function ea(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}var Ut=Symbol("_assign"),Jn=Symbol("_initialValue");function Gs(e,t,n){return t&&(e=e.trim()),n&&(e=ko(e)),e}var Ft={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e.parentNode&&(e.type==="text"?e[Jn]=e.defaultValue.replace(/[\r\n]/g,""):e.type==="textarea"&&(e[Jn]=e.defaultValue.replace(/\r\n?/g,`
+`))),e[Ut]=To(s);let i=r||s.props&&s.props.type==="number";to(e,t?"change":"input",a=>{a.target.composing||e[Ut](Gs(e.value,n,i))}),(n||i)&&to(e,"change",()=>{e.value=Gs(e.value,n,i)}),t||(to(e,"compositionstart",bc),to(e,"compositionend",ea),to(e,"change",ea))},mounted(e,{value:t,modifiers:{trim:n,number:r}}){let s=t??"",i=e[Jn];delete e[Jn],i!==void 0&&(e.type==="text"||e.type==="textarea")&&e.value!==i?e[Ut](Gs(e.value,n,r)):e.value=s},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:i}},a){if(e[Ut]=To(a),e.composing)return;let u=(i||e.type==="number")&&!/^0\d/.test(e.value)?ko(e.value):e.value,f=t??"";if(u===f)return;let w=e.getRootNode();(w instanceof Document||w instanceof ShadowRoot)&&w.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===f)||(e.value=f)}},Ks={deep:!0,created(e,t,n){e[Ut]=To(n),to(e,"change",()=>{let r=e._modelValue,s=fn(e),i=e.checked,a=e[Ut];if(ye(r)){let u=kn(r,s),f=u!==-1;if(i&&!f)a(r.concat(s));else if(!i&&f){let w=[...r];w.splice(u,1),a(w)}}else if(Ct(r)){let u=new Set(r);i?u.add(s):u.delete(s),a(u)}else a(aa(e,i))})},mounted:ta,beforeUpdate(e,t,n){e[Ut]=To(n),ta(e,t,n)}};function ta(e,{value:t,oldValue:n},r){e._modelValue=t;let s;if(ye(t))s=kn(t,r.props.value)>-1;else if(Ct(t))s=t.has(r.props.value);else{if(t===n)return;s=_t(t,aa(e,!0))}e.checked!==s&&(e.checked=s)}var ia={deep:!0,created(e,{value:t,modifiers:{number:n}},r){e._modelValue=t,to(e,"change",()=>{let s=Array.prototype.filter.call(e.options,f=>f.selected).map(f=>n?ko(fn(f)):fn(f)),i=e.multiple,a=i?Ct(e._modelValue)?new Set(s):s:s[0],u=e._pendingValue=[i,i?ye(a)?s.slice():s:a];try{e[Ut](a)}finally{nt(()=>{e._pendingValue===u&&(e._pendingValue=void 0)})}}),e[Ut]=To(r)},mounted(e,{value:t}){oa(e,t)},beforeUpdate(e,{value:t},n){e._modelValue=t,e[Ut]=To(n)},updated(e,{value:t}){let n=e._pendingValue;e._pendingValue=void 0,(!n||n[0]!==e.multiple||!wc(t,n[1],n[0]))&&oa(e,t)}};function wc(e,t,n){if(!n)return _t(e,t);if(ye(e))return _t(e,t);if(Ct(e)){if(e.size!==t.length)return!1;for(let r of t)if(!e.has(r))return!1;return!0}return!1}function oa(e,t){let n=e.multiple,r=ye(t);if(!(n&&!r&&!Ct(t))){for(let s=0,i=e.options.length;sString(w)===String(u)):a.selected=kn(t,u)>-1}else a.selected=t.has(u);else if(_t(fn(a),t)){e.selectedIndex!==s&&(e.selectedIndex=s);return}}!n&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function fn(e){return"_value"in e?e._value:e.value}function aa(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}var kc=["ctrl","shift","alt","meta"],Ec={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>kc.some(n=>e[`${n}Key`]&&!t.includes(n))},de=(e,t)=>{if(!e)return e;let n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=((s,...i)=>{for(let a=0;a{let n=e._withKeys||(e._withKeys={}),r=t.join(".");return n[r]||(n[r]=(s=>{if(!("key"in s))return;let i=Dt(s.key);if(t.some(a=>a===i||Cc[a]===i))return e(s)}))},_c=Ge({patchProp:vc},ec),na;function Sc(){return na||(na=Mi(_c))}var la=((...e)=>{let t=Sc().createApp(...e),{mount:n}=t;return t.mount=r=>{let s=Dc(r);if(!s)return;let i=t._component;!we(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");let a=n(s,!1,Nc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t});function Nc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Dc(e){return Fe(e)?document.querySelector(e):e}var mo=typeof document<"u";function ua(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Rc(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&ua(e.default)}var Ae=Object.assign;function Xn(e,t){let n={};for(let r in t){let s=t[r];n[r]=kt(s)?s.map(e):e(s)}return n}var Io=()=>{},kt=Array.isArray;function Qs(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var ca=/#/g,Tc=/&/g,Ac=/\//g,Oc=/=/g,Ic=/\?/g,pa=/\+/g,Pc=/%5B/g,Vc=/%5D/g,fa=/%5E/g,qc=/%60/g,ma=/%7B/g,Mc=/%7C/g,ha=/%7D/g,$c=/%20/g;function Xs(e){return e==null?"":encodeURI(""+e).replace(Mc,"|").replace(Pc,"[").replace(Vc,"]")}function va(e){return Xs(e).replace(ma,"{").replace(ha,"}").replace(fa,"^")}function Ys(e){return Xs(e).replace(pa,"%2B").replace($c,"+").replace(ca,"%23").replace(Tc,"%26").replace(qc,"`").replace(ma,"{").replace(ha,"}").replace(fa,"^")}function Lc(e){return Ys(e).replace(Oc,"%3D")}function Uc(e){return Xs(e).replace(ca,"%23").replace(Ic,"%3F")}function ya(e){return Uc(e).replace(Ac,"%2F")}function Oo(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}var Fc=/\/$/,zc=e=>e.replace(Fc,"");function Zn(e,t,n="/"){let r,s={},i="",a="",u=t.indexOf("#"),f=t.indexOf("?");return f=u>=0&&f>u?-1:f,f>=0&&(r=t.slice(0,f),i=t.slice(f,u>0?u:t.length),s=e(i.slice(1))),u>=0&&(r=r||t.slice(0,u),a=t.slice(u,t.length)),r=Bc(r??t,n),{fullPath:r+i+a,path:r,query:s,hash:Oo(a)}}function ga(e,t){let n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Zs(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function ba(e,t,n){let r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&po(t.matched[r],n.matched[s])&&xs(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function po(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xs(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Hc(e[n],t[n]))return!1;return!0}function Hc(e,t){return kt(e)?da(e,t):kt(t)?da(t,e):e?.valueOf()===t?.valueOf()}function da(e,t){return kt(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Bc(e,t){if(e.startsWith("/"))return e;if(!e)return t;let n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let i=n.length-1,a,u;for(a=0;a1&&i--;else break;return n.slice(0,i).join("/")+"/"+r.slice(a).join("/")}var Xt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},xn=(function(e){return e.pop="pop",e.push="push",e})({}),es=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function wa(e){if(!e)if(mo){let t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),zc(e)}var jc=/^[^#]+#/;function ka(e,t){return e.replace(jc,"#")+t}function Gc(e,t){let n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}var mn=()=>({left:window.scrollX,top:window.scrollY});function Ea(e){let t;if("el"in e){let n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Gc(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function er(e,t){return(history.state?history.state.position-t:-1)+e}var Js=new Map;function Ca(e,t){Js.set(e,t)}function _a(e){let t=Js.get(e);return Js.delete(e),t}function Wc(e){return typeof e=="string"||e&&typeof e=="object"}function tr(e){return typeof e=="string"||typeof e=="symbol"}var je=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({}),Sa=Symbol("");var S$={[je.MATCHER_NOT_FOUND]({location:e,currentLocation:t}){return`No match for
${JSON.stringify(e)}${t?`
while being at
-`+JSON.stringify(t):""}`},[je.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${Yc(t)}" via a navigation guard.`},[je.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[je.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[je.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function fo(e,t){return Ae(new Error,{type:e,[Sa]:!0},t)}function zt(e,t){return e instanceof Error&&Sa in e&&(t==null||!!(e.type&t))}var Kc=["params","query","hash"];function Yc(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let n of Kc)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Na(e){let t={};if(e===""||e==="?")return t;let n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ys(s)):[r&&Ys(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Da(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=kt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}var Ra=Symbol(""),nr=Symbol(""),ts=Symbol(""),os=Symbol(""),ns=Symbol("");function Po(){let e=[];function t(r){return e.push(r),()=>{let s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Qt(e,t,n,r,s,i=a=>a()){let a=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((u,f)=>{let w=m=>{m===!1?f(fo(je.NAVIGATION_ABORTED,{from:n,to:t})):m instanceof Error?f(m):Wc(m)?f(fo(je.NAVIGATION_GUARD_REDIRECT,{from:t,to:m})):(a&&r.enterCallbacks[s]===a&&typeof m=="function"&&a.push(m),u())},h=i(()=>e.call(r&&r.instances[s],t,n,w)),k=Promise.resolve(h);e.length<3&&(k=k.then(w)),k.catch(m=>f(m))})}function ss(e,t,n,r,s=i=>i()){let i=[];for(let a of e)for(let u in a.components){let f=a.components[u];if(!(t!=="beforeRouteEnter"&&!a.instances[u]))if(ua(f)){let w=(f.__vccOpts||f)[t];w&&i.push(Qt(w,n,r,a,u,s))}else{let w=f();i.push(()=>w.then(h=>{if(!h)throw new Error(`Couldn't resolve component "${u}" at "${a.path}"`);let k=Rc(h)?h.default:h;a.mods[u]=h,a.components[u]=k;let m=(k.__vccOpts||k)[t];return m&&Qt(m,n,r,a,u,s)()}))}}return i}function Ta(e,t){let n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;apo(w,u))?r.push(u):n.push(u));let f=e.matched[a];f&&(t.matched.find(w=>po(w,f))||s.push(f))}return[n,r,s]}var Jc=()=>location.protocol+"//"+location.host;function Fa(e,t){let{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let a=s.includes(e.slice(i))?e.slice(i).length:1,u=s.slice(a);return u[0]!=="/"&&(u="/"+u),Zs(u,"")}return Zs(n,e)+r+s}function Qc(e,t,n,r){let s=[],i=[],a=null,u=({state:m})=>{let E=Fa(e,location),y=n.value,g=t.value,C=0;if(m){if(n.value=E,t.value=m,a&&a===y){a=null;return}C=g?m.position-g.position:0}else r(E);s.forEach(R=>{R(n.value,y,{delta:C,type:xn.pop,direction:C?C>0?es.forward:es.back:es.unknown})})};function f(){a=n.value}function w(m){s.push(m);let E=()=>{let y=s.indexOf(m);y>-1&&s.splice(y,1)};return i.push(E),E}function h(){if(document.visibilityState==="hidden"){let{history:m}=window;if(!m.state)return;m.replaceState(Ae({},m.state,{scroll:mn()}),"")}}function k(){for(let m of i)m();i=[],window.removeEventListener("popstate",u),window.removeEventListener("pagehide",h),document.removeEventListener("visibilitychange",h)}return window.addEventListener("popstate",u),window.addEventListener("pagehide",h),document.addEventListener("visibilitychange",h),{pauseListeners:f,listen:w,destroy:k}}function Aa(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?mn():null}}function Xc(e){let{history:t,location:n}=window,r={value:Fa(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(f,w,h){let k=e.indexOf("#"),m=k>-1?(n.host&&document.querySelector("base")?e:e.slice(k))+f:Jc()+e+f;try{t[h?"replaceState":"pushState"](w,"",m),s.value=w}catch(E){console.error(E),n[h?"replace":"assign"](m)}}function a(f,w){i(f,Ae({},t.state,Aa(s.value.back,f,s.value.forward,!0),w,{position:s.value.position}),!0),r.value=f}function u(f,w){let h=Ae({},s.value,t.state,{forward:f,scroll:mn()});i(h.current,h,!0),i(f,Ae({},Aa(r.value,f,null),{position:h.position+1},w),!1),r.value=f}return{location:r,state:s,push:u,replace:a}}function za(e){e=wa(e);let t=Xc(e),n=Qc(e,t.state,t.location,t.replace);function r(i,a=!0){a||n.pauseListeners(),history.go(i)}let s=Ae({location:"",base:e,go:r,createHref:ka.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}var ho=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Xe||{}),Zc={type:ho.Static,value:""},xc=/[a-zA-Z0-9_]/;function ep(e){if(!e)return[[]];if(e==="/")return[[Zc]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(E){throw new Error(`ERR (${n})/"${w}": ${E}`)}let n=Xe.Static,r=n,s=[],i;function a(){i&&s.push(i),i=[]}let u=0,f,w="",h="";function k(){w&&(n===Xe.Static?i.push({type:ho.Static,value:w}):n===Xe.Param||n===Xe.ParamRegExp||n===Xe.ParamRegExpEnd?(i.length>1&&(f==="*"||f==="+")&&t(`A repeatable param (${w}) must be alone in its segment. eg: '/:ids+.`),i.push({type:ho.Param,value:w,regexp:h,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):t("Invalid state to consume buffer"),w="")}function m(){w+=f}for(;ut.length?t.length===1&&t[0]===it.Static+it.Segment?1:-1:0}function Ha(e,t){let n=0,r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}var rp={strict:!1,end:!0,sensitive:!1};function ip(e,t,n){let r=np(ep(e.path),n),s=Ae(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function ap(e,t){let n=[],r=new Map;t=Qs(rp,t);function s(k){return r.get(k)}function i(k,m,E){let y=!E,g=Va(k);g.aliasOf=E&&E.record;let C=Qs(t,k),R=[g];if("alias"in k){let F=typeof k.alias=="string"?[k.alias]:k.alias;for(let P of F)R.push(Va(Ae({},g,{components:E?E.record.components:g.components,path:P,aliasOf:E?E.record:g})))}let T,I;for(let F of R){let{path:P}=F;if(m&&P[0]!=="/"){let M=m.record.path,se=M[M.length-1]==="/"?"":"/";F.path=m.record.path+(P&&se+P)}if(T=ip(F,m,C),E?E.alias.push(T):(I=I||T,I!==T&&I.alias.push(T),y&&k.name&&!qa(T)&&a(k.name)),Ba(T)&&f(T),g.children){let M=g.children;for(let se=0;se{a(I)}:Io}function a(k){if(tr(k)){let m=r.get(k);m&&(r.delete(k),n.splice(n.indexOf(m),1),m.children.forEach(a),m.alias.forEach(a))}else{let m=n.indexOf(k);m>-1&&(n.splice(m,1),k.record.name&&r.delete(k.record.name),k.children.forEach(a),k.alias.forEach(a))}}function u(){return n}function f(k){let m=up(k,n);n.splice(m,0,k),k.record.name&&!qa(k)&&r.set(k.record.name,k)}function w(k,m){let E,y={},g,C;if("name"in k&&k.name){if(E=r.get(k.name),!E)throw fo(je.MATCHER_NOT_FOUND,{location:k});C=E.record.name,y=Ae(Pa(m.params,E.keys.filter(I=>!I.optional).concat(E.parent?E.parent.keys.filter(I=>I.optional):[]).map(I=>I.name)),k.params&&Pa(k.params,E.keys.map(I=>I.name))),g=E.stringify(y)}else if(k.path!=null)g=k.path,E=n.find(I=>I.re.test(g)),E&&(y=E.parse(g),C=E.record.name);else{if(E=m.name?r.get(m.name):n.find(I=>I.re.test(m.path)),!E)throw fo(je.MATCHER_NOT_FOUND,{location:k,currentLocation:m});C=E.record.name,y=Ae({},m.params,k.params),g=E.stringify(y)}let R=[],T=E;for(;T;)R.unshift(T.record),T=T.parent;return{name:C,path:g,params:y,matched:R,meta:dp(R)}}e.forEach(k=>i(k));function h(){n.length=0,r.clear()}return{addRoute:i,resolve:w,removeRoute:a,clearRoutes:h,getRoutes:u,getRecordMatcher:s}}function Pa(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Va(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:lp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function lp(e){let t={},n=e.props||!1;if("component"in e)t.default=n;else for(let r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function qa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function dp(e){return e.reduce((t,n)=>Ae(t,n.meta),{})}function up(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Ha(e,t[i])<0?r=i:n=i+1}let s=cp(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function cp(e){let t=e;for(;t=t.parent;)if(Ba(t)&&Ha(e,t)===0)return t}function Ba({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ma(e){let t=ut(ts),n=ut(os),r=!1,s=null,i=ot(()=>{let h=Gt(e.to);return t.resolve(h)}),a=ot(()=>{let{matched:h}=i.value,{length:k}=h,m=h[k-1],E=n.matched;if(!m||!E.length)return-1;let y=E.findIndex(po.bind(null,m));if(y>-1)return y;let g=$a(h[k-2]);return k>1&&$a(m)===g&&E[E.length-1].path!==g?E.findIndex(po.bind(null,h[k-2])):y}),u=ot(()=>a.value>-1&&vp(n.params,i.value.params)),f=ot(()=>a.value>-1&&a.value===n.matched.length-1&&xs(n.params,i.value.params));function w(h={}){if(hp(h)){let k=t[Gt(e.replace)?"replace":"push"](Gt(e.to)).catch(Io);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>k),k}return Promise.resolve()}return{route:i,href:ot(()=>i.value.href),isActive:u,isExactActive:f,navigate:w}}function pp(e){return e.length===1?e[0]:e}var fp=ln({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Ma,setup(e,{slots:t}){let n=ze(Ma(e)),{options:r}=ut(ts),s=ot(()=>({[La(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[La(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{let i=t.default&&pp(t.default(n));return e.custom?i:ke("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),mp=fp;function hp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function vp(e,t){for(let n in t){let r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!kt(s)||s.length!==r.length||r.some((i,a)=>i.valueOf()!==s[a].valueOf()))return!1}return!0}function $a(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var La=(e,t,n)=>e??t??n,yp=ln({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=ut(ns),s=ot(()=>e.route||r.value),i=ut(nr,0),a=ot(()=>{let w=Gt(i),{matched:h}=s.value,k;for(;(k=h[w])&&!k.components;)w++;return w}),u=ot(()=>s.value.matched[a.value]);uo(nr,ot(()=>a.value+1)),uo(Ra,u),uo(ns,s);let f=et();return Be(()=>[f.value,u.value,e.name],([w,h,k],[m,E,y])=>{h&&(h.instances[k]=w,E&&E!==h&&w&&w===m&&(h.leaveGuards.size||(h.leaveGuards=E.leaveGuards),h.updateGuards.size||(h.updateGuards=E.updateGuards))),w&&h&&(!E||!po(h,E)||!m)&&(h.enterCallbacks[k]||[]).forEach(g=>g(w))},{flush:"post"}),()=>{let w=s.value,h=e.name,k=u.value,m=k&&k.components[h];if(!m)return Ua(n.default,{Component:m,route:w});let E=k.props[h],y=E?E===!0?w.params:typeof E=="function"?E(w):E:null,C=ke(m,Ae({},y,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(k.instances[h]=null)},ref:f}));return Ua(n.default,{Component:C,route:w})||C}}});function Ua(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var sr=yp;function ja(e){let t=ap(e.routes,e),n=e.parseQuery||Na,r=e.stringifyQuery||or,s=e.history,i=Po(),a=Po(),u=Po(),f=Tn(Xt),w=Xt;mo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let h=Xn.bind(null,z=>""+z),k=Xn.bind(null,ya),m=Xn.bind(null,Oo);function E(z,ne){let Q,_;return tr(z)?(Q=t.getRecordMatcher(z),_=ne):_=z,t.addRoute(_,Q)}function y(z){let ne=t.getRecordMatcher(z);ne&&t.removeRoute(ne)}function g(){return t.getRoutes().map(z=>z.record)}function C(z){return!!t.getRecordMatcher(z)}function R(z,ne){if(ne=Ae({},ne||f.value),typeof z=="string"){let v=Zn(n,z,ne.path),N=t.resolve({path:v.path},ne),q=s.createHref(v.fullPath);return Ae(v,N,{params:m(N.params),hash:Oo(v.hash),redirectedFrom:void 0,href:q})}let Q;if(z.path!=null)Q=Ae({},z,{path:Zn(n,z.path,ne.path).path});else{let v=Ae({},z.params);for(let N in v)v[N]==null&&delete v[N];Q=Ae({},z,{params:k(v)}),ne.params=k(ne.params)}let _=t.resolve(Q,ne),V=z.hash||"";_.params=h(m(_.params));let B=ga(r,Ae({},z,{hash:va(V),path:_.path})),L=s.createHref(B);return Ae({fullPath:B,hash:V,query:r===or?Da(z.query):z.query||{}},_,{redirectedFrom:void 0,href:L})}function T(z){return typeof z=="string"?Zn(n,z,f.value.path):Ae({},z)}function I(z,ne){if(w!==z)return fo(je.NAVIGATION_CANCELLED,{from:ne,to:z})}function F(z){return se(z)}function P(z){return F(Ae(T(z),{replace:!0}))}function M(z,ne){let Q=z.matched[z.matched.length-1];if(Q&&Q.redirect){let{redirect:_}=Q,V=typeof _=="function"?_(z,ne):_;return typeof V=="string"&&(V=V.includes("?")||V.includes("#")?V=T(V):{path:V},V.params={}),Ae({query:z.query,hash:z.hash,params:V.path!=null?{}:z.params},V)}}function se(z,ne){let Q=w=R(z),_=f.value,V=z.state,B=z.force,L=z.replace===!0,v=M(Q,_);if(v)return se(Ae(T(v),{state:typeof v=="object"?Ae({},V,v.state):V,force:B,replace:L}),ne||Q);let N=Q;N.redirectedFrom=ne;let q;return!B&&ba(r,_,Q)&&(q=fo(je.NAVIGATION_DUPLICATED,{to:N,from:_}),Ue(_,_,!0,!1)),(q?Promise.resolve(q):O(N,_)).catch(H=>zt(H)?zt(H,je.NAVIGATION_GUARD_REDIRECT)?H:_e(H):le(H,N,_)).then(H=>{if(H){if(zt(H,je.NAVIGATION_GUARD_REDIRECT))return se(Ae({replace:L},T(H.to),{state:typeof H.to=="object"?Ae({},V,H.to.state):V,force:B}),ne||N)}else H=Z(N,_,!0,L,V);return Y(N,_,H),H})}function oe(z,ne){let Q=I(z,ne);return Q?Promise.reject(Q):Promise.resolve()}function S(z){let ne=Pe.values().next().value;return ne&&typeof ne.runWithContext=="function"?ne.runWithContext(z):z()}function O(z,ne){let Q,[_,V,B]=Ta(z,ne);Q=ss(_.reverse(),"beforeRouteLeave",z,ne);for(let v of _)v.leaveGuards.forEach(N=>{Q.push(Qt(N,z,ne))});let L=oe.bind(null,z,ne);return Q.push(L),Ee(Q).then(()=>{Q=[];for(let v of i.list())Q.push(Qt(v,z,ne));return Q.push(L),Ee(Q)}).then(()=>{Q=ss(V,"beforeRouteUpdate",z,ne);for(let v of V)v.updateGuards.forEach(N=>{Q.push(Qt(N,z,ne))});return Q.push(L),Ee(Q)}).then(()=>{Q=[];for(let v of B)if(v.beforeEnter)if(kt(v.beforeEnter))for(let N of v.beforeEnter)Q.push(Qt(N,z,ne));else Q.push(Qt(v.beforeEnter,z,ne));return Q.push(L),Ee(Q)}).then(()=>(z.matched.forEach(v=>v.enterCallbacks={}),Q=ss(B,"beforeRouteEnter",z,ne,S),Q.push(L),Ee(Q))).then(()=>{Q=[];for(let v of a.list())Q.push(Qt(v,z,ne));return Q.push(L),Ee(Q)}).catch(v=>zt(v,je.NAVIGATION_CANCELLED)?v:Promise.reject(v))}function Y(z,ne,Q){u.list().forEach(_=>S(()=>_(z,ne,Q)))}function Z(z,ne,Q,_,V){let B=I(z,ne);if(B)return B;let L=ne===Xt,v=mo?history.state:{};Q&&(_||L?s.replace(z.fullPath,Ae({scroll:L&&v&&v.scroll},V)):s.push(z.fullPath,V)),f.value=z,Ue(z,ne,Q,L),_e()}let te;function J(){te||(te=s.listen((z,ne,Q)=>{if(!He.listening)return;let _=R(z),V=M(_,He.currentRoute.value);if(V){se(Ae(V,{replace:!0,force:!0}),_).catch(Io);return}w=_;let B=f.value;mo&&Ca(er(B.fullPath,Q.delta),mn()),O(_,B).catch(L=>zt(L,je.NAVIGATION_ABORTED|je.NAVIGATION_CANCELLED)?L:zt(L,je.NAVIGATION_GUARD_REDIRECT)?(se(Ae(T(L.to),{force:!0}),_).then(v=>{zt(v,je.NAVIGATION_ABORTED|je.NAVIGATION_DUPLICATED)&&!Q.delta&&Q.type===xn.pop&&s.go(-1,!1)}).catch(Io),Promise.reject()):(Q.delta&&s.go(-Q.delta,!1),le(L,_,B))).then(L=>{L=L||Z(_,B,!1),L&&(Q.delta&&!zt(L,je.NAVIGATION_CANCELLED)?s.go(-Q.delta,!1):Q.type===xn.pop&&zt(L,je.NAVIGATION_ABORTED|je.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(_,B,L)}).catch(Io)}))}let re=Po(),ce=Po(),fe;function le(z,ne,Q){_e(z);let _=ce.list();return _.length?_.forEach(V=>V(z,ne,Q)):console.error(z),Promise.reject(z)}function Oe(){return fe&&f.value!==Xt?Promise.resolve():new Promise((z,ne)=>{re.add([z,ne])})}function _e(z){return fe||(fe=!z,J(),re.list().forEach(([ne,Q])=>z?Q(z):ne()),re.reset()),z}function Ue(z,ne,Q,_){let{scrollBehavior:V}=e;if(!mo||!V)return Promise.resolve();let B=!Q&&_a(er(z.fullPath,0))||(_||!Q)&&history.state&&history.state.scroll||null;return nt().then(()=>V(z,ne,B)).then(L=>L&&Ea(L)).catch(L=>le(L,z,ne))}let Re=z=>s.go(z),Me,Pe=new Set,He={currentRoute:f,listening:!0,addRoute:E,removeRoute:y,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:g,resolve:R,options:e,push:F,replace:P,go:Re,back:()=>Re(-1),forward:()=>Re(1),beforeEach:i.add,beforeResolve:a.add,afterEach:u.add,onError:ce.add,isReady:Oe,install(z){z.component("RouterLink",mp),z.component("RouterView",sr),z.config.globalProperties.$router=He,Object.defineProperty(z.config.globalProperties,"$route",{enumerable:!0,get:()=>Gt(f)}),mo&&!Me&&f.value===Xt&&(Me=!0,F(s.location).catch(_=>{}));let ne={};for(let _ in Xt)Object.defineProperty(ne,_,{get:()=>f.value[_],enumerable:!0});z.provide(ts,He),z.provide(os,Yo(ne)),z.provide(ns,f);let Q=z.unmount;Pe.add(z),z.unmount=function(){Pe.delete(z),Pe.size<1&&(w=Xt,te&&te(),te=null,f.value=Xt,Me=!1,fe=!1),Q()}}};function Ee(z){return z.reduce((ne,Q)=>ne.then(()=>S(Q)),Promise.resolve())}return He}function Ga(e){return ut(os)}function Wa(e,t){return t?.split(".").reduce((n,r)=>n?.[r],e)}function rr(e=null,t=new Map){let n=ze({}),r=[],s=!1,i=new Proxy(n,{get(a,u){return typeof u=="string"&&u.startsWith("__v_")||Reflect.has(a,u)?Reflect.get(a,u):e?.[u]}});return Object.defineProperty(n,"parent",{value:e,configurable:!0}),Object.defineProperty(n,"viewState",{get:()=>i}),i.watch=(a,u,f=!1,w=!0)=>{let h=typeof a=="function"?()=>a(i):()=>Wa(i,a),k=Be(h,u,{deep:f,flush:"post"});return r.push(k),w&&nt(()=>{s||u(h(),h())}),k},i.watchGroup=(a,u,f=!0)=>i.watch(()=>a.map(w=>Wa(i,w)),u,!0,f),i.on=(a,u)=>{if(a==="dispose")return r.push(u),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(u);let f=()=>t.get(a)?.delete(u);return r.push(f),f},i.emit=(a,...u)=>{for(let f of[...t.get(a)||[]])f({},...u)},i.dispose=()=>{s=!0,r.splice(0).reverse().forEach(a=>a())},Wo(i.dispose),i}function ct(){let e=new Set,t=new Set,n=!1,r=(i,a=0)=>{if(n)return;let u=setTimeout(()=>{e.delete(u),i()},a);return e.add(u),u};r.cancel=i=>{clearTimeout(i),e.delete(i)};let s=(i,a)=>{if(n)return;let u=setInterval(i,a);return t.add(u),u};return s.cancel=i=>{clearInterval(i),t.delete(i)},Wo(()=>{n=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:r,interval:s}}function Zt(){let e=new Set;return Wo(()=>{e.forEach(t=>t()),e.clear()}),(t,n,r,s)=>{t.addEventListener(n,r,s);let i=()=>{t.removeEventListener(n,r,s),e.delete(i)};return e.add(i),i}}function ir(e,t,n){let r,s=!1,i="form-draft:"+n,a=()=>Object.fromEntries(t.map(m=>[m,e[m]])),u=()=>JSON.stringify(a()),f=m=>{for(let E of t)Object.prototype.hasOwnProperty.call(m,E)&&(e[E]=m[E]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},w=()=>{try{window.sessionStorage.removeItem(i)}catch{}},h=(m=!1)=>{if(r!==void 0){if(m&&document.querySelectorAll("input, select, textarea").forEach(E=>{E._field?.binding.state===e&&E._field.timer&&E._field.commit()}),e.unsavedChanges=u()!==r,e.draftSaved=!1,!e.unsavedChanges){w();return}try{window.sessionStorage.setItem(i,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:a()})),e.draftSaved=!0}catch{}}},k=()=>h(!0);return e.on("routeLeave",k),window.addEventListener("beforeunload",k),e.on("dispose",()=>window.removeEventListener("beforeunload",k)),{restore(){r=u();let m;try{m=JSON.parse(window.sessionStorage.getItem(i)||"null")}catch{}let E=m&&m.account===(e.user?.username||null)&&Date.now()-m.savedAt<30*6e4&&m.values;return E&&(f(m.values),e.draftRestored=!0),s||(s=!0,e.watch(()=>a(),()=>h(),!0)),e.unsavedChanges=u()!==r,!!E},checkpoint(){return JSON.parse(u())},accept(m){r=JSON.stringify(m),e.draftRestored=!1,h()},discard(){document.querySelectorAll("input, select, textarea").forEach(m=>{m._field?.binding.state!==e||!m._field.timer||(clearTimeout(m._field.timer),m._field.timer=null,m.value=m._field.binding.value??"")}),r!==void 0&&f(JSON.parse(r)),e.draftRestored=!1,h()},clear(){r=u(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,w()}}}var rs="XXXX",gp=e=>{rs=e||"XXXX"},Ka=(e=rs)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},Ya=(e,t=rs)=>{let n=Ka(t);if(!n||!e||!e.textContent.includes(t))return;let r=e.ownerDocument,s=r.createTreeWalker(e,NodeFilter.SHOW_TEXT),i=[];for(;s.nextNode();)i.push(s.currentNode);for(let a of i){let u=a.nodeValue,f=a.parentElement;if(!u.includes(t)||!f||f.closest("script, style, mark.redaction, .mermaid"))continue;let w=f.closest('code[class*="language-"]');if(w&&!w.contains(e))continue;let h=r.createDocumentFragment(),k=0;for(let m of u.matchAll(n)){h.append(u.slice(k,m.index));let E=r.createElement("mark");E.className="redaction",E.title="Redacted by Anonymous GitHub",E.textContent=m[0],h.append(E),k=m.index+m[0].length}h.append(u.slice(k)),a.replaceWith(h)}},Ja=(e,t=rs)=>{if(!e||!t||!e.includes(t))return e;let n=new DOMParser().parseFromString(""+e+"","text/html");return Ya(n.body,t),n.body.innerHTML};async function Qa(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let n=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),n?.focus()}}function bp(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],n=t.indexOf(e.currentTarget),r=e.key==="Home"?0:e.key==="End"?t.length-1:(n+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[r]?.focus(),t[r]?.click()}var Xa=function(e,t,n,r){e.previewTabKeydown=bp,e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(h){let k=e.toasts.indexOf(h);k!==-1&&e.toasts.splice(k,1)},e.addToast=function(h){return e.toasts.push(h),r(function(){e.removeToast(h)},8e3),h};let s=/^\/(r|repository|pr|gist)\//;e.path=n.url(),e.paths=n.path().substring(1).split("/"),e.isReviewerRoute=s.test(n.path()),e.darkMode=function(h){localStorage.setItem("darkMode",h),e.isDarkMode=h;let k="/css/prism-okaidia.css",m="/css/prism.css";if(h){$("body").addClass("dark-mode");let y=document.createElement("link");y.href=k,y.rel="stylesheet",document.head.append(y),$(`link[href='${m}']`).remove()}else{$("body").removeClass("dark-mode");let y=document.createElement("link");y.href=m,y.rel="stylesheet",document.head.append(y),$(`link[href='${k}']`).remove()}let E=document.querySelector("[class*='floatingchat-container-wrap'] [class*='floating-chat-kofi-text-container-wrap']");E&&(E.style.backgroundColor=h?"#34312C":"#1A1815",E.style.color="#FAF9F6"),e.emit("dark-mode",h)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let i;e.respondToEmailPrompt=async h=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let k=await t.post("/github/connections/email",{action:h,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});h==="save"&&(e.user.notificationEmail=k.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,i?.focus()}catch(k){e.emailPromptError=k.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function a(){t.get("/api/user").then(h=>{h&&(e.user=h.data),e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(i=document.activeElement,e.emailPromptOpen=!0,r(()=>{let k=document.getElementById("email-prompt");k?.showModal?k.showModal():k?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null})}a();function u(){t.get("/api/options").then(h=>{h&&(e.site_options=h.data),gp(h?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}u();function f(){t.get("/api/message").then(h=>{h&&(e.generalMessage=h.data)},()=>{e.generalMessage=null})}f();function w(h,k){k&&(e.title=k.title),e.path=n.url(),e.paths=n.path().substring(1).split("/"),e.isReviewerRoute=s.test(n.path())}e.on("routeChange",w),e.on("routeUpdate",w)},Za=function(e,t){let n=Zt(),r=ct(),s=()=>{let i=window.location.hash.slice(1),a=document.getElementById(i);if(!a?.classList.contains("panel-collapse"))return;$(a).collapse("show");let u=document.getElementById(a.getAttribute("aria-labelledby"));u?.setAttribute("tabindex","-1"),u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>r.timeout(s,0)),n(window,"hashchange",s),r.timeout(s,0)},xa=function(e,t,n,r,s){e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let i="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let w=await t.get("/github/connections/email");e.accountEmail=w.data.notificationEmail||"",i=w.data.csrf,e.emailCSRFReady=!!i}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!i)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let w=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":i}});e.accountEmail=w.data.notificationEmail,e.user&&(e.user.notificationEmail=w.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),s.load().then(w=>{e.quota=w},console.error);let a=ir(e,["terms","options"],"profile");e.discardDraft=()=>a.discard();function u(){t.get("/api/user/default").then(w=>{let h=w.data||{};h.terms&&(e.terms=h.terms.join(`
+`+JSON.stringify(t):""}`},[je.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${Yc(t)}" via a navigation guard.`},[je.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[je.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[je.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function fo(e,t){return Ae(new Error,{type:e,[Sa]:!0},t)}function zt(e,t){return e instanceof Error&&Sa in e&&(t==null||!!(e.type&t))}var Kc=["params","query","hash"];function Yc(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let n of Kc)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function Na(e){let t={};if(e===""||e==="?")return t;let n=(e[0]==="?"?e.slice(1):e).split("&");for(let r=0;rs&&Ys(s)):[r&&Ys(r)]).forEach(s=>{s!==void 0&&(t+=(t.length?"&":"")+n,s!=null&&(t+="="+s))})}return t}function Da(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=kt(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}var Ra=Symbol(""),nr=Symbol(""),ts=Symbol(""),os=Symbol(""),ns=Symbol("");function Po(){let e=[];function t(r){return e.push(r),()=>{let s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Qt(e,t,n,r,s,i=a=>a()){let a=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((u,f)=>{let w=m=>{m===!1?f(fo(je.NAVIGATION_ABORTED,{from:n,to:t})):m instanceof Error?f(m):Wc(m)?f(fo(je.NAVIGATION_GUARD_REDIRECT,{from:t,to:m})):(a&&r.enterCallbacks[s]===a&&typeof m=="function"&&a.push(m),u())},h=i(()=>e.call(r&&r.instances[s],t,n,w)),k=Promise.resolve(h);e.length<3&&(k=k.then(w)),k.catch(m=>f(m))})}function ss(e,t,n,r,s=i=>i()){let i=[];for(let a of e)for(let u in a.components){let f=a.components[u];if(!(t!=="beforeRouteEnter"&&!a.instances[u]))if(ua(f)){let w=(f.__vccOpts||f)[t];w&&i.push(Qt(w,n,r,a,u,s))}else{let w=f();i.push(()=>w.then(h=>{if(!h)throw new Error(`Couldn't resolve component "${u}" at "${a.path}"`);let k=Rc(h)?h.default:h;a.mods[u]=h,a.components[u]=k;let m=(k.__vccOpts||k)[t];return m&&Qt(m,n,r,a,u,s)()}))}}return i}function Ta(e,t){let n=[],r=[],s=[],i=Math.max(t.matched.length,e.matched.length);for(let a=0;apo(w,u))?r.push(u):n.push(u));let f=e.matched[a];f&&(t.matched.find(w=>po(w,f))||s.push(f))}return[n,r,s]}var Jc=()=>location.protocol+"//"+location.host;function Fa(e,t){let{pathname:n,search:r,hash:s}=t,i=e.indexOf("#");if(i>-1){let a=s.includes(e.slice(i))?e.slice(i).length:1,u=s.slice(a);return u[0]!=="/"&&(u="/"+u),Zs(u,"")}return Zs(n,e)+r+s}function Qc(e,t,n,r){let s=[],i=[],a=null,u=({state:m})=>{let E=Fa(e,location),y=n.value,g=t.value,_=0;if(m){if(n.value=E,t.value=m,a&&a===y){a=null;return}_=g?m.position-g.position:0}else r(E);s.forEach(R=>{R(n.value,y,{delta:_,type:xn.pop,direction:_?_>0?es.forward:es.back:es.unknown})})};function f(){a=n.value}function w(m){s.push(m);let E=()=>{let y=s.indexOf(m);y>-1&&s.splice(y,1)};return i.push(E),E}function h(){if(document.visibilityState==="hidden"){let{history:m}=window;if(!m.state)return;m.replaceState(Ae({},m.state,{scroll:mn()}),"")}}function k(){for(let m of i)m();i=[],window.removeEventListener("popstate",u),window.removeEventListener("pagehide",h),document.removeEventListener("visibilitychange",h)}return window.addEventListener("popstate",u),window.addEventListener("pagehide",h),document.addEventListener("visibilitychange",h),{pauseListeners:f,listen:w,destroy:k}}function Aa(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?mn():null}}function Xc(e){let{history:t,location:n}=window,r={value:Fa(e,n)},s={value:t.state};s.value||i(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function i(f,w,h){let k=e.indexOf("#"),m=k>-1?(n.host&&document.querySelector("base")?e:e.slice(k))+f:Jc()+e+f;try{t[h?"replaceState":"pushState"](w,"",m),s.value=w}catch(E){console.error(E),n[h?"replace":"assign"](m)}}function a(f,w){i(f,Ae({},t.state,Aa(s.value.back,f,s.value.forward,!0),w,{position:s.value.position}),!0),r.value=f}function u(f,w){let h=Ae({},s.value,t.state,{forward:f,scroll:mn()});i(h.current,h,!0),i(f,Ae({},Aa(r.value,f,null),{position:h.position+1},w),!1),r.value=f}return{location:r,state:s,push:u,replace:a}}function za(e){e=wa(e);let t=Xc(e),n=Qc(e,t.state,t.location,t.replace);function r(i,a=!0){a||n.pauseListeners(),history.go(i)}let s=Ae({location:"",base:e,go:r,createHref:ka.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}var ho=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({}),Xe=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.ParamRegExp=2]="ParamRegExp",e[e.ParamRegExpEnd=3]="ParamRegExpEnd",e[e.EscapeNext=4]="EscapeNext",e})(Xe||{}),Zc={type:ho.Static,value:""},xc=/[a-zA-Z0-9_]/;function ep(e){if(!e)return[[]];if(e==="/")return[[Zc]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(E){throw new Error(`ERR (${n})/"${w}": ${E}`)}let n=Xe.Static,r=n,s=[],i;function a(){i&&s.push(i),i=[]}let u=0,f,w="",h="";function k(){w&&(n===Xe.Static?i.push({type:ho.Static,value:w}):n===Xe.Param||n===Xe.ParamRegExp||n===Xe.ParamRegExpEnd?(i.length>1&&(f==="*"||f==="+")&&t(`A repeatable param (${w}) must be alone in its segment. eg: '/:ids+.`),i.push({type:ho.Param,value:w,regexp:h,repeatable:f==="*"||f==="+",optional:f==="*"||f==="?"})):t("Invalid state to consume buffer"),w="")}function m(){w+=f}for(;ut.length?t.length===1&&t[0]===it.Static+it.Segment?1:-1:0}function Ha(e,t){let n=0,r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}var rp={strict:!1,end:!0,sensitive:!1};function ip(e,t,n){let r=np(ep(e.path),n),s=Ae(r,{record:e,parent:t,children:[],alias:[]});return t&&!s.record.aliasOf==!t.record.aliasOf&&t.children.push(s),s}function ap(e,t){let n=[],r=new Map;t=Qs(rp,t);function s(k){return r.get(k)}function i(k,m,E){let y=!E,g=Va(k);g.aliasOf=E&&E.record;let _=Qs(t,k),R=[g];if("alias"in k){let F=typeof k.alias=="string"?[k.alias]:k.alias;for(let V of F)R.push(Va(Ae({},g,{components:E?E.record.components:g.components,path:V,aliasOf:E?E.record:g})))}let T,P;for(let F of R){let{path:V}=F;if(m&&V[0]!=="/"){let M=m.record.path,se=M[M.length-1]==="/"?"":"/";F.path=m.record.path+(V&&se+V)}if(T=ip(F,m,_),E?E.alias.push(T):(P=P||T,P!==T&&P.alias.push(T),y&&k.name&&!qa(T)&&a(k.name)),Ba(T)&&f(T),g.children){let M=g.children;for(let se=0;se{a(P)}:Io}function a(k){if(tr(k)){let m=r.get(k);m&&(r.delete(k),n.splice(n.indexOf(m),1),m.children.forEach(a),m.alias.forEach(a))}else{let m=n.indexOf(k);m>-1&&(n.splice(m,1),k.record.name&&r.delete(k.record.name),k.children.forEach(a),k.alias.forEach(a))}}function u(){return n}function f(k){let m=up(k,n);n.splice(m,0,k),k.record.name&&!qa(k)&&r.set(k.record.name,k)}function w(k,m){let E,y={},g,_;if("name"in k&&k.name){if(E=r.get(k.name),!E)throw fo(je.MATCHER_NOT_FOUND,{location:k});_=E.record.name,y=Ae(Pa(m.params,E.keys.filter(P=>!P.optional).concat(E.parent?E.parent.keys.filter(P=>P.optional):[]).map(P=>P.name)),k.params&&Pa(k.params,E.keys.map(P=>P.name))),g=E.stringify(y)}else if(k.path!=null)g=k.path,E=n.find(P=>P.re.test(g)),E&&(y=E.parse(g),_=E.record.name);else{if(E=m.name?r.get(m.name):n.find(P=>P.re.test(m.path)),!E)throw fo(je.MATCHER_NOT_FOUND,{location:k,currentLocation:m});_=E.record.name,y=Ae({},m.params,k.params),g=E.stringify(y)}let R=[],T=E;for(;T;)R.unshift(T.record),T=T.parent;return{name:_,path:g,params:y,matched:R,meta:dp(R)}}e.forEach(k=>i(k));function h(){n.length=0,r.clear()}return{addRoute:i,resolve:w,removeRoute:a,clearRoutes:h,getRoutes:u,getRecordMatcher:s}}function Pa(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function Va(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:lp(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}};return Object.defineProperty(t,"mods",{value:{}}),t}function lp(e){let t={},n=e.props||!1;if("component"in e)t.default=n;else for(let r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function qa(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function dp(e){return e.reduce((t,n)=>Ae(t,n.meta),{})}function up(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Ha(e,t[i])<0?r=i:n=i+1}let s=cp(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function cp(e){let t=e;for(;t=t.parent;)if(Ba(t)&&Ha(e,t)===0)return t}function Ba({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function Ma(e){let t=ut(ts),n=ut(os),r=!1,s=null,i=ot(()=>{let h=Gt(e.to);return t.resolve(h)}),a=ot(()=>{let{matched:h}=i.value,{length:k}=h,m=h[k-1],E=n.matched;if(!m||!E.length)return-1;let y=E.findIndex(po.bind(null,m));if(y>-1)return y;let g=$a(h[k-2]);return k>1&&$a(m)===g&&E[E.length-1].path!==g?E.findIndex(po.bind(null,h[k-2])):y}),u=ot(()=>a.value>-1&&vp(n.params,i.value.params)),f=ot(()=>a.value>-1&&a.value===n.matched.length-1&&xs(n.params,i.value.params));function w(h={}){if(hp(h)){let k=t[Gt(e.replace)?"replace":"push"](Gt(e.to)).catch(Io);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>k),k}return Promise.resolve()}return{route:i,href:ot(()=>i.value.href),isActive:u,isExactActive:f,navigate:w}}function pp(e){return e.length===1?e[0]:e}var fp=ln({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"},viewTransition:Boolean},useLink:Ma,setup(e,{slots:t}){let n=ze(Ma(e)),{options:r}=ut(ts),s=ot(()=>({[La(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[La(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{let i=t.default&&pp(t.default(n));return e.custom?i:ke("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},i)}}}),mp=fp;function hp(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){let t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function vp(e,t){for(let n in t){let r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!kt(s)||s.length!==r.length||r.some((i,a)=>i.valueOf()!==s[a].valueOf()))return!1}return!0}function $a(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}var La=(e,t,n)=>e??t??n,yp=ln({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=ut(ns),s=ot(()=>e.route||r.value),i=ut(nr,0),a=ot(()=>{let w=Gt(i),{matched:h}=s.value,k;for(;(k=h[w])&&!k.components;)w++;return w}),u=ot(()=>s.value.matched[a.value]);uo(nr,ot(()=>a.value+1)),uo(Ra,u),uo(ns,s);let f=et();return Be(()=>[f.value,u.value,e.name],([w,h,k],[m,E,y])=>{h&&(h.instances[k]=w,E&&E!==h&&w&&w===m&&(h.leaveGuards.size||(h.leaveGuards=E.leaveGuards),h.updateGuards.size||(h.updateGuards=E.updateGuards))),w&&h&&(!E||!po(h,E)||!m)&&(h.enterCallbacks[k]||[]).forEach(g=>g(w))},{flush:"post"}),()=>{let w=s.value,h=e.name,k=u.value,m=k&&k.components[h];if(!m)return Ua(n.default,{Component:m,route:w});let E=k.props[h],y=E?E===!0?w.params:typeof E=="function"?E(w):E:null,_=ke(m,Ae({},y,t,{onVnodeUnmounted:R=>{R.component.isUnmounted&&(k.instances[h]=null)},ref:f}));return Ua(n.default,{Component:_,route:w})||_}}});function Ua(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var sr=yp;function ja(e){let t=ap(e.routes,e),n=e.parseQuery||Na,r=e.stringifyQuery||or,s=e.history,i=Po(),a=Po(),u=Po(),f=Tn(Xt),w=Xt;mo&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");let h=Xn.bind(null,z=>""+z),k=Xn.bind(null,ya),m=Xn.bind(null,Oo);function E(z,ne){let Q,C;return tr(z)?(Q=t.getRecordMatcher(z),C=ne):C=z,t.addRoute(C,Q)}function y(z){let ne=t.getRecordMatcher(z);ne&&t.removeRoute(ne)}function g(){return t.getRoutes().map(z=>z.record)}function _(z){return!!t.getRecordMatcher(z)}function R(z,ne){if(ne=Ae({},ne||f.value),typeof z=="string"){let v=Zn(n,z,ne.path),N=t.resolve({path:v.path},ne),q=s.createHref(v.fullPath);return Ae(v,N,{params:m(N.params),hash:Oo(v.hash),redirectedFrom:void 0,href:q})}let Q;if(z.path!=null)Q=Ae({},z,{path:Zn(n,z.path,ne.path).path});else{let v=Ae({},z.params);for(let N in v)v[N]==null&&delete v[N];Q=Ae({},z,{params:k(v)}),ne.params=k(ne.params)}let C=t.resolve(Q,ne),I=z.hash||"";C.params=h(m(C.params));let B=ga(r,Ae({},z,{hash:va(I),path:C.path})),L=s.createHref(B);return Ae({fullPath:B,hash:I,query:r===or?Da(z.query):z.query||{}},C,{redirectedFrom:void 0,href:L})}function T(z){return typeof z=="string"?Zn(n,z,f.value.path):Ae({},z)}function P(z,ne){if(w!==z)return fo(je.NAVIGATION_CANCELLED,{from:ne,to:z})}function F(z){return se(z)}function V(z){return F(Ae(T(z),{replace:!0}))}function M(z,ne){let Q=z.matched[z.matched.length-1];if(Q&&Q.redirect){let{redirect:C}=Q,I=typeof C=="function"?C(z,ne):C;return typeof I=="string"&&(I=I.includes("?")||I.includes("#")?I=T(I):{path:I},I.params={}),Ae({query:z.query,hash:z.hash,params:I.path!=null?{}:z.params},I)}}function se(z,ne){let Q=w=R(z),C=f.value,I=z.state,B=z.force,L=z.replace===!0,v=M(Q,C);if(v)return se(Ae(T(v),{state:typeof v=="object"?Ae({},I,v.state):I,force:B,replace:L}),ne||Q);let N=Q;N.redirectedFrom=ne;let q;return!B&&ba(r,C,Q)&&(q=fo(je.NAVIGATION_DUPLICATED,{to:N,from:C}),Ue(C,C,!0,!1)),(q?Promise.resolve(q):O(N,C)).catch(H=>zt(H)?zt(H,je.NAVIGATION_GUARD_REDIRECT)?H:_e(H):le(H,N,C)).then(H=>{if(H){if(zt(H,je.NAVIGATION_GUARD_REDIRECT))return se(Ae({replace:L},T(H.to),{state:typeof H.to=="object"?Ae({},I,H.to.state):I,force:B}),ne||N)}else H=Z(N,C,!0,L,I);return Y(N,C,H),H})}function oe(z,ne){let Q=P(z,ne);return Q?Promise.reject(Q):Promise.resolve()}function S(z){let ne=Pe.values().next().value;return ne&&typeof ne.runWithContext=="function"?ne.runWithContext(z):z()}function O(z,ne){let Q,[C,I,B]=Ta(z,ne);Q=ss(C.reverse(),"beforeRouteLeave",z,ne);for(let v of C)v.leaveGuards.forEach(N=>{Q.push(Qt(N,z,ne))});let L=oe.bind(null,z,ne);return Q.push(L),Ee(Q).then(()=>{Q=[];for(let v of i.list())Q.push(Qt(v,z,ne));return Q.push(L),Ee(Q)}).then(()=>{Q=ss(I,"beforeRouteUpdate",z,ne);for(let v of I)v.updateGuards.forEach(N=>{Q.push(Qt(N,z,ne))});return Q.push(L),Ee(Q)}).then(()=>{Q=[];for(let v of B)if(v.beforeEnter)if(kt(v.beforeEnter))for(let N of v.beforeEnter)Q.push(Qt(N,z,ne));else Q.push(Qt(v.beforeEnter,z,ne));return Q.push(L),Ee(Q)}).then(()=>(z.matched.forEach(v=>v.enterCallbacks={}),Q=ss(B,"beforeRouteEnter",z,ne,S),Q.push(L),Ee(Q))).then(()=>{Q=[];for(let v of a.list())Q.push(Qt(v,z,ne));return Q.push(L),Ee(Q)}).catch(v=>zt(v,je.NAVIGATION_CANCELLED)?v:Promise.reject(v))}function Y(z,ne,Q){u.list().forEach(C=>S(()=>C(z,ne,Q)))}function Z(z,ne,Q,C,I){let B=P(z,ne);if(B)return B;let L=ne===Xt,v=mo?history.state:{};Q&&(C||L?s.replace(z.fullPath,Ae({scroll:L&&v&&v.scroll},I)):s.push(z.fullPath,I)),f.value=z,Ue(z,ne,Q,L),_e()}let te;function J(){te||(te=s.listen((z,ne,Q)=>{if(!He.listening)return;let C=R(z),I=M(C,He.currentRoute.value);if(I){se(Ae(I,{replace:!0,force:!0}),C).catch(Io);return}w=C;let B=f.value;mo&&Ca(er(B.fullPath,Q.delta),mn()),O(C,B).catch(L=>zt(L,je.NAVIGATION_ABORTED|je.NAVIGATION_CANCELLED)?L:zt(L,je.NAVIGATION_GUARD_REDIRECT)?(se(Ae(T(L.to),{force:!0}),C).then(v=>{zt(v,je.NAVIGATION_ABORTED|je.NAVIGATION_DUPLICATED)&&!Q.delta&&Q.type===xn.pop&&s.go(-1,!1)}).catch(Io),Promise.reject()):(Q.delta&&s.go(-Q.delta,!1),le(L,C,B))).then(L=>{L=L||Z(C,B,!1),L&&(Q.delta&&!zt(L,je.NAVIGATION_CANCELLED)?s.go(-Q.delta,!1):Q.type===xn.pop&&zt(L,je.NAVIGATION_ABORTED|je.NAVIGATION_DUPLICATED)&&s.go(-1,!1)),Y(C,B,L)}).catch(Io)}))}let re=Po(),ce=Po(),fe;function le(z,ne,Q){_e(z);let C=ce.list();return C.length?C.forEach(I=>I(z,ne,Q)):console.error(z),Promise.reject(z)}function Oe(){return fe&&f.value!==Xt?Promise.resolve():new Promise((z,ne)=>{re.add([z,ne])})}function _e(z){return fe||(fe=!z,J(),re.list().forEach(([ne,Q])=>z?Q(z):ne()),re.reset()),z}function Ue(z,ne,Q,C){let{scrollBehavior:I}=e;if(!mo||!I)return Promise.resolve();let B=!Q&&_a(er(z.fullPath,0))||(C||!Q)&&history.state&&history.state.scroll||null;return nt().then(()=>I(z,ne,B)).then(L=>L&&Ea(L)).catch(L=>le(L,z,ne))}let Re=z=>s.go(z),Me,Pe=new Set,He={currentRoute:f,listening:!0,addRoute:E,removeRoute:y,clearRoutes:t.clearRoutes,hasRoute:_,getRoutes:g,resolve:R,options:e,push:F,replace:V,go:Re,back:()=>Re(-1),forward:()=>Re(1),beforeEach:i.add,beforeResolve:a.add,afterEach:u.add,onError:ce.add,isReady:Oe,install(z){z.component("RouterLink",mp),z.component("RouterView",sr),z.config.globalProperties.$router=He,Object.defineProperty(z.config.globalProperties,"$route",{enumerable:!0,get:()=>Gt(f)}),mo&&!Me&&f.value===Xt&&(Me=!0,F(s.location).catch(C=>{}));let ne={};for(let C in Xt)Object.defineProperty(ne,C,{get:()=>f.value[C],enumerable:!0});z.provide(ts,He),z.provide(os,Yo(ne)),z.provide(ns,f);let Q=z.unmount;Pe.add(z),z.unmount=function(){Pe.delete(z),Pe.size<1&&(w=Xt,te&&te(),te=null,f.value=Xt,Me=!1,fe=!1),Q()}}};function Ee(z){return z.reduce((ne,Q)=>ne.then(()=>S(Q)),Promise.resolve())}return He}function Ga(e){return ut(os)}function Wa(e,t){return t?.split(".").reduce((n,r)=>n?.[r],e)}function rr(e=null,t=new Map){let n=ze({}),r=[],s=!1,i=new Proxy(n,{get(a,u){return typeof u=="string"&&u.startsWith("__v_")||Reflect.has(a,u)?Reflect.get(a,u):e?.[u]}});return Object.defineProperty(n,"parent",{value:e,configurable:!0}),Object.defineProperty(n,"viewState",{get:()=>i}),i.watch=(a,u,f=!1,w=!0)=>{let h=typeof a=="function"?()=>a(i):()=>Wa(i,a),k=Be(h,u,{deep:f,flush:"post"});return r.push(k),w&&nt(()=>{s||u(h(),h())}),k},i.watchGroup=(a,u,f=!0)=>i.watch(()=>a.map(w=>Wa(i,w)),u,!0,f),i.on=(a,u)=>{if(a==="dispose")return r.push(u),()=>{};t.has(a)||t.set(a,new Set),t.get(a).add(u);let f=()=>t.get(a)?.delete(u);return r.push(f),f},i.emit=(a,...u)=>{for(let f of[...t.get(a)||[]])f({},...u)},i.dispose=()=>{s=!0,r.splice(0).reverse().forEach(a=>a())},Wo(i.dispose),i}function ct(){let e=new Set,t=new Set,n=!1,r=(i,a=0)=>{if(n)return;let u=setTimeout(()=>{e.delete(u),i()},a);return e.add(u),u};r.cancel=i=>{clearTimeout(i),e.delete(i)};let s=(i,a)=>{if(n)return;let u=setInterval(i,a);return t.add(u),u};return s.cancel=i=>{clearInterval(i),t.delete(i)},Wo(()=>{n=!0,e.forEach(clearTimeout),t.forEach(clearInterval)}),{timeout:r,interval:s}}function Zt(){let e=new Set;return Wo(()=>{e.forEach(t=>t()),e.clear()}),(t,n,r,s)=>{t.addEventListener(n,r,s);let i=()=>{t.removeEventListener(n,r,s),e.delete(i)};return e.add(i),i}}function ir(e,t,n){let r,s=!1,i="form-draft:"+n,a=()=>Object.fromEntries(t.map(m=>[m,e[m]])),u=()=>JSON.stringify(a()),f=m=>{for(let E of t)Object.prototype.hasOwnProperty.call(m,E)&&(e[E]=m[E]);e.options?.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate))},w=()=>{try{window.sessionStorage.removeItem(i)}catch{}},h=(m=!1)=>{if(r!==void 0){if(m&&document.querySelectorAll("input, select, textarea").forEach(E=>{E._field?.binding.state===e&&E._field.timer&&E._field.commit()}),e.unsavedChanges=u()!==r,e.draftSaved=!1,!e.unsavedChanges){w();return}try{window.sessionStorage.setItem(i,JSON.stringify({account:e.user?.username||null,savedAt:Date.now(),values:a()})),e.draftSaved=!0}catch{}}},k=()=>h(!0);return e.on("routeLeave",k),window.addEventListener("beforeunload",k),e.on("dispose",()=>window.removeEventListener("beforeunload",k)),{restore(){r=u();let m;try{m=JSON.parse(window.sessionStorage.getItem(i)||"null")}catch{}let E=m&&m.account===(e.user?.username||null)&&Date.now()-m.savedAt<30*6e4&&m.values;return E&&(f(m.values),e.draftRestored=!0),s||(s=!0,e.watch(()=>a(),()=>h(),!0)),e.unsavedChanges=u()!==r,!!E},checkpoint(){return JSON.parse(u())},accept(m){r=JSON.stringify(m),e.draftRestored=!1,h()},discard(){document.querySelectorAll("input, select, textarea").forEach(m=>{m._field?.binding.state!==e||!m._field.timer||(clearTimeout(m._field.timer),m._field.timer=null,m.value=m._field.binding.value??"")}),r!==void 0&&f(JSON.parse(r)),e.draftRestored=!1,h()},clear(){r=u(),e.unsavedChanges=!1,e.draftRestored=!1,e.draftSaved=!1,w()}}}var rs="XXXX",gp=e=>{rs=e||"XXXX"},Ka=(e=rs)=>{if(!e)return null;let t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(t+"(?:-\\d+)?","g")},Ya=(e,t=rs)=>{let n=Ka(t);if(!n||!e||!e.textContent.includes(t))return;let r=e.ownerDocument,s=r.createTreeWalker(e,NodeFilter.SHOW_TEXT),i=[];for(;s.nextNode();)i.push(s.currentNode);for(let a of i){let u=a.nodeValue,f=a.parentElement;if(!u.includes(t)||!f||f.closest("script, style, mark.redaction, .mermaid"))continue;let w=f.closest('code[class*="language-"]');if(w&&!w.contains(e))continue;let h=r.createDocumentFragment(),k=0;for(let m of u.matchAll(n)){h.append(u.slice(k,m.index));let E=r.createElement("mark");E.className="redaction",E.title="Redacted by Anonymous GitHub",E.textContent=m[0],h.append(E),k=m.index+m[0].length}h.append(u.slice(k)),a.replaceWith(h)}},Ja=(e,t=rs)=>{if(!e||!t||!e.includes(t))return e;let n=new DOMParser().parseFromString(""+e+"","text/html");return Ya(n.body,t),n.body.innerHTML};async function Qa(e){if(window.navigator.clipboard?.writeText){await window.navigator.clipboard.writeText(e);return}let t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.opacity="0";let n=document.activeElement;document.body.appendChild(t);try{if(t.select(),!document.execCommand?.("copy"))throw Error("Copy unavailable")}finally{t.remove(),n?.focus()}}function bp(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.key))return;let t=[...e.currentTarget.closest('[role="tablist"]').querySelectorAll('[role="tab"]')],n=t.indexOf(e.currentTarget),r=e.key==="Home"?0:e.key==="End"?t.length-1:(n+(e.key==="ArrowRight"?1:-1)+t.length)%t.length;e.preventDefault(),t[r]?.focus(),t[r]?.click()}var Xa=function(e,t,n,r){e.previewTabKeydown=bp,e.title="Main",e.user={status:"connection"},e.site_options,e.toasts=[],e.removeToast=function(h){let k=e.toasts.indexOf(h);k!==-1&&e.toasts.splice(k,1)},e.addToast=function(h){return e.toasts.push(h),r(function(){e.removeToast(h)},8e3),h};let s=/^\/(r|repository|pr|gist)\//;e.path=n.url(),e.paths=n.path().substring(1).split("/"),e.isReviewerRoute=s.test(n.path()),e.darkMode=function(h){localStorage.setItem("darkMode",h),e.isDarkMode=h;let k="/css/prism-okaidia.css",m="/css/prism.css";if(h){$("body").addClass("dark-mode");let y=document.createElement("link");y.href=k,y.rel="stylesheet",document.head.append(y),$(`link[href='${m}']`).remove()}else{$("body").removeClass("dark-mode");let y=document.createElement("link");y.href=m,y.rel="stylesheet",document.head.append(y),$(`link[href='${k}']`).remove()}let E=document.querySelector("[class*='floatingchat-container-wrap'] [class*='floating-chat-kofi-text-container-wrap']");E&&(E.style.backgroundColor=h?"#34312C":"#1A1815",E.style.color="#FAF9F6"),e.emit("dark-mode",h)},e.darkMode(localStorage.getItem("darkMode")=="true"),e.emailPromptOpen=!1,e.emailPromptAddress="",e.emailPromptBusy=!1,e.emailPromptError="";let i;e.respondToEmailPrompt=async h=>{if(!e.emailPromptBusy){e.emailPromptBusy=!0,e.emailPromptError="";try{let k=await t.post("/github/connections/email",{action:h,email:e.emailPromptAddress},{headers:{"X-CSRF-Token":e.user.emailPromptCSRF}});h==="save"&&(e.user.notificationEmail=k.data.notificationEmail),e.emailPromptOpen=!1,e.user.showEmailPrompt=!1,i?.focus()}catch(k){e.emailPromptError=k.data?.error||"Unable to save your preference. Please try again."}finally{e.emailPromptBusy=!1}}};function a(){t.get("/api/user").then(h=>{h&&(e.user=h.data),e.user?.emailNotificationsEnabled&&e.user.showEmailPrompt&&!e.user.notificationEmail&&(i=document.activeElement,e.emailPromptOpen=!0,r(()=>{let k=document.getElementById("email-prompt");k?.showModal?k.showModal():k?.setAttribute("open",""),document.getElementById("email-prompt-address")?.focus()},0))},()=>{e.user=null})}a();function u(){t.get("/api/options").then(h=>{h&&(e.site_options=h.data),gp(h?.data?.ANONYMIZATION_MASK),e.emit("site-options")},()=>{e.site_options=null})}u();function f(){t.get("/api/message").then(h=>{h&&(e.generalMessage=h.data)},()=>{e.generalMessage=null})}f();function w(h,k){k&&(e.title=k.title),e.path=n.url(),e.paths=n.path().substring(1).split("/"),e.isReviewerRoute=s.test(n.path())}e.on("routeChange",w),e.on("routeUpdate",w)},Za=function(e,t){let n=Zt(),r=ct(),s=()=>{let i=window.location.hash.slice(1),a=document.getElementById(i);if(!a?.classList.contains("panel-collapse"))return;$(a).collapse("show");let u=document.getElementById(a.getAttribute("aria-labelledby"));u?.setAttribute("tabindex","-1"),u?.focus({preventScroll:!0}),u?.scrollIntoView?.({block:"start"})};e.on("routeUpdate",()=>r.timeout(s,0)),n(window,"hashchange",s),r.timeout(s,0)},xa=function(e,t,n,r,s){e.terms="",e.options={expirationMode:"remove",update:!1,image:!0,pdf:!0,notebook:!0,loc:!0,link:!0},e.saving=!1,e.message=null,e.error=null,e.accountEmail="",e.emailLoading=!0,e.emailCSRFReady=!1,e.emailSaving=!1,e.emailSaved=!1,e.emailError="";let i="";e.loadAccountEmail=async()=>{e.emailLoading=!0,e.emailError="";try{let w=await t.get("/github/connections/email");e.accountEmail=w.data.notificationEmail||"",i=w.data.csrf,e.emailCSRFReady=!!i}catch{e.emailError="Unable to load your email address. Please try again."}finally{e.emailLoading=!1}},e.saveAccountEmail=async()=>{if(!(e.emailSaving||e.emailLoading||!i)){e.emailSaving=!0,e.emailSaved=!1,e.emailError="";try{let w=await t.post("/github/connections/email",{email:e.accountEmail},{headers:{"X-CSRF-Token":i}});e.accountEmail=w.data.notificationEmail,e.user&&(e.user.notificationEmail=w.data.notificationEmail),e.emailSaved=!0}catch{e.emailError="Unable to save your email address. Check the address and try again."}finally{e.emailSaving=!1}}},e.loadAccountEmail(),s.load().then(w=>{e.quota=w},console.error);let a=ir(e,["terms","options"],"profile");e.discardDraft=()=>a.discard();function u(){t.get("/api/user/default").then(w=>{let h=w.data||{};h.terms&&(e.terms=h.terms.join(`
`)),e.options=Object.assign({},e.options,h.options),a.restore()})}u();let f=null;e.saveDefault=w=>{if(w&&w.preventDefault&&w.preventDefault(),e.saving)return;let h=a.checkpoint(),k={terms:e.terms.split(`
-`).map(m=>m.trim()).filter(m=>m.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",k).then(()=>{a.accept(h),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",f&&r.cancel(f),f=r(()=>{e.message=null},2500)},m=>{e.saving=!1;let E=m&&m.data&&m.data.error,y="Unable to save your defaults. Please try again.";Promise.all([n("ERRORS."+E),n("ERRORS.unknown_error")]).then(([g,C])=>{e.error=E&&g!==C?g:y},()=>{e.error=y})})},e.deleteAccount=()=>{confirm("Delete your account? All your anonymized repositories, gists, and pull requests will be removed, and your personal data will be erased. This cannot be undone.")&&(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},el=function(e,t,n){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(r=>{n.url("/dashboard")},r=>{e.error=r.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},tl=function(e,t,n,r,s){e.user&&!e.user.status&&n.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&n.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(u){e.feature=u},e.featureHref=function(u){return u.needsUser&&!e.user?"/signin":u.href},e.featureTarget=function(u){return u.needsUser&&!e.user?"_self":u.target||void 0},e.featureKeydown=function(u,f){let w={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[u.key];if(w===void 0)return;u.preventDefault();let h=e.features.length,k=w==="first"?0:w==="last"?h-1:(f+w+h)%h;e.feature=e.features[k].key,s(()=>{let m=r.document.getElementById("feature-tab-"+e.feature);m&&m.focus()})},e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function i(){t.get("/api/stat/").then(u=>{e.stat=u.data,e.cards[0].total=u.data.nbRepositories,e.cards[1].total=u.data.nbUsers,e.cards[2].total=u.data.nbPageViews,e.cards[3].total=u.data.nbPullRequests})}i();function a(u){let f={series:u,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!u||u.length<2)return f;let w=new Array(u.length-1);for(let g=1;g=2){let g=w[h-2];g&&(f.pctChange=(f.deltaToday-g)/g*100)}return f.pctAbs=Math.round(Math.abs(f.pctChange)),f.isUp=f.pctChange>=0,f}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(u=>{let f=u.data||[];e.history={repositories:a(f.map(w=>w.nbRepositories||0)),users:a(f.map(w=>w.nbUsers||0)),pageViews:a(f.map(w=>w.nbPageViews||0)),pullRequests:a(f.map(w=>w.nbPullRequests||0))}})},ol=function(e,t,n,r,s,i){let a=ct();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,nt(()=>document.querySelector(".dashboard-quota > summary")?.focus())},Zt()(document,"click",S=>{e.quotaExpanded&&!S.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=S=>S.status==="error"||S._broken||f(S.status)==="progress"&&S._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=S=>{e.projectView=S,S==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.projectDetailsId=S=>"project-details-"+encodeURIComponent(S._type+":"+(S._id||S._source||"unknown")),e.showProjectDetails=async S=>{e.selectedProject=S,e.projectName=S.projectName||"",e.nameError="",e.nameMessage="",await nt();let O=document.getElementById(e.projectDetailsId(S));O?.focus(),O?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=S=>{e.selectedProject=null,nt(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(S._type+":"+S._id)}"]`)?.focus())},e.saveProjectName=async S=>{if(e.nameSaving||!S._id)return;let O=e.projectName.trim();if(O.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let Y=await t.post("/api/user/project-name",{type:S._type,id:S._id,name:O});S.projectName=Y.data.name,S._label=S.projectName||S._fallbackLabel,e.selectedProject===S&&(e.nameMessage=O?"Project name saved.":"Default project name restored."),T||(e.dashboardCursor=null,await F(),e.selectedProject===S&&(e.selectedProject=e.items.find(Z=>Z._type===S._type&&Z._id===S._id)||null))}catch{e.selectedProject===S&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async S=>{if(!S._viewUrl||e.copyingId)return;let O=new URL(S._viewUrl,s.location.origin).href;e.copyingId=S._type+":"+S._id;try{await Qa(O),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:O})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let u=["queue","download","downloaded","preparing","anonymizing"];function f(S){return S==="ready"||S==="error"?S:S==="expired"||S==="expiring"?"expired":S==="removed"||S==="removing"?"removed":(u.indexOf(S)>-1,"progress")}let w=7200*1e3,h="dashboard.filterPrefs",k={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},m=loadFilterPrefs(h)||{};e.typeFilter=m.typeFilter||k.typeFilter,e.filters={status:Object.assign({},k.filters.status,m.filters&&m.filters.status||{})},e.orderBy=m.orderBy||k.orderBy;let E={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=E,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let S=E[e.sortField()];return S?S.label:"Custom"},e.isSortedBy=S=>e.sortField()===S,e.setSort=(S,O)=>{typeof O!="boolean"&&(O=e.isSortedBy(S)?!e.sortDesc():!!(E[S]&&E[S].defaultDesc)),e.orderBy=(O?"-":"")+S},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(h,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(h,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),i.load().then(S=>{e.quota=S},console.error);function y(S,O,Y,Z,te,J){S.pageView||(S.pageView=0),S.lastView||(S.lastView=""),S.options=S.options||{},S.options.terms=(S.options.terms||[]).filter(ce=>ce),S._id=O||"",S._source=Z,S._broken=!O,S._name=O||Z||"(unnamed)",S._fallbackLabel=S._type==="gist"?"Gist "+(O||Z||"without an ID"):Z||Y||S._name,S._label=S.projectName||S._fallbackLabel,S._editUrl=O?te:null,S._viewUrl=O?J:null,S._broken&&(S.status="error",S.statusMessage="incomplete_record"),S._statusKey=f(S.status);let re=S.anonymizeDate||S.lastView;return S._stale=S._statusKey==="progress"&&!!re&&Date.now()-new Date(re).getTime()>w,S.status==="expired"||S.status==="expiring"?S._expiry={kind:"expired",date:S.options.expirationDate}:S.status!=="ready"?S._expiry={kind:"none"}:S.options.expirationMode==="never"||!S.options.expirationDate?S._expiry={kind:"never"}:S._expiry={kind:"date",date:S.options.expirationDate},S}function g(S){return t.get(S).then(O=>O.data||[],O=>(console.error(O),[]))}function C(){return e.loading=!0,r.all([g("/api/user/anonymized_repositories"),g("/api/user/anonymized_pull_requests"),g("/api/user/anonymized_gists")]).then(S=>{let O=S[0],Y=S[1],Z=S[2],te=[];O.forEach(J=>{J._type="repo";let re=J.source||{};te.push(y(J,J.repoId,J.repoId,re.fullName,"/anonymize/"+J.repoId,"/r/"+J.repoId+"/"))}),Y.forEach(J=>{J._type="pr";let re=J.source||{};te.push(y(J,J.pullRequestId,J.pullRequestId,re.repositoryFullName?re.repositoryFullName+"#"+re.pullRequestId:void 0,"/pull-request-anonymize/"+J.pullRequestId,"/pr/"+J.pullRequestId+"/"))}),Z.forEach(J=>{J._type="gist";let re=J.source||{};te.push(y(J,J.gistId,J.gistId,re.gistId,"/gist-anonymize/"+J.gistId,"/gist/"+J.gistId+"/"))}),e.items=te,e.loading=!1})}let R=0,T=!1;e.dashboardCursor=null,e.dashboardError="";function I(S){let O=S.source||{};return S._type==="repo"?y(S,S.repoId,S.repoId,O.fullName,"/anonymize/"+S.repoId,"/r/"+S.repoId+"/"):S._type==="pr"?y(S,S.pullRequestId,S.pullRequestId,O.repositoryFullName?O.repositoryFullName+"#"+O.pullRequestId:void 0,"/pull-request-anonymize/"+S.pullRequestId,"/pr/"+S.pullRequestId+"/"):y(S,S.gistId,S.gistId,O.gistId,"/gist-anonymize/"+S.gistId,"/gist/"+S.gistId+"/")}function F(S=!1){if(T)return C();let O=++R;return e.loading=!S,e.loadingMore=S,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(Y=>e.filters.status[Y]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:S?e.dashboardCursor:void 0}}).then(Y=>{if(O===R){if(!Array.isArray(Y.data?.items))return T=!0,C();e.items=(S?e.items:[]).concat(Y.data.items.map(I)),e.dashboardCursor=Y.data.cursor,e.dashboardTotals=Y.data}},Y=>{if(O===R){if(Y.status===404)return T=!0,C();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{O===R&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>F(!0);let P;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{T||(P&&a.timeout.cancel(P),P=a.timeout(()=>F(),150))},!1),e.watch("filters",()=>{T||F()},!0,!1),e.on("dispose",()=>{R++}),F(),e.openItem=(S,O)=>{if(!S._viewUrl)return;let Y=O&&O.target;Y&&Y.closest&&Y.closest("a, button, .dropdown, input")||(s.location.href=S._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(S=>e.filters.status[S]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(S=>e.filters.status[S]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.hiddenStatusCount()>1,e.clearFilters=()=>{e.projectView="all",e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(S=>{e.filters.status[S]=!0})};function M(S,O,Y,Z){t.get("/api/repo/"+S).then(async te=>{let J=Z!==void 0&&Z!==te.data.status;for(let re of e.items)if(re._type==="repo"&&re.repoId==S){J=J||re.status!==te.data.status;let ce=e.needsAttention(re);re.status=te.data.status,re.statusMessage=te.data.statusMessage,re._statusKey=f(re.status),re._statusKey!=="progress"&&(re._stale=!1);let fe=e.needsAttention(re);e.dashboardTotals&&ce!==fe&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(fe?1:-1)));break}if(J&&!T){e.dashboardCursor=null;let re=e.selectedProject;await F(),re&&e.selectedProject===re&&(e.selectedProject=e.items.find(ce=>ce._type===re._type&&ce._id===re._id)||null)}if(te.data.status=="ready"||te.data.status=="error"||te.data.status=="removed"||te.data.status=="expired"){O(te.data);return}a.timeout(()=>M(S,O,Y,te.data.status),2500)},Y)}let se=S=>S==="repo"?"repository":S==="gist"?"gist":"pull request",oe=S=>S==="repo"?"/api/repo":S==="gist"?"/api/gist":"/api/pr";e.removeItem=S=>{let O=se(S._type);if(confirm(`Are you sure that you want to remove the ${O} ${S._id}?`)){let Y=ze({title:`Removing ${S._id}...`,date:new Date,body:`The ${O} ${S._id} is going to be removed.`});e.addToast(Y);let Z=`${oe(S._type)}/${S._id}`;t.delete(Z).then(()=>{S._type==="repo"?M(S._id,()=>{Y.title=`${S._id} is removed.`,Y.body=`The ${O} ${S._id} is removed.`},void 0,S.status):(Y.title=`${S._id} is removed.`,Y.body=`The ${O} ${S._id} is removed.`,F())},te=>{Y.title=`Error during the removal of ${S._id}.`,Y.body=te.body,F()})}},e.refreshItem=S=>{let O=se(S._type),Y=ze({title:`Refreshing ${S._id}...`,date:new Date,body:`The ${O} ${S._id} is going to be refreshed.`});e.addToast(Y);let Z=J=>{Y.title=`Error during the refresh of ${S._id}.`,Y.body=J.data?.error||J.body||"The refresh could not be completed. Please try again.",F()},te=`${oe(S._type)}/${S._id}/refresh`;t.post(te).then(()=>{S._type==="repo"?M(S._id,J=>{if(J.status!=="ready"){Z({body:J.statusMessage||`The repository is ${J.status}.`});return}Y.title=`${S._id} is refreshed.`,Y.body=`The ${O} ${S._id} is refreshed.`},Z,S.status):(Y.title=`${S._id} is refreshed.`,Y.body=`The ${O} ${S._id} is refreshed.`,F())},Z)},e.extendItem=S=>{let O=se(S._type),Y=ze({title:`Extending ${S._id}...`,date:new Date,body:`The expiration of ${O} ${S._id} is going to be extended by 6 months.`});e.addToast(Y);let Z=`${oe(S._type)}/${S._id}/extend`;t.post(Z).then(()=>{S._type==="repo"?M(S._id,()=>{Y.title=`${S._id} is extended.`,Y.body=`The expiration of ${O} ${S._id} is extended by 6 months.`},void 0,S.status):(Y.title=`${S._id} is extended.`,Y.body=`The expiration of ${O} ${S._id} is extended by 6 months.`,F())},te=>{Y.title=`Error during the extension of ${S._id}.`,Y.body=te.data&&te.data.error||te.body,F()})},e.itemFilter=S=>{if(e.projectView==="attention"&&!e.needsAttention(S)||e.typeFilter!=="all"&&S._type!==e.typeFilter||e.filters.status[S._statusKey]===!1)return!1;let O=e.search.trim().toLowerCase();return!!(O.length==0||S._label&&String(S._label).toLowerCase().indexOf(O)>-1||S._source&&String(S._source).toLowerCase().indexOf(O)>-1||S._id&&String(S._id).toLowerCase().indexOf(O)>-1||S.conference&&String(S.conference).toLowerCase().indexOf(O)>-1)}};var nl=function(e,t,n){let r=ct();e.repoId=n.repoId,e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let s=null;e.copyShareUrl=async()=>{try{await Qa(e.shareUrl),e.copied=!0,s&&r.timeout.cancel(s),s=r.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}};var i=null;let a=null,u=!1;function f(h){e.rateLimitResetAt=h,i&&r.interval.cancel(i);function k(){var m=Math.max(0,Math.ceil((h-Date.now())/1e3));if(m<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,r.interval.cancel(i),i=null;else{var E=Math.floor(m/60),y=m%60;e.rateLimitCountdown=E>0?E+"m "+y+"s":y+"s"}}k(),i=r.interval(k,1e3)}e.on("dispose",function(){u=!0,i&&r.interval.cancel(i),a&&r.timeout.cancel(a)});function w(h){if(!h)return h;var k=h.match(/^rate_limited:(\d+)$/);return k?(f(parseInt(k[1],10)),null):(e.rateLimitResetAt=0,h)}e.getStatus=()=>{u||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(h=>{if(!u){e.repo=h.data,h.data.rateLimitResetAt?f(h.data.rateLimitResetAt):e.repo.statusMessage=w(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var k=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(k=!1),k&&(a=r.timeout(e.getStatus,2e3))}},h=>{e.error=h.data.error})},e.getStatus()},is=function(e,t,n,r,s,i,a){e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let u=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!u?.matches,u?.addEventListener&&Zt()(u,"change",_=>{e.mobileWorkspace=_.matches}),e.selectMobilePane=_=>{e.mobilePane=_};let f=0,w=!1,h=new Set,k=(_,V=!1)=>!w&&_.generation===f&&_.url===e.sourceUrl.trim()&&_.connection===e.githubConnection&&(!V||_.branch===e.source.branch),m=()=>{let _={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return h.add(_),e.sourceLoading=!0,_},E=_=>{h.delete(_),w||(e.sourceLoading=[...h].some(V=>k(V)))};e.on("dispose",()=>{w=!0,f++});let y=null,g=_=>_.gistId&&!_.repo?"gist:"+_.gistId.toLowerCase():(_.owner+"/"+_.repo).toLowerCase()+(_.pullRequestId?"/pull/"+_.pullRequestId:""),C=ir(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(s.path?.()||""));e.discardDraft=async()=>{C.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(f++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",re.cancel(),_e.cancel(),Pe.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let R=()=>{let _={};for(let V of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])_[V]=e[V];sessionStorage.setItem("github-access-draft",JSON.stringify({path:s.path(),savedAt:Date.now(),draft:_}))};e.connectGistApp=()=>{R(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(s.path())},e.connectGistOAuth=()=>{R(),window.location.href="/github/login?returnTo="+encodeURIComponent(s.path())},e.grantGitHubAccess=()=>{R();let _=s.path(),V=se(e.sourceUrl)||"",B=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=B+"?returnTo="+encodeURIComponent(_)+"&repository="+encodeURIComponent(V)+"&install=1"},e.chooseGitHubConnection=async _=>{e.githubConnection=_,e.readme="",e.sourceUrl&&await S()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function T(){let _=new Date;return _.setMonth(_.getMonth()+6),_}e.options.expirationDate=T();function I(_){let V=_.getFullYear(),B=String(_.getMonth()+1).padStart(2,"0"),L=String(_.getDate()).padStart(2,"0");return`${V}-${B}-${L}`}e.minExpirationDate=I(new Date);let F=new Date;F.setFullYear(F.getFullYear()+1),e.maxExpirationDate=I(F),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1;function P(_){t.get("/api/user/default").then(V=>{let B=V.data;B.terms&&(e.defaultTerms=B.terms.join(`
-`)),e.options=Object.assign({},e.options,B.options),e.options.expirationDate=B.options&&B.options.expirationDate?new Date(B.options.expirationDate):T(),!r.repoId&&!r.pullRequestId&&!r.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),_&&_()})}function M(_,V,B){e.anonymize&&e.anonymize[_]&&e.anonymize[_].setValidity(V,B)}function se(_){try{let V=parseGithubUrl(_);if(V&&V.owner&&V.repo)return V.owner+"/"+V.repo}catch{}return null}e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await Y()}catch{}}};function oe(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:se(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function S(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function O(){let _;try{_=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!_||_.path!==s.path()||Date.now()-_.savedAt>=30*6e4)return C.restore()?(e.sourceUrl&&await S(),!0):!1;C.restore();for(let V of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(_.draft,V)&&(e[V]=_.draft[V]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await S(),sessionStorage.removeItem("github-access-draft"),!0}P(()=>{!r.repoId&&!r.pullRequestId&&!r.gistId&&a(O,0),r.repoId&&r.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=r.repoId,t.get("/api/repo/"+e.repoId).then(async _=>{e.githubConnection=_.data.connection||"oauth",e.sourceUrl="https://github.com/"+_.data.source.fullName,e._originalFullName=_.data.source.fullName,e.terms=_.data.options.terms.filter(V=>V).join(`
-`),e.source=_.data.source,e.role=_.data.role||"owner",e.coauthors=_.data.coauthors||[],e._originalBranch=_.data.source.branch,e.options=Object.assign({},e.options,_.data.options),e.conference=_.data.conference,e._originalConference=_.data.conference,e.repositoryID=_.data.source.repositoryID,e._originalRepositoryID=_.data.source.repositoryID,_.data.options.expirationDate&&(e.options.expirationDate=new Date(_.data.options.expirationDate)),y=g(parseGithubUrl(e.sourceUrl)),!await O()&&(await Promise.all([Y(),Z()]),ce())},()=>{s.url("/404")})),r.pullRequestId&&r.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=r.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async _=>{if(e.githubConnection=_.data.connection||"oauth",e.sourceUrl="https://github.com/"+_.data.source.repositoryFullName+"/pull/"+_.data.source.pullRequestId,e.terms=_.data.options.terms.filter(V=>V).join(`
-`),e.source=_.data.source,e.options=Object.assign({},e.options,_.data.options),e.conference=_.data.conference,e._originalConference=_.data.conference,_.data.options.expirationDate&&(e.options.expirationDate=new Date(_.data.options.expirationDate)),y=g(parseGithubUrl(e.sourceUrl)),!await O())try{await fe()}catch{}},()=>{s.url("/404")})),r.gistId&&r.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=r.gistId,t.get("/api/gist/"+e.gistId).then(async _=>{e.sourceUrl="https://gist.github.com/"+_.data.source.gistId,e.terms=_.data.options.terms.filter(V=>V).join(`
-`),e.source=_.data.source,e.options=Object.assign({},e.options,_.data.options),e.conference=_.data.conference,e._originalConference=_.data.conference,_.data.options.expirationDate&&(e.options.expirationDate=new Date(_.data.options.expirationDate)),y=g(parseGithubUrl(e.sourceUrl)),!await O()&&await Ue()},()=>{s.url("/404")}))}),t.get("/github/connections").then(_=>{e.githubConnections=_.data,!r.repoId&&!r.pullRequestId&&!r.gistId&&e.githubConnection===void 0&&_.data.appEnabled&&_.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&S())}).catch(()=>{}),e.urlSelected=async(_=!1)=>{let V=++f,B;try{B=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,re.cancel(),_e.cancel(),Pe.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",M("sourceUrl","github",!1);return}let L=g(B),v=_||y===L;y=L,e.sourceUrlError="",M("sourceUrl","github",!0);let N=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,N&&a(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!v&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],v||(e.source={type:"GitHubStream",branch:"",commit:""}),re.cancel(),_e.cancel(),Pe.cancel(),le.clear(),Re.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=v;try{B.gistId&&!B.repo?(e.detectedType="gist",e.source={gistId:B.gistId},await Ue()):B.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:B.owner+"/"+B.repo,pullRequestId:B.pullRequestId},await fe()):(e.detectedType="repo",await Promise.all([Y(),Z()]),ce())}catch{}finally{V===f&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let _=e.branches.filter(B=>B.name==e.source.branch)[0];if(!_)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=_.commit),e.readme=_.readme,await Z(),ce()}),e.getBranches=async _=>{let V=parseGithubUrl(e.sourceUrl),B=m();try{let L=await t.get(`/api/repo/${V.owner}/${V.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&r.repoId&&se(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:_===!0||e.reconnectingSource?"1":"0",repositoryID:oe()}});if(!k(B))return;e.branches=L.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let v=e.branches.filter(N=>N.name==e.source.branch);v.length>0&&(!(!e.reconnectingSource&&!_&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=v[0].commit),e.readme=v[0].readme,await Z(_))}catch(L){if(!k(B))return;e.branches=[],e.sourceUnreachable=L&&(L.status===404||L.data&&L.data.error==="repo_not_found");let v=L&&L.data&&L.data.error||(L&&L.status===404?"repo_not_found":"unknown_error");i("ERRORS."+v).then(N=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:N}),e.error=N},console.error),typeof M=="function"&&M("sourceUrl","missing",!1)}finally{E(B)}};async function Y(){let _=parseGithubUrl(e.sourceUrl),V=m();try{z();let B=await t.get(`/api/repo/${_.owner}/${_.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&r.repoId&&se(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,repositoryID:oe(),force:"1"}});if(!k(V))return;e.details=B.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(B){if(!k(V))return;throw B.data&&(i("ERRORS."+B.data.error).then(L=>{e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),Q(B.data.error)),M("sourceUrl","missing",!1),B}finally{E(V)}}async function Z(_){if(e.readme&&!_)return e.readme;let V=parseGithubUrl(e.sourceUrl),B=m();try{let L=await t.get(`/api/repo/${V.owner}/${V.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&r.repoId&&se(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:_===!0?"1":"0",branch:e.source.branch,repositoryID:oe()}});k(B,!0)&&(e.readme=L.data)}catch{k(B,!0)&&(e.readme="")}finally{E(B)}}function te(){let _={terms:e.terms?e.terms.split(`
-`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(_.branchName=e.source.branch);try{let V=parseGithubUrl(e.sourceUrl);_.repoName=`${V.owner}/${V.repo}`}catch{}return _}function J(_,V,B){let L=null,v=0,N=()=>{if(e.detectedType!==_)return;L&&a.cancel(L);let q=++v;e.previewStatus="loading",L=a(()=>{L=null;let H=V();if(!H){e.previewStatus="idle";return}t.post("/api/anonymize-preview",H).then(j=>{q===v&&(B(j.data,H),e.previewStatus="ready")}).catch(()=>{q===v&&(e.previewStatus="error")})},200)};return N.cancel=()=>{v++,L&&a.cancel(L),L=null},e.on("dispose",N.cancel),N}e.retryPreview=()=>{e.detectedType==="repo"&&re(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()};let re=J("repo",()=>e.readme?{content:e.readme,options:te()}:null,_=>{if(typeof _?.content!="string")throw Error("Invalid preview response");e.anonymize_readme=_.content;let V="";try{let L=parseGithubUrl(e.sourceUrl),v=e.source.branch||e.details&&e.details.defaultBranch||"main";V=`https://github.com/${L.owner}/${L.repo}/raw/${v}/`}catch{}let B=renderMD(e.anonymize_readme,V);e.html_readme=B,a(Prism.highlightAll,150)});function ce(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),re())}async function fe(){let _=parseGithubUrl(e.sourceUrl),V=m();try{z();let B=await t.get(`/api/pr/${_.owner}/${_.repo}/${_.pullRequestId}`,{params:{connection:e.githubConnection}});if(!k(V))return;e.details=B.data,e.pullRequestId||(e.pullRequestId=_.repo+"-PR"+_.pullRequestId+"-"+generateRandomId(4))}catch(B){if(!k(V))return;throw B.data&&(i("ERRORS."+B.data.error).then(L=>{e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),Q(B.data.error)),M("sourceUrl","missing",!1),B}finally{E(V)}}let le=ze(new Map);function Oe(){let _=new Set,V=e.details&&e.details.pullRequest;if(!V)return _;typeof V.title=="string"&&_.add(V.title),typeof V.body=="string"&&_.add(V.body),typeof V.diff=="string"&&_.add(V.diff);let B=V.comments||[];for(let L of B)typeof L.author=="string"&&_.add(L.author),typeof L.body=="string"&&_.add(L.body);return _}let _e=J("pr",()=>{let _=Oe(),V=Array.from(_);return V.length===0?null:{contents:V,options:te()}},(_,V)=>{if(!Array.isArray(_?.contents)||_.contents.length!==V.contents.length||_.contents.some(v=>typeof v!="string"))throw Error("Invalid preview response");let B=V.contents,L=new Map;for(let v=0;vle.set(N,v))});e.anonymizePrContent=function(_){return _&&(le.has(_)?le.get(_):"")};async function Ue(){let _=parseGithubUrl(e.sourceUrl),V=m();try{z(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let B=await t.get(`/api/gist/source/${_.gistId}`);if(!k(V))return;e.details=B.data,e.gistId||(e.gistId="gist-"+_.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(B){if(!k(V))return;if(B.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,M("sourceUrl","missing",!1);return}if(B.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,M("sourceUrl","missing",!1);return}throw B.data&&(i("ERRORS."+B.data.error).then(L=>{e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),Q(B.data.error)),M("sourceUrl","missing",!1),B}finally{E(V)}}let Re=ze(new Map);function Me(){let _=new Set,V=e.details&&e.details.gist;if(!V)return _;typeof V.description=="string"&&_.add(V.description),typeof V.ownerLogin=="string"&&_.add(V.ownerLogin);let B=V.files||[];for(let v of B)typeof v.filename=="string"&&_.add(v.filename),typeof v.content=="string"&&_.add(v.content);let L=V.comments||[];for(let v of L)typeof v.author=="string"&&_.add(v.author),typeof v.body=="string"&&_.add(v.body);return _}let Pe=J("gist",()=>{let _=Me(),V=Array.from(_);return V.length===0?null:{contents:V,options:te()}},(_,V)=>{if(!Array.isArray(_?.contents)||_.contents.length!==V.contents.length||_.contents.some(v=>typeof v!="string"))throw Error("Invalid preview response");let B=V.contents,L=new Map;for(let v=0;vRe.set(N,v)),He()});e.anonymizeGistContent=function(_){return _&&(Re.has(_)?Re.get(_):"")},e.previewGistFiles=[];function He(){let _=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=_.map(V=>({filename:e.anonymizeGistContent(V.filename),content:e.anonymizeGistContent(V.content),language:V.language}))}e.watch("details.gist.files",He,!0),e.watch("terms",He);function Ee(){let _=e.conference;if(e.conference_data=null,!_)return;let V=e.isUpdate&&_===e._originalConference;t.get("/api/conferences/"+_).then(B=>{e.conference===_&&(e.conference_data=B.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!V&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===_&&(e.conference_data=null)})}function z(){M("repoId","used",!0),M("repoId","format",!0),M("pullRequestId","used",!0),M("pullRequestId","format",!0),M("gistId","used",!0),M("gistId","format",!0),M("sourceUrl","used",!0),M("sourceUrl","missing",!0),M("sourceUrl","access",!0),M("sourceUrl","github",!0),M("commit","exists",!0),M("conference","activated",!0),M("terms","format",!0),e.termsRegexWarning=!1}function ne(){let _=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||_&&_.invalid?(_&&_.setDirty&&_.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function Q(_){let V=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(_){case"repoId_already_used":M(V,"used",!1);break;case"invalid_repoId":M(V,"format",!1);break;case"options_not_provided":M(V,"format",!1);break;case"repo_already_anonymized":M("sourceUrl","used",!1);break;case"invalid_terms_format":M("terms","format",!1);break;case"repo_not_found":M("sourceUrl","missing",!1);break;case"repo_not_accessible":M("sourceUrl","access",!1);break;case"commit_not_found":M("commit","exists",!1);break;case"conf_not_activated":M("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let _=(e.coauthorSearch||"").trim();if(e.coauthorError="",_.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:_}}).then(V=>{let B=new Set((e.coauthors||[]).map(L=>(L.username||"").toLowerCase()));e.coauthorResults=(V.data||[]).filter(L=>!B.has((L.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(_,V)=>{V&&V.preventDefault(),!(!_||!_.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:_.username}).then(B=>{e.coauthors=B.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},B=>{let L=B&&B.data&&B.data.error||"unknown_error";e.coauthorError=L})},e.removeCoauthor=_=>{!_||!_.username||confirm("Remove co-author "+_.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(_.username)).then(V=>{e.coauthors=V.data||[]},V=>{let B=V&&V.data&&V.data.error||"unknown_error";e.coauthorError=B})},e.anonymizeRepo=_=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId||ne())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let V=_.currentTarget||_.target.closest?.("button")||_.target;V.disabled=!0;let B=parseGithubUrl(e.sourceUrl),L={repoId:e.repoId,terms:e.terms.trim().split(`
-`).filter(N=>N),connection:e.githubConnection,fullName:`${B.owner}/${B.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(L.options.pageSource=e.details.pageSource),z();let v=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(v,L,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/status/"+e.repoId},N=>{N.data&&(i("ERRORS."+N.data.error).then(q=>{e.error=q},console.error),Q(N.data.error))}).finally(()=>{V.disabled=!1})},e.anonymizeGist=_=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(ne())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let V=_.currentTarget||_.target.closest?.("button")||_.target;V.disabled=!0;let B=parseGithubUrl(e.sourceUrl),L={gistId:e.gistId,terms:e.terms.trim().split(`
-`).filter(N=>N),source:{gistId:B.gistId},options:e.options,conference:e.conference};z();let v=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(v,L,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/gist/"+e.gistId},N=>{N.data&&(i("ERRORS."+N.data.error).then(q=>{e.error=q},console.error),Q(N.data.error))}).finally(()=>{V.disabled=!1})},e.anonymizePullRequest=_=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(ne())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let V=_.currentTarget||_.target.closest?.("button")||_.target;V.disabled=!0;let B=parseGithubUrl(e.sourceUrl),L={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(`
-`).filter(N=>N),source:{repositoryFullName:`${B.owner}/${B.repo}`,pullRequestId:B.pullRequestId},options:e.options,conference:e.conference};z();let v=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(v,L,{headers:{"Content-Type":"application/json"}}).then(()=>{C.clear(),window.location.href="/pr/"+e.pullRequestId},N=>{N.data&&(i("ERRORS."+N.data.error).then(q=>{e.error=q},console.error),Q(N.data.error))}).finally(()=>{V.disabled=!1})},e.watch("conference",()=>{Ee()}),e.watch("terms",()=>{e.detectedType==="repo"&&ce(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()}),e.watch("options.image",()=>{e.detectedType==="repo"&&ce(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()}),e.watch("options.link",()=>{e.detectedType==="repo"&&ce(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()}),e.watch("details",()=>{e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()},!0)},ar=function(e,t,n,r,s,i){let a=ct();window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",O=>Ya(O.element)),window.Prism.redactionHook=!0);let u=Zt();e.on("dark-mode",(O,Y)=>{e.aceOption&&(Y?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome")});let f=0,w=!1;e.on("dispose",()=>{w=!0,f++,h&&h.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,u(document,"keydown",function(O){if((O.metaKey||O.ctrlKey)&&O.key==="k"){O.preventDefault();var Y=document.querySelector(".tree-search-input");Y&&(Y.focus(),Y.select())}});var h=null;e.onFileSearchChange=function(){h&&(h.resolve(),h=null);let O=e.fileSearchQuery;if(!O||O.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let Y=i.defer();h=Y,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(O)}`,{timeout:Y.promise}).then(function(Z){if(!(w||h!==Y)){h=null,e.fileSearchLoading=!1;var te={};e.files.forEach(function(z){te[(z.path||"")+"/"+z.name]=!0});for(var J=[],re={},ce=0;ce0&&e.files.push.apply(e.files,J);for(var Me=[],Pe=0;Pe0&&e.files.push.apply(e.files,Me),e.fileSearchResults=Z.data}},function(){!w&&h===Y&&(h=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let k={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},m=["license","txt"],E=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],y=["wav","mp3","ogg","wma","flac","aac","m4a"],g=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(O,Y){if(e.repoId!=r.repoId)return S();if((r.path||"")!=e.filePath){e.filePath=r.path||"",e.paths=e.filePath.split("/").filter(Z=>Z&&Z.trim().length>0),oe();for(let Z=0;Z0?e.paths.slice(0,Z).join("/"):"";e.files.some(re=>re.path===te)||e.getFiles(te)}}});function C(){if(e.paths[0]!="")return;let O=["readme.md","readme.txt","readme.org","readme.1st","readme"],Y={};for(let te of e.files)te.name.toLowerCase().indexOf("readme")>-1&&(Y[te.name.toLowerCase()]=te.name);let Z=null;for(let te of O)if(Y[te]){Z=te;break}if(!Z&&Object.keys(Y).length>0&&(Z=Object.keys(Y)[0]),Z){let te=n.url();te[te.length-1]!="/"&&(te+="/"),n.url(te+encodePathForUrl(Y[Z]))}}e.fileCounts=null,e.getFiles=function(O){let Y=e.repoId;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(O)}&v=${e.options.lastUpdateDate}`).then(function(Z){if(w||Y!==e.repoId)return[];let te=O||"";return e.files=e.files.filter(J=>J.path!==te),e.files.push(...Z.data),Z.data},function(Z){if(w||Y!==e.repoId)return[];e.type="error",e.content=Z&&Z.data&&Z.data.error||"unknown_error",e.files=[]})};function R(){let O=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts`).then(function(Y){w||O!==e.repoId||(e.fileCounts=Y.data)},function(){e.fileCounts={}})}function T(){return e.files.filter(O=>O.name==e.paths[e.paths.length-1]&&O.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var I=null;e.on("dispose",function(){I&&a.interval.cancel(I)});function F(O){if(w)return;let Y=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(Z=>{if(!(w||Y!==e.repoId)){if(e.options=Z.data,e.options.url){window.location=e.options.url;return}O&&O(Z.data)}},Z=>{if(!(w||Y!==e.repoId)){var te=Z.data||{};if(te.error==="rate_limited"&&te.resetAt){let re=function(){var ce=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(ce<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,I&&(a.interval.cancel(I),I=null),F(O);else{var fe=Math.floor(ce/60),le=ce%60;e.rateLimitCountdown=fe>0?fe+"m "+le+"s":le+"s"}};var J=re;e.type="rate_limited",e.rateLimitResetAt=te.resetAt,I&&a.interval.cancel(I),re(),I=a.interval(re,1e3)}else te.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){F(O)},3e3)):(e.type="error",e.content=te.error)}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};function P(O){return k[O]?k[O]:O}function M(O){return O=="pdf"?"pdf":O=="html"||O=="htm"?"html-doc":O=="md"?"md":O=="org"?"org":O=="ipynb"?"IPython":m.indexOf(O)>-1?"text":E.indexOf(O)>-1?"image":g.indexOf(O)>-1?"media":y.indexOf(O)>-1?"audio":"code"}function se(O,Y){let Z=f;if(!O){e.type="error",e.content="no_file_selected";return}let te=e.type;e.type="loading",e.content="loading";let J=Y&&Y.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(O)}?v=`+J,{transformResponse:re=>re}).then(re=>{if(!(w||Z!==f)){if(e.type=te,e.content=re.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(re.data,n.url()+"/../"),e.type="html"),e.type=="org"){let fe=contentAbs2Relative(re.data);var ce=new Org.Parser().parse(fe).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(ce.toString()),e.type="html"}e.type=="code"&&re.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},re=>{if(!(w||Z!==f)){e.type="error",e.content="unknown_error";try{re.data=JSON.parse(re.data),re.data.error?e.content=re.data.error:e.content=re.data}catch{console.log(re),re.status==-1?e.content="request_error":re.status==502&&(e.content="unreachable")}}})}function oe(){f++,e.content="",e.file=T();let O="0";e.file&&e.file.sha&&(O=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${O}`;let Y=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${Y?encodePathForUrl(Y):""}`,e.showSource=!1,e.allowScripts=!1;let Z=e.filePath.toLowerCase(),te=Z.lastIndexOf(".");if(te>-1&&(Z=Z.substring(te+1)),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!0,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:P(Z),onLoad:function(J){let re=ace.require("ace/range").Range,ce=null;function fe(Ee,z){ce!==null&&(J.session.removeMarker(ce),ce=null),Ee!=null&&(ce=J.session.addMarker(new re(Ee,0,z,1),"highlighted-line","fullLine"))}function le(Ee){let z=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!z){fe(null);return}let ne=parseInt(z[1])-1,Q=z[2]?parseInt(z[2])-1:ne;fe(ne,Q),Ee&&a.timeout(()=>{J.scrollToLine(ne,!0,!0,function(){})},100)}le(!0);let Oe=null;J.on("guttermousedown",function(Ee){let z=Ee.getDocumentPosition().row,ne=Ee.domEvent&&Ee.domEvent.shiftKey,Q=z,_=z;ne&&Oe!==null?(Q=Math.min(Oe,z),_=Math.max(Oe,z)):Oe=z;let V=Q===_?`#L${Q+1}`:`#L${Q+1}-L${_+1}`,B=window.location.pathname+window.location.search+V;window.history.replaceState(null,"",B),fe(Q,_),Ee.stop()});let _e=u(window,"hashchange",()=>le(!1));J.setFontSize(e.aceOption.fontSize),J.setReadOnly(e.aceOption.readOnly),J.setKeyboardHandler(e.aceOption.keyBinding),J.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),J.setOption("displayIndentGuides",!0),J.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(J.renderer.$cursorLayer.element.style.display="none"),J.setHighlightGutterLine(e.aceOption.highlightGutterLine),J.setShowInvisibles(e.aceOption.showInvisibles),J.setDisplayIndentGuides(e.aceOption.showIndentGuides),J.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),J.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),J.session.setUseSoftTabs(e.aceOption.useSoftTab),J.session.setTabSize(e.aceOption.tabSize);let Ue=window.matchMedia("(max-width: 991px)"),Re=()=>J.session.setUseWrapMode(e.aceOption.useWrapMode&&Ue.matches);Re(),Ue.addEventListener?.("change",Re),J.setBehavioursEnabled(e.aceOption.enableBehaviours),J.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let Me=[],Pe=()=>{Me.forEach(ne=>J.session.removeMarker(ne)),Me=[];let Ee=Ka();if(!Ee)return;J.session.getDocument().getAllLines().forEach((ne,Q)=>{for(let _ of ne.matchAll(Ee))Me.push(J.session.addMarker(new re(Q,_.index,Q,_.index+_[0].length),"ace_redaction","text"))})};Pe(),J.session.on("change",()=>a.timeout(Pe,0));let He=e.on("site-options",Pe);return()=>{_e(),He(),Ue.removeEventListener?.("change",Re)}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=M(Z),e.type=="pdf"){e.content="pdf";return}se(e.filePath,e.file)}function S(){f++,e.files=[],e.content=null,e.fileCounts=null,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=r.repoId,e.type="loading",e.filePath=r.path||"",e.paths=e.filePath.split("/");let O=e.repoId;F(function(Y){R();var Z=i.resolve();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";Z=Z.then(function(){return e.getFiles(J)}).then(function(){if(e.type==="error")return i.reject("error")})}Z.then(function(){w||O!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(C(),oe()))})})}S()},sl=function(e,t,n,r,s){async function i(f){t.get(`/api/pr/${e.pullRequestId}/options`).then(w=>{if(e.options=w.data,e.options.url){window.location=e.options.url;return}f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}async function a(f){t.get(`/api/pr/${e.pullRequestId}/content`).then(w=>{e.details=w.data,e.tabState={active:w.data.diff?"diff":"comments"},f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}function u(){e.pullRequestId=r.pullRequestId,e.type="loading",i(f=>{a()})}u()},rl=function(e,t,n,r,s){async function i(f){t.get(`/api/gist/${e.gistId}/options`).then(w=>{if(e.options=w.data,e.options.url){window.location=e.options.url;return}f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}async function a(f){t.get(`/api/gist/${e.gistId}/content`).then(w=>{e.details=w.data;let h=w.data&&w.data.files&&w.data.files.length;e.tabState={active:h?"files":"comments"},f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}function u(){e.gistId=r.gistId,e.type="loading",i(()=>{a()})}u()},il=function(e,t,n){e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let r="conferences.filterPrefs",s={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},i=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},s.filters.status,i.filters&&i.filters.status||{})},e.orderBy=i.orderBy||s.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(a){if(!a.removing&&confirm(`Are you sure that you want to remove the conference ${a.name}? All the repositories linked to this conference will expire.`)){a.removing=!0;let u=ze({title:`Removing ${a.name}...`,date:new Date,body:`The conference ${a.name} is going to be removed.`});e.addToast(u),t.delete(`/api/conferences/${a.conferenceID}`).then(()=>{u.title=`${a.name} is removed.`,u.body=`The conference ${a.name} is removed.`,e.loadConferences()}).catch(()=>{u.title="Unable to remove conference",u.body="Please try again. The conference has not been removed."}).finally(()=>{a.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(a=>{e.conferences=a.data||[]},a=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=a=>{if(e.filters.status[a.status]==!1)return!1;let u=e.search.trim().toLowerCase();return!!(!u||(a.name||"").toLowerCase().includes(u)||(a.conferenceID||"").toLowerCase().includes(u))}},lr=function(e,t,n,r){e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.plans=[],e.editionMode=!1,e.saving=!1,e.error="";function s(){t.get("/api/conferences/"+r.conferenceId).then(h=>{e.options={...e.options,...h.data,billing:h.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}r.conferenceId&&(e.editionMode=!0,s());function i(){t.get("/api/conferences/plans").then(h=>{e.plans=h.data,e.plan=e.plans.filter(k=>k.id==e.options.plan.planID)[0]})}i();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let u=new Date(a);u.setMonth(a.getMonth()+7,0),e.options={billing:{},startDate:a,endDate:u,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(h=>h.id==e.options.plan.planID)[0]});function f(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function w(h){switch(h){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let h=JSON.parse(JSON.stringify(e.options)),k=ze({title:`Creating ${h.name}...`,date:new Date,body:`The conference ${h.conferenceID} is in creation.`});e.editionMode&&(k.title=`Updating ${h.name}...`,k.body=`The conference '${h.conferenceID}' is updating.`),e.addToast(k),f(),t.post("/api/conferences/"+(e.editionMode?h.conferenceID:""),h).then(()=>{e.editionMode?(k.title=`${h.name} updated`,k.body=`The conference '${h.conferenceID}' is updated.`):(k.title=`${h.name} created`,k.body=`The conference '${h.conferenceID}' is created.`),n.url("/conference/"+h.conferenceID)},m=>{w(m.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(k)}).finally(()=>{e.saving=!1})}},al=function(e,t,n,r){e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=i=>{if(e.filters.status[i.status]==!1)return!1;let a=e.search.trim().toLowerCase();return!!(!a||(i.source?.fullName||"").toLowerCase().includes(a)||(i.repoId||"").toLowerCase().includes(a))};function s(){t.get("/api/conferences/"+r.conferenceId).then(i=>{e.conference=i.data})}s()},ll=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let n=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=n.data.notificationEmail,e.user&&(e.user.notificationEmail=n.data.notificationEmail),e.emailSaved=!0}catch(n){e.connectionError=n.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(n=>{e.connections=n.data,e.notificationEmail=n.data.notificationEmail||""}).catch(n=>{e.connectionError=n.data?.error||"Unable to load connections."}),e.changeConnection=async(n,r,s)=>{e.busy=!0,e.connectionError="";try{let i=await t.post("/github/connections/migrate",{type:n.type,id:n.id,connection:r,preview:s},{headers:{"X-CSRF-Token":e.connections.csrf}});s?n.eligible=i.data.eligible:await e.loadConnections()}catch(i){e.connectionError=i.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(n){e.connectionError=n.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},dl=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(n=>{e.accountRecovery=n.data.required}).catch(()=>{})};var ul=function(e,t,n){let r=ct(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let i=y=>{if(y.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){y.preventDefault();let g=document.querySelector('.admin-filter-toolbar input[type="search"]');g&&g.focus()}};s(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=y=>{y==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[y]="",e.query.page=1},e.chips=[];let a=()=>{let y=[];e.query.owner&&y.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&y.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=y};e.showStatusMessage=y=>{let g=y.statusMessage||"(no message)";window.prompt(`Status message for ${y.repoId} (${y.status}):`,g)},e.fetchGithubInfo=y=>{let g=window.open("","_blank");g&&g.document.write("Loading GitHub info for "+y.repoId+"... "),t.get("/api/admin/repos/"+y.repoId+"/github").then(C=>{g&&(g.document.open(),g.document.write(''+JSON.stringify(C.data,null,2).replace(/[<>]/g,R=>R==="<"?"<":">")+" "),g.document.close())},C=>{let R=C&&C.data?JSON.stringify(C.data,null,2):String(C);g&&(g.document.body.innerHTML=''+R+" ")})},e.statusCountFor=y=>{let g=(e.statusCounts||[]).find(C=>C._id===y);return g?g.count:0},e.statusStorageFor=y=>{let g=(e.statusCounts||[]).find(C=>C._id===y);return g?g.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=y=>{e.query.sort===y?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=y,e.query.direction="desc"),e.query.page=1},e.sortIcon=y=>e.query.sort===y?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.repos.filterPrefs",f={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},w=loadFilterPrefs(u)||{};e.query=Object.assign({},f,w,{page:1,search:""});let h=n.search();h.owner&&(e.query.owner=h.owner),h.conference&&(e.query.conference=h.conference),h.search&&(e.query.search=h.search);let k="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(k)||"[]"),e.savePreset=()=>{let y=window.prompt("Preset name:");if(!y)return;let g=Object.assign({},e.query);delete g.page,e.presets=(e.presets||[]).filter(C=>C.name!==y),e.presets.push({name:y,query:g}),localStorage.setItem(k,JSON.stringify(e.presets))},e.applyPreset=y=>{Object.assign(e.query,y.query,{page:1})},e.deletePreset=y=>{e.presets=(e.presets||[]).filter(g=>g.name!==y.name),localStorage.setItem(k,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(y=>{e.selected[y.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(y=>e.selected[y.repoId]),e.bulkRefresh=()=>{let y=e.selectedRepos();y.length&&confirm(`Force refresh ${y.length} repositories?`)&&y.forEach(g=>e.updateRepository(g))},e.bulkRemoveCache=()=>{let y=e.selectedRepos();y.length&&confirm(`Purge cache for ${y.length} repositories?`)&&y.forEach(g=>e.removeCache(g))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let y=new URLSearchParams(Object.entries(e.query).filter(([,g])=>g!==""&&g!==!1&&g!=null));y.set("format","csv"),y.set("limit","10000"),window.open("/api/admin/repos?"+y.toString(),"_blank")},e.removeCache=y=>{confirm("Remove cached files for "+y.repoId+"?")&&t.delete("/api/admin/repos/"+y.repoId).then(()=>m(),g=>console.error(g))},e.removeRepository=y=>{confirm("Remove repository "+y.repoId+"?")&&t.delete("/api/repo/"+y.repoId+"/").then(()=>m(),g=>console.error(g))},e.updateRepository=y=>{let g=ze({title:`Refreshing ${y.repoId}...`,date:new Date,body:`The repository ${y.repoId} is going to be refreshed.`});e.toasts.push(g),t.post(`/api/repo/${y.repoId}/refresh`).then(C=>{C.data.status=="ready"?g.title=`${y.repoId} is refreshed.`:g.title=`Refreshing of ${y.repoId}.`},C=>{g.title=`Error during the refresh of ${y.repoId}.`,g.body=C.body})},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(y=>{e.total=y.data.total,e.totalPage=Math.ceil(y.data.total/e.query.limit),e.repositories=y.data.results,e.statusCounts=y.data.statusCounts||[],e.totalSize=y.data.totalSize||0,e.allSelected=!1},y=>{e.fetchError=y&&y.data&&y.data.error||"Failed to load repositories",console.error(y)})}m();let E=null;e.watch("query",()=>{r.timeout.cancel(E),E=r.timeout(m,500);let{page:y,search:g,...C}=e.query;saveFilterPrefs(u,C),a()},!0),a()},cl=function(e,t,n){let r=ct(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let i=m=>{if(m.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){m.preventDefault();let E=document.querySelector('.admin-filter-toolbar input[type="search"]');E&&E.focus()}};s(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=m=>{m==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[m]="",e.query.page=1},e.chips=[];let a=()=>{let m=[];e.query.role&&m.push({key:"role",label:"Role",value:e.query.role}),e.chips=m};e.statusCountFor=m=>{let E=(e.statusCounts||[]).find(y=>y._id===m);return E?E.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.query.page=1},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.users.filterPrefs",f={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},w=loadFilterPrefs(u)||{};e.query=Object.assign({},f,w,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(m=>{e.selected[m.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(m=>e.selected[m.username]),e.banUser=m=>{confirm(`Ban user ${m.username}?`)&&t.post(`/api/admin/users/${m.username}/ban`).then(h,E=>console.error(E))},e.activateUser=m=>{t.post(`/api/admin/users/${m.username}/activate`).then(h,E=>console.error(E))},e.bulkBan=()=>{let m=e.selectedUsers();m.length&&confirm(`Ban ${m.length} users?`)&&m.forEach(E=>e.banUser(E))},e.exportCsv=()=>{let m=new URLSearchParams(Object.entries(e.query).filter(([,E])=>E!==""&&E!==!1&&E!=null));m.set("format","csv"),m.set("limit","10000"),window.open("/api/admin/users?"+m.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(m=>{e.total=m.data.total,e.totalPage=Math.ceil(m.data.total/e.query.limit),e.users=m.data.results,e.statusCounts=m.data.statusCounts||[],e.allSelected=!1},m=>{e.fetchError=m&&m.data&&m.data.error||"Failed to load users",console.error(m)})}h();let k=null;e.watch("query",()=>{r.timeout.cancel(k),k=r.timeout(h,500);let{page:m,search:E,...y}=e.query;saveFilterPrefs(u,y),a()},!0),a()},pl=function(e,t,n,r){let s=ct();e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let i="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},u=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},a.filters.status,u.filters&&u.filters.status||{})},e.query={sort:u.sort||a.sort,direction:u.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=m=>(e.repositories||[]).filter(E=>E.status===m).length,e.repoFiler=m=>e.filters.status[m.status]==!1?!1:!!(e.search.trim().length==0||m.source.fullName.indexOf(e.search)>-1||m.repoId.indexOf(e.search)>-1||m.statusMessage&&m.statusMessage.indexOf(e.search)>-1||m.conference&&m.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(m=>{e.selected[m.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(m=>e.selected[m.repoId]),e.bulkRefresh=()=>{let m=e.selectedRepos();m.length&&confirm(`Force refresh ${m.length} repositories?`)&&m.forEach(E=>e.updateRepository(E))},e.bulkRemoveCache=()=>{let m=e.selectedRepos();m.length&&confirm(`Purge cache for ${m.length} repositories?`)&&m.forEach(E=>e.removeCache(E))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let m=e.filteredRepositories||e.repositories,y=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),g=m.map(T=>[T.repoId,T.status,T.statusMessage||"",T.pageView||0,T.anonymizeDate||"",T.source&&T.source.fullName||"",T.conference||"",T.size&&T.size.storage||0].map(I=>{let F=String(I??"");return/[",\n\r]/.test(F)?'"'+F.replace(/"/g,'""')+'"':F}).join(",")),C=new Blob([y+`
+`).map(m=>m.trim()).filter(m=>m.length>0),options:e.options};e.saving=!0,e.error=null,t.post("/api/user/default",k).then(()=>{a.accept(h),e.saving=!1,e.message=e.unsavedChanges?null:"Saved",f&&r.cancel(f),f=r(()=>{e.message=null},2500)},m=>{e.saving=!1;let E=m&&m.data&&m.data.error,y="Unable to save your defaults. Please try again.";Promise.all([n("ERRORS."+E),n("ERRORS.unknown_error")]).then(([g,_])=>{e.error=E&&g!==_?g:y},()=>{e.error=y})})},e.deleteAccount=()=>{confirm("Delete your account? All your anonymized repositories, gists, and pull requests will be removed, and your personal data will be erased. This cannot be undone.")&&(e.deletingAccount=!0,t.delete("/api/user").then(()=>{window.location.href="/"},()=>{e.deletingAccount=!1,e.deleteError="Unable to delete the account. Please try again."}))}},el=function(e,t,n){e.repoId=null,e.repoUrl=null,e.claim=()=>{t.post("/api/repo/claim",{repoId:e.repoId,repoUrl:e.repoUrl}).then(r=>{n.url("/dashboard")},r=>{e.error=r.data,e.claimForm.repoUrl.setValidity("not_found",!1),e.claimForm.repoId.setValidity("not_found",!1)})}},tl=function(e,t,n,r,s){e.user&&!e.user.status&&n.url("/dashboard"),e.watch("user.status",()=>{e.user&&!e.user.status&&n.url("/dashboard")}),e.features=[{key:"anonymize",num:"01",eyebrow:"Anonymize",title:"Double-anonymous,",accent:"your rules.",text:"Choose what reviewers may see: links, images, PDFs, notebooks, GitHub Pages. Add your own terms, with regex if you need it, and pick the expiration date.",cta:"Start an anonymization",href:"/anonymize",url:"anonymous.4open.science/anonymize",img:"/imgs/anonymize.png",alt:"The anonymize form: source repository, terms to redact, options and a live README preview"},{key:"review",num:"02",eyebrow:"Review",title:"Reviewers browse",accent:"the real thing.",text:"Highlighted source code, rendered PDFs, images, and notebooks, in a familiar file explorer. GitHub Pages is also supported.",cta:"Open the example",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/",target:"_self",url:"anonymous.4open.science/r/840c8c57-\u2026",img:"/imgs/explorer.png",alt:"The repository explorer with a file tree and a rendered README"},{key:"manage",num:"03",eyebrow:"Manage",title:"One dashboard,",accent:"until the decision.",text:"Monitor views, edit configuration, remove or update your repository. Program chairs can group submissions under a conference with one shared expiry.",cta:"Open the dashboard",href:"/dashboard",needsUser:!0,url:"anonymous.4open.science/dashboard",img:"/imgs/dashboard.png",alt:"The dashboard listing anonymized repositories with status, views and expiry"}],e.feature=e.features[0].key,e.selectFeature=function(u){e.feature=u},e.featureHref=function(u){return u.needsUser&&!e.user?"/signin":u.href},e.featureTarget=function(u){return u.needsUser&&!e.user?"_self":u.target||void 0},e.featureKeydown=function(u,f){let w={ArrowDown:1,ArrowRight:1,ArrowUp:-1,ArrowLeft:-1,Home:"first",End:"last"}[u.key];if(w===void 0)return;u.preventDefault();let h=e.features.length,k=w==="first"?0:w==="last"?h-1:(f+w+h)%h;e.feature=e.features[k].key,s(()=>{let m=r.document.getElementById("feature-tab-"+e.feature);m&&m.focus()})},e.cards=[{key:"repositories",total:0,label:"repositories anonymized"},{key:"users",total:0,label:"researchers"},{key:"pageViews",total:0,label:"page views"},{key:"pullRequests",total:0,label:"pull requests"}];function i(){t.get("/api/stat/").then(u=>{e.stat=u.data,e.cards[0].total=u.data.nbRepositories,e.cards[1].total=u.data.nbUsers,e.cards[2].total=u.data.nbPageViews,e.cards[3].total=u.data.nbPullRequests})}i();function a(u){let f={series:u,bars:[],viewW:100,deltaToday:0,pctChange:0,pctAbs:0,isUp:!0};if(!u||u.length<2)return f;let w=new Array(u.length-1);for(let g=1;g=2){let g=w[h-2];g&&(f.pctChange=(f.deltaToday-g)/g*100)}return f.pctAbs=Math.round(Math.abs(f.pctChange)),f.isUp=f.pctChange>=0,f}e.history={repositories:a([]),users:a([]),pageViews:a([]),pullRequests:a([])},t.get("/api/stat/history?days=60").then(u=>{let f=u.data||[];e.history={repositories:a(f.map(w=>w.nbRepositories||0)),users:a(f.map(w=>w.nbUsers||0)),pageViews:a(f.map(w=>w.nbPageViews||0)),pullRequests:a(f.map(w=>w.nbPullRequests||0))}})},ol=function(e,t,n,r,s,i){let a=ct();e.on("routeLeave",function(){$('[data-toggle="tooltip"]').tooltip("dispose")}),e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),a.timeout(()=>{$('[data-toggle="tooltip"]').tooltip()},250),e.quotaExpanded=!1,e.closeQuota=()=>{e.quotaExpanded=!1,nt(()=>document.querySelector(".dashboard-quota > summary")?.focus())},Zt()(document,"click",S=>{e.quotaExpanded&&!S.target.closest?.(".dashboard-quota")&&(e.quotaExpanded=!1)}),e.filtersExpanded=!1,e.projectView="all",e.selectedProject=null,e.projectName="",e.nameSaving=!1,e.nameError="",e.nameMessage="",e.needsAttention=S=>S.status==="error"||S._broken||f(S.status)==="progress"&&S._stale,e.attentionCount=()=>e.dashboardTotals?.attention??e.items.filter(e.needsAttention).length,e.hasProjects=()=>(e.dashboardTotals?.total??e.items.length)>0,e.setProjectView=S=>{e.projectView=S,S==="attention"&&(e.filters.status.error=!0,e.filters.status.progress=!0)},e.projectDetailsId=S=>"project-details-"+encodeURIComponent(S._type+":"+(S._id||S._source||"unknown")),e.showProjectDetails=async S=>{e.selectedProject=S,e.projectName=S.projectName||"",e.nameError="",e.nameMessage="",await nt();let O=document.getElementById(e.projectDetailsId(S));O?.focus(),O?.scrollIntoView?.({block:"nearest"})},e.closeProjectDetails=S=>{e.selectedProject=null,nt(()=>document.querySelector(`[data-project-actions="${encodeURIComponent(S._type+":"+S._id)}"]`)?.focus())},e.saveProjectName=async S=>{if(e.nameSaving||!S._id)return;let O=e.projectName.trim();if(O.length>100){e.nameError="Use 100 characters or fewer.";return}e.nameSaving=!0,e.nameError="",e.nameMessage="";try{let Y=await t.post("/api/user/project-name",{type:S._type,id:S._id,name:O});S.projectName=Y.data.name,S._label=S.projectName||S._fallbackLabel,e.selectedProject===S&&(e.nameMessage=O?"Project name saved.":"Default project name restored."),T||(e.dashboardCursor=null,await F(),e.selectedProject===S&&(e.selectedProject=e.items.find(Z=>Z._type===S._type&&Z._id===S._id)||null))}catch{e.selectedProject===S&&(e.nameError="The project name could not be saved. Try again.")}finally{e.nameSaving=!1}},e.copyingId=null,e.copyLink=async S=>{if(!S._viewUrl||e.copyingId)return;let O=new URL(S._viewUrl,s.location.origin).href;e.copyingId=S._type+":"+S._id;try{await Qa(O),e.addToast({title:"Link copied",body:"The anonymous link is ready to share."})}catch{e.addToast({title:"Copy this anonymous link",body:O})}finally{e.copyingId=null}},e.items=[],e.search="",e.loading=!0,e.statusKeyLabels={ready:"Ready",progress:"In progress",error:"Error",expired:"Expired",removed:"Removed"};let u=["queue","download","downloaded","preparing","anonymizing"];function f(S){return S==="ready"||S==="error"?S:S==="expired"||S==="expiring"?"expired":S==="removed"||S==="removing"?"removed":(u.indexOf(S)>-1,"progress")}let w=7200*1e3,h="dashboard.filterPrefs",k={typeFilter:"all",filters:{status:{ready:!0,progress:!0,error:!0,expired:!0,removed:!1}},orderBy:"-anonymizeDate"},m=loadFilterPrefs(h)||{};e.typeFilter=m.typeFilter||k.typeFilter,e.filters={status:Object.assign({},k.filters.status,m.filters&&m.filters.status||{})},e.orderBy=m.orderBy||k.orderBy;let E={_name:{label:"Anonymous ID",defaultDesc:!1},_label:{label:"Project",defaultDesc:!1},anonymizeDate:{label:"Anonymize date",defaultDesc:!0},status:{label:"Status",defaultDesc:!1},lastView:{label:"Last view",defaultDesc:!0},pageView:{label:"Views",defaultDesc:!0},"options.expirationDate":{label:"Expiration",defaultDesc:!1}};e.sortFields=E,e.sortField=()=>e.orderBy.replace(/^-/,""),e.sortDesc=()=>e.orderBy.charAt(0)==="-",e.sortLabel=()=>{let S=E[e.sortField()];return S?S.label:"Custom"},e.isSortedBy=S=>e.sortField()===S,e.setSort=(S,O)=>{typeof O!="boolean"&&(O=e.isSortedBy(S)?!e.sortDesc():!!(E[S]&&E[S].defaultDesc)),e.orderBy=(O?"-":"")+S},e.toggleSortDirection=()=>{e.setSort(e.sortField(),!e.sortDesc())},e.watchGroup(["typeFilter","orderBy"],()=>{saveFilterPrefs(h,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(h,{typeFilter:e.typeFilter,filters:e.filters,orderBy:e.orderBy})},!0),i.load().then(S=>{e.quota=S},console.error);function y(S,O,Y,Z,te,J){S.pageView||(S.pageView=0),S.lastView||(S.lastView=""),S.options=S.options||{},S.options.terms=(S.options.terms||[]).filter(ce=>ce),S._id=O||"",S._source=Z,S._broken=!O,S._name=O||Z||"(unnamed)",S._fallbackLabel=S._type==="gist"?"Gist "+(O||Z||"without an ID"):Z||Y||S._name,S._label=S.projectName||S._fallbackLabel,S._editUrl=O?te:null,S._viewUrl=O?J:null,S._broken&&(S.status="error",S.statusMessage="incomplete_record"),S._statusKey=f(S.status);let re=S.anonymizeDate||S.lastView;return S._stale=S._statusKey==="progress"&&!!re&&Date.now()-new Date(re).getTime()>w,S.status==="expired"||S.status==="expiring"?S._expiry={kind:"expired",date:S.options.expirationDate}:S.status!=="ready"?S._expiry={kind:"none"}:S.options.expirationMode==="never"||!S.options.expirationDate?S._expiry={kind:"never"}:S._expiry={kind:"date",date:S.options.expirationDate},S}function g(S){return t.get(S).then(O=>O.data||[],O=>(console.error(O),[]))}function _(){return e.loading=!0,r.all([g("/api/user/anonymized_repositories"),g("/api/user/anonymized_pull_requests"),g("/api/user/anonymized_gists")]).then(S=>{let O=S[0],Y=S[1],Z=S[2],te=[];O.forEach(J=>{J._type="repo";let re=J.source||{};te.push(y(J,J.repoId,J.repoId,re.fullName,"/anonymize/"+J.repoId,"/r/"+J.repoId+"/"))}),Y.forEach(J=>{J._type="pr";let re=J.source||{};te.push(y(J,J.pullRequestId,J.pullRequestId,re.repositoryFullName?re.repositoryFullName+"#"+re.pullRequestId:void 0,"/pull-request-anonymize/"+J.pullRequestId,"/pr/"+J.pullRequestId+"/"))}),Z.forEach(J=>{J._type="gist";let re=J.source||{};te.push(y(J,J.gistId,J.gistId,re.gistId,"/gist-anonymize/"+J.gistId,"/gist/"+J.gistId+"/"))}),e.items=te,e.loading=!1})}let R=0,T=!1;e.dashboardCursor=null,e.dashboardError="";function P(S){let O=S.source||{};return S._type==="repo"?y(S,S.repoId,S.repoId,O.fullName,"/anonymize/"+S.repoId,"/r/"+S.repoId+"/"):S._type==="pr"?y(S,S.pullRequestId,S.pullRequestId,O.repositoryFullName?O.repositoryFullName+"#"+O.pullRequestId:void 0,"/pull-request-anonymize/"+S.pullRequestId,"/pr/"+S.pullRequestId+"/"):y(S,S.gistId,S.gistId,O.gistId,"/gist-anonymize/"+S.gistId,"/gist/"+S.gistId+"/")}function F(S=!1){if(T)return _();let O=++R;return e.loading=!S,e.loadingMore=S,e.dashboardError="",t.get("/api/user/dashboard",{params:{q:e.search,type:e.typeFilter,sort:e.orderBy,statuses:Object.keys(e.filters.status).filter(Y=>e.filters.status[Y]!==!1).join(",")||"none",attention:String(e.projectView==="attention"),cursor:S?e.dashboardCursor:void 0}}).then(Y=>{if(O===R){if(!Array.isArray(Y.data?.items))return T=!0,_();e.items=(S?e.items:[]).concat(Y.data.items.map(P)),e.dashboardCursor=Y.data.cursor,e.dashboardTotals=Y.data}},Y=>{if(O===R){if(Y.status===404)return T=!0,_();e.dashboardError="Projects could not be loaded. Please try again."}}).finally(()=>{O===R&&(e.loading=!1,e.loadingMore=!1)})}e.loadMoreProjects=()=>F(!0);let V;e.watchGroup(["search","typeFilter","orderBy","projectView"],()=>{T||(V&&a.timeout.cancel(V),V=a.timeout(()=>F(),150))},!1),e.watch("filters",()=>{T||F()},!0,!1),e.on("dispose",()=>{R++}),F(),e.openItem=(S,O)=>{if(!S._viewUrl)return;let Y=O&&O.target;Y&&Y.closest&&Y.closest("a, button, .dropdown, input")||(s.location.href=S._viewUrl)},e.hiddenStatusCount=()=>Object.keys(e.filters.status).filter(S=>e.filters.status[S]===!1).length,e.hasHiddenStatus=()=>e.hiddenStatusCount()>0,e.hasActiveFilters=()=>e.projectView!=="all"||e.typeFilter!=="all"||e.search.trim().length>0||Object.keys(e.filters.status).some(S=>e.filters.status[S]===!1),e.showClearFilters=()=>e.search.trim().length>0||e.typeFilter!=="all"||e.hiddenStatusCount()>1,e.clearFilters=()=>{e.projectView="all",e.typeFilter="all",e.search="",Object.keys(e.filters.status).forEach(S=>{e.filters.status[S]=!0})};function M(S,O,Y,Z){t.get("/api/repo/"+S).then(async te=>{let J=Z!==void 0&&Z!==te.data.status;for(let re of e.items)if(re._type==="repo"&&re.repoId==S){J=J||re.status!==te.data.status;let ce=e.needsAttention(re);re.status=te.data.status,re.statusMessage=te.data.statusMessage,re._statusKey=f(re.status),re._statusKey!=="progress"&&(re._stale=!1);let fe=e.needsAttention(re);e.dashboardTotals&&ce!==fe&&(e.dashboardTotals.attention=Math.max(0,e.dashboardTotals.attention+(fe?1:-1)));break}if(J&&!T){e.dashboardCursor=null;let re=e.selectedProject;await F(),re&&e.selectedProject===re&&(e.selectedProject=e.items.find(ce=>ce._type===re._type&&ce._id===re._id)||null)}if(te.data.status=="ready"||te.data.status=="error"||te.data.status=="removed"||te.data.status=="expired"){O(te.data);return}a.timeout(()=>M(S,O,Y,te.data.status),2500)},Y)}let se=S=>S==="repo"?"repository":S==="gist"?"gist":"pull request",oe=S=>S==="repo"?"/api/repo":S==="gist"?"/api/gist":"/api/pr";e.removeItem=S=>{let O=se(S._type);if(confirm(`Are you sure that you want to remove the ${O} ${S._id}?`)){let Y=ze({title:`Removing ${S._id}...`,date:new Date,body:`The ${O} ${S._id} is going to be removed.`});e.addToast(Y);let Z=`${oe(S._type)}/${S._id}`;t.delete(Z).then(()=>{S._type==="repo"?M(S._id,()=>{Y.title=`${S._id} is removed.`,Y.body=`The ${O} ${S._id} is removed.`},void 0,S.status):(Y.title=`${S._id} is removed.`,Y.body=`The ${O} ${S._id} is removed.`,F())},te=>{Y.title=`Error during the removal of ${S._id}.`,Y.body=te.body,F()})}},e.refreshItem=S=>{let O=se(S._type),Y=ze({title:`Refreshing ${S._id}...`,date:new Date,body:`The ${O} ${S._id} is going to be refreshed.`});e.addToast(Y);let Z=J=>{Y.title=`Error during the refresh of ${S._id}.`,Y.body=J.data?.error||J.body||"The refresh could not be completed. Please try again.",F()},te=`${oe(S._type)}/${S._id}/refresh`;t.post(te).then(()=>{S._type==="repo"?M(S._id,J=>{if(J.status!=="ready"){Z({body:J.statusMessage||`The repository is ${J.status}.`});return}Y.title=`${S._id} is refreshed.`,Y.body=`The ${O} ${S._id} is refreshed.`},Z,S.status):(Y.title=`${S._id} is refreshed.`,Y.body=`The ${O} ${S._id} is refreshed.`,F())},Z)},e.extendItem=S=>{let O=se(S._type),Y=ze({title:`Extending ${S._id}...`,date:new Date,body:`The expiration of ${O} ${S._id} is going to be extended by 6 months.`});e.addToast(Y);let Z=`${oe(S._type)}/${S._id}/extend`;t.post(Z).then(()=>{S._type==="repo"?M(S._id,()=>{Y.title=`${S._id} is extended.`,Y.body=`The expiration of ${O} ${S._id} is extended by 6 months.`},void 0,S.status):(Y.title=`${S._id} is extended.`,Y.body=`The expiration of ${O} ${S._id} is extended by 6 months.`,F())},te=>{Y.title=`Error during the extension of ${S._id}.`,Y.body=te.data&&te.data.error||te.body,F()})},e.itemFilter=S=>{if(e.projectView==="attention"&&!e.needsAttention(S)||e.typeFilter!=="all"&&S._type!==e.typeFilter||e.filters.status[S._statusKey]===!1)return!1;let O=e.search.trim().toLowerCase();return!!(O.length==0||S._label&&String(S._label).toLowerCase().indexOf(O)>-1||S._source&&String(S._source).toLowerCase().indexOf(O)>-1||S._id&&String(S._id).toLowerCase().indexOf(O)>-1||S.conference&&String(S.conference).toLowerCase().indexOf(O)>-1)}};var nl=function(e,t,n){let r=ct();e.repoId=n.repoId,e.repo=null,e.progress=0,e.rateLimitResetAt=0,e.rateLimitCountdown="",e.shareUrl=(window.location?.origin||"")+"/r/"+encodeURIComponent(e.repoId)+"/",e.copied=!1;let s=null;e.copyShareUrl=async()=>{try{await Qa(e.shareUrl),e.copied=!0,s&&r.timeout.cancel(s),s=r.timeout(()=>{e.copied=!1},2e3)}catch{e.addToast?.({title:"Copy this anonymous link",body:e.shareUrl})}};var i=null;let a=null,u=!1;function f(h){e.rateLimitResetAt=h,i&&r.interval.cancel(i);function k(){var m=Math.max(0,Math.ceil((h-Date.now())/1e3));if(m<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,r.interval.cancel(i),i=null;else{var E=Math.floor(m/60),y=m%60;e.rateLimitCountdown=E>0?E+"m "+y+"s":y+"s"}}k(),i=r.interval(k,1e3)}e.on("dispose",function(){u=!0,i&&r.interval.cancel(i),a&&r.timeout.cancel(a)});function w(h){if(!h)return h;var k=h.match(/^rate_limited:(\d+)$/);return k?(f(parseInt(k[1],10)),null):(e.rateLimitResetAt=0,h)}e.getStatus=()=>{u||t.get("/api/repo/"+e.repoId,{repoId:e.repoId,repoUrl:e.repoUrl}).then(h=>{if(!u){e.repo=h.data,h.data.rateLimitResetAt?f(h.data.rateLimitResetAt):e.repo.statusMessage=w(e.repo.statusMessage),e.repo.status=="ready"?e.progress=100:e.repo.status=="queue"?e.progress=10:e.repo.status=="downloaded"?e.progress=50:e.repo.status=="download"||e.repo.status=="preparing"?e.progress=25:e.repo.status=="anonymizing"&&(e.progress=75);var k=!["ready","removed","expired"].includes(e.repo.status);e.repo.status=="error"&&!e.rateLimitResetAt&&(k=!1),k&&(a=r.timeout(e.getStatus,2e3))}},h=>{e.error=h.data.error})},e.getStatus()},is=function(e,t,n,r,s,i,a){e.sourceUrl="",e.workspaceOpen=!1,e.sourceUrlError="",e.previewStatus="idle",e.sourceLoading=!1,e.mobilePane="settings";let u=window.matchMedia?.("(max-width: 767px)");e.mobileWorkspace=!!u?.matches,u?.addEventListener&&Zt()(u,"change",C=>{e.mobileWorkspace=C.matches}),e.selectMobilePane=C=>{e.mobilePane=C};let f=0,w=!1,h=new Set,k=(C,I=!1)=>!w&&C.generation===f&&C.url===e.sourceUrl.trim()&&C.connection===e.githubConnection&&(!I||C.branch===e.source.branch),m=()=>{let C={generation:f,url:e.sourceUrl.trim(),connection:e.githubConnection,branch:e.source.branch};return h.add(C),e.sourceLoading=!0,C},E=C=>{h.delete(C),w||(e.sourceLoading=[...h].some(I=>k(I)))};e.on("dispose",()=>{w=!0,f++});let y=null,g=C=>C.gistId&&!C.repo?"gist:"+C.gistId.toLowerCase():(C.owner+"/"+C.repo).toLowerCase()+(C.pullRequestId?"/pull/"+C.pullRequestId:""),_=ir(e,["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"],"anonymize:"+(s.path?.()||""));e.discardDraft=async()=>{_.discard(),e.workspaceOpen=!!e.sourceUrl,e.error=null,e.sourceUrl?await e.urlSelected(!0):(f++,e.sourceLoading=!1,e.detectedType=null,e.details=null,e.sourceUrlError="",re.cancel(),_e.cancel(),Pe.cancel(),e.previewStatus="idle")},e.githubConnection=void 0,e.githubConnections=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1;let R=()=>{let C={};for(let I of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])C[I]=e[I];sessionStorage.setItem("github-access-draft",JSON.stringify({path:s.path(),savedAt:Date.now(),draft:C}))};e.connectGistApp=()=>{R(),window.location.href="/github/app/login?returnTo="+encodeURIComponent(s.path())},e.connectGistOAuth=()=>{R(),window.location.href="/github/login?returnTo="+encodeURIComponent(s.path())},e.grantGitHubAccess=()=>{R();let C=s.path(),I=se(e.sourceUrl)||"",B=e.githubConnections?.appConnected?"/github/app/install":"/github/app/login";window.location.href=B+"?returnTo="+encodeURIComponent(C)+"&repository="+encodeURIComponent(I)+"&install=1"},e.chooseGitHubConnection=async C=>{e.githubConnection=C,e.readme="",e.sourceUrl&&await S()},e.detectedType=null,e.repoId="",e.pullRequestId="",e.gistId="",e.terms="",e.defaultTerms="",e.branches=[],e.source={branch:"",commit:""},e.options={expirationMode:"remove",expirationDate:new Date,update:!1,image:!0,pdf:!0,notebook:!0,link:!0,body:!0,title:!0,origin:!1,diff:!0,content:!0,comments:!0,username:!0,date:!0};function T(){let C=new Date;return C.setMonth(C.getMonth()+6),C}e.options.expirationDate=T();function P(C){let I=C.getFullYear(),B=String(C.getMonth()+1).padStart(2,"0"),L=String(C.getDate()).padStart(2,"0");return`${I}-${B}-${L}`}e.minExpirationDate=P(new Date);let F=new Date;F.setFullYear(F.getFullYear()+1),e.maxExpirationDate=P(F),e.anonymize_readme="",e.readme="",e.html_readme="",e.isUpdate=!1;function V(C){t.get("/api/user/default").then(I=>{let B=I.data;B.terms&&(e.defaultTerms=B.terms.join(`
+`)),e.options=Object.assign({},e.options,B.options),e.options.expirationDate=B.options&&B.options.expirationDate?new Date(B.options.expirationDate):T(),!r.repoId&&!r.pullRequestId&&!r.gistId&&!e.anonymize?.terms?.dirty&&(e.terms=e.defaultTerms),C&&C()})}function M(C,I,B){e.anonymize&&e.anonymize[C]&&e.anonymize[C].setValidity(I,B)}function se(C){try{let I=parseGithubUrl(C);if(I&&I.owner&&I.repo)return I.owner+"/"+I.repo}catch{}return null}e.accessRepairAllowed=!1,e.repairingGitHubAccess=!1,e.accessRepairMessage="",e.repairGitHubAccess=async()=>{if(!e.accessRepairAllowed||e.repairingGitHubAccess||!e.githubConnections?.appEnabled||!r.repoId||e.role!=="owner"||e.githubConnection!=="github-app"||se(e.sourceUrl)!==e._originalFullName)return;e.repairingGitHubAccess=!0,e.accessRepairMessage="";let C=m();try{let I=await t.get("/github/connections");if(e.githubConnections=I.data,!I.data.appEnabled)return;let B=await t.post("/github/connections/migrate",{type:"repository",id:r.repoId,connection:"github-app"},{headers:{"X-CSRF-Token":I.data.csrf}});if(!k(C))return;e.error=null,B.data.fullName&&(e._originalFullName=B.data.fullName,e.source.fullName=B.data.fullName,e.sourceUrl="https://github.com/"+B.data.fullName),e.accessRepairMessage="GitHub access repaired. Your anonymous URL and published commit are unchanged.",await e.urlSelected(!0)}catch{k(C)&&(e.accessRepairMessage="Unable to repair GitHub access. Check the App's repository permissions in Manage access, then retry. Your published snapshot has not been replaced.")}finally{e.repairingGitHubAccess=!1,E(C)}},e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,e.reconnectSource=async()=>{if(confirm("Reconnect to the repository currently at this GitHub URL? Review its branch and commit before saving. Saving will replace the published snapshot.")){e.reconnectingSource=!0,e.reconnectRepositoryId=void 0,e.source.commit="",e.source.branch="",e.readme="",e.branches=[];try{await Y()}catch{}}};function oe(){return e.reconnectingSource||!e.isUpdate||!e._originalRepositoryID?void 0:se(e.sourceUrl)===e._originalFullName?e._originalRepositoryID:void 0}async function S(){e._preservingDraft=!0;try{await e.urlSelected(!0)}finally{e._preservingDraft=!1}}async function O(){let C;try{C=JSON.parse(sessionStorage.getItem("github-access-draft")||"null")}catch{return!1}if(!C||C.path!==s.path()||Date.now()-C.savedAt>=30*6e4)return _.restore()?(e.sourceUrl&&await S(),!0):!1;_.restore();for(let I of["sourceUrl","terms","repoId","pullRequestId","gistId","source","options","conference","githubConnection"])Object.prototype.hasOwnProperty.call(C.draft,I)&&(e[I]=C.draft[I]);return e.options.expirationDate&&(e.options.expirationDate=new Date(e.options.expirationDate)),await S(),sessionStorage.removeItem("github-access-draft"),!0}V(()=>{!r.repoId&&!r.pullRequestId&&!r.gistId&&a(O,0),r.repoId&&r.repoId!=""&&(e.isUpdate=!0,e.detectedType="repo",e.repoId=r.repoId,t.get("/api/repo/"+e.repoId).then(async C=>{e.accessRepairAllowed=!["removed","archived","preparing","queue","download","removing","expiring"].includes(C.data.status),e.githubConnection=C.data.connection||"oauth",e.sourceUrl="https://github.com/"+C.data.source.fullName,e._originalFullName=C.data.source.fullName,e.terms=C.data.options.terms.filter(I=>I).join(`
+`),e.source=C.data.source,e.role=C.data.role||"owner",e.coauthors=C.data.coauthors||[],e._originalBranch=C.data.source.branch,e.options=Object.assign({},e.options,C.data.options),e.conference=C.data.conference,e._originalConference=C.data.conference,e.repositoryID=C.data.source.repositoryID,e._originalRepositoryID=C.data.source.repositoryID,C.data.options.expirationDate&&(e.options.expirationDate=new Date(C.data.options.expirationDate)),y=g(parseGithubUrl(e.sourceUrl)),!await O()&&(await Promise.all([Y(),Z()]),ce())},()=>{s.url("/404")})),r.pullRequestId&&r.pullRequestId!=""&&(e.isUpdate=!0,e.detectedType="pr",e.pullRequestId=r.pullRequestId,t.get("/api/pr/"+e.pullRequestId).then(async C=>{if(e.githubConnection=C.data.connection||"oauth",e.sourceUrl="https://github.com/"+C.data.source.repositoryFullName+"/pull/"+C.data.source.pullRequestId,e.terms=C.data.options.terms.filter(I=>I).join(`
+`),e.source=C.data.source,e.options=Object.assign({},e.options,C.data.options),e.conference=C.data.conference,e._originalConference=C.data.conference,C.data.options.expirationDate&&(e.options.expirationDate=new Date(C.data.options.expirationDate)),y=g(parseGithubUrl(e.sourceUrl)),!await O())try{await fe()}catch{}},()=>{s.url("/404")})),r.gistId&&r.gistId!=""&&(e.isUpdate=!0,e.detectedType="gist",e.gistId=r.gistId,t.get("/api/gist/"+e.gistId).then(async C=>{e.sourceUrl="https://gist.github.com/"+C.data.source.gistId,e.terms=C.data.options.terms.filter(I=>I).join(`
+`),e.source=C.data.source,e.options=Object.assign({},e.options,C.data.options),e.conference=C.data.conference,e._originalConference=C.data.conference,C.data.options.expirationDate&&(e.options.expirationDate=new Date(C.data.options.expirationDate)),y=g(parseGithubUrl(e.sourceUrl)),!await O()&&await Ue()},()=>{s.url("/404")}))}),t.get("/github/connections").then(C=>{e.githubConnections=C.data,!r.repoId&&!r.pullRequestId&&!r.gistId&&e.githubConnection===void 0&&C.data.appEnabled&&C.data.appConnected&&(e.githubConnection="github-app",e.sourceUrl&&e.workspaceOpen&&S())}).catch(()=>{}),e.urlSelected=async(C=!1)=>{let I=++f,B;try{B=parseGithubUrl(e.sourceUrl.trim())}catch{e.sourceLoading=!1,re.cancel(),_e.cancel(),Pe.cancel(),e.previewStatus="idle",e.sourceUrlError=e.sourceUrl?"Please provide a valid GitHub URL.":"",M("sourceUrl","github",!1);return}let L=g(B),v=C||y===L;y=L,e.sourceUrlError="",M("sourceUrl","github",!0);let N=document.activeElement?.id==="sourceUrl-landing";e.workspaceOpen=!0,N&&a(()=>document.getElementById("sourceUrl")?.focus(),0),e.reconnectingSource=!1,e.reconnectRepositoryId=void 0,!v&&!e.isUpdate&&(e.repoId="",e.pullRequestId="",e.gistId=""),e.details=null,e.branches=[],v||(e.source={type:"GitHubStream",branch:"",commit:""}),re.cancel(),_e.cancel(),Pe.cancel(),le.clear(),Re.clear(),e.previewStatus="idle",e.anonymize_readme="",e.readme="",e.html_readme="",e.detectedType=null,e.gistOAuthRequired=!1,e.gistAppRequired=!1,e._preservingDraft=v;try{B.gistId&&!B.repo?(e.detectedType="gist",e.source={gistId:B.gistId},await Ue()):B.pullRequestId?(e.detectedType="pr",e.source={repositoryFullName:B.owner+"/"+B.repo,pullRequestId:B.pullRequestId},await fe()):(e.detectedType="repo",await Promise.all([Y(),Z()]),ce())}catch{}finally{I===f&&(e._preservingDraft=!1)}$('[data-toggle="tooltip"]').tooltip()},$('[data-toggle="tooltip"]').tooltip(),e.watch("source.branch",async()=>{if(e.detectedType!=="repo")return;let C=e.branches.filter(B=>B.name==e.source.branch)[0];if(!C)return;!(!e.reconnectingSource&&e.isUpdate&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=C.commit),e.readme=C.readme,await Z(),ce()}),e.getBranches=async C=>{let I=parseGithubUrl(e.sourceUrl),B=m();try{let L=await t.get(`/api/repo/${I.owner}/${I.repo}/branches`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&r.repoId&&se(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:C===!0||e.reconnectingSource?"1":"0",repositoryID:oe()}});if(!k(B))return;e.branches=L.data,e.sourceUnreachable=!1,e.source.branch||(e.source.branch=e.details.defaultBranch);let v=e.branches.filter(N=>N.name==e.source.branch);v.length>0&&(!(!e.reconnectingSource&&!C&&e.isUpdate&&!e.options.update&&e._originalBranch===e.source.branch&&e.source.commit)&&!(e._preservingDraft&&e.source.commit)&&(e.source.commit=v[0].commit),e.readme=v[0].readme,await Z(C))}catch(L){if(!k(B))return;e.branches=[],e.sourceUnreachable=L&&(L.status===404||L.data&&L.data.error==="repo_not_found");let v=L&&L.data&&L.data.error||(L&&L.status===404?"repo_not_found":"unknown_error");i("ERRORS."+v).then(N=>{e.toasts=e.toasts||[],e.addToast({title:"Error",date:new Date,body:N}),e.error=N},console.error),typeof M=="function"&&M("sourceUrl","missing",!1)}finally{E(B)}};async function Y(){let C=parseGithubUrl(e.sourceUrl),I=m();try{z();let B=await t.get(`/api/repo/${C.owner}/${C.repo}/`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&r.repoId&&se(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,repositoryID:oe(),force:"1"}});if(!k(I))return;e.details=B.data,e.reconnectingSource&&(e.reconnectRepositoryId=e.details.externalId),e.details&&e.details.id&&(e.repositoryID=e.details.id),e.repoId||(e.repoId=e.details.repo+"-"+generateRandomId(4)),await e.getBranches(e.reconnectingSource)}catch(B){if(!k(I))return;throw B.data&&(i("ERRORS."+B.data.error).then(L=>{e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),Q(B.data.error)),M("sourceUrl","missing",!1),B}finally{E(I)}}async function Z(C){if(e.readme&&!C)return e.readme;let I=parseGithubUrl(e.sourceUrl),B=m();try{let L=await t.get(`/api/repo/${I.owner}/${I.repo}/readme`,{params:{reconnect:e.reconnectingSource?"1":void 0,anonymizedRepoId:e.isUpdate&&r.repoId&&se(e.sourceUrl)===e._originalFullName?r.repoId:void 0,connection:e.githubConnection,force:C===!0?"1":"0",branch:e.source.branch,repositoryID:oe()}});k(B,!0)&&(e.readme=L.data)}catch{k(B,!0)&&(e.readme="")}finally{E(B)}}function te(){let C={terms:e.terms?e.terms.split(`
+`):[],image:!!e.options.image,link:!!e.options.link,repoId:e.repoId};e.source&&e.source.branch&&(C.branchName=e.source.branch);try{let I=parseGithubUrl(e.sourceUrl);C.repoName=`${I.owner}/${I.repo}`}catch{}return C}function J(C,I,B){let L=null,v=0,N=()=>{if(e.detectedType!==C)return;L&&a.cancel(L);let q=++v;e.previewStatus="loading",L=a(()=>{L=null;let H=I();if(!H){e.previewStatus="idle";return}t.post("/api/anonymize-preview",H).then(j=>{q===v&&(B(j.data,H),e.previewStatus="ready")}).catch(()=>{q===v&&(e.previewStatus="error")})},200)};return N.cancel=()=>{v++,L&&a.cancel(L),L=null},e.on("dispose",N.cancel),N}e.retryPreview=()=>{e.detectedType==="repo"&&re(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()};let re=J("repo",()=>e.readme?{content:e.readme,options:te()}:null,C=>{if(typeof C?.content!="string")throw Error("Invalid preview response");e.anonymize_readme=C.content;let I="";try{let L=parseGithubUrl(e.sourceUrl),v=e.source.branch||e.details&&e.details.defaultBranch||"main";I=`https://github.com/${L.owner}/${L.repo}/raw/${v}/`}catch{}let B=renderMD(e.anonymize_readme,I);e.html_readme=B,a(Prism.highlightAll,150)});function ce(){!e.anonymize||!e.anonymize.terms||(e.termsRegexWarning=!!e.terms&&!!e.terms.match(/[-[\]{}()*+?.,\\^$|#]/g),re())}async function fe(){let C=parseGithubUrl(e.sourceUrl),I=m();try{z();let B=await t.get(`/api/pr/${C.owner}/${C.repo}/${C.pullRequestId}`,{params:{connection:e.githubConnection}});if(!k(I))return;e.details=B.data,e.pullRequestId||(e.pullRequestId=C.repo+"-PR"+C.pullRequestId+"-"+generateRandomId(4))}catch(B){if(!k(I))return;throw B.data&&(i("ERRORS."+B.data.error).then(L=>{e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),Q(B.data.error)),M("sourceUrl","missing",!1),B}finally{E(I)}}let le=ze(new Map);function Oe(){let C=new Set,I=e.details&&e.details.pullRequest;if(!I)return C;typeof I.title=="string"&&C.add(I.title),typeof I.body=="string"&&C.add(I.body),typeof I.diff=="string"&&C.add(I.diff);let B=I.comments||[];for(let L of B)typeof L.author=="string"&&C.add(L.author),typeof L.body=="string"&&C.add(L.body);return C}let _e=J("pr",()=>{let C=Oe(),I=Array.from(C);return I.length===0?null:{contents:I,options:te()}},(C,I)=>{if(!Array.isArray(C?.contents)||C.contents.length!==I.contents.length||C.contents.some(v=>typeof v!="string"))throw Error("Invalid preview response");let B=I.contents,L=new Map;for(let v=0;vle.set(N,v))});e.anonymizePrContent=function(C){return C&&(le.has(C)?le.get(C):"")};async function Ue(){let C=parseGithubUrl(e.sourceUrl),I=m();try{z(),e.gistOAuthRequired=!1,e.gistAppRequired=!1;let B=await t.get(`/api/gist/source/${C.gistId}`);if(!k(I))return;e.details=B.data,e.gistId||(e.gistId="gist-"+C.gistId.substring(0,6)+"-"+generateRandomId(4))}catch(B){if(!k(I))return;if(B.data?.error==="github_app_reconnect_required"){e.gistAppRequired=!0,M("sourceUrl","missing",!1);return}if(B.data?.error==="github_oauth_required"){e.gistOAuthRequired=!0,M("sourceUrl","missing",!1);return}throw B.data&&(i("ERRORS."+B.data.error).then(L=>{e.addToast({title:"Error",date:new Date,body:L}),e.error=L},console.error),Q(B.data.error)),M("sourceUrl","missing",!1),B}finally{E(I)}}let Re=ze(new Map);function Me(){let C=new Set,I=e.details&&e.details.gist;if(!I)return C;typeof I.description=="string"&&C.add(I.description),typeof I.ownerLogin=="string"&&C.add(I.ownerLogin);let B=I.files||[];for(let v of B)typeof v.filename=="string"&&C.add(v.filename),typeof v.content=="string"&&C.add(v.content);let L=I.comments||[];for(let v of L)typeof v.author=="string"&&C.add(v.author),typeof v.body=="string"&&C.add(v.body);return C}let Pe=J("gist",()=>{let C=Me(),I=Array.from(C);return I.length===0?null:{contents:I,options:te()}},(C,I)=>{if(!Array.isArray(C?.contents)||C.contents.length!==I.contents.length||C.contents.some(v=>typeof v!="string"))throw Error("Invalid preview response");let B=I.contents,L=new Map;for(let v=0;vRe.set(N,v)),He()});e.anonymizeGistContent=function(C){return C&&(Re.has(C)?Re.get(C):"")},e.previewGistFiles=[];function He(){let C=e.details&&e.details.gist&&e.details.gist.files||[];e.previewGistFiles=C.map(I=>({filename:e.anonymizeGistContent(I.filename),content:e.anonymizeGistContent(I.content),language:I.language}))}e.watch("details.gist.files",He,!0),e.watch("terms",He);function Ee(){let C=e.conference;if(e.conference_data=null,!C)return;let I=e.isUpdate&&C===e._originalConference;t.get("/api/conferences/"+C).then(B=>{e.conference===C&&(e.conference_data=B.data,e.conference_data.startDate=new Date(e.conference_data.startDate),e.conference_data.endDate=new Date(e.conference_data.endDate),!I&&(e.options.expirationDate=new Date(e.conference_data.endDate),e.options.expirationMode="remove",e.options.update=e.conference_data.options.update,e.options.image=e.conference_data.options.image,e.options.pdf=e.conference_data.options.pdf,e.options.notebook=e.conference_data.options.notebook,e.options.link=e.conference_data.options.link))},()=>{e.conference===C&&(e.conference_data=null)})}function z(){M("repoId","used",!0),M("repoId","format",!0),M("pullRequestId","used",!0),M("pullRequestId","format",!0),M("gistId","used",!0),M("gistId","format",!0),M("sourceUrl","used",!0),M("sourceUrl","missing",!0),M("sourceUrl","access",!0),M("sourceUrl","github",!0),M("commit","exists",!0),M("conference","activated",!0),M("terms","format",!0),e.termsRegexWarning=!1}function ne(){let C=e.anonymize&&e.anonymize.expirationDate;return!e.options.expirationDate||C&&C.invalid?(C&&C.setDirty&&C.setDirty(),e.error="Please choose a valid expiration date.",!0):!1}function Q(C){let I=e.detectedType==="pr"?"pullRequestId":e.detectedType==="gist"?"gistId":"repoId";switch(C){case"repoId_already_used":M(I,"used",!1);break;case"invalid_repoId":M(I,"format",!1);break;case"options_not_provided":M(I,"format",!1);break;case"repo_already_anonymized":M("sourceUrl","used",!1);break;case"invalid_terms_format":M("terms","format",!1);break;case"repo_not_found":M("sourceUrl","missing",!1);break;case"repo_not_accessible":M("sourceUrl","access",!1);break;case"commit_not_found":M("commit","exists",!1);break;case"conf_not_activated":M("conference","activated",!1);break}}e.coauthors=e.coauthors||[],e.coauthorResults=[],e.coauthorError="",e.searchCoauthors=()=>{let C=(e.coauthorSearch||"").trim();if(e.coauthorError="",C.length<2){e.coauthorResults=[];return}t.get("/api/user/search/github-users",{params:{q:C}}).then(I=>{let B=new Set((e.coauthors||[]).map(L=>(L.username||"").toLowerCase()));e.coauthorResults=(I.data||[]).filter(L=>!B.has((L.username||"").toLowerCase()))},()=>{e.coauthorResults=[]})},e.addCoauthor=(C,I)=>{I&&I.preventDefault(),!(!C||!C.username)&&t.post("/api/repo/"+e.repoId+"/coauthors",{username:C.username}).then(B=>{e.coauthors=B.data||[],e.coauthorResults=[],e.coauthorSearch="",e.coauthorError=""},B=>{let L=B&&B.data&&B.data.error||"unknown_error";e.coauthorError=L})},e.removeCoauthor=C=>{!C||!C.username||confirm("Remove co-author "+C.username+"?")&&t.delete("/api/repo/"+e.repoId+"/coauthors/"+encodeURIComponent(C.username)).then(I=>{e.coauthors=I.data||[]},I=>{let B=I&&I.data&&I.data.error||"unknown_error";e.coauthorError=B})},e.anonymizeRepo=C=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(e.reconnectingSource&&!e.reconnectRepositoryId||ne())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let I=C.currentTarget||C.target.closest?.("button")||C.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),L={repoId:e.repoId,terms:e.terms.trim().split(`
+`).filter(N=>N),connection:e.githubConnection,fullName:`${B.owner}/${B.repo}`,repository:e.sourceUrl,reconnectRepositoryId:e.reconnectRepositoryId,options:e.options,source:e.source,conference:e.conference};e.details&&(L.options.pageSource=e.details.pageSource),z();let v=e.isUpdate?"/api/repo/"+e.repoId:"/api/repo/";t.post(v,L,{headers:{"Content-Type":"application/json"}}).then(()=>{_.clear(),window.location.href="/status/"+e.repoId},N=>{N.data&&(i("ERRORS."+N.data.error).then(q=>{e.error=q},console.error),Q(N.data.error))}).finally(()=>{I.disabled=!1})},e.anonymizeGist=C=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(ne())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let I=C.currentTarget||C.target.closest?.("button")||C.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),L={gistId:e.gistId,terms:e.terms.trim().split(`
+`).filter(N=>N),source:{gistId:B.gistId},options:e.options,conference:e.conference};z();let v=e.isUpdate?"/api/gist/"+e.gistId:"/api/gist/";t.post(v,L,{headers:{"Content-Type":"application/json"}}).then(()=>{_.clear(),window.location.href="/gist/"+e.gistId},N=>{N.data&&(i("ERRORS."+N.data.error).then(q=>{e.error=q},console.error),Q(N.data.error))}).finally(()=>{I.disabled=!1})},e.anonymizePullRequest=C=>{if(e.sourceLoading){e.error="Wait for the source to finish loading before saving.";return}if(ne())return;if(e.anonymize?.invalid||e.sourceUrlError){e.error="Please correct the highlighted fields before saving.";return}let I=C.currentTarget||C.target.closest?.("button")||C.target;I.disabled=!0;let B=parseGithubUrl(e.sourceUrl),L={pullRequestId:e.pullRequestId,connection:e.githubConnection,terms:e.terms.trim().split(`
+`).filter(N=>N),source:{repositoryFullName:`${B.owner}/${B.repo}`,pullRequestId:B.pullRequestId},options:e.options,conference:e.conference};z();let v=e.isUpdate?"/api/pr/"+e.pullRequestId:"/api/pr/";t.post(v,L,{headers:{"Content-Type":"application/json"}}).then(()=>{_.clear(),window.location.href="/pr/"+e.pullRequestId},N=>{N.data&&(i("ERRORS."+N.data.error).then(q=>{e.error=q},console.error),Q(N.data.error))}).finally(()=>{I.disabled=!1})},e.watch("conference",()=>{Ee()}),e.watch("terms",()=>{e.detectedType==="repo"&&ce(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()}),e.watch("options.image",()=>{e.detectedType==="repo"&&ce(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()}),e.watch("options.link",()=>{e.detectedType==="repo"&&ce(),e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()}),e.watch("details",()=>{e.detectedType==="pr"&&_e(),e.detectedType==="gist"&&Pe()},!0)},ar=function(e,t,n,r,s,i){let a=ct();window.Prism?.hooks&&!window.Prism.redactionHook&&(window.Prism.hooks.add("complete",O=>Ya(O.element)),window.Prism.redactionHook=!0);let u=Zt();e.on("dark-mode",(O,Y)=>{e.aceOption&&(Y?e.aceOption.theme="nord_dark":e.aceOption.theme="chrome")});let f=0,w=!1;e.on("dispose",()=>{w=!0,f++,h&&h.resolve()}),e.files=[],e.isMac=/Mac|iPhone|iPad|iPod/.test(navigator.platform||navigator.userAgent),e.fileSearchQuery="",e.fileSearchResults=null,e.fileSearchLoading=!1,u(document,"keydown",function(O){if((O.metaKey||O.ctrlKey)&&O.key==="k"){O.preventDefault();var Y=document.querySelector(".tree-search-input");Y&&(Y.focus(),Y.select())}});var h=null;e.onFileSearchChange=function(){h&&(h.resolve(),h=null);let O=e.fileSearchQuery;if(!O||O.length<2){e.fileSearchResults=null,e.fileSearchLoading=!1;return}e.fileSearchLoading=!0;let Y=i.defer();h=Y,t.get(`/api/repo/${e.repoId}/files/search?q=${encodeURIComponent(O)}`,{timeout:Y.promise}).then(function(Z){if(!(w||h!==Y)){h=null,e.fileSearchLoading=!1;var te={};e.files.forEach(function(z){te[(z.path||"")+"/"+z.name]=!0});for(var J=[],re={},ce=0;ce0&&e.files.push.apply(e.files,J);for(var Me=[],Pe=0;Pe0&&e.files.push.apply(e.files,Me),e.fileSearchResults=Z.data}},function(){!w&&h===Y&&(h=null,e.fileSearchLoading=!1,e.fileSearchResults=[])})};let k={yml:"yaml",txt:"text",py:"python",js:"javascript",ts:"typescript"},m=["license","txt"],E=["png","jpg","jpeg","gif","svg","ico","bmp","tiff","tif","webp","avif","heif","heic"],y=["wav","mp3","ogg","wma","flac","aac","m4a"],g=["mp4","avi","webm","mov","mpg","mpeg","mkv","flv","wmv","3gp","3g2","m4v","f4v","f4p","f4a","f4b"];e.on("routeUpdate",function(O,Y){if(e.repoId!=r.repoId)return S();if((r.path||"")!=e.filePath){e.filePath=r.path||"",e.paths=e.filePath.split("/").filter(Z=>Z&&Z.trim().length>0),oe();for(let Z=0;Z0?e.paths.slice(0,Z).join("/"):"";e.files.some(re=>re.path===te)||e.getFiles(te)}}});function _(){if(e.paths[0]!="")return;let O=["readme.md","readme.txt","readme.org","readme.1st","readme"],Y={};for(let te of e.files)te.name.toLowerCase().indexOf("readme")>-1&&(Y[te.name.toLowerCase()]=te.name);let Z=null;for(let te of O)if(Y[te]){Z=te;break}if(!Z&&Object.keys(Y).length>0&&(Z=Object.keys(Y)[0]),Z){let te=n.url();te[te.length-1]!="/"&&(te+="/"),n.url(te+encodePathForUrl(Y[Z]))}}e.fileCounts=null,e.getFiles=function(O){let Y=e.repoId;return t.get(`/api/repo/${e.repoId}/files/?path=${encodeURIComponent(O)}&v=${e.options.lastUpdateDate}`).then(function(Z){if(w||Y!==e.repoId)return[];let te=O||"";return e.files=e.files.filter(J=>J.path!==te),e.files.push(...Z.data),Z.data},function(Z){if(w||Y!==e.repoId)return[];e.type="error",e.content=Z&&Z.data&&Z.data.error||"unknown_error",e.files=[]})};function R(){let O=e.repoId;t.get(`/api/repo/${e.repoId}/files/counts`).then(function(Y){w||O!==e.repoId||(e.fileCounts=Y.data)},function(){e.fileCounts={}})}function T(){return e.files.filter(O=>O.name==e.paths[e.paths.length-1]&&O.path==e.paths.slice(0,e.paths.length-1).join("/"))[0]}var P=null;e.on("dispose",function(){P&&a.interval.cancel(P)});function F(O){if(w)return;let Y=e.repoId;t.get(`/api/repo/${e.repoId}/options`).then(Z=>{if(!(w||Y!==e.repoId)){if(e.options=Z.data,e.options.url){window.location=e.options.url;return}O&&O(Z.data)}},Z=>{if(!(w||Y!==e.repoId)){var te=Z.data||{};if(te.error==="rate_limited"&&te.resetAt){let re=function(){var ce=Math.max(0,Math.ceil((e.rateLimitResetAt-Date.now())/1e3));if(ce<=0)e.rateLimitCountdown="",e.rateLimitResetAt=0,P&&(a.interval.cancel(P),P=null),F(O);else{var fe=Math.floor(ce/60),le=ce%60;e.rateLimitCountdown=fe>0?fe+"m "+le+"s":le+"s"}};var J=re;e.type="rate_limited",e.rateLimitResetAt=te.resetAt,P&&a.interval.cancel(P),re(),P=a.interval(re,1e3)}else te.error==="repository_not_ready"?(e.type="loading",a.timeout(function(){F(O)},3e3)):(e.type="error",e.content=te.error)}})}e.toggleSource=function(){e.showSource=!e.showSource},e.toggleAllowScripts=function(){e.allowScripts=!e.allowScripts};function V(O){return k[O]?k[O]:O}function M(O){return O=="pdf"?"pdf":O=="html"||O=="htm"?"html-doc":O=="md"?"md":O=="org"?"org":O=="ipynb"?"IPython":m.indexOf(O)>-1?"text":E.indexOf(O)>-1?"image":g.indexOf(O)>-1?"media":y.indexOf(O)>-1?"audio":"code"}function se(O,Y){let Z=f;if(!O){e.type="error",e.content="no_file_selected";return}let te=e.type;e.type="loading",e.content="loading";let J=Y&&Y.sha||"0";t.get(`/api/repo/${e.repoId}/file/${encodePathForUrl(O)}?v=`+J,{transformResponse:re=>re}).then(re=>{if(!(w||Z!==f)){if(e.type=te,e.content=re.data,e.content==""&&(e.content=null),e.type=="md"&&(e.content=renderMD(re.data,n.url()+"/../"),e.type="html"),e.type=="org"){let fe=contentAbs2Relative(re.data);var ce=new Org.Parser().parse(fe).convert(Org.ConverterHTML,{headerOffset:1,exportFromLineNumber:!1,suppressSubScriptHandling:!0,suppressAutoLink:!1});e.content=DOMPurify.sanitize(ce.toString()),e.type="html"}e.type=="code"&&re.headers("content-type")=="application/octet-stream"&&(e.type="binary",e.content="binary"),a.timeout(()=>{Prism.highlightAll()},50)}},re=>{if(!(w||Z!==f)){e.type="error",e.content="unknown_error";try{re.data=JSON.parse(re.data),re.data.error?e.content=re.data.error:e.content=re.data}catch{console.log(re),re.status==-1?e.content="request_error":re.status==502&&(e.content="unreachable")}}})}function oe(){f++,e.content="",e.file=T();let O="0";e.file&&e.file.sha&&(O=e.file.sha),e.url=`/api/repo/${e.repoId}/file/${encodePathForUrl(e.filePath)}?v=${O}`;let Y=e.filePath.substring(0,e.filePath.lastIndexOf("/")+1);e.fileBaseUrl=`/api/repo/${e.repoId}/file/${Y?encodePathForUrl(Y):""}`,e.showSource=!1,e.allowScripts=!1;let Z=e.filePath.toLowerCase(),te=Z.lastIndexOf(".");if(te>-1&&(Z=Z.substring(te+1)),e.aceOption={readOnly:!0,useWrapMode:!0,showGutter:!0,theme:"chrome",useSoftTab:!0,tabSize:2,fontSize:13,keyBinding:"vscode",fullLineSelection:!0,highlightActiveLine:!1,highlightGutterLine:!1,cursor:"hide",showInvisibles:!1,showIndentGuides:!0,showPrintMargin:!1,highlightSelectedWord:!1,enableBehaviours:!0,fadeFoldWidgets:!1,mode:V(Z),onLoad:function(J){let re=ace.require("ace/range").Range,ce=null;function fe(Ee,z){ce!==null&&(J.session.removeMarker(ce),ce=null),Ee!=null&&(ce=J.session.addMarker(new re(Ee,0,z,1),"highlighted-line","fullLine"))}function le(Ee){let z=window.location.hash.match(/^#L(\d+)(?:-L(\d+))?/);if(!z){fe(null);return}let ne=parseInt(z[1])-1,Q=z[2]?parseInt(z[2])-1:ne;fe(ne,Q),Ee&&a.timeout(()=>{J.scrollToLine(ne,!0,!0,function(){})},100)}le(!0);let Oe=null;J.on("guttermousedown",function(Ee){let z=Ee.getDocumentPosition().row,ne=Ee.domEvent&&Ee.domEvent.shiftKey,Q=z,C=z;ne&&Oe!==null?(Q=Math.min(Oe,z),C=Math.max(Oe,z)):Oe=z;let I=Q===C?`#L${Q+1}`:`#L${Q+1}-L${C+1}`,B=window.location.pathname+window.location.search+I;window.history.replaceState(null,"",B),fe(Q,C),Ee.stop()});let _e=u(window,"hashchange",()=>le(!1));J.setFontSize(e.aceOption.fontSize),J.setReadOnly(e.aceOption.readOnly),J.setKeyboardHandler(e.aceOption.keyBinding),J.setSelectionStyle(e.aceOption.fullLineSelection?"line":"text"),J.setOption("displayIndentGuides",!0),J.setHighlightActiveLine(e.aceOption.highlightActiveLine),e.aceOption.cursor=="hide"&&(J.renderer.$cursorLayer.element.style.display="none"),J.setHighlightGutterLine(e.aceOption.highlightGutterLine),J.setShowInvisibles(e.aceOption.showInvisibles),J.setDisplayIndentGuides(e.aceOption.showIndentGuides),J.renderer.setShowPrintMargin(e.aceOption.showPrintMargin),J.setHighlightSelectedWord(e.aceOption.highlightSelectedWord),J.session.setUseSoftTabs(e.aceOption.useSoftTab),J.session.setTabSize(e.aceOption.tabSize);let Ue=window.matchMedia("(max-width: 991px)"),Re=()=>J.session.setUseWrapMode(e.aceOption.useWrapMode&&Ue.matches);Re(),Ue.addEventListener?.("change",Re),J.setBehavioursEnabled(e.aceOption.enableBehaviours),J.setFadeFoldWidgets(e.aceOption.fadeFoldWidgets);let Me=[],Pe=()=>{Me.forEach(ne=>J.session.removeMarker(ne)),Me=[];let Ee=Ka();if(!Ee)return;J.session.getDocument().getAllLines().forEach((ne,Q)=>{for(let C of ne.matchAll(Ee))Me.push(J.session.addMarker(new re(Q,C.index,Q,C.index+C[0].length),"ace_redaction","text"))})};Pe(),J.session.on("change",()=>a.timeout(Pe,0));let He=e.on("site-options",Pe);return()=>{_e(),He(),Ue.removeEventListener?.("change",Re)}}},e.isDarkMode&&(e.aceOption.theme="nord_dark"),e.type=M(Z),e.type=="pdf"){e.content="pdf";return}se(e.filePath,e.file)}function S(){f++,e.files=[],e.content=null,e.fileCounts=null,e.fileSearchQuery="",e.onFileSearchChange(),e.repoId=r.repoId,e.type="loading",e.filePath=r.path||"",e.paths=e.filePath.split("/");let O=e.repoId;F(function(Y){R();var Z=i.resolve();for(let te=0;te0?e.paths.slice(0,te).join("/"):"";Z=Z.then(function(){return e.getFiles(J)}).then(function(){if(e.type==="error")return i.reject("error")})}Z.then(function(){w||O!==e.repoId||(e.files.length==1&&e.files[0].name==""?(e.files=[],e.type="empty"):(_(),oe()))})})}S()},sl=function(e,t,n,r,s){async function i(f){t.get(`/api/pr/${e.pullRequestId}/options`).then(w=>{if(e.options=w.data,e.options.url){window.location=e.options.url;return}f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}async function a(f){t.get(`/api/pr/${e.pullRequestId}/content`).then(w=>{e.details=w.data,e.tabState={active:w.data.diff?"diff":"comments"},f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}function u(){e.pullRequestId=r.pullRequestId,e.type="loading",i(f=>{a()})}u()},rl=function(e,t,n,r,s){async function i(f){t.get(`/api/gist/${e.gistId}/options`).then(w=>{if(e.options=w.data,e.options.url){window.location=e.options.url;return}f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}async function a(f){t.get(`/api/gist/${e.gistId}/content`).then(w=>{e.details=w.data;let h=w.data&&w.data.files&&w.data.files.length;e.tabState={active:h?"files":"comments"},f&&f(w.data)},w=>{e.type="error",e.content=w.data.error})}function u(){e.gistId=r.gistId,e.type="loading",i(()=>{a()})}u()},il=function(e,t,n){e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.conferences=[],e.loading=!0,e.error="",e.search="";let r="conferences.filterPrefs",s={filters:{status:{ready:!0,expired:!1,removed:!1}},orderBy:"name"},i=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},s.filters.status,i.filters&&i.filters.status||{})},e.orderBy=i.orderBy||s.orderBy,e.watch("orderBy",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})}),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,orderBy:e.orderBy})},!0),e.removeConference=function(a){if(!a.removing&&confirm(`Are you sure that you want to remove the conference ${a.name}? All the repositories linked to this conference will expire.`)){a.removing=!0;let u=ze({title:`Removing ${a.name}...`,date:new Date,body:`The conference ${a.name} is going to be removed.`});e.addToast(u),t.delete(`/api/conferences/${a.conferenceID}`).then(()=>{u.title=`${a.name} is removed.`,u.body=`The conference ${a.name} is removed.`,e.loadConferences()}).catch(()=>{u.title="Unable to remove conference",u.body="Please try again. The conference has not been removed."}).finally(()=>{a.removing=!1})}},e.loadConferences=()=>(e.loading=!0,e.error="",t.get("/api/conferences/").then(a=>{e.conferences=a.data||[]},a=>{e.error="Unable to load your conferences. Please try again."}).finally(()=>{e.loading=!1})),e.loadConferences(),e.conferenceFilter=a=>{if(e.filters.status[a.status]==!1)return!1;let u=e.search.trim().toLowerCase();return!!(!u||(a.name||"").toLowerCase().includes(u)||(a.conferenceID||"").toLowerCase().includes(u))}},lr=function(e,t,n,r){e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.plans=[],e.editionMode=!1,e.saving=!1,e.error="";function s(){t.get("/api/conferences/"+r.conferenceId).then(h=>{e.options={...e.options,...h.data,billing:h.data.billing||{}},e.options.startDate=new Date(e.options.startDate),e.options.endDate=new Date(e.options.endDate)})}r.conferenceId&&(e.editionMode=!0,s());function i(){t.get("/api/conferences/plans").then(h=>{e.plans=h.data,e.plan=e.plans.filter(k=>k.id==e.options.plan.planID)[0]})}i();let a=new Date;a.setDate(1),a.setMonth(a.getMonth()+1);let u=new Date(a);u.setMonth(a.getMonth()+7,0),e.options={billing:{},startDate:a,endDate:u,plan:{planID:"free_conference"},options:{link:!0,image:!0,pdf:!0,notebook:!0,update:!0,page:!0}},e.plan=null,e.watch("options.plan.planID",()=>{e.plan=e.plans.filter(h=>h.id==e.options.plan.planID)[0]});function f(){e.conference.name.setValidity("required",!0),e.conference.conferenceID.setValidity("pattern",!0),e.conference.conferenceID.setValidity("required",!0),e.conference.conferenceID.setValidity("used",!0),e.conference.startDate.setValidity("required",!0),e.conference.startDate.setValidity("invalid",!0),e.conference.endDate.setValidity("required",!0),e.conference.endDate.setValidity("invalid",!0),e.conference.setValidity("error",!0)}function w(h){switch(h){case"conf_name_missing":e.conference.name.setValidity("required",!1);break;case"conf_id_missing":e.conference.conferenceID.setValidity("required",!1);break;case"conf_id_format":e.conference.conferenceID.setValidity("pattern",!1);break;case"conf_id_used":e.conference.conferenceID.setValidity("used",!1);break;case"conf_start_date_missing":e.conference.startDate.setValidity("required",!1);break;case"conf_end_date_missing":e.conference.endDate.setValidity("required",!1);break;case"conf_start_date_invalid":e.conference.startDate.setValidity("invalid",!1);break;case"conf_end_date_invalid":e.conference.endDate.setValidity("invalid",!1);break;default:e.conference.setValidity("error",!1);break}}e.submit=function(){if(e.saving)return;e.saving=!0,e.error="";let h=JSON.parse(JSON.stringify(e.options)),k=ze({title:`Creating ${h.name}...`,date:new Date,body:`The conference ${h.conferenceID} is in creation.`});e.editionMode&&(k.title=`Updating ${h.name}...`,k.body=`The conference '${h.conferenceID}' is updating.`),e.addToast(k),f(),t.post("/api/conferences/"+(e.editionMode?h.conferenceID:""),h).then(()=>{e.editionMode?(k.title=`${h.name} updated`,k.body=`The conference '${h.conferenceID}' is updated.`):(k.title=`${h.name} created`,k.body=`The conference '${h.conferenceID}' is created.`),n.url("/conference/"+h.conferenceID)},m=>{w(m.data?.error),e.error="Unable to save the conference. Please correct any highlighted fields and try again.",e.removeToast(k)}).finally(()=>{e.saving=!1})}},al=function(e,t,n,r){e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.conference=null,e.search="",e.filters={status:{ready:!0,expired:!1,removed:!1}},e.orderBy="-anonymizeDate",e.repoFiler=i=>{if(e.filters.status[i.status]==!1)return!1;let a=e.search.trim().toLowerCase();return!!(!a||(i.source?.fullName||"").toLowerCase().includes(a)||(i.repoId||"").toLowerCase().includes(a))};function s(){t.get("/api/conferences/"+r.conferenceId).then(i=>{e.conference=i.data})}s()},ll=function(e,t){e.notificationEmail="",e.emailSaved=!1,e.saveNotificationEmail=async()=>{e.busy=!0,e.emailSaved=!1,e.connectionError="";try{let n=await t.post("/github/connections/email",{email:e.notificationEmail},{headers:{"X-CSRF-Token":e.connections.csrf}});e.notificationEmail=n.data.notificationEmail,e.user&&(e.user.notificationEmail=n.data.notificationEmail),e.emailSaved=!0}catch(n){e.connectionError=n.data?.error||"Unable to save email address."}finally{e.busy=!1}},e.connections=null,e.connectionError="",e.busy=!1,e.loadConnections=()=>t.get("/github/connections").then(n=>{e.connections=n.data,e.notificationEmail=n.data.notificationEmail||""}).catch(n=>{e.connectionError=n.data?.error||"Unable to load connections."}),e.changeConnection=async(n,r,s)=>{e.busy=!0,e.connectionError="";try{let i=await t.post("/github/connections/migrate",{type:n.type,id:n.id,connection:r,preview:s},{headers:{"X-CSRF-Token":e.connections.csrf}});s?n.eligible=i.data.eligible:await e.loadConnections()}catch(i){e.connectionError=i.data?.error||"Unable to change connection."}finally{e.busy=!1}},e.disconnectOAuth=async()=>{e.busy=!0;try{await t.post("/github/connections/disconnect-oauth",{},{headers:{"X-CSRF-Token":e.connections.csrf}}),await e.loadConnections()}catch(n){e.connectionError=n.data?.error||"Unable to disconnect OAuth."}finally{e.busy=!1}},e.loadConnections()},dl=function(e,t){e.accountRecovery=!1,t.get("/github/account-recovery").then(n=>{e.accountRecovery=n.data.required}).catch(()=>{})};var ul=function(e,t,n){let r=ct(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.repositories=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.totalSize=0,e.selected={},e.allSelected=!1;let i=y=>{if(y.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){y.preventDefault();let g=document.querySelector('.admin-filter-toolbar input[type="search"]');g&&g.focus()}};s(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=y=>{y==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[y]="",e.query.page=1},e.chips=[];let a=()=>{let y=[];e.query.owner&&y.push({key:"owner",label:"Owner",value:e.query.owner}),e.query.conference&&y.push({key:"conference",label:"Conference",value:e.query.conference}),e.chips=y};e.showStatusMessage=y=>{let g=y.statusMessage||"(no message)";window.prompt(`Status message for ${y.repoId} (${y.status}):`,g)},e.fetchGithubInfo=y=>{let g=window.open("","_blank");g&&g.document.write("Loading GitHub info for "+y.repoId+"... "),t.get("/api/admin/repos/"+y.repoId+"/github").then(_=>{g&&(g.document.open(),g.document.write(''+JSON.stringify(_.data,null,2).replace(/[<>]/g,R=>R==="<"?"<":">")+" "),g.document.close())},_=>{let R=_&&_.data?JSON.stringify(_.data,null,2):String(_);g&&(g.document.body.innerHTML=''+R+" ")})},e.statusCountFor=y=>{let g=(e.statusCounts||[]).find(_=>_._id===y);return g?g.count:0},e.statusStorageFor=y=>{let g=(e.statusCounts||[]).find(_=>_._id===y);return g?g.storage:0},e.isErrorsOnly=()=>e.query&&e.query.error&&!e.query.ready&&!e.query.preparing&&!e.query.expired&&!e.query.removed,e.toggleErrorsOnly=()=>{e.isErrorsOnly()?Object.assign(e.query,{ready:!1,preparing:!0,expired:!1,removed:!1,error:!0}):Object.assign(e.query,{ready:!1,preparing:!1,expired:!1,removed:!1,error:!0}),e.query.page=1},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=y=>{e.query.sort===y?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=y,e.query.direction="desc"),e.query.page=1},e.sortIcon=y=>e.query.sort===y?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.repos.filterPrefs",f={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},w=loadFilterPrefs(u)||{};e.query=Object.assign({},f,w,{page:1,search:""});let h=n.search();h.owner&&(e.query.owner=h.owner),h.conference&&(e.query.conference=h.conference),h.search&&(e.query.search=h.search);let k="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(k)||"[]"),e.savePreset=()=>{let y=window.prompt("Preset name:");if(!y)return;let g=Object.assign({},e.query);delete g.page,e.presets=(e.presets||[]).filter(_=>_.name!==y),e.presets.push({name:y,query:g}),localStorage.setItem(k,JSON.stringify(e.presets))},e.applyPreset=y=>{Object.assign(e.query,y.query,{page:1})},e.deletePreset=y=>{e.presets=(e.presets||[]).filter(g=>g.name!==y.name),localStorage.setItem(k,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(y=>{e.selected[y.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(y=>e.selected[y.repoId]),e.bulkRefresh=()=>{let y=e.selectedRepos();y.length&&confirm(`Force refresh ${y.length} repositories?`)&&y.forEach(g=>e.updateRepository(g))},e.bulkRemoveCache=()=>{let y=e.selectedRepos();y.length&&confirm(`Purge cache for ${y.length} repositories?`)&&y.forEach(g=>e.removeCache(g))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let y=new URLSearchParams(Object.entries(e.query).filter(([,g])=>g!==""&&g!==!1&&g!=null));y.set("format","csv"),y.set("limit","10000"),window.open("/api/admin/repos?"+y.toString(),"_blank")},e.removeCache=y=>{confirm("Remove cached files for "+y.repoId+"?")&&t.delete("/api/admin/repos/"+y.repoId).then(()=>m(),g=>console.error(g))},e.removeRepository=y=>{confirm("Remove repository "+y.repoId+"?")&&t.delete("/api/repo/"+y.repoId+"/").then(()=>m(),g=>console.error(g))},e.updateRepository=y=>{let g=ze({title:`Refreshing ${y.repoId}...`,date:new Date,body:`The repository ${y.repoId} is going to be refreshed.`});e.toasts.push(g),t.post(`/api/repo/${y.repoId}/refresh`).then(_=>{_.data.status=="ready"?g.title=`${y.repoId} is refreshed.`:g.title=`Refreshing of ${y.repoId}.`},_=>{g.title=`Error during the refresh of ${y.repoId}.`,g.body=_.body})},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(y=>{e.total=y.data.total,e.totalPage=Math.ceil(y.data.total/e.query.limit),e.repositories=y.data.results,e.statusCounts=y.data.statusCounts||[],e.totalSize=y.data.totalSize||0,e.allSelected=!1},y=>{e.fetchError=y&&y.data&&y.data.error||"Failed to load repositories",console.error(y)})}m();let E=null;e.watch("query",()=>{r.timeout.cancel(E),E=r.timeout(m,500);let{page:y,search:g,..._}=e.query;saveFilterPrefs(u,_),a()},!0),a()},cl=function(e,t,n){let r=ct(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let i=m=>{if(m.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){m.preventDefault();let E=document.querySelector('.admin-filter-toolbar input[type="search"]');E&&E.focus()}};s(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=m=>{m==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[m]="",e.query.page=1},e.chips=[];let a=()=>{let m=[];e.query.role&&m.push({key:"role",label:"Role",value:e.query.role}),e.chips=m};e.statusCountFor=m=>{let E=(e.statusCounts||[]).find(y=>y._id===m);return E?E.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.query.page=1},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.users.filterPrefs",f={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},w=loadFilterPrefs(u)||{};e.query=Object.assign({},f,w,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(m=>{e.selected[m.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(m=>e.selected[m.username]),e.banUser=m=>{confirm(`Ban user ${m.username}?`)&&t.post(`/api/admin/users/${m.username}/ban`).then(h,E=>console.error(E))},e.activateUser=m=>{t.post(`/api/admin/users/${m.username}/activate`).then(h,E=>console.error(E))},e.bulkBan=()=>{let m=e.selectedUsers();m.length&&confirm(`Ban ${m.length} users?`)&&m.forEach(E=>e.banUser(E))},e.exportCsv=()=>{let m=new URLSearchParams(Object.entries(e.query).filter(([,E])=>E!==""&&E!==!1&&E!=null));m.set("format","csv"),m.set("limit","10000"),window.open("/api/admin/users?"+m.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(m=>{e.total=m.data.total,e.totalPage=Math.ceil(m.data.total/e.query.limit),e.users=m.data.results,e.statusCounts=m.data.statusCounts||[],e.allSelected=!1},m=>{e.fetchError=m&&m.data&&m.data.error||"Failed to load users",console.error(m)})}h();let k=null;e.watch("query",()=>{r.timeout.cancel(k),k=r.timeout(h,500);let{page:m,search:E,...y}=e.query;saveFilterPrefs(u,y),a()},!0),a()},pl=function(e,t,n,r){let s=ct();e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let i="admin.user.filterPrefs",a={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},u=loadFilterPrefs(i)||{};e.filters={status:Object.assign({},a.filters.status,u.filters&&u.filters.status||{})},e.query={sort:u.sort||a.sort,direction:u.direction||a.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=m=>{e.query.sort===m?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=m,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=m=>e.query.sort===m?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(i,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=m=>(e.repositories||[]).filter(E=>E.status===m).length,e.repoFiler=m=>e.filters.status[m.status]==!1?!1:!!(e.search.trim().length==0||m.source.fullName.indexOf(e.search)>-1||m.repoId.indexOf(e.search)>-1||m.statusMessage&&m.statusMessage.indexOf(e.search)>-1||m.conference&&m.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(m=>{e.selected[m.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(m=>e.selected[m.repoId]),e.bulkRefresh=()=>{let m=e.selectedRepos();m.length&&confirm(`Force refresh ${m.length} repositories?`)&&m.forEach(E=>e.updateRepository(E))},e.bulkRemoveCache=()=>{let m=e.selectedRepos();m.length&&confirm(`Purge cache for ${m.length} repositories?`)&&m.forEach(E=>e.removeCache(E))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let m=e.filteredRepositories||e.repositories,y=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),g=m.map(T=>[T.repoId,T.status,T.statusMessage||"",T.pageView||0,T.anonymizeDate||"",T.source&&T.source.fullName||"",T.conference||"",T.size&&T.size.storage||0].map(P=>{let F=String(P??"");return/[",\n\r]/.test(F)?'"'+F.replace(/"/g,'""')+'"':F}).join(",")),_=new Blob([y+`
`+g.join(`
-`)],{type:"text/csv"}),R=document.createElement("a");R.href=URL.createObjectURL(C),R.download=r.username+"-repositories.csv",R.click()},e.showStatusMessage=m=>{let E=m.statusMessage||"(no message)";window.prompt(`Status message for ${m.repoId} (${m.status}):`,E)},e.fetchGithubInfo=m=>{let E=window.open("","_blank");E&&E.document.write("Loading GitHub info for "+m.repoId+"... "),t.get("/api/admin/repos/"+m.repoId+"/github").then(y=>{E&&(E.document.open(),E.document.write(''+JSON.stringify(y.data,null,2).replace(/[<>]/g,g=>g==="<"?"<":">")+" "),E.document.close())},y=>{let g=y&&y.data?JSON.stringify(y.data,null,2):String(y);E&&(E.document.body.innerHTML=''+g+" ")})};function f(m){t.get("/api/admin/users/"+m+"/repos",{}).then(E=>{e.repositories=E.data},E=>{console.error(E)})}function w(m){t.get("/api/admin/users/"+m,{}).then(E=>{e.userInfo=E.data},E=>{console.error(E)})}w(r.username),f(r.username),e.banUser=()=>{confirm(`Ban user ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/ban`).then(()=>w(r.username),m=>console.error(m))},e.activateUser=()=>{t.post(`/api/admin/users/${r.username}/activate`).then(()=>w(r.username),m=>console.error(m))},e.promoteUser=()=>{confirm(`Promote ${r.username} to admin?`)&&t.post(`/api/admin/users/${r.username}/promote`).then(()=>w(r.username),m=>console.error(m))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/demote`).then(()=>w(r.username),m=>console.error(m))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function h(){t.get("/api/admin/tokens").then(m=>{e.tokens=m.data||[]},m=>{m.status!==401&&m.status!==403&&console.error(m)})}h(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(m=>{e.tokenForm.plaintext=m.data.token,e.tokenForm.name="",h()},m=>console.error(m))},e.revokeToken=m=>{confirm(`Revoke token "${m.name}"?`)&&t.delete("/api/admin/tokens/"+m.id).then(()=>h(),E=>console.error(E))},e.removeCache=m=>{confirm("Remove cached files for "+m.repoId+"?")&&t.delete("/api/admin/repos/"+m.repoId).then(()=>f(r.username),E=>console.error(E))},e.removeRepository=m=>{confirm("Remove repository "+m.repoId+"?")&&t.delete("/api/repo/"+m.repoId+"/").then(()=>f(r.username),E=>console.error(E))},e.updateRepository=m=>{let E=ze({title:`Refreshing ${m.repoId}...`,date:new Date,body:`The repository ${m.repoId} is going to be refreshed.`});e.toasts.push(E),t.post(`/api/repo/${m.repoId}/refresh`).then(y=>{y.data.status=="ready"?E.title=`${m.repoId} is refreshed.`:E.title=`Refreshing of ${m.repoId}.`},y=>{E.title=`Error during the refresh of ${m.repoId}.`,E.body=y.body})},e.getGitHubRepositories=m=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(E=>{e.userInfo.repositories=E.data})};let k=null;e.watch("query",()=>{s.timeout.cancel(k),k=s.timeout(()=>{f(r.username)},500)},!0)},fl=function(e,t,n){let r=ct(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let i=y=>{if(y.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){y.preventDefault();let g=document.querySelector('.admin-filter-toolbar input[type="search"]');g&&g.focus()}};s(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=y=>{y==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[y]="",e.query.page=1},e.chips=[];let a=()=>{let y=[];(e.query.dateFrom||e.query.dateTo)&&y.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=y};e.statusCountFor=y=>{let g=(e.statusCounts||[]).find(C=>C._id===y);return g?g.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=y=>{e.query.sort===y?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=y,e.query.direction="desc"),e.query.page=1},e.sortIcon=y=>e.query.sort===y?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.conferences.filterPrefs",f={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},w=loadFilterPrefs(u)||{};e.query=Object.assign({},f,w,{page:1,search:""});let h=n.search();h.search&&(e.query.search=h.search);let k="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(k)||"[]"),e.savePreset=()=>{let y=window.prompt("Preset name:");if(!y)return;let g=Object.assign({},e.query);delete g.page,e.presets=(e.presets||[]).filter(C=>C.name!==y),e.presets.push({name:y,query:g}),localStorage.setItem(k,JSON.stringify(e.presets))},e.applyPreset=y=>{Object.assign(e.query,y.query,{page:1})},e.deletePreset=y=>{e.presets=(e.presets||[]).filter(g=>g.name!==y.name),localStorage.setItem(k,JSON.stringify(e.presets))},e.removeConference=y=>{confirm("Remove conference "+y.conferenceID+"?")&&t.delete("/api/admin/conferences/"+y.conferenceID).then(()=>m(),g=>console.error(g))},e.exportCsv=()=>{let y=new URLSearchParams(Object.entries(e.query).filter(([,g])=>g!==""&&g!==!1&&g!=null));y.set("format","csv"),y.set("limit","10000"),window.open("/api/admin/conferences?"+y.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(y=>{e.total=y.data.total,e.totalPage=Math.ceil(y.data.total/e.query.limit),e.conferences=y.data.results,e.statusCounts=y.data.statusCounts||[]},y=>{e.fetchError=y&&y.data&&y.data.error||"Failed to load conferences",console.error(y)})}m();let E=null;e.watch("query",()=>{r.timeout.cancel(E),E=r.timeout(m,500);let{page:y,search:g,...C}=e.query;saveFilterPrefs(u,C),a()},!0),a()},ml=function(e,t,n,r,s){let i=ct();e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(g=>e.stateFilter[g._state]),e.jobProgressPct=g=>g&&g.progress&&typeof g.progress=="object"&&typeof g.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(g.progress.percent))):typeof g.progress=="number"?Math.max(0,Math.min(100,Math.round(g.progress))):null,e.jobDuration=g=>{if(!g.processedOn)return"-";let R=(g.finishedOn||Date.now())-g.processedOn;return R<1e3?R+"ms":(R/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=g=>{e.selectedQueue=g,a(),u()},e.setRange=g=>{e.range=g,u()};function a(){let g={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:g}).then(C=>{e.queueList=C.data.queues||[],e.jobs=C.data.jobs||[],e.selectedStats=e.queueList.find(R=>R.key===e.selectedQueue)||e.queueList[0]||null},C=>console.error(C))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(g=>{e.metricsPoints=g.data.points||[],s(m,0)},g=>console.error(g))}a(),u();let f=r(()=>{e.query.autoRefresh&&(a(),u())},15e3);e.on("dispose",()=>r.cancel(f)),e.refreshNow=function(){a(),u()};function w(g){let C=g&&g.data&&(g.data.message||g.data.error)||"Request failed";e.actionError=C,s(()=>{e.actionError=null},5e3),console.error(g)}e.actionError=null,e.removeJob=g=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${g.id}`).then(a,w)},e.retryJob=g=>{t.post(`/api/admin/queue/${e.selectedQueue}/${g.id}`).then(a,w)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,g=>console.error(g))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,g=>console.error(g))},e.togglePause=()=>{let g=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${g}`).then(a,C=>console.error(C))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,g=>console.error(g))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,g=>console.error(g))};let h=null;e.watch("query.search",()=>{i.timeout.cancel(h),h=i.timeout(a,350)}),e.expanded={},e.toggleJob=g=>{e.expanded[g.id]=!e.expanded[g.id]},e.humanTime=g=>{if(!g)return"";let C=new Date(g);return C.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+C.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=g=>{if(!g)return"";var C=Math.max(0,Math.ceil((g-Date.now())/1e3));if(C<=0)return"resuming soon";var R=Math.floor(C/60),T=C%60;return"in "+(R>0?R+"m "+T+"s":T+"s")};function k(g){if(g<=0)return{ticks:[0],niceMax:1};let C=Math.pow(10,Math.floor(Math.log10(g))),R=C;g/R<2?R=C/2:g/R>5&&(R=C*2);let T=Math.ceil(g/R)*R,I=[];for(let F=0;F<=T;F+=R)I.push(F);return{ticks:I,niceMax:T}}function m(){var g=document.getElementById("q-throughput-chart");if(!g)return;var C=g.getContext("2d"),R=window.devicePixelRatio||1,T=g.parentElement.getBoundingClientRect(),I=44,F=50,P=20,M=T.width-40,se=180,oe=M-I-F,S=se-P;g.width=M*R,g.height=se*R,g.style.width=M+"px",g.style.height=se+"px",C.setTransform(R,0,0,R,0,0);var O=document.body.classList.contains("dark-mode"),Y="#8A857C",Z=O?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",te=O?"#A7B2FF":"#3B4AD6",J=O?"rgba(167,178,255,0.12)":"rgba(59,74,214,0.08)",re=O?"#F08A82":"#B42318",ce=O?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",fe=O?"#F5C842":"#B8860B",le=e.metricsPoints||[];if(le.length===0){C.fillStyle=Y,C.font="12px monospace",C.textAlign="center",C.fillText("No metrics data yet",M/2,se/2),E=null;return}var Oe=le.map(function(U){return U.completed}),_e=le.map(function(U){return U.failed}),Ue=le.map(function(U){return U.avgMs}),Re=le.length,Me=oe/(Re-1||1),Pe=Math.max(1,Math.max.apply(null,Oe),Math.max.apply(null,_e)),He=k(Pe),Ee=Math.max.apply(null,Ue),z=Ee>0?k(Ee):{ticks:[0],niceMax:1},ne=function(U){return S-U/He.niceMax*(S-10)},Q=function(U){return S-U/z.niceMax*(S-10)},_=function(U){return I+U*Me};C.textAlign="right",C.textBaseline="middle",C.font="10px monospace",He.ticks.forEach(function(U){var G=ne(U);C.strokeStyle=Z,C.lineWidth=1,C.beginPath(),C.moveTo(I,G),C.lineTo(M-F,G),C.stroke(),C.fillStyle=Y,C.fillText(U>=1e3?(U/1e3).toFixed(1)+"k":String(U),I-6,G)}),Ee>0&&(C.textAlign="left",z.ticks.forEach(function(U){var G=Q(U);C.fillStyle=fe,C.fillText(U>=1e3?(U/1e3).toFixed(1)+"s":U+"ms",M-F+6,G)}));var V=Date.now(),B=Math.min(6,Re);C.textAlign="center",C.textBaseline="top";for(var L=0;L0&&(C.beginPath(),Ue.forEach(function(U,G){var ee=_(G),x=Q(U);if(G===0)C.moveTo(ee,x);else{var W=(_(G-1)+ee)/2;C.bezierCurveTo(W,Q(Ue[G-1]),W,x,ee,x)}}),C.strokeStyle=fe,C.lineWidth=1,C.setLineDash([4,3]),C.stroke(),C.setLineDash([])),E={pts:le,maxLen:Re,marginLeft:I,step:Me,totalW:M,toX:_}}var E=null;function y(){var g=document.getElementById("q-throughput-chart");if(!(!g||g._tipBound)){g._tipBound=!0;var C=document.getElementById("q-chart-tooltip"),R=document.getElementById("q-chart-crosshair");g.addEventListener("mousemove",function(T){if(!(!E||!C||!R)){var I=E,F=g.getBoundingClientRect(),P=T.clientX-F.left,M=Math.round((P-I.marginLeft)/I.step);if(M<0||M>=I.maxLen){C.style.display="none",R.style.display="none";return}var se=I.pts[M],oe=Date.now(),S=Math.round((oe-se.ts)/6e4),O;if(S<=0)O="now";else if(S<60)O=S+"m ago";else if(S<1440){var Y=Math.floor(S/60),Z=S%60;O=Y+"h"+(Z?" "+Z+"m":"")+" ago"}else O=Math.round(S/1440)+"d ago";var te=' '+O+'
● completed: '+se.completed+'/min
● failed: '+se.failed+"/min
";if(se.avgMs>0){var J=se.avgMs>=1e3?(se.avgMs/1e3).toFixed(1)+"s":se.avgMs+"ms";te+='● avg time: '+J+"
"}C.innerHTML=te;var re=I.toX(M),ce=C.offsetWidth,fe=re+10;fe+ce>I.totalW&&(fe=re-ce-10),C.style.display="block",C.style.left=fe+"px",C.style.top="8px",R.style.display="block",R.style.left=re+"px"}}),g.addEventListener("mouseleave",function(){C&&(C.style.display="none"),R&&(R.style.display="none")})}}e.watch("metricsPoints",function(){s(y,50)})},hl=function(e,t,n,r){let s=ct();e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=R=>{if(!R)return"";let T=new Date(R).getTime();if(isNaN(T))return R;let I=Math.max(0,Date.now()-T),F=Math.floor(I/1e3);if(F<5)return"just now";if(F<60)return`${F}s ago`;let P=Math.floor(F/60);if(P<60)return`${P}m ago`;let M=Math.floor(P/60);if(M<24)return`${M}h ago`;let se=Math.floor(M/24);return se<7?`${se}d ago`:new Date(R).toLocaleDateString()},e.absTime=R=>{if(!R)return"";let T=new Date(R);return isNaN(T.getTime())?R:T.toLocaleString()},e.absTimeShort=R=>{if(!R)return"";let T=new Date(R);return isNaN(T.getTime())?R:T.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let i=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(R,T){let I=R&&(R.httpStatus||R.status)||null;if(typeof I=="number"){if(I>=500)return"error";if(I===401||I===403||I===404)return"info";if(I>=400)return"warn"}return T==="error"?"error":T==="warn"?"warn":"info"}function u(R){let T=(R.raw||[]).find(M=>M&&typeof M=="object"&&!Array.isArray(M));if(T){T.message&&i.test(T.message)?(R.displayMessage=T.message,R.displayContext=R.message):T.code&&i.test(String(T.code))?(R.displayMessage=String(T.code),R.displayContext=R.message):T.name&&T.name!=="AnonymousError"&&T.name!=="Error"?(R.displayMessage=T.name,R.displayContext=T.message||R.message):R.displayMessage=R.message,R._status=T.httpStatus||T.status||null,R._url=T.url||null,R._method=T.method||null,R._repoId=T.repoId||T.detail||null,R._detail=T.detail&&T.detail!==R._repoId?T.detail:null;let M=typeof T.stack=="string"?T.stack:null;for(var I=[T.cause,T.err].filter(Boolean),F=0;!M&&F{S==null||S===""||I.push([oe,S])};F("name",T&&T.name),F("code",R.displayMessage||T&&T.message),R._bucket&&F("kind",R._bucket),F("httpStatus",T&&T.httpStatus),T&&T.status&&!T.httpStatus&&F("status",T.status),F("module",R.module);let P=T&&T.detail;if(typeof P=="string"){let oe=P.trim();if(oe[0]==="{"||oe[0]==="[")try{P=JSON.parse(P)}catch{}}if(F("detail",P),F("repoId",T&&T.repoId),F("filePath",T&&T.filePath),F("upstreamStatus",T&&T.upstreamStatus),F("upstreamBody",T&&T.upstreamBody),F("url",R._url),F("err",T&&T.err),F("cause",T&&!T.err&&T.cause),F("ts",R.ts),!I.length)return JSON.stringify(R,null,2);let M=I.reduce((oe,S)=>Math.max(oe,S[0].length),0),se=["{"];return I.forEach(([oe,S],O)=>{let Z=` ${`"${oe}":`.padEnd(M+3," ")} `,te=O{let E=m.statusMessage||"(no message)";window.prompt(`Status message for ${m.repoId} (${m.status}):`,E)},e.fetchGithubInfo=m=>{let E=window.open("","_blank");E&&E.document.write("Loading GitHub info for "+m.repoId+"... "),t.get("/api/admin/repos/"+m.repoId+"/github").then(y=>{E&&(E.document.open(),E.document.write(''+JSON.stringify(y.data,null,2).replace(/[<>]/g,g=>g==="<"?"<":">")+" "),E.document.close())},y=>{let g=y&&y.data?JSON.stringify(y.data,null,2):String(y);E&&(E.document.body.innerHTML=''+g+" ")})};function f(m){t.get("/api/admin/users/"+m+"/repos",{}).then(E=>{e.repositories=E.data},E=>{console.error(E)})}function w(m){t.get("/api/admin/users/"+m,{}).then(E=>{e.userInfo=E.data},E=>{console.error(E)})}w(r.username),f(r.username),e.banUser=()=>{confirm(`Ban user ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/ban`).then(()=>w(r.username),m=>console.error(m))},e.activateUser=()=>{t.post(`/api/admin/users/${r.username}/activate`).then(()=>w(r.username),m=>console.error(m))},e.promoteUser=()=>{confirm(`Promote ${r.username} to admin?`)&&t.post(`/api/admin/users/${r.username}/promote`).then(()=>w(r.username),m=>console.error(m))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${r.username}?`)&&t.post(`/api/admin/users/${r.username}/demote`).then(()=>w(r.username),m=>console.error(m))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function h(){t.get("/api/admin/tokens").then(m=>{e.tokens=m.data||[]},m=>{m.status!==401&&m.status!==403&&console.error(m)})}h(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(m=>{e.tokenForm.plaintext=m.data.token,e.tokenForm.name="",h()},m=>console.error(m))},e.revokeToken=m=>{confirm(`Revoke token "${m.name}"?`)&&t.delete("/api/admin/tokens/"+m.id).then(()=>h(),E=>console.error(E))},e.removeCache=m=>{confirm("Remove cached files for "+m.repoId+"?")&&t.delete("/api/admin/repos/"+m.repoId).then(()=>f(r.username),E=>console.error(E))},e.removeRepository=m=>{confirm("Remove repository "+m.repoId+"?")&&t.delete("/api/repo/"+m.repoId+"/").then(()=>f(r.username),E=>console.error(E))},e.updateRepository=m=>{let E=ze({title:`Refreshing ${m.repoId}...`,date:new Date,body:`The repository ${m.repoId} is going to be refreshed.`});e.toasts.push(E),t.post(`/api/repo/${m.repoId}/refresh`).then(y=>{y.data.status=="ready"?E.title=`${m.repoId} is refreshed.`:E.title=`Refreshing of ${m.repoId}.`},y=>{E.title=`Error during the refresh of ${m.repoId}.`,E.body=y.body})},e.getGitHubRepositories=m=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(E=>{e.userInfo.repositories=E.data})};let k=null;e.watch("query",()=>{s.timeout.cancel(k),k=s.timeout(()=>{f(r.username)},500)},!0)},fl=function(e,t,n){let r=ct(),s=Zt();e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let i=y=>{if(y.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){y.preventDefault();let g=document.querySelector('.admin-filter-toolbar input[type="search"]');g&&g.focus()}};s(document,"keydown",i),e.on("dispose",()=>document.removeEventListener("keydown",i)),e.clearFilter=y=>{y==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[y]="",e.query.page=1},e.chips=[];let a=()=>{let y=[];(e.query.dateFrom||e.query.dateTo)&&y.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=y};e.statusCountFor=y=>{let g=(e.statusCounts||[]).find(_=>_._id===y);return g?g.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=y=>{e.query.sort===y?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=y,e.query.direction="desc"),e.query.page=1},e.sortIcon=y=>e.query.sort===y?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let u="admin.conferences.filterPrefs",f={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!1,expired:!1,removed:!1,error:!0,preparing:!0},w=loadFilterPrefs(u)||{};e.query=Object.assign({},f,w,{page:1,search:""});let h=n.search();h.search&&(e.query.search=h.search);let k="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(k)||"[]"),e.savePreset=()=>{let y=window.prompt("Preset name:");if(!y)return;let g=Object.assign({},e.query);delete g.page,e.presets=(e.presets||[]).filter(_=>_.name!==y),e.presets.push({name:y,query:g}),localStorage.setItem(k,JSON.stringify(e.presets))},e.applyPreset=y=>{Object.assign(e.query,y.query,{page:1})},e.deletePreset=y=>{e.presets=(e.presets||[]).filter(g=>g.name!==y.name),localStorage.setItem(k,JSON.stringify(e.presets))},e.removeConference=y=>{confirm("Remove conference "+y.conferenceID+"?")&&t.delete("/api/admin/conferences/"+y.conferenceID).then(()=>m(),g=>console.error(g))},e.exportCsv=()=>{let y=new URLSearchParams(Object.entries(e.query).filter(([,g])=>g!==""&&g!==!1&&g!=null));y.set("format","csv"),y.set("limit","10000"),window.open("/api/admin/conferences?"+y.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(y=>{e.total=y.data.total,e.totalPage=Math.ceil(y.data.total/e.query.limit),e.conferences=y.data.results,e.statusCounts=y.data.statusCounts||[]},y=>{e.fetchError=y&&y.data&&y.data.error||"Failed to load conferences",console.error(y)})}m();let E=null;e.watch("query",()=>{r.timeout.cancel(E),E=r.timeout(m,500);let{page:y,search:g,..._}=e.query;saveFilterPrefs(u,_),a()},!0),a()},ml=function(e,t,n,r,s){let i=ct();e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.queueList=[],e.jobs=[],e.selectedQueue="download",e.selectedStats=null,e.range="1h",e.allStates=["active","waiting","delayed","failed","completed"],e.stateFilter={active:!0,waiting:!0,delayed:!0,failed:!0,completed:!0},e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(g=>e.stateFilter[g._state]),e.jobProgressPct=g=>g&&g.progress&&typeof g.progress=="object"&&typeof g.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(g.progress.percent))):typeof g.progress=="number"?Math.max(0,Math.min(100,Math.round(g.progress))):null,e.jobDuration=g=>{if(!g.processedOn)return"-";let R=(g.finishedOn||Date.now())-g.processedOn;return R<1e3?R+"ms":(R/1e3).toFixed(1)+"s"},e.metricsPoints=[],e.selectQueue=g=>{e.selectedQueue=g,a(),u()},e.setRange=g=>{e.range=g,u()};function a(){let g={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:g}).then(_=>{e.queueList=_.data.queues||[],e.jobs=_.data.jobs||[],e.selectedStats=e.queueList.find(R=>R.key===e.selectedQueue)||e.queueList[0]||null},_=>console.error(_))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(g=>{e.metricsPoints=g.data.points||[],s(m,0)},g=>console.error(g))}a(),u();let f=r(()=>{e.query.autoRefresh&&(a(),u())},15e3);e.on("dispose",()=>r.cancel(f)),e.refreshNow=function(){a(),u()};function w(g){let _=g&&g.data&&(g.data.message||g.data.error)||"Request failed";e.actionError=_,s(()=>{e.actionError=null},5e3),console.error(g)}e.actionError=null,e.removeJob=g=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${g.id}`).then(a,w)},e.retryJob=g=>{t.post(`/api/admin/queue/${e.selectedQueue}/${g.id}`).then(a,w)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(a,g=>console.error(g))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(a,g=>console.error(g))},e.togglePause=()=>{let g=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${g}`).then(a,_=>console.error(_))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(a,g=>console.error(g))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(a,g=>console.error(g))};let h=null;e.watch("query.search",()=>{i.timeout.cancel(h),h=i.timeout(a,350)}),e.expanded={},e.toggleJob=g=>{e.expanded[g.id]=!e.expanded[g.id]},e.humanTime=g=>{if(!g)return"";let _=new Date(g);return _.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+_.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=g=>{if(!g)return"";var _=Math.max(0,Math.ceil((g-Date.now())/1e3));if(_<=0)return"resuming soon";var R=Math.floor(_/60),T=_%60;return"in "+(R>0?R+"m "+T+"s":T+"s")};function k(g){if(g<=0)return{ticks:[0],niceMax:1};let _=Math.pow(10,Math.floor(Math.log10(g))),R=_;g/R<2?R=_/2:g/R>5&&(R=_*2);let T=Math.ceil(g/R)*R,P=[];for(let F=0;F<=T;F+=R)P.push(F);return{ticks:P,niceMax:T}}function m(){var g=document.getElementById("q-throughput-chart");if(!g)return;var _=g.getContext("2d"),R=window.devicePixelRatio||1,T=g.parentElement.getBoundingClientRect(),P=44,F=50,V=20,M=T.width-40,se=180,oe=M-P-F,S=se-V;g.width=M*R,g.height=se*R,g.style.width=M+"px",g.style.height=se+"px",_.setTransform(R,0,0,R,0,0);var O=document.body.classList.contains("dark-mode"),Y="#8A857C",Z=O?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",te=O?"#A7B2FF":"#3B4AD6",J=O?"rgba(167,178,255,0.12)":"rgba(59,74,214,0.08)",re=O?"#F08A82":"#B42318",ce=O?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",fe=O?"#F5C842":"#B8860B",le=e.metricsPoints||[];if(le.length===0){_.fillStyle=Y,_.font="12px monospace",_.textAlign="center",_.fillText("No metrics data yet",M/2,se/2),E=null;return}var Oe=le.map(function(U){return U.completed}),_e=le.map(function(U){return U.failed}),Ue=le.map(function(U){return U.avgMs}),Re=le.length,Me=oe/(Re-1||1),Pe=Math.max(1,Math.max.apply(null,Oe),Math.max.apply(null,_e)),He=k(Pe),Ee=Math.max.apply(null,Ue),z=Ee>0?k(Ee):{ticks:[0],niceMax:1},ne=function(U){return S-U/He.niceMax*(S-10)},Q=function(U){return S-U/z.niceMax*(S-10)},C=function(U){return P+U*Me};_.textAlign="right",_.textBaseline="middle",_.font="10px monospace",He.ticks.forEach(function(U){var G=ne(U);_.strokeStyle=Z,_.lineWidth=1,_.beginPath(),_.moveTo(P,G),_.lineTo(M-F,G),_.stroke(),_.fillStyle=Y,_.fillText(U>=1e3?(U/1e3).toFixed(1)+"k":String(U),P-6,G)}),Ee>0&&(_.textAlign="left",z.ticks.forEach(function(U){var G=Q(U);_.fillStyle=fe,_.fillText(U>=1e3?(U/1e3).toFixed(1)+"s":U+"ms",M-F+6,G)}));var I=Date.now(),B=Math.min(6,Re);_.textAlign="center",_.textBaseline="top";for(var L=0;L0&&(_.beginPath(),Ue.forEach(function(U,G){var ee=C(G),x=Q(U);if(G===0)_.moveTo(ee,x);else{var W=(C(G-1)+ee)/2;_.bezierCurveTo(W,Q(Ue[G-1]),W,x,ee,x)}}),_.strokeStyle=fe,_.lineWidth=1,_.setLineDash([4,3]),_.stroke(),_.setLineDash([])),E={pts:le,maxLen:Re,marginLeft:P,step:Me,totalW:M,toX:C}}var E=null;function y(){var g=document.getElementById("q-throughput-chart");if(!(!g||g._tipBound)){g._tipBound=!0;var _=document.getElementById("q-chart-tooltip"),R=document.getElementById("q-chart-crosshair");g.addEventListener("mousemove",function(T){if(!(!E||!_||!R)){var P=E,F=g.getBoundingClientRect(),V=T.clientX-F.left,M=Math.round((V-P.marginLeft)/P.step);if(M<0||M>=P.maxLen){_.style.display="none",R.style.display="none";return}var se=P.pts[M],oe=Date.now(),S=Math.round((oe-se.ts)/6e4),O;if(S<=0)O="now";else if(S<60)O=S+"m ago";else if(S<1440){var Y=Math.floor(S/60),Z=S%60;O=Y+"h"+(Z?" "+Z+"m":"")+" ago"}else O=Math.round(S/1440)+"d ago";var te=' '+O+'
● completed: '+se.completed+'/min
● failed: '+se.failed+"/min
";if(se.avgMs>0){var J=se.avgMs>=1e3?(se.avgMs/1e3).toFixed(1)+"s":se.avgMs+"ms";te+='● avg time: '+J+"
"}_.innerHTML=te;var re=P.toX(M),ce=_.offsetWidth,fe=re+10;fe+ce>P.totalW&&(fe=re-ce-10),_.style.display="block",_.style.left=fe+"px",_.style.top="8px",R.style.display="block",R.style.left=re+"px"}}),g.addEventListener("mouseleave",function(){_&&(_.style.display="none"),R&&(R.style.display="none")})}}e.watch("metricsPoints",function(){s(y,50)})},hl=function(e,t,n,r){let s=ct();e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null&&n.url("/"),e.entries=[],e.visible=[],e.available=!0,e.cap=1e3,e.total=0,e.pageSize=250,e.expanded={},e.detailTab={},e.copyHint="",e.parsedFilterCount=0,e.stats={last24h:0,prev24h:0,delta:0,severity:{error:0,warn:0,info:0},unique:{error:0,warn:0,info:0},buckets:[],dropped:0},e.query={search:"",bucket:"",sort:"recent",group:"code",autoRefresh:!0},e.relTime=R=>{if(!R)return"";let T=new Date(R).getTime();if(isNaN(T))return R;let P=Math.max(0,Date.now()-T),F=Math.floor(P/1e3);if(F<5)return"just now";if(F<60)return`${F}s ago`;let V=Math.floor(F/60);if(V<60)return`${V}m ago`;let M=Math.floor(V/60);if(M<24)return`${M}h ago`;let se=Math.floor(M/24);return se<7?`${se}d ago`:new Date(R).toLocaleDateString()},e.absTime=R=>{if(!R)return"";let T=new Date(R);return isNaN(T.getTime())?R:T.toLocaleString()},e.absTimeShort=R=>{if(!R)return"";let T=new Date(R);return isNaN(T.getTime())?R:T.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})};let i=/^[a-zA-Z][a-zA-Z0-9]*(?:_[a-zA-Z0-9]+)+$/;function a(R,T){let P=R&&(R.httpStatus||R.status)||null;if(typeof P=="number"){if(P>=500)return"error";if(P===401||P===403||P===404)return"info";if(P>=400)return"warn"}return T==="error"?"error":T==="warn"?"warn":"info"}function u(R){let T=(R.raw||[]).find(M=>M&&typeof M=="object"&&!Array.isArray(M));if(T){T.message&&i.test(T.message)?(R.displayMessage=T.message,R.displayContext=R.message):T.code&&i.test(String(T.code))?(R.displayMessage=String(T.code),R.displayContext=R.message):T.name&&T.name!=="AnonymousError"&&T.name!=="Error"?(R.displayMessage=T.name,R.displayContext=T.message||R.message):R.displayMessage=R.message,R._status=T.httpStatus||T.status||null,R._url=T.url||null,R._method=T.method||null,R._repoId=T.repoId||T.detail||null,R._detail=T.detail&&T.detail!==R._repoId?T.detail:null;let M=typeof T.stack=="string"?T.stack:null;for(var P=[T.cause,T.err].filter(Boolean),F=0;!M&&F{S==null||S===""||P.push([oe,S])};F("name",T&&T.name),F("code",R.displayMessage||T&&T.message),R._bucket&&F("kind",R._bucket),F("httpStatus",T&&T.httpStatus),T&&T.status&&!T.httpStatus&&F("status",T.status),F("module",R.module);let V=T&&T.detail;if(typeof V=="string"){let oe=V.trim();if(oe[0]==="{"||oe[0]==="[")try{V=JSON.parse(V)}catch{}}if(F("detail",V),F("repoId",T&&T.repoId),F("filePath",T&&T.filePath),F("upstreamStatus",T&&T.upstreamStatus),F("upstreamBody",T&&T.upstreamBody),F("url",R._url),F("err",T&&T.err),F("cause",T&&!T.err&&T.cause),F("ts",R.ts),!P.length)return JSON.stringify(R,null,2);let M=P.reduce((oe,S)=>Math.max(oe,S[0].length),0),se=["{"];return P.forEach(([oe,S],O)=>{let Z=` ${`"${oe}":`.padEnd(M+3," ")} `,te=Ofe===0?ce:re+ce).join(`
`)}else typeof S=="number"||typeof S=="boolean"?J=String(S):J=JSON.stringify(S);se.push(`${Z}${J}${te}`)}),se.push("}"),se.join(`
-`)}function w(R){let T=[],I="",F=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,P=0,M;for(;M=F.exec(R);)I+=R.slice(P,M.index),P=F.lastIndex,T.push({key:M[1],op:M[2]||"=",val:M[3]});return I+=R.slice(P),{filters:T,free:I.trim().toLowerCase()}}function h(R,T){for(let I of T.filters){let F=(M,se,oe)=>{let S=parseFloat(M),O=parseFloat(se);return oe==="="?String(M)===String(se):oe==="!="?String(M)!==String(se):oe===">="?S>=O:oe==="<="?S<=O:oe===">"?S>O:oe==="<"?ST&&P._bucket!==T?!1:h(P,R)),F=e.query.group;if(F){let P=oe=>F==="module"?oe.module:oe.displayMessage||oe.message||"_",M=new Map;for(let oe of I){let S=P(oe);if(M.has(S)){let O=M.get(S);O.count++,O._related.push(oe),new Date(oe.ts)>new Date(O.ts)&&(O.ts=oe.ts,O._url=oe._url,O._status=oe._status),new Date(oe.ts)new Date(S.ts).getTime()>=se).length;I=Array.from(M.values())}else I=I.map((P,M)=>(P._key="row:"+M+":"+P.ts,P._related=[P],P._firstSeen=P.ts,P._lastHourCount=0,P.count=1,P));e.query.sort==="count"?I.sort((P,M)=>M.count-P.count||new Date(M.ts)-new Date(P.ts)):I.sort((P,M)=>new Date(M.ts)-new Date(P.ts)),e.visible=I}function m(R){let T=R?e.entries.length:0,I=R?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:T,limit:I}}).then(F=>{let P=(F.data.entries||[]).map(u);e.entries=R?e.entries.concat(P):P,e.available=!!F.data.available,e.cap=F.data.max||e.cap,e.total=F.data.total||e.entries.length,k()},F=>console.error(F))}e.loadMore=()=>m(!0),e.canLoadMore=()=>e.entries.length{let T=R.data||{},I=T.prev24h?Math.round((T.last24h-T.prev24h)/T.prev24h*100):0;e.stats={last24h:T.last24h||0,prev24h:T.prev24h||0,delta:I,severity:T.severity||{error:0,warn:0,info:0},unique:T.unique||{error:0,warn:0,info:0},buckets:T.buckets||[],dropped:T.dropped||0}},R=>console.error(R))}function y(){m(),E()}e.barPx=(R,T)=>{let I=e.stats.buckets||[],F=0;for(let oe of I)F=Math.max(F,(oe.error||0)+(oe.warn||0)+(oe.info||0));if(!F)return 0;let P=(R.error||0)+(R.warn||0)+(R.info||0);if(!P)return 0;let M=Math.round(P/F*60),se=R[T]||0;return Math.round(se/P*M)},e.bucketTitle=R=>`${new Date(R.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${R.error||0} err \xB7 ${R.warn||0} warn \xB7 ${R.info||0} info`,e.toggle=R=>{e.expanded[R._key]=!e.expanded[R._key]},e.setBucket=R=>{e.query.bucket=R},e.refreshNow=y,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(y,R=>console.error(R))},e.exportCsv=()=>{let R=["ts","level","module","displayMessage","_status","_url","_repoId"],T=[R.join(",")];for(let M of e.visible)T.push(R.map(se=>{let oe=M[se]==null?"":String(M[se]);return/[",\n]/.test(oe)?`"${oe.replace(/"/g,'""')}"`:oe}).join(","));let I=new Blob([T.join(`
-`)],{type:"text/csv;charset=utf-8"}),F=URL.createObjectURL(I),P=document.createElement("a");P.href=F,P.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(P),P.click(),document.body.removeChild(P),URL.revokeObjectURL(F)};function g(R){e.copyHint=`${R} copied`,s.timeout(()=>{e.copyHint=""},1500)}e.copyJson=R=>{navigator.clipboard.writeText(R._detailJson).then(()=>g("JSON"))},e.copyCurl=R=>{if(!R._url)return;let I=`curl -X ${R._method||"GET"} '${window.location.origin}${R._url}'`;navigator.clipboard.writeText(I).then(()=>g("curl"))},y();let C=r(()=>{e.query.autoRefresh&&y()},15e3);e.on("dispose",()=>r.cancel(C)),e.watch("query.search",k),e.watch("query.bucket",k),e.watch("query.sort",k),e.watch("query.group",k)},vl=function(e,t,n,r){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null){n.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.performanceError=null,e.formatMs=function(y){return y==null?"":y<1e3?y+" ms":+(y/1e3).toFixed(1)+" s"},e.latencyBound=function(y,g){return y.count?y[g]==null?"> 60 s":"\u2264 "+e.formatMs(y[g]):"No samples"},e.firstByteBound=function(y){return e.latencyBound({count:y.firstByteCount,p95UpperMs:y.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(y){return Math.max(0,Math.round((Date.now()-y.sampledAt)/1e3))},e.peakRss=function(y){return(e.performance.runtimeSeries||[]).filter(function(g){return g.instance===y.instance}).reduce(function(g,C){return Math.max(g,C.rss)},y.memory.rss)},e.performanceWarning=function(y){return e.sampleAge(y)>45||y.droppedBatches||y.droppedMetrics||y.sockets?.closeWait>0||y.eventLoop.p95Ms>100||y.memoryLimitBytes&&y.memory.rss>y.memoryLimitBytes*.8};var s=!1;e.loadPerformance=function(){var y=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==y&&(e.performance=null),!s&&(s=!0,t.get("/api/admin/performance",{params:{minutes:y}}).then(function(g){y===e.performanceMinutes&&(e.performance=g.data,e.performanceError=g.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){y===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){s=!1,y!==e.performanceMinutes&&e.loadPerformance()}))};function i(y){if(y==null)return"\u2014";for(var g=["B","KB","MB","GB","TB"],C=0,R=y;R>=1024&&C0?1:0)+" "+g[C]}e.humanBytes=i;function a(y){if(!y)return"\u2014";var g=Math.floor(y/86400),C=Math.floor(y%86400/3600),R=Math.floor(y%3600/60);return g>0?g+"d "+(C<10?"0":"")+C+"h":C>0?C+"h "+(R<10?"0":"")+R+"m":R+"m"}e.humanDuration=a;function u(y){return y==null?"\u2014":y>=1e6?(y/1e6).toFixed(1)+"M":y>=1e3?(y/1e3).toFixed(1)+"K":String(y)}e.humanNum=u,e.queueTotal=function(y){return y?(y.waiting||0)+(y.active||0)+(y.delayed||0)+(y.failed||0):0},e.statusCount=function(y){if(!e.data||!e.data.repos)return 0;for(var g=e.data.repos.statusBreakdown||[],C=0;Ch[C])&&(h[C]=g[C]),(k[C]==null||g[C]vr(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ll(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dl(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>tl(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ol(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>is(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>is(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>is(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>nl(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>il(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>lr(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>lr(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>al(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Za(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>xa(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>el(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>sl(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>rl(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>ar(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>ar(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vl(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ul(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>cl(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>pl(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fl(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ml(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>hl(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var Ep={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},Cp={key:0},_p={key:1,role:"alert"},Sp={key:2,role:"status"},Np={key:0},Dp={key:1},Rp=["disabled"],Tp=["disabled"],Ap=["disabled"],Op={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Ip={id:"review-policy-title"},Pp={key:0,role:"alert"},Vp=["disabled"],qp=["disabled"],Mp=["disabled"],$p={key:6,role:"status"};function gl(e,t){return l(),d("section",Ep,[t[12]||(t[12]=o("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=o("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=o("p",null,"This records your approval as the repository owner or an authorized coauthor.",-1)),e.user?.username?p("v-if",!0):(l(),d("p",Cp,[...t[6]||(t[6]=[b("Sign in first, then reopen the artifact link from your submission. ",-1),o("a",{href:"/signin"},"Sign in",-1)])])),e.error?(l(),d("p",_p,c(e.error),1)):p("v-if",!0),e.saved?(l(),d("p",Sp,[t[7]||(t[7]=b("Consent recorded. ",-1)),e.handoffEnabled?(l(),d("span",Np,"Continue to review to finish linking.")):(l(),d("span",Dp,"Artifact linking is not complete. Return to your submission to check its status."))])):p("v-if",!0),e.saved&&e.handoffEnabled?(l(),d("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...n)=>e.continueReview&&e.continueReview(...n)),disabled:e.busy},"Continue to review",8,Rp)):p("v-if",!0),e.user?.username&&!e.saved?(l(),d("form",{key:4,onSubmit:t[2]||(t[2]=de((...n)=>e.loadPreview&&e.loadPreview(...n),["prevent"]))},[t[8]||(t[8]=o("label",{for:"review-repository"},"Anonymous repository ID",-1)),D(o("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=n=>e.repositoryId=n),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,Tp),[[Ft,e.repositoryId]]),t[9]||(t[9]=o("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),o("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Ap)],32)):p("v-if",!0),e.preview&&!e.saved?(l(),d("section",Op,[o("h2",Ip,c(e.preview.repositoryName),1),o("p",null,"Access: "+c(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),o("p",null,"Retain until "+c(e.preview.policy.retainUntil)+". Policy version "+c(e.preview.policy.version)+".",1),e.expired?(l(),d("p",Pp,"This preview expired. Open a new artifact link from your submission.")):p("v-if",!0),o("div",null,[o("label",null,[D(o("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=n=>e.acceptAccess=n),disabled:e.busy||e.uncertain||e.expired},null,8,Vp),[[Ks,e.acceptAccess]]),t[10]||(t[10]=b(" I approve the access policy above.",-1))])]),o("div",null,[o("label",null,[D(o("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=n=>e.acceptRetention=n),disabled:e.busy||e.uncertain||e.expired},null,8,qp),[[Ks,e.acceptRetention]]),t[11]||(t[11]=b(" I approve retention until the date above.",-1))])]),o("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...n)=>e.confirmConsent&&e.confirmConsent(...n)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},c(e.uncertain?"Retry confirmation":"Confirm consent"),9,Mp)])):p("v-if",!0),e.busy?(l(),d("p",$p,"Waiting for the server\u2026")):p("v-if",!0)])}var Lp={class:"container paper-page connections-page"},Up={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Fp={key:1,role:"status"},zp=["disabled"],Hp={key:3},Bp={key:0,class:"connection-resources"},jp=["disabled"],Gp=["disabled"],Wp={key:0,role:"status"},Kp={class:"connections-grid"},Yp={key:0},Jp={class:"connection-title"},Qp={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Xp={class:"connection-actions"},Zp={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},xp={key:1,class:"connection-installations"},ef={key:0},tf=["href"],of={class:"sr-only"},nf=["disabled"],sf={class:"connection-title"},rf={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},af={key:1,class:"connection-revoke"},lf={key:0},df=["disabled"],uf={class:"connection-resources"},cf={class:"connection-title"},pf={class:"connection-count"},ff={key:0,class:"connection-empty"},mf={class:"connection-resource-name"},hf={key:0,class:"connection-resource-actions"},vf=["disabled","onClick"],yf=["disabled","onClick"],gf={key:1,class:"connection-help",role:"status"},bf=["disabled","onClick"];function bl(e,t){return l(),d("div",Lp,[t[25]||(t[25]=pe('',2)),e.connectionError?(l(),d("p",Up,c(e.connectionError),1)):p("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Fp,"Loading your connections\u2026")):p("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=n=>e.loadConnections())},"Try again",8,zp)):p("v-if",!0),e.connections?(l(),d("div",Hp,[e.connections.emailNotificationsEnabled?(l(),d("section",Bp,[t[6]||(t[6]=o("h2",null,"Email alerts",-1)),t[7]||(t[7]=o("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),o("form",{onSubmit:t[2]||(t[2]=de(n=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=o("label",{for:"notification-email"},"Email address",-1)),D(o("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=n=>e.notificationEmail=n),disabled:e.busy},null,8,jp),[[Ft,e.notificationEmail]]),o("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,Gp),e.emailSaved?(l(),d("p",Wp,"Email address saved.")):p("v-if",!0)],32)])):p("v-if",!0),o("div",Kp,[e.connections.appEnabled?(l(),d("section",Yp,[t[13]||(t[13]=o("div",{class:"connection-top"},[o("i",{class:"fab fa-github","aria-hidden":"true"}),o("span",{class:"connection-badge"},"Recommended")],-1)),o("div",Jp,[t[8]||(t[8]=o("h2",null,"GitHub App",-1)),o("span",{class:A(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},c(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[14]||(t[14]=o("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(l(),d("p",Qp,c(e.connections.appError)+". Reconnect to restore access.",1)):p("v-if",!0),o("div",Xp,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",Zp,[...t[9]||(t[9]=[b("Manage repository access ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),o("a",{class:A(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},c(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3)]),t[15]||(t[15]=o("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",xp,[(l(!0),d(X,null,ae(e.connections.installations,n=>(l(),d("li",{key:n.id},[o("div",null,[o("strong",null,c(n.account),1),n.suspended?(l(),d("span",ef," \xB7 Suspended")):p("v-if",!0)]),o("a",{target:"_self",href:"/github/app/install?installationId="+n.id},[t[10]||(t[10]=b("Manage access ",-1)),o("span",of,"for "+c(n.account),1),t[11]||(t[11]=b(" \u2192",-1))],8,tf)]))),128))])):p("v-if",!0),o("button",{class:"connection-link",disabled:e.busy,onClick:t[3]||(t[3]=n=>e.loadConnections())},[...t[12]||(t[12]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Refresh access",-1)])],8,nf)])):p("v-if",!0),o("section",null,[t[18]||(t[18]=o("div",{class:"connection-top"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-key"})]),o("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),o("div",sf,[t[16]||(t[16]=o("h2",null,"GitHub OAuth",-1)),o("span",{class:A(["connection-status",{"is-connected":e.connections.oauthConnected}])},c(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[19]||(t[19]=o("p",null,"For existing OAuth anonymizations.",-1)),t[20]||(t[20]=o("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",rf,c(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):p("v-if",!0),e.connections.oauthConnected?(l(),d("div",af,[e.connections.gistCount?(l(),d("p",lf,c(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):p("v-if",!0),t[17]||(t[17]=o("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-danger",disabled:e.busy||e.connections.resources.some(n=>n.connection==="oauth"),onClick:t[4]||(t[4]=n=>e.disconnectOAuth())},"Revoke OAuth access",8,df)):p("v-if",!0)])):p("v-if",!0)])]),o("section",uf,[o("div",cf,[t[21]||(t[21]=o("h2",null,"Repository connections",-1)),o("span",pf,c(e.connections.resources?.length||0)+" resources",1)]),t[23]||(t[23]=o("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?p("v-if",!0):(l(),d("div",ff,[...t[22]||(t[22]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),o("div",null,[o("h3",null,"No repository connections yet"),o("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),o("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(X,null,ae(e.connections.resources,n=>(l(),d("div",{class:"connection-resource",key:n.type+n.id},[o("div",mf,[o("strong",null,c(n.name||n.id),1),o("small",null,c(n.type)+" \xB7 "+c(n.id),1)]),o("span",{class:A(["connection-badge",{"connection-badge-muted":n.connection==="oauth"}])},c(n.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(n.status)&&(n.status!=="download"||n.type==="pull-request"&&(!n.statusDate||new Date(n.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",hf,[o("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:r=>e.changeConnection(n,"github-app",!0)},"Check read-only access",8,vf),n.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:r=>e.changeConnection(n,"github-app",!1)},c(n.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,yf)):p("v-if",!0),n.eligible===!1?(l(),d("span",gf,"Access unavailable. Allow this repository on GitHub, then check again.")):p("v-if",!0)])):p("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(n.status)&&(n.status!=="download"||n.type==="pull-request"&&(!n.statusDate||new Date(n.statusDate).getTime()<=Date.now()-3e5))&&n.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:r=>e.changeConnection(n,"oauth",!1)},"Use OAuth",8,bf)):p("v-if",!0)]))),128)),t[24]||(t[24]=o("p",{class:"connection-footnote"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):p("v-if",!0)])}var wf={class:"container paper-page auth-page"},kf={class:"auth-layout"},Ef={class:"auth-options"},Cf={key:0},_f={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},Sf={key:1},Nf={key:1},Df={key:2,class:"auth-legacy"},Rf={key:3,role:"status"};function wl(e,t){return l(),d("div",wf,[t[5]||(t[5]=o("a",{class:"auth-back",href:"/"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-arrow-left"})]),b(" Anonymous GitHub")],-1)),o("div",kf,[t[4]||(t[4]=pe('Your research, ready for review
Your code. Your identity,protected. Sign in to GitHub Sign in to create and manage your anonymizations.
',1)),o("div",Ef,[e.accountRecovery?(l(),d("section",Cf,[t[0]||(t[0]=o("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=o("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("a",_f,"Verify with previous GitHub connection")):(l(),d("p",Sf,"Account verification is currently unavailable. Please try again later."))])):p("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(l(),d("section",Nf,[...t[2]||(t[2]=[pe('Read-only access
Continue with GitHub Connect through the GitHub App with read-only repository access.
You choose which repositories to share No permission to write to your codeSign in with GitHub Your existing anonymizations and connections stay with your account. ',6)])])):p("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(l(),d("section",Df,[...t[3]||(t[3]=[o("div",{class:"connection-title"},[o("h2",null,"Continue with GitHub")],-1),o("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),o("a",{class:"connection-link",target:"_self",href:"/github/login"},[b("Sign in with GitHub "),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-arrow-right"})])],-1)])])):p("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",Rf,"GitHub sign-in is currently unavailable. Please try again later.")):p("v-if",!0)])])])}var Tf={class:"paper-empty"};function kl(e,t){return l(),d("div",Tf,[...t[0]||(t[0]=[pe('Error \xB7 404
This linkisn\u2019t here. The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.
',1)])])}var Af={class:"container paper-page admin-page"},Of={class:"admin-summary"},If={class:"summary-total"},Pf=["aria-pressed"],Vf={class:"count"},qf=["aria-pressed"],Mf={class:"count"},$f=["aria-pressed"],Lf={class:"count"},Uf=["aria-pressed"],Ff={class:"count"},zf=["aria-pressed"],Hf={class:"count"},Bf={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},jf={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},Gf={class:"admin-filter-row"},Wf={class:"search-wrap"},Kf={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},Yf={key:0,class:"admin-search-hint"},Jf={class:"admin-filter-inline","aria-label":"Pagination"},Qf=["disabled"],Xf={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Zf=["disabled"],xf={key:0,class:"admin-filter-row"},em={class:"admin-active-chips"},tm={class:"key"},om=["onClick"],nm={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},sm={class:"paper-table-head",role:"row"},rm={role:"columnheader"},im={role:"columnheader"},am={role:"columnheader"},lm={class:"paper-table-row",role:"row"},dm={class:"cell-anon",role:"cell"},um={class:"anon-text"},cm=["textContent","href"],pm={class:"anon-sub"},fm={class:"cell-status",role:"cell"},mm=["textContent"],hm={class:"cell-views num",role:"cell"},vm=["textContent","href"],ym={class:"cell-expires",role:"cell"},gm={class:"cell-actions",role:"cell"},bm={class:"dropdown"},wm={class:"dropdown-menu dropdown-menu-right"},km=["href"],Em=["href"],Cm=["href"],_m=["onClick"],Sm={key:0,class:"paper-table-empty"},Nm={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},Dm={style:{"font-size":"12px",color:"var(--ink-muted)"}},Rm={key:0,class:"pagination-compact"},Tm=["disabled"],Am=["max"],Om=["disabled"],Im={class:"admin-filter-inline"},Pm={class:"form-control form-control-sm"};function El(e,t){let n=be("field"),r=be("form");return l(),d("div",Af,[t[47]||(t[47]=pe('Admin \xA0/\xA0 Conferences
Conferences Overview Repositories Users Conferences Queues Errors ',3)),o("div",Of,[o("span",If,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[13]||(t[13]=b("Ready ",-1)),o("span",Vf,c(e.fmt?.number(e.statusCountFor("ready"))),1)],10,Pf),o("button",{type:"button",class:A(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[14]||(t[14]=b("Preparing ",-1)),o("span",Mf,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,qf),o("button",{type:"button",class:A(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[15]||(t[15]=b("Errored ",-1)),o("span",Lf,c(e.fmt?.number(e.statusCountFor("error"))),1)],10,$f),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[16]||(t[16]=b("Expired ",-1)),o("span",Ff,c(e.fmt?.number(e.statusCountFor("expired"))),1)],10,Uf),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[17]||(t[17]=b("Removed ",-1)),o("span",Hf,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,zf)]),e.fetchError?(l(),d("div",Bf,[t[18]||(t[18]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",jf,[o("div",Gf,[o("div",Wf,[D(o("input",Kf,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",Yf,"/"))]),t[22]||(t[22]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])]),o("span",Jf,[o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1)])],8,Qf),o("span",Xf,c(e.query?.page)+"/"+c(e.totalPage||1),1),o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Zf)])]),e.chips?.length?(l(),d("div",xf,[o("div",em,[(l(!0),d(X,null,ae(e.chips,(s,i)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[o("span",tm,c(s?.label),1),o("span",null,c(s?.value),1),o("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,om)]))),128))])])):p("v-if",!0)])),[[r,e.viewState]]),o("div",nm,[o("div",sm,[o("div",rm,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=s=>e.sortBy("name"))},[t[25]||(t[25]=b("Conference ",-1)),e.sortIcon("name")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[24]||(t[24]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",im,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=s=>e.sortBy("status"))},[t[27]||(t[27]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=o("div",{role:"columnheader",class:"num"},"Repos",-1)),o("div",am,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=s=>e.sortBy("startDate"))},[t[29]||(t[29]=b("Window ",-1)),e.sortIcon("startDate")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredConferences,(s,i)=>(l(),d("div",lm,[o("div",dm,[t[33]||(t[33]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[o("use",{href:"#project-icon-conference"})],-1)),o("div",um,[o("a",{class:"repo-name",textContent:c(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,cm),o("div",pm,[o("span",null,c(s?.conferenceID),1),t[32]||(t[32]=b("\xA0\xB7\xA0",-1)),o("span",null,c(e.fmt?.number(s?.price||0))+" \u20AC",1)])])]),o("div",fm,[o("span",{class:A(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,mm)]),o("div",hm,[t[34]||(t[34]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1)),o("a",{title:"Show repositories in this conference",textContent:c(e.fmt?.number(s?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+s?.conferenceID)},null,8,vm)]),o("div",ym,[t[35]||(t[35]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),b(" "+c(e.fmt?.date(s?.startDate))+" \u2013 "+c(e.fmt?.date(s?.endDate)),1)]),o("div",gm,[o("div",bm,[t[41]||(t[41]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",wm,[o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[36]||(t[36]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit",-1)])],8,km),o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[37]||(t[37]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View",-1)])],8,Em),o("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+s?.conferenceID)},[...t[38]||(t[38]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),b(" View repositories",-1)])],8,Cm),t[40]||(t[40]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeConference(s),["prevent"])},[...t[39]||(t[39]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,_m),[[K,s?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",Sm,[...t[42]||(t[42]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No conferences match the current filters.",-1)])])):p("v-if",!0)]),o("div",Nm,[o("span",Dm,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",Rm,[o("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[43]||(t[43]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1),b(" Previous",-1)])],8,Tm),D(o("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,Am),[[n,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),o("span",null,"of "+c(e.totalPage),1),o("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[44]||(t[44]=[b("Next ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Om)])):p("v-if",!0),o("span",Im,[t[46]||(t[46]=o("label",null,"Per page",-1)),D((l(),d("select",Pm,[...t[45]||(t[45]=[pe('10 25 50 100 250 ',5)])])),[[n,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var Vm={class:"container paper-page admin-page errors-page"},qm={class:"errors-header"},Mm={class:"errors-actions"},$m={class:"kpi-grid"},Lm={class:"kpi-card"},Um={class:"kpi-value"},Fm={key:0},zm={key:1},Hm={class:"kpi-card kpi-error"},Bm={class:"kpi-value"},jm={class:"kpi-sub"},Gm={class:"kpi-card kpi-warn"},Wm={class:"kpi-value"},Km={class:"kpi-sub"},Ym={class:"kpi-card kpi-info"},Jm={class:"kpi-value"},Qm={class:"kpi-sub"},Xm={class:"kpi-value"},Zm={class:"kpi-sub"},xm={key:0,class:"dropped-warn"},eh={class:"volume-chart"},th={class:"volume-bars"},oh=["title"],nh={class:"errors-toolbar","aria-label":"Error filters"},sh={class:"seg-tabs"},rh={class:"search-wrap"},ih={type:"search",class:"form-control",placeholder:"code:repo_not_found module:route status:>=400",autocomplete:"off"},ah={key:0,class:"filter-count"},lh={class:"select-wrap"},dh={class:"form-control form-control-sm"},uh={class:"select-wrap"},ch={class:"form-control form-control-sm"},ph={class:"autoref"},fh={type:"checkbox"},mh={key:0,class:"admin-empty"},hh={key:1,class:"errors-pager"},vh={key:2,class:"errors-list"},yh=["onClick"],gh={class:"col-when"},bh={class:"when-rel"},wh={class:"when-abs"},kh={class:"col-sev"},Eh={class:"sev-label"},Ch={class:"col-mod"},_h={class:"pill pill-module"},Sh={class:"col-msg"},Nh={class:"msg-code"},Dh={key:0,class:"msg-context"},Rh={key:1,class:"msg-detail"},Th={key:2,class:"msg-url"},Ah={class:"col-count"},Oh={key:0,class:"count-pill"},Ih={key:1,class:"count-pill count-pill-muted"},Ph={class:"col-status"},Vh={key:0,class:"errors-row-detail"},qh={class:"detail-tabs"},Mh=["onClick"],$h=["onClick"],Lh=["onClick"],Uh={class:"detail-body"},Fh={class:"detail-main"},zh={key:0},Hh={key:1,class:"stack-pre"},Bh={key:2,class:"related-list"},jh={class:"when-abs"},Gh={class:"msg-url"},Wh={class:"detail-actions"},Kh=["onClick"],Yh=["onClick"],Jh={key:0,class:"copy-hint"},Qh={class:"detail-aside"},Xh={class:"aside-block"},Zh=["title"],xh={class:"aside-block"},ev=["title"],tv={class:"aside-block"},ov={class:"aside-value"},nv={key:0,class:"aside-sub"},sv={key:0,class:"aside-block"},rv=["href"],iv={key:1,class:"aside-block"},av={class:"aside-value mono"};function Cl(e,t){let n=be("field"),r=be("form");return l(),d("div",Vm,[t[32]||(t[32]=o("div",{class:"paper-crumbs"},[b("Admin \xA0/\xA0 "),o("span",{class:"here"},"Errors")],-1)),o("header",qm,[t[10]||(t[10]=o("h1",{class:"paper-page-title"},"Errors",-1)),o("div",Mm,[o("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=s=>e.exportCsv())},[...t[8]||(t[8]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export CSV",-1)])]),o("button",{class:"btn btn-sm btn-danger-soft",type:"button",onClick:t[1]||(t[1]=s=>e.clearAll())},[...t[9]||(t[9]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Clear all",-1)])])])]),t[33]||(t[33]=pe(' Overview Repositories Users Conferences Queues Errors ',1)),o("section",$m,[o("div",Lm,[t[11]||(t[11]=o("div",{class:"kpi-label"},"Last 24h",-1)),o("div",Um,c(e.stats?.last24h),1),o("div",{class:A(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h?(l(),d("span",Fm,c(e.stats?.delta>0?"+":"")+c(e.stats?.delta)+"% vs yesterday",1)):p("v-if",!0),e.stats?.prev24h?p("v-if",!0):(l(),d("span",zm,"no prior baseline"))],2)]),o("div",Hm,[t[12]||(t[12]=o("div",{class:"kpi-label"},"Errors (5xx)",-1)),o("div",Bm,c(e.stats?.severity?.error),1),o("div",jm,c(e.stats?.unique?.error)+" unique",1)]),o("div",Gm,[t[13]||(t[13]=o("div",{class:"kpi-label"},"Warnings (4xx)",-1)),o("div",Wm,c(e.stats?.severity?.warn),1),o("div",Km,c(e.stats?.unique?.warn)+" unique",1)]),o("div",Ym,[t[14]||(t[14]=o("div",{class:"kpi-label"},"Info (auth, 404)",-1)),o("div",Jm,c(e.stats?.severity?.info),1),o("div",Qm,c(e.stats?.unique?.info)+" unique",1)]),o("div",{class:A(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[15]||(t[15]=o("div",{class:"kpi-label"},"Captured",-1)),o("div",Xm,c(e.total),1),o("div",Zm,[b(" cap "+c(e.cap)+" \xB7 "+c(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",xm," \xB7 "+c(e.stats?.dropped)+" dropped",1)):p("v-if",!0)])],2)]),o("section",eh,[t[16]||(t[16]=pe('Volume \xB7 24h \xB7 1h buckets error warn info
',1)),o("div",th,[(l(!0),d(X,null,ae(e.stats?.buckets,(s,i)=>(l(),d("div",{class:"volume-bar",key:i,title:e.bucketTitle(s)},[o("span",{class:"seg seg-error",style:qe({height:e.barPx(s,"error")+"px"})},null,4),o("span",{class:"seg seg-warn",style:qe({height:e.barPx(s,"warn")+"px"})},null,4),o("span",{class:"seg seg-info",style:qe({height:e.barPx(s,"info")+"px"})},null,4)],8,oh))),128))])]),D((l(),d("form",nh,[o("div",sh,[o("button",{type:"button",class:A({active:e.query?.bucket===""}),onClick:t[2]||(t[2]=s=>e.setBucket(""))},"All",2),o("button",{type:"button",class:A({active:e.query?.bucket==="error"}),onClick:t[3]||(t[3]=s=>e.setBucket("error"))},"5xx",2),o("button",{type:"button",class:A({active:e.query?.bucket==="warn"}),onClick:t[4]||(t[4]=s=>e.setBucket("warn"))},"4xx",2),o("button",{type:"button",class:A({active:e.query?.bucket==="info"}),onClick:t[5]||(t[5]=s=>e.setBucket("info"))},"Info",2)]),o("div",rh,[t[17]||(t[17]=o("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-search"})],-1)),D(o("input",ih,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",ah,c(e.parsedFilterCount)+" filter"+c(e.parsedFilterCount>1?"s":""),1)):p("v-if",!0)]),o("div",lh,[t[19]||(t[19]=o("label",null,"Sort",-1)),D((l(),d("select",dh,[...t[18]||(t[18]=[o("option",{value:"recent"},"Most recent",-1),o("option",{value:"count"},"Most frequent",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.sort=s},value:e.query?.sort,form:null,options:{}}]])]),o("div",uh,[t[21]||(t[21]=o("label",null,"Group",-1)),D((l(),d("select",ch,[...t[20]||(t[20]=[o("option",{value:""},"Off",-1),o("option",{value:"code"},"By code",-1),o("option",{value:"module"},"By module",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.group=s},value:e.query?.group,form:null,options:{}}]])]),o("label",ph,[D(o("input",fh,null,512),[[n,{state:e.viewState,set:s=>{e.query.autoRefresh=s},value:e.query?.autoRefresh,form:null,options:{}}]]),t[22]||(t[22]=b(" Auto-refresh ",-1))]),o("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[6]||(t[6]=s=>e.refreshNow()),"aria-label":"Refresh"},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])])])),[[r,e.viewState]]),e.visible?.length?p("v-if",!0):(l(),d("div",mh,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",hh,[o("span",null,"Showing "+c(e.entries?.length)+" of "+c(e.total)+" captured",1),o("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>e.loadMore())},"Load older")])):p("v-if",!0),e.visible?.length?(l(),d("div",vh,[t[31]||(t[31]=pe('When Severity Module Message Count Status
',1)),(l(!0),d(X,null,ae(e.visible,(s,i)=>(l(),d("div",{class:A(["errors-row",{open:e.expanded[s?._key]}]),key:s?._key},[o("div",{class:"errors-row-main",onClick:a=>e.toggle(s)},[o("div",gh,[o("div",bh,c(e.relTime(s?.ts)),1),o("div",wh,c(e.absTimeShort(s?.ts)),1)]),o("div",kh,[o("span",{class:A(["sev-dot","sev-"+s?._bucket])},null,2),o("span",Eh,c(e.fmt?.title(s?._bucket)),1)]),o("div",Ch,[o("span",_h,c(s?.module),1)]),o("div",Sh,[o("strong",Nh,c(s?.displayMessage),1),s?.displayContext&&s?.displayContext!==s?.displayMessage?(l(),d("span",Dh,c(s?.displayContext),1)):p("v-if",!0),s?._detail?(l(),d("span",Rh,c(s?._detail),1)):p("v-if",!0),s?._url?(l(),d("div",Th,c(s?._url),1)):p("v-if",!0)]),o("div",Ah,[s?.count>1?(l(),d("span",Oh,"\xD7"+c(s?.count),1)):p("v-if",!0),s?.count===1?(l(),d("span",Ih,"\xD71")):p("v-if",!0)]),o("div",Ph,[s?._status?(l(),d("span",{key:0,class:A(["status-pill","status-"+s?._bucket])},c(s?._status),3)):p("v-if",!0)])],8,yh),e.expanded[s?._key]?(l(),d("div",Vh,[o("div",qh,[o("button",{type:"button",class:A({active:e.detailTab[s?._key]==="raw"||!e.detailTab[s?._key]}),onClick:a=>e.detailTab[s._key]="raw"},"Raw",10,Mh),s?._stack?(l(),d("button",{key:0,type:"button",class:A({active:e.detailTab[s?._key]==="stack"}),onClick:a=>e.detailTab[s._key]="stack"},"Stack",10,$h)):p("v-if",!0),s?.count>1?(l(),d("button",{key:1,type:"button",class:A({active:e.detailTab[s?._key]==="related"}),onClick:a=>e.detailTab[s._key]="related"},"Related ("+c(s?.count)+")",11,Lh)):p("v-if",!0)]),o("div",Uh,[o("div",Fh,[(e.detailTab[s?._key]||"raw")==="raw"?(l(),d("pre",zh,c(s?._detailJson),1)):p("v-if",!0),e.detailTab[s?._key]==="stack"?(l(),d("pre",Hh,c(s?._stack),1)):p("v-if",!0),e.detailTab[s?._key]==="related"?(l(),d("div",Bh,[(l(!0),d(X,null,ae(s?._related,(a,u)=>(l(),d("div",{class:"related-row",key:u},[o("span",jh,c(e.absTimeShort(a?.ts)),1),o("span",Gh,c(a?._url),1),a?._status?(l(),d("span",{key:0,class:A(["status-pill","status-"+a?._bucket])},c(a?._status),3)):p("v-if",!0)]))),128))])):p("v-if",!0),o("div",Wh,[o("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(s)},[...t[24]||(t[24]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-code"})],-1),b(" Copy curl",-1)])],8,Kh),o("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(s)},[...t[25]||(t[25]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-clipboard"})],-1),b(" Copy JSON",-1)])],8,Yh),e.copyHint?(l(),d("span",Jh,c(e.copyHint),1)):p("v-if",!0)])]),o("aside",Qh,[o("div",Xh,[t[26]||(t[26]=o("div",{class:"aside-label"},"First seen",-1)),o("div",{class:"aside-value",title:e.absTime(s?._firstSeen)},c(e.relTime(s?._firstSeen)),9,Zh)]),o("div",xh,[t[27]||(t[27]=o("div",{class:"aside-label"},"Last seen",-1)),o("div",{class:"aside-value",title:e.absTime(s?.ts)},c(e.relTime(s?.ts)),9,ev)]),o("div",tv,[t[28]||(t[28]=o("div",{class:"aside-label"},"Occurrences",-1)),o("div",ov,[b(c(s?.count),1),s?._lastHourCount?(l(),d("span",nv," \xB7 "+c(s?._lastHourCount)+" this hour",1)):p("v-if",!0)])]),s?._repoId?(l(),d("div",sv,[t[29]||(t[29]=o("div",{class:"aside-label"},"Repository",-1)),o("a",{class:"aside-value",href:e.safeUrl("/r/"+s?._repoId)},c(s?._repoId),9,rv)])):p("v-if",!0),s?._url?(l(),d("div",iv,[t[30]||(t[30]=o("div",{class:"aside-label"},"URL",-1)),o("div",av,c(s?._url),1)])):p("v-if",!0)])])])):p("v-if",!0)],2))),128))])):p("v-if",!0)])}var lv={class:"container paper-page admin-page overview-page"},dv={key:0,class:"admin-empty"},uv={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},cv={key:2},pv={class:"ov-kpi-row"},fv={class:"ov-kpi-card"},mv={class:"ov-kpi-value"},hv={class:"ov-kpi-sub"},vv={class:"ov-kpi-card"},yv={class:"ov-kpi-sub"},gv={class:"ov-kpi-card"},bv={class:"ov-kpi-sub"},wv={class:"ov-kpi-card"},kv={class:"ov-kpi-sub"},Ev={class:"ov-kpi-card"},Cv={class:"ov-kpi-value"},_v={class:"ov-kpi-sub"},Sv={class:"ov-daily-row"},Nv={class:"ov-daily-card"},Dv={class:"ov-daily-value"},Rv={class:"ov-daily-card"},Tv={class:"ov-daily-value"},Av={class:"ov-daily-sub"},Ov={class:"ov-daily-card"},Iv={class:"ov-daily-value"},Pv={class:"ov-chart-row"},Vv={class:"ov-chart-card"},qv={key:0,class:"ov-spark-bars"},Mv=["data-tip","aria-label"],$v={key:1,class:"ov-spark-x"},Lv={class:"ov-chart-card"},Uv={key:0,class:"ov-spark-bars"},Fv=["data-tip","aria-label"],zv={key:1,class:"ov-spark-x"},Hv={class:"ov-chart-card"},Bv={class:"ov-chart-head"},jv={class:"ov-chart-legend"},Gv={key:0,class:"ov-spark-bars"},Wv=["data-tip","aria-label"],Kv={key:1,class:"ov-spark-x"},Yv={class:"ov-chart-card"},Jv={key:0,class:"ov-spark-bars"},Qv=["data-tip","aria-label"],Xv={key:1,class:"ov-spark-x"},Zv={class:"ov-triple-row"},xv={class:"ov-panel-card"},ey={class:"ov-panel-head"},ty={class:"ov-panel-meta"},oy={class:"ov-stacked-bar"},ny={class:"ov-bar-legend"},sy={href:"/admin/repositories",class:"ov-legend-item"},ry={class:"ov-legend-n"},iy={href:"/admin/repositories",class:"ov-legend-item"},ay={class:"ov-legend-n"},ly={href:"/admin/repositories",class:"ov-legend-item"},dy={class:"ov-legend-n"},uy={href:"/admin/repositories",class:"ov-legend-item"},cy={class:"ov-legend-n"},py={href:"/admin/repositories",class:"ov-legend-item"},fy={class:"ov-legend-n"},my={class:"ov-panel-card"},hy={class:"ov-panel-head"},vy={class:"ov-panel-meta"},yy={class:"ov-error-bars"},gy={class:"ov-ebar-row"},by={class:"ov-ebar-track"},wy={class:"ov-ebar-n"},ky={class:"ov-ebar-row"},Ey={class:"ov-ebar-track"},Cy={class:"ov-ebar-n"},_y={class:"ov-ebar-row"},Sy={class:"ov-ebar-track"},Ny={class:"ov-ebar-n"},Dy={key:0,class:"ov-panel-foot"},Ry={href:"/admin/errors"},Ty={class:"ov-panel-card"},Ay={class:"ov-routes-table"},Oy={class:"ov-route-row",href:"/admin/queues"},Iy={class:"ov-route-n"},Py={class:"ov-route-n"},Vy={class:"ov-route-row",href:"/admin/queues"},qy={class:"ov-route-n"},My={class:"ov-route-n"},$y={class:"ov-route-row",href:"/admin/queues"},Ly={class:"ov-route-n"},Uy={class:"ov-route-n"},Fy={class:"ov-services-card"},zy={class:"ov-services-head"},Hy={class:"ov-panel-meta"},By={class:"ov-services-grid"},jy={class:"ov-svc"},Gy={class:"ov-svc-info"},Wy={class:"ov-svc-meta"},Ky={class:"ov-svc-detail"},Yy={class:"ov-svc"},Jy={class:"ov-svc-info"},Qy={key:0,class:"ov-svc-meta"},Xy={key:1,class:"ov-svc-meta"},Zy={class:"ov-svc"},xy={class:"ov-svc-info"},eg={key:0,class:"ov-svc-meta"},tg={key:1,class:"ov-svc-meta"},og={class:"ov-svc"},ng={class:"ov-svc-info"},sg={key:0,class:"ov-svc-meta"},rg={key:1,class:"ov-svc-meta"},ig={class:"ov-svc"},ag={class:"ov-svc-info"},lg={class:"ov-svc-meta"},dg={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},ug={class:"ov-panel-head ov-performance-head"},cg={class:"ov-performance-window"},pg={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},fg={key:1,class:"ov-performance-empty",role:"status"},mg={key:2},hg={class:"paper-tabs ov-performance-tabs",role:"tablist","aria-label":"Performance metrics"},vg=["aria-selected","tabindex"],yg=["aria-selected","tabindex"],gg=["aria-selected","tabindex"],bg={id:"performance-routes",role:"tabpanel","aria-labelledby":"performance-routes-tab"},wg={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},kg={class:"ov-metrics-table"},Eg={scope:"row",class:"ov-metric-name"},Cg={class:"num"},_g={class:"num"},Sg={class:"num"},Ng={class:"num"},Dg={class:"num"},Rg={key:1,class:"ov-performance-empty"},Tg={id:"performance-processes",role:"tabpanel","aria-labelledby":"performance-processes-tab"},Ag={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},Og={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},Ig={class:"ov-metrics-table"},Pg={scope:"row",class:"ov-metric-name"},Vg={key:0,class:"ov-metric-warn"},qg={class:"num"},Mg={class:"num"},$g={class:"num"},Lg={class:"num"},Ug={class:"num"},Fg={class:"num"},zg={class:"num"},Hg={class:"num"},Bg={id:"performance-stages",role:"tabpanel","aria-labelledby":"performance-stages-tab"},jg={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},Gg={class:"ov-metrics-table"},Wg={scope:"row",class:"ov-metric-name"},Kg={class:"num"},Yg={class:"num"},Jg={class:"num"},Qg={key:1,class:"ov-performance-empty"};function _l(e,t){return l(),d("div",lv,[t[65]||(t[65]=pe('Admin \xA0/\xA0 Overview
Overview Repositories Users Conferences Queues Errors ',3)),e.loading?(l(),d("div",dv,"Loading overview\u2026")):p("v-if",!0),e.error?(l(),d("div",uv,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.error),1)])):p("v-if",!0),e.data?(l(),d("div",cv,[p(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",pv,[o("div",fv,[t[10]||(t[10]=o("div",{class:"ov-kpi-label"},[b("Repositories "),o("span",{class:"ov-dot ov-dot-ok"})],-1)),o("div",mv,c(e.humanNum(e.data?.repos?.total)),1),o("div",hv,"+"+c(e.data?.repos?.newRepos24h)+" \xB7 last 24h",1)]),o("div",vv,[t[11]||(t[11]=o("div",{class:"ov-kpi-label"},"CPU",-1)),o("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},c(e.data?.system?.cpuPercent)+"%",3),o("div",yv,c(e.data?.system?.cpuCount)+" cores \xB7 load "+c(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),o("div",gv,[t[12]||(t[12]=o("div",{class:"ov-kpi-label"},"Memory",-1)),o("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},c(e.data?.system?.memPercent)+"%",3),o("div",bv,c(e.humanBytes(e.data?.system?.memUsed))+" / "+c(e.humanBytes(e.data?.system?.memTotal)),1)]),o("div",wv,[t[13]||(t[13]=o("div",{class:"ov-kpi-label"},"Disk",-1)),o("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},c(e.data?.system?.diskPercent)+"%",3),o("div",kv,c(e.humanBytes(e.data?.system?.diskUsed))+" / "+c(e.humanBytes(e.data?.system?.diskTotal))+" \xB7 "+c(e.data?.system?.diskMount),1)]),o("div",Ev,[t[14]||(t[14]=o("div",{class:"ov-kpi-label"},"Uptime",-1)),o("div",Cv,c(e.humanDuration(e.data?.system?.uptime)),1),o("div",_v,c(e.data?.system?.nodeVersion)+" \xB7 "+c(e.data?.system?.platform),1)])]),p(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Sv,[o("div",Nv,[t[15]||(t[15]=o("div",{class:"ov-daily-label"},"New repos today",-1)),o("div",Dv,"+"+c(e.fmt?.number(e.data?.daily?.today?.repositories)),1),t[16]||(t[16]=o("div",{class:"ov-daily-sub"},"since yesterday",-1))]),o("div",Rv,[t[17]||(t[17]=o("div",{class:"ov-daily-label"},"New users today",-1)),o("div",Tv,"+"+c(e.fmt?.number(e.data?.daily?.today?.users)),1),o("div",Av,c(e.fmt?.number(e.data?.users?.total))+" total users",1)]),o("div",Ov,[t[18]||(t[18]=o("div",{class:"ov-daily-label"},"Page views today",-1)),o("div",Iv,"+"+c(e.fmt?.number(e.data?.daily?.today?.pageViews)),1),t[19]||(t[19]=o("div",{class:"ov-daily-sub"},"since yesterday",-1))])]),p(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Pv,[o("div",Vv,[t[20]||(t[20]=o("div",{class:"ov-chart-head"},[o("span",{class:"ov-chart-title"},"Daily page views \xB7 30d"),o("span",{class:"ov-chart-legend"},[o("span",{class:"ov-dot-legend ov-dot-accent"}),b("views/day")])],-1)),e.data?.history?.length?(l(),d("div",qv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyPageViews)+" views","aria-label":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyPageViews)+" views"},[o("span",{class:"ov-spark-fill",style:qe({height:e.historyBarH(n,"dailyPageViews")+"px"})},null,4)],8,Mv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",$v,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),o("div",Lv,[t[21]||(t[21]=o("div",{class:"ov-chart-head"},[o("span",{class:"ov-chart-title"},"New repos \xB7 30d"),o("span",{class:"ov-chart-legend"},[o("span",{class:"ov-dot-legend ov-dot-ok-fill"}),b("repos/day")])],-1)),e.data?.history?.length?(l(),d("div",Uv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyRepositories)+" repos","aria-label":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyRepositories)+" repos"},[o("span",{class:"ov-spark-fill ov-spark-fill-alt",style:qe({height:e.historyBarH(n,"dailyRepositories")+"px"})},null,4)],8,Fv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",zv,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),o("div",Hv,[o("div",Bv,[t[23]||(t[23]=o("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),o("span",jv,[t[22]||(t[22]=o("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),b("total users \xB7 "+c(e.fmt?.number(e.historyRange("nbUsers").min))+"\u2013"+c(e.fmt?.number(e.historyRange("nbUsers").max)),1)])]),e.data?.history?.length?(l(),d("div",Gv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": "+e.fmt?.number(n?.nbUsers)+" users","aria-label":e.historyLabel(n)+": "+e.fmt?.number(n?.nbUsers)+" users"},[o("span",{class:"ov-spark-fill ov-spark-fill-user",style:qe({height:e.historyRangeH(n,"nbUsers")+"px"})},null,4)],8,Wv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Kv,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),o("div",Yv,[t[24]||(t[24]=o("div",{class:"ov-chart-head"},[o("span",{class:"ov-chart-title"},"New users \xB7 30d"),o("span",{class:"ov-chart-legend"},[o("span",{class:"ov-dot-legend ov-dot-new-user-fill"}),b("users/day")])],-1)),e.data?.history?.length?(l(),d("div",Jv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyUsers)+" users","aria-label":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyUsers)+" users"},[o("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:qe({height:e.historyBarH(n,"dailyUsers")+"px"})},null,4)],8,Qv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Xv,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)])]),p(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Zv,[p(" Repo status breakdown "),o("div",xv,[o("div",ey,[t[25]||(t[25]=o("span",{class:"ov-panel-title"},"Repo status",-1)),o("span",ty,c(e.fmt?.number(e.data?.repos?.total))+" total",1)]),o("div",oy,[o("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:qe({width:e.barPct("ready")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:qe({width:e.barPct("preparing")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:qe({width:e.barPct("error")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:qe({width:e.barPct("expired")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:qe({width:e.barPct("removed")+"%"})},null,4)]),o("div",ny,[o("a",sy,[t[26]||(t[26]=o("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[27]||(t[27]=b(" ready ",-1)),o("span",ry,c(e.fmt?.number(e.statusCount("ready"))),1)]),o("a",iy,[t[28]||(t[28]=o("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[29]||(t[29]=b(" preparing ",-1)),o("span",ay,c(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),o("a",ly,[t[30]||(t[30]=o("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[31]||(t[31]=b(" error ",-1)),o("span",dy,c(e.fmt?.number(e.statusCount("error"))),1)]),o("a",uy,[t[32]||(t[32]=o("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[33]||(t[33]=b(" expired ",-1)),o("span",cy,c(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),o("a",py,[t[34]||(t[34]=o("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[35]||(t[35]=b(" removed ",-1)),o("span",fy,c(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),p(" Error breakdown "),o("div",my,[o("div",hy,[t[36]||(t[36]=o("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),o("span",vy,c(e.data?.errors?.last24h)+" total",1)]),o("div",yy,[o("div",gy,[t[37]||(t[37]=o("span",{class:"ov-ebar-label"},"5xx",-1)),o("span",by,[o("span",{class:"ov-ebar-fill ov-ebar-error",style:qe({width:e.errPct("error")+"%"})},null,4)]),o("span",wy,c(e.data?.errors?.severity?.error),1)]),o("div",ky,[t[38]||(t[38]=o("span",{class:"ov-ebar-label"},"4xx",-1)),o("span",Ey,[o("span",{class:"ov-ebar-fill ov-ebar-warn",style:qe({width:e.errPct("warn")+"%"})},null,4)]),o("span",Cy,c(e.data?.errors?.severity?.warn),1)]),o("div",_y,[t[39]||(t[39]=o("span",{class:"ov-ebar-label"},"Info",-1)),o("span",Sy,[o("span",{class:"ov-ebar-fill ov-ebar-info",style:qe({width:e.errPct("info")+"%"})},null,4)]),o("span",Ny,c(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",Dy,[o("a",Ry,c(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):p("v-if",!0)]),p(" Top routes / queues "),o("div",Ty,[t[44]||(t[44]=o("div",{class:"ov-panel-head"},[o("span",{class:"ov-panel-title"},"Queues"),o("span",{class:"ov-panel-meta"},"by state")],-1)),o("div",Ay,[t[43]||(t[43]=pe('Queue Active Wait Failed
',1)),o("a",Oy,[t[40]||(t[40]=o("span",{class:"ov-route-name"},"download",-1)),o("span",Iy,c(e.data?.queues?.download?.active),1),o("span",Py,c(e.data?.queues?.download?.waiting),1),o("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},c(e.data?.queues?.download?.failed),3)]),o("a",Vy,[t[41]||(t[41]=o("span",{class:"ov-route-name"},"remove",-1)),o("span",qy,c(e.data?.queues?.remove?.active),1),o("span",My,c(e.data?.queues?.remove?.waiting),1),o("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},c(e.data?.queues?.remove?.failed),3)]),o("a",$y,[t[42]||(t[42]=o("span",{class:"ov-route-name"},"cache",-1)),o("span",Ly,c(e.data?.queues?.cache?.active),1),o("span",Uy,c(e.data?.queues?.cache?.waiting),1),o("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},c(e.data?.queues?.cache?.failed),3)])])])]),p(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Fy,[o("div",zy,[t[45]||(t[45]=o("span",{class:"ov-panel-title"},"Services",-1)),o("span",Hy,c(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+c(e.data?.conferences?.total)+" conferences",1)]),o("div",By,[o("div",jy,[t[47]||(t[47]=o("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),o("div",Gy,[t[46]||(t[46]=o("span",{class:"ov-svc-name"},"web",-1)),o("span",Wy,c(e.data?.system?.nodeVersion),1)]),o("span",Ky,"uptime "+c(e.humanDuration(e.data?.system?.uptime)),1)]),o("div",Yy,[o("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),o("div",Jy,[t[48]||(t[48]=o("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",Qy,c(e.queueTotal(e.data?.queues?.download))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.download)?p("v-if",!0):(l(),d("span",Xy,"idle"))])]),o("div",Zy,[o("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),o("div",xy,[t[49]||(t[49]=o("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",eg,c(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.cache)?p("v-if",!0):(l(),d("span",tg,"idle"))])]),o("div",og,[o("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),o("div",ng,[t[50]||(t[50]=o("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",sg,c(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.remove)?p("v-if",!0):(l(),d("span",rg,"idle"))])]),o("div",ig,[o("span",{class:A(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),o("div",ag,[t[51]||(t[51]=o("span",{class:"ov-svc-name"},"errors",-1)),o("span",lg,c(e.data?.errors?.last24h)+" / 24h",1)])])])])])):p("v-if",!0),o("section",dg,[o("div",ug,[t[54]||(t[54]=o("div",null,[o("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),o("p",{class:"ov-performance-note"},"Request latency and process health \xB7 refreshes every 30 seconds")],-1)),o("div",cg,[t[53]||(t[53]=o("label",{for:"performance-window"},"Time range",-1)),D(o("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=n=>e.performanceMinutes=n),onChange:t[1]||(t[1]=n=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[52]||(t[52]=[o("option",{value:15},"Last 15 minutes",-1),o("option",{value:60},"Last hour",-1)])],544),[[ia,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(l(),d("div",pg,[t[55]||(t[55]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),o("span",null,c(e.performanceError),1),o("button",{type:"button",class:"btn btn-sm",onClick:t[2]||(t[2]=n=>e.loadPerformance())},"Retry")])):p("v-if",!0),!e.performance&&!e.performanceError?(l(),d("p",fg,"Loading performance monitoring\u2026")):p("v-if",!0),e.performance?.available?(l(),d("div",mg,[o("div",hg,[o("button",{id:"performance-routes-tab",type:"button",class:A(["paper-tab",{active:e.performanceTab==="routes"}]),role:"tab","aria-selected":e.performanceTab==="routes",tabindex:e.performanceTab==="routes"?0:-1,"aria-controls":"performance-routes",onClick:t[3]||(t[3]=n=>e.performanceTab="routes"),onKeydown:t[4]||(t[4]=n=>e.previewTabKeydown(n))},"Routes",42,vg),o("button",{id:"performance-processes-tab",type:"button",class:A(["paper-tab",{active:e.performanceTab==="processes"}]),role:"tab","aria-selected":e.performanceTab==="processes",tabindex:e.performanceTab==="processes"?0:-1,"aria-controls":"performance-processes",onClick:t[5]||(t[5]=n=>e.performanceTab="processes"),onKeydown:t[6]||(t[6]=n=>e.previewTabKeydown(n))},"Processes",42,yg),o("button",{id:"performance-stages-tab",type:"button",class:A(["paper-tab",{active:e.performanceTab==="stages"}]),role:"tab","aria-selected":e.performanceTab==="stages",tabindex:e.performanceTab==="stages"?0:-1,"aria-controls":"performance-stages",onClick:t[7]||(t[7]=n=>e.performanceTab="stages"),onKeydown:t[8]||(t[8]=n=>e.previewTabKeydown(n))},"Work stages",42,gg)]),D(o("div",bg,[e.performance.routes?.length?(l(),d("div",wg,[o("table",kg,[t[56]||(t[56]=o("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[57]||(t[57]=o("thead",null,[o("tr",null,[o("th",{scope:"col"},"Route"),o("th",{scope:"col",class:"num"},"Requests"),o("th",{scope:"col",class:"num"},"Average"),o("th",{scope:"col",class:"num"},"First byte p95"),o("th",{scope:"col",class:"num"},"p95"),o("th",{scope:"col",class:"num"},"p99"),o("th",{scope:"col",class:"num"},"Interrupted"),o("th",{scope:"col",class:"num"},"5xx"),o("th",{scope:"col",class:"num"},"Slow")])],-1)),o("tbody",null,[(l(!0),d(X,null,ae(e.performance.routes,n=>(l(),d("tr",{key:n.service+n.method+n.route},[o("th",Eg,[o("span",null,c(n.route),1),o("small",null,c(n.service)+" \xB7 "+c(n.method),1)]),o("td",Cg,c(e.fmt.number(n.count)),1),o("td",_g,c(e.formatMs(n.avgMs)),1),o("td",Sg,c(e.firstByteBound(n)),1),o("td",Ng,c(e.latencyBound(n,"p95UpperMs")),1),o("td",Dg,c(e.latencyBound(n,"p99UpperMs")),1),o("td",{class:A(["num",{"ov-metric-warn":n.aborted>0}])},c(e.fmt.number(n.aborted)),3),o("td",{class:A(["num",{"ov-metric-warn":n.errors>0}])},c(e.fmt.number(n.errors)),3),o("td",{class:A(["num",{"ov-metric-warn":n.slow>0}])},c(e.fmt.number(n.slow)),3)]))),128))])])])):(l(),d("p",Rg,"No recorded requests in this time range yet."))],512),[[K,e.performanceTab==="routes"]]),D(o("div",Tg,[t[61]||(t[61]=o("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(l(),d("div",Og,[o("table",Ig,[t[59]||(t[59]=o("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[60]||(t[60]=o("thead",null,[o("tr",null,[o("th",{scope:"col"},"Process"),o("th",{scope:"col",class:"num"},"RSS / limit"),o("th",{scope:"col",class:"num"},"CPU"),o("th",{scope:"col",class:"num"},"Event loop p95"),o("th",{scope:"col",class:"num"},"Active requests"),o("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),o("th",{scope:"col",class:"num"},"Workers / waiting"),o("th",{scope:"col",class:"num"},"Sample age"),o("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),o("tbody",null,[(l(!0),d(X,null,ae(e.performance.instances,n=>(l(),d("tr",{key:n.instance,class:A({"ov-metric-warning-row":e.performanceWarning(n)})},[o("th",Pg,[o("span",null,c(n.instance),1),e.performanceWarning(n)?(l(),d("small",Vg,[...t[58]||(t[58]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1),b(" Needs attention",-1)])])):p("v-if",!0)]),o("td",qg,[b(c(e.humanBytes(n.memory.rss))+" / "+c(e.humanBytes(n.memoryLimitBytes)),1),o("small",null,"Peak "+c(e.humanBytes(e.peakRss(n))),1)]),o("td",Mg,c(n.cpuPercent.toFixed(1))+"%",1),o("td",$g,c(n.eventLoop.p95Ms.toFixed(1))+" ms",1),o("td",Lg,c(n.activeRequests),1),o("td",Ug,c(n.sockets?.descriptors??"Unavailable")+" / "+c(n.sockets?.closeWait??"Unavailable"),1),o("td",Fg,c(n.workers?.running??0)+" / "+c(n.workers?.waiting??0),1),o("td",zg,c(e.sampleAge(n))+" s",1),o("td",Hg,c(n.droppedBatches)+" / "+c(n.droppedMetrics),1)],2))),128))])])])):(l(),d("div",Ag,"No recent process samples. Monitoring coverage is incomplete."))],512),[[K,e.performanceTab==="processes"]]),D(o("div",Bg,[e.performance.stages?.some(n=>n.metric!=="first_byte")?(l(),d("div",jg,[o("table",Gg,[t[62]||(t[62]=o("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[63]||(t[63]=o("thead",null,[o("tr",null,[o("th",{scope:"col"},"Work stage"),o("th",{scope:"col",class:"num"},"Samples"),o("th",{scope:"col",class:"num"},"Average"),o("th",{scope:"col",class:"num"},"p95")])],-1)),o("tbody",null,[(l(!0),d(X,null,ae(e.performance.stages.filter(n=>n.metric!=="first_byte"),n=>(l(),d("tr",{key:n.service+n.metric},[o("th",Wg,[o("span",null,c(n.metric),1),o("small",null,c(n.service),1)]),o("td",Kg,c(e.fmt.number(n.count)),1),o("td",Yg,c(e.formatMs(n.avgMs)),1),o("td",Jg,c(e.latencyBound(n,"p95UpperMs")),1)]))),128))])])])):(l(),d("p",Qg,"No recorded work stages or cache results in this time range yet."))],512),[[K,e.performanceTab==="stages"]]),t[64]||(t[64]=o("details",{class:"ov-performance-help"},[o("summary",null,"How to read these metrics"),o("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):p("v-if",!0)])])}var Xg={class:"container paper-page admin-page"},Zg={class:"q-header"},xg={class:"q-header-actions"},eb={class:"q-range-btns"},tb={class:"q-cards"},ob=["aria-pressed","onKeydown","onClick"],sb={class:"q-card-head"},rb=["textContent"],ib=["textContent"],ab={class:"q-card-sub"},lb={key:0,class:"q-card-bar"},db={key:0,class:"q-detail"},ub={class:"q-throughput"},cb={class:"q-section-label"},pb={class:"q-section-right"},fb={class:"q-stats-panel"},mb={class:"q-section-label"},hb={class:"q-stats-grid"},vb={class:"q-stat"},yb=["textContent"],gb={class:"q-stat"},bb=["textContent"],wb={class:"q-stat"},kb=["textContent"],Eb={class:"q-stat"},Cb=["textContent"],_b={class:"q-stat"},Sb=["textContent"],Nb={class:"q-stat"},Db=["textContent"],Rb={class:"q-stats-actions"},Tb=["disabled"],Ab={class:"q-jobs"},Ob={class:"q-jobs-header"},Ib={class:"q-section-label"},Pb={class:"q-state-filters"},Vb={class:"q-state-toggle"},qb={type:"checkbox"},Mb={class:"q-search-row"},$b={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},Lb={class:"q-auto-refresh"},Ub={type:"checkbox"},Fb={key:0,class:"q-table"},zb=["onClick"],Hb={class:"q-cell-state"},Bb=["textContent"],jb=["textContent"],Gb={class:"q-cell-id"},Wb=["textContent","href"],Kb={class:"q-cell-payload"},Yb=["textContent"],Jb={key:0,class:"q-payload-detail"},Qb=["textContent"],Xb=["textContent"],Zb={class:"q-cell-progress"},xb={key:0,class:"q-progress-wrap"},e1=["textContent"],t1={class:"q-cell-actions"},o1=["onClick"],n1=["onClick"],s1={key:0,class:"q-detail-row"},r1={colspan:"7"},i1={class:"q-job-detail"},a1={class:"q-job-detail-grid"},l1={class:"q-job-detail-item"},d1={class:"q-job-detail-value"},u1=["textContent","href"],c1={class:"q-job-detail-item"},p1={class:"q-job-detail-value"},f1=["textContent"],m1={key:0,class:"q-job-detail-item"},h1=["textContent"],v1={key:1,class:"q-job-detail-item"},y1=["textContent"],g1={key:2,class:"q-job-detail-item"},b1={class:"q-job-detail-value"},w1={key:3,class:"q-job-detail-item"},k1=["textContent"],E1={key:4,class:"q-job-detail-item"},C1=["textContent"],_1={key:5,class:"q-job-detail-item"},S1=["textContent"],N1={key:6,class:"q-job-detail-item"},D1=["textContent"],R1={key:7,class:"q-job-detail-item"},T1=["textContent"],A1={key:0,class:"q-job-detail-error"},O1=["textContent"],I1={key:1},P1=["textContent"],V1={class:"q-job-detail-actions"},q1=["onClick"],M1=["onClick"],$1=["href"],L1={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},U1={key:0},F1={key:1};function Sl(e,t){let n=be("field");return l(),d("div",Xg,[t[48]||(t[48]=o("div",{class:"paper-crumbs"},[b("Admin \xA0/\xA0 "),o("span",{class:"here"},"Queues")],-1)),o("div",Zg,[t[12]||(t[12]=o("h1",{class:"paper-page-title"},"Queues",-1)),o("div",xg,[o("div",eb,[o("button",{class:A(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[0]||(t[0]=r=>e.setRange("1h"))},"1h",2),o("button",{class:A(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[1]||(t[1]=r=>e.setRange("6h"))},"6h",2),o("button",{class:A(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[2]||(t[2]=r=>e.setRange("24h"))},"24h",2),o("button",{class:A(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[3]||(t[3]=r=>e.setRange("7d"))},"7d",2)]),o("button",{class:"btn btn-sm",onClick:t[4]||(t[4]=r=>e.pauseAll())},"Pause all"),o("button",{class:"btn btn-sm btn-danger-soft",onClick:t[5]||(t[5]=r=>e.drainSelected())},"Drain "+c(e.selectedQueue),1)])]),t[49]||(t[49]=pe(' Overview Repositories Users Conferences Queues Errors ',1)),p(" Queue overview cards "),o("div",tb,[(l(!0),d(X,null,ae(e.queueList,(r,s)=>(l(),d("div",{class:A(["q-card",{selected:e.selectedQueue==r?.key,paused:r?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===r.key,onKeydown:[Ao(de(i=>e.selectQueue(r.key),["prevent"]),["enter"]),Ao(de(i=>e.selectQueue(r.key),["prevent"]),["space"])],onClick:i=>e.selectQueue(r.key)},[o("div",sb,[o("span",{class:A(["q-dot",{"q-dot-red":r?.paused||r?.counts?.failed>0}])},null,2),o("span",{class:"q-card-name",textContent:c(r?.label)},null,8,rb)]),o("div",{class:"q-card-count",textContent:c((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0))},null,8,ib),o("div",ab,[o("span",null,"waiting \xB7 "+c(r?.counts?.active||0)+" active",1),r?.counts?.active?(l(),d("div",lb,[o("div",{class:"q-card-bar-fill",style:qe({width:r?.counts?.active/((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0)||1)*100+"%"})},null,4)])):p("v-if",!0)])],42,ob))),256))]),p(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",db,[o("div",ub,[o("div",cb,[b(c(e.selectedQueue)+" \xB7 throughput ",1),o("span",pb,[t[13]||(t[13]=o("span",{class:"q-legend-completed"},"\u25CF",-1)),t[14]||(t[14]=b(" completed ",-1)),t[15]||(t[15]=o("span",{class:"q-legend-failed"},"\u25CF",-1)),t[16]||(t[16]=b(" failed ",-1)),t[17]||(t[17]=o("span",{class:"q-legend-exec"},"- -",-1)),b(" avg time \xB7 "+c(e.range),1)])]),t[18]||(t[18]=o("div",{class:"q-chart-wrap"},[o("canvas",{id:"q-throughput-chart",height:"180"}),o("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}}),o("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}})],-1))]),o("div",fb,[o("div",mb,c(e.selectedQueue)+" \xB7 stats",1),o("div",hb,[o("div",vb,[t[19]||(t[19]=o("div",{class:"q-stat-label"},"Waiting",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.waiting||0)},null,8,yb)]),o("div",gb,[t[20]||(t[20]=o("div",{class:"q-stat-label"},"Active",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.active||0)},null,8,bb)]),o("div",wb,[t[21]||(t[21]=o("div",{class:"q-stat-label"},"Completed (24h)",-1)),o("div",{class:"q-stat-value",textContent:c(e.fmt?.number(e.selectedStats?.completed24h))},null,8,kb)]),o("div",Eb,[t[22]||(t[22]=o("div",{class:"q-stat-label"},"Failed (24h)",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.failed24h||0)},null,8,Cb)]),o("div",_b,[t[23]||(t[23]=o("div",{class:"q-stat-label"},"Delayed",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.delayed||0)},null,8,Sb)]),o("div",Nb,[t[24]||(t[24]=o("div",{class:"q-stat-label"},"Workers",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.workers||0)},null,8,Db)])]),o("div",Rb,[o("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=r=>e.togglePause())},c(e.selectedStats?.paused?"Resume":"Pause"),1),o("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=r=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,Tb),o("button",{class:"btn btn-sm",onClick:t[8]||(t[8]=r=>e.emptyQueue())},"Empty")])])])):p("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=r=>e.actionError=null)},[t[25]||(t[25]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})],-1)),b(" "+c(e.actionError),1)])):p("v-if",!0),p(" Jobs table "),o("div",Ab,[o("div",Ob,[o("div",Ib,"All jobs \xB7 "+c(e.selectedQueue),1),o("div",Pb,[(l(!0),d(X,null,ae(e.allStates,(r,s)=>(l(),d("label",Vb,[D(o("input",qb,null,512),[[n,{state:e.viewState,set:i=>{e.stateFilter[r]=i},value:e.stateFilter[r],form:null,options:{}}]]),o("span",{class:A("q-state-chip q-state-"+r)},c(r),3)]))),256))])]),o("div",Mb,[D(o("input",$b,null,512),[[n,{state:e.viewState,set:r=>{e.query.search=r},value:e.query?.search,form:null,options:{}}]]),o("label",Lb,[D(o("input",Ub,null,512),[[n,{state:e.viewState,set:r=>{e.query.autoRefresh=r},value:e.query?.autoRefresh,form:null,options:{}}]]),t[26]||(t[26]=b(" Auto-refresh ",-1))]),o("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=r=>e.refreshNow()),"aria-label":"Refresh"},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(l(),d("table",Fb,[t[46]||(t[46]=o("thead",null,[o("tr",null,[o("th",null,"State"),o("th",null,"Job id"),o("th",null,"Payload"),o("th",null,"Attempts"),o("th",null,"Duration"),o("th",null,"Progress"),o("th")])],-1)),(l(!0),d(X,null,ae(e.filteredJobs(),(r,s)=>(l(),d("tbody",null,[o("tr",{style:{cursor:"pointer"},class:A({"q-row-failed":r?._state=="failed","q-row-expanded":e.expanded[r?.id]}),onClick:i=>e.toggleJob(r)},[o("td",Hb,[o("span",{textContent:c(r?._state),class:A("q-state-badge q-state-"+r?._state)},null,10,Bb),r?._state=="delayed"&&r?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:c(e.delayCountdown(r?.delayUntil))},null,8,jb)):p("v-if",!0)]),o("td",Gb,[(l(),d("svg",{class:A(["ui-icon q-chevron",{"q-chevron-open":e.expanded[r?.id]}]),"aria-hidden":"true"},[...t[28]||(t[28]=[o("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),o("a",{target:"_blank",textContent:c("job:"+e.fmt.limitTo(r?.id,6)),onClick:t[11]||(t[11]=i=>i.stopPropagation()),href:e.safeUrl("/r/"+r?.id)},null,8,Wb)]),o("td",Kb,[o("span",{textContent:c(r?.name||"anonymize")},null,8,Yb),r?.data?.repoId&&r?.data?.repoId!==r?.name?(l(),d("span",Jb," \xB7 "+c(r?.data?.repoId),1)):p("v-if",!0)]),o("td",{class:"q-cell-num",textContent:c(r?.attemptsMade||1)},null,8,Qb),o("td",{class:"q-cell-num",textContent:c(e.jobDuration(r))},null,8,Xb),o("td",Zb,[e.jobProgressPct(r)!==null?(l(),d("div",xb,[o("div",{class:"q-progress-bar",style:qe({"--pct":e.jobProgressPct(r)+"%"})},null,4),o("span",{class:"q-progress-label",textContent:c(e.jobProgressPct(r)+"%")},null,8,e1)])):p("v-if",!0)]),o("td",t1,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:i=>{e.retryJob(r),i.stopPropagation()},"aria-label":"Retry job"},[...t[29]||(t[29]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])],8,o1)):p("v-if",!0),o("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:i=>{e.removeJob(r),i.stopPropagation()}},[...t[30]||(t[30]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1)])],8,n1)])],10,zb),e.expanded[r?.id]?(l(),d("tr",s1,[o("td",r1,[o("div",i1,[o("div",a1,[o("div",l1,[t[31]||(t[31]=o("span",{class:"q-job-detail-label"},"Job id",-1)),o("span",d1,[o("a",{target:"_blank",textContent:c(r?.id),href:e.safeUrl("/r/"+r?.id)},null,8,u1)])]),o("div",c1,[t[32]||(t[32]=o("span",{class:"q-job-detail-label"},"State",-1)),o("span",p1,[o("span",{textContent:c(r?._state),class:A("q-state-badge q-state-"+r?._state)},null,10,f1)])]),r?.data?.repoId?(l(),d("div",m1,[t[33]||(t[33]=o("span",{class:"q-job-detail-label"},"Repo ID",-1)),o("span",{class:"q-job-detail-value",textContent:c(r?.data?.repoId)},null,8,h1)])):p("v-if",!0),r?.timestamp?(l(),d("div",v1,[t[34]||(t[34]=o("span",{class:"q-job-detail-label"},"Created",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.timestamp))},null,8,y1)])):p("v-if",!0),r?._state=="delayed"&&r?.delayUntil?(l(),d("div",g1,[t[35]||(t[35]=o("span",{class:"q-job-detail-label"},"Retry at",-1)),o("span",b1,c(e.humanTime(r?.delayUntil))+" ("+c(e.delayCountdown(r?.delayUntil))+")",1)])):p("v-if",!0),r?.processedOn?(l(),d("div",w1,[t[36]||(t[36]=o("span",{class:"q-job-detail-label"},"Processed",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.processedOn))},null,8,k1)])):p("v-if",!0),r?.finishedOn?(l(),d("div",E1,[t[37]||(t[37]=o("span",{class:"q-job-detail-label"},"Finished",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.finishedOn))},null,8,C1)])):p("v-if",!0),r?.attemptsMade?(l(),d("div",_1,[t[38]||(t[38]=o("span",{class:"q-job-detail-label"},"Attempts",-1)),o("span",{class:"q-job-detail-value",textContent:c(r?.attemptsMade)},null,8,S1)])):p("v-if",!0),r?.progress&&r?.progress?.status?(l(),d("div",N1,[t[39]||(t[39]=o("span",{class:"q-job-detail-label"},"Status",-1)),o("span",{class:"q-job-detail-value",textContent:c(r?.progress?.status)},null,8,D1)])):p("v-if",!0),e.jobProgressPct(r)!==null?(l(),d("div",R1,[t[40]||(t[40]=o("span",{class:"q-job-detail-label"},"Progress",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.jobProgressPct(r)+"%")},null,8,T1)])):p("v-if",!0)]),r?.failedReason?(l(),d("div",A1,[t[41]||(t[41]=o("span",{class:"q-job-detail-label"},"Error",-1)),o("div",{class:"q-error-reason",textContent:c(r?.failedReason)},null,8,O1)])):p("v-if",!0),r?.stacktrace?.length?(l(),d("div",I1,[t[42]||(t[42]=o("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(l(!0),d(X,null,ae(r?.stacktrace,(i,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[o("code",{textContent:c(i)},null,8,P1)]))),128))])):p("v-if",!0),o("div",V1,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:i=>e.retryJob(r)},[...t[43]||(t[43]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Retry",-1)])],8,q1)):p("v-if",!0),o("button",{class:"btn btn-sm",onClick:i=>e.removeJob(r)},[...t[44]||(t[44]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,M1),o("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+r?.id)},[...t[45]||(t[45]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1),b(" View repo",-1)])],8,$1)])])])])):p("v-if",!0)]))),256))])):p("v-if",!0),e.filteredJobs().length==0?(l(),d("div",L1,[t[47]||(t[47]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?p("v-if",!0):(l(),d("span",U1,"No jobs in the "+c(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",F1,"No jobs match the current filters.")):p("v-if",!0)])):p("v-if",!0)])])}var z1={class:"container paper-page admin-page"},H1={class:"admin-summary"},B1={class:"summary-total"},j1={class:"summary-meta"},G1=["aria-pressed"],W1={class:"count"},K1=["aria-pressed"],Y1={class:"count"},J1=["aria-pressed"],Q1={class:"count"},X1=["aria-pressed"],Z1={class:"count"},x1=["aria-pressed"],ew={class:"count"},tw={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},ow={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},nw={class:"admin-filter-row"},sw={class:"search-wrap"},rw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},iw={key:0,class:"admin-search-hint"},aw={class:"admin-filter-inline"},lw={type:"text",class:"form-control form-control-sm",placeholder:"username"},dw={class:"admin-filter-inline"},uw={type:"text",class:"form-control form-control-sm",placeholder:"ID"},cw={class:"admin-filter-inline","aria-label":"Pagination"},pw=["disabled"],fw={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},mw=["disabled"],hw={key:0,class:"admin-filter-row"},vw={class:"admin-active-chips"},yw={class:"key"},gw=["onClick"],bw={key:1,class:"bulk-bar"},ww={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},kw={class:"paper-table-head",role:"row"},Ew={role:"columnheader",style:{width:"28px"}},Cw=["checked"],_w={role:"columnheader"},Sw={role:"columnheader"},Nw={role:"columnheader",class:"num"},Dw={role:"columnheader"},Rw={role:"cell",style:{width:"28px"}},Tw={type:"checkbox","aria-label":"Select repository"},Aw={class:"cell-anon",role:"cell"},Ow={class:"anon-text"},Iw=["textContent","href"],Pw={class:"anon-sub"},Vw=["textContent","href"],qw={key:0},Mw=["textContent","href"],$w={key:1},Lw=["textContent","href"],Uw={key:2},Fw={class:"cell-status",role:"cell"},zw={class:"status-line"},Hw=["textContent"],Bw=["textContent","title"],jw={class:"cell-views num",role:"cell"},Gw=["textContent"],Ww={class:"cell-expires",role:"cell"},Kw=["textContent"],Yw={class:"cell-actions",role:"cell"},Jw={class:"dropdown"},Qw={class:"dropdown-menu dropdown-menu-right"},Xw=["href"],Zw=["href"],xw=["href"],ek=["onClick"],tk=["onClick"],ok=["onClick"],nk=["onClick"],sk=["onClick"],rk=["onClick"],ik={key:0,class:"paper-table-empty"},ak={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},lk={style:{"font-size":"12px",color:"var(--ink-muted)"}},dk={key:0,class:"pagination-compact"},uk=["disabled"],ck=["max"],pk=["disabled"],fk={class:"admin-filter-inline"},mk={class:"form-control form-control-sm"};function Nl(e,t){let n=be("field"),r=be("form");return l(),d("div",z1,[t[69]||(t[69]=pe('Admin \xA0/\xA0 Repositories
Repositories Overview Repositories Users Conferences Queues Errors ',3)),o("div",H1,[o("span",B1,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),o("span",j1,c(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[18]||(t[18]=b("Ready ",-1)),o("span",W1,c(e.fmt?.number(e.statusCountFor("ready"))),1)],10,G1),o("button",{type:"button",class:A(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[19]||(t[19]=b("Preparing ",-1)),o("span",Y1,c(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],10,K1),o("button",{type:"button",class:A(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[20]||(t[20]=b("Errored ",-1)),o("span",Q1,c(e.fmt?.number(e.statusCountFor("error"))),1)],10,J1),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[21]||(t[21]=b("Expired ",-1)),o("span",Z1,c(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],10,X1),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[22]||(t[22]=b("Removed ",-1)),o("span",ew,c(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],10,x1)]),e.fetchError?(l(),d("div",tw,[t[23]||(t[23]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",ow,[p(" Row 1: search + scoped inputs + headline actions "),o("div",nw,[o("div",sw,[D(o("input",rw,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",iw,"/"))]),o("span",aw,[t[24]||(t[24]=o("label",null,"Owner",-1)),D(o("input",lw,null,512),[[n,{state:e.viewState,set:s=>{e.query.owner=s},value:e.query?.owner,form:null,options:{}}]])]),o("span",dw,[t[25]||(t[25]=o("label",null,"Conference",-1)),D(o("input",uw,null,512),[[n,{state:e.viewState,set:s=>{e.query.conference=s},value:e.query?.conference,form:null,options:{}}]])]),t[29]||(t[29]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[26]||(t[26]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])]),o("span",cw,[o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1)])],8,pw),o("span",fw,c(e.query?.page)+"/"+c(e.totalPage||1),1),o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[28]||(t[28]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,mw)])]),p(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",hw,[o("div",vw,[(l(!0),d(X,null,ae(e.chips,(s,i)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[o("span",yw,c(s?.label),1),o("span",null,c(s?.value),1),o("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(s.key)},[...t[30]||(t[30]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,gw)]))),128))])])):p("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",bw,[o("span",null,[o("strong",null,c(e.selectedCount()),1),t[31]||(t[31]=b(" selected",-1))]),o("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=s=>e.bulkRefresh())},[...t[32]||(t[32]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force refresh",-1)])]),o("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[9]||(t[9]=s=>e.bulkRemoveCache())},[...t[33]||(t[33]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])]),o("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),o("div",ww,[o("div",kw,[o("div",Ew,[o("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[11]||(t[11]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,Cw)]),o("div",_w,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[12]||(t[12]=s=>e.sortBy("source.repositoryName"))},[t[35]||(t[35]=b("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",Sw,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[13]||(t[13]=s=>e.sortBy("status"))},[t[37]||(t[37]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[36]||(t[36]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",Nw,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[14]||(t[14]=s=>e.sortBy("pageView"))},[t[39]||(t[39]=b("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[38]||(t[38]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",Dw,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[15]||(t[15]=s=>e.sortBy("anonymizeDate"))},[t[41]||(t[41]=b("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[40]||(t[40]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[42]||(t[42]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredRepositories,(s,i)=>(l(),d("div",{class:A(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[o("div",Rw,[D(o("input",Tw,null,512),[[n,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),o("div",Aw,[t[47]||(t[47]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",Ow,[o("a",{class:"repo-name",target:"_blank",textContent:c(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,Iw),o("div",Pw,[o("a",{textContent:c(s?.source?.repositoryName),href:e.safeUrl("https://github.com/"+s?.source?.repositoryName+"/")},null,8,Vw),s?.options?.update?(l(),d("span",qw,[t[43]||(t[43]=b("\xA0\xB7\xA0",-1)),o("a",{textContent:c(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,Mw)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",$w,[t[44]||(t[44]=b("\xA0\xB7\xA0@",-1)),o("a",{textContent:c(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,Lw)])),s?.conference?(l(),d("span",Uw,[t[45]||(t[45]=b("\xA0\xB7\xA0",-1)),t[46]||(t[46]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),b(" "+c(s?.conference),1)])):p("v-if",!0),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(s?.size?.storage)),1),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(s?.options?.terms?.length))+" "+c(s?.options?.terms?.length===1?"term":"terms"),1)])])]),o("div",Fw,[o("span",zw,[o("span",{class:A(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,Hw)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,Bw)):p("v-if",!0)]),o("div",jw,[t[48]||(t[48]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),t[49]||(t[49]=b()),o("span",{textContent:c(e.fmt?.number(s?.pageView||0))},null,8,Gw)]),o("div",Ww,[t[50]||(t[50]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),t[51]||(t[51]=b()),o("span",{textContent:c(e.fmt?.humanTime(s?.anonymizeDate))},null,8,Kw)]),o("div",Yw,[o("div",Jw,[t[63]||(t[63]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",Qw,[o("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[52]||(t[52]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit",-1)])],8,Xw),o("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[53]||(t[53]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View repo",-1)])],8,Zw),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[54]||(t[54]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),b(" View page",-1)])],8,xw)):p("v-if",!0),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[55]||(t[55]=[o("i",{class:"fab fa-github"},null,-1),b(" Live GitHub info",-1)])],8,ek),t[61]||(t[61]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[56]||(t[56]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force update",-1)])],8,tk),[[K,s?.status=="ready"||s?.status=="error"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[57]||(t[57]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Enable",-1)])],8,ok),[[K,s?.status=="removed"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[58]||(t[58]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1),b(" View status message",-1)])],8,nk),[[K,s?.statusMessage]]),t[62]||(t[62]=o("div",{class:"dropdown-divider"},null,-1)),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[59]||(t[59]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])],8,sk),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[60]||(t[60]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,rk),[[K,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",ik,[...t[64]||(t[64]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)]),o("div",ak,[o("span",lk,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",dk,[o("button",{class:"btn btn-sm",onClick:t[16]||(t[16]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[65]||(t[65]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1),b(" Previous ",-1)])],8,uk),D(o("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,ck),[[n,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),o("span",null,"of "+c(e.totalPage),1),o("button",{class:"btn btn-sm",onClick:t[17]||(t[17]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[66]||(t[66]=[b(" Next ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,pk)])):p("v-if",!0),o("span",fk,[t[68]||(t[68]=o("label",null,"Per page",-1)),D((l(),d("select",mk,[...t[67]||(t[67]=[pe('10 25 50 100 250 ',5)])])),[[n,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var hk={class:"container paper-page admin-page"},vk={class:"paper-crumbs"},yk={class:"here"},gk={class:"paper-page-title"},bk={key:0,class:"user-detail-card"},wk={class:"user-header"},kk=["src"],Ek={class:"status-dot-wrap"},Ck=["textContent"],_k={key:0,class:"type-badge type-repo"},Sk={class:"user-actions",style:{"margin-top":"4px"}},Nk={class:"user-detail-grid"},Dk={class:"detail-value"},Rk={class:"detail-value"},Tk={key:0,class:"detail-value",style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},Ak={key:1,class:"detail-value text-muted"},Ok={class:"detail-value"},Ik=["href"],Pk={class:"detail-value"},Vk={class:"detail-value"},qk={key:0},Mk={key:1,class:"text-muted"},$k={class:"detail-value"},Lk={key:0,style:{"margin-top":"20px"}},Uk={class:"paper-table w-100",style:{"margin-top":"10px"}},Fk={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},zk={class:"cell-anon",role:"cell"},Hk={class:"anon-text"},Bk=["textContent"],jk={class:"cell-expires",role:"cell"},Gk={key:1,class:"admin-section-header"},Wk={class:"section-count"},Kk={key:2,class:"user-detail-card"},Yk={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},Jk={key:0,class:"alert alert-warning",role:"alert"},Qk={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},Xk={key:1,class:"paper-table w-100"},Zk={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},xk=["textContent"],e0=["textContent"],t0={role:"cell"},o0={key:0},n0={key:1,class:"text-muted"},s0={role:"cell"},r0=["onClick"],i0={key:2,class:"paper-table-empty"},a0={class:"admin-section-header"},l0={class:"section-count"},d0={class:"admin-summary"},u0={class:"summary-total"},c0=["aria-pressed"],p0={class:"count"},f0=["aria-pressed"],m0={class:"count"},h0=["aria-pressed"],v0={class:"count"},y0=["aria-pressed"],g0={class:"count"},b0=["aria-pressed"],w0={class:"count"},k0={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},E0={class:"admin-filter-row"},C0={class:"search-wrap"},_0={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},S0={key:3,class:"bulk-bar"},N0={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},D0={class:"paper-table-head",role:"row"},R0={role:"columnheader",style:{width:"28px"}},T0=["checked"],A0={role:"columnheader"},O0={role:"columnheader"},I0={role:"columnheader",class:"num"},P0={role:"columnheader"},V0={role:"cell",style:{width:"28px"}},q0={type:"checkbox","aria-label":"Select repository"},M0={class:"cell-anon",role:"cell"},$0={class:"anon-text"},L0=["textContent","href"],U0={class:"anon-sub"},F0=["textContent","href"],z0={key:0},H0=["textContent","href"],B0={key:1},j0=["textContent","href"],G0={key:2},W0={class:"cell-status",role:"cell"},K0={class:"status-line"},Y0=["textContent"],J0=["textContent","title"],Q0=["textContent"],X0=["textContent"],Z0={class:"cell-actions",role:"cell"},x0={class:"dropdown"},eE={class:"dropdown-menu dropdown-menu-right"},tE=["href"],oE=["href"],nE=["href"],sE=["onClick"],rE=["onClick"],iE=["onClick"],aE=["onClick"],lE=["onClick"],dE=["onClick"],uE={key:0,class:"paper-table-empty"};function Dl(e,t){let n=be("field"),r=be("form");return l(),d("div",hk,[o("div",vk,[t[22]||(t[22]=o("a",{href:"/admin/"},"Admin",-1)),t[23]||(t[23]=b(" \xA0/\xA0 ",-1)),t[24]||(t[24]=o("a",{href:"/admin/users"},"Users",-1)),t[25]||(t[25]=b(" \xA0/\xA0 ",-1)),o("span",yk,c(e.userInfo?.username||"Profile"),1)]),o("h1",gk,c(e.userInfo?.username||"User"),1),t[87]||(t[87]=pe(' Overview Repositories Users Conferences Queues Errors ',1)),e.userInfo?(l(),d("div",bk,[o("div",wk,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,kk)):p("v-if",!0),o("div",null,[o("h2",null,[b(c(e.userInfo?.username)+" ",1),o("span",Ek,[o("span",{class:A(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),o("span",{textContent:c(e.fmt?.title(e.userInfo?.status))},null,8,Ck)]),e.userInfo?.isAdmin?(l(),d("span",_k,"Admin")):p("v-if",!0)]),o("div",Sk,[e.userInfo?.status!=="banned"?(l(),d("button",{key:0,class:"btn btn-sm text-danger",onClick:t[0]||(t[0]=s=>e.banUser())},[...t[26]||(t[26]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-ban"})],-1),b(" Ban",-1)])])):p("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=s=>e.activateUser())},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Activate",-1)])])):p("v-if",!0),e.userInfo?.isAdmin?p("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=s=>e.promoteUser())},[...t[28]||(t[28]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user-shield"})],-1),b(" Promote to admin",-1)])])),e.userInfo?.isAdmin?(l(),d("button",{key:3,class:"btn btn-sm text-danger",onClick:t[3]||(t[3]=s=>e.demoteUser())},[...t[29]||(t[29]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user-minus"})],-1),b(" Remove admin",-1)])])):p("v-if",!0)])])]),o("div",Nk,[t[32]||(t[32]=o("div",{class:"detail-label"},"ID",-1)),o("div",Dk,c(e.userInfo?._id),1),t[33]||(t[33]=o("div",{class:"detail-label"},"Email",-1)),o("div",Rk,c(e.userInfo?.emails?.[0]?.email),1),t[34]||(t[34]=o("div",{class:"detail-label"},"Access token",-1)),e.userInfo?.accessTokens?.github?(l(),d("div",Tk,c(e.userInfo?.accessTokens?.github),1)):p("v-if",!0),e.userInfo?.accessTokens?.github?p("v-if",!0):(l(),d("div",Ak,"None stored")),t[35]||(t[35]=o("div",{class:"detail-label"},"GitHub",-1)),o("div",Ok,[o("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[30]||(t[30]=o("i",{class:"fab fa-github"},null,-1)),b(" "+c(e.userInfo?.username),1)],8,Ik)]),t[36]||(t[36]=o("div",{class:"detail-label"},"Created",-1)),o("div",Pk,c(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[37]||(t[37]=o("div",{class:"detail-label"},"Last connection",-1)),o("div",Vk,[e.userInfo?.accessTokenDates?.github?(l(),d("span",qk,c(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):p("v-if",!0),e.userInfo?.accessTokenDates?.github?p("v-if",!0):(l(),d("span",Mk,"never"))]),t[38]||(t[38]=o("div",{class:"detail-label"},"GitHub repos",-1)),o("div",$k,[b(c(e.userInfo?.repositories?.length)+" repositories ",1),o("button",{class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=s=>e.showRepos=!e.showRepos)},c(e.showRepos?"Hide":"Show"),1),o("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=s=>e.getGitHubRepositories())},[...t[31]||(t[31]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",Lk,[t[41]||(t[41]=o("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),o("div",Uk,[(l(!0),d(X,null,ae(e.userInfo?.repositories,(s,i)=>(l(),d("div",Fk,[o("div",zk,[t[39]||(t[39]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",Hk,[o("span",{class:"repo-name",textContent:c(s?.name)},null,8,Bk)])]),o("div",jk,[t[40]||(t[40]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-database"})],-1)),b(" "+c(e.fmt?.humanFileSize(s?.size)),1)])]))),256))])])):p("v-if",!0)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",Gk,[t[42]||(t[42]=o("h2",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-key"})]),b(" API tokens")],-1)),o("span",Wk,c(e.tokens?.length),1)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",Kk,[t[48]||(t[48]=o("p",{class:"paper-page-lede"},[b("Personal API tokens for this admin account. Send as "),o("code",null,"Authorization: Bearer "),b(" to authenticate without GitHub OAuth (useful for development).")],-1)),D((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=de(s=>e.submitForm(s,()=>{e.createToken()}),["prevent"]))},[D(o("input",Yk,null,512),[[n,{state:e.viewState,set:s=>{e.tokenForm.name=s},value:e.tokenForm?.name,form:null,options:{}}]]),t[43]||(t[43]=o("button",{type:"submit",class:"btn btn-ink"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-plus"})]),b(" Generate")],-1))],32)),[[r,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",Jk,[t[44]||(t[44]=o("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),o("pre",Qk,c(e.tokenForm?.plaintext),1),o("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.tokenForm.plaintext=null)},"Dismiss")])):p("v-if",!0),e.tokens?.length?(l(),d("div",Xk,[t[46]||(t[46]=o("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[o("div",{role:"columnheader"},"Name"),o("div",{role:"columnheader"},"Created"),o("div",{role:"columnheader"},"Last used"),o("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(X,null,ae(e.tokens,(s,i)=>(l(),d("div",Zk,[o("div",{role:"cell",textContent:c(s?.name)},null,8,xk),o("div",{role:"cell",textContent:c(e.fmt?.humanTime(s?.createdAt))},null,8,e0),o("div",t0,[s?.lastUsedAt?(l(),d("span",o0,c(e.fmt?.humanTime(s?.lastUsedAt)),1)):p("v-if",!0),s?.lastUsedAt?p("v-if",!0):(l(),d("span",n0,"never"))]),o("div",s0,[o("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:a=>e.revokeToken(s)},[...t[45]||(t[45]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1)])],8,r0)])]))),256))])):p("v-if",!0),e.tokens?.length?p("v-if",!0):(l(),d("div",i0,[...t[47]||(t[47]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No tokens yet.",-1)])]))])):p("v-if",!0),o("div",a0,[t[49]||(t[49]=o("h2",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})]),b(" Anonymized repositories")],-1)),o("span",l0,c(e.repositories?.length),1)]),o("div",d0,[o("span",u0,c(e.fmt?.number(e.repositories?.length)),1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=s=>e.filters.status.ready=!e.filters.status.ready),"aria-pressed":e.filters?.status?.ready===!1},[t[50]||(t[50]=b("Ready ",-1)),o("span",p0,c(e.fmt?.number(e.statusCountFor("ready"))),1)],10,c0),o("button",{type:"button",class:A(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=s=>e.filters.status.preparing=!e.filters.status.preparing),"aria-pressed":e.filters?.status?.preparing===!1},[t[51]||(t[51]=b("Preparing ",-1)),o("span",m0,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,f0),o("button",{type:"button",class:A(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=s=>e.filters.status.error=!e.filters.status.error),"aria-pressed":e.filters?.status?.error===!1},[t[52]||(t[52]=b("Errored ",-1)),o("span",v0,c(e.fmt?.number(e.statusCountFor("error"))),1)],10,h0),o("button",{type:"button",class:A(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=s=>e.filters.status.expired=!e.filters.status.expired),"aria-pressed":e.filters?.status?.expired===!1},[t[53]||(t[53]=b("Expired ",-1)),o("span",g0,c(e.fmt?.number(e.statusCountFor("expired"))),1)],10,y0),o("button",{type:"button",class:A(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=s=>e.filters.status.removed=!e.filters.status.removed),"aria-pressed":e.filters?.status?.removed===!1},[t[54]||(t[54]=b("Removed ",-1)),o("span",w0,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,b0)]),D((l(),d("form",k0,[o("div",E0,[o("div",C0,[D(o("input",_0,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),t[56]||(t[56]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=s=>e.exportCsv())},[...t[55]||(t[55]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])])])])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",S0,[o("span",null,[o("strong",null,c(e.selectedCount()),1),t[57]||(t[57]=b(" selected",-1))]),o("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=s=>e.bulkRefresh())},[...t[58]||(t[58]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force refresh",-1)])]),o("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=s=>e.bulkRemoveCache())},[...t[59]||(t[59]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])]),o("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),o("div",N0,[o("div",D0,[o("div",R0,[o("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,T0)]),o("div",A0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=s=>e.sortBy("source.repositoryName"))},[t[61]||(t[61]=b("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[60]||(t[60]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",O0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=s=>e.sortBy("status"))},[t[63]||(t[63]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[62]||(t[62]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",I0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=s=>e.sortBy("pageView"))},[t[65]||(t[65]=b("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[64]||(t[64]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",P0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=s=>e.sortBy("anonymizeDate"))},[t[67]||(t[67]=b("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[66]||(t[66]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[68]||(t[68]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredRepositories,(s,i)=>(l(),d("div",{class:A(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[o("div",V0,[D(o("input",q0,null,512),[[n,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),o("div",M0,[t[73]||(t[73]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",$0,[o("a",{class:"repo-name",target:"_blank",textContent:c(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,L0),o("div",U0,[o("a",{textContent:c(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,F0),s?.options?.update?(l(),d("span",z0,[t[69]||(t[69]=b("\xA0\xB7\xA0",-1)),o("a",{textContent:c(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,H0)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",B0,[t[70]||(t[70]=b("\xA0\xB7\xA0@",-1)),o("a",{textContent:c(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,j0)])),s?.conference?(l(),d("span",G0,[t[71]||(t[71]=b("\xA0\xB7\xA0",-1)),t[72]||(t[72]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),b(" "+c(s?.conference),1)])):p("v-if",!0),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(s?.size?.storage)),1),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(s?.options?.terms?.length))+" "+c(s?.options?.terms?.length===1?"term":"terms"),1)])])]),o("div",W0,[o("span",K0,[o("span",{class:A(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,Y0)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,J0)):p("v-if",!0)]),o("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(s?.pageView||0))},null,8,Q0),o("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(s?.anonymizeDate))},null,8,X0),o("div",Z0,[o("div",x0,[t[85]||(t[85]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",eE,[o("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[74]||(t[74]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit",-1)])],8,tE),o("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[75]||(t[75]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View repo",-1)])],8,oE),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[76]||(t[76]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),b(" View page",-1)])],8,nE)):p("v-if",!0),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[77]||(t[77]=[o("i",{class:"fab fa-github"},null,-1),b(" Live GitHub info",-1)])],8,sE),t[83]||(t[83]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[78]||(t[78]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force update",-1)])],8,rE),[[K,s?.status=="ready"||s?.status=="error"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[79]||(t[79]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Enable",-1)])],8,iE),[[K,s?.status=="removed"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[80]||(t[80]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1),b(" View status message",-1)])],8,aE),[[K,s?.statusMessage]]),t[84]||(t[84]=o("div",{class:"dropdown-divider"},null,-1)),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[81]||(t[81]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])],8,lE),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[82]||(t[82]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,dE),[[K,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",uE,[...t[86]||(t[86]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)])])}var cE={class:"container paper-page admin-page"},pE={class:"admin-summary"},fE={class:"summary-total"},mE=["aria-pressed"],hE={class:"count"},vE=["aria-pressed"],yE={class:"count"},gE=["aria-pressed"],bE={class:"count"},wE={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},kE={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},EE={class:"admin-filter-row"},CE={class:"search-wrap"},_E={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},SE={key:0,class:"admin-search-hint"},NE={class:"admin-filter-inline"},DE={class:"form-control form-control-sm"},RE={class:"admin-filter-inline","aria-label":"Pagination"},TE=["disabled"],AE={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},OE=["disabled"],IE={key:0,class:"admin-filter-row"},PE={class:"admin-active-chips"},VE={class:"key"},qE=["onClick"],ME={key:1,class:"bulk-bar"},$E={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},LE={class:"paper-table-head admin-users-row",role:"row"},UE={role:"columnheader",style:{width:"28px"}},FE=["checked"],zE={role:"columnheader"},HE={role:"columnheader"},BE={role:"cell",style:{width:"28px"}},jE={type:"checkbox","aria-label":"Select user"},GE={class:"cell-anon",role:"cell"},WE=["src"],KE={class:"anon-text"},YE=["textContent","href"],JE={class:"anon-sub"},QE={key:0},XE=["href"],ZE={key:1},xE={class:"cell-views num",role:"cell"},eC=["textContent","href"],tC={class:"cell-status",role:"cell"},oC=["textContent"],nC={class:"cell-status",role:"cell"},sC={key:0,class:"type-badge type-repo"},rC={key:1,class:"empty-dash"},iC={class:"cell-actions",role:"cell"},aC={class:"dropdown"},lC={class:"dropdown-menu dropdown-menu-right"},dC=["href"],uC=["href"],cC=["onClick"],pC=["onClick"],fC={key:0,class:"paper-table-empty"},mC={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},hC={style:{"font-size":"12px",color:"var(--ink-muted)"}},vC={key:0,class:"pagination-compact"},yC=["disabled"],gC=["max"],bC=["disabled"],wC={class:"admin-filter-inline"},kC={class:"form-control form-control-sm"};function Rl(e,t){let n=be("field"),r=be("form");return l(),d("div",cE,[t[46]||(t[46]=pe('Admin \xA0/\xA0 Users
Users Overview Repositories Users Conferences Queues Errors ',3)),o("div",pE,[o("span",fE,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[0]||(t[0]=s=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1}),"aria-pressed":e.query?.status=="active"},[t[13]||(t[13]=b("Active ",-1)),o("span",hE,c(e.fmt?.number(e.statusCountFor("active"))),1)],10,mE),o("button",{type:"button",class:A(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[1]||(t[1]=s=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1}),"aria-pressed":e.query?.status=="banned"},[t[14]||(t[14]=b("Banned ",-1)),o("span",yE,c(e.fmt?.number(e.statusCountFor("banned"))),1)],10,vE),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[2]||(t[2]=s=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1}),"aria-pressed":e.query?.status=="removed"},[t[15]||(t[15]=b("Removed ",-1)),o("span",bE,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,gE)]),e.fetchError?(l(),d("div",wE,[t[16]||(t[16]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",kE,[o("div",EE,[o("div",CE,[D(o("input",_E,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",SE,"/"))]),o("span",NE,[t[18]||(t[18]=o("label",null,"Role",-1)),D((l(),d("select",DE,[...t[17]||(t[17]=[o("option",{value:""},"Any",-1),o("option",{value:"admin"},"Admin",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.role=s},value:e.query?.role,form:null,options:{}}]])]),t[22]||(t[22]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",onClick:t[3]||(t[3]=s=>e.exportCsv())},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])]),o("span",RE,[o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[4]||(t[4]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1)])],8,TE),o("span",AE,c(e.query?.page)+"/"+c(e.totalPage||1),1),o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,OE)])]),e.chips?.length?(l(),d("div",IE,[o("div",PE,[(l(!0),d(X,null,ae(e.chips,(s,i)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[o("span",VE,c(s?.label),1),o("span",null,c(s?.value),1),o("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,qE)]))),128))])])):p("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",ME,[o("span",null,[o("strong",null,c(e.selectedCount()),1),t[24]||(t[24]=b(" selected",-1))]),o("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[6]||(t[6]=s=>e.bulkBan())},[...t[25]||(t[25]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-ban"})],-1),b(" Ban",-1)])]),o("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>{e.selected={},e.allSelected=!1})},"Clear")])):p("v-if",!0),o("div",$E,[o("div",LE,[o("div",UE,[o("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[8]||(t[8]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,FE)]),o("div",zE,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="username"}]),onClick:t[9]||(t[9]=s=>e.sortBy("username"))},[t[27]||(t[27]=b("User ",-1)),e.sortIcon("username")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=o("div",{role:"columnheader",class:"num"},"Repos",-1)),o("div",HE,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=s=>e.sortBy("status"))},[t[29]||(t[29]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=o("div",{role:"columnheader"},"Role",-1)),t[32]||(t[32]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredUsers,(s,i)=>(l(),d("div",{class:A(["paper-table-row admin-users-row",{"row-selected":e.selected[s?.username]}]),role:"row"},[o("div",BE,[D(o("input",jE,null,512),[[n,{state:e.viewState,set:a=>{e.selected[s.username]=a},value:e.selected[s?.username],form:null,options:{}}]])]),o("div",GE,[s?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(s?.photo)},null,8,WE)):p("v-if",!0),o("div",KE,[o("a",{class:"repo-name",textContent:c(s?.username),href:e.safeUrl("/admin/users/"+s?.username)},null,8,YE),o("div",JE,[s?.emails?.[0]?.email?(l(),d("span",QE,c(s?.emails?.[0]?.email)+" \xB7 ",1)):p("v-if",!0),o("a",{target:"_blank",href:e.safeUrl("https://github.com/"+s?.username)},[t[33]||(t[33]=o("i",{class:"fab fa-github"},null,-1)),b(" "+c(s?.username),1)],8,XE),s?.dateOfEntry?(l(),d("span",ZE,"\xA0\xB7\xA0Joined "+c(e.fmt?.humanTime(s?.dateOfEntry)),1)):p("v-if",!0)])])]),o("div",xE,[t[34]||(t[34]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1)),o("a",{title:"Show this user's repositories",textContent:c(e.fmt?.number(s?.repoCount||0)),href:e.safeUrl("/admin/repositories?owner="+s?.username)},null,8,eC)]),o("div",tC,[o("span",{class:A(["status-dot",{"status-ready":s?.status=="active","status-removed":s?.status=="removed"||s?.status=="banned"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,oC)]),o("div",nC,[s?.isAdmin?(l(),d("span",sC,"Admin")):p("v-if",!0),s?.isAdmin?p("v-if",!0):(l(),d("span",rC,"\u2014"))]),o("div",iC,[o("div",aC,[t[40]||(t[40]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",lC,[o("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+s?.username)},[...t[35]||(t[35]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View details",-1)])],8,dC),o("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+s?.username)},[...t[36]||(t[36]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),b(" View repositories",-1)])],8,uC),t[39]||(t[39]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.banUser(s),["prevent"])},[...t[37]||(t[37]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-ban"})],-1),b(" Ban",-1)])],8,cC),[[K,s?.status=="active"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.activateUser(s),["prevent"])},[...t[38]||(t[38]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Activate",-1)])],8,pC),[[K,s?.status=="removed"||s?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",fC,[...t[41]||(t[41]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No users match the current filters.",-1)])])):p("v-if",!0)]),o("div",mC,[o("span",hC,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",vC,[o("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[42]||(t[42]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1),b(" Previous",-1)])],8,yC),D(o("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,gC),[[n,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),o("span",null,"of "+c(e.totalPage),1),o("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[43]||(t[43]=[b("Next ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,bC)])):p("v-if",!0),o("span",wC,[t[45]||(t[45]=o("label",null,"Per page",-1)),D((l(),d("select",kC,[...t[44]||(t[44]=[o("option",{value:"10"},"10",-1),o("option",{value:"25"},"25",-1),o("option",{value:"50"},"50",-1),o("option",{value:"100"},"100",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var EC={class:"anonymize-landing"},CC={class:"anonymize-landing-inner"},_C={class:"form-group mt-4 mb-2"},SC={class:"source-url-label-row"},NC={key:0,class:"repo-access","aria-label":"GitHub access"},DC={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},RC=["aria-pressed","disabled"],TC=["aria-pressed","disabled"],AC={key:1,class:"connection-badge"},OC={id:"sourceUrl-landing",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},IC={key:0,class:"draft-status",role:"status"},PC={key:1,class:"text-danger",role:"alert"},VC={key:2,class:"repo-access-details","aria-label":"GitHub access"},qC={class:"repo-access-main"},MC={class:"repo-access-controls"},$C={key:1,class:"connection-link",href:"/connections"},LC={class:"repo-access-note"},UC={key:0},FC={class:"anonymize-workspace"},zC={class:"anonymize-topbar"},HC={class:"anonymize-topbar-inner"},BC={class:"paper-crumbs"},jC={class:"here"},GC={class:"anonymize-topbar-head"},WC={class:"paper-page-title anonymize-topbar-title"},KC={key:0},YC={key:1},JC={key:0,class:"alert alert-info",role:"status"},QC={key:1,class:"alert alert-info",role:"status"},XC={key:1},ZC={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},xC=["aria-selected","tabindex"],e2=["aria-selected","tabindex"],t2={key:2,class:"anonymize-preview-empty",id:"workspace-preview",role:"status"},o2={class:"anonymize-split"},n2=["role","aria-labelledby"],s2={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},r2={class:"paper-settings-section"},i2={class:"form-group"},a2={class:"source-url-label-row"},l2={key:0,class:"repo-access","aria-label":"GitHub access"},d2={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},u2=["aria-pressed","disabled"],c2=["aria-pressed","disabled"],p2={key:1,class:"connection-badge"},f2=["disabled"],m2={class:"invalid-feedback"},h2={class:"invalid-feedback"},v2={class:"invalid-feedback"},y2={class:"invalid-feedback"},g2={key:0,class:"repo-access-details","aria-label":"GitHub access"},b2={class:"repo-access-main"},w2={class:"repo-access-controls"},k2={key:1,class:"connection-link",href:"/connections"},E2={class:"repo-access-note"},C2={key:0},_2={key:1,class:"repo-access-details"},S2={key:0,role:"status"},N2={key:2,class:"form-grid-2"},D2={class:"form-group"},R2={class:"input-group"},T2={class:"form-control",id:"branch",name:"branch"},A2=["textContent","value"],O2={class:"input-group-append"},I2={class:"form-group"},P2=["disabled"],V2={class:"invalid-feedback"},q2={class:"invalid-feedback"},M2={class:"form-check"},$2={class:"form-check-input",type:"checkbox",id:"update",name:"update"},L2={class:"paper-settings-section"},U2={class:"form-group"},F2=["disabled"],z2={class:"form-text text-muted"},H2={class:"invalid-feedback"},B2={class:"form-group"},j2=["disabled"],G2={class:"form-text text-muted"},W2={class:"invalid-feedback"},K2={class:"form-group"},Y2=["disabled"],J2={class:"form-text text-muted"},Q2={class:"invalid-feedback"},X2={class:"form-group"},Z2={class:"form-text text-muted"},x2=["href"],e_={class:"invalid-feedback"},t_={class:"form-text text-muted"},o_={class:"paper-settings-section"},n_={class:"form-group"},s_={class:"form-text text-muted"},r_={class:"warning-feedback"},i_={class:"invalid-feedback"},a_={class:"paper-settings-section"},l_={class:"form-check"},d_={class:"form-check-input",type:"checkbox",id:"link",name:"link"},u_={class:"form-check"},c_={class:"form-check-input",type:"checkbox",id:"image",name:"image"},p_={class:"form-check"},f_={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},m_={class:"form-check"},h_={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},v_={class:"form-check"},y_=["disabled"],g_={key:0,class:"form-text text-muted"},b_={key:1,class:"form-text text-muted"},w_={class:"form-check"},k_={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},E_={class:"form-check"},C_={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},__={class:"form-check"},S_={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},N_={class:"form-check"},D_={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},R_={class:"form-check"},T_={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},A_={class:"form-check"},O_={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},I_={class:"form-check"},P_={class:"form-check-input",type:"checkbox",id:"title",name:"title"},V_={class:"form-check"},q_={class:"form-check-input",type:"checkbox",id:"body",name:"body"},M_={class:"form-check"},$_={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},L_={class:"form-check"},U_={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},F_={class:"form-check"},z_={class:"form-check-input",type:"checkbox",id:"username",name:"username"},H_={class:"form-check"},B_={class:"form-check-input",type:"checkbox",id:"date",name:"date"},j_={class:"form-check"},G_={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},W_={class:"paper-settings-section"},K_={class:"form-grid-2"},Y_={class:"form-group"},J_={class:"form-control",id:"expiration",name:"expiration"},Q_={class:"form-group"},X_=["min","max"],Z_={class:"invalid-feedback"},x_={class:"invalid-feedback"},eS={class:"paper-settings-section"},tS={class:"form-group"},oS={style:{position:"relative"}},nS={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},sS={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},rS=["onClick"],iS=["src"],aS=["textContent"],lS=["textContent"],dS={class:"coauthor-list"},uS={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},cS=["src"],pS=["textContent","href"],fS=["onClick"],mS={class:"form-text text-muted"},hS=["textContent"],vS={key:1,class:"draft-status",role:"status"},yS={key:2,class:"draft-status"},gS={key:3,class:"anonymize-review-note"},bS={class:"anonymize-submit-bar"},wS=["disabled"],kS=["disabled"],ES=["disabled"],CS=["disabled"],_S=["disabled"],SS=["disabled"],NS=["role","aria-labelledby"],DS={class:"anonymize-preview-head"},RS={class:"anonymize-preview-sub"},TS={key:0,class:"anonymize-preview-status",role:"status"},AS={key:1,class:"anonymize-preview-status",role:"status"},OS={key:2,class:"anonymize-preview-status",role:"alert"},IS={key:3,class:"anonymize-preview-status"},PS=["innerHTML"],VS=["role","aria-labelledby"],qS={class:"anonymize-preview-head"},MS={class:"anonymize-preview-sub"},$S={key:0,class:"anonymize-preview-status",role:"status"},LS={key:1,class:"anonymize-preview-status",role:"status"},US={key:2,class:"anonymize-preview-status",role:"alert"},FS={key:3,class:"anonymize-preview-body"},zS={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},HS={class:"pr-title mb-1"},BS={key:0},jS=["textContent"],GS={key:0},WS={key:1},KS={key:2},YS={class:"pr-comments mt-3"},JS={class:"pr-comment"},QS={class:"pr-comment-head"},XS=["textContent"],ZS={key:0,class:"pr-comment-date"},xS={key:3},eN={class:"pr-comments"},tN={class:"pr-comment"},oN={class:"pr-comment-head"},nN={key:0,class:"pr-comment-author"},sN=["textContent"],rN=["textContent"],iN={key:0,class:"pr-comment-body"},aN=["role","aria-labelledby"],lN={class:"anonymize-preview-head"},dN={class:"anonymize-preview-sub"},uN={key:0,class:"anonymize-preview-status",role:"status"},cN={key:1,class:"anonymize-preview-status",role:"status"},pN={key:2,class:"anonymize-preview-status",role:"alert"},fN={key:3,class:"anonymize-preview-body"},mN={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},hN={class:"pr-title mb-1"},vN={key:0},yN=["textContent"],gN={key:0},bN={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},wN={key:2,class:"paper-tabs",role:"tablist"},kN=["aria-selected","tabindex"],EN=["aria-selected","tabindex"],CN=["textContent"],_N={key:3,class:"anonymize-preview-status"},SN={class:"paper-tab-content"},NN={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},DN=["innerHTML"],RN={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},TN={class:"pr-comments"},AN={class:"pr-comment"},ON={class:"pr-comment-head"},IN={key:0,class:"pr-comment-author"},PN=["textContent"],VN=["textContent"],qN={key:0,class:"pr-comment-body"};function Tl(e,t){let n=We("gist-file"),r=We("markdown"),s=be("field"),i=be("form");return l(),d("div",{class:A(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview"}])},[p(" ===== STATE 1: No URL \u2014 centered input ===== "),D(o("div",EC,[o("div",CC,[t[36]||(t[36]=o("div",{class:"paper-crumbs"},[b("My work \xA0/\xA0 "),o("span",{class:"here"},"New anonymization")],-1)),t[37]||(t[37]=o("h1",{class:"paper-page-title"},[b("New "),o("em",null,"anonymization")],-1)),t[38]||(t[38]=o("p",{class:"paper-page-lede"}," Paste a GitHub repository, pull-request, or gist URL. We\u2019ll fetch it, redact the terms you choose in text files, and give you a share link. Images and PDFs are served unchanged when enabled. Review them before sharing. ",-1)),o("div",_C,[o("div",SC,[t[32]||(t[32]=o("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",NC,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",DC,[o("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[31]||(t[31]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(),o("span",{class:"sr-only"},"Read-only ",-1),b("GitHub App",-1)])],8,RC),o("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,TC)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",AC,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(o("input",OC,null,512),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]])]),e.draftRestored?(l(),d("div",IC,[t[33]||(t[33]=b("Your unsaved draft was restored. ",-1)),o("button",{type:"button",class:"draft-discard",onClick:t[2]||(t[2]=a=>e.discardDraft())},"Discard draft")])):p("v-if",!0),e.sourceUrlError?(l(),d("p",PC,c(e.sourceUrlError),1)):p("v-if",!0),t[39]||(t[39]=o("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",VC,[o("div",qC,[o("div",MC,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=a=>e.grantGitHubAccess())},[...t[34]||(t[34]=[b("Manage access ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",$C,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),o("div",LC,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",UC,"Select repositories on GitHub, then return here.")):p("v-if",!0),t[35]||(t[35]=o("span",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b(" Selected content will be published, including content from private repositories.")],-1))])])):p("v-if",!0)])],512),[[K,!e.workspaceOpen&&!e.isUpdate]]),p(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),D(o("div",FC,[o("header",zC,[o("div",HC,[o("div",BC,[t[40]||(t[40]=o("a",{href:"/dashboard"},"My work",-1)),t[41]||(t[41]=b(" \xA0/\xA0 ",-1)),o("span",jC,c(e.isUpdate?"Edit anonymization":"New anonymization"),1)]),o("div",GC,[o("h1",WC,[e.isUpdate?p("v-if",!0):(l(),d("span",KC,[...t[42]||(t[42]=[b("New ",-1),o("em",null,"anonymization",-1)])])),e.isUpdate?(l(),d("span",YC,[...t[43]||(t[43]=[b("Edit ",-1),o("em",null,"anonymization",-1)])])):p("v-if",!0)]),D(o("span",{class:A(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},c(e.detectedType==="repo"?"Repo":e.detectedType==="pr"?"PR":"Gist"),3),[[K,e.detectedType]])])])]),e.detectedType==="gist"&&e.gistAppRequired?(l(),d("aside",JC,[t[44]||(t[44]=o("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),o("button",{type:"button",class:"btn btn-ink",onClick:t[4]||(t[4]=a=>e.connectGistApp())},"Connect GitHub App to access gists")])):p("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(l(),d("aside",QC,[t[45]||(t[45]=o("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[46]||(t[46]=o("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[5]||(t[5]=a=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(l(),d("p",XC,"GitHub OAuth is currently unavailable. Please try again later."))])):p("v-if",!0),o("nav",ZC,[o("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[6]||(t[6]=a=>e.previewTabKeydown(a)),onClick:t[7]||(t[7]=a=>e.selectMobilePane("settings"))},"Settings",40,xC),o("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[8]||(t[8]=a=>e.previewTabKeydown(a)),onClick:t[9]||(t[9]=a=>e.selectMobilePane("preview"))},"Reviewer preview",40,e2)]),e.detectedType!=="repo"&&!e.details?(l(),d("div",t2,c(e.sourceLoading?"Loading source\u2026":"Choose an accessible source to see its preview."),1)):p("v-if",!0),o("div",o2,[p(" Form column (left) "),o("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[D((l(),d("form",s2,[o("section",r2,[t[57]||(t[57]=o("div",{class:"paper-section-eyebrow"},"Source",-1)),o("div",i2,[o("div",a2,[t[48]||(t[48]=o("label",{class:"paper-field-label",for:"sourceUrl"},"GitHub URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",l2,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",d2,[o("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[10]||(t[10]=a=>e.chooseGitHubConnection("github-app"))},[...t[47]||(t[47]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(),o("span",{class:"sr-only"},"Read-only ",-1),b("GitHub App",-1)])],8,u2),o("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[11]||(t[11]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,c2)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",p2,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,f2),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),D(o("div",m2," Please provide a valid GitHub URL. ",512),[[K,e.anonymize?.sourceUrl?.errors?.github]]),D(o("div",h2," Not accessible. The organization may restrict access. ",512),[[K,e.anonymize?.sourceUrl?.errors?.access]]),D(o("div",v2," Does not exist or is not accessible. ",512),[[K,e.anonymize?.sourceUrl?.errors?.missing]]),D(o("div",y2," Already anonymized. ",512),[[K,e.anonymize?.sourceUrl?.errors?.used]])]),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",g2,[o("div",b2,[o("div",w2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[12]||(t[12]=a=>e.grantGitHubAccess())},[...t[49]||(t[49]=[b("Manage access ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",k2,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),o("div",E2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",C2,"Select repositories on GitHub, then return here.")):p("v-if",!0),t[50]||(t[50]=o("span",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b(" Selected content will be published, including content from private repositories.")],-1))])])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",_2,[t[51]||(t[51]=o("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[13]||(t[13]=a=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(l(),d("p",S2,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):p("v-if",!0)])):p("v-if",!0),e.detectedType==="repo"?(l(),d("div",N2,[o("div",D2,[t[53]||(t[53]=o("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),o("div",R2,[D((l(),d("select",T2,[(l(!0),d(X,null,ae(e.branches,(a,u)=>(l(),d("option",{textContent:c(a?.name),value:a?.name},null,8,A2))),256))])),[[s,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),o("div",O2,[o("button",{class:"btn btn-icon",type:"button",title:"Refresh","data-toggle":"tooltip","data-placement":"bottom",onClick:t[14]||(t[14]=a=>e.getBranches(!0)),"aria-label":"Refresh"},[...t[52]||(t[52]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])])])])]),o("div",I2,[t[54]||(t[54]=o("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,P2),[[s,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),D(o("div",V2," The commit SHA is not valid. ",512),[[K,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),D(o("div",q2," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[K,e.anonymize?.commit?.errors?.exists]])])])):p("v-if",!0),D(o("div",M2,[D(o("input",$2,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[55]||(t[55]=o("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[56]||(t[56]=o("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))],512),[[K,e.detectedType]])]),D(o("section",L2,[t[68]||(t[68]=o("div",{class:"paper-section-eyebrow"},"Identity",-1)),D(o("div",U2,[t[60]||(t[60]=o("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,F2),[[s,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",z2,[t[58]||(t[58]=b("Your share link will be ",-1)),o("code",null,"anonymous.4open.science/r/"+c(e.repoId),1),t[59]||(t[59]=b(".",-1))]),D(o("div",H2,"ID can only contain letters and numbers.",512),[[K,e.anonymize?.repoId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.repoId)+" is already used.",513),[[K,e.anonymize?.repoId?.errors?.used]])],512),[[K,e.detectedType==="repo"]]),D(o("div",B2,[t[63]||(t[63]=o("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,j2),[[s,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",G2,[t[61]||(t[61]=b("Your share link will be ",-1)),o("code",null,"anonymous.4open.science/pr/"+c(e.pullRequestId),1),t[62]||(t[62]=b(".",-1))]),D(o("div",W2,"ID can only contain letters and numbers.",512),[[K,e.anonymize?.pullRequestId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used.",513),[[K,e.anonymize?.pullRequestId?.errors?.used]])],512),[[K,e.detectedType==="pr"]]),D(o("div",K2,[t[66]||(t[66]=o("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,Y2),[[s,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",J2,[t[64]||(t[64]=b("Your share link will be ",-1)),o("code",null,"anonymous.4open.science/gist/"+c(e.gistId),1),t[65]||(t[65]=b(".",-1))]),D(o("div",Q2,"ID can only contain letters and numbers.",512),[[K,e.anonymize?.gistId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.gistId)+" is already used.",513),[[K,e.anonymize?.gistId?.errors?.used]])],512),[[K,e.detectedType==="gist"]]),o("div",X2,[t[67]||(t[67]=o("label",{class:"paper-field-label",for:"conference"},[b("Conference "),o("span",{class:"paper-optional"},"(optional)")],-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[s,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(o("small",Z2,[o("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,x2),b(" expires "+c(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[K,e.conference_data]]),D(o("div",e_,"The conference is not activated.",512),[[K,e.anonymize?.conference?.errors?.activated]]),D(o("small",t_,"Link to a conference to apply its shared defaults.",512),[[K,!e.conference_data]])])],512),[[K,e.detectedType]]),D(o("section",o_,[t[76]||(t[76]=o("div",{class:"paper-section-eyebrow"},"Anonymization",-1)),o("div",n_,[t[75]||(t[75]=o("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),D(o("textarea",{class:A(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"4"},null,2),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),o("small",s_,[t[69]||(t[69]=b("One term per line (regex allowed). Replaced by ",-1)),o("code",null,c(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[70]||(t[70]=b(", or use ",-1)),t[71]||(t[71]=o("code",null,"term=>replacement",-1)),t[72]||(t[72]=b(" to pick your own (e.g. ",-1)),t[73]||(t[73]=o("code",null,"Anonymous=>ABC",-1)),t[74]||(t[74]=b(").",-1))]),D(o("div",r_,"Regex characters detected. Escape them if unintentional.",512),[[K,e.termsRegexWarning]]),D(o("div",i_,"Terms are in an invalid format.",512),[[K,e.anonymize?.terms?.errors?.format]])])],512),[[K,e.detectedType]]),D(o("section",a_,[t[97]||(t[97]=o("div",{class:"paper-section-eyebrow"},"Display",-1)),D(o("div",null,[o("div",l_,[D(o("input",d_,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[77]||(t[77]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),o("div",u_,[D(o("input",c_,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[78]||(t[78]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[79]||(t[79]=o("small",{class:"form-text text-muted"},"Images are served unchanged and may contain names or affiliations.",-1))]),o("div",p_,[D(o("input",f_,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[80]||(t[80]=o("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[81]||(t[81]=o("small",{class:"form-text text-muted"},[b("PDF contents and metadata are served unchanged. "),o("a",{href:"/faq#formats"},"About supported formats")],-1))]),o("div",m_,[D(o("input",h_,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[82]||(t[82]=o("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),o("div",v_,[D(o("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,y_),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[83]||(t[83]=o("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?p("v-if",!0):(l(),d("small",g_,c(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(l(),d("small",b_,c(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):p("v-if",!0)])],512),[[K,e.detectedType==="repo"]]),D(o("div",null,[o("div",w_,[D(o("input",k_,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[84]||(t[84]=o("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),o("div",E_,[D(o("input",C_,null,512),[[s,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[85]||(t[85]=o("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),o("div",__,[D(o("input",S_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[86]||(t[86]=o("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),o("div",N_,[D(o("input",D_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[87]||(t[87]=o("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),o("div",R_,[D(o("input",T_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[88]||(t[88]=o("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),o("div",A_,[D(o("input",O_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[89]||(t[89]=o("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[K,e.detectedType==="gist"]]),D(o("div",null,[o("div",I_,[D(o("input",P_,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[90]||(t[90]=o("label",{class:"form-check-label",for:"title"},"PR title",-1))]),o("div",V_,[D(o("input",q_,null,512),[[s,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[91]||(t[91]=o("label",{class:"form-check-label",for:"body"},"PR body",-1))]),o("div",M_,[D(o("input",$_,null,512),[[s,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[92]||(t[92]=o("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),o("div",L_,[D(o("input",U_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[93]||(t[93]=o("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),o("div",F_,[D(o("input",z_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[94]||(t[94]=o("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),o("div",H_,[D(o("input",B_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[95]||(t[95]=o("label",{class:"form-check-label",for:"date"},"Dates",-1))]),o("div",j_,[D(o("input",G_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[96]||(t[96]=o("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[K,e.detectedType==="pr"]])],512),[[K,e.detectedType]]),D(o("section",W_,[t[101]||(t[101]=o("div",{class:"paper-section-eyebrow"},"Expiration",-1)),o("div",K_,[o("div",Y_,[t[99]||(t[99]=o("label",{class:"paper-field-label",for:"expiration"},"Strategy",-1)),D((l(),d("select",J_,[...t[98]||(t[98]=[o("option",{value:"redirect"},"Redirect to GitHub when expired",-1),o("option",{value:"remove",selected:""},"Remove when expired",-1)])])),[[s,{state:e.viewState,set:a=>{e.options.expirationMode=a},value:e.options?.expirationMode,form:"anonymize",options:{}}]])]),o("div",Q_,[t[100]||(t[100]=o("label",{class:"paper-field-label",for:"expirationDate"},"Expiration date",-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,X_),[[s,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),D(o("div",Z_,"Pick a date in the future.",512),[[K,e.anonymize?.expirationDate?.errors?.min]]),D(o("div",{class:"invalid-feedback"},"Pick a date on or before "+c(e.fmt?.date(e.maxExpirationDate))+".",513),[[K,e.anonymize?.expirationDate?.errors?.max]]),D(o("div",x_,"Enter a valid expiration date.",512),[[K,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the content will be removed.",513),[[K,e.options?.expirationMode=="remove"&&e.options?.expirationDate]]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", visitors will be redirected to GitHub.",513),[[K,e.options?.expirationMode=="redirect"&&e.options?.expirationDate]])],512),[[K,e.detectedType]]),D(o("section",eS,[t[105]||(t[105]=o("div",{class:"paper-section-eyebrow"},"Co-authors",-1)),t[106]||(t[106]=o("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),D(o("div",tS,[t[102]||(t[102]=o("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),o("div",oS,[D(o("input",nS,null,512),[[s,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),D(o("div",sS,[(l(!0),d(X,null,ae(e.coauthorResults,(a,u)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:de(f=>e.addCoauthor(a,f),["prevent"])},[o("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,iS),o("span",{textContent:c(a?.username)},null,8,aS)],8,rS))),256))],512),[[K,e.coauthorResults?.length>0]])]),D(o("small",{class:"form-text text-muted",textContent:c(e.coauthorError)},null,8,lS),[[K,e.coauthorError]])],512),[[K,e.role==="owner"||e.role==="admin"]]),o("div",dS,[(l(!0),d(X,null,ae(e.coauthors,(a,u)=>(l(),d("div",uS,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,cS)):p("v-if",!0),o("a",{target:"_blank",textContent:c(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,pS),t[104]||(t[104]=o("span",{class:"type-badge type-coauthor"},"Co-author",-1)),D(o("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:f=>e.removeCoauthor(a),"aria-label":"Remove co-author"},[...t[103]||(t[103]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,fS),[[K,e.role==="owner"||e.role==="admin"]])]))),256)),D(o("div",mS," No co-authors yet. ",512),[[K,!e.coauthors||e.coauthors?.length===0]])])],512),[[K,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,hS)):p("v-if",!0),e.draftRestored?(l(),d("div",vS,[t[107]||(t[107]=b("Your unsaved draft was restored. ",-1)),o("button",{type:"button",class:"draft-discard",onClick:t[15]||(t[15]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",yS,[b(c(e.draftSaved?"Draft saved in this tab for 30 minutes.":"Unsaved changes. Keep this tab open until you save.")+" ",1),o("button",{type:"button",class:"draft-discard",onClick:t[16]||(t[16]=a=>e.discardDraft())},c(e.isUpdate?"Restore saved settings":"Discard changes"),1)])):p("v-if",!0),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(l(),d("p",gS,"Review enabled images and PDFs before sharing. Their contents are not anonymized.")):p("v-if",!0),o("button",{type:"button",class:"btn btn-outline-ink mobile-preview-jump",onClick:t[17]||(t[17]=a=>e.selectMobilePane("preview"))},[...t[108]||(t[108]=[b("Review preview ",-1),o("span",{"aria-hidden":"true"},"\u2192",-1)])]),D(o("div",bS,[e.detectedType==="repo"&&!e.isUpdate?(l(),d("button",{key:0,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[18]||(t[18]=de(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[109]||(t[109]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize Repository ",-1)])],8,wS)):p("v-if",!0),e.detectedType==="repo"&&e.isUpdate?(l(),d("button",{key:1,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[19]||(t[19]=de(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[110]||(t[110]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update Repository ",-1)])],8,kS)):p("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[20]||(t[20]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[111]||(t[111]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize Pull Request ",-1)])],8,ES)):p("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:3,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[21]||(t[21]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[112]||(t[112]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update Pull Request ",-1)])],8,CS)):p("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[22]||(t[22]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[113]||(t[113]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize Gist ",-1)])],8,_S)):p("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:5,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[23]||(t[23]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[114]||(t[114]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update Gist ",-1)])],8,SS)):p("v-if",!0)],512),[[K,e.detectedType]])])),[[i,e.viewState]])],8,n2),p(" Preview column (right) "),e.detectedType==="repo"?(l(),d("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[o("div",DS,[t[115]||(t[115]=o("span",{class:"paper-eyebrow"},"Live preview",-1)),o("span",RS,c(e.previewStatus==="ready"?"README with redactions applied":"README preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",TS,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",AS,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",OS,[t[116]||(t[116]=o("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),o("button",{class:"btn btn-outline-ink",type:"button",onClick:t[24]||(t[24]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),!e.sourceLoading&&!e.readme&&e.previewStatus==="idle"?(l(),d("div",IS,"No README is available to preview. Review the published files before sharing.")):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",{key:4,class:"anonymize-preview-body markdown-body body",innerHTML:e.sanitize(e.html_readme)},null,8,PS)):p("v-if",!0)],8,NS)):p("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",{key:1,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[o("div",qS,[t[117]||(t[117]=o("span",{class:"paper-eyebrow"},"Live preview",-1)),o("span",MS,c(e.previewStatus==="ready"?"Gist with redactions applied":"Gist preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",$S,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",LS,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",US,[t[118]||(t[118]=o("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),o("button",{class:"btn btn-outline-ink",type:"button",onClick:t[25]||(t[25]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",FS,[o("div",zS,[o("h2",HS,[e.options?.title?(l(),d("span",BS,c(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):p("v-if",!0),o("span",{class:A(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},c(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,jS)):p("v-if",!0)]),e.options?.origin?(l(),d("small",GS,"Gist ID: "+c(e.details?.source?.gistId),1)):p("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",WS,"By @"+c(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):p("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",KS,[o("ul",YS,[(l(!0),d(X,null,ae(e.previewGistFiles,(a,u)=>(l(),d("li",JS,[o("div",QS,[o("strong",{textContent:c(a?.filename)},null,8,XS),a?.language?(l(),d("span",ZS,c(a?.language),1)):p("v-if",!0)]),Ce(n,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):p("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",xS,[t[121]||(t[121]=o("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),o("ul",eN,[(l(!0),d(X,null,ae(e.details?.gist?.comments,(a,u)=>(l(),d("li",tN,[o("div",oN,[e.options?.username?(l(),d("span",nN,[t[119]||(t[119]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[120]||(t[120]=b(" @",-1)),o("span",{textContent:c(e.anonymizeGistContent(a?.author))},null,8,sN)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,rN)):p("v-if",!0)]),e.options?.body?(l(),d("div",iN,[Ce(r,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])):p("v-if",!0)],8,VS)):p("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",{key:2,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[o("div",lN,[t[122]||(t[122]=o("span",{class:"paper-eyebrow"},"Live preview",-1)),o("span",dN,c(e.previewStatus==="ready"?"Pull request with redactions applied":"Pull request preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",uN,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",cN,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",pN,[t[123]||(t[123]=o("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),o("button",{class:"btn btn-outline-ink",type:"button",onClick:t[26]||(t[26]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",fN,[o("div",mN,[o("h2",hN,[e.options?.title?(l(),d("span",vN,c(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):p("v-if",!0),o("span",{class:A(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,yN)):p("v-if",!0)]),e.options?.origin?(l(),d("small",gN,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",bN,[Ce(r,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",wN,[e.options?.diff?(l(),d("button",{key:0,class:A(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[27]||(t[27]=a=>e.previewTabKeydown(a)),onClick:t[28]||(t[28]=a=>e.prTabState.active="diff")},[...t[124]||(t[124]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-code"})],-1),b(" Diff ",-1)])],42,kN)):p("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:A(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[29]||(t[29]=a=>e.previewTabKeydown(a)),onClick:t[30]||(t[30]=a=>e.prTabState.active="comments")},[t[125]||(t[125]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,CN)],42,EN)):p("v-if",!0)])):p("v-if",!0),!e.options?.diff&&!e.options?.comments?(l(),d("div",_N,"Diff and comments are hidden by your display settings.")):p("v-if",!0),o("div",SN,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",NN,[o("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,DN)])):p("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",RN,[o("ul",TN,[(l(!0),d(X,null,ae(e.details?.pullRequest?.comments,(a,u)=>(l(),d("li",AN,[o("div",ON,[e.options?.username?(l(),d("span",IN,[t[126]||(t[126]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[127]||(t[127]=b(" @",-1)),o("span",{textContent:c(e.anonymizePrContent(a?.author))},null,8,PN)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,VN)):p("v-if",!0)]),e.options?.body?(l(),d("div",qN,[Ce(r,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])])):p("v-if",!0)],8,aN)):p("v-if",!0)])],512),[[K,e.workspaceOpen||e.isUpdate]])],2)}var MN={class:"container-fluid h-100 anonymize-page"},$N={class:"row h-100 flex-column flex-md-row"},LN={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},UN={class:"form-group"},FN={class:"form-group"},zN={class:"form-check"},HN={class:"form-check-input",type:"checkbox",id:"update",name:"update"},BN={class:"form-group"},jN={class:"form-text text-muted"},GN=["href"],WN={class:"invalid-feedback"},KN={class:"form-text text-muted"},YN={class:"form-group"},JN={id:"idHelp",class:"form-text text-muted"},QN={class:"invalid-feedback"},XN={class:"form-group"},ZN={class:"invalid-feedback"},xN={class:"form-group"},eD={class:"form-control",id:"expiration",name:"expiration"},tD={class:"form-group",id:"expiration-date-form"},oD={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},nD={class:"accordion mb-3",id:"options"},sD={class:"card"},rD={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},iD={class:"card-body"},aD={class:"form-group mb-0"},lD={class:"form-check"},dD={class:"form-check-input",type:"checkbox",id:"link",name:"link"},uD={class:"form-check"},cD={class:"form-check-input",type:"checkbox",id:"image",name:"image"},pD={class:"form-check"},fD={class:"form-check-input",type:"checkbox",id:"date",name:"date"},mD={class:"form-check"},hD={class:"form-check-input",type:"checkbox",id:"username",name:"username"},vD={class:"form-check"},yD={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},gD={class:"form-check"},bD={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},wD={class:"form-check"},kD={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},ED={class:"form-check"},CD={class:"form-check-input",type:"checkbox",id:"title",name:"title"},_D={class:"form-check"},SD={class:"form-check-input",type:"checkbox",id:"body",name:"body"},ND=["textContent"],DD={class:"anonymize-submit-bar"},RD={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},TD={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},AD={class:"pr-title mb-1"},OD={key:0},ID=["textContent"],PD={key:0},VD={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},qD={class:"nav nav-tabs",id:"myTab",role:"tablist"},MD={key:0,class:"nav-item",role:"presentation"},$D={key:1,class:"nav-item",role:"presentation"},LD=["textContent"],UD={class:"tab-content",id:"pills-tabContent"},FD={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},zD={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},HD={style:{"overflow-x":"auto"}},BD=["innerHTML"],jD={key:0,class:"pr-comments list-group"},GD={class:"pr-comment list-group-item"},WD={class:"d-flex w-100 justify-content-between flex-wrap"},KD={key:0,class:"mb-1"},YD=["textContent"],JD={class:"mb-1"};function Al(e,t){let n=We("markdown"),r=be("field"),s=be("form");return l(),d("div",MN,[o("div",$N,[o("div",LN,[o("div",{class:A(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[D((l(),d("form",{class:A(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=pe('Anonymize \xA0/\xA0 Pull request
Anonymize a pull request Fill in the details \u2014 it only takes a minute.
Source
',4)),p(" pullRequestUrl "),o("div",UN,[t[2]||(t[2]=o("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestUrl=i},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[K,e.anonymize?.pullRequestUrl?.errors?.access]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[K,e.anonymize?.pullRequestUrl?.errors?.missing]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is already anonymized ",513),[[K,e.anonymize?.pullRequestUrl?.errors?.used]])]),D(o("div",null,[o("div",FN,[o("div",zN,[D(o("input",HN,null,512),[[r,{state:e.viewState,set:i=>{e.options.update=i},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=o("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=o("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=o("div",{class:"paper-section-eyebrow anonymize-section-title"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})]),b(" Conference ID ")],-1)),p(" Conference "),o("div",BN,[t[5]||(t[5]=o("label",{for:"conference"},[b("Conference ID "),o("span",{class:"text-muted"},"(Optional)")],-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[r,{state:e.viewState,set:i=>{e.conference=i},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(o("small",jN,[o("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,GN),b(" will expire on "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[K,e.conference_data]]),D(o("div",WN," The conference is not activated. ",512),[[K,e.anonymize?.conference?.errors?.activated]]),D(o("small",KN," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[K,!e.conference_data]])]),t[27]||(t[27]=o("div",{class:"paper-section-eyebrow anonymize-section-title"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})]),b(" Anonymization Options ")],-1)),p(" Pull Request ID "),o("div",YN,[t[6]||(t[6]=o("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestId=i},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",JN,"Id used in the url: https://anonymous.4open.science/r/"+c(e.pullRequestId),1),D(o("div",QN," Repository id can only contain letters and numbers ",512),[[K,e.anonymize?.pullRequestId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used ",513),[[K,e.anonymize?.pullRequestId?.errors?.used]])]),p(" Terms "),o("div",XN,[t[7]||(t[7]=o("label",{for:"terms"},"Terms to anonymize",-1)),D(o("textarea",{class:A(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[r,{state:e.viewState,set:i=>{e.terms=i},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=o("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),D(o("div",ZN," Terms are in an invalid format ",512),[[K,e.anonymize?.terms?.errors?.format]])]),o("div",xN,[t[10]||(t[10]=o("label",{for:"expiration"},"Expiration strategy",-1)),D((l(),d("select",eD,[...t[9]||(t[9]=[o("option",{value:"never",selected:""},"Never expire",-1),o("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),o("option",{value:"remove"},"Remove when expired",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.expirationMode=i},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=o("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),D(o("div",tD,[t[12]||(t[12]=o("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),D(o("input",oD,null,512),[[r,{state:e.viewState,set:i=>{e.options.expirationDate=i},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[K,e.options?.expirationMode=="remove"]]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+c(e.pullRequestUrl)+".",513),[[K,e.options?.expirationMode=="redirect"]])],512),[[K,e.options?.expirationMode!="never"]]),o("div",nD,[o("div",sD,[t[25]||(t[25]=pe('',1)),o("div",rD,[o("div",iD,[o("div",aD,[o("div",lD,[D(o("input",dD,null,512),[[r,{state:e.viewState,set:i=>{e.options.link=i},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=o("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),o("div",uD,[D(o("input",cD,null,512),[[r,{state:e.viewState,set:i=>{e.options.image=i},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=o("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),o("div",pD,[D(o("input",fD,null,512),[[r,{state:e.viewState,set:i=>{e.options.date=i},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=o("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=o("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),o("div",mD,[D(o("input",hD,null,512),[[r,{state:e.viewState,set:i=>{e.options.username=i},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=o("label",{class:"form-check-label",for:"username"},"Display username",-1))]),o("div",vD,[D(o("input",yD,null,512),[[r,{state:e.viewState,set:i=>{e.options.comments=i},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=o("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),o("div",gD,[D(o("input",bD,null,512),[[r,{state:e.viewState,set:i=>{e.options.diff=i},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=o("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),o("div",wD,[D(o("input",kD,null,512),[[r,{state:e.viewState,set:i=>{e.options.origin=i},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=o("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),o("div",ED,[D(o("input",CD,null,512),[[r,{state:e.viewState,set:i=>{e.options.title=i},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=o("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),o("div",_D,[D(o("input",SD,null,512),[[r,{state:e.viewState,set:i=>{e.options.body=i},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=o("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[K,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,ND)):p("v-if",!0),D(o("div",DD,[e.isUpdate?p("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=de(i=>e.submitForm(i,()=>{e.anonymizePullRequest(i)}),["prevent"]))},[...t[28]||(t[28]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=de(i=>e.submitForm(i,()=>{e.updatePullRequest(i)}),["prevent"]))},[...t[29]||(t[29]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update ",-1)])])):p("v-if",!0)],512),[[K,e.pullRequestUrl]])],2)),[[s,e.viewState]])],2)]),e.details?(l(),d("div",RD,[o("div",TD,[o("h2",AD,[e.options?.title?(l(),d("span",OD,c(e.anonymize(e.details?.pullRequest?.title)),1)):p("v-if",!0),o("span",{class:A(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,ID)):p("v-if",!0)]),e.options?.origin?(l(),d("small",PD,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",VD,[Ce(n,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),o("ul",qD,[e.options?.diff?(l(),d("li",MD,[...t[31]||(t[31]=[o("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):p("v-if",!0),e.options?.comments?(l(),d("li",$D,[o("button",{class:A(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[o("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,LD)],2)])):p("v-if",!0)]),o("div",UD,[o("div",FD,[e.options?.diff?(l(),d("div",zD,[o("pre",HD,[o("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,BD)])])):p("v-if",!0)]),o("div",{class:A(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",jD,[(l(!0),d(X,null,ae(e.details?.pullRequest?.comments,(i,a)=>(l(),d("li",GD,[o("div",WD,[e.options?.username?(l(),d("h5",KD," @"+c(e.anonymize(i?.author)),1)):p("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:c(e.fmt?.date(i?.updatedDate))},null,8,YD)):p("v-if",!0)]),o("p",JD,[e.options?.body?(l(),Lt(n,{key:0,class:"pr-comment-body",content:e.anonymize(i?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):p("v-if",!0)])]))),256))])):p("v-if",!0)],2)])])):p("v-if",!0)])])}var QD={class:"container paper-page claim-page"},XD={class:"paper-settings-main claim-form"},ZD={class:"form-group"},xD={class:"invalid-feedback"},eR={class:"form-group"};function Ol(e,t){let n=be("field"),r=be("form");return l(),d("div",QD,[t[6]||(t[6]=pe('Claim an anonymization Take ownership of an existing anonymized repository so it appears on your dashboard.
',3)),o("div",XD,[t[5]||(t[5]=o("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),D((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{e.claim()}),["prevent"]))},[o("div",ZD,[t[1]||(t[1]=o("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[n,{state:e.viewState,set:s=>{e.repoUrl=s},value:e.repoUrl,form:"claimForm",options:{}}]]),D(o("div",xD," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[K,e.claimForm?.repoUrl?.errors?.not_found]])]),o("div",eR,[t[2]||(t[2]=o("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[n,{state:e.viewState,set:s=>{e.repoId=s},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=o("small",{id:"idHelp",class:"form-text text-muted"},[b("The ID is the last part of the anonymized URL: "),o("code",null,"anonymous.4open.science/r/"),b(".")],-1))]),t[4]||(t[4]=o("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[r,e.viewState]])])])}var tR={class:"container page paper-page conference-page"},oR={class:"paper-crumbs"},nR={class:"here"},sR={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},rR=["textContent"],iR={key:0,class:"paper-page-lede"},aR=["textContent","href"],lR={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},dR=["textContent"],uR=["href"],cR={class:"paper-meta-rule"},pR=["textContent"],fR=["textContent"],mR={key:0},hR={class:"search-wrap"},vR={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},yR={class:"dashboard-filter-controls"},gR={class:"dropdown"},bR={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},wR={class:"filter-btn-value"},kR={class:"dropdown-menu","aria-labelledby":"dropdownSort"},ER={class:"form-check dropdown-item"},CR={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},_R={class:"form-check dropdown-item"},SR={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},NR={class:"form-check dropdown-item"},DR={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},RR={class:"form-check dropdown-item"},TR={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},AR={class:"dropdown"},OR={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},IR={key:0,class:"filter-btn-value"},PR={key:1,class:"filter-btn-value"},VR={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},qR={class:"form-check dropdown-item"},MR=["id"],$R=["for"],LR={class:"dashboard-meta"},UR={class:"dashboard-count"},FR={key:0},zR={key:0},HR={key:1},BR={key:1},jR={key:0,class:"filter-chip"},GR=["onClick","aria-label"],WR={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},KR={class:"cell-anon",role:"cell"},YR={class:"anon-text"},JR=["textContent","href"],QR={class:"anon-sub"},XR={class:"anon-source"},ZR=["textContent","href"],xR={key:0},eT=["textContent","href"],tT={key:1},oT=["href"],nT={class:"cell-status",role:"cell"},sT={class:"status-line"},rT=["textContent"],iT={key:0,class:"status-sub"},aT={class:"cell-views num",role:"cell"},lT=["textContent"],dT={class:"cell-expires",role:"cell"},uT={key:0,class:"expires-never"},cT=["textContent"],pT={key:2,class:"expires-past"},fT={key:0},mT={key:3,class:"empty-dash","aria-label":"Not applicable"},hT={class:"cell-actions",role:"cell"},vT={class:"dropdown"},yT=["aria-label"],gT={class:"dropdown-menu dropdown-menu-right"},bT=["href"],wT=["href"],kT={key:0,class:"paper-table-empty"},ET={key:0},CT={key:1},_T={key:2,class:"paper-table-empty-actions"};function Il(e,t){let n=be("field"),r=be("form");return l(),d("div",tR,[o("div",null,[o("div",oR,[t[2]||(t[2]=o("a",{href:"/dashboard"},"My work",-1)),t[3]||(t[3]=b(" \xA0/\xA0 ",-1)),t[4]||(t[4]=o("a",{href:"/conferences"},"Conferences",-1)),t[5]||(t[5]=b(" \xA0/\xA0 ",-1)),o("span",nR,c(e.conference?.conferenceID),1)]),o("div",sR,[o("div",null,[o("h1",{class:"paper-page-title",textContent:c(e.conference?.name)},null,8,rR),e.conference?.url?(l(),d("p",iR,[o("a",{target:"_blank",rel:"noopener",textContent:c(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,aR)])):p("v-if",!0)]),o("div",lR,[o("span",{class:A(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[o("span",{class:A(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),o("span",{textContent:c(e.fmt?.statusLabel(e.conference?.status))},null,8,dR)],2),o("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[6]||(t[6]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit conference",-1)])],8,uR)])]),o("div",cR,[o("span",null,[t[7]||(t[7]=b("ID ",-1)),o("b",{class:"commit-hash",textContent:c(e.conference?.conferenceID)},null,8,pR)]),o("span",null,[t[8]||(t[8]=b("Review window ",-1)),o("b",null,c(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),o("span",null,[t[9]||(t[9]=b("Repositories ",-1)),o("b",null,c(e.fmt?.number(e.conference?.repositories?.length)),1)]),o("span",null,[t[10]||(t[10]=b("Plan ",-1)),o("b",{textContent:c(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,fR)]),e.conference?.price?(l(),d("span",mR,[t[11]||(t[11]=b("Cost so far ",-1)),o("b",null,c(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):p("v-if",!0)]),t[32]||(t[32]=o("div",{class:"paper-section-eyebrow"},"Repositories",-1)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[o("div",hR,[D(o("input",vR,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),o("div",yR,[o("div",gR,[o("button",bR,[t[12]||(t[12]=o("span",{class:"filter-btn-label"},"Sort",-1)),o("span",wR,c({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),o("div",kR,[t[17]||(t[17]=o("h6",{class:"dropdown-header"},"Order by",-1)),o("div",ER,[D(o("input",CR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[13]||(t[13]=o("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),o("div",_R,[D(o("input",SR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[14]||(t[14]=o("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),o("div",NR,[D(o("input",DR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[15]||(t[15]=o("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),o("div",RR,[D(o("input",TR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[16]||(t[16]=o("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),o("div",AR,[o("button",OR,[t[18]||(t[18]=o("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",IR,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",PR,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),o("div",VR,[t[19]||(t[19]=o("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(X,null,ae(e.statusLabels,(s,i,a)=>(l(),d("div",qR,[D(o("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,MR),[[n,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),o("label",{class:"form-check-label",for:"status-"+i},c(s),9,$R)]))),256))])])])],32)),[[r,e.viewState]]),o("div",LR,[o("span",UR,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",FR,[b(c(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",zR,"y")):p("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",HR,"ies")):p("v-if",!0)])):p("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",BR,c(e.fmt?.number(e.filteredRepositories?.length))+" of "+c(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(X,null,ae(e.filters?.status,(s,i,a)=>(l(),d(X,null,[s===!1?(l(),d("span",jR,[b(" Hiding "+c(e.statusLabels[i])+" ",1),o("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,GR)])):p("v-if",!0)],64))),256))]),o("div",WR,[t[31]||(t[31]=o("div",{class:"paper-table-head",role:"row"},[o("div",{role:"columnheader"},"Repository"),o("div",{role:"columnheader"},"Status"),o("div",{role:"columnheader",class:"num"},"Views"),o("div",{role:"columnheader"},"Expires"),o("div",{role:"columnheader"},[o("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(X,null,ae(e.filteredRepositories,(s,i)=>(l(),d("div",{class:A(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error"}]),role:"row",key:s?.repoId},[o("div",KR,[t[22]||(t[22]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",YR,[o("a",{class:"repo-name",textContent:c(s?.repoId),href:e.safeUrl("/r/"+s?.repoId+"/")},null,8,JR),o("div",QR,[o("span",XR,[o("a",{target:"_blank",rel:"noopener",textContent:c(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,ZR),s?.options?.update&&s?.source?.branch?(l(),d("span",xR,[t[20]||(t[20]=b(" \xB7 ",-1)),o("a",{target:"_blank",rel:"noopener",textContent:c(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,eT)])):p("v-if",!0),s?.source?.commit?(l(),d("span",tT,[t[21]||(t[21]=b(" \xB7 ",-1)),o("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},"@"+c(s?.source?.commit?.substring(0,8)),9,oT)])):p("v-if",!0)])])])]),o("div",nT,[o("div",sT,[o("span",{class:A(["status-dot","status-"+(s?.status=="error"?"error":s?.status=="ready"?"ready":s?.status=="expired"||s?.status=="removed"?s?.status:"progress")]),"aria-hidden":"true"},null,2),o("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(s?.status))},null,8,rT)]),s?.anonymizeDate?(l(),d("div",iT,"anonymized "+c(e.fmt?.humanTime(s?.anonymizeDate)),1)):p("v-if",!0)]),o("div",aT,[t[23]||(t[23]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),t[24]||(t[24]=b()),o("span",{textContent:c(e.fmt?.number(s?.pageView))},null,8,lT)]),o("div",dT,[t[26]||(t[26]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),s?.status=="ready"&&(s?.options?.expirationMode==="never"||!s?.options?.expirationDate)?(l(),d("span",uT,"Never")):p("v-if",!0),s?.status=="ready"&&s?.options?.expirationMode!=="never"&&s?.options?.expirationDate?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(s?.options?.expirationDate))},null,8,cT)):p("v-if",!0),s?.status=="expired"?(l(),d("span",pT,[t[25]||(t[25]=b("Expired",-1)),s?.options?.expirationDate?(l(),d("span",fT,c(e.fmt?.humanTime(s?.options?.expirationDate)),1)):p("v-if",!0)])):p("v-if",!0),s?.status!="ready"&&s?.status!="expired"?(l(),d("span",mT,"\u2014")):p("v-if",!0)]),o("div",hT,[o("div",vT,[o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+s?.repoId},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})],-1)])],8,yT),o("div",gT,[o("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[28]||(t[28]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View ",-1)])],8,bT),o("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[29]||(t[29]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit ",-1)])],8,wT)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",kT,[t[30]||(t[30]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?p("v-if",!0):(l(),d("span",ET,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",CT,"Nothing matches the current filters.")):p("v-if",!0),e.conference?.repositories?.length?(l(),d("div",_T,[o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):p("v-if",!0)])):p("v-if",!0)])])])}var ST={class:"container page paper-page conferences-page"},NT={class:"row"},DT={class:"w-100"},RT={class:"search-wrap"},TT={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},AT={class:"dashboard-filter-controls"},OT={class:"dropdown"},IT={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},PT={class:"filter-btn-value"},VT={class:"dropdown-menu","aria-labelledby":"dropdownSort"},qT={class:"form-check dropdown-item"},MT={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},$T={class:"form-check dropdown-item"},LT={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},UT={class:"form-check dropdown-item"},FT={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},zT={class:"dropdown"},HT={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},BT={key:0,class:"filter-btn-value"},jT={key:1,class:"filter-btn-value"},GT={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},WT={class:"form-check dropdown-item"},KT=["id"],YT=["for"],JT={class:"dashboard-meta"},QT={class:"dashboard-count"},XT={key:0},ZT={key:0},xT={key:1},eA={key:0,class:"filter-chip"},tA=["onClick","aria-label"],oA={key:0,class:"conference-feedback",role:"alert"},nA={key:1,class:"conference-feedback",role:"status"},sA={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},rA={class:"cell-anon",role:"cell"},iA={class:"anon-text"},aA=["textContent","href"],lA={class:"anon-sub"},dA={class:"anon-source"},uA=["textContent"],cA={key:0},pA=["textContent","href"],fA={class:"cell-status",role:"cell"},mA={class:"status-line"},hA=["textContent"],vA={class:"cell-views num",role:"cell"},yA=["textContent"],gA={class:"cell-expires",role:"cell"},bA={key:0},wA={key:1,class:"empty-dash","aria-label":"No review window"},kA={class:"cell-actions",role:"cell"},EA={class:"dropdown"},CA=["disabled","aria-label"],_A={class:"dropdown-menu dropdown-menu-right"},SA=["href"],NA=["href"],DA={key:0},RA=["onClick"],TA={key:0,class:"paper-table-empty"},AA={key:0},OA={key:1},IA={class:"paper-table-empty-actions"},PA={key:1,href:"/conference/new",class:"btn btn-ink"};function Pl(e,t){let n=be("field"),r=be("form");return l(),d("div",ST,[o("div",NT,[o("div",DT,[t[10]||(t[10]=pe('Your conferences Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.
New conference ',2)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[o("div",RT,[D(o("input",TT,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),o("div",AT,[o("div",OT,[o("button",IT,[t[3]||(t[3]=o("span",{class:"filter-btn-label"},"Sort",-1)),o("span",PT,c({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),o("div",VT,[t[7]||(t[7]=o("h6",{class:"dropdown-header"},"Order by",-1)),o("div",qT,[D(o("input",MT,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=o("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),o("div",$T,[D(o("input",LT,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=o("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),o("div",UT,[D(o("input",FT,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=o("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),o("div",zT,[o("button",HT,[t[8]||(t[8]=o("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",BT,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",jT,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),o("div",GT,[t[9]||(t[9]=o("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(X,null,ae(e.statusLabels,(s,i,a)=>(l(),d("div",WT,[D(o("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,KT),[[n,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),o("label",{class:"form-check-label",for:"status-"+i},c(s),9,YT)]))),256))])])])],32)),[[r,e.viewState]]),o("div",JT,[o("span",QT,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",XT,[b(c(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",ZT,"s")):p("v-if",!0)])):p("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",xT,c(e.fmt?.number(e.filteredConferences?.length))+" of "+c(e.fmt?.number(e.conferences?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(X,null,ae(e.filters?.status,(s,i,a)=>(l(),d(X,null,[s===!1?(l(),d("span",eA,[b(" Hiding "+c(e.statusLabels[i])+" ",1),o("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,tA)])):p("v-if",!0)],64))),256))])]),e.error?(l(),d("div",oA,[o("span",null,c(e.error),1),o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>e.loadConferences())},"Retry")])):p("v-if",!0),e.loading?(l(),d("div",nA,"Loading conferences\u2026")):p("v-if",!0),o("div",sA,[t[24]||(t[24]=o("div",{class:"paper-table-head",role:"row"},[o("div",{role:"columnheader"},"Conference"),o("div",{role:"columnheader"},"Status"),o("div",{role:"columnheader",class:"num"},"Repos"),o("div",{role:"columnheader"},"Review window"),o("div",{role:"columnheader"},[o("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(X,null,ae(e.filteredConferences,(s,i)=>(l(),d("div",{class:A(["paper-table-row row-clickable",{"repo-inactive":s?.status=="expired"||s?.status=="removed"}]),role:"row",key:s?.conferenceID},[o("div",rA,[t[13]||(t[13]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[o("use",{href:"#project-icon-conference"})],-1)),o("div",iA,[o("a",{class:"repo-name",textContent:c(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,aA),o("div",lA,[o("span",dA,[t[12]||(t[12]=b("ID ",-1)),o("span",{class:"commit-hash",textContent:c(s?.conferenceID)},null,8,uA),s?.url?(l(),d("span",cA,[t[11]||(t[11]=b(" \xB7 ",-1)),o("a",{target:"_blank",rel:"noopener",textContent:c(e.fmt?.limitTo(s?.url,60)),href:e.safeUrl(s?.url)},null,8,pA)])):p("v-if",!0)])])])]),o("div",fA,[o("div",mA,[o("span",{class:A(["status-dot","status-"+s?.status]),"aria-hidden":"true"},null,2),o("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(s?.status))},null,8,hA)])]),o("div",vA,[t[14]||(t[14]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1)),t[15]||(t[15]=b()),o("span",{textContent:c(e.fmt?.number(s?.nbRepositories||0))},null,8,yA)]),o("div",gA,[t[16]||(t[16]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),s?.startDate?(l(),d("span",bA,c(e.fmt?.date(s?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(s?.endDate,"mediumDate")),1)):p("v-if",!0),s?.startDate?p("v-if",!0):(l(),d("span",wA,"\u2014"))]),o("div",kA,[o("div",EA,[o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:s?.removing,"aria-label":"Actions for "+s?.name},[...t[17]||(t[17]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})],-1)])],8,CA),o("div",_A,[o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[18]||(t[18]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View ",-1)])],8,SA),o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit ",-1)])],8,NA),s?.status!="removed"?(l(),d("div",DA,[t[21]||(t[21]=o("div",{class:"dropdown-divider"},null,-1)),o("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(s)},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove ",-1)])],8,RA)])):p("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(l(),d("div",TA,[t[23]||(t[23]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1)),e.conferences?.length==0?(l(),d("span",AA,"You have not created a conference yet.")):p("v-if",!0),e.conferences?.length>0?(l(),d("span",OA,"Nothing matches the current filters.")):p("v-if",!0),o("div",IA,[e.conferences?.length>0?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):p("v-if",!0),e.conferences?.length==0?(l(),d("a",PA,[...t[22]||(t[22]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#project-icon-plus"})],-1),b(" New conference",-1)])])):p("v-if",!0)])])):p("v-if",!0)])])])}var VA={class:"container page dashboard-page paper-page"},qA={class:"row"},MA={class:"w-100"},$A={class:"dashboard-heading"},LA=["open"],UA=["aria-expanded"],FA=["stroke-dasharray"],zA={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},HA={key:0,class:"quota-summary-value"},BA={key:0},jA={class:"quota-panel",id:"dashboard-usage"},GA={class:"quota-panel-heading"},WA={key:1,class:"quota-loading",role:"status"},KA={class:"search-wrap"},YA={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects, IDs, or conferences\u2026",autocomplete:"off"},JA=["aria-expanded"],QA={class:"btn-group",role:"group","aria-label":"Type"},XA=["aria-pressed"],ZA=["aria-pressed"],xA=["aria-pressed"],eO=["aria-pressed"],tO={class:"dropdown"},oO={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},nO={class:"filter-btn-value"},sO={class:"sr-only"},rO={class:"dropdown-menu","aria-labelledby":"dropdownSort"},iO={class:"form-check dropdown-item"},aO=["onClick","checked","id"],lO=["for"],dO={class:"dropdown"},uO={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},cO={key:0,class:"filter-btn-value"},pO={key:1,class:"filter-btn-value"},fO={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},mO={class:"form-check dropdown-item"},hO=["id"],vO=["for"],yO={key:0,class:"dashboard-meta"},gO={class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},bO=["aria-pressed"],wO=["aria-pressed","aria-label"],kO={class:"dashboard-count"},EO={key:0},CO={key:0},_O={key:1},SO={class:"dashboard-active-filters"},NO=["onClick","aria-label","title"],DO=["aria-busy"],RO={class:"paper-table-head",role:"row"},TO=["aria-sort"],AO=["aria-sort"],OO=["aria-sort"],IO=["aria-sort"],PO={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},VO=["onClick"],qO={class:"cell-anon",role:"cell"},MO=["aria-label","title"],$O={class:"project-type-svg","aria-hidden":"true"},LO=["href"],UO={class:"anon-text"},FO={class:"anon-title"},zO=["title","textContent","href"],HO=["textContent"],BO={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},jO={class:"anon-sub"},GO=["title"],WO=["title"],KO=["title"],YO=["textContent"],JO={class:"dashboard-row-meta",role:"presentation"},QO={class:"cell-status",role:"cell"},XO={class:"status-line"},ZO=["textContent"],xO=["textContent","title"],e4=["title"],t4=["href"],o4=["onClick"],n4={key:4,class:"status-sub status-sub-date"},s4=["aria-label"],r4={class:"cell-expires",role:"cell"},i4={key:0,class:"expires-never"},a4=["textContent"],l4={key:2,class:"expires-past"},d4={key:3,class:"expires-past"},u4={key:4,class:"empty-dash","aria-label":"Not applicable"},c4={class:"cell-actions",role:"cell"},p4=["onClick","disabled","title","aria-label"],f4=["onClick","data-project-actions","aria-controls","aria-expanded"],m4={key:2,class:"dropdown"},h4=["data-project-actions","aria-label"],v4={class:"dropdown-menu dropdown-menu-right"},y4=["onClick","aria-controls","aria-expanded"],g4=["href"],b4=["href"],w4=["onClick","disabled"],k4=["href"],E4=["onClick"],C4=["onClick"],_4=["onClick"],S4={key:5},N4=["onClick"],D4={key:1,class:"project-details-row",role:"row"},R4=["id","onKeydown"],T4={class:"project-details-heading"},A4=["onClick"],O4={class:"project-details-list"},I4={key:0},P4={key:1},V4={key:0},q4={key:2},M4={key:0,class:"project-progress-help"},$4=["href"],L4=["onSubmit"],U4=["for"],F4=["id"],z4={class:"project-name-controls"},H4=["id","aria-describedby","disabled"],B4=["disabled"],j4={key:0,class:"project-name-error",role:"alert"},G4={key:1,role:"status"},W4={key:0,class:"paper-table-empty"},K4={key:0},Y4={key:1},J4={class:"paper-table-empty-actions"},Q4={key:1,href:"/anonymize",class:"btn btn-ink"},X4={key:0,class:"dashboard-pagination"},Z4={key:0,role:"alert"},x4=["disabled"];function Vl(e,t){let n=We("quota-usage"),r=be("field"),s=be("form");return l(),d("div",VA,[o("div",qA,[o("div",MA,[o("div",$A,[o("div",null,[t[27]||(t[27]=o("h1",{class:"paper-page-title"},"Projects",-1)),t[28]||(t[28]=o("p",{class:"paper-page-lede"},"Manage your anonymous links.",-1)),o("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=i=>e.quotaExpanded=i.target.open),onKeydown:t[2]||(t[2]=Ao(de(i=>e.closeQuota(),["prevent","stop"]),["esc"]))},[o("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded},[(l(),d("svg",{class:A(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[21]||(t[21]=o("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(l(),d("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,FA)):p("v-if",!0),e.quota?.repository.unlimited?(l(),d("path",zA)):p("v-if",!0)],2)),t[23]||(t[23]=o("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(l(),d("span",HA,[b(c(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?p("v-if",!0):(l(),d("span",BA," / "+c(e.fmt.number(e.quota.repository.total)),1)),t[22]||(t[22]=b(" repos",-1))])):p("v-if",!0),t[24]||(t[24]=o("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[o("use",{href:"#project-icon-chevron"})],-1))],8,UA),o("div",jA,[o("div",GA,[t[26]||(t[26]=o("h2",null,"Account usage",-1)),o("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=i=>e.closeQuota())},[...t[25]||(t[25]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(l(),Lt(n,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",WA,"Loading usage\u2026"))])],40,LA)]),t[29]||(t[29]=pe('',1))]),p(" Search + filters "),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=de(i=>e.submitForm(i,()=>{i.preventDefault()}),["prevent"]))},[o("div",KA,[D(o("input",YA,null,512),[[r,{state:e.viewState,set:i=>{e.search=i},value:e.search,form:null,options:{}}]])]),o("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[3]||(t[3]=i=>e.filtersExpanded=!e.filtersExpanded)},[...t[30]||(t[30]=[b("Filters",-1),o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-filter"})],-1)])],8,JA),o("div",{id:"dashboard-filter-controls",class:A(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[o("div",QA,[o("button",{type:"button",class:A(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[4]||(t[4]=i=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,XA),o("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[5]||(t[5]=i=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[31]||(t[31]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),o("span",{class:"type-filter-label"},"Repos",-1)])],10,ZA),o("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[6]||(t[6]=i=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[32]||(t[32]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-type-pr"})],-1),o("span",{class:"type-filter-label"},"PRs",-1)])],10,xA),o("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[7]||(t[7]=i=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[33]||(t[33]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-type-gist"})],-1),o("span",{class:"type-filter-label"},"Gists",-1)])],10,eO)]),o("div",{id:"dashboard-extra-filters",class:A(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[o("div",tO,[o("button",oO,[t[35]||(t[35]=o("span",{class:"filter-btn-label"},"Sort",-1)),o("span",nO,c(e.sortLabel()),1),(l(),d("svg",{class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[34]||(t[34]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)),o("span",sO,c(e.sortDesc()?"descending":"ascending"),1)]),o("div",rO,[t[36]||(t[36]=o("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(X,null,ae(e.sortFields,(i,a,u)=>(l(),d("div",iO,[o("input",{class:"form-check-input",type:"radio",name:"sort",onClick:f=>e.setSort(a,i.defaultDesc),checked:e.isSortedBy(a),id:"sort-"+u},null,8,aO),o("label",{class:"form-check-label",for:"sort-"+u},c(i?.label),9,lO)]))),256)),t[37]||(t[37]=o("div",{class:"dropdown-divider"},null,-1)),o("button",{type:"button",class:"dropdown-item",onClick:t[8]||(t[8]=i=>e.toggleSortDirection())},c(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),o("div",dO,[o("button",uO,[t[38]||(t[38]=o("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?p("v-if",!0):(l(),d("span",cO,"All")),e.hasHiddenStatus()?(l(),d("span",pO,c(e.hiddenStatusCount())+" hidden",1)):p("v-if",!0)]),o("div",fO,[t[39]||(t[39]=o("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(X,null,ae(e.statusKeyLabels,(i,a,u)=>(l(),d("div",mO,[D(o("input",{class:"form-check-input",type:"checkbox",id:"status-"+a},null,8,hO),[[r,{state:e.viewState,set:f=>{e.filters.status[a]=f},value:e.filters?.status[a],form:null,options:{}}]]),o("label",{class:"form-check-label",for:"status-"+a},c(i),9,vO)]))),256))])])],2)],2)],32)),[[s,e.viewState]]),p(" Result count + active filter chips "),e.loading?p("v-if",!0):(l(),d("div",yO,[o("div",gO,[o("button",{type:"button","aria-pressed":e.projectView==="all",onClick:t[10]||(t[10]=i=>e.setProjectView("all")),"aria-label":"All projects"},[...t[40]||(t[40]=[o("span",{class:"dashboard-view-long"},"All projects",-1),o("span",{class:"dashboard-view-short","aria-hidden":"true"},"All",-1)])],8,bO),o("button",{type:"button","aria-pressed":e.projectView==="attention",onClick:t[11]||(t[11]=i=>e.setProjectView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[41]||(t[41]=o("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[42]||(t[42]=o("span",null,"attention",-1)),t[43]||(t[43]=b()),o("span",{class:A(["attention-count",{"has-attention":e.attentionCount()>0}])},c(e.attentionCount()),3)],8,wO)]),o("span",kO,[(e.dashboardTotals?.filtered??e.filteredItems?.length)===(e.dashboardTotals?.total??e.items?.length)?(l(),d("span",EO,[b(c(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" project",1),(e.dashboardTotals?.total??e.items?.length)!==1?(l(),d("span",CO,"s")):p("v-if",!0)])):(l(),d("span",_O,c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" of "+c(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" shown",1))]),o("div",SO,[(l(!0),d(X,null,ae(e.filters?.status,(i,a,u)=>(l(),d(X,null,[i===!1?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:f=>e.filters.status[a]=!0,"aria-label":"Show "+e.statusKeyLabels[a]+" again",title:"Show "+e.statusKeyLabels[a]+" again"},[b(c(e.statusKeyLabels[a])+" hidden",1),t[44]||(t[44]=o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1))],8,NO)):p("v-if",!0)],64))),256)),e.typeFilter!=="all"?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:t[12]||(t[12]=i=>e.typeFilter="all"),"aria-label":"Show all project types"},[b(c(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[45]||(t[45]=o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1))])):p("v-if",!0),e.showClearFilters()?(l(),d("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[13]||(t[13]=i=>e.clearFilters())},"Clear filters")):p("v-if",!0)])]))]),p(" Table "),o("div",{class:"paper-table paper-table-dashboard",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[o("div",RO,[o("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[14]||(t[14]=i=>e.setSort("_label"))},[t[47]||(t[47]=b(" Project ",-1)),e.isSortedBy("_label")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[46]||(t[46]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,TO),o("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("status")}]),onClick:t[15]||(t[15]=i=>e.setSort("status"))},[t[49]||(t[49]=b(" Status ",-1)),e.isSortedBy("status")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[48]||(t[48]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,AO),o("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[16]||(t[16]=i=>e.setSort("pageView"))},[t[51]||(t[51]=b(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[50]||(t[50]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,OO),o("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[17]||(t[17]=i=>e.setSort("options.expirationDate"))},[t[53]||(t[53]=b(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[52]||(t[52]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,IO),t[54]||(t[54]=o("div",{role:"columnheader"},[o("span",{class:"sr-only"},"Actions")],-1))]),p(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(X,null,ae([1,2,3,4],(i,a)=>(l(),d(X,null,[e.loading?(l(),d("div",PO,[...t[55]||(t[55]=[o("div",{class:"cell-anon",role:"cell"},[o("span",{class:"skeleton skeleton-badge"}),o("div",{class:"anon-text"},[o("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),o("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),o("div",{class:"cell-status",role:"cell"},[o("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),o("div",{class:"cell-views num",role:"cell"},[o("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),o("div",{class:"cell-expires",role:"cell"},[o("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),o("div",{class:"cell-actions",role:"cell"},null,-1)])])):p("v-if",!0)],64))),64)),(l(!0),d(X,null,ae(e.filteredItems,(i,a)=>(l(),d(X,{key:i?._type+":"+(i?._id||a)},[e.loading?p("v-if",!0):(l(),d("div",{key:0,class:A(["paper-table-row",{"repo-inactive":i?._statusKey=="expired"||i?._statusKey=="removed","repo-error":i?.status=="error","row-clickable":!!i?._viewUrl}]),role:"row",onClick:u=>e.openItem(i,u)},[o("div",qO,[o("span",{class:"project-type-icon",role:"img","aria-label":i?._type==="repo"?"Repository":i?._type==="pr"?"Pull request":"Gist",title:i?._type==="repo"?"Repository":i?._type==="pr"?"Pull request":"Gist"},[(l(),d("svg",$O,[o("use",{href:"#project-type-"+i._type},null,8,LO)]))],8,MO),o("div",UO,[o("div",FO,[i?._viewUrl?(l(),d("a",{key:0,class:"repo-name",title:i._label,textContent:c(i?._label),href:e.safeUrl(i?._viewUrl)},null,8,zO)):p("v-if",!0),i?._viewUrl?p("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:c(i?._label)},null,8,HO)),i?.role==="coauthor"?(l(),d("span",BO,"Co-author")):p("v-if",!0)]),o("div",jO,[i?._id?(l(),d("code",{key:0,class:"anonymous-id",title:i._id},c(i._id),9,GO)):p("v-if",!0),i?._type==="repo"&&i?.source?.commit?(l(),d("span",{key:1,class:"commit-hash",title:i.source.commit},c(i.source.commit.substring(0,8)),9,WO)):p("v-if",!0),i?.conference?(l(),d("span",{key:2,class:"cell-conf conf-tag",title:i?.conference},[t[56]||(t[56]=o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),t[57]||(t[57]=b()),o("span",{textContent:c(i?.conference)},null,8,YO)],8,KO)):p("v-if",!0)])])]),o("div",JO,[o("div",QO,[o("div",XO,[o("span",{class:A(["status-dot","status-"+i?._statusKey]),"aria-hidden":"true"},null,2),o("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(i?.status))},null,8,ZO)]),i?.status=="error"&&i?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(i?.statusMessage)),title:i?.statusMessage},null,8,xO)):p("v-if",!0),i?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(i?.anonymizeDate||i?.lastView)}," Last activity "+c(e.fmt?.humanTime(i?.anonymizeDate||i?.lastView))+" \xB7 may be stuck ",9,e4)):p("v-if",!0),i.status==="error"&&i._editUrl?(l(),d("a",{key:2,class:"project-attention-action",href:e.safeUrl(i._editUrl)},"Fix source",8,t4)):p("v-if",!0),i._stale||i._broken?(l(),d("button",{key:3,type:"button",class:"project-attention-action",onClick:de(u=>e.showProjectDetails(i),["stop"])},c(i._broken?"Review details":"Check progress"),9,o4)):p("v-if",!0),i?.status!="error"&&!i?._stale&&i?.anonymizeDate?(l(),d("div",n4," anonymized "+c(e.fmt?.humanTime(i?.anonymizeDate)),1)):p("v-if",!0)]),o("div",{class:"cell-views num",role:"cell","aria-label":e.fmt.number(i.pageView)+" views"},[t[58]||(t[58]=o("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),o("span",null,c(e.fmt.number(i.pageView)),1)],8,s4),o("div",r4,[t[59]||(t[59]=o("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),i?._expiry?.kind==="never"?(l(),d("span",i4,"Never")):p("v-if",!0),i?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(i?._expiry?.date))},null,8,a4)):p("v-if",!0),i?._expiry?.kind==="expired"&&i?._expiry?.date?(l(),d("span",l4,"Expired "+c(e.fmt?.humanTime(i?._expiry?.date)),1)):p("v-if",!0),i?._expiry?.kind==="expired"&&!i?._expiry?.date?(l(),d("span",d4,"Expired")):p("v-if",!0),i?._expiry?.kind==="none"?(l(),d("span",u4,"\u2014")):p("v-if",!0)])]),o("div",c4,[i._viewUrl?(l(),d("button",{key:0,type:"button",class:"copy-link-inline",onClick:de(u=>e.copyLink(i),["stop"]),disabled:!!e.copyingId,title:"Copy anonymous link for "+i._label,"aria-label":"Copy anonymous link for "+i._label},[...t[60]||(t[60]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-copy"})],-1)])],8,p4)):p("v-if",!0),i._broken?(l(),d("button",{key:1,type:"button",class:"project-details-button",onClick:de(u=>e.showProjectDetails(i),["stop"]),"data-project-actions":encodeURIComponent(i._type+":"+i._id),"aria-controls":e.projectDetailsId(i),"aria-expanded":e.selectedProject===i},"Details",8,f4)):p("v-if",!0),i?._broken?p("v-if",!0):(l(),d("div",m4,[o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(i._type+":"+i._id),"aria-label":"Actions for "+i?._name},[...t[61]||(t[61]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})],-1)])],8,h4),o("div",v4,[o("button",{type:"button",class:"dropdown-item",onClick:u=>e.showProjectDetails(i),"aria-controls":e.projectDetailsId(i),"aria-expanded":e.selectedProject===i},"Project details & name",8,y4),o("a",{class:"dropdown-item",href:e.safeUrl(i?._viewUrl)}," View ",8,g4),i?._type==="repo"&&i?.options?.page&&i?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+i?.repoId+"/")}," View page ",8,b4)):p("v-if",!0),i?._viewUrl?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:u=>e.copyLink(i),disabled:!!e.copyingId}," Copy anonymous link ",8,w4)):p("v-if",!0),o("a",{class:"dropdown-item",href:e.safeUrl(i?._editUrl)}," Edit ",8,k4),i?.status=="ready"||i?.status=="error"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:u=>e.refreshItem(i)}," Force update ",8,E4)):p("v-if",!0),i?.status=="removed"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:u=>e.refreshItem(i)}," Enable ",8,C4)):p("v-if",!0),i?.status=="expired"?(l(),d("button",{key:4,type:"button",class:"dropdown-item",onClick:u=>e.extendItem(i)}," Extend 6 months ",8,_4)):p("v-if",!0),(i?.status=="ready"||i?.status=="expired"||i?.status=="error")&&i?.role!=="coauthor"?(l(),d("div",S4,[t[62]||(t[62]=o("div",{class:"dropdown-divider"},null,-1)),o("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:u=>e.removeItem(i)}," Remove ",8,N4)])):p("v-if",!0)])]))])],10,VO)),!e.loading&&e.selectedProject===i?(l(),d("div",D4,[o("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(i),tabindex:"-1",onKeydown:Ao(de(u=>e.closeProjectDetails(i),["stop"]),["esc"])},[o("div",T4,[t[64]||(t[64]=o("h2",null,"Project details",-1)),o("button",{type:"button",class:"project-close",onClick:u=>e.closeProjectDetails(i),"aria-label":"Close project details"},[...t[63]||(t[63]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,A4)]),o("dl",O4,[o("div",null,[t[65]||(t[65]=o("dt",null,"Source",-1)),o("dd",null,c(i._source||"Not available"),1)]),o("div",null,[t[66]||(t[66]=o("dt",null,"Anonymous ID",-1)),o("dd",null,[o("code",null,c(i._id||"Missing identifier"),1)])]),i.source?.commit?(l(),d("div",I4,[t[67]||(t[67]=o("dt",null,"Commit",-1)),o("dd",null,[o("code",null,c(i.source.commit),1)])])):p("v-if",!0),i.conference?(l(),d("div",P4,[t[68]||(t[68]=o("dt",null,"Conference",-1)),o("dd",null,c(i.conference),1)])):p("v-if",!0),o("div",null,[t[69]||(t[69]=o("dt",null,"Status",-1)),o("dd",null,[b(c(e.fmt.statusLabel(i.status)),1),i.statusMessage?(l(),d("span",V4," \xB7 "+c(e.fmt.statusMsg(i.statusMessage)),1)):p("v-if",!0)])]),i.anonymizeDate?(l(),d("div",q4,[t[70]||(t[70]=o("dt",null,"Last anonymized",-1)),o("dd",null,c(e.fmt.humanTime(i.anonymizeDate)),1)])):p("v-if",!0)]),i._stale?(l(),d("p",M4,"This download has not progressed recently. Check the source access and selected branch before retrying.")):p("v-if",!0),i._editUrl?(l(),d("a",{key:1,class:"project-attention-action",href:e.safeUrl(i._editUrl)},c(e.needsAttention(i)?"Check source settings":"Edit anonymization settings"),9,$4)):p("v-if",!0),i._id?(l(),d("form",{key:2,class:"project-name-form",onSubmit:de(u=>e.saveProjectName(i),["prevent"])},[o("label",{for:"project-name-"+i._type+"-"+i._id},"Project name",8,U4),o("p",{id:"project-name-help-"+i._type+"-"+i._id},"Only you see this name. Leave it blank to use the default.",8,F4),o("div",z4,[D(o("input",{class:"form-control",type:"text",id:"project-name-"+i._type+"-"+i._id,"aria-describedby":"project-name-help-"+i._type+"-"+i._id,maxlength:"100","onUpdate:modelValue":t[18]||(t[18]=u=>e.projectName=u),disabled:e.nameSaving},null,8,H4),[[Ft,e.projectName]]),o("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},c(e.nameSaving?"Saving\u2026":"Save name"),9,B4)]),e.nameError?(l(),d("p",j4,c(e.nameError),1)):p("v-if",!0),e.nameMessage?(l(),d("p",G4,c(e.nameMessage),1)):p("v-if",!0)],40,L4)):p("v-if",!0)],40,R4)])):p("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",W4,[t[72]||(t[72]=o("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?p("v-if",!0):(l(),d("span",K4,"You have no anonymizations yet.")),e.hasProjects()?(l(),d("span",Y4,"Nothing matches the current filters.")):p("v-if",!0),o("div",J4,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=i=>e.clearFilters())},"Clear filters")):p("v-if",!0),e.hasProjects()?p("v-if",!0):(l(),d("a",Q4,[...t[71]||(t[71]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-plus"})],-1),b(" New anonymization",-1)])]))])])):p("v-if",!0)],8,DO)]),e.dashboardCursor||e.dashboardError?(l(),d("div",X4,[e.dashboardError?(l(),d("p",Z4,c(e.dashboardError),1)):p("v-if",!0),e.dashboardCursor?(l(),d("button",{key:1,type:"button",class:"btn",onClick:t[20]||(t[20]=i=>e.loadMoreProjects()),disabled:e.loadingMore},c(e.loadingMore?"Loading\u2026":"Load more projects"),9,x4)):p("v-if",!0)])):p("v-if",!0)])}var eI={class:"explorer-page"},tI=["aria-label"],oI={class:"ui-icon","aria-hidden":"true"},nI=["href"],sI=["textContent"],rI={class:"leftCol-head"},iI={class:"leftCol-search"},aI={class:"tree-search-box"},lI=["href"],dI={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},uI={class:"leftCol-project-header"},cI=["textContent","title"],pI={class:"project-file-count"},fI=["title"],mI={class:"leftCol-body"},hI={key:0,class:"paper-inline-warning",role:"alert"},vI={key:1,class:"paper-inline-warning",role:"alert"},yI={class:"leftCol-foot"},gI=["title"],bI=["title"],wI=["title"],kI={key:2,class:"last-update",title:"Older repositories have no recorded publication date. The source commit date does not establish when files became available here."},EI={class:"explorer-main"},CI={class:"status-bar"},_I={class:"breadcrumb paths","aria-label":"Path"},SI=["textContent"],NI={class:"status-bar-actions"},DI=["href"],RI={class:"d-none d-md-inline"},TI={class:"ui-icon","aria-hidden":"true"},AI=["href"],OI={class:"d-none d-md-inline"},II=["href"],PI=["href"],VI=["href"],qI=["href"],MI={class:"explorer-content"};function ql(e,t){let n=We("tree"),r=We("partial-view"),s=be("field");return l(),d("div",eI,[D(o("button",{class:"sidebar-toggle",onClick:t[0]||(t[0]=i=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(l(),d("svg",oI,[o("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,nI)])),o("span",{textContent:c(e.sidebarCollapsed?"Files":"Close")},null,8,sI)],8,tI),[[K,e.files?.length]]),D(o("div",{class:A(["leftCol",{collapsed:e.sidebarCollapsed}])},[o("div",rI,[t[7]||(t[7]=o("span",{class:"leftCol-eyebrow"},"Files",-1)),o("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[1]||(t[1]=i=>e.sidebarCollapsed=!0)},[...t[6]||(t[6]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])])]),o("div",iI,[o("div",aI,[(l(),d("svg",{class:A(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[o("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,lI)],2)),D(o("input",dI,null,512),[[s,{state:e.viewState,set:i=>{e.fileSearchQuery=i},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),D(o("kbd",{class:"tree-search-kbd"},c(e.isMac?"\u2318":"Ctrl+")+"K",513),[[K,!e.fileSearchQuery]]),D(o("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[2]||(t[2]=i=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[K,e.fileSearchQuery]])])]),o("div",uI,[o("span",{class:"project-name",textContent:c(e.repoId),title:e.repoId},null,8,cI),o("span",pI,c(e.fileCounts?.[""]||e.files?.length)+" files",1),e.options?.expirationDate?(l(),d("span",{key:0,class:"project-expiry",title:e.options.expirationDate},[t[8]||(t[8]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),b(" Available until "+c(e.fmt?.date(e.options.expirationDate)),1)],8,fI)):p("v-if",!0)]),o("div",mI,[e.options?.truncatedFolders?.length>0?(l(),d("div",hI,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):p("v-if",!0),e.options?.hasSubmodules?(l(),d("div",vI,[t[10]||(t[10]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):p("v-if",!0),Ce(n,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])]),o("div",yI,[o("span",{class:"last-update",title:e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate},c(e.options?.sourceCommitDate?"Source commit":e.options?.anonymizedAt?"Anonymized":"Updated")+" "+c(e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),9,gI),e.options?.settingsSavedAt?(l(),d("span",{key:0,class:"last-update",title:e.options.settingsSavedAt}," Settings saved "+c(e.fmt?.date(e.options.settingsSavedAt)),9,bI)):p("v-if",!0),e.options?.publishedAt?(l(),d("span",{key:1,class:"last-update",title:e.options.publishedAt}," Snapshot ready "+c(e.fmt?.date(e.options.publishedAt)),9,wI)):p("v-if",!0),e.options?.anonymizedAt&&!e.options?.publishedAt?(l(),d("span",kI," Snapshot ready date not recorded ")):p("v-if",!0)])],2),[[K,e.files?.length]]),D(o("div",{class:"leftCol-backdrop",onClick:t[3]||(t[3]=i=>e.sidebarCollapsed=!0)},null,512),[[K,e.files?.length&&!e.sidebarCollapsed]]),o("div",EI,[D(o("div",CI,[o("ol",_I,[(l(!0),d(X,null,ae(e.paths,(i,a)=>(l(),d("li",{class:"breadcrumb-item",textContent:c(i)},null,8,SI))),256))]),o("div",NI,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),o("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,DI)):p("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:A(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[4]||(t[4]=i=>e.toggleAllowScripts())},[t[12]||(t[12]=o("i",{class:"fab fa-js"},null,-1)),o("span",RI,c(e.allowScripts?"JS on":"JS off"),1)],2)):p("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[5]||(t[5]=i=>e.toggleSource())},[(l(),d("svg",TI,[o("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,AI)])),o("span",OI,c(e.showSource?"Rendered":"Source"),1)])):p("v-if",!0),D(o("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"View raw current file",title:"View raw file",href:e.safeUrl(e.url)},[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-file"})],-1)])],8,II),[[K,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),D(o("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"Download current file",title:"Download this file",href:e.safeUrl(e.url+"&download=true")},[...t[14]||(t[14]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-download"})],-1)])],8,PI),[[K,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),e.options?.download?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm btn-ink","aria-label":"Download repository as ZIP",title:"Download the whole repository as a ZIP archive",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[15]||(t[15]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-archive"})],-1),o("span",{class:"d-none d-md-inline"}," Download repository",-1)])],8,VI)):p("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:4,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),o("span",{class:"d-none d-md-inline"}," Website",-1)])],8,qI)):p("v-if",!0)])],512),[[K,e.type!="error"||e.files?.length]]),o("div",MI,[Ce(r,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])])}var $I={class:"paper-faq"};function Ml(e,t){return l(),d("div",$I,[...t[0]||(t[0]=[pe('Help
Answers to the questions that come up most. If something's missing, write to us \u2014 report a bug on GitHub .
',1),o("div",{class:"paper-faq-body"},[o("aside",{class:"paper-faq-toc"},[o("div",{class:"paper-faq-toc-head"},"Contents"),o("nav",null,[o("a",{href:"#faq-general"},"General"),o("a",{href:"#faq-features"},"Features"),o("a",{href:"#faq-limitations"},"Limitations"),o("a",{href:"#faq-privacy"},"Privacy & Security"),o("a",{href:"#faq-hosting"},"Self-Hosting")])]),o("section",{class:"faq-section","aria-label":"FAQs"},[o("div",null,[p(" General "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b("General ")]),o("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"false","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),o("div",{id:"whatIs",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhatIs"},[o("div",{class:"panel-body p-3"},[o("p",null," Anonymous GitHub is a free, open-source tool that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information \u2014 such as the repository owner, organization name, and custom terms \u2014 so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),o("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[o("div",{class:"panel-body p-3"},[o("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),o("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[o("div",{class:"panel-body p-3"},[o("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix \u2014 not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),o("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[o("div",{class:"panel-body p-3"},[o("p",null,[b(" Anonymous GitHub is completely free to use. However, the server costs hundreds of dollars per year to maintain. If you find the service useful, a small donation would be greatly appreciated. You can support the project by "),o("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank"},"sponsoring on GitHub"),b(", donating through "),o("a",{href:"https://ko-fi.com/tdurieux",target:"_blank"},"Ko-fi"),b(', or by clicking the "Support me" button on the site. ')])])])])]),p(" Features "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#project-icon-filter"})]),b("Features ")]),o("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),o("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[o("div",{class:"panel-body p-3"},[o("p",null," Anonymous GitHub can display and render a wide variety of file types: "),o("ul",null,[o("li",null,[o("strong",null,"Text and source code"),b(" \u2014 displayed with syntax highlighting")]),o("li",null,[o("strong",null,"Markdown"),b(" \u2014 rendered as formatted HTML")]),o("li",null,[o("strong",null,"Images"),b(" (PNG, JPG, SVG, etc.) \u2014 displayed inline")]),o("li",null,[o("strong",null,"PDFs"),b(" \u2014 rendered directly in the browser")]),o("li",null,[o("strong",null,"Jupyter Notebooks"),b(" \u2014 rendered with code cells and outputs")])]),o("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),o("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),o("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[o("div",{class:"panel-body p-3"},[o("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),o("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[o("div",{class:"panel-body p-3"},[o("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),o("ul",null,[o("li",null,[o("strong",null,"Never expire"),b(" \u2014 the anonymized repository remains accessible indefinitely.")]),o("li",null,[o("strong",null,"Redirect to GitHub"),b(" \u2014 after expiration, visitors are redirected to the original GitHub repository.")]),o("li",null,[o("strong",null,"Remove content"),b(" \u2014 after expiration, the anonymized content is deleted from the server.")])])])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),o("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),o("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. The anonymized repository tracks the source on GitHub: when you push new commits to the original repository, the anonymized view picks up those changes (cached files are refreshed against GitHub). This means you can keep iterating on the code while reviewers have the link, and you do not need to recreate the anonymized repository every time you update the source. "),o("p",null," A few practical implications worth keeping in mind: "),o("ul",null,[o("li",null," You can safely create the anonymized repository early in the writing process \u2014 later commits will be visible to reviewers without any additional action. "),o("li",null," If you rename files, add new identifiers, or introduce new contributor names after creation, revisit the anonymization options (custom terms, file filters) to make sure the new content is still properly anonymized. "),o("li",null," If the original repository is made private or deleted, the anonymized repository will no longer be able to fetch updated content. ")])])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),o("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),o("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[o("code",null,`npm install -g @tdurieux/anonymous_github
-anonymous_github`)])])])])]),p(" Limitations "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})]),b("Limitations ")]),o("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),o("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[o("div",{class:"panel-body p-3"},[o("ul",null,[o("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),o("li",null," Files larger than 8 MB are not supported. "),o("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),o("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),p(" Privacy & Security "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})]),b("Privacy & Security ")]),o("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),o("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[o("div",{class:"panel-body p-3"},[o("p",null," Data stored on Anonymous GitHub is never shared or used for any purpose beyond providing the anonymization service. When a repository is removed or expires, only its configuration is retained \u2014 this makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),o("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[o("div",{class:"panel-body p-3"},[o("p",null,[b("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),o("a",{href:"/connections"},"GitHub connections"),b(" page.")]),o("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),o("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),o("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[o("div",{class:"panel-body p-3"},[o("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),p(" Self-Hosting "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#project-icon-storage"})]),b("Self-Hosting ")]),o("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),o("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[o("div",{class:"panel-body p-3"},[o("p",null,[b(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),o("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),b(". ")]),o("p",null," The basic steps are: "),o("ol",null,[o("li",null,"Clone the repository and install dependencies"),o("li",null,[b("Create a "),o("code",null,".env"),b(" file with your GitHub token, OAuth client ID, and client secret")]),o("li",null,[b("Run "),o("code",null,"docker-compose up -d")])])])])])]),o("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[o("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),o("p",{class:"text-muted mb-0"},[b(" Open an issue on the "),o("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),b(" and we'll be happy to help. ")])])])])],-1)])])}var LI={class:"pr-page"},UI={class:"container paper-page pr-page-inner"},FI={class:"pr-header"},zI={class:"pr-title-row"},HI={class:"paper-page-title pr-title"},BI=["textContent"],jI={key:1,class:"text-muted"},GI=["href"],WI={class:"pr-header-meta"},KI={key:0,class:"pr-meta-item"},YI=["textContent"],JI={key:1,class:"pr-meta-item"},QI=["textContent"],XI={key:2,class:"pr-meta-item"},ZI=["textContent"],xI={key:0,class:"paper-tabs",role:"tablist"},e3=["aria-selected","tabindex"],t3=["textContent"],o3=["aria-selected","tabindex"],n3=["textContent"],s3={class:"paper-tab-content"},r3={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},i3={class:"pr-comments"},a3={class:"pr-comment"},l3={class:"pr-comment-head"},d3=["textContent"],u3={key:0,class:"pr-comment-date"},c3={key:0,class:"paper-table-empty"},p3={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},f3={class:"pr-comments"},m3={class:"pr-comment"},h3={class:"pr-comment-head"},v3={key:0,class:"pr-comment-author"},y3=["textContent"],g3=["textContent"],b3={key:0,class:"pr-comment-body"},w3={key:0,class:"paper-table-empty"};function $l(e,t){let n=We("gist-file"),r=We("markdown");return l(),d("div",LI,[o("div",UI,[t[17]||(t[17]=o("div",{class:"paper-crumbs"},[o("a",{href:"/dashboard"},"Reviewer"),b(" \xA0/\xA0 "),o("span",{class:"here"},"Gist")],-1)),o("header",FI,[o("div",zI,[o("h1",HI,[e.details?.description?(l(),d("span",{key:0,textContent:c(e.details?.description)},null,8,BI)):p("v-if",!0),e.details?.description?p("v-if",!0):(l(),d("span",jI,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),o("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,GI)):p("v-if",!0)]),o("div",WI,[o("span",{class:A(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},c(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",KI,[t[5]||(t[5]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=b(" @",-1)),o("span",{textContent:c(e.details?.ownerLogin)},null,8,YI)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",JI,[t[7]||(t[7]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=b()),o("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,QI)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",XI,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=b(" Anonymized ",-1)),o("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,ZI)])):p("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",xI,[e.details?.files?(l(),d("button",{key:0,class:A(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=s=>e.previewTabKeydown(s)),onClick:t[1]||(t[1]=s=>e.tabState.active="files")},[t[11]||(t[11]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-gist"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,t3)],42,e3)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:A(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=s=>e.previewTabKeydown(s)),onClick:t[3]||(t[3]=s=>e.tabState.active="comments")},[t[12]||(t[12]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,n3)],42,o3)):p("v-if",!0)])):p("v-if",!0),o("div",s3,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",r3,[o("ul",i3,[(l(!0),d(X,null,ae(e.details?.files,(s,i)=>(l(),d("li",a3,[o("div",l3,[o("strong",{textContent:c(s?.filename)},null,8,d3),s?.language?(l(),d("span",u3,c(s?.language),1)):p("v-if",!0)]),Ce(n,{file:s},null,8,["file"])]))),256)),e.details?.files?.length?p("v-if",!0):(l(),d("li",c3,[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-file"})],-1),o("span",null,"No files in this gist.",-1)])]))])])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",p3,[o("ul",f3,[(l(!0),d(X,null,ae(e.details?.comments,(s,i)=>(l(),d("li",m3,[o("div",h3,[s?.author?(l(),d("span",v3,[t[14]||(t[14]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=b(" @",-1)),o("span",{textContent:c(s?.author)},null,8,y3)])):p("v-if",!0),s?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(s?.updatedDate))},null,8,g3)):p("v-if",!0)]),s?.body?(l(),d("div",b3,[Ce(r,{content:s?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",w3,[...t[16]||(t[16]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1),o("span",null,"No comments on this gist.",-1)])]))])])):p("v-if",!0)])])])}var k3={class:"collapse navbar-collapse",id:"navbarSupportedContent"},E3={class:"navbar-nav mr-auto smooth-scroll"},C3={key:0,class:"nav-item"},_3={key:1,class:"nav-item"},S3={key:2,class:"nav-item"},N3={key:3,class:"nav-item"},D3={class:"nav-item"},R3={key:4,class:"nav-item"},T3={class:"navbar-nav"},A3={key:0,class:"nav-item"},O3={key:1,class:"nav-item"},I3={key:2,class:"nav-item"},P3={key:3,class:"nav-item"},V3={key:4,class:"nav-item dropdown user-chip-wrap"},q3={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},M3=["src"],$3={class:"user-chip-name"},L3={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},U3={class:"dropdown-header"},F3=["innerHTML"],z3=["disabled"],H3={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},B3={class:"email-prompt-actions"},j3=["disabled"],G3=["disabled"],W3=["disabled"];function Ll(e,t){return l(),d(X,null,[o("nav",{class:A(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[18]||(t[18]=pe('Anonymous GitHub Support ',3)),o("div",k3,[o("ul",E3,[e.user?p("v-if",!0):(l(),d("li",C3,[o("a",{class:A(["nav-link",{active:e.path=="/"}]),href:"/"}," Home ",2)])),e.user?(l(),d("li",_3,[o("a",{class:A(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[7]||(t[7]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-grid"})],-1),b(" My work ",-1)])],2)])):p("v-if",!0),e.user?(l(),d("li",S3,[o("a",{class:A(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[8]||(t[8]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize ",-1)])],2)])):p("v-if",!0),e.user?(l(),d("li",N3,[o("a",{class:A(["nav-link",{active:e.path=="/conferences"}]),href:"/conferences"},[...t[9]||(t[9]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1),b(" Conferences ",-1)])],2)])):p("v-if",!0),o("li",D3,[o("a",{class:A(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[10]||(t[10]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-help"})],-1),b("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",R3,[o("a",{class:A(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[11]||(t[11]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#project-icon-filter"})],-1),b(" Admin ",-1)])],2)])):p("v-if",!0)]),o("ul",T3,[e.user||!e.isReviewerRoute?(l(),d("li",A3,[...t[12]||(t[12]=[o("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[o("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):p("v-if",!0),p(` "Report a bug" is about this service. Reviewers who land on an
+`)}function w(R){let T=[],P="",F=/(\w+):(>=|<=|!=|>|<|=)?([^\s]+)/g,V=0,M;for(;M=F.exec(R);)P+=R.slice(V,M.index),V=F.lastIndex,T.push({key:M[1],op:M[2]||"=",val:M[3]});return P+=R.slice(V),{filters:T,free:P.trim().toLowerCase()}}function h(R,T){for(let P of T.filters){let F=(M,se,oe)=>{let S=parseFloat(M),O=parseFloat(se);return oe==="="?String(M)===String(se):oe==="!="?String(M)!==String(se):oe===">="?S>=O:oe==="<="?S<=O:oe===">"?S>O:oe==="<"?ST&&V._bucket!==T?!1:h(V,R)),F=e.query.group;if(F){let V=oe=>F==="module"?oe.module:oe.displayMessage||oe.message||"_",M=new Map;for(let oe of P){let S=V(oe);if(M.has(S)){let O=M.get(S);O.count++,O._related.push(oe),new Date(oe.ts)>new Date(O.ts)&&(O.ts=oe.ts,O._url=oe._url,O._status=oe._status),new Date(oe.ts)new Date(S.ts).getTime()>=se).length;P=Array.from(M.values())}else P=P.map((V,M)=>(V._key="row:"+M+":"+V.ts,V._related=[V],V._firstSeen=V.ts,V._lastHourCount=0,V.count=1,V));e.query.sort==="count"?P.sort((V,M)=>M.count-V.count||new Date(M.ts)-new Date(V.ts)):P.sort((V,M)=>new Date(M.ts)-new Date(V.ts)),e.visible=P}function m(R){let T=R?e.entries.length:0,P=R?e.pageSize:Math.max(e.pageSize,e.entries.length||e.pageSize);t.get("/api/admin/errors",{params:{offset:T,limit:P}}).then(F=>{let V=(F.data.entries||[]).map(u);e.entries=R?e.entries.concat(V):V,e.available=!!F.data.available,e.cap=F.data.max||e.cap,e.total=F.data.total||e.entries.length,k()},F=>console.error(F))}e.loadMore=()=>m(!0),e.canLoadMore=()=>e.entries.length{let T=R.data||{},P=T.prev24h?Math.round((T.last24h-T.prev24h)/T.prev24h*100):0;e.stats={last24h:T.last24h||0,prev24h:T.prev24h||0,delta:P,severity:T.severity||{error:0,warn:0,info:0},unique:T.unique||{error:0,warn:0,info:0},buckets:T.buckets||[],dropped:T.dropped||0}},R=>console.error(R))}function y(){m(),E()}e.barPx=(R,T)=>{let P=e.stats.buckets||[],F=0;for(let oe of P)F=Math.max(F,(oe.error||0)+(oe.warn||0)+(oe.info||0));if(!F)return 0;let V=(R.error||0)+(R.warn||0)+(R.info||0);if(!V)return 0;let M=Math.round(V/F*60),se=R[T]||0;return Math.round(se/V*M)},e.bucketTitle=R=>`${new Date(R.hour).toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"})} \xB7 ${R.error||0} err \xB7 ${R.warn||0} warn \xB7 ${R.info||0} info`,e.toggle=R=>{e.expanded[R._key]=!e.expanded[R._key]},e.setBucket=R=>{e.query.bucket=R},e.refreshNow=y,e.clearAll=()=>{confirm("Clear all captured errors?")&&t.delete("/api/admin/errors").then(y,R=>console.error(R))},e.exportCsv=()=>{let R=["ts","level","module","displayMessage","_status","_url","_repoId"],T=[R.join(",")];for(let M of e.visible)T.push(R.map(se=>{let oe=M[se]==null?"":String(M[se]);return/[",\n]/.test(oe)?`"${oe.replace(/"/g,'""')}"`:oe}).join(","));let P=new Blob([T.join(`
+`)],{type:"text/csv;charset=utf-8"}),F=URL.createObjectURL(P),V=document.createElement("a");V.href=F,V.download=`errors-${new Date().toISOString().slice(0,19)}.csv`,document.body.appendChild(V),V.click(),document.body.removeChild(V),URL.revokeObjectURL(F)};function g(R){e.copyHint=`${R} copied`,s.timeout(()=>{e.copyHint=""},1500)}e.copyJson=R=>{navigator.clipboard.writeText(R._detailJson).then(()=>g("JSON"))},e.copyCurl=R=>{if(!R._url)return;let P=`curl -X ${R._method||"GET"} '${window.location.origin}${R._url}'`;navigator.clipboard.writeText(P).then(()=>g("curl"))},y();let _=r(()=>{e.query.autoRefresh&&y()},15e3);e.on("dispose",()=>r.cancel(_)),e.watch("query.search",k),e.watch("query.bucket",k),e.watch("query.sort",k),e.watch("query.group",k)},vl=function(e,t,n,r){if(e.Math=Math,e.watch("user.status",()=>{e.user==null&&n.url("/")}),e.user==null){n.url("/");return}e.data=null,e.loading=!0,e.error=null,e.performance=null,e.performanceMinutes=15,e.performanceTab="routes",e.performanceError=null,e.formatMs=function(y){return y==null?"":y<1e3?y+" ms":+(y/1e3).toFixed(1)+" s"},e.latencyBound=function(y,g){return y.count?y[g]==null?"> 60 s":"\u2264 "+e.formatMs(y[g]):"No samples"},e.firstByteBound=function(y){return e.latencyBound({count:y.firstByteCount,p95UpperMs:y.firstByteP95UpperMs},"p95UpperMs")},e.sampleAge=function(y){return Math.max(0,Math.round((Date.now()-y.sampledAt)/1e3))},e.peakRss=function(y){return(e.performance.runtimeSeries||[]).filter(function(g){return g.instance===y.instance}).reduce(function(g,_){return Math.max(g,_.rss)},y.memory.rss)},e.performanceWarning=function(y){return e.sampleAge(y)>45||y.droppedBatches||y.droppedMetrics||y.sockets?.closeWait>0||y.eventLoop.p95Ms>100||y.memoryLimitBytes&&y.memory.rss>y.memoryLimitBytes*.8};var s=!1;e.loadPerformance=function(){var y=e.performanceMinutes;e.performance?.windowMinutes&&e.performance.windowMinutes!==y&&(e.performance=null),!s&&(s=!0,t.get("/api/admin/performance",{params:{minutes:y}}).then(function(g){y===e.performanceMinutes&&(e.performance=g.data,e.performanceError=g.data.available?null:"Performance monitoring is unavailable. Request history may be incomplete.")},function(){y===e.performanceMinutes&&(e.performanceError="Could not refresh performance monitoring. Displayed samples may be stale.")}).finally(function(){s=!1,y!==e.performanceMinutes&&e.loadPerformance()}))};function i(y){if(y==null)return"\u2014";for(var g=["B","KB","MB","GB","TB"],_=0,R=y;R>=1024&&_0?1:0)+" "+g[_]}e.humanBytes=i;function a(y){if(!y)return"\u2014";var g=Math.floor(y/86400),_=Math.floor(y%86400/3600),R=Math.floor(y%3600/60);return g>0?g+"d "+(_<10?"0":"")+_+"h":_>0?_+"h "+(R<10?"0":"")+R+"m":R+"m"}e.humanDuration=a;function u(y){return y==null?"\u2014":y>=1e6?(y/1e6).toFixed(1)+"M":y>=1e3?(y/1e3).toFixed(1)+"K":String(y)}e.humanNum=u,e.queueTotal=function(y){return y?(y.waiting||0)+(y.active||0)+(y.delayed||0)+(y.failed||0):0},e.statusCount=function(y){if(!e.data||!e.data.repos)return 0;for(var g=e.data.repos.statusBreakdown||[],_=0;_h[_])&&(h[_]=g[_]),(k[_]==null||g[_]vr(e,t)},{path:"/connections",template:"partials/connections.htm",title:"GitHub connections \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ll(e,t.http)},{path:"/signin",template:"partials/signin.htm",title:"Sign in \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>dl(e,t.http)},{path:"/",template:"partials/home.htm",title:"Anonymous GitHub \u2013 Share the code, not the author",preserveExplorer:!1,setup:(e,t)=>tl(e,t.http,t.location,t.window,t.timeout)},{path:"/dashboard",template:"partials/dashboard.htm",title:"Your anonymizations \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ol(e,t.http,t.location,t.promises,t.window,t.quotaService)},{path:"/pr-dashboard",redirect:"/dashboard"},{path:"/anonymize/:repoId?",template:"partials/anonymize.htm",title:"New anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>is(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/pull-request-anonymize/:pullRequestId?",template:"partials/anonymize.htm",title:"Anonymize a pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>is(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/gist-anonymize/:gistId?",template:"partials/anonymize.htm",title:"Anonymize a gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>is(e,t.http,t.html,t.params,t.location,t.translate,t.timeout)},{path:"/status/:repoId",template:"partials/status.htm",title:"Repository status \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>nl(e,t.http,t.params)},{path:"/conferences",template:"partials/conferences.htm",title:"Your conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>il(e,t.http,t.location)},{path:"/conference/new",template:"partials/newConference.htm",title:"New conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>lr(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId/edit",template:"partials/newConference.htm",title:"Edit conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>lr(e,t.http,t.location,t.params)},{path:"/conference/:conferenceId",template:"partials/conference.htm",title:"Conference \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>al(e,t.http,t.location,t.params)},{path:"/faq",template:"partials/faq.htm",title:"FAQ \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>Za(e,t.http)},{path:"/profile",template:"partials/profile.htm",title:"Your settings \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>xa(e,t.http,t.translate,t.timeout,t.quotaService)},{path:"/claim",template:"partials/claim.htm",title:"Claim an anonymization \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>el(e,t.http,t.location)},{path:"/pr/:pullRequestId/:path(.*)*",template:"partials/pullRequest.htm",title:"Anonymous pull request \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>sl(e,t.http,t.location,t.params,t.html)},{path:"/gist/:gistId/:path(.*)*",template:"partials/gist.htm",title:"Anonymous gist \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>rl(e,t.http,t.location,t.params,t.html)},{path:"/r/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>ar(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/repository/:repoId/:path(.*)*",template:"partials/explorer.htm",title:"Anonymous repository \u2013 Anonymous GitHub",preserveExplorer:!0,setup:(e,t)=>ar(e,t.http,t.location,t.params,t.html,t.promises)},{path:"/admin/",template:"partials/admin/overview.htm",title:"Admin \xB7 Overview \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>vl(e,t.http,t.location,t.interval)},{path:"/admin/repositories",template:"partials/admin/repositories.htm",title:"Admin \xB7 Repositories \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ul(e,t.http,t.location)},{path:"/admin/users",template:"partials/admin/users.htm",title:"Admin \xB7 Users \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>cl(e,t.http,t.location)},{path:"/admin/users/:username",template:"partials/admin/user.htm",title:"Admin \xB7 User details \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>pl(e,t.http,t.location,t.params)},{path:"/admin/conferences",template:"partials/admin/conferences.htm",title:"Admin \xB7 Conferences \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>fl(e,t.http,t.location)},{path:"/admin/queues",template:"partials/admin/queues.htm",title:"Admin \xB7 Queues \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>ml(e,t.http,t.location,t.interval,t.timeout)},{path:"/admin/errors",template:"partials/admin/errors.htm",title:"Admin \xB7 Errors \u2013 Anonymous GitHub",preserveExplorer:!1,setup:(e,t)=>hl(e,t.http,t.location,t.interval)},{path:"/404",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",preserveExplorer:!1,setup:()=>{}},{path:"/:pathMatch(.*)*",template:"partials/404.htm",title:"Page not found \u2013 Anonymous GitHub",setup:()=>{}}];var Ep={class:"container py-4",style:{"max-width":"48rem","overflow-wrap":"anywhere"}},Cp={key:0},_p={key:1,role:"alert"},Sp={key:2,role:"status"},Np={key:0},Dp={key:1},Rp=["disabled"],Tp=["disabled"],Ap=["disabled"],Op={key:5,class:"mt-4","aria-labelledby":"review-policy-title"},Ip={id:"review-policy-title"},Pp={key:0,role:"alert"},Vp=["disabled"],qp=["disabled"],Mp=["disabled"],$p={key:6,role:"status"};function gl(e,t){return l(),d("section",Ep,[t[12]||(t[12]=o("a",{href:"/"},"Anonymous GitHub",-1)),t[13]||(t[13]=o("h1",{class:"mt-3"},"Approve artifact access",-1)),t[14]||(t[14]=o("p",null,"This records your approval as the repository owner or an authorized coauthor.",-1)),e.user?.username?p("v-if",!0):(l(),d("p",Cp,[...t[6]||(t[6]=[b("Sign in first, then reopen the artifact link from your submission. ",-1),o("a",{href:"/signin"},"Sign in",-1)])])),e.error?(l(),d("p",_p,c(e.error),1)):p("v-if",!0),e.saved?(l(),d("p",Sp,[t[7]||(t[7]=b("Consent recorded. ",-1)),e.handoffEnabled?(l(),d("span",Np,"Continue to review to finish linking.")):(l(),d("span",Dp,"Artifact linking is not complete. Return to your submission to check its status."))])):p("v-if",!0),e.saved&&e.handoffEnabled?(l(),d("button",{key:3,class:"btn btn-primary",type:"button",onClick:t[0]||(t[0]=(...n)=>e.continueReview&&e.continueReview(...n)),disabled:e.busy},"Continue to review",8,Rp)):p("v-if",!0),e.user?.username&&!e.saved?(l(),d("form",{key:4,onSubmit:t[2]||(t[2]=de((...n)=>e.loadPreview&&e.loadPreview(...n),["prevent"]))},[t[8]||(t[8]=o("label",{for:"review-repository"},"Anonymous repository ID",-1)),D(o("input",{id:"review-repository",class:"form-control","onUpdate:modelValue":t[1]||(t[1]=n=>e.repositoryId=n),maxlength:"128",autocomplete:"off",disabled:e.busy||e.uncertain,"aria-describedby":"review-repository-help"},null,8,Tp),[[Ft,e.repositoryId]]),t[9]||(t[9]=o("p",{id:"review-repository-help"},"Use the ID after /r/ in the anonymous repository URL.",-1)),o("button",{type:"submit",class:"btn btn-primary",disabled:e.busy||e.uncertain},"Preview access and retention",8,Ap)],32)):p("v-if",!0),e.preview&&!e.saved?(l(),d("section",Op,[o("h2",Ip,c(e.preview.repositoryName),1),o("p",null,"Access: "+c(e.preview.policy.access==="anonymous-link"?"Anyone with the anonymous link":"Restricted review access")+".",1),o("p",null,"Retain until "+c(e.preview.policy.retainUntil)+". Policy version "+c(e.preview.policy.version)+".",1),e.expired?(l(),d("p",Pp,"This preview expired. Open a new artifact link from your submission.")):p("v-if",!0),o("div",null,[o("label",null,[D(o("input",{type:"checkbox","onUpdate:modelValue":t[3]||(t[3]=n=>e.acceptAccess=n),disabled:e.busy||e.uncertain||e.expired},null,8,Vp),[[Ks,e.acceptAccess]]),t[10]||(t[10]=b(" I approve the access policy above.",-1))])]),o("div",null,[o("label",null,[D(o("input",{type:"checkbox","onUpdate:modelValue":t[4]||(t[4]=n=>e.acceptRetention=n),disabled:e.busy||e.uncertain||e.expired},null,8,qp),[[Ks,e.acceptRetention]]),t[11]||(t[11]=b(" I approve retention until the date above.",-1))])]),o("button",{class:"btn btn-primary",type:"button",onClick:t[5]||(t[5]=(...n)=>e.confirmConsent&&e.confirmConsent(...n)),disabled:e.busy||e.expired||!e.acceptAccess||!e.acceptRetention},c(e.uncertain?"Retry confirmation":"Confirm consent"),9,Mp)])):p("v-if",!0),e.busy?(l(),d("p",$p,"Waiting for the server\u2026")):p("v-if",!0)])}var Lp={class:"container paper-page connections-page"},Up={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Fp={key:1,role:"status"},zp=["disabled"],Hp={key:3},Bp={key:0,class:"connection-resources"},jp=["disabled"],Gp=["disabled"],Wp={key:0,role:"status"},Kp={class:"connections-grid"},Yp={key:0},Jp={class:"connection-title"},Qp={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Xp={class:"connection-actions"},Zp={key:0,class:"btn btn-ink",target:"_self",href:"/github/app/install"},xp={key:1,class:"connection-installations"},ef={key:0},tf=["href"],of={class:"sr-only"},nf=["disabled"],sf={class:"connection-title"},rf={key:0,target:"_self",href:"/github/login",class:"btn btn-outline-ink"},af={key:1,class:"connection-revoke"},lf={key:0},df=["disabled"],uf={class:"connection-resources"},cf={class:"connection-title"},pf={class:"connection-count"},ff={key:0,class:"connection-empty"},mf={class:"connection-resource-name"},hf={key:0,class:"connection-resource-actions"},vf=["disabled","onClick"],yf=["disabled","onClick"],gf={key:1,class:"connection-help",role:"status"},bf=["disabled","onClick"];function bl(e,t){return l(),d("div",Lp,[t[25]||(t[25]=pe('',2)),e.connectionError?(l(),d("p",Up,c(e.connectionError),1)):p("v-if",!0),!e.connections&&!e.connectionError?(l(),d("p",Fp,"Loading your connections\u2026")):p("v-if",!0),!e.connections&&e.connectionError?(l(),d("button",{key:2,class:"btn btn-outline-ink",disabled:e.busy,onClick:t[0]||(t[0]=n=>e.loadConnections())},"Try again",8,zp)):p("v-if",!0),e.connections?(l(),d("div",Hp,[e.connections.emailNotificationsEnabled?(l(),d("section",Bp,[t[6]||(t[6]=o("h2",null,"Email alerts",-1)),t[7]||(t[7]=o("p",null,"We will email you if your GitHub connection stops working or a repository becomes inaccessible. Your address is never shown on anonymous pages.",-1)),o("form",{onSubmit:t[2]||(t[2]=de(n=>e.saveNotificationEmail(),["prevent"]))},[t[5]||(t[5]=o("label",{for:"notification-email"},"Email address",-1)),D(o("input",{id:"notification-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[1]||(t[1]=n=>e.notificationEmail=n),disabled:e.busy},null,8,jp),[[Ft,e.notificationEmail]]),o("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.busy},"Save email address",8,Gp),e.emailSaved?(l(),d("p",Wp,"Email address saved.")):p("v-if",!0)],32)])):p("v-if",!0),o("div",Kp,[e.connections.appEnabled?(l(),d("section",Yp,[t[13]||(t[13]=o("div",{class:"connection-top"},[o("i",{class:"fab fa-github","aria-hidden":"true"}),o("span",{class:"connection-badge"},"Recommended")],-1)),o("div",Jp,[t[8]||(t[8]=o("h2",null,"GitHub App",-1)),o("span",{class:A(["connection-status",{"is-connected":e.connections.appConnected&&!e.connections.appError}])},c(e.connections.appError?"Needs attention":e.connections.appConnected?"Connected":"Not connected"),3)]),t[14]||(t[14]=o("p",null,"Read-only access to gists and the repositories you choose.",-1)),e.connections.appError?(l(),d("p",Qp,c(e.connections.appError)+". Reconnect to restore access.",1)):p("v-if",!0),o("div",Xp,[e.connections.appConnected&&!e.connections.appError?(l(),d("a",Zp,[...t[9]||(t[9]=[b("Manage repository access ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),o("a",{class:A(e.connections.appConnected&&!e.connections.appError?"connection-link":"btn btn-ink"),target:"_self",href:"/github/app/login"},c(e.connections.appConnected?"Reconnect account":"Connect GitHub account"),3)]),t[15]||(t[15]=o("p",{class:"connection-help"},"Choose repositories on GitHub. Organization access may need an administrator's approval.",-1)),e.connections.installations?.length?(l(),d("ul",xp,[(l(!0),d(X,null,ae(e.connections.installations,n=>(l(),d("li",{key:n.id},[o("div",null,[o("strong",null,c(n.account),1),n.suspended?(l(),d("span",ef," \xB7 Suspended")):p("v-if",!0)]),o("a",{target:"_self",href:"/github/app/install?installationId="+n.id},[t[10]||(t[10]=b("Manage access ",-1)),o("span",of,"for "+c(n.account),1),t[11]||(t[11]=b(" \u2192",-1))],8,tf)]))),128))])):p("v-if",!0),o("button",{class:"connection-link",disabled:e.busy,onClick:t[3]||(t[3]=n=>e.loadConnections())},[...t[12]||(t[12]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Refresh access",-1)])],8,nf)])):p("v-if",!0),o("section",null,[t[18]||(t[18]=o("div",{class:"connection-top"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-key"})]),o("span",{class:"connection-badge connection-badge-muted"},"Legacy")],-1)),o("div",sf,[t[16]||(t[16]=o("h2",null,"GitHub OAuth",-1)),o("span",{class:A(["connection-status",{"is-connected":e.connections.oauthConnected}])},c(e.connections.oauthConnected?"Connected":"Not connected"),3)]),t[19]||(t[19]=o("p",null,"For existing OAuth anonymizations.",-1)),t[20]||(t[20]=o("p",{class:"connection-help"},"This connection uses GitHub's broader repository permissions. Existing work keeps using it until you switch below.",-1)),e.connections.oauthEnabled?(l(),d("a",rf,c(e.connections.oauthConnected?"Reconnect OAuth":"Connect legacy OAuth"),1)):p("v-if",!0),e.connections.oauthConnected?(l(),d("div",af,[e.connections.gistCount?(l(),d("p",lf,c(e.connections.gistCount)+" gist(s) use your GitHub App connection when available.",1)):p("v-if",!0),t[17]||(t[17]=o("p",null,"Switch all dependent repositories before revoking access. Gists can use your GitHub App connection.",-1)),e.connections.appConnected?(l(),d("button",{key:1,class:"connection-link connection-danger",disabled:e.busy||e.connections.resources.some(n=>n.connection==="oauth"),onClick:t[4]||(t[4]=n=>e.disconnectOAuth())},"Revoke OAuth access",8,df)):p("v-if",!0)])):p("v-if",!0)])]),o("section",uf,[o("div",cf,[t[21]||(t[21]=o("h2",null,"Repository connections",-1)),o("span",pf,c(e.connections.resources?.length||0)+" resources",1)]),t[23]||(t[23]=o("p",null,"Check access, then switch each resource to the GitHub App. After reinstalling the App, reconnect existing resources here to keep their anonymous URLs and published snapshots.",-1)),e.connections.resources?.length?p("v-if",!0):(l(),d("div",ff,[...t[22]||(t[22]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),o("div",null,[o("h3",null,"No repository connections yet"),o("p",null,"Your repositories and pull requests will appear here once you anonymize them.")],-1),o("a",{class:"connection-link",href:"/anonymize"},"New anonymization \u2192",-1)])])),(l(!0),d(X,null,ae(e.connections.resources,n=>(l(),d("div",{class:"connection-resource",key:n.type+n.id},[o("div",mf,[o("strong",null,c(n.name||n.id),1),o("small",null,c(n.type)+" \xB7 "+c(n.id),1)]),o("span",{class:A(["connection-badge",{"connection-badge-muted":n.connection==="oauth"}])},c(n.connection==="github-app"?"Read-only App":"Legacy OAuth"),3),!["archived","removed","preparing","queue","removing","expiring"].includes(n.status)&&(n.status!=="download"||n.type==="pull-request"&&(!n.statusDate||new Date(n.statusDate).getTime()<=Date.now()-3e5))&&e.connections.appEnabled&&e.connections.appConnected?(l(),d("div",hf,[o("button",{class:"btn btn-outline-ink",disabled:e.busy,onClick:r=>e.changeConnection(n,"github-app",!0)},"Check read-only access",8,vf),n.eligible?(l(),d("button",{key:0,class:"btn btn-ink",disabled:e.busy,onClick:r=>e.changeConnection(n,"github-app",!1)},c(n.connection==="github-app"?"Reconnect read-only access":"Switch to read-only access"),9,yf)):p("v-if",!0),n.eligible===!1?(l(),d("span",gf,"Access unavailable. Allow this repository on GitHub, then check again.")):p("v-if",!0)])):p("v-if",!0),!["archived","removed","preparing","queue","removing","expiring"].includes(n.status)&&(n.status!=="download"||n.type==="pull-request"&&(!n.statusDate||new Date(n.statusDate).getTime()<=Date.now()-3e5))&&n.connection==="github-app"&&e.connections.oauthConnected?(l(),d("button",{key:1,class:"connection-link",disabled:e.busy,onClick:r=>e.changeConnection(n,"oauth",!1)},"Use OAuth",8,bf)):p("v-if",!0)]))),128)),t[24]||(t[24]=o("p",{class:"connection-footnote"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b(" Removing access stops new fetches from GitHub. Published content keeps its current expiration and removal settings.")],-1))])])):p("v-if",!0)])}var wf={class:"container paper-page auth-page"},kf={class:"auth-layout"},Ef={class:"auth-options"},Cf={key:0},_f={key:0,class:"btn btn-ink auth-continue",target:"_self",href:"/github/login?recover=1"},Sf={key:1},Nf={key:1},Df={key:2,class:"auth-legacy"},Rf={key:3,role:"status"};function wl(e,t){return l(),d("div",wf,[t[5]||(t[5]=o("a",{class:"auth-back",href:"/"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-arrow-left"})]),b(" Anonymous GitHub")],-1)),o("div",kf,[t[4]||(t[4]=pe('Your research, ready for review
Your code. Your identity,protected. Sign in to GitHub Sign in to create and manage your anonymizations.
',1)),o("div",Ef,[e.accountRecovery?(l(),d("section",Cf,[t[0]||(t[0]=o("h2",null,"Verify your existing account",-1)),t[1]||(t[1]=o("p",null,"We found an existing account. Verify it with your previous GitHub connection to keep your anonymizations. Future sign-ins will use the GitHub App.",-1)),e.site_options?.GITHUB_OAUTH_ENABLED?(l(),d("a",_f,"Verify with previous GitHub connection")):(l(),d("p",Sf,"Account verification is currently unavailable. Please try again later."))])):p("v-if",!0),e.site_options?.GITHUB_APP_ENABLED&&!e.accountRecovery?(l(),d("section",Nf,[...t[2]||(t[2]=[pe('Read-only access
Continue with GitHub Connect through the GitHub App with read-only repository access.
You choose which repositories to share No permission to write to your codeSign in with GitHub Your existing anonymizations and connections stay with your account. ',6)])])):p("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(l(),d("section",Df,[...t[3]||(t[3]=[o("div",{class:"connection-title"},[o("h2",null,"Continue with GitHub")],-1),o("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),o("a",{class:"connection-link",target:"_self",href:"/github/login"},[b("Sign in with GitHub "),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-arrow-right"})])],-1)])])):p("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(l(),d("p",Rf,"GitHub sign-in is currently unavailable. Please try again later.")):p("v-if",!0)])])])}var Tf={class:"paper-empty"};function kl(e,t){return l(),d("div",Tf,[...t[0]||(t[0]=[pe('Error \xB7 404
This linkisn\u2019t here. The anonymous mirror you\u2019re looking for has expired, been removed by its owner, or never existed. If you received this URL from an author, ask them to re-issue it.
',1)])])}var Af={class:"container paper-page admin-page"},Of={class:"admin-summary"},If={class:"summary-total"},Pf=["aria-pressed"],Vf={class:"count"},qf=["aria-pressed"],Mf={class:"count"},$f=["aria-pressed"],Lf={class:"count"},Uf=["aria-pressed"],Ff={class:"count"},zf=["aria-pressed"],Hf={class:"count"},Bf={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},jf={class:"w-100 admin-filter-toolbar","aria-label":"Conferences","accept-charset":"UTF-8"},Gf={class:"admin-filter-row"},Wf={class:"search-wrap"},Kf={type:"search",class:"form-control",placeholder:"Search conferences\u2026",autocomplete:"off"},Yf={key:0,class:"admin-search-hint"},Jf={class:"admin-filter-inline","aria-label":"Pagination"},Qf=["disabled"],Xf={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},Zf=["disabled"],xf={key:0,class:"admin-filter-row"},em={class:"admin-active-chips"},tm={class:"key"},om=["onClick"],nm={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},sm={class:"paper-table-head",role:"row"},rm={role:"columnheader"},im={role:"columnheader"},am={role:"columnheader"},lm={class:"paper-table-row",role:"row"},dm={class:"cell-anon",role:"cell"},um={class:"anon-text"},cm=["textContent","href"],pm={class:"anon-sub"},fm={class:"cell-status",role:"cell"},mm=["textContent"],hm={class:"cell-views num",role:"cell"},vm=["textContent","href"],ym={class:"cell-expires",role:"cell"},gm={class:"cell-actions",role:"cell"},bm={class:"dropdown"},wm={class:"dropdown-menu dropdown-menu-right"},km=["href"],Em=["href"],Cm=["href"],_m=["onClick"],Sm={key:0,class:"paper-table-empty"},Nm={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},Dm={style:{"font-size":"12px",color:"var(--ink-muted)"}},Rm={key:0,class:"pagination-compact"},Tm=["disabled"],Am=["max"],Om=["disabled"],Im={class:"admin-filter-inline"},Pm={class:"form-control form-control-sm"};function El(e,t){let n=be("field"),r=be("form");return l(),d("div",Af,[t[47]||(t[47]=pe('Admin \xA0/\xA0 Conferences
Conferences Overview Repositories Users Conferences Queues Errors ',3)),o("div",Of,[o("span",If,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[13]||(t[13]=b("Ready ",-1)),o("span",Vf,c(e.fmt?.number(e.statusCountFor("ready"))),1)],10,Pf),o("button",{type:"button",class:A(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[14]||(t[14]=b("Preparing ",-1)),o("span",Mf,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,qf),o("button",{type:"button",class:A(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[15]||(t[15]=b("Errored ",-1)),o("span",Lf,c(e.fmt?.number(e.statusCountFor("error"))),1)],10,$f),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[16]||(t[16]=b("Expired ",-1)),o("span",Ff,c(e.fmt?.number(e.statusCountFor("expired"))),1)],10,Uf),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[17]||(t[17]=b("Removed ",-1)),o("span",Hf,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,zf)]),e.fetchError?(l(),d("div",Bf,[t[18]||(t[18]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",jf,[o("div",Gf,[o("div",Wf,[D(o("input",Kf,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",Yf,"/"))]),t[22]||(t[22]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])]),o("span",Jf,[o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1)])],8,Qf),o("span",Xf,c(e.query?.page)+"/"+c(e.totalPage||1),1),o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Zf)])]),e.chips?.length?(l(),d("div",xf,[o("div",em,[(l(!0),d(X,null,ae(e.chips,(s,i)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[o("span",tm,c(s?.label),1),o("span",null,c(s?.value),1),o("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,om)]))),128))])])):p("v-if",!0)])),[[r,e.viewState]]),o("div",nm,[o("div",sm,[o("div",rm,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="name"}]),onClick:t[8]||(t[8]=s=>e.sortBy("name"))},[t[25]||(t[25]=b("Conference ",-1)),e.sortIcon("name")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("name")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[24]||(t[24]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",im,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[9]||(t[9]=s=>e.sortBy("status"))},[t[27]||(t[27]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=o("div",{role:"columnheader",class:"num"},"Repos",-1)),o("div",am,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="startDate"}]),onClick:t[10]||(t[10]=s=>e.sortBy("startDate"))},[t[29]||(t[29]=b("Window ",-1)),e.sortIcon("startDate")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("startDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredConferences,(s,i)=>(l(),d("div",lm,[o("div",dm,[t[33]||(t[33]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[o("use",{href:"#project-icon-conference"})],-1)),o("div",um,[o("a",{class:"repo-name",textContent:c(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,cm),o("div",pm,[o("span",null,c(s?.conferenceID),1),t[32]||(t[32]=b("\xA0\xB7\xA0",-1)),o("span",null,c(e.fmt?.number(s?.price||0))+" \u20AC",1)])])]),o("div",fm,[o("span",{class:A(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,mm)]),o("div",hm,[t[34]||(t[34]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1)),o("a",{title:"Show repositories in this conference",textContent:c(e.fmt?.number(s?.repositories?.length||0)),href:e.safeUrl("/admin/?conference="+s?.conferenceID)},null,8,vm)]),o("div",ym,[t[35]||(t[35]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),b(" "+c(e.fmt?.date(s?.startDate))+" \u2013 "+c(e.fmt?.date(s?.endDate)),1)]),o("div",gm,[o("div",bm,[t[41]||(t[41]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",wm,[o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[36]||(t[36]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit",-1)])],8,km),o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[37]||(t[37]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View",-1)])],8,Em),o("a",{class:"dropdown-item",href:e.safeUrl("/admin/?conference="+s?.conferenceID)},[...t[38]||(t[38]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),b(" View repositories",-1)])],8,Cm),t[40]||(t[40]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeConference(s),["prevent"])},[...t[39]||(t[39]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,_m),[[K,s?.status!="removed"]])])])])]))),256)),e.filteredConferences?.length==0?(l(),d("div",Sm,[...t[42]||(t[42]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No conferences match the current filters.",-1)])])):p("v-if",!0)]),o("div",Nm,[o("span",Dm,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",Rm,[o("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[43]||(t[43]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1),b(" Previous",-1)])],8,Tm),D(o("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,Am),[[n,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),o("span",null,"of "+c(e.totalPage),1),o("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[44]||(t[44]=[b("Next ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,Om)])):p("v-if",!0),o("span",Im,[t[46]||(t[46]=o("label",null,"Per page",-1)),D((l(),d("select",Pm,[...t[45]||(t[45]=[pe('10 25 50 100 250 ',5)])])),[[n,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var Vm={class:"container paper-page admin-page errors-page"},qm={class:"errors-header"},Mm={class:"errors-actions"},$m={class:"kpi-grid"},Lm={class:"kpi-card"},Um={class:"kpi-value"},Fm={key:0},zm={key:1},Hm={class:"kpi-card kpi-error"},Bm={class:"kpi-value"},jm={class:"kpi-sub"},Gm={class:"kpi-card kpi-warn"},Wm={class:"kpi-value"},Km={class:"kpi-sub"},Ym={class:"kpi-card kpi-info"},Jm={class:"kpi-value"},Qm={class:"kpi-sub"},Xm={class:"kpi-value"},Zm={class:"kpi-sub"},xm={key:0,class:"dropped-warn"},eh={class:"volume-chart"},th={class:"volume-bars"},oh=["title"],nh={class:"errors-toolbar","aria-label":"Error filters"},sh={class:"seg-tabs"},rh={class:"search-wrap"},ih={type:"search",class:"form-control",placeholder:"code:repo_not_found module:route status:>=400",autocomplete:"off"},ah={key:0,class:"filter-count"},lh={class:"select-wrap"},dh={class:"form-control form-control-sm"},uh={class:"select-wrap"},ch={class:"form-control form-control-sm"},ph={class:"autoref"},fh={type:"checkbox"},mh={key:0,class:"admin-empty"},hh={key:1,class:"errors-pager"},vh={key:2,class:"errors-list"},yh=["onClick"],gh={class:"col-when"},bh={class:"when-rel"},wh={class:"when-abs"},kh={class:"col-sev"},Eh={class:"sev-label"},Ch={class:"col-mod"},_h={class:"pill pill-module"},Sh={class:"col-msg"},Nh={class:"msg-code"},Dh={key:0,class:"msg-context"},Rh={key:1,class:"msg-detail"},Th={key:2,class:"msg-url"},Ah={class:"col-count"},Oh={key:0,class:"count-pill"},Ih={key:1,class:"count-pill count-pill-muted"},Ph={class:"col-status"},Vh={key:0,class:"errors-row-detail"},qh={class:"detail-tabs"},Mh=["onClick"],$h=["onClick"],Lh=["onClick"],Uh={class:"detail-body"},Fh={class:"detail-main"},zh={key:0},Hh={key:1,class:"stack-pre"},Bh={key:2,class:"related-list"},jh={class:"when-abs"},Gh={class:"msg-url"},Wh={class:"detail-actions"},Kh=["onClick"],Yh=["onClick"],Jh={key:0,class:"copy-hint"},Qh={class:"detail-aside"},Xh={class:"aside-block"},Zh=["title"],xh={class:"aside-block"},ev=["title"],tv={class:"aside-block"},ov={class:"aside-value"},nv={key:0,class:"aside-sub"},sv={key:0,class:"aside-block"},rv=["href"],iv={key:1,class:"aside-block"},av={class:"aside-value mono"};function Cl(e,t){let n=be("field"),r=be("form");return l(),d("div",Vm,[t[32]||(t[32]=o("div",{class:"paper-crumbs"},[b("Admin \xA0/\xA0 "),o("span",{class:"here"},"Errors")],-1)),o("header",qm,[t[10]||(t[10]=o("h1",{class:"paper-page-title"},"Errors",-1)),o("div",Mm,[o("button",{class:"btn btn-sm",type:"button",onClick:t[0]||(t[0]=s=>e.exportCsv())},[...t[8]||(t[8]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export CSV",-1)])]),o("button",{class:"btn btn-sm btn-danger-soft",type:"button",onClick:t[1]||(t[1]=s=>e.clearAll())},[...t[9]||(t[9]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Clear all",-1)])])])]),t[33]||(t[33]=pe(' Overview Repositories Users Conferences Queues Errors ',1)),o("section",$m,[o("div",Lm,[t[11]||(t[11]=o("div",{class:"kpi-label"},"Last 24h",-1)),o("div",Um,c(e.stats?.last24h),1),o("div",{class:A(["kpi-sub",{up:e.stats?.delta>0,down:e.stats?.delta<0}])},[e.stats?.prev24h?(l(),d("span",Fm,c(e.stats?.delta>0?"+":"")+c(e.stats?.delta)+"% vs yesterday",1)):p("v-if",!0),e.stats?.prev24h?p("v-if",!0):(l(),d("span",zm,"no prior baseline"))],2)]),o("div",Hm,[t[12]||(t[12]=o("div",{class:"kpi-label"},"Errors (5xx)",-1)),o("div",Bm,c(e.stats?.severity?.error),1),o("div",jm,c(e.stats?.unique?.error)+" unique",1)]),o("div",Gm,[t[13]||(t[13]=o("div",{class:"kpi-label"},"Warnings (4xx)",-1)),o("div",Wm,c(e.stats?.severity?.warn),1),o("div",Km,c(e.stats?.unique?.warn)+" unique",1)]),o("div",Ym,[t[14]||(t[14]=o("div",{class:"kpi-label"},"Info (auth, 404)",-1)),o("div",Jm,c(e.stats?.severity?.info),1),o("div",Qm,c(e.stats?.unique?.info)+" unique",1)]),o("div",{class:A(["kpi-card",{"kpi-error":e.stats?.dropped>0}])},[t[15]||(t[15]=o("div",{class:"kpi-label"},"Captured",-1)),o("div",Xm,c(e.total),1),o("div",Zm,[b(" cap "+c(e.cap)+" \xB7 "+c(e.available?"live":"redis off")+" ",1),e.stats?.dropped>0?(l(),d("span",xm," \xB7 "+c(e.stats?.dropped)+" dropped",1)):p("v-if",!0)])],2)]),o("section",eh,[t[16]||(t[16]=pe('Volume \xB7 24h \xB7 1h buckets error warn info
',1)),o("div",th,[(l(!0),d(X,null,ae(e.stats?.buckets,(s,i)=>(l(),d("div",{class:"volume-bar",key:i,title:e.bucketTitle(s)},[o("span",{class:"seg seg-error",style:qe({height:e.barPx(s,"error")+"px"})},null,4),o("span",{class:"seg seg-warn",style:qe({height:e.barPx(s,"warn")+"px"})},null,4),o("span",{class:"seg seg-info",style:qe({height:e.barPx(s,"info")+"px"})},null,4)],8,oh))),128))])]),D((l(),d("form",nh,[o("div",sh,[o("button",{type:"button",class:A({active:e.query?.bucket===""}),onClick:t[2]||(t[2]=s=>e.setBucket(""))},"All",2),o("button",{type:"button",class:A({active:e.query?.bucket==="error"}),onClick:t[3]||(t[3]=s=>e.setBucket("error"))},"5xx",2),o("button",{type:"button",class:A({active:e.query?.bucket==="warn"}),onClick:t[4]||(t[4]=s=>e.setBucket("warn"))},"4xx",2),o("button",{type:"button",class:A({active:e.query?.bucket==="info"}),onClick:t[5]||(t[5]=s=>e.setBucket("info"))},"Info",2)]),o("div",rh,[t[17]||(t[17]=o("svg",{class:"ui-icon search-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-search"})],-1)),D(o("input",ih,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.parsedFilterCount?(l(),d("span",ah,c(e.parsedFilterCount)+" filter"+c(e.parsedFilterCount>1?"s":""),1)):p("v-if",!0)]),o("div",lh,[t[19]||(t[19]=o("label",null,"Sort",-1)),D((l(),d("select",dh,[...t[18]||(t[18]=[o("option",{value:"recent"},"Most recent",-1),o("option",{value:"count"},"Most frequent",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.sort=s},value:e.query?.sort,form:null,options:{}}]])]),o("div",uh,[t[21]||(t[21]=o("label",null,"Group",-1)),D((l(),d("select",ch,[...t[20]||(t[20]=[o("option",{value:""},"Off",-1),o("option",{value:"code"},"By code",-1),o("option",{value:"module"},"By module",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.group=s},value:e.query?.group,form:null,options:{}}]])]),o("label",ph,[D(o("input",fh,null,512),[[n,{state:e.viewState,set:s=>{e.query.autoRefresh=s},value:e.query?.autoRefresh,form:null,options:{}}]]),t[22]||(t[22]=b(" Auto-refresh ",-1))]),o("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[6]||(t[6]=s=>e.refreshNow()),"aria-label":"Refresh"},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])])])),[[r,e.viewState]]),e.visible?.length?p("v-if",!0):(l(),d("div",mh,"No errors captured.")),e.canLoadMore()&&e.visible?.length?(l(),d("div",hh,[o("span",null,"Showing "+c(e.entries?.length)+" of "+c(e.total)+" captured",1),o("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>e.loadMore())},"Load older")])):p("v-if",!0),e.visible?.length?(l(),d("div",vh,[t[31]||(t[31]=pe('When Severity Module Message Count Status
',1)),(l(!0),d(X,null,ae(e.visible,(s,i)=>(l(),d("div",{class:A(["errors-row",{open:e.expanded[s?._key]}]),key:s?._key},[o("div",{class:"errors-row-main",onClick:a=>e.toggle(s)},[o("div",gh,[o("div",bh,c(e.relTime(s?.ts)),1),o("div",wh,c(e.absTimeShort(s?.ts)),1)]),o("div",kh,[o("span",{class:A(["sev-dot","sev-"+s?._bucket])},null,2),o("span",Eh,c(e.fmt?.title(s?._bucket)),1)]),o("div",Ch,[o("span",_h,c(s?.module),1)]),o("div",Sh,[o("strong",Nh,c(s?.displayMessage),1),s?.displayContext&&s?.displayContext!==s?.displayMessage?(l(),d("span",Dh,c(s?.displayContext),1)):p("v-if",!0),s?._detail?(l(),d("span",Rh,c(s?._detail),1)):p("v-if",!0),s?._url?(l(),d("div",Th,c(s?._url),1)):p("v-if",!0)]),o("div",Ah,[s?.count>1?(l(),d("span",Oh,"\xD7"+c(s?.count),1)):p("v-if",!0),s?.count===1?(l(),d("span",Ih,"\xD71")):p("v-if",!0)]),o("div",Ph,[s?._status?(l(),d("span",{key:0,class:A(["status-pill","status-"+s?._bucket])},c(s?._status),3)):p("v-if",!0)])],8,yh),e.expanded[s?._key]?(l(),d("div",Vh,[o("div",qh,[o("button",{type:"button",class:A({active:e.detailTab[s?._key]==="raw"||!e.detailTab[s?._key]}),onClick:a=>e.detailTab[s._key]="raw"},"Raw",10,Mh),s?._stack?(l(),d("button",{key:0,type:"button",class:A({active:e.detailTab[s?._key]==="stack"}),onClick:a=>e.detailTab[s._key]="stack"},"Stack",10,$h)):p("v-if",!0),s?.count>1?(l(),d("button",{key:1,type:"button",class:A({active:e.detailTab[s?._key]==="related"}),onClick:a=>e.detailTab[s._key]="related"},"Related ("+c(s?.count)+")",11,Lh)):p("v-if",!0)]),o("div",Uh,[o("div",Fh,[(e.detailTab[s?._key]||"raw")==="raw"?(l(),d("pre",zh,c(s?._detailJson),1)):p("v-if",!0),e.detailTab[s?._key]==="stack"?(l(),d("pre",Hh,c(s?._stack),1)):p("v-if",!0),e.detailTab[s?._key]==="related"?(l(),d("div",Bh,[(l(!0),d(X,null,ae(s?._related,(a,u)=>(l(),d("div",{class:"related-row",key:u},[o("span",jh,c(e.absTimeShort(a?.ts)),1),o("span",Gh,c(a?._url),1),a?._status?(l(),d("span",{key:0,class:A(["status-pill","status-"+a?._bucket])},c(a?._status),3)):p("v-if",!0)]))),128))])):p("v-if",!0),o("div",Wh,[o("button",{class:"btn btn-sm",type:"button",title:"Copy a curl that reproduces the request",onClick:a=>e.copyCurl(s)},[...t[24]||(t[24]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-code"})],-1),b(" Copy curl",-1)])],8,Kh),o("button",{class:"btn btn-sm",type:"button",onClick:a=>e.copyJson(s)},[...t[25]||(t[25]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-clipboard"})],-1),b(" Copy JSON",-1)])],8,Yh),e.copyHint?(l(),d("span",Jh,c(e.copyHint),1)):p("v-if",!0)])]),o("aside",Qh,[o("div",Xh,[t[26]||(t[26]=o("div",{class:"aside-label"},"First seen",-1)),o("div",{class:"aside-value",title:e.absTime(s?._firstSeen)},c(e.relTime(s?._firstSeen)),9,Zh)]),o("div",xh,[t[27]||(t[27]=o("div",{class:"aside-label"},"Last seen",-1)),o("div",{class:"aside-value",title:e.absTime(s?.ts)},c(e.relTime(s?.ts)),9,ev)]),o("div",tv,[t[28]||(t[28]=o("div",{class:"aside-label"},"Occurrences",-1)),o("div",ov,[b(c(s?.count),1),s?._lastHourCount?(l(),d("span",nv," \xB7 "+c(s?._lastHourCount)+" this hour",1)):p("v-if",!0)])]),s?._repoId?(l(),d("div",sv,[t[29]||(t[29]=o("div",{class:"aside-label"},"Repository",-1)),o("a",{class:"aside-value",href:e.safeUrl("/r/"+s?._repoId)},c(s?._repoId),9,rv)])):p("v-if",!0),s?._url?(l(),d("div",iv,[t[30]||(t[30]=o("div",{class:"aside-label"},"URL",-1)),o("div",av,c(s?._url),1)])):p("v-if",!0)])])])):p("v-if",!0)],2))),128))])):p("v-if",!0)])}var lv={class:"container paper-page admin-page overview-page"},dv={key:0,class:"admin-empty"},uv={key:1,class:"alert alert-danger",style:{margin:"12px 0"}},cv={key:2},pv={class:"ov-kpi-row"},fv={class:"ov-kpi-card"},mv={class:"ov-kpi-value"},hv={class:"ov-kpi-sub"},vv={class:"ov-kpi-card"},yv={class:"ov-kpi-sub"},gv={class:"ov-kpi-card"},bv={class:"ov-kpi-sub"},wv={class:"ov-kpi-card"},kv={class:"ov-kpi-sub"},Ev={class:"ov-kpi-card"},Cv={class:"ov-kpi-value"},_v={class:"ov-kpi-sub"},Sv={class:"ov-daily-row"},Nv={class:"ov-daily-card"},Dv={class:"ov-daily-value"},Rv={class:"ov-daily-card"},Tv={class:"ov-daily-value"},Av={class:"ov-daily-sub"},Ov={class:"ov-daily-card"},Iv={class:"ov-daily-value"},Pv={class:"ov-chart-row"},Vv={class:"ov-chart-card"},qv={key:0,class:"ov-spark-bars"},Mv=["data-tip","aria-label"],$v={key:1,class:"ov-spark-x"},Lv={class:"ov-chart-card"},Uv={key:0,class:"ov-spark-bars"},Fv=["data-tip","aria-label"],zv={key:1,class:"ov-spark-x"},Hv={class:"ov-chart-card"},Bv={class:"ov-chart-head"},jv={class:"ov-chart-legend"},Gv={key:0,class:"ov-spark-bars"},Wv=["data-tip","aria-label"],Kv={key:1,class:"ov-spark-x"},Yv={class:"ov-chart-card"},Jv={key:0,class:"ov-spark-bars"},Qv=["data-tip","aria-label"],Xv={key:1,class:"ov-spark-x"},Zv={class:"ov-triple-row"},xv={class:"ov-panel-card"},ey={class:"ov-panel-head"},ty={class:"ov-panel-meta"},oy={class:"ov-stacked-bar"},ny={class:"ov-bar-legend"},sy={href:"/admin/repositories",class:"ov-legend-item"},ry={class:"ov-legend-n"},iy={href:"/admin/repositories",class:"ov-legend-item"},ay={class:"ov-legend-n"},ly={href:"/admin/repositories",class:"ov-legend-item"},dy={class:"ov-legend-n"},uy={href:"/admin/repositories",class:"ov-legend-item"},cy={class:"ov-legend-n"},py={href:"/admin/repositories",class:"ov-legend-item"},fy={class:"ov-legend-n"},my={class:"ov-panel-card"},hy={class:"ov-panel-head"},vy={class:"ov-panel-meta"},yy={class:"ov-error-bars"},gy={class:"ov-ebar-row"},by={class:"ov-ebar-track"},wy={class:"ov-ebar-n"},ky={class:"ov-ebar-row"},Ey={class:"ov-ebar-track"},Cy={class:"ov-ebar-n"},_y={class:"ov-ebar-row"},Sy={class:"ov-ebar-track"},Ny={class:"ov-ebar-n"},Dy={key:0,class:"ov-panel-foot"},Ry={href:"/admin/errors"},Ty={class:"ov-panel-card"},Ay={class:"ov-routes-table"},Oy={class:"ov-route-row",href:"/admin/queues"},Iy={class:"ov-route-n"},Py={class:"ov-route-n"},Vy={class:"ov-route-row",href:"/admin/queues"},qy={class:"ov-route-n"},My={class:"ov-route-n"},$y={class:"ov-route-row",href:"/admin/queues"},Ly={class:"ov-route-n"},Uy={class:"ov-route-n"},Fy={class:"ov-services-card"},zy={class:"ov-services-head"},Hy={class:"ov-panel-meta"},By={class:"ov-services-grid"},jy={class:"ov-svc"},Gy={class:"ov-svc-info"},Wy={class:"ov-svc-meta"},Ky={class:"ov-svc-detail"},Yy={class:"ov-svc"},Jy={class:"ov-svc-info"},Qy={key:0,class:"ov-svc-meta"},Xy={key:1,class:"ov-svc-meta"},Zy={class:"ov-svc"},xy={class:"ov-svc-info"},eg={key:0,class:"ov-svc-meta"},tg={key:1,class:"ov-svc-meta"},og={class:"ov-svc"},ng={class:"ov-svc-info"},sg={key:0,class:"ov-svc-meta"},rg={key:1,class:"ov-svc-meta"},ig={class:"ov-svc"},ag={class:"ov-svc-info"},lg={class:"ov-svc-meta"},dg={class:"ov-panel-card ov-performance","aria-labelledby":"performance-heading"},ug={class:"ov-panel-head ov-performance-head"},cg={class:"ov-performance-window"},pg={key:0,class:"ov-performance-message ov-performance-warning",role:"alert"},fg={key:1,class:"ov-performance-empty",role:"status"},mg={key:2},hg={class:"paper-tabs ov-performance-tabs",role:"tablist","aria-label":"Performance metrics"},vg=["aria-selected","tabindex"],yg=["aria-selected","tabindex"],gg=["aria-selected","tabindex"],bg={id:"performance-routes",role:"tabpanel","aria-labelledby":"performance-routes-tab"},wg={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Route latency metrics, scroll for more columns"},kg={class:"ov-metrics-table"},Eg={scope:"row",class:"ov-metric-name"},Cg={class:"num"},_g={class:"num"},Sg={class:"num"},Ng={class:"num"},Dg={class:"num"},Rg={key:1,class:"ov-performance-empty"},Tg={id:"performance-processes",role:"tabpanel","aria-labelledby":"performance-processes-tab"},Ag={key:0,class:"ov-performance-message ov-performance-warning",role:"status"},Og={key:1,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Process resource metrics, scroll for more columns"},Ig={class:"ov-metrics-table"},Pg={scope:"row",class:"ov-metric-name"},Vg={key:0,class:"ov-metric-warn"},qg={class:"num"},Mg={class:"num"},$g={class:"num"},Lg={class:"num"},Ug={class:"num"},Fg={class:"num"},zg={class:"num"},Hg={class:"num"},Bg={id:"performance-stages",role:"tabpanel","aria-labelledby":"performance-stages-tab"},jg={key:0,class:"ov-metrics-scroll",tabindex:"0",role:"region","aria-label":"Work stage metrics, scroll for more columns"},Gg={class:"ov-metrics-table"},Wg={scope:"row",class:"ov-metric-name"},Kg={class:"num"},Yg={class:"num"},Jg={class:"num"},Qg={key:1,class:"ov-performance-empty"};function _l(e,t){return l(),d("div",lv,[t[65]||(t[65]=pe('Admin \xA0/\xA0 Overview
Overview Repositories Users Conferences Queues Errors ',3)),e.loading?(l(),d("div",dv,"Loading overview\u2026")):p("v-if",!0),e.error?(l(),d("div",uv,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.error),1)])):p("v-if",!0),e.data?(l(),d("div",cv,[p(" \u2500\u2500 Top KPI row \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",pv,[o("div",fv,[t[10]||(t[10]=o("div",{class:"ov-kpi-label"},[b("Repositories "),o("span",{class:"ov-dot ov-dot-ok"})],-1)),o("div",mv,c(e.humanNum(e.data?.repos?.total)),1),o("div",hv,"+"+c(e.data?.repos?.newRepos24h)+" \xB7 last 24h",1)]),o("div",vv,[t[11]||(t[11]=o("div",{class:"ov-kpi-label"},"CPU",-1)),o("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.cpuPercent>80}])},c(e.data?.system?.cpuPercent)+"%",3),o("div",yv,c(e.data?.system?.cpuCount)+" cores \xB7 load "+c(e.data?.system?.loadAvg?.[0]?.toFixed(1)),1)]),o("div",gv,[t[12]||(t[12]=o("div",{class:"ov-kpi-label"},"Memory",-1)),o("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.memPercent>85}])},c(e.data?.system?.memPercent)+"%",3),o("div",bv,c(e.humanBytes(e.data?.system?.memUsed))+" / "+c(e.humanBytes(e.data?.system?.memTotal)),1)]),o("div",wv,[t[13]||(t[13]=o("div",{class:"ov-kpi-label"},"Disk",-1)),o("div",{class:A(["ov-kpi-value",{"ov-val-warn":e.data?.system?.diskPercent>85}])},c(e.data?.system?.diskPercent)+"%",3),o("div",kv,c(e.humanBytes(e.data?.system?.diskUsed))+" / "+c(e.humanBytes(e.data?.system?.diskTotal))+" \xB7 "+c(e.data?.system?.diskMount),1)]),o("div",Ev,[t[14]||(t[14]=o("div",{class:"ov-kpi-label"},"Uptime",-1)),o("div",Cv,c(e.humanDuration(e.data?.system?.uptime)),1),o("div",_v,c(e.data?.system?.nodeVersion)+" \xB7 "+c(e.data?.system?.platform),1)])]),p(" \u2500\u2500 Daily activity highlights \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Sv,[o("div",Nv,[t[15]||(t[15]=o("div",{class:"ov-daily-label"},"New repos today",-1)),o("div",Dv,"+"+c(e.fmt?.number(e.data?.daily?.today?.repositories)),1),t[16]||(t[16]=o("div",{class:"ov-daily-sub"},"since yesterday",-1))]),o("div",Rv,[t[17]||(t[17]=o("div",{class:"ov-daily-label"},"New users today",-1)),o("div",Tv,"+"+c(e.fmt?.number(e.data?.daily?.today?.users)),1),o("div",Av,c(e.fmt?.number(e.data?.users?.total))+" total users",1)]),o("div",Ov,[t[18]||(t[18]=o("div",{class:"ov-daily-label"},"Page views today",-1)),o("div",Iv,"+"+c(e.fmt?.number(e.data?.daily?.today?.pageViews)),1),t[19]||(t[19]=o("div",{class:"ov-daily-sub"},"since yesterday",-1))])]),p(" \u2500\u2500 Daily charts \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Pv,[o("div",Vv,[t[20]||(t[20]=o("div",{class:"ov-chart-head"},[o("span",{class:"ov-chart-title"},"Daily page views \xB7 30d"),o("span",{class:"ov-chart-legend"},[o("span",{class:"ov-dot-legend ov-dot-accent"}),b("views/day")])],-1)),e.data?.history?.length?(l(),d("div",qv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyPageViews)+" views","aria-label":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyPageViews)+" views"},[o("span",{class:"ov-spark-fill",style:qe({height:e.historyBarH(n,"dailyPageViews")+"px"})},null,4)],8,Mv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",$v,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),o("div",Lv,[t[21]||(t[21]=o("div",{class:"ov-chart-head"},[o("span",{class:"ov-chart-title"},"New repos \xB7 30d"),o("span",{class:"ov-chart-legend"},[o("span",{class:"ov-dot-legend ov-dot-ok-fill"}),b("repos/day")])],-1)),e.data?.history?.length?(l(),d("div",Uv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyRepositories)+" repos","aria-label":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyRepositories)+" repos"},[o("span",{class:"ov-spark-fill ov-spark-fill-alt",style:qe({height:e.historyBarH(n,"dailyRepositories")+"px"})},null,4)],8,Fv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",zv,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),o("div",Hv,[o("div",Bv,[t[23]||(t[23]=o("span",{class:"ov-chart-title"},"Users \xB7 30d",-1)),o("span",jv,[t[22]||(t[22]=o("span",{class:"ov-dot-legend ov-dot-user-fill"},null,-1)),b("total users \xB7 "+c(e.fmt?.number(e.historyRange("nbUsers").min))+"\u2013"+c(e.fmt?.number(e.historyRange("nbUsers").max)),1)])]),e.data?.history?.length?(l(),d("div",Gv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": "+e.fmt?.number(n?.nbUsers)+" users","aria-label":e.historyLabel(n)+": "+e.fmt?.number(n?.nbUsers)+" users"},[o("span",{class:"ov-spark-fill ov-spark-fill-user",style:qe({height:e.historyRangeH(n,"nbUsers")+"px"})},null,4)],8,Wv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Kv,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)]),o("div",Yv,[t[24]||(t[24]=o("div",{class:"ov-chart-head"},[o("span",{class:"ov-chart-title"},"New users \xB7 30d"),o("span",{class:"ov-chart-legend"},[o("span",{class:"ov-dot-legend ov-dot-new-user-fill"}),b("users/day")])],-1)),e.data?.history?.length?(l(),d("div",Jv,[(l(!0),d(X,null,ae(e.data?.history,(n,r)=>(l(),d("div",{class:"ov-spark-col has-tip",key:r,"data-tip":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyUsers)+" users","aria-label":e.historyLabel(n)+": +"+e.fmt?.number(n?.dailyUsers)+" users"},[o("span",{class:"ov-spark-fill ov-spark-fill-new-user",style:qe({height:e.historyBarH(n,"dailyUsers")+"px"})},null,4)],8,Qv))),128))])):p("v-if",!0),e.data?.history?.length?(l(),d("div",Xv,[o("span",null,c(e.historyLabel(e.data?.history[0])),1),o("span",null,c(e.historyLabel(e.data?.history[Math?.floor(e.data?.history?.length/2)])),1),o("span",null,c(e.historyLabel(e.data?.history[e.data?.history?.length-1])),1)])):p("v-if",!0)])]),p(" \u2500\u2500 Three-panel row: Status / Errors / Queues \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Zv,[p(" Repo status breakdown "),o("div",xv,[o("div",ey,[t[25]||(t[25]=o("span",{class:"ov-panel-title"},"Repo status",-1)),o("span",ty,c(e.fmt?.number(e.data?.repos?.total))+" total",1)]),o("div",oy,[o("span",{class:"ov-bar-seg ov-bar-ready",title:"Ready",style:qe({width:e.barPct("ready")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-preparing",title:"Preparing",style:qe({width:e.barPct("preparing")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-error",title:"Error",style:qe({width:e.barPct("error")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-expired",title:"Expired",style:qe({width:e.barPct("expired")+"%"})},null,4),o("span",{class:"ov-bar-seg ov-bar-removed",title:"Removed",style:qe({width:e.barPct("removed")+"%"})},null,4)]),o("div",ny,[o("a",sy,[t[26]||(t[26]=o("span",{class:"ov-swatch ov-bar-ready"},null,-1)),t[27]||(t[27]=b(" ready ",-1)),o("span",ry,c(e.fmt?.number(e.statusCount("ready"))),1)]),o("a",iy,[t[28]||(t[28]=o("span",{class:"ov-swatch ov-bar-preparing"},null,-1)),t[29]||(t[29]=b(" preparing ",-1)),o("span",ay,c(e.fmt?.number(e.statusCount("preparing")+e.statusCount("download"))),1)]),o("a",ly,[t[30]||(t[30]=o("span",{class:"ov-swatch ov-bar-error"},null,-1)),t[31]||(t[31]=b(" error ",-1)),o("span",dy,c(e.fmt?.number(e.statusCount("error"))),1)]),o("a",uy,[t[32]||(t[32]=o("span",{class:"ov-swatch ov-bar-expired"},null,-1)),t[33]||(t[33]=b(" expired ",-1)),o("span",cy,c(e.fmt?.number(e.statusCount("expired")+e.statusCount("expiring"))),1)]),o("a",py,[t[34]||(t[34]=o("span",{class:"ov-swatch ov-bar-removed"},null,-1)),t[35]||(t[35]=b(" removed ",-1)),o("span",fy,c(e.fmt?.number(e.statusCount("removed")+e.statusCount("removing"))),1)])])]),p(" Error breakdown "),o("div",my,[o("div",hy,[t[36]||(t[36]=o("span",{class:"ov-panel-title"},"Errors \xB7 24h",-1)),o("span",vy,c(e.data?.errors?.last24h)+" total",1)]),o("div",yy,[o("div",gy,[t[37]||(t[37]=o("span",{class:"ov-ebar-label"},"5xx",-1)),o("span",by,[o("span",{class:"ov-ebar-fill ov-ebar-error",style:qe({width:e.errPct("error")+"%"})},null,4)]),o("span",wy,c(e.data?.errors?.severity?.error),1)]),o("div",ky,[t[38]||(t[38]=o("span",{class:"ov-ebar-label"},"4xx",-1)),o("span",Ey,[o("span",{class:"ov-ebar-fill ov-ebar-warn",style:qe({width:e.errPct("warn")+"%"})},null,4)]),o("span",Cy,c(e.data?.errors?.severity?.warn),1)]),o("div",_y,[t[39]||(t[39]=o("span",{class:"ov-ebar-label"},"Info",-1)),o("span",Sy,[o("span",{class:"ov-ebar-fill ov-ebar-info",style:qe({width:e.errPct("info")+"%"})},null,4)]),o("span",Ny,c(e.data?.errors?.severity?.info),1)])]),e.data?.repos?.recentErrors24h?(l(),d("div",Dy,[o("a",Ry,c(e.data?.repos?.recentErrors24h)+" repos in error state \u2192",1)])):p("v-if",!0)]),p(" Top routes / queues "),o("div",Ty,[t[44]||(t[44]=o("div",{class:"ov-panel-head"},[o("span",{class:"ov-panel-title"},"Queues"),o("span",{class:"ov-panel-meta"},"by state")],-1)),o("div",Ay,[t[43]||(t[43]=pe('Queue Active Wait Failed
',1)),o("a",Oy,[t[40]||(t[40]=o("span",{class:"ov-route-name"},"download",-1)),o("span",Iy,c(e.data?.queues?.download?.active),1),o("span",Py,c(e.data?.queues?.download?.waiting),1),o("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.download?.failed>0}])},c(e.data?.queues?.download?.failed),3)]),o("a",Vy,[t[41]||(t[41]=o("span",{class:"ov-route-name"},"remove",-1)),o("span",qy,c(e.data?.queues?.remove?.active),1),o("span",My,c(e.data?.queues?.remove?.waiting),1),o("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.remove?.failed>0}])},c(e.data?.queues?.remove?.failed),3)]),o("a",$y,[t[42]||(t[42]=o("span",{class:"ov-route-name"},"cache",-1)),o("span",Ly,c(e.data?.queues?.cache?.active),1),o("span",Uy,c(e.data?.queues?.cache?.waiting),1),o("span",{class:A(["ov-route-n ov-route-lat",{"ov-n-bad":e.data?.queues?.cache?.failed>0}])},c(e.data?.queues?.cache?.failed),3)])])])]),p(" \u2500\u2500 Services bar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 "),o("section",Fy,[o("div",zy,[t[45]||(t[45]=o("span",{class:"ov-panel-title"},"Services",-1)),o("span",Hy,c(e.fmt?.number(e.data?.users?.total))+" users \xB7 "+c(e.data?.conferences?.total)+" conferences",1)]),o("div",By,[o("div",jy,[t[47]||(t[47]=o("span",{class:"ov-svc-dot ov-dot-ok"},null,-1)),o("div",Gy,[t[46]||(t[46]=o("span",{class:"ov-svc-name"},"web",-1)),o("span",Wy,c(e.data?.system?.nodeVersion),1)]),o("span",Ky,"uptime "+c(e.humanDuration(e.data?.system?.uptime)),1)]),o("div",Yy,[o("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.download)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),o("div",Jy,[t[48]||(t[48]=o("span",{class:"ov-svc-name"},"download",-1)),e.queueTotal(e.data?.queues?.download)?(l(),d("span",Qy,c(e.queueTotal(e.data?.queues?.download))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.download)?p("v-if",!0):(l(),d("span",Xy,"idle"))])]),o("div",Zy,[o("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.cache)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),o("div",xy,[t[49]||(t[49]=o("span",{class:"ov-svc-name"},"cache",-1)),e.queueTotal(e.data?.queues?.cache)?(l(),d("span",eg,c(e.queueTotal(e.data?.queues?.cache))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.cache)?p("v-if",!0):(l(),d("span",tg,"idle"))])]),o("div",og,[o("span",{class:A(["ov-svc-dot",e.queueTotal(e.data?.queues?.remove)>0?"ov-dot-ok":"ov-dot-idle"])},null,2),o("div",ng,[t[50]||(t[50]=o("span",{class:"ov-svc-name"},"remove",-1)),e.queueTotal(e.data?.queues?.remove)?(l(),d("span",sg,c(e.queueTotal(e.data?.queues?.remove))+" jobs",1)):p("v-if",!0),e.queueTotal(e.data?.queues?.remove)?p("v-if",!0):(l(),d("span",rg,"idle"))])]),o("div",ig,[o("span",{class:A(["ov-svc-dot",e.data?.repos?.recentErrors24h>10?"ov-dot-warn":"ov-dot-ok"])},null,2),o("div",ag,[t[51]||(t[51]=o("span",{class:"ov-svc-name"},"errors",-1)),o("span",lg,c(e.data?.errors?.last24h)+" / 24h",1)])])])])])):p("v-if",!0),o("section",dg,[o("div",ug,[t[54]||(t[54]=o("div",null,[o("h2",{class:"ov-panel-title",id:"performance-heading"},"Request performance"),o("p",{class:"ov-performance-note"},"Request latency and process health \xB7 refreshes every 30 seconds")],-1)),o("div",cg,[t[53]||(t[53]=o("label",{for:"performance-window"},"Time range",-1)),D(o("select",{id:"performance-window",class:"form-control form-control-sm","onUpdate:modelValue":t[0]||(t[0]=n=>e.performanceMinutes=n),onChange:t[1]||(t[1]=n=>e.loadPerformance()),"aria-label":"Performance time range"},[...t[52]||(t[52]=[o("option",{value:15},"Last 15 minutes",-1),o("option",{value:60},"Last hour",-1)])],544),[[ia,e.performanceMinutes,void 0,{number:!0}]])])]),e.performanceError?(l(),d("div",pg,[t[55]||(t[55]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),o("span",null,c(e.performanceError),1),o("button",{type:"button",class:"btn btn-sm",onClick:t[2]||(t[2]=n=>e.loadPerformance())},"Retry")])):p("v-if",!0),!e.performance&&!e.performanceError?(l(),d("p",fg,"Loading performance monitoring\u2026")):p("v-if",!0),e.performance?.available?(l(),d("div",mg,[o("div",hg,[o("button",{id:"performance-routes-tab",type:"button",class:A(["paper-tab",{active:e.performanceTab==="routes"}]),role:"tab","aria-selected":e.performanceTab==="routes",tabindex:e.performanceTab==="routes"?0:-1,"aria-controls":"performance-routes",onClick:t[3]||(t[3]=n=>e.performanceTab="routes"),onKeydown:t[4]||(t[4]=n=>e.previewTabKeydown(n))},"Routes",42,vg),o("button",{id:"performance-processes-tab",type:"button",class:A(["paper-tab",{active:e.performanceTab==="processes"}]),role:"tab","aria-selected":e.performanceTab==="processes",tabindex:e.performanceTab==="processes"?0:-1,"aria-controls":"performance-processes",onClick:t[5]||(t[5]=n=>e.performanceTab="processes"),onKeydown:t[6]||(t[6]=n=>e.previewTabKeydown(n))},"Processes",42,yg),o("button",{id:"performance-stages-tab",type:"button",class:A(["paper-tab",{active:e.performanceTab==="stages"}]),role:"tab","aria-selected":e.performanceTab==="stages",tabindex:e.performanceTab==="stages"?0:-1,"aria-controls":"performance-stages",onClick:t[7]||(t[7]=n=>e.performanceTab="stages"),onKeydown:t[8]||(t[8]=n=>e.previewTabKeydown(n))},"Work stages",42,gg)]),D(o("div",bg,[e.performance.routes?.length?(l(),d("div",wg,[o("table",kg,[t[56]||(t[56]=o("caption",{class:"sr-only"},"Route latency for the selected time range",-1)),t[57]||(t[57]=o("thead",null,[o("tr",null,[o("th",{scope:"col"},"Route"),o("th",{scope:"col",class:"num"},"Requests"),o("th",{scope:"col",class:"num"},"Average"),o("th",{scope:"col",class:"num"},"First byte p95"),o("th",{scope:"col",class:"num"},"p95"),o("th",{scope:"col",class:"num"},"p99"),o("th",{scope:"col",class:"num"},"Interrupted"),o("th",{scope:"col",class:"num"},"5xx"),o("th",{scope:"col",class:"num"},"Slow")])],-1)),o("tbody",null,[(l(!0),d(X,null,ae(e.performance.routes,n=>(l(),d("tr",{key:n.service+n.method+n.route},[o("th",Eg,[o("span",null,c(n.route),1),o("small",null,c(n.service)+" \xB7 "+c(n.method),1)]),o("td",Cg,c(e.fmt.number(n.count)),1),o("td",_g,c(e.formatMs(n.avgMs)),1),o("td",Sg,c(e.firstByteBound(n)),1),o("td",Ng,c(e.latencyBound(n,"p95UpperMs")),1),o("td",Dg,c(e.latencyBound(n,"p99UpperMs")),1),o("td",{class:A(["num",{"ov-metric-warn":n.aborted>0}])},c(e.fmt.number(n.aborted)),3),o("td",{class:A(["num",{"ov-metric-warn":n.errors>0}])},c(e.fmt.number(n.errors)),3),o("td",{class:A(["num",{"ov-metric-warn":n.slow>0}])},c(e.fmt.number(n.slow)),3)]))),128))])])])):(l(),d("p",Rg,"No recorded requests in this time range yet."))],512),[[K,e.performanceTab==="routes"]]),D(o("div",Tg,[t[61]||(t[61]=o("p",{class:"ov-performance-note"},"API and streamer processes \xB7 latest sample per instance",-1)),e.performance.instances?.length?(l(),d("div",Og,[o("table",Ig,[t[59]||(t[59]=o("caption",{class:"sr-only"},"API and streamer process resource usage",-1)),t[60]||(t[60]=o("thead",null,[o("tr",null,[o("th",{scope:"col"},"Process"),o("th",{scope:"col",class:"num"},"RSS / limit"),o("th",{scope:"col",class:"num"},"CPU"),o("th",{scope:"col",class:"num"},"Event loop p95"),o("th",{scope:"col",class:"num"},"Active requests"),o("th",{scope:"col",class:"num"},"Sockets / CLOSE_WAIT"),o("th",{scope:"col",class:"num"},"Workers / waiting"),o("th",{scope:"col",class:"num"},"Sample age"),o("th",{scope:"col",class:"num"},"Dropped batches / metrics")])],-1)),o("tbody",null,[(l(!0),d(X,null,ae(e.performance.instances,n=>(l(),d("tr",{key:n.instance,class:A({"ov-metric-warning-row":e.performanceWarning(n)})},[o("th",Pg,[o("span",null,c(n.instance),1),e.performanceWarning(n)?(l(),d("small",Vg,[...t[58]||(t[58]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1),b(" Needs attention",-1)])])):p("v-if",!0)]),o("td",qg,[b(c(e.humanBytes(n.memory.rss))+" / "+c(e.humanBytes(n.memoryLimitBytes)),1),o("small",null,"Peak "+c(e.humanBytes(e.peakRss(n))),1)]),o("td",Mg,c(n.cpuPercent.toFixed(1))+"%",1),o("td",$g,c(n.eventLoop.p95Ms.toFixed(1))+" ms",1),o("td",Lg,c(n.activeRequests),1),o("td",Ug,c(n.sockets?.descriptors??"Unavailable")+" / "+c(n.sockets?.closeWait??"Unavailable"),1),o("td",Fg,c(n.workers?.running??0)+" / "+c(n.workers?.waiting??0),1),o("td",zg,c(e.sampleAge(n))+" s",1),o("td",Hg,c(n.droppedBatches)+" / "+c(n.droppedMetrics),1)],2))),128))])])])):(l(),d("div",Ag,"No recent process samples. Monitoring coverage is incomplete."))],512),[[K,e.performanceTab==="processes"]]),D(o("div",Bg,[e.performance.stages?.some(n=>n.metric!=="first_byte")?(l(),d("div",jg,[o("table",Gg,[t[62]||(t[62]=o("caption",{class:"sr-only"},"Work stages and cache results",-1)),t[63]||(t[63]=o("thead",null,[o("tr",null,[o("th",{scope:"col"},"Work stage"),o("th",{scope:"col",class:"num"},"Samples"),o("th",{scope:"col",class:"num"},"Average"),o("th",{scope:"col",class:"num"},"p95")])],-1)),o("tbody",null,[(l(!0),d(X,null,ae(e.performance.stages.filter(n=>n.metric!=="first_byte"),n=>(l(),d("tr",{key:n.service+n.metric},[o("th",Wg,[o("span",null,c(n.metric),1),o("small",null,c(n.service),1)]),o("td",Kg,c(e.fmt.number(n.count)),1),o("td",Yg,c(e.formatMs(n.avgMs)),1),o("td",Jg,c(e.latencyBound(n,"p95UpperMs")),1)]))),128))])])])):(l(),d("p",Qg,"No recorded work stages or cache results in this time range yet."))],512),[[K,e.performanceTab==="stages"]]),t[64]||(t[64]=o("details",{class:"ov-performance-help"},[o("summary",null,"How to read these metrics"),o("p",null,"Latency includes upstream waits and response transfer. Percentiles show histogram bucket upper bounds, not exact timings. Process rows marked \u201CNeeds attention\u201D have stale samples, dropped monitoring data, CLOSE_WAIT sockets, high event loop delay, or high memory usage.")],-1))])):p("v-if",!0)])])}var Xg={class:"container paper-page admin-page"},Zg={class:"q-header"},xg={class:"q-header-actions"},eb={class:"q-range-btns"},tb={class:"q-cards"},ob=["aria-pressed","onKeydown","onClick"],sb={class:"q-card-head"},rb=["textContent"],ib=["textContent"],ab={class:"q-card-sub"},lb={key:0,class:"q-card-bar"},db={key:0,class:"q-detail"},ub={class:"q-throughput"},cb={class:"q-section-label"},pb={class:"q-section-right"},fb={class:"q-stats-panel"},mb={class:"q-section-label"},hb={class:"q-stats-grid"},vb={class:"q-stat"},yb=["textContent"],gb={class:"q-stat"},bb=["textContent"],wb={class:"q-stat"},kb=["textContent"],Eb={class:"q-stat"},Cb=["textContent"],_b={class:"q-stat"},Sb=["textContent"],Nb={class:"q-stat"},Db=["textContent"],Rb={class:"q-stats-actions"},Tb=["disabled"],Ab={class:"q-jobs"},Ob={class:"q-jobs-header"},Ib={class:"q-section-label"},Pb={class:"q-state-filters"},Vb={class:"q-state-toggle"},qb={type:"checkbox"},Mb={class:"q-search-row"},$b={type:"search",class:"form-control",placeholder:"Search by job/repo id\u2026",autocomplete:"off"},Lb={class:"q-auto-refresh"},Ub={type:"checkbox"},Fb={key:0,class:"q-table"},zb=["onClick"],Hb={class:"q-cell-state"},Bb=["textContent"],jb=["textContent"],Gb={class:"q-cell-id"},Wb=["textContent","href"],Kb={class:"q-cell-payload"},Yb=["textContent"],Jb={key:0,class:"q-payload-detail"},Qb=["textContent"],Xb=["textContent"],Zb={class:"q-cell-progress"},xb={key:0,class:"q-progress-wrap"},e1=["textContent"],t1={class:"q-cell-actions"},o1=["onClick"],n1=["onClick"],s1={key:0,class:"q-detail-row"},r1={colspan:"7"},i1={class:"q-job-detail"},a1={class:"q-job-detail-grid"},l1={class:"q-job-detail-item"},d1={class:"q-job-detail-value"},u1=["textContent","href"],c1={class:"q-job-detail-item"},p1={class:"q-job-detail-value"},f1=["textContent"],m1={key:0,class:"q-job-detail-item"},h1=["textContent"],v1={key:1,class:"q-job-detail-item"},y1=["textContent"],g1={key:2,class:"q-job-detail-item"},b1={class:"q-job-detail-value"},w1={key:3,class:"q-job-detail-item"},k1=["textContent"],E1={key:4,class:"q-job-detail-item"},C1=["textContent"],_1={key:5,class:"q-job-detail-item"},S1=["textContent"],N1={key:6,class:"q-job-detail-item"},D1=["textContent"],R1={key:7,class:"q-job-detail-item"},T1=["textContent"],A1={key:0,class:"q-job-detail-error"},O1=["textContent"],I1={key:1},P1=["textContent"],V1={class:"q-job-detail-actions"},q1=["onClick"],M1=["onClick"],$1=["href"],L1={key:1,class:"paper-table-empty",style:{border:"1px solid var(--border-color)","border-radius":"10px",background:"var(--paper-card)"}},U1={key:0},F1={key:1};function Sl(e,t){let n=be("field");return l(),d("div",Xg,[t[48]||(t[48]=o("div",{class:"paper-crumbs"},[b("Admin \xA0/\xA0 "),o("span",{class:"here"},"Queues")],-1)),o("div",Zg,[t[12]||(t[12]=o("h1",{class:"paper-page-title"},"Queues",-1)),o("div",xg,[o("div",eb,[o("button",{class:A(["btn btn-sm",{active:e.range=="1h"}]),onClick:t[0]||(t[0]=r=>e.setRange("1h"))},"1h",2),o("button",{class:A(["btn btn-sm",{active:e.range=="6h"}]),onClick:t[1]||(t[1]=r=>e.setRange("6h"))},"6h",2),o("button",{class:A(["btn btn-sm",{active:e.range=="24h"}]),onClick:t[2]||(t[2]=r=>e.setRange("24h"))},"24h",2),o("button",{class:A(["btn btn-sm",{active:e.range=="7d"}]),onClick:t[3]||(t[3]=r=>e.setRange("7d"))},"7d",2)]),o("button",{class:"btn btn-sm",onClick:t[4]||(t[4]=r=>e.pauseAll())},"Pause all"),o("button",{class:"btn btn-sm btn-danger-soft",onClick:t[5]||(t[5]=r=>e.drainSelected())},"Drain "+c(e.selectedQueue),1)])]),t[49]||(t[49]=pe(' Overview Repositories Users Conferences Queues Errors ',1)),p(" Queue overview cards "),o("div",tb,[(l(!0),d(X,null,ae(e.queueList,(r,s)=>(l(),d("div",{class:A(["q-card",{selected:e.selectedQueue==r?.key,paused:r?.paused}]),role:"button",tabindex:"0","aria-pressed":e.selectedQueue===r.key,onKeydown:[Ao(de(i=>e.selectQueue(r.key),["prevent"]),["enter"]),Ao(de(i=>e.selectQueue(r.key),["prevent"]),["space"])],onClick:i=>e.selectQueue(r.key)},[o("div",sb,[o("span",{class:A(["q-dot",{"q-dot-red":r?.paused||r?.counts?.failed>0}])},null,2),o("span",{class:"q-card-name",textContent:c(r?.label)},null,8,rb)]),o("div",{class:"q-card-count",textContent:c((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0))},null,8,ib),o("div",ab,[o("span",null,"waiting \xB7 "+c(r?.counts?.active||0)+" active",1),r?.counts?.active?(l(),d("div",lb,[o("div",{class:"q-card-bar-fill",style:qe({width:r?.counts?.active/((r?.counts?.waiting||0)+(r?.counts?.active||0)+(r?.counts?.delayed||0)||1)*100+"%"})},null,4)])):p("v-if",!0)])],42,ob))),256))]),p(" Detail: throughput chart + stats panel "),e.selectedStats?(l(),d("div",db,[o("div",ub,[o("div",cb,[b(c(e.selectedQueue)+" \xB7 throughput ",1),o("span",pb,[t[13]||(t[13]=o("span",{class:"q-legend-completed"},"\u25CF",-1)),t[14]||(t[14]=b(" completed ",-1)),t[15]||(t[15]=o("span",{class:"q-legend-failed"},"\u25CF",-1)),t[16]||(t[16]=b(" failed ",-1)),t[17]||(t[17]=o("span",{class:"q-legend-exec"},"- -",-1)),b(" avg time \xB7 "+c(e.range),1)])]),t[18]||(t[18]=o("div",{class:"q-chart-wrap"},[o("canvas",{id:"q-throughput-chart",height:"180"}),o("div",{id:"q-chart-tooltip",class:"q-chart-tooltip",style:{display:"none"}}),o("div",{id:"q-chart-crosshair",class:"q-chart-crosshair",style:{display:"none"}})],-1))]),o("div",fb,[o("div",mb,c(e.selectedQueue)+" \xB7 stats",1),o("div",hb,[o("div",vb,[t[19]||(t[19]=o("div",{class:"q-stat-label"},"Waiting",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.waiting||0)},null,8,yb)]),o("div",gb,[t[20]||(t[20]=o("div",{class:"q-stat-label"},"Active",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.active||0)},null,8,bb)]),o("div",wb,[t[21]||(t[21]=o("div",{class:"q-stat-label"},"Completed (24h)",-1)),o("div",{class:"q-stat-value",textContent:c(e.fmt?.number(e.selectedStats?.completed24h))},null,8,kb)]),o("div",Eb,[t[22]||(t[22]=o("div",{class:"q-stat-label"},"Failed (24h)",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.failed24h||0)},null,8,Cb)]),o("div",_b,[t[23]||(t[23]=o("div",{class:"q-stat-label"},"Delayed",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.counts?.delayed||0)},null,8,Sb)]),o("div",Nb,[t[24]||(t[24]=o("div",{class:"q-stat-label"},"Workers",-1)),o("div",{class:"q-stat-value",textContent:c(e.selectedStats?.workers||0)},null,8,Db)])]),o("div",Rb,[o("button",{class:"btn btn-sm",onClick:t[6]||(t[6]=r=>e.togglePause())},c(e.selectedStats?.paused?"Resume":"Pause"),1),o("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=r=>e.retryFailed()),disabled:!e.selectedStats?.counts?.failed},"Retry failed",8,Tb),o("button",{class:"btn btn-sm",onClick:t[8]||(t[8]=r=>e.emptyQueue())},"Empty")])])])):p("v-if",!0),e.actionError?(l(),d("div",{key:1,class:"q-toast-error",onClick:t[9]||(t[9]=r=>e.actionError=null)},[t[25]||(t[25]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})],-1)),b(" "+c(e.actionError),1)])):p("v-if",!0),p(" Jobs table "),o("div",Ab,[o("div",Ob,[o("div",Ib,"All jobs \xB7 "+c(e.selectedQueue),1),o("div",Pb,[(l(!0),d(X,null,ae(e.allStates,(r,s)=>(l(),d("label",Vb,[D(o("input",qb,null,512),[[n,{state:e.viewState,set:i=>{e.stateFilter[r]=i},value:e.stateFilter[r],form:null,options:{}}]]),o("span",{class:A("q-state-chip q-state-"+r)},c(r),3)]))),256))])]),o("div",Mb,[D(o("input",$b,null,512),[[n,{state:e.viewState,set:r=>{e.query.search=r},value:e.query?.search,form:null,options:{}}]]),o("label",Lb,[D(o("input",Ub,null,512),[[n,{state:e.viewState,set:r=>{e.query.autoRefresh=r},value:e.query?.autoRefresh,form:null,options:{}}]]),t[26]||(t[26]=b(" Auto-refresh ",-1))]),o("button",{class:"btn btn-sm btn-icon",type:"button",title:"Refresh now",onClick:t[10]||(t[10]=r=>e.refreshNow()),"aria-label":"Refresh"},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])])]),e.filteredJobs().length>0?(l(),d("table",Fb,[t[46]||(t[46]=o("thead",null,[o("tr",null,[o("th",null,"State"),o("th",null,"Job id"),o("th",null,"Payload"),o("th",null,"Attempts"),o("th",null,"Duration"),o("th",null,"Progress"),o("th")])],-1)),(l(!0),d(X,null,ae(e.filteredJobs(),(r,s)=>(l(),d("tbody",null,[o("tr",{style:{cursor:"pointer"},class:A({"q-row-failed":r?._state=="failed","q-row-expanded":e.expanded[r?.id]}),onClick:i=>e.toggleJob(r)},[o("td",Hb,[o("span",{textContent:c(r?._state),class:A("q-state-badge q-state-"+r?._state)},null,10,Bb),r?._state=="delayed"&&r?.delayUntil?(l(),d("span",{key:0,class:"q-delay-hint",textContent:c(e.delayCountdown(r?.delayUntil))},null,8,jb)):p("v-if",!0)]),o("td",Gb,[(l(),d("svg",{class:A(["ui-icon q-chevron",{"q-chevron-open":e.expanded[r?.id]}]),"aria-hidden":"true"},[...t[28]||(t[28]=[o("use",{href:"#ui-icon-chevron-right"},null,-1)])],2)),o("a",{target:"_blank",textContent:c("job:"+e.fmt.limitTo(r?.id,6)),onClick:t[11]||(t[11]=i=>i.stopPropagation()),href:e.safeUrl("/r/"+r?.id)},null,8,Wb)]),o("td",Kb,[o("span",{textContent:c(r?.name||"anonymize")},null,8,Yb),r?.data?.repoId&&r?.data?.repoId!==r?.name?(l(),d("span",Jb," \xB7 "+c(r?.data?.repoId),1)):p("v-if",!0)]),o("td",{class:"q-cell-num",textContent:c(r?.attemptsMade||1)},null,8,Qb),o("td",{class:"q-cell-num",textContent:c(e.jobDuration(r))},null,8,Xb),o("td",Zb,[e.jobProgressPct(r)!==null?(l(),d("div",xb,[o("div",{class:"q-progress-bar",style:qe({"--pct":e.jobProgressPct(r)+"%"})},null,4),o("span",{class:"q-progress-label",textContent:c(e.jobProgressPct(r)+"%")},null,8,e1)])):p("v-if",!0)]),o("td",t1,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm btn-icon",title:"Retry",onClick:i=>{e.retryJob(r),i.stopPropagation()},"aria-label":"Retry job"},[...t[29]||(t[29]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])],8,o1)):p("v-if",!0),o("button",{class:"btn btn-sm btn-icon",title:"Remove","aria-label":"Remove job",onClick:i=>{e.removeJob(r),i.stopPropagation()}},[...t[30]||(t[30]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1)])],8,n1)])],10,zb),e.expanded[r?.id]?(l(),d("tr",s1,[o("td",r1,[o("div",i1,[o("div",a1,[o("div",l1,[t[31]||(t[31]=o("span",{class:"q-job-detail-label"},"Job id",-1)),o("span",d1,[o("a",{target:"_blank",textContent:c(r?.id),href:e.safeUrl("/r/"+r?.id)},null,8,u1)])]),o("div",c1,[t[32]||(t[32]=o("span",{class:"q-job-detail-label"},"State",-1)),o("span",p1,[o("span",{textContent:c(r?._state),class:A("q-state-badge q-state-"+r?._state)},null,10,f1)])]),r?.data?.repoId?(l(),d("div",m1,[t[33]||(t[33]=o("span",{class:"q-job-detail-label"},"Repo ID",-1)),o("span",{class:"q-job-detail-value",textContent:c(r?.data?.repoId)},null,8,h1)])):p("v-if",!0),r?.timestamp?(l(),d("div",v1,[t[34]||(t[34]=o("span",{class:"q-job-detail-label"},"Created",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.timestamp))},null,8,y1)])):p("v-if",!0),r?._state=="delayed"&&r?.delayUntil?(l(),d("div",g1,[t[35]||(t[35]=o("span",{class:"q-job-detail-label"},"Retry at",-1)),o("span",b1,c(e.humanTime(r?.delayUntil))+" ("+c(e.delayCountdown(r?.delayUntil))+")",1)])):p("v-if",!0),r?.processedOn?(l(),d("div",w1,[t[36]||(t[36]=o("span",{class:"q-job-detail-label"},"Processed",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.processedOn))},null,8,k1)])):p("v-if",!0),r?.finishedOn?(l(),d("div",E1,[t[37]||(t[37]=o("span",{class:"q-job-detail-label"},"Finished",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.humanTime(r?.finishedOn))},null,8,C1)])):p("v-if",!0),r?.attemptsMade?(l(),d("div",_1,[t[38]||(t[38]=o("span",{class:"q-job-detail-label"},"Attempts",-1)),o("span",{class:"q-job-detail-value",textContent:c(r?.attemptsMade)},null,8,S1)])):p("v-if",!0),r?.progress&&r?.progress?.status?(l(),d("div",N1,[t[39]||(t[39]=o("span",{class:"q-job-detail-label"},"Status",-1)),o("span",{class:"q-job-detail-value",textContent:c(r?.progress?.status)},null,8,D1)])):p("v-if",!0),e.jobProgressPct(r)!==null?(l(),d("div",R1,[t[40]||(t[40]=o("span",{class:"q-job-detail-label"},"Progress",-1)),o("span",{class:"q-job-detail-value",textContent:c(e.jobProgressPct(r)+"%")},null,8,T1)])):p("v-if",!0)]),r?.failedReason?(l(),d("div",A1,[t[41]||(t[41]=o("span",{class:"q-job-detail-label"},"Error",-1)),o("div",{class:"q-error-reason",textContent:c(r?.failedReason)},null,8,O1)])):p("v-if",!0),r?.stacktrace?.length?(l(),d("div",I1,[t[42]||(t[42]=o("span",{class:"q-job-detail-label"},"Stacktrace",-1)),(l(!0),d(X,null,ae(r?.stacktrace,(i,a)=>(l(),d("pre",{class:"q-error-stack",key:a},[o("code",{textContent:c(i)},null,8,P1)]))),128))])):p("v-if",!0),o("div",V1,[r?._state=="failed"?(l(),d("button",{key:0,class:"btn btn-sm",onClick:i=>e.retryJob(r)},[...t[43]||(t[43]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Retry",-1)])],8,q1)):p("v-if",!0),o("button",{class:"btn btn-sm",onClick:i=>e.removeJob(r)},[...t[44]||(t[44]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,M1),o("a",{class:"btn btn-sm",target:"_blank",href:e.safeUrl("/r/"+r?.id)},[...t[45]||(t[45]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1),b(" View repo",-1)])],8,$1)])])])])):p("v-if",!0)]))),256))])):p("v-if",!0),e.filteredJobs().length==0?(l(),d("div",L1,[t[47]||(t[47]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1)),e.query?.search?p("v-if",!0):(l(),d("span",U1,"No jobs in the "+c(e.selectedQueue)+" queue.",1)),e.query?.search?(l(),d("span",F1,"No jobs match the current filters.")):p("v-if",!0)])):p("v-if",!0)])])}var z1={class:"container paper-page admin-page"},H1={class:"admin-summary"},B1={class:"summary-total"},j1={class:"summary-meta"},G1=["aria-pressed"],W1={class:"count"},K1=["aria-pressed"],Y1={class:"count"},J1=["aria-pressed"],Q1={class:"count"},X1=["aria-pressed"],Z1={class:"count"},x1=["aria-pressed"],ew={class:"count"},tw={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},ow={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},nw={class:"admin-filter-row"},sw={class:"search-wrap"},rw={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},iw={key:0,class:"admin-search-hint"},aw={class:"admin-filter-inline"},lw={type:"text",class:"form-control form-control-sm",placeholder:"username"},dw={class:"admin-filter-inline"},uw={type:"text",class:"form-control form-control-sm",placeholder:"ID"},cw={class:"admin-filter-inline","aria-label":"Pagination"},pw=["disabled"],fw={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},mw=["disabled"],hw={key:0,class:"admin-filter-row"},vw={class:"admin-active-chips"},yw={class:"key"},gw=["onClick"],bw={key:1,class:"bulk-bar"},ww={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},kw={class:"paper-table-head",role:"row"},Ew={role:"columnheader",style:{width:"28px"}},Cw=["checked"],_w={role:"columnheader"},Sw={role:"columnheader"},Nw={role:"columnheader",class:"num"},Dw={role:"columnheader"},Rw={role:"cell",style:{width:"28px"}},Tw={type:"checkbox","aria-label":"Select repository"},Aw={class:"cell-anon",role:"cell"},Ow={class:"anon-text"},Iw=["textContent","href"],Pw={class:"anon-sub"},Vw=["textContent","href"],qw={key:0},Mw=["textContent","href"],$w={key:1},Lw=["textContent","href"],Uw={key:2},Fw={class:"cell-status",role:"cell"},zw={class:"status-line"},Hw=["textContent"],Bw=["textContent","title"],jw={class:"cell-views num",role:"cell"},Gw=["textContent"],Ww={class:"cell-expires",role:"cell"},Kw=["textContent"],Yw={class:"cell-actions",role:"cell"},Jw={class:"dropdown"},Qw={class:"dropdown-menu dropdown-menu-right"},Xw=["href"],Zw=["href"],xw=["href"],ek=["onClick"],tk=["onClick"],ok=["onClick"],nk=["onClick"],sk=["onClick"],rk=["onClick"],ik={key:0,class:"paper-table-empty"},ak={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},lk={style:{"font-size":"12px",color:"var(--ink-muted)"}},dk={key:0,class:"pagination-compact"},uk=["disabled"],ck=["max"],pk=["disabled"],fk={class:"admin-filter-inline"},mk={class:"form-control form-control-sm"};function Nl(e,t){let n=be("field"),r=be("form");return l(),d("div",z1,[t[69]||(t[69]=pe('Admin \xA0/\xA0 Repositories
Repositories Overview Repositories Users Conferences Queues Errors ',3)),o("div",H1,[o("span",B1,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),o("span",j1,c(e.fmt?.humanFileSize(e.totalSize))+" on disk",1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.query?.ready}]),title:"Toggle ready filter",onClick:t[0]||(t[0]=s=>{e.query.ready=!e.query.ready,e.query.page=1}),"aria-pressed":!!e.query?.ready},[t[18]||(t[18]=b("Ready ",-1)),o("span",W1,c(e.fmt?.number(e.statusCountFor("ready"))),1)],10,G1),o("button",{type:"button",class:A(["summary-pill warn",{active:e.query?.preparing}]),title:"Toggle preparing filter",onClick:t[1]||(t[1]=s=>{e.query.preparing=!e.query.preparing,e.query.page=1}),"aria-pressed":!!e.query?.preparing},[t[19]||(t[19]=b("Preparing ",-1)),o("span",Y1,c(e.fmt?.number(e.statusCountFor("preparing")+e.statusCountFor("download"))),1)],10,K1),o("button",{type:"button",class:A(["summary-pill error",{active:e.query?.error}]),title:"Toggle errored filter",onClick:t[2]||(t[2]=s=>{e.query.error=!e.query.error,e.query.page=1}),"aria-pressed":!!e.query?.error},[t[20]||(t[20]=b("Errored ",-1)),o("span",Q1,c(e.fmt?.number(e.statusCountFor("error"))),1)],10,J1),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.expired}]),title:"Toggle expired filter",onClick:t[3]||(t[3]=s=>{e.query.expired=!e.query.expired,e.query.page=1}),"aria-pressed":!!e.query?.expired},[t[21]||(t[21]=b("Expired ",-1)),o("span",Z1,c(e.fmt?.number(e.statusCountFor("expired")+e.statusCountFor("expiring"))),1)],10,X1),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.removed}]),title:"Toggle removed filter",onClick:t[4]||(t[4]=s=>{e.query.removed=!e.query.removed,e.query.page=1}),"aria-pressed":!!e.query?.removed},[t[22]||(t[22]=b("Removed ",-1)),o("span",ew,c(e.fmt?.number(e.statusCountFor("removed")+e.statusCountFor("removing"))),1)],10,x1)]),e.fetchError?(l(),d("div",tw,[t[23]||(t[23]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",ow,[p(" Row 1: search + scoped inputs + headline actions "),o("div",nw,[o("div",sw,[D(o("input",rw,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",iw,"/"))]),o("span",aw,[t[24]||(t[24]=o("label",null,"Owner",-1)),D(o("input",lw,null,512),[[n,{state:e.viewState,set:s=>{e.query.owner=s},value:e.query?.owner,form:null,options:{}}]])]),o("span",dw,[t[25]||(t[25]=o("label",null,"Conference",-1)),D(o("input",uw,null,512),[[n,{state:e.viewState,set:s=>{e.query.conference=s},value:e.query?.conference,form:null,options:{}}]])]),t[29]||(t[29]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[5]||(t[5]=s=>e.exportCsv())},[...t[26]||(t[26]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])]),o("span",cw,[o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[6]||(t[6]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1)])],8,pw),o("span",fw,c(e.query?.page)+"/"+c(e.totalPage||1),1),o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[7]||(t[7]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[28]||(t[28]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,mw)])]),p(" Row 2: appears only when there are active filter chips "),e.chips?.length?(l(),d("div",hw,[o("div",vw,[(l(!0),d(X,null,ae(e.chips,(s,i)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[o("span",yw,c(s?.label),1),o("span",null,c(s?.value),1),o("button",{type:"button","aria-label":"Remove filter",onClick:a=>e.clearFilter(s.key)},[...t[30]||(t[30]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,gw)]))),128))])])):p("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",bw,[o("span",null,[o("strong",null,c(e.selectedCount()),1),t[31]||(t[31]=b(" selected",-1))]),o("button",{class:"btn btn-sm",type:"button",onClick:t[8]||(t[8]=s=>e.bulkRefresh())},[...t[32]||(t[32]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force refresh",-1)])]),o("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[9]||(t[9]=s=>e.bulkRemoveCache())},[...t[33]||(t[33]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])]),o("button",{class:"btn btn-sm",type:"button",onClick:t[10]||(t[10]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),o("div",ww,[o("div",kw,[o("div",Ew,[o("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[11]||(t[11]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,Cw)]),o("div",_w,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[12]||(t[12]=s=>e.sortBy("source.repositoryName"))},[t[35]||(t[35]=b("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[34]||(t[34]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",Sw,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[13]||(t[13]=s=>e.sortBy("status"))},[t[37]||(t[37]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[36]||(t[36]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",Nw,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[14]||(t[14]=s=>e.sortBy("pageView"))},[t[39]||(t[39]=b("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[38]||(t[38]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",Dw,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[15]||(t[15]=s=>e.sortBy("anonymizeDate"))},[t[41]||(t[41]=b("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[40]||(t[40]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[42]||(t[42]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredRepositories,(s,i)=>(l(),d("div",{class:A(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[o("div",Rw,[D(o("input",Tw,null,512),[[n,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),o("div",Aw,[t[47]||(t[47]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",Ow,[o("a",{class:"repo-name",target:"_blank",textContent:c(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,Iw),o("div",Pw,[o("a",{textContent:c(s?.source?.repositoryName),href:e.safeUrl("https://github.com/"+s?.source?.repositoryName+"/")},null,8,Vw),s?.options?.update?(l(),d("span",qw,[t[43]||(t[43]=b("\xA0\xB7\xA0",-1)),o("a",{textContent:c(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,Mw)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",$w,[t[44]||(t[44]=b("\xA0\xB7\xA0@",-1)),o("a",{textContent:c(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,Lw)])),s?.conference?(l(),d("span",Uw,[t[45]||(t[45]=b("\xA0\xB7\xA0",-1)),t[46]||(t[46]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),b(" "+c(s?.conference),1)])):p("v-if",!0),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(s?.size?.storage)),1),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(s?.options?.terms?.length))+" "+c(s?.options?.terms?.length===1?"term":"terms"),1)])])]),o("div",Fw,[o("span",zw,[o("span",{class:A(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,Hw)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,Bw)):p("v-if",!0)]),o("div",jw,[t[48]||(t[48]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),t[49]||(t[49]=b()),o("span",{textContent:c(e.fmt?.number(s?.pageView||0))},null,8,Gw)]),o("div",Ww,[t[50]||(t[50]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),t[51]||(t[51]=b()),o("span",{textContent:c(e.fmt?.humanTime(s?.anonymizeDate))},null,8,Kw)]),o("div",Yw,[o("div",Jw,[t[63]||(t[63]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",Qw,[o("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[52]||(t[52]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit",-1)])],8,Xw),o("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[53]||(t[53]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View repo",-1)])],8,Zw),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[54]||(t[54]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),b(" View page",-1)])],8,xw)):p("v-if",!0),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[55]||(t[55]=[o("i",{class:"fab fa-github"},null,-1),b(" Live GitHub info",-1)])],8,ek),t[61]||(t[61]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[56]||(t[56]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force update",-1)])],8,tk),[[K,s?.status=="ready"||s?.status=="error"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[57]||(t[57]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Enable",-1)])],8,ok),[[K,s?.status=="removed"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[58]||(t[58]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1),b(" View status message",-1)])],8,nk),[[K,s?.statusMessage]]),t[62]||(t[62]=o("div",{class:"dropdown-divider"},null,-1)),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[59]||(t[59]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])],8,sk),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[60]||(t[60]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,rk),[[K,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",ik,[...t[64]||(t[64]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)]),o("div",ak,[o("span",lk,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",dk,[o("button",{class:"btn btn-sm",onClick:t[16]||(t[16]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[65]||(t[65]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1),b(" Previous ",-1)])],8,uk),D(o("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},"aria-label":"Page",max:e.totalPage},null,8,ck),[[n,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),o("span",null,"of "+c(e.totalPage),1),o("button",{class:"btn btn-sm",onClick:t[17]||(t[17]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[66]||(t[66]=[b(" Next ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,pk)])):p("v-if",!0),o("span",fk,[t[68]||(t[68]=o("label",null,"Per page",-1)),D((l(),d("select",mk,[...t[67]||(t[67]=[pe('10 25 50 100 250 ',5)])])),[[n,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var hk={class:"container paper-page admin-page"},vk={class:"paper-crumbs"},yk={class:"here"},gk={class:"paper-page-title"},bk={key:0,class:"user-detail-card"},wk={class:"user-header"},kk=["src"],Ek={class:"status-dot-wrap"},Ck=["textContent"],_k={key:0,class:"type-badge type-repo"},Sk={class:"user-actions",style:{"margin-top":"4px"}},Nk={class:"user-detail-grid"},Dk={class:"detail-value"},Rk={class:"detail-value"},Tk={key:0,class:"detail-value",style:{"font-family":"var(--font-mono)","font-size":"0.85rem"}},Ak={key:1,class:"detail-value text-muted"},Ok={class:"detail-value"},Ik=["href"],Pk={class:"detail-value"},Vk={class:"detail-value"},qk={key:0},Mk={key:1,class:"text-muted"},$k={class:"detail-value"},Lk={key:0,style:{"margin-top":"20px"}},Uk={class:"paper-table w-100",style:{"margin-top":"10px"}},Fk={class:"paper-table-row",style:{"grid-template-columns":"1fr 160px"}},zk={class:"cell-anon",role:"cell"},Hk={class:"anon-text"},Bk=["textContent"],jk={class:"cell-expires",role:"cell"},Gk={key:1,class:"admin-section-header"},Wk={class:"section-count"},Kk={key:2,class:"user-detail-card"},Yk={type:"text",class:"form-control",placeholder:"Token name (e.g. dev-laptop)",required:""},Jk={key:0,class:"alert alert-warning",role:"alert"},Qk={style:{"white-space":"pre-wrap","word-break":"break-all",margin:"8px 0 0","font-family":"var(--font-mono)","font-size":"0.85rem"}},Xk={key:1,class:"paper-table w-100"},Zk={class:"paper-table-row",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},xk=["textContent"],e0=["textContent"],t0={role:"cell"},o0={key:0},n0={key:1,class:"text-muted"},s0={role:"cell"},r0=["onClick"],i0={key:2,class:"paper-table-empty"},a0={class:"admin-section-header"},l0={class:"section-count"},d0={class:"admin-summary"},u0={class:"summary-total"},c0=["aria-pressed"],p0={class:"count"},f0=["aria-pressed"],m0={class:"count"},h0=["aria-pressed"],v0={class:"count"},y0=["aria-pressed"],g0={class:"count"},b0=["aria-pressed"],w0={class:"count"},k0={class:"w-100 admin-filter-toolbar","aria-label":"Repositories","accept-charset":"UTF-8"},E0={class:"admin-filter-row"},C0={class:"search-wrap"},_0={type:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search repoId, source repo, error message\u2026",autocomplete:"off"},S0={key:3,class:"bulk-bar"},N0={class:"paper-table paper-table-repos has-bulk w-100",role:"table","aria-label":"Repositories"},D0={class:"paper-table-head",role:"row"},R0={role:"columnheader",style:{width:"28px"}},T0=["checked"],A0={role:"columnheader"},O0={role:"columnheader"},I0={role:"columnheader",class:"num"},P0={role:"columnheader"},V0={role:"cell",style:{width:"28px"}},q0={type:"checkbox","aria-label":"Select repository"},M0={class:"cell-anon",role:"cell"},$0={class:"anon-text"},L0=["textContent","href"],U0={class:"anon-sub"},F0=["textContent","href"],z0={key:0},H0=["textContent","href"],B0={key:1},j0=["textContent","href"],G0={key:2},W0={class:"cell-status",role:"cell"},K0={class:"status-line"},Y0=["textContent"],J0=["textContent","title"],Q0=["textContent"],X0=["textContent"],Z0={class:"cell-actions",role:"cell"},x0={class:"dropdown"},eE={class:"dropdown-menu dropdown-menu-right"},tE=["href"],oE=["href"],nE=["href"],sE=["onClick"],rE=["onClick"],iE=["onClick"],aE=["onClick"],lE=["onClick"],dE=["onClick"],uE={key:0,class:"paper-table-empty"};function Dl(e,t){let n=be("field"),r=be("form");return l(),d("div",hk,[o("div",vk,[t[22]||(t[22]=o("a",{href:"/admin/"},"Admin",-1)),t[23]||(t[23]=b(" \xA0/\xA0 ",-1)),t[24]||(t[24]=o("a",{href:"/admin/users"},"Users",-1)),t[25]||(t[25]=b(" \xA0/\xA0 ",-1)),o("span",yk,c(e.userInfo?.username||"Profile"),1)]),o("h1",gk,c(e.userInfo?.username||"User"),1),t[87]||(t[87]=pe(' Overview Repositories Users Conferences Queues Errors ',1)),e.userInfo?(l(),d("div",bk,[o("div",wk,[e.userInfo?.photo?(l(),d("img",{key:0,width:"56",height:"56",src:e.safeUrl(e.userInfo?.photo)},null,8,kk)):p("v-if",!0),o("div",null,[o("h2",null,[b(c(e.userInfo?.username)+" ",1),o("span",Ek,[o("span",{class:A(["status-dot",{"status-ready":e.userInfo?.status=="active","status-removed":e.userInfo?.status!="active"}])},null,2),o("span",{textContent:c(e.fmt?.title(e.userInfo?.status))},null,8,Ck)]),e.userInfo?.isAdmin?(l(),d("span",_k,"Admin")):p("v-if",!0)]),o("div",Sk,[e.userInfo?.status!=="banned"?(l(),d("button",{key:0,class:"btn btn-sm text-danger",onClick:t[0]||(t[0]=s=>e.banUser())},[...t[26]||(t[26]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-ban"})],-1),b(" Ban",-1)])])):p("v-if",!0),e.userInfo?.status==="banned"||e.userInfo?.status==="removed"?(l(),d("button",{key:1,class:"btn btn-sm",onClick:t[1]||(t[1]=s=>e.activateUser())},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Activate",-1)])])):p("v-if",!0),e.userInfo?.isAdmin?p("v-if",!0):(l(),d("button",{key:2,class:"btn btn-sm",onClick:t[2]||(t[2]=s=>e.promoteUser())},[...t[28]||(t[28]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user-shield"})],-1),b(" Promote to admin",-1)])])),e.userInfo?.isAdmin?(l(),d("button",{key:3,class:"btn btn-sm text-danger",onClick:t[3]||(t[3]=s=>e.demoteUser())},[...t[29]||(t[29]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user-minus"})],-1),b(" Remove admin",-1)])])):p("v-if",!0)])])]),o("div",Nk,[t[32]||(t[32]=o("div",{class:"detail-label"},"ID",-1)),o("div",Dk,c(e.userInfo?._id),1),t[33]||(t[33]=o("div",{class:"detail-label"},"Email",-1)),o("div",Rk,c(e.userInfo?.emails?.[0]?.email),1),t[34]||(t[34]=o("div",{class:"detail-label"},"Access token",-1)),e.userInfo?.accessTokens?.github?(l(),d("div",Tk,c(e.userInfo?.accessTokens?.github),1)):p("v-if",!0),e.userInfo?.accessTokens?.github?p("v-if",!0):(l(),d("div",Ak,"None stored")),t[35]||(t[35]=o("div",{class:"detail-label"},"GitHub",-1)),o("div",Ok,[o("a",{target:"_blank",href:e.safeUrl("https://github.com/"+e.userInfo?.username)},[t[30]||(t[30]=o("i",{class:"fab fa-github"},null,-1)),b(" "+c(e.userInfo?.username),1)],8,Ik)]),t[36]||(t[36]=o("div",{class:"detail-label"},"Created",-1)),o("div",Pk,c(e.fmt?.humanTime(e.userInfo?.dateOfEntry)),1),t[37]||(t[37]=o("div",{class:"detail-label"},"Last connection",-1)),o("div",Vk,[e.userInfo?.accessTokenDates?.github?(l(),d("span",qk,c(e.fmt?.humanTime(e.userInfo?.accessTokenDates?.github)),1)):p("v-if",!0),e.userInfo?.accessTokenDates?.github?p("v-if",!0):(l(),d("span",Mk,"never"))]),t[38]||(t[38]=o("div",{class:"detail-label"},"GitHub repos",-1)),o("div",$k,[b(c(e.userInfo?.repositories?.length)+" repositories ",1),o("button",{class:"btn btn-sm ml-2",onClick:t[4]||(t[4]=s=>e.showRepos=!e.showRepos)},c(e.showRepos?"Hide":"Show"),1),o("button",{class:"btn btn-sm ml-1",onClick:t[5]||(t[5]=s=>e.getGitHubRepositories())},[...t[31]||(t[31]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Refresh ",-1)])])])]),e.showRepos?(l(),d("div",Lk,[t[41]||(t[41]=o("div",{class:"paper-section-eyebrow"},"GitHub repositories",-1)),o("div",Uk,[(l(!0),d(X,null,ae(e.userInfo?.repositories,(s,i)=>(l(),d("div",Fk,[o("div",zk,[t[39]||(t[39]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",Hk,[o("span",{class:"repo-name",textContent:c(s?.name)},null,8,Bk)])]),o("div",jk,[t[40]||(t[40]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-database"})],-1)),b(" "+c(e.fmt?.humanFileSize(s?.size)),1)])]))),256))])])):p("v-if",!0)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",Gk,[t[42]||(t[42]=o("h2",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-key"})]),b(" API tokens")],-1)),o("span",Wk,c(e.tokens?.length),1)])):p("v-if",!0),e.userInfo&&e.userInfo?.isAdmin&&e.user&&e.user?.username==e.userInfo?.username?(l(),d("div",Kk,[t[48]||(t[48]=o("p",{class:"paper-page-lede"},[b("Personal API tokens for this admin account. Send as "),o("code",null,"Authorization: Bearer "),b(" to authenticate without GitHub OAuth (useful for development).")],-1)),D((l(),d("form",{class:"d-flex",style:{gap:"8px","margin-bottom":"12px"},onSubmit:t[6]||(t[6]=de(s=>e.submitForm(s,()=>{e.createToken()}),["prevent"]))},[D(o("input",Yk,null,512),[[n,{state:e.viewState,set:s=>{e.tokenForm.name=s},value:e.tokenForm?.name,form:null,options:{}}]]),t[43]||(t[43]=o("button",{type:"submit",class:"btn btn-ink"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-plus"})]),b(" Generate")],-1))],32)),[[r,e.viewState]]),e.tokenForm?.plaintext?(l(),d("div",Jk,[t[44]||(t[44]=o("strong",null,"Copy this token now \u2014 it will not be shown again:",-1)),o("pre",Qk,c(e.tokenForm?.plaintext),1),o("button",{class:"btn btn-sm",onClick:t[7]||(t[7]=s=>e.tokenForm.plaintext=null)},"Dismiss")])):p("v-if",!0),e.tokens?.length?(l(),d("div",Xk,[t[46]||(t[46]=o("div",{class:"paper-table-head",role:"row",style:{"grid-template-columns":"1fr 200px 200px 80px"}},[o("div",{role:"columnheader"},"Name"),o("div",{role:"columnheader"},"Created"),o("div",{role:"columnheader"},"Last used"),o("div",{role:"columnheader","aria-label":"Actions"})],-1)),(l(!0),d(X,null,ae(e.tokens,(s,i)=>(l(),d("div",Zk,[o("div",{role:"cell",textContent:c(s?.name)},null,8,xk),o("div",{role:"cell",textContent:c(e.fmt?.humanTime(s?.createdAt))},null,8,e0),o("div",t0,[s?.lastUsedAt?(l(),d("span",o0,c(e.fmt?.humanTime(s?.lastUsedAt)),1)):p("v-if",!0),s?.lastUsedAt?p("v-if",!0):(l(),d("span",n0,"never"))]),o("div",s0,[o("button",{class:"btn btn-sm text-danger btn-icon",title:"Revoke","aria-label":"Revoke token",onClick:a=>e.revokeToken(s)},[...t[45]||(t[45]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1)])],8,r0)])]))),256))])):p("v-if",!0),e.tokens?.length?p("v-if",!0):(l(),d("div",i0,[...t[47]||(t[47]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No tokens yet.",-1)])]))])):p("v-if",!0),o("div",a0,[t[49]||(t[49]=o("h2",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})]),b(" Anonymized repositories")],-1)),o("span",l0,c(e.repositories?.length),1)]),o("div",d0,[o("span",u0,c(e.fmt?.number(e.repositories?.length)),1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.filters?.status?.ready===!1}]),title:"Toggle ready filter",onClick:t[8]||(t[8]=s=>e.filters.status.ready=!e.filters.status.ready),"aria-pressed":e.filters?.status?.ready===!1},[t[50]||(t[50]=b("Ready ",-1)),o("span",p0,c(e.fmt?.number(e.statusCountFor("ready"))),1)],10,c0),o("button",{type:"button",class:A(["summary-pill warn",{active:e.filters?.status?.preparing===!1}]),title:"Toggle preparing filter",onClick:t[9]||(t[9]=s=>e.filters.status.preparing=!e.filters.status.preparing),"aria-pressed":e.filters?.status?.preparing===!1},[t[51]||(t[51]=b("Preparing ",-1)),o("span",m0,c(e.fmt?.number(e.statusCountFor("preparing"))),1)],10,f0),o("button",{type:"button",class:A(["summary-pill error",{active:e.filters?.status?.error===!1}]),title:"Toggle errored filter",onClick:t[10]||(t[10]=s=>e.filters.status.error=!e.filters.status.error),"aria-pressed":e.filters?.status?.error===!1},[t[52]||(t[52]=b("Errored ",-1)),o("span",v0,c(e.fmt?.number(e.statusCountFor("error"))),1)],10,h0),o("button",{type:"button",class:A(["summary-pill",{active:e.filters?.status?.expired===!1}]),title:"Toggle expired filter",onClick:t[11]||(t[11]=s=>e.filters.status.expired=!e.filters.status.expired),"aria-pressed":e.filters?.status?.expired===!1},[t[53]||(t[53]=b("Expired ",-1)),o("span",g0,c(e.fmt?.number(e.statusCountFor("expired"))),1)],10,y0),o("button",{type:"button",class:A(["summary-pill",{active:e.filters?.status?.removed===!1}]),title:"Toggle removed filter",onClick:t[12]||(t[12]=s=>e.filters.status.removed=!e.filters.status.removed),"aria-pressed":e.filters?.status?.removed===!1},[t[54]||(t[54]=b("Removed ",-1)),o("span",w0,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,b0)]),D((l(),d("form",k0,[o("div",E0,[o("div",C0,[D(o("input",_0,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),t[56]||(t[56]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",title:"Export current view to CSV",onClick:t[13]||(t[13]=s=>e.exportCsv())},[...t[55]||(t[55]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])])])])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",S0,[o("span",null,[o("strong",null,c(e.selectedCount()),1),t[57]||(t[57]=b(" selected",-1))]),o("button",{class:"btn btn-sm",type:"button",onClick:t[14]||(t[14]=s=>e.bulkRefresh())},[...t[58]||(t[58]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force refresh",-1)])]),o("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[15]||(t[15]=s=>e.bulkRemoveCache())},[...t[59]||(t[59]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])]),o("button",{class:"btn btn-sm",type:"button",onClick:t[16]||(t[16]=s=>e.clearSelection())},"Clear")])):p("v-if",!0),o("div",N0,[o("div",D0,[o("div",R0,[o("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[17]||(t[17]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,T0)]),o("div",A0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="source.repositoryName"}]),onClick:t[18]||(t[18]=s=>e.sortBy("source.repositoryName"))},[t[61]||(t[61]=b("Repository ",-1)),e.sortIcon("source.repositoryName")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("source.repositoryName")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[60]||(t[60]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",O0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[19]||(t[19]=s=>e.sortBy("status"))},[t[63]||(t[63]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[62]||(t[62]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",I0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="pageView"}]),onClick:t[20]||(t[20]=s=>e.sortBy("pageView"))},[t[65]||(t[65]=b("Views ",-1)),e.sortIcon("pageView")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("pageView")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[64]||(t[64]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),o("div",P0,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="anonymizeDate"}]),onClick:t[21]||(t[21]=s=>e.sortBy("anonymizeDate"))},[t[67]||(t[67]=b("Anonymized ",-1)),e.sortIcon("anonymizeDate")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("anonymizeDate")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[66]||(t[66]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[68]||(t[68]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredRepositories,(s,i)=>(l(),d("div",{class:A(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error","row-selected":e.selected[s?.repoId]}]),role:"row"},[o("div",V0,[D(o("input",q0,null,512),[[n,{state:e.viewState,set:a=>{e.selected[s.repoId]=a},value:e.selected[s?.repoId],form:null,options:{}}]])]),o("div",M0,[t[73]||(t[73]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",$0,[o("a",{class:"repo-name",target:"_blank",textContent:c(s?.repoId),href:e.safeUrl("/r/"+s?.repoId)},null,8,L0),o("div",U0,[o("a",{textContent:c(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,F0),s?.options?.update?(l(),d("span",z0,[t[69]||(t[69]=b("\xA0\xB7\xA0",-1)),o("a",{textContent:c(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,H0)])):p("v-if",!0),s?.options?.update?p("v-if",!0):(l(),d("span",B0,[t[70]||(t[70]=b("\xA0\xB7\xA0@",-1)),o("a",{textContent:c(s?.source?.commit?.substring(0,8)),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},null,8,j0)])),s?.conference?(l(),d("span",G0,[t[71]||(t[71]=b("\xA0\xB7\xA0",-1)),t[72]||(t[72]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),b(" "+c(s?.conference),1)])):p("v-if",!0),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.humanFileSize(s?.size?.storage)),1),o("span",null,"\xA0\xB7\xA0"+c(e.fmt?.number(s?.options?.terms?.length))+" "+c(s?.options?.terms?.length===1?"term":"terms"),1)])])]),o("div",W0,[o("span",K0,[o("span",{class:A(["status-dot",{"status-removed":s?.status=="removed"||s?.status=="expired","status-ready":s?.status=="ready","status-error":s?.status=="error","status-preparing":s?.status=="preparing"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,Y0)]),s?.statusMessage?(l(),d("span",{key:0,class:"status-sub",textContent:c(e.fmt?.statusMsg(s?.statusMessage)),title:s?.statusMessage},null,8,J0)):p("v-if",!0)]),o("div",{class:"cell-views num",role:"cell",textContent:c(e.fmt?.number(s?.pageView||0))},null,8,Q0),o("div",{class:"cell-expires",role:"cell",textContent:c(e.fmt?.humanTime(s?.anonymizeDate))},null,8,X0),o("div",Z0,[o("div",x0,[t[85]||(t[85]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",eE,[o("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[74]||(t[74]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit",-1)])],8,tE),o("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[75]||(t[75]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View repo",-1)])],8,oE),s?.options?.page&&s?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+s?.repoId+"/")},[...t[76]||(t[76]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),b(" View page",-1)])],8,nE)):p("v-if",!0),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.fetchGithubInfo(s),["prevent"])},[...t[77]||(t[77]=[o("i",{class:"fab fa-github"},null,-1),b(" Live GitHub info",-1)])],8,sE),t[83]||(t[83]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[78]||(t[78]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force update",-1)])],8,rE),[[K,s?.status=="ready"||s?.status=="error"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updateRepository(s),["prevent"])},[...t[79]||(t[79]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Enable",-1)])],8,iE),[[K,s?.status=="removed"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.showStatusMessage(s),["prevent"])},[...t[80]||(t[80]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1),b(" View status message",-1)])],8,aE),[[K,s?.statusMessage]]),t[84]||(t[84]=o("div",{class:"dropdown-divider"},null,-1)),o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removeCache(s),["prevent"])},[...t[81]||(t[81]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-broom"})],-1),b(" Remove cache",-1)])],8,lE),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.removeRepository(s),["prevent"])},[...t[82]||(t[82]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove",-1)])],8,dE),[[K,s?.status=="ready"]])])])])],2))),256)),e.filteredRepositories?.length==0?(l(),d("div",uE,[...t[86]||(t[86]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No repositories match the current filters.",-1)])])):p("v-if",!0)])])}var cE={class:"container paper-page admin-page"},pE={class:"admin-summary"},fE={class:"summary-total"},mE=["aria-pressed"],hE={class:"count"},vE=["aria-pressed"],yE={class:"count"},gE=["aria-pressed"],bE={class:"count"},wE={key:0,class:"alert alert-danger",style:{margin:"8px 0"}},kE={class:"w-100 admin-filter-toolbar","aria-label":"Users","accept-charset":"UTF-8"},EE={class:"admin-filter-row"},CE={class:"search-wrap"},_E={type:"search",class:"form-control","aria-label":"Search users",placeholder:"Search username or email\u2026",autocomplete:"off"},SE={key:0,class:"admin-search-hint"},NE={class:"admin-filter-inline"},DE={class:"form-control form-control-sm"},RE={class:"admin-filter-inline","aria-label":"Pagination"},TE=["disabled"],AE={style:{"font-family":"var(--font-mono)","font-size":"12px",color:"var(--ink-muted)"}},OE=["disabled"],IE={key:0,class:"admin-filter-row"},PE={class:"admin-active-chips"},VE={class:"key"},qE=["onClick"],ME={key:1,class:"bulk-bar"},$E={class:"paper-table w-100",role:"table","aria-label":"Users",style:{"--cols":"28px minmax(280px, 2.4fr) 100px 140px 140px 52px"}},LE={class:"paper-table-head admin-users-row",role:"row"},UE={role:"columnheader",style:{width:"28px"}},FE=["checked"],zE={role:"columnheader"},HE={role:"columnheader"},BE={role:"cell",style:{width:"28px"}},jE={type:"checkbox","aria-label":"Select user"},GE={class:"cell-anon",role:"cell"},WE=["src"],KE={class:"anon-text"},YE=["textContent","href"],JE={class:"anon-sub"},QE={key:0},XE=["href"],ZE={key:1},xE={class:"cell-views num",role:"cell"},eC=["textContent","href"],tC={class:"cell-status",role:"cell"},oC=["textContent"],nC={class:"cell-status",role:"cell"},sC={key:0,class:"type-badge type-repo"},rC={key:1,class:"empty-dash"},iC={class:"cell-actions",role:"cell"},aC={class:"dropdown"},lC={class:"dropdown-menu dropdown-menu-right"},dC=["href"],uC=["href"],cC=["onClick"],pC=["onClick"],fC={key:0,class:"paper-table-empty"},mC={class:"admin-toolbar",style:{"justify-content":"space-between","border-bottom":"none"}},hC={style:{"font-size":"12px",color:"var(--ink-muted)"}},vC={key:0,class:"pagination-compact"},yC=["disabled"],gC=["max"],bC=["disabled"],wC={class:"admin-filter-inline"},kC={class:"form-control form-control-sm"};function Rl(e,t){let n=be("field"),r=be("form");return l(),d("div",cE,[t[46]||(t[46]=pe('Admin \xA0/\xA0 Users
Users Overview Repositories Users Conferences Queues Errors ',3)),o("div",pE,[o("span",fE,c(e.total>=0?e.fmt.number(e.total):"\u2026"),1),o("button",{type:"button",class:A(["summary-pill ok",{active:e.query?.status=="active"}]),onClick:t[0]||(t[0]=s=>{e.query.status=e.query.status=="active"?"":"active",e.query.page=1}),"aria-pressed":e.query?.status=="active"},[t[13]||(t[13]=b("Active ",-1)),o("span",hE,c(e.fmt?.number(e.statusCountFor("active"))),1)],10,mE),o("button",{type:"button",class:A(["summary-pill error",{active:e.query?.status=="banned"}]),onClick:t[1]||(t[1]=s=>{e.query.status=e.query.status=="banned"?"":"banned",e.query.page=1}),"aria-pressed":e.query?.status=="banned"},[t[14]||(t[14]=b("Banned ",-1)),o("span",yE,c(e.fmt?.number(e.statusCountFor("banned"))),1)],10,vE),o("button",{type:"button",class:A(["summary-pill",{active:e.query?.status=="removed"}]),onClick:t[2]||(t[2]=s=>{e.query.status=e.query.status=="removed"?"":"removed",e.query.page=1}),"aria-pressed":e.query?.status=="removed"},[t[15]||(t[15]=b("Removed ",-1)),o("span",bE,c(e.fmt?.number(e.statusCountFor("removed"))),1)],10,gE)]),e.fetchError?(l(),d("div",wE,[t[16]||(t[16]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fetchError),1)])):p("v-if",!0),D((l(),d("form",kE,[o("div",EE,[o("div",CE,[D(o("input",_E,null,512),[[n,{state:e.viewState,set:s=>{e.query.search=s},value:e.query?.search,form:null,options:{}}]]),e.query?.search?p("v-if",!0):(l(),d("span",SE,"/"))]),o("span",NE,[t[18]||(t[18]=o("label",null,"Role",-1)),D((l(),d("select",DE,[...t[17]||(t[17]=[o("option",{value:""},"Any",-1),o("option",{value:"admin"},"Admin",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.role=s},value:e.query?.role,form:null,options:{}}]])]),t[22]||(t[22]=o("span",{class:"admin-filter-spacer"},null,-1)),o("button",{class:"btn btn-sm",type:"button",onClick:t[3]||(t[3]=s=>e.exportCsv())},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-export"})],-1),b(" Export",-1)])]),o("span",RE,[o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[4]||(t[4]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1,"aria-label":"Previous page"},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1)])],8,TE),o("span",AE,c(e.query?.page)+"/"+c(e.totalPage||1),1),o("button",{class:"btn btn-sm btn-icon",type:"button",onClick:t[5]||(t[5]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage,"aria-label":"Next page"},[...t[21]||(t[21]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,OE)])]),e.chips?.length?(l(),d("div",IE,[o("div",PE,[(l(!0),d(X,null,ae(e.chips,(s,i)=>(l(),d("span",{class:"admin-active-chip",key:s?.key},[o("span",VE,c(s?.label),1),o("span",null,c(s?.value),1),o("button",{type:"button",onClick:a=>e.clearFilter(s.key),"aria-label":"Clear filter"},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,qE)]))),128))])])):p("v-if",!0)])),[[r,e.viewState]]),e.selectedCount()>0?(l(),d("div",ME,[o("span",null,[o("strong",null,c(e.selectedCount()),1),t[24]||(t[24]=b(" selected",-1))]),o("button",{class:"btn btn-sm text-danger",type:"button",onClick:t[6]||(t[6]=s=>e.bulkBan())},[...t[25]||(t[25]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-ban"})],-1),b(" Ban",-1)])]),o("button",{class:"btn btn-sm",type:"button",onClick:t[7]||(t[7]=s=>{e.selected={},e.allSelected=!1})},"Clear")])):p("v-if",!0),o("div",$E,[o("div",LE,[o("div",UE,[o("input",{type:"checkbox","aria-label":"Select all on page",onClick:t[8]||(t[8]=s=>e.selectAllOnPage()),checked:e.allSelected},null,8,FE)]),o("div",zE,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="username"}]),onClick:t[9]||(t[9]=s=>e.sortBy("username"))},[t[27]||(t[27]=b("User ",-1)),e.sortIcon("username")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("username")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[26]||(t[26]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[30]||(t[30]=o("div",{role:"columnheader",class:"num"},"Repos",-1)),o("div",HE,[o("button",{type:"button",class:A(["sortable",{active:e.query?.sort=="status"}]),onClick:t[10]||(t[10]=s=>e.sortBy("status"))},[t[29]||(t[29]=b("Status ",-1)),e.sortIcon("status")?(l(),d("svg",{key:0,class:A(["ui-icon sort-direction",{ascending:e.sortIcon("status")==="fa-arrow-up"}]),"aria-hidden":"true"},[...t[28]||(t[28]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)]),t[31]||(t[31]=o("div",{role:"columnheader"},"Role",-1)),t[32]||(t[32]=o("div",{role:"columnheader","aria-label":"Actions"},null,-1))]),(l(!0),d(X,null,ae(e.filteredUsers,(s,i)=>(l(),d("div",{class:A(["paper-table-row admin-users-row",{"row-selected":e.selected[s?.username]}]),role:"row"},[o("div",BE,[D(o("input",jE,null,512),[[n,{state:e.viewState,set:a=>{e.selected[s.username]=a},value:e.selected[s?.username],form:null,options:{}}]])]),o("div",GE,[s?.photo?(l(),d("img",{key:0,width:"28",height:"28",class:"rounded-circle",style:{"flex-shrink":"0"},src:e.safeUrl(s?.photo)},null,8,WE)):p("v-if",!0),o("div",KE,[o("a",{class:"repo-name",textContent:c(s?.username),href:e.safeUrl("/admin/users/"+s?.username)},null,8,YE),o("div",JE,[s?.emails?.[0]?.email?(l(),d("span",QE,c(s?.emails?.[0]?.email)+" \xB7 ",1)):p("v-if",!0),o("a",{target:"_blank",href:e.safeUrl("https://github.com/"+s?.username)},[t[33]||(t[33]=o("i",{class:"fab fa-github"},null,-1)),b(" "+c(s?.username),1)],8,XE),s?.dateOfEntry?(l(),d("span",ZE,"\xA0\xB7\xA0Joined "+c(e.fmt?.humanTime(s?.dateOfEntry)),1)):p("v-if",!0)])])]),o("div",xE,[t[34]||(t[34]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1)),o("a",{title:"Show this user's repositories",textContent:c(e.fmt?.number(s?.repoCount||0)),href:e.safeUrl("/admin/repositories?owner="+s?.username)},null,8,eC)]),o("div",tC,[o("span",{class:A(["status-dot",{"status-ready":s?.status=="active","status-removed":s?.status=="removed"||s?.status=="banned"}])},null,2),o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,oC)]),o("div",nC,[s?.isAdmin?(l(),d("span",sC,"Admin")):p("v-if",!0),s?.isAdmin?p("v-if",!0):(l(),d("span",rC,"\u2014"))]),o("div",iC,[o("div",aC,[t[40]||(t[40]=o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})])],-1)),o("div",lC,[o("a",{class:"dropdown-item",href:e.safeUrl("/admin/users/"+s?.username)},[...t[35]||(t[35]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View details",-1)])],8,dC),o("a",{class:"dropdown-item",href:e.safeUrl("/admin/repositories?owner="+s?.username)},[...t[36]||(t[36]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),b(" View repositories",-1)])],8,uC),t[39]||(t[39]=o("div",{class:"dropdown-divider"},null,-1)),D(o("a",{class:"dropdown-item text-danger",href:"#",onClick:de(a=>e.banUser(s),["prevent"])},[...t[37]||(t[37]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-ban"})],-1),b(" Ban",-1)])],8,cC),[[K,s?.status=="active"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.activateUser(s),["prevent"])},[...t[38]||(t[38]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Activate",-1)])],8,pC),[[K,s?.status=="removed"||s?.status=="banned"]])])])])],2))),256)),e.filteredUsers?.length==0?(l(),d("div",fC,[...t[41]||(t[41]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No users match the current filters.",-1)])])):p("v-if",!0)]),o("div",mC,[o("span",hC,c(e.fmt?.number(e.total))+" results",1),e.totalPage>1?(l(),d("div",vC,[o("button",{class:"btn btn-sm",onClick:t[11]||(t[11]=s=>e.query.page=Math.max(1,e.query.page-1)),disabled:e.query?.page<=1},[...t[42]||(t[42]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-left"})],-1),b(" Previous",-1)])],8,yC),D(o("input",{type:"number",class:"form-control form-control-sm",min:"1",style:{width:"56px"},max:e.totalPage},null,8,gC),[[n,{state:e.viewState,set:s=>{e.query.page=s},value:e.query?.page,form:null,options:{}}]]),o("span",null,"of "+c(e.totalPage),1),o("button",{class:"btn btn-sm",onClick:t[12]||(t[12]=s=>e.query.page=Math.min(e.totalPage,e.query.page+1)),disabled:e.query?.page>=e.totalPage},[...t[43]||(t[43]=[b("Next ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-chevron-right"})],-1)])],8,bC)])):p("v-if",!0),o("span",wC,[t[45]||(t[45]=o("label",null,"Per page",-1)),D((l(),d("select",kC,[...t[44]||(t[44]=[o("option",{value:"10"},"10",-1),o("option",{value:"25"},"25",-1),o("option",{value:"50"},"50",-1),o("option",{value:"100"},"100",-1)])])),[[n,{state:e.viewState,set:s=>{e.query.limit=s},value:e.query?.limit,form:null,options:{}}]])])])])}var EC={class:"anonymize-landing"},CC={class:"anonymize-landing-inner"},_C={class:"form-group mt-4 mb-2"},SC={class:"source-url-label-row"},NC={key:0,class:"repo-access","aria-label":"GitHub access"},DC={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},RC=["aria-pressed","disabled"],TC=["aria-pressed","disabled"],AC={key:1,class:"connection-badge"},OC={id:"sourceUrl-landing",type:"text",class:"form-control form-control-lg",placeholder:"https://github.com/owner/repository"},IC={key:0,class:"draft-status",role:"status"},PC={key:1,class:"text-danger",role:"alert"},VC={key:2,class:"repo-access-details","aria-label":"GitHub access"},qC={class:"repo-access-main"},MC={class:"repo-access-controls"},$C={key:1,class:"connection-link",href:"/connections"},LC={class:"repo-access-note"},UC={key:0},FC={class:"anonymize-workspace"},zC={class:"anonymize-topbar"},HC={class:"anonymize-topbar-inner"},BC={class:"paper-crumbs"},jC={class:"here"},GC={class:"anonymize-topbar-head"},WC={class:"paper-page-title anonymize-topbar-title"},KC={key:0},YC={key:1},JC={key:0,class:"alert alert-info",role:"status"},QC={key:1,class:"alert alert-info",role:"status"},XC={key:1},ZC={class:"anonymize-mobile-tabs",role:"tablist","aria-label":"Anonymization workspace"},xC=["aria-selected","tabindex"],e2=["aria-selected","tabindex"],t2={key:2,class:"anonymize-preview-empty",id:"workspace-preview",role:"status"},o2={class:"anonymize-split"},n2=["role","aria-labelledby"],s2={class:"form needs-validation paper-settings-main",name:"anonymize",novalidate:""},r2={class:"paper-settings-section"},i2={class:"form-group"},a2={class:"source-url-label-row"},l2={key:0,class:"repo-access","aria-label":"GitHub access"},d2={key:0,class:"repo-access-switch",role:"group","aria-label":"Repository connection"},u2=["aria-pressed","disabled"],c2=["aria-pressed","disabled"],p2={key:1,class:"connection-badge"},f2=["disabled"],m2={class:"invalid-feedback"},h2={class:"invalid-feedback"},v2={class:"invalid-feedback"},y2={class:"invalid-feedback"},g2={key:0,class:"repo-access-details","aria-label":"GitHub access"},b2={class:"repo-access-main"},w2={class:"repo-access-controls"},k2={key:1,class:"connection-link",href:"/connections"},E2={class:"repo-access-note"},C2={key:0},_2={key:1,class:"repo-access-details"},S2=["disabled"],N2={key:0,role:"status"},D2={key:2,class:"repo-access-details"},R2={key:0,role:"status"},T2={key:3,class:"form-grid-2"},A2={class:"form-group"},O2={class:"input-group"},I2={class:"form-control",id:"branch",name:"branch"},P2=["textContent","value"],V2={class:"input-group-append"},q2={class:"form-group"},M2=["disabled"],$2={class:"invalid-feedback"},L2={class:"invalid-feedback"},U2={class:"form-check"},F2={class:"form-check-input",type:"checkbox",id:"update",name:"update"},z2={class:"paper-settings-section"},H2={class:"form-group"},B2=["disabled"],j2={class:"form-text text-muted"},G2={class:"invalid-feedback"},W2={class:"form-group"},K2=["disabled"],Y2={class:"form-text text-muted"},J2={class:"invalid-feedback"},Q2={class:"form-group"},X2=["disabled"],Z2={class:"form-text text-muted"},x2={class:"invalid-feedback"},e_={class:"form-group"},t_={class:"form-text text-muted"},o_=["href"],n_={class:"invalid-feedback"},s_={class:"form-text text-muted"},r_={class:"paper-settings-section"},i_={class:"form-group"},a_={class:"form-text text-muted"},l_={class:"warning-feedback"},d_={class:"invalid-feedback"},u_={class:"paper-settings-section"},c_={class:"form-check"},p_={class:"form-check-input",type:"checkbox",id:"link",name:"link"},f_={class:"form-check"},m_={class:"form-check-input",type:"checkbox",id:"image",name:"image"},h_={class:"form-check"},v_={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},y_={class:"form-check"},g_={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},b_={class:"form-check"},w_=["disabled"],k_={key:0,class:"form-text text-muted"},E_={key:1,class:"form-text text-muted"},C_={class:"form-check"},__={class:"form-check-input",type:"checkbox",id:"title-gist",name:"title-gist"},S_={class:"form-check"},N_={class:"form-check-input",type:"checkbox",id:"content-gist",name:"content-gist"},D_={class:"form-check"},R_={class:"form-check-input",type:"checkbox",id:"comments-gist",name:"comments-gist"},T_={class:"form-check"},A_={class:"form-check-input",type:"checkbox",id:"username-gist",name:"username-gist"},O_={class:"form-check"},I_={class:"form-check-input",type:"checkbox",id:"date-gist",name:"date-gist"},P_={class:"form-check"},V_={class:"form-check-input",type:"checkbox",id:"origin-gist",name:"origin-gist"},q_={class:"form-check"},M_={class:"form-check-input",type:"checkbox",id:"title",name:"title"},$_={class:"form-check"},L_={class:"form-check-input",type:"checkbox",id:"body",name:"body"},U_={class:"form-check"},F_={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},z_={class:"form-check"},H_={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},B_={class:"form-check"},j_={class:"form-check-input",type:"checkbox",id:"username",name:"username"},G_={class:"form-check"},W_={class:"form-check-input",type:"checkbox",id:"date",name:"date"},K_={class:"form-check"},Y_={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},J_={class:"paper-settings-section"},Q_={class:"form-grid-2"},X_={class:"form-group"},Z_={class:"form-control",id:"expiration",name:"expiration"},x_={class:"form-group"},eS=["min","max"],tS={class:"invalid-feedback"},oS={class:"invalid-feedback"},nS={class:"paper-settings-section"},sS={class:"form-group"},rS={style:{position:"relative"}},iS={type:"text",id:"coauthorSearch",class:"form-control",placeholder:"Search GitHub username\u2026",autocomplete:"off"},aS={class:"dropdown-menu show",style:{display:"block","max-height":"220px","overflow-y":"auto",width:"100%"}},lS=["onClick"],dS=["src"],uS=["textContent"],cS=["textContent"],pS={class:"coauthor-list"},fS={class:"coauthor-row d-flex align-items-center",style:{padding:"6px 0",gap:"8px"}},mS=["src"],hS=["textContent","href"],vS=["onClick"],yS={class:"form-text text-muted"},gS=["textContent"],bS={key:1,class:"draft-status",role:"status"},wS={key:2,class:"draft-status"},kS={key:3,class:"anonymize-review-note"},ES={class:"anonymize-submit-bar"},CS=["disabled"],_S=["disabled"],SS=["disabled"],NS=["disabled"],DS=["disabled"],RS=["disabled"],TS=["role","aria-labelledby"],AS={class:"anonymize-preview-head"},OS={class:"anonymize-preview-sub"},IS={key:0,class:"anonymize-preview-status",role:"status"},PS={key:1,class:"anonymize-preview-status",role:"status"},VS={key:2,class:"anonymize-preview-status",role:"alert"},qS={key:3,class:"anonymize-preview-status"},MS=["innerHTML"],$S=["role","aria-labelledby"],LS={class:"anonymize-preview-head"},US={class:"anonymize-preview-sub"},FS={key:0,class:"anonymize-preview-status",role:"status"},zS={key:1,class:"anonymize-preview-status",role:"status"},HS={key:2,class:"anonymize-preview-status",role:"alert"},BS={key:3,class:"anonymize-preview-body"},jS={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},GS={class:"pr-title mb-1"},WS={key:0},KS=["textContent"],YS={key:0},JS={key:1},QS={key:2},XS={class:"pr-comments mt-3"},ZS={class:"pr-comment"},xS={class:"pr-comment-head"},eN=["textContent"],tN={key:0,class:"pr-comment-date"},oN={key:3},nN={class:"pr-comments"},sN={class:"pr-comment"},rN={class:"pr-comment-head"},iN={key:0,class:"pr-comment-author"},aN=["textContent"],lN=["textContent"],dN={key:0,class:"pr-comment-body"},uN=["role","aria-labelledby"],cN={class:"anonymize-preview-head"},pN={class:"anonymize-preview-sub"},fN={key:0,class:"anonymize-preview-status",role:"status"},mN={key:1,class:"anonymize-preview-status",role:"status"},hN={key:2,class:"anonymize-preview-status",role:"alert"},vN={key:3,class:"anonymize-preview-body"},yN={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},gN={class:"pr-title mb-1"},bN={key:0},wN=["textContent"],kN={key:0},EN={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--paper-bg-alt)"}},CN={key:2,class:"paper-tabs",role:"tablist"},_N=["aria-selected","tabindex"],SN=["aria-selected","tabindex"],NN=["textContent"],DN={key:3,class:"anonymize-preview-status"},RN={class:"paper-tab-content"},TN={key:0,role:"tabpanel",id:"preview-pr-diff-panel","aria-labelledby":"preview-pr-diff-tab"},AN=["innerHTML"],ON={key:1,role:"tabpanel",id:"preview-pr-comments-panel","aria-labelledby":"preview-pr-comments-tab"},IN={class:"pr-comments"},PN={class:"pr-comment"},VN={class:"pr-comment-head"},qN={key:0,class:"pr-comment-author"},MN=["textContent"],$N=["textContent"],LN={key:0,class:"pr-comment-body"};function Tl(e,t){let n=We("gist-file"),r=We("markdown"),s=be("field"),i=be("form");return l(),d("div",{class:A(["anonymize-page h-100",{"mobile-preview-active":e.mobilePane==="preview"}])},[p(" ===== STATE 1: No URL \u2014 centered input ===== "),D(o("div",EC,[o("div",CC,[t[38]||(t[38]=o("div",{class:"paper-crumbs"},[b("My work \xA0/\xA0 "),o("span",{class:"here"},"New anonymization")],-1)),t[39]||(t[39]=o("h1",{class:"paper-page-title"},[b("New "),o("em",null,"anonymization")],-1)),t[40]||(t[40]=o("p",{class:"paper-page-lede"}," Paste a GitHub repository, pull-request, or gist URL. We\u2019ll fetch it, redact the terms you choose in text files, and give you a share link. Images and PDFs are served unchanged when enabled. Review them before sharing. ",-1)),o("div",_C,[o("div",SC,[t[34]||(t[34]=o("label",{class:"paper-field-label",for:"sourceUrl-landing"},"Source URL",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",NC,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",DC,[o("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[0]||(t[0]=a=>e.chooseGitHubConnection("github-app"))},[...t[33]||(t[33]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(),o("span",{class:"sr-only"},"Read-only ",-1),b("GitHub App",-1)])],8,RC),o("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[1]||(t[1]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,TC)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",AC,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(o("input",OC,null,512),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:null,options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]])]),e.draftRestored?(l(),d("div",IC,[t[35]||(t[35]=b("Your unsaved draft was restored. ",-1)),o("button",{type:"button",class:"draft-discard",onClick:t[2]||(t[2]=a=>e.discardDraft())},"Discard draft")])):p("v-if",!0),e.sourceUrlError?(l(),d("p",PC,c(e.sourceUrlError),1)):p("v-if",!0),t[41]||(t[41]=o("small",{class:"form-text",style:{color:"var(--ink-muted)"}}," Repository, pull request (\u2026/pull/42) and gist (gist.github.com/\u2026) URLs are all accepted. ",-1)),!e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",VC,[o("div",qC,[o("div",MC,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[3]||(t[3]=a=>e.grantGitHubAccess())},[...t[36]||(t[36]=[b("Manage access ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",$C,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),o("div",LC,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",UC,"Select repositories on GitHub, then return here.")):p("v-if",!0),t[37]||(t[37]=o("span",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b(" Selected content will be published, including content from private repositories.")],-1))])])):p("v-if",!0)])],512),[[K,!e.workspaceOpen&&!e.isUpdate]]),p(" ===== STATE 2: URL provided \u2014 form (left) + preview (right) ===== "),D(o("div",FC,[o("header",zC,[o("div",HC,[o("div",BC,[t[42]||(t[42]=o("a",{href:"/dashboard"},"My work",-1)),t[43]||(t[43]=b(" \xA0/\xA0 ",-1)),o("span",jC,c(e.isUpdate?"Edit anonymization":"New anonymization"),1)]),o("div",GC,[o("h1",WC,[e.isUpdate?p("v-if",!0):(l(),d("span",KC,[...t[44]||(t[44]=[b("New ",-1),o("em",null,"anonymization",-1)])])),e.isUpdate?(l(),d("span",YC,[...t[45]||(t[45]=[b("Edit ",-1),o("em",null,"anonymization",-1)])])):p("v-if",!0)]),D(o("span",{class:A(["type-badge",{"type-repo":e.detectedType==="repo","type-pr":e.detectedType==="pr","type-gist":e.detectedType==="gist"}])},c(e.detectedType==="repo"?"Repo":e.detectedType==="pr"?"PR":"Gist"),3),[[K,e.detectedType]])])])]),e.detectedType==="gist"&&e.gistAppRequired?(l(),d("aside",JC,[t[46]||(t[46]=o("p",null,"Reconnect your GitHub account to read this gist. Your draft will be restored when you return.",-1)),o("button",{type:"button",class:"btn btn-ink",onClick:t[4]||(t[4]=a=>e.connectGistApp())},"Connect GitHub App to access gists")])):p("v-if",!0),e.detectedType==="gist"&&e.gistOAuthRequired?(l(),d("aside",QC,[t[47]||(t[47]=o("p",null,"Connect GitHub OAuth to access gists. Your account and existing anonymizations stay the same, and your draft will be restored when you return.",-1)),t[48]||(t[48]=o("p",null,"GitHub's legacy OAuth connection includes write access to private repositories.",-1)),e.githubConnections?.oauthEnabled?(l(),d("button",{key:0,type:"button",class:"btn btn-ink",onClick:t[5]||(t[5]=a=>e.connectGistOAuth())},"Connect GitHub OAuth to access gists")):(l(),d("p",XC,"GitHub OAuth is currently unavailable. Please try again later."))])):p("v-if",!0),o("nav",ZC,[o("button",{id:"workspace-settings-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="settings","aria-controls":"workspace-settings",tabindex:e.mobilePane==="settings"?0:-1,onKeydown:t[6]||(t[6]=a=>e.previewTabKeydown(a)),onClick:t[7]||(t[7]=a=>e.selectMobilePane("settings"))},"Settings",40,xC),o("button",{id:"workspace-preview-tab",role:"tab",type:"button","aria-selected":e.mobilePane==="preview","aria-controls":"workspace-preview",tabindex:e.mobilePane==="preview"?0:-1,onKeydown:t[8]||(t[8]=a=>e.previewTabKeydown(a)),onClick:t[9]||(t[9]=a=>e.selectMobilePane("preview"))},"Reviewer preview",40,e2)]),e.detectedType!=="repo"&&!e.details?(l(),d("div",t2,c(e.sourceLoading?"Loading source\u2026":"Choose an accessible source to see its preview."),1)):p("v-if",!0),o("div",o2,[p(" Form column (left) "),o("div",{id:"workspace-settings",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-settings-tab":null,class:"anonymize-form-col overflow-auto"},[D((l(),d("form",s2,[o("section",r2,[t[60]||(t[60]=o("div",{class:"paper-section-eyebrow"},"Source",-1)),o("div",i2,[o("div",a2,[t[50]||(t[50]=o("label",{class:"paper-field-label",for:"sourceUrl"},"GitHub URL",-1)),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",l2,[!e.isUpdate&&e.detectedType!=="gist"?(l(),d("div",d2,[o("button",{type:"button","aria-pressed":e.githubConnection==="github-app",disabled:e.githubConnection==="github-app",onClick:t[10]||(t[10]=a=>e.chooseGitHubConnection("github-app"))},[...t[49]||(t[49]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(),o("span",{class:"sr-only"},"Read-only ",-1),b("GitHub App",-1)])],8,u2),o("button",{type:"button","aria-pressed":e.githubConnection==="oauth",disabled:e.githubConnection==="oauth",onClick:t[11]||(t[11]=a=>e.chooseGitHubConnection("oauth"))},"Legacy OAuth",8,c2)])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"?(l(),d("span",p2,c((e.detectedType==="gist"?e.githubConnections?.gistConnection==="github-app":e.githubConnection==="github-app")?"Read-only GitHub App":"Legacy OAuth"),1)):p("v-if",!0)])):p("v-if",!0)]),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.sourceUrl?.invalid}]),name:"sourceUrl",id:"sourceUrl",disabled:e.isUpdate&&e.detectedType!=="repo",placeholder:"Paste a GitHub repo or pull request URL"},null,10,f2),[[s,{state:e.viewState,set:a=>{e.sourceUrl=a},value:e.sourceUrl,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.urlSelected()}}]]),D(o("div",m2," Please provide a valid GitHub URL. ",512),[[K,e.anonymize?.sourceUrl?.errors?.github]]),D(o("div",h2," Not accessible. The organization may restrict access. ",512),[[K,e.anonymize?.sourceUrl?.errors?.access]]),D(o("div",v2," Does not exist or is not accessible. ",512),[[K,e.anonymize?.sourceUrl?.errors?.missing]]),D(o("div",y2," Already anonymized. ",512),[[K,e.anonymize?.sourceUrl?.errors?.used]])]),e.sourceUrl&&e.githubConnections?.appEnabled&&e.githubConnections.appConnected&&e.githubConnections.oauthConnected?(l(),d("aside",g2,[o("div",b2,[o("div",w2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[12]||(t[12]=a=>e.grantGitHubAccess())},[...t[51]||(t[51]=[b("Manage access ",-1),o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-external-link"})],-1)])])):p("v-if",!0),e.isUpdate||e.detectedType==="gist"||e.githubConnection==="oauth"?(l(),d("a",k2,c(e.isUpdate?"Change connection":"Manage connections")+" \u2192",1)):p("v-if",!0)])]),o("div",E2,[e.detectedType!=="gist"&&e.githubConnection!=="oauth"?(l(),d("span",C2,"Select repositories on GitHub, then return here.")):p("v-if",!0),t[52]||(t[52]=o("span",null,[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b(" Selected content will be published, including content from private repositories.")],-1))])])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.accessRepairAllowed&&e.githubConnections?.appEnabled&&e.githubConnection==="github-app"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",_2,[t[53]||(t[53]=o("p",null,"If this repository became private or its App installation changed, repair its access here. This keeps the same anonymous URL and published commit.",-1)),o("button",{type:"button",class:"btn btn-outline-ink",disabled:e.repairingGitHubAccess,onClick:t[13]||(t[13]=a=>e.repairGitHubAccess())},"Repair GitHub access",8,S2),o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[14]||(t[14]=a=>e.grantGitHubAccess())},"Manage access"),e.accessRepairMessage?(l(),d("p",N2,c(e.accessRepairMessage),1)):p("v-if",!0)])):p("v-if",!0),e.isUpdate&&e.detectedType==="repo"&&e.role==="owner"&&e.sourceUrl==="https://github.com/"+e._originalFullName?(l(),d("aside",D2,[t[54]||(t[54]=o("p",null,"If you deleted and recreated this repository, reconnect it before choosing a branch.",-1)),o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[15]||(t[15]=a=>e.reconnectSource())},"Reconnect source repository"),e.reconnectRepositoryId?(l(),d("p",R2,"Source reloaded. Review the branch, commit, and anonymization preview, then save to replace the published snapshot.")):p("v-if",!0)])):p("v-if",!0),e.detectedType==="repo"?(l(),d("div",T2,[o("div",A2,[t[56]||(t[56]=o("label",{class:"paper-field-label",for:"branch"},"Branch",-1)),o("div",O2,[D((l(),d("select",I2,[(l(!0),d(X,null,ae(e.branches,(a,u)=>(l(),d("option",{textContent:c(a?.name),value:a?.name},null,8,P2))),256))])),[[s,{state:e.viewState,set:a=>{e.source.branch=a},value:e.source?.branch,form:"anonymize",options:{}}]]),o("div",V2,[o("button",{class:"btn btn-icon",type:"button",title:"Refresh","data-toggle":"tooltip","data-placement":"bottom",onClick:t[16]||(t[16]=a=>e.getBranches(!0)),"aria-label":"Refresh"},[...t[55]||(t[55]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1)])])])])]),o("div",q2,[t[57]||(t[57]=o("label",{class:"paper-field-label",for:"commit"},"Commit",-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.commit?.invalid}]),id:"commit",disabled:e.options.update,name:"commit",pattern:"[a-fA-Z0-9]{6,}",required:""},null,10,M2),[[s,{state:e.viewState,set:a=>{e.source.commit=a},value:e.source?.commit,form:"anonymize",options:{}}]]),D(o("div",$2," The commit SHA is not valid. ",512),[[K,e.anonymize?.commit?.errors?.pattern||e.anonymize?.commit?.errors?.required]]),D(o("div",L2," This commit no longer exists in the repository. Click refresh to get the latest. ",512),[[K,e.anonymize?.commit?.errors?.exists]])])])):p("v-if",!0),D(o("div",U2,[D(o("input",F2,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"anonymize",options:{}}]]),t[58]||(t[58]=o("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[59]||(t[59]=o("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))],512),[[K,e.detectedType]])]),D(o("section",z2,[t[71]||(t[71]=o("div",{class:"paper-section-eyebrow"},"Identity",-1)),D(o("div",H2,[t[63]||(t[63]=o("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.repoId?.invalid}]),name:"repoId",id:"repoId",disabled:e.isUpdate},null,10,B2),[[s,{state:e.viewState,set:a=>{e.repoId=a},value:e.repoId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",j2,[t[61]||(t[61]=b("Your share link will be ",-1)),o("code",null,"anonymous.4open.science/r/"+c(e.repoId),1),t[62]||(t[62]=b(".",-1))]),D(o("div",G2,"ID can only contain letters and numbers.",512),[[K,e.anonymize?.repoId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.repoId)+" is already used.",513),[[K,e.anonymize?.repoId?.errors?.used]])],512),[[K,e.detectedType==="repo"]]),D(o("div",W2,[t[66]||(t[66]=o("label",{class:"paper-field-label",for:"pullRequestId"},"Anonymized pull request ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId",disabled:e.isUpdate},null,10,K2),[[s,{state:e.viewState,set:a=>{e.pullRequestId=a},value:e.pullRequestId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",Y2,[t[64]||(t[64]=b("Your share link will be ",-1)),o("code",null,"anonymous.4open.science/pr/"+c(e.pullRequestId),1),t[65]||(t[65]=b(".",-1))]),D(o("div",J2,"ID can only contain letters and numbers.",512),[[K,e.anonymize?.pullRequestId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used.",513),[[K,e.anonymize?.pullRequestId?.errors?.used]])],512),[[K,e.detectedType==="pr"]]),D(o("div",Q2,[t[69]||(t[69]=o("label",{class:"paper-field-label",for:"gistId"},"Anonymized gist ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.gistId?.invalid}]),name:"gistId",id:"gistId",disabled:e.isUpdate},null,10,X2),[[s,{state:e.viewState,set:a=>{e.gistId=a},value:e.gistId,form:"anonymize",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",Z2,[t[67]||(t[67]=b("Your share link will be ",-1)),o("code",null,"anonymous.4open.science/gist/"+c(e.gistId),1),t[68]||(t[68]=b(".",-1))]),D(o("div",x2,"ID can only contain letters and numbers.",512),[[K,e.anonymize?.gistId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.gistId)+" is already used.",513),[[K,e.anonymize?.gistId?.errors?.used]])],512),[[K,e.detectedType==="gist"]]),o("div",e_,[t[70]||(t[70]=o("label",{class:"paper-field-label",for:"conference"},[b("Conference "),o("span",{class:"paper-optional"},"(optional)")],-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[s,{state:e.viewState,set:a=>{e.conference=a},value:e.conference,form:"anonymize",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(o("small",t_,[o("a",{target:"_blank",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,o_),b(" expires "+c(e.fmt?.date(e.conference_data?.endDate))+". ",1)],512),[[K,e.conference_data]]),D(o("div",n_,"The conference is not activated.",512),[[K,e.anonymize?.conference?.errors?.activated]]),D(o("small",s_,"Link to a conference to apply its shared defaults.",512),[[K,!e.conference_data]])])],512),[[K,e.detectedType]]),D(o("section",r_,[t[79]||(t[79]=o("div",{class:"paper-section-eyebrow"},"Anonymization",-1)),o("div",i_,[t[78]||(t[78]=o("label",{class:"paper-field-label",for:"terms"},"Terms to redact",-1)),D(o("textarea",{class:A(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"4"},null,2),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"anonymize",options:{debounce:250}}]]),o("small",a_,[t[72]||(t[72]=b("One term per line (regex allowed). Replaced by ",-1)),o("code",null,c(e.site_options?.ANONYMIZATION_MASK)+"-[N]",1),t[73]||(t[73]=b(", or use ",-1)),t[74]||(t[74]=o("code",null,"term=>replacement",-1)),t[75]||(t[75]=b(" to pick your own (e.g. ",-1)),t[76]||(t[76]=o("code",null,"Anonymous=>ABC",-1)),t[77]||(t[77]=b(").",-1))]),D(o("div",l_,"Regex characters detected. Escape them if unintentional.",512),[[K,e.termsRegexWarning]]),D(o("div",d_,"Terms are in an invalid format.",512),[[K,e.anonymize?.terms?.errors?.format]])])],512),[[K,e.detectedType]]),D(o("section",u_,[t[100]||(t[100]=o("div",{class:"paper-section-eyebrow"},"Display",-1)),D(o("div",null,[o("div",c_,[D(o("input",p_,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"anonymize",options:{}}]]),t[80]||(t[80]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1))]),o("div",f_,[D(o("input",m_,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"anonymize",options:{}}]]),t[81]||(t[81]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[82]||(t[82]=o("small",{class:"form-text text-muted"},"Images are served unchanged and may contain names or affiliations.",-1))]),o("div",h_,[D(o("input",v_,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"anonymize",options:{}}]]),t[83]||(t[83]=o("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[84]||(t[84]=o("small",{class:"form-text text-muted"},[b("PDF contents and metadata are served unchanged. "),o("a",{href:"/faq#formats"},"About supported formats")],-1))]),o("div",y_,[D(o("input",g_,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"anonymize",options:{}}]]),t[85]||(t[85]=o("label",{class:"form-check-label",for:"notebook"},"Display Notebooks",-1))]),o("div",b_,[D(o("input",{class:"form-check-input",type:"checkbox",id:"page",name:"page",disabled:!e.details?.hasPage||e.details?.pageSource&&e.details?.pageSource?.branch!==e.source?.branch},null,8,w_),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"anonymize",options:{}}]]),t[86]||(t[86]=o("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),e.details?.hasPage?p("v-if",!0):(l(),d("small",k_,c(e.fmt?.translate("WARNINGS.page_not_enabled_on_repo")),1)),e.details?.hasPage&&e.details?.pageSource?.branch&&e.source?.branch&&e.details.pageSource.branch!==e.source.branch?(l(),d("small",E_,c(e.fmt?.translate("WARNINGS.page_branch_mismatch",{pageBranch:e.details?.pageSource?.branch,selectedBranch:e.source?.branch})),1)):p("v-if",!0)])],512),[[K,e.detectedType==="repo"]]),D(o("div",null,[o("div",C_,[D(o("input",__,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[87]||(t[87]=o("label",{class:"form-check-label",for:"title-gist"},"Gist description",-1))]),o("div",S_,[D(o("input",N_,null,512),[[s,{state:e.viewState,set:a=>{e.options.content=a},value:e.options?.content,form:"anonymize",options:{}}]]),t[88]||(t[88]=o("label",{class:"form-check-label",for:"content-gist"},"File contents",-1))]),o("div",D_,[D(o("input",R_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[89]||(t[89]=o("label",{class:"form-check-label",for:"comments-gist"},"Comments",-1))]),o("div",T_,[D(o("input",A_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[90]||(t[90]=o("label",{class:"form-check-label",for:"username-gist"},"Usernames",-1))]),o("div",O_,[D(o("input",I_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[91]||(t[91]=o("label",{class:"form-check-label",for:"date-gist"},"Dates",-1))]),o("div",P_,[D(o("input",V_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[92]||(t[92]=o("label",{class:"form-check-label",for:"origin-gist"},"Source gist ID",-1))])],512),[[K,e.detectedType==="gist"]]),D(o("div",null,[o("div",q_,[D(o("input",M_,null,512),[[s,{state:e.viewState,set:a=>{e.options.title=a},value:e.options?.title,form:"anonymize",options:{}}]]),t[93]||(t[93]=o("label",{class:"form-check-label",for:"title"},"PR title",-1))]),o("div",$_,[D(o("input",L_,null,512),[[s,{state:e.viewState,set:a=>{e.options.body=a},value:e.options?.body,form:"anonymize",options:{}}]]),t[94]||(t[94]=o("label",{class:"form-check-label",for:"body"},"PR body",-1))]),o("div",U_,[D(o("input",F_,null,512),[[s,{state:e.viewState,set:a=>{e.options.diff=a},value:e.options?.diff,form:"anonymize",options:{}}]]),t[95]||(t[95]=o("label",{class:"form-check-label",for:"diff"},"Diff",-1))]),o("div",z_,[D(o("input",H_,null,512),[[s,{state:e.viewState,set:a=>{e.options.comments=a},value:e.options?.comments,form:"anonymize",options:{}}]]),t[96]||(t[96]=o("label",{class:"form-check-label",for:"comments"},"Comments",-1))]),o("div",B_,[D(o("input",j_,null,512),[[s,{state:e.viewState,set:a=>{e.options.username=a},value:e.options?.username,form:"anonymize",options:{}}]]),t[97]||(t[97]=o("label",{class:"form-check-label",for:"username"},"Usernames",-1))]),o("div",G_,[D(o("input",W_,null,512),[[s,{state:e.viewState,set:a=>{e.options.date=a},value:e.options?.date,form:"anonymize",options:{}}]]),t[98]||(t[98]=o("label",{class:"form-check-label",for:"date"},"Dates",-1))]),o("div",K_,[D(o("input",Y_,null,512),[[s,{state:e.viewState,set:a=>{e.options.origin=a},value:e.options?.origin,form:"anonymize",options:{}}]]),t[99]||(t[99]=o("label",{class:"form-check-label",for:"origin"},"Project name",-1))])],512),[[K,e.detectedType==="pr"]])],512),[[K,e.detectedType]]),D(o("section",J_,[t[104]||(t[104]=o("div",{class:"paper-section-eyebrow"},"Expiration",-1)),o("div",Q_,[o("div",X_,[t[102]||(t[102]=o("label",{class:"paper-field-label",for:"expiration"},"Strategy",-1)),D((l(),d("select",Z_,[...t[101]||(t[101]=[o("option",{value:"redirect"},"Redirect to GitHub when expired",-1),o("option",{value:"remove",selected:""},"Remove when expired",-1)])])),[[s,{state:e.viewState,set:a=>{e.options.expirationMode=a},value:e.options?.expirationMode,form:"anonymize",options:{}}]])]),o("div",x_,[t[103]||(t[103]=o("label",{class:"paper-field-label",for:"expirationDate"},"Expiration date",-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.expirationDate?.invalid}]),type:"date",name:"expirationDate",id:"expirationDate",required:"",min:e.minExpirationDate,max:e.maxExpirationDate},null,10,eS),[[s,{state:e.viewState,set:a=>{e.options.expirationDate=a},value:e.options?.expirationDate,form:"anonymize",options:{}}]]),D(o("div",tS,"Pick a date in the future.",512),[[K,e.anonymize?.expirationDate?.errors?.min]]),D(o("div",{class:"invalid-feedback"},"Pick a date on or before "+c(e.fmt?.date(e.maxExpirationDate))+".",513),[[K,e.anonymize?.expirationDate?.errors?.max]]),D(o("div",oS,"Enter a valid expiration date.",512),[[K,e.anonymize?.expirationDate?.errors?.required||e.anonymize?.expirationDate?.errors?.date]])])]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the content will be removed.",513),[[K,e.options?.expirationMode=="remove"&&e.options?.expirationDate]]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", visitors will be redirected to GitHub.",513),[[K,e.options?.expirationMode=="redirect"&&e.options?.expirationDate]])],512),[[K,e.detectedType]]),D(o("section",nS,[t[108]||(t[108]=o("div",{class:"paper-section-eyebrow"},"Co-authors",-1)),t[109]||(t[109]=o("p",{class:"form-text text-muted",style:{"margin-bottom":"8px"}}," Co-authors can view and edit these settings. They cannot delete the anonymization or manage co-authors. ",-1)),D(o("div",sS,[t[105]||(t[105]=o("label",{class:"paper-field-label",for:"coauthorSearch"},"Add a GitHub user",-1)),o("div",rS,[D(o("input",iS,null,512),[[s,{state:e.viewState,set:a=>{e.coauthorSearch=a},value:e.coauthorSearch,form:"anonymize",options:{debounce:300},change:()=>{e.searchCoauthors()}}]]),D(o("div",aS,[(l(!0),d(X,null,ae(e.coauthorResults,(a,u)=>(l(),d("a",{href:"#",class:"dropdown-item d-flex align-items-center",onClick:de(f=>e.addCoauthor(a,f),["prevent"])},[o("img",{alt:"",style:{width:"22px",height:"22px","border-radius":"50%","margin-right":"8px"},src:e.safeUrl(a?.photo)},null,8,dS),o("span",{textContent:c(a?.username)},null,8,uS)],8,lS))),256))],512),[[K,e.coauthorResults?.length>0]])]),D(o("small",{class:"form-text text-muted",textContent:c(e.coauthorError)},null,8,cS),[[K,e.coauthorError]])],512),[[K,e.role==="owner"||e.role==="admin"]]),o("div",pS,[(l(!0),d(X,null,ae(e.coauthors,(a,u)=>(l(),d("div",fS,[a?.photo?(l(),d("img",{key:0,alt:"",style:{width:"24px",height:"24px","border-radius":"50%"},src:e.safeUrl(a?.photo)},null,8,mS)):p("v-if",!0),o("a",{target:"_blank",textContent:c(a?.username),href:e.safeUrl("https://github.com/"+a?.username)},null,8,hS),t[107]||(t[107]=o("span",{class:"type-badge type-coauthor"},"Co-author",-1)),D(o("button",{type:"button",class:"btn btn-sm btn-icon",style:{"margin-left":"auto"},title:"Remove co-author",onClick:f=>e.removeCoauthor(a),"aria-label":"Remove co-author"},[...t[106]||(t[106]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,vS),[[K,e.role==="owner"||e.role==="admin"]])]))),256)),D(o("div",yS," No co-authors yet. ",512),[[K,!e.coauthors||e.coauthors?.length===0]])])],512),[[K,e.isUpdate&&e.detectedType==="repo"]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,gS)):p("v-if",!0),e.draftRestored?(l(),d("div",bS,[t[110]||(t[110]=b("Your unsaved draft was restored. ",-1)),o("button",{type:"button",class:"draft-discard",onClick:t[17]||(t[17]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",wS,[b(c(e.draftSaved?"Draft saved in this tab for 30 minutes.":"Unsaved changes. Keep this tab open until you save.")+" ",1),o("button",{type:"button",class:"draft-discard",onClick:t[18]||(t[18]=a=>e.discardDraft())},c(e.isUpdate?"Restore saved settings":"Discard changes"),1)])):p("v-if",!0),e.detectedType==="repo"&&(e.options.image||e.options.pdf)?(l(),d("p",kS,"Review enabled images and PDFs before sharing. Their contents are not anonymized.")):p("v-if",!0),o("button",{type:"button",class:"btn btn-outline-ink mobile-preview-jump",onClick:t[19]||(t[19]=a=>e.selectMobilePane("preview"))},[...t[111]||(t[111]=[b("Review preview ",-1),o("span",{"aria-hidden":"true"},"\u2192",-1)])]),D(o("div",ES,[e.detectedType==="repo"&&!e.isUpdate?(l(),d("button",{key:0,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[20]||(t[20]=de(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[112]||(t[112]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize Repository ",-1)])],8,CS)):p("v-if",!0),e.detectedType==="repo"&&e.isUpdate?(l(),d("button",{key:1,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[21]||(t[21]=de(a=>e.submitForm(a,()=>{e.anonymizeRepo(a)}),["prevent"]))},[...t[113]||(t[113]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update Repository ",-1)])],8,_S)):p("v-if",!0),e.detectedType==="pr"&&!e.isUpdate?(l(),d("button",{key:2,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[22]||(t[22]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[114]||(t[114]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize Pull Request ",-1)])],8,SS)):p("v-if",!0),e.detectedType==="pr"&&e.isUpdate?(l(),d("button",{key:3,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[23]||(t[23]=de(a=>e.submitForm(a,()=>{e.anonymizePullRequest(a)}),["prevent"]))},[...t[115]||(t[115]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update Pull Request ",-1)])],8,NS)):p("v-if",!0),e.detectedType==="gist"&&!e.isUpdate?(l(),d("button",{key:4,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[24]||(t[24]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[116]||(t[116]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize Gist ",-1)])],8,DS)):p("v-if",!0),e.detectedType==="gist"&&e.isUpdate?(l(),d("button",{key:5,type:"submit",disabled:e.sourceLoading,class:"btn btn-ink",onClick:t[25]||(t[25]=de(a=>e.submitForm(a,()=>{e.anonymizeGist(a)}),["prevent"]))},[...t[117]||(t[117]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update Gist ",-1)])],8,RS)):p("v-if",!0)],512),[[K,e.detectedType]])])),[[i,e.viewState]])],8,n2),p(" Preview column (right) "),e.detectedType==="repo"?(l(),d("div",{key:0,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[o("div",AS,[t[118]||(t[118]=o("span",{class:"paper-eyebrow"},"Live preview",-1)),o("span",OS,c(e.previewStatus==="ready"?"README with redactions applied":"README preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",IS,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",PS,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",VS,[t[119]||(t[119]=o("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),o("button",{class:"btn btn-outline-ink",type:"button",onClick:t[26]||(t[26]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),!e.sourceLoading&&!e.readme&&e.previewStatus==="idle"?(l(),d("div",qS,"No README is available to preview. Review the published files before sharing.")):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",{key:4,class:"anonymize-preview-body markdown-body body",innerHTML:e.sanitize(e.html_readme)},null,8,MS)):p("v-if",!0)],8,TS)):p("v-if",!0),e.detectedType==="gist"&&e.details?(l(),d("div",{key:1,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[o("div",LS,[t[120]||(t[120]=o("span",{class:"paper-eyebrow"},"Live preview",-1)),o("span",US,c(e.previewStatus==="ready"?"Gist with redactions applied":"Gist preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",FS,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",zS,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",HS,[t[121]||(t[121]=o("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),o("button",{class:"btn btn-outline-ink",type:"button",onClick:t[27]||(t[27]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",BS,[o("div",jS,[o("h2",GS,[e.options?.title?(l(),d("span",WS,c(e.anonymizeGistContent(e.details?.gist?.description)||"Untitled gist"),1)):p("v-if",!0),o("span",{class:A(["badge",{"badge-success":e.details?.gist?.isPublic,"badge-secondary":!e.details?.gist?.isPublic}])},c(e.details?.gist?.isPublic?"public":"secret"),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.gist?.updatedDate))},null,8,KS)):p("v-if",!0)]),e.options?.origin?(l(),d("small",YS,"Gist ID: "+c(e.details?.source?.gistId),1)):p("v-if",!0),e.options?.username&&e.details?.gist?.ownerLogin?(l(),d("small",JS,"By @"+c(e.anonymizeGistContent(e.details?.gist?.ownerLogin)),1)):p("v-if",!0),e.options?.content&&e.previewGistFiles?.length?(l(),d("div",QS,[o("ul",XS,[(l(!0),d(X,null,ae(e.previewGistFiles,(a,u)=>(l(),d("li",ZS,[o("div",xS,[o("strong",{textContent:c(a?.filename)},null,8,eN),a?.language?(l(),d("span",tN,c(a?.language),1)):p("v-if",!0)]),Ce(n,{file:a,terms:e.terms,options:e.options},null,8,["file","terms","options"])]))),256))])])):p("v-if",!0),e.options?.comments&&e.details?.gist?.comments&&e.details?.gist?.comments?.length?(l(),d("div",oN,[t[124]||(t[124]=o("h3",{class:"paper-section-eyebrow mt-3"},"Comments",-1)),o("ul",nN,[(l(!0),d(X,null,ae(e.details?.gist?.comments,(a,u)=>(l(),d("li",sN,[o("div",rN,[e.options?.username?(l(),d("span",iN,[t[122]||(t[122]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[123]||(t[123]=b(" @",-1)),o("span",{textContent:c(e.anonymizeGistContent(a?.author))},null,8,aN)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,lN)):p("v-if",!0)]),e.options?.body?(l(),d("div",dN,[Ce(r,{content:e.anonymizeGistContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])):p("v-if",!0)],8,$S)):p("v-if",!0),e.detectedType==="pr"&&e.details?(l(),d("div",{key:2,id:"workspace-preview",role:e.mobileWorkspace?"tabpanel":null,"aria-labelledby":e.mobileWorkspace?"workspace-preview-tab":null,class:"anonymize-preview-col"},[o("div",cN,[t[125]||(t[125]=o("span",{class:"paper-eyebrow"},"Live preview",-1)),o("span",pN,c(e.previewStatus==="ready"?"Pull request with redactions applied":"Pull request preview"),1)]),e.sourceLoading&&e.previewStatus==="idle"?(l(),d("div",fN,"Loading source\u2026")):p("v-if",!0),e.previewStatus==="loading"?(l(),d("div",mN,"Updating the anonymized preview\u2026")):p("v-if",!0),e.previewStatus==="error"?(l(),d("div",hN,[t[126]||(t[126]=o("p",null,"Unable to generate the anonymized preview. The latest redactions have not been verified.",-1)),o("button",{class:"btn btn-outline-ink",type:"button",onClick:t[28]||(t[28]=a=>e.retryPreview())},"Retry preview")])):p("v-if",!0),e.previewStatus==="ready"?(l(),d("div",vN,[o("div",yN,[o("h2",gN,[e.options?.title?(l(),d("span",bN,c(e.anonymizePrContent(e.details?.pullRequest?.title)),1)):p("v-if",!0),o("span",{class:A(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,wN)):p("v-if",!0)]),e.options?.origin?(l(),d("small",kN,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",EN,[Ce(r,{content:e.anonymizePrContent(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),e.options?.diff||e.options?.comments?(l(),d("nav",CN,[e.options?.diff?(l(),d("button",{key:0,class:A(["paper-tab",{active:e.prTabState?.active=="diff"}]),type:"button",role:"tab",id:"preview-pr-diff-tab","aria-selected":e.prTabState?.active==="diff","aria-controls":"preview-pr-diff-panel",tabindex:e.prTabState?.active==="diff"?0:-1,onKeydown:t[29]||(t[29]=a=>e.previewTabKeydown(a)),onClick:t[30]||(t[30]=a=>e.prTabState.active="diff")},[...t[127]||(t[127]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-code"})],-1),b(" Diff ",-1)])],42,_N)):p("v-if",!0),e.options?.comments?(l(),d("button",{key:1,class:A(["paper-tab",{active:e.prTabState?.active=="comments"}]),type:"button",role:"tab",id:"preview-pr-comments-tab","aria-selected":e.prTabState?.active==="comments","aria-controls":"preview-pr-comments-panel",tabindex:e.prTabState?.active==="comments"?0:-1,onKeydown:t[31]||(t[31]=a=>e.previewTabKeydown(a)),onClick:t[32]||(t[32]=a=>e.prTabState.active="comments")},[t[128]||(t[128]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,NN)],42,SN)):p("v-if",!0)])):p("v-if",!0),!e.options?.diff&&!e.options?.comments?(l(),d("div",DN,"Diff and comments are hidden by your display settings.")):p("v-if",!0),o("div",RN,[e.options?.diff&&e.prTabState?.active=="diff"?(l(),d("div",TN,[o("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.anonymizePrContent(e.details?.pullRequest?.diff)))},null,8,AN)])):p("v-if",!0),e.options?.comments&&e.prTabState?.active=="comments"?(l(),d("div",ON,[o("ul",IN,[(l(!0),d(X,null,ae(e.details?.pullRequest?.comments,(a,u)=>(l(),d("li",PN,[o("div",VN,[e.options?.username?(l(),d("span",qN,[t[129]||(t[129]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[130]||(t[130]=b(" @",-1)),o("span",{textContent:c(e.anonymizePrContent(a?.author))},null,8,MN)])):p("v-if",!0),e.options?.date?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(a?.updatedDate))},null,8,$N)):p("v-if",!0)]),e.options?.body?(l(),d("div",LN,[Ce(r,{content:e.anonymizePrContent(a?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0)]))),256))])])):p("v-if",!0)])])):p("v-if",!0)],8,uN)):p("v-if",!0)])],512),[[K,e.workspaceOpen||e.isUpdate]])],2)}var UN={class:"container-fluid h-100 anonymize-page"},FN={class:"row h-100 flex-column flex-md-row"},zN={class:"col-md sidePanel shadow overflow-auto anonymize-form-col"},HN={class:"form-group"},BN={class:"form-group"},jN={class:"form-check"},GN={class:"form-check-input",type:"checkbox",id:"update",name:"update"},WN={class:"form-group"},KN={class:"form-text text-muted"},YN=["href"],JN={class:"invalid-feedback"},QN={class:"form-text text-muted"},XN={class:"form-group"},ZN={id:"idHelp",class:"form-text text-muted"},xN={class:"invalid-feedback"},eD={class:"form-group"},tD={class:"invalid-feedback"},oD={class:"form-group"},nD={class:"form-control",id:"expiration",name:"expiration"},sD={class:"form-group",id:"expiration-date-form"},rD={class:"form-control",type:"date",name:"expirationDate",id:"expirationDate"},iD={class:"accordion mb-3",id:"options"},aD={class:"card"},lD={id:"collapseOne",class:"collapse show","aria-labelledby":"headingOne","data-parent":"#options"},dD={class:"card-body"},uD={class:"form-group mb-0"},cD={class:"form-check"},pD={class:"form-check-input",type:"checkbox",id:"link",name:"link"},fD={class:"form-check"},mD={class:"form-check-input",type:"checkbox",id:"image",name:"image"},hD={class:"form-check"},vD={class:"form-check-input",type:"checkbox",id:"date",name:"date"},yD={class:"form-check"},gD={class:"form-check-input",type:"checkbox",id:"username",name:"username"},bD={class:"form-check"},wD={class:"form-check-input",type:"checkbox",id:"comments",name:"comments"},kD={class:"form-check"},ED={class:"form-check-input",type:"checkbox",id:"diff",name:"diff"},CD={class:"form-check"},_D={class:"form-check-input",type:"checkbox",id:"origin",name:"origin"},SD={class:"form-check"},ND={class:"form-check-input",type:"checkbox",id:"title",name:"title"},DD={class:"form-check"},RD={class:"form-check-input",type:"checkbox",id:"body",name:"body"},TD=["textContent"],AD={class:"anonymize-submit-bar"},OD={key:0,class:"col-md-8 p-2 overflow-auto anonymize-preview-col"},ID={class:"d-flex w-100 justify-content-between align-items-center flex-wrap"},PD={class:"pr-title mb-1"},VD={key:0},qD=["textContent"],MD={key:0},$D={key:1,class:"pr-body shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},LD={class:"nav nav-tabs",id:"myTab",role:"tablist"},UD={key:0,class:"nav-item",role:"presentation"},FD={key:1,class:"nav-item",role:"presentation"},zD=["textContent"],HD={class:"tab-content",id:"pills-tabContent"},BD={class:"tab-pane show active",id:"pills-diff",role:"tabpanel","aria-labelledby":"pills-diff-tab"},jD={key:0,class:"pr-diff shadow-sm p-3 mb-4 rounded",style:{background:"var(--sidebar-bg-color)"}},GD={style:{"overflow-x":"auto"}},WD=["innerHTML"],KD={key:0,class:"pr-comments list-group"},YD={class:"pr-comment list-group-item"},JD={class:"d-flex w-100 justify-content-between flex-wrap"},QD={key:0,class:"mb-1"},XD=["textContent"],ZD={class:"mb-1"};function Al(e,t){let n=We("markdown"),r=be("field"),s=be("form");return l(),d("div",UN,[o("div",FN,[o("div",zN,[o("div",{class:A(["p-0 py-2 m-auto",{card:!e.pullRequestUrl,container:e.pullRequestUrl}])},[D((l(),d("form",{class:A(["form needs-validation",{"card-body":!e.pullRequestUrl}]),name:"anonymizeForm",novalidate:""},[t[30]||(t[30]=pe('Anonymize \xA0/\xA0 Pull request
Anonymize a pull request Fill in the details \u2014 it only takes a minute.
Source
',4)),p(" pullRequestUrl "),o("div",HN,[t[2]||(t[2]=o("label",{for:"pullRequestUrl"},"URL of your pull request",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestUrl?.invalid}]),name:"pullRequestUrl",id:"pullRequestUrl",placeholder:"https://github.com/owner/repo/pull/123"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestUrl=i},value:e.pullRequestUrl,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"},change:()=>{e.pullRequestSelected()}}]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is not accessible. Some organizations are restricting the access to the repositories. ",513),[[K,e.anonymize?.pullRequestUrl?.errors?.access]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" does not exist or is not accessible ",513),[[K,e.anonymize?.pullRequestUrl?.errors?.missing]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestUrl)+" is already anonymized ",513),[[K,e.anonymize?.pullRequestUrl?.errors?.used]])]),D(o("div",null,[o("div",BN,[o("div",jN,[D(o("input",GN,null,512),[[r,{state:e.viewState,set:i=>{e.options.update=i},value:e.options?.update,form:"anonymizeForm",options:{}}]]),t[3]||(t[3]=o("label",{class:"form-check-label",for:"update"},"Auto update",-1)),t[4]||(t[4]=o("small",{id:"updateHelp",class:"form-text text-muted"},"Automatically update the anonymized pull request with the latest updates. The pull request is updated once per day maximum.",-1))])]),t[26]||(t[26]=o("div",{class:"paper-section-eyebrow anonymize-section-title"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})]),b(" Conference ID ")],-1)),p(" Conference "),o("div",WN,[t[5]||(t[5]=o("label",{for:"conference"},[b("Conference ID "),o("span",{class:"text-muted"},"(Optional)")],-1)),D(o("input",{class:A(["form-control",{"is-invalid":e.anonymize?.conference?.invalid}]),id:"conference",name:"conference"},null,2),[[r,{state:e.viewState,set:i=>{e.conference=i},value:e.conference,form:"anonymizeForm",options:{debounce:{default:800,blur:0},updateOn:"default blur"}}]]),D(o("small",KN,[o("a",{target:"_target",href:e.safeUrl(e.conference_data?.url)},c(e.conference_data?.name),9,YN),b(" will expire on "+c(e.fmt?.date(e.conference_data?.endDate))+".",1)],512),[[K,e.conference_data]]),D(o("div",JN," The conference is not activated. ",512),[[K,e.anonymize?.conference?.errors?.activated]]),D(o("small",QN," Use the Conference ID that your conference provided you. This will update automatically the anonymization options based on the conference preferences. ",512),[[K,!e.conference_data]])]),t[27]||(t[27]=o("div",{class:"paper-section-eyebrow anonymize-section-title"},[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})]),b(" Anonymization Options ")],-1)),p(" Pull Request ID "),o("div",XN,[t[6]||(t[6]=o("label",{for:"pullRequestId"},"Anonymized pull request id",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.anonymize?.pullRequestId?.invalid}]),name:"pullRequestId",id:"pullRequestId"},null,2),[[r,{state:e.viewState,set:i=>{e.pullRequestId=i},value:e.pullRequestId,form:"anonymizeForm",options:{debounce:{default:1e3,blur:0,click:0},updateOn:"default blur click"}}]]),o("small",ZN,"Id used in the url: https://anonymous.4open.science/r/"+c(e.pullRequestId),1),D(o("div",xN," Repository id can only contain letters and numbers ",512),[[K,e.anonymize?.pullRequestId?.errors?.format]]),D(o("div",{class:"invalid-feedback"},c(e.pullRequestId)+" is already used ",513),[[K,e.anonymize?.pullRequestId?.errors?.used]])]),p(" Terms "),o("div",eD,[t[7]||(t[7]=o("label",{for:"terms"},"Terms to anonymize",-1)),D(o("textarea",{class:A(["form-control",{"is-invalid":e.anonymize?.terms?.invalid}]),id:"terms",name:"terms",rows:"3"},null,2),[[r,{state:e.viewState,set:i=>{e.terms=i},value:e.terms,form:"anonymizeForm",options:{debounce:250}}]]),t[8]||(t[8]=o("small",{id:"termsHelp",class:"form-text text-muted"},"One term per line. Each term will be replaced by XXX.",-1)),D(o("div",tD," Terms are in an invalid format ",512),[[K,e.anonymize?.terms?.errors?.format]])]),o("div",oD,[t[10]||(t[10]=o("label",{for:"expiration"},"Expiration strategy",-1)),D((l(),d("select",nD,[...t[9]||(t[9]=[o("option",{value:"never",selected:""},"Never expire",-1),o("option",{value:"redirect"}," Redirect to GitHub when expired ",-1),o("option",{value:"remove"},"Remove when expired",-1)])])),[[r,{state:e.viewState,set:i=>{e.options.expirationMode=i},value:e.options?.expirationMode,form:"anonymizeForm",options:{}}]]),t[11]||(t[11]=o("small",{class:"form-text text-muted"},"Define the expiration strategy for the anonymized repository.",-1))]),D(o("div",sD,[t[12]||(t[12]=o("label",{for:"expirationDate"},"Expiration date of the anonymized repository",-1)),D(o("input",rD,null,512),[[r,{state:e.viewState,set:i=>{e.options.expirationDate=i},value:e.options?.expirationDate,form:"anonymizeForm",options:{}}]]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the repository will be removed and the visitor will not be able to see the content of the repository.",513),[[K,e.options?.expirationMode=="remove"]]),D(o("small",{class:"form-text text-muted"},"After "+c(e.fmt?.date(e.options?.expirationDate))+", the visitors of the anonymized repository will be redirected to "+c(e.pullRequestUrl)+".",513),[[K,e.options?.expirationMode=="redirect"]])],512),[[K,e.options?.expirationMode!="never"]]),o("div",iD,[o("div",aD,[t[25]||(t[25]=pe('',1)),o("div",lD,[o("div",dD,[o("div",uD,[o("div",cD,[D(o("input",pD,null,512),[[r,{state:e.viewState,set:i=>{e.options.link=i},value:e.options?.link,form:"anonymizeForm",options:{}}]]),t[13]||(t[13]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[14]||(t[14]=o("small",{class:"form-text text-muted"},"Keep or remove all the links.",-1))]),o("div",fD,[D(o("input",mD,null,512),[[r,{state:e.viewState,set:i=>{e.options.image=i},value:e.options?.image,form:"anonymizeForm",options:{}}]]),t[15]||(t[15]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[16]||(t[16]=o("small",{class:"form-text text-muted"},"Images are not anonymized",-1))]),o("div",hD,[D(o("input",vD,null,512),[[r,{state:e.viewState,set:i=>{e.options.date=i},value:e.options?.date,form:"anonymizeForm",options:{}}]]),t[17]||(t[17]=o("label",{class:"form-check-label",for:"date"},"Display dates",-1)),t[18]||(t[18]=o("small",{class:"form-text text-muted"},"Display the date of the Pull Request and the date of the comments.",-1))]),o("div",yD,[D(o("input",gD,null,512),[[r,{state:e.viewState,set:i=>{e.options.username=i},value:e.options?.username,form:"anonymizeForm",options:{}}]]),t[19]||(t[19]=o("label",{class:"form-check-label",for:"username"},"Display username",-1))]),o("div",bD,[D(o("input",wD,null,512),[[r,{state:e.viewState,set:i=>{e.options.comments=i},value:e.options?.comments,form:"anonymizeForm",options:{}}]]),t[20]||(t[20]=o("label",{class:"form-check-label",for:"comments"},"Display comments",-1))]),o("div",kD,[D(o("input",ED,null,512),[[r,{state:e.viewState,set:i=>{e.options.diff=i},value:e.options?.diff,form:"anonymizeForm",options:{}}]]),t[21]||(t[21]=o("label",{class:"form-check-label",for:"diff"},"Display diff",-1))]),o("div",CD,[D(o("input",_D,null,512),[[r,{state:e.viewState,set:i=>{e.options.origin=i},value:e.options?.origin,form:"anonymizeForm",options:{}}]]),t[22]||(t[22]=o("label",{class:"form-check-label",for:"origin"},"Display the project name",-1))]),o("div",SD,[D(o("input",ND,null,512),[[r,{state:e.viewState,set:i=>{e.options.title=i},value:e.options?.title,form:"anonymizeForm",options:{}}]]),t[23]||(t[23]=o("label",{class:"form-check-label",for:"title"},"Display the PR title",-1))]),o("div",DD,[D(o("input",RD,null,512),[[r,{state:e.viewState,set:i=>{e.options.body=i},value:e.options?.body,form:"anonymizeForm",options:{}}]]),t[24]||(t[24]=o("label",{class:"form-check-label",for:"body"},"Display the PR body and comment bodies",-1))])])])])])])],512),[[K,e.pullRequestUrl]]),e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,TD)):p("v-if",!0),D(o("div",AD,[e.isUpdate?p("v-if",!0):(l(),d("button",{key:0,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[0]||(t[0]=de(i=>e.submitForm(i,()=>{e.anonymizePullRequest(i)}),["prevent"]))},[...t[28]||(t[28]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize ",-1)])])),e.isUpdate?(l(),d("button",{key:1,id:"submit",type:"submit",class:"btn btn-ink btn-block",onClick:t[1]||(t[1]=de(i=>e.submitForm(i,()=>{e.updatePullRequest(i)}),["prevent"]))},[...t[29]||(t[29]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-save"})],-1),b(" Update ",-1)])])):p("v-if",!0)],512),[[K,e.pullRequestUrl]])],2)),[[s,e.viewState]])],2)]),e.details?(l(),d("div",OD,[o("div",ID,[o("h2",PD,[e.options?.title?(l(),d("span",VD,c(e.anonymize(e.details?.pullRequest?.title)),1)):p("v-if",!0),o("span",{class:A(["badge",{"badge-success":e.details?.pullRequest?.merged,"badge-warning":e.details?.pullRequest?.state=="open","badge-danger":e.details?.pullRequest?.state=="closed"&&!e.details?.pullRequest?.merged}])},c(e.fmt?.title(e.details?.pullRequest?.merged?"merged":e.details?.pullRequest?.state)),3)]),e.options?.date?(l(),d("small",{key:0,textContent:c(e.fmt?.date(e.details?.pullRequest?.updatedDate))},null,8,qD)):p("v-if",!0)]),e.options?.origin?(l(),d("small",MD,"Pull Request on "+c(e.details?.pullRequest?.baseRepositoryFullName),1)):p("v-if",!0),e.options?.body?(l(),d("div",$D,[Ce(n,{content:e.anonymize(e.details?.pullRequest?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])])):p("v-if",!0),o("ul",LD,[e.options?.diff?(l(),d("li",UD,[...t[31]||(t[31]=[o("button",{class:"nav-link active",id:"pills-diff-tab","data-toggle":"pill","data-target":"#pills-diff",type:"button",role:"tab","aria-controls":"pills-diff","aria-selected":"true"}," Diff ",-1)])])):p("v-if",!0),e.options?.comments?(l(),d("li",FD,[o("button",{class:A(["nav-link",{active:!e.options?.diff}]),id:"pills-comments-tab","data-toggle":"pill","data-target":"#pills-comments",type:"button",role:"tab","aria-controls":"pills-comments","aria-selected":"false"},[o("span",{textContent:c(e.fmt.plural(e.details?.pullRequest?.comments?.length,{0:"No comment",one:"One Comment",other:"{} Comments"}))},null,8,zD)],2)])):p("v-if",!0)]),o("div",HD,[o("div",BD,[e.options?.diff?(l(),d("div",jD,[o("pre",GD,[o("code",{innerHTML:e.sanitize(e.fmt?.diff(e.anonymize(e.details?.pullRequest?.diff)))},null,8,WD)])])):p("v-if",!0)]),o("div",{class:A(["tab-pane",{"show active":!e.options?.diff}]),id:"pills-comments",role:"tabpanel","aria-labelledby":"pills-comments-tab"},[e.options?.comments?(l(),d("ul",KD,[(l(!0),d(X,null,ae(e.details?.pullRequest?.comments,(i,a)=>(l(),d("li",YD,[o("div",JD,[e.options?.username?(l(),d("h5",QD," @"+c(e.anonymize(i?.author)),1)):p("v-if",!0),e.options?.date?(l(),d("small",{key:1,textContent:c(e.fmt?.date(i?.updatedDate))},null,8,XD)):p("v-if",!0)]),o("p",ZD,[e.options?.body?(l(),Lt(n,{key:0,class:"pr-comment-body",content:e.anonymize(i?.body),options:e.options,terms:e.terms},null,8,["content","options","terms"])):p("v-if",!0)])]))),256))])):p("v-if",!0)],2)])])):p("v-if",!0)])])}var xD={class:"container paper-page claim-page"},eR={class:"paper-settings-main claim-form"},tR={class:"form-group"},oR={class:"invalid-feedback"},nR={class:"form-group"};function Ol(e,t){let n=be("field"),r=be("form");return l(),d("div",xD,[t[6]||(t[6]=pe('Claim an anonymization Take ownership of an existing anonymized repository so it appears on your dashboard.
',3)),o("div",eR,[t[5]||(t[5]=o("p",{class:"paper-section-copy"},"Use this when an anonymization was created by a co-author or from another account. You must have access to the GitHub repository it was made from.",-1)),D((l(),d("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{e.claim()}),["prevent"]))},[o("div",tR,[t[1]||(t[1]=o("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.claimForm?.repoUrl?.invalid&&(e.claimForm?.repoUrl?.touched||e.claimForm?.submitted)}]),name:"repoUrl",id:"repoUrl",placeholder:"https://github.com/owner/repository",required:""},null,2),[[n,{state:e.viewState,set:s=>{e.repoUrl=s},value:e.repoUrl,form:"claimForm",options:{}}]]),D(o("div",oR," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[K,e.claimForm?.repoUrl?.errors?.not_found]])]),o("div",nR,[t[2]||(t[2]=o("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.claimForm?.repoId?.invalid&&(e.claimForm?.repoId?.touched||e.claimForm?.submitted)}]),name:"repoId",id:"repoId",placeholder:"e.g. my-paper-7F2A","aria-describedby":"idHelp",required:""},null,2),[[n,{state:e.viewState,set:s=>{e.repoId=s},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=o("small",{id:"idHelp",class:"form-text text-muted"},[b("The ID is the last part of the anonymized URL: "),o("code",null,"anonymous.4open.science/r/"),b(".")],-1))]),t[4]||(t[4]=o("button",{id:"submit",type:"submit",class:"btn btn-ink"}," Claim anonymization ",-1))],32)),[[r,e.viewState]])])])}var sR={class:"container page paper-page conference-page"},rR={class:"paper-crumbs"},iR={class:"here"},aR={class:"d-flex align-items-end flex-wrap",style:{gap:"12px","justify-content":"space-between"}},lR=["textContent"],dR={key:0,class:"paper-page-lede"},uR=["textContent","href"],cR={class:"d-flex align-items-center flex-wrap",style:{gap:"10px"}},pR=["textContent"],fR=["href"],mR={class:"paper-meta-rule"},hR=["textContent"],vR=["textContent"],yR={key:0},gR={class:"search-wrap"},bR={type:"search",id:"search",class:"form-control","aria-label":"Search repositories",placeholder:"Search by ID or source repository\u2026",autocomplete:"off"},wR={class:"dashboard-filter-controls"},kR={class:"dropdown"},ER={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},CR={class:"filter-btn-value"},_R={class:"dropdown-menu","aria-labelledby":"dropdownSort"},SR={class:"form-check dropdown-item"},NR={class:"form-check-input",type:"radio",name:"sort",id:"anonymizeDate",value:"-anonymizeDate"},DR={class:"form-check dropdown-item"},RR={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"repoId"},TR={class:"form-check dropdown-item"},AR={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},OR={class:"form-check dropdown-item"},IR={class:"form-check-input",type:"radio",name:"sort",id:"sortViews",value:"-pageView"},PR={class:"dropdown"},VR={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},qR={key:0,class:"filter-btn-value"},MR={key:1,class:"filter-btn-value"},$R={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},LR={class:"form-check dropdown-item"},UR=["id"],FR=["for"],zR={class:"dashboard-meta"},HR={class:"dashboard-count"},BR={key:0},jR={key:0},GR={key:1},WR={key:1},KR={key:0,class:"filter-chip"},YR=["onClick","aria-label"],JR={class:"paper-table paper-table-repos w-100",role:"table","aria-label":"Repositories"},QR={class:"cell-anon",role:"cell"},XR={class:"anon-text"},ZR=["textContent","href"],xR={class:"anon-sub"},eT={class:"anon-source"},tT=["textContent","href"],oT={key:0},nT=["textContent","href"],sT={key:1},rT=["href"],iT={class:"cell-status",role:"cell"},aT={class:"status-line"},lT=["textContent"],dT={key:0,class:"status-sub"},uT={class:"cell-views num",role:"cell"},cT=["textContent"],pT={class:"cell-expires",role:"cell"},fT={key:0,class:"expires-never"},mT=["textContent"],hT={key:2,class:"expires-past"},vT={key:0},yT={key:3,class:"empty-dash","aria-label":"Not applicable"},gT={class:"cell-actions",role:"cell"},bT={class:"dropdown"},wT=["aria-label"],kT={class:"dropdown-menu dropdown-menu-right"},ET=["href"],CT=["href"],_T={key:0,class:"paper-table-empty"},ST={key:0},NT={key:1},DT={key:2,class:"paper-table-empty-actions"};function Il(e,t){let n=be("field"),r=be("form");return l(),d("div",sR,[o("div",null,[o("div",rR,[t[2]||(t[2]=o("a",{href:"/dashboard"},"My work",-1)),t[3]||(t[3]=b(" \xA0/\xA0 ",-1)),t[4]||(t[4]=o("a",{href:"/conferences"},"Conferences",-1)),t[5]||(t[5]=b(" \xA0/\xA0 ",-1)),o("span",iR,c(e.conference?.conferenceID),1)]),o("div",aR,[o("div",null,[o("h1",{class:"paper-page-title",textContent:c(e.conference?.name)},null,8,lR),e.conference?.url?(l(),d("p",dR,[o("a",{target:"_blank",rel:"noopener",textContent:c(e.conference?.url),href:e.safeUrl(e.conference?.url)},null,8,uR)])):p("v-if",!0)]),o("div",cR,[o("span",{class:A(["status-pill",{"status-pill-ready":e.conference?.status=="ready","status-pill-removed":e.conference?.status=="removed"||e.conference?.status=="expired"}])},[o("span",{class:A(["status-dot","status-"+e.conference?.status]),"aria-hidden":"true"},null,2),o("span",{textContent:c(e.fmt?.statusLabel(e.conference?.status))},null,8,pR)],2),o("a",{class:"btn btn-outline-ink",href:e.safeUrl("/conference/"+e.conference?.conferenceID+"/edit")},[...t[6]||(t[6]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit conference",-1)])],8,fR)])]),o("div",mR,[o("span",null,[t[7]||(t[7]=b("ID ",-1)),o("b",{class:"commit-hash",textContent:c(e.conference?.conferenceID)},null,8,hR)]),o("span",null,[t[8]||(t[8]=b("Review window ",-1)),o("b",null,c(e.fmt?.date(e.conference?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(e.conference?.endDate,"mediumDate")),1)]),o("span",null,[t[9]||(t[9]=b("Repositories ",-1)),o("b",null,c(e.fmt?.number(e.conference?.repositories?.length)),1)]),o("span",null,[t[10]||(t[10]=b("Plan ",-1)),o("b",{textContent:c(e.conference?.plan?.name||e.conference?.plan?.planID||"Free")},null,8,vR)]),e.conference?.price?(l(),d("span",yR,[t[11]||(t[11]=b("Cost so far ",-1)),o("b",null,c(e.fmt?.number(e.conference?.price,2))+" \u20AC",1)])):p("v-if",!0)]),t[32]||(t[32]=o("div",{class:"paper-section-eyebrow"},"Repositories",-1)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter repositories","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[o("div",gR,[D(o("input",bR,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),o("div",wR,[o("div",kR,[o("button",ER,[t[12]||(t[12]=o("span",{class:"filter-btn-label"},"Sort",-1)),o("span",CR,c({"-anonymizeDate":"Anonymize date",repoId:"ID","-status":"Status","-pageView":"Views"}[e.orderBy]||"Custom"),1)]),o("div",_R,[t[17]||(t[17]=o("h6",{class:"dropdown-header"},"Order by",-1)),o("div",SR,[D(o("input",NR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[13]||(t[13]=o("label",{class:"form-check-label",for:"anonymizeDate"},"Anonymize date",-1))]),o("div",DR,[D(o("input",RR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[14]||(t[14]=o("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),o("div",TR,[D(o("input",AR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[15]||(t[15]=o("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),o("div",OR,[D(o("input",IR,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[16]||(t[16]=o("label",{class:"form-check-label",for:"sortViews"},"Views",-1))])])]),o("div",PR,[o("button",VR,[t[18]||(t[18]=o("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",qR,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",MR,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),o("div",$R,[t[19]||(t[19]=o("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(X,null,ae(e.statusLabels,(s,i,a)=>(l(),d("div",LR,[D(o("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,UR),[[n,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),o("label",{class:"form-check-label",for:"status-"+i},c(s),9,FR)]))),256))])])])],32)),[[r,e.viewState]]),o("div",zR,[o("span",HR,[e.filteredRepositories?.length===e.conference?.repositories?.length?(l(),d("span",BR,[b(c(e.fmt?.number(e.conference?.repositories?.length))+" repositor",1),e.conference?.repositories?.length===1?(l(),d("span",jR,"y")):p("v-if",!0),e.conference?.repositories?.length!==1?(l(),d("span",GR,"ies")):p("v-if",!0)])):p("v-if",!0),e.filteredRepositories?.length!==e.conference?.repositories?.length?(l(),d("span",WR,c(e.fmt?.number(e.filteredRepositories?.length))+" of "+c(e.fmt?.number(e.conference?.repositories?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(X,null,ae(e.filters?.status,(s,i,a)=>(l(),d(X,null,[s===!1?(l(),d("span",KR,[b(" Hiding "+c(e.statusLabels[i])+" ",1),o("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,YR)])):p("v-if",!0)],64))),256))]),o("div",JR,[t[31]||(t[31]=o("div",{class:"paper-table-head",role:"row"},[o("div",{role:"columnheader"},"Repository"),o("div",{role:"columnheader"},"Status"),o("div",{role:"columnheader",class:"num"},"Views"),o("div",{role:"columnheader"},"Expires"),o("div",{role:"columnheader"},[o("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(X,null,ae(e.filteredRepositories,(s,i)=>(l(),d("div",{class:A(["paper-table-row",{"repo-inactive":s?.status=="expired"||s?.status=="removed","repo-error":s?.status=="error"}]),role:"row",key:s?.repoId},[o("div",QR,[t[22]||(t[22]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Repository"},[o("use",{href:"#project-type-repo"})],-1)),o("div",XR,[o("a",{class:"repo-name",textContent:c(s?.repoId),href:e.safeUrl("/r/"+s?.repoId+"/")},null,8,ZR),o("div",xR,[o("span",eT,[o("a",{target:"_blank",rel:"noopener",textContent:c(s?.source?.fullName),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/")},null,8,tT),s?.options?.update&&s?.source?.branch?(l(),d("span",oT,[t[20]||(t[20]=b(" \xB7 ",-1)),o("a",{target:"_blank",rel:"noopener",textContent:c(s?.source?.branch),href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.branch)},null,8,nT)])):p("v-if",!0),s?.source?.commit?(l(),d("span",sT,[t[21]||(t[21]=b(" \xB7 ",-1)),o("a",{class:"commit-hash",target:"_blank",rel:"noopener",href:e.safeUrl("https://github.com/"+s?.source?.fullName+"/tree/"+s?.source?.commit)},"@"+c(s?.source?.commit?.substring(0,8)),9,rT)])):p("v-if",!0)])])])]),o("div",iT,[o("div",aT,[o("span",{class:A(["status-dot","status-"+(s?.status=="error"?"error":s?.status=="ready"?"ready":s?.status=="expired"||s?.status=="removed"?s?.status:"progress")]),"aria-hidden":"true"},null,2),o("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(s?.status))},null,8,lT)]),s?.anonymizeDate?(l(),d("div",dT,"anonymized "+c(e.fmt?.humanTime(s?.anonymizeDate)),1)):p("v-if",!0)]),o("div",uT,[t[23]||(t[23]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),t[24]||(t[24]=b()),o("span",{textContent:c(e.fmt?.number(s?.pageView))},null,8,cT)]),o("div",pT,[t[26]||(t[26]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),s?.status=="ready"&&(s?.options?.expirationMode==="never"||!s?.options?.expirationDate)?(l(),d("span",fT,"Never")):p("v-if",!0),s?.status=="ready"&&s?.options?.expirationMode!=="never"&&s?.options?.expirationDate?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(s?.options?.expirationDate))},null,8,mT)):p("v-if",!0),s?.status=="expired"?(l(),d("span",hT,[t[25]||(t[25]=b("Expired",-1)),s?.options?.expirationDate?(l(),d("span",vT,c(e.fmt?.humanTime(s?.options?.expirationDate)),1)):p("v-if",!0)])):p("v-if",!0),s?.status!="ready"&&s?.status!="expired"?(l(),d("span",yT,"\u2014")):p("v-if",!0)]),o("div",gT,[o("div",bT,[o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","aria-label":"Actions for "+s?.repoId},[...t[27]||(t[27]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})],-1)])],8,wT),o("div",kT,[o("a",{class:"dropdown-item",href:e.safeUrl("/r/"+s?.repoId+"/")},[...t[28]||(t[28]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View ",-1)])],8,ET),o("a",{class:"dropdown-item",href:e.safeUrl("/anonymize/"+s?.repoId)},[...t[29]||(t[29]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit ",-1)])],8,CT)])])])],2))),128)),e.filteredRepositories?.length==0?(l(),d("div",_T,[t[30]||(t[30]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1)),e.conference?.repositories?.length?p("v-if",!0):(l(),d("span",ST,"No repository has been submitted to this conference yet.")),e.conference?.repositories?.length?(l(),d("span",NT,"Nothing matches the current filters.")):p("v-if",!0),e.conference?.repositories?.length?(l(),d("div",DT,[o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")])):p("v-if",!0)])):p("v-if",!0)])])])}var RT={class:"container page paper-page conferences-page"},TT={class:"row"},AT={class:"w-100"},OT={class:"search-wrap"},IT={type:"search",id:"search",class:"form-control","aria-label":"Search conferences",placeholder:"Search by name or ID\u2026",autocomplete:"off"},PT={class:"dashboard-filter-controls"},VT={class:"dropdown"},qT={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},MT={class:"filter-btn-value"},$T={class:"dropdown-menu","aria-labelledby":"dropdownSort"},LT={class:"form-check dropdown-item"},UT={class:"form-check-input",type:"radio",name:"sort",id:"sortName",value:"name"},FT={class:"form-check dropdown-item"},zT={class:"form-check-input",type:"radio",name:"sort",id:"sortID",value:"conferenceID"},HT={class:"form-check dropdown-item"},BT={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},jT={class:"dropdown"},GT={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},WT={key:0,class:"filter-btn-value"},KT={key:1,class:"filter-btn-value"},YT={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},JT={class:"form-check dropdown-item"},QT=["id"],XT=["for"],ZT={class:"dashboard-meta"},xT={class:"dashboard-count"},eA={key:0},tA={key:0},oA={key:1},nA={key:0,class:"filter-chip"},sA=["onClick","aria-label"],rA={key:0,class:"conference-feedback",role:"alert"},iA={key:1,class:"conference-feedback",role:"status"},aA={class:"paper-table paper-table-conferences w-100",role:"table","aria-label":"Conferences"},lA={class:"cell-anon",role:"cell"},dA={class:"anon-text"},uA=["textContent","href"],cA={class:"anon-sub"},pA={class:"anon-source"},fA=["textContent"],mA={key:0},hA=["textContent","href"],vA={class:"cell-status",role:"cell"},yA={class:"status-line"},gA=["textContent"],bA={class:"cell-views num",role:"cell"},wA=["textContent"],kA={class:"cell-expires",role:"cell"},EA={key:0},CA={key:1,class:"empty-dash","aria-label":"No review window"},_A={class:"cell-actions",role:"cell"},SA={class:"dropdown"},NA=["disabled","aria-label"],DA={class:"dropdown-menu dropdown-menu-right"},RA=["href"],TA=["href"],AA={key:0},OA=["onClick"],IA={key:0,class:"paper-table-empty"},PA={key:0},VA={key:1},qA={class:"paper-table-empty-actions"},MA={key:1,href:"/conference/new",class:"btn btn-ink"};function Pl(e,t){let n=be("field"),r=be("form");return l(),d("div",RT,[o("div",TT,[o("div",AT,[t[10]||(t[10]=pe('Your conferences Group anonymizations by venue, give chairs a shared dashboard, and set one expiry for every submission.
New conference ',2)),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter conferences","accept-charset":"UTF-8",onSubmit:t[0]||(t[0]=de(s=>e.submitForm(s,()=>{s.preventDefault()}),["prevent"]))},[o("div",OT,[D(o("input",IT,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),o("div",PT,[o("div",VT,[o("button",qT,[t[3]||(t[3]=o("span",{class:"filter-btn-label"},"Sort",-1)),o("span",MT,c({name:"Name",conferenceID:"ID","-status":"Status"}[e.orderBy]||"Custom"),1)]),o("div",$T,[t[7]||(t[7]=o("h6",{class:"dropdown-header"},"Order by",-1)),o("div",LT,[D(o("input",UT,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=o("label",{class:"form-check-label",for:"sortName"},"Name",-1))]),o("div",FT,[D(o("input",zT,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[5]||(t[5]=o("label",{class:"form-check-label",for:"sortID"},"ID",-1))]),o("div",HT,[D(o("input",BT,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[6]||(t[6]=o("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))])])]),o("div",jT,[o("button",GT,[t[8]||(t[8]=o("span",{class:"filter-btn-label"},"Status",-1)),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?(l(),d("span",WT,"All")):p("v-if",!0),e.filters?.status?.ready&&e.filters?.status?.expired&&e.filters?.status?.removed?p("v-if",!0):(l(),d("span",KT,c((e.filters?.status?.ready?0:1)+(e.filters?.status?.expired?0:1)+(e.filters?.status?.removed?0:1))+" hidden ",1))]),o("div",YT,[t[9]||(t[9]=o("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(X,null,ae(e.statusLabels,(s,i,a)=>(l(),d("div",JT,[D(o("input",{class:"form-check-input",type:"checkbox",id:"status-"+i},null,8,QT),[[n,{state:e.viewState,set:u=>{e.filters.status[i]=u},value:e.filters?.status[i],form:null,options:{}}]]),o("label",{class:"form-check-label",for:"status-"+i},c(s),9,XT)]))),256))])])])],32)),[[r,e.viewState]]),o("div",ZT,[o("span",xT,[e.filteredConferences?.length===e.conferences?.length?(l(),d("span",eA,[b(c(e.fmt?.number(e.conferences?.length))+" conference",1),e.conferences?.length!==1?(l(),d("span",tA,"s")):p("v-if",!0)])):p("v-if",!0),e.filteredConferences?.length!==e.conferences?.length?(l(),d("span",oA,c(e.fmt?.number(e.filteredConferences?.length))+" of "+c(e.fmt?.number(e.conferences?.length))+" shown",1)):p("v-if",!0)]),(l(!0),d(X,null,ae(e.filters?.status,(s,i,a)=>(l(),d(X,null,[s===!1?(l(),d("span",nA,[b(" Hiding "+c(e.statusLabels[i])+" ",1),o("button",{type:"button",class:"filter-chip-close",onClick:u=>{e.filters.status[i]=!0},"aria-label":"Show "+e.statusLabels[i]+" again"},"\xD7",8,sA)])):p("v-if",!0)],64))),256))])]),e.error?(l(),d("div",rA,[o("span",null,c(e.error),1),o("button",{type:"button",class:"btn btn-outline-ink",onClick:t[1]||(t[1]=s=>e.loadConferences())},"Retry")])):p("v-if",!0),e.loading?(l(),d("div",iA,"Loading conferences\u2026")):p("v-if",!0),o("div",aA,[t[24]||(t[24]=o("div",{class:"paper-table-head",role:"row"},[o("div",{role:"columnheader"},"Conference"),o("div",{role:"columnheader"},"Status"),o("div",{role:"columnheader",class:"num"},"Repos"),o("div",{role:"columnheader"},"Review window"),o("div",{role:"columnheader"},[o("span",{class:"sr-only"},"Actions")])],-1)),(l(!0),d(X,null,ae(e.filteredConferences,(s,i)=>(l(),d("div",{class:A(["paper-table-row row-clickable",{"repo-inactive":s?.status=="expired"||s?.status=="removed"}]),role:"row",key:s?.conferenceID},[o("div",lA,[t[13]||(t[13]=o("svg",{class:"ui-icon record-type-icon",role:"img","aria-label":"Conference"},[o("use",{href:"#project-icon-conference"})],-1)),o("div",dA,[o("a",{class:"repo-name",textContent:c(s?.name),href:e.safeUrl("/conference/"+s?.conferenceID)},null,8,uA),o("div",cA,[o("span",pA,[t[12]||(t[12]=b("ID ",-1)),o("span",{class:"commit-hash",textContent:c(s?.conferenceID)},null,8,fA),s?.url?(l(),d("span",mA,[t[11]||(t[11]=b(" \xB7 ",-1)),o("a",{target:"_blank",rel:"noopener",textContent:c(e.fmt?.limitTo(s?.url,60)),href:e.safeUrl(s?.url)},null,8,hA)])):p("v-if",!0)])])])]),o("div",vA,[o("div",yA,[o("span",{class:A(["status-dot","status-"+s?.status]),"aria-hidden":"true"},null,2),o("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(s?.status))},null,8,gA)])]),o("div",bA,[t[14]||(t[14]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1)),t[15]||(t[15]=b()),o("span",{textContent:c(e.fmt?.number(s?.nbRepositories||0))},null,8,wA)]),o("div",kA,[t[16]||(t[16]=o("svg",{class:"ui-icon mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),s?.startDate?(l(),d("span",EA,c(e.fmt?.date(s?.startDate,"mediumDate"))+" \u2013 "+c(e.fmt?.date(s?.endDate,"mediumDate")),1)):p("v-if",!0),s?.startDate?p("v-if",!0):(l(),d("span",CA,"\u2014"))]),o("div",_A,[o("div",SA,[o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false",disabled:s?.removing,"aria-label":"Actions for "+s?.name},[...t[17]||(t[17]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})],-1)])],8,NA),o("div",DA,[o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/")},[...t[18]||(t[18]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View ",-1)])],8,RA),o("a",{class:"dropdown-item",href:e.safeUrl("/conference/"+s?.conferenceID+"/edit")},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit ",-1)])],8,TA),s?.status!="removed"?(l(),d("div",AA,[t[21]||(t[21]=o("div",{class:"dropdown-divider"},null,-1)),o("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:a=>e.removeConference(s)},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove ",-1)])],8,OA)])):p("v-if",!0)])])])],2))),128)),!e.loading&&!e.error&&e.filteredConferences?.length==0?(l(),d("div",IA,[t[23]||(t[23]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1)),e.conferences?.length==0?(l(),d("span",PA,"You have not created a conference yet.")):p("v-if",!0),e.conferences?.length>0?(l(),d("span",VA,"Nothing matches the current filters.")):p("v-if",!0),o("div",qA,[e.conferences?.length>0?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[2]||(t[2]=s=>{e.search="",e.filters.status.ready=!0,e.filters.status.expired=!0,e.filters.status.removed=!0})},"Clear filters")):p("v-if",!0),e.conferences?.length==0?(l(),d("a",MA,[...t[22]||(t[22]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#project-icon-plus"})],-1),b(" New conference",-1)])])):p("v-if",!0)])])):p("v-if",!0)])])])}var $A={class:"container page dashboard-page paper-page"},LA={class:"row"},UA={class:"w-100"},FA={class:"dashboard-heading"},zA=["open"],HA=["aria-expanded"],BA=["stroke-dasharray"],jA={key:1,d:"M7 12c0-4 4-4 5 0s5 4 5 0-4-4-5 0-5 4-5 0",class:"quota-ring-unlimited"},GA={key:0,class:"quota-summary-value"},WA={key:0},KA={class:"quota-panel",id:"dashboard-usage"},YA={class:"quota-panel-heading"},JA={key:1,class:"quota-loading",role:"status"},QA={class:"search-wrap"},XA={type:"search",id:"search",class:"form-control","aria-label":"Search anonymizations",placeholder:"Search projects, IDs, or conferences\u2026",autocomplete:"off"},ZA=["aria-expanded"],xA={class:"btn-group",role:"group","aria-label":"Type"},eO=["aria-pressed"],tO=["aria-pressed"],oO=["aria-pressed"],nO=["aria-pressed"],sO={class:"dropdown"},rO={class:"btn dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},iO={class:"filter-btn-value"},aO={class:"sr-only"},lO={class:"dropdown-menu","aria-labelledby":"dropdownSort"},dO={class:"form-check dropdown-item"},uO=["onClick","checked","id"],cO=["for"],pO={class:"dropdown"},fO={class:"btn dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},mO={key:0,class:"filter-btn-value"},hO={key:1,class:"filter-btn-value"},vO={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},yO={class:"form-check dropdown-item"},gO=["id"],bO=["for"],wO={key:0,class:"dashboard-meta"},kO={class:"dashboard-view-tabs",role:"group","aria-label":"Project view"},EO=["aria-pressed"],CO=["aria-pressed","aria-label"],_O={class:"dashboard-count"},SO={key:0},NO={key:0},DO={key:1},RO={class:"dashboard-active-filters"},TO=["onClick","aria-label","title"],AO=["aria-busy"],OO={class:"paper-table-head",role:"row"},IO=["aria-sort"],PO=["aria-sort"],VO=["aria-sort"],qO=["aria-sort"],MO={key:0,class:"paper-table-row paper-table-skeleton",role:"row","aria-hidden":"true"},$O=["onClick"],LO={class:"cell-anon",role:"cell"},UO=["aria-label","title"],FO={class:"project-type-svg","aria-hidden":"true"},zO=["href"],HO={class:"anon-text"},BO={class:"anon-title"},jO=["title","textContent","href"],GO=["textContent"],WO={key:2,class:"type-badge type-coauthor",title:"You are a co-author on this anonymization"},KO={class:"anon-sub"},YO=["title"],JO=["title"],QO=["title"],XO=["textContent"],ZO={class:"dashboard-row-meta",role:"presentation"},xO={class:"cell-status",role:"cell"},e4={class:"status-line"},t4=["textContent"],o4=["textContent","title"],n4=["title"],s4=["href"],r4=["onClick"],i4={key:4,class:"status-sub status-sub-date"},a4=["aria-label"],l4={class:"cell-expires",role:"cell"},d4={key:0,class:"expires-never"},u4=["textContent"],c4={key:2,class:"expires-past"},p4={key:3,class:"expires-past"},f4={key:4,class:"empty-dash","aria-label":"Not applicable"},m4={class:"cell-actions",role:"cell"},h4=["onClick","disabled","title","aria-label"],v4=["onClick","data-project-actions","aria-controls","aria-expanded"],y4={key:2,class:"dropdown"},g4=["data-project-actions","aria-label"],b4={class:"dropdown-menu dropdown-menu-right"},w4=["onClick","aria-controls","aria-expanded"],k4=["href"],E4=["href"],C4=["onClick","disabled"],_4=["href"],S4=["onClick"],N4=["onClick"],D4=["onClick"],R4={key:5},T4=["onClick"],A4={key:1,class:"project-details-row",role:"row"},O4=["id","onKeydown"],I4={class:"project-details-heading"},P4=["onClick"],V4={class:"project-details-list"},q4={key:0},M4={key:1},$4={key:0},L4={key:2},U4={key:0,class:"project-progress-help"},F4=["href"],z4=["onSubmit"],H4=["for"],B4=["id"],j4={class:"project-name-controls"},G4=["id","aria-describedby","disabled"],W4=["disabled"],K4={key:0,class:"project-name-error",role:"alert"},Y4={key:1,role:"status"},J4={key:0,class:"paper-table-empty"},Q4={key:0},X4={key:1},Z4={class:"paper-table-empty-actions"},x4={key:1,href:"/anonymize",class:"btn btn-ink"},eI={key:0,class:"dashboard-pagination"},tI={key:0,role:"alert"},oI=["disabled"];function Vl(e,t){let n=We("quota-usage"),r=be("field"),s=be("form");return l(),d("div",$A,[o("div",LA,[o("div",UA,[o("div",FA,[o("div",null,[t[27]||(t[27]=o("h1",{class:"paper-page-title"},"Projects",-1)),t[28]||(t[28]=o("p",{class:"paper-page-lede"},"Manage your anonymous links.",-1)),o("details",{class:"dashboard-quota",open:e.quotaExpanded,onToggle:t[1]||(t[1]=i=>e.quotaExpanded=i.target.open),onKeydown:t[2]||(t[2]=Ao(de(i=>e.closeQuota(),["prevent","stop"]),["esc"]))},[o("summary",{"aria-controls":"dashboard-usage","aria-expanded":e.quotaExpanded},[(l(),d("svg",{class:A(["quota-summary-ring",e.quota?"quota-"+e.quota.repository.level:""]),viewBox:"0 0 24 24","aria-hidden":"true"},[t[21]||(t[21]=o("circle",{class:"quota-ring-track",cx:"12",cy:"12",r:"9"},null,-1)),e.quota&&!e.quota.repository.unlimited?(l(),d("circle",{key:0,class:"quota-ring-fill",cx:"12",cy:"12",r:"9",pathLength:"100","stroke-dasharray":e.quota.repository.percent+" 100"},null,8,BA)):p("v-if",!0),e.quota?.repository.unlimited?(l(),d("path",jA)):p("v-if",!0)],2)),t[23]||(t[23]=o("span",{class:"quota-summary-label"},"Usage",-1)),e.quota?(l(),d("span",GA,[b(c(e.fmt.number(e.quota.repository.used)),1),e.quota.repository.unlimited?p("v-if",!0):(l(),d("span",WA," / "+c(e.fmt.number(e.quota.repository.total)),1)),t[22]||(t[22]=b(" repos",-1))])):p("v-if",!0),t[24]||(t[24]=o("svg",{class:"project-type-svg quota-summary-chevron","aria-hidden":"true"},[o("use",{href:"#project-icon-chevron"})],-1))],8,HA),o("div",KA,[o("div",YA,[t[26]||(t[26]=o("h2",null,"Account usage",-1)),o("button",{type:"button",class:"project-close","aria-label":"Close usage",onClick:t[0]||(t[0]=i=>e.closeQuota())},[...t[25]||(t[25]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])])]),e.quota?(l(),Lt(n,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):(l(),d("p",JA,"Loading usage\u2026"))])],40,zA)]),t[29]||(t[29]=pe('',1))]),p(" Search + filters "),D((l(),d("form",{class:"w-100 dashboard-filter-row","aria-label":"Filter anonymizations","accept-charset":"UTF-8",onSubmit:t[9]||(t[9]=de(i=>e.submitForm(i,()=>{i.preventDefault()}),["prevent"]))},[o("div",QA,[D(o("input",XA,null,512),[[r,{state:e.viewState,set:i=>{e.search=i},value:e.search,form:null,options:{}}]])]),o("button",{class:"btn dashboard-filters-toggle",type:"button","aria-expanded":e.filtersExpanded,"aria-controls":"dashboard-filter-controls",onClick:t[3]||(t[3]=i=>e.filtersExpanded=!e.filtersExpanded)},[...t[30]||(t[30]=[b("Filters",-1),o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-filter"})],-1)])],8,ZA),o("div",{id:"dashboard-filter-controls",class:A(["dashboard-filter-controls",{expanded:e.filtersExpanded}])},[o("div",xA,[o("button",{type:"button",class:A(["btn",{"btn-primary":e.typeFilter==="all"}]),onClick:t[4]||(t[4]=i=>e.typeFilter="all"),"aria-pressed":e.typeFilter==="all"},"All",10,eO),o("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="repo"}]),title:"Repositories",onClick:t[5]||(t[5]=i=>e.typeFilter="repo"),"aria-pressed":e.typeFilter==="repo"},[...t[31]||(t[31]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-type-repo"})],-1),o("span",{class:"type-filter-label"},"Repos",-1)])],10,tO),o("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="pr"}]),title:"Pull requests",onClick:t[6]||(t[6]=i=>e.typeFilter="pr"),"aria-pressed":e.typeFilter==="pr"},[...t[32]||(t[32]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-type-pr"})],-1),o("span",{class:"type-filter-label"},"PRs",-1)])],10,oO),o("button",{type:"button",class:A(["btn dashboard-type-filter",{"btn-primary":e.typeFilter==="gist"}]),title:"Gists",onClick:t[7]||(t[7]=i=>e.typeFilter="gist"),"aria-pressed":e.typeFilter==="gist"},[...t[33]||(t[33]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-type-gist"})],-1),o("span",{class:"type-filter-label"},"Gists",-1)])],10,nO)]),o("div",{id:"dashboard-extra-filters",class:A(["dashboard-extra-filters",{expanded:e.filtersExpanded}])},[o("div",sO,[o("button",rO,[t[35]||(t[35]=o("span",{class:"filter-btn-label"},"Sort",-1)),o("span",iO,c(e.sortLabel()),1),(l(),d("svg",{class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[34]||(t[34]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)),o("span",aO,c(e.sortDesc()?"descending":"ascending"),1)]),o("div",lO,[t[36]||(t[36]=o("h6",{class:"dropdown-header"},"Order by",-1)),(l(!0),d(X,null,ae(e.sortFields,(i,a,u)=>(l(),d("div",dO,[o("input",{class:"form-check-input",type:"radio",name:"sort",onClick:f=>e.setSort(a,i.defaultDesc),checked:e.isSortedBy(a),id:"sort-"+u},null,8,uO),o("label",{class:"form-check-label",for:"sort-"+u},c(i?.label),9,cO)]))),256)),t[37]||(t[37]=o("div",{class:"dropdown-divider"},null,-1)),o("button",{type:"button",class:"dropdown-item",onClick:t[8]||(t[8]=i=>e.toggleSortDirection())},c(e.sortDesc()?"Switch to ascending":"Switch to descending"),1)])]),o("div",pO,[o("button",fO,[t[38]||(t[38]=o("span",{class:"filter-btn-label"},"Status",-1)),e.hasHiddenStatus()?p("v-if",!0):(l(),d("span",mO,"All")),e.hasHiddenStatus()?(l(),d("span",hO,c(e.hiddenStatusCount())+" hidden",1)):p("v-if",!0)]),o("div",vO,[t[39]||(t[39]=o("h6",{class:"dropdown-header"},"Show statuses",-1)),(l(!0),d(X,null,ae(e.statusKeyLabels,(i,a,u)=>(l(),d("div",yO,[D(o("input",{class:"form-check-input",type:"checkbox",id:"status-"+a},null,8,gO),[[r,{state:e.viewState,set:f=>{e.filters.status[a]=f},value:e.filters?.status[a],form:null,options:{}}]]),o("label",{class:"form-check-label",for:"status-"+a},c(i),9,bO)]))),256))])])],2)],2)],32)),[[s,e.viewState]]),p(" Result count + active filter chips "),e.loading?p("v-if",!0):(l(),d("div",wO,[o("div",kO,[o("button",{type:"button","aria-pressed":e.projectView==="all",onClick:t[10]||(t[10]=i=>e.setProjectView("all")),"aria-label":"All projects"},[...t[40]||(t[40]=[o("span",{class:"dashboard-view-long"},"All projects",-1),o("span",{class:"dashboard-view-short","aria-hidden":"true"},"All",-1)])],8,EO),o("button",{type:"button","aria-pressed":e.projectView==="attention",onClick:t[11]||(t[11]=i=>e.setProjectView("attention")),"aria-label":"Needs attention "+e.attentionCount()},[t[41]||(t[41]=o("span",{class:"dashboard-attention-prefix"},"Needs ",-1)),t[42]||(t[42]=o("span",null,"attention",-1)),t[43]||(t[43]=b()),o("span",{class:A(["attention-count",{"has-attention":e.attentionCount()>0}])},c(e.attentionCount()),3)],8,CO)]),o("span",_O,[(e.dashboardTotals?.filtered??e.filteredItems?.length)===(e.dashboardTotals?.total??e.items?.length)?(l(),d("span",SO,[b(c(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" project",1),(e.dashboardTotals?.total??e.items?.length)!==1?(l(),d("span",NO,"s")):p("v-if",!0)])):(l(),d("span",DO,c(e.fmt?.number(e.dashboardTotals?.filtered??e.filteredItems?.length))+" of "+c(e.fmt?.number(e.dashboardTotals?.total??e.items?.length))+" shown",1))]),o("div",RO,[(l(!0),d(X,null,ae(e.filters?.status,(i,a,u)=>(l(),d(X,null,[i===!1?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:f=>e.filters.status[a]=!0,"aria-label":"Show "+e.statusKeyLabels[a]+" again",title:"Show "+e.statusKeyLabels[a]+" again"},[b(c(e.statusKeyLabels[a])+" hidden",1),t[44]||(t[44]=o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1))],8,TO)):p("v-if",!0)],64))),256)),e.typeFilter!=="all"?(l(),d("button",{key:0,type:"button",class:"filter-chip",onClick:t[12]||(t[12]=i=>e.typeFilter="all"),"aria-label":"Show all project types"},[b(c(e.typeFilter==="repo"?"Repositories":e.typeFilter==="pr"?"Pull requests":"Gists"),1),t[45]||(t[45]=o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1))])):p("v-if",!0),e.showClearFilters()?(l(),d("button",{key:1,type:"button",class:"btn-link-inline",onClick:t[13]||(t[13]=i=>e.clearFilters())},"Clear filters")):p("v-if",!0)])]))]),p(" Table "),o("div",{class:"paper-table paper-table-dashboard",role:"table","aria-label":"Anonymizations","aria-busy":e.loading},[o("div",OO,[o("div",{role:"columnheader","aria-sort":e.isSortedBy("_label")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("_label")}]),onClick:t[14]||(t[14]=i=>e.setSort("_label"))},[t[47]||(t[47]=b(" Project ",-1)),e.isSortedBy("_label")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[46]||(t[46]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,IO),o("div",{role:"columnheader","aria-sort":e.isSortedBy("status")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("status")}]),onClick:t[15]||(t[15]=i=>e.setSort("status"))},[t[49]||(t[49]=b(" Status ",-1)),e.isSortedBy("status")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[48]||(t[48]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,PO),o("div",{role:"columnheader",class:"num","aria-sort":e.isSortedBy("pageView")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("pageView")}]),onClick:t[16]||(t[16]=i=>e.setSort("pageView"))},[t[51]||(t[51]=b(" Views ",-1)),e.isSortedBy("pageView")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[50]||(t[50]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,VO),o("div",{role:"columnheader","aria-sort":e.isSortedBy("options.expirationDate")?e.sortDesc()?"descending":"ascending":"none"},[o("button",{type:"button",class:A(["sortable",{active:e.isSortedBy("options.expirationDate")}]),onClick:t[17]||(t[17]=i=>e.setSort("options.expirationDate"))},[t[53]||(t[53]=b(" Expires ",-1)),e.isSortedBy("options.expirationDate")?(l(),d("svg",{key:0,class:A(["project-type-svg sort-direction",{ascending:!e.sortDesc()}]),"aria-hidden":"true"},[...t[52]||(t[52]=[o("use",{href:"#project-icon-arrow"},null,-1)])],2)):p("v-if",!0)],2)],8,qO),t[54]||(t[54]=o("div",{role:"columnheader"},[o("span",{class:"sr-only"},"Actions")],-1))]),p(" Loading skeleton: keeps the layout stable while the three lists load "),(l(),d(X,null,ae([1,2,3,4],(i,a)=>(l(),d(X,null,[e.loading?(l(),d("div",MO,[...t[55]||(t[55]=[o("div",{class:"cell-anon",role:"cell"},[o("span",{class:"skeleton skeleton-badge"}),o("div",{class:"anon-text"},[o("span",{class:"skeleton skeleton-line",style:{width:"38%"}}),o("span",{class:"skeleton skeleton-line skeleton-line-sm",style:{width:"56%"}})])],-1),o("div",{class:"cell-status",role:"cell"},[o("span",{class:"skeleton skeleton-line",style:{width:"60%"}})],-1),o("div",{class:"cell-views num",role:"cell"},[o("span",{class:"skeleton skeleton-line",style:{width:"40%"}})],-1),o("div",{class:"cell-expires",role:"cell"},[o("span",{class:"skeleton skeleton-line",style:{width:"55%"}})],-1),o("div",{class:"cell-actions",role:"cell"},null,-1)])])):p("v-if",!0)],64))),64)),(l(!0),d(X,null,ae(e.filteredItems,(i,a)=>(l(),d(X,{key:i?._type+":"+(i?._id||a)},[e.loading?p("v-if",!0):(l(),d("div",{key:0,class:A(["paper-table-row",{"repo-inactive":i?._statusKey=="expired"||i?._statusKey=="removed","repo-error":i?.status=="error","row-clickable":!!i?._viewUrl}]),role:"row",onClick:u=>e.openItem(i,u)},[o("div",LO,[o("span",{class:"project-type-icon",role:"img","aria-label":i?._type==="repo"?"Repository":i?._type==="pr"?"Pull request":"Gist",title:i?._type==="repo"?"Repository":i?._type==="pr"?"Pull request":"Gist"},[(l(),d("svg",FO,[o("use",{href:"#project-type-"+i._type},null,8,zO)]))],8,UO),o("div",HO,[o("div",BO,[i?._viewUrl?(l(),d("a",{key:0,class:"repo-name",title:i._label,textContent:c(i?._label),href:e.safeUrl(i?._viewUrl)},null,8,jO)):p("v-if",!0),i?._viewUrl?p("v-if",!0):(l(),d("span",{key:1,class:"repo-name repo-name-static",textContent:c(i?._label)},null,8,GO)),i?.role==="coauthor"?(l(),d("span",WO,"Co-author")):p("v-if",!0)]),o("div",KO,[i?._id?(l(),d("code",{key:0,class:"anonymous-id",title:i._id},c(i._id),9,YO)):p("v-if",!0),i?._type==="repo"&&i?.source?.commit?(l(),d("span",{key:1,class:"commit-hash",title:i.source.commit},c(i.source.commit.substring(0,8)),9,JO)):p("v-if",!0),i?.conference?(l(),d("span",{key:2,class:"cell-conf conf-tag",title:i?.conference},[t[56]||(t[56]=o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),t[57]||(t[57]=b()),o("span",{textContent:c(i?.conference)},null,8,XO)],8,QO)):p("v-if",!0)])])]),o("div",ZO,[o("div",xO,[o("div",e4,[o("span",{class:A(["status-dot","status-"+i?._statusKey]),"aria-hidden":"true"},null,2),o("span",{class:"status-word",textContent:c(e.fmt?.statusLabel(i?.status))},null,8,t4)]),i?.status=="error"&&i?.statusMessage?(l(),d("div",{key:0,class:"status-sub status-sub-error",textContent:c(e.fmt?.statusMsg(i?.statusMessage)),title:i?.statusMessage},null,8,o4)):p("v-if",!0),i?._stale?(l(),d("div",{key:1,class:"status-sub status-sub-warn",title:"Last activity "+e.fmt?.humanTime(i?.anonymizeDate||i?.lastView)}," Last activity "+c(e.fmt?.humanTime(i?.anonymizeDate||i?.lastView))+" \xB7 may be stuck ",9,n4)):p("v-if",!0),i.status==="error"&&i._editUrl?(l(),d("a",{key:2,class:"project-attention-action",href:e.safeUrl(i._editUrl)},"Fix source",8,s4)):p("v-if",!0),i._stale||i._broken?(l(),d("button",{key:3,type:"button",class:"project-attention-action",onClick:de(u=>e.showProjectDetails(i),["stop"])},c(i._broken?"Review details":"Check progress"),9,r4)):p("v-if",!0),i?.status!="error"&&!i?._stale&&i?.anonymizeDate?(l(),d("div",i4," anonymized "+c(e.fmt?.humanTime(i?.anonymizeDate)),1)):p("v-if",!0)]),o("div",{class:"cell-views num",role:"cell","aria-label":e.fmt.number(i.pageView)+" views"},[t[58]||(t[58]=o("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),o("span",null,c(e.fmt.number(i.pageView)),1)],8,a4),o("div",l4,[t[59]||(t[59]=o("svg",{class:"project-type-svg mobile-meta-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),i?._expiry?.kind==="never"?(l(),d("span",d4,"Never")):p("v-if",!0),i?._expiry?.kind==="date"?(l(),d("span",{key:1,textContent:c(e.fmt?.humanTime(i?._expiry?.date))},null,8,u4)):p("v-if",!0),i?._expiry?.kind==="expired"&&i?._expiry?.date?(l(),d("span",c4,"Expired "+c(e.fmt?.humanTime(i?._expiry?.date)),1)):p("v-if",!0),i?._expiry?.kind==="expired"&&!i?._expiry?.date?(l(),d("span",p4,"Expired")):p("v-if",!0),i?._expiry?.kind==="none"?(l(),d("span",f4,"\u2014")):p("v-if",!0)])]),o("div",m4,[i._viewUrl?(l(),d("button",{key:0,type:"button",class:"copy-link-inline",onClick:de(u=>e.copyLink(i),["stop"]),disabled:!!e.copyingId,title:"Copy anonymous link for "+i._label,"aria-label":"Copy anonymous link for "+i._label},[...t[60]||(t[60]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-copy"})],-1)])],8,h4)):p("v-if",!0),i._broken?(l(),d("button",{key:1,type:"button",class:"project-details-button",onClick:de(u=>e.showProjectDetails(i),["stop"]),"data-project-actions":encodeURIComponent(i._type+":"+i._id),"aria-controls":e.projectDetailsId(i),"aria-expanded":e.selectedProject===i},"Details",8,v4)):p("v-if",!0),i?._broken?p("v-if",!0):(l(),d("div",y4,[o("button",{class:"btn btn-icon-dots",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false","data-project-actions":encodeURIComponent(i._type+":"+i._id),"aria-label":"Actions for "+i?._name},[...t[61]||(t[61]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-more"})],-1)])],8,g4),o("div",b4,[o("button",{type:"button",class:"dropdown-item",onClick:u=>e.showProjectDetails(i),"aria-controls":e.projectDetailsId(i),"aria-expanded":e.selectedProject===i},"Project details & name",8,w4),o("a",{class:"dropdown-item",href:e.safeUrl(i?._viewUrl)}," View ",8,k4),i?._type==="repo"&&i?.options?.page&&i?.status=="ready"?(l(),d("a",{key:0,class:"dropdown-item",target:"_self",href:e.safeUrl("/w/"+i?.repoId+"/")}," View page ",8,E4)):p("v-if",!0),i?._viewUrl?(l(),d("button",{key:1,type:"button",class:"dropdown-item",onClick:u=>e.copyLink(i),disabled:!!e.copyingId}," Copy anonymous link ",8,C4)):p("v-if",!0),o("a",{class:"dropdown-item",href:e.safeUrl(i?._editUrl)}," Edit ",8,_4),i?.status=="ready"||i?.status=="error"?(l(),d("button",{key:2,type:"button",class:"dropdown-item",onClick:u=>e.refreshItem(i)}," Force update ",8,S4)):p("v-if",!0),i?.status=="removed"?(l(),d("button",{key:3,type:"button",class:"dropdown-item",onClick:u=>e.refreshItem(i)}," Enable ",8,N4)):p("v-if",!0),i?.status=="expired"?(l(),d("button",{key:4,type:"button",class:"dropdown-item",onClick:u=>e.extendItem(i)}," Extend 6 months ",8,D4)):p("v-if",!0),(i?.status=="ready"||i?.status=="expired"||i?.status=="error")&&i?.role!=="coauthor"?(l(),d("div",R4,[t[62]||(t[62]=o("div",{class:"dropdown-divider"},null,-1)),o("button",{type:"button",class:"dropdown-item dropdown-item-danger",onClick:u=>e.removeItem(i)}," Remove ",8,T4)])):p("v-if",!0)])]))])],10,$O)),!e.loading&&e.selectedProject===i?(l(),d("div",A4,[o("div",{class:"project-details",role:"cell","aria-colspan":"5",id:e.projectDetailsId(i),tabindex:"-1",onKeydown:Ao(de(u=>e.closeProjectDetails(i),["stop"]),["esc"])},[o("div",I4,[t[64]||(t[64]=o("h2",null,"Project details",-1)),o("button",{type:"button",class:"project-close",onClick:u=>e.closeProjectDetails(i),"aria-label":"Close project details"},[...t[63]||(t[63]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])],8,P4)]),o("dl",V4,[o("div",null,[t[65]||(t[65]=o("dt",null,"Source",-1)),o("dd",null,c(i._source||"Not available"),1)]),o("div",null,[t[66]||(t[66]=o("dt",null,"Anonymous ID",-1)),o("dd",null,[o("code",null,c(i._id||"Missing identifier"),1)])]),i.source?.commit?(l(),d("div",q4,[t[67]||(t[67]=o("dt",null,"Commit",-1)),o("dd",null,[o("code",null,c(i.source.commit),1)])])):p("v-if",!0),i.conference?(l(),d("div",M4,[t[68]||(t[68]=o("dt",null,"Conference",-1)),o("dd",null,c(i.conference),1)])):p("v-if",!0),o("div",null,[t[69]||(t[69]=o("dt",null,"Status",-1)),o("dd",null,[b(c(e.fmt.statusLabel(i.status)),1),i.statusMessage?(l(),d("span",$4," \xB7 "+c(e.fmt.statusMsg(i.statusMessage)),1)):p("v-if",!0)])]),i.anonymizeDate?(l(),d("div",L4,[t[70]||(t[70]=o("dt",null,"Last anonymized",-1)),o("dd",null,c(e.fmt.humanTime(i.anonymizeDate)),1)])):p("v-if",!0)]),i._stale?(l(),d("p",U4,"This download has not progressed recently. Check the source access and selected branch before retrying.")):p("v-if",!0),i._editUrl?(l(),d("a",{key:1,class:"project-attention-action",href:e.safeUrl(i._editUrl)},c(e.needsAttention(i)?"Check source settings":"Edit anonymization settings"),9,F4)):p("v-if",!0),i._id?(l(),d("form",{key:2,class:"project-name-form",onSubmit:de(u=>e.saveProjectName(i),["prevent"])},[o("label",{for:"project-name-"+i._type+"-"+i._id},"Project name",8,H4),o("p",{id:"project-name-help-"+i._type+"-"+i._id},"Only you see this name. Leave it blank to use the default.",8,B4),o("div",j4,[D(o("input",{class:"form-control",type:"text",id:"project-name-"+i._type+"-"+i._id,"aria-describedby":"project-name-help-"+i._type+"-"+i._id,maxlength:"100","onUpdate:modelValue":t[18]||(t[18]=u=>e.projectName=u),disabled:e.nameSaving},null,8,G4),[[Ft,e.projectName]]),o("button",{class:"btn btn-ink",type:"submit",disabled:e.nameSaving},c(e.nameSaving?"Saving\u2026":"Save name"),9,W4)]),e.nameError?(l(),d("p",K4,c(e.nameError),1)):p("v-if",!0),e.nameMessage?(l(),d("p",Y4,c(e.nameMessage),1)):p("v-if",!0)],40,z4)):p("v-if",!0)],40,O4)])):p("v-if",!0)],64))),128)),!e.loading&&e.filteredItems?.length==0?(l(),d("div",J4,[t[72]||(t[72]=o("svg",{class:"project-type-svg project-empty-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1)),e.hasProjects()?p("v-if",!0):(l(),d("span",Q4,"You have no anonymizations yet.")),e.hasProjects()?(l(),d("span",X4,"Nothing matches the current filters.")):p("v-if",!0),o("div",Z4,[e.hasActiveFilters()?(l(),d("button",{key:0,type:"button",class:"btn btn-outline-ink",onClick:t[19]||(t[19]=i=>e.clearFilters())},"Clear filters")):p("v-if",!0),e.hasProjects()?p("v-if",!0):(l(),d("a",x4,[...t[71]||(t[71]=[o("svg",{class:"project-type-svg","aria-hidden":"true"},[o("use",{href:"#project-icon-plus"})],-1),b(" New anonymization",-1)])]))])])):p("v-if",!0)],8,AO)]),e.dashboardCursor||e.dashboardError?(l(),d("div",eI,[e.dashboardError?(l(),d("p",tI,c(e.dashboardError),1)):p("v-if",!0),e.dashboardCursor?(l(),d("button",{key:1,type:"button",class:"btn",onClick:t[20]||(t[20]=i=>e.loadMoreProjects()),disabled:e.loadingMore},c(e.loadingMore?"Loading\u2026":"Load more projects"),9,oI)):p("v-if",!0)])):p("v-if",!0)])}var nI={class:"explorer-page"},sI=["aria-label"],rI={class:"ui-icon","aria-hidden":"true"},iI=["href"],aI=["textContent"],lI={class:"leftCol-head"},dI={class:"leftCol-search"},uI={class:"tree-search-box"},cI=["href"],pI={type:"text",class:"tree-search-input",placeholder:"Search files","aria-label":"Search files"},fI={class:"leftCol-project-header"},mI=["textContent","title"],hI={class:"project-file-count"},vI=["title"],yI={class:"leftCol-body"},gI={key:0,class:"paper-inline-warning",role:"alert"},bI={key:1,class:"paper-inline-warning",role:"alert"},wI={class:"leftCol-foot"},kI=["title"],EI=["title"],CI=["title"],_I={key:2,class:"last-update",title:"Older repositories have no recorded publication date. The source commit date does not establish when files became available here."},SI={class:"explorer-main"},NI={class:"status-bar"},DI={class:"breadcrumb paths","aria-label":"Path"},RI=["textContent"],TI={class:"status-bar-actions"},AI=["href"],OI={class:"d-none d-md-inline"},II={class:"ui-icon","aria-hidden":"true"},PI=["href"],VI={class:"d-none d-md-inline"},qI=["href"],MI=["href"],$I=["href"],LI=["href"],UI={class:"explorer-content"};function ql(e,t){let n=We("tree"),r=We("partial-view"),s=be("field");return l(),d("div",nI,[D(o("button",{class:"sidebar-toggle",onClick:t[0]||(t[0]=i=>e.sidebarCollapsed=!e.sidebarCollapsed),"aria-label":e.sidebarCollapsed?"Show files":"Hide files"},[(l(),d("svg",rI,[o("use",{href:e.sidebarCollapsed?"#ui-icon-folder":"#project-icon-close"},null,8,iI)])),o("span",{textContent:c(e.sidebarCollapsed?"Files":"Close")},null,8,aI)],8,sI),[[K,e.files?.length]]),D(o("div",{class:A(["leftCol",{collapsed:e.sidebarCollapsed}])},[o("div",lI,[t[7]||(t[7]=o("span",{class:"leftCol-eyebrow"},"Files",-1)),o("button",{class:"leftCol-close","aria-label":"Close files",onClick:t[1]||(t[1]=i=>e.sidebarCollapsed=!0)},[...t[6]||(t[6]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-close"})],-1)])])]),o("div",dI,[o("div",uI,[(l(),d("svg",{class:A(["ui-icon tree-search-icon",{"fa-spin":e.fileSearchLoading}]),"aria-hidden":"true"},[o("use",{href:e.fileSearchLoading?"#ui-icon-spinner":"#ui-icon-search"},null,8,cI)],2)),D(o("input",pI,null,512),[[s,{state:e.viewState,set:i=>{e.fileSearchQuery=i},value:e.fileSearchQuery,form:null,options:{debounce:300},change:()=>{e.onFileSearchChange()}}]]),D(o("kbd",{class:"tree-search-kbd"},c(e.isMac?"\u2318":"Ctrl+")+"K",513),[[K,!e.fileSearchQuery]]),D(o("button",{class:"tree-search-clear","aria-label":"Clear search",onClick:t[2]||(t[2]=i=>{e.fileSearchQuery="",e.onFileSearchChange()})},"\xD7",512),[[K,e.fileSearchQuery]])])]),o("div",fI,[o("span",{class:"project-name",textContent:c(e.repoId),title:e.repoId},null,8,mI),o("span",hI,c(e.fileCounts?.[""]||e.files?.length)+" files",1),e.options?.expirationDate?(l(),d("span",{key:0,class:"project-expiry",title:e.options.expirationDate},[t[8]||(t[8]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),b(" Available until "+c(e.fmt?.date(e.options.expirationDate)),1)],8,vI)):p("v-if",!0)]),o("div",yI,[e.options?.truncatedFolders?.length>0?(l(),d("div",gI,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fmt?.translate("WARNINGS.repo_truncated")),1)])):p("v-if",!0),e.options?.hasSubmodules?(l(),d("div",bI,[t[10]||(t[10]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})],-1)),b(" "+c(e.fmt?.translate("WARNINGS.submodules_not_included")),1)])):p("v-if",!0),Ce(n,{class:"files",file:e.files,"search-query":e.fileSearchQuery,"search-results":e.fileSearchResults,page:e.viewState},null,8,["file","search-query","search-results","page"])]),o("div",wI,[o("span",{class:"last-update",title:e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate},c(e.options?.sourceCommitDate?"Source commit":e.options?.anonymizedAt?"Anonymized":"Updated")+" "+c(e.fmt?.date(e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),9,kI),e.options?.settingsSavedAt?(l(),d("span",{key:0,class:"last-update",title:e.options.settingsSavedAt}," Settings saved "+c(e.fmt?.date(e.options.settingsSavedAt)),9,EI)):p("v-if",!0),e.options?.publishedAt?(l(),d("span",{key:1,class:"last-update",title:e.options.publishedAt}," Snapshot ready "+c(e.fmt?.date(e.options.publishedAt)),9,CI)):p("v-if",!0),e.options?.anonymizedAt&&!e.options?.publishedAt?(l(),d("span",_I," Snapshot ready date not recorded ")):p("v-if",!0)])],2),[[K,e.files?.length]]),D(o("div",{class:"leftCol-backdrop",onClick:t[3]||(t[3]=i=>e.sidebarCollapsed=!0)},null,512),[[K,e.files?.length&&!e.sidebarCollapsed]]),o("div",SI,[D(o("div",NI,[o("ol",DI,[(l(!0),d(X,null,ae(e.paths,(i,a)=>(l(),d("li",{class:"breadcrumb-item",textContent:c(i)},null,8,RI))),256))]),o("div",TI,[e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[11]||(t[11]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),o("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,AI)):p("v-if",!0),e.type=="html-doc"&&!e.showSource?(l(),d("button",{key:1,class:A(["btn btn-sm",{"btn-active":e.allowScripts}]),"aria-label":"Allow this document to run JavaScript",title:"Scripts in this file are blocked by default. Enable them only if you trust the repository \u2014 the document stays isolated from your session either way.",onClick:t[4]||(t[4]=i=>e.toggleAllowScripts())},[t[12]||(t[12]=o("i",{class:"fab fa-js"},null,-1)),o("span",OI,c(e.allowScripts?"JS on":"JS off"),1)],2)):p("v-if",!0),e.type=="html-doc"?(l(),d("button",{key:2,class:"btn btn-sm","aria-label":"Toggle between the rendered document and its source",title:"Toggle between the rendered document and its source",onClick:t[5]||(t[5]=i=>e.toggleSource())},[(l(),d("svg",II,[o("use",{href:e.showSource?"#project-icon-eye":"#ui-icon-code"},null,8,PI)])),o("span",VI,c(e.showSource?"Rendered":"Source"),1)])):p("v-if",!0),D(o("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"View raw current file",title:"View raw file",href:e.safeUrl(e.url)},[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-file"})],-1)])],8,qI),[[K,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),D(o("a",{target:"_self",class:"btn btn-sm btn-icon-only","aria-label":"Download current file",title:"Download this file",href:e.safeUrl(e.url+"&download=true")},[...t[14]||(t[14]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-download"})],-1)])],8,MI),[[K,e.content!=null&&e.type!="error"&&e.type!="rate_limited"]]),e.options?.download?(l(),d("a",{key:3,target:"_self",class:"btn btn-sm btn-ink","aria-label":"Download repository as ZIP",title:"Download the whole repository as a ZIP archive",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[15]||(t[15]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-archive"})],-1),o("span",{class:"d-none d-md-inline"}," Download repository",-1)])],8,$I)):p("v-if",!0),e.options?.hasWebsite?(l(),d("a",{key:4,target:"_self",class:"btn btn-sm","aria-label":"Website",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[16]||(t[16]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),o("span",{class:"d-none d-md-inline"}," Website",-1)])],8,LI)):p("v-if",!0)])],512),[[K,e.type!="error"||e.files?.length]]),o("div",UI,[Ce(r,{name:"partials/pageView.htm",state:e.viewState},null,8,["state"])])])])}var FI={class:"paper-faq"};function Ml(e,t){return l(),d("div",FI,[...t[0]||(t[0]=[pe('Help
Answers to the questions that come up most. If something's missing, write to us \u2014 report a bug on GitHub .
',1),o("div",{class:"paper-faq-body"},[o("aside",{class:"paper-faq-toc"},[o("div",{class:"paper-faq-toc-head"},"Contents"),o("nav",null,[o("a",{href:"#faq-general"},"General"),o("a",{href:"#faq-features"},"Features"),o("a",{href:"#faq-limitations"},"Limitations"),o("a",{href:"#faq-privacy"},"Privacy & Security"),o("a",{href:"#faq-hosting"},"Self-Hosting")])]),o("section",{class:"faq-section","aria-label":"FAQs"},[o("div",null,[p(" General "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})]),b("General ")]),o("div",{class:"panel-group",id:"faq-general",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingWhatIs"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#whatIs","aria-expanded":"false","aria-controls":"whatIs"}," What is Anonymous GitHub? ")])]),o("div",{id:"whatIs",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingWhatIs"},[o("div",{class:"panel-body p-3"},[o("p",null," Anonymous GitHub is a free, open-source tool that anonymizes GitHub repositories and pull requests for double-anonymous (double-blind) peer review. It replaces identifying information \u2014 such as the repository owner, organization name, and custom terms \u2014 so that reviewers cannot determine the identity of the authors through the code repository. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingHowWork"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#howWork","aria-expanded":"false","aria-controls":"howWork"}," How does Anonymous GitHub work? ")])]),o("div",{id:"howWork",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingHowWork"},[o("div",{class:"panel-body p-3"},[o("p",null," Anonymous GitHub either downloads the complete repository and anonymizes the content, or proxies requests to GitHub on the fly. In both cases, the original and anonymized versions of files are cached on the server. The system automatically detects and replaces the repository owner, organization name, and repository name. You can also specify additional custom terms to anonymize using one-per-line regex patterns. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingScope"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#scope","aria-expanded":"false","aria-controls":"scope"}," What is the scope of anonymization? ")])]),o("div",{id:"scope",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingScope"},[o("div",{class:"panel-body p-3"},[o("p",null," In double-anonymous peer review, the boundary of anonymization is the paper plus its online appendix \u2014 not the entire internet. Searching for any part of the paper or the online appendix can be considered a deliberate attempt to break anonymity. Anonymous GitHub anonymizes the repository owner, organization, repository name, file and directory names, and file contents across all text-based file types. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingCost"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-general",href:"#cost","aria-expanded":"false","aria-controls":"cost"}," How much does it cost? ")])]),o("div",{id:"cost",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCost"},[o("div",{class:"panel-body p-3"},[o("p",null,[b(" Anonymous GitHub is completely free to use. However, the server costs hundreds of dollars per year to maintain. If you find the service useful, a small donation would be greatly appreciated. You can support the project by "),o("a",{href:"https://github.com/sponsors/tdurieux/",target:"_blank"},"sponsoring on GitHub"),b(", donating through "),o("a",{href:"https://ko-fi.com/tdurieux",target:"_blank"},"Ko-fi"),b(', or by clicking the "Support me" button on the site. ')])])])])]),p(" Features "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#project-icon-filter"})]),b("Features ")]),o("div",{class:"panel-group",id:"faq-features",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingFormats"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#formats","aria-expanded":"false","aria-controls":"formats"}," Which file formats are supported? ")])]),o("div",{id:"formats",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingFormats"},[o("div",{class:"panel-body p-3"},[o("p",null," Anonymous GitHub can display and render a wide variety of file types: "),o("ul",null,[o("li",null,[o("strong",null,"Text and source code"),b(" \u2014 displayed with syntax highlighting")]),o("li",null,[o("strong",null,"Markdown"),b(" \u2014 rendered as formatted HTML")]),o("li",null,[o("strong",null,"Images"),b(" (PNG, JPG, SVG, etc.) \u2014 displayed inline")]),o("li",null,[o("strong",null,"PDFs"),b(" \u2014 rendered directly in the browser")]),o("li",null,[o("strong",null,"Jupyter Notebooks"),b(" \u2014 rendered with code cells and outputs")])]),o("p",null," Only text-based files are anonymized. Anonymous GitHub analyzes the content of each file to determine whether it is textual or binary. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingPR"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#pullRequests","aria-expanded":"false","aria-controls":"pullRequests"}," Can I anonymize pull requests? ")])]),o("div",{id:"pullRequests",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPR"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. In addition to full repositories, Anonymous GitHub supports anonymizing individual pull requests. Simply paste the URL of a GitHub pull request when creating a new anonymized repository, and the system will automatically detect that it is a pull request and anonymize it accordingly. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingConference"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#conference","aria-expanded":"false","aria-controls":"conference"}," What is the Conference ID feature? ")])]),o("div",{id:"conference",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingConference"},[o("div",{class:"panel-body p-3"},[o("p",null," When creating an anonymized repository, you can associate it with a Conference ID. This allows conferences to define default anonymization settings (such as expiration dates) that are automatically applied to repositories submitted under that conference. If your conference provides a Conference ID, enter it during the anonymization setup. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingExpiration"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#expiration","aria-expanded":"false","aria-controls":"expiration"}," What happens when an anonymized repository expires? ")])]),o("div",{id:"expiration",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingExpiration"},[o("div",{class:"panel-body p-3"},[o("p",null," You can configure one of three expiration strategies when creating your anonymized repository: "),o("ul",null,[o("li",null,[o("strong",null,"Never expire"),b(" \u2014 the anonymized repository remains accessible indefinitely.")]),o("li",null,[o("strong",null,"Redirect to GitHub"),b(" \u2014 after expiration, visitors are redirected to the original GitHub repository.")]),o("li",null,[o("strong",null,"Remove content"),b(" \u2014 after expiration, the anonymized content is deleted from the server.")])])])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingDownload"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#download","aria-expanded":"false","aria-controls":"download"}," Can I download an anonymized repository? ")])]),o("div",{id:"download",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDownload"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. Anonymized repositories can be downloaded as a ZIP file. This is useful if reviewers want to build or test the code locally. The downloaded archive contains the fully anonymized version of the repository. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingUpdates"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#updates","aria-expanded":"false","aria-controls":"updates"}," Are updates to the original repository reflected in the anonymized version? ")])]),o("div",{id:"updates",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingUpdates"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. The anonymized repository tracks the source on GitHub: when you push new commits to the original repository, the anonymized view picks up those changes (cached files are refreshed against GitHub). This means you can keep iterating on the code while reviewers have the link, and you do not need to recreate the anonymized repository every time you update the source. "),o("p",null," A few practical implications worth keeping in mind: "),o("ul",null,[o("li",null," You can safely create the anonymized repository early in the writing process \u2014 later commits will be visible to reviewers without any additional action. "),o("li",null," If you rename files, add new identifiers, or introduce new contributor names after creation, revisit the anonymization options (custom terms, file filters) to make sure the new content is still properly anonymized. "),o("li",null," If the original repository is made private or deleted, the anonymized repository will no longer be able to fetch updated content. ")])])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingCLI"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-features",href:"#cli","aria-expanded":"false","aria-controls":"cli"}," Is there a command-line tool? ")])]),o("div",{id:"cli",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingCLI"},[o("div",{class:"panel-body p-3"},[o("p",null," Yes. Anonymous GitHub provides a CLI tool that lets you anonymize repositories locally, generating an anonymized ZIP file on your machine. Install it via npm: "),o("pre",{style:{"background-color":"var(--hover-bg-color)",padding:"12px","border-radius":"4px","margin-top":"8px",color:"var(--color)"}},[o("code",null,`npm install -g @tdurieux/anonymous_github
+anonymous_github`)])])])])]),p(" Limitations "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#ui-icon-warning"})]),b("Limitations ")]),o("div",{class:"panel-group",id:"faq-limitations",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingLimitation"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-limitations",href:"#limitation","aria-expanded":"false","aria-controls":"limitation"}," What are the limitations of Anonymous GitHub? ")])]),o("div",{id:"limitation",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingLimitation"},[o("div",{class:"panel-body p-3"},[o("ul",null,[o("li",null," Anonymous GitHub only anonymizes text-based files. Binary files (compiled executables, archives, etc.) are served as-is without anonymization. "),o("li",null," Files larger than 8 MB are not supported. "),o("li",null," Static site generators (such as Jekyll) used with GitHub Pages are not fully supported, although Markdown files are converted to HTML. "),o("li",null," The anonymization of terms within source code may change the behavior of the program (e.g., if a replaced term appears in a string literal or identifier). ")])])])])]),p(" Privacy & Security "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})]),b("Privacy & Security ")]),o("div",{class:"panel-group",id:"faq-privacy",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingData"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#data","aria-expanded":"false","aria-controls":"data"}," How is my data handled? ")])]),o("div",{id:"data",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingData"},[o("div",{class:"panel-body p-3"},[o("p",null," Data stored on Anonymous GitHub is never shared or used for any purpose beyond providing the anonymization service. When a repository is removed or expires, only its configuration is retained \u2014 this makes it easy to restore the repository if needed and ensures that no future repository reuses the same ID. ")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingPermissions"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#permissions","aria-expanded":"false","aria-controls":"permissions"}," Why does GitHub say Anonymous GitHub asks for write access? ")])]),o("div",{id:"permissions",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingPermissions"},[o("div",{class:"panel-body p-3"},[o("p",null,[b("The GitHub App has read-only access to the repositories you choose. You can change repository access on your "),o("a",{href:"/connections"},"GitHub connections"),b(" page.")]),o("p",null,"Legacy GitHub OAuth includes write access to private repositories because GitHub's OAuth scopes do not offer a read-only option for them. Existing OAuth anonymizations and gists can still use this connection."),o("p",null,"Anonymous GitHub reads repository content. It never pushes, modifies, or deletes files on GitHub.")])])]),o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingViewer"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-privacy",href:"#viewer","aria-expanded":"false","aria-controls":"viewer"}," Can repository owners see who viewed their anonymized repository? ")])]),o("div",{id:"viewer",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingViewer"},[o("div",{class:"panel-body p-3"},[o("p",null," No. Only the total number of views is tracked as an incremental counter. It is not possible for the repository owner or for Anonymous GitHub to identify individual viewers. Reviewer anonymity is fully preserved. ")])])])]),p(" Self-Hosting "),o("h4",{class:"faq-cat"},[o("svg",{class:"ui-icon mr-2","aria-hidden":"true"},[o("use",{href:"#project-icon-storage"})]),b("Self-Hosting ")]),o("div",{class:"panel-group",id:"faq-hosting",role:"tablist","aria-multiselectable":"true"},[o("div",{class:"panel panel-default mb-3"},[o("div",{class:"panel-heading p-3",role:"tab",id:"headingDeploy"},[o("h3",{class:"panel-title"},[o("a",{class:"collapsed",role:"button","data-toggle":"collapse","data-parent":"#faq-hosting",href:"#deploy","aria-expanded":"false","aria-controls":"deploy"}," Can I deploy my own instance? ")])]),o("div",{id:"deploy",class:"panel-collapse collapse",role:"tabpanel","aria-labelledby":"headingDeploy"},[o("div",{class:"panel-body p-3"},[o("p",null,[b(" Yes. Anonymous GitHub is fully open source (GPL-3.0) and supports Docker-based deployment. You will need to configure a GitHub OAuth app and provide a GitHub token. Detailed setup instructions are available on the "),o("a",{href:"https://github.com/tdurieux/anonymous_github/",target:"_blank"},"GitHub repository"),b(". ")]),o("p",null," The basic steps are: "),o("ol",null,[o("li",null,"Clone the repository and install dependencies"),o("li",null,[b("Create a "),o("code",null,".env"),b(" file with your GitHub token, OAuth client ID, and client secret")]),o("li",null,[b("Run "),o("code",null,"docker-compose up -d")])])])])])]),o("div",{class:"text-center mt-5 mb-5 p-4",style:{"background-color":"var(--hover-bg-color)","border-radius":"8px"}},[o("p",{class:"mb-2",style:{"font-size":"1.1rem"}}," Still have questions? "),o("p",{class:"text-muted mb-0"},[b(" Open an issue on the "),o("a",{href:"https://github.com/tdurieux/anonymous_github/issues",target:"_blank"},"GitHub repository"),b(" and we'll be happy to help. ")])])])])],-1)])])}var zI={class:"pr-page"},HI={class:"container paper-page pr-page-inner"},BI={class:"pr-header"},jI={class:"pr-title-row"},GI={class:"paper-page-title pr-title"},WI=["textContent"],KI={key:1,class:"text-muted"},YI=["href"],JI={class:"pr-header-meta"},QI={key:0,class:"pr-meta-item"},XI=["textContent"],ZI={key:1,class:"pr-meta-item"},xI=["textContent"],e3={key:2,class:"pr-meta-item"},t3=["textContent"],o3={key:0,class:"paper-tabs",role:"tablist"},n3=["aria-selected","tabindex"],s3=["textContent"],r3=["aria-selected","tabindex"],i3=["textContent"],a3={class:"paper-tab-content"},l3={key:0,role:"tabpanel",id:"gist-files-panel","aria-labelledby":"gist-files-tab"},d3={class:"pr-comments"},u3={class:"pr-comment"},c3={class:"pr-comment-head"},p3=["textContent"],f3={key:0,class:"pr-comment-date"},m3={key:0,class:"paper-table-empty"},h3={key:1,role:"tabpanel",id:"gist-comments-panel","aria-labelledby":"gist-comments-tab"},v3={class:"pr-comments"},y3={class:"pr-comment"},g3={class:"pr-comment-head"},b3={key:0,class:"pr-comment-author"},w3=["textContent"],k3=["textContent"],E3={key:0,class:"pr-comment-body"},C3={key:0,class:"paper-table-empty"};function $l(e,t){let n=We("gist-file"),r=We("markdown");return l(),d("div",zI,[o("div",HI,[t[17]||(t[17]=o("div",{class:"paper-crumbs"},[o("a",{href:"/dashboard"},"Reviewer"),b(" \xA0/\xA0 "),o("span",{class:"here"},"Gist")],-1)),o("header",BI,[o("div",jI,[o("h1",GI,[e.details?.description?(l(),d("span",{key:0,textContent:c(e.details?.description)},null,8,WI)):p("v-if",!0),e.details?.description?p("v-if",!0):(l(),d("span",KI,"Untitled gist"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/gist-anonymize/"+e.gistId)},[...t[4]||(t[4]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),o("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,YI)):p("v-if",!0)]),o("div",JI,[o("span",{class:A(["paper-pill",{good:e.details?.isPublic,warn:!e.details?.isPublic}])},c(e.details?.isPublic?"Public":"Secret"),3),e.details?.ownerLogin?(l(),d("span",QI,[t[5]||(t[5]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[6]||(t[6]=b(" @",-1)),o("span",{textContent:c(e.details?.ownerLogin)},null,8,XI)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",ZI,[t[7]||(t[7]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=b()),o("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,xI)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",e3,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=b(" Anonymized ",-1)),o("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,t3)])):p("v-if",!0)])]),e.details?.files&&e.details?.files?.length||e.details?.comments&&e.details?.comments?.length?(l(),d("nav",o3,[e.details?.files?(l(),d("button",{key:0,class:A(["paper-tab",{active:e.tabState?.active=="files"}]),type:"button",role:"tab",id:"gist-files-tab","aria-selected":e.tabState?.active==="files","aria-controls":"gist-files-panel",tabindex:e.tabState?.active==="files"?0:-1,onKeydown:t[0]||(t[0]=s=>e.previewTabKeydown(s)),onClick:t[1]||(t[1]=s=>e.tabState.active="files")},[t[11]||(t[11]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-type-gist"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.files?.length,{0:"No files",one:"1 file",other:"{} files"}))},null,8,s3)],42,n3)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:A(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"gist-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"gist-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=s=>e.previewTabKeydown(s)),onClick:t[3]||(t[3]=s=>e.tabState.active="comments")},[t[12]||(t[12]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,i3)],42,r3)):p("v-if",!0)])):p("v-if",!0),o("div",a3,[e.details?.files&&e.tabState?.active=="files"?(l(),d("div",l3,[o("ul",d3,[(l(!0),d(X,null,ae(e.details?.files,(s,i)=>(l(),d("li",u3,[o("div",c3,[o("strong",{textContent:c(s?.filename)},null,8,p3),s?.language?(l(),d("span",f3,c(s?.language),1)):p("v-if",!0)]),Ce(n,{file:s},null,8,["file"])]))),256)),e.details?.files?.length?p("v-if",!0):(l(),d("li",m3,[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-file"})],-1),o("span",null,"No files in this gist.",-1)])]))])])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",h3,[o("ul",v3,[(l(!0),d(X,null,ae(e.details?.comments,(s,i)=>(l(),d("li",y3,[o("div",g3,[s?.author?(l(),d("span",b3,[t[14]||(t[14]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=b(" @",-1)),o("span",{textContent:c(s?.author)},null,8,w3)])):p("v-if",!0),s?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(s?.updatedDate))},null,8,k3)):p("v-if",!0)]),s?.body?(l(),d("div",E3,[Ce(r,{content:s?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",C3,[...t[16]||(t[16]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1),o("span",null,"No comments on this gist.",-1)])]))])])):p("v-if",!0)])])])}var _3={class:"collapse navbar-collapse",id:"navbarSupportedContent"},S3={class:"navbar-nav mr-auto smooth-scroll"},N3={key:0,class:"nav-item"},D3={key:1,class:"nav-item"},R3={key:2,class:"nav-item"},T3={key:3,class:"nav-item"},A3={class:"nav-item"},O3={key:4,class:"nav-item"},I3={class:"navbar-nav"},P3={key:0,class:"nav-item"},V3={key:1,class:"nav-item"},q3={key:2,class:"nav-item"},M3={key:3,class:"nav-item"},$3={key:4,class:"nav-item dropdown user-chip-wrap"},L3={class:"nav-link user-chip dropdown-toggle",href:"#",id:"navbarDropdownMenuLink",role:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"},U3=["src"],F3={class:"user-chip-name"},z3={class:"dropdown-menu dropdown-menu-right user-menu","aria-labelledby":"navbarDropdownMenuLink"},H3={class:"dropdown-header"},B3=["innerHTML"],j3=["disabled"],G3={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},W3={class:"email-prompt-actions"},K3=["disabled"],Y3=["disabled"],J3=["disabled"];function Ll(e,t){return l(),d(X,null,[o("nav",{class:A(["navbar navbar-expand-lg",{"navbar-dark":e.isDarkMode}])},[t[18]||(t[18]=pe('Anonymous GitHub Support ',3)),o("div",_3,[o("ul",S3,[e.user?p("v-if",!0):(l(),d("li",N3,[o("a",{class:A(["nav-link",{active:e.path=="/"}]),href:"/"}," Home ",2)])),e.user?(l(),d("li",D3,[o("a",{class:A(["nav-link",{active:e.path=="/dashboard"}]),href:"/dashboard"},[...t[7]||(t[7]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-grid"})],-1),b(" My work ",-1)])],2)])):p("v-if",!0),e.user?(l(),d("li",R3,[o("a",{class:A(["nav-link",{active:e.path=="/anonymize"||e.path=="/pull-request-anonymize"}]),href:"/anonymize"},[...t[8]||(t[8]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1),b(" Anonymize ",-1)])],2)])):p("v-if",!0),e.user?(l(),d("li",T3,[o("a",{class:A(["nav-link",{active:e.path=="/conferences"}]),href:"/conferences"},[...t[9]||(t[9]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1),b(" Conferences ",-1)])],2)])):p("v-if",!0),o("li",A3,[o("a",{class:A(["nav-link",{active:e.path=="/faq"}]),href:"/faq"},[...t[10]||(t[10]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-help"})],-1),b("FAQ",-1)])],2)]),e.user&&e.user?.isAdmin?(l(),d("li",O3,[o("a",{class:A(["nav-link",{active:e.path?.indexOf("/admin")===0}]),href:"/admin/"},[...t[11]||(t[11]=[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#project-icon-filter"})],-1),b(" Admin ",-1)])],2)])):p("v-if",!0)]),o("ul",I3,[e.user||!e.isReviewerRoute?(l(),d("li",P3,[...t[12]||(t[12]=[o("a",{class:"nav-link nav-icon",target:"_blank",href:"https://github.com/tdurieux/anonymous_github/",title:"Anonymous GitHub source code","aria-label":"Anonymous GitHub source code on GitHub",rel:"noopener","data-offset":"30"},[o("i",{class:"fab fa-github","aria-hidden":"true"})],-1)])])):p("v-if",!0),p(` "Report a bug" is about this service. Reviewers who land on an
anonymized repository often think it is about the paper, so the
- label names the service and the tooltip says who to contact. `),t[17]||(t[17]=o("li",{class:"nav-item d-none d-lg-block"},[o("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-bug"})]),b("Report a bug ")])],-1)),e.isDarkMode?p("v-if",!0):(l(),d("li",O3,[o("a",{class:"nav-link nav-icon",href:"#",title:"Switch to dark mode","aria-label":"Switch to dark mode",role:"button",onClick:t[0]||(t[0]=de(n=>{e.darkMode(!0)},["prevent"]))},[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(l(),d("li",I3,[o("a",{class:"nav-link nav-icon",href:"#",title:"Switch to light mode","aria-label":"Switch to light mode",role:"button",onClick:t[1]||(t[1]=de(n=>{e.darkMode(!1)},["prevent"]))},[...t[14]||(t[14]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-sun"})],-1)])])])):p("v-if",!0),!e.user&&!e.isReviewerRoute?(l(),d("li",P3,[...t[15]||(t[15]=[o("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[o("i",{class:"fab fa-github mr-1"}),b(" Sign in ")],-1)])])):p("v-if",!0),e.user?(l(),d("li",V3,[o("a",q3,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,M3)):p("v-if",!0),o("span",$3,c(e.user?.username),1)]),o("div",L3,[o("h6",U3,"Signed in as @"+c(e.user?.username),1),t[16]||(t[16]=pe('SettingsDefaults, quotas, account GitHub connectionsRepository access and OAuth Claim an anonymizationAttach an existing mirror to your account
Report a bugAbout this service, not a paper Source code Support the project
Sign out ',9))])])):p("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,F3)):p("v-if",!0),e.emailPromptOpen?(l(),d("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[6]||(t[6]=de(n=>e.respondToEmailPrompt("later"),["prevent"]))},[o("form",{onSubmit:t[5]||(t[5]=de(n=>e.respondToEmailPrompt("save"),["prevent"]))},[t[19]||(t[19]=o("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[20]||(t[20]=o("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[21]||(t[21]=o("label",{for:"email-prompt-address"},"Email address",-1)),D(o("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[2]||(t[2]=n=>e.emailPromptAddress=n),disabled:e.emailPromptBusy},null,8,z3),[[Ft,e.emailPromptAddress]]),e.emailPromptError?(l(),d("p",H3,c(e.emailPromptError),1)):p("v-if",!0),o("div",B3,[o("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[3]||(t[3]=n=>e.respondToEmailPrompt("later"))},"Remind me later",8,j3),o("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[4]||(t[4]=n=>e.respondToEmailPrompt("never"))},"Never",8,G3),o("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},c(e.emailPromptBusy?"Saving\u2026":"Save"),9,W3)])],32)],32)):p("v-if",!0)],64)}var K3={class:"paper-landing"},Y3={class:"paper-hero"},J3={class:"paper-hero-copy"},Q3={class:"paper-cta-row"},X3={key:0,href:"/signin",target:"_self",class:"btn-hero"},Z3={key:1,href:"/anonymize",class:"btn-hero"},x3={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},eP={class:"paper-stats-grid"},tP={class:"paper-stat-value"},oP={class:"paper-stat-label"},nP=["viewBox"],sP=["x","y","width","height"],rP={key:1,class:"paper-stat-delta"},iP={class:"paper-features paper-wrap","aria-label":"Product features"},aP={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},lP=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],dP={class:"paper-eyebrow"},uP={class:"paper-feature-title"},cP={class:"paper-feature-more"},pP={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},fP=["href","target"],mP={class:"paper-features-stage"},hP=["id","aria-labelledby"],vP={class:"paper-frame"},yP={class:"paper-frame-bar","aria-hidden":"true"},gP={class:"url"},bP=["src","alt"],wP={class:"paper-footer"},kP={class:"paper-footer-inner"},EP={class:"paper-footer-col"},CP={key:0,href:"/dashboard"},_P={key:1,href:"/conferences"},SP={class:"paper-footer-foot"};function Ul(e,t){return l(),d("div",K3,[p(" Hero: copy on the left, the product on the right "),o("section",Y3,[o("div",J3,[t[2]||(t[2]=o("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[3]||(t[3]=o("h1",{class:"hero-title"},[b(" Share the code,"),o("br"),o("span",{class:"accent"},"not the author.")],-1)),t[4]||(t[4]=o("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),o("div",Q3,[e.user?p("v-if",!0):(l(),d("a",X3,[...t[0]||(t[0]=[o("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),b("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",Z3," Anonymize a repository \u2192 ")):p("v-if",!0),t[1]||(t[1]=o("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[5]||(t[5]=o("ul",{class:"paper-reassure"},[o("li",null,"Free and open source"),o("li",null,"Read-only: never writes to your repos"),o("li",null,"Expires on the date you set")],-1))]),t[6]||(t[6]=pe('anonymous.4open.science/anonymize
',1))]),p(" Proof "),t[16]||(t[16]=pe('Trusted by authors at
ICSE \xB7 FSE \xB7 OOPSLA
',1)),p(" Live stats "),o("section",x3,[t[7]||(t[7]=o("div",{class:"paper-stats-meta"},[o("div",{class:"paper-stats-meta-left"},"Live \xB7 last 60 days"),o("div",{class:"paper-stats-meta-right"},[o("span",{class:"paper-stats-dot","aria-hidden":"true"}),b(" updated daily ")])],-1)),o("div",eP,[(l(!0),d(X,null,ae(e.cards,(n,r)=>(l(),d("div",{class:"paper-stat-card",key:n?.key},[o("div",tP,c(e.fmt?.bigNum(n?.total)),1),o("div",oP,c(n?.label),1),e.history[n?.key].bars?.length>1?(l(),d("svg",{key:0,class:"paper-stat-bars",preserveAspectRatio:"none","aria-hidden":"true",viewBox:"0 0 "+e.history[n?.key].viewW+" 36"},[(l(!0),d(X,null,ae(e.history[n?.key].bars,(s,i)=>(l(),d("rect",{key:i,class:A({"is-latest":i===e.history[n.key].bars.length-1}),x:s?.x,y:s?.y,width:s?.w,height:s?.h},null,10,sP))),128))],8,nP)):p("v-if",!0),e.history[n?.key].bars?.length>1?(l(),d("div",rP," +"+c(e.fmt?.number(e.history[n?.key].deltaToday))+" today ",1)):p("v-if",!0)]))),128))])]),p(" Before / after "),t[17]||(t[17]=o("section",{class:"paper-section-head paper-wrap"},[o("div",null,[o("div",{class:"paper-eyebrow"},"Before \xB7 after"),o("h2",null,[b("The same repository, "),o("em",null,"minus you.")])]),o("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),t[18]||(t[18]=o("div",{class:"paper-preview paper-wrap","aria-label":"Before and after example"},[o("div",{class:"pane"},[o("div",{class:"pane-header"},[o("span",{class:"pane-label"},"Before \xB7 your repo"),o("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")]),o("div",{class:"pane-body"},[o("div",null,[o("span",{class:"tok"},"#"),b(),o("strong",null,"DeepLearnUtils")]),o("div",null,"Developed by Jane Smith at MIT CSAIL."),o("div",null,"See Smith et\xA0al., \u201CAttention That Works,\u201D 2026."),o("div",null,"Contact: jane.smith@mit.edu")])]),o("div",{class:"pane"},[o("div",{class:"pane-header"},[o("span",{class:"pane-label"},"After \xB7 anonymous mirror"),o("span",{class:"pane-url"},"anonymous.4open.science/r/paper-7f2a")]),o("div",{class:"pane-body"},[o("div",null,[o("span",{class:"tok"},"#"),b(),o("strong",null,"DeepLearnUtils")]),o("div",null,[b("Developed by "),o("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),b(" at "),o("span",{class:"redact",role:"img","aria-label":"redacted affiliation"},"XXXX-2"),b(".")]),o("div",null,[b("See "),o("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),b(" et\xA0al., \u201CAttention That Works,\u201D 2026.")]),o("div",null,[b("Contact: "),o("span",{class:"redact",role:"img","aria-label":"redacted email address"},"XXXX-3")])])])],-1)),p(" What you get: one screenshot, three tabs "),t[19]||(t[19]=o("section",{class:"paper-section-head paper-wrap",id:"about"},[o("div",null,[o("div",{class:"paper-eyebrow"},"What you get"),o("h2",null,[b("Anonymize, review, "),o("em",null,"manage.")])]),o("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),o("section",iP,[o("div",aP,[(l(!0),d(X,null,ae(e.features,(n,r)=>(l(),d("div",{class:A(["paper-feature",{"is-on":e.feature===n?.key}]),key:n?.key},[o("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:s=>e.selectFeature(n.key),onKeydown:s=>e.featureKeydown(s,r),id:"feature-tab-"+n?.key,"aria-controls":"feature-panel-"+n?.key,"aria-selected":e.feature===n?.key,tabindex:e.feature===n?.key?0:-1},[o("span",dP,c(n?.num)+" \xB7 "+c(n?.eyebrow),1),o("span",uP,[b(c(n?.title)+" ",1),o("em",null,c(n?.accent),1)])],40,lP),o("div",cP,[o("span",pP,[b(c(n?.title)+" ",1),o("em",null,c(n?.accent),1)]),o("p",null,c(n?.text),1),o("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(n)),target:e.featureTarget(n)},c(n?.cta)+" \u2192",9,fP)])],2))),128))]),o("div",mP,[(l(!0),d(X,null,ae(e.features,(n,r)=>D((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:n?.key,id:"feature-panel-"+n?.key,"aria-labelledby":"feature-tab-"+n?.key},[o("div",vP,[o("div",yP,[t[8]||(t[8]=o("span",{class:"dots"},[o("i"),o("i"),o("i")],-1)),o("span",gP,c(n?.url),1)]),o("div",{class:A("paper-crop paper-crop-"+n?.key)},[o("img",{loading:"lazy",width:"2880",height:"1800",src:e.safeUrl(n?.img),alt:n?.alt},null,8,bP)],2)])],8,hP)),[[K,e.feature===n?.key]])),128))])]),p(" FAQ teaser "),t[20]||(t[20]=pe('What access does GitHub sign-in require? The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.
Which file formats are supported? Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.
',1)),o("footer",wP,[o("div",kP,[t[12]||(t[12]=o("div",{class:"paper-footer-brand"},[o("div",{class:"paper-footer-mark"},[b("Anonymous "),o("em",null,"GitHub")]),o("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),o("div",EP,[t[9]||(t[9]=o("div",{class:"paper-footer-head"},"Product",-1)),t[10]||(t[10]=o("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",CP,"My work")):p("v-if",!0),e.user?(l(),d("a",_P,"Conferences")):p("v-if",!0),t[11]||(t[11]=o("a",{href:"/faq"},"FAQ",-1))]),t[13]||(t[13]=pe('',2))]),t[15]||(t[15]=o("div",{class:"paper-footer-rule"},null,-1)),o("div",SP,[o("span",null,"\xA9 "+c(e.year||2026)+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[14]||(t[14]=o("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var NP={class:"paper-empty"},DP={class:"paper-empty-inner"},RP={key:0,class:"paper-eyebrow"},TP={key:1,class:"paper-eyebrow"},AP={key:2,class:"paper-empty-title"},OP=["textContent"];function Fl(e,t){return l(),d("div",NP,[o("div",DP,[e.error?p("v-if",!0):(l(),d("div",RP,"Working")),e.error?(l(),d("div",TP,"Error")):p("v-if",!0),e.error?p("v-if",!0):(l(),d("h1",AP,[...t[0]||(t[0]=[b(" Loading",-1),o("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:c(e.fmt.translate(e.error))},null,8,OP)):p("v-if",!0)])])}var IP={class:"container paper-page paper-settings"},PP={class:"paper-crumbs"},VP={class:"here"},qP={class:"paper-page-title"},MP={class:"paper-settings-body"},$P={class:"paper-settings-toc"},LP={href:"#conf-billing"},UP={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},FP={id:"conf-basics",class:"paper-settings-section"},zP={class:"form-group"},HP={class:"invalid-feedback"},BP={class:"invalid-feedback"},jP={class:"form-group"},GP={class:"invalid-feedback"},WP={class:"form-group"},KP={class:"invalid-feedback"},YP={class:"invalid-feedback"},JP={id:"conf-window",class:"paper-settings-section"},QP={class:"form-grid-2"},XP={class:"form-group"},ZP={class:"invalid-feedback"},xP={class:"invalid-feedback"},eV={class:"form-group"},tV={class:"invalid-feedback"},oV={class:"invalid-feedback"},nV={id:"conf-rendering",class:"paper-settings-section"},sV={class:"form-check"},rV={class:"form-check-input",type:"checkbox",id:"link",name:"link"},iV={class:"form-check"},aV={class:"form-check-input",type:"checkbox",id:"image",name:"image"},lV={class:"form-check"},dV={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},uV={class:"form-check"},cV={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},pV={id:"conf-features",class:"paper-settings-section"},fV={class:"form-check"},mV={class:"form-check-input",type:"checkbox",id:"update",name:"update"},hV={class:"form-check"},vV={class:"form-check-input",type:"checkbox",id:"page",name:"page"},yV={id:"conf-plan",class:"paper-settings-section"},gV={class:"paper-plan-grid"},bV=["value"],wV=["textContent"],kV={class:"paper-plan-price"},EV=["innerHTML"],CV={key:0,id:"conf-billing",class:"paper-settings-section"},_V={class:"form-group"},SV={class:"form-group"},NV={class:"form-group"},DV={class:"form-group"},RV={class:"form-grid-3"},TV={class:"form-group"},AV={class:"form-group"},OV={class:"form-group"},IV={class:"form-group"},PV={class:"paper-settings-footer"},VV=["textContent"],qV=["textContent"],MV=["disabled"];function zl(e,t){let n=be("paper-scrollspy"),r=be("field"),s=be("form");return l(),d("div",IP,[o("div",PP,[t[1]||(t[1]=o("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=b(" \xA0/\xA0 ",-1)),t[3]||(t[3]=o("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=b(" \xA0/\xA0 ",-1)),o("span",VP,c(e.editionMode?"Edit":"New"),1)]),o("h1",qP,[b(c(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=o("em",null,"conference",-1))]),t[43]||(t[43]=o("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),o("div",MP,[D((l(),d("aside",$P,[t[7]||(t[7]=o("div",{class:"paper-settings-toc-head"},"On this page",-1)),o("nav",null,[t[6]||(t[6]=pe('Basics Review window Rendering defaults Features Plan ',5)),D(o("a",LP,"Billing",512),[[K,e.plan?.pricePerRepo>0]])])])),[[n]]),D((l(),d("form",UP,[o("section",FP,[t[12]||(t[12]=o("div",{class:"paper-section-eyebrow"},"Basics",-1)),o("div",zP,[t[8]||(t[8]=o("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[r,{state:e.viewState,set:i=>{e.options.name=i},value:e.options?.name,form:"conference",options:{}}]]),D(o("div",HP," The name of the conference is invalid. ",512),[[K,e.conference?.name?.errors?.invalid]]),D(o("div",BP," The name of the conference is required. ",512),[[K,e.conference?.name?.errors?.required]])]),o("div",jP,[t[9]||(t[9]=o("label",{class:"paper-field-label",for:"url"},"Website",-1)),D(o("input",{type:"url",class:A(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.url=i},value:e.options?.url,form:"conference",options:{}}]]),D(o("div",GP," The url of the conference is invalid. ",512),[[K,e.conference?.url?.errors?.url]])]),o("div",WP,[t[10]||(t[10]=o("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[r,{state:e.viewState,set:i=>{e.options.conferenceID=i},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=o("small",{class:"form-text text-muted"},[b("3\u201310 characters, letters, numbers, "),o("code",null,"-"),b(" and "),o("code",null,"_"),b(". Authors reference this when they anonymize.")],-1)),D(o("div",{class:"invalid-feedback"}," The conference ID '"+c(e.options?.conferenceID)+"' is already used. ",513),[[K,e.conference?.conferenceID?.errors?.used]]),D(o("div",KP," The conference ID is required. ",512),[[K,e.conference?.conferenceID?.errors?.required]]),D(o("div",YP," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[K,e.conference?.conferenceID?.errors?.pattern]])])]),o("section",JP,[t[17]||(t[17]=o("div",{class:"paper-section-eyebrow"},"Review window",-1)),o("div",QP,[o("div",XP,[t[13]||(t[13]=o("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),D(o("input",{type:"date",class:A(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.startDate=i},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=o("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),D(o("div",ZP," Start date is required. ",512),[[K,e.conference?.startDate?.errors?.required]]),D(o("div",xP," Start date must be before end date. ",512),[[K,e.conference?.startDate?.errors?.invalid]])]),o("div",eV,[t[15]||(t[15]=o("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),D(o("input",{type:"date",class:A(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.endDate=i},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=o("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),D(o("div",tV," End date is required. ",512),[[K,e.conference?.endDate?.errors?.required]]),D(o("div",oV," End date is invalid. ",512),[[K,e.conference?.endDate?.errors?.invalid]])])])]),o("section",nV,[t[26]||(t[26]=o("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),o("div",sV,[D(o("input",rV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.link=i},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=o("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),o("div",iV,[D(o("input",aV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.image=i},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=o("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),o("div",lV,[D(o("input",dV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.pdf=i},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=o("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=o("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),o("div",uV,[D(o("input",cV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.notebook=i},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=o("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=o("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),o("section",pV,[t[31]||(t[31]=o("div",{class:"paper-section-eyebrow"},"Features",-1)),o("div",fV,[D(o("input",mV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.update=i},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=o("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=o("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),o("div",hV,[D(o("input",vV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.page=i},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=o("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=o("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),o("section",yV,[t[33]||(t[33]=o("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[34]||(t[34]=o("p",{class:"paper-section-copy"},"Billed per repository per month, prorated by the day for as long as a repository stays in the conference.",-1)),o("div",gV,[(l(!0),d(X,null,ae(e.plans,(i,a)=>(l(),d("label",{class:A(["paper-plan-card",{selected:e.options?.plan?.planID==i?.id}])},[D(o("input",{type:"radio",name:"planPicker",value:i?.id},null,8,bV),[[r,{state:e.viewState,set:u=>{e.options.plan.planID=u},value:e.options?.plan?.planID,form:"conference",options:{}}]]),o("div",{class:"paper-plan-head",textContent:c(i?.name)},null,8,wV),o("div",kV,[b(c(e.fmt?.number(i?.pricePerRepo))+"\u20AC ",1),t[32]||(t[32]=o("span",{class:"paper-plan-per"},"/ repo / month",-1))]),o("div",{class:"paper-plan-desc",innerHTML:e.sanitize(i?.description)},null,8,EV)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",CV,[t[42]||(t[42]=o("div",{class:"paper-section-eyebrow"},"Billing",-1)),o("div",_V,[t[35]||(t[35]=o("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.name=i},value:e.options?.billing?.name,form:"conference",options:{}}]])]),o("div",SV,[t[36]||(t[36]=o("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(o("input",{type:"email",class:A(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.email=i},value:e.options?.billing?.email,form:"conference",options:{}}]])]),o("div",NV,[t[37]||(t[37]=o("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address=i},value:e.options?.billing?.address,form:"conference",options:{}}]])]),o("div",DV,[D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address2=i},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),o("div",RV,[o("div",TV,[t[38]||(t[38]=o("label",{class:"paper-field-label",for:"city"},"City",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.city=i},value:e.options?.billing?.city,form:"conference",options:{}}]])]),o("div",AV,[t[39]||(t[39]=o("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.country=i},value:e.options?.billing?.country,form:"conference",options:{}}]])]),o("div",OV,[t[40]||(t[40]=o("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.zip=i},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),o("div",IV,[t[41]||(t[41]=o("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.vat=i},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):p("v-if",!0),o("div",PV,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,VV)):p("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,qV)):p("v-if",!0),o("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=de(i=>e.submitForm(i,()=>{e.submit(i)}),["prevent"]))},c(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,MV)])])),[[s,e.viewState]])])])}var $V={key:0},LV=["innerHTML"],UV={key:3},FV=["src"],zV=["src"],HV={key:7},BV={controls:"controls"},jV=["src"],GV={key:8},WV={key:9,class:"file-error container d-flex h-100"},KV={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},YV={class:"paper-error-msg"},JV={key:10,class:"file-error container d-flex h-100"},QV={class:"paper-error-card file-error-card m-auto",role:"alert"},XV=["textContent"],ZV={key:11,class:"file-error container d-flex h-100"},xV={key:12,class:"file-error container d-flex h-100"},e5={key:13,class:"file-error container d-flex h-100"},t5={key:14,class:"file-error container d-flex h-100"},o5={class:"paper-empty-title m-auto"},n5=["href"];function Hl(e,t){let n=We("html-doc"),r=We("pdfviewer"),s=We("notebook"),i=be("code-editor");return l(),d(X,null,[e.type=="text"?D((l(),d("div",$V,null,512)),[[i,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="html"?(l(),d("div",{key:1,class:"file-content markdown-body",innerHTML:e.highlightRedactions(e.sanitize(e.content))},null,8,LV)):p("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),Lt(n,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):p("v-if",!0),(e.type=="code"||e.type=="html-doc"&&e.showSource)&&e.content!=null?D((l(),d("div",UV,null,512)),[[i,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="image"?(l(),d("img",{key:4,class:"image-content",src:e.safeUrl(e.url)},null,8,FV)):p("v-if",!0),e.type=="media"?(l(),d("iframe",{key:5,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,zV)):p("v-if",!0),e.type=="pdf"?(l(),Lt(r,{key:6,src:e.safeUrl(e.url)},null,8,["src"])):p("v-if",!0),e.type=="audio"?(l(),d("div",HV,[o("audio",BV,[o("source",{src:e.safeUrl(e.url)},null,8,jV)])])):p("v-if",!0),e.type=="IPython"?(l(),d("div",GV,[Ce(s,{file:e.url,content:e.content},null,8,["file","content"])])):p("v-if",!0),e.type=="rate_limited"?(l(),d("div",WV,[o("div",KV,[t[2]||(t[2]=pe('Temporarily paused
GitHub API rate limit reached
',1)),o("p",YV,[t[0]||(t[0]=b("This repository will be available in ",-1)),o("strong",null,c(e.rateLimitCountdown),1),t[1]||(t[1]=b(". The page will reload automatically.",-1))])])])):p("v-if",!0),e.type=="error"?(l(),d("div",JV,[o("div",QV,[t[3]||(t[3]=o("div",{class:"paper-error-eyebrow"},"Unavailable",-1)),t[4]||(t[4]=o("div",{class:"paper-error-title"},"This content can\u2019t be shown",-1)),o("p",{class:"file-error-msg",textContent:c(e.fmt.translate("ERRORS."+e.content))},null,8,XV),t[5]||(t[5]=o("div",{class:"file-error-actions"},[o("a",{href:"/",class:"btn btn-sm"},"Back to home"),o("a",{href:"/faq",class:"btn btn-sm"},"Read the FAQ")],-1))])])):p("v-if",!0),e.type=="loading"&&!e.error?(l(),d("div",ZV,[...t[6]||(t[6]=[o("h1",{class:"paper-empty-title m-auto"},"Loading\u2026",-1)])])):p("v-if",!0),e.type=="empty"?(l(),d("div",xV,[...t[7]||(t[7]=[o("h1",{class:"paper-empty-title m-auto"},[b("Empty "),o("em",null,"repository"),b(".")],-1)])])):p("v-if",!0),e.content==null&&e.type!="empty"?(l(),d("div",e5,[...t[8]||(t[8]=[o("h1",{class:"paper-empty-title m-auto"},[b("Empty "),o("em",null,"file"),b(".")],-1)])])):p("v-if",!0),e.type=="binary"?(l(),d("div",t5,[o("h1",o5,[t[9]||(t[9]=b("Unsupported ",-1)),t[10]||(t[10]=o("em",null,"binary file",-1)),t[11]||(t[11]=b(". You can ",-1)),o("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,n5),t[12]||(t[12]=b(".",-1))])])):p("v-if",!0)],64)}var s5={class:"container page dashboard-page paper-page"},r5={class:"row"},i5={class:"w-100"},a5={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},l5={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},d5={class:"flex-grow-1"},u5={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},c5={class:"d-flex flex-wrap",style:{gap:"6px"}},p5={class:"dropdown"},f5={class:"dropdown-menu","aria-labelledby":"dropdownSort"},m5={class:"form-check dropdown-item"},h5={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},v5={class:"form-check dropdown-item"},y5={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},g5={class:"form-check dropdown-item"},b5={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},w5={class:"form-check dropdown-item"},k5={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},E5={class:"form-check dropdown-item"},C5={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},_5={class:"dropdown"},S5={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},N5={class:"form-check dropdown-item"},D5={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},R5={class:"form-check dropdown-item"},T5={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},A5={class:"form-check dropdown-item"},O5={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},I5={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},P5={class:"filter-chip"},V5=["onClick"],q5={class:"repo-list w-100"},M5={class:"repo-list-item-content"},$5={class:"repo-list-item-main"},L5={class:"repo-list-item-header"},U5=["textContent","href"],F5=["textContent"],z5=["textContent"],H5={class:"repo-source"},B5=["href"],j5={class:"repo-date"},G5={class:"repo-meta"},W5={key:0,title:"Conference"},K5=["title"],Y5=["title"],J5=["title"],Q5={key:1},X5={class:"repo-list-item-actions"},Z5={class:"dropdown"},x5={class:"dropdown-menu dropdown-menu-right"},eq=["href"],tq=["onClick"],oq=["onClick"],nq=["onClick"],sq=["href"],rq={key:0,class:"repo-list-empty"};function Bl(e,t){let n=be("field"),r=be("form");return l(),d("div",s5,[o("div",r5,[o("div",i5,[t[12]||(t[12]=pe('My work \xA0/\xA0 Pull requests
Anonymized pull requests Track PR mirrors you\u2019ve created and their reviewer traffic.
',2)),p(" Search + filters row "),D((l(),d("form",a5,[o("div",l5,[o("div",d5,[D(o("input",u5,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),o("div",c5,[o("div",p5,[t[6]||(t[6]=o("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),o("div",f5,[t[5]||(t[5]=o("h6",{class:"dropdown-header"},"Select order",-1)),o("div",m5,[D(o("input",h5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=o("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),o("div",v5,[D(o("input",y5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=o("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),o("div",g5,[D(o("input",b5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=o("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),o("div",w5,[D(o("input",k5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=o("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),o("div",E5,[D(o("input",C5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=o("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),o("div",_5,[t[11]||(t[11]=o("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),o("div",S5,[t[10]||(t[10]=o("h6",{class:"dropdown-header"},"Select status",-1)),o("div",N5,[D(o("input",D5,null,512),[[n,{state:e.viewState,set:s=>{e.filters.status.ready=s},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=o("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),o("div",R5,[D(o("input",T5,null,512),[[n,{state:e.viewState,set:s=>{e.filters.status.expired=s},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=o("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),o("div",A5,[D(o("input",O5,null,512),[[n,{state:e.viewState,set:s=>{e.filters.status.removed=s},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=o("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[r,e.viewState]]),p(" Active filter chips "),D(o("div",I5,[(l(!0),d(X,null,ae(e.filters?.status,(s,i,a)=>D((l(),d("span",P5,[b(c(e.fmt?.title(i))+" ",1),o("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:u=>{e.filters.status[i]=!0}}," \xD7 ",8,V5)],512)),[[K,!s]])),256))],512),[[K,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),p(" Pull request list "),o("ul",q5,[(l(!0),d(X,null,ae(e.filteredPullRequests,(s,i)=>(l(),d("li",{class:A(["repo-list-item",{"repo-inactive":s?.status=="expired"||s?.status=="removed"||s?.status=="error"}])},[o("div",M5,[o("div",$5,[o("div",L5,[o("a",{class:"repo-name",textContent:c(s?.pullRequestId),href:e.safeUrl("/pr/"+s?.pullRequestId)},null,8,U5),o("span",{class:A(["status-badge",{"status-removed":s?.status=="removed"||s?.status=="expired"||s?.status=="removing"||s?.status=="expiring","status-preparing":s?.status=="preparing"||s?.status=="download","status-ready":s?.status=="ready","status-error":s?.status=="error"}])},[o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,F5),s?.status=="error"?(l(),d("span",{key:0,textContent:c(": "+s?.statusMessage)},null,8,z5)):p("v-if",!0)],2)]),o("div",H5,[o("span",null,[t[13]||(t[13]=o("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),o("a",{href:e.safeUrl("https://github.com/"+s?.source?.repositoryFullName+"/pull/"+s?.source?.pullRequestId)},c(s?.source?.repositoryFullName)+"#"+c(s?.source?.pullRequestId),9,B5)]),o("span",{class:A(["status-badge",{"status-ready":s?.merged,"status-removed":s?.state=="open","status-error":s?.state=="closed"&&!s?.merged}]),style:{"font-size":"10px"}},c(e.fmt?.title(s?.merged?"merged":s?.state)),3),o("span",j5,"anonymized "+c(e.fmt?.humanTime(s?.anonymizeDate)),1)])]),o("div",G5,[s?.conference?(l(),d("span",W5,[t[14]||(t[14]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),b(" "+c(s?.conference),1)])):p("v-if",!0),o("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+s?.options?.terms?.join(", ")},[t[15]||(t[15]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1)),b(" "+c(e.fmt?.number(s?.options?.terms?.length)),1)],8,K5),o("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(s?.pageView)},[t[16]||(t[16]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),b(" "+c(e.fmt?.number(s?.pageView)),1)],8,Y5),o("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(s?.lastView)},[t[17]||(t[17]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-calendar"})],-1)),b(" "+c(e.fmt?.humanTime(s?.lastView)),1)],8,J5),s?.options?.expirationMode!="never"&&s?.status=="ready"?(l(),d("span",Q5,[t[18]||(t[18]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),b(" Expire: "+c(e.fmt?.humanTime(s?.options?.expirationDate)),1)])):p("v-if",!0)])]),o("div",X5,[o("div",Z5,[t[24]||(t[24]=o("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),o("div",x5,[o("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+s?.pullRequestId)},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit ",-1)])],8,eq),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force update ",-1)])],8,tq),[[K,s?.status=="ready"||s?.status=="error"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[21]||(t[21]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Enable ",-1)])],8,oq),[[K,s?.status=="removed"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removePullRequest(s),["prevent"])},[...t[22]||(t[22]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove ",-1)])],8,nq),[[K,s?.status=="ready"]]),o("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+s?.pullRequestId+"/")},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View PR ",-1)])],8,sq)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",rq,[...t[25]||(t[25]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No pull requests to display.",-1)])])):p("v-if",!0)])])])}var iq={class:"container paper-page paper-settings"},aq={class:"paper-settings-body"},lq={class:"paper-settings-toc"},dq={class:"paper-settings-main"},uq={id:"settings-quota",class:"paper-settings-section"},cq={key:1,class:"quota-row","aria-hidden":"true"},pq={class:"quota-item"},fq={id:"settings-terms",class:"paper-settings-section"},mq={class:"form-group"},hq={class:"form-control",id:"terms",name:"terms",rows:"4",placeholder:`Jane Smith
+ label names the service and the tooltip says who to contact. `),t[17]||(t[17]=o("li",{class:"nav-item d-none d-lg-block"},[o("a",{class:"nav-link",target:"_blank",rel:"noopener",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",title:"Report a problem with the Anonymous GitHub service. Questions about an anonymized repository or paper go to its authors.","data-offset":"30"},[o("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-bug"})]),b("Report a bug ")])],-1)),e.isDarkMode?p("v-if",!0):(l(),d("li",V3,[o("a",{class:"nav-link nav-icon",href:"#",title:"Switch to dark mode","aria-label":"Switch to dark mode",role:"button",onClick:t[0]||(t[0]=de(n=>{e.darkMode(!0)},["prevent"]))},[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(l(),d("li",q3,[o("a",{class:"nav-link nav-icon",href:"#",title:"Switch to light mode","aria-label":"Switch to light mode",role:"button",onClick:t[1]||(t[1]=de(n=>{e.darkMode(!1)},["prevent"]))},[...t[14]||(t[14]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-sun"})],-1)])])])):p("v-if",!0),!e.user&&!e.isReviewerRoute?(l(),d("li",M3,[...t[15]||(t[15]=[o("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[o("i",{class:"fab fa-github mr-1"}),b(" Sign in ")],-1)])])):p("v-if",!0),e.user?(l(),d("li",$3,[o("a",L3,[e.user?.photo?(l(),d("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,U3)):p("v-if",!0),o("span",F3,c(e.user?.username),1)]),o("div",z3,[o("h6",H3,"Signed in as @"+c(e.user?.username),1),t[16]||(t[16]=pe('SettingsDefaults, quotas, account GitHub connectionsRepository access and OAuth Claim an anonymizationAttach an existing mirror to your account
Report a bugAbout this service, not a paper Source code Support the project
Sign out ',9))])])):p("v-if",!0)])])],2),e.generalMessage?(l(),d("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,B3)):p("v-if",!0),e.emailPromptOpen?(l(),d("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[6]||(t[6]=de(n=>e.respondToEmailPrompt("later"),["prevent"]))},[o("form",{onSubmit:t[5]||(t[5]=de(n=>e.respondToEmailPrompt("save"),["prevent"]))},[t[19]||(t[19]=o("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[20]||(t[20]=o("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[21]||(t[21]=o("label",{for:"email-prompt-address"},"Email address",-1)),D(o("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[2]||(t[2]=n=>e.emailPromptAddress=n),disabled:e.emailPromptBusy},null,8,j3),[[Ft,e.emailPromptAddress]]),e.emailPromptError?(l(),d("p",G3,c(e.emailPromptError),1)):p("v-if",!0),o("div",W3,[o("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[3]||(t[3]=n=>e.respondToEmailPrompt("later"))},"Remind me later",8,K3),o("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[4]||(t[4]=n=>e.respondToEmailPrompt("never"))},"Never",8,Y3),o("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},c(e.emailPromptBusy?"Saving\u2026":"Save"),9,J3)])],32)],32)):p("v-if",!0)],64)}var Q3={class:"paper-landing"},X3={class:"paper-hero"},Z3={class:"paper-hero-copy"},x3={class:"paper-cta-row"},eP={key:0,href:"/signin",target:"_self",class:"btn-hero"},tP={key:1,href:"/anonymize",class:"btn-hero"},oP={class:"paper-stats paper-wrap",id:"metrics","aria-label":"Usage over the last 60 days"},nP={class:"paper-stats-grid"},sP={class:"paper-stat-value"},rP={class:"paper-stat-label"},iP=["viewBox"],aP=["x","y","width","height"],lP={key:1,class:"paper-stat-delta"},dP={class:"paper-features paper-wrap","aria-label":"Product features"},uP={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},cP=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],pP={class:"paper-eyebrow"},fP={class:"paper-feature-title"},mP={class:"paper-feature-more"},hP={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},vP=["href","target"],yP={class:"paper-features-stage"},gP=["id","aria-labelledby"],bP={class:"paper-frame"},wP={class:"paper-frame-bar","aria-hidden":"true"},kP={class:"url"},EP=["src","alt"],CP={class:"paper-footer"},_P={class:"paper-footer-inner"},SP={class:"paper-footer-col"},NP={key:0,href:"/dashboard"},DP={key:1,href:"/conferences"},RP={class:"paper-footer-foot"};function Ul(e,t){return l(),d("div",Q3,[p(" Hero: copy on the left, the product on the right "),o("section",X3,[o("div",Z3,[t[2]||(t[2]=o("div",{class:"paper-eyebrow"},"For double-blind peer review",-1)),t[3]||(t[3]=o("h1",{class:"hero-title"},[b(" Share the code,"),o("br"),o("span",{class:"accent"},"not the author.")],-1)),t[4]||(t[4]=o("p",{class:"hero-subtitle"}," Anonymous GitHub makes a read-only mirror of your repository, pull request, or gist. It redacts the terms you choose in text files, so reviewers can browse your artifact through an anonymous link. ",-1)),o("div",x3,[e.user?p("v-if",!0):(l(),d("a",eP,[...t[0]||(t[0]=[o("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),b("Sign in with GitHub ",-1)])])),e.user?(l(),d("a",tP," Anonymize a repository \u2192 ")):p("v-if",!0),t[1]||(t[1]=o("a",{class:"paper-link-arrow",target:"_self",href:"https://anonymous.4open.science/r/840c8c57-3c32-451e-bf12-0e20be300389/"},"See an anonymized repository \u2192",-1))]),t[5]||(t[5]=o("ul",{class:"paper-reassure"},[o("li",null,"Free and open source"),o("li",null,"Read-only: never writes to your repos"),o("li",null,"Expires on the date you set")],-1))]),t[6]||(t[6]=pe('anonymous.4open.science/anonymize
',1))]),p(" Proof "),t[16]||(t[16]=pe('Trusted by authors at
ICSE \xB7 FSE \xB7 OOPSLA
',1)),p(" Live stats "),o("section",oP,[t[7]||(t[7]=o("div",{class:"paper-stats-meta"},[o("div",{class:"paper-stats-meta-left"},"Live \xB7 last 60 days"),o("div",{class:"paper-stats-meta-right"},[o("span",{class:"paper-stats-dot","aria-hidden":"true"}),b(" updated daily ")])],-1)),o("div",nP,[(l(!0),d(X,null,ae(e.cards,(n,r)=>(l(),d("div",{class:"paper-stat-card",key:n?.key},[o("div",sP,c(e.fmt?.bigNum(n?.total)),1),o("div",rP,c(n?.label),1),e.history[n?.key].bars?.length>1?(l(),d("svg",{key:0,class:"paper-stat-bars",preserveAspectRatio:"none","aria-hidden":"true",viewBox:"0 0 "+e.history[n?.key].viewW+" 36"},[(l(!0),d(X,null,ae(e.history[n?.key].bars,(s,i)=>(l(),d("rect",{key:i,class:A({"is-latest":i===e.history[n.key].bars.length-1}),x:s?.x,y:s?.y,width:s?.w,height:s?.h},null,10,aP))),128))],8,iP)):p("v-if",!0),e.history[n?.key].bars?.length>1?(l(),d("div",lP," +"+c(e.fmt?.number(e.history[n?.key].deltaToday))+" today ",1)):p("v-if",!0)]))),128))])]),p(" Before / after "),t[17]||(t[17]=o("section",{class:"paper-section-head paper-wrap"},[o("div",null,[o("div",{class:"paper-eyebrow"},"Before \xB7 after"),o("h2",null,[b("The same repository, "),o("em",null,"minus you.")])]),o("p",null," Names, affiliations, emails, and any term you list are replaced across the README, source files, notebooks, and PDF links. Reviewers browse the real thing, not a zip. ")],-1)),t[18]||(t[18]=o("div",{class:"paper-preview paper-wrap","aria-label":"Before and after example"},[o("div",{class:"pane"},[o("div",{class:"pane-header"},[o("span",{class:"pane-label"},"Before \xB7 your repo"),o("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")]),o("div",{class:"pane-body"},[o("div",null,[o("span",{class:"tok"},"#"),b(),o("strong",null,"DeepLearnUtils")]),o("div",null,"Developed by Jane Smith at MIT CSAIL."),o("div",null,"See Smith et\xA0al., \u201CAttention That Works,\u201D 2026."),o("div",null,"Contact: jane.smith@mit.edu")])]),o("div",{class:"pane"},[o("div",{class:"pane-header"},[o("span",{class:"pane-label"},"After \xB7 anonymous mirror"),o("span",{class:"pane-url"},"anonymous.4open.science/r/paper-7f2a")]),o("div",{class:"pane-body"},[o("div",null,[o("span",{class:"tok"},"#"),b(),o("strong",null,"DeepLearnUtils")]),o("div",null,[b("Developed by "),o("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),b(" at "),o("span",{class:"redact",role:"img","aria-label":"redacted affiliation"},"XXXX-2"),b(".")]),o("div",null,[b("See "),o("span",{class:"redact",role:"img","aria-label":"redacted author name"},"XXXX-1"),b(" et\xA0al., \u201CAttention That Works,\u201D 2026.")]),o("div",null,[b("Contact: "),o("span",{class:"redact",role:"img","aria-label":"redacted email address"},"XXXX-3")])])])],-1)),p(" What you get: one screenshot, three tabs "),t[19]||(t[19]=o("section",{class:"paper-section-head paper-wrap",id:"about"},[o("div",null,[o("div",{class:"paper-eyebrow"},"What you get"),o("h2",null,[b("Anonymize, review, "),o("em",null,"manage.")])]),o("p",null," Terms are redacted in text files. Enabled images and PDFs are served unchanged, so review them for identifying content before sharing. Monitor your mirror, update it, or remove it when the review is over. ")],-1)),o("section",dP,[o("div",uP,[(l(!0),d(X,null,ae(e.features,(n,r)=>(l(),d("div",{class:A(["paper-feature",{"is-on":e.feature===n?.key}]),key:n?.key},[o("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:s=>e.selectFeature(n.key),onKeydown:s=>e.featureKeydown(s,r),id:"feature-tab-"+n?.key,"aria-controls":"feature-panel-"+n?.key,"aria-selected":e.feature===n?.key,tabindex:e.feature===n?.key?0:-1},[o("span",pP,c(n?.num)+" \xB7 "+c(n?.eyebrow),1),o("span",fP,[b(c(n?.title)+" ",1),o("em",null,c(n?.accent),1)])],40,cP),o("div",mP,[o("span",hP,[b(c(n?.title)+" ",1),o("em",null,c(n?.accent),1)]),o("p",null,c(n?.text),1),o("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(n)),target:e.featureTarget(n)},c(n?.cta)+" \u2192",9,vP)])],2))),128))]),o("div",yP,[(l(!0),d(X,null,ae(e.features,(n,r)=>D((l(),d("div",{class:"paper-feature-panel",role:"tabpanel",key:n?.key,id:"feature-panel-"+n?.key,"aria-labelledby":"feature-tab-"+n?.key},[o("div",bP,[o("div",wP,[t[8]||(t[8]=o("span",{class:"dots"},[o("i"),o("i"),o("i")],-1)),o("span",kP,c(n?.url),1)]),o("div",{class:A("paper-crop paper-crop-"+n?.key)},[o("img",{loading:"lazy",width:"2880",height:"1800",src:e.safeUrl(n?.img),alt:n?.alt},null,8,EP)],2)])],8,gP)),[[K,e.feature===n?.key]])),128))])]),p(" FAQ teaser "),t[20]||(t[20]=pe('What access does GitHub sign-in require? The GitHub App has read-only access to gists and the repositories you choose. Legacy OAuth uses broader permissions. Anonymous GitHub never writes to your repositories.
Which file formats are supported? Source code with syntax highlighting, Markdown, Jupyter notebooks, PDFs, images, and GitHub Pages sites. Text files are anonymized; enabled images and PDFs are served unchanged.
',1)),o("footer",CP,[o("div",_P,[t[12]||(t[12]=o("div",{class:"paper-footer-brand"},[o("div",{class:"paper-footer-mark"},[b("Anonymous "),o("em",null,"GitHub")]),o("p",{class:"paper-footer-tag"}," A read-only, identity-stripped mirror of your repository, built for double-anonymous peer review. ")],-1)),o("div",SP,[t[9]||(t[9]=o("div",{class:"paper-footer-head"},"Product",-1)),t[10]||(t[10]=o("a",{href:"/anonymize"},"Anonymize",-1)),e.user?(l(),d("a",NP,"My work")):p("v-if",!0),e.user?(l(),d("a",DP,"Conferences")):p("v-if",!0),t[11]||(t[11]=o("a",{href:"/faq"},"FAQ",-1))]),t[13]||(t[13]=pe('',2))]),t[15]||(t[15]=o("div",{class:"paper-footer-rule"},null,-1)),o("div",RP,[o("span",null,"\xA9 "+c(e.year||2026)+" Anonymous GitHub \xB7 GPL-3.0 licensed",1),t[14]||(t[14]=o("span",{class:"paper-footer-meta"},"Built for reviewers, by researchers.",-1))])])])}var TP={class:"paper-empty"},AP={class:"paper-empty-inner"},OP={key:0,class:"paper-eyebrow"},IP={key:1,class:"paper-eyebrow"},PP={key:2,class:"paper-empty-title"},VP=["textContent"];function Fl(e,t){return l(),d("div",TP,[o("div",AP,[e.error?p("v-if",!0):(l(),d("div",OP,"Working")),e.error?(l(),d("div",IP,"Error")):p("v-if",!0),e.error?p("v-if",!0):(l(),d("h1",PP,[...t[0]||(t[0]=[b(" Loading",-1),o("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(l(),d("h1",{key:3,class:"paper-empty-title",textContent:c(e.fmt.translate(e.error))},null,8,VP)):p("v-if",!0)])])}var qP={class:"container paper-page paper-settings"},MP={class:"paper-crumbs"},$P={class:"here"},LP={class:"paper-page-title"},UP={class:"paper-settings-body"},FP={class:"paper-settings-toc"},zP={href:"#conf-billing"},HP={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},BP={id:"conf-basics",class:"paper-settings-section"},jP={class:"form-group"},GP={class:"invalid-feedback"},WP={class:"invalid-feedback"},KP={class:"form-group"},YP={class:"invalid-feedback"},JP={class:"form-group"},QP={class:"invalid-feedback"},XP={class:"invalid-feedback"},ZP={id:"conf-window",class:"paper-settings-section"},xP={class:"form-grid-2"},eV={class:"form-group"},tV={class:"invalid-feedback"},oV={class:"invalid-feedback"},nV={class:"form-group"},sV={class:"invalid-feedback"},rV={class:"invalid-feedback"},iV={id:"conf-rendering",class:"paper-settings-section"},aV={class:"form-check"},lV={class:"form-check-input",type:"checkbox",id:"link",name:"link"},dV={class:"form-check"},uV={class:"form-check-input",type:"checkbox",id:"image",name:"image"},cV={class:"form-check"},pV={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},fV={class:"form-check"},mV={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},hV={id:"conf-features",class:"paper-settings-section"},vV={class:"form-check"},yV={class:"form-check-input",type:"checkbox",id:"update",name:"update"},gV={class:"form-check"},bV={class:"form-check-input",type:"checkbox",id:"page",name:"page"},wV={id:"conf-plan",class:"paper-settings-section"},kV={class:"paper-plan-grid"},EV=["value"],CV=["textContent"],_V={class:"paper-plan-price"},SV=["innerHTML"],NV={key:0,id:"conf-billing",class:"paper-settings-section"},DV={class:"form-group"},RV={class:"form-group"},TV={class:"form-group"},AV={class:"form-group"},OV={class:"form-grid-3"},IV={class:"form-group"},PV={class:"form-group"},VV={class:"form-group"},qV={class:"form-group"},MV={class:"paper-settings-footer"},$V=["textContent"],LV=["textContent"],UV=["disabled"];function zl(e,t){let n=be("paper-scrollspy"),r=be("field"),s=be("form");return l(),d("div",qP,[o("div",MP,[t[1]||(t[1]=o("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=b(" \xA0/\xA0 ",-1)),t[3]||(t[3]=o("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=b(" \xA0/\xA0 ",-1)),o("span",$P,c(e.editionMode?"Edit":"New"),1)]),o("h1",LP,[b(c(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=o("em",null,"conference",-1))]),t[43]||(t[43]=o("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue, and lift author quotas during the review window. ",-1)),o("div",UP,[D((l(),d("aside",FP,[t[7]||(t[7]=o("div",{class:"paper-settings-toc-head"},"On this page",-1)),o("nav",null,[t[6]||(t[6]=pe('Basics Review window Rendering defaults Features Plan ',5)),D(o("a",zP,"Billing",512),[[K,e.plan?.pricePerRepo>0]])])])),[[n]]),D((l(),d("form",HP,[o("section",BP,[t[12]||(t[12]=o("div",{class:"paper-section-eyebrow"},"Basics",-1)),o("div",jP,[t[8]||(t[8]=o("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.name?.invalid&&(e.conference?.name?.touched||e.conference?.submitted)}]),name:"name",id:"name",required:"",placeholder:"e.g. International Conference on Software Engineering"},null,2),[[r,{state:e.viewState,set:i=>{e.options.name=i},value:e.options?.name,form:"conference",options:{}}]]),D(o("div",GP," The name of the conference is invalid. ",512),[[K,e.conference?.name?.errors?.invalid]]),D(o("div",WP," The name of the conference is required. ",512),[[K,e.conference?.name?.errors?.required]])]),o("div",KP,[t[9]||(t[9]=o("label",{class:"paper-field-label",for:"url"},"Website",-1)),D(o("input",{type:"url",class:A(["form-control",{"is-invalid":e.conference?.url?.invalid&&(e.conference?.url?.touched||e.conference?.submitted)}]),name:"url",id:"url",placeholder:"https://example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.url=i},value:e.options?.url,form:"conference",options:{}}]]),D(o("div",YP," The url of the conference is invalid. ",512),[[K,e.conference?.url?.errors?.url]])]),o("div",JP,[t[10]||(t[10]=o("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.conferenceID?.invalid&&(e.conference?.conferenceID?.touched||e.conference?.submitted)}]),name:"conferenceID",id:"conferenceID",required:"",pattern:"[a-zA-Z0-9\\-_]{3,10}",placeholder:"ICSE26"},null,2),[[r,{state:e.viewState,set:i=>{e.options.conferenceID=i},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=o("small",{class:"form-text text-muted"},[b("3\u201310 characters, letters, numbers, "),o("code",null,"-"),b(" and "),o("code",null,"_"),b(". Authors reference this when they anonymize.")],-1)),D(o("div",{class:"invalid-feedback"}," The conference ID '"+c(e.options?.conferenceID)+"' is already used. ",513),[[K,e.conference?.conferenceID?.errors?.used]]),D(o("div",QP," The conference ID is required. ",512),[[K,e.conference?.conferenceID?.errors?.required]]),D(o("div",XP," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[K,e.conference?.conferenceID?.errors?.pattern]])])]),o("section",ZP,[t[17]||(t[17]=o("div",{class:"paper-section-eyebrow"},"Review window",-1)),o("div",xP,[o("div",eV,[t[13]||(t[13]=o("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),D(o("input",{type:"date",class:A(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.startDate=i},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=o("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),D(o("div",tV," Start date is required. ",512),[[K,e.conference?.startDate?.errors?.required]]),D(o("div",oV," Start date must be before end date. ",512),[[K,e.conference?.startDate?.errors?.invalid]])]),o("div",nV,[t[15]||(t[15]=o("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),D(o("input",{type:"date",class:A(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[r,{state:e.viewState,set:i=>{e.options.endDate=i},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=o("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),D(o("div",sV," End date is required. ",512),[[K,e.conference?.endDate?.errors?.required]]),D(o("div",rV," End date is invalid. ",512),[[K,e.conference?.endDate?.errors?.invalid]])])])]),o("section",iV,[t[26]||(t[26]=o("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),o("div",aV,[D(o("input",lV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.link=i},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=o("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),o("div",dV,[D(o("input",uV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.image=i},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=o("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),o("div",cV,[D(o("input",pV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.pdf=i},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=o("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=o("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),o("div",fV,[D(o("input",mV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.notebook=i},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=o("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=o("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),o("section",hV,[t[31]||(t[31]=o("div",{class:"paper-section-eyebrow"},"Features",-1)),o("div",vV,[D(o("input",yV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.update=i},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=o("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=o("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),o("div",gV,[D(o("input",bV,null,512),[[r,{state:e.viewState,set:i=>{e.options.options.page=i},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=o("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=o("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),o("section",wV,[t[33]||(t[33]=o("div",{class:"paper-section-eyebrow"},"Plan",-1)),t[34]||(t[34]=o("p",{class:"paper-section-copy"},"Billed per repository per month, prorated by the day for as long as a repository stays in the conference.",-1)),o("div",kV,[(l(!0),d(X,null,ae(e.plans,(i,a)=>(l(),d("label",{class:A(["paper-plan-card",{selected:e.options?.plan?.planID==i?.id}])},[D(o("input",{type:"radio",name:"planPicker",value:i?.id},null,8,EV),[[r,{state:e.viewState,set:u=>{e.options.plan.planID=u},value:e.options?.plan?.planID,form:"conference",options:{}}]]),o("div",{class:"paper-plan-head",textContent:c(i?.name)},null,8,CV),o("div",_V,[b(c(e.fmt?.number(i?.pricePerRepo))+"\u20AC ",1),t[32]||(t[32]=o("span",{class:"paper-plan-per"},"/ repo / month",-1))]),o("div",{class:"paper-plan-desc",innerHTML:e.sanitize(i?.description)},null,8,SV)],2))),256))])]),e.plan?.pricePerRepo>0?(l(),d("section",NV,[t[42]||(t[42]=o("div",{class:"paper-section-eyebrow"},"Billing",-1)),o("div",DV,[t[35]||(t[35]=o("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.billing_name?.invalid&&(e.conference?.billing_name?.touched||e.conference?.submitted)}]),name:"billing_name",id:"billing_name",required:"",placeholder:"First & last name"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.name=i},value:e.options?.billing?.name,form:"conference",options:{}}]])]),o("div",RV,[t[36]||(t[36]=o("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(o("input",{type:"email",class:A(["form-control",{"is-invalid":e.conference?.email?.invalid&&(e.conference?.email?.touched||e.conference?.submitted)}]),name:"email",id:"email",required:"",placeholder:"you@example.org"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.email=i},value:e.options?.billing?.email,form:"conference",options:{}}]])]),o("div",TV,[t[37]||(t[37]=o("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.inputAddress?.invalid&&(e.conference?.inputAddress?.touched||e.conference?.submitted)}]),name:"inputAddress",id:"inputAddress",required:"",placeholder:"1234 Main St"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address=i},value:e.options?.billing?.address,form:"conference",options:{}}]])]),o("div",AV,[D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.inputAddress2?.invalid&&(e.conference?.inputAddress2?.touched||e.conference?.submitted)}]),name:"inputAddress2",id:"inputAddress2",placeholder:"Apartment, studio, or floor"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.address2=i},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),o("div",OV,[o("div",IV,[t[38]||(t[38]=o("label",{class:"paper-field-label",for:"city"},"City",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.city=i},value:e.options?.billing?.city,form:"conference",options:{}}]])]),o("div",PV,[t[39]||(t[39]=o("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.country=i},value:e.options?.billing?.country,form:"conference",options:{}}]])]),o("div",VV,[t[40]||(t[40]=o("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.zip=i},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),o("div",qV,[t[41]||(t[41]=o("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(o("input",{type:"text",class:A(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[r,{state:e.viewState,set:i=>{e.options.billing.vat=i},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):p("v-if",!0),o("div",MV,[e.error?(l(),d("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,$V)):p("v-if",!0),e.message?(l(),d("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,LV)):p("v-if",!0),o("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=de(i=>e.submitForm(i,()=>{e.submit(i)}),["prevent"]))},c(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,UV)])])),[[s,e.viewState]])])])}var FV={key:0},zV=["innerHTML"],HV={key:3},BV=["src"],jV=["src"],GV={key:7},WV={controls:"controls"},KV=["src"],YV={key:8},JV={key:9,class:"file-error container d-flex h-100"},QV={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},XV={class:"paper-error-msg"},ZV={key:10,class:"file-error container d-flex h-100"},xV={class:"paper-error-card file-error-card m-auto",role:"alert"},e5=["textContent"],t5={key:11,class:"file-error container d-flex h-100"},o5={key:12,class:"file-error container d-flex h-100"},n5={key:13,class:"file-error container d-flex h-100"},s5={key:14,class:"file-error container d-flex h-100"},r5={class:"paper-empty-title m-auto"},i5=["href"];function Hl(e,t){let n=We("html-doc"),r=We("pdfviewer"),s=We("notebook"),i=be("code-editor");return l(),d(X,null,[e.type=="text"?D((l(),d("div",FV,null,512)),[[i,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="html"?(l(),d("div",{key:1,class:"file-content markdown-body",innerHTML:e.highlightRedactions(e.sanitize(e.content))},null,8,zV)):p("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(l(),Lt(n,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):p("v-if",!0),(e.type=="code"||e.type=="html-doc"&&e.showSource)&&e.content!=null?D((l(),d("div",HV,null,512)),[[i,{content:e.content,options:e.aceOption}]]):p("v-if",!0),e.type=="image"?(l(),d("img",{key:4,class:"image-content",src:e.safeUrl(e.url)},null,8,BV)):p("v-if",!0),e.type=="media"?(l(),d("iframe",{key:5,class:"h-100 overflow-auto w-100 b-0",src:e.safeUrl(e.url)},null,8,jV)):p("v-if",!0),e.type=="pdf"?(l(),Lt(r,{key:6,src:e.safeUrl(e.url)},null,8,["src"])):p("v-if",!0),e.type=="audio"?(l(),d("div",GV,[o("audio",WV,[o("source",{src:e.safeUrl(e.url)},null,8,KV)])])):p("v-if",!0),e.type=="IPython"?(l(),d("div",YV,[Ce(s,{file:e.url,content:e.content},null,8,["file","content"])])):p("v-if",!0),e.type=="rate_limited"?(l(),d("div",JV,[o("div",QV,[t[2]||(t[2]=pe('Temporarily paused
GitHub API rate limit reached
',1)),o("p",XV,[t[0]||(t[0]=b("This repository will be available in ",-1)),o("strong",null,c(e.rateLimitCountdown),1),t[1]||(t[1]=b(". The page will reload automatically.",-1))])])])):p("v-if",!0),e.type=="error"?(l(),d("div",ZV,[o("div",xV,[t[3]||(t[3]=o("div",{class:"paper-error-eyebrow"},"Unavailable",-1)),t[4]||(t[4]=o("div",{class:"paper-error-title"},"This content can\u2019t be shown",-1)),o("p",{class:"file-error-msg",textContent:c(e.fmt.translate("ERRORS."+e.content))},null,8,e5),t[5]||(t[5]=o("div",{class:"file-error-actions"},[o("a",{href:"/",class:"btn btn-sm"},"Back to home"),o("a",{href:"/faq",class:"btn btn-sm"},"Read the FAQ")],-1))])])):p("v-if",!0),e.type=="loading"&&!e.error?(l(),d("div",t5,[...t[6]||(t[6]=[o("h1",{class:"paper-empty-title m-auto"},"Loading\u2026",-1)])])):p("v-if",!0),e.type=="empty"?(l(),d("div",o5,[...t[7]||(t[7]=[o("h1",{class:"paper-empty-title m-auto"},[b("Empty "),o("em",null,"repository"),b(".")],-1)])])):p("v-if",!0),e.content==null&&e.type!="empty"?(l(),d("div",n5,[...t[8]||(t[8]=[o("h1",{class:"paper-empty-title m-auto"},[b("Empty "),o("em",null,"file"),b(".")],-1)])])):p("v-if",!0),e.type=="binary"?(l(),d("div",s5,[o("h1",r5,[t[9]||(t[9]=b("Unsupported ",-1)),t[10]||(t[10]=o("em",null,"binary file",-1)),t[11]||(t[11]=b(". You can ",-1)),o("a",{target:"_blank",href:e.safeUrl(e.url+"&download=true")},"download it",8,i5),t[12]||(t[12]=b(".",-1))])])):p("v-if",!0)],64)}var a5={class:"container page dashboard-page paper-page"},l5={class:"row"},d5={class:"w-100"},u5={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},c5={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},p5={class:"flex-grow-1"},f5={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},m5={class:"d-flex flex-wrap",style:{gap:"6px"}},h5={class:"dropdown"},v5={class:"dropdown-menu","aria-labelledby":"dropdownSort"},y5={class:"form-check dropdown-item"},g5={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},b5={class:"form-check dropdown-item"},w5={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},k5={class:"form-check dropdown-item"},E5={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},C5={class:"form-check dropdown-item"},_5={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},S5={class:"form-check dropdown-item"},N5={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},D5={class:"dropdown"},R5={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},T5={class:"form-check dropdown-item"},A5={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},O5={class:"form-check dropdown-item"},I5={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},P5={class:"form-check dropdown-item"},V5={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},q5={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},M5={class:"filter-chip"},$5=["onClick"],L5={class:"repo-list w-100"},U5={class:"repo-list-item-content"},F5={class:"repo-list-item-main"},z5={class:"repo-list-item-header"},H5=["textContent","href"],B5=["textContent"],j5=["textContent"],G5={class:"repo-source"},W5=["href"],K5={class:"repo-date"},Y5={class:"repo-meta"},J5={key:0,title:"Conference"},Q5=["title"],X5=["title"],Z5=["title"],x5={key:1},eq={class:"repo-list-item-actions"},tq={class:"dropdown"},oq={class:"dropdown-menu dropdown-menu-right"},nq=["href"],sq=["onClick"],rq=["onClick"],iq=["onClick"],aq=["href"],lq={key:0,class:"repo-list-empty"};function Bl(e,t){let n=be("field"),r=be("form");return l(),d("div",a5,[o("div",l5,[o("div",d5,[t[12]||(t[12]=pe('My work \xA0/\xA0 Pull requests
Anonymized pull requests Track PR mirrors you\u2019ve created and their reviewer traffic.
',2)),p(" Search + filters row "),D((l(),d("form",u5,[o("div",c5,[o("div",p5,[D(o("input",f5,null,512),[[n,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),o("div",m5,[o("div",h5,[t[6]||(t[6]=o("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),o("div",v5,[t[5]||(t[5]=o("h6",{class:"dropdown-header"},"Select order",-1)),o("div",y5,[D(o("input",g5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=o("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),o("div",b5,[D(o("input",w5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=o("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),o("div",k5,[D(o("input",E5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=o("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),o("div",C5,[D(o("input",_5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=o("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),o("div",S5,[D(o("input",N5,null,512),[[n,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=o("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),o("div",D5,[t[11]||(t[11]=o("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),o("div",R5,[t[10]||(t[10]=o("h6",{class:"dropdown-header"},"Select status",-1)),o("div",T5,[D(o("input",A5,null,512),[[n,{state:e.viewState,set:s=>{e.filters.status.ready=s},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=o("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),o("div",O5,[D(o("input",I5,null,512),[[n,{state:e.viewState,set:s=>{e.filters.status.expired=s},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=o("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),o("div",P5,[D(o("input",V5,null,512),[[n,{state:e.viewState,set:s=>{e.filters.status.removed=s},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=o("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[r,e.viewState]]),p(" Active filter chips "),D(o("div",q5,[(l(!0),d(X,null,ae(e.filters?.status,(s,i,a)=>D((l(),d("span",M5,[b(c(e.fmt?.title(i))+" ",1),o("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:u=>{e.filters.status[i]=!0}}," \xD7 ",8,$5)],512)),[[K,!s]])),256))],512),[[K,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),p(" Pull request list "),o("ul",L5,[(l(!0),d(X,null,ae(e.filteredPullRequests,(s,i)=>(l(),d("li",{class:A(["repo-list-item",{"repo-inactive":s?.status=="expired"||s?.status=="removed"||s?.status=="error"}])},[o("div",U5,[o("div",F5,[o("div",z5,[o("a",{class:"repo-name",textContent:c(s?.pullRequestId),href:e.safeUrl("/pr/"+s?.pullRequestId)},null,8,H5),o("span",{class:A(["status-badge",{"status-removed":s?.status=="removed"||s?.status=="expired"||s?.status=="removing"||s?.status=="expiring","status-preparing":s?.status=="preparing"||s?.status=="download","status-ready":s?.status=="ready","status-error":s?.status=="error"}])},[o("span",{textContent:c(e.fmt?.title(s?.status))},null,8,B5),s?.status=="error"?(l(),d("span",{key:0,textContent:c(": "+s?.statusMessage)},null,8,j5)):p("v-if",!0)],2)]),o("div",G5,[o("span",null,[t[13]||(t[13]=o("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),o("a",{href:e.safeUrl("https://github.com/"+s?.source?.repositoryFullName+"/pull/"+s?.source?.pullRequestId)},c(s?.source?.repositoryFullName)+"#"+c(s?.source?.pullRequestId),9,W5)]),o("span",{class:A(["status-badge",{"status-ready":s?.merged,"status-removed":s?.state=="open","status-error":s?.state=="closed"&&!s?.merged}]),style:{"font-size":"10px"}},c(e.fmt?.title(s?.merged?"merged":s?.state)),3),o("span",K5,"anonymized "+c(e.fmt?.humanTime(s?.anonymizeDate)),1)])]),o("div",Y5,[s?.conference?(l(),d("span",J5,[t[14]||(t[14]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-conference"})],-1)),b(" "+c(s?.conference),1)])):p("v-if",!0),o("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+s?.options?.terms?.join(", ")},[t[15]||(t[15]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1)),b(" "+c(e.fmt?.number(s?.options?.terms?.length)),1)],8,Q5),o("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(s?.pageView)},[t[16]||(t[16]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1)),b(" "+c(e.fmt?.number(s?.pageView)),1)],8,X5),o("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(s?.lastView)},[t[17]||(t[17]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-calendar"})],-1)),b(" "+c(e.fmt?.humanTime(s?.lastView)),1)],8,Z5),s?.options?.expirationMode!="never"&&s?.status=="ready"?(l(),d("span",x5,[t[18]||(t[18]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),b(" Expire: "+c(e.fmt?.humanTime(s?.options?.expirationDate)),1)])):p("v-if",!0)])]),o("div",eq,[o("div",tq,[t[24]||(t[24]=o("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),o("div",oq,[o("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+s?.pullRequestId)},[...t[19]||(t[19]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit ",-1)])],8,nq),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[20]||(t[20]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-refresh"})],-1),b(" Force update ",-1)])],8,sq),[[K,s?.status=="ready"||s?.status=="error"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.updatePullRequest(s),["prevent"])},[...t[21]||(t[21]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-check-circle"})],-1),b(" Enable ",-1)])],8,rq),[[K,s?.status=="removed"]]),D(o("a",{class:"dropdown-item",href:"#",onClick:de(a=>e.removePullRequest(s),["prevent"])},[...t[22]||(t[22]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1),b(" Remove ",-1)])],8,iq),[[K,s?.status=="ready"]]),o("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+s?.pullRequestId+"/")},[...t[23]||(t[23]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" View PR ",-1)])],8,aq)])])])],2))),256)),e.filteredPullRequests?.length==0?(l(),d("li",lq,[...t[25]||(t[25]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-inbox"})],-1),o("span",null,"No pull requests to display.",-1)])])):p("v-if",!0)])])])}var dq={class:"container paper-page paper-settings"},uq={class:"paper-settings-body"},cq={class:"paper-settings-toc"},pq={class:"paper-settings-main"},fq={id:"settings-quota",class:"paper-settings-section"},mq={key:1,class:"quota-row","aria-hidden":"true"},hq={class:"quota-item"},vq={id:"settings-terms",class:"paper-settings-section"},yq={class:"form-group"},gq={class:"form-control",id:"terms",name:"terms",rows:"4",placeholder:`Jane Smith
MIT CSAIL
-jane.smith@example.org`},vq={id:"termsHelp",class:"form-text text-muted"},yq={class:"invalid-feedback"},gq={id:"settings-display",class:"paper-settings-section"},bq={class:"form-group paper-check-list"},wq={class:"form-check"},kq={class:"form-check-input",type:"checkbox",id:"link",name:"link"},Eq={class:"form-check"},Cq={class:"form-check-input",type:"checkbox",id:"image",name:"image"},_q={class:"form-check"},Sq={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},Nq={class:"form-check"},Dq={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},Rq={id:"settings-features",class:"paper-settings-section"},Tq={class:"form-group paper-check-list"},Aq={class:"form-check"},Oq={class:"form-check-input",type:"checkbox",id:"page",name:"page"},Iq={class:"form-check"},Pq={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},Vq={class:"form-check"},qq={class:"form-check-input",type:"checkbox",id:"update",name:"update"},Mq={class:"form-group"},$q={class:"form-control",id:"mode",name:"mode"},Lq={class:"form-text text-muted"},Uq={id:"settings-expiration",class:"paper-settings-section"},Fq={class:"form-group"},zq={class:"form-control",id:"expiration",name:"expiration"},Hq={key:0,class:"draft-status",role:"status"},Bq={key:1,class:"draft-status"},jq={class:"paper-settings-footer"},Gq={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Wq=["textContent"],Kq={class:"paper-settings-actions"},Yq=["disabled"],Jq={key:0,class:"ui-icon mr-1","aria-hidden":"true"},Qq={id:"settings-account",class:"paper-settings-section"},Xq={class:"paper-account-card"},Zq=["src"],xq={class:"paper-account-identity"},eM={class:"paper-account-name"},tM=["disabled"],oM={key:0,role:"status"},nM={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},sM=["disabled"],rM={key:3,role:"status"},iM={class:"paper-danger-zone"},aM={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},lM=["textContent"],dM=["disabled"];function jl(e,t){let n=We("quota-usage"),r=be("paper-scrollspy"),s=be("field"),i=be("form");return l(),d("div",iq,[t[58]||(t[58]=pe('Your settings Defaults applied to every new anonymization, your quotas, and your account.
',3)),o("div",aq,[D((l(),d("aside",lq,[...t[8]||(t[8]=[pe('On this page
Quota Terms to redact Display Features Expiration Account ',2)])])),[[r]]),o("div",dq,[p(" Account usage shares the dashboard component. "),o("section",uq,[t[10]||(t[10]=o("div",{class:"paper-section-eyebrow"},"Quota",-1)),t[11]||(t[11]=o("p",{class:"paper-section-copy"},"What you are using across all your anonymizations. Conferences can lift these limits during a review window.",-1)),e.quota?(l(),Lt(n,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):p("v-if",!0),e.quota?p("v-if",!0):(l(),d("div",cq,[(l(),d(X,null,ae([1,2,3],(a,u)=>o("div",pq,[...t[9]||(t[9]=[o("div",{class:"quota-header"},[o("span",{class:"skeleton skeleton-line",style:{width:"40%"}}),o("span",{class:"skeleton skeleton-line",style:{width:"25%"}})],-1),o("div",{class:"quota-track"},null,-1)])])),64))]))]),D((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[2]||(t[2]=de(a=>e.submitForm(a,()=>{e.saveDefault(a)}),["prevent"]))},[o("section",fq,[t[17]||(t[17]=o("div",{class:"paper-section-eyebrow"},"Terms to redact",-1)),t[18]||(t[18]=o("p",{class:"paper-section-copy"},"Pre-filled in every new anonymization. You can still edit the list per anonymization.",-1)),o("div",mq,[t[16]||(t[16]=o("label",{class:"paper-field-label",for:"terms"},"Default terms",-1)),D(o("textarea",hq,null,512),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),o("small",vq,[t[12]||(t[12]=b(" One term per line (regex allowed). Each match is replaced by ",-1)),o("code",null,c(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[13]||(t[13]=b(", or use ",-1)),t[14]||(t[14]=o("code",null,"term=>replacement",-1)),t[15]||(t[15]=b(" to pick your own. ",-1))]),D(o("div",yq," Terms are in an invalid format ",512),[[K,e.defaultsForm?.terms?.errors?.format]])])]),o("section",gq,[t[27]||(t[27]=o("div",{class:"paper-section-eyebrow"},"Display",-1)),t[28]||(t[28]=o("p",{class:"paper-section-copy"},"What reviewers can see inside an anonymized repository.",-1)),o("div",bq,[o("div",wq,[D(o("input",kq,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[19]||(t[19]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[20]||(t[20]=o("small",{class:"form-text text-muted"},"Unchecked, every link in text files is removed.",-1))]),o("div",Eq,[D(o("input",Cq,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[21]||(t[21]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[22]||(t[22]=o("small",{class:"form-text text-muted"},"Images are shown as is. They are not anonymized.",-1))]),o("div",_q,[D(o("input",Sq,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[23]||(t[23]=o("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[24]||(t[24]=o("small",{class:"form-text text-muted"},"PDFs are shown as is. They are not anonymized.",-1))]),o("div",Nq,[D(o("input",Dq,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[25]||(t[25]=o("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[26]||(t[26]=o("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])])]),o("section",Rq,[t[37]||(t[37]=o("div",{class:"paper-section-eyebrow"},"Features",-1)),o("div",Tq,[o("div",Aq,[D(o("input",Oq,null,512),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=o("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=o("small",{class:"form-text text-muted"},"Serve an anonymized copy of the repository's GitHub Pages site. Only pages built from the anonymized branch are supported.",-1))]),o("div",Iq,[D(o("input",Pq,null,512),[[s,{state:e.viewState,set:a=>{e.options.loc=a},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=o("label",{class:"form-check-label",for:"loc"},"Lines of code",-1)),t[32]||(t[32]=o("small",{class:"form-text text-muted"},"Show the line count of the repository in the explorer.",-1))]),o("div",Vq,[D(o("input",qq,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[33]||(t[33]=o("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[34]||(t[34]=o("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))])]),o("div",Mq,[t[36]||(t[36]=o("label",{class:"paper-field-label",for:"mode"},"Fetch mode",-1)),D((l(),d("select",$q,[...t[35]||(t[35]=[o("option",{value:"GitHubStream",selected:""},"Stream from GitHub on demand",-1),o("option",{value:"GitHubDownload"},"Download to Anonymous GitHub",-1)])])),[[s,{state:e.viewState,set:a=>{e.options.mode=a},value:e.options?.mode,form:"defaultsForm",options:{}}]]),o("small",Lq," Download is faster for reviewers and enables every feature. Streaming is the only option above "+c(e.fmt?.humanFileSize(e.site_options?.MAX_REPO_SIZE*1024))+". ",1)])]),o("section",Uq,[t[41]||(t[41]=o("div",{class:"paper-section-eyebrow"},"Expiration",-1)),o("div",Fq,[t[39]||(t[39]=o("label",{class:"paper-field-label",for:"expiration"},"When an anonymization expires",-1)),D((l(),d("select",zq,[...t[38]||(t[38]=[o("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),o("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[s,{state:e.viewState,set:a=>{e.options.expirationMode=a},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),t[40]||(t[40]=o("small",{class:"form-text text-muted"}," The expiration date itself is chosen per anonymization. Redirecting reveals the source repository, so pick it only once the review is over. ",-1))])]),e.draftRestored?(l(),d("div",Hq,[t[42]||(t[42]=b("Your unsaved draft was restored. ",-1)),o("button",{type:"button",class:"draft-discard",onClick:t[0]||(t[0]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",Bq,[b(c(e.draftSaved?"Draft saved in this tab for 30 minutes.":"Unsaved changes. Keep this tab open until you save.")+" ",1),o("button",{type:"button",class:"draft-discard",onClick:t[1]||(t[1]=a=>e.discardDraft())},c(e.isUpdate?"Restore saved settings":"Discard changes"),1)])):p("v-if",!0),o("div",jq,[e.error?(l(),d("div",Gq,[t[43]||(t[43]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})],-1)),t[44]||(t[44]=b()),o("span",{textContent:c(e.error)},null,8,Wq)])):p("v-if",!0),o("div",Kq,[o("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},[e.message?(l(),d("svg",Jq,[...t[45]||(t[45]=[o("use",{href:"#ui-icon-check"},null,-1)])])):p("v-if",!0),b(c(e.saving?"Saving\u2026":e.message?"Saved":"Save defaults"),1)],8,Yq),t[46]||(t[46]=o("span",{class:"paper-settings-hint"},"Applies to new anonymizations only. Existing ones keep their settings.",-1))])])],32)),[[i,e.viewState]]),o("section",Qq,[t[56]||(t[56]=o("div",{class:"paper-section-eyebrow"},"Account",-1)),o("div",Xq,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,Zq)):p("v-if",!0),o("div",xq,[o("div",eM,"@"+c(e.user?.username),1),t[47]||(t[47]=o("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[48]||(t[48]=o("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),o("form",{class:"paper-account-email",onSubmit:t[6]||(t[6]=de(a=>e.saveAccountEmail(),["prevent"]))},[t[49]||(t[49]=o("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[50]||(t[50]=o("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),D(o("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[3]||(t[3]=a=>e.accountEmail=a),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[4]||(t[4]=a=>e.emailSaved=!1)},null,40,tM),[[Ft,e.accountEmail]]),e.emailLoading?(l(),d("p",oM,"Loading your email address\u2026")):p("v-if",!0),e.emailError?(l(),d("p",nM,c(e.emailError),1)):p("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(l(),d("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[5]||(t[5]=a=>e.loadAccountEmail())},"Try again")):p("v-if",!0),o("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},c(e.emailSaving?"Saving\u2026":"Save email address"),9,sM),e.emailSaved?(l(),d("p",rM,"Email address saved.")):p("v-if",!0)],32),t[57]||(t[57]=o("a",{class:"paper-settings-connection-link",href:"/connections"},[o("i",{class:"fab fa-github","aria-hidden":"true"}),o("span",null,[b("GitHub connections"),o("small",null,"Manage repository access and legacy OAuth.")]),o("span",{"aria-hidden":"true"},"\u2192")],-1)),o("div",iM,[t[54]||(t[54]=o("div",{class:"paper-danger-head"},"Delete account",-1)),t[55]||(t[55]=o("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",aM,[t[51]||(t[51]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})],-1)),t[52]||(t[52]=b()),o("span",{textContent:c(e.deleteError)},null,8,lM)])):p("v-if",!0),o("button",{type:"button",class:"btn btn-outline-danger",onClick:t[7]||(t[7]=a=>e.deleteAccount()),disabled:e.deletingAccount},[t[53]||(t[53]=o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1)),b(c(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,dM)])])])])])}var uM={class:"pr-page"},cM={class:"container paper-page pr-page-inner"},pM={class:"pr-header"},fM={class:"pr-title-row"},mM={class:"paper-page-title pr-title"},hM=["textContent"],vM={key:1,class:"text-muted"},yM=["href"],gM={class:"pr-header-meta"},bM={key:0,class:"pr-meta-item"},wM=["textContent"],kM={key:1,class:"pr-meta-item"},EM=["textContent"],CM={key:2,class:"pr-meta-item"},_M=["textContent"],SM={key:0,class:"pr-body-card"},NM={key:1,class:"paper-tabs",role:"tablist"},DM=["aria-selected","tabindex"],RM=["aria-selected","tabindex"],TM=["textContent"],AM={class:"paper-tab-content"},OM={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},IM=["innerHTML"],PM={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},VM={class:"pr-comments"},qM={class:"pr-comment"},MM={class:"pr-comment-head"},$M={key:0,class:"pr-comment-author"},LM=["textContent"],UM=["textContent"],FM={key:0,class:"pr-comment-body"},zM={key:0,class:"paper-table-empty"};function Gl(e,t){let n=We("markdown");return l(),d("div",uM,[o("div",cM,[t[17]||(t[17]=o("div",{class:"paper-crumbs"},[o("a",{href:"/dashboard"},"Reviewer"),b(" \xA0/\xA0 "),o("span",{class:"here"},"Pull request")],-1)),o("header",pM,[o("div",fM,[o("h1",mM,[e.details?.title?(l(),d("span",{key:0,textContent:c(e.details?.title)},null,8,hM)):p("v-if",!0),e.details?.title?p("v-if",!0):(l(),d("span",vM,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),o("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,yM)):p("v-if",!0)]),o("div",gM,[o("span",{class:A(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[o("span",{class:A(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),b(" "+c(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",bM,[t[5]||(t[5]=o("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=b()),o("span",{textContent:c(e.details?.baseRepositoryFullName)},null,8,wM)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",kM,[t[7]||(t[7]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=b()),o("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,EM)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",CM,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=b(" Anonymized ",-1)),o("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,_M)])):p("v-if",!0)])]),e.details?.body?(l(),d("section",SM,[t[11]||(t[11]=o("div",{class:"paper-section-eyebrow"},"Description",-1)),Ce(n,{content:e.details?.body},null,8,["content"])])):p("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",NM,[e.details?.diff?(l(),d("button",{key:0,class:A(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=r=>e.previewTabKeydown(r)),onClick:t[1]||(t[1]=r=>e.tabState.active="diff")},[...t[12]||(t[12]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-code"})],-1),b(" Diff ",-1)])],42,DM)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:A(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=r=>e.previewTabKeydown(r)),onClick:t[3]||(t[3]=r=>e.tabState.active="comments")},[t[13]||(t[13]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,TM)],42,RM)):p("v-if",!0)])):p("v-if",!0),o("div",AM,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",OM,[o("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,IM)])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",PM,[o("ul",VM,[(l(!0),d(X,null,ae(e.details?.comments,(r,s)=>(l(),d("li",qM,[o("div",MM,[r?.author?(l(),d("span",$M,[t[14]||(t[14]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=b(" @",-1)),o("span",{textContent:c(r?.author)},null,8,LM)])):p("v-if",!0),r?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(r?.updatedDate))},null,8,UM)):p("v-if",!0)]),r?.body?(l(),d("div",FM,[Ce(n,{content:r?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",zM,[...t[16]||(t[16]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1),o("span",null,"No comments on this pull request.",-1)])]))])])):p("v-if",!0)])])])}var HM={class:"container paper-page status-page"},BM={class:"d-flex align-items-center justify-content-between flex-wrap",style:{gap:"12px"}},jM={class:"paper-page-title"},GM=["textContent"],WM={key:1},KM={class:"paper-settings-section"},YM=["textContent"],JM={key:0,class:"paper-section-copy"},QM={key:1,class:"paper-ratelimit-card",role:"status"},XM={class:"paper-error-msg"},ZM=["aria-valuenow"],xM={class:"paper-progress-label"},e8=["textContent"],t8={key:0},o8=["textContent"],n8={class:"paper-progress-pct"},s8={key:3,class:"paper-error-card",role:"alert"},r8={key:0,class:"paper-error-msg"},i8={key:1,class:"paper-error-msg"},a8={class:"paper-error-actions"},l8=["href"],d8={key:4,class:"share-link"},u8={class:"share-link-row"},c8=["value"],p8={class:"ui-icon","aria-hidden":"true"},f8=["href"],m8=["textContent"],h8={class:"share-link-actions"},v8=["href"],y8=["href"];function Wl(e,t){return l(),d("div",HM,[t[16]||(t[16]=o("div",{class:"paper-crumbs"},[b("Anonymization \xA0/\xA0 "),o("span",{class:"here"},"Status")],-1)),o("div",BM,[o("div",null,[o("h1",jM,[t[2]||(t[2]=b("Status of ",-1)),o("em",null,c(e.repoId),1)]),t[3]||(t[3]=o("p",{class:"paper-page-lede"},"Track progress as your anonymization is prepared.",-1))]),o("span",{class:A(["status-pill",{"status-pill-ready":e.repo?.status=="ready","status-pill-error":e.repo?.status=="error","status-pill-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-pill-ratelimit":e.rateLimitResetAt}])},[o("span",{class:A(["status-dot",{"status-ready":e.repo?.status=="ready","status-error":e.repo?.status=="error","status-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-ratelimit":e.rateLimitResetAt}])},null,2),e.rateLimitResetAt?p("v-if",!0):(l(),d("span",{key:0,textContent:c(e.fmt?.title(e.repo?.status))},null,8,GM)),e.rateLimitResetAt?(l(),d("span",WM,"Rate limited")):p("v-if",!0)],2)]),o("section",KM,[o("div",{class:"paper-section-eyebrow",textContent:c(e.repo?.status=="ready"?"Your anonymous link":"Progress")},null,8,YM),e.repo?.status!="ready"?(l(),d("p",JM,[...t[4]||(t[4]=[b(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),o("a",{href:"/faq"},"FAQ",-1),b(" for more information. ",-1)])])):p("v-if",!0),e.rateLimitResetAt?(l(),d("div",QM,[t[7]||(t[7]=pe('Temporarily paused
GitHub API rate limit reached
',1)),o("p",XM,[t[5]||(t[5]=b("Anonymization will resume automatically in ",-1)),o("strong",null,c(e.rateLimitCountdown),1),t[6]||(t[6]=b(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):p("v-if",!0),e.repo?.status!="error"&&e.repo?.status!="ready"&&!e.rateLimitResetAt?(l(),d("div",{key:2,class:A(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[o("div",{class:"paper-progress-bar",style:qe("width: "+e.progress+"%;")},null,4),o("div",xM,[o("span",{textContent:c(e.fmt?.title(e.repo?.status))},null,8,e8),e.repo?.statusMessage?(l(),d("span",t8,[t[8]||(t[8]=b("\xA0\xB7\xA0",-1)),o("span",{textContent:c(e.repo?.statusMessage)},null,8,o8)])):p("v-if",!0),o("span",n8,c(e.progress||0)+"%",1)])],10,ZM)):p("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",s8,[t[11]||(t[11]=pe('Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(l(),d("p",r8,c(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):p("v-if",!0),e.repo?.statusMessage?p("v-if",!0):(l(),d("p",i8,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),t[12]||(t[12]=o("ul",{class:"paper-error-hints"},[o("li",null,"Make sure the source URL points to a repository or pull request you can access."),o("li",null,"Check that the chosen branch and commit still exist on GitHub."),o("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),o("div",a8,[o("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[9]||(t[9]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit anonymization",-1)])],8,l8),t[10]||(t[10]=pe(' Read the FAQ Report a bug in Anonymous GitHub ',2))])])):p("v-if",!0),e.repo?.status=="ready"?(l(),d("div",d8,[t[15]||(t[15]=o("p",{class:"paper-section-copy"},"Reviewers can browse the repository at this address without seeing who you are.",-1)),o("div",u8,[o("input",{id:"share-url",class:"form-control share-link-input",readonly:"","aria-label":"Anonymous link",value:e.shareUrl,onFocus:t[0]||(t[0]=n=>n.target.select())},null,40,c8),o("button",{type:"button",class:"btn btn-ink",onClick:t[1]||(t[1]=n=>e.copyShareUrl())},[(l(),d("svg",p8,[o("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,f8)])),o("span",{"aria-live":"polite",textContent:c(e.copied?"Copied":"Copy link")},null,8,m8)])]),o("div",h8,[o("a",{class:"btn",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" Open repository ",-1)])],8,v8),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[14]||(t[14]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),b(" Open GitHub page ",-1)])],8,y8)):p("v-if",!0)])])):p("v-if",!0)]),t[17]||(t[17]=pe('Support Anonymous GitHub
A small team keeps this running. If it helps you, please consider contributing back \u2014 in code, ideas, or coffee.
',1))])}var as={"partials/reviewConsent.htm":gl,"partials/connections.htm":bl,"partials/signin.htm":wl,"partials/404.htm":kl,"partials/admin/conferences.htm":El,"partials/admin/errors.htm":Cl,"partials/admin/overview.htm":_l,"partials/admin/queues.htm":Sl,"partials/admin/repositories.htm":Nl,"partials/admin/user.htm":Dl,"partials/admin/users.htm":Rl,"partials/anonymize.htm":Tl,"partials/anonymizePullRequest.htm":Al,"partials/claim.htm":Ol,"partials/conference.htm":Il,"partials/conferences.htm":Pl,"partials/dashboard.htm":Vl,"partials/explorer.htm":ql,"partials/faq.htm":Ml,"partials/gist.htm":$l,"partials/header.htm":Ll,"partials/home.htm":Ul,"partials/loading.htm":Fl,"partials/newConference.htm":zl,"partials/pageView.htm":Hl,"partials/pr-dashboard.htm":Bl,"partials/profile.htm":jl,"partials/pullRequest.htm":Gl,"partials/status.htm":Wl};var g8={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function Kl(e,t){return l(),d("svg",g8,[...t[0]||(t[0]=[pe(' ',1)])])}function Yl(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let r={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(r){let s=ot(()=>t.fmt.orderBy(t.fmt.filter(r[1](),t[r[2]]),t.orderBy));Object.defineProperty(t,r[0],{configurable:!0,get:()=>s.value})}}function Jl(e=(...t)=>fetch(...t)){async function t(r,s,i,a={}){let u=new URL(s,window.location.href);for(let[h,k]of Object.entries(a.params||{}))if(k!=null)for(let m of Array.isArray(k)?k:[k])u.searchParams.append(h,typeof m=="object"?JSON.stringify(m):m);let f=new AbortController,w;a.timeout?.then?a.timeout.then(()=>f.abort()):a.timeout&&(w=setTimeout(()=>f.abort(),a.timeout));try{let h={Accept:"application/json, text/plain, */*",...a.headers},k=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);k&&u.origin===window.location.origin&&(h["X-XSRF-TOKEN"]=decodeURIComponent(k[1]));let m;i!==void 0&&(i instanceof FormData?m=i:(h["Content-Type"]||(h["Content-Type"]="application/json;charset=utf-8"),m=JSON.stringify(i)));let E=await e(u.href,{method:r,headers:h,body:m,credentials:"same-origin",signal:f.signal}),y=await E.text(),g=y;if(a.transformResponse)g=a.transformResponse(y);else if(y&&(/json/i.test(E.headers.get("content-type")||"")||/^[\[{]/.test(y.trim())))try{g=JSON.parse(y)}catch{}let C={data:g,status:E.status,headers:R=>E.headers.get(R)};if(!E.ok)throw C;return C}catch(h){throw h.name==="AbortError"?{status:-1,data:null}:h}finally{clearTimeout(w)}}let n={};for(let r of["get","delete","head"])n[r]=(s,i)=>t(r.toUpperCase(),s,void 0,i);for(let r of["post","put","patch"])n[r]=(s,i,a)=>t(r.toUpperCase(),s,i,a);return n}var Ql={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}};var Xl=function(e){function t(n){return n=n||{used:0,total:0},n.unlimited=!n.total,n.percent=n.unlimited?0:Math.min(100,n.used*100/n.total),n.level=n.unlimited?"unlimited":n.percent>=95?"danger":n.percent>=80?"warn":"ok",n}return{decorate:t,load:function(){return e.get("/api/user/quota").then(n=>{let r=n.data||{};return r.storage=t(r.storage),r.file=t(r.file),r.repository=t(r.repository),r})}}};var dr={};vd(dr,{bigNum:()=>w8,date:()=>O8,diff:()=>S8,filter:()=>T8,humanFileSize:()=>b8,humanTime:()=>k8,limitTo:()=>R8,number:()=>N8,orderBy:()=>A8,plural:()=>I8,statusLabel:()=>C8,statusMsg:()=>_8,title:()=>E8,uppercase:()=>D8});var b8=e=>window.humanFileSize(e),w8=(function(){return function(t){let n=Number(t)||0,r=Math.abs(n);return r<1e3?String(n):r<1e4?(n/1e3).toFixed(1).replace(/\.0$/,"")+"k":r<1e6?Math.round(n/1e3)+"k":r<1e7?(n/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(n/1e6)+"M"}})(),k8=(function(){return function(t){if(!t)return"never";t instanceof Date&&(t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(t=Math.round((Date.now()-new Date(t))/1e3));var n=t<0?"from now":"ago";if(Math.abs(t)>7200*24){let f=new Date;return f.setSeconds(f.getSeconds()-t),"on "+f.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}t=Math.abs(t);for(var r=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],s=["year","month","week","day","hour","minute","second"],i=0;i1&&(u+="s"),a>=1)return a+" "+u+" "+n}return"0 seconds "+n}})(),E8=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),n=t.map(function(r){return r.charAt(0).toUpperCase()+r.substring(1,r.length)});return n.join(" ")}})(),C8=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var n=String(t).replace(/[_-]+/g," ").toLowerCase();return n.charAt(0).toUpperCase()+n.slice(1)}})(),_8=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var n=t.match(/^rate_limited:(\d+)$/);if(n){var r=Math.max(0,Math.ceil((parseInt(n[1],10)-Date.now())/1e3));if(r<=0)return"Rate limited \u2014 resuming soon";var s=Math.floor(r/60),i=r%60;return"Rate limited \u2014 retrying in "+(s>0?s+"m "+i+"s":i+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),S8=(function(e){let t=r=>r.replace(/&/g,"&").replace(//g,">");function n(r,s){if(!s)return;let i=s.newPath&&s.newPath!=="/dev/null"?s.newPath:s.oldPath||"",a=s.oldPath==="/dev/null"?"added":s.newPath==="/dev/null"?"deleted":s.oldPath&&s.newPath&&s.oldPath!==s.newPath?"renamed":"modified";if(r.push(''),r.push('"),s.lines.length){r.push('
');for(let u of s.lines)r.push(''+(u.oldNo||"")+' '+(u.newNo||"")+' '+(u.kind==="add"?"+":u.kind==="remove"?"-":u.kind==="hunk"?"@":"")+' '+t(u.text)+" ");r.push("
")}r.push("
")}return function(r){if(!r)return r;let s=[],i=null,a=0,u=0,f=()=>(i||(i={oldPath:"",newPath:"",lines:[]}),i),w=()=>{i&&(i.lines.length||i.oldPath||i.newPath)&&(n(s,i),i=null)},h=r.split(`
-`);for(let k=0;ke});function N8(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function D8(e){return String(e??"").toUpperCase()}function R8(e,t,n=0){return(e||[]).slice(n,n+t)}function T8(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function A8(e,t){if(!t)return e||[];let n=Array.isArray(t)?t:[t];return[...e||[]].sort((r,s)=>{for(let i of n){let a=i[0]==="-"?-1:1;i=i.replace(/^[+-]/,"");let u=i.split(".").reduce((w,h)=>w?.[h],r),f=i.split(".").reduce((w,h)=>w?.[h],s);if(typeof u=="string"&&(u=u.toLowerCase()),typeof f=="string"&&(f=f.toLowerCase()),u!==f)return(u==null?-1:f==null?1:ur[s])}function I8(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var ur={ERRORS:{cache_busy:"Downloads are busy. Please try again shortly.",invalid_sort:"The selected sort order is invalid.",invalid_cursor:"This project page is no longer valid. Reload the list.",repository_changed:"The repository changed while processing. Please retry.",repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"Unknown error, contact the admin.",unreachable:"Anonymous GitHub is unreachable, contact the admin.",request_error:"Unable to download the file, check your connection or contact the admin.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"The repository was not found on GitHub. Check the URL and spelling, make sure you are signed in to the account that can see it, and confirm the repo isn't hidden under an org that restricts third-party app access.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",invalid_project_name:"Use a project name of up to 100 characters without line breaks or control characters.",no_file_selected:"Please select a file.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"Your GitHub access token has expired. Please log out and log in again to refresh it.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"Verify your existing account with your previous GitHub connection. Future sign-ins will use the GitHub App.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid."},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"This repository uses git submodules. Submodule contents are not included in the anonymized repository and appear as empty folders."}};var Zl={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=et(null);return $t(()=>{let r=[t.value][0];r.classList.add("html-doc");function s(){r.innerHTML="";let i=e.content;if(typeof i!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let u=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&u.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",u.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),r.appendChild(a);let f="";e.baseUrl&&(f=' '),a.srcdoc=f+i}Be(()=>e.content,s,{immediate:!0}),Be(()=>e.baseUrl,s,{immediate:!0}),Be(()=>e.allowScripts,s,{immediate:!0})}),()=>ke("html-doc",{ref:t})}};var xl={name:"pdfviewer",props:["src"],setup(e){let t=et(null);return $t(()=>{let n=[t.value],r=400,s=[.5,.75,1,1.25,1.5,2,3],i=1e3,a=n[0];a.classList.add("pdf-viewer");let u=null,f=[],w=!1,h=null,k=1,m=1,E=0,y=0,g=612/792,C=0,R=null,T=new Map,I=0;function F(L){let v=T.get(L);v&&(v.cancelled=!0,v.task?.cancel?.(),T.delete(L));let N=L.querySelector("canvas");N&&(N.width=0,N.height=0),L.innerHTML="",delete L.dataset.state}let P=document.createElement("div");P.className="pdf-toolbar";let M=document.createElement("div");M.className="pdf-pages",M.tabIndex=0,M.setAttribute("aria-label","PDF pages"),a.appendChild(P),a.appendChild(M);function se(L,v,N){let q=document.createElement("button");return q.type="button",q.className="pdf-toolbar-btn",q.title=v,q.setAttribute("aria-label",v),q.innerHTML=' ',q.addEventListener("click",N),q}let oe=se("fa-chevron-up","Previous page",function(){_e(m-1)}),S=se("fa-chevron-down","Next page",function(){_e(m+1)}),O=document.createElement("input");O.type="text",O.className="pdf-toolbar-page",O.setAttribute("aria-label","Page number"),O.title="Page number \u2014 type a page and press Enter",O.addEventListener("keydown",function(L){L.key==="Enter"&&(_e(parseInt(O.value,10)),O.blur())}),O.addEventListener("blur",function(){O.value=String(m)});let Y=document.createElement("span");Y.className="pdf-toolbar-count";let Z=se("fa-search-minus","Zoom out",function(){_(s[Math.max(0,fe()-1)])}),te=se("fa-search-plus","Zoom in",function(){_(s[Math.min(s.length-1,fe()+1)])}),J=document.createElement("button");J.type="button",J.className="pdf-toolbar-btn pdf-toolbar-zoom",J.title="Reset zoom to fit the width",J.setAttribute("aria-label","Reset zoom to fit the width"),J.addEventListener("click",function(){_(1)}),P.appendChild(oe),P.appendChild(S);let re=document.createElement("span");re.className="pdf-toolbar-group",re.appendChild(O),re.appendChild(Y),P.appendChild(re);let ce=document.createElement("span");ce.className="pdf-toolbar-group pdf-toolbar-right",ce.appendChild(Z),ce.appendChild(J),ce.appendChild(te),P.appendChild(ce);function fe(){let L=0;for(let v=0;v=L,J.textContent=Math.round(k*100)+"%",Z.disabled=fe()===0,te.disabled=fe()===s.length-1}function Oe(L){let v=f[L-1];v&&(M.scrollTop+=v.getBoundingClientRect().top-M.getBoundingClientRect().top)}function _e(L){if(!u||isNaN(L))return;let v=Math.min(Math.max(1,L),u.numPages);f[v-1]&&(Oe(v),m=v,E=v,y=Date.now()+800,le(),Ee())}function Ue(){if(!f.length||Date.now(){}),R=null),h&&(clearTimeout(h),h=null),u&&(u.destroy(),u=null),f=[],m=1,M.innerHTML="",le()}function Me(){M.innerHTML="";let L=document.createElement("div");L.className="pdf-viewer-error",L.textContent="This PDF could not be displayed.",M.appendChild(L)}function Pe(){let L=Math.max(120,M.clientWidth-24);return Math.round(Math.min(L,i)*k)}function He(L,v,N){let q=window.devicePixelRatio||1,H=L.getViewport({scale:1}),j=parseFloat(v.style.width);if(!j)return;let U=L.getViewport({scale:j/H.width*q}),G=document.createElement("canvas");return G.width=Math.floor(U.width),G.height=Math.floor(U.height),G.style.width=j+"px",G.style.height=Math.floor(U.height/q)+"px",v.innerHTML="",v.appendChild(G),v.style.height=G.style.height,N.task=L.render({canvasContext:G.getContext("2d"),viewport:U}),N.task.promise}function Ee(){if(!u)return;let L=C,v=M.getBoundingClientRect(),N=v.top-r,q=v.top+M.clientHeight+r,H=f.map((U,G)=>({slot:U,i:G,rect:U.getBoundingClientRect()})).filter(U=>U.rect.top<=q&&U.rect.bottom>=N).sort((U,G)=>Math.abs(U.rect.top-v.top)-Math.abs(G.rect.top-v.top)).slice(0,6),j=new Set(H.map(U=>U.slot));for(let U of T.keys())j.has(U)||F(U);for(let{slot:U,i:G}of H){if(U.dataset.state||I>=2)continue;let ee={cancelled:!1,task:null};T.set(U,ee),I++,U.dataset.state="rendering";let x;u.getPage(G+1).then(W=>{if(x=W,!(ee.cancelled||L!==C))return He(x,U,ee)}).then(()=>{ee.cancelled||L!==C||(U.dataset.state="done",E&&Date.now(){!ee.cancelled&&L===C&&(U.dataset.state="failed")}).finally(()=>{I--,x?.cleanup?.(),u&&Ee()})}}function z(){w||(w=!0,window.requestAnimationFrame(function(){w=!1,Ue(),Ee()}))}function ne(){let L=!1;function v(){L||(L=!0,Ee())}window.requestAnimationFrame(v),window.setTimeout(v,50)}function Q(){C++,f.forEach(F);let L=Pe();f.forEach(function(v){delete v.dataset.state,v.innerHTML="",v.style.width=L+"px",v.style.height=Math.round(L/g)+"px"}),Ee()}function _(L){if(!u||!f.length||L===k)return;let v=m;k=L,le(),Q(),_e(v)}function V(){u&&(h&&clearTimeout(h),h=setTimeout(function(){h=null,u&&f.length&&Q()},250))}function B(L){if(Re(),!L)return;let v=C;R=pdfjsLib.getDocument({url:L,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),R.promise.then(function(N){if(v!==C){N.destroy();return}return u=N,u.getPage(1).then(function(q){if(v!==C)return;let H=q.getViewport({scale:1});H.width&&H.height&&(g=H.width/H.height);let j=Pe();for(let U=1;U<=u.numPages;U++){let G=document.createElement("div");G.className="pdf-viewer-page",G.style.width=j+"px",G.style.height=Math.round(j/g)+"px",M.appendChild(G),f.push(G)}le(),ne()})}).catch(function(){v===C&&Me()})}M.addEventListener("scroll",z,{passive:!0}),$(window).on("resize",V),le(),Be(()=>e.src,B,{immediate:!0}),co(function(){M.removeEventListener("scroll",z),$(window).off("resize",V),Re()})}),()=>ke("pdfviewer",{ref:t})}};var V8={key:0,class:"quota-row quota-usage"},q8={class:"quota-header"},M8={class:"quota-label"},$8={class:"project-type-svg","aria-hidden":"true"},L8=["href"],U8={key:0,class:"quota-percent"},F8={key:1,class:"quota-unlimited-tag"},z8={class:"quota-value"},H8={key:0},B8=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],j8={key:1,class:"quota-remaining"},G8={key:2,class:"quota-remaining quota-limit"};function ed(e,t){return e.quota?(l(),d("div",V8,[(l(),d(X,null,ae([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],n=>o("div",{class:A(["quota-item","quota-"+e.quota[n.key].level]),key:n.key},[o("div",q8,[o("span",M8,[(l(),d("svg",$8,[o("use",{href:"#"+n.icon},null,8,L8)])),b(c(n.label),1)]),e.quota[n.key].unlimited?p("v-if",!0):(l(),d("span",U8,c(e.fmt.number(e.quota[n.key].percent,0))+"% used",1)),e.quota[n.key].unlimited?(l(),d("span",F8,"Unlimited")):p("v-if",!0)]),o("div",z8,[o("strong",null,c(e.formatAmount(e.quota[n.key].used,n.kind)),1),e.quota[n.key].unlimited?p("v-if",!0):(l(),d("span",H8," / "+c(e.formatAmount(e.quota[n.key].total,n.kind)),1))]),e.quota[n.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:A(["quota-track","quota-"+e.quota[n.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":n.label+" quota","aria-valuenow":Math.min(e.quota[n.key].used,e.quota[n.key].total),"aria-valuemax":e.quota[n.key].total,"aria-valuetext":e.fmt.number(e.quota[n.key].percent,0)+"% used"},[e.quota[n?.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:qe({width:e.quota[n.key].percent+"%"})},null,4))],10,B8)),!e.quota[n.key].unlimited&&e.quota[n.key].used=e.quota[n.key].total?(l(),d("p",G8,c(e.quota[n.key].used>e.quota[n.key].total?"Limit exceeded":"Limit reached"),1)):p("v-if",!0)],2)),64))])):p("v-if",!0)}var W8={props:["quota","fmt"],setup(e){return{formatAmount:(t,n)=>n==="bytes"?e.fmt.humanFileSize(t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:ed},K8=new Set(he),od={props:["content","terms","options"],setup(e){let t=et(null),n=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return $t(()=>{n(),Be(()=>[e.content,e.terms,e.options],n,{deep:!0})}),()=>ke("markdown",{ref:t})}},Y8={props:["file","terms","options"],setup(e){let t=et(null),n=()=>nt(()=>t.value?.querySelectorAll("pre code").forEach(r=>window.Prism?.highlightElement(r)));return $t(n),Be(()=>[e.file?.content,e.terms,e.options],n,{deep:!0}),()=>{let r=e.file||{},s=(r.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(s)||r.language==="Markdown")return ke("gist-file",{ref:t},ke(od,{content:r.content,terms:e.terms,options:e.options}));let i={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(r.language||s||"none").toLowerCase();return ke("gist-file",{ref:t},ke("pre",{class:"line-numbers"},ke("code",{class:"language-"+(i[a]||a),key:r.content},r.content||"")))}}},J8={props:["file","content"],setup(e){let t=et(null),n=0,r,s=async()=>{let i=++n;r?.abort(),r=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:r.signal}).then(u=>{if(!u.ok)throw Error("Notebook request failed");return u.json()});if(await oo("notebook"),i!==n)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(u=>window.Prism?.highlightElement(u))}catch(a){i===n&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return $t(()=>{s(),Be(()=>[e.file,e.content],s)}),co(()=>{n++,r?.abort()}),()=>ke("notebook",{ref:t})}},Q8={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,r])=>r.code),n=t.reduce((r,[,s])=>r+s.code,0);return ke("loc",t.map(([r,s])=>ke("div",{class:"lang",title:`${r}: ${s.code.toLocaleString()} lines`,style:{width:s.code*100/n+"%",background:langColors[r]}})))}}},nd={Markdown:od,GistFile:Y8,Notebook:J8,Loc:Q8,HtmlDoc:Zl,QuotaUsage:W8,Pdfviewer:vi(async()=>(await oo("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",xl))},sd={async mounted(e,{value:t}){e._editorValue=t;try{if(await yr(),e._editorDisposed)return;let n=e._editorValue,r=ace.edit(e);e._editor=r,r.setValue(String(n.content??""),-1),td(e,n.options),e._editorCleanup=n.options?.onLoad?.(r)}catch(n){e._editorDisposed||(e.textContent=n.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),td(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function td(e,t={}){let n=K8.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+n),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var rd={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],n=new Set,r=new IntersectionObserver(s=>{s.forEach(a=>a.isIntersecting?n.add(a.target.id):n.delete(a.target.id));let i=t.find(a=>n.has(a.hash.slice(1)));t.forEach(a=>a.classList.toggle("active",a===i))},{rootMargin:"-20% 0px -60% 0px",threshold:0});nt(()=>t.forEach(s=>{let i=document.getElementById(s.hash.slice(1));i&&r.observe(i)})),e._observer=r},beforeUnmount(e){e._observer?.disconnect()}};function X8(e){let t={children:[]},n=new Map([["",t]]);function r(s){if(n.has(s))return n.get(s);let i=s.lastIndexOf("/"),a=r(i<0?"":s.slice(0,i)),u={name:s.slice(i+1),children:[]};return n.set(s,u),a.children.push(u),u}for(let s of e||[]){let i=s.path?`${s.path}/${s.name}`:s.name;s.size==null?r(i):r(s.path||"").children.push({...s})}return t.children}var id={name:"FileTree",props:["file","parent","searchQuery","searchResults","page"],setup(e){let t=Ga(),n=et(null),r=ze(Object.create(null)),s=null,i=ot(()=>X8(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");Be(()=>[t.params.repoId,t.params.path],()=>{let m="";a().split("/").filter(Boolean).forEach(E=>{m+="/"+E,r[m]=!0})},{immediate:!0});let u=ot(()=>{if(!e.searchQuery||!e.searchResults)return null;let m=new Set,E=new Set;return e.searchResults.forEach(y=>{m.add(y.path?`${y.path}/${y.name}`:y.name);let g="";(y.path||"").split("/").filter(Boolean).forEach(C=>{g=g?g+"/"+C:C,E.add(g)})}),{files:m,folders:E}}),f=()=>[...n.value.querySelectorAll("li > a")],w=m=>{n.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),m&&(s=m.dataset.path,m.classList.add("tree-focused"),m.scrollIntoView?.({block:"nearest"}),n.value.focus())};function h(m){let E=f(),y=n.value.querySelector(".tree-focused")||E[0],g=E.indexOf(y);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(m.key)||(m.preventDefault(),m.key==="ArrowDown"&&w(E[(g+1)%E.length]),m.key==="ArrowUp"&&w(E[(g-1+E.length)%E.length]),!y))return;let C=y.closest("li");m.key==="ArrowRight"&&C.classList.contains("folder")&&(C.classList.contains("open")?w(C.querySelector(":scope > ul > li > a")):y.click()),m.key==="ArrowLeft"&&(C.classList.contains("folder")&&C.classList.contains("open")?y.click():w(C.parentElement.closest("li.folder")?.querySelector(":scope > a"))),m.key==="Enter"&&y.click()}function k(m,E=""){let y=[...m].sort((g,C)=>+!!C.children-+!!g.children||g.name.localeCompare(C.name));return ke("ul",y.flatMap(g=>{let C=g,R=C.name,T=(E+"/"+R).slice(1);if(u.value&&!u.value.files.has(T)&&!u.value.folders.has(T))return[];for(;C.children?.length===1;)C=C.children[0],R+="/"+C.name;let I=E+"/"+R,F=!!C.children,P=u.value?r[I]!==!1:!!r[I],M=F&&e.page?.options?.truncatedFolders?.includes(I.slice(1)),se=e.page?.fileCounts?.[I.slice(1)]||0,oe=ke("span",{class:F?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},F?ke("svg",{viewBox:"0 0 14 12",focusable:"false"},ke("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),S=ke("span",{class:"tree-name"},R),O=Z=>{w(Z.currentTarget),F&&(Z.preventDefault(),r[I]=!P,r[I]&&!C.children.length&&e.page.getFiles(I.slice(1)),nt(()=>w(f().find(te=>te.dataset.path===s))))},Y=ke("a",{"data-path":I,href:F?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(I)}`,class:{"tree-focused":s===I},onClick:O},[F?ke("span",{class:"tree-toggle"}):E?ke("span",{class:"tree-spacer"}):null,oe,S,M?ke("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},ke("i",{class:"fas fa-exclamation-triangle"})):null,F&&se?ke("span",{class:"tree-count"},se):null]);return ke("li",{key:I,class:{file:!0,folder:F,open:P,active:a()===I,truncated:M},title:F?"":`Size: ${humanFileSize(C.size||0)}`},[Y,F&&P?k(C.children,I):null])}))}return()=>ke("tree",{ref:n,tabindex:0,onKeydown:h},e.file?.length?u.value?.files.size===0?ke("div",{class:"tree-search-empty"},"No files found"):k(i.value):"Empty repository")}};function ld(){return ze({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function dd(e,t){if(!e[t]){let n=ld();Object.defineProperty(n,"invalid",{get(){return Object.values(n.errors).some(Boolean)||Object.keys(n).some(r=>r!=="invalid"&&n[r]&&typeof n[r]=="object"&&n[r].invalid)}}),e[t]=n}return e[t]}var ud={beforeMount(e,{value:t}){e._formState=dd(t,e.name),e.addEventListener("submit",n=>n.preventDefault())}};function Z8(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function ad(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?Z8(t):t??""),cr(e)}function cr(e){let t=e._field.validation;if(!t)return;let n=e.validity;for(let[r,s]of Object.entries({required:n.valueMissing,pattern:n.patternMismatch,min:n.rangeUnderflow,max:n.rangeOverflow,date:n.badInput,email:n.typeMismatch&&e.type==="email",url:n.typeMismatch&&e.type==="url"}))t.setValidity(r,e.disabled||!s)}var cd={beforeMount(e,{value:t}){var a;let n=t.form&&dd(t.state,t.form),r=n&&e.name?n[a=e.name]||(n[a]=ld()):null;e._field={binding:t,validation:r,timer:null};let s=()=>{clearTimeout(e._field.timer),e._field.timer=null;let u=e._field.binding,f=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(f=e.value===""?null:Number(e.value)),e.type==="date"&&(f=e.value?new Date(e.value+"T00:00:00"):null),r){r.setDirty();for(let w of Object.keys(r.errors))r.setValidity(w,!0)}u.set(f),cr(e),u.change?.()}};e._field.commit=s;let i=u=>{let f=e._field.binding.options?.debounce||0,w=typeof f=="number"?f:f[u.type]??f.default??0;clearTimeout(e._field.timer),w?e._field.timer=setTimeout(s,w):s()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",i),e.addEventListener("blur",()=>{r&&(r.touched=!0),e._field.timer&&s()})},mounted:ad,updated(e,{value:t}){e._field.binding=t,ad(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:n}=e._field,r=t.form&&t.state[t.form];r&&r[e.name]===n&&delete r[e.name]}};function pd(e,t){let n=e.target.closest("form");if(n?._formState&&(n._formState.submitted=!0),n?.querySelectorAll("input, select, textarea").forEach(r=>{r._field?.timer&&r._field.commit(),r._field&&cr(r)}),n&&!n.checkValidity()){let r=n.querySelector(":invalid");r?.scrollIntoView?.({block:"center"}),r?.focus(),n.reportValidity();return}return t()}var fd=Symbol("session"),x8=/^\/(w|api|github)(\/|$)/;function md(e,t={}){let n=e?.split(".").reduce((r,s)=>r?.[s],ur);return n==null&&e?.startsWith("ERRORS.")&&(n=ur.ERRORS.unknown_error),String(n??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(r,s)=>t[s]??"")}var e6={...dr,translate:md};function t6(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function o6(e="#app",t={}){let n=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),r=n&&window.location.pathname==="/review-link"?hr(window):null,s=()=>{let m=r;return r=null,m};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let i=new Map,a=Jl(t.fetch),u,f;function w(){let m=ct(),E={url(g){return g===void 0?f.currentRoute.value.fullPath:(f.push(g),E)},path(){return f.currentRoute.value.path},search(){return f.currentRoute.value.query}},y=new Proxy({},{get(g,C){let R=f.currentRoute.value.params[C];return Array.isArray(R)?R.join("/"):R}});return{takeReviewHandoff:s,http:a,...m,location:E,params:y,window,promises:Ql,html:{trustAsHtml:g=>g},translate:(g,C)=>Promise.resolve(md(g,C)),quotaService:Xl(a)}}function h(m){return{name:m.template,setup(){let E=rr(ut(fd),i);m.setup(E,w()),Yl(m.template,E);let y=[];return()=>as[m.template](E,y)}}}f=ja({history:t.history||za(),routes:yl.map(m=>m.redirect?m:{path:m.path,component:h(m),meta:{title:m.title,preserveExplorer:m.preserveExplorer}})});let k=la({setup(){u=rr(null,i),u.fmt=e6,u.window=window,u.Math=Math,u.sanitize=g=>DOMPurify.sanitize(g??""),u.highlightRedactions=g=>(u.site_options,Ja(g)),u.submitForm=pd,u.safeUrl=t6;let m=w();Xa(u,m.http,m.location,m.timeout),uo(fd,u),Be(()=>u.title,g=>{document.title=g||"Anonymous GitHub"});let E=[],y=g=>{let C=g.target.closest?.("a[href]");if(g.defaultPrevented||g.button!==0||g.metaKey||g.ctrlKey||g.shiftKey||g.altKey||!C||C.hasAttribute("download")||C.target&&C.target!=="_self"||C.dataset.toggle||C.getAttribute("href").startsWith("#"))return;let T=new URL(C.href,window.location.href);n||/^\/review-link\/?$/i.test(T.pathname)||T.origin!==window.location.origin||x8.test(T.pathname)||(g.preventDefault(),f.push(T.pathname+T.search+T.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",y),co(()=>document.removeEventListener("click",y)),()=>[Kl(u,[]),n?null:ke("header",{class:"app-header"},as["partials/header.htm"](u,E)),ke("main",{class:"app-view align-items-stretch w-100"},ke(sr,null,{default:({Component:g,route:C})=>g?ke(g,{key:C.meta.preserveExplorer?C.matched[0]?.path:C.path}):null})),ke("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},u.toasts.map((g,C)=>ke("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:C},[ke("div",{class:"toast-header"},[ke("strong",{class:"mr-auto"},g.title),ke("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>u.removeToast(g)},"\xD7")]),ke("div",{class:"toast-body"},g.body)])))]}});for(let[m,E]of Object.entries(nd))k.component(m,E);return k.component("Tree",id),k.component("PartialView",{props:["name","state"],setup(m){let E=[];return()=>as[m.name](m.state,E)}}),k.directive("field",cd),k.directive("form",ud),k.directive("code-editor",sd),k.directive("paper-scrollspy",rd),k.use(f),f.beforeEach(async m=>{if(m.path==="/review-link"&&!n||n&&m.path!=="/review-link")return window.location.assign(m.fullPath),!1;u?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(m.path)&&await oo("markdown"),/^\/(r|repository)\//.test(m.path)&&await oo("org")}),f.afterEach(m=>{if(!u)return;u.title=m.meta.title,u.emit("routeChange",{title:m.meta.title}),u.emit("routeUpdate",{title:m.meta.title});let E=document.querySelector(".app-view");!m.meta.preserveExplorer&&E&&(E.scrollTop=0)}),k.mount(e),{app:k,router:f,state:u}}document.querySelector("#app")&&(window.anonymousApp=o6());})();
+jane.smith@example.org`},bq={id:"termsHelp",class:"form-text text-muted"},wq={class:"invalid-feedback"},kq={id:"settings-display",class:"paper-settings-section"},Eq={class:"form-group paper-check-list"},Cq={class:"form-check"},_q={class:"form-check-input",type:"checkbox",id:"link",name:"link"},Sq={class:"form-check"},Nq={class:"form-check-input",type:"checkbox",id:"image",name:"image"},Dq={class:"form-check"},Rq={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},Tq={class:"form-check"},Aq={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},Oq={id:"settings-features",class:"paper-settings-section"},Iq={class:"form-group paper-check-list"},Pq={class:"form-check"},Vq={class:"form-check-input",type:"checkbox",id:"page",name:"page"},qq={class:"form-check"},Mq={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},$q={class:"form-check"},Lq={class:"form-check-input",type:"checkbox",id:"update",name:"update"},Uq={class:"form-group"},Fq={class:"form-control",id:"mode",name:"mode"},zq={class:"form-text text-muted"},Hq={id:"settings-expiration",class:"paper-settings-section"},Bq={class:"form-group"},jq={class:"form-control",id:"expiration",name:"expiration"},Gq={key:0,class:"draft-status",role:"status"},Wq={key:1,class:"draft-status"},Kq={class:"paper-settings-footer"},Yq={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},Jq=["textContent"],Qq={class:"paper-settings-actions"},Xq=["disabled"],Zq={key:0,class:"ui-icon mr-1","aria-hidden":"true"},xq={id:"settings-account",class:"paper-settings-section"},eM={class:"paper-account-card"},tM=["src"],oM={class:"paper-account-identity"},nM={class:"paper-account-name"},sM=["disabled"],rM={key:0,role:"status"},iM={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},aM=["disabled"],lM={key:3,role:"status"},dM={class:"paper-danger-zone"},uM={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},cM=["textContent"],pM=["disabled"];function jl(e,t){let n=We("quota-usage"),r=be("paper-scrollspy"),s=be("field"),i=be("form");return l(),d("div",dq,[t[58]||(t[58]=pe('Your settings Defaults applied to every new anonymization, your quotas, and your account.
',3)),o("div",uq,[D((l(),d("aside",cq,[...t[8]||(t[8]=[pe('On this page
Quota Terms to redact Display Features Expiration Account ',2)])])),[[r]]),o("div",pq,[p(" Account usage shares the dashboard component. "),o("section",fq,[t[10]||(t[10]=o("div",{class:"paper-section-eyebrow"},"Quota",-1)),t[11]||(t[11]=o("p",{class:"paper-section-copy"},"What you are using across all your anonymizations. Conferences can lift these limits during a review window.",-1)),e.quota?(l(),Lt(n,{key:0,quota:e.quota,fmt:e.fmt},null,8,["quota","fmt"])):p("v-if",!0),e.quota?p("v-if",!0):(l(),d("div",mq,[(l(),d(X,null,ae([1,2,3],(a,u)=>o("div",hq,[...t[9]||(t[9]=[o("div",{class:"quota-header"},[o("span",{class:"skeleton skeleton-line",style:{width:"40%"}}),o("span",{class:"skeleton skeleton-line",style:{width:"25%"}})],-1),o("div",{class:"quota-track"},null,-1)])])),64))]))]),D((l(),d("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onSubmit:t[2]||(t[2]=de(a=>e.submitForm(a,()=>{e.saveDefault(a)}),["prevent"]))},[o("section",vq,[t[17]||(t[17]=o("div",{class:"paper-section-eyebrow"},"Terms to redact",-1)),t[18]||(t[18]=o("p",{class:"paper-section-copy"},"Pre-filled in every new anonymization. You can still edit the list per anonymization.",-1)),o("div",yq,[t[16]||(t[16]=o("label",{class:"paper-field-label",for:"terms"},"Default terms",-1)),D(o("textarea",gq,null,512),[[s,{state:e.viewState,set:a=>{e.terms=a},value:e.terms,form:"defaultsForm",options:{debounce:250}}]]),o("small",bq,[t[12]||(t[12]=b(" One term per line (regex allowed). Each match is replaced by ",-1)),o("code",null,c(e.site_options?.ANONYMIZATION_MASK||"XXX")+"-[N]",1),t[13]||(t[13]=b(", or use ",-1)),t[14]||(t[14]=o("code",null,"term=>replacement",-1)),t[15]||(t[15]=b(" to pick your own. ",-1))]),D(o("div",wq," Terms are in an invalid format ",512),[[K,e.defaultsForm?.terms?.errors?.format]])])]),o("section",kq,[t[27]||(t[27]=o("div",{class:"paper-section-eyebrow"},"Display",-1)),t[28]||(t[28]=o("p",{class:"paper-section-copy"},"What reviewers can see inside an anonymized repository.",-1)),o("div",Eq,[o("div",Cq,[D(o("input",_q,null,512),[[s,{state:e.viewState,set:a=>{e.options.link=a},value:e.options?.link,form:"defaultsForm",options:{}}]]),t[19]||(t[19]=o("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[20]||(t[20]=o("small",{class:"form-text text-muted"},"Unchecked, every link in text files is removed.",-1))]),o("div",Sq,[D(o("input",Nq,null,512),[[s,{state:e.viewState,set:a=>{e.options.image=a},value:e.options?.image,form:"defaultsForm",options:{}}]]),t[21]||(t[21]=o("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[22]||(t[22]=o("small",{class:"form-text text-muted"},"Images are shown as is. They are not anonymized.",-1))]),o("div",Dq,[D(o("input",Rq,null,512),[[s,{state:e.viewState,set:a=>{e.options.pdf=a},value:e.options?.pdf,form:"defaultsForm",options:{}}]]),t[23]||(t[23]=o("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[24]||(t[24]=o("small",{class:"form-text text-muted"},"PDFs are shown as is. They are not anonymized.",-1))]),o("div",Tq,[D(o("input",Aq,null,512),[[s,{state:e.viewState,set:a=>{e.options.notebook=a},value:e.options?.notebook,form:"defaultsForm",options:{}}]]),t[25]||(t[25]=o("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[26]||(t[26]=o("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])])]),o("section",Oq,[t[37]||(t[37]=o("div",{class:"paper-section-eyebrow"},"Features",-1)),o("div",Iq,[o("div",Pq,[D(o("input",Vq,null,512),[[s,{state:e.viewState,set:a=>{e.options.page=a},value:e.options?.page,form:"defaultsForm",options:{}}]]),t[29]||(t[29]=o("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=o("small",{class:"form-text text-muted"},"Serve an anonymized copy of the repository's GitHub Pages site. Only pages built from the anonymized branch are supported.",-1))]),o("div",qq,[D(o("input",Mq,null,512),[[s,{state:e.viewState,set:a=>{e.options.loc=a},value:e.options?.loc,form:"defaultsForm",options:{}}]]),t[31]||(t[31]=o("label",{class:"form-check-label",for:"loc"},"Lines of code",-1)),t[32]||(t[32]=o("small",{class:"form-text text-muted"},"Show the line count of the repository in the explorer.",-1))]),o("div",$q,[D(o("input",Lq,null,512),[[s,{state:e.viewState,set:a=>{e.options.update=a},value:e.options?.update,form:"defaultsForm",options:{}}]]),t[33]||(t[33]=o("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[34]||(t[34]=o("small",{class:"form-text text-muted"},"Follow the branch and pull the latest commit automatically, at most once an hour.",-1))])]),o("div",Uq,[t[36]||(t[36]=o("label",{class:"paper-field-label",for:"mode"},"Fetch mode",-1)),D((l(),d("select",Fq,[...t[35]||(t[35]=[o("option",{value:"GitHubStream",selected:""},"Stream from GitHub on demand",-1),o("option",{value:"GitHubDownload"},"Download to Anonymous GitHub",-1)])])),[[s,{state:e.viewState,set:a=>{e.options.mode=a},value:e.options?.mode,form:"defaultsForm",options:{}}]]),o("small",zq," Download is faster for reviewers and enables every feature. Streaming is the only option above "+c(e.fmt?.humanFileSize(e.site_options?.MAX_REPO_SIZE*1024))+". ",1)])]),o("section",Hq,[t[41]||(t[41]=o("div",{class:"paper-section-eyebrow"},"Expiration",-1)),o("div",Bq,[t[39]||(t[39]=o("label",{class:"paper-field-label",for:"expiration"},"When an anonymization expires",-1)),D((l(),d("select",jq,[...t[38]||(t[38]=[o("option",{value:"redirect"},"Redirect visitors to the GitHub repository",-1),o("option",{value:"remove",selected:""},"Remove the anonymized repository",-1)])])),[[s,{state:e.viewState,set:a=>{e.options.expirationMode=a},value:e.options?.expirationMode,form:"defaultsForm",options:{}}]]),t[40]||(t[40]=o("small",{class:"form-text text-muted"}," The expiration date itself is chosen per anonymization. Redirecting reveals the source repository, so pick it only once the review is over. ",-1))])]),e.draftRestored?(l(),d("div",Gq,[t[42]||(t[42]=b("Your unsaved draft was restored. ",-1)),o("button",{type:"button",class:"draft-discard",onClick:t[0]||(t[0]=a=>e.discardDraft())},"Discard draft")])):e.unsavedChanges?(l(),d("div",Wq,[b(c(e.draftSaved?"Draft saved in this tab for 30 minutes.":"Unsaved changes. Keep this tab open until you save.")+" ",1),o("button",{type:"button",class:"draft-discard",onClick:t[1]||(t[1]=a=>e.discardDraft())},c(e.isUpdate?"Restore saved settings":"Discard changes"),1)])):p("v-if",!0),o("div",Kq,[e.error?(l(),d("div",Yq,[t[43]||(t[43]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})],-1)),t[44]||(t[44]=b()),o("span",{textContent:c(e.error)},null,8,Jq)])):p("v-if",!0),o("div",Qq,[o("button",{id:"save",type:"submit",class:"btn btn-ink",disabled:e.saving},[e.message?(l(),d("svg",Zq,[...t[45]||(t[45]=[o("use",{href:"#ui-icon-check"},null,-1)])])):p("v-if",!0),b(c(e.saving?"Saving\u2026":e.message?"Saved":"Save defaults"),1)],8,Xq),t[46]||(t[46]=o("span",{class:"paper-settings-hint"},"Applies to new anonymizations only. Existing ones keep their settings.",-1))])])],32)),[[i,e.viewState]]),o("section",xq,[t[56]||(t[56]=o("div",{class:"paper-section-eyebrow"},"Account",-1)),o("div",eM,[e.user?.photo?(l(),d("img",{key:0,width:"40",height:"40",class:"rounded-circle",alt:"",src:e.safeUrl(e.user?.photo)},null,8,tM)):p("v-if",!0),o("div",oM,[o("div",nM,"@"+c(e.user?.username),1),t[47]||(t[47]=o("div",{class:"paper-account-meta"},"Signed in with GitHub. Anonymous GitHub only reads your repositories.",-1))]),t[48]||(t[48]=o("a",{class:"btn btn-outline-ink",href:"/api/user/logout",target:"_self"},"Sign out",-1))]),o("form",{class:"paper-account-email",onSubmit:t[6]||(t[6]=de(a=>e.saveAccountEmail(),["prevent"]))},[t[49]||(t[49]=o("label",{class:"paper-field-label",for:"account-email"},"Email address",-1)),t[50]||(t[50]=o("p",{id:"account-email-help",class:"paper-section-copy"},"Used for account alerts. Your address is never shown on anonymous pages.",-1)),D(o("input",{id:"account-email",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[3]||(t[3]=a=>e.accountEmail=a),"aria-describedby":"account-email-help",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady,onInput:t[4]||(t[4]=a=>e.emailSaved=!1)},null,40,sM),[[Ft,e.accountEmail]]),e.emailLoading?(l(),d("p",rM,"Loading your email address\u2026")):p("v-if",!0),e.emailError?(l(),d("p",iM,c(e.emailError),1)):p("v-if",!0),!e.emailCSRFReady&&!e.emailLoading?(l(),d("button",{key:2,class:"btn btn-outline-ink mt-2",type:"button",onClick:t[5]||(t[5]=a=>e.loadAccountEmail())},"Try again")):p("v-if",!0),o("button",{class:"btn btn-ink mt-2",type:"submit",disabled:e.emailLoading||e.emailSaving||!e.emailCSRFReady},c(e.emailSaving?"Saving\u2026":"Save email address"),9,aM),e.emailSaved?(l(),d("p",lM,"Email address saved.")):p("v-if",!0)],32),t[57]||(t[57]=o("a",{class:"paper-settings-connection-link",href:"/connections"},[o("i",{class:"fab fa-github","aria-hidden":"true"}),o("span",null,[b("GitHub connections"),o("small",null,"Manage repository access and legacy OAuth.")]),o("span",{"aria-hidden":"true"},"\u2192")],-1)),o("div",dM,[t[54]||(t[54]=o("div",{class:"paper-danger-head"},"Delete account",-1)),t[55]||(t[55]=o("p",{class:"paper-danger-copy"}," Removes all your anonymized repositories, gists, and pull requests, revokes the application's access to your GitHub account, and erases your personal data (username, email, access tokens). This cannot be undone. ",-1)),e.deleteError?(l(),d("div",uM,[t[51]||(t[51]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-info"})],-1)),t[52]||(t[52]=b()),o("span",{textContent:c(e.deleteError)},null,8,cM)])):p("v-if",!0),o("button",{type:"button",class:"btn btn-outline-danger",onClick:t[7]||(t[7]=a=>e.deleteAccount()),disabled:e.deletingAccount},[t[53]||(t[53]=o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-trash"})],-1)),b(c(e.deletingAccount?"Deleting\u2026":"Delete my account"),1)],8,pM)])])])])])}var fM={class:"pr-page"},mM={class:"container paper-page pr-page-inner"},hM={class:"pr-header"},vM={class:"pr-title-row"},yM={class:"paper-page-title pr-title"},gM=["textContent"],bM={key:1,class:"text-muted"},wM=["href"],kM={class:"pr-header-meta"},EM={key:0,class:"pr-meta-item"},CM=["textContent"],_M={key:1,class:"pr-meta-item"},SM=["textContent"],NM={key:2,class:"pr-meta-item"},DM=["textContent"],RM={key:0,class:"pr-body-card"},TM={key:1,class:"paper-tabs",role:"tablist"},AM=["aria-selected","tabindex"],OM=["aria-selected","tabindex"],IM=["textContent"],PM={class:"paper-tab-content"},VM={key:0,role:"tabpanel",id:"pr-diff-panel","aria-labelledby":"pr-diff-tab"},qM=["innerHTML"],MM={key:1,role:"tabpanel",id:"pr-comments-panel","aria-labelledby":"pr-comments-tab"},$M={class:"pr-comments"},LM={class:"pr-comment"},UM={class:"pr-comment-head"},FM={key:0,class:"pr-comment-author"},zM=["textContent"],HM=["textContent"],BM={key:0,class:"pr-comment-body"},jM={key:0,class:"paper-table-empty"};function Gl(e,t){let n=We("markdown");return l(),d("div",fM,[o("div",mM,[t[17]||(t[17]=o("div",{class:"paper-crumbs"},[o("a",{href:"/dashboard"},"Reviewer"),b(" \xA0/\xA0 "),o("span",{class:"here"},"Pull request")],-1)),o("header",hM,[o("div",vM,[o("h1",yM,[e.details?.title?(l(),d("span",{key:0,textContent:c(e.details?.title)},null,8,gM)):p("v-if",!0),e.details?.title?p("v-if",!0):(l(),d("span",bM,"Untitled pull request"))]),e.options?.isAdmin||e.options?.isOwner?(l(),d("a",{key:0,class:"btn btn-sm","aria-label":"Edit",href:e.safeUrl("/pull-request-anonymize/"+e.pullRequestId)},[...t[4]||(t[4]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),o("span",{class:"d-none d-md-inline"}," Edit",-1)])],8,wM)):p("v-if",!0)]),o("div",kM,[o("span",{class:A(["paper-pill",{good:e.details?.merged,warn:e.details?.state=="open",bad:e.details?.state=="closed"&&!e.details?.merged}])},[o("span",{class:A(["status-dot",{"status-ready":e.details?.merged,"status-error":e.details?.state=="closed"&&!e.details?.merged}])},null,2),b(" "+c(e.details?.merged?"Merged":e.fmt.title(e.details?.state)),1)],2),e.details?.baseRepositoryFullName?(l(),d("span",EM,[t[5]||(t[5]=o("i",{class:"fab fa-github"},null,-1)),t[6]||(t[6]=b()),o("span",{textContent:c(e.details?.baseRepositoryFullName)},null,8,CM)])):p("v-if",!0),e.details?.updatedDate?(l(),d("span",_M,[t[7]||(t[7]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-clock"})],-1)),t[8]||(t[8]=b()),o("span",{textContent:c(e.fmt?.date(e.details?.updatedDate))},null,8,SM)])):p("v-if",!0),e.details?.anonymizeDate?(l(),d("span",NM,[t[9]||(t[9]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-shield"})],-1)),t[10]||(t[10]=b(" Anonymized ",-1)),o("span",{textContent:c(e.fmt?.date(e.details?.anonymizeDate))},null,8,DM)])):p("v-if",!0)])]),e.details?.body?(l(),d("section",RM,[t[11]||(t[11]=o("div",{class:"paper-section-eyebrow"},"Description",-1)),Ce(n,{content:e.details?.body},null,8,["content"])])):p("v-if",!0),e.details?.diff||e.details?.comments?(l(),d("nav",TM,[e.details?.diff?(l(),d("button",{key:0,class:A(["paper-tab",{active:e.tabState?.active=="diff"}]),type:"button",role:"tab",id:"pr-diff-tab","aria-selected":e.tabState?.active==="diff","aria-controls":"pr-diff-panel",tabindex:e.tabState?.active==="diff"?0:-1,onKeydown:t[0]||(t[0]=r=>e.previewTabKeydown(r)),onClick:t[1]||(t[1]=r=>e.tabState.active="diff")},[...t[12]||(t[12]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-code"})],-1),b(" Diff ",-1)])],42,AM)):p("v-if",!0),e.details?.comments?(l(),d("button",{key:1,class:A(["paper-tab",{active:e.tabState?.active=="comments"}]),type:"button",role:"tab",id:"pr-comments-tab","aria-selected":e.tabState?.active==="comments","aria-controls":"pr-comments-panel",tabindex:e.tabState?.active==="comments"?0:-1,onKeydown:t[2]||(t[2]=r=>e.previewTabKeydown(r)),onClick:t[3]||(t[3]=r=>e.tabState.active="comments")},[t[13]||(t[13]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1)),o("span",{textContent:c(e.fmt.plural(e.details?.comments?.length,{0:"No comments",one:"1 comment",other:"{} comments"}))},null,8,IM)],42,OM)):p("v-if",!0)])):p("v-if",!0),o("div",PM,[e.details?.diff&&e.tabState?.active=="diff"?(l(),d("div",VM,[o("div",{class:"pr-diff",innerHTML:e.sanitize(e.fmt?.diff(e.details?.diff))},null,8,qM)])):p("v-if",!0),e.details?.comments&&e.tabState?.active=="comments"?(l(),d("div",MM,[o("ul",$M,[(l(!0),d(X,null,ae(e.details?.comments,(r,s)=>(l(),d("li",LM,[o("div",UM,[r?.author?(l(),d("span",FM,[t[14]||(t[14]=o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-user"})],-1)),t[15]||(t[15]=b(" @",-1)),o("span",{textContent:c(r?.author)},null,8,zM)])):p("v-if",!0),r?.updatedDate?(l(),d("span",{key:1,class:"pr-comment-date",textContent:c(e.fmt?.date(r?.updatedDate))},null,8,HM)):p("v-if",!0)]),r?.body?(l(),d("div",BM,[Ce(n,{content:r?.body},null,8,["content"])])):p("v-if",!0)]))),256)),e.details?.comments?.length?p("v-if",!0):(l(),d("li",jM,[...t[16]||(t[16]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-comment"})],-1),o("span",null,"No comments on this pull request.",-1)])]))])])):p("v-if",!0)])])])}var GM={class:"container paper-page status-page"},WM={class:"d-flex align-items-center justify-content-between flex-wrap",style:{gap:"12px"}},KM={class:"paper-page-title"},YM=["textContent"],JM={key:1},QM={class:"paper-settings-section"},XM=["textContent"],ZM={key:0,class:"paper-section-copy"},xM={key:1,class:"paper-ratelimit-card",role:"status"},e8={class:"paper-error-msg"},t8=["aria-valuenow"],o8={class:"paper-progress-label"},n8=["textContent"],s8={key:0},r8=["textContent"],i8={class:"paper-progress-pct"},a8={key:3,class:"paper-error-card",role:"alert"},l8={key:0,class:"paper-error-msg"},d8={key:1,class:"paper-error-msg"},u8={class:"paper-error-actions"},c8=["href"],p8={key:4,class:"share-link"},f8={class:"share-link-row"},m8=["value"],h8={class:"ui-icon","aria-hidden":"true"},v8=["href"],y8=["textContent"],g8={class:"share-link-actions"},b8=["href"],w8=["href"];function Wl(e,t){return l(),d("div",GM,[t[16]||(t[16]=o("div",{class:"paper-crumbs"},[b("Anonymization \xA0/\xA0 "),o("span",{class:"here"},"Status")],-1)),o("div",WM,[o("div",null,[o("h1",KM,[t[2]||(t[2]=b("Status of ",-1)),o("em",null,c(e.repoId),1)]),t[3]||(t[3]=o("p",{class:"paper-page-lede"},"Track progress as your anonymization is prepared.",-1))]),o("span",{class:A(["status-pill",{"status-pill-ready":e.repo?.status=="ready","status-pill-error":e.repo?.status=="error","status-pill-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-pill-ratelimit":e.rateLimitResetAt}])},[o("span",{class:A(["status-dot",{"status-ready":e.repo?.status=="ready","status-error":e.repo?.status=="error","status-removed":e.repo?.status=="removed"||e.repo?.status=="expired","status-ratelimit":e.rateLimitResetAt}])},null,2),e.rateLimitResetAt?p("v-if",!0):(l(),d("span",{key:0,textContent:c(e.fmt?.title(e.repo?.status))},null,8,YM)),e.rateLimitResetAt?(l(),d("span",JM,"Rate limited")):p("v-if",!0)],2)]),o("section",QM,[o("div",{class:"paper-section-eyebrow",textContent:c(e.repo?.status=="ready"?"Your anonymous link":"Progress")},null,8,XM),e.repo?.status!="ready"?(l(),d("p",ZM,[...t[4]||(t[4]=[b(" The repository will take a few minutes to get ready, depending on its size. Visit the ",-1),o("a",{href:"/faq"},"FAQ",-1),b(" for more information. ",-1)])])):p("v-if",!0),e.rateLimitResetAt?(l(),d("div",xM,[t[7]||(t[7]=pe('Temporarily paused
GitHub API rate limit reached
',1)),o("p",e8,[t[5]||(t[5]=b("Anonymization will resume automatically in ",-1)),o("strong",null,c(e.rateLimitCountdown),1),t[6]||(t[6]=b(". No action needed \u2014 the job is queued and will continue where it left off.",-1))])])):p("v-if",!0),e.repo?.status!="error"&&e.repo?.status!="ready"&&!e.rateLimitResetAt?(l(),d("div",{key:2,class:A(["paper-progress",{"paper-progress-ready":e.repo?.status=="ready"}]),role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.progress},[o("div",{class:"paper-progress-bar",style:qe("width: "+e.progress+"%;")},null,4),o("div",o8,[o("span",{textContent:c(e.fmt?.title(e.repo?.status))},null,8,n8),e.repo?.statusMessage?(l(),d("span",s8,[t[8]||(t[8]=b("\xA0\xB7\xA0",-1)),o("span",{textContent:c(e.repo?.statusMessage)},null,8,r8)])):p("v-if",!0),o("span",i8,c(e.progress||0)+"%",1)])],10,t8)):p("v-if",!0),e.repo?.status=="error"&&!e.rateLimitResetAt?(l(),d("div",a8,[t[11]||(t[11]=pe('Anonymization failed
Something went wrong while preparing this repository.
',1)),e.repo?.statusMessage?(l(),d("p",l8,c(e.fmt?.translate("ERRORS."+e.repo?.statusMessage)),1)):p("v-if",!0),e.repo?.statusMessage?p("v-if",!0):(l(),d("p",d8,"No additional details were reported. The most common causes are private repositories, missing branches, and rate limits.")),t[12]||(t[12]=o("ul",{class:"paper-error-hints"},[o("li",null,"Make sure the source URL points to a repository or pull request you can access."),o("li",null,"Check that the chosen branch and commit still exist on GitHub."),o("li",null,"If you just signed in, the access token may need a moment to propagate \u2014 try again.")],-1)),o("div",u8,[o("a",{class:"btn btn-ink",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[9]||(t[9]=[o("svg",{class:"ui-icon mr-1","aria-hidden":"true"},[o("use",{href:"#ui-icon-edit"})],-1),b(" Edit anonymization",-1)])],8,c8),t[10]||(t[10]=pe(' Read the FAQ Report a bug in Anonymous GitHub ',2))])])):p("v-if",!0),e.repo?.status=="ready"?(l(),d("div",p8,[t[15]||(t[15]=o("p",{class:"paper-section-copy"},"Reviewers can browse the repository at this address without seeing who you are.",-1)),o("div",f8,[o("input",{id:"share-url",class:"form-control share-link-input",readonly:"","aria-label":"Anonymous link",value:e.shareUrl,onFocus:t[0]||(t[0]=n=>n.target.select())},null,40,m8),o("button",{type:"button",class:"btn btn-ink",onClick:t[1]||(t[1]=n=>e.copyShareUrl())},[(l(),d("svg",h8,[o("use",{href:e.copied?"#ui-icon-check":"#project-icon-copy"},null,8,v8)])),o("span",{"aria-live":"polite",textContent:c(e.copied?"Copied":"Copy link")},null,8,y8)])]),o("div",g8,[o("a",{class:"btn",target:"_self",href:e.safeUrl("/r/"+e.repoId+"/")},[...t[13]||(t[13]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#project-icon-eye"})],-1),b(" Open repository ",-1)])],8,b8),e.repo?.options?.page?(l(),d("a",{key:0,class:"btn",target:"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[14]||(t[14]=[o("svg",{class:"ui-icon","aria-hidden":"true"},[o("use",{href:"#ui-icon-globe"})],-1),b(" Open GitHub page ",-1)])],8,w8)):p("v-if",!0)])])):p("v-if",!0)]),t[17]||(t[17]=pe('Support Anonymous GitHub
A small team keeps this running. If it helps you, please consider contributing back \u2014 in code, ideas, or coffee.
',1))])}var as={"partials/reviewConsent.htm":gl,"partials/connections.htm":bl,"partials/signin.htm":wl,"partials/404.htm":kl,"partials/admin/conferences.htm":El,"partials/admin/errors.htm":Cl,"partials/admin/overview.htm":_l,"partials/admin/queues.htm":Sl,"partials/admin/repositories.htm":Nl,"partials/admin/user.htm":Dl,"partials/admin/users.htm":Rl,"partials/anonymize.htm":Tl,"partials/anonymizePullRequest.htm":Al,"partials/claim.htm":Ol,"partials/conference.htm":Il,"partials/conferences.htm":Pl,"partials/dashboard.htm":Vl,"partials/explorer.htm":ql,"partials/faq.htm":Ml,"partials/gist.htm":$l,"partials/header.htm":Ll,"partials/home.htm":Ul,"partials/loading.htm":Fl,"partials/newConference.htm":zl,"partials/pageView.htm":Hl,"partials/pr-dashboard.htm":Bl,"partials/profile.htm":jl,"partials/pullRequest.htm":Gl,"partials/status.htm":Wl};var k8={class:"ui-icon-definitions","aria-hidden":"true",focusable:"false"};function Kl(e,t){return l(),d("svg",k8,[...t[0]||(t[0]=[pe(' ',1)])])}function Yl(e,t){e==="partials/explorer.htm"&&(t.sidebarCollapsed=window.matchMedia?.("(max-width: 767px)").matches||!1),e==="partials/anonymize.htm"&&(t.prTabState={active:t.options.diff?"diff":"comments"},t.watchGroup(["options.diff","options.comments"],()=>{t.options[t.prTabState.active]||(t.prTabState.active=t.options.diff?"diff":t.options.comments?"comments":null)})),e==="partials/gist.htm"&&(t.tabState={active:t.details?.files?"files":"comments"}),["partials/conferences.htm","partials/conference.htm"].includes(e)&&(t.statusLabels={ready:"Ready",expired:"Expired",removed:"Removed"});let r={"partials/dashboard.htm":["filteredItems",()=>t.items,"itemFilter"],"partials/conferences.htm":["filteredConferences",()=>t.conferences,"conferenceFilter"],"partials/conference.htm":["filteredRepositories",()=>t.conference?.repositories,"repoFiler"],"partials/admin/repositories.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/user.htm":["filteredRepositories",()=>t.repositories,"repoFiler"],"partials/admin/users.htm":["filteredUsers",()=>t.users,"userFiler"],"partials/admin/conferences.htm":["filteredConferences",()=>t.conferences]}[e];if(r){let s=ot(()=>t.fmt.orderBy(t.fmt.filter(r[1](),t[r[2]]),t.orderBy));Object.defineProperty(t,r[0],{configurable:!0,get:()=>s.value})}}function Jl(e=(...t)=>fetch(...t)){async function t(r,s,i,a={}){let u=new URL(s,window.location.href);for(let[h,k]of Object.entries(a.params||{}))if(k!=null)for(let m of Array.isArray(k)?k:[k])u.searchParams.append(h,typeof m=="object"?JSON.stringify(m):m);let f=new AbortController,w;a.timeout?.then?a.timeout.then(()=>f.abort()):a.timeout&&(w=setTimeout(()=>f.abort(),a.timeout));try{let h={Accept:"application/json, text/plain, */*",...a.headers},k=document.cookie.match(/(?:^|;\s*)XSRF-TOKEN=([^;]*)/);k&&u.origin===window.location.origin&&(h["X-XSRF-TOKEN"]=decodeURIComponent(k[1]));let m;i!==void 0&&(i instanceof FormData?m=i:(h["Content-Type"]||(h["Content-Type"]="application/json;charset=utf-8"),m=JSON.stringify(i)));let E=await e(u.href,{method:r,headers:h,body:m,credentials:"same-origin",signal:f.signal}),y=await E.text(),g=y;if(a.transformResponse)g=a.transformResponse(y);else if(y&&(/json/i.test(E.headers.get("content-type")||"")||/^[\[{]/.test(y.trim())))try{g=JSON.parse(y)}catch{}let _={data:g,status:E.status,headers:R=>E.headers.get(R)};if(!E.ok)throw _;return _}catch(h){throw h.name==="AbortError"?{status:-1,data:null}:h}finally{clearTimeout(w)}}let n={};for(let r of["get","delete","head"])n[r]=(s,i)=>t(r.toUpperCase(),s,void 0,i);for(let r of["post","put","patch"])n[r]=(s,i,a)=>t(r.toUpperCase(),s,i,a);return n}var Ql={resolve:e=>Promise.resolve(e),reject:e=>Promise.reject(e),all:e=>Promise.all(e),defer(){let e,t;return{promise:new Promise((r,s)=>{e=r,t=s}),resolve:e,reject:t}}};var Xl=function(e){function t(n){return n=n||{used:0,total:0},n.unlimited=!n.total,n.percent=n.unlimited?0:Math.min(100,n.used*100/n.total),n.level=n.unlimited?"unlimited":n.percent>=95?"danger":n.percent>=80?"warn":"ok",n}return{decorate:t,load:function(){return e.get("/api/user/quota").then(n=>{let r=n.data||{};return r.storage=t(r.storage),r.file=t(r.file),r.repository=t(r.repository),r})}}};var dr={};vd(dr,{bigNum:()=>C8,date:()=>V8,diff:()=>R8,filter:()=>I8,humanFileSize:()=>E8,humanTime:()=>_8,limitTo:()=>O8,number:()=>T8,orderBy:()=>P8,plural:()=>q8,statusLabel:()=>N8,statusMsg:()=>D8,title:()=>S8,uppercase:()=>A8});var E8=e=>window.humanFileSize(e),C8=(function(){return function(t){let n=Number(t)||0,r=Math.abs(n);return r<1e3?String(n):r<1e4?(n/1e3).toFixed(1).replace(/\.0$/,"")+"k":r<1e6?Math.round(n/1e3)+"k":r<1e7?(n/1e6).toFixed(1).replace(/\.0$/,"")+"M":Math.round(n/1e6)+"M"}})(),_8=(function(){return function(t){if(!t)return"never";t instanceof Date&&(t=Math.round((Date.now()-t)/1e3)),(typeof t=="string"||typeof t=="number")&&(t=Math.round((Date.now()-new Date(t))/1e3));var n=t<0?"from now":"ago";if(Math.abs(t)>7200*24){let f=new Date;return f.setSeconds(f.getSeconds()-t),"on "+f.toLocaleDateString(void 0,{day:"numeric",month:"short",year:"numeric"})}t=Math.abs(t);for(var r=[t/60/60/24/365,t/60/60/24/30,t/60/60/24/7,t/60/60/24,t/60/60,t/60,t],s=["year","month","week","day","hour","minute","second"],i=0;i1&&(u+="s"),a>=1)return a+" "+u+" "+n}return"0 seconds "+n}})(),S8=(function(){return function(e){if(!e)return e;e=e.toLowerCase();var t=e.split(" "),n=t.map(function(r){return r.charAt(0).toUpperCase()+r.substring(1,r.length)});return n.join(" ")}})(),N8=(function(){var e={ready:"Ready",error:"Error",expired:"Expired",expiring:"Expiring",removed:"Removed",removing:"Removing",queue:"Queued",download:"Downloading",downloaded:"Downloaded",preparing:"Preparing",anonymizing:"Anonymizing"};return function(t){if(!t)return"";if(e[t])return e[t];var n=String(t).replace(/[_-]+/g," ").toLowerCase();return n.charAt(0).toUpperCase()+n.slice(1)}})(),D8=(function(){var e={branch_not_found:"Branch not found on GitHub",repo_not_found:"Repository not found on GitHub",repository_not_found:"Repository not found on GitHub",repo_not_accessible:"Repository is not accessible with your token",pr_not_found:"Pull request not found on GitHub",gist_not_found:"Gist not found on GitHub",commit_not_found:"Commit not found on GitHub",repo_too_big:"Repository exceeds the size limit",quota_exceeded:"Storage quota exceeded",incomplete_record:"Incomplete record: missing identifier"};return function(t){if(!t)return t;var n=t.match(/^rate_limited:(\d+)$/);if(n){var r=Math.max(0,Math.ceil((parseInt(n[1],10)-Date.now())/1e3));if(r<=0)return"Rate limited \u2014 resuming soon";var s=Math.floor(r/60),i=r%60;return"Rate limited \u2014 retrying in "+(s>0?s+"m "+i+"s":i+"s")}if(e[t])return e[t];if(/^[a-z0-9]+(_[a-z0-9]+)+$/.test(t)){var a=t.replace(/_/g," ");return a.charAt(0).toUpperCase()+a.slice(1)}return t}})(),R8=(function(e){let t=r=>r.replace(/&/g,"&").replace(//g,">");function n(r,s){if(!s)return;let i=s.newPath&&s.newPath!=="/dev/null"?s.newPath:s.oldPath||"",a=s.oldPath==="/dev/null"?"added":s.newPath==="/dev/null"?"deleted":s.oldPath&&s.newPath&&s.oldPath!==s.newPath?"renamed":"modified";if(r.push(''),r.push('"),s.lines.length){r.push('
');for(let u of s.lines)r.push(''+(u.oldNo||"")+' '+(u.newNo||"")+' '+(u.kind==="add"?"+":u.kind==="remove"?"-":u.kind==="hunk"?"@":"")+' '+t(u.text)+" ");r.push("
")}r.push("
")}return function(r){if(!r)return r;let s=[],i=null,a=0,u=0,f=()=>(i||(i={oldPath:"",newPath:"",lines:[]}),i),w=()=>{i&&(i.lines.length||i.oldPath||i.newPath)&&(n(s,i),i=null)},h=r.split(`
+`);for(let k=0;ke});function T8(e,t){return e==null?"":Number(e).toLocaleString(void 0,t==null?{}:{minimumFractionDigits:t,maximumFractionDigits:t})}function A8(e){return String(e??"").toUpperCase()}function O8(e,t,n=0){return(e||[]).slice(n,n+t)}function I8(e,t){return Array.isArray(e)?typeof t=="function"?e.filter(t):e:[]}function P8(e,t){if(!t)return e||[];let n=Array.isArray(t)?t:[t];return[...e||[]].sort((r,s)=>{for(let i of n){let a=i[0]==="-"?-1:1;i=i.replace(/^[+-]/,"");let u=i.split(".").reduce((w,h)=>w?.[h],r),f=i.split(".").reduce((w,h)=>w?.[h],s);if(typeof u=="string"&&(u=u.toLowerCase()),typeof f=="string"&&(f=f.toLowerCase()),u!==f)return(u==null?-1:f==null?1:ur[s])}function q8(e,t){return(t?.[e]??t?.[e===1?"one":"other"]??"").replace(/\{\}/g,e??0)}var ur={ERRORS:{cache_busy:"Downloads are busy. Please try again shortly.",invalid_sort:"The selected sort order is invalid.",invalid_cursor:"This project page is no longer valid. Reload the list.",repository_changed:"The repository changed while processing. Please retry.",repository_job_cancelled:"The repository changed or was removed while processing.",storage_delete_failed:"Unable to remove cached files. Please try again later.",unknown_error:"Unknown error, contact the admin.",unreachable:"Anonymous GitHub is unreachable, contact the admin.",request_error:"Unable to download the file, check your connection or contact the admin.",not_found:"The requested resource could not be found.",not_connected:"You must be logged in to perform this action.",not_authorized:"You do not have permission to perform this action.",unable_to_connect_user:"Unable to connect your account. Please try again later.",user_not_found:"The requested user could not be found.",user_banned:"Your account has been banned. Contact the admin for more information.",repo_access_limited:"GitHub blocked access because the repository's organization restricts third-party OAuth apps. Ask an org owner to approve Anonymous GitHub under Settings \u2192 Third-party Access \u2192 OAuth app policy, or anonymize a personal fork instead.",repo_saml_enforcement:"The repository's organization enforces SAML single sign-on. Authorize your token for that organization (GitHub \u2192 Settings \u2192 Applications, or re-run the org's SSO sign-in), then retry. Alternatively, anonymize a personal fork.",repo_not_found:"The repository was not found on GitHub. Check the URL and spelling, make sure you are signed in to the account that can see it, and confirm the repo isn't hidden under an org that restricts third-party app access.",repo_empty:"The selected branch has no commits on GitHub. Push at least one commit, or pick a different branch, then retry.",repo_not_accessible:"Anonymous GitHub cannot access this repository. Verify the repository exists and that Anonymous GitHub has been authorized for the owning organization.",repository_archived:"This repository has been archived and its files are no longer available.",repository_expired:"The repository is expired.",invalid_status:"This action cannot be performed while the resource is in its current state.",repository_not_ready:"Anonymous GitHub is still processing the repository, it can take several minutes.",repository_not_accessible:"This repository is currently not accessible.",repo_is_updating:"Anonymous GitHub is still processing the repository, it can take several minutes.",invalid_repo:"The provided repository is not valid.",invalid_source_repository:"The repository source name is invalid; expected the form 'owner/name'.",repoId_not_defined:"A repository ID must be provided.",repoUrl_not_defined:"The repository URL needs to be defined.",source_not_provided:"A repository source must be provided.",github_rate_limit_exceeded:"GitHub temporarily blocked the request because we hit its API rate limit. Wait a few minutes and try again. If the problem persists and you contact GitHub Support, include the request ID and timestamp shown in GitHub's response (the 'X-GitHub-Request-Id' header).",rate_limited:"GitHub API rate limit reached. The repository will be available shortly \u2014 please wait a moment and refresh.",repoId_already_used:"The repository ID is already used.",invalid_repoId:"The format of the repository ID is invalid.",unsupported_source:"The repository source type is not supported.",branch_not_specified:"The branch is not specified.",branch_not_found:"The branch of the repository cannot be found.",commit_not_specified:"A commit must be specified.",commit_not_found:"The configured commit no longer exists in the source repository. It may have been force-pushed, rebased, or removed.",repo_renamed:"The source repository appears to have been renamed or moved on GitHub. Please refresh and try again \u2014 the cached name has been updated.",invalid_commit_format:"The commit hash format is invalid. It must be a hexadecimal string.",pull_request_not_found:"The requested pull request could not be found.",pull_request_expired:"This pull request has expired and is no longer available.",pull_request_not_ready:"This pull request is still being prepared. Please try again shortly.",pull_request_not_available:"This pull request is currently not available.",invalid_pullRequestId:"The pull request ID is invalid.",pullRequestId_already_used:"This pull request ID is already in use. Please choose a different one.",repository_not_specified:"A repository must be specified for this pull request.",pullRequestId_not_specified:"A pull request ID must be specified.",pullRequestId_is_not_a_number:"The source pull request ID must be a number.",options_not_provided:"Anonymization options are mandatory.",terms_not_specified:"Anonymization terms must be specified.",invalid_terms_format:"Terms are in an invalid format.",missing_content:"No content was provided to the anonymization preview.",unable_to_anonymize:"An error happened during the anonymization process. Please try later or report the issue.",non_supported_mode:"The selected anonymization mode is invalid, only download and stream are supported.",invalid_path:"The provided path is invalid or missing.",path_not_specified:"A file path must be specified.",path_not_defined:"The file path has not been resolved yet.",invalid_file_path:"The requested file path is not valid.",invalid_request:"The request is missing required fields or is malformed.",invalid_project_name:"Use a project name of up to 100 characters without line breaks or control characters.",no_file_selected:"Please select a file.",file_not_found:"The requested file is not found.",file_not_accessible:"The requested file is not accessible.",file_not_supported:"The file type is not supported. Anonymous GitHub cannot handle it.",file_too_big:"The file size exceeds the limit of Anonymous GitHub.",is_folder:"The path points to a folder.",folder_not_supported:"The path points to a folder. Please select a file.",unable_to_write_file:"Unable to write file on disk.",download_not_enabled:"Repository downloads are not enabled on this server.",unable_to_download:"The repository could not be downloaded. Please try again later.",s3_config_not_provided:"Object storage has not been configured on this server.",stats_unsupported:"Statistics are only supported in download mode.",branches_not_found:"The requested branch is not found.",readme_not_available:"No README for the repository is found.",page_not_supported_on_different_branch:"GitHub Pages is served from a different branch than the one selected. Pick the branch that GitHub Pages is configured to use.",page_not_activated:"GitHub Pages is not enabled on this repository. Enable it in the repository settings on GitHub before anonymizing.",is_removed:"This resource has been removed and is no longer available.",conf_name_missing:"A conference name is required.",conf_id_missing:"A conference ID is required.",conf_id_used:"This conference ID is already in use. Please choose a different one.",conf_start_date_missing:"A start date is required for the conference.",conf_end_date_missing:"An end date is required for the conference.",conf_start_date_invalid:"The start date must be before the end date.",conf_end_date_invalid:"The end date must be in the future.",invalid_plan:"The selected plan is not valid.",conference_not_found:"The requested conference could not be found.",conf_not_found:"The requested conference could not be found.",conf_not_activated:"The conference is not activated.",billing_missing:"Billing information is required for this plan.",billing_name_missing:"A billing name is required.",billing_email_missing:"A billing email is required.",billing_address_missing:"A billing address is required.",billing_city_missing:"A billing city is required.",billing_zip_missing:"A billing ZIP/postal code is required.",billing_country_missing:"A billing country is required.",queue_not_found:"The specified queue could not be found.",job_not_found:"The specified job could not be found in the queue.",error_retrying_job:"An error occurred while retrying the job.",gist_expired:"The gist is expired.",gist_not_ready:"Anonymous GitHub is still processing the gist, it can take several minutes.",gist_not_found:"The requested gist could not be found.",gist_not_available:"This gist is currently not available.",invalid_gistId:"The format of the gist ID is invalid.",gistId_not_specified:"A gist ID must be provided.",gistId_already_used:"The gist ID is already used.",missing_token:"An authentication token is required.",invalid_token:"The provided authentication token is invalid.",login_failed:"Login failed. Please try again.",server_error:"An unexpected server error occurred. Please try again later.",username_not_defined:"A username must be provided.",github_user_not_found:"The specified GitHub user could not be found.",cannot_coauthor_self:"You cannot add yourself as a co-author.",storage_write_size_mismatch:"The downloaded file was smaller than expected. The upstream source may have returned an incomplete response \u2014 please try again.",storage_read_error:"An error occurred while reading the file from storage \u2014 please try again.",upstream_error:"A temporary error occurred while fetching from GitHub \u2014 please try again.",token_expired:"Your GitHub access token has expired. Please log out and log in again to refresh it.",job_is_active:"This job is currently running \u2014 wait for it to finish or remove it first.",github_app_access_required:"Allow this repository on GitHub using the read-only access button, then retry. Organization access may require administrator approval.",github_app_reconnect_required:"Reconnect your GitHub App account to restore read-only access.",github_app_disabled:"New GitHub App connections are currently unavailable.",github_oauth_required:"Connect legacy GitHub OAuth to use this feature.",github_identity_mismatch:"Use the same GitHub account that you are signed in with here.",github_app_permissions_invalid:"The GitHub App must be configured with read-only permissions.",github_unavailable:"GitHub is temporarily unavailable. Please retry.",connection_changed:"The repository connection changed. Reload and try again.",repository_busy:"Wait for the repository operation to finish before changing its connection.",invalid_connection:"Select a supported GitHub connection.",github_oauth_disabled:"Legacy OAuth sign-in is currently disabled.",invalid_auth_state:"The authorization session expired. Please start again from Anonymous GitHub.",invalid_webhook_signature:"The webhook signature is invalid.",webhook_processing_failed:"Webhook processing failed. Retry the delivery.",github_app_authorization_cancelled:"GitHub authorization was cancelled.",github_account_link_required:"Verify your existing account with your previous GitHub connection. Future sign-ins will use the GitHub App.",github_app_refresh_busy:"GitHub credentials are being renewed. Please retry shortly.",github_grant_revocation_failed:"Unable to revoke the GitHub grant. Please retry.",another_login_required:"Connect and verify another sign-in method before disconnecting OAuth.",oauth_resources_remaining:"Some resources still require OAuth. Migrate or remove them before disconnecting.",invalid_github_path:"The GitHub repository path is invalid."},WARNINGS:{page_not_enabled_on_repo:"GitHub Pages is not enabled on this repository. Enable it in the repository's Settings \u2192 Pages on GitHub, then refresh.",page_branch_mismatch:"GitHub Pages on this repository is served from the '{{pageBranch}}' branch, but you selected '{{selectedBranch}}'. Switch the branch above to '{{pageBranch}}' to anonymize the Pages site.",folder_truncated:"This folder has more than 10,000 entries; only a partial listing is shown.",repo_truncated:"Some folders in this repository have too many files to be fully listed. Affected folders are marked with a warning icon.",submodules_not_included:"This repository uses git submodules. Submodule contents are not included in the anonymized repository and appear as empty folders."}};var Zl={name:"htmlDoc",props:["content","baseUrl","allowScripts"],setup(e){let t=et(null);return $t(()=>{let r=[t.value][0];r.classList.add("html-doc");function s(){r.innerHTML="";let i=e.content;if(typeof i!="string")return;let a=document.createElement("iframe");a.className="html-doc-frame",a.setAttribute("title","Rendered HTML document");let u=["allow-popups","allow-popups-to-escape-sandbox"];e.allowScripts&&u.push("allow-scripts","allow-forms","allow-modals"),a.setAttribute("sandbox",u.join(" ")),a.setAttribute("referrerpolicy","no-referrer"),r.appendChild(a);let f="";e.baseUrl&&(f=' '),a.srcdoc=f+i}Be(()=>e.content,s,{immediate:!0}),Be(()=>e.baseUrl,s,{immediate:!0}),Be(()=>e.allowScripts,s,{immediate:!0})}),()=>ke("html-doc",{ref:t})}};var xl={name:"pdfviewer",props:["src"],setup(e){let t=et(null);return $t(()=>{let n=[t.value],r=400,s=[.5,.75,1,1.25,1.5,2,3],i=1e3,a=n[0];a.classList.add("pdf-viewer");let u=null,f=[],w=!1,h=null,k=1,m=1,E=0,y=0,g=612/792,_=0,R=null,T=new Map,P=0;function F(L){let v=T.get(L);v&&(v.cancelled=!0,v.task?.cancel?.(),T.delete(L));let N=L.querySelector("canvas");N&&(N.width=0,N.height=0),L.innerHTML="",delete L.dataset.state}let V=document.createElement("div");V.className="pdf-toolbar";let M=document.createElement("div");M.className="pdf-pages",M.tabIndex=0,M.setAttribute("aria-label","PDF pages"),a.appendChild(V),a.appendChild(M);function se(L,v,N){let q=document.createElement("button");return q.type="button",q.className="pdf-toolbar-btn",q.title=v,q.setAttribute("aria-label",v),q.innerHTML=' ',q.addEventListener("click",N),q}let oe=se("fa-chevron-up","Previous page",function(){_e(m-1)}),S=se("fa-chevron-down","Next page",function(){_e(m+1)}),O=document.createElement("input");O.type="text",O.className="pdf-toolbar-page",O.setAttribute("aria-label","Page number"),O.title="Page number \u2014 type a page and press Enter",O.addEventListener("keydown",function(L){L.key==="Enter"&&(_e(parseInt(O.value,10)),O.blur())}),O.addEventListener("blur",function(){O.value=String(m)});let Y=document.createElement("span");Y.className="pdf-toolbar-count";let Z=se("fa-search-minus","Zoom out",function(){C(s[Math.max(0,fe()-1)])}),te=se("fa-search-plus","Zoom in",function(){C(s[Math.min(s.length-1,fe()+1)])}),J=document.createElement("button");J.type="button",J.className="pdf-toolbar-btn pdf-toolbar-zoom",J.title="Reset zoom to fit the width",J.setAttribute("aria-label","Reset zoom to fit the width"),J.addEventListener("click",function(){C(1)}),V.appendChild(oe),V.appendChild(S);let re=document.createElement("span");re.className="pdf-toolbar-group",re.appendChild(O),re.appendChild(Y),V.appendChild(re);let ce=document.createElement("span");ce.className="pdf-toolbar-group pdf-toolbar-right",ce.appendChild(Z),ce.appendChild(J),ce.appendChild(te),V.appendChild(ce);function fe(){let L=0;for(let v=0;v=L,J.textContent=Math.round(k*100)+"%",Z.disabled=fe()===0,te.disabled=fe()===s.length-1}function Oe(L){let v=f[L-1];v&&(M.scrollTop+=v.getBoundingClientRect().top-M.getBoundingClientRect().top)}function _e(L){if(!u||isNaN(L))return;let v=Math.min(Math.max(1,L),u.numPages);f[v-1]&&(Oe(v),m=v,E=v,y=Date.now()+800,le(),Ee())}function Ue(){if(!f.length||Date.now(){}),R=null),h&&(clearTimeout(h),h=null),u&&(u.destroy(),u=null),f=[],m=1,M.innerHTML="",le()}function Me(){M.innerHTML="";let L=document.createElement("div");L.className="pdf-viewer-error",L.textContent="This PDF could not be displayed.",M.appendChild(L)}function Pe(){let L=Math.max(120,M.clientWidth-24);return Math.round(Math.min(L,i)*k)}function He(L,v,N){let q=window.devicePixelRatio||1,H=L.getViewport({scale:1}),j=parseFloat(v.style.width);if(!j)return;let U=L.getViewport({scale:j/H.width*q}),G=document.createElement("canvas");return G.width=Math.floor(U.width),G.height=Math.floor(U.height),G.style.width=j+"px",G.style.height=Math.floor(U.height/q)+"px",v.innerHTML="",v.appendChild(G),v.style.height=G.style.height,N.task=L.render({canvasContext:G.getContext("2d"),viewport:U}),N.task.promise}function Ee(){if(!u)return;let L=_,v=M.getBoundingClientRect(),N=v.top-r,q=v.top+M.clientHeight+r,H=f.map((U,G)=>({slot:U,i:G,rect:U.getBoundingClientRect()})).filter(U=>U.rect.top<=q&&U.rect.bottom>=N).sort((U,G)=>Math.abs(U.rect.top-v.top)-Math.abs(G.rect.top-v.top)).slice(0,6),j=new Set(H.map(U=>U.slot));for(let U of T.keys())j.has(U)||F(U);for(let{slot:U,i:G}of H){if(U.dataset.state||P>=2)continue;let ee={cancelled:!1,task:null};T.set(U,ee),P++,U.dataset.state="rendering";let x;u.getPage(G+1).then(W=>{if(x=W,!(ee.cancelled||L!==_))return He(x,U,ee)}).then(()=>{ee.cancelled||L!==_||(U.dataset.state="done",E&&Date.now(){!ee.cancelled&&L===_&&(U.dataset.state="failed")}).finally(()=>{P--,x?.cleanup?.(),u&&Ee()})}}function z(){w||(w=!0,window.requestAnimationFrame(function(){w=!1,Ue(),Ee()}))}function ne(){let L=!1;function v(){L||(L=!0,Ee())}window.requestAnimationFrame(v),window.setTimeout(v,50)}function Q(){_++,f.forEach(F);let L=Pe();f.forEach(function(v){delete v.dataset.state,v.innerHTML="",v.style.width=L+"px",v.style.height=Math.round(L/g)+"px"}),Ee()}function C(L){if(!u||!f.length||L===k)return;let v=m;k=L,le(),Q(),_e(v)}function I(){u&&(h&&clearTimeout(h),h=setTimeout(function(){h=null,u&&f.length&&Q()},250))}function B(L){if(Re(),!L)return;let v=_;R=pdfjsLib.getDocument({url:L,isEvalSupported:!1,standardFontDataUrl:"/script/external/pdf-standard-fonts/",cMapUrl:"/script/external/pdf-cmaps/",cMapPacked:!0}),R.promise.then(function(N){if(v!==_){N.destroy();return}return u=N,u.getPage(1).then(function(q){if(v!==_)return;let H=q.getViewport({scale:1});H.width&&H.height&&(g=H.width/H.height);let j=Pe();for(let U=1;U<=u.numPages;U++){let G=document.createElement("div");G.className="pdf-viewer-page",G.style.width=j+"px",G.style.height=Math.round(j/g)+"px",M.appendChild(G),f.push(G)}le(),ne()})}).catch(function(){v===_&&Me()})}M.addEventListener("scroll",z,{passive:!0}),$(window).on("resize",I),le(),Be(()=>e.src,B,{immediate:!0}),co(function(){M.removeEventListener("scroll",z),$(window).off("resize",I),Re()})}),()=>ke("pdfviewer",{ref:t})}};var $8={key:0,class:"quota-row quota-usage"},L8={class:"quota-header"},U8={class:"quota-label"},F8={class:"project-type-svg","aria-hidden":"true"},z8=["href"],H8={key:0,class:"quota-percent"},B8={key:1,class:"quota-unlimited-tag"},j8={class:"quota-value"},G8={key:0},W8=["aria-label","aria-valuenow","aria-valuemax","aria-valuetext"],K8={key:1,class:"quota-remaining"},Y8={key:2,class:"quota-remaining quota-limit"};function ed(e,t){return e.quota?(l(),d("div",$8,[(l(),d(X,null,ae([{key:"repository",label:"Repositories",kind:"count",icon:"project-type-repo"},{key:"storage",label:"Storage",kind:"bytes",icon:"project-icon-storage"},{key:"file",label:"Files",kind:"count",icon:"project-icon-file"}],n=>o("div",{class:A(["quota-item","quota-"+e.quota[n.key].level]),key:n.key},[o("div",L8,[o("span",U8,[(l(),d("svg",F8,[o("use",{href:"#"+n.icon},null,8,z8)])),b(c(n.label),1)]),e.quota[n.key].unlimited?p("v-if",!0):(l(),d("span",H8,c(e.fmt.number(e.quota[n.key].percent,0))+"% used",1)),e.quota[n.key].unlimited?(l(),d("span",B8,"Unlimited")):p("v-if",!0)]),o("div",j8,[o("strong",null,c(e.formatAmount(e.quota[n.key].used,n.kind)),1),e.quota[n.key].unlimited?p("v-if",!0):(l(),d("span",G8," / "+c(e.formatAmount(e.quota[n.key].total,n.kind)),1))]),e.quota[n.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:A(["quota-track","quota-"+e.quota[n.key].level]),role:"progressbar","aria-valuemin":"0","aria-label":n.label+" quota","aria-valuenow":Math.min(e.quota[n.key].used,e.quota[n.key].total),"aria-valuemax":e.quota[n.key].total,"aria-valuetext":e.fmt.number(e.quota[n.key].percent,0)+"% used"},[e.quota[n?.key].unlimited?p("v-if",!0):(l(),d("div",{key:0,class:"quota-fill",style:qe({width:e.quota[n.key].percent+"%"})},null,4))],10,W8)),!e.quota[n.key].unlimited&&e.quota[n.key].used=e.quota[n.key].total?(l(),d("p",Y8,c(e.quota[n.key].used>e.quota[n.key].total?"Limit exceeded":"Limit reached"),1)):p("v-if",!0)],2)),64))])):p("v-if",!0)}var J8={props:["quota","fmt"],setup(e){return{formatAmount:(t,n)=>n==="bytes"?e.fmt.humanFileSize(t).replace(/([a-zA-Z]+)$/," $1"):e.fmt.number(t)}},render:ed},Q8=new Set(he),od={props:["content","terms","options"],setup(e){let t=et(null),n=()=>{t.value.innerHTML=renderMD(e.content||"",window.location.pathname+"/../")};return $t(()=>{n(),Be(()=>[e.content,e.terms,e.options],n,{deep:!0})}),()=>ke("markdown",{ref:t})}},X8={props:["file","terms","options"],setup(e){let t=et(null),n=()=>nt(()=>t.value?.querySelectorAll("pre code").forEach(r=>window.Prism?.highlightElement(r)));return $t(n),Be(()=>[e.file?.content,e.terms,e.options],n,{deep:!0}),()=>{let r=e.file||{},s=(r.filename||"").split(".").pop().toLowerCase();if(["md","markdown"].includes(s)||r.language==="Markdown")return ke("gist-file",{ref:t},ke(od,{content:r.content,terms:e.terms,options:e.options}));let i={js:"javascript",jsx:"javascript",ts:"javascript",typescript:"javascript",py:"python",html:"markup",xml:"markup",svg:"markup",sh:"bash"},a=(r.language||s||"none").toLowerCase();return ke("gist-file",{ref:t},ke("pre",{class:"line-numbers"},ke("code",{class:"language-"+(i[a]||a),key:r.content},r.content||"")))}}},Z8={props:["file","content"],setup(e){let t=et(null),n=0,r,s=async()=>{let i=++n;r?.abort(),r=new AbortController;try{let a=e.content?JSON.parse(e.content):await fetch(e.file?.download_url||e.file,{signal:r.signal}).then(u=>{if(!u.ok)throw Error("Notebook request failed");return u.json()});if(await oo("notebook"),i!==n)return;t.value.innerHTML=DOMPurify.sanitize(nb.parse(a).render()),t.value.querySelectorAll("pre code").forEach(u=>window.Prism?.highlightElement(u))}catch(a){i===n&&a.name!=="AbortError"&&(t.value.textContent="Unable to render the notebook.")}};return $t(()=>{s(),Be(()=>[e.file,e.content],s)}),co(()=>{n++,r?.abort()}),()=>ke("notebook",{ref:t})}},x8={props:["stats"],setup(e){return()=>{let t=Object.entries(e.stats||{}).filter(([,r])=>r.code),n=t.reduce((r,[,s])=>r+s.code,0);return ke("loc",t.map(([r,s])=>ke("div",{class:"lang",title:`${r}: ${s.code.toLocaleString()} lines`,style:{width:s.code*100/n+"%",background:langColors[r]}})))}}},nd={Markdown:od,GistFile:X8,Notebook:Z8,Loc:x8,HtmlDoc:Zl,QuotaUsage:J8,Pdfviewer:vi(async()=>(await oo("pdf"),pdfjsLib.GlobalWorkerOptions.workerSrc="/script/external/pdf.worker.js",xl))},sd={async mounted(e,{value:t}){e._editorValue=t;try{if(await yr(),e._editorDisposed)return;let n=e._editorValue,r=ace.edit(e);e._editor=r,r.setValue(String(n.content??""),-1),td(e,n.options),e._editorCleanup=n.options?.onLoad?.(r)}catch(n){e._editorDisposed||(e.textContent=n.message)}},updated(e,{value:t}){e._editorValue=t,e._editor&&(e._editor.getValue()!==String(t.content??"")&&e._editor.setValue(String(t.content??""),-1),td(e,t.options))},beforeUnmount(e){e._editorDisposed=!0,e._editorCleanup?.(),e._editor?.destroy()}};function td(e,t={}){let n=Q8.has(t.mode)?t.mode:"text";e._editor.session.setMode("ace/mode/"+n),t.theme&&e._editor.setTheme("ace/theme/"+t.theme),e._editor.setReadOnly(t.readOnly!==!1)}var rd={mounted(e){if(!window.IntersectionObserver)return;let t=[...e.querySelectorAll('a[href^="#"]')],n=new Set,r=new IntersectionObserver(s=>{s.forEach(a=>a.isIntersecting?n.add(a.target.id):n.delete(a.target.id));let i=t.find(a=>n.has(a.hash.slice(1)));t.forEach(a=>a.classList.toggle("active",a===i))},{rootMargin:"-20% 0px -60% 0px",threshold:0});nt(()=>t.forEach(s=>{let i=document.getElementById(s.hash.slice(1));i&&r.observe(i)})),e._observer=r},beforeUnmount(e){e._observer?.disconnect()}};function e6(e){let t={children:[]},n=new Map([["",t]]);function r(s){if(n.has(s))return n.get(s);let i=s.lastIndexOf("/"),a=r(i<0?"":s.slice(0,i)),u={name:s.slice(i+1),children:[]};return n.set(s,u),a.children.push(u),u}for(let s of e||[]){let i=s.path?`${s.path}/${s.name}`:s.name;s.size==null?r(i):r(s.path||"").children.push({...s})}return t.children}var id={name:"FileTree",props:["file","parent","searchQuery","searchResults","page"],setup(e){let t=Ga(),n=et(null),r=ze(Object.create(null)),s=null,i=ot(()=>e6(e.file)),a=()=>"/"+(Array.isArray(t.params.path)?t.params.path.join("/"):t.params.path||"");Be(()=>[t.params.repoId,t.params.path],()=>{let m="";a().split("/").filter(Boolean).forEach(E=>{m+="/"+E,r[m]=!0})},{immediate:!0});let u=ot(()=>{if(!e.searchQuery||!e.searchResults)return null;let m=new Set,E=new Set;return e.searchResults.forEach(y=>{m.add(y.path?`${y.path}/${y.name}`:y.name);let g="";(y.path||"").split("/").filter(Boolean).forEach(_=>{g=g?g+"/"+_:_,E.add(g)})}),{files:m,folders:E}}),f=()=>[...n.value.querySelectorAll("li > a")],w=m=>{n.value.querySelector(".tree-focused")?.classList.remove("tree-focused"),m&&(s=m.dataset.path,m.classList.add("tree-focused"),m.scrollIntoView?.({block:"nearest"}),n.value.focus())};function h(m){let E=f(),y=n.value.querySelector(".tree-focused")||E[0],g=E.indexOf(y);if(!["ArrowDown","ArrowUp","ArrowRight","ArrowLeft","Enter"].includes(m.key)||(m.preventDefault(),m.key==="ArrowDown"&&w(E[(g+1)%E.length]),m.key==="ArrowUp"&&w(E[(g-1+E.length)%E.length]),!y))return;let _=y.closest("li");m.key==="ArrowRight"&&_.classList.contains("folder")&&(_.classList.contains("open")?w(_.querySelector(":scope > ul > li > a")):y.click()),m.key==="ArrowLeft"&&(_.classList.contains("folder")&&_.classList.contains("open")?y.click():w(_.parentElement.closest("li.folder")?.querySelector(":scope > a"))),m.key==="Enter"&&y.click()}function k(m,E=""){let y=[...m].sort((g,_)=>+!!_.children-+!!g.children||g.name.localeCompare(_.name));return ke("ul",y.flatMap(g=>{let _=g,R=_.name,T=(E+"/"+R).slice(1);if(u.value&&!u.value.files.has(T)&&!u.value.folders.has(T))return[];for(;_.children?.length===1;)_=_.children[0],R+="/"+_.name;let P=E+"/"+R,F=!!_.children,V=u.value?r[P]!==!1:!!r[P],M=F&&e.page?.options?.truncatedFolders?.includes(P.slice(1)),se=e.page?.fileCounts?.[P.slice(1)]||0,oe=ke("span",{class:F?"tree-icon-folder":"far fa-file tree-icon-file","aria-hidden":"true"},F?ke("svg",{viewBox:"0 0 14 12",focusable:"false"},ke("path",{d:"M1.5 10.5v-9h4l1.5 2h5.5v7z"})):null),S=ke("span",{class:"tree-name"},R),O=Z=>{w(Z.currentTarget),F&&(Z.preventDefault(),r[P]=!V,r[P]&&!_.children.length&&e.page.getFiles(P.slice(1)),nt(()=>w(f().find(te=>te.dataset.path===s))))},Y=ke("a",{"data-path":P,href:F?void 0:`/r/${encodeURIComponent(t.params.repoId)}${encodePathForUrl(P)}`,class:{"tree-focused":s===P},onClick:O},[F?ke("span",{class:"tree-toggle"}):E?ke("span",{class:"tree-spacer"}):null,oe,S,M?ke("span",{class:"truncated-warning",title:e.page.fmt.translate("WARNINGS.folder_truncated")},ke("i",{class:"fas fa-exclamation-triangle"})):null,F&&se?ke("span",{class:"tree-count"},se):null]);return ke("li",{key:P,class:{file:!0,folder:F,open:V,active:a()===P,truncated:M},title:F?"":`Size: ${humanFileSize(_.size||0)}`},[Y,F&&V?k(_.children,P):null])}))}return()=>ke("tree",{ref:n,tabindex:0,onKeydown:h},e.file?.length?u.value?.files.size===0?ke("div",{class:"tree-search-empty"},"No files found"):k(i.value):"Empty repository")}};function ld(){return ze({errors:{},dirty:!1,touched:!1,submitted:!1,get invalid(){return Object.values(this.errors).some(Boolean)},setValidity(e,t){this.errors[e]=!t},setDirty(){this.dirty=!0}})}function dd(e,t){if(!e[t]){let n=ld();Object.defineProperty(n,"invalid",{get(){return Object.values(n.errors).some(Boolean)||Object.keys(n).some(r=>r!=="invalid"&&n[r]&&typeof n[r]=="object"&&n[r].invalid)}}),e[t]=n}return e[t]}var ud={beforeMount(e,{value:t}){e._formState=dd(t,e.name),e.addEventListener("submit",n=>n.preventDefault())}};function t6(e){return e instanceof Date?isNaN(e)?"":`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")}`:e||""}function ad(e){let t=e._field.binding.value;e.type==="checkbox"?e.checked=!!t:e.type==="radio"?e.checked=t==(e._value??e.value):e._field.timer||(e.value=e.type==="date"?t6(t):t??""),cr(e)}function cr(e){let t=e._field.validation;if(!t)return;let n=e.validity;for(let[r,s]of Object.entries({required:n.valueMissing,pattern:n.patternMismatch,min:n.rangeUnderflow,max:n.rangeOverflow,date:n.badInput,email:n.typeMismatch&&e.type==="email",url:n.typeMismatch&&e.type==="url"}))t.setValidity(r,e.disabled||!s)}var cd={beforeMount(e,{value:t}){var a;let n=t.form&&dd(t.state,t.form),r=n&&e.name?n[a=e.name]||(n[a]=ld()):null;e._field={binding:t,validation:r,timer:null};let s=()=>{clearTimeout(e._field.timer),e._field.timer=null;let u=e._field.binding,f=e.type==="checkbox"?e.checked:e._value??e.value;if(!(e.type==="radio"&&!e.checked)){if((e.type==="number"||e.type==="range")&&(f=e.value===""?null:Number(e.value)),e.type==="date"&&(f=e.value?new Date(e.value+"T00:00:00"):null),r){r.setDirty();for(let w of Object.keys(r.errors))r.setValidity(w,!0)}u.set(f),cr(e),u.change?.()}};e._field.commit=s;let i=u=>{let f=e._field.binding.options?.debounce||0,w=typeof f=="number"?f:f[u.type]??f.default??0;clearTimeout(e._field.timer),w?e._field.timer=setTimeout(s,w):s()};e.addEventListener(e.tagName==="SELECT"||["checkbox","radio","date"].includes(e.type)?"change":"input",i),e.addEventListener("blur",()=>{r&&(r.touched=!0),e._field.timer&&s()})},mounted:ad,updated(e,{value:t}){e._field.binding=t,ad(e)},beforeUnmount(e){clearTimeout(e._field.timer);let{binding:t,validation:n}=e._field,r=t.form&&t.state[t.form];r&&r[e.name]===n&&delete r[e.name]}};function pd(e,t){let n=e.target.closest("form");if(n?._formState&&(n._formState.submitted=!0),n?.querySelectorAll("input, select, textarea").forEach(r=>{r._field?.timer&&r._field.commit(),r._field&&cr(r)}),n&&!n.checkValidity()){let r=n.querySelector(":invalid");r?.scrollIntoView?.({block:"center"}),r?.focus(),n.reportValidity();return}return t()}var fd=Symbol("session"),o6=/^\/(w|api|github)(\/|$)/;function md(e,t={}){let n=e?.split(".").reduce((r,s)=>r?.[s],ur);return n==null&&e?.startsWith("ERRORS.")&&(n=ur.ERRORS.unknown_error),String(n??e??"").replace(/{{\s*([^}]+?)\s*}}/g,(r,s)=>t[s]??"")}var n6={...dr,translate:md};function s6(e){if(e==null||e==="")return e;try{let t=new URL(e,window.location.href);return["http:","https:","mailto:","tel:","blob:"].includes(t.protocol)?e:void 0}catch{return}}function r6(e="#app",t={}){let n=!!document.querySelector('meta[name="review-consent-page"][content="1"]'),r=n&&window.location.pathname==="/review-link"?hr(window):null,s=()=>{let m=r;return r=null,m};!t.history&&window.location.pathname==="/"&&/^#!\/r\/[^/?#]+/.test(window.location.hash)&&window.history.replaceState(window.history.state,"",window.location.hash.slice(2));let i=new Map,a=Jl(t.fetch),u,f;function w(){let m=ct(),E={url(g){return g===void 0?f.currentRoute.value.fullPath:(f.push(g),E)},path(){return f.currentRoute.value.path},search(){return f.currentRoute.value.query}},y=new Proxy({},{get(g,_){let R=f.currentRoute.value.params[_];return Array.isArray(R)?R.join("/"):R}});return{takeReviewHandoff:s,http:a,...m,location:E,params:y,window,promises:Ql,html:{trustAsHtml:g=>g},translate:(g,_)=>Promise.resolve(md(g,_)),quotaService:Xl(a)}}function h(m){return{name:m.template,setup(){let E=rr(ut(fd),i);m.setup(E,w()),Yl(m.template,E);let y=[];return()=>as[m.template](E,y)}}}f=ja({history:t.history||za(),routes:yl.map(m=>m.redirect?m:{path:m.path,component:h(m),meta:{title:m.title,preserveExplorer:m.preserveExplorer}})});let k=la({setup(){u=rr(null,i),u.fmt=n6,u.window=window,u.Math=Math,u.sanitize=g=>DOMPurify.sanitize(g??""),u.highlightRedactions=g=>(u.site_options,Ja(g)),u.submitForm=pd,u.safeUrl=s6;let m=w();Xa(u,m.http,m.location,m.timeout),uo(fd,u),Be(()=>u.title,g=>{document.title=g||"Anonymous GitHub"});let E=[],y=g=>{let _=g.target.closest?.("a[href]");if(g.defaultPrevented||g.button!==0||g.metaKey||g.ctrlKey||g.shiftKey||g.altKey||!_||_.hasAttribute("download")||_.target&&_.target!=="_self"||_.dataset.toggle||_.getAttribute("href").startsWith("#"))return;let T=new URL(_.href,window.location.href);n||/^\/review-link\/?$/i.test(T.pathname)||T.origin!==window.location.origin||o6.test(T.pathname)||(g.preventDefault(),f.push(T.pathname+T.search+T.hash),$("#navbarSupportedContent.show").collapse("hide"))};return document.addEventListener("click",y),co(()=>document.removeEventListener("click",y)),()=>[Kl(u,[]),n?null:ke("header",{class:"app-header"},as["partials/header.htm"](u,E)),ke("main",{class:"app-view align-items-stretch w-100"},ke(sr,null,{default:({Component:g,route:_})=>g?ke(g,{key:_.meta.preserveExplorer?_.matched[0]?.path:_.path}):null})),ke("div",{class:"position-fixed p-3",style:{zIndex:999999999,right:0,bottom:0}},u.toasts.map((g,_)=>ke("div",{class:"toast show",role:"alert","aria-live":"assertive","aria-atomic":"true",key:_},[ke("div",{class:"toast-header"},[ke("strong",{class:"mr-auto"},g.title),ke("button",{type:"button",class:"ml-2 mb-1 close","aria-label":"Close",onClick:()=>u.removeToast(g)},"\xD7")]),ke("div",{class:"toast-body"},g.body)])))]}});for(let[m,E]of Object.entries(nd))k.component(m,E);return k.component("Tree",id),k.component("PartialView",{props:["name","state"],setup(m){let E=[];return()=>as[m.name](m.state,E)}}),k.directive("field",cd),k.directive("form",ud),k.directive("code-editor",sd),k.directive("paper-scrollspy",rd),k.use(f),f.beforeEach(async m=>{if(m.path==="/review-link"&&!n||n&&m.path!=="/review-link")return window.location.assign(m.fullPath),!1;u?.emit("routeLeave"),/^\/(r|repository|anonymize|pull-request-anonymize|gist-anonymize|pr|gist)(\/|$)/.test(m.path)&&await oo("markdown"),/^\/(r|repository)\//.test(m.path)&&await oo("org")}),f.afterEach(m=>{if(!u)return;u.title=m.meta.title,u.emit("routeChange",{title:m.meta.title}),u.emit("routeUpdate",{title:m.meta.title});let E=document.querySelector(".app-view");!m.meta.preserveExplorer&&E&&(E.scrollTop=0)}),k.mount(e),{app:k,router:f,state:u}}document.querySelector("#app")&&(window.anonymousApp=r6());})();
/*! Bundled license information:
@vue/shared/dist/shared.esm-bundler.js:
diff --git a/src/server/routes/github-app.ts b/src/server/routes/github-app.ts
index 347429c..f095026 100644
--- a/src/server/routes/github-app.ts
+++ b/src/server/routes/github-app.ts
@@ -265,7 +265,7 @@ router.post("/connections/migrate", async (req, res) => {
const result = isRepo ? await RepositoryModel.updateOne(filter, change) : await PullRequestModel.updateOne(filter, change);
if (!result.modifiedCount) throw appError("connection_changed", 409);
await resetOwnerAccessAlerts(user.id, { kind: isRepo ? "repository" : "pull-request", id: String(model._id) });
- res.json({ connection });
+ res.json({ connection, fullName: selected.fullName || name });
} catch (error) { handleError(error, res, req); }
});
diff --git a/test/app-reinstall-recovery.test.js b/test/app-reinstall-recovery.test.js
index 55392a9..77f99e4 100644
--- a/test/app-reinstall-recovery.test.js
+++ b/test/app-reinstall-recovery.test.js
@@ -50,7 +50,7 @@ for (const type of ["repository", "pull-request"]) {
expect(writes).to.have.length(0); expect(model.githubAccess.installationId).to.equal(100);
});
it("replaces only the binding while preserving the URL, source and snapshot", async function () {
- expect(await run()).to.deep.equal({ connection: "github-app" });
+ expect(await run()).to.deep.equal({ connection: "github-app", fullName: "owner/private" });
expect(writes).to.have.length(1);
expect(writes[0].update).to.deep.equal({ $set: { githubAccess: selected.binding } });
expect(writes[0].filter.githubAccess).to.deep.equal(model.githubAccess);
diff --git a/test/github-app.test.js b/test/github-app.test.js
index 635ecaa..d984da1 100644
--- a/test/github-app.test.js
+++ b/test/github-app.test.js
@@ -653,12 +653,54 @@ describeMongo("GitHub App credential and repository integration", function () {
const body = { type: "repository", id: resource.repoId, connection: "github-app" };
expect((await request("/github/connections/migrate", { ...body, preview: true })).status).to.equal(200);
expect((await CachedRepos.findById(cached.id)).name).to.equal("other/old-public");
- expect((await request("/github/connections/migrate", body)).status).to.equal(200);
+ const repaired = await request("/github/connections/migrate", body);
+ expect(repaired.status).to.equal(200);
+ expect(repaired.data.fullName).to.equal("other/public");
expect((await Repos.findById(resource.id)).githubAccess.publicRead).to.equal(true);
expect((await Repos.findById(resource.id)).source.repositoryName).to.equal("other/public");
expect((await CachedRepos.findById(cached.id)).name).to.equal("other/public");
});
+ for (const permission of ["granted", "missing", "replacement", "missing-commit"]) {
+ it(`repairs a public binding after the source becomes private (${permission})`, async () => {
+ const Repos = require("../src/core/model/anonymizedRepositories/anonymizedRepositories.model").default;
+ await app.saveAppGrant(owner.id, data());
+ const resource = await Repos.create({ repoId: "visibility-" + permission, owner: owner.id, status: "ready",
+ source: { type: "GitHubStream", repositoryName: "owner/repo", commit: "pinned", branch: "main" },
+ options: { terms: ["author"], update: false },
+ githubAccess: { kind: "github-app", repositoryId: 42, publicRead: true, revision: "original" } });
+ const before = resource.toObject();
+ mock(url => {
+ if (url.includes("/user/installations?")) return { installations: [{ id: 4, app_id: 123, account: { id: 10, login: "owner", type: "User" } }] };
+ if (url.includes("/user/installations/4/repositories")) return { repositories: permission === "missing" ? [] : [
+ { id: permission === "replacement" ? 99 : 42, full_name: "owner/repo", private: true, visibility: "private" },
+ ] };
+ if (url.endsWith("/repos/owner/repo") || url.endsWith("/repositories/42")) return { id: 42, full_name: "owner/repo", private: true, visibility: "private" };
+ if (url.endsWith("/app/installations/4")) return { app_id: 123, permissions: { contents: "read", metadata: "read" } };
+ if (url.endsWith("/access_tokens")) return { token: "ghs_private", expires_at: new Date(Date.now() + 3600000).toISOString() };
+ if (url.endsWith("/repos/owner/repo/commits/pinned")) return permission === "missing-commit" ? { status: 404 } : { sha: "pinned" };
+ throw new Error("Unexpected request " + url);
+ });
+ await rejects(app.boundAppToken(owner.id, resource.githubAccess, "owner/repo"), "github_app_access_required");
+ const result = await request("/github/connections/migrate", { type: "repository", id: resource.repoId, connection: "github-app" });
+ const after = await Repos.findById(resource.id);
+ expect(after.repoId).to.equal(before.repoId);
+ expect(after.toObject().source).to.deep.equal(before.source);
+ expect(after.toObject().options).to.deep.equal(before.options);
+ expect(after.status).to.equal("ready");
+ if (permission === "granted") {
+ expect(result.status).to.equal(200);
+ expect(after.githubAccess.publicRead).not.to.equal(true);
+ expect(after.githubAccess.installationId).to.equal(4);
+ expect(after.githubAccess.repositoryId).to.equal(42);
+ expect(await app.boundAppToken(owner.id, after.githubAccess, "owner/repo")).to.equal("ghs_private");
+ } else {
+ expect(result.status).to.equal(403);
+ expect(after.toObject().githubAccess).to.deep.equal(before.githubAccess);
+ }
+ });
+ }
+
it("recovers a renamed private pull request through its stable repository ID", async () => {
const PRs = require("../src/core/model/anonymizedPullRequests/anonymizedPullRequests.model").default;
await app.saveAppGrant(owner.id, data());
diff --git a/test/vue-ui.test.js b/test/vue-ui.test.js
index 93ef44c..cee6f46 100644
--- a/test/vue-ui.test.js
+++ b/test/vue-ui.test.js
@@ -903,6 +903,73 @@ describe("Vue 3 UI", function () {
});
}
+ for (const scenario of ["success", "failure", "renamed"]) {
+ it(`repairs App access without replacing the source or snapshot (${scenario})`, async function () {
+ const failed = scenario === "failure";
+ const fullName = scenario === "renamed" ? "owner/renamed" : "owner/repo";
+ let repaired = false;
+ const available = value => () => repaired ? value : { __status: 403, body: { error: "github_app_access_required" } };
+ ui = await browser("/anonymize/test", {
+ "/api/user": { username: "owner" },
+ "/github/connections": { csrf: "repair-csrf", appEnabled: true, appConnected: true },
+ "/api/repo/test": { connection: "github-app", role: "owner",
+ source: { fullName: "owner/repo", repositoryID: "saved-record", branch: "main", commit: "saved-sha" },
+ options: { terms: ["author"], update: false, expirationMode: "never" } },
+ "/api/repo/owner/repo/": available({ id: "saved-record", repo: "repo", defaultBranch: "main" }),
+ "/api/repo/owner/repo/branches": available([{ name: "main", commit: "new-sha" }]),
+ "/api/repo/owner/repo/readme": available("readme"),
+ "/github/connections/migrate": async request => {
+ expect(request.headers["X-CSRF-Token"]).to.equal("repair-csrf");
+ expect(request.payload).to.deep.equal({ type: "repository", id: "test", connection: "github-app" });
+ await delay(20);
+ if (failed) return { __status: 403, body: { error: "github_app_access_required" } };
+ repaired = true;
+ return { connection: "github-app", fullName };
+ },
+ "/api/repo/owner/renamed/": { id: "saved-record", repo: "renamed", defaultBranch: "main" },
+ "/api/repo/owner/renamed/branches": [{ name: "main", commit: "new-sha" }],
+ "/api/repo/owner/renamed/readme": "readme",
+ });
+ await delay(60);
+ const button = [...ui.window.document.querySelectorAll("button")].find(b => b.textContent === "Repair GitHub access");
+ expect(button).not.to.equal(undefined);
+ for (let node = button; node; node = node.parentElement) expect(ui.window.getComputedStyle(node).display).not.to.equal("none");
+ button.click(); button.click();
+ await delay(100);
+ expect(ui.requests.filter(r => r.method === "POST")).to.have.length(1);
+ expect(ui.window.document.querySelector("#commit").value).to.equal("saved-sha");
+ expect(ui.requests.some(r => r.url.searchParams.get("reconnect") === "1")).to.equal(false);
+ expect(ui.window.document.body.textContent).to.include(failed ? "Unable to repair GitHub access" : "GitHub access repaired");
+ if (scenario === "renamed") {
+ expect(ui.window.document.querySelector("#sourceUrl").value).to.equal("https://github.com/owner/renamed");
+ const branches = ui.requests.find(r => r.url.pathname === "/api/repo/owner/renamed/branches");
+ expect(branches.url.searchParams.get("anonymizedRepoId")).to.equal("test");
+ expect(ui.window.document.querySelector("#branch").value).to.equal("main");
+ }
+ });
+ }
+
+ it("hides App repair controls when migrations are disabled", async function () {
+ ui = await browser("/anonymize/test", {
+ "/github/connections": { appEnabled: false, appConnected: true },
+ "/api/repo/test": { connection: "github-app", role: "owner",
+ source: { fullName: "owner/repo", branch: "main", commit: "saved-sha" }, options: { terms: [], update: false } },
+ });
+ expect([...ui.window.document.querySelectorAll("button")].some(b => b.textContent === "Repair GitHub access" || b.textContent === "Manage access")).to.equal(false);
+ });
+
+ for (const status of ["removed", "archived", "preparing", "queue", "download", "removing", "expiring", "ready", "error", "expired"]) {
+ it(`gates App access repair for repository status ${status}`, async function () {
+ ui = await browser("/anonymize/test", {
+ "/github/connections": { appEnabled: true, appConnected: true },
+ "/api/repo/test": { status, connection: "github-app", role: "owner",
+ source: { fullName: "owner/repo", branch: "main", commit: "saved-sha" }, options: { terms: [], update: false } },
+ });
+ const shown = [...ui.window.document.querySelectorAll("button")].some(b => b.textContent === "Repair GitHub access");
+ expect(shown).to.equal(["ready", "error", "expired"].includes(status));
+ });
+ }
+
it("reconnects a recreated source without saving until the owner submits", async function () {
const oldCommit = "deadbeef";
const newCommit = "1a212f1deb74b123804ec90d098c0f843c30da5b";