pptx-angular-viewer 2.20.1 → 3.0.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, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartType, PptxChartBarDirection, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, MasterViewTab, SvgExportOptions, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, MediaPptxElement, SmartArtPptxElement, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, PptxChartMarkerSymbol, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, PptxLayoutPreview, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
2
+ import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartLegendTextStyle, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartType, PptxChartBarDirection, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, MasterViewTab, SvgExportOptions, PptxGridSpacing, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, MediaPptxElement, SmartArtPptxElement, 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, PptxLayoutPreview, 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 * as _angular_core from '@angular/core';
5
5
  import { Signal, WritableSignal, OnDestroy, OnInit, AfterViewInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
@@ -555,6 +555,19 @@ declare function buildPatternFillCss(style: ShapeStyle | undefined): {
555
555
  backgroundImage: string;
556
556
  backgroundColor: string;
557
557
  } | undefined;
558
+ /** Result of {@link getComputedFillStyle}. */
559
+ interface ComputedFillStyle {
560
+ backgroundColor?: string;
561
+ backgroundImage?: string;
562
+ backgroundSize?: string;
563
+ backgroundPosition?: string;
564
+ backgroundRepeat?: string;
565
+ /** Carried through for renderers that need to inject pattern defs. */
566
+ svgFilter?: {
567
+ id: string;
568
+ markup: string;
569
+ };
570
+ }
558
571
 
559
572
  /**
560
573
  * OOXML gradient fill (`a:gradFill`) → SVG paint server.
@@ -625,10 +638,13 @@ interface SvgPatternDef {
625
638
 
626
639
  /**
627
640
  * Stroked SVG OUTLINES: gradient/pattern lines (`a:ln/a:gradFill`,
628
- * `a:ln/a:pattFill`) and stroke-only ("open") preset geometry.
641
+ * `a:ln/a:pattFill`), stroke-only ("open") preset geometry, and centred
642
+ * (`a:ln/@algn="ctr"`) solid lines.
629
643
  *
630
644
  * Every binding paints a shape's outline as a CSS `border`, which can only take
631
- * a single flat colour, and can only outline a BOX. That breaks two ways:
645
+ * a single flat colour, can only outline a BOX, and - because `box-sizing:
646
+ * border-box` puts the whole border INSIDE the element's declared box - can only
647
+ * express `a:ln/@algn="in"`. That breaks three ways:
632
648
  *
633
649
  * - A gradient outline was rendered with the parser's averaged `strokeColor`
634
650
  * (two-tone came out flat, fade-to-transparent came out opaque), and a
@@ -638,11 +654,20 @@ interface SvgPatternDef {
638
654
  * …) has no region to fill and no box to outline, so a CSS border drew a
639
655
  * RECTANGLE where PowerPoint draws a line or an arc. See
640
656
  * `./stroke-only-preset`.
641
- *
642
- * CSS has no way to fix either in place - `border-image` ignores `border-radius`
643
- * and cannot follow a `clip-path` - so the outline is instead stroked as a real
644
- * SVG path laid over the element, using the shape's own resolved geometry. This
645
- * module turns an element into everything a binding needs for that overlay; the
657
+ * - `@algn="ctr"` is PowerPoint's DEFAULT (an omitted `@algn` means `ctr`, not
658
+ * `in`): the line straddles the shape's path, half outside the box and half
659
+ * over the fill. A `border-box` CSS border cannot straddle anything - it can
660
+ * only sit flush with the box edge - so every bordered shape at the default
661
+ * alignment rendered `strokeWidth / 2` too small on each edge. An SVG
662
+ * `<path>` stroke is centred on the path by definition, so routing the
663
+ * default-aligned case through this same overlay is the fix; `@algn="in"`
664
+ * keeps the cheap `border-box` CSS border, which is already exactly right.
665
+ *
666
+ * CSS has no way to fix any of these in place - `border-image` ignores
667
+ * `border-radius` and cannot follow a `clip-path`, and no CSS property centres a
668
+ * border on the box edge - so the outline is instead stroked as a real SVG path
669
+ * laid over the element, using the shape's own resolved geometry. This module
670
+ * turns an element into everything a binding needs for that overlay; the
646
671
  * bindings supply only the ~10 lines of view layer.
647
672
  */
648
673
 
@@ -677,6 +702,88 @@ interface StrokeOutline {
677
702
  lineJoin: 'round' | 'bevel' | 'miter';
678
703
  }
679
704
 
705
+ /**
706
+ * Pure paint-decision logic for per-sub-path geometry, shared by custom
707
+ * geometry (`a:custGeom`) AND multi-sub-path preset shapes (`a:prstGeom`).
708
+ *
709
+ * Kept free of any view-layer concern (JSX, Vue/Angular templates, DOM) so it
710
+ * is unit-testable in isolation; each binding's SVG emission is a thin ~10-line
711
+ * mapping over its result. Originally lived only in the React package
712
+ * (`viewer/utils/vector-subpath-paint.ts`), which meant Vue and Vanilla (and,
713
+ * for preset shapes, every binding including React) had no way to honour a
714
+ * sub-path's own `@fill`/`@stroke` flags: they flattened every sub-path into
715
+ * one merged path with a single element-level fill, so a stroke-only sub-path
716
+ * inside a filled shape (an open eye/mouth on `smileyFace`) or a shading
717
+ * sub-path (`lighten`/`darken`, the bevel highlight on `actionButton*`) either
718
+ * rendered filled-and-distorted or vanished outright.
719
+ *
720
+ * Both geometry kinds evaluate to the exact same per-sub-path shape -
721
+ * `{ d, fillMode, stroke }` - which is what lets ONE function
722
+ * ({@link buildSubpathPaints}) paint either: `customGeometryPathsToSvgSubpaths`
723
+ * (core) already returns that shape for custom geometry, and preset geometry's
724
+ * `PresetSubpathResult` (`{ d, fill, stroke }`, from core's
725
+ * `evaluatePresetShape`) is a one-line rename away - see
726
+ * `./subpath-fill-overlay`, which resolves *which* elements need this
727
+ * treatment and calls this to build the actual paints.
728
+ */
729
+
730
+ /** Resolved paint intent for a single geometry sub-path. */
731
+ interface SubpathPaint {
732
+ /** SVG path data for this sub-path. */
733
+ d: string;
734
+ /** Resolved fill paint, or `'none'` when this sub-path opts out of fill. */
735
+ fill: string;
736
+ /** Whether this sub-path draws its stroke (`@stroke` !== 0). */
737
+ stroked: boolean;
738
+ }
739
+
740
+ /**
741
+ * Per-sub-path FILL overlay: the shared mechanism behind two structurally
742
+ * identical bugs.
743
+ *
744
+ * Both custom geometry (`a:custGeom`) and preset geometry (`a:prstGeom`) can
745
+ * carry several sub-paths, each with its own `@fill` mode
746
+ * (`norm`/`lighten`/`lightenLess`/`darken`/`darkenLess`/`none`) and `@stroke`
747
+ * flag. Every binding paints a shape as ONE box: a single CSS
748
+ * `background-color` clipped to a single merged `clip-path` built by
749
+ * concatenating every sub-path's `d` together (`getResolvedShapeClipPath`,
750
+ * `buildCustomGeometryClipPath`). That merge is lossy two ways:
751
+ *
752
+ * - It discards each sub-path's own `@fill`, so a preset's shading/bevel
753
+ * sub-paths (`lighten`/`darken`, e.g. every `actionButton*`, curved arrows,
754
+ * `bevel`, `foldedCorner`) paint as flat instead of shaded, and a `fill="none"`
755
+ * sub-path (`smileyFace`'s eyes/mouth) paints FILLED instead of as an open
756
+ * stroke - because `clip-path` auto-closes every sub-path.
757
+ * - It cannot vary the fill AT ALL across sub-paths, so it is architecturally
758
+ * incapable of the above regardless of which colour is chosen.
759
+ *
760
+ * The fix is the same for both: paint the affected element as layered SVG
761
+ * `<path>`s, each carrying its own resolved fill, instead of one CSS box. This
762
+ * module decides WHICH elements need that (an element needs it only when at
763
+ * least one sub-path's mode is not `norm`/unset, or it opts out of its stroke)
764
+ * and builds the paints via the shared `./vector-subpath-paint`; a binding's
765
+ * `ShapeEffectOverlay` renders the result as an `<svg>` sibling to the shape
766
+ * box (mirroring `buildStrokeOutline`), and `getComputedFillStyle`
767
+ * ({@link suppressesCssFill}) drops the CSS background so the flat colour does
768
+ * not show underneath.
769
+ *
770
+ * Restricted to a solid (or absent) fill: a gradient/pattern/image fill keeps
771
+ * the existing single merged clip-path box, since neither geometry kind's
772
+ * sub-paths can carry an independent paint SERVER (only a solid, mode-shifted
773
+ * colour), and the common case for both bug classes - shading/bevel highlights,
774
+ * `smileyFace`'s eyes - is a solid theme colour.
775
+ */
776
+
777
+ /** Everything a binding needs to paint an element's per-sub-path fill overlay. */
778
+ interface SubpathFillOverlay {
779
+ /** One paint per sub-path, in authoring order. */
780
+ readonly paints: readonly SubpathPaint[];
781
+ /** `viewBox` width, in the same coordinate space as every `paints[].d`. */
782
+ readonly viewBoxWidth: number;
783
+ /** `viewBox` height, in the same coordinate space as every `paints[].d`. */
784
+ readonly viewBoxHeight: number;
785
+ }
786
+
680
787
  /**
681
788
  * Stroke/dash normalisation, compound-line box-shadow generation, SVG
682
789
  * dasharray, element transform strings, and drawing-unit parsing. Pure
@@ -686,6 +793,129 @@ interface StrokeOutline {
686
793
  /** A neutral CSS map (framework `CSSProperties` are structurally compatible). */
687
794
  type CssStyleMap = Record<string, string | number>;
688
795
 
796
+ /**
797
+ * Per-run inline-style builder for rendered text runs (framework-agnostic).
798
+ *
799
+ * Maps a `TextSegment`'s `TextStyle` onto a neutral CSS record that every
800
+ * binding applies to its own run span. React included: its `text-segment-render`
801
+ * now starts from this record and re-resolves only the handful of properties it
802
+ * derives more precisely (colour/size/family fallbacks, PANOSE substitution,
803
+ * the `@baseline` percentage, the `@kern` threshold, per-run BiDi), each of
804
+ * which is documented there as a gap in this module rather than a preference.
805
+ * Split out of `text-paragraphs` to keep each module focused and small; this
806
+ * module itself later split its letter-spacing/split helpers into
807
+ * `text-run-spacing.ts`, its hollow-text fill decision into
808
+ * `text-run-hollow.ts`, and its nested-decoration / underline-variant helpers
809
+ * into `text-run-decoration.ts`, for the same reason.
810
+ */
811
+
812
+ /** A plain CSS style map (keys are CSS properties; binding-agnostic). */
813
+ type RunStyle = Record<string, string | number>;
814
+
815
+ /**
816
+ * Per-script (`a:ea` / `a:cs` / `a:sym`) font fallback for one run, as a pure
817
+ * decision function every binding maps onto its own nested-span markup.
818
+ *
819
+ * OOXML authors up to four typefaces per run (`a:latin`, `a:ea`, `a:cs`,
820
+ * `a:sym`), and PowerPoint paints each Unicode script category in ITS OWN
821
+ * font, not the run's `a:latin` face. This was React-only
822
+ * (`renderScriptAwareText` in `text-segment-render.tsx`): the other four
823
+ * bindings applied only `a:latin` to the whole run, so CJK, Arabic, Hebrew and
824
+ * Thai text rendered in the wrong typeface (or the browser's serif default)
825
+ * in Vue, Angular, Svelte and Vanilla.
826
+ *
827
+ * `resolveScriptFontSet` resolves the four faces (PANOSE-substituted, with the
828
+ * run falling back to the text body's own declaration); `splitRunByScriptFont`
829
+ * segments a run's text by script and returns, per piece, the CSS a binding
830
+ * spreads onto a nested span. A binding does nothing but map that descriptor:
831
+ * render `text` plain when a piece carries no `style` override, or a nested
832
+ * span with `style` when it does.
833
+ */
834
+
835
+ /** One script-tagged piece of a run's text, ready for a binding's nested span. */
836
+ interface ScriptFontPiece {
837
+ text: string;
838
+ /**
839
+ * CSS for a nested span wrapping `text`, or `undefined` when this piece
840
+ * needs no span at all (its script's font equals the run's own, so plain
841
+ * text renders identically). When present it carries the `fontFamily`
842
+ * override plus the run's own decoration subset, repeated because
843
+ * `text-decoration-*` does not inherit into a nested span (see
844
+ * `nestedTextDecorationStyle`).
845
+ */
846
+ style?: RunStyle;
847
+ }
848
+
849
+ /**
850
+ * `a:reflection` compositing: a real, cross-browser mirrored copy of an
851
+ * element rather than `-webkit-box-reflect`.
852
+ *
853
+ * `-webkit-box-reflect` is Chromium/WebKit only - Firefox does not implement
854
+ * it at all, so every reflected picture/shape in this app rendered nothing
855
+ * whatsoever in Firefox. It also cannot express `@sx`/`@sy` (scale),
856
+ * `@kx`/`@ky` (skew), `@rot` (independent reflection rotation), `@fadeDir`
857
+ * (fade axis), or `@algn` (anchor), so those five attributes were parsed and
858
+ * round-tripped but never rendered even in a browser that DID support the
859
+ * property.
860
+ *
861
+ * This module replaces it with a wrapper style for a mirrored SIBLING node a
862
+ * binding renders just below (or per `@algn`, from) the source element:
863
+ * - `transform: scaleY(-1)` does the mirror (the flip `-webkit-box-reflect`
864
+ * did for free); `scale()`/`skew()`/`rotate()` add `@sx`/`@sy`, `@kx`/
865
+ * `@ky`, `@rot` on top of it, all CSS properties Firefox has always
866
+ * supported.
867
+ * - `mask-image`/`-webkit-mask-image` with a `linear-gradient` alpha ramp
868
+ * reproduces the fade (`@stA`/`@endA`/`@stPos`/`@endPos`/`@blurRad`), at
869
+ * an angle driven by `@fadeDir` (falling back to the same "fades toward
870
+ * the far edge" default `-webkit-box-reflect` always used). `mask-image`
871
+ * is supported unprefixed in Firefox and Chromium alike (Safari still
872
+ * wants the `-webkit-` form, hence both properties).
873
+ * - `transform-origin` encodes `@algn`.
874
+ *
875
+ * The wrapper only supplies POSITION/TRANSFORM/MASK; the binding paints the
876
+ * mirrored CONTENT inside it (the resolved fill CSS from
877
+ * `getComputedFillStyle` for a shape, or a cloned `<img>` for a picture) -
878
+ * this module has no opinion on that, so it stays framework- and
879
+ * content-agnostic like every other decision function in this package.
880
+ *
881
+ * `getTextReflectionWrapperStyle` reuses the same computation for a text run's
882
+ * `a:rPr/a:effectLst/a:reflection`: the OOXML element is identical
883
+ * (`CT_ReflectionEffect`), but core's text-run parser (
884
+ * `PptxHandlerRuntimeTextRunEffects.ts`) only extracts `@stA`/`@endA`/`@dist`/
885
+ * `@blurRad` onto {@link TextStyle} today (`textReflection*`), not
886
+ * `@sx`/`@sy`/`@kx`/`@ky`/`@rot`/`@fadeDir`/`@algn`/`@stPos`/`@endPos` the way
887
+ * the shape parser does onto {@link ShapeStyle} - so a text run's reflection
888
+ * always renders as the "plain" wrapper (straight mirror, default fade axis
889
+ * and anchor) until that parser gap is closed. No fork was needed to reuse
890
+ * {@link getReflectionWrapperStyle}: the four attributes text DOES carry map
891
+ * onto the exact same {@link ShapeStyle} field names it already reads.
892
+ *
893
+ * @module render/reflection
894
+ */
895
+
896
+ /**
897
+ * CSS `mask-image`/`-webkit-mask-image` value plus the raw `transform` for a
898
+ * mirrored reflection sibling. Every value is a ready-to-apply CSS string (or
899
+ * `'none'` sentinel avoided - fields are omitted when the browser default
900
+ * already matches), so a binding can spread this directly onto its own style
901
+ * object with no further per-framework logic.
902
+ */
903
+ interface ReflectionWrapperStyle {
904
+ position: 'absolute';
905
+ left: string;
906
+ /** `calc(100% + <dist>px)`: sits `@dist` px below the source element's box. */
907
+ top: string;
908
+ width: string;
909
+ height: string;
910
+ /** Mirror (`scaleY(-1)`) composed with `@sx`/`@sy`/`@kx`/`@ky`/`@rot`. */
911
+ transform: string;
912
+ /** Anchor point for the transform above, from `@algn` (default `center top`). */
913
+ transformOrigin: string;
914
+ maskImage: string;
915
+ WebkitMaskImage: string;
916
+ pointerEvents: 'none';
917
+ }
918
+
689
919
  /**
690
920
  * Visual effects composable — pure CSS computation for OOXML shape/image effects.
691
921
  *
@@ -702,7 +932,7 @@ type CssStyleMap = Record<string, string | number>;
702
932
  * - **Outer glow** → CSS `filter: drop-shadow(...)` (simple path) and
703
933
  * optional layered `box-shadow` (high-fidelity path)
704
934
  * - **Soft edges / blur** → CSS `filter: blur(...)`
705
- * - **Reflection** → Chromium `-webkit-box-reflect`
935
+ * - **Reflection** → a mirrored sibling's wrapper style (`reflection.ts`)
706
936
  * - **Effect DAG** → CSS `filter` (grayscale/biLevel/lum/hsl/tint…),
707
937
  * `opacity`, `mix-blend-mode`, + optional duotone
708
938
  * `<filter>` SVG markup (high-fidelity path)
@@ -1084,6 +1314,8 @@ interface SvgText {
1084
1314
  textAnchor: 'start' | 'middle' | 'end';
1085
1315
  fontWeight?: 'normal' | 'bold';
1086
1316
  fontFamily?: string;
1317
+ /** Italic styling, e.g. from a chart data-table or legend-entry `c:txPr` override. */
1318
+ fontStyle?: 'normal' | 'italic';
1087
1319
  dominantBaseline?: string;
1088
1320
  opacity?: number;
1089
1321
  /** Optional SVG transform (e.g. `rotate(-90, x, y)` for a vertical axis title). */
@@ -1109,6 +1341,8 @@ type SvgPrimitive = SvgRect | SvgPath | SvgPolyline | SvgCircle | SvgLine | SvgP
1109
1341
  interface LegendEntry {
1110
1342
  color: string;
1111
1343
  label: string;
1344
+ /** Per-entry text override from `c:legendEntry/c:txPr`, applied by `applyLegendEntryOverrides`. */
1345
+ textStyle?: PptxChartLegendTextStyle;
1112
1346
  }
1113
1347
  interface ChartViewModel {
1114
1348
  svgWidth: number;
@@ -1290,30 +1524,19 @@ declare function resolveChartKind(chartType: string): SupportedChartKind | 'unsu
1290
1524
  declare function buildChartViewModel(element: PptxElement): ChartViewModel;
1291
1525
  declare function buildFallbackViewModel(width: number, height: number, label: string): ChartViewModel;
1292
1526
 
1293
- /**
1294
- * Chart legend swatch layout: positions each `ChartViewModel` legend entry
1295
- * (colour swatch + label) for the two anchor modes the shared chart engine
1296
- * produces:
1297
- *
1298
- * - horizontal row (`legendAnchor !== 'start'`, i.e. bottom/top legends):
1299
- * entries are centred on `vm.legendX` across a fixed-width row.
1300
- * - vertical stack (`legendAnchor === 'start'`, i.e. left/right legends):
1301
- * entries stack downward from `vm.legendY` at a fixed line height.
1302
- *
1303
- * Every binding's chart projector (React/Vue/Angular/Svelte/Vanilla) declared
1304
- * this same `LEGEND_ITEM_WIDTH = 80` constant and placement formula
1305
- * independently; this module is the single source of truth so a layout tweak
1306
- * lands once for all five.
1307
- *
1308
- * @module chart-legend-layout
1309
- */
1310
-
1311
- /** One positioned legend entry: swatch origin + colour + label. */
1527
+ /** One positioned legend entry: swatch origin + colour + label + resolved text style. */
1312
1528
  interface ChartLegendLayoutItem {
1313
1529
  x: number;
1314
1530
  y: number;
1315
1531
  color: string;
1316
1532
  label: string;
1533
+ /** Label font size in slide-px, already crossed the pt -> px boundary (see chart-font.ts). */
1534
+ fontSize: number;
1535
+ /** Label text colour; `c:legendEntry/c:txPr` colour when set, else the default slate. */
1536
+ fill: string;
1537
+ fontWeight: 'normal' | 'bold';
1538
+ fontStyle: 'normal' | 'italic';
1539
+ fontFamily?: string;
1317
1540
  }
1318
1541
 
1319
1542
  /**
@@ -1423,6 +1646,18 @@ declare function buildStockViewModel(element: PptxElement, chartData: PptxChartD
1423
1646
  * @module chart-surface-treemap
1424
1647
  */
1425
1648
 
1649
+ /**
1650
+ * Map a normalised value t in [0..1] to a surface colour ramp (blue-green-red).
1651
+ *
1652
+ * Exported so the interactive 3D scene adapter (`surface-chart-3d-data.ts`)
1653
+ * tints its mesh with the exact same ramp as this module's flat/isometric SVG
1654
+ * fallback: one colour formula, never two to drift apart.
1655
+ */
1656
+ declare function surfaceColor(t: number): {
1657
+ r: number;
1658
+ g: number;
1659
+ b: number;
1660
+ };
1426
1661
  /**
1427
1662
  * Build the view-model for a surface chart.
1428
1663
  *
@@ -1583,37 +1818,6 @@ declare function computeTrendlinePrimitives(chartData: PptxChartData, catCount:
1583
1818
  * @param layout Plot-area bounding box.
1584
1819
  */
1585
1820
  declare function computeAxisTitlePrimitives(chartData: PptxChartData, layout: PlotLayout): SvgText[];
1586
- /**
1587
- * Layout constants for the SVG data table rendered below the plot area.
1588
- * Kept as named constants so tests can assert against them without magic numbers.
1589
- * Cell text stays at 8 px deliberately: it is sized to fit this 14 px row
1590
- * grid (a geometry fit, not a PowerPoint text-class default; see chart-font.ts).
1591
- */
1592
- declare const DATA_TABLE_ROW_H = 14;
1593
- declare const DATA_TABLE_HEADER_H = 14;
1594
- declare const DATA_TABLE_KEY_W = 60;
1595
- declare const DATA_TABLE_PADDING = 4;
1596
- /**
1597
- * Build `SvgPrimitive[]` for a simple data table rendered below the plot area.
1598
- *
1599
- * The table is rendered as SVG `rect` (borders) + `text` (labels) primitives.
1600
- * Columns = categories; rows = series (with an optional series-key column on
1601
- * the left when `dataTable.showKeys !== false`).
1602
- *
1603
- * Border flags from `PptxChartDataTable` are respected:
1604
- * - `showHorzBorder` — horizontal rules between rows
1605
- * - `showVertBorder` — vertical rules between columns
1606
- * - `showOutline` — outer border rectangle
1607
- * - `showKeys` — series name/colour key column
1608
- *
1609
- * Mirrors `renderChartDataTable` in chart-data-table.tsx (React), translated
1610
- * to pure SVG primitives so the Angular template can render them natively.
1611
- *
1612
- * @param chartData Full parsed chart data (`dataTable` must be present).
1613
- * @param layout Plot-area bounding box — the table is placed at `plotBottom + 4`.
1614
- * @param colorPalette Optional resolved colour palette (same as chart).
1615
- */
1616
- declare function computeDataTablePrimitives(chartData: PptxChartData, layout: PlotLayout, colorPalette?: readonly string[]): SvgPrimitive[];
1617
1821
 
1618
1822
  /**
1619
1823
  * `animation-authoring` — pure, immutable helpers for the editor's element
@@ -1953,7 +2157,7 @@ interface ElementAnimationState {
1953
2157
  type MotionPathFamily = 'lines' | 'arcs' | 'turns' | 'shapes' | 'loops';
1954
2158
 
1955
2159
  /**
1956
- * table-style.ts framework-agnostic table render helpers.
2160
+ * table-style.ts - framework-agnostic table render helpers.
1957
2161
  *
1958
2162
  * A focused port of the React table render helpers that operate on the
1959
2163
  * structured {@link PptxTableData} model (not raw OOXML). The renderer is
@@ -2295,6 +2499,20 @@ declare function computeDistribute(boxes: readonly AlignBox[], mode: DistributeM
2295
2499
  /** The eight resize handles, named by compass direction. */
2296
2500
  type ResizeHandleId = 'nw' | 'n' | 'ne' | 'e' | 'se' | 's' | 'sw' | 'w';
2297
2501
 
2502
+ /** The `cx`/`cy` shape of `PptxGridSpacing`. Only `cx` (horizontal spacing) is
2503
+ * used: PowerPoint's grid is square, and every binding's snap step is a
2504
+ * single number applied to both axes. */
2505
+ interface GridSpacingEmu {
2506
+ cx: number;
2507
+ cy?: number;
2508
+ }
2509
+ /**
2510
+ * Convert an authored grid spacing (EMU) to a CSS pixel step, rounding to the
2511
+ * nearest integer. Falls back to `fallbackPx` when `gridSpacing` is absent or
2512
+ * converts to a non-positive value.
2513
+ */
2514
+ declare function computeGridSpacingPx(gridSpacing: GridSpacingEmu | undefined, fallbackPx: number): number;
2515
+
2298
2516
  /**
2299
2517
  * Slide-background style resolution.
2300
2518
  *
@@ -2933,6 +3151,47 @@ interface FieldSubstitutionContext {
2933
3151
  slideTitle?: string;
2934
3152
  }
2935
3153
 
3154
+ /**
3155
+ * CSS-ready tab layout for one run's text, built on the pure positioning maths
3156
+ * in `text-tab-layout.ts`.
3157
+ *
3158
+ * `buildRunTabLines` is the "pure decision function" every binding maps
3159
+ * mechanically onto its own template: it splits a run's text on `\n`, lays out
3160
+ * each line's `\t`-separated pieces against the paragraph's tab stops, and
3161
+ * returns, per piece, CSS a binding spreads verbatim onto a nested span (plus
3162
+ * a ready-filled leader string for the gap before it). A binding renders
3163
+ * nothing but `pieces.map(...)`; the alignment/leader decision itself never
3164
+ * has to be reimplemented per framework.
3165
+ */
3166
+
3167
+ /** One tabbed-line piece, ready to spread onto a binding's own span element. */
3168
+ interface TabbedRunPiece {
3169
+ text: string;
3170
+ /**
3171
+ * CSS for the span that wraps `text`: inline-block layout, this run's own
3172
+ * decoration repeated, and this piece's own PowerPoint advance-width
3173
+ * correction as `letter-spacing` (see `buildTabbedLine`). The piece is
3174
+ * nested inside the run's own span, and neither property inherits the way a
3175
+ * caller would want: `text-decoration-*` does not inherit into a nested
3176
+ * element at all (an ancestor's underline is drawn *through* its
3177
+ * descendants, but each descendant still computes `none` of its own), so a
3178
+ * caller passes the run's decoration subset (`nestedTextDecorationStyle`) to
3179
+ * have it repeated here; `letter-spacing` DOES inherit, which is exactly why
3180
+ * this piece sets it explicitly rather than only when non-zero - the run's
3181
+ * container span carries its own (wrong, whole-text) correction that would
3182
+ * otherwise leak in.
3183
+ */
3184
+ style: RunStyle;
3185
+ /** CSS for the leader-fill span preceding this piece, or `undefined` when there is no gap to fill. */
3186
+ leaderStyle?: RunStyle;
3187
+ /** Leader glyphs sized to fill `leaderStyle`'s width. Present only alongside `leaderStyle`. */
3188
+ leaderText?: string;
3189
+ }
3190
+ /** One `\n`-split line of a run's tabbed text. */
3191
+ interface TabbedLineRun {
3192
+ pieces: TabbedRunPiece[];
3193
+ }
3194
+
2936
3195
  /**
2937
3196
  * The two halves of an in-place cross-dissolve, paired so a binding can
2938
3197
  * composite them the way PowerPoint composites them: ADDITIVELY.
@@ -4110,128 +4369,6 @@ interface SlideShowOptionDescriptor {
4110
4369
  unsupported: boolean;
4111
4370
  }
4112
4371
 
4113
- /**
4114
- * Per-node label styling resolved from `PptxSmartArtNode.style` (the overrides
4115
- * the inspector's node style bar writes).
4116
- *
4117
- * Every field is optional and every field has a documented binding default, so
4118
- * a renderer that ignores them keeps its historic output:
4119
- * `fontColor` -> `white`, `fontWeight` / `fontStyle` -> unset.
4120
- */
4121
- interface RenderedNodeTextStyle {
4122
- /** Label colour. Default `white`. */
4123
- fontColor?: string;
4124
- /** SVG `font-weight` (`700` when the node is bold). Default unset. */
4125
- fontWeight?: number;
4126
- /** SVG `font-style`. Default unset. */
4127
- fontStyle?: 'italic';
4128
- }
4129
- /** A node rendered as an SVG rect (rounded or flat). */
4130
- interface RenderedRectNode extends RenderedNodeTextStyle {
4131
- kind: 'rect';
4132
- key: string;
4133
- x: number;
4134
- y: number;
4135
- width: number;
4136
- height: number;
4137
- rx: number;
4138
- fill: string;
4139
- stroke: string;
4140
- strokeWidth: number;
4141
- opacity: number;
4142
- text: string;
4143
- fontSize: number;
4144
- /** Centre x for text anchor. */
4145
- textX: number;
4146
- /** Centre y for text anchor. */
4147
- textY: number;
4148
- }
4149
- /** A node rendered as an SVG circle. */
4150
- interface RenderedCircleNode extends RenderedNodeTextStyle {
4151
- kind: 'circle';
4152
- key: string;
4153
- cx: number;
4154
- cy: number;
4155
- r: number;
4156
- fill: string;
4157
- stroke: string;
4158
- strokeWidth: number;
4159
- opacity: number;
4160
- text: string;
4161
- fontSize: number;
4162
- /**
4163
- * Label anchor x. Defaults to `cx`; set when the label sits away from the
4164
- * circle (target leader labels, timeline captions).
4165
- */
4166
- textX?: number;
4167
- /** Label anchor y. Defaults to `cy`. */
4168
- textY?: number;
4169
- /** SVG `text-anchor` for the label. Defaults to `middle`. */
4170
- textAnchor?: 'start' | 'middle' | 'end';
4171
- /**
4172
- * How the label block sits relative to `textY`: `middle` centres it (the
4173
- * default), `bottom` puts the last baseline on `textY` (label above the
4174
- * node), `top` puts the first line's top on `textY` (label below).
4175
- */
4176
- textBaseline?: 'top' | 'middle' | 'bottom';
4177
- }
4178
- /** A node rendered as an SVG polygon (chevron, trapezoid, etc.). */
4179
- interface RenderedPolygonNode extends RenderedNodeTextStyle {
4180
- kind: 'polygon';
4181
- key: string;
4182
- points: string;
4183
- fill: string;
4184
- stroke: string;
4185
- strokeWidth: number;
4186
- opacity: number;
4187
- text: string;
4188
- fontSize: number;
4189
- /** Centre x for text anchor. */
4190
- textX: number;
4191
- /** Centre y for text anchor. */
4192
- textY: number;
4193
- }
4194
- type RenderedNode = RenderedRectNode | RenderedCircleNode | RenderedPolygonNode;
4195
- /**
4196
- * A connector line between two rendered nodes.
4197
- *
4198
- * The paint fields are optional and carry the values every binding already
4199
- * hardcodes, so a renderer that ignores them is unchanged:
4200
- * `stroke` -> `#94a3b8`, `strokeWidth` -> `1.5`, `opacity` -> `0.5`,
4201
- * `dash` -> solid.
4202
- */
4203
- interface RenderedConnector {
4204
- key: string;
4205
- /** SVG path data string. */
4206
- d: string;
4207
- /** Stroke colour. Default `#94a3b8`. */
4208
- stroke?: string;
4209
- /** Stroke width. Default `1.5`. */
4210
- strokeWidth?: number;
4211
- /** Stroke opacity. Default `0.5`. */
4212
- opacity?: number;
4213
- /** SVG `stroke-dasharray`. Default solid. */
4214
- dash?: string;
4215
- }
4216
- /** The layout family applied to a SmartArt element. */
4217
- type LayoutFamily = 'list' | 'process' | 'cycle' | 'hierarchy' | 'matrix' | 'radial' | 'pyramid' | 'venn' | 'funnel' | 'target' | 'gear' | 'timeline' | 'bending';
4218
- /** Complete layout output for a single SmartArt family. */
4219
- interface SmartArtLayoutResult {
4220
- /** Rendered geometry nodes. */
4221
- nodes: RenderedNode[];
4222
- /** Connector lines (may be empty). */
4223
- connectors: RenderedConnector[];
4224
- /** SVG filter string for drop shadows, e.g. `"drop-shadow(…)"`. */
4225
- shadowFilter: string | undefined;
4226
- /**
4227
- * Suggested viewBox string `"0 0 W H"`.
4228
- * Callers should use the element's actual pixel dimensions.
4229
- */
4230
- viewBox: string;
4231
- /** The layout family that was applied. */
4232
- family: LayoutFamily;
4233
- }
4234
-
4235
4372
  /**
4236
4373
  * smartart-accessibility.ts: framework-agnostic accessibility metadata for the
4237
4374
  * SmartArt renderer, shared across the React, Vue, and Angular bindings.
@@ -6014,9 +6151,10 @@ interface TouchGestureCallbacks {
6014
6151
  /**
6015
6152
  * Dropdown ids for the insert-chart menu. Distinct from `PptxChartType`
6016
6153
  * because PowerPoint offers Column (vertical) and Bar (horizontal) as two
6017
- * entries over the same underlying `'bar'` chart type.
6154
+ * entries over the same underlying `'bar'` chart type. The six ChartEx ids
6155
+ * (`histogram` through `regionMap`) map one-to-one onto their chart type.
6018
6156
  */
6019
- type InsertChartKind = 'column' | 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter';
6157
+ type InsertChartKind = 'column' | 'bar' | 'line' | 'pie' | 'doughnut' | 'area' | 'scatter' | 'histogram' | 'funnel' | 'treemap' | 'sunburst' | 'boxWhisker' | 'regionMap';
6020
6158
  /** Chart types surfaced in the insert toolbar dropdown, with translatable labels. */
6021
6159
  interface InsertChartTypeOption {
6022
6160
  /** Stable dropdown value; also what `createDefaultChartElement` accepts. */
@@ -8634,6 +8772,14 @@ declare class LoadContentService {
8634
8772
  readonly handoutMaster: _angular_core.WritableSignal<PptxHandoutMaster | undefined>;
8635
8773
  readonly sections: _angular_core.WritableSignal<PptxSection[]>;
8636
8774
  readonly presentationProperties: _angular_core.WritableSignal<PptxPresentationProperties>;
8775
+ /**
8776
+ * View properties (`ppt/viewProps.xml`, `p:viewPr`): grid spacing, snap /
8777
+ * guide toggles, last view, splitter state, etc. `gridSpacing` lives here,
8778
+ * NOT on `presentationProperties` -- `p:gridSpacing` is a child of
8779
+ * `p:viewPr`, and a real PowerPoint file never populates it under
8780
+ * `p:presentationPr`.
8781
+ */
8782
+ readonly viewProperties: _angular_core.WritableSignal<PptxViewProperties | undefined>;
8637
8783
  /** Whether the loaded package contains a VBA project. */
8638
8784
  readonly hasMacros: _angular_core.WritableSignal<boolean>;
8639
8785
  /** Archive-path → displayable URL map for media + poster frames. */
@@ -9414,6 +9560,7 @@ declare class ViewerCanvasEditingService {
9414
9560
  onTextCommit(event: {
9415
9561
  id: string;
9416
9562
  text: string;
9563
+ height?: number;
9417
9564
  }): void;
9418
9565
  /** Receive a completed ink stroke and append it to the active slide. */
9419
9566
  onInkStrokeComplete(ink: InkPptxElement): void;
@@ -10519,6 +10666,16 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
10519
10666
  * the SVG SmartArt renderer. Default `false`.
10520
10667
  */
10521
10668
  readonly smartArt3D: _angular_core.InputSignal<boolean>;
10669
+ /**
10670
+ * Opt in to the interactive Three.js surface-chart renderer. When `true`,
10671
+ * `surface`/`surface3D` charts render as a camera-orbitable WebGL mesh
10672
+ * (drag to rotate, scroll to zoom) instead of the static SVG isometric
10673
+ * projection. Chart marks are not selectable/draggable in this mode.
10674
+ * Requires the optional `three` peer dependency; when it is not installed
10675
+ * (or the chart has no plottable grid), the viewer transparently falls back
10676
+ * to the SVG surface renderer. Default `false`.
10677
+ */
10678
+ readonly surfaceChart3D: _angular_core.InputSignal<boolean>;
10522
10679
  /**
10523
10680
  * Toolbar buttons and ribbon tabs the host wants hidden (share, broadcast,
10524
10681
  * export, undo, redo, record, notes, fullscreen, zoom, navigation, or any
@@ -10567,6 +10724,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
10567
10724
  protected readonly print: PrintService;
10568
10725
  protected readonly mobile: IsMobileService;
10569
10726
  private readonly smartArt3DSvc;
10727
+ private readonly surfaceChart3DSvc;
10570
10728
  private readonly zoomTarget;
10571
10729
  protected readonly presenterWindow: PresenterWindowService;
10572
10730
  private readonly destroyRef;
@@ -11011,7 +11169,7 @@ declare class PowerPointViewerComponent implements PowerPointViewerAPI {
11011
11169
  /** Resolve the live slide-stage element within `<main>`. */
11012
11170
  private stageElement;
11013
11171
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<PowerPointViewerComponent, never>;
11014
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEditInput": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultThemeKey": { "alias": "defaultThemeKey"; "required": false; "isSignal": true; }; "availableThemes": { "alias": "availableThemes"; "required": false; "isSignal": true; }; "onThemeChange": { "alias": "onThemeChange"; "required": false; "isSignal": true; }; "defaultLocale": { "alias": "defaultLocale"; "required": false; "isSignal": true; }; "availableLocales": { "alias": "availableLocales"; "required": false; "isSignal": true; }; "onLocaleChange": { "alias": "onLocaleChange"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "autosaveInput": { "alias": "autosave"; "required": false; "isSignal": true; }; "autosaveIntervalMs": { "alias": "autosaveIntervalMs"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "ai": { "alias": "ai"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
11172
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<PowerPointViewerComponent, "pptx-viewer", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "fontsInput": { "alias": "fonts"; "required": false; "isSignal": true; }; "canEditInput": { "alias": "canEdit"; "required": false; "isSignal": true; }; "class": { "alias": "class"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "defaultThemeKey": { "alias": "defaultThemeKey"; "required": false; "isSignal": true; }; "availableThemes": { "alias": "availableThemes"; "required": false; "isSignal": true; }; "onThemeChange": { "alias": "onThemeChange"; "required": false; "isSignal": true; }; "defaultLocale": { "alias": "defaultLocale"; "required": false; "isSignal": true; }; "availableLocales": { "alias": "availableLocales"; "required": false; "isSignal": true; }; "onLocaleChange": { "alias": "onLocaleChange"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; "filePath": { "alias": "filePath"; "required": false; "isSignal": true; }; "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "autosaveInput": { "alias": "autosave"; "required": false; "isSignal": true; }; "autosaveIntervalMs": { "alias": "autosaveIntervalMs"; "required": false; "isSignal": true; }; "collaboration": { "alias": "collaboration"; "required": false; "isSignal": true; }; "authorName": { "alias": "authorName"; "required": false; "isSignal": true; }; "shareDefaults": { "alias": "shareDefaults"; "required": false; "isSignal": true; }; "onOpenFile": { "alias": "onOpenFile"; "required": false; "isSignal": true; }; "smartArt3D": { "alias": "smartArt3D"; "required": false; "isSignal": true; }; "surfaceChart3D": { "alias": "surfaceChart3D"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "ai": { "alias": "ai"; "required": false; "isSignal": true; }; }, { "activeSlideChange": "activeSlideChange"; "dirtyChange": "dirtyChange"; "contentChange": "contentChange"; "propertiesChange": "propertiesChange"; "modeChange": "modeChange"; "zoomChange": "zoomChange"; "selectionChange": "selectionChange"; "slideCountChange": "slideCountChange"; "startCollaboration": "startCollaboration"; "stopCollaboration": "stopCollaboration"; }, never, never, true, never>;
11015
11173
  }
11016
11174
 
11017
11175
  /** A selected chart sub-part, scoped to the chart element that owns it. */
@@ -11214,6 +11372,22 @@ declare class SmartArt3DService {
11214
11372
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<SmartArt3DService>;
11215
11373
  }
11216
11374
 
11375
+ /**
11376
+ * Opt-in flag for the Three.js interactive surface-chart renderer (Angular).
11377
+ *
11378
+ * Provided by `PowerPointViewerComponent`, which syncs it from the
11379
+ * `surfaceChart3D` input; `ChartElementViewComponent` injects it (optionally)
11380
+ * to choose the WebGL scene (camera orbit/zoom via OrbitControls) over the
11381
+ * static SVG isometric projection for `surface`/`surface3D` charts. Mirrors
11382
+ * `SmartArt3DService`, the established shape for this opt-in pattern.
11383
+ */
11384
+ declare class SurfaceChart3DService {
11385
+ /** `true` when a surface chart should render via the Three.js scene. */
11386
+ readonly enabled: _angular_core.WritableSignal<boolean>;
11387
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SurfaceChart3DService, never>;
11388
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<SurfaceChart3DService>;
11389
+ }
11390
+
11217
11391
  /** A selected table cell (and optional Shift+Click range) on one table element. */
11218
11392
  interface TableCellSelection {
11219
11393
  /** Id of the table element the selection belongs to. */
@@ -11422,7 +11596,7 @@ declare class ZoomTargetService {
11422
11596
  * `PowerPointViewerComponent`'s children (ribbon, slide canvas, inspector,
11423
11597
  * dialogs, ...) rely on via `inject()`.
11424
11598
  */
11425
- declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof CollaborationService, typeof CustomFontsService, typeof AccessibilityService, typeof AutosaveService, typeof AutosaveRecoveryService, typeof PrintService, typeof IsMobileService, typeof SmartArt3DService, typeof FieldContextService, typeof ZoomTargetService, typeof AiPanelStore, typeof ViewerDialogsService, typeof ViewerCompareService, typeof ViewerExportService, typeof ViewerFindReplaceService, typeof ViewerCustomShowsService, typeof ViewerCollaborationSessionService, typeof ViewerCanvasEditingService, typeof ViewerCollabCursorService, typeof ViewerDocumentPropertiesService, typeof ViewerFileIOService, typeof ViewerFormatPainterService, typeof ViewerInspectorPanelService, typeof ViewerKeyboardService, typeof ViewerMobileSheetService, typeof ViewerOptionsService, typeof ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
11599
+ declare const POWER_POINT_VIEWER_PROVIDERS: readonly [typeof LoadContentService, typeof ExportService, typeof EditorStateService, typeof ChartPartSelectionService, typeof TableSelectionService, typeof EmbeddedFontsService, typeof CollaborationService, typeof CustomFontsService, typeof AccessibilityService, typeof AutosaveService, typeof AutosaveRecoveryService, typeof PrintService, typeof IsMobileService, typeof SmartArt3DService, typeof SurfaceChart3DService, typeof FieldContextService, typeof ZoomTargetService, typeof AiPanelStore, typeof ViewerDialogsService, typeof ViewerCompareService, typeof ViewerExportService, typeof ViewerFindReplaceService, typeof ViewerCustomShowsService, typeof ViewerCollaborationSessionService, typeof ViewerCanvasEditingService, typeof ViewerCollabCursorService, typeof ViewerDocumentPropertiesService, typeof ViewerFileIOService, typeof ViewerFormatPainterService, typeof ViewerInspectorPanelService, typeof ViewerKeyboardService, typeof ViewerMobileSheetService, typeof ViewerOptionsService, typeof ViewerPresentationModeService, typeof ViewerThemeGalleryService, typeof ViewerTouchGesturesService, typeof ViewerZoomService];
11426
11600
 
11427
11601
  /** Lifecycle of the AI session bootstrap. */
11428
11602
  type AiChatInitState = 'checking' | 'unavailable' | 'ready' | 'error';
@@ -12296,6 +12470,14 @@ declare class SlideCanvasComponent implements SlideContext {
12296
12470
  * Combines with edge-alignment snapping.
12297
12471
  */
12298
12472
  readonly snapToGrid: _angular_core.InputSignal<boolean>;
12473
+ /**
12474
+ * The deck's authored grid spacing (EMU, from `viewProperties.gridSpacing`
12475
+ * / `p:viewPr/p:gridSpacing` in `ppt/viewProps.xml`). `undefined` falls back
12476
+ * to the 8px default in {@link gridSpacingPx}. NEVER read this off
12477
+ * `presentationProperties` -- `p:gridSpacing` is not a child of
12478
+ * `p:presentationPr`, and a real PowerPoint file never populates it there.
12479
+ */
12480
+ readonly gridSpacing: _angular_core.InputSignal<PptxGridSpacing | undefined>;
12299
12481
  /** Whether moving elements snap to other element edges and centres. */
12300
12482
  readonly snapToShape: _angular_core.InputSignal<boolean>;
12301
12483
  /** Imperative toolbar request to add a centered user guide. */
@@ -12465,6 +12647,7 @@ declare class SlideCanvasComponent implements SlideContext {
12465
12647
  readonly textCommit: _angular_core.OutputEmitterRef<{
12466
12648
  id: string;
12467
12649
  text: string;
12650
+ height?: number;
12468
12651
  }>;
12469
12652
  /**
12470
12653
  * Emitted on EVERY keystroke while inline-editing. The commit path stays the
@@ -12712,7 +12895,11 @@ declare class SlideCanvasComponent implements SlideContext {
12712
12895
  * accessor avoids renaming all callers.
12713
12896
  */
12714
12897
  readonly effectiveScalePublic: _angular_core.Signal<number>;
12715
- /** Grid dot spacing (slide-local px, 8 px = matches React GRID_SIZE). */
12898
+ /**
12899
+ * Grid dot spacing (slide-local px). Derived from the deck's authored
12900
+ * `gridSpacing` input via the shared `computeGridSpacingPx`; falls back to
12901
+ * 8px (matching React's `GRID_SIZE`) when the deck has none.
12902
+ */
12716
12903
  readonly gridSpacingPx: _angular_core.Signal<number>;
12717
12904
  /**
12718
12905
  * SVG dot-grid pattern id: unique per instance so multiple canvases on the
@@ -12752,7 +12939,7 @@ declare class SlideCanvasComponent implements SlideContext {
12752
12939
  } | null>;
12753
12940
  readonly stageStyle: _angular_core.Signal<StyleMap>;
12754
12941
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideCanvasComponent, never>;
12755
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "rulerUnit": { "alias": "rulerUnit"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "guideCommand": { "alias": "guideCommand"; "required": false; "isSignal": true; }; "spellCheck": { "alias": "spellCheck"; "required": false; "isSignal": true; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "transparentBackground": { "alias": "transparentBackground"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "exposeElementIds": { "alias": "exposeElementIds"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "aiHighlights": { "alias": "aiHighlights"; "required": false; "isSignal": true; }; "aiActive": { "alias": "aiActive"; "required": false; "isSignal": true; }; "aiActiveSlideIndex": { "alias": "aiActiveSlideIndex"; "required": false; "isSignal": true; }; "aiChangeBatch": { "alias": "aiChangeBatch"; "required": false; "isSignal": true; }; "aiPickMode": { "alias": "aiPickMode"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "transformEnd": "transformEnd"; "adjustUpdate": "adjustUpdate"; "connectorEndpointUpdate": "connectorEndpointUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textInput": "textInput"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, ["*"], true, never>;
12942
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "rulerUnit": { "alias": "rulerUnit"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "gridSpacing": { "alias": "gridSpacing"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "guideCommand": { "alias": "guideCommand"; "required": false; "isSignal": true; }; "spellCheck": { "alias": "spellCheck"; "required": false; "isSignal": true; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "transparentBackground": { "alias": "transparentBackground"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "exposeElementIds": { "alias": "exposeElementIds"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "aiHighlights": { "alias": "aiHighlights"; "required": false; "isSignal": true; }; "aiActive": { "alias": "aiActive"; "required": false; "isSignal": true; }; "aiActiveSlideIndex": { "alias": "aiActiveSlideIndex"; "required": false; "isSignal": true; }; "aiChangeBatch": { "alias": "aiChangeBatch"; "required": false; "isSignal": true; }; "aiPickMode": { "alias": "aiPickMode"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "transformEnd": "transformEnd"; "adjustUpdate": "adjustUpdate"; "connectorEndpointUpdate": "connectorEndpointUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textInput": "textInput"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, ["*"], true, never>;
12756
12943
  }
12757
12944
 
12758
12945
  /**
@@ -12769,6 +12956,21 @@ interface SoftEdgeFilterDef {
12769
12956
  id: string;
12770
12957
  radius: number;
12771
12958
  }
12959
+ /**
12960
+ * `a:reflection` mirrored-sibling descriptor: the wrapper style (position,
12961
+ * mirror transform, mask-image fade - see shared's `getReflectionWrapperStyle`)
12962
+ * plus the mirrored CONTENT to paint inside it. Cross-browser, unlike the
12963
+ * `-webkit-box-reflect` `element-style.ts` used to set (Firefox never
12964
+ * implemented that property, so reflections were invisible there entirely).
12965
+ */
12966
+ interface ReflectionOverlay {
12967
+ wrapperStyle: ReflectionWrapperStyle;
12968
+ /** Set for a picture/image element: its actual photo, cloned. */
12969
+ imgSrc?: string;
12970
+ imgFitStyle?: Record<string, unknown>;
12971
+ /** Set for everything else: the resolved fill (colour/gradient/pattern/image). */
12972
+ fill?: ComputedFillStyle;
12973
+ }
12772
12974
 
12773
12975
  /**
12774
12976
  * Angular's paragraph view model, built from the SHARED `buildParagraphs`.
@@ -12805,6 +13007,29 @@ interface TextRun {
12805
13007
  rubyText?: string;
12806
13008
  /** `[ngStyle]` map for the `<rt>` annotation (size / family / alignment). */
12807
13009
  rubyStyle?: StyleMap;
13010
+ /**
13011
+ * Per-script (`a:ea`/`a:cs`/`a:sym`) font-fallback pieces for this run's
13012
+ * text, when it authors a distinct east-Asian / complex-script / symbol
13013
+ * font the text actually needs. The template renders these as nested spans
13014
+ * instead of `text`. Absent for the common single-font case.
13015
+ */
13016
+ scriptRuns?: ScriptFontPiece[];
13017
+ /**
13018
+ * Measured tab-stop layout for this run's text, present when it contains an
13019
+ * authored `\t` and the paragraph declares explicit tab stops. The template
13020
+ * renders these lines/pieces instead of `text`, honouring per-stop
13021
+ * alignment and leader glyphs a plain CSS `tab-size` cannot express.
13022
+ */
13023
+ tabLines?: TabbedLineRun[];
13024
+ /**
13025
+ * `a:reflection` mirrored-sibling wrapper style for this run, or `undefined`
13026
+ * for the common no-reflection case - the text-run counterpart of a
13027
+ * shape/picture's `ReflectionOverlay` (`element-effect-defs.ts`). The
13028
+ * template renders a sibling `<span>` positioned/masked by this style,
13029
+ * painted with the same text, instead of the old `-webkit-box-reflect`
13030
+ * (Firefox never implemented that property).
13031
+ */
13032
+ reflection?: ReflectionWrapperStyle;
12808
13033
  }
12809
13034
  /** A rendered paragraph: runs plus bullet + indent + spacing metadata. */
12810
13035
  interface Paragraph {
@@ -13134,6 +13359,19 @@ declare class ElementRendererComponent {
13134
13359
  */
13135
13360
  readonly hollowHit: _angular_core.Signal<HollowHitOutline | undefined>;
13136
13361
  readonly fillOverlay: _angular_core.Signal<FillOverlayCss | undefined>;
13362
+ /**
13363
+ * `a:reflection` mirrored-sibling descriptor, or `undefined` when the
13364
+ * element has no reflection. See `element-effect-defs.ts`'s
13365
+ * `getReflectionOverlay`.
13366
+ */
13367
+ readonly reflection: _angular_core.Signal<ReflectionOverlay | undefined>;
13368
+ /**
13369
+ * Per-sub-path fill overlay for a multi-sub-path preset or custom geometry,
13370
+ * or `undefined` when a single merged fill is correct (the ordinary case).
13371
+ */
13372
+ readonly subpathFill: _angular_core.Signal<SubpathFillOverlay | undefined>;
13373
+ /** `viewBox` for the sub-path fill overlay, in its own coordinate space. */
13374
+ readonly subpathFillViewBox: _angular_core.Signal<string | undefined>;
13137
13375
  /**
13138
13376
  * Outline ring + slight transparency applied to inherited template
13139
13377
  * (master/layout) elements while editTemplateMode is on. Empty otherwise, so
@@ -13397,6 +13635,8 @@ declare class ChartElementViewComponent {
13397
13635
  private readonly partSelection;
13398
13636
  /** The hosting canvas's slide, for resolving template (master/layout) charts. */
13399
13637
  private readonly slideContext;
13638
+ /** Viewer-scoped opt-in flag for the interactive 3D surface-chart renderer. */
13639
+ private readonly surfaceChart3DSvc;
13400
13640
  private readonly injector;
13401
13641
  private readonly wrapper;
13402
13642
  private readonly titleEditor;
@@ -13409,6 +13649,13 @@ declare class ChartElementViewComponent {
13409
13649
  /** Inline title editor draft, or null when the editor is closed. */
13410
13650
  protected readonly titleDraft: _angular_core.WritableSignal<string | null>;
13411
13651
  private readonly chartData;
13652
+ /**
13653
+ * Opt-in interactive 3D surface scene (camera orbit/zoom via OrbitControls).
13654
+ * Marks are not selectable/draggable in this mode: a mesh facet has no 2D
13655
+ * screen geometry to hit-test against, so value-drag editing stays SVG-only.
13656
+ */
13657
+ protected readonly use3D: _angular_core.Signal<boolean>;
13658
+ protected readonly isSurfaceKind: _angular_core.Signal<boolean>;
13412
13659
  /** Whether this chart element is currently selected in the editor. */
13413
13660
  private readonly isSelected;
13414
13661
  /** Direct part editing is active: selected + editable + a commit channel. */
@@ -15881,7 +16128,7 @@ declare class TableCellAdvancedFillComponent {
15881
16128
  /** Emits a partial style patch to merge into the cell. */
15882
16129
  readonly styleChange: _angular_core.OutputEmitterRef<Partial<PptxTableCellStyle>>;
15883
16130
  protected readonly fillModes: {
15884
- value: "none" | "solid" | "gradient" | "pattern";
16131
+ value: "image" | "none" | "solid" | "gradient" | "pattern";
15885
16132
  i18nKey: string;
15886
16133
  }[];
15887
16134
  protected readonly gradientTypes: {
@@ -15902,7 +16149,7 @@ declare class TableCellAdvancedFillComponent {
15902
16149
  key: 'marginTop' | 'marginBottom' | 'marginLeft' | 'marginRight';
15903
16150
  label: string;
15904
16151
  }>;
15905
- protected readonly fillMode: _angular_core.Signal<"none" | "solid" | "gradient" | "pattern">;
16152
+ protected readonly fillMode: _angular_core.Signal<"image" | "none" | "solid" | "gradient" | "pattern">;
15906
16153
  protected readonly gradType: _angular_core.Signal<"linear" | "radial">;
15907
16154
  protected readonly stops: _angular_core.Signal<GradientStop[]>;
15908
16155
  protected marginValue(key: 'marginTop' | 'marginBottom' | 'marginLeft' | 'marginRight'): number;
@@ -16623,6 +16870,13 @@ declare class NotesPanelComponent {
16623
16870
  * button and the header chevron stay in sync.
16624
16871
  */
16625
16872
  readonly expanded: _angular_core.InputSignal<boolean>;
16873
+ /**
16874
+ * The deck's notes master `<p:notesStyle>` level defaults (`PptxData.
16875
+ * notesMaster.notesStyle`), when the host has it. Fills in a notes
16876
+ * segment's missing font/colour/indent from the authored defaults instead
16877
+ * of a hardcoded look; see `resolveNotesSegments` / `buildNotesPrintHtml`.
16878
+ */
16879
+ readonly notesStyle: _angular_core.InputSignal<PptxTextStyleLevels | undefined>;
16626
16880
  /** Emits the new plain-text notes on commit. */
16627
16881
  readonly update: _angular_core.OutputEmitterRef<string>;
16628
16882
  /** Emits when the header strip is clicked to expand / collapse the body. */
@@ -16658,7 +16912,7 @@ declare class NotesPanelComponent {
16658
16912
  toggleRich(): void;
16659
16913
  printNotes(): void;
16660
16914
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotesPanelComponent, never>;
16661
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotesPanelComponent, "pptx-notes-panel", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; }, { "update": "update"; "notesToggle": "notesToggle"; }, never, never, true, never>;
16915
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotesPanelComponent, "pptx-notes-panel", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "notesStyle": { "alias": "notesStyle"; "required": false; "isSignal": true; }; }, { "update": "update"; "notesToggle": "notesToggle"; }, never, never, true, never>;
16662
16916
  }
16663
16917
 
16664
16918
  /**
@@ -17651,7 +17905,7 @@ declare class ShareDialogComponent {
17651
17905
  readonly userName: _angular_core.WritableSignal<string>;
17652
17906
  readonly serverUrl: _angular_core.WritableSignal<string>;
17653
17907
  readonly invitation: _angular_core.WritableSignal<string>;
17654
- readonly mode: _angular_core.WritableSignal<"create" | "join">;
17908
+ readonly mode: _angular_core.WritableSignal<"join" | "create">;
17655
17909
  readonly copied: _angular_core.WritableSignal<boolean>;
17656
17910
  readonly pendingConfig: _angular_core.Signal<CollaborationConfig | null>;
17657
17911
  readonly canStart: _angular_core.Signal<boolean>;
@@ -17869,7 +18123,7 @@ declare class SetUpSlideShowDialogComponent {
17869
18123
  /** Working copy of the properties; seeded from `properties` on open. */
17870
18124
  readonly draft: _angular_core.WritableSignal<PptxPresentationProperties>;
17871
18125
  readonly showType: _angular_core.Signal<"kiosk" | "browsed" | "presented">;
17872
- readonly showSlidesMode: _angular_core.Signal<"range" | "all" | "customShow">;
18126
+ readonly showSlidesMode: _angular_core.Signal<"all" | "range" | "customShow">;
17873
18127
  constructor();
17874
18128
  /** Merge a partial patch into the current draft. */
17875
18129
  update(patch: Partial<PptxPresentationProperties>): void;
@@ -17893,7 +18147,7 @@ declare class ShowSlidesFieldsetComponent {
17893
18147
  /** Current slide-show properties draft. */
17894
18148
  readonly draft: _angular_core.InputSignal<PptxPresentationProperties>;
17895
18149
  /** Derived active mode (falls back to 'all' upstream). */
17896
- readonly showSlidesMode: _angular_core.InputSignal<"range" | "all" | "customShow">;
18150
+ readonly showSlidesMode: _angular_core.InputSignal<"all" | "range" | "customShow">;
17897
18151
  /** Total number of slides in the deck (clamps the range inputs). */
17898
18152
  readonly slideCount: _angular_core.InputSignal<number>;
17899
18153
  /** Named custom shows defined by the deck (may be empty). */
@@ -18270,7 +18524,7 @@ declare class AccountPageComponent {
18270
18524
  readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
18271
18525
  private readonly translate;
18272
18526
  protected readonly swatches: readonly string[];
18273
- protected readonly version = "2.20.0";
18527
+ protected readonly version = "2.21.0";
18274
18528
  protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
18275
18529
  protected readonly initial: _angular_core.Signal<string>;
18276
18530
  protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
@@ -21509,6 +21763,6 @@ declare function thumbnailHeight(canvasW: number, canvasH: number, thumbW: numbe
21509
21763
  */
21510
21764
  declare function gridColumns(containerW: number, thumbW: number, gap: number, maxCols: number): number;
21511
21765
 
21512
- export { ALIGN_OPTIONS, ANIMATION_PRESET_CATEGORIES, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AXIS_LABEL_COLOR, AccessibilityPanelComponent, AccessibilityService, AccountPageComponent, ActionSettingsPanelComponent, AdvancedChartEditorComponent, AiChangeOverlayComponent, AiChatPanelComponent, AiChatService, AiComposerComponent, AiFocusBarComponent, AiFocusHighlightOverlayComponent, AiHistoryMenuComponent, AiHistoryService, AiMessageListComponent, AiPanelStore, AiProposalCardComponent, AiSettingsSectionComponent, AiToolCallCardComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveRecoveryDialogComponent, AutosaveService, BroadcastDialogComponent, CHART_EDITOR_STYLES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointMarkerOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, ChartTypeSelectorComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentMarkersOverlayComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, DEFAULT_BOUNDS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_SCHEME, DEFAULT_FILL_COLOR, DEFAULT_LAYOUT, DEFAULT_PALETTE$1 as DEFAULT_PALETTE, DEFAULT_PATTERN_FILL_PRESET, DEFAULT_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_STYLE, DEFAULT_TABLE_ROW_HEIGHT, DEFAULT_TEXT_COLOR, DEFAULT_VIEWER_PROFILE, DIRECTIONAL_PRESETS, DIRECTION_OPTIONS, DocumentPropertiesCardComponent, EMBEDDED_FONTS_STYLE_ID, EMPHASIS_PRESETS, ENTRANCE_PRESETS, TEMPLATES as EQUATION_TEMPLATES, EXIT_PRESETS, EditorContextMenuComponent, EditorHistory, EditorStateService, EditorToolbarComponent, EffectsPanelComponent, ElementRendererComponent, EmbeddedFontsService, EncryptedFileDialogComponent, EquationEditorDialogComponent, EquationRendererComponent, EquationTemplateGalleryComponent, ExportProgressModalComponent, ExportService, FieldContextService, FindBarComponent, FindReplaceBarComponent, FollowModeBarComponent, FontEmbeddingListComponent, FontEmbeddingPanelComponent, GALLERY_THEME_PRESETS, GRIDLINE_COLOR, GradientPickerComponent, HANDOUT_OPTIONS, HeaderFooterDialogComponent, HyperlinkDialogComponent, ImagePropertiesPanelComponent, InkDrawingService, InkRendererComponent, InsertSmartArtDialogComponent, InspectorPaneHeaderComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LOCALE_CATALOG, LONG_PRESS_DURATION_MS, LONG_PRESS_MOVE_TOLERANCE_PX, LoadContentService, LocalPresencePublisher, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOTION_PATH_COLUMNS, MediaPreviewComponent, MediaPropertiesPanelComponent, MediaRendererComponent, MediaTrimTimelineComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesHandoutCardComponent, NotesPanelComponent, NotesToolbarComponent, OleRendererComponent, OutlineViewOverlayComponent, POWER_POINT_VIEWER_PROVIDERS, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PRESENTER_TIMER_SEGMENT_MS, PX_PER_CM, PX_PER_INCH, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentToolbarAutoHide, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationPropertiesPanelComponent, PresentationSettingsCardComponent, PresentationSubtitleBarComponent, PresentationToolbarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, REPEAT_MODE_OPTIONS, RESIZE_HANDLES, RULER_FONT_SIZE, RULER_THICKNESS, ReadingViewOverlayComponent, RemoteSelectionOverlayComponent, RibbonAnimationGalleryComponent, RibbonAnimationsSectionComponent, RibbonArrangeSectionComponent, RibbonColorPopoverComponent, RibbonComponent, RibbonDesignSectionComponent, RibbonDrawSectionComponent, RibbonDrawingGroupComponent, RibbonEditingSectionComponent, RibbonFileSectionComponent, RibbonFontControlsComponent, RibbonHomeSectionComponent, RibbonHyperlinkButtonComponent, RibbonInsertFieldsComponent, RibbonInsertSectionComponent, RibbonMotionPathGalleryComponent, RibbonParagraphControlsComponent, RibbonPrimaryRowComponent, RibbonReviewSectionComponent, RibbonShapeExtrasComponent, RibbonSlideshowSectionComponent, RibbonTransitionsSectionComponent, RibbonViewSectionComponent, RulerGuidesService, SEQUENCE_OPTIONS, SEVERITY_GROUPS, SEVERITY_LABELS, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, DEFAULT_PALETTE as SMARTART_DEFAULT_PALETTE, PALETTES as SMARTART_PALETTES, SMART_ART_COLOR_SCHEMES, SMART_ART_STYLE_OPTIONS, SUB_ITEM_LABEL, SVG_WARP_PRESETS, SWIPE_MAX_VERTICAL_PX, SWIPE_THRESHOLD_PX, SelectionPaneComponent, SetUpSlideShowDialogComponent, SettingsAppearanceTabComponent, SettingsDialogComponent, SettingsLanguageTabComponent, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideBackgroundCardComponent, SlideCanvasComponent, SlideDefaultInspectorComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSizeCardComponent, SlideSorterOverlayComponent, SlideThemeOverridePanelComponent, SlideTransitionCardComponent, SlidesPanelComponent, SmartArt3DRendererComponent, SmartArt3DService, SmartArtPreviewComponent, SmartArtPropertiesComponent, SmartArtRendererComponent, StatusBarComponent, TABLE_STRUCTURE_TOGGLES, TEXT_3D_BOTTOM_BEVEL_KEYS, TEXT_3D_TOP_BEVEL_KEYS, TEXT_DIRECTION_OPTIONS, THEME_CATALOG, TIMING_CURVE_OPTIONS, TRIGGER_OPTIONS, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TagsCardComponent, Text3DBevelSectionComponent, Text3DPanelComponent, TextAdvancedPanelComponent, ThemeEditorFieldsComponent, ThemeGalleryComponent, ThemeSelectorCardComponent, TitleBarComponent, TitleBarSearchComponent, TransitionDirectionPickerComponent, TransitionPreviewComponent, VALIGN_OPTIONS, VIEWER_THEME, VersionHistoryPanelComponent, ViewerCanvasEditingService, ViewerCollabCursorService, ViewerCollaborationSessionService, ViewerCompareService, ViewerCustomShowsService, ViewerDialogsService, ViewerDocumentPropertiesService, ViewerExportService, ViewerExtraDialogsComponent, ViewerFileIOService, ViewerFindReplaceService, ViewerFormatPainterService, ViewerInspectorPanelService, ViewerKeyboardService, ViewerMobileSheetService, ViewerPresentationModeService, ViewerThemeGalleryService, ViewerTouchGesturesService, ViewerZoomService, WEBM_MIME_CANDIDATES, WriteBackScheduler, ZERO_LINE_COLOR, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, affordanceElements, aiToggleVisible, alignPatch, animationFor, animationPresetLabelKey, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, asMediaElement, assignUserColor, attachShowVisibilityPause, attachTouchGestures, axisTickValues, beginNodeEdit, bevelSizePatch, boolFromEvent, bringForward, bringToFront, buildBarActions, buildBroadcastConfig, buildBroadcastViewerUrl, buildCategoryLabels, buildCellParagraphs, buildChartViewModel, buildChatLogExport, buildChatLogMarkdown, buildChromeStyle, buildClearHyperlinkPatch, buildClickGroups, buildColStyles, buildCollaborationConfig, buildComboViewModel, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFallbackViewModel, buildFontFaceRule, buildGradientFillCss, buildGridlinesAndLabels, buildHyperlinkPatch, buildInkContainerStyle, buildInkStrokes, buildLegend, buildMarkTooltip, buildModel3DContainerStyle, buildModel3DViewModel, buildOleActionModel, buildOleInfoRows, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, canGroupSelection, canRemoveTopLevelNode, canSetStrokeWidth, canStartBroadcast, canStartShare, canUngroupSelection, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, chartPreserveAspectRatio, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAllLocalViewerData, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectStoredChats, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDataTablePrimitives, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeFocusTargets, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeResizeHandleBoxes, computeRotateHandleBox, computeScatterDots, computeScatterXDomain, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTrendlinePrimitives, computeValueRange, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, createAngularAiBridge, createCustomShow, createSwipeDismissDrag, createWebrtcBundle, createWebsocketBundle, cssObjectToStyleMap, currentColorScheme, currentLayout, currentStyle, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, demoteNode, deriveModel3DBlobUrl, derivePresenceList, describeSmartArtBounds, disableGlowPatch, disableInnerShadowPatch, disableOuterShadowPatch, disableReflectionPatch, disableSoftEdgePatch, duplicateElementById, durationOf, effectsStateOf, enableGlowPatch, enableInnerShadowPatch, enableOuterShadowPatch, enableReflectionPatch, enableSoftEdgePatch, encodeGif, endShowMediaCleanup, estimatePageCount, exitPresentationFullscreen, exportAiChatLogs, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, firstVisibleIndex, fitPolynomial, fitZoom, focusTargetChips, fontMimeForFormat, fontSizeOf, forgetSessionDeck, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getSessionTabId, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gridColumns, groupIssuesBySeverity, hasAnimation, hasCopyableFormat, hasExistingLink, hasExitedFullscreen, hasGradientFill, hasPressureVariation, hasVisibleSlideAfter, headerLabel, imageDimensions, inkViewBox, insertTableElementColumn as insertColumn, insertTableElementRow as insertRow, interpolateWidth, isAudienceTab, isBold, isBrowserOpenableMime, isChildNode, isElementInteractive, isInjectableUrl, isItalic, isLegacyBinaryPresentation, isPpactionUrl, isPresenterMessage, isSigned, isSupportedPresentationFile, isTextElement, isTwoTableFocus, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, lastVisibleIndex, latexToMathml, layoutConnectorPaints, layoutNodeLabels, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, loadSessionDeck, mediaFallbackFor, mediaSurfaceFor, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, newPresetShapeElement, newShapeElement, newSmartArtElement, newTableElement, newTextElement, nextVisibleIndex, nodeBold, nodeEditBox, nodeFillColor, nodeFontColor, nodeIdFromKey, nodeItalic, nodeStyle, normalizeFontFormat, normalizeSlidesPerPage, normalizeValue, numFromEvent, ommlToMathml, ooxmlDashToCssBorderStyle, openNativeEyeDropper, overallStatus, paletteColor, parseAudienceNonce, parseNodeTextarea, partitionSlides, patchChartData, patchChartStyle, patchTableData, patchTextStyle, patternPresetOptions, pendingElementStyles, pickColorByClickFallback, pickFile, pickSupportedMimeType, planGifFrames, planVideoSegments, pointsToSvgPathD, presenceToCursors, presentationBaseName, presentationStageStyle, presenterTimerProgress, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, readAsDataUrl, recordWebm, registerCrossSlideAudio, rememberSessionDeck, removeAnimation, removeCategory, removeTableElementColumn as removeColumn, removeCommentFromList, removeElementAnimation, removeGradientStopPatch, removeNode, removeTableElementRow as removeRow, removeSeries, renderToCanvas, reorderAnimationDown, reorderAnimationUp, replaceInSlides, replaceMatch, requestPresentationFullscreen, resizeElement, resolveCaptionTracks, resolveChartKind, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveMediaSrc, resolveOleType, resolveParagraphBullet, resolvePresenterNotes, resolveProfileInitial, resolveRegionCode, resolveSlideAutoAdvanceMs, resolvePalette as resolveSmartArtPalette, resolveThemeCatalogEntry, resolveTransitionDuration, restoreSessionDeck, revealedElementStyles, routeOrthogonalConnector, rowStyle, rulerDragToGuidePosition, rulerHighlight, rulerStripTicks, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, saveViewerProfile, savedPresentationFileName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDataPointMarker, setDelay, setDirection, setDuration, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldBlockClickAdvance, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, slidesWithReappliedLayout, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, strokeWidthOf, styleShadowFilter, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus, zoomTargetSlideIndex };
21766
+ export { ALIGN_OPTIONS, ANIMATION_PRESET_CATEGORIES, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AXIS_LABEL_COLOR, AccessibilityPanelComponent, AccessibilityService, AccountPageComponent, ActionSettingsPanelComponent, AdvancedChartEditorComponent, AiChangeOverlayComponent, AiChatPanelComponent, AiChatService, AiComposerComponent, AiFocusBarComponent, AiFocusHighlightOverlayComponent, AiHistoryMenuComponent, AiHistoryService, AiMessageListComponent, AiPanelStore, AiProposalCardComponent, AiSettingsSectionComponent, AiToolCallCardComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveRecoveryDialogComponent, AutosaveService, BroadcastDialogComponent, CHART_EDITOR_STYLES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointMarkerOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, ChartTypeSelectorComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentMarkersOverlayComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DEFAULT_BOUNDS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_SCHEME, DEFAULT_FILL_COLOR, DEFAULT_LAYOUT, DEFAULT_PALETTE$1 as DEFAULT_PALETTE, DEFAULT_PATTERN_FILL_PRESET, DEFAULT_PRINT_SETTINGS, DEFAULT_SLIDE_BACKGROUND, DEFAULT_STROKE_COLOR, DEFAULT_STYLE, DEFAULT_TABLE_ROW_HEIGHT, DEFAULT_TEXT_COLOR, DEFAULT_VIEWER_PROFILE, DIRECTIONAL_PRESETS, DIRECTION_OPTIONS, DocumentPropertiesCardComponent, EMBEDDED_FONTS_STYLE_ID, EMPHASIS_PRESETS, ENTRANCE_PRESETS, TEMPLATES as EQUATION_TEMPLATES, EXIT_PRESETS, EditorContextMenuComponent, EditorHistory, EditorStateService, EditorToolbarComponent, EffectsPanelComponent, ElementRendererComponent, EmbeddedFontsService, EncryptedFileDialogComponent, EquationEditorDialogComponent, EquationRendererComponent, EquationTemplateGalleryComponent, ExportProgressModalComponent, ExportService, FieldContextService, FindBarComponent, FindReplaceBarComponent, FollowModeBarComponent, FontEmbeddingListComponent, FontEmbeddingPanelComponent, GALLERY_THEME_PRESETS, GRIDLINE_COLOR, GradientPickerComponent, HANDOUT_OPTIONS, HeaderFooterDialogComponent, HyperlinkDialogComponent, ImagePropertiesPanelComponent, InkDrawingService, InkRendererComponent, InsertSmartArtDialogComponent, InspectorPaneHeaderComponent, InspectorPanelComponent, IsMobileService, KeepAnnotationsDialogComponent, LOCALE_CATALOG, LONG_PRESS_DURATION_MS, LONG_PRESS_MOVE_TOLERANCE_PX, LoadContentService, LocalPresencePublisher, MAX_ZOOM_SCALE, MIN_ZOOM_SCALE, MOTION_PATH_COLUMNS, MediaPreviewComponent, MediaPropertiesPanelComponent, MediaRendererComponent, MediaTrimTimelineComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesHandoutCardComponent, NotesPanelComponent, NotesToolbarComponent, OleRendererComponent, OutlineViewOverlayComponent, POWER_POINT_VIEWER_PROVIDERS, PPTX_OPEN_ACCEPT, PRESENTATION_OPEN_EXTENSIONS, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PRESENTER_TIMER_SEGMENT_MS, PX_PER_CM, PX_PER_INCH, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentToolbarAutoHide, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationPropertiesPanelComponent, PresentationSettingsCardComponent, PresentationSubtitleBarComponent, PresentationToolbarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, REPEAT_MODE_OPTIONS, RESIZE_HANDLES, RULER_FONT_SIZE, RULER_THICKNESS, ReadingViewOverlayComponent, RemoteSelectionOverlayComponent, RibbonAnimationGalleryComponent, RibbonAnimationsSectionComponent, RibbonArrangeSectionComponent, RibbonColorPopoverComponent, RibbonComponent, RibbonDesignSectionComponent, RibbonDrawSectionComponent, RibbonDrawingGroupComponent, RibbonEditingSectionComponent, RibbonFileSectionComponent, RibbonFontControlsComponent, RibbonHomeSectionComponent, RibbonHyperlinkButtonComponent, RibbonInsertFieldsComponent, RibbonInsertSectionComponent, RibbonMotionPathGalleryComponent, RibbonParagraphControlsComponent, RibbonPrimaryRowComponent, RibbonReviewSectionComponent, RibbonShapeExtrasComponent, RibbonSlideshowSectionComponent, RibbonTransitionsSectionComponent, RibbonViewSectionComponent, RulerGuidesService, SEQUENCE_OPTIONS, SEVERITY_GROUPS, SEVERITY_LABELS, SHORTCUT_REFERENCE_ITEMS, SLIDE_TRANSITION_KEYFRAMES, DEFAULT_PALETTE as SMARTART_DEFAULT_PALETTE, PALETTES as SMARTART_PALETTES, SMART_ART_COLOR_SCHEMES, SMART_ART_STYLE_OPTIONS, SUB_ITEM_LABEL, SVG_WARP_PRESETS, SWIPE_MAX_VERTICAL_PX, SWIPE_THRESHOLD_PX, SelectionPaneComponent, SetUpSlideShowDialogComponent, SettingsAppearanceTabComponent, SettingsDialogComponent, SettingsLanguageTabComponent, ShareDialogComponent, ShortcutPanelComponent, ShowOptionsFieldsetComponent, ShowSlidesFieldsetComponent, SignatureStrippedDialogComponent, SignaturesPanelComponent, SignaturesService, SlideBackgroundCardComponent, SlideCanvasComponent, SlideDefaultInspectorComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSizeCardComponent, SlideSorterOverlayComponent, SlideThemeOverridePanelComponent, SlideTransitionCardComponent, SlidesPanelComponent, SmartArt3DRendererComponent, SmartArt3DService, SmartArtPreviewComponent, SmartArtPropertiesComponent, SmartArtRendererComponent, StatusBarComponent, TABLE_STRUCTURE_TOGGLES, TEXT_3D_BOTTOM_BEVEL_KEYS, TEXT_3D_TOP_BEVEL_KEYS, TEXT_DIRECTION_OPTIONS, THEME_CATALOG, TIMING_CURVE_OPTIONS, TRIGGER_OPTIONS, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TagsCardComponent, Text3DBevelSectionComponent, Text3DPanelComponent, TextAdvancedPanelComponent, ThemeEditorFieldsComponent, ThemeGalleryComponent, ThemeSelectorCardComponent, TitleBarComponent, TitleBarSearchComponent, TransitionDirectionPickerComponent, TransitionPreviewComponent, VALIGN_OPTIONS, VIEWER_THEME, VersionHistoryPanelComponent, ViewerCanvasEditingService, ViewerCollabCursorService, ViewerCollaborationSessionService, ViewerCompareService, ViewerCustomShowsService, ViewerDialogsService, ViewerDocumentPropertiesService, ViewerExportService, ViewerExtraDialogsComponent, ViewerFileIOService, ViewerFindReplaceService, ViewerFormatPainterService, ViewerInspectorPanelService, ViewerKeyboardService, ViewerMobileSheetService, ViewerPresentationModeService, ViewerThemeGalleryService, ViewerTouchGesturesService, ViewerZoomService, WEBM_MIME_CANDIDATES, WriteBackScheduler, ZERO_LINE_COLOR, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, affordanceElements, aiToggleVisible, alignPatch, animationFor, animationPresetLabelKey, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, asMediaElement, assignUserColor, attachShowVisibilityPause, attachTouchGestures, axisTickValues, beginNodeEdit, bevelSizePatch, boolFromEvent, bringForward, bringToFront, buildBarActions, buildBroadcastConfig, buildBroadcastViewerUrl, buildCategoryLabels, buildCellParagraphs, buildChartViewModel, buildChatLogExport, buildChatLogMarkdown, buildChromeStyle, buildClearHyperlinkPatch, buildClickGroups, buildColStyles, buildCollaborationConfig, buildComboViewModel, buildCssGradientFromShapeStyle, buildDuotoneFilter, buildDuotoneFilterId, buildEmbeddedFontStyles, buildEquationElement, buildEquationSegment, buildFallbackViewModel, buildFontFaceRule, buildGradientFillCss, buildGridlinesAndLabels, buildHyperlinkPatch, buildInkContainerStyle, buildInkStrokes, buildLegend, buildMarkTooltip, buildModel3DContainerStyle, buildModel3DViewModel, buildOleActionModel, buildOleInfoRows, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, canGroupSelection, canRemoveTopLevelNode, canSetStrokeWidth, canStartBroadcast, canStartShare, canUngroupSelection, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, chartPreserveAspectRatio, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAllLocalViewerData, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectStoredChats, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeFocusTargets, computeGridSpacingPx, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeResizeHandleBoxes, computeRotateHandleBox, computeScatterDots, computeScatterXDomain, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTrendlinePrimitives, computeValueRange, convertOmmlToMathMl, copyFormatFromElement, countAccessibilityIssues, countAnnotationStrokes, createAngularAiBridge, createCustomShow, createSwipeDismissDrag, createWebrtcBundle, createWebsocketBundle, cssObjectToStyleMap, currentColorScheme, currentLayout, currentStyle, defaultCssVars, defaultRadius, defaultThemeColors, deleteElementsByIds, deleteVersion as deleteRecoveryVersion, demoteNode, deriveModel3DBlobUrl, derivePresenceList, describeSmartArtBounds, disableGlowPatch, disableInnerShadowPatch, disableOuterShadowPatch, disableReflectionPatch, disableSoftEdgePatch, duplicateElementById, durationOf, effectsStateOf, enableGlowPatch, enableInnerShadowPatch, enableOuterShadowPatch, enableReflectionPatch, enableSoftEdgePatch, encodeGif, endShowMediaCleanup, estimatePageCount, exitPresentationFullscreen, exportAiChatLogs, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, firstVisibleIndex, fitPolynomial, fitZoom, focusTargetChips, fontMimeForFormat, fontSizeOf, forgetSessionDeck, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getSessionTabId, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gridColumns, groupIssuesBySeverity, hasAnimation, hasCopyableFormat, hasExistingLink, hasExitedFullscreen, hasGradientFill, hasPressureVariation, hasVisibleSlideAfter, headerLabel, imageDimensions, inkViewBox, insertTableElementColumn as insertColumn, insertTableElementRow as insertRow, interpolateWidth, isAudienceTab, isBold, isBrowserOpenableMime, isChildNode, isElementInteractive, isInjectableUrl, isItalic, isLegacyBinaryPresentation, isPpactionUrl, isPresenterMessage, isSigned, isSupportedPresentationFile, isTextElement, isTwoTableFocus, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, lastVisibleIndex, latexToMathml, layoutConnectorPaints, layoutNodeLabels, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, loadSessionDeck, mediaFallbackFor, mediaSurfaceFor, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, newPresetShapeElement, newShapeElement, newSmartArtElement, newTableElement, newTextElement, nextVisibleIndex, nodeBold, nodeEditBox, nodeFillColor, nodeFontColor, nodeIdFromKey, nodeItalic, nodeStyle, normalizeFontFormat, normalizeSlidesPerPage, normalizeValue, numFromEvent, ommlToMathml, ooxmlDashToCssBorderStyle, openNativeEyeDropper, overallStatus, paletteColor, parseAudienceNonce, parseNodeTextarea, partitionSlides, patchChartData, patchChartStyle, patchTableData, patchTextStyle, patternPresetOptions, pendingElementStyles, pickColorByClickFallback, pickFile, pickSupportedMimeType, planGifFrames, planVideoSegments, pointsToSvgPathD, presenceToCursors, presentationBaseName, presentationStageStyle, presenterTimerProgress, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, readAsDataUrl, recordWebm, registerCrossSlideAudio, rememberSessionDeck, removeAnimation, removeCategory, removeTableElementColumn as removeColumn, removeCommentFromList, removeElementAnimation, removeGradientStopPatch, removeNode, removeTableElementRow as removeRow, removeSeries, renderToCanvas, reorderAnimationDown, reorderAnimationUp, replaceInSlides, replaceMatch, requestPresentationFullscreen, resizeElement, resolveCaptionTracks, resolveChartKind, resolveFontVariant, resolveHyperlinkHref, resolveInteractiveElementId, resolveMediaSrc, resolveOleType, resolveParagraphBullet, resolvePresenterNotes, resolveProfileInitial, resolveRegionCode, resolveSlideAutoAdvanceMs, resolvePalette as resolveSmartArtPalette, resolveThemeCatalogEntry, resolveTransitionDuration, restoreSessionDeck, revealedElementStyles, routeOrthogonalConnector, rowStyle, rulerDragToGuidePosition, rulerHighlight, rulerStripTicks, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, saveViewerProfile, savedPresentationFileName, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDataPointMarker, setDelay, setDirection, setDuration, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldBlockClickAdvance, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, slidesWithReappliedLayout, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, strokeWidthOf, styleShadowFilter, surfaceColor, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus, zoomTargetSlideIndex };
21513
21767
  export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, ActiveShow, AiCanvasHighlight, AiChatInitState, AiHistoryInitDeps, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AwarenessLike, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InlineEditState, InnerShadowState, LegendEntry, LinePoint, LinearFit, LocalIdentity, LocalStorageUsageSummary, LocaleCatalogEntry, MobileSheetKey, Model3DViewModel, MotionPathColumn, MotionPathEntry, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OuterShadowState, OutlineCommit, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PieSliceOptions, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PptxAiBridge, PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiElementUpdate, PptxAiToolName, PptxAiUIMessage, PptxAiWritePolicy, PresentToolbarAction, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, PresenterTimerProgress, PressureCircle, PrintColorMode, PrintHtmlDocumentOptions as PrintDocumentOptions, PrintOrientation, PrintSettings, PrintSlideRange, PrintWhat, PropertiesDraft, ProposalView, ProviderBundle, ProviderLike, RadarPoint, RecordWebmOptions, RecoveryVersion, ReflectionState, RemoteCursor, SanitizedPresence as RemotePresence, RenderedShape, ReplaceResult, ResizeHandle, ResolvedCaptionTrack, ResolvedFontVariant, ResolvedOleType, RulerUnit, SavedPresentationFormat, ScatterDot, ScatterXDomain, SelectionBox, SessionDeck, ShapeStyleChanges, ShareDefaults$1 as ShareDefaults, ShareFormFields, ShortcutReferenceItem, SignatureStatusKind, SlideInspectorTab, SlideTransitionAnimations, SmartArtInsertEvent, SmartArtNodeBounds, SnapBox, SnapGuide, SnapResult, SoftEdgeState, SpeechAlternative, SpeechRecognitionCtor, SpeechRecognitionEventLite, SpeechRecognitionLite, SpeechResult, SpeechResultList, SpeechSupportState, StagedProposal, StrokeToInkElementOpts, StyleMap, SupportedChartKind, SvgAreaGradient, SvgCircle, SvgLine, SvgPath, SvgPolygon, SvgPolyline, SvgPrimitive, SvgRect, SvgText, SwipeDismissDrag, TableBooleanFlag, TableCellSelection, TableCellViewModel, TableRowViewModel, TemplateElementsBySlideId, Text3DBevelKeys, TextAdvancedChanges, TextAdvancedState, TextStyleChanges, TextWarpCssDef, TextWarpDef, TextWarpPathDef, ThemeCatalogEntry, Tick, ToolbarActionId, TouchGestureCallbacks, TranslationKey, ValueRange, VideoPlanOptions, VideoSegmentPlan, ViewerMode, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ZoomTranslate, ZoomViewModel };
21514
21768
  //# sourceMappingURL=pptx-angular-viewer.d.ts.map