import type { AssetManager } from "@/core/AssetManager"; import { UiList } from "@/ui-core/UiList"; import { UiPanel } from "@/ui-core/UiPanel"; export class AssetWidget { readonly element: HTMLDivElement; private readonly list = new UiList(); private readonly assetManager: AssetManager; constructor(assetManager: AssetManager) { this.assetManager = assetManager; const panel = new UiPanel("Assets"); panel.append(this.list.element); this.element = panel.element; this.render(); } render(): void { const snapshot = this.assetManager.getInspectorSnapshot(); const bundles = Object.entries(snapshot.bundles); const sessions = Object.keys(snapshot.sessions); const items = [ `sessions: ${sessions.length}`, `bundles: ${bundles.length}`, ...bundles.slice(0, 5).map(([name, meta]) => `${name}: ref=${meta.refCount}`), ]; this.list.setItems(items); } }