From 18fa4ac9367dd9d33118a1fd33a83045746518d5 Mon Sep 17 00:00:00 2001 From: Kenny Daniel Date: Sat, 27 Jan 2024 19:29:21 -0800 Subject: [PATCH] Move metadata to side bar --- demo.css | 26 ++++++++++++++++++++------ demo.js | 23 ++++++++++++++++++----- index.html | 3 ++- 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/demo.css b/demo.css index 935b907..0dc7aa4 100644 --- a/demo.css +++ b/demo.css @@ -51,7 +51,16 @@ input[type="file"] { #layout { margin-top: 20px; } -#layout div { +.layout div { + background-color: rgba(0, 0, 0, 0.05); + border: 1px solid #ccc; + border-radius: 4px; + font-size: 12px; + margin-top: 4px; + padding: 4px; + word-break: break-all; +} +.layout div { background-color: rgba(0, 0, 0, 0.05); border: 1px solid #ccc; border-radius: 4px; @@ -71,10 +80,10 @@ input[type="file"] { } nav ul, -#layout div ul { +.layout div ul { list-style: none; } -#layout div li { +.layout div li { font-size: 10px; padding: 2px 4px; text-align: right; @@ -84,17 +93,22 @@ nav ul, display: none; } -#layout h2 { +.layout h2 { cursor: pointer; user-select: none; } -#layout h2::before { +.layout h2::before { content: "▼"; display: inline-block; font-size: 10px; margin: 0 4px; vertical-align: middle; } -#layout .collapsed h2::before { +.layout .collapsed h2::before { content: "▶"; } + +#metadata pre { + white-space: pre-wrap; + break-word: break-all; +} diff --git a/demo.js b/demo.js index 630a47a..f0d8469 100644 --- a/demo.js +++ b/demo.js @@ -2,6 +2,7 @@ import { parquetMetadata, toJson } from './src/hyparquet.js' const dropzone = document.getElementById('dropzone') const layout = document.getElementById('layout') +const metadata = document.getElementById('metadata') const fileInput = document.getElementById('file-input') dropzone.addEventListener('dragover', e => { @@ -30,14 +31,13 @@ function processFile(file) { reader.onload = e => { try { const arrayBuffer = e.target.result - const metadata = toJson(parquetMetadata(arrayBuffer)) + layout.innerHTML = `${file.name}` // render file layout layout.appendChild(fileLayout(metadata, arrayBuffer)) - // display metadata - dropzone.innerHTML = `${file.name}` - dropzone.innerHTML += `
${JSON.stringify(metadata, null, 2)}
` + metadata.innerHTML = '' + metadata.appendChild(fileMetadata(toJson(parquetMetadata(arrayBuffer)))) } catch (e) { dropzone.innerHTML = `${file.name}` dropzone.innerHTML += `
Error parsing file\n${e}
` @@ -87,7 +87,7 @@ function fileLayout(metadata, arrayBuffer) { const div = document.createElement('div') div.innerHTML = html div.classList.add('collapsed') // start collapsed - div.addEventListener('click', () => { + div.children[0].addEventListener('click', () => { div.classList.toggle('collapsed') }) return div @@ -106,3 +106,16 @@ function cell(name, start, bytes, end) { ` } + +// Render metadata +function fileMetadata(metadata) { + let html = '

Metadata

' + html += `
${JSON.stringify(metadata, null, 2)}
` + const div = document.createElement('div') + div.innerHTML = html + div.classList.add('collapsed') // start collapsed + div.children[0].addEventListener('click', () => { + div.classList.toggle('collapsed') + }) + return div +} diff --git a/index.html b/index.html index 58b3431..9c061f9 100644 --- a/index.html +++ b/index.html @@ -19,7 +19,8 @@
  • github
  • npm
  • -
    +
    +