pptx-angular-viewer 3.6.5 → 3.8.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.
- package/CHANGELOG.md +21 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-ByqjxEve.mjs → pptx-angular-viewer-chat-history-idb-BxlsOXEi.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-ByqjxEve.mjs.map → pptx-angular-viewer-chat-history-idb-BxlsOXEi.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-ByXxNE8P.mjs → pptx-angular-viewer-pptx-angular-viewer-3iTbE0x6.mjs} +9200 -3418
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-ByXxNE8P.mjs.map → pptx-angular-viewer-pptx-angular-viewer-3iTbE0x6.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +3 -3
- package/types/pptx-angular-viewer.d.ts +606 -101
- package/types/pptx-angular-viewer.d.ts.map +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as pptx_viewer_core from 'pptx-viewer-core';
|
|
2
|
-
import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, MasterViewTab, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxModernCommentAuthor, PptxCommentMention, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxGridSpacing, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxBar3DShape, 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';
|
|
2
|
+
import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxThemeColorRef, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, MasterViewTab, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxModernCommentAuthor, PptxCommentMention, PptxHeaderFooter, PptxCustomShow, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxViewProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxGridSpacing, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxBar3DShape, 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';
|
|
@@ -569,6 +569,66 @@ interface ComputedFillStyle {
|
|
|
569
569
|
};
|
|
570
570
|
}
|
|
571
571
|
|
|
572
|
+
/**
|
|
573
|
+
* `path="rect"` SVG paint server: the true nested-rectangle (Chebyshev)
|
|
574
|
+
* gradient field, as a `<pattern>` whose tile is the same normalised SVG
|
|
575
|
+
* image {@link ./path-gradient-rect.ts} builds for the CSS `background-image`
|
|
576
|
+
* path.
|
|
577
|
+
*
|
|
578
|
+
* Split out of `svg-gradient-paint.ts` (which stays focused on the
|
|
579
|
+
* `<linearGradient>` / `<radialGradient>` paint servers SVG can express
|
|
580
|
+
* natively) to keep both files under this repo's ~300-LOC guideline.
|
|
581
|
+
*
|
|
582
|
+
* @module svg-gradient-rect-path
|
|
583
|
+
*/
|
|
584
|
+
|
|
585
|
+
/**
|
|
586
|
+
* A `path="rect"` gradient's true nested-rectangle field, painted as a
|
|
587
|
+
* `<pattern>` whose single tile is stretched to the shape's own box
|
|
588
|
+
* (`patternUnits="objectBoundingBox"`, `width`/`height` 1, the `<image>`
|
|
589
|
+
* itself `preserveAspectRatio="none"`).
|
|
590
|
+
*
|
|
591
|
+
* SVG's native `<radialGradient>` can only express an ellipse, which is a
|
|
592
|
+
* visibly wrong approximation for a rect-path gradient near a non-square
|
|
593
|
+
* shape's corners (see `path-gradient-rect.ts`'s module doc), so a freeform
|
|
594
|
+
* (`a:custGeom`) shape with `a:path type="rect"` needs this distinct paint
|
|
595
|
+
* server instead of an elliptical `SvgRadialGradientDef`.
|
|
596
|
+
*/
|
|
597
|
+
interface SvgRectPathGradientDef {
|
|
598
|
+
kind: 'rectPath';
|
|
599
|
+
id: string;
|
|
600
|
+
/** `data:image/svg+xml,...` of the nested-rectangle band field. */
|
|
601
|
+
href: string;
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
/**
|
|
605
|
+
* SVG `<pattern>` paint server for a preset pattern OUTLINE (`a:ln/a:pattFill`).
|
|
606
|
+
*
|
|
607
|
+
* Split out of `svg-gradient-paint.ts` to keep that file (and this one) under
|
|
608
|
+
* this repo's ~300-LOC guideline; both are part of the same "freeform shape
|
|
609
|
+
* needs a real SVG paint server, not a flattened representative colour"
|
|
610
|
+
* effort (see that module's header).
|
|
611
|
+
*
|
|
612
|
+
* @module svg-stroke-pattern-paint
|
|
613
|
+
*/
|
|
614
|
+
|
|
615
|
+
/**
|
|
616
|
+
* An SVG `<pattern>` paint server for a preset pattern OUTLINE.
|
|
617
|
+
*
|
|
618
|
+
* The tile is carried as a data-URI `<image>` rather than inline primitives so
|
|
619
|
+
* every binding can render the `<pattern>` from plain attribute bindings, with
|
|
620
|
+
* no raw-markup injection (which Angular's template sanitiser would fight).
|
|
621
|
+
*/
|
|
622
|
+
interface SvgPatternDef {
|
|
623
|
+
kind: 'pattern';
|
|
624
|
+
id: string;
|
|
625
|
+
/** Tile size in user-space px; the pattern repeats on this grid. */
|
|
626
|
+
width: number;
|
|
627
|
+
height: number;
|
|
628
|
+
/** `data:image/svg+xml,…` of one rendered tile. */
|
|
629
|
+
href: string;
|
|
630
|
+
}
|
|
631
|
+
|
|
572
632
|
/**
|
|
573
633
|
* OOXML gradient fill (`a:gradFill`) → SVG paint server.
|
|
574
634
|
*
|
|
@@ -617,24 +677,9 @@ interface SvgRadialGradientDef {
|
|
|
617
677
|
r: number;
|
|
618
678
|
stops: SvgGradientStopDef[];
|
|
619
679
|
}
|
|
680
|
+
|
|
620
681
|
/** Either flavour of SVG gradient produced by {@link buildSvgGradientDef}. */
|
|
621
|
-
type SvgGradientDef = SvgLinearGradientDef | SvgRadialGradientDef;
|
|
622
|
-
/**
|
|
623
|
-
* An SVG `<pattern>` paint server for a preset pattern OUTLINE.
|
|
624
|
-
*
|
|
625
|
-
* The tile is carried as a data-URI `<image>` rather than inline primitives so
|
|
626
|
-
* every binding can render the `<pattern>` from plain attribute bindings, with
|
|
627
|
-
* no raw-markup injection (which Angular's template sanitiser would fight).
|
|
628
|
-
*/
|
|
629
|
-
interface SvgPatternDef {
|
|
630
|
-
kind: 'pattern';
|
|
631
|
-
id: string;
|
|
632
|
-
/** Tile size in user-space px; the pattern repeats on this grid. */
|
|
633
|
-
width: number;
|
|
634
|
-
height: number;
|
|
635
|
-
/** `data:image/svg+xml,…` of one rendered tile. */
|
|
636
|
-
href: string;
|
|
637
|
-
}
|
|
682
|
+
type SvgGradientDef = SvgLinearGradientDef | SvgRadialGradientDef | SvgRectPathGradientDef;
|
|
638
683
|
|
|
639
684
|
/**
|
|
640
685
|
* Stroked SVG OUTLINES: gradient/pattern lines (`a:ln/a:gradFill`,
|
|
@@ -1067,6 +1112,60 @@ interface EquationTemplate {
|
|
|
1067
1112
|
i18nKey: string;
|
|
1068
1113
|
}
|
|
1069
1114
|
|
|
1115
|
+
/**
|
|
1116
|
+
* Chart title text style: the font every binding draws `vm.title` with.
|
|
1117
|
+
*
|
|
1118
|
+
* Cascade (highest wins): the title's own `c:tx/c:rich` / `c:txPr` run
|
|
1119
|
+
* properties (`PptxChartStyle.titleFont*`), then the chart-style part's
|
|
1120
|
+
* title entry, then this viewer's fixed defaults (12 px, semi-bold, slate).
|
|
1121
|
+
* Returned as a framework-neutral descriptor the bindings map straight onto
|
|
1122
|
+
* SVG `<text>` attributes, so a chart authored with a 24 pt red title reads
|
|
1123
|
+
* the same in all five bindings.
|
|
1124
|
+
*
|
|
1125
|
+
* @module chart-title-style
|
|
1126
|
+
*/
|
|
1127
|
+
|
|
1128
|
+
/** Resolved SVG text attributes for the chart title. */
|
|
1129
|
+
interface ChartTitleTextStyle {
|
|
1130
|
+
/** `font-size`, in slide-px. */
|
|
1131
|
+
fontSize: number;
|
|
1132
|
+
/** `font-weight`. */
|
|
1133
|
+
fontWeight: number;
|
|
1134
|
+
/** `fill`. */
|
|
1135
|
+
fill: string;
|
|
1136
|
+
/** `font-family`, only when the title names a typeface. */
|
|
1137
|
+
fontFamily?: string;
|
|
1138
|
+
}
|
|
1139
|
+
|
|
1140
|
+
/**
|
|
1141
|
+
* chart-svg-def-types.ts: `<defs>` descriptor types for the chart engine,
|
|
1142
|
+
* split out of `chart-view-model-types.ts` to keep it within the repo's
|
|
1143
|
+
* ~300-LOC limit.
|
|
1144
|
+
*
|
|
1145
|
+
* @module chart-svg-def-types
|
|
1146
|
+
*/
|
|
1147
|
+
/**
|
|
1148
|
+
* A `<defs>` entry a chart needs rendered before its primitives, so a
|
|
1149
|
+
* primitive's `fill`/`stroke` can reference it by `url(#id)`. Currently only
|
|
1150
|
+
* `<pattern>` (a data point's `c:dPt/c:pictureOptions` picture fill, see
|
|
1151
|
+
* `chart-datapoint-picture-fills.ts`); the `kind` discriminant leaves room for
|
|
1152
|
+
* a future def type without a breaking change to `ChartViewModel.defs`.
|
|
1153
|
+
*/
|
|
1154
|
+
interface ChartSvgPatternDef {
|
|
1155
|
+
kind: 'pattern';
|
|
1156
|
+
/** Also the `fill="url(#...)"` target on the primitive(s) it paints. Unique per chart instance. */
|
|
1157
|
+
id: string;
|
|
1158
|
+
/** Image source (a `data:`/`blob:` URL). */
|
|
1159
|
+
href: string;
|
|
1160
|
+
patternUnits: 'userSpaceOnUse';
|
|
1161
|
+
x: number;
|
|
1162
|
+
y: number;
|
|
1163
|
+
width: number;
|
|
1164
|
+
height: number;
|
|
1165
|
+
preserveAspectRatio?: string;
|
|
1166
|
+
}
|
|
1167
|
+
type ChartSvgDef = ChartSvgPatternDef;
|
|
1168
|
+
|
|
1070
1169
|
/**
|
|
1071
1170
|
* chart-view-model-scale.ts: palette, value-range and axis-value helpers of
|
|
1072
1171
|
* the chart engine. Split out of `chart-view-model.ts`, which re-exports
|
|
@@ -1344,6 +1443,18 @@ interface ChartViewModel {
|
|
|
1344
1443
|
* NOTHING should be painted behind it. See `chart-area-fill.ts`.
|
|
1345
1444
|
*/
|
|
1346
1445
|
areaFill?: string;
|
|
1446
|
+
/**
|
|
1447
|
+
* SVG `rx`/`ry` corner radius for the chart-area rect, when
|
|
1448
|
+
* `c:chartSpace/c:roundedCorners` is set. `undefined` (square corners) is
|
|
1449
|
+
* the default PowerPoint uses for a chart with no fill at all, so a
|
|
1450
|
+
* projector should omit the attribute rather than pass `0`.
|
|
1451
|
+
*/
|
|
1452
|
+
areaRadius?: number;
|
|
1453
|
+
/**
|
|
1454
|
+
* Font the title is drawn with (`c:title` run properties, then the chart
|
|
1455
|
+
* style part, then the viewer defaults). See `chart-title-style.ts`.
|
|
1456
|
+
*/
|
|
1457
|
+
titleStyle?: ChartTitleTextStyle;
|
|
1347
1458
|
/**
|
|
1348
1459
|
* SVG `fill` for the plot-area rect, resolved from `c:plotArea/c:spPr`.
|
|
1349
1460
|
* `undefined` means paint nothing and let the chart area show through.
|
|
@@ -1373,6 +1484,14 @@ interface ChartViewModel {
|
|
|
1373
1484
|
* when the chart has no overlay.
|
|
1374
1485
|
*/
|
|
1375
1486
|
userShapes?: SvgPrimitive[];
|
|
1487
|
+
/**
|
|
1488
|
+
* `<defs>` a binding must render before `primitives`, so a primitive's
|
|
1489
|
+
* `fill: 'url(#id)'` resolves. Currently populated only by data-point
|
|
1490
|
+
* picture fills (`c:dPt/c:pictureOptions`, C2-G9); absent when the chart
|
|
1491
|
+
* has none, so a projector that ignores this field paints exactly as
|
|
1492
|
+
* before.
|
|
1493
|
+
*/
|
|
1494
|
+
defs?: ChartSvgDef[];
|
|
1376
1495
|
}
|
|
1377
1496
|
|
|
1378
1497
|
/**
|
|
@@ -1538,6 +1657,25 @@ declare function withManualLayouts(vm: ChartViewModel, chartData: Pick<PptxChart
|
|
|
1538
1657
|
declare function buildFallbackViewModel(width: number, height: number, label: string): ChartViewModel;
|
|
1539
1658
|
declare function buildPieViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>, isDoughnut: boolean): ChartViewModel;
|
|
1540
1659
|
|
|
1660
|
+
/**
|
|
1661
|
+
* chart-radar-geometry.ts: radar (spider) chart polar-coordinate geometry,
|
|
1662
|
+
* split out of `chart-view-model-points.ts` to keep that file within the
|
|
1663
|
+
* repo's ~300-LOC limit. Re-exported from there (and from `chart-view-model.ts`)
|
|
1664
|
+
* so the public import surface is unchanged.
|
|
1665
|
+
*
|
|
1666
|
+
* @module chart-radar-geometry
|
|
1667
|
+
*/
|
|
1668
|
+
/** Angle (radians) of the i-th radar spoke; 0 points up (-90°), clockwise. */
|
|
1669
|
+
declare function radarAngle(index: number, catCount: number): number;
|
|
1670
|
+
interface RadarPoint {
|
|
1671
|
+
x: number;
|
|
1672
|
+
y: number;
|
|
1673
|
+
}
|
|
1674
|
+
/** Project a series' values onto radar (polar) coordinates around (cx, cy). */
|
|
1675
|
+
declare function computeRadarPoints(values: ReadonlyArray<number>, maxVal: number, radius: number, cx: number, cy: number, catCount: number): RadarPoint[];
|
|
1676
|
+
/** Points string for a radar gridline ring at radius `rr`. */
|
|
1677
|
+
declare function radarRingPoints(cx: number, cy: number, rr: number, catCount: number): string;
|
|
1678
|
+
|
|
1541
1679
|
/**
|
|
1542
1680
|
* chart-view-model-points.ts: pie / doughnut, scatter, bubble and radar
|
|
1543
1681
|
* geometry of the chart engine. Split out of `chart-view-model.ts`, which
|
|
@@ -1591,23 +1729,29 @@ interface ScatterXDomain {
|
|
|
1591
1729
|
*/
|
|
1592
1730
|
declare function computeScatterXDomain(seriesXValues: ReadonlyArray<ReadonlyArray<number> | undefined>): ScatterXDomain | undefined;
|
|
1593
1731
|
declare function computeScatterDots(values: ReadonlyArray<number>, maxXIndex: number, layout: PlotLayout, range: ValueRange, xValues?: ReadonlyArray<number>, xDomain?: ScatterXDomain): ScatterDot[];
|
|
1732
|
+
/** `c:bubbleScale` / `c:sizeRepresents` inputs to {@link computeBubbleRadius}. */
|
|
1733
|
+
interface BubbleRadiusOptions {
|
|
1734
|
+
/** `c:bubbleScale` (0-300%). PowerPoint's own default, 100, leaves the envelope unscaled. */
|
|
1735
|
+
bubbleScale?: number;
|
|
1736
|
+
/**
|
|
1737
|
+
* `c:sizeRepresents`. `'area'` (ECMA-376's own default) sizes bubbles so the
|
|
1738
|
+
* rendered AREA is proportional to the value (radius scales with the square
|
|
1739
|
+
* root of it); `'w'` sizes so the DIAMETER is proportional (radius scales
|
|
1740
|
+
* linearly). Defaults to `'w'` here so this raw helper's pre-existing
|
|
1741
|
+
* 3-argument callers stay byte-identical; `buildBubbles` resolves the
|
|
1742
|
+
* chart-wide `'area'` default itself before calling in.
|
|
1743
|
+
*/
|
|
1744
|
+
sizeRepresents?: 'area' | 'w';
|
|
1745
|
+
}
|
|
1594
1746
|
/**
|
|
1595
1747
|
* Radius of a bubble given its size value, the max size in the chart, and a
|
|
1596
|
-
* median radius derived from the plot area.
|
|
1597
|
-
*
|
|
1598
|
-
*
|
|
1748
|
+
* median radius derived from the plot area. When no size value is present the
|
|
1749
|
+
* bubble uses the median radius (scaled by `bubbleScale`); otherwise it scales
|
|
1750
|
+
* from 0.5x to 2x the median, linearly (`sizeRepresents: 'w'`) or by square
|
|
1751
|
+
* root (`'area'`, so the bubble's rendered AREA, not its diameter, tracks the
|
|
1752
|
+
* value).
|
|
1599
1753
|
*/
|
|
1600
|
-
declare function computeBubbleRadius(sizeVal: number | undefined, maxBubble: number, medianRadius: number): number;
|
|
1601
|
-
/** Angle (radians) of the i-th radar spoke; 0 points up (-90°), clockwise. */
|
|
1602
|
-
declare function radarAngle(index: number, catCount: number): number;
|
|
1603
|
-
interface RadarPoint {
|
|
1604
|
-
x: number;
|
|
1605
|
-
y: number;
|
|
1606
|
-
}
|
|
1607
|
-
/** Project a series' values onto radar (polar) coordinates around (cx, cy). */
|
|
1608
|
-
declare function computeRadarPoints(values: ReadonlyArray<number>, maxVal: number, radius: number, cx: number, cy: number, catCount: number): RadarPoint[];
|
|
1609
|
-
/** Points string for a radar gridline ring at radius `rr`. */
|
|
1610
|
-
declare function radarRingPoints(cx: number, cy: number, rr: number, catCount: number): string;
|
|
1754
|
+
declare function computeBubbleRadius(sizeVal: number | undefined, maxBubble: number, medianRadius: number, options?: BubbleRadiusOptions): number;
|
|
1611
1755
|
|
|
1612
1756
|
/**
|
|
1613
1757
|
* chart-view-model-radar.ts: the radar / spider view-model builder. Split out
|
|
@@ -1840,6 +1984,37 @@ declare function normalizeValue(value: number, min: number, max: number): number
|
|
|
1840
1984
|
*/
|
|
1841
1985
|
declare function buildRegionMapViewModel(element: PptxElement, chartData: PptxChartData, categoryLabels: ReadonlyArray<string>): ChartViewModel;
|
|
1842
1986
|
|
|
1987
|
+
/**
|
|
1988
|
+
* chart-overlays-axis-titles.ts: `computeAxisTitlePrimitives`, building
|
|
1989
|
+
* `SvgText[]` for the X and Y axis titles. Split out of chart-overlays.ts to
|
|
1990
|
+
* keep that module under the repo's file-size guideline.
|
|
1991
|
+
*
|
|
1992
|
+
* Ported / adapted from:
|
|
1993
|
+
* packages/react/src/viewer/utils/chart-chrome.tsx (axis titles)
|
|
1994
|
+
*
|
|
1995
|
+
* @module chart-overlays-axis-titles
|
|
1996
|
+
*/
|
|
1997
|
+
|
|
1998
|
+
/**
|
|
1999
|
+
* Build `SvgText[]` for the X and Y axis titles.
|
|
2000
|
+
*
|
|
2001
|
+
* Axis titles are read from `chartData.axes`:
|
|
2002
|
+
* - the primary category axis (`catAx`, `axPos === 'b'`) drives the X title
|
|
2003
|
+
* - the primary value axis (`valAx`, `axPos === 'l'` or first `valAx`) drives the Y title
|
|
2004
|
+
*
|
|
2005
|
+
* **Rotation note**: `SvgText` has no `transform` or `rotate` field. The Y
|
|
2006
|
+
* axis title is therefore placed to the left of the plot without rotation and
|
|
2007
|
+
* noted inline. If the orchestrator adds a `transform?: string` field to
|
|
2008
|
+
* `SvgText` (or a new `SvgTransform` wrapper primitive), the Y title can be
|
|
2009
|
+
* rendered rotated -90 degrees by passing
|
|
2010
|
+
* `transform: \`rotate(-90, ${x}, ${y})\`` (the template expression is
|
|
2011
|
+
* straightforward once the field exists).
|
|
2012
|
+
*
|
|
2013
|
+
* @param chartData Full parsed chart data.
|
|
2014
|
+
* @param layout Plot-area bounding box.
|
|
2015
|
+
*/
|
|
2016
|
+
declare function computeAxisTitlePrimitives(chartData: PptxChartData, layout: PlotLayout): SvgText[];
|
|
2017
|
+
|
|
1843
2018
|
interface ErrorBarRenderOptions {
|
|
1844
2019
|
/** Source point indexes in display order after category/date-axis filtering. */
|
|
1845
2020
|
sourceIndices?: ReadonlyArray<number>;
|
|
@@ -1854,23 +2029,16 @@ interface ErrorBarRenderOptions {
|
|
|
1854
2029
|
declare function computeErrorBarPrimitives(chartData: PptxChartData, catCount: number, layout: PlotLayout, range: ValueRange, mode?: 'line' | 'bar', options?: ErrorBarRenderOptions): SvgPrimitive[];
|
|
1855
2030
|
|
|
1856
2031
|
/**
|
|
1857
|
-
* chart-overlays.ts
|
|
1858
|
-
*
|
|
1859
|
-
*
|
|
1860
|
-
* existing cartesian chart. No Angular dependencies; all inputs are typed
|
|
1861
|
-
* against `pptx-viewer-core` and the `SvgPrimitive` union already defined in
|
|
1862
|
-
* `chart-renderer-helpers.ts`.
|
|
2032
|
+
* chart-overlays-regression.ts: least-squares regression / polynomial-fit
|
|
2033
|
+
* math for chart trendlines. Split out of chart-overlays.ts to keep that
|
|
2034
|
+
* module under the repo's file-size guideline.
|
|
1863
2035
|
*
|
|
1864
2036
|
* Ported / adapted from:
|
|
1865
|
-
* packages/react/src/viewer/utils/chart-trendlines.tsx
|
|
1866
|
-
* packages/
|
|
1867
|
-
* packages/react/src/viewer/utils/chart-chrome.tsx (axis titles)
|
|
1868
|
-
* packages/react/src/viewer/utils/chart-data-table.tsx (data table)
|
|
1869
|
-
* packages/shared/src/render/chart-trendlines.ts (shared port)
|
|
2037
|
+
* packages/react/src/viewer/utils/chart-trendlines.tsx (regression engine)
|
|
2038
|
+
* packages/shared/src/render/chart-trendlines.ts (shared port)
|
|
1870
2039
|
*
|
|
1871
|
-
* @module chart-overlays
|
|
2040
|
+
* @module chart-overlays-regression
|
|
1872
2041
|
*/
|
|
1873
|
-
|
|
1874
2042
|
/** Result of an ordinary least-squares linear regression. */
|
|
1875
2043
|
interface LinearFit {
|
|
1876
2044
|
slope: number;
|
|
@@ -1887,23 +2055,37 @@ interface LinearFit {
|
|
|
1887
2055
|
*/
|
|
1888
2056
|
declare function computeLinearRegression(xVals: number[], yVals: number[]): LinearFit;
|
|
1889
2057
|
/**
|
|
1890
|
-
* Fit polynomial coefficients (ascending order: [a0, a1,
|
|
2058
|
+
* Fit polynomial coefficients (ascending order: [a0, a1, ..., a_order]) via
|
|
1891
2059
|
* Gaussian elimination on the normal equations.
|
|
1892
2060
|
* Mirrors `fitPolynomial` in chart-trendlines.tsx (React).
|
|
1893
2061
|
*/
|
|
1894
2062
|
declare function fitPolynomial(xVals: number[], yVals: number[], order: number): number[];
|
|
1895
2063
|
/**
|
|
1896
|
-
* Coefficient of determination (R
|
|
1897
|
-
* Mirrors `computeRSquared` in chart-trendlines.tsx (React).
|
|
2064
|
+
* Coefficient of determination (R-squared) of an arbitrary fit function
|
|
2065
|
+
* against data. Mirrors `computeRSquared` in chart-trendlines.tsx (React).
|
|
1898
2066
|
*/
|
|
1899
2067
|
declare function computeRSquared(xVals: number[], yVals: number[], evalFn: (x: number) => number): number;
|
|
2068
|
+
|
|
2069
|
+
/**
|
|
2070
|
+
* chart-overlays-trendline.ts: public `computeTrendlinePrimitives` API,
|
|
2071
|
+
* turning each series' `computeTrendlinePoints` fit into `SvgPrimitive[]`.
|
|
2072
|
+
* Split out of chart-overlays.ts to keep that module under the repo's
|
|
2073
|
+
* file-size guideline.
|
|
2074
|
+
*
|
|
2075
|
+
* Ported / adapted from:
|
|
2076
|
+
* packages/react/src/viewer/utils/chart-trendlines.tsx (regression engine)
|
|
2077
|
+
* packages/shared/src/render/chart-trendlines.ts (shared port)
|
|
2078
|
+
*
|
|
2079
|
+
* @module chart-overlays-trendline
|
|
2080
|
+
*/
|
|
2081
|
+
|
|
1900
2082
|
/**
|
|
1901
2083
|
* Build `SvgPrimitive[]` for all trendlines declared by every series in
|
|
1902
|
-
* `chartData`.
|
|
2084
|
+
* `chartData`. Returns an empty array when no series declares a trendline.
|
|
1903
2085
|
*
|
|
1904
2086
|
* Each trendline produces:
|
|
1905
2087
|
* - one `SvgPath` (dashed polyline in the series / trendline colour), and
|
|
1906
|
-
* - optionally one `SvgText` with the equation / R
|
|
2088
|
+
* - optionally one `SvgText` with the equation / R-squared label at the last point.
|
|
1907
2089
|
*
|
|
1908
2090
|
* @param chartData Full parsed chart data.
|
|
1909
2091
|
* @param catCount Number of categories (x-slots), e.g. `chartData.categories.length || 1`.
|
|
@@ -1913,25 +2095,6 @@ declare function computeRSquared(xVals: number[], yVals: number[], evalFn: (x: n
|
|
|
1913
2095
|
* @param colorPalette Optional resolved palette (same as passed to `seriesColor`).
|
|
1914
2096
|
*/
|
|
1915
2097
|
declare function computeTrendlinePrimitives(chartData: PptxChartData, catCount: number, layout: PlotLayout, range: ValueRange, mode?: 'line' | 'bar', colorPalette?: readonly string[]): SvgPrimitive[];
|
|
1916
|
-
/**
|
|
1917
|
-
* Build `SvgText[]` for the X and Y axis titles.
|
|
1918
|
-
*
|
|
1919
|
-
* Axis titles are read from `chartData.axes`:
|
|
1920
|
-
* - the primary category axis (`catAx`, `axPos === 'b'`) drives the X title
|
|
1921
|
-
* - the primary value axis (`valAx`, `axPos === 'l'` or first `valAx`) drives the Y title
|
|
1922
|
-
*
|
|
1923
|
-
* **Rotation note**: `SvgText` has no `transform` or `rotate` field. The Y
|
|
1924
|
-
* axis title is therefore placed to the left of the plot without rotation and
|
|
1925
|
-
* noted inline. If the orchestrator adds a `transform?: string` field to
|
|
1926
|
-
* `SvgText` (or a new `SvgTransform` wrapper primitive), the Y title can be
|
|
1927
|
-
* rendered rotated -90° by passing
|
|
1928
|
-
* `transform: \`rotate(-90, ${x}, ${y})\`` — the template expression is
|
|
1929
|
-
* straightforward once the field exists.
|
|
1930
|
-
*
|
|
1931
|
-
* @param chartData Full parsed chart data.
|
|
1932
|
-
* @param layout Plot-area bounding box.
|
|
1933
|
-
*/
|
|
1934
|
-
declare function computeAxisTitlePrimitives(chartData: PptxChartData, layout: PlotLayout): SvgText[];
|
|
1935
2098
|
|
|
1936
2099
|
/**
|
|
1937
2100
|
* `animation-authoring` — pure, immutable helpers for the editor's element
|
|
@@ -2290,6 +2453,62 @@ type ChartBuildMode = 'asOne' | 'bySeries' | 'byCategory' | 'byElement';
|
|
|
2290
2453
|
* - `byLvlAtOnce` a whole level is revealed per stage (`lvlAtOnce`).
|
|
2291
2454
|
*/
|
|
2292
2455
|
type DiagramBuildMode = 'asOne' | 'byOne' | 'byLvl' | 'byLvlAtOnce';
|
|
2456
|
+
/**
|
|
2457
|
+
* One authored `p:graphicEl` reveal unit resolved onto a chart, per
|
|
2458
|
+
* `TimelineStepGraphicElement`'s "both indices set" case: a single (series,
|
|
2459
|
+
* category) cell revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect.
|
|
2460
|
+
*/
|
|
2461
|
+
interface ChartRevealPoint {
|
|
2462
|
+
seriesIdx: number;
|
|
2463
|
+
categoryIdx: number;
|
|
2464
|
+
}
|
|
2465
|
+
/**
|
|
2466
|
+
* Playback-time chart reveal state derived from AUTHORED `p:graphicEl`
|
|
2467
|
+
* indices (see `chart-reveal-descriptor`'s `resolveChartRevealDescriptor`),
|
|
2468
|
+
* rather than from click-count/time progress. Present on
|
|
2469
|
+
* {@link ElementAnimationState.chartReveal} only when every fired
|
|
2470
|
+
* chart-build step for the element carried index data; a renderer prefers
|
|
2471
|
+
* this over the progress-based `build`/`ElementBuildState` path when present,
|
|
2472
|
+
* since it reflects the real authored reveal set (correct even for a
|
|
2473
|
+
* reversed-order or gapped chart build), and falls back to `build` when
|
|
2474
|
+
* absent.
|
|
2475
|
+
*/
|
|
2476
|
+
interface ChartRevealDescriptor {
|
|
2477
|
+
/**
|
|
2478
|
+
* Whether the chart's background/axes/gridlines/legend should currently be
|
|
2479
|
+
* visible: always `true` when the chart's `animateBackground` is `false`
|
|
2480
|
+
* ("shown throughout"), otherwise `true` from the first revealed stage
|
|
2481
|
+
* onward.
|
|
2482
|
+
*/
|
|
2483
|
+
background: boolean;
|
|
2484
|
+
/** Whole series revealed by a `bldStep="series"` effect. */
|
|
2485
|
+
series: ReadonlySet<number>;
|
|
2486
|
+
/** Whole categories revealed by a `bldStep="category"` effect. */
|
|
2487
|
+
categories: ReadonlySet<number>;
|
|
2488
|
+
/** Individual cells revealed by a `bldStep="seriesEl"`/`"categoryEl"` effect. */
|
|
2489
|
+
points: readonly ChartRevealPoint[];
|
|
2490
|
+
}
|
|
2491
|
+
/**
|
|
2492
|
+
* Playback-time SmartArt diagram reveal state derived from AUTHORED
|
|
2493
|
+
* `p:graphicEl/p:dgm/@id` indices (see `diagram-reveal-descriptor`'s
|
|
2494
|
+
* `resolveDiagramRevealDescriptor`), rather than from click-count/time
|
|
2495
|
+
* progress. Present on {@link ElementAnimationState.diagramReveal} only when
|
|
2496
|
+
* every fired diagram-build step for the element carried `p:graphicEl` data.
|
|
2497
|
+
* A SmartArt renderer prefers this over the progress-based `build` /
|
|
2498
|
+
* {@link ElementBuildState} path when present, since it reflects the real
|
|
2499
|
+
* authored reveal set (correct even for a reversed-order or by-branch build),
|
|
2500
|
+
* and falls back to `build` when absent.
|
|
2501
|
+
*/
|
|
2502
|
+
interface DiagramRevealDescriptor {
|
|
2503
|
+
/**
|
|
2504
|
+
* Whether the diagram's background/connector chrome should currently be
|
|
2505
|
+
* visible: `true` once any node-revealing or background-revealing
|
|
2506
|
+
* (`bldStep="bg"`) step has fired.
|
|
2507
|
+
*/
|
|
2508
|
+
background: boolean;
|
|
2509
|
+
/** Data-model point ids (`PptxSmartArtNode.id`) revealed so far. */
|
|
2510
|
+
nodeIds: ReadonlySet<string>;
|
|
2511
|
+
}
|
|
2293
2512
|
/**
|
|
2294
2513
|
* Playback-time staged-build state surfaced on {@link ElementAnimationState}.
|
|
2295
2514
|
* `progress` is the 0..1 fraction of the build revealed at the current playback
|
|
@@ -2320,6 +2539,27 @@ interface ElementAnimationState {
|
|
|
2320
2539
|
* whole-element entrances, so existing renderers are unaffected.
|
|
2321
2540
|
*/
|
|
2322
2541
|
build?: ElementBuildState;
|
|
2542
|
+
/**
|
|
2543
|
+
* Authored-index chart reveal state (see {@link ChartRevealDescriptor}),
|
|
2544
|
+
* present only when every fired chart-build step for this element carried
|
|
2545
|
+
* `p:graphicEl` index data. A chart renderer prefers this over `build` when
|
|
2546
|
+
* present; `chart-build`'s `resolveRevealedChartData` picks between the two.
|
|
2547
|
+
*/
|
|
2548
|
+
chartReveal?: {
|
|
2549
|
+
mode: ChartBuildMode;
|
|
2550
|
+
descriptor: ChartRevealDescriptor;
|
|
2551
|
+
};
|
|
2552
|
+
/**
|
|
2553
|
+
* Authored-index SmartArt diagram reveal state (see
|
|
2554
|
+
* {@link DiagramRevealDescriptor}), present only when every fired
|
|
2555
|
+
* diagram-build step for this element carried `p:graphicEl` node-id data.
|
|
2556
|
+
* `diagram-build`'s `resolveRevealedSmartArtNodes` prefers this over `build`
|
|
2557
|
+
* when present.
|
|
2558
|
+
*/
|
|
2559
|
+
diagramReveal?: {
|
|
2560
|
+
mode: DiagramBuildMode;
|
|
2561
|
+
descriptor: DiagramRevealDescriptor;
|
|
2562
|
+
};
|
|
2323
2563
|
/**
|
|
2324
2564
|
* True when an active `p:animClr` color animation targets this shape's fill.
|
|
2325
2565
|
* A vector renderer should then paint the fill with `fill: inherit` so the
|
|
@@ -3423,6 +3663,26 @@ interface TabbedRunPiece {
|
|
|
3423
3663
|
leaderStyle?: RunStyle;
|
|
3424
3664
|
/** Leader glyphs sized to fill `leaderStyle`'s width. Present only alongside `leaderStyle`. */
|
|
3425
3665
|
leaderText?: string;
|
|
3666
|
+
/**
|
|
3667
|
+
* `a:rPr/@u="words"` per-word/gap sub-pieces of THIS tab piece's own text
|
|
3668
|
+
* (see `splitWordsForUnderline`), present only when the run's underline is
|
|
3669
|
+
* `words`. A tab-separated piece is otherwise rendered as a single span
|
|
3670
|
+
* (`text` + `style`), which underlines it continuously - correct for a
|
|
3671
|
+
* one-word piece, but wrong for a piece like `"Hello World"` between two tab
|
|
3672
|
+
* stops, which needs a gap under the space. A binding renders one SIBLING
|
|
3673
|
+
* span per entry IN PLACE OF the piece's single `text` span: each entry's
|
|
3674
|
+
* `style` is the piece's own `style` (the same inline-block layout and
|
|
3675
|
+
* advance-width correction, so the line measures exactly as before), with
|
|
3676
|
+
* the underline stripped on a gap entry. They must be siblings, not spans
|
|
3677
|
+
* nested inside the piece span: an ancestor's underline is drawn through
|
|
3678
|
+
* every inline descendant, so a nested gap could not lose it. `text`/`style`
|
|
3679
|
+
* stay the continuous-underline fallback for a binding that does not
|
|
3680
|
+
* render this field.
|
|
3681
|
+
*/
|
|
3682
|
+
words?: Array<{
|
|
3683
|
+
text: string;
|
|
3684
|
+
style: RunStyle;
|
|
3685
|
+
}>;
|
|
3426
3686
|
}
|
|
3427
3687
|
/** One `\n`-split line of a run's tabbed text. */
|
|
3428
3688
|
interface TabbedLineRun {
|
|
@@ -4469,7 +4729,7 @@ interface SlideTransitionAnimations {
|
|
|
4469
4729
|
* faithful Office 2010 (`p14`) keyframes, so both the classic and exotic / 3-D
|
|
4470
4730
|
* transitions animate wherever this single string is injected.
|
|
4471
4731
|
*/
|
|
4472
|
-
declare const SLIDE_TRANSITION_KEYFRAMES = "\n/* \u2500\u2500 Fade \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-fade-in {\n\tfrom { opacity: 0; }\n\tto { opacity: 1; }\n}\n@keyframes pptx-tr-fade-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; }\n}\n\n/* \u2500\u2500 Push \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-push-in-from-right {\n\tfrom { transform: translateX(100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-push-out-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-push-in-from-left {\n\tfrom { transform: translateX(-100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-push-out-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-push-in-from-bottom {\n\tfrom { transform: translateY(100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-push-out-to-top {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(-100%); }\n}\n@keyframes pptx-tr-push-in-from-top {\n\tfrom { transform: translateY(-100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-push-out-to-bottom {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(100%); }\n}\n\n/* \u2500\u2500 Cover (incoming slides over stationary outgoing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-cover-from-right {\n\tfrom { transform: translateX(100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-cover-from-left {\n\tfrom { transform: translateX(-100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-cover-from-bottom {\n\tfrom { transform: translateY(100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-cover-from-top {\n\tfrom { transform: translateY(-100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-cover-from-lu {\n\tfrom { transform: translate(-100%, -100%); }\n\tto { transform: translate(0, 0); }\n}\n@keyframes pptx-tr-cover-from-ld {\n\tfrom { transform: translate(-100%, 100%); }\n\tto { transform: translate(0, 0); }\n}\n@keyframes pptx-tr-cover-from-ru {\n\tfrom { transform: translate(100%, -100%); }\n\tto { transform: translate(0, 0); }\n}\n@keyframes pptx-tr-cover-from-rd {\n\tfrom { transform: translate(100%, 100%); }\n\tto { transform: translate(0, 0); }\n}\n\n/* \u2500\u2500 Uncover (outgoing slides away revealing stationary incoming) \u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-uncover-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-uncover-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-uncover-to-top {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(-100%); }\n}\n@keyframes pptx-tr-uncover-to-bottom {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(100%); }\n}\n@keyframes pptx-tr-uncover-to-lu {\n\tfrom { transform: translate(0, 0); }\n\tto { transform: translate(-100%, -100%); }\n}\n@keyframes pptx-tr-uncover-to-ld {\n\tfrom { transform: translate(0, 0); }\n\tto { transform: translate(-100%, 100%); }\n}\n@keyframes pptx-tr-uncover-to-ru {\n\tfrom { transform: translate(0, 0); }\n\tto { transform: translate(100%, -100%); }\n}\n@keyframes pptx-tr-uncover-to-rd {\n\tfrom { transform: translate(0, 0); }\n\tto { transform: translate(100%, 100%); }\n}\n\n/* \u2500\u2500 Split \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-split-h-out {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-split-v-out {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-split-h-in {\n\tfrom { clip-path: inset(0 0); }\n\tto { clip-path: inset(0 50%); }\n}\n@keyframes pptx-tr-split-v-in {\n\tfrom { clip-path: inset(0 0); }\n\tto { clip-path: inset(50% 0); }\n}\n\n/* \u2500\u2500 Dissolve \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-dissolve-in {\n\tfrom { opacity: 0; filter: blur(4px); }\n\tto { opacity: 1; filter: blur(0px); }\n}\n\n/* \u2500\u2500 Circle / Diamond / Plus (clip-path shapes) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-circle-in {\n\tfrom { clip-path: circle(0% at 50% 50%); }\n\tto { clip-path: circle(75% at 50% 50%); }\n}\n@keyframes pptx-tr-diamond-in {\n\tfrom { clip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%); }\n\tto { clip-path: polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%); }\n}\n@keyframes pptx-tr-plus-in {\n\tfrom {\n\t\tclip-path: polygon(\n\t\t\t50% 50%, 50% 50%, 50% 50%, 50% 50%,\n\t\t\t50% 50%, 50% 50%, 50% 50%, 50% 50%,\n\t\t\t50% 50%, 50% 50%, 50% 50%, 50% 50%\n\t\t);\n\t}\n\tto {\n\t\tclip-path: polygon(\n\t\t\t33% 0%, 66% 0%, 66% 33%, 100% 33%,\n\t\t\t100% 66%, 66% 66%, 66% 100%, 33% 100%,\n\t\t\t33% 66%, 0% 66%, 0% 33%, 33% 33%\n\t\t);\n\t}\n}\n\n/* \u2500\u2500 Wedge \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-wedge-in {\n\tfrom { clip-path: polygon(50% 0%, 50% 0%, 50% 0%); }\n\tto { clip-path: polygon(50% 0%, 100% 100%, 0% 100%); }\n}\n\n/* \u2500\u2500 Zoom \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-zoom-in {\n\tfrom { transform: scale(0); opacity: 0; }\n\tto { transform: scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-zoom-out {\n\tfrom { transform: scale(1); opacity: 1; }\n\tto { transform: scale(2); opacity: 0; }\n}\n\n/* \u2500\u2500 Blinds \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-blinds-h {\n\tfrom { clip-path: inset(0 0 100% 0); }\n\tto { clip-path: inset(0); }\n}\n@keyframes pptx-tr-blinds-v {\n\tfrom { clip-path: inset(0 100% 0 0); }\n\tto { clip-path: inset(0); }\n}\n\n/* \u2500\u2500 Checker (approximate with dissolve + contrast) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-checker-in {\n\tfrom { opacity: 0; filter: contrast(2) blur(2px); }\n\tto { opacity: 1; filter: contrast(1) blur(0); }\n}\n\n/* \u2500\u2500 Comb \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-comb-h {\n\tfrom { clip-path: inset(0 100% 0 0); }\n\tto { clip-path: inset(0); }\n}\n@keyframes pptx-tr-comb-v {\n\tfrom { clip-path: inset(100% 0 0 0); }\n\tto { clip-path: inset(0); }\n}\n\n/* \u2500\u2500 Strips (diagonal) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-strips-lu {\n\tfrom { clip-path: polygon(0% 0%, 0% 0%, 0% 0%); }\n\tto { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }\n}\n@keyframes pptx-tr-strips-ld {\n\tfrom { clip-path: polygon(0% 100%, 0% 100%, 0% 100%); }\n\tto { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }\n}\n@keyframes pptx-tr-strips-ru {\n\tfrom { clip-path: polygon(100% 0%, 100% 0%, 100% 0%); }\n\tto { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }\n}\n@keyframes pptx-tr-strips-rd {\n\tfrom { clip-path: polygon(100% 100%, 100% 100%, 100% 100%); }\n\tto { clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); }\n}\n\n/* \u2500\u2500 RandomBar \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-randombar-h {\n\tfrom { opacity: 0; clip-path: inset(0 0 100% 0); }\n\tto { opacity: 1; clip-path: inset(0); }\n}\n@keyframes pptx-tr-randombar-v {\n\tfrom { opacity: 0; clip-path: inset(0 100% 0 0); }\n\tto { opacity: 1; clip-path: inset(0); }\n}\n\n/* \u2500\u2500 Newsflash \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-newsflash-in {\n\tfrom { transform: rotate(720deg) scale(0); opacity: 0; }\n\tto { transform: rotate(0deg) scale(1); opacity: 1; }\n}\n\n/* \u2500\u2500 Wheel \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-wheel-in {\n\tfrom { clip-path: circle(0% at 50% 50%); transform: rotate(-180deg); }\n\tto { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }\n}\n\n\n/* \u2500\u2500 Wipe (soft mask reveal) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n/* PowerPoint feathers the wipe edge with a WIDE, smooth gradient - the fade\n * zone spans roughly a slide width in real renders, not a narrow band. The\n * incoming layer is masked with a 3x-oversized gradient (fade zone = one slide\n * width) whose position sweeps it across the slide; the band fully exits both\n * edges, so the start is fully hidden and the end fully opaque. */\n@keyframes pptx-tr-wipe-from-left {\n\tfrom {\n\t\t-webkit-mask-image: linear-gradient(to right, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 300% 100%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 100% 0;\n\t\tmask-image: linear-gradient(to right, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 300% 100%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 100% 0;\n\t}\n\tto {\n\t\t-webkit-mask-image: linear-gradient(to right, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 300% 100%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 0% 0;\n\t\tmask-image: linear-gradient(to right, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 300% 100%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 0% 0;\n\t}\n}\n@keyframes pptx-tr-wipe-from-right {\n\tfrom {\n\t\t-webkit-mask-image: linear-gradient(to left, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 300% 100%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 0% 0;\n\t\tmask-image: linear-gradient(to left, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 300% 100%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 0% 0;\n\t}\n\tto {\n\t\t-webkit-mask-image: linear-gradient(to left, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 300% 100%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 100% 0;\n\t\tmask-image: linear-gradient(to left, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 300% 100%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 100% 0;\n\t}\n}\n@keyframes pptx-tr-wipe-from-top {\n\tfrom {\n\t\t-webkit-mask-image: linear-gradient(to bottom, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 100% 300%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 0 100%;\n\t\tmask-image: linear-gradient(to bottom, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 100% 300%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 0 100%;\n\t}\n\tto {\n\t\t-webkit-mask-image: linear-gradient(to bottom, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 100% 300%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 0 0%;\n\t\tmask-image: linear-gradient(to bottom, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 100% 300%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 0 0%;\n\t}\n}\n@keyframes pptx-tr-wipe-from-bottom {\n\tfrom {\n\t\t-webkit-mask-image: linear-gradient(to top, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 100% 300%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 0 0%;\n\t\tmask-image: linear-gradient(to top, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 100% 300%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 0 0%;\n\t}\n\tto {\n\t\t-webkit-mask-image: linear-gradient(to top, #000 33.3%, transparent 66.7%);\n\t\t-webkit-mask-size: 100% 300%;\n\t\t-webkit-mask-repeat: no-repeat;\n\t\t-webkit-mask-position: 0 100%;\n\t\tmask-image: linear-gradient(to top, #000 33.3%, transparent 66.7%);\n\t\tmask-size: 100% 300%;\n\t\tmask-repeat: no-repeat;\n\t\tmask-position: 0 100%;\n\t}\n}\n\n\n/* \u2500\u2500 Conveyor (translate X with staggered timing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-conveyor-in-from-right {\n\tfrom { transform: translateX(100%) rotateY(-30deg); }\n\t60% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-left {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(-100%) rotateY(30deg); }\n}\n@keyframes pptx-tr-conveyor-in-from-left {\n\tfrom { transform: translateX(-100%) rotateY(30deg); }\n\t60% { transform: translateX(-20%) rotateY(10deg); }\n\tto { transform: translateX(0) rotateY(0deg); }\n}\n@keyframes pptx-tr-conveyor-out-to-right {\n\tfrom { transform: translateX(0) rotateY(0deg); }\n\t40% { transform: translateX(20%) rotateY(-10deg); }\n\tto { transform: translateX(100%) rotateY(-30deg); }\n}\n\n/* \u2500\u2500 Doors (clip-path from center split) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-doors-horz {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-doors-vert {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n\n/* \u2500\u2500 Ferris (rotate elements around center) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-ferris-in-from-right {\n\tfrom { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-left {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n}\n@keyframes pptx-tr-ferris-in-from-left {\n\tfrom { transform: translateX(-80%) rotate(-45deg) scale(0.6); opacity: 0; }\n\tto { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-ferris-out-to-right {\n\tfrom { transform: translateX(0) rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: translateX(80%) rotate(45deg) scale(0.6); opacity: 0; }\n}\n\n/* \u2500\u2500 Flash (bright flash opacity burst) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-flash-white {\n\t0% { opacity: 1; }\n\t30% { opacity: 0; }\n\t50% { opacity: 0; }\n\t100% { opacity: 1; }\n}\n@keyframes pptx-tr-flash-in {\n\t0% { opacity: 0; }\n\t50% { opacity: 0; }\n\t70% { opacity: 1; }\n\t100% { opacity: 1; }\n}\n\n/* \u2500\u2500 Flythrough (scale + translate Z-axis feel) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-flythrough-in {\n\tfrom { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n}\n@keyframes pptx-tr-flythrough-reverse-in {\n\tfrom { transform: scale(0.1) translateZ(-200px); opacity: 0; filter: blur(8px); }\n\tto { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-flythrough-reverse-out {\n\tfrom { transform: scale(1) translateZ(0); opacity: 1; filter: blur(0); }\n\tto { transform: scale(4) translateZ(200px); opacity: 0; filter: blur(8px); }\n}\n\n/* \u2500\u2500 Gallery (translate with perspective) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-gallery-in-from-right {\n\tfrom { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-left {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n}\n@keyframes pptx-tr-gallery-in-from-left {\n\tfrom { transform: perspective(800px) translateX(-100%) rotateY(45deg); opacity: 0.5; }\n\tto { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-gallery-out-to-right {\n\tfrom { transform: perspective(800px) translateX(0) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) translateX(100%) rotateY(-45deg); opacity: 0.5; }\n}\n\n/* \u2500\u2500 Glitter (particle dissolve effect) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-glitter-in {\n\tfrom { opacity: 0; filter: brightness(1.5) contrast(1.3) blur(2px); }\n\t60% { opacity: 0.7; filter: brightness(1.2) contrast(1.1) blur(1px); }\n\tto { opacity: 1; filter: brightness(1) contrast(1) blur(0); }\n}\n\n/* \u2500\u2500 Honeycomb (hexagonal reveal) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-honeycomb-in {\n\tfrom {\n\t\tclip-path: polygon(50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%, 50% 50%);\n\t\topacity: 0;\n\t}\n\tto {\n\t\tclip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);\n\t\topacity: 1;\n\t}\n}\n@keyframes pptx-tr-honeycomb-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* \u2500\u2500 Pan (large-scale translate) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-pan-from-right {\n\tfrom { transform: translateX(100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-pan-from-left {\n\tfrom { transform: translateX(-100%); }\n\tto { transform: translateX(0); }\n}\n@keyframes pptx-tr-pan-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-pan-from-bottom {\n\tfrom { transform: translateY(100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-top {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(-100%); }\n}\n@keyframes pptx-tr-pan-from-top {\n\tfrom { transform: translateY(-100%); }\n\tto { transform: translateY(0); }\n}\n@keyframes pptx-tr-pan-to-bottom {\n\tfrom { transform: translateY(0); }\n\tto { transform: translateY(100%); }\n}\n\n\n/* \u2500\u2500 Prism (3D rotation via perspective transform) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-prism-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(90deg) translateX(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg) translateX(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-90deg) translateX(50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-bottom {\n\tfrom { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-top {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n}\n@keyframes pptx-tr-prism-in-from-top {\n\tfrom { transform: perspective(800px) rotateX(-90deg) translateY(-50%); opacity: 0; }\n\tto { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n}\n@keyframes pptx-tr-prism-out-to-bottom {\n\tfrom { transform: perspective(800px) rotateX(0deg) translateY(0); opacity: 1; }\n\tto { transform: perspective(800px) rotateX(90deg) translateY(50%); opacity: 0; }\n}\n\n/* \u2500\u2500 Reveal (slide away reveal) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-reveal-out-to-right {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(100%); }\n}\n@keyframes pptx-tr-reveal-out-to-left {\n\tfrom { transform: translateX(0); }\n\tto { transform: translateX(-100%); }\n}\n@keyframes pptx-tr-reveal-in {\n\tfrom { opacity: 0.5; }\n\tto { opacity: 1; }\n}\n\n/* \u2500\u2500 Ripple (expanding ring clip-path) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-ripple-in {\n\tfrom { clip-path: circle(0% at 50% 50%); opacity: 0.5; }\n\t30% { clip-path: circle(20% at 50% 50%); opacity: 0.7; }\n\t60% { clip-path: circle(50% at 50% 50%); opacity: 0.9; }\n\tto { clip-path: circle(75% at 50% 50%); opacity: 1; }\n}\n\n/* \u2500\u2500 Shred (fragmented clip-path pieces) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-shred-strips-in {\n\tfrom { clip-path: inset(0 100% 0 0); opacity: 0; }\n\t30% { clip-path: inset(0 60% 0 0); opacity: 0.5; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-rectangles-in {\n\tfrom { clip-path: inset(50%); opacity: 0; }\n\t40% { clip-path: inset(20%); opacity: 0.6; }\n\tto { clip-path: inset(0); opacity: 1; }\n}\n@keyframes pptx-tr-shred-out {\n\tfrom { opacity: 1; }\n\tto { opacity: 0; filter: blur(2px); }\n}\n\n/* \u2500\u2500 Switch (flip/rotate swap) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-switch-in-from-right {\n\tfrom { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-left {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n}\n@keyframes pptx-tr-switch-in-from-left {\n\tfrom { transform: perspective(800px) rotateY(180deg); opacity: 0; }\n\tto { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-switch-out-to-right {\n\tfrom { transform: perspective(800px) rotateY(0deg); opacity: 1; }\n\tto { transform: perspective(800px) rotateY(-180deg); opacity: 0; }\n}\n\n/* \u2500\u2500 Vortex (rotate + scale spiral) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-vortex-in {\n\tfrom { transform: rotate(720deg) scale(0); opacity: 0; }\n\tto { transform: rotate(0deg) scale(1); opacity: 1; }\n}\n@keyframes pptx-tr-vortex-out {\n\tfrom { transform: rotate(0deg) scale(1); opacity: 1; }\n\tto { transform: rotate(-720deg) scale(0); opacity: 0; }\n}\n\n/* \u2500\u2500 Warp (skew distortion) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-warp-in {\n\tfrom { transform: scale(0.3) skewX(30deg) skewY(15deg); opacity: 0; }\n\t50% { transform: scale(0.8) skewX(-5deg) skewY(-3deg); opacity: 0.7; }\n\tto { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; }\n}\n@keyframes pptx-tr-warp-out {\n\tfrom { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; }\n\t50% { transform: scale(0.8) skewX(5deg) skewY(3deg); opacity: 0.7; }\n\tto { transform: scale(0.3) skewX(-30deg) skewY(-15deg); opacity: 0; }\n}\n@keyframes pptx-tr-warp-reverse-in {\n\tfrom { transform: scale(3) skewX(-20deg) skewY(-10deg); opacity: 0; filter: blur(4px); }\n\tto { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; filter: blur(0); }\n}\n@keyframes pptx-tr-warp-reverse-out {\n\tfrom { transform: scale(1) skewX(0deg) skewY(0deg); opacity: 1; filter: blur(0); }\n\tto { transform: scale(3) skewX(20deg) skewY(10deg); opacity: 0; filter: blur(4px); }\n}\n\n/* \u2500\u2500 WheelReverse (reverse wheel rotation) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-wheel-reverse-in {\n\tfrom { clip-path: circle(0% at 50% 50%); transform: rotate(180deg); }\n\tto { clip-path: circle(75% at 50% 50%); transform: rotate(0deg); }\n}\n\n/* \u2500\u2500 Window (scale from center with border) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-window-horz {\n\tfrom { clip-path: inset(0 50%); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-vert {\n\tfrom { clip-path: inset(50% 0); }\n\tto { clip-path: inset(0 0); }\n}\n@keyframes pptx-tr-window-out {\n\tfrom { opacity: 1; transform: scale(1); }\n\tto { opacity: 0; transform: scale(0.9); }\n}\n\n\n/* \u2500\u2500 Cube (rotate off one edge onto the next face) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-cube-out-left { from { transform: perspective(1400px) translateX(0) rotateY(0deg); } to { transform: perspective(1400px) translateX(-50%) rotateY(-90deg); opacity: .5; } }\n@keyframes pptx-tr-cube-in-left { from { transform: perspective(1400px) translateX(50%) rotateY(90deg); opacity: .5; } to { transform: perspective(1400px) translateX(0) rotateY(0deg); opacity: 1; } }\n@keyframes pptx-tr-cube-out-right { from { transform: perspective(1400px) translateX(0) rotateY(0deg); } to { transform: perspective(1400px) translateX(50%) rotateY(90deg); opacity: .5; } }\n@keyframes pptx-tr-cube-in-right { from { transform: perspective(1400px) translateX(-50%) rotateY(-90deg); opacity: .5; } to { transform: perspective(1400px) translateX(0) rotateY(0deg); opacity: 1; } }\n@keyframes pptx-tr-cube-out-up { from { transform: perspective(1400px) translateY(0) rotateX(0deg); } to { transform: perspective(1400px) translateY(-50%) rotateX(90deg); opacity: .5; } }\n@keyframes pptx-tr-cube-in-up { from { transform: perspective(1400px) translateY(50%) rotateX(-90deg); opacity: .5; } to { transform: perspective(1400px) translateY(0) rotateX(0deg); opacity: 1; } }\n@keyframes pptx-tr-cube-out-down { from { transform: perspective(1400px) translateY(0) rotateX(0deg); } to { transform: perspective(1400px) translateY(50%) rotateX(-90deg); opacity: .5; } }\n@keyframes pptx-tr-cube-in-down { from { transform: perspective(1400px) translateY(-50%) rotateX(90deg); opacity: .5; } to { transform: perspective(1400px) translateY(0) rotateX(0deg); opacity: 1; } }\n\n/* \u2500\u2500 Orbit (swing the faces through depth) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-orbit-out-left { from { transform: perspective(1600px) translateZ(0) rotateY(0deg); opacity: 1; } to { transform: perspective(1600px) translateZ(-700px) rotateY(-105deg); opacity: 0; } }\n@keyframes pptx-tr-orbit-in-left { from { transform: perspective(1600px) translateZ(-700px) rotateY(105deg); opacity: 0; } to { transform: perspective(1600px) translateZ(0) rotateY(0deg); opacity: 1; } }\n@keyframes pptx-tr-orbit-out-right { from { transform: perspective(1600px) translateZ(0) rotateY(0deg); opacity: 1; } to { transform: perspective(1600px) translateZ(-700px) rotateY(105deg); opacity: 0; } }\n@keyframes pptx-tr-orbit-in-right { from { transform: perspective(1600px) translateZ(-700px) rotateY(-105deg); opacity: 0; } to { transform: perspective(1600px) translateZ(0) rotateY(0deg); opacity: 1; } }\n@keyframes pptx-tr-orbit-out-up { from { transform: perspective(1600px) translateZ(0) rotateX(0deg); opacity: 1; } to { transform: perspective(1600px) translateZ(-700px) rotateX(105deg); opacity: 0; } }\n@keyframes pptx-tr-orbit-in-up { from { transform: perspective(1600px) translateZ(-700px) rotateX(-105deg); opacity: 0; } to { transform: perspective(1600px) translateZ(0) rotateX(0deg); opacity: 1; } }\n@keyframes pptx-tr-orbit-out-down { from { transform: perspective(1600px) translateZ(0) rotateX(0deg); opacity: 1; } to { transform: perspective(1600px) translateZ(-700px) rotateX(-105deg); opacity: 0; } }\n@keyframes pptx-tr-orbit-in-down { from { transform: perspective(1600px) translateZ(-700px) rotateX(105deg); opacity: 0; } to { transform: perspective(1600px) translateZ(0) rotateX(0deg); opacity: 1; } }\n\n/* \u2500\u2500 Flip (card flip; opacity hides the back face) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-flip-out-left { from { transform: perspective(1400px) rotateY(0deg); opacity: 1; } to { transform: perspective(1400px) rotateY(90deg); opacity: 0; } }\n@keyframes pptx-tr-flip-in-left { from { transform: perspective(1400px) rotateY(-90deg); opacity: 0; } to { transform: perspective(1400px) rotateY(0deg); opacity: 1; } }\n@keyframes pptx-tr-flip-out-right { from { transform: perspective(1400px) rotateY(0deg); opacity: 1; } to { transform: perspective(1400px) rotateY(-90deg); opacity: 0; } }\n@keyframes pptx-tr-flip-in-right { from { transform: perspective(1400px) rotateY(90deg); opacity: 0; } to { transform: perspective(1400px) rotateY(0deg); opacity: 1; } }\n@keyframes pptx-tr-flip-out-up { from { transform: perspective(1400px) rotateX(0deg); opacity: 1; } to { transform: perspective(1400px) rotateX(-90deg); opacity: 0; } }\n@keyframes pptx-tr-flip-in-up { from { transform: perspective(1400px) rotateX(90deg); opacity: 0; } to { transform: perspective(1400px) rotateX(0deg); opacity: 1; } }\n@keyframes pptx-tr-flip-out-down { from { transform: perspective(1400px) rotateX(0deg); opacity: 1; } to { transform: perspective(1400px) rotateX(90deg); opacity: 0; } }\n@keyframes pptx-tr-flip-in-down { from { transform: perspective(1400px) rotateX(-90deg); opacity: 0; } to { transform: perspective(1400px) rotateX(0deg); opacity: 1; } }\n\n/* \u2500\u2500 Rotate (in-plane spin + zoom) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-rotate-out-cw { from { transform: rotate(0deg) scale(1); opacity: 1; } to { transform: rotate(90deg) scale(.4); opacity: 0; } }\n@keyframes pptx-tr-rotate-in-cw { from { transform: rotate(-90deg) scale(.4); opacity: 0; } to { transform: rotate(0deg) scale(1); opacity: 1; } }\n@keyframes pptx-tr-rotate-out-ccw { from { transform: rotate(0deg) scale(1); opacity: 1; } to { transform: rotate(-90deg) scale(.4); opacity: 0; } }\n@keyframes pptx-tr-rotate-in-ccw { from { transform: rotate(90deg) scale(.4); opacity: 0; } to { transform: rotate(0deg) scale(1); opacity: 1; } }\n\n/* \u2500\u2500 Fall Over (incoming board topples down over outgoing) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-fallover-out { from { transform: translateZ(0); opacity: 1; } to { transform: perspective(1400px) rotateX(5deg) scale(.94); opacity: .25; } }\n@keyframes pptx-tr-fallover-in { 0% { transform: perspective(1400px) rotateX(-100deg); transform-origin: top center; opacity: .4; } 70% { transform: perspective(1400px) rotateX(8deg); transform-origin: top center; opacity: 1; } 100% { transform: perspective(1400px) rotateX(0deg); transform-origin: top center; opacity: 1; } }\n\n/* \u2500\u2500 Drape (fabric draping down into place) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-drape-in { from { transform: perspective(1600px) rotateX(-55deg) scale(1.15); transform-origin: top center; opacity: 0; } to { transform: perspective(1600px) rotateX(0deg) scale(1); transform-origin: top center; opacity: 1; } }\n\n/* \u2500\u2500 Curtains (outgoing lifts to reveal incoming) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-curtains-out { from { transform: scaleY(1); transform-origin: top center; opacity: 1; } to { transform: scaleY(0); transform-origin: top center; opacity: .3; } }\n\n/* \u2500\u2500 Wind (outgoing blows away with skew + blur) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-wind-out-left { from { transform: translateX(0) skewX(0deg); opacity: 1; filter: blur(0); } to { transform: translateX(-120%) skewX(25deg); opacity: 0; filter: blur(6px); } }\n@keyframes pptx-tr-wind-out-right { from { transform: translateX(0) skewX(0deg); opacity: 1; filter: blur(0); } to { transform: translateX(120%) skewX(-25deg); opacity: 0; filter: blur(6px); } }\n\n/* \u2500\u2500 Prestige (magic vanish then reappear) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-prestige-out { from { transform: scale(1) rotate(0deg); opacity: 1; filter: blur(0); } to { transform: scale(1.4) rotate(6deg); opacity: 0; filter: blur(8px); } }\n@keyframes pptx-tr-prestige-in { from { transform: scale(.6) rotate(-6deg); opacity: 0; filter: blur(8px); } to { transform: scale(1) rotate(0deg); opacity: 1; filter: blur(0); } }\n\n/* \u2500\u2500 Fracture (shatter into contrast + blur) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-fracture-out { 0% { transform: scale(1); opacity: 1; filter: contrast(1) blur(0); } 55% { transform: scale(1.04) rotate(1deg); opacity: 1; filter: contrast(1.7) brightness(1.15); } 100% { transform: scale(1.15) rotate(-2deg); opacity: 0; filter: contrast(2.2) blur(4px); } }\n\n/* \u2500\u2500 Crush (squash flat, then new slide expands) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-crush-out { from { transform: scaleY(1); transform-origin: bottom; opacity: 1; } to { transform: scaleY(0); transform-origin: bottom; opacity: .2; } }\n@keyframes pptx-tr-crush-in { from { transform: scaleY(0); transform-origin: bottom; opacity: .2; } to { transform: scaleY(1); transform-origin: bottom; opacity: 1; } }\n\n/* \u2500\u2500 Peel Off (peel away from a corner) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-peeloff-out { from { transform: perspective(1400px) rotate3d(1, 1, 0, 0deg); transform-origin: top right; opacity: 1; } to { transform: perspective(1400px) rotate3d(1, 1, 0, 110deg); transform-origin: top right; opacity: .15; } }\n\n/* \u2500\u2500 Page Curl (curl off the right edge; double curls new in) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-pagecurl-out { from { transform: perspective(1600px) rotateY(0deg); transform-origin: right center; opacity: 1; } to { transform: perspective(1600px) rotateY(-155deg); transform-origin: right center; opacity: .25; } }\n@keyframes pptx-tr-pagecurl-double-in { from { transform: perspective(1600px) rotateY(155deg); transform-origin: left center; opacity: .25; } to { transform: perspective(1600px) rotateY(0deg); transform-origin: left center; opacity: 1; } }\n\n/* \u2500\u2500 Airplane (fly off like a paper plane) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 */\n@keyframes pptx-tr-airplane-out { 0% { transform: perspective(1200px) translate3d(0, 0, 0) rotate3d(1, -1, 0, 0deg) scale(1); opacity: 1; } 40% { transform: perspective(1200px) translate3d(10%, -10%, 0) rotate3d(1, -1, 0, 25deg) scale(.85); opacity: 1; } 100% { transform: perspective(1200px) translate3d(150%, -70%, 0) rotate3d(1, -1, 1, 70deg) scale(.05); opacity: 0; } }\n\n/* \u2500\u2500 Origami (fold the sheet over its top edge; the next unfolds up) \u2500\u2500\n The old single-phase rotateY + scaleX compressed the outgoing slide into a\n narrow vertical sliver for most of the (3+ second) duration, which read as\n \"just a grey line\" instead of paper folding (issue #132). The fold is now\n hinged like a real sheet: the outgoing slide creases over its TOP edge,\n dims as it tips through edge-on, and tumbles away shrinking; the incoming\n slide lies folded at its BOTTOM edge and rises into place. The edge-on\n moment is brief and already mid-fade, so no line artifact survives. */\n@keyframes pptx-tr-origami-out { 0% { transform: perspective(1400px) rotateX(0deg) translateY(0) scale(1); transform-origin: top center; opacity: 1; filter: brightness(1); } 45% { transform: perspective(1400px) rotateX(-52deg) translateY(2%) scale(.96); transform-origin: top center; opacity: 1; filter: brightness(.82); } 70% { transform: perspective(1400px) rotateX(-84deg) translateY(8%) scale(.88); transform-origin: top center; opacity: .8; filter: brightness(.68); } 100% { transform: perspective(1400px) rotateX(-125deg) translateY(30%) scale(.68); transform-origin: top center; opacity: 0; filter: brightness(.55); } }\n@keyframes pptx-tr-origami-in { 0% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: 0; filter: brightness(.7); } 30% { transform: perspective(1400px) rotateX(62deg) scale(.94); transform-origin: bottom center; opacity: .65; filter: brightness(.75); } 100% { transform: perspective(1400px) rotateX(0deg) scale(1); transform-origin: bottom center; opacity: 1; filter: brightness(1); } }\n";
|
|
4732
|
+
declare const SLIDE_TRANSITION_KEYFRAMES: string;
|
|
4473
4733
|
|
|
4474
4734
|
/**
|
|
4475
4735
|
* `slide-transition-css` — pure mapping from a {@link PptxSlideTransition}
|
|
@@ -4860,7 +5120,7 @@ interface DrawingViewBox {
|
|
|
4860
5120
|
height: number;
|
|
4861
5121
|
}
|
|
4862
5122
|
/** Compute the SVG viewBox that fits all drawing shapes, rebasing to (0, 0). */
|
|
4863
|
-
declare function computeDrawingViewBox(shapes: PptxSmartArtDrawingShape[]): DrawingViewBox;
|
|
5123
|
+
declare function computeDrawingViewBox(shapes: readonly PptxSmartArtDrawingShape[]): DrawingViewBox;
|
|
4864
5124
|
/**
|
|
4865
5125
|
* Project raw `PptxSmartArtDrawingShape`s into `RenderedShape` view-models,
|
|
4866
5126
|
* rebasing positions relative to the viewBox origin.
|
|
@@ -4965,7 +5225,15 @@ declare function isUnderline(el: PptxElement): boolean;
|
|
|
4965
5225
|
*/
|
|
4966
5226
|
interface ShapeStyleChanges {
|
|
4967
5227
|
fillColor?: string;
|
|
5228
|
+
/**
|
|
5229
|
+
* Set alongside `fillColor` when the colour came from a theme swatch (wins
|
|
5230
|
+
* on save); pass `undefined` explicitly when clearing a previously-stored
|
|
5231
|
+
* ref (a custom hex or recent-colour pick has no theme identity).
|
|
5232
|
+
*/
|
|
5233
|
+
fillColorRef?: PptxThemeColorRef;
|
|
4968
5234
|
strokeColor?: string;
|
|
5235
|
+
/** Same contract as {@link fillColorRef}, for the stroke colour. */
|
|
5236
|
+
strokeColorRef?: PptxThemeColorRef;
|
|
4969
5237
|
}
|
|
4970
5238
|
/**
|
|
4971
5239
|
* Builds a Partial<PptxElement> patch that merges the given changes into the
|
|
@@ -4978,6 +5246,8 @@ declare function shapeStylePatch(el: PptxElement, changes: ShapeStyleChanges): P
|
|
|
4978
5246
|
*/
|
|
4979
5247
|
interface TextStyleChanges {
|
|
4980
5248
|
color?: string;
|
|
5249
|
+
/** Same contract as {@link ShapeStyleChanges.fillColorRef}, for the text colour. */
|
|
5250
|
+
colorRef?: PptxThemeColorRef;
|
|
4981
5251
|
fontSize?: number;
|
|
4982
5252
|
bold?: boolean;
|
|
4983
5253
|
italic?: boolean;
|
|
@@ -6374,6 +6644,13 @@ interface GradientStop$1 {
|
|
|
6374
6644
|
color: string;
|
|
6375
6645
|
position: number;
|
|
6376
6646
|
opacity?: number;
|
|
6647
|
+
/**
|
|
6648
|
+
* Theme colour identity for this stop, mirroring
|
|
6649
|
+
* `ShapeStyle.fillColorRef`. Set by a theme-swatch pick so the stop keeps
|
|
6650
|
+
* following the theme after a later theme change; cleared by a custom hex
|
|
6651
|
+
* pick, which has no theme identity.
|
|
6652
|
+
*/
|
|
6653
|
+
colorRef?: PptxThemeColorRef;
|
|
6377
6654
|
}
|
|
6378
6655
|
/** The editable gradient state surfaced to the component. */
|
|
6379
6656
|
interface GradientState {
|
|
@@ -6565,6 +6842,22 @@ interface MediaFallbackVisual {
|
|
|
6565
6842
|
placeholder: MediaFallbackPlaceholder;
|
|
6566
6843
|
}
|
|
6567
6844
|
|
|
6845
|
+
/**
|
|
6846
|
+
* Trim-timeline geometry math for the trim-editing UI, shared by every
|
|
6847
|
+
* binding's trim scrubber (React `TrimTimeline`, Vue `MediaTrimTimeline.vue`,
|
|
6848
|
+
* Angular `media-trim-timeline.component.ts`, Svelte, vanilla).
|
|
6849
|
+
*
|
|
6850
|
+
* `trimEndMs` throughout this module is `p14:trim/@end`'s own on-the-wire
|
|
6851
|
+
* unit: the distance, in milliseconds, from the END of the clip, NOT an
|
|
6852
|
+
* absolute stop time. COM-verified ground truth (see
|
|
6853
|
+
* `PptxHandlerRuntimeMediaParsingUtils.ts`'s `MediaExtensionData` doc):
|
|
6854
|
+
* setting `Shape.MediaFormat.EndPoint = 29596` on a 30034ms clip round-trips
|
|
6855
|
+
* through real PowerPoint as `p14:trim end="438"` (30034 - 29596). Every
|
|
6856
|
+
* function here converts to/from an absolute position internally using the
|
|
6857
|
+
* caller-supplied `durationSeconds`, so a caller can keep storing and
|
|
6858
|
+
* round-tripping the raw distance-from-end value without doing that maths
|
|
6859
|
+
* itself.
|
|
6860
|
+
*/
|
|
6568
6861
|
type MediaTrimHandle = 'start' | 'end';
|
|
6569
6862
|
interface MediaTimelineGeometry {
|
|
6570
6863
|
startPercent: number;
|
|
@@ -6573,6 +6866,7 @@ interface MediaTimelineGeometry {
|
|
|
6573
6866
|
}
|
|
6574
6867
|
interface MediaTrimRange {
|
|
6575
6868
|
trimStartMs: number;
|
|
6869
|
+
/** Distance, in ms, from the clip's END. See module doc. */
|
|
6576
6870
|
trimEndMs: number;
|
|
6577
6871
|
}
|
|
6578
6872
|
|
|
@@ -6690,6 +6984,54 @@ interface FontEmbeddingDescriptor {
|
|
|
6690
6984
|
disabledReasonKey?: string;
|
|
6691
6985
|
}
|
|
6692
6986
|
|
|
6987
|
+
/**
|
|
6988
|
+
* Pure decision helpers a colour-picker UI uses on top of the theme swatch
|
|
6989
|
+
* grid ({@link buildThemeColorSwatchGrid}): which swatch (if any) matches the
|
|
6990
|
+
* element's current colour, and what a click / a custom pick should write
|
|
6991
|
+
* back to the model.
|
|
6992
|
+
*
|
|
6993
|
+
* Every binding (React, Vue, Angular, Svelte, Vanilla) shares this module so
|
|
6994
|
+
* "click a theme swatch" and "type a custom hex" behave identically
|
|
6995
|
+
* everywhere: a theme swatch commits both the resolved hex (so rendering
|
|
6996
|
+
* keeps working even where the ref cannot be resolved) and the
|
|
6997
|
+
* {@link PptxThemeColorRef} (so the colour survives a later theme swap); a
|
|
6998
|
+
* custom hex or a recent-colour pick always clears the ref, since a plain
|
|
6999
|
+
* sRGB value has no theme identity for PowerPoint to reapply.
|
|
7000
|
+
*
|
|
7001
|
+
* @module render/theme-color-picker-state
|
|
7002
|
+
*/
|
|
7003
|
+
|
|
7004
|
+
/** What a picker should write back to the model on a commit. */
|
|
7005
|
+
interface ThemeColorPickerCommit {
|
|
7006
|
+
/** Resolved `#rrggbb`, always set so rendering keeps working. */
|
|
7007
|
+
readonly hex: string;
|
|
7008
|
+
/** The theme ref to store, or `undefined` to clear a previously-stored ref. */
|
|
7009
|
+
readonly ref: PptxThemeColorRef | undefined;
|
|
7010
|
+
}
|
|
7011
|
+
|
|
7012
|
+
/**
|
|
7013
|
+
* The exact model field pair each colour-picker surface writes on a commit
|
|
7014
|
+
* ({@link ThemeColorPickerCommit}), named once so five bindings cannot each
|
|
7015
|
+
* spell `backgroundColorRef` / `colorRef` differently (or forget the ref
|
|
7016
|
+
* field entirely, which is how a swatch pick silently degraded to a plain
|
|
7017
|
+
* hex in the ribbon Shape Fill/Outline pickers before this module existed).
|
|
7018
|
+
*
|
|
7019
|
+
* Every helper here is a trivial field rename: the interesting decision
|
|
7020
|
+
* logic (which swatch is selected, what a click vs. a custom hex commits)
|
|
7021
|
+
* already lives in {@link ../render/theme-color-picker-state}. This module
|
|
7022
|
+
* only exists so that decision's OUTPUT lands on the right property names
|
|
7023
|
+
* for each surface (gradient stop, table cell fill, table cell text).
|
|
7024
|
+
*
|
|
7025
|
+
* @module render/theme-color-field-commit
|
|
7026
|
+
*/
|
|
7027
|
+
|
|
7028
|
+
/**
|
|
7029
|
+
* The `color` / `colorRef` patch a gradient stop editor writes for one stop,
|
|
7030
|
+
* in any binding. Pass to `updateGradientStopPatch(el, index, ...)` or merge
|
|
7031
|
+
* directly into the stop object a binding's own gradient state holds.
|
|
7032
|
+
*/
|
|
7033
|
+
declare function gradientStopColorCommitPatch(commit: ThemeColorPickerCommit): Pick<GradientStop$1, 'color' | 'colorRef'>;
|
|
7034
|
+
|
|
6693
7035
|
/**
|
|
6694
7036
|
* Command-search data for the PowerPoint-style "Tell me what you want to do"
|
|
6695
7037
|
* search bar. Provides searchable command entries grouped by category, each
|
|
@@ -7612,9 +7954,20 @@ interface OleIconShape {
|
|
|
7612
7954
|
*/
|
|
7613
7955
|
declare function registerCrossSlideAudio(element: MediaPptxElement, src: string | undefined): boolean;
|
|
7614
7956
|
|
|
7615
|
-
/**
|
|
7616
|
-
|
|
7617
|
-
|
|
7957
|
+
/**
|
|
7958
|
+
* Grouping needs an editable deck, at least two selected elements, and (when
|
|
7959
|
+
* the caller can supply it) none of those elements locked against grouping.
|
|
7960
|
+
*
|
|
7961
|
+
* `selectionGroupable` defaults to `true` so callers that only know the
|
|
7962
|
+
* selection count (not yet the elements themselves) keep their previous
|
|
7963
|
+
* behaviour; a caller that HAS the selected elements should pass
|
|
7964
|
+
* `selectedElements.every((el) => canInteractWithElement(el, 'group'))`.
|
|
7965
|
+
*/
|
|
7966
|
+
declare function canGroupSelection(canEdit: boolean, selectedCount: number, selectionGroupable?: boolean): boolean;
|
|
7967
|
+
/**
|
|
7968
|
+
* Ungrouping needs an editable deck, a selection that IS a group, and that
|
|
7969
|
+
* group's own `a:grpSpLocks/@noGrp` allowing it.
|
|
7970
|
+
*/
|
|
7618
7971
|
declare function canUngroupSelection(canEdit: boolean, element: PptxElement | null): boolean;
|
|
7619
7972
|
/** An outline width only exists on an element that carries shape properties. */
|
|
7620
7973
|
declare function canSetStrokeWidth(canEdit: boolean, element: PptxElement | null): boolean;
|
|
@@ -10366,6 +10719,8 @@ declare class ViewerCanvasEditingService {
|
|
|
10366
10719
|
id: string;
|
|
10367
10720
|
text: string;
|
|
10368
10721
|
height?: number;
|
|
10722
|
+
autoFitFontScale?: number;
|
|
10723
|
+
autoFitLineSpacingReduction?: number;
|
|
10369
10724
|
}): void;
|
|
10370
10725
|
/** Receive a completed ink stroke and append it to the active slide. */
|
|
10371
10726
|
onInkStrokeComplete(ink: InkPptxElement): void;
|
|
@@ -13723,6 +14078,8 @@ declare class SlideCanvasComponent implements SlideContext {
|
|
|
13723
14078
|
id: string;
|
|
13724
14079
|
text: string;
|
|
13725
14080
|
height?: number;
|
|
14081
|
+
autoFitFontScale?: number;
|
|
14082
|
+
autoFitLineSpacingReduction?: number;
|
|
13726
14083
|
}>;
|
|
13727
14084
|
/**
|
|
13728
14085
|
* Emitted on EVERY keystroke while inline-editing. The commit path stays the
|
|
@@ -14083,6 +14440,10 @@ interface TextRun {
|
|
|
14083
14440
|
href?: string;
|
|
14084
14441
|
/** Hyperlink tooltip / title text. */
|
|
14085
14442
|
tooltip?: string;
|
|
14443
|
+
/** `<a target>`, from `a:hlinkClick/@tgtFrame` when authored, else `_blank`. */
|
|
14444
|
+
target?: string;
|
|
14445
|
+
/** `<a rel>` paired with {@link target}. */
|
|
14446
|
+
rel?: string;
|
|
14086
14447
|
/** Parsed OMML for an inline equation run (rendered as MathML). */
|
|
14087
14448
|
equationXml?: Record<string, unknown>;
|
|
14088
14449
|
/** Optional equation number for numbered equations. */
|
|
@@ -14105,6 +14466,13 @@ interface TextRun {
|
|
|
14105
14466
|
* alignment and leader glyphs a plain CSS `tab-size` cannot express.
|
|
14106
14467
|
*/
|
|
14107
14468
|
tabLines?: TabbedLineRun[];
|
|
14469
|
+
/**
|
|
14470
|
+
* `a:rPr/@u="words"` word/gap pieces of a RUBY run's base text (same shape
|
|
14471
|
+
* as `scriptRuns`, rendered the same way in place of `text`): the base text
|
|
14472
|
+
* stays one run so the annotation still reads over the whole thing, while
|
|
14473
|
+
* only the word entries carry the underline. Absent otherwise.
|
|
14474
|
+
*/
|
|
14475
|
+
underlineWordPieces?: ScriptFontPiece[];
|
|
14108
14476
|
/**
|
|
14109
14477
|
* `a:reflection` mirrored-sibling wrapper style for this run, or `undefined`
|
|
14110
14478
|
* for the common no-reflection case - the text-run counterpart of a
|
|
@@ -14743,9 +15111,10 @@ declare class ChartElementViewComponent {
|
|
|
14743
15111
|
readonly editable: _angular_core.InputSignal<boolean>;
|
|
14744
15112
|
/**
|
|
14745
15113
|
* Native-animation playback state. When it carries a staged chart build
|
|
14746
|
-
* (`build.kind === 'chart'`) the chart
|
|
14747
|
-
* progressively via the shared
|
|
14748
|
-
* running presentation, so
|
|
15114
|
+
* (`build.kind === 'chart'`, or the authored-index `chartReveal`) the chart
|
|
15115
|
+
* reveals its series / categories / cells progressively via the shared
|
|
15116
|
+
* `resolveRevealedChartData`. Absent outside a running presentation, so
|
|
15117
|
+
* ordinary rendering is unaffected.
|
|
14749
15118
|
*/
|
|
14750
15119
|
readonly animationState: _angular_core.InputSignal<ElementAnimationState | undefined>;
|
|
14751
15120
|
/**
|
|
@@ -14867,6 +15236,12 @@ declare class ChartElementViewComponent {
|
|
|
14867
15236
|
* @module angular-viewer/smart-art-inline-edit
|
|
14868
15237
|
*/
|
|
14869
15238
|
|
|
15239
|
+
/**
|
|
15240
|
+
* May a node on this SmartArt be entered for inline double-click/Enter
|
|
15241
|
+
* editing? G8: `a:graphicFrameLocks/@noDrilldown` forbids the drill-down,
|
|
15242
|
+
* even when the diagram is otherwise editable with a commit channel.
|
|
15243
|
+
*/
|
|
15244
|
+
declare function canEditSmartArtNodes(editable: boolean, hasEditor: boolean, element: PptxElement): boolean;
|
|
14870
15245
|
/**
|
|
14871
15246
|
* An axis-aligned box in element-local (viewBox) pixel coordinates, used to
|
|
14872
15247
|
* position the inline `<textarea>` over a node. Because the SmartArt `<svg>`
|
|
@@ -15060,12 +15435,10 @@ declare class SmartArtRendererComponent {
|
|
|
15060
15435
|
readonly shadowFilter: _angular_core.Signal<string | undefined>;
|
|
15061
15436
|
private readonly rawDrawingShapes;
|
|
15062
15437
|
readonly hasDrawingShapes: _angular_core.Signal<boolean>;
|
|
15063
|
-
private readonly
|
|
15064
|
-
private readonly shownNodeCount;
|
|
15065
|
-
private readonly isPartialBuild;
|
|
15438
|
+
private readonly diagramReveal;
|
|
15066
15439
|
/** Leading node prefix revealed so far (full list when no partial build). */
|
|
15067
15440
|
private readonly revealedNodes;
|
|
15068
|
-
/**
|
|
15441
|
+
/** Revealed drawing-shape subset, preferring the authored node-id set. */
|
|
15069
15442
|
private readonly revealedShapeList;
|
|
15070
15443
|
private readonly viewBox;
|
|
15071
15444
|
/** `viewBox` attribute string for the drawing-shapes `<svg>`. */
|
|
@@ -15075,6 +15448,11 @@ declare class SmartArtRendererComponent {
|
|
|
15075
15448
|
* Node id for each drawing shape (index-aligned with `renderedShapes`).
|
|
15076
15449
|
* Used to tag `<g>` elements with `data-smartart-node-id` so the 3D
|
|
15077
15450
|
* renderer's hit-test overlay can resolve a click to a node.
|
|
15451
|
+
*
|
|
15452
|
+
* Aligned with the REVEALED subset `renderedShapes` projects: during a staged
|
|
15453
|
+
* `p:bldDgm` build that differs from the full list, and indexing the full
|
|
15454
|
+
* list's ids by rendered position stamped the first node's id onto whichever
|
|
15455
|
+
* shape the authored reveal showed first (Gamma carried Alpha's id).
|
|
15078
15456
|
*/
|
|
15079
15457
|
readonly drawingShapeNodeIds: _angular_core.Signal<(string | undefined)[]>;
|
|
15080
15458
|
readonly layout: _angular_core.Signal<SmartArtLayoutResult>;
|
|
@@ -15664,6 +16042,12 @@ declare class AnimationPlaybackService {
|
|
|
15664
16042
|
private controller;
|
|
15665
16043
|
private readonly timers;
|
|
15666
16044
|
private readonly buildHandle;
|
|
16045
|
+
/**
|
|
16046
|
+
* The click-group the last presenter click started, so a second click while
|
|
16047
|
+
* it is still mid-flight fast-forwards it (`p:seq/@nextAc="seek"`) instead
|
|
16048
|
+
* of skipping to the next group. Owned here, mutated by the shared helpers.
|
|
16049
|
+
*/
|
|
16050
|
+
private readonly activeGroup;
|
|
15667
16051
|
private showWithAnimation;
|
|
15668
16052
|
private frameRoot;
|
|
15669
16053
|
private onPlayActionSound;
|
|
@@ -16152,6 +16536,11 @@ declare class PresentationInputController {
|
|
|
16152
16536
|
handleKeyDown(event: KeyboardEvent): void;
|
|
16153
16537
|
/** Left-click on the slide area advances to the next visible slide. */
|
|
16154
16538
|
handleBodyClick(event: MouseEvent): void;
|
|
16539
|
+
/**
|
|
16540
|
+
* `@highlightClick` ("Highlight click"): a brief flash independent of
|
|
16541
|
+
* whatever the action itself does, so it runs even for a no-op action.
|
|
16542
|
+
*/
|
|
16543
|
+
private applyClickHighlight;
|
|
16155
16544
|
/**
|
|
16156
16545
|
* Run any on-slide action under the pointer, and report what the click left
|
|
16157
16546
|
* for the show: only `'advance'` reaches {@link advanceFromClick}.
|
|
@@ -16369,6 +16758,16 @@ declare class PresentationOverlayComponent implements OnInit {
|
|
|
16369
16758
|
*/
|
|
16370
16759
|
protected onStageHover(event: MouseEvent): void;
|
|
16371
16760
|
protected onStageHoverEnd(event: MouseEvent): void;
|
|
16761
|
+
/** The element currently flashed by `a:hlinkHover/@highlightClick`, if any. */
|
|
16762
|
+
private highlightedHoverElement;
|
|
16763
|
+
/**
|
|
16764
|
+
* `a:hlinkHover/@highlightClick`: the same flash as the click version, held
|
|
16765
|
+
* for the duration of the hover rather than timed. Tracked separately from
|
|
16766
|
+
* `stageAnimator`'s native-animation hover trigger above, since a shape can
|
|
16767
|
+
* carry one without the other.
|
|
16768
|
+
*/
|
|
16769
|
+
private applyHoverHighlight;
|
|
16770
|
+
private clearHoverHighlightUnlessWithin;
|
|
16372
16771
|
/** Viewport dimensions, updated on resize. */
|
|
16373
16772
|
private readonly viewportW;
|
|
16374
16773
|
private readonly viewportH;
|
|
@@ -16710,8 +17109,21 @@ declare class InspectorPanelComponent {
|
|
|
16710
17109
|
protected readonly isLocked: _angular_core.Signal<boolean>;
|
|
16711
17110
|
/** Whether the element supports shape-style (fill/stroke) editing. */
|
|
16712
17111
|
protected readonly hasShape: _angular_core.Signal<boolean>;
|
|
17112
|
+
/**
|
|
17113
|
+
* LIVE (not `seed()`-frozen) fill/stroke colour + ref, read fresh from the
|
|
17114
|
+
* element on every change so the theme-swatch grid's highlight tracks the
|
|
17115
|
+
* current colour right after a pick, unlike the caret-preserving `seed()`
|
|
17116
|
+
* fields the native `<input type="color">`s bind to.
|
|
17117
|
+
*/
|
|
17118
|
+
protected readonly liveFillColor: _angular_core.Signal<string>;
|
|
17119
|
+
protected readonly liveStrokeColor: _angular_core.Signal<string>;
|
|
17120
|
+
protected readonly fillColorRef: _angular_core.Signal<PptxThemeColorRef | undefined>;
|
|
17121
|
+
protected readonly strokeColorRef: _angular_core.Signal<PptxThemeColorRef | undefined>;
|
|
16713
17122
|
/** Whether the element supports text-style editing. */
|
|
16714
17123
|
protected readonly hasText: _angular_core.Signal<boolean>;
|
|
17124
|
+
/** LIVE text colour + ref (see {@link liveFillColor}'s doc for why not `seed()`). */
|
|
17125
|
+
protected readonly liveTextColor: _angular_core.Signal<string>;
|
|
17126
|
+
protected readonly textColorRef: _angular_core.Signal<PptxThemeColorRef | undefined>;
|
|
16715
17127
|
protected readonly currentBold: _angular_core.Signal<boolean>;
|
|
16716
17128
|
protected readonly currentItalic: _angular_core.Signal<boolean>;
|
|
16717
17129
|
protected readonly currentUnderline: _angular_core.Signal<boolean>;
|
|
@@ -16750,16 +17162,22 @@ declare class InspectorPanelComponent {
|
|
|
16750
17162
|
protected onRotationChange(event: Event): void;
|
|
16751
17163
|
protected onOpacityChange(event: Event): void;
|
|
16752
17164
|
protected onFillColorChange(event: Event): void;
|
|
16753
|
-
/** Recent-colours row pick: commits through the same path as the native picker. */
|
|
17165
|
+
/** Recent-colours row pick: commits through the same path as the native picker, clearing any stored ref. */
|
|
16754
17166
|
protected onFillColorPick(color: string): void;
|
|
17167
|
+
/** Theme-swatch pick: commits BOTH the resolved hex and the ref, so the fill follows a later theme change. */
|
|
17168
|
+
protected onFillThemeColor(commit: ThemeColorPickerCommit): void;
|
|
16755
17169
|
private commitFillColor;
|
|
16756
17170
|
protected onStrokeColorChange(event: Event): void;
|
|
16757
|
-
/** Recent-colours row pick: commits through the same path as the native picker. */
|
|
17171
|
+
/** Recent-colours row pick: commits through the same path as the native picker, clearing any stored ref. */
|
|
16758
17172
|
protected onStrokeColorPick(color: string): void;
|
|
17173
|
+
/** Theme-swatch pick: commits BOTH the resolved hex and the ref, so the stroke follows a later theme change. */
|
|
17174
|
+
protected onStrokeThemeColor(commit: ThemeColorPickerCommit): void;
|
|
16759
17175
|
private commitStrokeColor;
|
|
16760
17176
|
protected onTextColorChange(event: Event): void;
|
|
16761
|
-
/** Recent-colours row pick: commits through the same path as the native picker. */
|
|
17177
|
+
/** Recent-colours row pick: commits through the same path as the native picker, clearing any stored ref. */
|
|
16762
17178
|
protected onTextColorPick(color: string): void;
|
|
17179
|
+
/** Theme-swatch pick: commits BOTH the resolved hex and the ref, so the text colour follows a later theme change. */
|
|
17180
|
+
protected onTextThemeColor(commit: ThemeColorPickerCommit): void;
|
|
16763
17181
|
private commitTextColor;
|
|
16764
17182
|
protected onFontSizeChange(event: Event): void;
|
|
16765
17183
|
protected onBoldToggle(): void;
|
|
@@ -17122,7 +17540,10 @@ declare class GradientPickerComponent {
|
|
|
17122
17540
|
protected readonly previewCss: _angular_core.Signal<string>;
|
|
17123
17541
|
protected onTypeChange(event: Event): void;
|
|
17124
17542
|
protected onAngleChange(event: Event): void;
|
|
17543
|
+
/** No theme identity, so this always explicitly clears any stored `colorRef` (see {@link onStopThemePick}). */
|
|
17125
17544
|
protected onStopColorChange(event: Event, index: number): void;
|
|
17545
|
+
/** A theme-swatch pick: commits BOTH the resolved hex and the ref. */
|
|
17546
|
+
protected onStopThemePick(commit: ThemeColorPickerCommit, index: number): void;
|
|
17126
17547
|
protected onStopPositionChange(event: Event, index: number): void;
|
|
17127
17548
|
protected onStopOpacityChange(event: Event, index: number): void;
|
|
17128
17549
|
protected onRemoveStop(index: number): void;
|
|
@@ -17182,8 +17603,8 @@ declare class TextAdvancedPanelComponent {
|
|
|
17182
17603
|
protected readonly elementKey: _angular_core.Signal<string>;
|
|
17183
17604
|
/** Exposed option arrays for the template. */
|
|
17184
17605
|
protected readonly alignOptions: [NonNullable<"center" | "left" | "right" | "justify" | "justLow" | "dist" | "thaiDist" | undefined>, string][];
|
|
17185
|
-
protected readonly vAlignOptions: [NonNullable<"top" | "bottom" | "middle" | undefined>, string][];
|
|
17186
|
-
protected readonly textDirectionOptions: [NonNullable<"
|
|
17606
|
+
protected readonly vAlignOptions: [NonNullable<"top" | "bottom" | "middle" | "distributed" | "justified" | undefined>, string][];
|
|
17607
|
+
protected readonly textDirectionOptions: [NonNullable<"vertical" | "horizontal" | "eaVert" | "wordArtVert" | "wordArtVertRtl" | "mongolianVert" | "vertical270" | undefined>, string][];
|
|
17187
17608
|
protected alignLabel(align: NonNullable<TextStyle['align']>): string;
|
|
17188
17609
|
protected onAlignChange(align: NonNullable<TextStyle['align']>): void;
|
|
17189
17610
|
protected onVAlignChange(event: Event): void;
|
|
@@ -17421,6 +17842,13 @@ declare class TableCellFormattingComponent {
|
|
|
17421
17842
|
protected widthOf(key: NumKey): number;
|
|
17422
17843
|
protected toggle(key: 'bold' | 'italic' | 'underline'): void;
|
|
17423
17844
|
protected onColor(key: ColorKey, event: Event): void;
|
|
17845
|
+
/**
|
|
17846
|
+
* A `pptx-table-cell-color-field` commit (text colour or fill colour): sets
|
|
17847
|
+
* both the hex and its ref field, so a theme-swatch pick keeps following
|
|
17848
|
+
* the deck's theme after a later theme change, and a native pick clears any
|
|
17849
|
+
* previously-stored ref (the field always emits `ref: undefined` for one).
|
|
17850
|
+
*/
|
|
17851
|
+
protected onColorCommit(hexKey: 'color' | 'backgroundColor', refKey: 'colorRef' | 'backgroundColorRef', commit: ThemeColorPickerCommit): void;
|
|
17424
17852
|
/**
|
|
17425
17853
|
* Record the committed (native `change`, not the live-preview `input`)
|
|
17426
17854
|
* colour into the shared "Recent colours" list.
|
|
@@ -18416,7 +18844,7 @@ declare class EditorToolbarComponent {
|
|
|
18416
18844
|
/** Align needs ≥2 selected elements; distribute needs ≥3. */
|
|
18417
18845
|
protected readonly canAlign: _angular_core.Signal<boolean>;
|
|
18418
18846
|
protected readonly canDistribute: _angular_core.Signal<boolean>;
|
|
18419
|
-
/** Group
|
|
18847
|
+
/** Group/ungroup, including the `a:spLocks`/`a:grpSpLocks` `@noGrp` lock (`group-lock-guard.ts`). */
|
|
18420
18848
|
protected readonly canGroup: _angular_core.Signal<boolean>;
|
|
18421
18849
|
protected readonly canUngroup: _angular_core.Signal<boolean>;
|
|
18422
18850
|
protected onInsertText(): void;
|
|
@@ -18508,6 +18936,13 @@ declare class EditorContextMenuComponent {
|
|
|
18508
18936
|
} | null>;
|
|
18509
18937
|
/** The single selected element, or null on an empty or multi selection. */
|
|
18510
18938
|
private readonly selectedElement;
|
|
18939
|
+
/**
|
|
18940
|
+
* Lock-only half of Group/Ungroup gating (`a:spLocks`/`a:grpSpLocks`
|
|
18941
|
+
* `@noGrp`), independent of selection count, mirroring the guard
|
|
18942
|
+
* `EditorStateService.groupSelected`/`ungroupSelected` already enforce on
|
|
18943
|
+
* the commands themselves (`group-lock-guard.ts`).
|
|
18944
|
+
*/
|
|
18945
|
+
private readonly selectionGroupable;
|
|
18511
18946
|
/** The menu, as the shared command list builds it for this right-click. */
|
|
18512
18947
|
protected readonly entries: _angular_core.Signal<ContextMenuEntry[]>;
|
|
18513
18948
|
/** Editor operations behind each command id (see the dispatch module). */
|
|
@@ -18954,6 +19389,17 @@ declare class MediaPropertiesPanelComponent {
|
|
|
18954
19389
|
protected readonly media: _angular_core.Signal<MediaPptxElement>;
|
|
18955
19390
|
protected readonly mediaDataUrls: _angular_core.Signal<Map<any, any>>;
|
|
18956
19391
|
protected readonly speeds: readonly [0.25, 0.5, 0.75, 1, 1.25, 1.5, 2, 3, 4];
|
|
19392
|
+
/**
|
|
19393
|
+
* `trimEndMs` is `p14:trim/@end`, the distance from the clip's TAIL
|
|
19394
|
+
* (COM-verified), not an absolute stop time. The "Trim end" field shows the
|
|
19395
|
+
* user an absolute position and converts back on commit, mirroring React's
|
|
19396
|
+
* `MediaInspector` / Vue's `MediaPropertiesPanel.vue` via the shared
|
|
19397
|
+
* `media-trim-range.ts` (this raw ms field used to bind the tail distance
|
|
19398
|
+
* directly, so typing "the last 5s" required computing duration-minus-5000
|
|
19399
|
+
* by hand).
|
|
19400
|
+
*/
|
|
19401
|
+
private readonly durationMs;
|
|
19402
|
+
protected readonly trimEndAbsoluteMs: _angular_core.Signal<number>;
|
|
18957
19403
|
protected readonly volumePercent: _angular_core.Signal<number>;
|
|
18958
19404
|
protected readonly toggles: _angular_core.Signal<readonly [{
|
|
18959
19405
|
readonly key: "autoPlay";
|
|
@@ -18977,6 +19423,8 @@ declare class MediaPropertiesPanelComponent {
|
|
|
18977
19423
|
readonly value: boolean;
|
|
18978
19424
|
}]>;
|
|
18979
19425
|
protected numberPatch(key: keyof MediaPptxElement, event: Event): void;
|
|
19426
|
+
/** Convert the typed absolute end position back to `trimEndMs`'s tail distance. */
|
|
19427
|
+
protected trimEndPatch(event: Event): void;
|
|
18980
19428
|
protected volumeChange(event: Event): void;
|
|
18981
19429
|
protected booleanPatch(key: keyof MediaPptxElement, event: Event): void;
|
|
18982
19430
|
protected addBookmark(): void;
|
|
@@ -19899,7 +20347,7 @@ declare class AccountPageComponent {
|
|
|
19899
20347
|
readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
|
|
19900
20348
|
private readonly translate;
|
|
19901
20349
|
protected readonly swatches: readonly string[];
|
|
19902
|
-
protected readonly version = "3.
|
|
20350
|
+
protected readonly version = "3.7.0";
|
|
19903
20351
|
protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
|
|
19904
20352
|
protected readonly initial: _angular_core.Signal<string>;
|
|
19905
20353
|
protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
|
|
@@ -20413,8 +20861,6 @@ declare class PresentationTransitionOverlayComponent {
|
|
|
20413
20861
|
private readonly destroyRef;
|
|
20414
20862
|
/** Active completion timer handle, so re-running re-arms cleanly. */
|
|
20415
20863
|
private completeTimer;
|
|
20416
|
-
/** Active transition-sound element, paused on teardown. */
|
|
20417
|
-
private audio;
|
|
20418
20864
|
/** Whether `complete` has already fired for the current run. */
|
|
20419
20865
|
private fired;
|
|
20420
20866
|
constructor();
|
|
@@ -20479,8 +20925,21 @@ declare class PresentationTransitionOverlayComponent {
|
|
|
20479
20925
|
protected readonly slideBoxStyle: _angular_core.Signal<StyleMap>;
|
|
20480
20926
|
private armCompletion;
|
|
20481
20927
|
private clearTimer;
|
|
20482
|
-
|
|
20483
|
-
|
|
20928
|
+
/**
|
|
20929
|
+
* Play or stop this transition's sound action (`p:sndAc/p:stSnd`/`p:endSnd`).
|
|
20930
|
+
*
|
|
20931
|
+
* `transition.soundPath` is a raw in-archive path (e.g. `ppt/media/media3.wav`)
|
|
20932
|
+
* that a bare `Audio` element constructed straight from it cannot fetch; it
|
|
20933
|
+
* must be resolved through `mediaDataUrls()`, the same Blob-URL cache
|
|
20934
|
+
* `load-content.service.ts`
|
|
20935
|
+
* pre-populates via `collectAnimationSoundPaths` (extended to also collect
|
|
20936
|
+
* `slide.transition?.soundPath` alongside per-effect animation sounds).
|
|
20937
|
+
* Reuses the shared per-effect sound singleton (`animation-sound.ts`) rather
|
|
20938
|
+
* than a private `Audio` element, so a transition sound and an animation
|
|
20939
|
+
* sound cannot talk over each other, matching PowerPoint's "one sound plays
|
|
20940
|
+
* at a time" behaviour.
|
|
20941
|
+
*/
|
|
20942
|
+
private applyTransitionSound;
|
|
20484
20943
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PresentationTransitionOverlayComponent, never>;
|
|
20485
20944
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PresentationTransitionOverlayComponent, "pptx-presentation-transition-overlay", never, { "outgoingSlide": { "alias": "outgoingSlide"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "transition": { "alias": "transition"; "required": true; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "durationMs": { "alias": "durationMs"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "incomingSlide": { "alias": "incomingSlide"; "required": false; "isSignal": true; }; }, { "complete": "complete"; }, never, never, true, never>;
|
|
20486
20945
|
}
|
|
@@ -21710,12 +22169,29 @@ declare class RibbonColorPopoverComponent {
|
|
|
21710
22169
|
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
21711
22170
|
readonly titleKey: _angular_core.InputSignal<string>;
|
|
21712
22171
|
readonly swatchAriaKey: _angular_core.InputSignal<string>;
|
|
22172
|
+
/** Show the deck's "Theme Colors" grid above the presets (font colour only: highlight
|
|
22173
|
+
* colour has no theme-ref concept on the model). */
|
|
22174
|
+
readonly showThemeColors: _angular_core.InputSignal<boolean>;
|
|
22175
|
+
/** The element's current theme ref, if any (only meaningful with `showThemeColors`). */
|
|
22176
|
+
readonly currentRef: _angular_core.InputSignal<PptxThemeColorRef | undefined>;
|
|
22177
|
+
/** Fired by a preset, recent, or custom-input pick (never by a theme swatch: see `pickThemeColor`). */
|
|
21713
22178
|
readonly pick: _angular_core.OutputEmitterRef<string>;
|
|
22179
|
+
/**
|
|
22180
|
+
* Fired ONLY by a theme-swatch click, carrying both the hex and the ref.
|
|
22181
|
+
* Kept SEPARATE from `pick` (rather than also firing `pick` for the same
|
|
22182
|
+
* click) so a caller that handles both never commits the hex-only patch
|
|
22183
|
+
* and the ref-bearing patch as two separate edits/undo-steps for one click;
|
|
22184
|
+
* a caller that only binds `(pick)` (the Home ribbon's Shape Fill/Outline
|
|
22185
|
+
* dropdowns, which never set `showThemeColors`) is unaffected either way,
|
|
22186
|
+
* since it never renders the theme grid this fires from.
|
|
22187
|
+
*/
|
|
22188
|
+
readonly pickThemeColor: _angular_core.OutputEmitterRef<ThemeColorPickerCommit>;
|
|
21714
22189
|
protected readonly recentColors: RecentColorsService;
|
|
21715
22190
|
/** Every commit through this popover both fires `pick` and records the colour as recently used. */
|
|
21716
22191
|
protected onPick(color: string): void;
|
|
22192
|
+
protected onThemePick(commit: ThemeColorPickerCommit): void;
|
|
21717
22193
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonColorPopoverComponent, never>;
|
|
21718
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonColorPopoverComponent, "pptx-ribbon-color-popover", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "swatchAriaKey": { "alias": "swatchAriaKey"; "required": false; "isSignal": true; }; }, { "pick": "pick"; }, never, ["*"], true, never>;
|
|
22194
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonColorPopoverComponent, "pptx-ribbon-color-popover", never, { "current": { "alias": "current"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "titleKey": { "alias": "titleKey"; "required": false; "isSignal": true; }; "swatchAriaKey": { "alias": "swatchAriaKey"; "required": false; "isSignal": true; }; "showThemeColors": { "alias": "showThemeColors"; "required": false; "isSignal": true; }; "currentRef": { "alias": "currentRef"; "required": false; "isSignal": true; }; }, { "pick": "pick"; "pickThemeColor": "pickThemeColor"; }, never, ["*"], true, never>;
|
|
21719
22195
|
}
|
|
21720
22196
|
|
|
21721
22197
|
declare class RibbonDesignSectionComponent {
|
|
@@ -21743,10 +22219,16 @@ declare class RibbonDrawingGroupComponent {
|
|
|
21743
22219
|
protected readonly canFormatShape: _angular_core.Signal<boolean>;
|
|
21744
22220
|
protected readonly fillColor: _angular_core.Signal<string>;
|
|
21745
22221
|
protected readonly outlineColor: _angular_core.Signal<string>;
|
|
21746
|
-
|
|
22222
|
+
protected readonly fillColorRef: _angular_core.Signal<pptx_viewer_core.PptxThemeColorRef | undefined>;
|
|
22223
|
+
protected readonly outlineColorRef: _angular_core.Signal<pptx_viewer_core.PptxThemeColorRef | undefined>;
|
|
22224
|
+
/** Commit a picked Fill swatch through the shared decision function; clears any stored ref. */
|
|
21747
22225
|
protected onFill(color: string): void;
|
|
21748
|
-
/** Commit a picked Outline swatch through the shared decision function. */
|
|
22226
|
+
/** Commit a picked Outline swatch through the shared decision function; clears any stored ref. */
|
|
21749
22227
|
protected onOutline(color: string): void;
|
|
22228
|
+
/** A theme-swatch Fill pick: commits BOTH the resolved hex and the ref. */
|
|
22229
|
+
protected onFillThemePick(commit: ThemeColorPickerCommit): void;
|
|
22230
|
+
/** A theme-swatch Outline pick: commits BOTH the resolved hex and the ref. */
|
|
22231
|
+
protected onOutlineThemePick(commit: ThemeColorPickerCommit): void;
|
|
21750
22232
|
/** Merge a Fill/Outline patch into the selection's shape style, if it has one. */
|
|
21751
22233
|
private patchShapeStyle;
|
|
21752
22234
|
/** Insert the picked preset immediately (selects it and records history). */
|
|
@@ -21878,7 +22360,7 @@ declare class RibbonFontControlsComponent {
|
|
|
21878
22360
|
*/
|
|
21879
22361
|
protected readonly fontGroups: _angular_core.Signal<FontCatalogGroup[]>;
|
|
21880
22362
|
protected readonly fontSizes: readonly number[];
|
|
21881
|
-
protected readonly fontColorPresets: string[];
|
|
22363
|
+
protected readonly fontColorPresets: readonly string[];
|
|
21882
22364
|
protected readonly highlightColorPresets: string[];
|
|
21883
22365
|
protected readonly charSpacingOptions: {
|
|
21884
22366
|
labelKey: string;
|
|
@@ -21895,6 +22377,8 @@ declare class RibbonFontControlsComponent {
|
|
|
21895
22377
|
protected curFontSize(): number;
|
|
21896
22378
|
/** Current font colour of the selection (for the swatch + active-state ring). */
|
|
21897
22379
|
protected curColor(): string;
|
|
22380
|
+
/** Current font colour's theme ref, if any (highlights the matching theme swatch). */
|
|
22381
|
+
protected curColorRef(): PptxThemeColorRef | undefined;
|
|
21898
22382
|
/** Current highlight colour of the selection (for the swatch + active-state ring). */
|
|
21899
22383
|
protected curHighlight(): string;
|
|
21900
22384
|
/** Current character spacing of the selection (for dropdown state). */
|
|
@@ -21903,7 +22387,10 @@ declare class RibbonFontControlsComponent {
|
|
|
21903
22387
|
protected setCharSpacing(event: Event): void;
|
|
21904
22388
|
protected setChangeCase(event: Event): void;
|
|
21905
22389
|
protected toggleStyle(key: 'bold' | 'italic' | 'underline' | 'strikethrough'): void;
|
|
22390
|
+
/** Preset/recent/custom pick: always clears any previously-stored theme ref. */
|
|
21906
22391
|
protected setColor(color: string): void;
|
|
22392
|
+
/** Theme-swatch pick: commits BOTH the resolved hex and the ref. */
|
|
22393
|
+
protected setColorRef(commit: ThemeColorPickerCommit): void;
|
|
21907
22394
|
protected setHighlight(highlightColor: string): void;
|
|
21908
22395
|
protected setFontFamily(event: Event): void;
|
|
21909
22396
|
protected setFontSize(event: Event): void;
|
|
@@ -22217,6 +22704,15 @@ declare class RibbonReviewSectionComponent {
|
|
|
22217
22704
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonReviewSectionComponent, "pptx-ribbon-review-section", never, { "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, { "comments": "comments"; "spellCheckChange": "spellCheckChange"; "a11y": "a11y"; "openCompare": "openCompare"; "language": "language"; "link": "link"; }, never, never, true, never>;
|
|
22218
22705
|
}
|
|
22219
22706
|
|
|
22707
|
+
/**
|
|
22708
|
+
* The ribbon's Group-button decision for one slide: needs an editable deck,
|
|
22709
|
+
* two or more selected ids (`canGroupSelection`'s own count gate), and
|
|
22710
|
+
* `a:spLocks/@noGrp` allowing every one of them (`group-lock-guard.ts`'s
|
|
22711
|
+
* `canGroupSelected`, the same check `EditorStateService.groupSelected`
|
|
22712
|
+
* enforces on the command itself). Pulled out of the component's `canGroup`
|
|
22713
|
+
* computed so it is testable without an Angular injection context.
|
|
22714
|
+
*/
|
|
22715
|
+
declare function resolveRibbonCanGroup(canEdit: boolean, ids: readonly string[], slide: PptxSlide | undefined): boolean;
|
|
22220
22716
|
declare class RibbonShapeExtrasComponent {
|
|
22221
22717
|
protected readonly editor: EditorStateService;
|
|
22222
22718
|
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
@@ -22579,9 +23075,18 @@ declare function asMediaElement(el: PptxElement): MediaPptxElement | undefined;
|
|
|
22579
23075
|
*/
|
|
22580
23076
|
declare function resolveMediaSrc(el: MediaPptxElement, mediaDataUrls: Map<string, string>): string | undefined;
|
|
22581
23077
|
/**
|
|
22582
|
-
* Build a media-fragment URI component (`#t=start
|
|
22583
|
-
* Times are stored in milliseconds; the fragment uses seconds.
|
|
22584
|
-
* `buildTrimFragment`.
|
|
23078
|
+
* Build a media-fragment URI component (`#t=start`) for a trimmed clip's
|
|
23079
|
+
* start point. Times are stored in milliseconds; the fragment uses seconds.
|
|
23080
|
+
* Mirrors React's `buildTrimFragment`.
|
|
23081
|
+
*
|
|
23082
|
+
* G19/G20: `el.trimEndMs` is `p14:trim/@end`'s own on-the-wire unit, the
|
|
23083
|
+
* DISTANCE in milliseconds from the clip's END (COM-verified; see
|
|
23084
|
+
* `PptxHandlerRuntimeMediaParsingUtils.ts`), not an absolute stop time. The
|
|
23085
|
+
* Media Fragments URI spec only accepts an absolute `end`, which cannot be
|
|
23086
|
+
* computed here (the clip's real duration is unknown before the browser
|
|
23087
|
+
* fetches this very `src`). An earlier version emitted `trimEndMs` directly
|
|
23088
|
+
* as if it already were that absolute position - exactly backwards. Trim-end
|
|
23089
|
+
* enforcement is `scheduleMediaTrimAndFade`'s job, not this fragment's.
|
|
22585
23090
|
*/
|
|
22586
23091
|
declare function buildTrimFragment(el: MediaPptxElement): string;
|
|
22587
23092
|
/** A caption track resolved to a `<track>`-ready `src`. */
|
|
@@ -23177,6 +23682,6 @@ declare function thumbnailHeight(canvasW: number, canvasH: number, thumbW: numbe
|
|
|
23177
23682
|
*/
|
|
23178
23683
|
declare function gridColumns(containerW: number, thumbW: number, gap: number, maxCols: number): number;
|
|
23179
23684
|
|
|
23180
|
-
export { AFTER_ANIMATION_VALUES, 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, GOOGLE_WEBFONTS_LINK_ID, GRIDLINE_COLOR, GoogleWebfontsService, 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, buildPieViewModel, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRadarViewModel, 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, getEffectSoundState, 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, mergeTablesDirective, 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, setAfterAnimation, setAfterAnimationColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDataPointMarker, setDelay, setDirection, setDuration, setEffectSound, 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, textFontSizePatch, 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, withManualLayouts, worstStatus, zoomTargetSlideIndex };
|
|
23181
|
-
export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, ActiveShow, AiCanvasHighlight, AiChatInitState, AiHistoryInitDeps, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AuthoredRange, 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, EffectSoundState, 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 };
|
|
23685
|
+
export { AFTER_ANIMATION_VALUES, 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, GOOGLE_WEBFONTS_LINK_ID, GRIDLINE_COLOR, GoogleWebfontsService, 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, buildPieViewModel, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRadarViewModel, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, canEditSmartArtNodes, 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, getEffectSoundState, 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, gradientStopColorCommitPatch, 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, mergeTablesDirective, 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, resolveRibbonCanGroup, 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, setAfterAnimation, setAfterAnimationColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDataPointMarker, setDelay, setDirection, setDuration, setEffectSound, 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, textFontSizePatch, 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, withManualLayouts, worstStatus, zoomTargetSlideIndex };
|
|
23686
|
+
export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, ActiveShow, AiCanvasHighlight, AiChatInitState, AiHistoryInitDeps, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AuthoredRange, AwarenessLike, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, BubbleRadiusOptions, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartSvgDef, ChartSvgPatternDef, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectSoundState, 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 };
|
|
23182
23687
|
//# sourceMappingURL=pptx-angular-viewer.d.ts.map
|