pptx-angular-viewer 4.7.0 → 4.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 +65 -0
- package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-CM71j9A9.mjs +1703 -0
- package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-CM71j9A9.mjs.map +1 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-D_SZnX0q.mjs → pptx-angular-viewer-chat-history-idb-7dyn_ZbD.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-D_SZnX0q.mjs.map → pptx-angular-viewer-chat-history-idb-7dyn_ZbD.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-D3TADvW3.mjs → pptx-angular-viewer-pptx-angular-viewer-Cf08ueRA.mjs} +3769 -1247
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-D3TADvW3.mjs.map → pptx-angular-viewer-pptx-angular-viewer-Cf08ueRA.mjs.map} +1 -1
- package/fesm2022/pptx-angular-viewer-view-scene-Bn9SJZk9.mjs +862 -0
- package/fesm2022/pptx-angular-viewer-view-scene-Bn9SJZk9.mjs.map +1 -0
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/i18n/de.cjs +64 -96
- package/i18n/de.mjs +64 -96
- package/i18n/es.cjs +64 -96
- package/i18n/es.mjs +64 -96
- package/i18n/fr.cjs +64 -96
- package/i18n/fr.mjs +64 -96
- package/i18n/zh-CN.cjs +63 -95
- package/i18n/zh-CN.mjs +63 -95
- package/package.json +2 -2
- package/types/pptx-angular-viewer.d.ts +508 -77
- package/types/pptx-angular-viewer.d.ts.map +1 -1
- package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-CFWKnfML.mjs +0 -470
- package/fesm2022/pptx-angular-viewer-chart-3d-view-scene-CFWKnfML.mjs.map +0 -1
- package/fesm2022/pptx-angular-viewer-view-scene-C5oUG9yl.mjs +0 -235
- package/fesm2022/pptx-angular-viewer-view-scene-C5oUG9yl.mjs.map +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as pptx_viewer_core from 'pptx-viewer-core';
|
|
2
|
-
import { PptxThemePreset, PptxElement, PptxSlide, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartMarkerSymbol, PptxChartDataPointPicture, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, PptxBar3DShape, SmartArtLayoutType, SmartArtColorScheme, PptxSmartArtChrome,
|
|
2
|
+
import { PptxThemePreset, PptxElement, PptxSlide, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartLegendTextStyle, PptxChartMarkerSymbol, PptxChartDataPointPicture, PptxChartData, PptxChartDataLabelPosition, PptxChartType, PptxElementAnimation, PptxAnimationPreset, PptxAnimationSequence, PptxAnimationTrigger, PptxAnimationTimingCurve, PptxAnimationRepeatMode, PptxAnimationDirection, PptxAfterAnimationAction, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, PptxBar3DShape, SmartArtLayoutType, PptxSmartArtDrawingShape, SmartArtColorScheme, PptxSmartArtChrome, SmartArtStyle, PptxSmartArtData, PptxThemeColorRef, PlaceholderDefaults, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartBarDirection, ImagePptxElement, MasterViewTab, PptxHeaderFooter, PptxPresentationProperties, PptxViewProperties, PptxCustomShow, PptxCoreProperties, PptxAppProperties, PptxCustomProperty, PptxTagCollection, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxSlideSize, PptxSaveFormat, MediaPptxElement, PptxTheme, PptxHandler, PptxData, PptxHandlerSaveOptions, PptxModernCommentAuthor, PptxCommentMention, PptxThemeOption, ParsedSignature, PptxLayoutPreview, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, SvgExportOptions, PptxLayoutOption, PptxGridSpacing, ChartPptxElement, RenderedNode, RenderedCircleNode, RenderedPolygonNode, RenderedRectNode, SmartArtLayoutResult, Model3DPptxElement, ZoomPptxElement, SmartArtPptxElement, PptxAnimationTimelineAnchor, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartMarker, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, PptxTextStyleLevels, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxSmartArtNode, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
|
|
3
3
|
export { GroupResult, SWITCHABLE_LAYOUT_TYPES, UngroupResult, addSmartArtNode, addSmartArtNodeAsChild, chartDataChangeType, chartDataUpdatePoint, demoteSmartArtNode, formatAutoNumberMarker as formatAutoNumber, groupElements, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, ungroupElements, updateSmartArtNodeText } from 'pptx-viewer-core';
|
|
4
4
|
import { Doc } from 'yjs';
|
|
5
5
|
import * as _angular_core from '@angular/core';
|
|
@@ -4124,6 +4124,51 @@ interface ElementBulletPatch {
|
|
|
4124
4124
|
textStyle?: TextStyle;
|
|
4125
4125
|
}
|
|
4126
4126
|
|
|
4127
|
+
/**
|
|
4128
|
+
* East Asian line breaking the browser cannot be asked for in CSS: PowerPoint's
|
|
4129
|
+
* hanging punctuation (`a:pPr/@hangingPunct`) and its kinsoku switch
|
|
4130
|
+
* (`a:pPr/@eaLnBrk`).
|
|
4131
|
+
*
|
|
4132
|
+
* Ground truth (PowerPoint COM, Slide.Export of 20pt Yu Gothic paragraphs in
|
|
4133
|
+
* boxes a fraction of an em too narrow for the next character):
|
|
4134
|
+
*
|
|
4135
|
+
* - `hangingPunct="1"` keeps an overflowing `、` `。` `,` `.` on the line,
|
|
4136
|
+
* drawn past the right margin. NOTHING else hangs: closing brackets
|
|
4137
|
+
* (`)` `」` `』` `】` `〉` `》`), `!` `?` `:` `・`, the prolonged-sound
|
|
4138
|
+
* mark and small kana all wrap exactly as with `hangingPunct="0"`, pulling
|
|
4139
|
+
* the preceding character down with them.
|
|
4140
|
+
* - `eaLnBrk="0"` switches the kinsoku rules off: a line may then start with
|
|
4141
|
+
* `」`, `。`, `、` or a small kana, i.e. East Asian text breaks between any
|
|
4142
|
+
* two characters. Latin words still break only between words.
|
|
4143
|
+
*
|
|
4144
|
+
* Only Safari implements CSS `hanging-punctuation`, and CSS `line-break:
|
|
4145
|
+
* anywhere` / `word-break: break-all` also split Latin words, so both are done
|
|
4146
|
+
* in the run text instead, as pieces every binding already renders:
|
|
4147
|
+
*
|
|
4148
|
+
* - A hanging character becomes a zero-inline-size `inline-block` (so the
|
|
4149
|
+
* line breaker never counts it), glued to the character before it with a
|
|
4150
|
+
* WORD JOINER (so it cannot be pushed to the next line on its own), and
|
|
4151
|
+
* followed by an ordinary space whose `word-spacing` makes it exactly the
|
|
4152
|
+
* punctuation's own advance. Mid-line that space restores the advance, so
|
|
4153
|
+
* nothing moves; at a line end it is trailing white space, which CSS hangs
|
|
4154
|
+
* or collapses, so the punctuation paints past the margin, as in PowerPoint.
|
|
4155
|
+
* (A negative margin does not work: Chromium decides a break before
|
|
4156
|
+
* applying an inline's end margin.)
|
|
4157
|
+
* - With kinsoku off, a ZERO WIDTH SPACE between two East Asian characters
|
|
4158
|
+
* is a break opportunity no kinsoku rule can veto (UAX #14 LB8 outranks the
|
|
4159
|
+
* "no break before closing punctuation" rules).
|
|
4160
|
+
*
|
|
4161
|
+
* @module text-east-asian-breaks
|
|
4162
|
+
*/
|
|
4163
|
+
|
|
4164
|
+
/** Which of the two behaviours a paragraph asks for. */
|
|
4165
|
+
interface EastAsianBreakOptions {
|
|
4166
|
+
/** `a:pPr/@hangingPunct="1"`. */
|
|
4167
|
+
hangingPunctuation: boolean;
|
|
4168
|
+
/** `a:pPr/@eaLnBrk="0"`: break between any two East Asian characters. */
|
|
4169
|
+
breakAnywhere: boolean;
|
|
4170
|
+
}
|
|
4171
|
+
|
|
4127
4172
|
/**
|
|
4128
4173
|
* Per-run facts a rendered paragraph carries besides its text and CSS: the
|
|
4129
4174
|
* run's HYPERLINK and its inline EQUATION (framework-agnostic).
|
|
@@ -4354,6 +4399,8 @@ interface ParagraphRun {
|
|
|
4354
4399
|
* `paragraph-run-build.ts`).
|
|
4355
4400
|
*/
|
|
4356
4401
|
underlineWordPieces?: ScriptFontPiece[];
|
|
4402
|
+
/** The advance-carrying space after a hanging `、`/`。` (`text-east-asian-breaks`). */
|
|
4403
|
+
hangingSpace?: true;
|
|
4357
4404
|
/**
|
|
4358
4405
|
* `a:reflection` mirrored-sibling wrapper style for this run (the text-run
|
|
4359
4406
|
* counterpart of a shape/picture's `ComputedEffectStyle.reflection`), or
|
|
@@ -4437,6 +4484,12 @@ interface RenderParagraph {
|
|
|
4437
4484
|
* break rules, rendered differently in the other four bindings.
|
|
4438
4485
|
*/
|
|
4439
4486
|
paragraphStyle?: RunStyle;
|
|
4487
|
+
/**
|
|
4488
|
+
* `@hangingPunct` / `@eaLnBrk="0"` as resolved for this paragraph. The runs
|
|
4489
|
+
* above already carry their pieces; React, which rebuilds each segment's
|
|
4490
|
+
* pieces inside one span, re-applies `splitEastAsianBreaks` from this.
|
|
4491
|
+
*/
|
|
4492
|
+
eastAsianBreaks?: EastAsianBreakOptions;
|
|
4440
4493
|
}
|
|
4441
4494
|
|
|
4442
4495
|
/** Current editor payload. Missing segments explicitly denotes plain-text fallback. */
|
|
@@ -5974,6 +6027,92 @@ declare const P14_TRANSITION_KEYFRAMES_ALL = "\n/* \u2500\u2500 Conveyor (transl
|
|
|
5974
6027
|
*/
|
|
5975
6028
|
declare function getP14TransitionAnimations(type: PptxTransitionType, durationMs: number, direction: string | undefined, orient?: string | undefined, pattern?: string | undefined): SlideTransitionAnimations | undefined;
|
|
5976
6029
|
|
|
6030
|
+
/**
|
|
6031
|
+
* Pure model types for the lit (bevel / scene quick style) SmartArt 3D path.
|
|
6032
|
+
*
|
|
6033
|
+
* Split out of `smartart-3d-types.ts` to keep both under the repo's LOC
|
|
6034
|
+
* budget. Every length is in layout pixels (the drawing's own EMU / 9525),
|
|
6035
|
+
* every angle in degrees, and every point in the mesh-local, y-up space the
|
|
6036
|
+
* mesh's `outline` uses.
|
|
6037
|
+
*
|
|
6038
|
+
* @module render/smartart-3d-solid-types
|
|
6039
|
+
*/
|
|
6040
|
+
/** A point in mesh-local 2D space (y-up). */
|
|
6041
|
+
interface SolidPoint2 {
|
|
6042
|
+
x: number;
|
|
6043
|
+
y: number;
|
|
6044
|
+
}
|
|
6045
|
+
/** One `a:bevelT` / `a:bevelB`, in layout pixels. */
|
|
6046
|
+
interface SmartArt3DBevel {
|
|
6047
|
+
/** Inset of the bevel from the outline (`@w`). */
|
|
6048
|
+
width: number;
|
|
6049
|
+
/** Relief of the bevel (`@h`). */
|
|
6050
|
+
height: number;
|
|
6051
|
+
/** `@prst` profile token (`circle` when absent, per ECMA-376). */
|
|
6052
|
+
profile: string;
|
|
6053
|
+
}
|
|
6054
|
+
/** A shape's resolved `a:sp3d`, in layout pixels. */
|
|
6055
|
+
interface SmartArt3DSolid {
|
|
6056
|
+
bevelTop?: SmartArt3DBevel;
|
|
6057
|
+
bevelBottom?: SmartArt3DBevel;
|
|
6058
|
+
/** Extrusion depth behind the front face (`@extrusionH`). */
|
|
6059
|
+
extrusion: number;
|
|
6060
|
+
/** Side-wall colour (`a:extrusionClr`), `#rrggbb`; the fill colour when absent. */
|
|
6061
|
+
extrusionColor?: string;
|
|
6062
|
+
/** Contour rim width around the whole solid (`@contourW`). */
|
|
6063
|
+
contourWidth: number;
|
|
6064
|
+
/** Contour colour (`a:contourClr`), `#rrggbb`. */
|
|
6065
|
+
contourColor?: string;
|
|
6066
|
+
/** `@prstMaterial` token. */
|
|
6067
|
+
material: string;
|
|
6068
|
+
}
|
|
6069
|
+
/** One gradient stop, `offset` in 0..1. */
|
|
6070
|
+
interface SmartArt3DGradientStop {
|
|
6071
|
+
offset: number;
|
|
6072
|
+
color: string;
|
|
6073
|
+
}
|
|
6074
|
+
/**
|
|
6075
|
+
* A shape's gradient fill, in mesh-local space: linear from `from` to `to`,
|
|
6076
|
+
* or radial around `from` with the distance to `to` as its radius.
|
|
6077
|
+
*/
|
|
6078
|
+
interface SmartArt3DGradient {
|
|
6079
|
+
kind: 'linear' | 'radial';
|
|
6080
|
+
from: SolidPoint2;
|
|
6081
|
+
to: SolidPoint2;
|
|
6082
|
+
stops: SmartArt3DGradientStop[];
|
|
6083
|
+
}
|
|
6084
|
+
/** The light rig (`a:lightRig`) a lit SmartArt scene is shaded with. */
|
|
6085
|
+
interface SmartArt3DLighting {
|
|
6086
|
+
/** `@rig` token, e.g. `threePt`, `flat`, `morning`. */
|
|
6087
|
+
rig: string;
|
|
6088
|
+
/** `@dir` token, e.g. `t`, `tl`. */
|
|
6089
|
+
direction: string;
|
|
6090
|
+
/** Rig revolution about the view axis (`a:rot/@rev`), degrees. */
|
|
6091
|
+
revDeg: number;
|
|
6092
|
+
}
|
|
6093
|
+
/**
|
|
6094
|
+
* The whole-diagram camera of a scene quick style (`dgm:styleDef/dgm:scene3d`).
|
|
6095
|
+
*
|
|
6096
|
+
* The diagram is rotated about its own centre by `latDeg` (about x), `lonDeg`
|
|
6097
|
+
* (about y) and `revDeg` (roll about the view axis), then projected either in
|
|
6098
|
+
* parallel or through a pinhole placed `distance` layout px away, and
|
|
6099
|
+
* finally scaled by `zoom`.
|
|
6100
|
+
*/
|
|
6101
|
+
interface SmartArt3DCamera {
|
|
6102
|
+
projection: 'orthographic' | 'perspective';
|
|
6103
|
+
latDeg: number;
|
|
6104
|
+
lonDeg: number;
|
|
6105
|
+
revDeg: number;
|
|
6106
|
+
/**
|
|
6107
|
+
* Camera distance from the diagram centre in layout px (`perspective`
|
|
6108
|
+
* only). Absolute, like PowerPoint's: a larger diagram shows stronger
|
|
6109
|
+
* perspective under the same preset.
|
|
6110
|
+
*/
|
|
6111
|
+
distance: number;
|
|
6112
|
+
/** `a:camera/@zoom` as a fraction (1 = 100%). */
|
|
6113
|
+
zoom: number;
|
|
6114
|
+
}
|
|
6115
|
+
|
|
5977
6116
|
/**
|
|
5978
6117
|
* Three.js SmartArt renderer - pure model types (phase 1: extruded layouts).
|
|
5979
6118
|
*
|
|
@@ -5987,6 +6126,7 @@ declare function getP14TransitionAnimations(type: PptxTransitionType, durationMs
|
|
|
5987
6126
|
* front face of every extruded block facing +z. Layout (SVG) space is y-down
|
|
5988
6127
|
* with the origin at the top-left; the model builder performs the flip.
|
|
5989
6128
|
*/
|
|
6129
|
+
|
|
5990
6130
|
/** A point in the world's XZ-agnostic 2D outline space (y-up). */
|
|
5991
6131
|
interface Point2 {
|
|
5992
6132
|
x: number;
|
|
@@ -6067,6 +6207,13 @@ interface SmartArt3DMesh {
|
|
|
6067
6207
|
halfWidth: number;
|
|
6068
6208
|
/** Half-height of the footprint. */
|
|
6069
6209
|
halfHeight: number;
|
|
6210
|
+
/**
|
|
6211
|
+
* Lit solid (bevel / extrusion / contour) from the cached shape's `a:sp3d`,
|
|
6212
|
+
* for the `'bevel'` and `'scene'` style categories. Absent: a flat face.
|
|
6213
|
+
*/
|
|
6214
|
+
solid?: SmartArt3DSolid;
|
|
6215
|
+
/** Gradient fill to paint instead of {@link fill}, when the shape has one. */
|
|
6216
|
+
gradient?: SmartArt3DGradient;
|
|
6070
6217
|
}
|
|
6071
6218
|
/**
|
|
6072
6219
|
* A multi-line text label, pre-laid-out to match the 2D SVG projection
|
|
@@ -6093,6 +6240,14 @@ interface SmartArt3DTextBlock {
|
|
|
6093
6240
|
fontFamily?: string;
|
|
6094
6241
|
fontWeight?: number;
|
|
6095
6242
|
fontStyle?: 'normal' | 'italic';
|
|
6243
|
+
/**
|
|
6244
|
+
* The label's own extrusion (`a:bodyPr/a:sp3d`, e.g. Bird's Eye Scene),
|
|
6245
|
+
* in layout px toward the viewer: the letters stand this far off the
|
|
6246
|
+
* shape face, and their sides are drawn in {@link extrusionColor} (the
|
|
6247
|
+
* text colour when absent).
|
|
6248
|
+
*/
|
|
6249
|
+
extrusion?: number;
|
|
6250
|
+
extrusionColor?: string;
|
|
6096
6251
|
}
|
|
6097
6252
|
/** A connector poly-line drawn between meshes on the base plane. */
|
|
6098
6253
|
interface SmartArt3DConnector {
|
|
@@ -6115,10 +6270,11 @@ type SmartArt3DFamily = 'list' | 'process' | 'cycle' | 'hierarchy' | 'matrix' |
|
|
|
6115
6270
|
* Which PowerPoint quick-style family this model was built for, so the scene
|
|
6116
6271
|
* builder can pick the right camera/shading/geometry pipeline: `'flat'`
|
|
6117
6272
|
* (unlit, zero-depth, orthographic matching the 2D viewBox), `'bevel'`
|
|
6118
|
-
* (per-shape `orthographicFront` camera + `
|
|
6119
|
-
*
|
|
6120
|
-
*
|
|
6121
|
-
* model (`buildSmartArt3DModel`), which predates this
|
|
6273
|
+
* (per-shape `orthographicFront` camera + lit `a:sp3d` bevel/material), or
|
|
6274
|
+
* `'scene'` (one whole-diagram camera from the quick style, lit extruded
|
|
6275
|
+
* solids). See `resolveSmartArt3DStylePath`. Undefined for the legacy
|
|
6276
|
+
* layout-engine model (`buildSmartArt3DModel`), which predates this
|
|
6277
|
+
* distinction.
|
|
6122
6278
|
*/
|
|
6123
6279
|
type SmartArt3DStyleCategory = 'flat' | 'bevel' | 'scene';
|
|
6124
6280
|
/** The complete pure 3D model for one SmartArt element. */
|
|
@@ -6132,6 +6288,10 @@ interface SmartArt3DModel {
|
|
|
6132
6288
|
background?: string;
|
|
6133
6289
|
/** See {@link SmartArt3DStyleCategory}. */
|
|
6134
6290
|
styleCategory?: SmartArt3DStyleCategory;
|
|
6291
|
+
/** Whole-diagram camera (`'scene'` only). */
|
|
6292
|
+
camera?: SmartArt3DCamera;
|
|
6293
|
+
/** Light rig the lit solids are shaded with (`'bevel'` / `'scene'`). */
|
|
6294
|
+
lighting?: SmartArt3DLighting;
|
|
6135
6295
|
}
|
|
6136
6296
|
|
|
6137
6297
|
/**
|
|
@@ -6384,6 +6544,267 @@ interface BarChart3DSceneOptions {
|
|
|
6384
6544
|
picture?: BarBoxPictureContext;
|
|
6385
6545
|
}
|
|
6386
6546
|
|
|
6547
|
+
/**
|
|
6548
|
+
* Axis labels for the right-angle-axes 3D bar chart
|
|
6549
|
+
* (`chart-3d-oblique-layout.ts`), placed where PowerPoint puts them: off the
|
|
6550
|
+
* FRONT edges of the box, not off the back wall.
|
|
6551
|
+
*
|
|
6552
|
+
* - Value labels: along the front edge of the wall that carries the value
|
|
6553
|
+
* gridlines (left edge for columns, bottom edge for a horizontal chart).
|
|
6554
|
+
* - Category labels: centred on each category along the other front edge.
|
|
6555
|
+
* - `standard` grouping: one series label per depth row, off the right end of
|
|
6556
|
+
* the floor (columns only; PowerPoint's horizontal standard bar has no row
|
|
6557
|
+
* axis labels in its default layout).
|
|
6558
|
+
*
|
|
6559
|
+
* @module chart-3d-oblique-labels
|
|
6560
|
+
*/
|
|
6561
|
+
|
|
6562
|
+
/** One label, in chart px. */
|
|
6563
|
+
interface ObliqueLabel {
|
|
6564
|
+
role: 'value' | 'category' | 'series';
|
|
6565
|
+
text: string;
|
|
6566
|
+
x: number;
|
|
6567
|
+
y: number;
|
|
6568
|
+
anchor: 'start' | 'middle' | 'end';
|
|
6569
|
+
/** `central` centres the text on `y`. */
|
|
6570
|
+
baseline: 'central' | 'hanging';
|
|
6571
|
+
fontSize: number;
|
|
6572
|
+
}
|
|
6573
|
+
|
|
6574
|
+
/**
|
|
6575
|
+
* World-space types of the right-angle-axes 3D bar chart layout
|
|
6576
|
+
* (`chart-3d-oblique-layout.ts`).
|
|
6577
|
+
*
|
|
6578
|
+
* @module chart-3d-oblique-types
|
|
6579
|
+
*/
|
|
6580
|
+
|
|
6581
|
+
/** One bar as a world-space box. */
|
|
6582
|
+
interface ObliqueBar {
|
|
6583
|
+
x: number;
|
|
6584
|
+
y: number;
|
|
6585
|
+
z: number;
|
|
6586
|
+
/** Extent along world X / Y / Z. */
|
|
6587
|
+
w: number;
|
|
6588
|
+
h: number;
|
|
6589
|
+
d: number;
|
|
6590
|
+
color: string;
|
|
6591
|
+
seriesIndex: number;
|
|
6592
|
+
categoryIndex: number;
|
|
6593
|
+
value: number;
|
|
6594
|
+
/** Resolved `c:shape` (per-series `c:ser/c:shape`, else the chart's). */
|
|
6595
|
+
shape: PptxBar3DShape;
|
|
6596
|
+
/** Cross-section radius at the bar's baseline / value end, as a fraction of the full footprint. */
|
|
6597
|
+
taper: ObliqueTaper;
|
|
6598
|
+
}
|
|
6599
|
+
/** How a shaped bar narrows along the value axis (1 = full footprint, 0 = a point). */
|
|
6600
|
+
interface ObliqueTaper {
|
|
6601
|
+
bottom: number;
|
|
6602
|
+
top: number;
|
|
6603
|
+
}
|
|
6604
|
+
/** A gridline segment in world space. */
|
|
6605
|
+
interface ObliqueGridline {
|
|
6606
|
+
from: readonly [number, number, number];
|
|
6607
|
+
to: readonly [number, number, number];
|
|
6608
|
+
}
|
|
6609
|
+
interface ObliqueChartLayout {
|
|
6610
|
+
horizontal: boolean;
|
|
6611
|
+
grouping: 'clustered' | 'stacked' | 'percentStacked' | 'standard';
|
|
6612
|
+
/** Chart px of world (0, 0, 0): the front-bottom-left corner of the floor. */
|
|
6613
|
+
origin: {
|
|
6614
|
+
x: number;
|
|
6615
|
+
y: number;
|
|
6616
|
+
};
|
|
6617
|
+
/** Screen shift per world unit of depth: `(sin rotY, -sin rotX)`. */
|
|
6618
|
+
shear: {
|
|
6619
|
+
x: number;
|
|
6620
|
+
y: number;
|
|
6621
|
+
};
|
|
6622
|
+
box: {
|
|
6623
|
+
w: number;
|
|
6624
|
+
h: number;
|
|
6625
|
+
d: number;
|
|
6626
|
+
};
|
|
6627
|
+
range: {
|
|
6628
|
+
min: number;
|
|
6629
|
+
max: number;
|
|
6630
|
+
majorUnit: number;
|
|
6631
|
+
};
|
|
6632
|
+
/** Chart px per value unit along the value axis. */
|
|
6633
|
+
valueScale: number;
|
|
6634
|
+
bars: ObliqueBar[];
|
|
6635
|
+
gridlines: ObliqueGridline[];
|
|
6636
|
+
labels: ObliqueLabel[];
|
|
6637
|
+
}
|
|
6638
|
+
|
|
6639
|
+
/**
|
|
6640
|
+
* Axis labels for the perspective 3D chart layout (`chart-3d-persp-layout.ts`),
|
|
6641
|
+
* placed where PowerPoint puts them (offsets measured on `gt/chart-10,11`):
|
|
6642
|
+
*
|
|
6643
|
+
* - Value labels: right-aligned 8pt left of the box's front-left edge.
|
|
6644
|
+
* - Category labels: centred below the front floor edge, 9pt left and 17pt
|
|
6645
|
+
* down from their point on it.
|
|
6646
|
+
* - Series (depth-row) labels: left-aligned off the right floor edge, 9pt right
|
|
6647
|
+
* and 4pt up from their row's centre on it.
|
|
6648
|
+
*
|
|
6649
|
+
* @module chart-3d-persp-labels
|
|
6650
|
+
*/
|
|
6651
|
+
|
|
6652
|
+
/** One label, in chart px. */
|
|
6653
|
+
interface PerspLabel {
|
|
6654
|
+
role: 'value' | 'category' | 'series';
|
|
6655
|
+
text: string;
|
|
6656
|
+
x: number;
|
|
6657
|
+
y: number;
|
|
6658
|
+
anchor: 'start' | 'middle' | 'end';
|
|
6659
|
+
fontSize: number;
|
|
6660
|
+
}
|
|
6661
|
+
|
|
6662
|
+
/**
|
|
6663
|
+
* PowerPoint's perspective 3D chart camera (`c:view3D/@rAngAx=0`: line3D,
|
|
6664
|
+
* area3D, surface3D), as a pure projection plus its three.js camera.
|
|
6665
|
+
*
|
|
6666
|
+
* Fitted to PowerPoint's own exports of the three-d-parity deck: the ends and
|
|
6667
|
+
* corners of every wall gridline in `gt/chart-10..12,16` were traced and a
|
|
6668
|
+
* camera fitted to them (0.4-2pt RMS per chart):
|
|
6669
|
+
*
|
|
6670
|
+
* - The plot is a box `w x h x d` (x categories, y values, z depth away from
|
|
6671
|
+
* the viewer). It is yawed by `rotY` about its vertical centre line, then
|
|
6672
|
+
* pitched toward the viewer by `0.92 * rotX` (the fitted pitch was
|
|
6673
|
+
* 13.6-14.0 degrees for every `rotX = 15` chart).
|
|
6674
|
+
* - The camera looks at the box centre from `diagonal / (2 tan(fov / 2))`
|
|
6675
|
+
* away, `fov` being `c:view3D/c:perspective` in degrees (default 30): the
|
|
6676
|
+
* box's bounding sphere just fills the field of view. The fitted distances
|
|
6677
|
+
* were 1.8-1.9 box diagonals.
|
|
6678
|
+
*
|
|
6679
|
+
* A box point `(x, y, z)` (origin at the front-bottom-left corner) lands at
|
|
6680
|
+
* chart px `(cx + f X / Z, cy - f Y / Z)`, `(X, Y, Z)` being the point in
|
|
6681
|
+
* camera space; {@link fitPerspView} picks `f`, `cx`, `cy` so the box fills a
|
|
6682
|
+
* target rect.
|
|
6683
|
+
*
|
|
6684
|
+
* @module chart-3d-persp-view
|
|
6685
|
+
*/
|
|
6686
|
+
|
|
6687
|
+
interface PerspBox {
|
|
6688
|
+
w: number;
|
|
6689
|
+
h: number;
|
|
6690
|
+
d: number;
|
|
6691
|
+
}
|
|
6692
|
+
interface PerspCamera {
|
|
6693
|
+
box: PerspBox;
|
|
6694
|
+
/** Yaw (`rotY`) in radians: positive brings the box's right end toward the viewer. */
|
|
6695
|
+
yaw: number;
|
|
6696
|
+
/** Pitch in radians: positive tips the top of the box away (the viewer looks down). */
|
|
6697
|
+
pitch: number;
|
|
6698
|
+
/** Camera distance from the box centre, world units. */
|
|
6699
|
+
dist: number;
|
|
6700
|
+
}
|
|
6701
|
+
interface PerspView extends PerspCamera {
|
|
6702
|
+
/** Focal length: chart px per world unit at unit depth. */
|
|
6703
|
+
focal: number;
|
|
6704
|
+
/** Chart px of the box centre. */
|
|
6705
|
+
cx: number;
|
|
6706
|
+
cy: number;
|
|
6707
|
+
}
|
|
6708
|
+
|
|
6709
|
+
/**
|
|
6710
|
+
* PowerPoint's perspective 3D chart layout (`c:view3D/@rAngAx=0`) for the
|
|
6711
|
+
* cartesian families (line3D, area3D, surface3D): the plot box, the camera
|
|
6712
|
+
* that frames it (`chart-3d-persp-view.ts`), the value axis, where each
|
|
6713
|
+
* category and depth row sits, and the wall gridlines.
|
|
6714
|
+
*
|
|
6715
|
+
* Calibrated against `gt/chart-10..13,16`:
|
|
6716
|
+
*
|
|
6717
|
+
* - The box is 1 unit wide (categories), `boxHeight` tall and one category
|
|
6718
|
+
* slot deep per depth row: a mark (area slab, line ribbon) is
|
|
6719
|
+
* `slot / (1 + gapWidth)` deep and each row `mark * (1 + gapDepth)`, which
|
|
6720
|
+
* with the 150/150 defaults is exactly one slot (fitted: 0.94-1.04).
|
|
6721
|
+
* `standard` grouping (and line3D) gives each series a row, series 1 in
|
|
6722
|
+
* front; stacked groupings share one row. A surface spans the whole floor.
|
|
6723
|
+
* - Categories sit at the slot centres (`c:crossBetween="between"`) or on the
|
|
6724
|
+
* slot edges, first and last on the walls (`midCat`, area and surface's
|
|
6725
|
+
* default).
|
|
6726
|
+
* - The value axis has no headroom (data topping out at 35 gets 0..35).
|
|
6727
|
+
* - The box fills a plot rect calibrated from the same exports, centred and
|
|
6728
|
+
* floor-aligned; walls carry gridlines only, the floor its two outer edges.
|
|
6729
|
+
*
|
|
6730
|
+
* @module chart-3d-persp-layout
|
|
6731
|
+
*/
|
|
6732
|
+
|
|
6733
|
+
type PerspKind = 'line' | 'area' | 'surface' | 'bar';
|
|
6734
|
+
type PerspGrouping = 'standard' | 'clustered' | 'stacked' | 'percentStacked';
|
|
6735
|
+
/** A gridline segment in box space. */
|
|
6736
|
+
interface PerspGridline {
|
|
6737
|
+
from: readonly [number, number, number];
|
|
6738
|
+
to: readonly [number, number, number];
|
|
6739
|
+
}
|
|
6740
|
+
interface PerspChartLayout {
|
|
6741
|
+
kind: PerspKind;
|
|
6742
|
+
grouping: PerspGrouping;
|
|
6743
|
+
view: PerspView;
|
|
6744
|
+
range: {
|
|
6745
|
+
min: number;
|
|
6746
|
+
max: number;
|
|
6747
|
+
majorUnit: number;
|
|
6748
|
+
};
|
|
6749
|
+
/** Box units per value unit. */
|
|
6750
|
+
valueScale: number;
|
|
6751
|
+
/** Box x of each category. */
|
|
6752
|
+
categoryX: number[];
|
|
6753
|
+
/** Number of depth rows and each row's depth. */
|
|
6754
|
+
rows: number;
|
|
6755
|
+
rowDepth: number;
|
|
6756
|
+
/** Depth of a slab or ribbon, centred in its row. */
|
|
6757
|
+
markDepth: number;
|
|
6758
|
+
/** Series colours, by series index. */
|
|
6759
|
+
colors: string[];
|
|
6760
|
+
gridlines: PerspGridline[];
|
|
6761
|
+
labels: PerspLabel[];
|
|
6762
|
+
}
|
|
6763
|
+
|
|
6764
|
+
/**
|
|
6765
|
+
* PowerPoint's 3-D Pie (`c:pie3DChart`) as a disc in the perspective chart
|
|
6766
|
+
* camera (`chart-3d-persp-view.ts`), fitted to `gt/chart-14,15`:
|
|
6767
|
+
*
|
|
6768
|
+
* - The pie is a puck of radius 1 and thickness `0.23` (box `2 x 0.23 x 2`,
|
|
6769
|
+
* scaled by `c:view3D/@hPercent`), pitched `0.91 * rotX` toward the viewer
|
|
6770
|
+
* (27.2 degrees fitted for rotX 30) and seen from `1.38` box diagonals: a
|
|
6771
|
+
* closer camera than the cartesian charts use, so the front of the pie is
|
|
6772
|
+
* visibly larger than the back.
|
|
6773
|
+
* - The first slice starts at 12 o'clock (plus `c:firstSliceAng`) and slices
|
|
6774
|
+
* run clockwise seen from above.
|
|
6775
|
+
* - The unexploded puck fits the plot rect; exploding shrinks the radius by
|
|
6776
|
+
* `1 / (1 + explosion)` and moves each slice out along its bisector by its
|
|
6777
|
+
* own explosion, so an exploded pie keeps the same footprint.
|
|
6778
|
+
*
|
|
6779
|
+
* @module chart-3d-pie-layout
|
|
6780
|
+
*/
|
|
6781
|
+
|
|
6782
|
+
interface PieSlice {
|
|
6783
|
+
pointIndex: number;
|
|
6784
|
+
value: number;
|
|
6785
|
+
color: string;
|
|
6786
|
+
/** Clockwise from 12 o'clock, radians. */
|
|
6787
|
+
startAngle: number;
|
|
6788
|
+
endAngle: number;
|
|
6789
|
+
/** Box-space offset of the exploded slice. */
|
|
6790
|
+
offset: {
|
|
6791
|
+
x: number;
|
|
6792
|
+
z: number;
|
|
6793
|
+
};
|
|
6794
|
+
}
|
|
6795
|
+
interface PieChartLayout {
|
|
6796
|
+
view: PerspView;
|
|
6797
|
+
/** Box-space centre of the pie's top face (its bottom face sits on y = 0). */
|
|
6798
|
+
center: {
|
|
6799
|
+
x: number;
|
|
6800
|
+
y: number;
|
|
6801
|
+
z: number;
|
|
6802
|
+
};
|
|
6803
|
+
radius: number;
|
|
6804
|
+
thickness: number;
|
|
6805
|
+
slices: PieSlice[];
|
|
6806
|
+
}
|
|
6807
|
+
|
|
6387
6808
|
/**
|
|
6388
6809
|
* chart-3d-projection.ts: resolve a chart's `c:view3D` into the projection
|
|
6389
6810
|
* PowerPoint actually draws it with.
|
|
@@ -6616,43 +7037,29 @@ interface SurfaceChart3DSceneOptions {
|
|
|
6616
7037
|
*/
|
|
6617
7038
|
|
|
6618
7039
|
/**
|
|
6619
|
-
*
|
|
6620
|
-
*
|
|
6621
|
-
* backward in world Z by `depthMagnitude`.
|
|
7040
|
+
* A right-angle-axes `bar3D` chart laid out as a real box in world space
|
|
7041
|
+
* (walls, gridlines, bars, axis labels); see `chart-3d-oblique-layout.ts`.
|
|
6622
7042
|
*/
|
|
6623
|
-
interface
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
w: number;
|
|
6627
|
-
h: number;
|
|
6628
|
-
color: string;
|
|
6629
|
-
seriesIndex: number;
|
|
6630
|
-
categoryIndex: number;
|
|
6631
|
-
/** The point's authored value (hover tooltip, drag start). */
|
|
6632
|
-
value: number;
|
|
6633
|
-
shape: PptxBar3DShape | undefined;
|
|
6634
|
-
/**
|
|
6635
|
-
* World-Z extrusion depth (SVG px units), the SAME quantity the flat 2D
|
|
6636
|
-
* fallback's `chart-3d-depth.ts#computeDepthVector` uses for its
|
|
6637
|
-
* `magnitude`. Every box in a supported (`clustered` / `stacked` /
|
|
6638
|
-
* `percentStacked`) grouping shares one chart-wide depth: those groupings
|
|
6639
|
-
* keep every series COPLANAR (one Z plane), matching PowerPoint's own
|
|
6640
|
-
* `gt/chart-01.webp` (no visible per-series depth separation). `standard`
|
|
6641
|
-
* grouping (each series its own full depth ROW, see `gt/chart-04.webp`)
|
|
6642
|
-
* is NOT yet modelled; see the chart track's progress log.
|
|
6643
|
-
*/
|
|
6644
|
-
depthMagnitude: number;
|
|
7043
|
+
interface Chart3DObliqueGeometry {
|
|
7044
|
+
kind: 'oblique';
|
|
7045
|
+
layout: ObliqueChartLayout;
|
|
6645
7046
|
}
|
|
6646
|
-
|
|
6647
|
-
|
|
6648
|
-
|
|
7047
|
+
/** A perspective (`rAngAx=0`) line / area chart on PowerPoint's box (`chart-3d-persp-layout.ts`). */
|
|
7048
|
+
interface Chart3DPerspGeometry {
|
|
7049
|
+
kind: 'perspective';
|
|
7050
|
+
layout: PerspChartLayout;
|
|
6649
7051
|
}
|
|
6650
|
-
/**
|
|
6651
|
-
|
|
7052
|
+
/** A 3-D Pie on PowerPoint's fitted perspective camera (`chart-3d-pie-layout.ts`). */
|
|
7053
|
+
interface Chart3DPieGeometry {
|
|
7054
|
+
kind: 'pie';
|
|
7055
|
+
layout: PieChartLayout;
|
|
7056
|
+
}
|
|
7057
|
+
/** `null` until a chart type's geometry is implemented; the scene then uses {@link Chart3DSpec.perspective}. */
|
|
7058
|
+
type Chart3DGeometry = Chart3DObliqueGeometry | Chart3DPerspGeometry | Chart3DPieGeometry | null;
|
|
6652
7059
|
/**
|
|
6653
7060
|
* The perspective scene a chart falls back to when the oblique geometry does
|
|
6654
|
-
* not cover it
|
|
6655
|
-
*
|
|
7061
|
+
* not cover it (line/area/pie/surface, and a bar3D chart without right-angle
|
|
7062
|
+
* axes). Each is a hosted scene module from the
|
|
6656
7063
|
* pre-`<pptx-three-view>` renderer, now drawn through the shared renderer.
|
|
6657
7064
|
*/
|
|
6658
7065
|
type Chart3DPerspectiveScene = {
|
|
@@ -6761,6 +7168,61 @@ declare function canAddTopLevelNode(layout: SmartArtLayoutType | undefined, topL
|
|
|
6761
7168
|
/** Whether removing a top-level node keeps the count at or above the min. */
|
|
6762
7169
|
declare function canRemoveTopLevelNode(layout: SmartArtLayoutType | undefined, topLevelCount: number): boolean;
|
|
6763
7170
|
|
|
7171
|
+
/**
|
|
7172
|
+
* SVG gradient paint servers for cached SmartArt drawing shapes (`a:gradFill`).
|
|
7173
|
+
* Split out of `smartart-drawing.ts`.
|
|
7174
|
+
*
|
|
7175
|
+
* @module render/smartart-drawing-gradient
|
|
7176
|
+
*/
|
|
7177
|
+
|
|
7178
|
+
/** One stop of a cached shape's gradient fill, ready to place as an SVG `<stop>`. */
|
|
7179
|
+
interface RenderedGradientStop {
|
|
7180
|
+
/** Percentage offset, e.g. `"37%"`. */
|
|
7181
|
+
offset: string;
|
|
7182
|
+
color: string;
|
|
7183
|
+
opacity?: number;
|
|
7184
|
+
}
|
|
7185
|
+
/**
|
|
7186
|
+
* A gradient paint server for a cached shape, in SVG terms.
|
|
7187
|
+
*
|
|
7188
|
+
* The OOXML angle is already converted to the axis endpoints here, because a
|
|
7189
|
+
* gradient is not expressible as a plain `fill` string: the binding has to emit
|
|
7190
|
+
* a `<defs>` entry and reference it. Keeping the geometry on this side means the
|
|
7191
|
+
* conversion happens once instead of once per binding.
|
|
7192
|
+
*/
|
|
7193
|
+
interface RenderedGradient {
|
|
7194
|
+
/** Element id to emit and reference; unique within the diagram. */
|
|
7195
|
+
id: string;
|
|
7196
|
+
kind: 'linear' | 'radial';
|
|
7197
|
+
/** Axis endpoints as percentages (`kind === 'linear'`). */
|
|
7198
|
+
x1?: string;
|
|
7199
|
+
y1?: string;
|
|
7200
|
+
x2?: string;
|
|
7201
|
+
y2?: string;
|
|
7202
|
+
/** Centre and radius as percentages (`kind === 'radial'`). */
|
|
7203
|
+
cx?: string;
|
|
7204
|
+
cy?: string;
|
|
7205
|
+
r?: string;
|
|
7206
|
+
stops: RenderedGradientStop[];
|
|
7207
|
+
}
|
|
7208
|
+
|
|
7209
|
+
/**
|
|
7210
|
+
* The SVG `viewBox` that fits a SmartArt drawing's cached shapes. Split out of
|
|
7211
|
+
* `smartart-drawing.ts`.
|
|
7212
|
+
*
|
|
7213
|
+
* @module render/smartart-drawing-viewbox
|
|
7214
|
+
*/
|
|
7215
|
+
|
|
7216
|
+
/** SVG `viewBox` bounding-box derived from all drawing shapes. */
|
|
7217
|
+
interface DrawingViewBox {
|
|
7218
|
+
minX: number;
|
|
7219
|
+
minY: number;
|
|
7220
|
+
width: number;
|
|
7221
|
+
height: number;
|
|
7222
|
+
}
|
|
7223
|
+
/** Compute the SVG viewBox that fits all drawing shapes, rebasing to (0, 0). */
|
|
7224
|
+
declare function computeDrawingViewBox(shapes: readonly PptxSmartArtDrawingShape[]): DrawingViewBox;
|
|
7225
|
+
|
|
6764
7226
|
/**
|
|
6765
7227
|
* Line layout for centred SVG labels (SmartArt nodes and cached shapes).
|
|
6766
7228
|
*
|
|
@@ -6793,6 +7255,7 @@ interface SvgTextLine {
|
|
|
6793
7255
|
|
|
6794
7256
|
/** Built-in named colour palettes (mirrors the Vue/React `PALETTES`). */
|
|
6795
7257
|
declare const PALETTES: Record<SmartArtColorScheme, string[]>;
|
|
7258
|
+
|
|
6796
7259
|
declare const DEFAULT_PALETTE: string[];
|
|
6797
7260
|
/** Pick a colour from `palette`, wrapping `index` around its length. */
|
|
6798
7261
|
declare function paletteColour(index: number, palette: string[]): string;
|
|
@@ -6813,36 +7276,6 @@ declare function buildChromeStyle(chrome: PptxSmartArtChrome | undefined): CssSt
|
|
|
6813
7276
|
* primitive cannot leave four bindings behind.
|
|
6814
7277
|
*/
|
|
6815
7278
|
type RenderedShapeKind = 'image' | 'ellipse' | 'path' | 'rect';
|
|
6816
|
-
/** One stop of a cached shape's gradient fill, ready to place as an SVG `<stop>`. */
|
|
6817
|
-
interface RenderedGradientStop {
|
|
6818
|
-
/** Percentage offset, e.g. `"37%"`. */
|
|
6819
|
-
offset: string;
|
|
6820
|
-
color: string;
|
|
6821
|
-
opacity?: number;
|
|
6822
|
-
}
|
|
6823
|
-
/**
|
|
6824
|
-
* A gradient paint server for a cached shape, in SVG terms.
|
|
6825
|
-
*
|
|
6826
|
-
* The OOXML angle is already converted to the axis endpoints here, because a
|
|
6827
|
-
* gradient is not expressible as a plain `fill` string: the binding has to emit
|
|
6828
|
-
* a `<defs>` entry and reference it. Keeping the geometry on this side means the
|
|
6829
|
-
* conversion happens once instead of once per binding.
|
|
6830
|
-
*/
|
|
6831
|
-
interface RenderedGradient {
|
|
6832
|
-
/** Element id to emit and reference; unique within the diagram. */
|
|
6833
|
-
id: string;
|
|
6834
|
-
kind: 'linear' | 'radial';
|
|
6835
|
-
/** Axis endpoints as percentages (`kind === 'linear'`). */
|
|
6836
|
-
x1?: string;
|
|
6837
|
-
y1?: string;
|
|
6838
|
-
x2?: string;
|
|
6839
|
-
y2?: string;
|
|
6840
|
-
/** Centre and radius as percentages (`kind === 'radial'`). */
|
|
6841
|
-
cx?: string;
|
|
6842
|
-
cy?: string;
|
|
6843
|
-
r?: string;
|
|
6844
|
-
stops: RenderedGradientStop[];
|
|
6845
|
-
}
|
|
6846
7279
|
/** Projected view-model for a single pre-computed drawing shape. */
|
|
6847
7280
|
interface RenderedShape {
|
|
6848
7281
|
key: string;
|
|
@@ -6865,6 +7298,11 @@ interface RenderedShape {
|
|
|
6865
7298
|
cy: number;
|
|
6866
7299
|
/** Paint for the body, or `'none'` when the shape declares `a:noFill`. */
|
|
6867
7300
|
fill: string;
|
|
7301
|
+
/**
|
|
7302
|
+
* Opacity (0..1) to paint a solid {@link fill} at, from the cached colour's
|
|
7303
|
+
* `a:alpha`; absent when opaque. Maps onto SVG `fill-opacity`.
|
|
7304
|
+
*/
|
|
7305
|
+
fillOpacity?: number;
|
|
6868
7306
|
stroke: string;
|
|
6869
7307
|
strokeWidth: number;
|
|
6870
7308
|
transform: string | undefined;
|
|
@@ -6892,15 +7330,6 @@ interface RenderedShape {
|
|
|
6892
7330
|
fontWeight?: number;
|
|
6893
7331
|
fontStyle?: 'normal' | 'italic';
|
|
6894
7332
|
}
|
|
6895
|
-
/** SVG `viewBox` bounding-box derived from all drawing shapes. */
|
|
6896
|
-
interface DrawingViewBox {
|
|
6897
|
-
minX: number;
|
|
6898
|
-
minY: number;
|
|
6899
|
-
width: number;
|
|
6900
|
-
height: number;
|
|
6901
|
-
}
|
|
6902
|
-
/** Compute the SVG viewBox that fits all drawing shapes, rebasing to (0, 0). */
|
|
6903
|
-
declare function computeDrawingViewBox(shapes: readonly PptxSmartArtDrawingShape[]): DrawingViewBox;
|
|
6904
7333
|
/**
|
|
6905
7334
|
* Project raw `PptxSmartArtDrawingShape`s into `RenderedShape` view-models,
|
|
6906
7335
|
* rebasing positions relative to the viewBox origin.
|
|
@@ -21661,6 +22090,8 @@ declare class AnimationAuthorPanelComponent {
|
|
|
21661
22090
|
protected readonly elementKey: _angular_core.Signal<string>;
|
|
21662
22091
|
/** The animation entry for the currently selected element, if any. */
|
|
21663
22092
|
protected readonly current: _angular_core.Signal<PptxElementAnimation | undefined>;
|
|
22093
|
+
/** Unset curve shows as `linear`: that is what the writer saves and PowerPoint plays. */
|
|
22094
|
+
protected readonly currentTimingCurve: _angular_core.Signal<pptx_viewer_core.PptxAnimationTimingCurve>;
|
|
21664
22095
|
/** True when the element has at least one effect (entrance/exit/emphasis). */
|
|
21665
22096
|
protected readonly currentHasAnimation: _angular_core.Signal<boolean>;
|
|
21666
22097
|
/** True when the active preset exposes a direction picker. */
|
|
@@ -23710,7 +24141,7 @@ declare class AccountPageComponent {
|
|
|
23710
24141
|
readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
|
|
23711
24142
|
private readonly translate;
|
|
23712
24143
|
protected readonly swatches: readonly string[];
|
|
23713
|
-
protected readonly version = "4.
|
|
24144
|
+
protected readonly version = "4.7.0";
|
|
23714
24145
|
protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
|
|
23715
24146
|
protected readonly initial: _angular_core.Signal<string>;
|
|
23716
24147
|
protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
|