pptx-angular-viewer 4.10.1 → 4.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as pptx_viewer_core from 'pptx-viewer-core';
2
- import { PptxThemePreset, PptxElement, PptxSlide, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartMarkerSymbol, PptxChartDataPointPicture, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, PptxBar3DShape, SmartArtLayoutType, PptxSmartArtDrawingShape, SmartArtColorScheme, PptxSmartArtChrome, SmartArtStyle, PptxSmartArtData, PptxThemeColorRef, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, ImagePptxElement, MasterViewTab, PptxHeaderFooter, PptxPresentationProperties, PptxViewProperties, PptxCustomShow, PptxCoreProperties, PptxAppProperties, PptxCustomProperty, PptxTagCollection, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxSlideSize, PptxSaveFormat, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHandlerSaveOptions, PptxModernCommentAuthor, PptxCommentMention, PptxThemeOption, ParsedSignature, PptxLayoutPreview, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxLayoutOption, PptxGridSpacing, ChartPptxElement, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
2
+ import { PptxThemePreset, PptxElement, PptxSlide, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, PptxBar3DShape, SmartArtLayoutType, PptxSmartArtDrawingShape, SmartArtColorScheme, PptxSmartArtChrome, SmartArtStyle, PptxSmartArtData, PptxThemeColorRef, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, ImagePptxElement, MasterViewTab, PptxHeaderFooter, PptxPresentationProperties, PptxViewProperties, PptxCustomShow, PptxCoreProperties, PptxAppProperties, PptxCustomProperty, PptxTagCollection, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxSlideSize, PptxSaveFormat, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHandlerSaveOptions, PptxModernCommentAuthor, PptxCommentMention, PptxThemeOption, ParsedSignature, PptxLayoutPreview, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxLayoutOption, PptxGridSpacing, ChartPptxElement, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, PptxChartMarkerSymbol, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
3
3
  export { GroupResult, SWITCHABLE_LAYOUT_TYPES, UngroupResult, addSmartArtNode, addSmartArtNodeAsChild, chartDataChangeType, chartDataUpdatePoint, demoteSmartArtNode, formatAutoNumberMarker as formatAutoNumber, groupElements, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, ungroupElements, updateSmartArtNodeText } from 'pptx-viewer-core';
4
4
  import { Doc } from 'yjs';
5
5
  import * as _angular_core from '@angular/core';
@@ -1598,71 +1598,6 @@ interface SvgAreaGradient {
1598
1598
  }
1599
1599
  type SvgPrimitive = SvgRect | SvgPath | SvgPolyline | SvgCircle | SvgLine | SvgPolygon | SvgText | SvgAreaGradient;
1600
1600
 
1601
- /**
1602
- * chart-datapoint-style.ts: framework-agnostic resolution of per-data-point
1603
- * formatting overrides (`c:dPt`).
1604
- *
1605
- * A chart series may override the appearance of individual data points: a
1606
- * per-point fill colour, or (for pie/doughnut) a slice "explosion" pull-out
1607
- * distance. These helpers resolve the effective value for a given point index,
1608
- * falling back to the series-level default, so every binding (React/Vue/Angular)
1609
- * can render edited per-point formatting identically without re-implementing the
1610
- * lookup.
1611
- *
1612
- * @module chart-datapoint-style
1613
- */
1614
-
1615
- /** Minimal shape props subset needed to resolve a point fill. */
1616
- interface PointShapeProps {
1617
- fillColor?: string;
1618
- }
1619
- /** Minimal marker shape consumed here (mirrors `PptxChartMarker`). */
1620
- interface ChartMarkerLike {
1621
- symbol?: PptxChartMarkerSymbol;
1622
- size?: number;
1623
- spPr?: PointShapeProps;
1624
- }
1625
- /** Minimal data-point shape consumed here (mirrors `PptxChartDataPoint`). */
1626
- interface ChartDataPointLike {
1627
- idx: number;
1628
- spPr?: PointShapeProps;
1629
- explosion?: number;
1630
- marker?: ChartMarkerLike;
1631
- picture?: PptxChartDataPointPicture;
1632
- /**
1633
- * A picture fill implied by a bare `c:dPt/c:spPr/a:blipFill` with no
1634
- * sibling `c:pictureOptions` (mirrors `PptxChartDataPoint.impliedPicture`).
1635
- * {@link resolveActiveDataPointPicture} falls back to this only when
1636
- * {@link picture} did not resolve an image of its own.
1637
- */
1638
- impliedPicture?: PptxChartDataPointPicture;
1639
- }
1640
- /** Minimal series shape consumed here (mirrors `PptxChartSeries`). */
1641
- interface ChartSeriesLike {
1642
- color?: string;
1643
- marker?: ChartMarkerLike;
1644
- dataPoints?: ChartDataPointLike[];
1645
- /**
1646
- * This series' `c:ser/c:idx/@val` (mirrors `PptxChartSeries.idx`). Used to
1647
- * key the automatic marker-symbol cycle so a chart with non-sequential or
1648
- * gapped indices (a deleted/filtered series) still lands on the same shape
1649
- * PowerPoint does; falls back to the caller-supplied array position when
1650
- * absent.
1651
- */
1652
- idx?: number;
1653
- /**
1654
- * Series-level picture-fill flags (`c:ser/c:pictureOptions`): paints every
1655
- * point in the series with one picture unless a `c:dPt` resolves its own
1656
- * (see {@link resolveActiveDataPointPicture}).
1657
- */
1658
- picture?: PptxChartDataPointPicture;
1659
- /**
1660
- * A picture fill implied by a bare `c:ser/c:spPr/a:blipFill` with no
1661
- * sibling `c:pictureOptions` (mirrors `PptxChartSeries.impliedPicture`).
1662
- */
1663
- impliedPicture?: PptxChartDataPointPicture;
1664
- }
1665
-
1666
1601
  /**
1667
1602
  * chart-legend-build.ts: builds the base `LegendEntry[]` (colour + label +
1668
1603
  * optional line-style swatch) and the legend's anchor position for a chart
@@ -6323,256 +6258,6 @@ interface SmartArt3DModel {
6323
6258
  lighting?: SmartArt3DLighting;
6324
6259
  }
6325
6260
 
6326
- /**
6327
- * Pure surface-chart 3D geometry helpers (framework- and three-agnostic).
6328
- *
6329
- * The hosted surface scene ({@link createSurfaceChart3DScene}) feeds these
6330
- * the `three` module `<pptx-three-view>` loaded, so the library stays an
6331
- * optional import while the grid maths (plane subdivision -> height/colour displacement,
6332
- * world-space label anchors) lives here as small, separately testable units.
6333
- */
6334
-
6335
- /** The `c:view3D` fields the camera placement cares about. */
6336
- interface SurfaceCameraView3D {
6337
- /** X-axis rotation in degrees (-90...90); PowerPoint's "elevation". */
6338
- rotX?: number;
6339
- /** Y-axis rotation in degrees (0...360); PowerPoint's "rotation". */
6340
- rotY?: number;
6341
- }
6342
-
6343
- /** The `c:view3D` fields a cartesian 3D scene's camera placement cares about. */
6344
- interface CartesianCameraView3D {
6345
- /** X-axis rotation in degrees (-90...90); PowerPoint's "elevation". */
6346
- rotX?: number;
6347
- /** Y-axis rotation in degrees (0...360); PowerPoint's "rotation". */
6348
- rotY?: number;
6349
- /** Perspective angle in degrees (0...240, `c:view3D/c:perspective`). Ignored when `rAngAx` is set. */
6350
- rperspective?: number;
6351
- /** Chart depth as a percentage of base width (`c:view3D/@depthPercent`). */
6352
- depthPercent?: number;
6353
- /** Right-angle axes (`c:view3D/@rAngAx`): PowerPoint renders near-orthographically. */
6354
- rAngAx?: boolean;
6355
- }
6356
-
6357
- /** One path vertex, positioned in true 3D world space. */
6358
- interface CartesianLine3DVertex {
6359
- seriesIndex: number;
6360
- categoryIndex: number;
6361
- value: number;
6362
- position: readonly [number, number, number];
6363
- }
6364
- /** One series' full 3D path: its depth plane + ordered (by category) vertices. */
6365
- interface CartesianLine3DSeriesPath {
6366
- seriesIndex: number;
6367
- color: string;
6368
- vertices: CartesianLine3DVertex[];
6369
- /** World Z this series' depth plane sits at. */
6370
- depthZ: number;
6371
- /** World Y for value = 0 on this plane (area3D ribbon baseline / floor). */
6372
- baselineY: number;
6373
- }
6374
-
6375
- /**
6376
- * Floor/side-wall/back-wall backdrop planes for an interactive 3D chart scene.
6377
- *
6378
- * `c:floor`, `c:sideWall`, and `c:backWall` are parsed onto `PptxChartData`
6379
- * but, before this module, only the flat SVG isometric renderer painted
6380
- * them; a WebGL scene showed a fixed grey `GridHelper` regardless of what
6381
- * was authored. Each authored surface becomes one semi-transparent plane
6382
- * mesh so the interactive view agrees with the SVG one. A surface with no
6383
- * authored fill colour gets no plane, so an untouched chart's WebGL scene is
6384
- * unchanged.
6385
- *
6386
- * Shared by every interactive chart scene that has a category/series grid to
6387
- * wall in: the surface chart ({@link ./surface-chart-3d-scene.ts}) and the
6388
- * cartesian bar3D scene ({@link ./bar-chart-3d-scene.ts}), and (pending
6389
- * follow-up) line3D/area3D. Each caller passes its OWN grid extent (a
6390
- * cartesian chart's depth axis is scaled by `c:view3D/@depthPercent`, unlike
6391
- * the surface chart's 1:1 row spacing), so this module never recomputes an
6392
- * extent that could disagree with the caller's own mesh layout.
6393
- *
6394
- * @module surface-chart-3d-walls
6395
- */
6396
-
6397
- /** `c:floor`/`c:sideWall`/`c:backWall` fill colours (`#RRGGBB`), when authored. */
6398
- interface SurfaceWallColors {
6399
- floor?: string;
6400
- sideWall?: string;
6401
- backWall?: string;
6402
- }
6403
-
6404
- /**
6405
- * Shared point/series data-shaping for the interactive `line3D` and `area3D`
6406
- * true-3D scenes ({@link ./line-chart-3d-data.ts}, {@link ./area-chart-3d-data.ts}).
6407
- *
6408
- * Both chart kinds share IDENTICAL per-series depth-plane geometry (see
6409
- * {@link ./cartesian-line-chart-3d-layout.ts}): the only difference is
6410
- * presentation, line3D draws a tube along each series' path, area3D
6411
- * additionally fills a ribbon from that path down to its baseline. Colour
6412
- * resolution (`seriesColor` / `resolveDataPointFill`) and value-range maths
6413
- * (`computeValueRange`) are the SAME functions the flat SVG oblique-projection
6414
- * engine uses ({@link ./chart-cartesian-line-area.ts}), so a chart's true-3D
6415
- * and 2D-fallback presentations always agree on colour and scale (mirrors
6416
- * {@link ./bar-chart-3d-data.ts}).
6417
- *
6418
- * @module cartesian-line-chart-3d-data
6419
- */
6420
-
6421
- /** Inputs the interactive line3D/area3D scene needs to mount. */
6422
- interface CartesianLine3DSceneOptions {
6423
- cols: number;
6424
- rows: number;
6425
- series: CartesianLine3DSeriesPath[];
6426
- categoryLabels: ReadonlyArray<string>;
6427
- seriesNames: ReadonlyArray<string>;
6428
- numberFormats?: ReadonlyArray<string | undefined>;
6429
- width: number;
6430
- height: number;
6431
- /** Authored `c:view3D` driving the initial camera + depth extent. */
6432
- view3D?: CartesianCameraView3D;
6433
- /** Authored `c:floor`/`c:sideWall`/`c:backWall` fill colours, when set. */
6434
- wallColors?: SurfaceWallColors;
6435
- /** Active font-style emphasis override (bold/italic/underline/size/colour) for the axis labels. */
6436
- textStyle?: TextStyleAnimationDescriptor;
6437
- }
6438
-
6439
- /**
6440
- * `area3D`-specific entry point onto the shared cartesian line/area 3D data
6441
- * shaping ({@link ./cartesian-line-chart-3d-data.ts}).
6442
- *
6443
- * @module area-chart-3d-data
6444
- */
6445
-
6446
- type AreaChart3DSceneOptions = CartesianLine3DSceneOptions;
6447
-
6448
- /**
6449
- * Box-mesh layout maths for the interactive `bar3D` scene
6450
- * ({@link ./bar-chart-3d-data.ts}). Split out of that module to stay under the
6451
- * repo's ~300-LOC file cap.
6452
- *
6453
- * Clustered layout gives every series its own depth ("Z") plane, side by
6454
- * side along the series axis, matching PowerPoint's real 3-D Column chart.
6455
- * Stacked/percentStacked keeps every series coplanar (one Z plane) and
6456
- * stacks segments vertically, matching the flat engine's
6457
- * `chart-bar3d-series-depth.ts` semantics (a stacked 3D column has no
6458
- * per-series depth stagger; only clustered does).
6459
- *
6460
- * @module bar-chart-3d-layout
6461
- */
6462
-
6463
- /** One box mesh: world-space center + size (width=X, height=Y, depth=Z). */
6464
- interface BarChart3DBox {
6465
- seriesIndex: number;
6466
- categoryIndex: number;
6467
- value: number;
6468
- color: string;
6469
- center: readonly [number, number, number];
6470
- size: readonly [number, number, number];
6471
- /** See {@link CartesianChart3DPoint.shape}. */
6472
- shape?: PptxBar3DShape;
6473
- /**
6474
- * `coneToMax` / `pyramidToMax` only: the mesh's top radius as a fraction
6475
- * (0-1) of its base radius, so the geometry looks like a slice of one
6476
- * imaginary cone/pyramid whose apex sits exactly at the value-axis
6477
- * maximum: `0` (a full point) when this box's value equals the axis max,
6478
- * approaching `1` (nearly cylindrical) as the value approaches zero.
6479
- */
6480
- coneToMaxTopRadiusFactor?: number;
6481
- }
6482
-
6483
- /**
6484
- * bar-chart-3d-materials.ts: turns {@link resolveBarBoxFaceFills}'s (or, for a
6485
- * round shape, {@link resolveBarRoundFaceFills}'s) pure per-face fill
6486
- * descriptors into the actual `THREE.Material`(s) for one bar3D mesh, loading
6487
- * `c:pictureOptions` picture-fill textures asynchronously.
6488
- *
6489
- * A mesh with no picture fill anywhere keeps the pre-existing single uniform
6490
- * `MeshPhongMaterial` (no behaviour change, no texture-loader overhead) - see
6491
- * {@link resolveBarBoxFaceFills}/{@link resolveBarRoundFaceFills}'s own "all
6492
- * plain colour" fast path. Once a picture is resolved for at least one face,
6493
- * this always builds a face-material array (a 6-entry array in three's own
6494
- * `BoxGeometry` per-face order, `+x,-x,+y,-y,+z,-z`, for a `box`; a 3-entry
6495
- * array in `CylinderGeometry`/`ConeGeometry`'s own material-group order,
6496
- * lateral surface/top cap/bottom cap, for a round shape), even for faces that
6497
- * stay plain-coloured, since a `THREE.Mesh` cannot mix a single material with
6498
- * a per-face array on the same geometry.
6499
- *
6500
- * Texture loads are async: every picture-targeted face mounts with a plain
6501
- * white `MeshPhongMaterial` (so the box is never invisible/black while
6502
- * loading) and swaps in `material.map` once the image decodes. The scene's
6503
- * own render loop is continuous (`requestAnimationFrame` every frame, not
6504
- * on-demand), so the swapped-in texture appears on the very next frame with
6505
- * no extra "re-render" plumbing needed here.
6506
- *
6507
- * @module bar-chart-3d-materials
6508
- */
6509
-
6510
- /** `c:ser`/`c:dPt` picture-fill inputs threaded into the interactive bar3D scene. */
6511
- interface BarBoxPictureContext {
6512
- series: ReadonlyArray<ChartSeriesLike>;
6513
- }
6514
-
6515
- /**
6516
- * Adapts a `bar3D` chart's `PptxChartData` into the box-mesh layout the
6517
- * interactive 3D scene ({@link ./bar-chart-3d-scene.ts}, `createBarChart3DScene`)
6518
- * needs to mount: one {@link BarChart3DBox} per (series, category) data point,
6519
- * positioned in true 3D space (category = X, value = Y, series = Z/depth for
6520
- * the default vertical `c:barDir val="col"`; a horizontal `val="bar"` chart
6521
- * remaps every box center into value = X, category = Y, series unchanged on
6522
- * Z, see `layoutBarChart3D`'s `horizontal` flag and `BarChart3DSceneOptions
6523
- * .horizontal`).
6524
- *
6525
- * Colour resolution (`seriesColor` / `resolveDataPointFill`) and value-range
6526
- * maths (`computeValueRange` / `computeStackedValueRange`) are the SAME
6527
- * functions the flat SVG oblique-projection engine uses
6528
- * ({@link ./chart-cartesian-bars.ts}), so a bar3D chart's true-3D and 2D-
6529
- * fallback presentations always agree on colour and scale: one set of chart
6530
- * maths, two presentations (mirrors {@link ./surface-chart-3d-data.ts}).
6531
- *
6532
- * Clustered layout gives every series its own depth ("Z") plane, side by
6533
- * side along the series axis, matching PowerPoint's real 3-D Column chart.
6534
- * Stacked/percentStacked keeps every series coplanar (one Z plane) and
6535
- * stacks segments vertically, matching the flat engine's
6536
- * `chart-bar3d-series-depth.ts` semantics (a stacked 3D column has no
6537
- * per-series depth stagger; only clustered does).
6538
- *
6539
- * @module bar-chart-3d-data
6540
- */
6541
-
6542
- /** Inputs the interactive bar3D scene needs to mount. */
6543
- interface BarChart3DSceneOptions {
6544
- cols: number;
6545
- rows: number;
6546
- boxes: BarChart3DBox[];
6547
- categoryLabels: ReadonlyArray<string>;
6548
- seriesNames: ReadonlyArray<string>;
6549
- numberFormats?: ReadonlyArray<string | undefined>;
6550
- grouping: 'clustered' | 'stacked' | 'percentStacked';
6551
- width: number;
6552
- height: number;
6553
- /** Authored `c:view3D` driving the initial camera + depth extent. */
6554
- view3D?: CartesianCameraView3D;
6555
- /** Authored `c:floor`/`c:sideWall`/`c:backWall` fill colours, when set. */
6556
- wallColors?: SurfaceWallColors;
6557
- /**
6558
- * `c:barDir val="bar"`: a horizontal 3-D Bar chart. Box centers are already
6559
- * remapped into the horizontal frame (see `layoutBarChart3D`); the scene
6560
- * mounter uses this flag only to rotate every box mesh `-Math.PI / 2` about
6561
- * Z so non-box shapes (cylinder/cone/pyramid) keep a true cross-section.
6562
- */
6563
- horizontal?: boolean;
6564
- /** Active font-style emphasis override (bold/italic/underline/size/colour) for the axis labels. */
6565
- textStyle?: TextStyleAnimationDescriptor;
6566
- /**
6567
- * `c:ser`/`c:dPt` picture-fill inputs for `c:pictureOptions` face
6568
- * targeting (see `bar-chart-3d-face-fill.ts`). Always populated by
6569
- * {@link buildBarChart3DData} (the chart's own series list); a hand-built
6570
- * `BarChart3DSceneOptions` fixture may omit it, which keeps every box a
6571
- * single uniform coloured material (the pre-existing behaviour).
6572
- */
6573
- picture?: BarBoxPictureContext;
6574
- }
6575
-
6576
6261
  /**
6577
6262
  * Axis labels for the right-angle-axes 3D bar chart
6578
6263
  * (`chart-3d-oblique-layout.ts`), placed where PowerPoint puts them: off the
@@ -6914,166 +6599,6 @@ interface Chart3DPerspectiveProjection {
6914
6599
  }
6915
6600
  type Chart3DProjection = Chart3DObliqueProjection | Chart3DPerspectiveProjection;
6916
6601
 
6917
- /**
6918
- * `line3D`-specific entry point onto the shared cartesian line/area 3D data
6919
- * shaping ({@link ./cartesian-line-chart-3d-data.ts}).
6920
- *
6921
- * @module line-chart-3d-data
6922
- */
6923
-
6924
- type LineChart3DSceneOptions = CartesianLine3DSceneOptions;
6925
-
6926
- /**
6927
- * Pure geometry helpers for an interactive 3D `pie3D` chart scene, three-agnostic
6928
- * so the wedge-angle / explosion / camera maths is unit-testable without
6929
- * mocking WebGL.
6930
- *
6931
- * A pie chart has no category/series grid to speak of, so this module does NOT
6932
- * reuse {@link ./cartesian-chart-3d-geom.ts} wholesale; it reuses only the
6933
- * generic piece of that module that fits (the sphere camera placement,
6934
- * {@link computeSphericalCameraPlacement}) and supplies pie-appropriate
6935
- * siblings for the rest: a fixed disc radius, a thickness driven by the
6936
- * authored `c:view3D/@hPercent` (height as a percentage of chart width - the
6937
- * ECMA-376 field pie3D actually authors for its "puck" thickness, distinct
6938
- * from `depthPercent` which only applies to cartesian 3D kinds), and per-slice
6939
- * wedge angles that mirror the flat SVG engine's `computePieSlices` angle
6940
- * bookkeeping (see `./chart-view-model.ts`) so the true-3D and 2D-fallback
6941
- * presentations always agree on slice proportions, start angle, and explosion
6942
- * direction.
6943
- *
6944
- * @module pie-chart-3d-geom
6945
- */
6946
-
6947
- /** The `c:view3D` fields a pie3D scene's camera + wedge thickness care about. */
6948
- interface PieChart3DView3D extends CartesianCameraView3D {
6949
- /** Pie "puck" height as a percentage of chart width (`c:view3D/@hPercent`). */
6950
- hPercent?: number;
6951
- }
6952
- /** One pie3D wedge's angle range + explosion pull-out direction. */
6953
- interface PieChart3DSliceAngle {
6954
- pointIndex: number;
6955
- value: number;
6956
- /**
6957
- * Arc start angle in radians, in the SAME convention `computePieSlices`
6958
- * uses (`-PI/2` = 12 o'clock, increasing clockwise-on-screen), passed
6959
- * straight through to `THREE.CylinderGeometry`'s `thetaStart`. A
6960
- * documented approximation of PowerPoint's own pie3D orientation, not a
6961
- * claimed pixel-exact camera-frame match (mirrors this module's other
6962
- * `c:view3D` maths).
6963
- */
6964
- startAngle: number;
6965
- /** Arc sweep in radians (`CylinderGeometry`'s `thetaLength`). */
6966
- thetaLength: number;
6967
- /** World-space [x, z] offset applied to the wedge centre for `c:explosion` pull-out. */
6968
- explodeOffset: readonly [number, number];
6969
- }
6970
-
6971
- /**
6972
- * Adapts a `pie3D` chart's `PptxChartData` into the wedge-mesh layout the
6973
- * interactive 3D scene ({@link ./pie-chart-3d-scene.ts}, `createPieChart3DScene`)
6974
- * needs to mount: one {@link PieChart3DWedge} per data point, positioned
6975
- * around a shared centre in true 3D space.
6976
- *
6977
- * Colour resolution (`resolveVaryColorFill` / `paletteColor`) and explosion
6978
- * resolution (`resolveDataPointExplosion`) are the SAME functions the flat
6979
- * SVG oblique-projection pie3D engine uses (`buildPieViewModel` in
6980
- * `./chart-view-model.ts`), so a pie3D chart's true-3D and 2D-fallback
6981
- * presentations always agree on colour, value, and pull-out distance: one set
6982
- * of chart maths, two presentations (mirrors {@link ./bar-chart-3d-data.ts}).
6983
- *
6984
- * @module pie-chart-3d-data
6985
- */
6986
-
6987
- /** One resolved wedge mesh: angle range, explosion offset, colour, and tooltip data. */
6988
- interface PieChart3DWedge extends PieChart3DSliceAngle {
6989
- color: string;
6990
- }
6991
- /** Inputs the interactive pie3D scene needs to mount. */
6992
- interface PieChart3DSceneOptions {
6993
- wedges: PieChart3DWedge[];
6994
- categoryLabels: ReadonlyArray<string>;
6995
- seriesName: string | undefined;
6996
- numberFormat: string | undefined;
6997
- outerRadius: number;
6998
- thickness: number;
6999
- width: number;
7000
- height: number;
7001
- /** Authored `c:view3D` driving the initial camera + wedge thickness. */
7002
- view3D?: PieChart3DView3D;
7003
- /**
7004
- * Series 0's raw values, `c:explosion` percentages (index-aligned with
7005
- * `wedges`), and `c:firstSliceAng` - everything
7006
- * `computePieChart3DSliceAngles` needs to recompute every wedge's angle
7007
- * from a live-dragged value, so a value drag can renormalise the WHOLE
7008
- * disc locally (rebuilding wedge geometry in the scene) rather than only
7009
- * the dragged wedge.
7010
- */
7011
- values: ReadonlyArray<number>;
7012
- explosions: ReadonlyArray<number>;
7013
- firstSliceAngleDeg: number | undefined;
7014
- }
7015
-
7016
- /** A value drag on a chart mark, in progress (`move`) or finished (`commit`). */
7017
- interface ThreeViewDragDetail {
7018
- part: ChartPartRef;
7019
- value: number;
7020
- phase: 'move' | 'commit';
7021
- }
7022
- /** Everything `<pptx-three-view>` can show; `kind` picks the lazily-loaded scene module. */
7023
- type ThreeViewSpec = {
7024
- kind: 'chart';
7025
- spec: Chart3DSpec;
7026
- } | {
7027
- kind: 'smartart';
7028
- spec: SmartArt3DModel;
7029
- };
7030
-
7031
- /**
7032
- * three.js 3D surface-chart scene for `<pptx-three-view>` (framework-agnostic).
7033
- *
7034
- * Builds an interactive surface chart as a `<pptx-three-view>` scene: a
7035
- * colour-displaced surface mesh (with optional wireframe), grid floor,
7036
- * lights, an isometric camera, and DOM axis labels re-projected to screen
7037
- * after each frame. Raycasts pointer moves against the mesh for a native
7038
- * hover tooltip (see {@link ./surface-chart-3d-hit-test.ts}) and clicks/drags
7039
- * for selection and value editing (see
7040
- * {@link ./surface-chart-3d-interaction-wiring.ts}).
7041
- *
7042
- * @module surface-chart-3d-scene
7043
- */
7044
-
7045
- /** Inputs describing the surface to render and its container size. */
7046
- interface SurfaceChart3DSceneOptions {
7047
- cols: number;
7048
- rows: number;
7049
- /** Normalised heights, row-major, length rows*cols, each in [0, 1]. */
7050
- heightMap: Float32Array;
7051
- /** Flat RGB triplets, length rows*cols*3, each channel in [0, 1]. */
7052
- colorMap: Float32Array;
7053
- /** Draw wireframe grid lines over the surface. */
7054
- wireframe: boolean;
7055
- categoryLabels: ReadonlyArray<string>;
7056
- seriesNames: ReadonlyArray<string>;
7057
- width: number;
7058
- height: number;
7059
- /** Device pixel-ratio cap. Default `2`. */
7060
- maxPixelRatio?: number;
7061
- /** Authored `c:view3D` rotation (`rotX`/`rotY`) driving the initial camera. */
7062
- view3D?: SurfaceCameraView3D;
7063
- /** Authored `c:floor`/`c:sideWall`/`c:backWall` fill colours, when set. */
7064
- surfaceColors?: SurfaceWallColors;
7065
- /**
7066
- * Raw (un-normalised) values, row-major, length rows*cols. Feeds the
7067
- * pointer-raycast hover tooltip (see {@link buildSurfaceHoverTooltip}); a
7068
- * caller that omits it gets a mesh with no hover tooltip.
7069
- */
7070
- values?: Float32Array;
7071
- /** Per-series number-format codes, aligned to `seriesNames`. */
7072
- numberFormats?: ReadonlyArray<string | undefined>;
7073
- /** Active font-style emphasis override (bold/italic/underline/size/colour) for the axis labels. */
7074
- textStyle?: TextStyleAnimationDescriptor;
7075
- }
7076
-
7077
6602
  /**
7078
6603
  * The pure, three-free description of a 3D chart that `<pptx-three-view>`
7079
6604
  * mounts (`kind: 'chart'`). Built from a chart element by
@@ -7111,30 +6636,8 @@ interface Chart3DPieGeometry {
7111
6636
  kind: 'pie';
7112
6637
  layout: PieChartLayout;
7113
6638
  }
7114
- /** `null` until a chart type's geometry is implemented; the scene then uses {@link Chart3DSpec.perspective}. */
6639
+ /** A chart's 3D geometry; `null` when it has nothing to draw (no series or categories). */
7115
6640
  type Chart3DGeometry = Chart3DObliqueGeometry | Chart3DPerspGeometry | Chart3DPieGeometry | null;
7116
- /**
7117
- * The perspective scene a chart falls back to when the oblique geometry does
7118
- * not cover it (line/area/pie/surface, and a bar3D chart without right-angle
7119
- * axes). Each is a hosted scene module from the
7120
- * pre-`<pptx-three-view>` renderer, now drawn through the shared renderer.
7121
- */
7122
- type Chart3DPerspectiveScene = {
7123
- kind: 'bar';
7124
- options: BarChart3DSceneOptions;
7125
- } | {
7126
- kind: 'line';
7127
- options: LineChart3DSceneOptions;
7128
- } | {
7129
- kind: 'area';
7130
- options: AreaChart3DSceneOptions;
7131
- } | {
7132
- kind: 'pie';
7133
- options: PieChart3DSceneOptions;
7134
- } | {
7135
- kind: 'surface';
7136
- options: SurfaceChart3DSceneOptions;
7137
- };
7138
6641
  interface Chart3DSpec {
7139
6642
  /** The chart element the spec was built from (identity drives remounts). */
7140
6643
  element: PptxElement;
@@ -7153,8 +6656,6 @@ interface Chart3DSpec {
7153
6656
  geometry: Chart3DGeometry;
7154
6657
  /** Category labels (authored, or 1..n when the chart has none). */
7155
6658
  categoryLabels: readonly string[];
7156
- /** The perspective scene used when `geometry` is `null`; `null` when neither applies (the 2D fallback stays). */
7157
- perspective: Chart3DPerspectiveScene | null;
7158
6659
  }
7159
6660
 
7160
6661
  /**
@@ -11719,6 +11220,21 @@ interface CropSession {
11719
11220
  absentInsets: readonly (keyof CropInsets)[];
11720
11221
  }
11721
11222
 
11223
+ /** A value drag on a chart mark, in progress (`move`) or finished (`commit`). */
11224
+ interface ThreeViewDragDetail {
11225
+ part: ChartPartRef;
11226
+ value: number;
11227
+ phase: 'move' | 'commit';
11228
+ }
11229
+ /** Everything `<pptx-three-view>` can show; `kind` picks the lazily-loaded scene module. */
11230
+ type ThreeViewSpec = {
11231
+ kind: 'chart';
11232
+ spec: Chart3DSpec;
11233
+ } | {
11234
+ kind: 'smartart';
11235
+ spec: SmartArt3DModel;
11236
+ };
11237
+
11722
11238
  /**
11723
11239
  * Minimal GIF89a encoder (pure JS, no external dependency) plus pure
11724
11240
  * frame-planning helpers — shared by the React, Vue, and Angular bindings.
@@ -24800,7 +24316,7 @@ declare class AccountPageComponent {
24800
24316
  readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
24801
24317
  private readonly translate;
24802
24318
  protected readonly swatches: readonly string[];
24803
- protected readonly version = "4.10.0";
24319
+ protected readonly version = "4.10.1";
24804
24320
  protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
24805
24321
  protected readonly initial: _angular_core.Signal<string>;
24806
24322
  protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;