1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
237651 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
79d4a6 Tucker McKnight
(function() {
const setCheckbox = (<any>window).setCheckbox
const currentTheme = (<any>window).currentTheme
setCheckbox(currentTheme, document.getElementById('dark-mode-switch'))
const copyCommand = (event) => {
const elem = event.target
const cloneText = elem.dataset.cloneUrl
const originalInnerText = elem.innerText
navigator.clipboard.writeText(cloneText).then(() => {
elem.innerText = "Copied"
})
window.setTimeout(() => {
elem.innerText = originalInnerText
}, 5000)
}
const createClonePopover = (currentRepo: string) => {
const div = document.createElement('div')
div.id = "clone-popover"
div.innerHTML = jsVars.cloneDiv
const popoverBtn = document.getElementById("clone-popover-btn")
const bsPopover = new bootstrap.Popover(popoverBtn, {
sanitize: false,
html: true,
content: div,
title: 'Clone',
})
div.querySelector("#clone-button").addEventListener('click', copyCommand)
document.body.addEventListener('click', (event) => {
const target = event.target as HTMLElement
// If they didn't click the #clone-popover-btn or if we're not inside of
// popover, or if we *are* inside of a popover but a different one than the
// current one, then close the popover.
const parentPopover = target.closest(".popover")
if (
target.id !== "clone-popover-btn"
&& (
parentPopover === null
|| parentPopover !== bsPopover.tip)
) {
bsPopover.hide()
}
})
}
const toggleLastTouch = (event) => {
const isOn = event.target.checked
const annotations = document.getElementById("annotations")
if (isOn) {
annotations.classList.remove("d-none")
} else {
annotations.classList.add("d-none")
}
}
document.getElementById("showLastTouch")?.addEventListener('click', toggleLastTouch)
const copyPull = (event) => {
const hash = event.target.dataset.hash
const originalInnerHtml = event.target.innerHTML
const copiedAlert = document.createElement('span')
copiedAlert.innerText = "Copied"
navigator.clipboard.writeText(hash).then(() => {
event.target.parentElement.appendChild(copiedAlert)
})
window.setTimeout(() => {
copiedAlert.remove()
}, 5000)
}
document.querySelectorAll(".copy-btn").forEach((element) => {
element.addEventListener("click", copyPull)
})
const bootstrap = (<any>window).bootstrap
const jsVars = (<any>window).jsVars
if (jsVars.nav.repoName) {
createClonePopover(jsVars.nav.repoName)
}
}())