summaryrefslogtreecommitdiff
path: root/src/clicks_display.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/clicks_display.ts')
-rw-r--r--src/clicks_display.ts25
1 files changed, 24 insertions, 1 deletions
diff --git a/src/clicks_display.ts b/src/clicks_display.ts
index 3478a0f..d13d790 100644
--- a/src/clicks_display.ts
+++ b/src/clicks_display.ts
@@ -47,18 +47,26 @@ class Display {
private status: HTMLElement
private frame_container: HTMLElement
private frame: HTMLIFrameElement
+ private url: HTMLSelectElement
private heatmap: HTMLElement
private data: PageData[] | undefined
private map: h337.Heatmap<"value", "x", "y">
+ private current: PageData | undefined
constructor() {
this.status = document.getElementById("status")!!
this.frame_container = document.getElementById("frame_container")!!
this.frame = document.getElementById("frame")!! as HTMLIFrameElement
this.heatmap = document.getElementById("heatmap")!!
+ this.url = document.getElementById("url")!! as HTMLSelectElement
this.map = h337.create({
container: this.heatmap,
})
+
+ this.url.addEventListener("change", (e) => {
+ if (this.data === undefined) return
+ this.show(this.data[this.url.selectedIndex])
+ })
}
loadFile(file: File) {
@@ -104,8 +112,21 @@ class Display {
this.data.push(new PageData(url, data.width, clicks))
}
+ while (this.url.options.length > 0)
+ this.url.options.remove(0)
+
+ for (let i = 0; i < this.data.length; i++) {
+ const option = document.createElement("option") as HTMLOptionElement
+ option.value = `${i}`
+ option.innerText = this.data[i].url
+ this.url.options.add(option)
+ }
+
this.setStatus("Loaded")
- if (this.data.length > 0) this.show(this.data[0])
+ if (this.data.length > 0) {
+ this.url.selectedIndex = 0
+ this.show(this.data[0])
+ }
})
reader.readAsText(file)
}
@@ -115,6 +136,8 @@ class Display {
}
private show(data: PageData) {
+ if (this.current === data) return
+ this.current = data
this.frame_container.style.width = `${data.width}px`
this.frame.src = data.url
this.heatmap.style.transform = "translateY(0px)"