feat(services): introduce DeesServiceLibLoader to lazy-load heavy client libraries from CDN and update components to use it

This commit is contained in:
2026-01-01 20:25:05 +00:00
parent 2a6457e192
commit d7f3594dd4
12 changed files with 410 additions and 39 deletions

View File

@@ -1,5 +1,15 @@
# Changelog
## 2026-01-01 - 3.27.0 - feat(services)
introduce DeesServiceLibLoader to lazy-load heavy client libraries from CDN and update components to use it
- Add DeesServiceLibLoader singleton (ts_web/services/DeesServiceLibLoader.ts) to lazily load and cache libraries via jsDelivr ESM: xterm, xterm-addon-fit, highlight.js, ApexCharts, and Tiptap.
- Inject xterm CSS dynamically to avoid shipping xterm styles in the initial bundle.
- Expose helper methods preloadAll() and isLoaded(), and typed bundle interfaces (IXtermBundle, IXtermFitAddonBundle, ITiptapBundle).
- Update components to use runtime-loaded modules: dees-chart-area, dees-dataview-codebox, dees-input-richtext, wysiwyg code block, dees-workspace-terminal, terminal-tab-manager, dees-workspace-terminal-preview.
- TerminalTabManager now requires setXtermModules(...) before creating tabs and will throw if not initialized; workspace terminal now initializes and passes the loaded modules.
- Replace direct runtime imports of heavy libs with typed imports and runtime-loaded bundles to reduce initial bundle size and improve load performance.
## 2026-01-01 - 3.26.1 - fix(dees-actionbar)
animate actionbar hide using grid-template-rows and wait for animation before clearing state