diff --git a/public/asset-manifest.json b/public/asset-manifest.json index e0c5a5e..33274a4 100644 --- a/public/asset-manifest.json +++ b/public/asset-manifest.json @@ -1,8 +1,8 @@ { "core.min.js": "core.d23af1c652.min.js", - "vendor.min.js": "vendor.f7ae54550a.min.js", + "vendor.min.js": "vendor.023a865c47.min.js", "mermaid.min.js": "mermaid.a7356d5ed1.min.js", - "all.min.css": "all.f1b027597b.min.css", + "all.min.css": "all.d641dcb5c8.min.css", "markdown.min.js": "markdown.6c8dfb7b1d.min.js", "pdf.min.js": "pdf.4d9cc6ff49.min.js", "notebook.min.js": "notebook.c3144c18ae.min.js", diff --git a/public/css/all.min.css b/public/css/all.min.css index 89c6142..2a692cc 100644 --- a/public/css/all.min.css +++ b/public/css/all.min.css @@ -10,4 +10,4 @@ @container explorer-file (max-width: 700px) { .reviewer-preview .file-card-head .file-card-meta, .reviewer-preview .file-card-head .symbols { display: none !important; } } -.reviewer-preview .rp-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.reviewer-preview .rp-document{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;scrollbar-width:thin;position:relative}.reviewer-preview button.rp-count{background:0 0;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.reviewer-preview button.rp-count:hover{text-decoration-color:currentColor}@media (max-width:767px){.reviewer-preview .file-card-head .rp-preserved-tag{display:none}}.breadcrumb .redact-slot,.files .tree-name .redact-slot{position:relative;top:-.15em}.dark-mode .markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip,.markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip{vertical-align:.04em!important} \ No newline at end of file +.reviewer-preview .rp-main{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}.reviewer-preview .rp-document{flex:1 1 auto;min-height:0;min-width:0;overflow:auto;scrollbar-width:thin;position:relative}.reviewer-preview button.rp-count{background:0 0;border:0;padding:0;font:inherit;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px}.reviewer-preview button.rp-count:hover{text-decoration-color:currentColor}@media (max-width:767px){.reviewer-preview .file-card-head .rp-preserved-tag{display:none}}.billing-page{--bl-subscription:#008C7E;--bl-repository:#D0652A;--bl-conference:#6250D6}.dark-mode .billing-page{--bl-subscription:#16A091;--bl-repository:#D95926;--bl-conference:#9085E9}.billing-page .bl-subscription{background:var(--bl-subscription)!important}.billing-page .bl-repository{background:var(--bl-repository)!important}.billing-page .bl-conference{background:var(--bl-conference)!important}.billing-page .bl-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;margin:4px 0 0}.billing-page .bl-basis{margin:0;font-size:12px;color:var(--ink-muted)}.billing-page .bl-message{display:flex;align-items:center;gap:8px;margin:14px 0 0;padding:10px 14px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);font-size:13px;color:var(--color);background:var(--paper-card)}.billing-page .bl-message .ui-icon{width:16px;height:16px;flex:none;color:var(--ink-muted)}.billing-page .bl-message.ov-performance-warning{border-color:color-mix(in srgb,var(--status-progress) 45%,var(--border-color));background:color-mix(in srgb,var(--status-progress) 8%,var(--paper-card))}.billing-page .bl-message.ov-performance-warning .ui-icon{color:var(--status-progress)}.billing-page .bl-message .btn{margin-left:auto}.overview-page .bl-kpi-row{grid-template-columns:repeat(6,minmax(0,1fr));margin:16px 0 16px}.overview-page .bl-kpi-row .ov-kpi-card{min-width:0;padding:16px 18px}.overview-page .bl-kpi-row .ov-kpi-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-page .bl-kpi-row .ov-kpi-sub{white-space:normal;overflow-wrap:anywhere;line-height:1.4}.overview-page .bl-kpi-row .ov-kpi-value{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-page .bl-kpi-row .bl-muted-value{color:var(--ink-muted);font-size:20px;line-height:28px}.overview-page .bl-kpi-row.is-loading .ov-kpi-card{opacity:.6}.billing-page .bl-skeleton-value{display:block;width:50%;height:28px;margin:4px 0;border-radius:6px}@media (max-width:1279px){.overview-page .bl-kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))!important}}@media (max-width:767px){.overview-page .bl-kpi-row{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.billing-page .bl-health{display:flex;align-items:center;flex-wrap:wrap;gap:6px 20px;padding:10px 16px;margin:0 0 16px;border:1px solid var(--border-color);border-radius:var(--radius-control,8px);background:var(--paper-card);font-size:13px;font-variant-numeric:tabular-nums}.billing-page .bl-health-title{display:inline-flex;align-items:center;gap:8px;font-weight:600}.billing-page .bl-health-title .ov-svc-dot{width:8px;height:8px;margin:0;border-radius:50%}.billing-page .bl-dot-bad{background:var(--st-bad,#b42318)}.billing-page .bl-health-item .k{color:var(--ink-muted);margin-right:2px}.billing-page .bl-health-item.is-bad{color:var(--st-bad,#b42318);font-weight:600}.billing-page .bl-health-item.is-warn{color:#946519;font-weight:600}.dark-mode .billing-page .bl-health-item.is-warn{color:var(--status-progress)}.dark-mode .billing-page .bl-health-item.is-bad{color:#f08a82}.billing-page .bl-health-error{min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.billing-page .bl-health-error code{font-size:12px;color:inherit;background:var(--paper-bg-alt);padding:1px 5px;border-radius:4px}.billing-page .bl-chart-card{margin-bottom:16px}.billing-page .bl-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none}.billing-page .bl-bars{position:relative;gap:3px}.billing-page .bl-bars.is-dense{gap:1px}.billing-page .bl-col{min-width:0}.billing-page .bl-stack{display:flex;flex-direction:column-reverse;width:100%;gap:1px;border-radius:2px 2px 0 0;overflow:hidden}.billing-page .bl-stack>i{display:block;min-height:2px;flex-basis:0}.billing-page .bl-col:hover .bl-stack{filter:brightness(1.08)}.billing-page .bl-col.is-zero .bl-stack{height:1px!important;background:var(--border-color)}.billing-page .bl-empty{margin:8px 0 4px;padding:32px 0;text-align:center;color:var(--ink-muted)}.billing-page .bl-plans{margin-bottom:24px}.billing-page .ov-metrics-table thead th.bl-group{text-align:center;border-bottom:1px solid var(--border-color)}.billing-page .ov-metrics-table tfoot td,.billing-page .ov-metrics-table tfoot th{border-top:1px solid var(--border-color);border-bottom:0;font-weight:600;background:var(--paper-bg-alt)}.billing-page .ov-metrics-table tbody tr:last-child>*{border-bottom:0}.billing-page .bl-plan-name{font-weight:500;text-align:left}.billing-page .bl-plan-cell .bl-swatch,.billing-page .bl-plan-name .bl-swatch{margin-right:8px;vertical-align:1px}.billing-page .bl-link{padding:0;border:0;background:0 0;font:inherit;color:var(--link-color);cursor:pointer;text-align:left}.billing-page .bl-link:hover{text-decoration:underline}.billing-page .bl-idle .bl-link,.billing-page .bl-idle td{color:var(--ink-faint)}.billing-page .ov-muted{color:var(--ink-faint)}.billing-page .bl-note{margin:10px 0 0}.billing-page .bl-grants{margin:8px 0 24px;scroll-margin-top:16px}.billing-page .bl-section-head{margin:0 0 8px}.billing-page .bl-section-head h2{margin:0}.billing-page .bl-grant-scroll{margin-top:12px}.billing-page .bl-grant-table th[scope=row]{font-weight:500;text-align:left;max-width:200px;overflow:hidden;text-overflow:ellipsis}.billing-page .bl-grant-table td,.billing-page .bl-grant-table th{padding:9px 12px}.billing-page .bl-grant-table th[scope=row] a,.billing-page .bl-scope a{color:var(--link-color)}.billing-page .bl-grant-table .sortable{display:inline-flex;align-items:center;gap:4px;padding:0;border:0;background:0 0;font:inherit;color:inherit;cursor:pointer}.billing-page .bl-grant-table .sortable.active{color:var(--color)}.billing-page .bl-state{display:inline-flex;align-items:center;gap:6px}.billing-page .bl-state .status-dot{margin:0}.billing-page .bl-plan-cell{white-space:nowrap}.billing-page .bl-flag{display:inline-block;padding:1px 8px;border-radius:999px;font-size:12px;background:color-mix(in srgb,var(--status-progress) 14%,transparent);color:#7a5212}.dark-mode .billing-page .bl-flag{color:var(--status-progress)}.billing-page .bl-flag.is-bad{background:color-mix(in srgb,var(--st-bad,#b42318) 12%,transparent);color:#a1251b}.dark-mode .billing-page .bl-flag.is-bad{color:#f08a82}.billing-page .bl-scope a{display:inline-flex;align-items:center;gap:6px;max-width:200px;min-width:0}.billing-page .bl-scope a>span{overflow:hidden;text-overflow:ellipsis}.billing-page .bl-scope .ui-icon{width:14px;height:14px;flex:none;color:var(--ink-muted)}.billing-page .bl-page{font-family:var(--font-mono);font-size:12px;color:var(--ink-muted)}.billing-page .bl-alert{display:flex;align-items:center;gap:8px;margin:8px 0}.billing-page .bl-alert .btn{margin-left:auto}.billing-page .bl-pager{justify-content:space-between;border-bottom:none;margin-top:8px}.billing-page .paper-table-empty{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:12px}@media (max-width:767px){.billing-page .bl-health{gap:4px 14px}.billing-page .bl-health-title{flex-basis:100%}.billing-page .bl-toolbar .seg-filter{max-width:100%;overflow-x:auto}}.breadcrumb .redact-slot,.files .tree-name .redact-slot{position:relative;top:-.15em}.dark-mode .markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip,.markdown-body :is(p,li,td,th,blockquote,dd) mark.redact-chip{vertical-align:.04em!important} \ No newline at end of file diff --git a/public/css/style.css b/public/css/style.css index 1f9b90a..67fe091 100644 --- a/public/css/style.css +++ b/public/css/style.css @@ -14233,6 +14233,97 @@ body.dark-mode .reviewer-preview .rp-preserved-tag { background: rgba(251, 191, @media (max-width: 767px) { .reviewer-preview .file-card-head .rp-preserved-tag { display: none; } } + +/* ── Admin billing (reuses the overview tiles, chart and tables) ─────────── */ +.billing-page { --bl-subscription: #008C7E; --bl-repository: #D0652A; --bl-conference: #6250D6; } +.dark-mode .billing-page { --bl-subscription: #16A091; --bl-repository: #D95926; --bl-conference: #9085E9; } +.billing-page .bl-subscription { background: var(--bl-subscription) !important; } +.billing-page .bl-repository { background: var(--bl-repository) !important; } +.billing-page .bl-conference { background: var(--bl-conference) !important; } +.billing-page .bl-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; margin: 4px 0 0; } +.billing-page .bl-basis { margin: 0; font-size: 12px; color: var(--ink-muted); } +.billing-page .bl-message { display: flex; align-items: center; gap: 8px; margin: 14px 0 0; padding: 10px 14px; border: 1px solid var(--border-color); border-radius: var(--radius-control, 8px); font-size: 13px; color: var(--color); background: var(--paper-card); } +.billing-page .bl-message .ui-icon { width: 16px; height: 16px; flex: none; color: var(--ink-muted); } +.billing-page .bl-message.ov-performance-warning { border-color: color-mix(in srgb, var(--status-progress) 45%, var(--border-color)); background: color-mix(in srgb, var(--status-progress) 8%, var(--paper-card)); } +.billing-page .bl-message.ov-performance-warning .ui-icon { color: var(--status-progress); } +.billing-page .bl-message .btn { margin-left: auto; } +.overview-page .bl-kpi-row { grid-template-columns: repeat(6, minmax(0, 1fr)); margin: 16px 0 16px; } +.overview-page .bl-kpi-row .ov-kpi-card { min-width: 0; padding: 16px 18px; } +.overview-page .bl-kpi-row .ov-kpi-label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.overview-page .bl-kpi-row .ov-kpi-sub { white-space: normal; overflow-wrap: anywhere; line-height: 1.4; } +.overview-page .bl-kpi-row .ov-kpi-value { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } +.overview-page .bl-kpi-row .bl-muted-value { color: var(--ink-muted); font-size: 20px; line-height: 28px; } +.overview-page .bl-kpi-row.is-loading .ov-kpi-card { opacity: .6; } +.billing-page .bl-skeleton-value { display: block; width: 50%; height: 28px; margin: 4px 0; border-radius: 6px; } +@media (max-width: 1279px) { .overview-page .bl-kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } } +@media (max-width: 767px) { .overview-page .bl-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } } + +/* Webhook health: one status row. */ +.billing-page .bl-health { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 20px; padding: 10px 16px; margin: 0 0 16px; border: 1px solid var(--border-color); border-radius: var(--radius-control, 8px); background: var(--paper-card); font-size: 13px; font-variant-numeric: tabular-nums; } +.billing-page .bl-health-title { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; } +.billing-page .bl-health-title .ov-svc-dot { width: 8px; height: 8px; margin: 0; border-radius: 50%; } +.billing-page .bl-dot-bad { background: var(--st-bad, #B42318); } +.billing-page .bl-health-item .k { color: var(--ink-muted); margin-right: 2px; } +.billing-page .bl-health-item.is-bad { color: var(--st-bad, #B42318); font-weight: 600; } +.billing-page .bl-health-item.is-warn { color: #946519; font-weight: 600; } +.dark-mode .billing-page .bl-health-item.is-warn { color: var(--status-progress); } +.dark-mode .billing-page .bl-health-item.is-bad { color: #F08A82; } +.billing-page .bl-health-error { min-width: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } +.billing-page .bl-health-error code { font-size: 12px; color: inherit; background: var(--paper-bg-alt); padding: 1px 5px; border-radius: 4px; } + +/* Stacked sales chart. */ +.billing-page .bl-chart-card { margin-bottom: 16px; } +.billing-page .bl-swatch { display: inline-block; width: 8px; height: 8px; border-radius: 2px; flex: none; } +.billing-page .bl-bars { position: relative; gap: 3px; } +.billing-page .bl-bars.is-dense { gap: 1px; } +.billing-page .bl-col { min-width: 0; } +.billing-page .bl-stack { display: flex; flex-direction: column-reverse; width: 100%; gap: 1px; border-radius: 2px 2px 0 0; overflow: hidden; } +.billing-page .bl-stack > i { display: block; min-height: 2px; flex-basis: 0; } +.billing-page .bl-col:hover .bl-stack { filter: brightness(1.08); } +.billing-page .bl-col.is-zero .bl-stack { height: 1px !important; background: var(--border-color); } +.billing-page .bl-empty { margin: 8px 0 4px; padding: 32px 0; text-align: center; color: var(--ink-muted); } + +/* By plan and grant tables. */ +.billing-page .bl-plans { margin-bottom: 24px; } +.billing-page .ov-metrics-table thead th.bl-group { text-align: center; border-bottom: 1px solid var(--border-color); } +.billing-page .ov-metrics-table tfoot th, .billing-page .ov-metrics-table tfoot td { border-top: 1px solid var(--border-color); border-bottom: 0; font-weight: 600; background: var(--paper-bg-alt); } +.billing-page .ov-metrics-table tbody tr:last-child > * { border-bottom: 0; } +.billing-page .bl-plan-name { font-weight: 500; text-align: left; } +.billing-page .bl-plan-name .bl-swatch, .billing-page .bl-plan-cell .bl-swatch { margin-right: 8px; vertical-align: 1px; } +.billing-page .bl-link { padding: 0; border: 0; background: none; font: inherit; color: var(--link-color); cursor: pointer; text-align: left; } +.billing-page .bl-link:hover { text-decoration: underline; } +.billing-page .bl-idle td, .billing-page .bl-idle .bl-link { color: var(--ink-faint); } +.billing-page .ov-muted { color: var(--ink-faint); } +.billing-page .bl-note { margin: 10px 0 0; } +.billing-page .bl-grants { margin: 8px 0 24px; scroll-margin-top: 16px; } +.billing-page .bl-section-head { margin: 0 0 8px; } +.billing-page .bl-section-head h2 { margin: 0; } +.billing-page .bl-grant-scroll { margin-top: 12px; } +.billing-page .bl-grant-table th[scope="row"] { font-weight: 500; text-align: left; max-width: 200px; overflow: hidden; text-overflow: ellipsis; } +.billing-page .bl-grant-table th, .billing-page .bl-grant-table td { padding: 9px 12px; } +.billing-page .bl-grant-table th[scope="row"] a, .billing-page .bl-scope a { color: var(--link-color); } +.billing-page .bl-grant-table .sortable { display: inline-flex; align-items: center; gap: 4px; padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; } +.billing-page .bl-grant-table .sortable.active { color: var(--color); } +.billing-page .bl-state { display: inline-flex; align-items: center; gap: 6px; } +.billing-page .bl-state .status-dot { margin: 0; } +.billing-page .bl-plan-cell { white-space: nowrap; } +.billing-page .bl-flag { display: inline-block; padding: 1px 8px; border-radius: 999px; font-size: 12px; background: color-mix(in srgb, var(--status-progress) 14%, transparent); color: #7A5212; } +.dark-mode .billing-page .bl-flag { color: var(--status-progress); } +.billing-page .bl-flag.is-bad { background: color-mix(in srgb, var(--st-bad, #B42318) 12%, transparent); color: #A1251B; } +.dark-mode .billing-page .bl-flag.is-bad { color: #F08A82; } +.billing-page .bl-scope a { display: inline-flex; align-items: center; gap: 6px; max-width: 200px; min-width: 0; } +.billing-page .bl-scope a > span { overflow: hidden; text-overflow: ellipsis; } +.billing-page .bl-scope .ui-icon { width: 14px; height: 14px; flex: none; color: var(--ink-muted); } +.billing-page .bl-page { font-family: var(--font-mono); font-size: 12px; color: var(--ink-muted); } +.billing-page .bl-alert { display: flex; align-items: center; gap: 8px; margin: 8px 0; } +.billing-page .bl-alert .btn { margin-left: auto; } +.billing-page .bl-pager { justify-content: space-between; border-bottom: none; margin-top: 8px; } +.billing-page .paper-table-empty { display: flex; flex-direction: column; align-items: center; gap: 8px; margin-top: 12px; } +@media (max-width: 767px) { + .billing-page .bl-health { gap: 4px 14px; } + .billing-page .bl-health-title { flex-basis: 100%; } + .billing-page .bl-toolbar .seg-filter { max-width: 100%; overflow-x: auto; } +} /* Tree and breadcrumb: the slot centers on the name's capitals, not below the baseline. */ .files .tree-name .redact-slot, .breadcrumb .redact-slot { position: relative; top: -.15em; } /* Text: the slot centers on the line's letters, level with parentheses and punctuation. */ diff --git a/public/partials/admin/billing.htm b/public/partials/admin/billing.htm new file mode 100644 index 0000000..5160438 --- /dev/null +++ b/public/partials/admin/billing.htm @@ -0,0 +1,246 @@ +
{{ summary.webhooks.lastError.error }} on {{ summary.webhooks.lastError.type }} · {{ fmt?.humanTime(summary.webhooks.lastError.receivedAt) }}
+ Last error none
+ Unreviewed reversals {{ fmt?.number(summary.webhooks.unreviewedRevocations) }}
+ No sales {{ period === 'all' ? 'yet' : 'in the ' + periodPhrase() }}.
+| Plan | Active | {{ periodPhrase().replace(/^./, c => c.toUpperCase()) }} | All time | ||
|---|---|---|---|---|---|
| Sales | Revenue | Sales | Revenue | ||
| + | {{ fmt?.number(p.active) }} | +{{ fmt?.number(p.sales) }} | +{{ revenueOn() ? (p.revenueComplete === false ? 'Incomplete' : moneyText(p.revenue)) : '—' }} | +{{ fmt?.number(p.allTimeSales) }} | +{{ revenueOn() ? (p.allTimeRevenueComplete === false ? 'Incomplete' : moneyText(p.allTimeRevenue)) : '—' }} | +
| Total | {{ fmt?.number(planTotals().active) }} | {{ fmt?.number(planTotals().sales) }} | {{ revenueOn() ? (summary.sales.complete === false ? 'Incomplete' : moneyText(summary.sales.revenue)) : '—' }} | {{ fmt?.number(planTotals().allTimeSales) }} | {{ revenueOn() ? (summary.allTime.complete === false ? 'Incomplete' : moneyText(summary.allTime.revenue)) : '—' }} |
A paper pack counts once, under Paper pack. Active means paid time remains and the payment wasn't reversed.
+| User | Plan | Status | ++ | + | Cancelling | Revoked | Applies to | +
|---|---|---|---|---|---|---|---|
| {{ g.user }}Deleted user | +{{ planName(g.planId) }}Part of a paper pack | +{{ g.state === 'active' ? 'Active' : g.state === 'revoked' ? 'Revoked' : 'Expired' }}Stripe: {{ statusText(g) }} | +{{ g.purchasedAt ? fmt?.date(g.purchasedAt) : '—' }} | +Never ends{{ fmt?.date(g.until) }}—{{ g.cancelAtPeriodEnd ? 'Ends' : 'Renews' }} | +Cancelling— | +{{ revocationText(g.revocationReason) }}{{ fmt?.date(g.revokedAt) }}— | +{{ g.scope.id }}Account | +
| '+(c.oldNo||"")+' | '+(c.newNo||"")+' | '+(c.kind==="add"?"+":c.kind==="remove"?"-":"")+' | '+t(c.text)+" |
Loading GitHub info for "+S.repoId+"..."),t.get("/api/admin/repos/"+S.repoId+"/github").then(m=>{N&&(N.document.open(),N.document.write('
'+JSON.stringify(m.data,null,2).replace(/[<>]/g,E=>E==="<"?"<":">")+""),N.document.close())},m=>{let E=m&&m.data?JSON.stringify(m.data,null,2):String(m);N&&(N.document.body.innerHTML='
'+E+"")})},e.statusCountFor=S=>{let N=(e.statusCounts||[]).find(m=>m._id===S);return N?N.count:0},e.statusStorageFor=S=>{let N=(e.statusCounts||[]).find(m=>m._id===S);return N?N.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=S=>{e.query.sort===S?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=S,e.query.direction="desc"),e.query.page=1},e.sortIcon=S=>e.query.sort===S?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.repos.filterPrefs",u={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(c)||{};e.query=Object.assign({},u,y,{page:1,search:""});let h=o.search();h.owner&&(e.query.owner=h.owner),h.conference&&(e.query.conference=h.conference),h.search&&(e.query.search=h.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let S=window.prompt("Preset name:");if(!S)return;let N=Object.assign({},e.query);delete N.page,e.presets=(e.presets||[]).filter(m=>m.name!==S),e.presets.push({name:S,query:N}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=S=>{Object.assign(e.query,S.query,{page:1})},e.deletePreset=S=>{e.presets=(e.presets||[]).filter(N=>N.name!==S.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(S=>{e.selected[S.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(S=>e.selected[S.repoId]),e.bulkRefresh=()=>{let S=e.selectedRepos();S.length&&confirm(`Force refresh ${S.length} repositories?`)&&S.forEach(N=>e.updateRepository(N))},e.bulkRemoveCache=()=>{let S=e.selectedRepos();S.length&&confirm(`Purge cache for ${S.length} repositories?`)&&S.forEach(N=>e.removeCache(N))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let S=new URLSearchParams(Object.entries(e.query).filter(([,N])=>N!==""&&N!==!1&&N!=null));S.set("format","csv"),S.set("limit","10000"),window.open("/api/admin/repos?"+S.toString(),"_blank")},e.removeCache=S=>{confirm("Remove cached files for "+S.repoId+"?")&&t.delete("/api/admin/repos/"+S.repoId).then(()=>g(),N=>console.error(N))},e.removeRepository=S=>{confirm("Remove repository "+S.repoId+"?")&&t.delete("/api/repo/"+S.repoId+"/").then(()=>g(),N=>console.error(N))},e.updateRepository=S=>{let N=ot({title:`Refreshing ${S.repoId}...`,date:new Date,body:`The repository ${S.repoId} is going to be refreshed.`});e.toasts.push(N),t.post(`/api/repo/${S.repoId}/refresh`).then(m=>{m.data.status=="ready"?N.title=`${S.repoId} is refreshed.`:N.title=`Refreshing of ${S.repoId}.`},m=>{N.title=`Error during the refresh of ${S.repoId}.`,N.body=m.body})},e.filtersOpen=!1,e.fetchError=null;function g(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(S=>{e.total=S.data.total,e.totalPage=Math.ceil(S.data.total/e.query.limit),e.repositories=S.data.results,e.allSelected=!1},S=>{e.fetchError=S&&S.data&&S.data.error||"Failed to load repositories",console.error(S)})}function k(){let S=Object.assign({},e.query,{page:1,limit:1,ready:!0,expired:!0,removed:!0,error:!0,preparing:!0});t.get("/api/admin/repos",{params:S}).then(N=>{e.statusCounts=N.data.statusCounts||[],e.totalSize=N.data.totalSize||0},()=>{})}e.showAllStatuses=()=>Object.assign(e.query,{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0,page:1}),Qi(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:S=>S==="preparing"?e.statusCountFor("preparing")+e.statusCountFor("download"):S==="expired"?e.statusCountFor("expired")+e.statusCountFor("expiring"):S==="removed"?e.statusCountFor("removed")+e.statusCountFor("removing"):e.statusCountFor(S),onChange:()=>{e.query.page=1}}),g(),k();let R=null;e.watch("query",()=>{i.timeout.cancel(R),R=i.timeout(()=>{g(),k()},500);let{page:S,search:N,...m}=e.query;saveFilterPrefs(c,m),d()},!0),d()},$u=function(e,t,o){let i=Rt(),s=Ut();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=g=>{if(g.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){g.preventDefault();let k=document.querySelector('.admin-filter-toolbar input[type="search"]');k&&k.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=g=>{g==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[g]="",e.query.page=1},e.chips=[];let d=()=>{let g=[];e.query.role&&g.push({key:"role",label:"Role",value:e.query.role}),e.chips=g};e.statusCountFor=g=>{let k=(e.statusCounts||[]).find(R=>R._id===g);return k?k.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=g=>{e.query.sort===g?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=g,e.query.direction="desc"),e.query.page=1},e.sortIcon=g=>e.query.sort===g?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.users.filterPrefs",u={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},y=loadFilterPrefs(c)||{};e.query=Object.assign({},u,y,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(g=>{e.selected[g.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(g=>e.selected[g.username]),e.banUser=g=>{confirm(`Ban user ${g.username}?`)&&t.post(`/api/admin/users/${g.username}/ban`).then(h,k=>console.error(k))},e.activateUser=g=>{t.post(`/api/admin/users/${g.username}/activate`).then(h,k=>console.error(k))},e.bulkBan=()=>{let g=e.selectedUsers();g.length&&confirm(`Ban ${g.length} users?`)&&g.forEach(k=>e.banUser(k))},e.exportCsv=()=>{let g=new URLSearchParams(Object.entries(e.query).filter(([,k])=>k!==""&&k!==!1&&k!=null));g.set("format","csv"),g.set("limit","10000"),window.open("/api/admin/users?"+g.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(g=>{e.total=g.data.total,e.totalPage=Math.ceil(g.data.total/e.query.limit),e.users=g.data.results,e.statusCounts=g.data.statusCounts||[],e.allSelected=!1},g=>{e.fetchError=g&&g.data&&g.data.error||"Failed to load users",console.error(g)})}h();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(h,500);let{page:g,search:k,...R}=e.query;saveFilterPrefs(c,R),d()},!0),d()},Lu=function(e,t,o,i){let s=Rt();Hu(s,Ut()),e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",d={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},c=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},d.filters.status,c.filters&&c.filters.status||{})},e.query={sort:c.sort||d.sort,direction:c.direction||d.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=g=>{e.query.sort===g?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=g,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=g=>e.query.sort===g?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=g=>(e.repositories||[]).filter(k=>Xi(k.status)===g).length,Qi(e,{flags:()=>e.filters.status,keys:["ready","preparing","error","expired","removed"],count:g=>e.statusCountFor(g)}),e.repoFiler=g=>e.filters.status[Xi(g.status)]==!1?!1:!!(e.search.trim().length==0||g.source.fullName.indexOf(e.search)>-1||g.repoId.indexOf(e.search)>-1||g.statusMessage&&g.statusMessage.indexOf(e.search)>-1||g.conference&&g.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(g=>{e.selected[g.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(g=>e.selected[g.repoId]),e.bulkRefresh=()=>{let g=e.selectedRepos();g.length&&confirm(`Force refresh ${g.length} repositories?`)&&g.forEach(k=>e.updateRepository(k))},e.bulkRemoveCache=()=>{let g=e.selectedRepos();g.length&&confirm(`Purge cache for ${g.length} repositories?`)&&g.forEach(k=>e.removeCache(k))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let g=e.filteredRepositories||e.repositories,R=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),S=g.map(E=>[E.repoId,E.status,E.statusMessage||"",E.pageView||0,E.anonymizeDate||"",E.source&&E.source.fullName||"",E.conference||"",E.size&&E.size.storage||0].map(M=>{let _=String(M??"");return/[",\n\r]/.test(_)?'"'+_.replace(/"/g,'""')+'"':_}).join(",")),N=new Blob([R+` +`+JSON.stringify(t):""}`},[ut.NAVIGATION_GUARD_REDIRECT]({from:e,to:t}){return`Redirected from "${e.fullPath}" to "${_m(t)}" via a navigation guard.`},[ut.NAVIGATION_ABORTED]({from:e,to:t}){return`Navigation aborted from "${e.fullPath}" to "${t.fullPath}" via a navigation guard.`},[ut.NAVIGATION_CANCELLED]({from:e,to:t}){return`Navigation cancelled from "${e.fullPath}" to "${t.fullPath}" with a new navigation.`},[ut.NAVIGATION_DUPLICATED]({from:e,to:t}){return`Avoided redundant navigation to current location: "${e.fullPath}".`}};function as(e,t){return Je(new Error,{type:e,[hu]:!0},t)}function gn(e,t){return e instanceof Error&&hu in e&&(t==null||!!(e.type&t))}var qm=["params","query","hash"];function _m(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;let t={};for(let s of qm)s in e&&(t[s]=e[s]);return JSON.stringify(t,null,2)}function mu(e){let t={};if(e===""||e==="?")return t;let s=(e[0]==="?"?e.slice(1):e).split("&");for(let i=0;i
| '+(p.oldNo||"")+' | '+(p.newNo||"")+' | '+(p.kind==="add"?"+":p.kind==="remove"?"-":"")+' | '+t(p.text)+" |
Loading GitHub info for "+S.repoId+"..."),t.get("/api/admin/repos/"+S.repoId+"/github").then(v=>{N&&(N.document.open(),N.document.write('
'+JSON.stringify(v.data,null,2).replace(/[<>]/g,E=>E==="<"?"<":">")+""),N.document.close())},v=>{let E=v&&v.data?JSON.stringify(v.data,null,2):String(v);N&&(N.document.body.innerHTML='
'+E+"")})},e.statusCountFor=S=>{let N=(e.statusCounts||[]).find(v=>v._id===S);return N?N.count:0},e.statusStorageFor=S=>{let N=(e.statusCounts||[]).find(v=>v._id===S);return N?N.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=S=>{e.query.sort===S?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=S,e.query.direction="desc"),e.query.page=1},e.sortIcon=S=>e.query.sort===S?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.repos.filterPrefs",u={page:1,limit:25,sort:"lastView",direction:"desc",search:"",owner:"",conference:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""});let m=s.search();m.owner&&(e.query.owner=m.owner),m.conference&&(e.query.conference=m.conference),m.search&&(e.query.search=m.search);let b="admin.repos.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let S=window.prompt("Preset name:");if(!S)return;let N=Object.assign({},e.query);delete N.page,e.presets=(e.presets||[]).filter(v=>v.name!==S),e.presets.push({name:S,query:N}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=S=>{Object.assign(e.query,S.query,{page:1})},e.deletePreset=S=>{e.presets=(e.presets||[]).filter(N=>N.name!==S.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.repositories.forEach(S=>{e.selected[S.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(S=>e.selected[S.repoId]),e.bulkRefresh=()=>{let S=e.selectedRepos();S.length&&confirm(`Force refresh ${S.length} repositories?`)&&S.forEach(N=>e.updateRepository(N))},e.bulkRemoveCache=()=>{let S=e.selectedRepos();S.length&&confirm(`Purge cache for ${S.length} repositories?`)&&S.forEach(N=>e.removeCache(N))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let S=new URLSearchParams(Object.entries(e.query).filter(([,N])=>N!==""&&N!==!1&&N!=null));S.set("format","csv"),S.set("limit","10000"),window.open("/api/admin/repos?"+S.toString(),"_blank")},e.removeCache=S=>{confirm("Remove cached files for "+S.repoId+"?")&&t.delete("/api/admin/repos/"+S.repoId).then(()=>h(),N=>console.error(N))},e.removeRepository=S=>{confirm("Remove repository "+S.repoId+"?")&&t.delete("/api/repo/"+S.repoId+"/").then(()=>h(),N=>console.error(N))},e.updateRepository=S=>{let N=st({title:`Refreshing ${S.repoId}...`,date:new Date,body:`The repository ${S.repoId} is going to be refreshed.`});e.toasts.push(N),t.post(`/api/repo/${S.repoId}/refresh`).then(v=>{v.data.status=="ready"?N.title=`${S.repoId} is refreshed.`:N.title=`Refreshing of ${S.repoId}.`},v=>{N.title=`Error during the refresh of ${S.repoId}.`,N.body=v.body})},e.filtersOpen=!1,e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/repos",{params:e.query}).then(S=>{e.total=S.data.total,e.totalPage=Math.ceil(S.data.total/e.query.limit),e.repositories=S.data.results,e.allSelected=!1},S=>{e.fetchError=S&&S.data&&S.data.error||"Failed to load repositories",console.error(S)})}function w(){let S=Object.assign({},e.query,{page:1,limit:1,ready:!0,expired:!0,removed:!0,error:!0,preparing:!0});t.get("/api/admin/repos",{params:S}).then(N=>{e.statusCounts=N.data.statusCounts||[],e.totalSize=N.data.totalSize||0},()=>{})}e.showAllStatuses=()=>Object.assign(e.query,{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0,page:1}),Ji(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:S=>S==="preparing"?e.statusCountFor("preparing")+e.statusCountFor("download"):S==="expired"?e.statusCountFor("expired")+e.statusCountFor("expiring"):S==="removed"?e.statusCountFor("removed")+e.statusCountFor("removing"):e.statusCountFor(S),onChange:()=>{e.query.page=1}}),h(),w();let R=null;e.watch("query",()=>{i.timeout.cancel(R),R=i.timeout(()=>{h(),w()},500);let{page:S,search:N,...v}=e.query;saveFilterPrefs(p,v),d()},!0),d()},Fu=function(e,t,s){let i=Ct(),o=Ut();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.users=[],e.total=-1,e.totalPage=0,e.statusCounts=[],e.selected={},e.allSelected=!1;let r=h=>{if(h.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){h.preventDefault();let w=document.querySelector('.admin-filter-toolbar input[type="search"]');w&&w.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=h=>{h==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[h]="",e.query.page=1},e.chips=[];let d=()=>{let h=[];e.query.role&&h.push({key:"role",label:"Role",value:e.query.role}),e.chips=h};e.statusCountFor=h=>{let w=(e.statusCounts||[]).find(R=>R._id===h);return w?w.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.query.page=1},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.users.filterPrefs",u={page:1,limit:25,sort:"username",direction:"asc",search:"",status:"",role:"",dateFrom:"",dateTo:""},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""}),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,e.users.forEach(h=>{e.selected[h.username]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedUsers=()=>e.users.filter(h=>e.selected[h.username]),e.banUser=h=>{confirm(`Ban user ${h.username}?`)&&t.post(`/api/admin/users/${h.username}/ban`).then(m,w=>console.error(w))},e.activateUser=h=>{t.post(`/api/admin/users/${h.username}/activate`).then(m,w=>console.error(w))},e.bulkBan=()=>{let h=e.selectedUsers();h.length&&confirm(`Ban ${h.length} users?`)&&h.forEach(w=>e.banUser(w))},e.exportCsv=()=>{let h=new URLSearchParams(Object.entries(e.query).filter(([,w])=>w!==""&&w!==!1&&w!=null));h.set("format","csv"),h.set("limit","10000"),window.open("/api/admin/users?"+h.toString(),"_blank")},e.fetchError=null;function m(){e.fetchError=null,t.get("/api/admin/users",{params:e.query}).then(h=>{e.total=h.data.total,e.totalPage=Math.ceil(h.data.total/e.query.limit),e.users=h.data.results,e.statusCounts=h.data.statusCounts||[],e.allSelected=!1},h=>{e.fetchError=h&&h.data&&h.data.error||"Failed to load users",console.error(h)})}m();let b=null;e.watch("query",()=>{i.timeout.cancel(b),b=i.timeout(m,500);let{page:h,search:w,...R}=e.query;saveFilterPrefs(p,R),d()},!0),d()},Uu=function(e,t,s,i){let o=Ct();Gu(o,Ut()),e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.userInfo,e.repositories=[],e.search="",e.selected={},e.allSelected=!1;let r="admin.user.filterPrefs",d={filters:{status:{ready:!0,expired:!0,removed:!0,error:!0,preparing:!0}},sort:"anonymizeDate",direction:"desc"},p=loadFilterPrefs(r)||{};e.filters={status:Object.assign({},d.filters.status,p.filters&&p.filters.status||{})},e.query={sort:p.sort||d.sort,direction:p.direction||d.direction},e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort,e.sortBy=h=>{e.query.sort===h?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=h,e.query.direction="desc"),e.orderBy=(e.query.direction==="asc"?"":"-")+e.query.sort},e.sortIcon=h=>e.query.sort===h?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"",e.watch("query",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.watch("filters",()=>{saveFilterPrefs(r,{filters:e.filters,sort:e.query.sort,direction:e.query.direction})},!0),e.statusCountFor=h=>(e.repositories||[]).filter(w=>Xi(w.status)===h).length,Ji(e,{flags:()=>e.filters.status,keys:["ready","preparing","error","expired","removed"],count:h=>e.statusCountFor(h)}),e.repoFiler=h=>e.filters.status[Xi(h.status)]==!1?!1:!!(e.search.trim().length==0||h.source.fullName.indexOf(e.search)>-1||h.repoId.indexOf(e.search)>-1||h.statusMessage&&h.statusMessage.indexOf(e.search)>-1||h.conference&&h.conference.indexOf(e.search)>-1),e.selectAllOnPage=()=>{e.allSelected=!e.allSelected,(e.filteredRepositories||e.repositories).forEach(h=>{e.selected[h.repoId]=e.allSelected})},e.selectedCount=()=>Object.values(e.selected||{}).filter(Boolean).length,e.selectedRepos=()=>e.repositories.filter(h=>e.selected[h.repoId]),e.bulkRefresh=()=>{let h=e.selectedRepos();h.length&&confirm(`Force refresh ${h.length} repositories?`)&&h.forEach(w=>e.updateRepository(w))},e.bulkRemoveCache=()=>{let h=e.selectedRepos();h.length&&confirm(`Purge cache for ${h.length} repositories?`)&&h.forEach(w=>e.removeCache(w))},e.clearSelection=()=>{e.selected={},e.allSelected=!1},e.exportCsv=()=>{let h=e.filteredRepositories||e.repositories,R=["repoId","status","statusMessage","pageView","anonymizeDate","source.fullName","conference","size.storage"].join(","),S=h.map(E=>[E.repoId,E.status,E.statusMessage||"",E.pageView||0,E.anonymizeDate||"",E.source&&E.source.fullName||"",E.conference||"",E.size&&E.size.storage||0].map(M=>{let V=String(M??"");return/[",\n\r]/.test(V)?'"'+V.replace(/"/g,'""')+'"':V}).join(",")),N=new Blob([R+` `+S.join(` -`)],{type:"text/csv"}),m=document.createElement("a");m.href=URL.createObjectURL(N),m.download=i.username+"-repositories.csv",m.click()},e.showStatusMessage=g=>{let k=g.statusMessage||"(no message)";window.prompt(`Status message for ${g.repoId} (${g.status}):`,k)},e.fetchGithubInfo=g=>{let k=window.open("","_blank");k&&k.document.write("
Loading GitHub info for "+g.repoId+"..."),t.get("/api/admin/repos/"+g.repoId+"/github").then(R=>{k&&(k.document.open(),k.document.write('
'+JSON.stringify(R.data,null,2).replace(/[<>]/g,S=>S==="<"?"<":">")+""),k.document.close())},R=>{let S=R&&R.data?JSON.stringify(R.data,null,2):String(R);k&&(k.document.body.innerHTML='
'+S+"")})};function u(g){t.get("/api/admin/users/"+g+"/repos",{}).then(k=>{e.repositories=k.data},k=>{console.error(k)})}function y(g){t.get("/api/admin/users/"+g,{}).then(k=>{e.userInfo=k.data},k=>{console.error(k)})}y(i.username),u(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>y(i.username),g=>console.error(g))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>y(i.username),g=>console.error(g))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>y(i.username),g=>console.error(g))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>y(i.username),g=>console.error(g))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function h(){t.get("/api/admin/tokens").then(g=>{e.tokens=g.data||[]},g=>{g.status!==401&&g.status!==403&&console.error(g)})}h(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(g=>{e.tokenForm.plaintext=g.data.token,e.tokenForm.name="",h()},g=>console.error(g))},e.revokeToken=g=>{confirm(`Revoke token "${g.name}"?`)&&t.delete("/api/admin/tokens/"+g.id).then(()=>h(),k=>console.error(k))},e.removeCache=g=>{confirm("Remove cached files for "+g.repoId+"?")&&t.delete("/api/admin/repos/"+g.repoId).then(()=>u(i.username),k=>console.error(k))},e.removeRepository=g=>{confirm("Remove repository "+g.repoId+"?")&&t.delete("/api/repo/"+g.repoId+"/").then(()=>u(i.username),k=>console.error(k))},e.updateRepository=g=>{let k=ot({title:`Refreshing ${g.repoId}...`,date:new Date,body:`The repository ${g.repoId} is going to be refreshed.`});e.toasts.push(k),t.post(`/api/repo/${g.repoId}/refresh`).then(R=>{R.data.status=="ready"?k.title=`${g.repoId} is refreshed.`:k.title=`Refreshing of ${g.repoId}.`},R=>{k.title=`Error during the refresh of ${g.repoId}.`,k.body=R.body})},e.getGitHubRepositories=g=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(k=>{e.userInfo.repositories=k.data})};let b=null;e.watch("query",()=>{s.timeout.cancel(b),b=s.timeout(()=>{u(i.username)},500)},!0)},Fu=function(e,t,o){let i=Rt(),s=Ut();e.Math=Math,e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=R=>{if(R.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){R.preventDefault();let S=document.querySelector('.admin-filter-toolbar input[type="search"]');S&&S.focus()}};s(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=R=>{R==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[R]="",e.query.page=1},e.chips=[];let d=()=>{let R=[];(e.query.dateFrom||e.query.dateTo)&&R.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=R};e.statusCountFor=R=>{let S=(e.statusCounts||[]).find(N=>N._id===R);return S?S.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=R=>{e.query.sort===R?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=R,e.query.direction="desc"),e.query.page=1},e.sortIcon=R=>e.query.sort===R?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let c="admin.conferences.filterPrefs",u={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(c)||{};e.query=Object.assign({},u,y,{page:1,search:""});let h=o.search();h.search&&(e.query.search=h.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let R=window.prompt("Preset name:");if(!R)return;let S=Object.assign({},e.query);delete S.page,e.presets=(e.presets||[]).filter(N=>N.name!==R),e.presets.push({name:R,query:S}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=R=>{Object.assign(e.query,R.query,{page:1})},e.deletePreset=R=>{e.presets=(e.presets||[]).filter(S=>S.name!==R.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=R=>{confirm("Remove conference "+R.conferenceID+"?")&&t.delete("/api/admin/conferences/"+R.conferenceID).then(()=>g(),S=>console.error(S))},e.exportCsv=()=>{let R=new URLSearchParams(Object.entries(e.query).filter(([,S])=>S!==""&&S!==!1&&S!=null));R.set("format","csv"),R.set("limit","10000"),window.open("/api/admin/conferences?"+R.toString(),"_blank")},e.fetchError=null;function g(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(R=>{e.total=R.data.total,e.totalPage=Math.ceil(R.data.total/e.query.limit),e.conferences=R.data.results,e.statusCounts=R.data.statusCounts||[]},R=>{e.fetchError=R&&R.data&&R.data.error||"Failed to load conferences",console.error(R)})}Qi(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:R=>e.statusCountFor(R),onChange:()=>{e.query.page=1}}),g();let k=null;e.watch("query",()=>{i.timeout.cancel(k),k=i.timeout(g,500);let{page:R,search:S,...N}=e.query;saveFilterPrefs(c,N),d()},!0),d()},Uu=function(e,t,o,i,s){let r=Rt();e.watch("user.status",()=>{e.user==null&&o.url("/")}),e.user==null&&o.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},Qi(e,{flags:()=>e.stateFilter,keys:e.allStates,count:N=>(e.jobs||[]).filter(m=>m._state===N).length}),e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(N=>e.stateFilter[N._state]),e.jobProgressPct=N=>N?._state==="completed"?100:N&&N.progress&&typeof N.progress=="object"&&typeof N.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(N.progress.percent))):typeof N.progress=="number"?Math.max(0,Math.min(100,Math.round(N.progress))):null;let d={get_files:"Fetching files",download:"Downloading",downloading:"Downloading",anonymize:"Anonymizing",anonymizing:"Anonymizing",ready:"Ready",removing:"Removing",preparing:"Preparing"};e.jobDetail=N=>{if(N?._state==="failed")return Yi(N.failedReason||"")||"Failed";let m=N?.progress&&typeof N.progress=="object"?N.progress.status:null;return N?._state==="active"&&m?d[m]||Yi(m):"\u2014"},e.jobDuration=N=>{if(!N.processedOn)return"\u2014";let m=N.finishedOn||Date.now();return uo(m-N.processedOn)},e.metricsPoints=[],e.selectQueue=N=>{e.selectedQueue=N,c(),u()},e.setRange=N=>{e.range=N,u()};function c(){let N={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:N}).then(m=>{e.queueList=m.data.queues||[],e.jobs=m.data.jobs||[],e.selectedStats=e.queueList.find(E=>E.key===e.selectedQueue)||e.queueList[0]||null},m=>console.error(m))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(N=>{e.metricsPoints=N.data.points||[],s(k,0)},N=>console.error(N))}c(),u();let y=i(()=>{e.query.autoRefresh&&(c(),u())},15e3);e.on("dispose",()=>i.cancel(y)),e.refreshNow=function(){c(),u()};function h(N){let m=N&&N.data&&(N.data.message||N.data.error)||"Request failed";e.actionError=m,s(()=>{e.actionError=null},5e3),console.error(N)}e.actionError=null,e.removeJob=N=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(c,h)},e.retryJob=N=>{t.post(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(c,h)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(c,N=>console.error(N))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(c,N=>console.error(N))},e.togglePause=()=>{let N=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${N}`).then(c,m=>console.error(m))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(c,N=>console.error(N))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(c,N=>console.error(N))};let b=null;e.watch("query.search",()=>{r.timeout.cancel(b),b=r.timeout(c,350)}),e.expanded={},e.toggleJob=N=>{e.expanded[N.id]=!e.expanded[N.id]},e.humanTime=N=>{if(!N)return"";let m=new Date(N);return m.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+m.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=N=>{if(!N)return"";var m=Math.max(0,Math.ceil((N-Date.now())/1e3));if(m<=0)return"resuming soon";var E=Math.floor(m/60),M=m%60;return"in "+(E>0?E+"m "+M+"s":M+"s")};function g(N){if(N<=0)return{ticks:[0],niceMax:1};let m=Math.pow(10,Math.floor(Math.log10(N))),E=m;N/E<2?E=m/2:N/E>5&&(E=m*2);let M=Math.ceil(N/E)*E,_=[];for(let V=0;V<=M;V+=E)_.push(V);return{ticks:_,niceMax:M}}function k(){var N=document.getElementById("q-throughput-chart");if(!N)return;var m=N.getContext("2d"),E=window.devicePixelRatio||1,M=N.parentElement.getBoundingClientRect(),_=44,V=44,G=22,ee=Math.max(200,Math.round(M.width)),X=Math.max(180,Math.min(420,Math.round(M.height)||180)),O=ee-_-V,U=X-G;N.width=ee*E,N.height=X*E,N.style.width=ee+"px",N.style.height=X+"px",m.setTransform(E,0,0,E,0,0);var C=document.body.classList.contains("dark-mode"),q="#8A857C",z=C?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",K=C?"#6FBF8A":"#2F7D4F",ie=C?"rgba(111,191,138,0.12)":"rgba(47,125,79,0.08)",ne=C?"#F08A82":"#B42318",Y=C?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",he=getComputedStyle(document.body).getPropertyValue("--q-time-series").trim()||(C?"#E0A94A":"#946512"),Ee=e.metricsPoints||[];if(Ee.length===0){m.fillStyle=q,m.font="13px Inter, system-ui, sans-serif",m.textAlign="center",m.fillText("No metrics data yet",ee/2,X/2),R=null;return}var Ue=Ee.map(function(we){return we.completed}),Be=Ee.map(function(we){return we.failed}),Je=Ee.map(function(we){return we.avgMs});if(!Ue.some(Boolean)&&!Be.some(Boolean)){m.strokeStyle=C?"rgba(255,255,255,0.14)":"rgba(0,0,0,0.12)",m.beginPath(),m.moveTo(0,X-18.5),m.lineTo(ee,X-18.5),m.stroke(),m.fillStyle=C?"#CFC8BD":"#4F4A42",m.font="500 14px Inter, system-ui, sans-serif",m.textAlign="center",m.fillText("No jobs processed in this window",ee/2,X/2-6),m.fillStyle=q,m.font="12.5px Inter, system-ui, sans-serif",m.fillText("Completed and failed jobs will chart here",ee/2,X/2+16),R=null;return}var He=Ee.length,et=O/(He-1||1),Re=Math.max(1,Math.max.apply(null,Ue),Math.max.apply(null,Be)),Fe=g(Re),W=Math.max.apply(null,Je),fe=W>0?g(W):{ticks:[0],niceMax:1},de=function(we){return U-we/Fe.niceMax*(U-10)},ce=function(we){return U-we/fe.niceMax*(U-10)},me=function(we){return _+we*et};m.textAlign="right",m.textBaseline="middle",m.font="11px Inter, system-ui, sans-serif",Fe.ticks.forEach(function(we){var be=de(we);m.strokeStyle=z,m.lineWidth=1,m.beginPath(),m.moveTo(_,be),m.lineTo(ee-V,be),m.stroke(),m.fillStyle=q,we!==0&&m.fillText(we>=1e3?(we/1e3).toFixed(1)+"k":String(we),_-6,be)}),W>0&&(m.textAlign="left",fe.ticks.forEach(function(we){var be=ce(we);m.fillStyle=he,we!==0&&m.fillText(uo(we),ee-V+6,be)}));var Ie=Ee[He-1].ts,D=Ee[0].ts,A=Math.max(0,(Ie-D)/6e4),L=[1,2,5,10,15,30,60,120,180,360,720,1440,2880,10080],Q=L.find(function(we){return A/we<=4})||L[L.length-1],H=function(we){return we<60?we+"m":we<1440?we/60+"h":we/1440+"d"},J=function(we){for(var be=0,st=1;st
Loading GitHub info for "+h.repoId+"..."),t.get("/api/admin/repos/"+h.repoId+"/github").then(R=>{w&&(w.document.open(),w.document.write('
'+JSON.stringify(R.data,null,2).replace(/[<>]/g,S=>S==="<"?"<":">")+""),w.document.close())},R=>{let S=R&&R.data?JSON.stringify(R.data,null,2):String(R);w&&(w.document.body.innerHTML='
'+S+"")})};function u(h){t.get("/api/admin/users/"+h+"/repos",{}).then(w=>{e.repositories=w.data},w=>{console.error(w)})}function y(h){t.get("/api/admin/users/"+h,{}).then(w=>{e.userInfo=w.data},w=>{console.error(w)})}y(i.username),u(i.username),e.banUser=()=>{confirm(`Ban user ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/ban`).then(()=>y(i.username),h=>console.error(h))},e.activateUser=()=>{t.post(`/api/admin/users/${i.username}/activate`).then(()=>y(i.username),h=>console.error(h))},e.promoteUser=()=>{confirm(`Promote ${i.username} to admin?`)&&t.post(`/api/admin/users/${i.username}/promote`).then(()=>y(i.username),h=>console.error(h))},e.demoteUser=()=>{confirm(`Remove admin privileges from ${i.username}?`)&&t.post(`/api/admin/users/${i.username}/demote`).then(()=>y(i.username),h=>console.error(h))},e.tokens=[],e.tokenForm={name:"",plaintext:null};function m(){t.get("/api/admin/tokens").then(h=>{e.tokens=h.data||[]},h=>{h.status!==401&&h.status!==403&&console.error(h)})}m(),e.createToken=()=>{e.tokenForm.name&&t.post("/api/admin/tokens",{name:e.tokenForm.name}).then(h=>{e.tokenForm.plaintext=h.data.token,e.tokenForm.name="",m()},h=>console.error(h))},e.revokeToken=h=>{confirm(`Revoke token "${h.name}"?`)&&t.delete("/api/admin/tokens/"+h.id).then(()=>m(),w=>console.error(w))},e.removeCache=h=>{confirm("Remove cached files for "+h.repoId+"?")&&t.delete("/api/admin/repos/"+h.repoId).then(()=>u(i.username),w=>console.error(w))},e.removeRepository=h=>{confirm("Remove repository "+h.repoId+"?")&&t.delete("/api/repo/"+h.repoId+"/").then(()=>u(i.username),w=>console.error(w))},e.updateRepository=h=>{let w=st({title:`Refreshing ${h.repoId}...`,date:new Date,body:`The repository ${h.repoId} is going to be refreshed.`});e.toasts.push(w),t.post(`/api/repo/${h.repoId}/refresh`).then(R=>{R.data.status=="ready"?w.title=`${h.repoId} is refreshed.`:w.title=`Refreshing of ${h.repoId}.`},R=>{w.title=`Error during the refresh of ${h.repoId}.`,w.body=R.body})},e.getGitHubRepositories=h=>{t.get(`/api/user/${e.userInfo.username}/all_repositories`,{params:{force:"1"}}).then(w=>{e.userInfo.repositories=w.data})};let b=null;e.watch("query",()=>{o.timeout.cancel(b),b=o.timeout(()=>{u(i.username)},500)},!0)},Bu=function(e,t,s){let i=Ct(),o=Ut();e.Math=Math,e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.url("/"),e.conferences=[],e.total=-1,e.totalPage=0,e.statusCounts=[];let r=R=>{if(R.key==="/"&&!["INPUT","TEXTAREA","SELECT"].includes(document.activeElement?.tagName)){R.preventDefault();let S=document.querySelector('.admin-filter-toolbar input[type="search"]');S&&S.focus()}};o(document,"keydown",r),e.on("dispose",()=>document.removeEventListener("keydown",r)),e.clearFilter=R=>{R==="dateRange"?(e.query.dateFrom="",e.query.dateTo=""):e.query[R]="",e.query.page=1},e.chips=[];let d=()=>{let R=[];(e.query.dateFrom||e.query.dateTo)&&R.push({key:"dateRange",label:"Date",value:(e.query.dateFrom||"\u2026")+" \u2013 "+(e.query.dateTo||"\u2026")}),e.chips=R};e.statusCountFor=R=>{let S=(e.statusCounts||[]).find(N=>N._id===R);return S?S.count:0},e.toggleSortDirection=()=>{e.query.direction=e.query.direction==="asc"?"desc":"asc"},e.sortBy=R=>{e.query.sort===R?e.query.direction=e.query.direction==="asc"?"desc":"asc":(e.query.sort=R,e.query.direction="desc"),e.query.page=1},e.sortIcon=R=>e.query.sort===R?e.query.direction==="asc"?"fa-arrow-up":"fa-arrow-down":"";let p="admin.conferences.filterPrefs",u={page:1,limit:25,sort:"name",direction:"asc",search:"",dateFrom:"",dateTo:"",ready:!0,expired:!0,removed:!0,error:!0,preparing:!0},y=loadFilterPrefs(p)||{};e.query=Object.assign({},u,y,{page:1,search:""});let m=s.search();m.search&&(e.query.search=m.search);let b="admin.conferences.presets";e.presets=JSON.parse(localStorage.getItem(b)||"[]"),e.savePreset=()=>{let R=window.prompt("Preset name:");if(!R)return;let S=Object.assign({},e.query);delete S.page,e.presets=(e.presets||[]).filter(N=>N.name!==R),e.presets.push({name:R,query:S}),localStorage.setItem(b,JSON.stringify(e.presets))},e.applyPreset=R=>{Object.assign(e.query,R.query,{page:1})},e.deletePreset=R=>{e.presets=(e.presets||[]).filter(S=>S.name!==R.name),localStorage.setItem(b,JSON.stringify(e.presets))},e.removeConference=R=>{confirm("Remove conference "+R.conferenceID+"?")&&t.delete("/api/admin/conferences/"+R.conferenceID).then(()=>h(),S=>console.error(S))},e.exportCsv=()=>{let R=new URLSearchParams(Object.entries(e.query).filter(([,S])=>S!==""&&S!==!1&&S!=null));R.set("format","csv"),R.set("limit","10000"),window.open("/api/admin/conferences?"+R.toString(),"_blank")},e.fetchError=null;function h(){e.fetchError=null,t.get("/api/admin/conferences",{params:e.query}).then(R=>{e.total=R.data.total,e.totalPage=Math.ceil(R.data.total/e.query.limit),e.conferences=R.data.results,e.statusCounts=R.data.statusCounts||[]},R=>{e.fetchError=R&&R.data&&R.data.error||"Failed to load conferences",console.error(R)})}Ji(e,{flags:()=>e.query,keys:["ready","preparing","error","expired","removed"],count:R=>e.statusCountFor(R),onChange:()=>{e.query.page=1}}),h();let w=null;e.watch("query",()=>{i.timeout.cancel(w),w=i.timeout(h,500);let{page:R,search:S,...N}=e.query;saveFilterPrefs(p,N),d()},!0),d()},zu=function(e,t,s,i,o){let r=Ct();e.watch("user.status",()=>{e.user==null&&s.url("/")}),e.user==null&&s.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},Ji(e,{flags:()=>e.stateFilter,keys:e.allStates,count:N=>(e.jobs||[]).filter(v=>v._state===N).length}),e.query={search:"",autoRefresh:!0},e.filteredJobs=()=>(e.jobs||[]).filter(N=>e.stateFilter[N._state]),e.jobProgressPct=N=>N?._state==="completed"?100:N&&N.progress&&typeof N.progress=="object"&&typeof N.progress.percent=="number"?Math.max(0,Math.min(100,Math.round(N.progress.percent))):typeof N.progress=="number"?Math.max(0,Math.min(100,Math.round(N.progress))):null;let d={get_files:"Fetching files",download:"Downloading",downloading:"Downloading",anonymize:"Anonymizing",anonymizing:"Anonymizing",ready:"Ready",removing:"Removing",preparing:"Preparing"};e.jobDetail=N=>{if(N?._state==="failed")return Yi(N.failedReason||"")||"Failed";let v=N?.progress&&typeof N.progress=="object"?N.progress.status:null;return N?._state==="active"&&v?d[v]||Yi(v):"\u2014"},e.jobDuration=N=>{if(!N.processedOn)return"\u2014";let v=N.finishedOn||Date.now();return qn(v-N.processedOn)},e.metricsPoints=[],e.selectQueue=N=>{e.selectedQueue=N,p(),u()},e.setRange=N=>{e.range=N,u()};function p(){let N={queue:e.selectedQueue,search:e.query.search};t.get("/api/admin/queues",{params:N}).then(v=>{e.queueList=v.data.queues||[],e.jobs=v.data.jobs||[],e.selectedStats=e.queueList.find(E=>E.key===e.selectedQueue)||e.queueList[0]||null},v=>console.error(v))}function u(){t.get("/api/admin/queues/metrics",{params:{queue:e.selectedQueue,range:e.range}}).then(N=>{e.metricsPoints=N.data.points||[],o(w,0)},N=>console.error(N))}p(),u();let y=i(()=>{e.query.autoRefresh&&(p(),u())},15e3);e.on("dispose",()=>i.cancel(y)),e.refreshNow=function(){p(),u()};function m(N){let v=N&&N.data&&(N.data.message||N.data.error)||"Request failed";e.actionError=v,o(()=>{e.actionError=null},5e3),console.error(N)}e.actionError=null,e.removeJob=N=>{t.delete(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(p,m)},e.retryJob=N=>{t.post(`/api/admin/queue/${e.selectedQueue}/${N.id}`).then(p,m)},e.retryFailed=()=>{confirm(`Retry all failed jobs in ${e.selectedQueue}?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/retry-failed`).then(p,N=>console.error(N))},e.drainSelected=()=>{confirm(`Drain the ${e.selectedQueue} queue?`)&&t.post(`/api/admin/queue/${e.selectedQueue}/drain`).then(p,N=>console.error(N))},e.togglePause=()=>{let N=e.selectedStats&&e.selectedStats.paused?"resume":"pause";t.post(`/api/admin/queue/${e.selectedQueue}/${N}`).then(p,v=>console.error(v))},e.emptyQueue=()=>{confirm(`Empty the ${e.selectedQueue} queue? This removes ALL jobs.`)&&t.post(`/api/admin/queue/${e.selectedQueue}/empty`).then(p,N=>console.error(N))},e.pauseAll=()=>{confirm("Pause all queues?")&&t.post("/api/admin/queues/pause-all").then(p,N=>console.error(N))};let b=null;e.watch("query.search",()=>{r.timeout.cancel(b),b=r.timeout(p,350)}),e.expanded={},e.toggleJob=N=>{e.expanded[N.id]=!e.expanded[N.id]},e.humanTime=N=>{if(!N)return"";let v=new Date(N);return v.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",hour12:!1})+" "+v.toLocaleDateString([],{month:"short",day:"numeric"})},e.delayCountdown=N=>{if(!N)return"";var v=Math.max(0,Math.ceil((N-Date.now())/1e3));if(v<=0)return"resuming soon";var E=Math.floor(v/60),M=v%60;return"in "+(E>0?E+"m "+M+"s":M+"s")};function h(N){if(N<=0)return{ticks:[0],niceMax:1};let v=Math.pow(10,Math.floor(Math.log10(N))),E=v;N/E<2?E=v/2:N/E>5&&(E=v*2);let M=Math.ceil(N/E)*E,V=[];for(let _=0;_<=M;_+=E)V.push(_);return{ticks:V,niceMax:M}}function w(){var N=document.getElementById("q-throughput-chart");if(!N)return;var v=N.getContext("2d"),E=window.devicePixelRatio||1,M=N.parentElement.getBoundingClientRect(),V=44,_=44,G=22,te=Math.max(200,Math.round(M.width)),X=Math.max(180,Math.min(420,Math.round(M.height)||180)),O=te-V-_,U=X-G;N.width=te*E,N.height=X*E,N.style.width=te+"px",N.style.height=X+"px",v.setTransform(E,0,0,E,0,0);var C=document.body.classList.contains("dark-mode"),L="#8A857C",z=C?"rgba(255,255,255,0.06)":"rgba(0,0,0,0.06)",K=C?"#6FBF8A":"#2F7D4F",ie=C?"rgba(111,191,138,0.12)":"rgba(47,125,79,0.08)",se=C?"#F08A82":"#B42318",Y=C?"rgba(240,138,130,0.08)":"rgba(180,35,24,0.06)",he=getComputedStyle(document.body).getPropertyValue("--q-time-series").trim()||(C?"#E0A94A":"#946512"),Se=e.metricsPoints||[];if(Se.length===0){v.fillStyle=L,v.font="13px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No metrics data yet",te/2,X/2),R=null;return}var Ue=Se.map(function(we){return we.completed}),Be=Se.map(function(we){return we.failed}),Qe=Se.map(function(we){return we.avgMs});if(!Ue.some(Boolean)&&!Be.some(Boolean)){v.strokeStyle=C?"rgba(255,255,255,0.14)":"rgba(0,0,0,0.12)",v.beginPath(),v.moveTo(0,X-18.5),v.lineTo(te,X-18.5),v.stroke(),v.fillStyle=C?"#CFC8BD":"#4F4A42",v.font="500 14px Inter, system-ui, sans-serif",v.textAlign="center",v.fillText("No jobs processed in this window",te/2,X/2-6),v.fillStyle=L,v.font="12.5px Inter, system-ui, sans-serif",v.fillText("Completed and failed jobs will chart here",te/2,X/2+16),R=null;return}var He=Se.length,et=O/(He-1||1),Re=Math.max(1,Math.max.apply(null,Ue),Math.max.apply(null,Be)),Fe=h(Re),W=Math.max.apply(null,Qe),fe=W>0?h(W):{ticks:[0],niceMax:1},de=function(we){return U-we/Fe.niceMax*(U-10)},ce=function(we){return U-we/fe.niceMax*(U-10)},me=function(we){return V+we*et};v.textAlign="right",v.textBaseline="middle",v.font="11px Inter, system-ui, sans-serif",Fe.ticks.forEach(function(we){var be=de(we);v.strokeStyle=z,v.lineWidth=1,v.beginPath(),v.moveTo(V,be),v.lineTo(te-_,be),v.stroke(),v.fillStyle=L,we!==0&&v.fillText(we>=1e3?(we/1e3).toFixed(1)+"k":String(we),V-6,be)}),W>0&&(v.textAlign="left",fe.ticks.forEach(function(we){var be=ce(we);v.fillStyle=he,we!==0&&v.fillText(qn(we),te-_+6,be)}));var Me=Se[He-1].ts,A=Se[0].ts,T=Math.max(0,(Me-A)/6e4),F=[1,2,5,10,15,30,60,120,180,360,720,1440,2880,10080],J=F.find(function(we){return T/we<=4})||F[F.length-1],H=function(we){return we<60?we+"m":we<1440?we/60+"h":we/1440+"d"},Z=function(we){for(var be=0,ot=1;ot
Manage how GitHub shares your code. Your anonymizations and URLs stay the same.
Sign in to create and manage your anonymizations.
Connect through the GitHub App with read-only repository access.
Sign in with GitHubYour existing anonymizations and connections stay with your account.',5)])])):f("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(a(),l("section",vy,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[v("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):f("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(a(),l("p",yy,"GitHub sign-in is currently unavailable. Please try again later.")):f("v-if",!0)])])]),Oe(o,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}function Yc(e,t){let o=Xe("partial-view");return a(),l(F,null,[t[0]||(t[0]=Se('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.
Paste a repository, pull request, or gist URL, or pick one of your repositories. You\u2019ll choose the terms to redact next.
Manage how GitHub shares your code. Your anonymizations and URLs stay the same.
Sign in to create and manage your anonymizations.
Connect through the GitHub App with read-only repository access.
Sign in with GitHubYour existing anonymizations and connections stay with your account.',5)])])):f("v-if",!0),!e.site_options?.GITHUB_APP_ENABLED&&e.site_options?.GITHUB_OAUTH_ENABLED&&!e.accountRecovery?(a(),l("section",Ey,[...t[3]||(t[3]=[n("div",{class:"connection-title"},[n("h2",null,"Continue with GitHub")],-1),n("p",null,"Sign in to access your account. GitHub OAuth includes write access to private repositories.",-1),n("a",{class:"connection-link",target:"_self",href:"/github/login"},[g("Sign in with GitHub "),n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-arrow-right"})])],-1)])])):f("v-if",!0),e.site_options&&!e.site_options.GITHUB_APP_ENABLED&&!e.site_options.GITHUB_OAUTH_ENABLED?(a(),l("p",Sy,"GitHub sign-in is currently unavailable. Please try again later.")):f("v-if",!0)])])]),Oe(s,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])],64)}function Qc(e,t){let s=Xe("partial-view");return a(),l(q,null,[t[0]||(t[0]=Ee('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.
Paste a repository, pull request, or gist URL, or pick one of your repositories. You\u2019ll choose the terms to redact next.
Fill in the details \u2014 it only takes a minute.
Take ownership of an existing anonymized repository so it appears on your dashboard.
',3)),n("div",_8,[t[5]||(t[5]=n("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)),T((a(),l("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=le(s=>e.submitForm(s,()=>{e.claim()}),["prevent"]))},[n("div",V8,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),T(n("input",{type:"text",class:P(["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),[[o,{state:e.viewState,set:s=>{e.repoUrl=s},value:e.repoUrl,form:"claimForm",options:{}}]]),T(n("div",q8," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[Z,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",$8,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),T(n("input",{type:"text",class:P(["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),[[o,{state:e.viewState,set:s=>{e.repoId=s},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[v("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/Fill in the details \u2014 it only takes a minute.
Take ownership of an existing anonymized repository so it appears on your dashboard.
',3)),n("div",U8,[t[5]||(t[5]=n("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((a(),l("form",{class:"form needs-validation",name:"claimForm",novalidate:"",onSubmit:t[0]||(t[0]=ae(o=>e.submitForm(o,()=>{e.claim()}),["prevent"]))},[n("div",B8,[t[1]||(t[1]=n("label",{class:"paper-field-label",for:"repoUrl"},"GitHub repository URL",-1)),D(n("input",{type:"text",class:P(["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),[[s,{state:e.viewState,set:o=>{e.repoUrl=o},value:e.repoUrl,form:"claimForm",options:{}}]]),D(n("div",z8," No anonymization matches this repository and ID. Check both values and that you can access the repository on GitHub. ",512),[[Q,e.claimForm?.repoUrl?.errors?.not_found]])]),n("div",H8,[t[2]||(t[2]=n("label",{class:"paper-field-label",for:"repoId"},"Anonymized repository ID",-1)),D(n("input",{type:"text",class:P(["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),[[s,{state:e.viewState,set:o=>{e.repoId=o},value:e.repoId,form:"claimForm",options:{}}]]),t[3]||(t[3]=n("small",{id:"idHelp",class:"form-text text-muted"},[g("The ID is the last part of the anonymized URL: "),n("code",null,"anonymous.4open.science/r/1# Training loop for DeepLearnUtils + label names the service and the tooltip says who to contact. `),n("li",{class:P(["nav-item nav-extra-item d-none d-lg-block",{"in-user-menu":!!e.user?.username}])},[...t[19]||(t[19]=[n("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"},[n("svg",{class:"ui-icon d-lg-none mr-1","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug ")],-1)])],2),n("li",{class:P(["nav-item nav-support-item nav-extra-item d-none d-lg-block",{"in-user-menu":!!e.user?.username}])},[...t[20]||(t[20]=[n("a",{class:"nav-link nav-support-inline",href:"https://ko-fi.com/tdurieux",target:"_blank",rel:"noopener",title:"Donate on Ko-fi to help cover hosting costs"},[n("svg",{class:"ui-icon nav-heart","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})]),g("Support ")],-1)])],2),e.isDarkMode?f("v-if",!0):(a(),l("li",MF,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to dark mode","aria-label":"Switch to dark mode",onClick:t[1]||(t[1]=s=>{e.darkMode(!0)})},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-moon"})],-1)])])])),e.isDarkMode?(a(),l("li",VF,[n("button",{type:"button",class:"nav-link nav-icon",title:"Switch to light mode","aria-label":"Switch to light mode",onClick:t[2]||(t[2]=s=>{e.darkMode(!1)})},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sun"})],-1)])])])):f("v-if",!0),!e.user&&!e.isReviewerRoute?(a(),l("li",qF,[...t[23]||(t[23]=[n("a",{class:"nav-link btn-signin",target:"_self",href:"/signin","data-offset":"30"},[n("i",{class:"fab fa-github mr-1"}),g(" Sign in ")],-1)])])):f("v-if",!0),e.user?.username&&e.headerCanUpgrade&&!e.headerBillingPending?(a(),l("li",_F,[n("a",{class:"nav-link nav-upgrade",href:"/profile?upgrade=1",onClick:t[3]||(t[3]=ae(s=>e.openHeaderUpgrade(),["prevent"]))},"Upgrade")])):f("v-if",!0),e.user?(a(),l("li",$F,[n("a",LF,[e.user?.photo?(a(),l("img",{key:0,width:"22",height:"22",class:"rounded-circle",src:e.safeUrl(e.user?.photo)},null,8,FF)):f("v-if",!0),n("span",UF,c(e.user?.username),1)]),n("div",BF,[n("h6",zF,"Signed in as @"+c(e.user?.username),1),t[25]||(t[25]=Ee('SettingsDefaults, quotas, accountGitHub connectionsRepository access and OAuthClaim an anonymizationAttach an existing mirror to your accountReport a bugAbout this service, not a paperSource code',6)),e.headerShowSupport?(a(),l("a",HF,[...t[24]||(t[24]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-heart"})],-1),n("span",null,"Support the project",-1)])])):f("v-if",!0),t[26]||(t[26]=n("div",{class:"dropdown-divider"},null,-1)),t[27]||(t[27]=n("a",{class:"dropdown-item",href:"/api/user/logout",target:"_self"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-logout"})]),n("span",null,"Sign out")],-1))])])):f("v-if",!0)])])],2),e.generalMessage?(a(),l("div",{key:0,class:"navbar shadow generalMessage",innerHTML:e.sanitize(e.generalMessage)},null,8,jF)):f("v-if",!0),e.emailPromptOpen?(a(),l("dialog",{key:1,id:"email-prompt",class:"email-prompt","aria-labelledby":"email-prompt-title","aria-describedby":"email-prompt-reason",onCancel:t[8]||(t[8]=ae(s=>e.respondToEmailPrompt("later"),["prevent"]))},[n("form",{onSubmit:t[7]||(t[7]=ae(s=>e.respondToEmailPrompt("save"),["prevent"]))},[t[30]||(t[30]=n("h2",{id:"email-prompt-title"},"Stay informed about access problems",-1)),t[31]||(t[31]=n("p",{id:"email-prompt-reason"},"Get email alerts when your GitHub token or repository access fails.",-1)),t[32]||(t[32]=n("label",{for:"email-prompt-address"},"Email address",-1)),D(n("input",{id:"email-prompt-address",class:"form-control",type:"email",autocomplete:"email",maxlength:"254",required:"","onUpdate:modelValue":t[4]||(t[4]=s=>e.emailPromptAddress=s),disabled:e.emailPromptBusy},null,8,GF),[[pt,e.emailPromptAddress]]),e.emailPromptError?(a(),l("p",WF,c(e.emailPromptError),1)):f("v-if",!0),n("div",KF,[n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[5]||(t[5]=s=>e.respondToEmailPrompt("later"))},"Remind me later",8,YF),n("button",{type:"button",class:"btn btn-outline-ink",disabled:e.emailPromptBusy,onClick:t[6]||(t[6]=s=>e.respondToEmailPrompt("never"))},"Never",8,XF),n("button",{type:"submit",class:"btn btn-ink",disabled:e.emailPromptBusy},c(e.emailPromptBusy?"Saving\u2026":"Save"),9,JF)])],32)],32)):f("v-if",!0)],64)}var QF={class:"paper-landing"},ZF={class:"paper-hero"},xF={class:"paper-hero-copy"},eU={class:"paper-cta-row"},tU={key:0,href:"/signin",target:"_self",class:"btn-hero"},nU={key:1,href:"/anonymize",class:"btn-hero"},sU={class:"paper-stats-meta"},oU={key:0,class:"paper-stats-meta-left"},iU={key:0,class:"paper-stats-grid"},rU={class:"paper-stat-label"},aU={key:0,class:"paper-stat-delta"},lU={class:"demo paper-wrap","aria-label":"Try redaction"},dU={class:"demo-terms"},uU={class:"demo-panes"},cU={class:"pane"},pU={class:"demo-input-wrap"},fU={class:"pane-body demo-backdrop","aria-hidden":"true"},hU={key:0,class:"demo-match"},mU={class:"pane pane-after"},gU={class:"pane-header"},vU={class:"pane-url"},yU={class:"meta-redact"},bU={class:"pane-body demo-output","aria-live":"polite"},wU=["title"],kU={class:"paper-features paper-wrap","aria-label":"Product features"},CU={class:"paper-features-list",role:"tablist","aria-label":"Features","aria-orientation":"vertical"},EU=["onClick","onKeydown","id","aria-controls","aria-selected","tabindex"],SU={class:"paper-eyebrow"},NU={class:"pf-num"},RU={class:"pf-name"},PU={class:"paper-feature-title"},AU={key:0,class:"serif-hy"},DU={class:"paper-feature-more"},TU={class:"paper-feature-title paper-feature-title-m","aria-hidden":"true"},OU={key:0,class:"serif-hy"},IU=["href","target"],MU={class:"paper-features-stage"},VU=["id","aria-labelledby"],qU={class:"paper-frame"},_U={class:"paper-frame-bar","aria-hidden":"true"},$U={class:"url"},LU=["aria-label"],FU={key:0,class:"fm-form"},UU={key:1,class:"fm-viewer"},BU={key:2,class:"fm-dash"};function mp(e,t){let s=Xe("partial-view");return a(),l("div",QF,[f(" Hero: copy on the left, the product on the right "),n("section",ZF,[n("div",xF,[t[5]||(t[5]=n("div",{class:"paper-eyebrow"},"For double-anonymous peer review",-1)),t[6]||(t[6]=n("h1",{class:"hero-title"},[g(" Share the code,"),n("br"),n("span",{class:"accent"},"not the author.")],-1)),t[7]||(t[7]=n("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)),n("div",eU,[e.user?f("v-if",!0):(a(),l("a",tU,[...t[3]||(t[3]=[n("i",{class:"fab fa-github mr-2","aria-hidden":"true"},null,-1),g("Sign in with GitHub ",-1)])])),e.user?(a(),l("a",nU," Anonymize a repository \u2192 ")):f("v-if",!0),t[4]||(t[4]=n("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[8]||(t[8]=n("ul",{class:"paper-reassure"},[n("li",null,"Free, open source"),n("li",null,"Read-only access"),n("li",null,"Set an expiry date")],-1)),t[9]||(t[9]=n("p",{class:"paper-proof-mobile"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA",-1))]),t[10]||(t[10]=n("div",{class:"paper-hero-shot"},[n("div",{class:"paper-frame"},[n("div",{class:"paper-frame-bar","aria-hidden":"true"},[n("span",{class:"dots"},[n("i"),n("i"),n("i")]),n("span",{class:"url"},"anonymous.4open.science/r/paper-7f2a")]),n("div",{class:"hero-mock",role:"img","aria-label":"A reviewer browsing an anonymized repository: the author, affiliation, and email in the README are replaced by anonymous terms"},[n("div",{class:"hero-mock-tree","aria-hidden":"true"},[n("div",{class:"hero-mock-tree-title"},"Files"),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("data")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("experiments")]),n("div",{class:"hero-mock-row is-folder"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})]),g("src")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("LICENSE")]),n("div",{class:"hero-mock-row is-active"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("README.md")]),n("div",{class:"hero-mock-row"},[n("svg",{viewBox:"0 0 16 16"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})]),g("requirements.txt")])]),n("div",{class:"hero-mock-doc","aria-hidden":"true"},[n("div",{class:"hero-mock-doc-bar"},[n("strong",null,"README.md"),n("span",{class:"hero-mock-count"},"3 redacted")]),n("div",{class:"hero-mock-doc-body"},[n("div",{class:"hero-mock-h1"},"DeepLearnUtils"),n("p",null,[g("Developed by "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 1"},[n("i",null,"1")]),g(" at "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 2"},[n("i",null,"2")]),g(".")]),n("p",{class:"hm-opt"},"Utilities for reproducing the paper\u2019s experiments."),n("div",{class:"hero-mock-h2 hm-opt"},"Quick start"),n("pre",{class:"hm-opt"},`pip install -r requirements.txt +python experiments/run.py`),n("p",null,[g("Contact: "),n("span",{class:"redact",role:"img","aria-label":"Redacted term 3"},[n("i",null,"3")])])])])])])],-1))]),f(" Live stats "),n("section",{class:P(["paper-stats paper-wrap",{"is-empty":e.statsEmpty()}]),id:"metrics","aria-label":"Usage over the last 60 days"},[n("div",sU,[e.statsEmpty()?f("v-if",!0):(a(),l("div",oU,[...t[11]||(t[11]=[n("span",{class:"paper-stats-dot","aria-hidden":"true"},null,-1),g(),n("span",null,[g("Live \xB7 last 60 days"),n("span",{class:"paper-stats-daily"}," \xB7 updated daily")],-1)])])),t[12]||(t[12]=n("div",{class:"paper-stats-meta-right"},"Used by authors at ICSE \xB7 FSE \xB7 OOPSLA",-1))]),e.statsEmpty()?f("v-if",!0):(a(),l("div",iU,[(a(!0),l(q,null,x(e.cards,(i,o)=>(a(),l("div",{class:"paper-stat-card",key:i?.key},[n("div",{class:P(["paper-stat-value",{"is-pending":!e.stat}])},c(e.stat?e.fmt?.bigNum(i?.total):"\u2014"),3),n("div",rU,c(i?.label),1),e.history[i?.key].bars?.length>1&&e.history[i?.key].deltaToday>0?(a(),l("div",aU," +"+c(e.fmt?.number(e.history[i?.key].deltaToday))+" today ",1)):f("v-if",!0)]))),128))]))],2),f(" Before / after "),t[22]||(t[22]=n("section",{class:"paper-section-head paper-wrap"},[n("div",null,[n("div",{class:"paper-eyebrow"},"Try it"),n("h2",null,[g("The same repository, "),n("em",null,"minus you.")])]),n("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)),n("div",lU,[n("div",dU,[t[13]||(t[13]=n("label",{for:"demo-terms"},[g("Terms to redact "),n("span",null,[g("comma-separated"),n("span",{class:"dt-try"},", try adding your own")])],-1)),D(n("textarea",{id:"demo-terms",class:"demo-terms-input",rows:"1","onUpdate:modelValue":t[0]||(t[0]=i=>e.demoTerms=i),spellcheck:"false",autocomplete:"off",onKeydown:t[1]||(t[1]=kt(ae(()=>{},["prevent"]),["enter"]))},null,544),[[pt,e.demoTerms]])]),n("div",uU,[n("div",cU,[t[15]||(t[15]=n("div",{class:"pane-header"},[n("span",{class:"pane-label"},[g("Your repository "),n("span",{class:"pane-edit-hint"},"\xB7 editable")]),n("span",{class:"pane-url"},"github.com/jane-smith/DeepLearnUtils")],-1)),n("div",pU,[n("div",fU,[(a(!0),l(q,null,x(e.demoParts(),(i,o)=>(a(),l(q,{key:o},[i.redacted?(a(),l("mark",hU,c(i.original),1)):(a(),l(q,{key:1},[g(c(i.text),1)],64))],64))),128)),t[14]||(t[14]=g("\u200B",-1))]),D(n("textarea",{class:"pane-body demo-input","onUpdate:modelValue":t[2]||(t[2]=i=>e.demoText=i),spellcheck:"false","aria-label":"Sample README to anonymize"},null,512),[[pt,e.demoText]])])]),n("div",mU,[n("div",gU,[t[16]||(t[16]=n("span",{class:"pane-label"},"What reviewers see",-1)),n("span",vU,[n("span",yU,c(e.demoCount())+" redacted",1)])]),n("div",bU,[(a(!0),l(q,null,x(e.demoParts(),(i,o)=>(a(),l(q,{key:o},[i.redacted?(a(),l("span",{key:0,class:"redact-chip",title:"Replaces \u201C"+i.original+"\u201D"},c(i.text),9,wU)):(a(),l(q,{key:1},[g(c(i.text),1)],64))],64))),128))])])])]),f(" What you get: one screenshot, three tabs "),t[23]||(t[23]=n("section",{class:"paper-section-head paper-wrap",id:"about"},[n("div",null,[n("div",{class:"paper-eyebrow"},"What you get"),n("h2",null,"Anonymize, review, manage.")]),n("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)),n("section",kU,[n("div",CU,[(a(!0),l(q,null,x(e.features,(i,o)=>(a(),l("div",{class:P(["paper-feature",{"is-on":e.feature===i?.key}]),key:i?.key},[n("button",{type:"button",class:"paper-feature-tab",role:"tab",onClick:r=>e.selectFeature(i.key),onKeydown:r=>e.featureKeydown(r,o),id:"feature-tab-"+i?.key,"aria-controls":"feature-panel-"+i?.key,"aria-selected":e.feature===i?.key,tabindex:e.feature===i?.key?0:-1},[n("span",SU,[n("span",NU,c(i?.num),1),t[17]||(t[17]=n("span",{class:"pf-sep"}," \xB7 ",-1)),n("span",RU,c(i?.eyebrow),1)]),n("span",PU,[g(c(i?.title.split("-")[0]),1),i?.title.includes("-")?(a(),l("span",AU,"-")):f("v-if",!0),g(c(i?.title.split("-").slice(1).join("-"))+" "+c(i?.accent),1)])],40,EU),n("div",DU,[n("span",TU,[g(c(i?.title.split("-")[0]),1),i?.title.includes("-")?(a(),l("span",OU,"-")):f("v-if",!0),g(c(i?.title.split("-").slice(1).join("-"))+" "+c(i?.accent),1)]),n("p",null,c(i?.text),1),n("a",{class:"paper-link-arrow",href:e.safeUrl(e.featureHref(i)),target:e.featureTarget(i)},c(i?.cta)+" \u2192",9,IU)])],2))),128))]),n("div",MU,[(a(!0),l(q,null,x(e.features,(i,o)=>D((a(),l("div",{class:"paper-feature-panel",role:"tabpanel",key:i?.key,id:"feature-panel-"+i?.key,"aria-labelledby":"feature-tab-"+i?.key},[n("div",qU,[n("div",_U,[t[18]||(t[18]=n("span",{class:"dots"},[n("i"),n("i"),n("i")],-1)),n("span",$U,c(i?.url),1)]),n("div",{class:P(["feat-mock","is-"+i?.key]),role:"img","aria-label":i?.alt},[i?.key==="anonymize"?(a(),l("div",FU,[...t[19]||(t[19]=[Ee('GitHub repositorygithub.com/jane-smith/DeepLearnUtilsTerms to redactJane SmithMIT CSAILjane.smith@mit.edu+ Add termReviewers can seeImagesPDFsLinksNotebooksExpiresMar 31, 2027anonymous.4open.science/r/paper-7f2aAnonymize repository',6)])])):i?.key==="review"?(a(),l("div",UU,[...t[20]||(t[20]=[Ee(`datasrctrain.pyREADME.mdLICENSE`,2)])])):(a(),l("div",VU,[...t[21]||(t[21]=[Se('1# Training loop for DeepLearnUtils 2# Author: XXXX-1, XXXX-2 3import torch 4from utils import load_config @@ -55,18 +55,18 @@ python experiments/run.py`),n("p",null,[v("Contact: "),n("span",{class:"redact", 7 model = build_model(config) 8 for epoch in range(config.epochs): 9 loss = step(model) -10 log("epoch %d: %.3f", epoch, loss)ProjectStatusViewsExpiresDeepLearnUtilspaper-7f2a \xB7 ICSE 2027Ready41Mar 31, 2027vision-bench#212pull request \xB7 FSE 2027Ready12Nevergraph-repairgr-91abUpdating5Jan 5, 2027JarSiftOOPSLA 2025Expired72Sep 28, 2026',5)])]))],10,IU)])],8,PU)),[[Z,e.feature===i?.key]])),128))])]),f(" FAQ teaser "),t[24]||(t[24]=Se(' Read the full FAQ \u2192Before you sign inThe questions that come up most.
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.
What happens when an anonymized repository expires?You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.
',2)),Oe(o,{name:"partials/footer.htm",state:e.viewState},null,8,["state"])])}var qU={class:"paper-empty"},$U={class:"paper-empty-inner"},LU={key:0,class:"paper-eyebrow"},FU={key:1,class:"paper-eyebrow"},UU={key:2,class:"paper-empty-title"},BU=["textContent"];function fp(e,t){return a(),l("div",qU,[n("div",$U,[e.error?f("v-if",!0):(a(),l("div",LU,"Working")),e.error?(a(),l("div",FU,"Error")):f("v-if",!0),e.error?f("v-if",!0):(a(),l("h1",UU,[...t[0]||(t[0]=[v(" Loading",-1),n("span",{class:"dot-anim"},"\u2026",-1)])])),e.error?(a(),l("h1",{key:3,class:"paper-empty-title",textContent:p(e.fmt.translate(e.error))},null,8,BU)):f("v-if",!0)])])}var zU={class:"container paper-page paper-settings"},HU={class:"paper-crumbs"},jU={class:"here"},GU={class:"paper-page-title"},WU={class:"paper-settings-body"},KU={class:"paper-settings-toc"},YU={href:"#conf-billing"},XU={class:"form needs-validation paper-settings-main",name:"conference",novalidate:""},QU={id:"conf-basics",class:"paper-settings-section"},JU={class:"form-group"},ZU={class:"invalid-feedback"},xU={class:"invalid-feedback"},e7={class:"form-group"},t7={class:"invalid-feedback"},n7={class:"form-group"},o7={class:"invalid-feedback"},s7={class:"invalid-feedback"},i7={id:"conf-window",class:"paper-settings-section"},r7={class:"form-grid-2"},a7={class:"form-group"},l7={class:"invalid-feedback"},d7={class:"invalid-feedback"},u7={class:"form-group"},c7={class:"invalid-feedback"},p7={class:"invalid-feedback"},f7={id:"conf-rendering",class:"paper-settings-section"},h7={class:"form-check"},m7={class:"form-check-input",type:"checkbox",id:"link",name:"link"},g7={class:"form-check"},v7={class:"form-check-input",type:"checkbox",id:"image",name:"image"},y7={class:"form-check"},b7={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},w7={class:"form-check"},k7={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},C7={id:"conf-features",class:"paper-settings-section"},E7={class:"form-check"},S7={class:"form-check-input",type:"checkbox",id:"update",name:"update"},N7={class:"form-check"},R7={class:"form-check-input",type:"checkbox",id:"page",name:"page"},D7={id:"conf-plan",class:"paper-settings-section"},P7={key:0,class:"paper-section-copy"},A7={class:"conference-tiers",role:"radiogroup","aria-label":"Review package size"},T7=["value","checked","onChange"],O7={class:"conference-tier-head"},I7={key:0,class:"conference-tier-pill"},M7={class:"conference-tier-who"},_7={key:0,class:"conference-tier-price"},V7={class:"conference-tier-size"},q7={key:1,class:"conference-tier-per"},$7={key:2,class:"paper-plan-grid"},L7=["value"],F7=["textContent"],U7={class:"paper-plan-price"},B7=["innerHTML"],z7={key:3,class:"settings-notice",role:"status"},H7={key:0,id:"conf-billing",class:"paper-settings-section"},j7={class:"form-group"},G7={class:"form-group"},W7={class:"form-group"},K7={class:"form-group"},Y7={class:"form-grid-3"},X7={class:"form-group"},Q7={class:"form-group"},J7={class:"form-group"},Z7={class:"form-group"},x7={class:"paper-settings-footer"},e9=["textContent"],t9=["textContent"],n9=["disabled"];function hp(e,t){let o=Pe("paper-scrollspy"),i=Pe("field"),s=Pe("form");return a(),l("div",zU,[n("div",HU,[t[1]||(t[1]=n("a",{href:"/dashboard"},"My work",-1)),t[2]||(t[2]=v(" \xA0/\xA0 ",-1)),t[3]||(t[3]=n("a",{href:"/conferences"},"Conferences",-1)),t[4]||(t[4]=v(" \xA0/\xA0 ",-1)),n("span",jU,p(e.editionMode?"Edit":"New"),1)]),n("h1",GU,[v(p(e.editionMode?"Edit":"Create a")+" ",1),t[5]||(t[5]=n("em",null,"conference",-1))]),t[44]||(t[44]=n("p",{class:"paper-page-lede"}," Give chairs access to every anonymization submitted to a venue. One payment hosts every submission, so authors don't pay during the review window. ",-1)),n("div",WU,[T((a(),l("aside",KU,[t[7]||(t[7]=n("div",{class:"paper-settings-toc-head"},"On this page",-1)),n("nav",null,[t[6]||(t[6]=Se('BasicsReview windowRendering defaultsFeaturesPlan',5)),T(n("a",YU,"Billing",512),[[Z,e.plan?.pricePerRepo>0]])])])),[[o]]),T((a(),l("form",XU,[n("section",QU,[t[12]||(t[12]=n("div",{class:"paper-section-eyebrow"},"Basics",-1)),n("div",JU,[t[8]||(t[8]=n("label",{class:"paper-field-label",for:"name"},"Conference name",-1)),T(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.name=r},value:e.options?.name,form:"conference",options:{}}]]),T(n("div",ZU," The name of the conference is invalid. ",512),[[Z,e.conference?.name?.errors?.invalid]]),T(n("div",xU," The name of the conference is required. ",512),[[Z,e.conference?.name?.errors?.required]])]),n("div",e7,[t[9]||(t[9]=n("label",{class:"paper-field-label",for:"url"},"Website",-1)),T(n("input",{type:"url",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.url=r},value:e.options?.url,form:"conference",options:{}}]]),T(n("div",t7," The url of the conference is invalid. ",512),[[Z,e.conference?.url?.errors?.url]])]),n("div",n7,[t[10]||(t[10]=n("label",{class:"paper-field-label",for:"conferenceID"},"Conference ID",-1)),T(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.conferenceID=r},value:e.options?.conferenceID,form:"conference",options:{}}]]),t[11]||(t[11]=n("small",{class:"form-text text-muted"},[v("3\u201310 characters, letters, numbers, "),n("code",null,"-"),v(" and "),n("code",null,"_"),v(". Authors reference this when they anonymize.")],-1)),T(n("div",{class:"invalid-feedback"}," The conference ID '"+p(e.options?.conferenceID)+"' is already used. ",513),[[Z,e.conference?.conferenceID?.errors?.used]]),T(n("div",o7," The conference ID is required. ",512),[[Z,e.conference?.conferenceID?.errors?.required]]),T(n("div",s7," The format of the conference ID is incorrect ([a-zA-Z0-9-_]{3,10}). ",512),[[Z,e.conference?.conferenceID?.errors?.pattern]])])]),n("section",i7,[t[17]||(t[17]=n("div",{class:"paper-section-eyebrow"},"Review window",-1)),n("div",r7,[n("div",a7,[t[13]||(t[13]=n("label",{class:"paper-field-label",for:"startDate"},"Start date",-1)),T(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.startDate?.invalid&&(e.conference?.startDate?.touched||e.conference?.submitted)}]),name:"startDate",id:"startDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.startDate=r},value:e.options?.startDate,form:"conference",options:{}}]]),t[14]||(t[14]=n("small",{class:"form-text text-muted"},"Beginning of the review process.",-1)),T(n("div",l7," Start date is required. ",512),[[Z,e.conference?.startDate?.errors?.required]]),T(n("div",d7," Start date must be before end date. ",512),[[Z,e.conference?.startDate?.errors?.invalid]])]),n("div",u7,[t[15]||(t[15]=n("label",{class:"paper-field-label",for:"endDate"},"End date",-1)),T(n("input",{type:"date",class:P(["form-control",{"is-invalid":e.conference?.endDate?.invalid&&(e.conference?.endDate?.touched||e.conference?.submitted)}]),name:"endDate",id:"endDate",required:""},null,2),[[i,{state:e.viewState,set:r=>{e.options.endDate=r},value:e.options?.endDate,form:"conference",options:{}}]]),t[16]||(t[16]=n("small",{class:"form-text text-muted"},"All repositories expire on this date.",-1)),T(n("div",c7," End date is required. ",512),[[Z,e.conference?.endDate?.errors?.required]]),T(n("div",p7," End date is invalid. ",512),[[Z,e.conference?.endDate?.errors?.invalid]])])])]),n("section",f7,[t[26]||(t[26]=n("div",{class:"paper-section-eyebrow"},"Rendering defaults",-1)),n("div",h7,[T(n("input",m7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.link=r},value:e.options?.options?.link,form:"conference",options:{}}]]),t[18]||(t[18]=n("label",{class:"form-check-label",for:"link"},"Keep links",-1)),t[19]||(t[19]=n("small",{class:"form-text text-muted"},"Keep or remove all links from text files.",-1))]),n("div",g7,[T(n("input",v7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.image=r},value:e.options?.options?.image,form:"conference",options:{}}]]),t[20]||(t[20]=n("label",{class:"form-check-label",for:"image"},"Display images",-1)),t[21]||(t[21]=n("small",{class:"form-text text-muted"},"Images are not anonymized.",-1))]),n("div",y7,[T(n("input",b7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.pdf=r},value:e.options?.options?.pdf,form:"conference",options:{}}]]),t[22]||(t[22]=n("label",{class:"form-check-label",for:"pdf"},"Display PDFs",-1)),t[23]||(t[23]=n("small",{class:"form-text text-muted"},"PDFs are not anonymized.",-1))]),n("div",w7,[T(n("input",k7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.notebook=r},value:e.options?.options?.notebook,form:"conference",options:{}}]]),t[24]||(t[24]=n("label",{class:"form-check-label",for:"notebook"},"Display notebooks",-1)),t[25]||(t[25]=n("small",{class:"form-text text-muted"},"Render Jupyter notebooks instead of raw JSON.",-1))])]),n("section",C7,[t[31]||(t[31]=n("div",{class:"paper-section-eyebrow"},"Features",-1)),n("div",E7,[T(n("input",S7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.update=r},value:e.options?.options?.update,form:"conference",options:{}}]]),t[27]||(t[27]=n("label",{class:"form-check-label",for:"update"},"Auto-update from GitHub",-1)),t[28]||(t[28]=n("small",{class:"form-text text-muted"},"Pull the latest commit automatically (hourly maximum).",-1))]),n("div",N7,[T(n("input",R7,null,512),[[i,{state:e.viewState,set:r=>{e.options.options.page=r},value:e.options?.options?.page,form:"conference",options:{}}]]),t[29]||(t[29]=n("label",{class:"form-check-label",for:"page"},"GitHub Pages",-1)),t[30]||(t[30]=n("small",{class:"form-text text-muted"},"Enable anonymized GitHub pages.",-1))])]),n("section",D7,[t[35]||(t[35]=n("div",{class:"paper-section-eyebrow"},"Plan",-1)),e.editionMode?(a(),l("p",P7,p(e.conferencePlanName(e.options?.plan?.planID))+". The plan and review dates can't change after creation.",1)):e.conferenceTiers().length?(a(),l(F,{key:1},[t[33]||(t[33]=n("p",{class:"paper-section-copy"},"Pick the package that fits the number of submissions you expect. One payment hosts every submission, so authors don't pay.",-1)),n("div",A7,[(a(!0),l(F,null,se(e.conferenceTiers(),r=>(a(),l("label",{class:P(["conference-tier",{"is-selected":e.options?.plan?.planID===r.id}]),key:r.id},[n("input",{type:"radio",name:"planPicker",value:r.id,checked:e.options?.plan?.planID===r.id,onChange:d=>e.options.plan.planID=r.id},null,40,T7),n("span",O7,[n("strong",null,p(r.name),1),r.id==="conference"&&e.conferenceTiers().length>1?(a(),l("span",I7,"Most common")):f("v-if",!0)]),n("span",M7,p(e.conferenceAudience(r.id)),1),r.amount!=null?(a(),l("span",_7,[n("strong",null,p(e.conferenceAmount(r)),1),t[32]||(t[32]=v(" once",-1))])):f("v-if",!0),n("span",V7,"Up to "+p(r.repositories)+" papers \xB7 "+p(e.conferenceBytes(r.storage)),1),r.amount!=null&&r.repositories?(a(),l("span",q7,"About "+p(e.conferenceAmount(r,r.amount/r.repositories))+" per paper",1)):f("v-if",!0)],2))),128))]),t[34]||(t[34]=Se(' Ready for review?
Create an anonymous mirror in a couple of minutes. Reviewers just open the link.
Every package includes
- A review window of up to 180 days
- Automatic updates for every submission
- Links stay online until the review window ends
- A dashboard of every submission for chairs
Nothing renews \xB7 Tax shown at checkout \xB7 Expecting more submissions? Email tdurieux@anonymous.4open.science
Create the conference, then pay from its page. Authors can submit once the payment is confirmed.
',2))],64)):e.plans.length?(a(),l("div",$7,[(a(!0),l(F,null,se(e.plans,r=>(a(),l("label",{class:P(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}]),key:r.id},[T(n("input",{type:"radio",name:"planPicker",value:r?.id},null,8,L7),[[i,{state:e.viewState,set:d=>{e.options.plan.planID=d},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:p(r?.name)},null,8,F7),n("div",U7,p(r.pricePerRepo>0?e.fmt?.number(r.pricePerRepo,2)+" \u20AC per repository":"Free"),1),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,B7)],2))),128))])):e.plansLoaded?(a(),l("p",z7,"New conferences are unavailable right now. Please try again later.")):f("v-if",!0)]),e.plan?.pricePerRepo>0?(a(),l("section",H7,[t[43]||(t[43]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",j7,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),T(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",G7,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),T(n("input",{type:"email",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",W7,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),T(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",K7,[T(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",Y7,[n("div",X7,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),T(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",Q7,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),T(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",J7,[t[41]||(t[41]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),T(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",Z7,[t[42]||(t[42]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),T(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):f("v-if",!0),n("div",x7,[e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:p(e.error)},null,8,e9)):f("v-if",!0),e.message?(a(),l("div",{key:1,class:"alert alert-success",role:"alert",textContent:p(e.message)},null,8,t9)):f("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=le(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},p(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,n9)])])),[[s,e.viewState]])])])}var o9={key:0,class:"dir-card","aria-label":"Repository files"},s9=["onClick"],i9={class:"dir-name"},r9=["href"],a9={class:"dir-name"},l9={class:"dir-meta"},d9={class:"file-card-head"},u9={class:"file-card-path"},c9={class:"breadcrumb paths","aria-label":"Path"},p9={class:"breadcrumb-item breadcrumb-root"},f9=["href","title","textContent"],h9=["aria-current"],m9=["aria-label"],g9={class:"mobile-sub ms"},v9=["title"],y9={class:"ms-item"},b9={key:1,class:"ms-item"},w9={key:2,class:"ms-item"},k9=["aria-label","title"],C9={class:"ui-icon","aria-hidden":"true"},E9=["href"],S9={key:0,class:"file-card-meta"},N9=["title"],R9={class:"meta-extra"},D9={key:1,class:"file-card-meta"},P9=["title"],A9={class:"file-card-actions"},T9={key:0,class:"csv-toggle seg-filter",role:"radiogroup","aria-label":"CSV view"},O9=["aria-checked"],I9=["aria-checked"],M9={key:1,class:"symbols"},_9=["aria-expanded"],V9={key:0,class:"symbols-menu",role:"menu"},q9={class:"symbols-head"},$9=["onClick"],L9={class:"symbols-name"},F9={class:"symbols-line"},U9=["title"],B9={key:3,class:"tb-view",role:"group","aria-label":"View tools"},z9=["title"],H9=["aria-pressed"],j9=["title"],G9={key:4,class:"tb-file",role:"group","aria-label":"File actions"},W9=["target","title","href"],K9=["aria-label","title"],Y9={class:"ui-icon","aria-hidden":"true"},X9=["href"],Q9=["target","href","download"],J9=["aria-label"],Z9={class:"ui-icon","aria-hidden":"true"},x9=["href"],eB={key:6,class:"tb-toc-m"},tB=["aria-expanded"],nB=["onClick"],oB={class:"tb-more"},sB=["aria-expanded"],iB={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},rB={key:0,class:"tb-menu-note"},aB={key:1,class:"tb-menu-note tb-menu-meta"},lB={key:2,class:"tb-menu-sep"},dB={key:4,class:"tb-menu-sep"},uB=["aria-checked"],cB={key:0,class:"tb-menu-check"},pB={class:"ui-icon","aria-hidden":"true"},fB=["href"],hB={key:9,class:"tb-menu-sep"},mB=["target","href"],gB=["target","href"],vB=["target","href","download"],yB=["target","href"],bB=["href"],wB=["target","href"],kB=["placeholder","aria-invalid"],CB=["aria-label"],EB={class:"csv-table"},SB=["aria-label"],NB={class:"csv-rownum"},RB=["aria-label"],DB={key:1,class:"file-card-body"},PB={key:2,class:"md-find-bar",role:"search"},AB=["value"],TB={class:"md-find-nav"},OB=["disabled"],IB=["disabled"],MB={class:"md-find-count","aria-live":"polite"},_B=["aria-pressed"],VB={key:3,class:"reading-layout"},qB=["innerHTML"],$B={key:0,class:"readme-toc","aria-label":"On this page"},LB={class:"toc-rail"},FB=["href","onClick"],UB={class:"file-card-head"},BB={class:"file-card-path"},zB={class:"breadcrumb paths","aria-label":"Path"},HB={class:"breadcrumb-item breadcrumb-root"},jB=["href","title","textContent"],GB=["aria-current"],WB=["aria-label"],KB={class:"mobile-sub ms"},YB=["title"],XB={class:"ms-item"},QB={key:1,class:"ms-item"},JB={key:2,class:"ms-item"},ZB=["aria-label","title"],xB={class:"ui-icon","aria-hidden":"true"},ez=["href"],tz={class:"file-card-meta"},nz=["title"],oz={class:"file-card-actions"},sz={key:0,class:"file-card-state",title:"Files over the size limit can't be previewed or downloaded from this link"},iz={key:1,class:"tb-file",role:"group","aria-label":"File actions"},rz=["target","title","href"],az=["target","href","download"],lz={class:"tb-more"},dz=["aria-expanded"],uz={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},cz={key:0,class:"tb-menu-note"},pz={key:1,class:"tb-menu-sep"},fz=["target","href"],hz=["target","href","download"],mz=["target","href"],gz={key:0,class:"media-stage"},vz=["src","alt"],yz={key:1,class:"media-stage"},bz=["src"],wz={key:2,class:"media-stage is-audio"},kz=["src"],Cz={key:4,class:"notebook-body"},Ez={key:5,class:"file-state"},Sz={class:"file-state-msg"},Nz={key:0,class:"file-state-actions"},Rz=["target","href","download"],Dz={key:6,class:"file-state",role:"alert"},Pz={class:"file-state-title"},Az={key:0,class:"file-state-msg"},Tz={key:1,class:"file-state-msg"},Oz={key:2,class:"file-state-actions"},Iz=["href"],Mz={key:7,class:"file-state"},_z={key:4,class:"file-error container d-flex h-100"},Vz={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},qz={class:"paper-error-msg"},$z={key:5,class:"file-error container d-flex h-100"},Lz={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},Fz={id:"viewer-error-title",class:"paper-empty-title"},Uz={class:"paper-error-actions"},Bz={key:0,href:"/",class:"btn btn-sm"},zz={key:1,href:"/faq",class:"btn btn-sm"},Hz={key:2,class:"btn btn-outline-ink",href:"/dashboard"},jz={key:6,class:"viewer-loading","aria-busy":"true"},Gz={class:"viewer-loading-status",role:"status","aria-live":"polite"},Wz={class:"viewer-loading-name sr-only"},Kz={key:0},Yz={class:"viewer-loading-lines","aria-hidden":"true"},Xz={key:7,class:"file-error container d-flex h-100"},Qz={key:8,class:"file-error container d-flex h-100"};function mp(e,t){let o=Xe("html-doc"),i=Xe("pdfviewer"),s=Xe("notebook"),r=Pe("code-editor");return a(),l(F,null,[e.sidebarHidden&&e.type=="html"&&e.content!=null&&e.paths?.length===1&&/^readme/i.test(e.paths[0]||"")&&e.files?.length?(a(),l("section",o9,[t[46]||(t[46]=n("header",{class:"dir-card-head"},[n("span",{class:"dir-card-title"},"Files"),n("span",{class:"dir-card-sub"},"Snapshot of the repository at review time")],-1)),n("ul",{class:P(["dir-list",{"is-expanded":e.dirExpanded}])},[(a(!0),l(F,null,se(e.rootEntries(),d=>(a(),l("li",{key:d.name},[d.size==null?(a(),l("button",{key:0,type:"button",class:"dir-row",onClick:c=>e.revealFolder(d.name)},[t[43]||(t[43]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})],-1)),n("span",i9,p(d.name),1),t[44]||(t[44]=n("span",{class:"dir-meta"},"Folder",-1))],8,s9)):(a(),l("a",{key:1,class:P(["dir-row",{"is-current":d.name===e.paths[0]}]),href:e.safeUrl("/r/"+e.repoId+"/"+encodeURIComponent(d.name))},[t[45]||(t[45]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})],-1)),n("span",a9,p(d.name),1),n("span",l9,p(e.formatSize(d.size)),1)],10,r9))]))),128))],2),!e.dirExpanded&&e.files.length>8?(a(),l("button",{key:0,type:"button",class:"dir-more",onClick:t[0]||(t[0]=d=>e.dirExpanded=!0)},"Show all "+p(e.files.length)+" items",1)):f("v-if",!0)])):f("v-if",!0),(e.type=="text"||e.type=="code"||e.type=="html"||e.type=="html-doc"&&e.showSource)&&e.content!=null?(a(),l("section",{key:1,class:P(["file-card",{"is-code":e.type!="html","no-wrap":!e.wrapLines}])},[n("header",d9,[n("div",u9,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[1]||(t[1]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",c9,[n("li",p9,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:p(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,f9)]),(a(!0),l(F,null,se(e.paths,(d,c)=>(a(),l("li",{class:"breadcrumb-item","aria-current":c===e.paths.length-1?"page":null},[(a(!0),l(F,null,se(e.redactParts(d),(u,y)=>(a(),l(F,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,p(u.n),1)],8,m9)):(a(),l(F,{key:1},[v(p(u.t),1)],64))],64))),128))],8,h9))),256))]),n("span",g9,[e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[v(p(e.redactionCount()),1),t[48]||(t[48]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,v9)):f("v-if",!0),n("span",y9,p(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.fileSize(e.filePath)!=null?(a(),l("span",b9,p(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0),e.type!="html"&&typeof e.content=="string"?(a(),l("span",w9,p(e.fmt?.number(e.content.split(` -`).length))+" lines",1)):f("v-if",!0)]),T(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[2]||(t[2]=d=>e.copyPath())},[(a(),l("svg",C9,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,E9)]))],8,k9),[[Z,e.filePath]])]),e.type!="html"&&typeof e.content=="string"?(a(),l("span",S9,[e.redactionCount()?(a(),l(F,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[v(p(e.redactionCount()),1),t[49]||(t[49]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,N9),t[50]||(t[50]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),v(p(e.languageName||"Text"),1),n("span",R9,[t[51]||(t[51]=n("span",{class:"sep"},"\xB7",-1)),v(p(e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)]),t[52]||(t[52]=n("span",{class:"sep"},"\xB7",-1)),v(p(e.fmt?.number(e.content.split(` -`).length))+" lines",1)])):f("v-if",!0),e.type=="html"?(a(),l("span",D9,[e.redactionCount()?(a(),l(F,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[v(p(e.redactionCount()),1),t[53]||(t[53]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,P9),t[54]||(t[54]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),t[56]||(t[56]=v("Markdown",-1)),e.fileSize(e.filePath)!=null?(a(),l(F,{key:1},[t[55]||(t[55]=n("span",{class:"sep"},"\xB7",-1)),v(p(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)])):f("v-if",!0),e.preview&&e.previewPreserved()?(a(),l("button",{key:2,type:"button",class:"rp-preserved-tag",onClick:t[3]||(t[3]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",A9,[e.isCsv()?(a(),l("div",T9,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.csvView==="table"}]),"aria-checked":e.csvView==="table",onClick:t[4]||(t[4]=d=>e.csvView="table")},"Table",10,O9),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.csvView==="raw"}]),"aria-checked":e.csvView==="raw",onClick:t[5]||(t[5]=d=>e.csvView="raw"),title:"Show the file as text with line numbers"},"Text",10,I9)])):f("v-if",!0),e.type!="html"&&e.symbols().length>1?(a(),l("div",M9,[n("button",{type:"button",class:P(["btn btn-sm btn-ghost btn-symbols",{"is-on":e.symbolsOpen}]),"aria-expanded":e.symbolsOpen?"true":"false","aria-haspopup":"true",title:"Symbols in this file",onClick:t[6]||(t[6]=d=>e.symbolsOpen=!e.symbolsOpen)},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-list"})],-1),n("span",{class:"btn-find-label"},"Symbols",-1)])],10,_9),e.symbolsOpen?(a(),l("div",V9,[n("div",q9,p(e.symbols().length)+" "+p(e.symbols().length===1?"symbol":"symbols"),1),(a(!0),l(F,null,se(e.symbols(),d=>(a(),l("button",{type:"button",class:"symbols-item",role:"menuitem",key:d.line+d.name,onClick:c=>e.goToSymbol(d.line)},[n("span",{class:P(["symbols-kind","is-"+d.kind])},p(d.kind==="class"?"C":d.kind==="function"?"\u0192":"v"),3),n("span",L9,p(d.name),1),n("span",F9,p(d.line),1)],8,$9))),128))])):f("v-if",!0)])):f("v-if",!0),e.type=="html"?(a(),l("button",{key:2,type:"button",class:P(["btn btn-sm btn-ghost btn-icon-only btn-find btn-md-find",{"is-on":e.mdFindOpen}]),"aria-label":"Find on this page",title:"Find on this page ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[7]||(t[7]=d=>e.toggleMdFind())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],10,U9)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?(a(),l("div",B9,[e.type!="html"?(a(),l("button",{key:0,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-goto","aria-label":"Go to line",title:"Go to line ("+(e.isMac?"\u2318":"Ctrl+")+"G)",onClick:t[8]||(t[8]=d=>e.gotoLine())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1)])],8,z9)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:1,type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost btn-toggle",{"is-on":e.wrapLines}]),"aria-pressed":e.wrapLines?"true":"false","aria-label":"Wrap lines",title:"Wrap lines (Alt+Z)",onClick:t[9]||(t[9]=d=>e.toggleWrap())},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)])],10,H9)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:2,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-find","aria-label":"Find in file",title:"Find in file ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[10]||(t[10]=d=>e.findInFile())},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],8,j9)):f("v-if",!0)])):f("v-if",!0),!e.preview||e.url?(a(),l("div",G9,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="html"?"Open the Markdown source":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,W9),typeof e.content=="string"?(a(),l("button",{key:0,type:"button",class:"tb-seg-btn tb-seg-icon","aria-label":e.contentCopied?"Copied":"Copy file contents",title:e.contentCopied?"Copied":"Copy file contents",onClick:t[11]||(t[11]=d=>e.copyContent())},[(a(),l("svg",Y9,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,X9)]))],8,K9)):f("v-if",!0),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,Q9)])):f("v-if",!0),typeof e.content=="string"?(a(),l("button",{key:5,type:"button",class:"btn btn-sm btn-icon-only btn-ghost tb-copy-m","aria-label":e.contentCopied?"Copied":"Copy file contents",onClick:t[12]||(t[12]=d=>e.copyContent())},[(a(),l("svg",Z9,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,x9)]))],8,J9)):f("v-if",!0),e.type=="html"&&e.readmeToc().length>=3?(a(),l("div",eB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-toc-btn",{"is-on":e.tocOpen}]),"aria-label":"On this page",title:"On this page","aria-haspopup":"true","aria-expanded":e.tocOpen?"true":"false",onClick:t[13]||(t[13]=le(d=>{e.tocOpen=!e.tocOpen,e.moreOpen=!1},["stop"]))},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-outline"})],-1)])],10,tB),e.tocOpen?(a(),l("div",{key:0,class:"tb-menu tb-toc-menu",role:"menu",onClick:t[15]||(t[15]=d=>e.tocOpen=!1)},[t[64]||(t[64]=n("div",{class:"tb-menu-label"},"On this page",-1)),n("button",{type:"button",role:"menuitem",class:P(["tb-menu-toc","lvl-2",{"is-active":!e.activeHeading}]),onClick:t[14]||(t[14]=d=>e.scrollToHeading(null))},"Introduction",2),(a(!0),l(F,null,se(e.readmeToc(),d=>(a(),l("button",{type:"button",role:"menuitem",key:"m-"+d.id,class:P(["tb-menu-toc","lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:c=>e.scrollToHeading(d.id)},p(d.text),11,nB))),128))])):f("v-if",!0)])):f("v-if",!0),n("div",oB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[16]||(t[16]=le(d=>{e.tocOpen=!1,e.moreOpen=!e.moreOpen},["stop"]))},[(a(),l("svg",iB,[...t[65]||(t[65]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,sB),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[23]||(t[23]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",rB,[t[66]||(t[66]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v("Snapshot \xB7 "+p(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),typeof e.content=="string"?(a(),l("div",aB,[v(p(e.type=="html"?"Markdown":e.languageName||"Text")+" \xB7 "+p(e.type=="html"&&e.fileSize(e.filePath)!=null?e.formatSize(e.fileSize(e.filePath)):e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1),e.type!="html"?(a(),l(F,{key:0},[v(" \xB7 "+p(e.fmt?.number(e.content.split(` -`).length))+" lines",1)],64)):f("v-if",!0)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",lB)):f("v-if",!0),e.type=="html"?(a(),l("button",{key:3,type:"button",role:"menuitem",onClick:t[17]||(t[17]=d=>e.toggleMdFind())},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),v("Find in file",-1)])])):f("v-if",!0),e.type=="html"?(a(),l("div",dB)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:5,type:"button",role:"menuitem",onClick:t[18]||(t[18]=d=>e.findInFile())},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),v("Find in file",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:6,type:"button",role:"menuitem",onClick:t[19]||(t[19]=d=>e.gotoLine())},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1),v("Go to line",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:7,type:"button",role:"menuitemcheckbox","aria-checked":e.wrapLines?"true":"false",onClick:t[20]||(t[20]=d=>e.toggleWrap())},[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)),t[71]||(t[71]=v("Wrap lines",-1)),e.wrapLines?(a(),l("span",cB,"\u2713")):f("v-if",!0)],8,uB)):f("v-if",!0),e.isCsv()?(a(),l("button",{key:8,type:"button",role:"menuitem",class:"tb-csv-view",onClick:t[21]||(t[21]=d=>{e.csvView=e.csvView==="table"?"raw":"table",e.moreOpen=!1})},[(a(),l("svg",pB,[n("use",{href:e.csvView==="table"?"#ui-icon-code":"#ui-icon-list"},null,8,fB)])),v(p(e.csvView==="table"?"Show as text":"Show as table"),1)])):f("v-if",!0),e.type!="html"?(a(),l("div",hB)):f("v-if",!0),e.type=="html"&&(!e.preview||e.url)?(a(),l("a",{key:10,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[72]||(t[72]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v("View raw",-1)])],8,mB)):f("v-if",!0),e.type!="html"&&(!e.preview||e.url)?(a(),l("a",{key:11,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),v("View raw",-1)])],8,gB)):f("v-if",!0),!e.preview||e.url?(a(),l("a",{key:12,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),v("Download file",-1)])],8,vB)):f("v-if",!0),e.options?.hasWebsite?(a(),l("a",{key:13,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),v("Open website",-1)])],8,yB)):f("v-if",!0),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:14,role:"menuitem",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v("Edit anonymization",-1)])],8,bB)):f("v-if",!0),e.options?.download?(a(),l("a",{key:15,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[77]||(t[77]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),v("Download ZIP",-1)])],8,wB)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[22]||(t[22]=d=>e.copyPath())},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),v("Copy file path",-1)])]),t[79]||(t[79]=n("div",{class:"tb-menu-sep"},null,-1)),t[80]||(t[80]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),v("FAQ")],-1)),t[81]||(t[81]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),v("Report a bug")],-1))])):f("v-if",!0)])]),e.gotoOpen&&e.type!="html"?(a(),l("form",{key:3,class:"goto-pop",role:"dialog","aria-label":"Go to line",onSubmit:t[26]||(t[26]=le(d=>e.submitGoto(),["prevent"]))},[t[82]||(t[82]=n("label",{class:"goto-label",for:"goto-input"},"Go to line",-1)),T(n("input",{id:"goto-input",class:"goto-input",type:"text",inputmode:"numeric",autocomplete:"off",spellcheck:"false",placeholder:"1\u2013"+e.fmt?.number(typeof e.content=="string"?e.content.split(` -`).length:1),"aria-invalid":e.gotoError?"true":"false","onUpdate:modelValue":t[24]||(t[24]=d=>e.gotoValue=d),onKeydown:t[25]||(t[25]=kt(le(d=>e.closeGoto(),["prevent","stop"]),["esc"]))},null,40,kB),[[pt,e.gotoValue]]),n("span",{class:P(["goto-hint",{"is-error":e.gotoError}])},p(e.gotoError||"Line, or line:column"),3)],32)):f("v-if",!0)]),e.isCsv()&&e.csvView==="table"?(a(),l("div",{key:0,class:"csv-table-wrap",tabindex:"0",role:"region","aria-label":"Table view of "+(e.paths?.[e.paths.length-1]||"file")},[n("table",EB,[n("thead",null,[n("tr",null,[t[83]||(t[83]=n("th",{class:"csv-rownum",scope:"col"},[n("span",{class:"sr-only"},"Row")],-1)),(a(!0),l(F,null,se(e.csvRows()[0]||[],(d,c)=>(a(),l("th",{scope:"col",key:c,class:P({"is-num":e.csvNumCol(c)})},[(a(!0),l(F,null,se(e.redactParts(d),(u,y)=>(a(),l(F,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,p(u.n),1)],8,SB)):(a(),l(F,{key:1},[v(p(u.t),1)],64))],64))),128))],2))),128))])]),n("tbody",null,[(a(!0),l(F,null,se(e.csvRows().slice(1),(d,c)=>(a(),l("tr",{key:c},[n("td",NB,p(c+1),1),(a(!0),l(F,null,se(d,(u,y)=>(a(),l("td",{key:y,class:P({"is-num":e.csvNumCol(y)})},[(a(!0),l(F,null,se(e.redactParts(u),(h,b)=>(a(),l(F,{key:b},[h.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+h.n},[n("i",null,p(h.n),1)],8,RB)):(a(),l(F,{key:1},[v(p(h.t),1)],64))],64))),128))],2))),128))]))),128))])])],8,CB)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?T((a(),l("div",DB,null,512)),[[r,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="html"&&e.mdFindOpen?(a(),l("div",PB,[n("input",{type:"search",class:"md-find-input",placeholder:"Find on this page","aria-label":"Find on this page",value:e.mdFindQuery,onInput:t[27]||(t[27]=d=>{e.mdFindQuery=d.target.value,e.runMdFind()}),onKeydown:[t[28]||(t[28]=kt(le(d=>d.shiftKey?e.stepMdFind(-1):e.stepMdFind(1),["prevent"]),["enter"])),t[29]||(t[29]=kt(le(d=>e.toggleMdFind(!1),["prevent"]),["esc"]))]},null,40,AB),n("span",TB,[n("button",{type:"button","aria-label":"Previous match",onClick:t[30]||(t[30]=d=>e.stepMdFind(-1)),disabled:!e.mdFindTotal},[...t[84]||(t[84]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,OB),n("button",{type:"button","aria-label":"Next match",onClick:t[31]||(t[31]=d=>e.stepMdFind(1)),disabled:!e.mdFindTotal},[...t[85]||(t[85]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,IB)]),n("span",MB,p(e.mdFindQuery?e.mdFindTotal?e.mdFindIndex+1+" of "+e.mdFindTotal:"No results":""),1),n("button",{type:"button",class:P(["md-find-opt",{"is-on":e.mdFindCase}]),"aria-pressed":e.mdFindCase?"true":"false",title:"Match case","aria-label":"Match case",onClick:t[32]||(t[32]=d=>{e.mdFindCase=!e.mdFindCase,e.runMdFind()})},"Aa",10,_B),n("button",{type:"button",class:"md-find-close","aria-label":"Close find",onClick:t[33]||(t[33]=d=>e.toggleMdFind(!1))},"\xD7")])):f("v-if",!0),e.type=="html"?(a(),l("div",VB,[n("div",{class:"file-content markdown-body",innerHTML:e.renderReadme(e.sanitize(e.content))},null,8,qB),e.readmeToc().length>=3?(a(),l("aside",$B,[t[86]||(t[86]=n("div",{class:"readme-toc-head"},"On this page",-1)),n("nav",LB,[n("a",{href:"#",class:P(["lvl-2 toc-top",{"is-active":!e.activeHeading}]),onClick:t[34]||(t[34]=le(d=>e.scrollToHeading(null),["prevent"]))},"Introduction",2),(a(!0),l(F,null,se(e.readmeToc(),(d,c)=>(a(),l("a",{key:d.id,href:"#"+d.id,class:P(["lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:le(u=>e.scrollToHeading(d.id),["prevent"])},p(d.text),11,FB))),128))])])):f("v-if",!0)])):f("v-if",!0)],2)):f("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(a(),Gt(o,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):f("v-if",!0),e.fileFrame()?(a(),l("section",{key:3,class:P(["file-card file-card-media","view-"+e.type])},[n("header",UB,[n("div",BB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[35]||(t[35]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[87]||(t[87]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",zB,[n("li",HB,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:p(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,jB)]),(a(!0),l(F,null,se(e.paths,(d,c)=>(a(),l("li",{class:"breadcrumb-item","aria-current":c===e.paths.length-1?"page":null},[(a(!0),l(F,null,se(e.redactParts(d),(u,y)=>(a(),l(F,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,p(u.n),1)],8,WB)):(a(),l(F,{key:1},[v(p(u.t),1)],64))],64))),128))],8,GB))),256))]),n("span",KB,[e.type=="IPython"&&e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[v(p(e.redactionCount()),1),t[88]||(t[88]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,YB)):f("v-if",!0),n("span",XB,p(e.fileKind()),1),e.imageSize?(a(),l("span",QB,p(e.imageSize),1)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l("span",JB,p(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0)]),T(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[36]||(t[36]=d=>e.copyPath())},[(a(),l("svg",xB,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,ez)]))],8,ZB),[[Z,e.filePath]])]),n("span",tz,[e.type=="IPython"&&e.redactionCount()?(a(),l(F,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[v(p(e.redactionCount()),1),t[89]||(t[89]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,nz),t[90]||(t[90]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),v(p(e.fileKind()),1),e.imageSize?(a(),l(F,{key:1},[t[91]||(t[91]=n("span",{class:"sep"},"\xB7",-1)),v(p(e.imageSize),1)],64)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l(F,{key:2},[t[92]||(t[92]=n("span",{class:"sep"},"\xB7",-1)),v(p(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)]),e.preview&&e.previewPreserved()?(a(),l("button",{key:0,type:"button",class:"rp-preserved-tag",onClick:t[37]||(t[37]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",oz,[e.type=="error"&&e.content==="file_too_big"?(a(),l("span",sz,[...t[93]||(t[93]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1),v("Over the size limit",-1)])])):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("div",iz,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="IPython"?"Open the notebook JSON":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,rz),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[94]||(t[94]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,az)])):f("v-if",!0),n("div",lz,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[38]||(t[38]=le(d=>e.moreOpen=!e.moreOpen,["stop"]))},[(a(),l("svg",uz,[...t[95]||(t[95]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,dz),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[40]||(t[40]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",cz,[t[96]||(t[96]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v("Snapshot \xB7 "+p(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",pz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:2,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[t[97]||(t[97]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1)),v(p(e.type=="IPython"?"View notebook JSON":"View raw"),1)],8,fz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:3,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[98]||(t[98]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),v("Download file",-1)])],8,hz)):f("v-if",!0),e.options?.download?(a(),l("a",{key:4,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[99]||(t[99]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),v("Download ZIP",-1)])],8,mz)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[39]||(t[39]=d=>e.copyPath())},[...t[100]||(t[100]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),v("Copy file path",-1)])]),t[101]||(t[101]=n("div",{class:"tb-menu-sep"},null,-1)),t[102]||(t[102]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),v("FAQ")],-1)),t[103]||(t[103]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),v("Report a bug")],-1))])):f("v-if",!0)])])]),e.type=="image"?(a(),l("div",gz,[n("img",{class:"image-content",src:e.safeUrl(e.url),alt:e.paths[e.paths.length-1],onLoad:t[41]||(t[41]=d=>e.onImageLoad(d))},null,40,vz)])):f("v-if",!0),e.type=="media"?(a(),l("div",yz,[n("video",{class:"video-content",controls:"",preload:"metadata",playsinline:"",src:e.safeUrl(e.url)},null,8,bz)])):f("v-if",!0),e.type=="audio"?(a(),l("div",wz,[n("audio",{controls:"",preload:"metadata",src:e.safeUrl(e.url)},null,8,kz)])):f("v-if",!0),e.type=="pdf"?(a(),Gt(i,{key:3,src:e.safeUrl(e.url)},null,8,["src"])):f("v-if",!0),e.type=="IPython"?(a(),l("div",Cz,[Oe(s,{class:"markdown-body",file:e.url,content:e.content},null,8,["file","content"])])):f("v-if",!0),e.type=="binary"?(a(),l("div",Ez,[t[105]||(t[105]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1)),t[106]||(t[106]=n("h2",{class:"file-state-title"},"No preview for this file",-1)),n("p",Sz,p(e.preview?"Reviewers can open this file; it is not previewed here.":"This is a binary file. Download it to open it on your computer."),1),e.preview?f("v-if",!0):(a(),l("div",Nz,[n("a",{target:e.preview?"_blank":"_self",class:"btn btn-primary",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[104]||(t[104]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),v("Download file",-1)])],8,Rz)]))])):f("v-if",!0),e.type=="error"?(a(),l("div",Dz,[t[108]||(t[108]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("h2",Pz,p(e.content==="file_too_big"?"This file is too large to preview":"This file can't be shown"),1),e.content==="file_too_big"?(a(),l("p",Az,p(e.preview?"Reviewers can open this file; it is not previewed here. Files over 1 MB are only shown on the reviewer page.":"It is over the size limit for anonymized files, so it can't be previewed or downloaded from this link."),1)):(a(),l("p",Tz,p(e.fmt.translate("ERRORS."+e.content)),1)),e.preview?f("v-if",!0):(a(),l("div",Oz,[n("a",{class:"btn btn-primary",href:e.safeUrl("/r/"+e.repoId+"/")},"Back to the repository",8,Iz),t[107]||(t[107]=n("a",{class:"btn btn-outline-ink",href:"/faq#formats"},"Supported files",-1))]))])):f("v-if",!0),e.content==null&&e.type!="error"?(a(),l("div",Mz,[...t[109]||(t[109]=[n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("h2",{class:"file-state-title"},"This file is empty",-1),n("p",{class:"file-state-msg"},"It has no content in this snapshot.",-1)])])):f("v-if",!0)],2)):f("v-if",!0),e.type=="rate_limited"?(a(),l("div",_z,[n("div",Vz,[t[112]||(t[112]=Se('',1)),n("p",qz,[t[110]||(t[110]=v("This repository will be available in ",-1)),n("strong",null,p(e.rateLimitCountdown),1),t[111]||(t[111]=v(". The page will reload automatically.",-1))])])])):f("v-if",!0),e.type=="error"&&!e.fileFrame()?(a(),l("div",$z,[n("section",Lz,[n("h1",Fz,p(e.fmt.translate(e.isSourceAccessError()?"VIEWER_ERRORS.access_title":"VIEWER_ERRORS.title")),1),n("p",null,p(e.fmt.translate("ERRORS."+e.content)),1),e.isSourceAccessError()?(a(),l(F,{key:0},[n("p",null,p(e.fmt.translate("VIEWER_ERRORS.reader_help")),1),n("p",null,p(e.fmt.translate("VIEWER_ERRORS.owner_help")),1)],64)):f("v-if",!0),n("div",Uz,[e.isSourceAccessError()?f("v-if",!0):(a(),l("a",Bz,"Back to home")),e.isSourceAccessError()?f("v-if",!0):(a(),l("a",zz,"Read the FAQ")),n("button",{type:"button",class:"btn btn-primary",onClick:t[42]||(t[42]=d=>e.retryContent())},p(e.fmt.translate("VIEWER_ERRORS.retry")),1),e.isSourceAccessError()?(a(),l("a",Hz,p(e.fmt.translate("VIEWER_ERRORS.dashboard")),1)):f("v-if",!0)])])])):f("v-if",!0),e.type=="loading"&&!e.error?(a(),l("section",jz,[n("div",Gz,[n("strong",null,p(e.fmt.translate(e.fileReceivedBytes?"VIEWER_LOADING.receiving":"VIEWER_LOADING.loading")),1),n("span",Wz,p(e.filePath),1),e.fileLoadingSlow?(a(),l("p",Kz,p(e.fmt.translate("VIEWER_LOADING.slow")),1)):f("v-if",!0)]),n("div",Yz,[(a(),l(F,null,se(10,d=>n("span",{key:d})),64))])])):f("v-if",!0),e.type=="empty"?(a(),l("div",Xz,[...t[113]||(t[113]=[n("h1",{class:"paper-empty-title m-auto"},[v("Empty "),n("em",null,"repository"),v(".")],-1)])])):f("v-if",!0),e.content==null&&!["empty","loading","error","rate_limited"].includes(e.type)&&!e.fileFrame()?(a(),l("div",Qz,[...t[114]||(t[114]=[n("h1",{class:"paper-empty-title m-auto"},[v("Empty "),n("em",null,"file"),v(".")],-1)])])):f("v-if",!0)],64)}var Jz={class:"container page dashboard-page paper-page"},Zz={class:"row"},xz={class:"w-100"},eH={class:"w-100","aria-label":"Pull Requests","accept-charset":"UTF-8"},tH={class:"d-flex flex-column flex-md-row align-items-md-center",style:{gap:"8px"}},nH={class:"flex-grow-1"},oH={type:"search",id:"search",class:"form-control","aria-label":"Find a pull request...",placeholder:"Find a pull request...",autocomplete:"off"},sH={class:"d-flex flex-wrap",style:{gap:"6px"}},iH={class:"dropdown"},rH={class:"dropdown-menu","aria-labelledby":"dropdownSort"},aH={class:"form-check dropdown-item"},lH={class:"form-check-input",type:"radio",name:"sort",id:"sortFullName",value:"fullName"},dH={class:"form-check dropdown-item"},uH={class:"form-check-input",type:"radio",name:"sort",id:"sortAnonymizeDate",value:"-anonymizeDate"},cH={class:"form-check dropdown-item"},pH={class:"form-check-input",type:"radio",name:"sort",id:"sortStatus",value:"-status"},fH={class:"form-check dropdown-item"},hH={class:"form-check-input",type:"radio",name:"sort",id:"sortLastView",value:"-lastView"},mH={class:"form-check dropdown-item"},gH={class:"form-check-input",type:"radio",name:"sort",id:"sortPageView",value:"-pageView"},vH={class:"dropdown"},yH={class:"dropdown-menu","aria-labelledby":"dropdownStatus"},bH={class:"form-check dropdown-item"},wH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusReady",value:"ready"},kH={class:"form-check dropdown-item"},CH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusExpired",value:"expired"},EH={class:"form-check dropdown-item"},SH={class:"form-check-input",type:"checkbox",name:"sort",id:"statusRemoved",value:"removed"},NH={class:"d-flex flex-wrap mt-2",style:{gap:"6px"}},RH={class:"filter-chip"},DH=["onClick"],PH={class:"repo-list w-100"},AH={class:"repo-list-item-content"},TH={class:"repo-list-item-main"},OH={class:"repo-list-item-header"},IH=["textContent","href"],MH=["textContent"],_H=["textContent"],VH={class:"repo-source"},qH=["href"],$H={class:"repo-date"},LH={class:"repo-meta"},FH={key:0,title:"Conference"},UH=["title"],BH=["title"],zH=["title"],HH={key:1},jH={class:"repo-list-item-actions"},GH={class:"dropdown"},WH={class:"dropdown-menu dropdown-menu-right"},KH=["href"],YH=["onClick"],XH=["onClick"],QH=["onClick"],JH=["href"],ZH={key:0,class:"repo-list-empty"};function gp(e,t){let o=Pe("field"),i=Pe("form");return a(),l("div",Jz,[n("div",Zz,[n("div",xz,[t[12]||(t[12]=Se('Temporarily pausedGitHub API rate limit reachedMy work \xA0/\xA0 Pull requests',2)),f(" Search + filters row "),T((a(),l("form",eH,[n("div",tH,[n("div",nH,[T(n("input",oH,null,512),[[o,{state:e.viewState,set:s=>{e.search=s},value:e.search,form:null,options:{}}]])]),n("div",sH,[n("div",iH,[t[6]||(t[6]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownSort","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Sort ",-1)),n("div",rH,[t[5]||(t[5]=n("h6",{class:"dropdown-header"},"Select order",-1)),n("div",aH,[T(n("input",lH,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[0]||(t[0]=n("label",{class:"form-check-label",for:"sortFullName"},"Pull Request",-1))]),n("div",dH,[T(n("input",uH,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[1]||(t[1]=n("label",{class:"form-check-label",for:"sortAnonymizeDate"},"Anonymize Date",-1))]),n("div",cH,[T(n("input",pH,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[2]||(t[2]=n("label",{class:"form-check-label",for:"sortStatus"},"Status",-1))]),n("div",fH,[T(n("input",hH,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[3]||(t[3]=n("label",{class:"form-check-label",for:"sortLastView"},"Last View",-1))]),n("div",mH,[T(n("input",gH,null,512),[[o,{state:e.viewState,set:s=>{e.orderBy=s},value:e.orderBy,form:null,options:{}}]]),t[4]||(t[4]=n("label",{class:"form-check-label",for:"sortPageView"},"Page View",-1))])])]),n("div",vH,[t[11]||(t[11]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button",id:"dropdownStatus","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Status ",-1)),n("div",yH,[t[10]||(t[10]=n("h6",{class:"dropdown-header"},"Select status",-1)),n("div",bH,[T(n("input",wH,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.ready=s},value:e.filters?.status?.ready,form:null,options:{}}]]),t[7]||(t[7]=n("label",{class:"form-check-label",for:"statusReady"},"Ready",-1))]),n("div",kH,[T(n("input",CH,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.expired=s},value:e.filters?.status?.expired,form:null,options:{}}]]),t[8]||(t[8]=n("label",{class:"form-check-label",for:"statusExpired"},"Expired",-1))]),n("div",EH,[T(n("input",SH,null,512),[[o,{state:e.viewState,set:s=>{e.filters.status.removed=s},value:e.filters?.status?.removed,form:null,options:{}}]]),t[9]||(t[9]=n("label",{class:"form-check-label",for:"statusRemoved"},"Removed",-1))])])])])])])),[[i,e.viewState]]),f(" Active filter chips "),T(n("div",NH,[(a(!0),l(F,null,se(e.filters?.status,(s,r,d)=>T((a(),l("span",RH,[v(p(e.fmt?.title(r))+" ",1),n("button",{type:"button",class:"filter-chip-close","aria-label":"Remove filter",onClick:c=>{e.filters.status[r]=!0}}," \xD7 ",8,DH)],512)),[[Z,!s]])),256))],512),[[Z,e.filters?.status?.ready===!1||e.filters?.status?.expired===!1||e.filters?.status?.removed===!1]])]),f(" Pull request list "),n("ul",PH,[(a(!0),l(F,null,se(e.filteredPullRequests,(s,r)=>(a(),l("li",{class:P(["repo-list-item",{"repo-inactive":s?.status=="expired"||s?.status=="removed"||s?.status=="error"}])},[n("div",AH,[n("div",TH,[n("div",OH,[n("a",{class:"repo-name",textContent:p(s?.pullRequestId),href:e.safeUrl("/pr/"+s?.pullRequestId)},null,8,IH),n("span",{class:P(["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"}])},[n("span",{textContent:p(e.fmt?.title(s?.status))},null,8,MH),s?.status=="error"?(a(),l("span",{key:0,textContent:p(": "+s?.statusMessage)},null,8,_H)):f("v-if",!0)],2)]),n("div",VH,[n("span",null,[t[13]||(t[13]=n("i",{class:"fab fa-github","aria-hidden":"true"},null,-1)),n("a",{href:e.safeUrl("https://github.com/"+s?.source?.repositoryFullName+"/pull/"+s?.source?.pullRequestId)},p(s?.source?.repositoryFullName)+"#"+p(s?.source?.pullRequestId),9,qH)]),n("span",{class:P(["status-badge",{"status-ready":s?.merged,"status-removed":s?.state=="open","status-error":s?.state=="closed"&&!s?.merged}]),style:{"font-size":"10px"}},p(e.fmt?.title(s?.merged?"merged":s?.state)),3),n("span",$H,"anonymized "+p(e.fmt?.humanTime(s?.anonymizeDate)),1)])]),n("div",LH,[s?.conference?(a(),l("span",FH,[t[14]||(t[14]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-conference"})],-1)),v(" "+p(s?.conference),1)])):f("v-if",!0),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Terms: "+s?.options?.terms?.join(", ")},[t[15]||(t[15]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-shield"})],-1)),v(" "+p(e.fmt?.number(s?.options?.terms?.length)),1)],8,UH),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Views: "+e.fmt?.number(s?.pageView)},[t[16]||(t[16]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1)),v(" "+p(e.fmt?.number(s?.pageView)),1)],8,BH),n("span",{"data-toggle":"tooltip","data-placement":"bottom",title:"Last view: "+e.fmt?.date(s?.lastView)},[t[17]||(t[17]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-calendar"})],-1)),v(" "+p(e.fmt?.humanTime(s?.lastView)),1)],8,zH),s?.options?.expirationMode!="never"&&s?.status=="ready"?(a(),l("span",HH,[t[18]||(t[18]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),v(" Expire: "+p(e.fmt?.humanTime(s?.options?.expirationDate)),1)])):f("v-if",!0)])]),n("div",jH,[n("div",GH,[t[24]||(t[24]=n("button",{class:"btn btn-sm dropdown-toggle",type:"button","data-toggle":"dropdown","aria-haspopup":"true","aria-expanded":"false"}," Actions ",-1)),n("div",WH,[n("a",{class:"dropdown-item",href:e.safeUrl("/pull-request-anonymize/"+s?.pullRequestId)},[...t[19]||(t[19]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),v(" Edit ",-1)])],8,KH),T(n("a",{class:"dropdown-item",href:"#",onClick:le(d=>e.updatePullRequest(s),["prevent"])},[...t[20]||(t[20]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-refresh"})],-1),v(" Force update ",-1)])],8,YH),[[Z,s?.status=="ready"||s?.status=="error"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:le(d=>e.updatePullRequest(s),["prevent"])},[...t[21]||(t[21]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-check-circle"})],-1),v(" Enable ",-1)])],8,XH),[[Z,s?.status=="removed"]]),T(n("a",{class:"dropdown-item",href:"#",onClick:le(d=>e.removePullRequest(s),["prevent"])},[...t[22]||(t[22]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-trash"})],-1),v(" Remove ",-1)])],8,QH),[[Z,s?.status=="ready"]]),n("a",{class:"dropdown-item",href:e.safeUrl("/pr/"+s?.pullRequestId+"/")},[...t[23]||(t[23]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-eye"})],-1),v(" View PR ",-1)])],8,JH)])])])],2))),256)),e.filteredPullRequests?.length==0?(a(),l("li",ZH,[...t[25]||(t[25]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-inbox"})],-1),n("span",null,"No pull requests to display.",-1)])])):f("v-if",!0)])])])}var xH={class:"container paper-page user-settings"},ej={class:"settings-nav","aria-label":"Settings"},tj=["aria-current","onClick"],nj={class:"settings-row"},oj=["rows"],sj={class:"settings-syntax"},ij={class:"invalid-feedback"},rj={class:"settings-row"},aj={class:"settings-checks"},lj={class:"settings-check"},dj={class:"form-check-input",type:"checkbox",id:"link",name:"link"},uj={class:"settings-check"},cj={class:"form-check-input",type:"checkbox",id:"image",name:"image"},pj={class:"settings-check"},fj={class:"form-check-input",type:"checkbox",id:"pdf",name:"pdf"},hj={class:"settings-check"},mj={class:"form-check-input",type:"checkbox",id:"notebook",name:"notebook"},gj={class:"settings-check"},vj={class:"form-check-input",type:"checkbox",id:"loc",name:"loc"},yj={class:"settings-check"},bj={class:"form-check-input",type:"checkbox",id:"page",name:"page"},wj={class:"settings-row"},kj={class:"settings-check"},Cj={class:"form-check-input",type:"checkbox",id:"update",name:"update"},Ej={class:"settings-row"},Sj={class:"form-control",id:"expiration",name:"expiration"},Nj={class:"settings-help"},Rj={class:"settings-save"},Dj={class:"settings-save-status draft-status",role:"status"},Pj={key:0},Aj={key:1},Tj={key:2},Oj=["disabled"],Ij={key:1,class:"settings-save-error",role:"alert"},Mj=["aria-busy"],_j={key:0,role:"status"},Vj={key:1,class:"settings-notice",role:"alert"},qj=["disabled"],$j={key:2,class:"settings-notice",role:"status"},Lj={key:3,class:"settings-notice",role:"status"},Fj=["disabled"],Uj={class:"billing-summary"},Bj={class:"billing-summary-head"},zj={class:"billing-plan-name"},Hj={key:0,class:"billing-plan-meta"},jj={key:1,class:"billing-plan-meta"},Gj={key:0,class:"billing-summary-actions"},Wj=["disabled"],Kj={id:"settings-quota"},Yj={key:1,role:"status"},Xj={key:0,class:"settings-notice"},Qj={key:1,class:"settings-notice"},Jj={key:2,class:"settings-notice"},Zj={key:4,class:"billing-section","aria-labelledby":"settings-plan-comparison"},xj={key:0,class:"billing-offers"},eG={key:0,class:"billing-offer is-recommended"},tG={class:"billing-offer-price"},nG={class:"billing-offer-list"},oG=["disabled"],sG={key:1,class:"billing-offer"},iG={class:"billing-offer-head"},rG={class:"billing-toggle",role:"radiogroup","aria-label":"Billing frequency"},aG=["aria-checked","onClick"],lG={key:0,class:"billing-toggle-save"},dG={class:"billing-offer-price"},uG={class:"billing-offer-list"},cG=["disabled"],pG={key:1,class:"billing-addons"},fG={class:"billing-addon-rows"},hG={class:"billing-addon-price"},mG=["onClick","disabled"],gG={key:2,class:"billing-buy",id:"settings-addons-title",tabindex:"-1"},vG={class:"billing-buy-info"},yG={class:"billing-offer-price"},bG={class:"billing-offer-list"},wG={class:"billing-buy-form"},kG=["value"],CG=["disabled"],EG={key:1,class:"billing-buy-desc"},SG={key:2,class:"billing-footnote"},NG={class:"billing-compare"},RG={class:"billing-compare-card"},DG={class:"settings-comparison"},PG={key:0,scope:"col",class:"is-recommended"},AG={key:1,scope:"col"},TG={key:0,class:"is-recommended"},OG={key:1},IG={key:0,class:"is-recommended"},MG={key:1},_G={key:0,class:"is-recommended"},VG={key:1},qG={key:0,class:"is-recommended"},$G={key:1},LG={key:0,class:"is-recommended"},FG={key:1},UG={key:0,class:"is-recommended"},BG={key:1},zG={key:3,class:"billing-footnote"},HG={key:5,class:"billing-section"},jG={class:"billing-section-head"},GG=["disabled"],WG={key:0,class:"billing-empty"},KG={key:1,class:"billing-history-head","aria-hidden":"true"},YG={key:2,class:"billing-history"},XG={class:"billing-history-main"},QG=["href"],JG=["href"],ZG={class:"billing-history-term"},xG={class:"billing-history-paid"},eW={class:"billing-history-status"},tW={class:"billing-manage"},nW={key:0},oW={key:1},sW=["disabled"],iW={class:"billing-conference"},rW={id:"settings-account",class:"settings-account-panel"},aW={class:"paper-account-card"},lW=["src"],dW={class:"paper-account-identity"},uW={class:"paper-account-name"},cW=["disabled"],pW={key:0,role:"status"},fW={key:1,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},hW=["disabled"],mW={key:3,role:"status"},gW={class:"paper-danger-zone"},vW={key:0,class:"paper-inline-alert paper-inline-alert-error",role:"alert"},yW=["textContent"],bW=["disabled"],wW={key:1,class:"settings-delete-confirm"},kW={for:"delete-username"},CW={class:"settings-actions"},EW=["disabled"],SW=["disabled"];function vp(e,t){let o=Xe("quota-usage"),i=Pe("field"),s=Pe("form");return a(),l("div",xH,[t[107]||(t[107]=n("header",{class:"settings-title page-head page-head-main"},[n("h1",null,"Settings"),n("p",{class:"paper-page-lede"},"Defaults for new anonymizations, hosting and your account.")],-1)),n("nav",ej,[(a(),l(F,null,se([{id:"defaults",label:"Anonymization defaults"},{id:"billing",label:"Hosting & billing"},{id:"account",label:"Account"}],r=>n("button",{type:"button","aria-current":e.settingsTab===r.id?"page":null,onClick:d=>e.settingsTab=r.id},p(r.label),9,tj)),64))]),T(n("div",null,[t[41]||(t[41]=n("p",{class:"settings-scope"},"For new anonymizations only. Existing repositories keep their settings.",-1)),T((a(),l("form",{class:"form needs-validation",name:"defaultsForm",novalidate:"",onInput:t[1]||(t[1]=r=>e.unsavedChanges=!0),onSubmit:t[2]||(t[2]=le(r=>e.submitForm(r,()=>{e.saveDefault(r)}),["prevent"]))},[n("section",nj,[t[26]||(t[26]=n("div",null,[n("label",{class:"settings-label",for:"terms"},"Terms to redact"),n("p",{class:"settings-help"},"One term per line.")],-1)),n("div",null,[T(n("textarea",{class:"form-control",id:"terms",name:"terms",rows:Math.min(14,Math.max(3,String(e.terms||"").split(` +10 log("epoch %d: %.3f", epoch, loss)Anonymized pull requests
Track PR mirrors you\u2019ve created and their reviewer traffic.
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.
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.
You choose: the mirror is removed, or visitors are redirected to the original GitHub repository once the review is over.
Create an anonymous mirror in a couple of minutes. Reviewers just open the link.
Nothing renews \xB7 Tax shown at checkout \xB7 Expecting more submissions? Email tdurieux@anonymous.4open.science
Create the conference, then pay from its page. Authors can submit once the payment is confirmed.
',2))],64)):e.plans.length?(a(),l("div",H7,[(a(!0),l(q,null,x(e.plans,r=>(a(),l("label",{class:P(["paper-plan-card",{selected:e.options?.plan?.planID==r?.id}]),key:r.id},[D(n("input",{type:"radio",name:"planPicker",value:r?.id},null,8,j7),[[i,{state:e.viewState,set:d=>{e.options.plan.planID=d},value:e.options?.plan?.planID,form:"conference",options:{}}]]),n("div",{class:"paper-plan-head",textContent:c(r?.name)},null,8,G7),n("div",W7,c(r.pricePerRepo>0?e.fmt?.number(r.pricePerRepo,2)+" \u20AC per repository":"Free"),1),n("div",{class:"paper-plan-desc",innerHTML:e.sanitize(r?.description)},null,8,K7)],2))),128))])):e.plansLoaded?(a(),l("p",Y7,"New conferences are unavailable right now. Please try again later.")):f("v-if",!0)]),e.plan?.pricePerRepo>0?(a(),l("section",X7,[t[43]||(t[43]=n("div",{class:"paper-section-eyebrow"},"Billing",-1)),n("div",J7,[t[36]||(t[36]=n("label",{class:"paper-field-label",for:"billing_name"},"Name",-1)),D(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.name=r},value:e.options?.billing?.name,form:"conference",options:{}}]])]),n("div",Q7,[t[37]||(t[37]=n("label",{class:"paper-field-label",for:"email"},"Email",-1)),D(n("input",{type:"email",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.email=r},value:e.options?.billing?.email,form:"conference",options:{}}]])]),n("div",Z7,[t[38]||(t[38]=n("label",{class:"paper-field-label",for:"inputAddress"},"Address",-1)),D(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.address=r},value:e.options?.billing?.address,form:"conference",options:{}}]])]),n("div",x7,[D(n("input",{type:"text",class:P(["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),[[i,{state:e.viewState,set:r=>{e.options.billing.address2=r},value:e.options?.billing?.address2,form:"conference",options:{}}]])]),n("div",e9,[n("div",t9,[t[39]||(t[39]=n("label",{class:"paper-field-label",for:"city"},"City",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.city?.invalid&&(e.conference?.city?.touched||e.conference?.submitted)}]),name:"city",id:"city",required:"",placeholder:"City"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.city=r},value:e.options?.billing?.city,form:"conference",options:{}}]])]),n("div",n9,[t[40]||(t[40]=n("label",{class:"paper-field-label",for:"country"},"Country",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.country?.invalid&&(e.conference?.country?.touched||e.conference?.submitted)}]),name:"country",id:"country",required:"",placeholder:"Country"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.country=r},value:e.options?.billing?.country,form:"conference",options:{}}]])]),n("div",s9,[t[41]||(t[41]=n("label",{class:"paper-field-label",for:"zip"},"Zip",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.zip?.invalid&&(e.conference?.zip?.touched||e.conference?.submitted)}]),name:"zip",id:"zip",required:"",placeholder:"Zip"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.zip=r},value:e.options?.billing?.zip,form:"conference",options:{}}]])])]),n("div",o9,[t[42]||(t[42]=n("label",{class:"paper-field-label",for:"vat"},"VAT number",-1)),D(n("input",{type:"text",class:P(["form-control",{"is-invalid":e.conference?.vat?.invalid&&(e.conference?.vat?.touched||e.conference?.submitted)}]),name:"vat",id:"vat",placeholder:"VAT Number"},null,2),[[i,{state:e.viewState,set:r=>{e.options.billing.vat=r},value:e.options?.billing?.vat,form:"conference",options:{}}]])])])):f("v-if",!0),n("div",i9,[e.error?(a(),l("div",{key:0,class:"alert alert-danger",role:"alert",textContent:c(e.error)},null,8,r9)):f("v-if",!0),e.message?(a(),l("div",{key:1,class:"alert alert-success",role:"alert",textContent:c(e.message)},null,8,a9)):f("v-if",!0),n("button",{id:"send",disabled:e.saving,type:"submit",class:"btn btn-ink",onClick:t[0]||(t[0]=ae(r=>e.submitForm(r,()=>{e.submit(r)}),["prevent"]))},c(e.saving?e.editionMode?"Updating\u2026":"Creating\u2026":e.editionMode?"Update conference":"Create conference"),9,l9)])])),[[o,e.viewState]])])])}var d9={key:0,class:"dir-card","aria-label":"Repository files"},u9=["onClick"],c9={class:"dir-name"},p9=["href"],f9={class:"dir-name"},h9={class:"dir-meta"},m9={class:"file-card-head"},g9={class:"file-card-path"},v9={class:"breadcrumb paths","aria-label":"Path"},y9={class:"breadcrumb-item breadcrumb-root"},b9=["href","title","textContent"],w9=["aria-current"],k9=["aria-label"],C9={class:"mobile-sub ms"},E9=["title"],S9={class:"ms-item"},N9={key:1,class:"ms-item"},R9={key:2,class:"ms-item"},P9=["aria-label","title"],A9={class:"ui-icon","aria-hidden":"true"},D9=["href"],T9={key:0,class:"file-card-meta"},O9=["title"],I9={class:"meta-extra"},M9={key:1,class:"file-card-meta"},V9=["title"],q9={class:"file-card-actions"},_9={key:0,class:"csv-toggle seg-filter",role:"radiogroup","aria-label":"CSV view"},$9=["aria-checked"],L9=["aria-checked"],F9={key:1,class:"symbols"},U9=["aria-expanded"],B9={key:0,class:"symbols-menu",role:"menu"},z9={class:"symbols-head"},H9=["onClick"],j9={class:"symbols-name"},G9={class:"symbols-line"},W9=["title"],K9={key:3,class:"tb-view",role:"group","aria-label":"View tools"},Y9=["title"],X9=["aria-pressed"],J9=["title"],Q9={key:4,class:"tb-file",role:"group","aria-label":"File actions"},Z9=["target","title","href"],x9=["aria-label","title"],eB={class:"ui-icon","aria-hidden":"true"},tB=["href"],nB=["target","href","download"],sB=["aria-label"],oB={class:"ui-icon","aria-hidden":"true"},iB=["href"],rB={key:6,class:"tb-toc-m"},aB=["aria-expanded"],lB=["onClick"],dB={class:"tb-more"},uB=["aria-expanded"],cB={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},pB={key:0,class:"tb-menu-note"},fB={key:1,class:"tb-menu-note tb-menu-meta"},hB={key:2,class:"tb-menu-sep"},mB={key:4,class:"tb-menu-sep"},gB=["aria-checked"],vB={key:0,class:"tb-menu-check"},yB={class:"ui-icon","aria-hidden":"true"},bB=["href"],wB={key:9,class:"tb-menu-sep"},kB=["target","href"],CB=["target","href"],EB=["target","href","download"],SB=["target","href"],NB=["href"],RB=["target","href"],PB=["placeholder","aria-invalid"],AB=["aria-label"],DB={class:"csv-table"},TB=["aria-label"],OB={class:"csv-rownum"},IB=["aria-label"],MB={key:1,class:"file-card-body"},VB={key:2,class:"md-find-bar",role:"search"},qB=["value"],_B={class:"md-find-nav"},$B=["disabled"],LB=["disabled"],FB={class:"md-find-count","aria-live":"polite"},UB=["aria-pressed"],BB={key:3,class:"reading-layout"},zB=["innerHTML"],HB={key:0,class:"readme-toc","aria-label":"On this page"},jB={class:"toc-rail"},GB=["href","onClick"],WB={class:"file-card-head"},KB={class:"file-card-path"},YB={class:"breadcrumb paths","aria-label":"Path"},XB={class:"breadcrumb-item breadcrumb-root"},JB=["href","title","textContent"],QB=["aria-current"],ZB=["aria-label"],xB={class:"mobile-sub ms"},ez=["title"],tz={class:"ms-item"},nz={key:1,class:"ms-item"},sz={key:2,class:"ms-item"},oz=["aria-label","title"],iz={class:"ui-icon","aria-hidden":"true"},rz=["href"],az={class:"file-card-meta"},lz=["title"],dz={class:"file-card-actions"},uz={key:0,class:"file-card-state",title:"Files over the size limit can't be previewed or downloaded from this link"},cz={key:1,class:"tb-file",role:"group","aria-label":"File actions"},pz=["target","title","href"],fz=["target","href","download"],hz={class:"tb-more"},mz=["aria-expanded"],gz={viewBox:"0 0 24 24",class:"ui-icon","aria-hidden":"true",style:{fill:"currentColor",stroke:"none"}},vz={key:0,class:"tb-menu-note"},yz={key:1,class:"tb-menu-sep"},bz=["target","href"],wz=["target","href","download"],kz=["target","href"],Cz={key:0,class:"media-stage"},Ez=["src","alt"],Sz={key:1,class:"media-stage"},Nz=["src"],Rz={key:2,class:"media-stage is-audio"},Pz=["src"],Az={key:4,class:"notebook-body"},Dz={key:5,class:"file-state"},Tz={class:"file-state-msg"},Oz={key:0,class:"file-state-actions"},Iz=["target","href","download"],Mz={key:6,class:"file-state",role:"alert"},Vz={class:"file-state-title"},qz={key:0,class:"file-state-msg"},_z={key:1,class:"file-state-msg"},$z={key:2,class:"file-state-actions"},Lz=["href"],Fz={key:7,class:"file-state"},Uz={key:4,class:"file-error container d-flex h-100"},Bz={class:"paper-ratelimit-card m-auto",style:{"max-width":"520px"}},zz={class:"paper-error-msg"},Hz={key:5,class:"file-error container d-flex h-100"},jz={class:"viewer-error paper-error-card file-error-card m-auto",role:"alert","aria-labelledby":"viewer-error-title"},Gz={id:"viewer-error-title",class:"paper-empty-title"},Wz={class:"paper-error-actions"},Kz={key:0,href:"/",class:"btn btn-sm"},Yz={key:1,href:"/faq",class:"btn btn-sm"},Xz={key:2,class:"btn btn-outline-ink",href:"/dashboard"},Jz={key:6,class:"viewer-loading","aria-busy":"true"},Qz={class:"viewer-loading-status",role:"status","aria-live":"polite"},Zz={class:"viewer-loading-name sr-only"},xz={key:0},eH={class:"viewer-loading-lines","aria-hidden":"true"},tH={key:7,class:"file-error container d-flex h-100"},nH={key:8,class:"file-error container d-flex h-100"};function yp(e,t){let s=Xe("html-doc"),i=Xe("pdfviewer"),o=Xe("notebook"),r=Ae("code-editor");return a(),l(q,null,[e.sidebarHidden&&e.type=="html"&&e.content!=null&&e.paths?.length===1&&/^readme/i.test(e.paths[0]||"")&&e.files?.length?(a(),l("section",d9,[t[46]||(t[46]=n("header",{class:"dir-card-head"},[n("span",{class:"dir-card-title"},"Files"),n("span",{class:"dir-card-sub"},"Snapshot of the repository at review time")],-1)),n("ul",{class:P(["dir-list",{"is-expanded":e.dirExpanded}])},[(a(!0),l(q,null,x(e.rootEntries(),d=>(a(),l("li",{key:d.name},[d.size==null?(a(),l("button",{key:0,type:"button",class:"dir-row",onClick:p=>e.revealFolder(d.name)},[t[43]||(t[43]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M1.5 3.5h4l1.5 1.5h7.5v8h-13z"})],-1)),n("span",c9,c(d.name),1),t[44]||(t[44]=n("span",{class:"dir-meta"},"Folder",-1))],8,u9)):(a(),l("a",{key:1,class:P(["dir-row",{"is-current":d.name===e.paths[0]}]),href:e.safeUrl("/r/"+e.repoId+"/"+encodeURIComponent(d.name))},[t[45]||(t[45]=n("svg",{class:"dir-icon",viewBox:"0 0 16 16","aria-hidden":"true"},[n("path",{d:"M3.5 1.5h6l3 3v10h-9z"})],-1)),n("span",f9,c(d.name),1),n("span",h9,c(e.formatSize(d.size)),1)],10,p9))]))),128))],2),!e.dirExpanded&&e.files.length>8?(a(),l("button",{key:0,type:"button",class:"dir-more",onClick:t[0]||(t[0]=d=>e.dirExpanded=!0)},"Show all "+c(e.files.length)+" items",1)):f("v-if",!0)])):f("v-if",!0),(e.type=="text"||e.type=="code"||e.type=="html"||e.type=="html-doc"&&e.showSource)&&e.content!=null?(a(),l("section",{key:1,class:P(["file-card",{"is-code":e.type!="html","no-wrap":!e.wrapLines}])},[n("header",m9,[n("div",g9,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[1]||(t[1]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[47]||(t[47]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",v9,[n("li",y9,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,b9)]),(a(!0),l(q,null,x(e.paths,(d,p)=>(a(),l("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(a(!0),l(q,null,x(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,k9)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],8,w9))),256))]),n("span",C9,[e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[48]||(t[48]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,E9)):f("v-if",!0),n("span",S9,c(e.type=="html"?"Markdown":e.languageName||"Text"),1),e.fileSize(e.filePath)!=null?(a(),l("span",N9,c(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0),e.type!="html"&&typeof e.content=="string"?(a(),l("span",R9,c(e.fmt?.number(e.content.split(` +`).length))+" lines",1)):f("v-if",!0)]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[2]||(t[2]=d=>e.copyPath())},[(a(),l("svg",A9,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,D9)]))],8,P9),[[Q,e.filePath]])]),e.type!="html"&&typeof e.content=="string"?(a(),l("span",T9,[e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[49]||(t[49]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,O9),t[50]||(t[50]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),g(c(e.languageName||"Text"),1),n("span",I9,[t[51]||(t[51]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1)]),t[52]||(t[52]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.fmt?.number(e.content.split(` +`).length))+" lines",1)])):f("v-if",!0),e.type=="html"?(a(),l("span",M9,[e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[53]||(t[53]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,V9),t[54]||(t[54]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),t[56]||(t[56]=g("Markdown",-1)),e.fileSize(e.filePath)!=null?(a(),l(q,{key:1},[t[55]||(t[55]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)])):f("v-if",!0),e.preview&&e.previewPreserved()?(a(),l("button",{key:2,type:"button",class:"rp-preserved-tag",onClick:t[3]||(t[3]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",q9,[e.isCsv()?(a(),l("div",_9,[n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.csvView==="table"}]),"aria-checked":e.csvView==="table",onClick:t[4]||(t[4]=d=>e.csvView="table")},"Table",10,$9),n("button",{type:"button",role:"radio",class:P(["seg-chip",{active:e.csvView==="raw"}]),"aria-checked":e.csvView==="raw",onClick:t[5]||(t[5]=d=>e.csvView="raw"),title:"Show the file as text with line numbers"},"Text",10,L9)])):f("v-if",!0),e.type!="html"&&e.symbols().length>1?(a(),l("div",F9,[n("button",{type:"button",class:P(["btn btn-sm btn-ghost btn-symbols",{"is-on":e.symbolsOpen}]),"aria-expanded":e.symbolsOpen?"true":"false","aria-haspopup":"true",title:"Symbols in this file",onClick:t[6]||(t[6]=d=>e.symbolsOpen=!e.symbolsOpen)},[...t[57]||(t[57]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-list"})],-1),n("span",{class:"btn-find-label"},"Symbols",-1)])],10,U9),e.symbolsOpen?(a(),l("div",B9,[n("div",z9,c(e.symbols().length)+" "+c(e.symbols().length===1?"symbol":"symbols"),1),(a(!0),l(q,null,x(e.symbols(),d=>(a(),l("button",{type:"button",class:"symbols-item",role:"menuitem",key:d.line+d.name,onClick:p=>e.goToSymbol(d.line)},[n("span",{class:P(["symbols-kind","is-"+d.kind])},c(d.kind==="class"?"C":d.kind==="function"?"\u0192":"v"),3),n("span",j9,c(d.name),1),n("span",G9,c(d.line),1)],8,H9))),128))])):f("v-if",!0)])):f("v-if",!0),e.type=="html"?(a(),l("button",{key:2,type:"button",class:P(["btn btn-sm btn-ghost btn-icon-only btn-find btn-md-find",{"is-on":e.mdFindOpen}]),"aria-label":"Find on this page",title:"Find on this page ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[7]||(t[7]=d=>e.toggleMdFind())},[...t[58]||(t[58]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],10,W9)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?(a(),l("div",K9,[e.type!="html"?(a(),l("button",{key:0,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-goto","aria-label":"Go to line",title:"Go to line ("+(e.isMac?"\u2318":"Ctrl+")+"G)",onClick:t[8]||(t[8]=d=>e.gotoLine())},[...t[59]||(t[59]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1)])],8,Y9)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:1,type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost btn-toggle",{"is-on":e.wrapLines}]),"aria-pressed":e.wrapLines?"true":"false","aria-label":"Wrap lines",title:"Wrap lines (Alt+Z)",onClick:t[9]||(t[9]=d=>e.toggleWrap())},[...t[60]||(t[60]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)])],10,X9)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:2,type:"button",class:"btn btn-sm btn-ghost btn-icon-only btn-find","aria-label":"Find in file",title:"Find in file ("+(e.isMac?"\u2318":"Ctrl+")+"F)",onClick:t[10]||(t[10]=d=>e.findInFile())},[...t[61]||(t[61]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1)])],8,J9)):f("v-if",!0)])):f("v-if",!0),!e.preview||e.url?(a(),l("div",Q9,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="html"?"Open the Markdown source":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,Z9),typeof e.content=="string"?(a(),l("button",{key:0,type:"button",class:"tb-seg-btn tb-seg-icon","aria-label":e.contentCopied?"Copied":"Copy file contents",title:e.contentCopied?"Copied":"Copy file contents",onClick:t[11]||(t[11]=d=>e.copyContent())},[(a(),l("svg",eB,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,tB)]))],8,x9)):f("v-if",!0),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[62]||(t[62]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,nB)])):f("v-if",!0),typeof e.content=="string"?(a(),l("button",{key:5,type:"button",class:"btn btn-sm btn-icon-only btn-ghost tb-copy-m","aria-label":e.contentCopied?"Copied":"Copy file contents",onClick:t[12]||(t[12]=d=>e.copyContent())},[(a(),l("svg",oB,[n("use",{href:e.contentCopied?"#ui-icon-check":"#project-icon-copy"},null,8,iB)]))],8,sB)):f("v-if",!0),e.type=="html"&&e.readmeToc().length>=3?(a(),l("div",rB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-toc-btn",{"is-on":e.tocOpen}]),"aria-label":"On this page",title:"On this page","aria-haspopup":"true","aria-expanded":e.tocOpen?"true":"false",onClick:t[13]||(t[13]=ae(d=>{e.tocOpen=!e.tocOpen,e.moreOpen=!1},["stop"]))},[...t[63]||(t[63]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-outline"})],-1)])],10,aB),e.tocOpen?(a(),l("div",{key:0,class:"tb-menu tb-toc-menu",role:"menu",onClick:t[15]||(t[15]=d=>e.tocOpen=!1)},[t[64]||(t[64]=n("div",{class:"tb-menu-label"},"On this page",-1)),n("button",{type:"button",role:"menuitem",class:P(["tb-menu-toc","lvl-2",{"is-active":!e.activeHeading}]),onClick:t[14]||(t[14]=d=>e.scrollToHeading(null))},"Introduction",2),(a(!0),l(q,null,x(e.readmeToc(),d=>(a(),l("button",{type:"button",role:"menuitem",key:"m-"+d.id,class:P(["tb-menu-toc","lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:p=>e.scrollToHeading(d.id)},c(d.text),11,lB))),128))])):f("v-if",!0)])):f("v-if",!0),n("div",dB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[16]||(t[16]=ae(d=>{e.tocOpen=!1,e.moreOpen=!e.moreOpen},["stop"]))},[(a(),l("svg",cB,[...t[65]||(t[65]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,uB),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[23]||(t[23]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",pB,[t[66]||(t[66]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g("Snapshot \xB7 "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),typeof e.content=="string"?(a(),l("div",fB,[g(c(e.type=="html"?"Markdown":e.languageName||"Text")+" \xB7 "+c(e.type=="html"&&e.fileSize(e.filePath)!=null?e.formatSize(e.fileSize(e.filePath)):e.content.length<1024?e.content.length+" B":(e.content.length/1024).toFixed(1)+" KB"),1),e.type!="html"?(a(),l(q,{key:0},[g(" \xB7 "+c(e.fmt?.number(e.content.split(` +`).length))+" lines",1)],64)):f("v-if",!0)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",hB)):f("v-if",!0),e.type=="html"?(a(),l("button",{key:3,type:"button",role:"menuitem",onClick:t[17]||(t[17]=d=>e.toggleMdFind())},[...t[67]||(t[67]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),g("Find in file",-1)])])):f("v-if",!0),e.type=="html"?(a(),l("div",mB)):f("v-if",!0),e.type!="html"?(a(),l("button",{key:5,type:"button",role:"menuitem",onClick:t[18]||(t[18]=d=>e.findInFile())},[...t[68]||(t[68]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-search"})],-1),g("Find in file",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:6,type:"button",role:"menuitem",onClick:t[19]||(t[19]=d=>e.gotoLine())},[...t[69]||(t[69]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-goto"})],-1),g("Go to line",-1)])])):f("v-if",!0),e.type!="html"?(a(),l("button",{key:7,type:"button",role:"menuitemcheckbox","aria-checked":e.wrapLines?"true":"false",onClick:t[20]||(t[20]=d=>e.toggleWrap())},[t[70]||(t[70]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-wrap"})],-1)),t[71]||(t[71]=g("Wrap lines",-1)),e.wrapLines?(a(),l("span",vB,"\u2713")):f("v-if",!0)],8,gB)):f("v-if",!0),e.isCsv()?(a(),l("button",{key:8,type:"button",role:"menuitem",class:"tb-csv-view",onClick:t[21]||(t[21]=d=>{e.csvView=e.csvView==="table"?"raw":"table",e.moreOpen=!1})},[(a(),l("svg",yB,[n("use",{href:e.csvView==="table"?"#ui-icon-code":"#ui-icon-list"},null,8,bB)])),g(c(e.csvView==="table"?"Show as text":"Show as table"),1)])):f("v-if",!0),e.type!="html"?(a(),l("div",wB)):f("v-if",!0),e.type=="html"&&(!e.preview||e.url)?(a(),l("a",{key:10,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[72]||(t[72]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g("View raw",-1)])],8,kB)):f("v-if",!0),e.type!="html"&&(!e.preview||e.url)?(a(),l("a",{key:11,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[...t[73]||(t[73]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1),g("View raw",-1)])],8,CB)):f("v-if",!0),!e.preview||e.url?(a(),l("a",{key:12,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[74]||(t[74]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,EB)):f("v-if",!0),e.options?.hasWebsite?(a(),l("a",{key:13,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/w/"+e.repoId+"/")},[...t[75]||(t[75]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-globe"})],-1),g("Open website",-1)])],8,SB)):f("v-if",!0),e.options?.isAdmin||e.options?.isOwner?(a(),l("a",{key:14,role:"menuitem",href:e.safeUrl("/anonymize/"+e.repoId)},[...t[76]||(t[76]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-edit"})],-1),g("Edit anonymization",-1)])],8,NB)):f("v-if",!0),e.options?.download?(a(),l("a",{key:15,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[77]||(t[77]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),g("Download ZIP",-1)])],8,RB)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[22]||(t[22]=d=>e.copyPath())},[...t[78]||(t[78]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),g("Copy file path",-1)])]),t[79]||(t[79]=n("div",{class:"tb-menu-sep"},null,-1)),t[80]||(t[80]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),g("FAQ")],-1)),t[81]||(t[81]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug")],-1))])):f("v-if",!0)])]),e.gotoOpen&&e.type!="html"?(a(),l("form",{key:3,class:"goto-pop",role:"dialog","aria-label":"Go to line",onSubmit:t[26]||(t[26]=ae(d=>e.submitGoto(),["prevent"]))},[t[82]||(t[82]=n("label",{class:"goto-label",for:"goto-input"},"Go to line",-1)),D(n("input",{id:"goto-input",class:"goto-input",type:"text",inputmode:"numeric",autocomplete:"off",spellcheck:"false",placeholder:"1\u2013"+e.fmt?.number(typeof e.content=="string"?e.content.split(` +`).length:1),"aria-invalid":e.gotoError?"true":"false","onUpdate:modelValue":t[24]||(t[24]=d=>e.gotoValue=d),onKeydown:t[25]||(t[25]=kt(ae(d=>e.closeGoto(),["prevent","stop"]),["esc"]))},null,40,PB),[[pt,e.gotoValue]]),n("span",{class:P(["goto-hint",{"is-error":e.gotoError}])},c(e.gotoError||"Line, or line:column"),3)],32)):f("v-if",!0)]),e.isCsv()&&e.csvView==="table"?(a(),l("div",{key:0,class:"csv-table-wrap",tabindex:"0",role:"region","aria-label":"Table view of "+(e.paths?.[e.paths.length-1]||"file")},[n("table",DB,[n("thead",null,[n("tr",null,[t[83]||(t[83]=n("th",{class:"csv-rownum",scope:"col"},[n("span",{class:"sr-only"},"Row")],-1)),(a(!0),l(q,null,x(e.csvRows()[0]||[],(d,p)=>(a(),l("th",{scope:"col",key:p,class:P({"is-num":e.csvNumCol(p)})},[(a(!0),l(q,null,x(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,TB)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],2))),128))])]),n("tbody",null,[(a(!0),l(q,null,x(e.csvRows().slice(1),(d,p)=>(a(),l("tr",{key:p},[n("td",OB,c(p+1),1),(a(!0),l(q,null,x(d,(u,y)=>(a(),l("td",{key:y,class:P({"is-num":e.csvNumCol(y)})},[(a(!0),l(q,null,x(e.redactParts(u),(m,b)=>(a(),l(q,{key:b},[m.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+m.n},[n("i",null,c(m.n),1)],8,IB)):(a(),l(q,{key:1},[g(c(m.t),1)],64))],64))),128))],2))),128))]))),128))])])],8,AB)):f("v-if",!0),e.type!="html"&&!(e.isCsv()&&e.csvView==="table")?D((a(),l("div",MB,null,512)),[[r,{content:e.content,options:e.aceOption}]]):f("v-if",!0),e.type=="html"&&e.mdFindOpen?(a(),l("div",VB,[n("input",{type:"search",class:"md-find-input",placeholder:"Find on this page","aria-label":"Find on this page",value:e.mdFindQuery,onInput:t[27]||(t[27]=d=>{e.mdFindQuery=d.target.value,e.runMdFind()}),onKeydown:[t[28]||(t[28]=kt(ae(d=>d.shiftKey?e.stepMdFind(-1):e.stepMdFind(1),["prevent"]),["enter"])),t[29]||(t[29]=kt(ae(d=>e.toggleMdFind(!1),["prevent"]),["esc"]))]},null,40,qB),n("span",_B,[n("button",{type:"button","aria-label":"Previous match",onClick:t[30]||(t[30]=d=>e.stepMdFind(-1)),disabled:!e.mdFindTotal},[...t[84]||(t[84]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-left"})],-1)])],8,$B),n("button",{type:"button","aria-label":"Next match",onClick:t[31]||(t[31]=d=>e.stepMdFind(1)),disabled:!e.mdFindTotal},[...t[85]||(t[85]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-chevron-right"})],-1)])],8,LB)]),n("span",FB,c(e.mdFindQuery?e.mdFindTotal?e.mdFindIndex+1+" of "+e.mdFindTotal:"No results":""),1),n("button",{type:"button",class:P(["md-find-opt",{"is-on":e.mdFindCase}]),"aria-pressed":e.mdFindCase?"true":"false",title:"Match case","aria-label":"Match case",onClick:t[32]||(t[32]=d=>{e.mdFindCase=!e.mdFindCase,e.runMdFind()})},"Aa",10,UB),n("button",{type:"button",class:"md-find-close","aria-label":"Close find",onClick:t[33]||(t[33]=d=>e.toggleMdFind(!1))},"\xD7")])):f("v-if",!0),e.type=="html"?(a(),l("div",BB,[n("div",{class:"file-content markdown-body",innerHTML:e.renderReadme(e.sanitize(e.content))},null,8,zB),e.readmeToc().length>=3?(a(),l("aside",HB,[t[86]||(t[86]=n("div",{class:"readme-toc-head"},"On this page",-1)),n("nav",jB,[n("a",{href:"#",class:P(["lvl-2 toc-top",{"is-active":!e.activeHeading}]),onClick:t[34]||(t[34]=ae(d=>e.scrollToHeading(null),["prevent"]))},"Introduction",2),(a(!0),l(q,null,x(e.readmeToc(),(d,p)=>(a(),l("a",{key:d.id,href:"#"+d.id,class:P(["lvl-"+d.level,{"is-active":e.activeHeading===d.id}]),onClick:ae(u=>e.scrollToHeading(d.id),["prevent"])},c(d.text),11,GB))),128))])])):f("v-if",!0)])):f("v-if",!0)],2)):f("v-if",!0),e.type=="html-doc"&&!e.showSource&&e.content!=null?(a(),Gt(s,{key:2,content:e.content,"base-url":e.fileBaseUrl,"allow-scripts":e.allowScripts},null,8,["content","base-url","allow-scripts"])):f("v-if",!0),e.fileFrame()?(a(),l("section",{key:3,class:P(["file-card file-card-media","view-"+e.type])},[n("header",WB,[n("div",KB,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost card-files-btn",{"is-needed":e.sidebarHidden}]),title:"Show file tree",onClick:t[35]||(t[35]=d=>e.sidebarHidden?e.sidebarHidden=!1:e.sidebarCollapsed=!1)},[...t[87]||(t[87]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-sidebar"})],-1),n("span",{class:"card-files-label"},"Files",-1)])],2),n("ol",YB,[n("li",XB,[n("a",{href:e.safeUrl("/r/"+e.repoId+"/"),title:e.repoId,textContent:c(/^[0-9a-f]{8}-[0-9a-f]{4}-/i.test(e.repoId||"")?"repository":e.repoId)},null,8,JB)]),(a(!0),l(q,null,x(e.paths,(d,p)=>(a(),l("li",{class:"breadcrumb-item","aria-current":p===e.paths.length-1?"page":null},[(a(!0),l(q,null,x(e.redactParts(d),(u,y)=>(a(),l(q,{key:y},[u.n?(a(),l("span",{key:0,class:"redact-slot",role:"img","aria-label":"Redacted term "+u.n},[n("i",null,c(u.n),1)],8,ZB)):(a(),l(q,{key:1},[g(c(u.t),1)],64))],64))),128))],8,QB))),256))]),n("span",xB,[e.type=="IPython"&&e.redactionCount()?(a(),l("b",{key:0,class:"ms-item ms-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[88]||(t[88]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,ez)):f("v-if",!0),n("span",tz,c(e.fileKind()),1),e.imageSize?(a(),l("span",nz,c(e.imageSize),1)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l("span",sz,c(e.formatSize(e.fileSize(e.filePath))),1)):f("v-if",!0)]),D(n("button",{type:"button",class:"btn btn-sm btn-icon-only btn-ghost copy-path-btn","aria-label":e.pathCopied?"Path copied":"Copy file path",title:e.pathCopied?"Path copied":"Copy file path",onClick:t[36]||(t[36]=d=>e.copyPath())},[(a(),l("svg",iz,[n("use",{href:e.pathCopied?"#ui-icon-check":"#ui-icon-link"},null,8,rz)]))],8,oz),[[Q,e.filePath]])]),n("span",az,[e.type=="IPython"&&e.redactionCount()?(a(),l(q,{key:0},[n("span",{class:"meta-redact",title:e.redactionCount()+" redacted terms"},[g(c(e.redactionCount()),1),t[89]||(t[89]=n("span",{class:"meta-redact-word"}," redacted",-1))],8,lz),t[90]||(t[90]=n("span",{class:"sep"},"\xB7",-1))],64)):f("v-if",!0),g(c(e.fileKind()),1),e.imageSize?(a(),l(q,{key:1},[t[91]||(t[91]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.imageSize),1)],64)):f("v-if",!0),e.fileSize(e.filePath)!=null?(a(),l(q,{key:2},[t[92]||(t[92]=n("span",{class:"sep"},"\xB7",-1)),g(c(e.formatSize(e.fileSize(e.filePath))),1)],64)):f("v-if",!0)]),e.preview&&e.previewPreserved()?(a(),l("button",{key:0,type:"button",class:"rp-preserved-tag",onClick:t[37]||(t[37]=d=>e.openPreserveFiles())},"Left unredacted")):f("v-if",!0),n("div",dz,[e.type=="error"&&e.content==="file_too_big"?(a(),l("span",uz,[...t[93]||(t[93]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-info"})],-1),g("Over the size limit",-1)])])):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("div",cz,[n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn",title:e.type=="IPython"?"Open the notebook JSON":"Open the raw file",href:e.safeUrl(e.url)},"Raw",8,pz),n("a",{target:e.preview?"_blank":"_self",class:"tb-seg-btn tb-seg-icon","aria-label":"Download file",title:"Download file",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[94]||(t[94]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1)])],8,fz)])):f("v-if",!0),n("div",hz,[n("button",{type:"button",class:P(["btn btn-sm btn-icon-only btn-ghost tb-more-btn",{"is-on":e.moreOpen}]),"aria-label":"More actions","aria-haspopup":"true","aria-expanded":e.moreOpen?"true":"false",onClick:t[38]||(t[38]=ae(d=>e.moreOpen=!e.moreOpen,["stop"]))},[(a(),l("svg",gz,[...t[95]||(t[95]=[n("circle",{cx:"5",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"12",cy:"12",r:"1.8"},null,-1),n("circle",{cx:"19",cy:"12",r:"1.8"},null,-1)])]))],10,mz),e.moreOpen?(a(),l("div",{key:0,class:"tb-menu",role:"menu",onClick:t[40]||(t[40]=d=>e.moreOpen=!1)},[e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",vz,[t[96]||(t[96]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-clock"})],-1)),g("Snapshot \xB7 "+c(e.fmt?.date(e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate)),1)])):f("v-if",!0),e.options?.publishedAt||e.options?.sourceCommitDate||e.options?.anonymizedAt||e.options?.lastUpdateDate?(a(),l("div",yz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:2,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.url)},[t[97]||(t[97]=n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-code"})],-1)),g(c(e.type=="IPython"?"View notebook JSON":"View raw"),1)],8,bz)):f("v-if",!0),e.type!="error"&&(!e.preview||e.url)?(a(),l("a",{key:3,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[98]||(t[98]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,wz)):f("v-if",!0),e.options?.download?(a(),l("a",{key:4,role:"menuitem",target:e.preview?"_blank":"_self",href:e.safeUrl("/api/repo/"+e.repoId+"/zip")},[...t[99]||(t[99]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-archive"})],-1),g("Download ZIP",-1)])],8,kz)):f("v-if",!0),n("button",{type:"button",role:"menuitem",onClick:t[39]||(t[39]=d=>e.copyPath())},[...t[100]||(t[100]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-link"})],-1),g("Copy file path",-1)])]),t[101]||(t[101]=n("div",{class:"tb-menu-sep"},null,-1)),t[102]||(t[102]=n("a",{role:"menuitem",href:"/faq"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-help"})]),g("FAQ")],-1)),t[103]||(t[103]=n("a",{role:"menuitem",href:"https://github.com/tdurieux/anonymous_github/issues/new?template=issue_report.yml",target:"_blank",rel:"noopener"},[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-bug"})]),g("Report a bug")],-1))])):f("v-if",!0)])])]),e.type=="image"?(a(),l("div",Cz,[n("img",{class:"image-content",src:e.safeUrl(e.url),alt:e.paths[e.paths.length-1],onLoad:t[41]||(t[41]=d=>e.onImageLoad(d))},null,40,Ez)])):f("v-if",!0),e.type=="media"?(a(),l("div",Sz,[n("video",{class:"video-content",controls:"",preload:"metadata",playsinline:"",src:e.safeUrl(e.url)},null,8,Nz)])):f("v-if",!0),e.type=="audio"?(a(),l("div",Rz,[n("audio",{controls:"",preload:"metadata",src:e.safeUrl(e.url)},null,8,Pz)])):f("v-if",!0),e.type=="pdf"?(a(),Gt(i,{key:3,src:e.safeUrl(e.url)},null,8,["src"])):f("v-if",!0),e.type=="IPython"?(a(),l("div",Az,[Oe(o,{class:"markdown-body",file:e.url,content:e.content},null,8,["file","content"])])):f("v-if",!0),e.type=="binary"?(a(),l("div",Dz,[t[105]||(t[105]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1)),t[106]||(t[106]=n("h2",{class:"file-state-title"},"No preview for this file",-1)),n("p",Tz,c(e.preview?"Reviewers can open this file; it is not previewed here.":"This is a binary file. Download it to open it on your computer."),1),e.preview?f("v-if",!0):(a(),l("div",Oz,[n("a",{target:e.preview?"_blank":"_self",class:"btn btn-primary",href:e.safeUrl(e.downloadUrl()),download:e.preview?e.paths[e.paths.length-1]:null},[...t[104]||(t[104]=[n("svg",{class:"ui-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-download"})],-1),g("Download file",-1)])],8,Iz)]))])):f("v-if",!0),e.type=="error"?(a(),l("div",Mz,[t[108]||(t[108]=n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#ui-icon-warning"})],-1)),n("h2",Vz,c(e.content==="file_too_big"?"This file is too large to preview":"This file can't be shown"),1),e.content==="file_too_big"?(a(),l("p",qz,c(e.preview?"Reviewers can open this file; it is not previewed here. Files over 1 MB are only shown on the reviewer page.":"It is over the size limit for anonymized files, so it can't be previewed or downloaded from this link."),1)):(a(),l("p",_z,c(e.fmt.translate("ERRORS."+e.content)),1)),e.preview?f("v-if",!0):(a(),l("div",$z,[n("a",{class:"btn btn-primary",href:e.safeUrl("/r/"+e.repoId+"/")},"Back to the repository",8,Lz),t[107]||(t[107]=n("a",{class:"btn btn-outline-ink",href:"/faq#formats"},"Supported files",-1))]))])):f("v-if",!0),e.content==null&&e.type!="error"?(a(),l("div",Fz,[...t[109]||(t[109]=[n("svg",{class:"ui-icon file-state-icon","aria-hidden":"true"},[n("use",{href:"#project-icon-file"})],-1),n("h2",{class:"file-state-title"},"This file is empty",-1),n("p",{class:"file-state-msg"},"It has no content in this snapshot.",-1)])])):f("v-if",!0)],2)):f("v-if",!0),e.type=="rate_limited"?(a(),l("div",Uz,[n("div",Bz,[t[112]||(t[112]=Ee('Track PR mirrors you\u2019ve created and their reviewer traffic.