29 lines
1.0 KiB
TypeScript
29 lines
1.0 KiB
TypeScript
// file: kb-app-demo-desktop/frontend/ts/json_viewer.ts
|
|
// version: 2
|
|
|
|
import "@andypf/json-viewer";
|
|
|
|
export function jsonText(value: unknown): string {
|
|
return JSON.stringify(value, null, 2);
|
|
}
|
|
|
|
export function renderJsonViewer(selector: string, value: unknown): void {
|
|
const container = document.querySelector<HTMLElement>(selector);
|
|
if (!container) {
|
|
return;
|
|
}
|
|
const viewer = document.createElement("andypf-json-viewer");
|
|
viewer.classList.add("app-json-viewer-element");
|
|
viewer.setAttribute("indent", "2");
|
|
viewer.setAttribute("expanded", "1");
|
|
viewer.setAttribute("theme", "default-light");
|
|
viewer.setAttribute("show-data-types", "true");
|
|
viewer.setAttribute("show-toolbar", "false");
|
|
viewer.setAttribute("expand-icon-type", "arrow");
|
|
viewer.setAttribute("show-copy", "true");
|
|
viewer.setAttribute("show-size", "true");
|
|
viewer.setAttribute("expand-empty", "false");
|
|
viewer.setAttribute("data", jsonText(value));
|
|
container.replaceChildren(viewer);
|
|
}
|