In short

v0.79.0 keeps ordinary chart rendering in the format entries and provides 3-D and Region Map rendering as explicit add-ons. The same injected renderer works for charts hosted by Word, Excel and PowerPoint.

Existing viewers continue to use the established chart fallback without configuration changes. No migration is required.

  • Authored 3-D chart views render through one model-space camera and projected mesh pipeline.
  • Country-level ChartEx Region Maps render offline from worksheet or document data.
  • Shared axis planning, titles, data labels, legend paint and ChartEx layout now follow more authored OOXML properties.
  • Both optional modules are tree-shakeable and main-thread only.

One 3-D scene for axes and data

The 3-D add-on projects chart walls, axes and data through one homogeneous camera instead of applying unrelated screen-space offsets. Bar and column solids use projected meshes, area charts use extruded surfaces, and pie slices use bounded mesh geometry. Authored box, cylinder, cone, cone-to-max, pyramid and pyramid-to-max shapes are retained where the OOXML model supplies them.

The renderer honors the view saved in the document, including rotation, perspective, right-angle axes, depth and height.

Offline country Region Maps

The parser keeps ChartEx country identities, numeric color values, authored projections and two- or three-stop color scales. The add-on renders supported countries offline.

The map uses public-domain Natural Earth Admin 0 Countries 1:110m geometry.

v0.79.0 supports country-level world maps. Cached provider identities and state, county or postal views are not supported.

Enable the optional renderers

Import each renderer from its separate package entry and pass it to a Viewer or headless engine at construction/load time. Both add-ons render on the main thread. Worker rendering keeps the 2-D fallback for 3-D charts; Region Maps require main-thread rendering.

Enable advanced charts in an XLSX Viewer

import { XlsxViewer } from '@silurus/ooxml/xlsx';
import { threeD } from '@silurus/ooxml/three-d';
import { regionMap } from '@silurus/ooxml/region-map';

const viewer = new XlsxViewer(container, {
  mode: 'main',
  threeD,
  regionMap,
});

await viewer.load(source);

Chart fidelity and bounded work

Classic and ChartEx charts now share more of the same value-axis planner, title defaults, data-label layout, rich text, legend paint and explicit-property precedence. This improves waterfall, funnel, box-and-whisker, histogram, Pareto, treemap, sunburst, bubble, line, area and combo charts without family-specific copies of the same policy.

Parser/model inputs and painting work are bounded for ticks, data-label text, hierarchies, Region Map rows and expanded 3-D primitives. The optional entries keep 3-D and map geometry out of the base format bundles.

Upgrading

No existing option is removed or renamed. Upgrade normally to receive the shared 2-D chart fixes. Add the threeD or regionMap option only when the corresponding authored chart needs its optional renderer.

The optional entries are ESM-only like the rest of the package. Applications using mode: worker should keep the fallback or switch the affected document view to mode: main before injecting an add-on.

Questions about the change? Start a GitHub discussion ↗︎