pptx-angular-viewer 2.8.0 → 2.10.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 +4 -0
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-_hp54uuv.mjs → pptx-angular-viewer-chat-history-idb-BqhL79Dq.mjs} +2 -2
- package/fesm2022/{pptx-angular-viewer-chat-history-idb-_hp54uuv.mjs.map → pptx-angular-viewer-chat-history-idb-BqhL79Dq.mjs.map} +1 -1
- package/fesm2022/{pptx-angular-viewer-pptx-angular-viewer-IZyo-oMV.mjs → pptx-angular-viewer-pptx-angular-viewer-C20L99Zu.mjs} +10626 -4334
- package/fesm2022/pptx-angular-viewer-pptx-angular-viewer-C20L99Zu.mjs.map +1 -0
- package/fesm2022/pptx-angular-viewer.mjs +1 -1
- package/package.json +2 -2
- package/pptx-angular-viewer.css +1 -1
- package/types/pptx-angular-viewer.d.ts +1151 -166
- package/fesm2022/pptx-angular-viewer-pptx-angular-viewer-IZyo-oMV.mjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as pptx_viewer_core from 'pptx-viewer-core';
|
|
2
|
-
import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationDirection, PptxAnimationRepeatMode, PptxAnimationSequence, PptxAnimationTimingCurve, PptxAnimationTrigger, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, InkPptxElement, PptxComment, PptxChartType, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, PptxCustomShow, MasterViewTab, SvgExportOptions, Model3DPptxElement, ZoomPptxElement,
|
|
2
|
+
import { PptxThemePreset, PptxSlide, PptxElement, ShapeStyle, PptxTextWarpPreset, XmlObject, PptxChartSeries, PptxChartData, PptxElementAnimation, PptxAnimationPreset, PptxAnimationDirection, PptxAnimationRepeatMode, PptxAnimationSequence, PptxAnimationTimingCurve, PptxAnimationTrigger, ParsedTableStyleMap, PptxThemeColorScheme, PptxThemeFontScheme, TablePptxElement, PptxSection, OlePptxElement, TextSegment, TextStyle, PptxTransitionType, PptxSlideTransition, SmartArtColorScheme, PptxSmartArtChrome, PptxSmartArtDrawingShape, SmartArtStyle, PptxSmartArtData, PptxEmbeddedFont, SmartArtLayout, AccessibilityIssueSeverity, AccessibilityIssue, AccessibilityIssueType, AccessibilityCheckOptions, ElementActionType, InkPptxElement, PptxComment, PptxChartType, PptxTheme, PptxHandler, PptxData, PptxHeaderFooter, PptxSlideMaster, PptxNotesMaster, PptxHandoutMaster, PptxPresentationProperties, PptxCoreProperties, PptxAppProperties, PptxThemeOption, PptxCustomProperty, PptxTagCollection, ParsedSignature, PptxSaveFormat, PptxTableCell, PptxTableCellStyle, PptxTableRow, PptxTableData, PptxCustomShow, MasterViewTab, SvgExportOptions, Model3DPptxElement, ZoomPptxElement, ChartPptxElement, MediaPptxElement, SmartArtPptxElement, MaterialPresetType, Text3DStyle, BevelPresetType, PptxChartDataLabelOptions, PptxChartAxisType, PptxChartAxisFormatting, PptxChartDataPoint, PptxChartTrendline, PptxChartErrBars, SignatureStatus, ElementAction, PptxImageEffects, MediaBookmark, ColorMapAliasKey, ChartAxisEdit, ChartDataPointLabelEdit, PptxChartLegendPosition, PptxChartStyle, ChartAxisTitleStyleEdit, ChartGridlineStyleEdit, PptxChartMarkerSymbol, PptxSmartArtNode, SmartArtLayoutType, PptxSmartArtNodeStyle, MediaCaptionTrack, PptxMediaType } from 'pptx-viewer-core';
|
|
3
3
|
export { SWITCHABLE_LAYOUT_TYPES, addSmartArtNode, addSmartArtNodeAsChild, chartDataAddCategory, chartDataAddSeries, chartDataChangeType, chartDataRemoveCategory, chartDataRemoveSeries, chartDataUpdatePoint, demoteSmartArtNode, promoteSmartArtNode, removeSmartArtNode, reorderSmartArtNode, switchSmartArtLayout, updateSmartArtNodeText } from 'pptx-viewer-core';
|
|
4
4
|
import * as _angular_core from '@angular/core';
|
|
5
|
-
import { Signal, WritableSignal, OnDestroy, OnInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
|
|
5
|
+
import { Signal, WritableSignal, OnDestroy, OnInit, AfterViewInit, OnChanges, SimpleChanges, InjectionToken, Provider } from '@angular/core';
|
|
6
6
|
import * as AiSdk from 'ai';
|
|
7
7
|
import { LanguageModel, ChatTransport, UIMessage, ToolSet } from 'ai';
|
|
8
8
|
import * as pptx_angular_viewer from 'pptx-angular-viewer';
|
|
@@ -388,7 +388,7 @@ declare const DEFAULT_STROKE_COLOR = "#1f2937";
|
|
|
388
388
|
* The resolution priority mirrors React exactly:
|
|
389
389
|
*
|
|
390
390
|
* 1. **Adjustment-aware** — when `shapeAdjustments` exist, consult
|
|
391
|
-
* {@link
|
|
391
|
+
* {@link getAdjustmentAwareClipPath} so `pie`, `arc`, `donut`,
|
|
392
392
|
* `blockArc`, and wedge callouts respond to their adjustment values.
|
|
393
393
|
* 2. **Spec-correct preset evaluator** — {@link getShapeClipPathFromPreset}
|
|
394
394
|
* produces a `path('…')` clip-path for any shape in the preset table.
|
|
@@ -396,6 +396,18 @@ declare const DEFAULT_STROKE_COLOR = "#1f2937";
|
|
|
396
396
|
* `cloud` / `cloudCallout`.
|
|
397
397
|
* 4. **Static preset table** — {@link getShapeClipPath} as the final
|
|
398
398
|
* fallback (core's comprehensive `PRESET_SHAPE_CLIP_PATHS`).
|
|
399
|
+
*
|
|
400
|
+
* Step 1 deliberately calls the DYNAMIC-only entry point
|
|
401
|
+
* ({@link getAdjustmentAwareClipPath}) rather than core's
|
|
402
|
+
* `getAdjustmentAwareShapeClipPath` wrapper. That wrapper falls back to the
|
|
403
|
+
* static, adjustment-BLIND polygon table whenever a shape is outside its
|
|
404
|
+
* 14-shape dynamic set, and returning that at step 1 swallowed the whole rest
|
|
405
|
+
* of the cascade: every preset carrying an authored `a:avLst` adjustment
|
|
406
|
+
* (parallelogram, trapezoid, teardrop, notchedRightArrow, round2SameRect, the
|
|
407
|
+
* arrows…) was clipped with its DEFAULT adjustment instead of its own. A
|
|
408
|
+
* parallelogram authored at `adj="84929"` — a thin diagonal band — rendered as
|
|
409
|
+
* the 25000-default polygon covering ~80% of its box and occluded the text
|
|
410
|
+
* behind it (issue #132).
|
|
399
411
|
*/
|
|
400
412
|
|
|
401
413
|
/**
|
|
@@ -511,6 +523,104 @@ declare function buildPatternFillCss(style: ShapeStyle | undefined): {
|
|
|
511
523
|
backgroundColor: string;
|
|
512
524
|
} | undefined;
|
|
513
525
|
|
|
526
|
+
/**
|
|
527
|
+
* OOXML gradient fill (`a:gradFill`) → SVG paint server.
|
|
528
|
+
*
|
|
529
|
+
* The CSS resolvers in `fill-style.ts` cover every shape a binding paints as an
|
|
530
|
+
* HTML box (a `background-image` clipped by `clip-path`). Freeform geometry is
|
|
531
|
+
* different: `a:custGeom` shapes are painted as a real SVG `<path>`, and an SVG
|
|
532
|
+
* `fill` attribute cannot take a CSS gradient. Renderers therefore fell back to
|
|
533
|
+
* the parser's *representative* solid colour, so a freeform authored with a
|
|
534
|
+
* left-to-right fade rendered as one flat block and any transparent region of
|
|
535
|
+
* the gradient became opaque (issue #132).
|
|
536
|
+
*
|
|
537
|
+
* This module converts the same structured `ShapeStyle` gradient data into an
|
|
538
|
+
* SVG `<linearGradient>` / `<radialGradient>` descriptor plus the `url(#id)`
|
|
539
|
+
* reference to put in `fill`. It stays framework-agnostic: JSX/template
|
|
540
|
+
* bindings read {@link SvgGradientDef} and emit their own elements, while
|
|
541
|
+
* string-building bindings can use {@link svgGradientMarkup}.
|
|
542
|
+
*
|
|
543
|
+
* Reference: ECMA-376 Part 1, §20.1.8.35 (gradFill) and §20.1.8.49 (path).
|
|
544
|
+
*/
|
|
545
|
+
|
|
546
|
+
/** One `<stop>` of an SVG gradient. */
|
|
547
|
+
interface SvgGradientStopDef {
|
|
548
|
+
/** Stop offset as a fraction of the gradient line (0-1). */
|
|
549
|
+
offset: number;
|
|
550
|
+
/** Stop colour as `#RRGGBB`. */
|
|
551
|
+
color: string;
|
|
552
|
+
/** Stop alpha (0-1). Omitted when the stop is fully opaque. */
|
|
553
|
+
opacity?: number;
|
|
554
|
+
}
|
|
555
|
+
/** An SVG `<linearGradient>` in `objectBoundingBox` units. */
|
|
556
|
+
interface SvgLinearGradientDef {
|
|
557
|
+
kind: 'linear';
|
|
558
|
+
id: string;
|
|
559
|
+
x1: number;
|
|
560
|
+
y1: number;
|
|
561
|
+
x2: number;
|
|
562
|
+
y2: number;
|
|
563
|
+
stops: SvgGradientStopDef[];
|
|
564
|
+
}
|
|
565
|
+
/** An SVG `<radialGradient>` in `objectBoundingBox` units. */
|
|
566
|
+
interface SvgRadialGradientDef {
|
|
567
|
+
kind: 'radial';
|
|
568
|
+
id: string;
|
|
569
|
+
cx: number;
|
|
570
|
+
cy: number;
|
|
571
|
+
r: number;
|
|
572
|
+
stops: SvgGradientStopDef[];
|
|
573
|
+
}
|
|
574
|
+
/** Either flavour of SVG gradient produced by {@link buildSvgGradientDef}. */
|
|
575
|
+
type SvgGradientDef = SvgLinearGradientDef | SvgRadialGradientDef;
|
|
576
|
+
/**
|
|
577
|
+
* An SVG `<pattern>` paint server for a preset pattern OUTLINE.
|
|
578
|
+
*
|
|
579
|
+
* The tile is carried as a data-URI `<image>` rather than inline primitives so
|
|
580
|
+
* every binding can render the `<pattern>` from plain attribute bindings, with
|
|
581
|
+
* no raw-markup injection (which Angular's template sanitiser would fight).
|
|
582
|
+
*/
|
|
583
|
+
interface SvgPatternDef {
|
|
584
|
+
kind: 'pattern';
|
|
585
|
+
id: string;
|
|
586
|
+
/** Tile size in user-space px; the pattern repeats on this grid. */
|
|
587
|
+
width: number;
|
|
588
|
+
height: number;
|
|
589
|
+
/** `data:image/svg+xml,…` of one rendered tile. */
|
|
590
|
+
href: string;
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
/**
|
|
594
|
+
* Gradient and pattern OUTLINES (`a:ln/a:gradFill`, `a:ln/a:pattFill`).
|
|
595
|
+
*
|
|
596
|
+
* Every binding paints a shape's outline as a CSS `border`, which can only take
|
|
597
|
+
* a single flat colour. A gradient outline was therefore rendered with the
|
|
598
|
+
* parser's averaged `strokeColor` (two-tone came out flat, fade-to-transparent
|
|
599
|
+
* came out opaque), and a patterned outline with the pattern's foreground alone,
|
|
600
|
+
* so the hatching disappeared entirely.
|
|
601
|
+
*
|
|
602
|
+
* CSS has no way to fix either in place - `border-image` ignores `border-radius`
|
|
603
|
+
* and cannot follow a `clip-path` - so the outline is instead stroked as a real
|
|
604
|
+
* SVG path laid over the element, using the shape's own resolved geometry. This
|
|
605
|
+
* module turns an element into everything a binding needs for that overlay; the
|
|
606
|
+
* bindings supply only the ~10 lines of view layer.
|
|
607
|
+
*/
|
|
608
|
+
|
|
609
|
+
/** The paint server an outline is stroked with: a gradient or a pattern. */
|
|
610
|
+
type StrokeOutlinePaint = SvgGradientDef | SvgPatternDef;
|
|
611
|
+
/** Everything needed to stroke one shape's outline as an SVG overlay. */
|
|
612
|
+
interface StrokeOutline {
|
|
613
|
+
/** Path data in the element's own pixel space (viewBox `0 0 width height`). */
|
|
614
|
+
d: string;
|
|
615
|
+
/** Paint server to define in `<defs>` and reference from the path's `stroke`. */
|
|
616
|
+
paint: StrokeOutlinePaint;
|
|
617
|
+
strokeWidth: number;
|
|
618
|
+
/** SVG `stroke-dasharray`, or `undefined` for a solid line. */
|
|
619
|
+
dashArray: string | undefined;
|
|
620
|
+
lineCap: 'butt' | 'round' | 'square';
|
|
621
|
+
lineJoin: 'round' | 'bevel' | 'miter';
|
|
622
|
+
}
|
|
623
|
+
|
|
514
624
|
/**
|
|
515
625
|
* Stroke/dash normalisation, compound-line box-shadow generation, SVG
|
|
516
626
|
* dasharray, element transform strings, and drawing-unit parsing. Pure
|
|
@@ -1688,6 +1798,127 @@ interface CellCoord {
|
|
|
1688
1798
|
*/
|
|
1689
1799
|
declare function setCellText(element: TablePptxElement, rowIndex: number, colIndex: number, text: string): TablePptxElement;
|
|
1690
1800
|
|
|
1801
|
+
/**
|
|
1802
|
+
* table-data-grid.ts: framework-agnostic render model for the inspector's table
|
|
1803
|
+
* data grid (the spreadsheet-like editor that edits table cell TEXT from the
|
|
1804
|
+
* sidebar, as opposed to on-canvas cell editing).
|
|
1805
|
+
*
|
|
1806
|
+
* The matching mutations live in `table-data-grid-ops.ts`; both are exported
|
|
1807
|
+
* from the package barrel and are one feature in two files, split only to stay
|
|
1808
|
+
* inside the repo's 300 LOC ceiling.
|
|
1809
|
+
*
|
|
1810
|
+
* WHY this model exists rather than each binding reading `tableData` directly:
|
|
1811
|
+
* the grid is the table analogue of the chart data grid every binding already
|
|
1812
|
+
* ships, and without a shared layer all five re-derive the same two awkward
|
|
1813
|
+
* details and drift apart.
|
|
1814
|
+
*
|
|
1815
|
+
* 1. **Ragged rows.** `PptxTableData.rows[i].cells` is not guaranteed to be
|
|
1816
|
+
* `columnWidths.length` long (merged spans and malformed decks both produce
|
|
1817
|
+
* short rows). A view that iterates `row.cells` renders a lopsided grid and
|
|
1818
|
+
* silently hides the trailing cells. `buildTableDataGrid` normalises every
|
|
1819
|
+
* row to exactly `colCount` entries so the view can iterate blindly.
|
|
1820
|
+
* 2. **The last-row/last-column floor.** A table may not be reduced to zero
|
|
1821
|
+
* rows or zero columns, so remove controls must be disabled at 1. Exposing
|
|
1822
|
+
* `canRemoveRow` / `canRemoveColumn` on the model keeps that rule in one
|
|
1823
|
+
* place instead of in five templates.
|
|
1824
|
+
*
|
|
1825
|
+
* @module render/table-data-grid
|
|
1826
|
+
*/
|
|
1827
|
+
|
|
1828
|
+
/** One editable cell in the inspector grid, carrying its own coordinates. */
|
|
1829
|
+
interface TableDataGridCell {
|
|
1830
|
+
/** Zero-based row index within the table. */
|
|
1831
|
+
rowIndex: number;
|
|
1832
|
+
/** Zero-based column index within the table. */
|
|
1833
|
+
colIndex: number;
|
|
1834
|
+
/** Current plain-text content, `''` when the underlying cell is missing. */
|
|
1835
|
+
text: string;
|
|
1836
|
+
}
|
|
1837
|
+
/** One row of the inspector grid, normalised to the table's column count. */
|
|
1838
|
+
interface TableDataGridRow {
|
|
1839
|
+
/** Zero-based row index within the table. */
|
|
1840
|
+
rowIndex: number;
|
|
1841
|
+
/** Exactly `colCount` cells, left to right. */
|
|
1842
|
+
cells: TableDataGridCell[];
|
|
1843
|
+
}
|
|
1844
|
+
/** Everything a binding's table-data-grid view needs to render itself. */
|
|
1845
|
+
interface TableDataGridModel {
|
|
1846
|
+
/** Number of rows in the table. */
|
|
1847
|
+
rowCount: number;
|
|
1848
|
+
/** Number of columns, taken from `columnWidths` (the authoritative count). */
|
|
1849
|
+
colCount: number;
|
|
1850
|
+
/** `[0, 1, ... colCount - 1]`, so templates can render column headers. */
|
|
1851
|
+
colIndices: number[];
|
|
1852
|
+
/** Normalised rows; safe to iterate without bounds checks. */
|
|
1853
|
+
rows: TableDataGridRow[];
|
|
1854
|
+
/** False when removing a row would empty the table (or there is no data). */
|
|
1855
|
+
canRemoveRow: boolean;
|
|
1856
|
+
/** False when removing a column would empty the table (or there is no data). */
|
|
1857
|
+
canRemoveColumn: boolean;
|
|
1858
|
+
}
|
|
1859
|
+
|
|
1860
|
+
/**
|
|
1861
|
+
* table-data-grid-ops.ts: element-level, immutable row/column/cell operations
|
|
1862
|
+
* behind the inspector's table data grid.
|
|
1863
|
+
*
|
|
1864
|
+
* Split out of `table-data-grid.ts` (which owns the render model and its types)
|
|
1865
|
+
* to keep both files inside the repo's 300 LOC ceiling. Import either through
|
|
1866
|
+
* the package barrel; they are one feature in two files.
|
|
1867
|
+
*
|
|
1868
|
+
* WHY these wrap the primitives in `table-layout` rather than calling them
|
|
1869
|
+
* directly from a view:
|
|
1870
|
+
*
|
|
1871
|
+
* 1. **The "append / remove last" dance.** The grid's header buttons operate on
|
|
1872
|
+
* the END of the table, but the primitives are positional
|
|
1873
|
+
* (`insertTableRow(td, idx, 'below')`). Without these wrappers every binding
|
|
1874
|
+
* re-writes the same `count - 1` clamp and gets it wrong for an empty table.
|
|
1875
|
+
* 2. **rawXml synchronisation**, which is load-bearing: see {@link withTableData}.
|
|
1876
|
+
*
|
|
1877
|
+
* They take and return a whole `TablePptxElement` so an inspector can hand the
|
|
1878
|
+
* result straight to the binding's `updateElement` edit path as a single history
|
|
1879
|
+
* entry. The underlying transforms are the merge-AWARE ones in `table-layout`,
|
|
1880
|
+
* so existing merge spans are adjusted rather than destroyed.
|
|
1881
|
+
*
|
|
1882
|
+
* Every function is pure: the input element is never mutated.
|
|
1883
|
+
*
|
|
1884
|
+
* @module render/table-data-grid-ops
|
|
1885
|
+
*/
|
|
1886
|
+
|
|
1887
|
+
/**
|
|
1888
|
+
* Insert a blank row above or below `rowIdx`, preserving merge spans.
|
|
1889
|
+
*
|
|
1890
|
+
* @param element - The source table element (not mutated).
|
|
1891
|
+
* @param rowIdx - Zero-based reference row.
|
|
1892
|
+
* @param position - Whether the new row goes above or below the reference row.
|
|
1893
|
+
* @returns A new element with the row inserted.
|
|
1894
|
+
*/
|
|
1895
|
+
declare function insertTableElementRow(element: TablePptxElement, rowIdx: number, position: 'above' | 'below'): TablePptxElement;
|
|
1896
|
+
/**
|
|
1897
|
+
* Remove the row at `rowIdx`, preserving merge spans. No-op on the last row.
|
|
1898
|
+
*
|
|
1899
|
+
* @param element - The source table element (not mutated).
|
|
1900
|
+
* @param rowIdx - Zero-based row to remove.
|
|
1901
|
+
* @returns A new element with the row removed.
|
|
1902
|
+
*/
|
|
1903
|
+
declare function removeTableElementRow(element: TablePptxElement, rowIdx: number): TablePptxElement;
|
|
1904
|
+
/**
|
|
1905
|
+
* Insert a blank column left or right of `colIdx`, preserving merge spans.
|
|
1906
|
+
*
|
|
1907
|
+
* @param element - The source table element (not mutated).
|
|
1908
|
+
* @param colIdx - Zero-based reference column.
|
|
1909
|
+
* @param position - Whether the new column goes left or right of the reference.
|
|
1910
|
+
* @returns A new element with the column inserted.
|
|
1911
|
+
*/
|
|
1912
|
+
declare function insertTableElementColumn(element: TablePptxElement, colIdx: number, position: 'left' | 'right'): TablePptxElement;
|
|
1913
|
+
/**
|
|
1914
|
+
* Remove the column at `colIdx`, preserving merge spans. No-op on the last one.
|
|
1915
|
+
*
|
|
1916
|
+
* @param element - The source table element (not mutated).
|
|
1917
|
+
* @param colIdx - Zero-based column to remove.
|
|
1918
|
+
* @returns A new element with the column removed.
|
|
1919
|
+
*/
|
|
1920
|
+
declare function removeTableElementColumn(element: TablePptxElement, colIdx: number): TablePptxElement;
|
|
1921
|
+
|
|
1691
1922
|
/**
|
|
1692
1923
|
* table-style-presets.ts - framework-agnostic table style preset catalogue.
|
|
1693
1924
|
*
|
|
@@ -2322,6 +2553,57 @@ declare function computeSnap(box: SnapBox, others: readonly SnapBox[], threshold
|
|
|
2322
2553
|
*/
|
|
2323
2554
|
declare function snapToGridStep(value: number, step: number): number;
|
|
2324
2555
|
|
|
2556
|
+
/**
|
|
2557
|
+
* Ruler tick-generation + constants shared by the React, Vue, and Angular
|
|
2558
|
+
* editors. Pure (unit-testable); each binding renders the generated ticks.
|
|
2559
|
+
*/
|
|
2560
|
+
/** CSS pixels per inch at 96 dpi. */
|
|
2561
|
+
declare const PX_PER_INCH = 96;
|
|
2562
|
+
/** CSS pixels per centimetre (96 / 2.54). */
|
|
2563
|
+
declare const PX_PER_CM: number;
|
|
2564
|
+
/** Ruler strip thickness in CSS pixels. */
|
|
2565
|
+
declare const RULER_THICKNESS = 20;
|
|
2566
|
+
/** Font size for numbers on the ruler. */
|
|
2567
|
+
declare const RULER_FONT_SIZE = 10;
|
|
2568
|
+
/** The unit system used for ruler display. */
|
|
2569
|
+
type RulerUnit = 'inches' | 'centimetres';
|
|
2570
|
+
interface Tick {
|
|
2571
|
+
/** Position along the ruler in scaled CSS pixels from the slide origin. */
|
|
2572
|
+
position: number;
|
|
2573
|
+
/** Label to display (empty for minor ticks). */
|
|
2574
|
+
label: string;
|
|
2575
|
+
/** Whether this is a major (numbered) tick. */
|
|
2576
|
+
isMajor: boolean;
|
|
2577
|
+
}
|
|
2578
|
+
/**
|
|
2579
|
+
* Generate tick marks for a single ruler axis.
|
|
2580
|
+
*
|
|
2581
|
+
* @param slideLengthPx The slide dimension (width or height) in CSS px.
|
|
2582
|
+
* @param scale The current editor scale.
|
|
2583
|
+
* @param unit Ruler unit system.
|
|
2584
|
+
*/
|
|
2585
|
+
declare function generateTicks(slideLengthPx: number, scale: number, unit: RulerUnit): Tick[];
|
|
2586
|
+
/**
|
|
2587
|
+
* Resolve a drag that started on a ruler strip into a new guide position.
|
|
2588
|
+
*
|
|
2589
|
+
* Shared because every binding that supports "drag off the ruler to create a
|
|
2590
|
+
* guide" needs the exact same three rules, and they are easy to get subtly
|
|
2591
|
+
* wrong per binding: the pointer must have left the strip (otherwise a plain
|
|
2592
|
+
* click on the ruler would drop a guide on the slide edge), the offset is
|
|
2593
|
+
* measured from the strip's own leading edge so the strip thickness has to be
|
|
2594
|
+
* subtracted before un-scaling, and a guide dropped outside the slide is
|
|
2595
|
+
* discarded rather than clamped (PowerPoint drops it too).
|
|
2596
|
+
*
|
|
2597
|
+
* @param pointerOffsetPx Pointer distance, in screen px, from the leading edge
|
|
2598
|
+
* of the ruler strip (top for the horizontal ruler,
|
|
2599
|
+
* left for the vertical one).
|
|
2600
|
+
* @param scale Current editor scale (fitScale * userZoom).
|
|
2601
|
+
* @param slideLengthPx Slide dimension on the guide's axis, unscaled.
|
|
2602
|
+
* @returns The slide-local position in unscaled px, or `null` when the drag
|
|
2603
|
+
* should not create a guide.
|
|
2604
|
+
*/
|
|
2605
|
+
declare function rulerDragToGuidePosition(pointerOffsetPx: number, scale: number, slideLengthPx: number): number | null;
|
|
2606
|
+
|
|
2325
2607
|
/**
|
|
2326
2608
|
* Render the n-th (1-based) marker for an OOXML auto-numbering scheme.
|
|
2327
2609
|
*
|
|
@@ -3191,6 +3473,32 @@ declare const SLIDE_TRANSITION_KEYFRAMES = "\n/* \u2500\u2500 Fade \u2500\u2500\
|
|
|
3191
3473
|
*/
|
|
3192
3474
|
declare function getSlideTransitionAnimations(type: PptxTransitionType, durationMs: number, direction: string | undefined, orient?: string | undefined, spokes?: number | undefined): SlideTransitionAnimations;
|
|
3193
3475
|
|
|
3476
|
+
/**
|
|
3477
|
+
* `slide-transition-options` - the pure option catalogues backing every
|
|
3478
|
+
* binding's slide-transition inspector section.
|
|
3479
|
+
*
|
|
3480
|
+
* WHY this lives in shared: the transition type list, the set of types that
|
|
3481
|
+
* pick an orientation instead of a direction, and the arrow glyph/grid tables
|
|
3482
|
+
* used by the direction picker are all plain data with no framework in them.
|
|
3483
|
+
* They previously sat inside `packages/react`, which meant a binding porting
|
|
3484
|
+
* the section had to retype 24 transition values and 12 arrow glyphs by hand,
|
|
3485
|
+
* and any new OOXML transition type silently reached one binding only. React
|
|
3486
|
+
* now re-exports these from here so there is exactly one list to update.
|
|
3487
|
+
*
|
|
3488
|
+
* NOTE: each option keeps both a plain-ASCII `label` (English fallback for
|
|
3489
|
+
* non-i18n consumers) and an `i18nKey` resolvable through each binding's
|
|
3490
|
+
* translator, matching the `{ value, i18nKey }` convention used elsewhere.
|
|
3491
|
+
*
|
|
3492
|
+
* @module render/slide-transition-options
|
|
3493
|
+
*/
|
|
3494
|
+
|
|
3495
|
+
/** A selectable slide-transition type with its English label and i18n key. */
|
|
3496
|
+
interface SlideTransitionOptionEntry {
|
|
3497
|
+
value: NonNullable<PptxSlideTransition['type']>;
|
|
3498
|
+
label: string;
|
|
3499
|
+
i18nKey: string;
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3194
3502
|
/** A node rendered as an SVG rect (rounded or flat). */
|
|
3195
3503
|
interface RenderedRectNode {
|
|
3196
3504
|
kind: 'rect';
|
|
@@ -3962,6 +4270,69 @@ declare function sampleColorFromSlide(clientX: number, clientY: number): Eyedrop
|
|
|
3962
4270
|
*/
|
|
3963
4271
|
declare function pickColorByClickFallback(): Promise<string | null>;
|
|
3964
4272
|
|
|
4273
|
+
/** Whether the reading view is on screen, and which slide it is showing. */
|
|
4274
|
+
interface ReadingViewState {
|
|
4275
|
+
open: boolean;
|
|
4276
|
+
/** Zero-based index into the deck's visible slides. */
|
|
4277
|
+
slideIndex: number;
|
|
4278
|
+
}
|
|
4279
|
+
/** A navigation intent a binding can raise from a key, a click or a tap. */
|
|
4280
|
+
type ReadingViewCommand = {
|
|
4281
|
+
command: 'next';
|
|
4282
|
+
} | {
|
|
4283
|
+
command: 'previous';
|
|
4284
|
+
} | {
|
|
4285
|
+
command: 'first';
|
|
4286
|
+
} | {
|
|
4287
|
+
command: 'last';
|
|
4288
|
+
}
|
|
4289
|
+
/** Jump to a zero-based slide index. */
|
|
4290
|
+
| {
|
|
4291
|
+
command: 'goto';
|
|
4292
|
+
slideIndex: number;
|
|
4293
|
+
} | {
|
|
4294
|
+
command: 'exit';
|
|
4295
|
+
} | {
|
|
4296
|
+
command: 'none';
|
|
4297
|
+
};
|
|
4298
|
+
|
|
4299
|
+
/**
|
|
4300
|
+
* The one definition of what the canvas context menu contains.
|
|
4301
|
+
*
|
|
4302
|
+
* The five menus were written five times from scratch rather than ported from a
|
|
4303
|
+
* single item list, and their command sets drifted exactly as you would expect:
|
|
4304
|
+
* Vue had no Bring to Front, Angular had no Edit Hyperlink or Group, Svelte had
|
|
4305
|
+
* no table commands at all, and Vanilla had no menu whatsoever. Nothing crashes
|
|
4306
|
+
* when a binding omits a command, so each omission was only ever discoverable by
|
|
4307
|
+
* the user who right-clicked expecting it.
|
|
4308
|
+
*
|
|
4309
|
+
* This module owns the command ids, their labels, their order, the separators
|
|
4310
|
+
* between the groups, and the rules deciding which are offered. A binding
|
|
4311
|
+
* supplies the context (what was clicked, what is selected) and renders the
|
|
4312
|
+
* result; it does not decide what is in the menu. Adding a command here adds it
|
|
4313
|
+
* to all five at once, which is the point.
|
|
4314
|
+
*
|
|
4315
|
+
* The operations themselves stay in the bindings: each already owns clipboard,
|
|
4316
|
+
* z-order, grouping, comments, hyperlink and table mutation, and routing them is
|
|
4317
|
+
* a switch over {@link ContextMenuCommandId}.
|
|
4318
|
+
*
|
|
4319
|
+
* @module render/context-menu-commands
|
|
4320
|
+
*/
|
|
4321
|
+
/** Every command a canvas context menu can offer, in no particular order. */
|
|
4322
|
+
type ContextMenuCommandId = 'copy' | 'cut' | 'paste' | 'duplicate' | 'bring-forward' | 'send-backward' | 'bring-front' | 'send-back' | 'ai-ask' | 'ai-fix' | 'comment' | 'hyperlink' | 'table-insert-row-above' | 'table-insert-row-below' | 'table-delete-row' | 'table-insert-col-left' | 'table-insert-col-right' | 'table-delete-col' | 'table-merge-selected' | 'table-merge-right' | 'table-merge-down' | 'table-split' | 'group' | 'ungroup' | 'delete';
|
|
4323
|
+
/** One rendered entry: a command, plus how it is presented. */
|
|
4324
|
+
interface ContextMenuEntry {
|
|
4325
|
+
id: ContextMenuCommandId;
|
|
4326
|
+
/** i18n key; the binding translates it with its own translator. */
|
|
4327
|
+
labelKey: string;
|
|
4328
|
+
/** Draw a rule above this entry (it opens a new group of commands). */
|
|
4329
|
+
separatorBefore?: boolean;
|
|
4330
|
+
/** Destructive: tinted red, as PowerPoint tints Delete. */
|
|
4331
|
+
danger?: boolean;
|
|
4332
|
+
/** Offered but not usable right now (greyed out, still announced). */
|
|
4333
|
+
disabled?: boolean;
|
|
4334
|
+
}
|
|
4335
|
+
|
|
3965
4336
|
/**
|
|
3966
4337
|
* smart-art-presets.ts: the SmartArt insert-gallery catalogue, shared across
|
|
3967
4338
|
* bindings. Pure data + types; consumed by each binding's insert dialog and
|
|
@@ -4146,6 +4517,49 @@ declare function issueTypeLabel(type: AccessibilityIssueType): string;
|
|
|
4146
4517
|
*/
|
|
4147
4518
|
declare function issueTrackKey(issue: AccessibilityIssue, index: number): string;
|
|
4148
4519
|
|
|
4520
|
+
/**
|
|
4521
|
+
* `element-action-options` - the option catalogue for an element's "Action
|
|
4522
|
+
* Settings" inspector panel (PowerPoint's Insert > Action dialog).
|
|
4523
|
+
*
|
|
4524
|
+
* WHY shared: the mapping from `ElementActionType` to a translation key is
|
|
4525
|
+
* plain data that every binding's action panel needs verbatim, and the two
|
|
4526
|
+
* types that take an extra input (`url`, `slide`) are a rule, not a rendering
|
|
4527
|
+
* decision. Keeping the list here means adding a new action kind updates all
|
|
4528
|
+
* five bindings at once instead of five hand-typed copies drifting apart.
|
|
4529
|
+
*
|
|
4530
|
+
* @module render/element-action-options
|
|
4531
|
+
*/
|
|
4532
|
+
|
|
4533
|
+
/** One entry of the action-type select, with its dictionary key. */
|
|
4534
|
+
interface ElementActionOption {
|
|
4535
|
+
value: ElementActionType;
|
|
4536
|
+
labelKey: string;
|
|
4537
|
+
}
|
|
4538
|
+
|
|
4539
|
+
/**
|
|
4540
|
+
* `tag-collections` - pure list surgery for the inspector's Tags section
|
|
4541
|
+
* (`ppt/tags/*.xml`, PowerPoint's programmatic name/value metadata).
|
|
4542
|
+
*
|
|
4543
|
+
* WHY shared: a tag lives at a two-level address (which collection, then which
|
|
4544
|
+
* tag inside it) while the UI shows one flat list, so every add/edit/delete has
|
|
4545
|
+
* to map a flat row back onto the nested model. That mapping is identical in
|
|
4546
|
+
* every binding and is exactly the kind of off-by-one-prone code that must not
|
|
4547
|
+
* be retyped per framework. The functions below are immutable: they return new
|
|
4548
|
+
* arrays so a caller can push the result straight into an undoable commit.
|
|
4549
|
+
*
|
|
4550
|
+
* @module render/tag-collections
|
|
4551
|
+
*/
|
|
4552
|
+
|
|
4553
|
+
/** A tag paired with its address inside the nested collection model. */
|
|
4554
|
+
interface FlatTagRow {
|
|
4555
|
+
name: string;
|
|
4556
|
+
value: string;
|
|
4557
|
+
/** Index of the owning collection in the `PptxTagCollection[]`. */
|
|
4558
|
+
colIdx: number;
|
|
4559
|
+
/** Index of the tag inside that collection's `tags` array. */
|
|
4560
|
+
tagIdx: number;
|
|
4561
|
+
}
|
|
4562
|
+
|
|
4149
4563
|
/**
|
|
4150
4564
|
* Pure, framework-agnostic helpers for freehand ink drawing, shared by every
|
|
4151
4565
|
* binding. No framework imports, so these can be unit-tested without TestBed.
|
|
@@ -4484,9 +4898,12 @@ interface BackstageTemplate {
|
|
|
4484
4898
|
id: string;
|
|
4485
4899
|
name: string;
|
|
4486
4900
|
description: string;
|
|
4901
|
+
/** Dictionary key for `name`, so bindings can render a translated gallery. */
|
|
4902
|
+
nameKey: string;
|
|
4903
|
+
/** Dictionary key for `description`. */
|
|
4904
|
+
descriptionKey: string;
|
|
4487
4905
|
preview: string;
|
|
4488
4906
|
}
|
|
4489
|
-
declare function formatBackstageDate(timestamp: number, now?: number): string;
|
|
4490
4907
|
declare function formatBackstageSize(bytes: number): string;
|
|
4491
4908
|
|
|
4492
4909
|
/** Framework-neutral virtual-list range used by every thumbnail sidebar. */
|
|
@@ -4737,20 +5154,6 @@ interface ViewerOptions {
|
|
|
4737
5154
|
type ViewerOptionsGroupId = keyof ViewerOptions;
|
|
4738
5155
|
type ViewerOptionPrimitive = boolean | number | string;
|
|
4739
5156
|
|
|
4740
|
-
/**
|
|
4741
|
-
* Quick Access Toolbar command catalog and list-editing helpers, backing the
|
|
4742
|
-
* Options > Quick Access Toolbar pane and the title-bar QAT strip.
|
|
4743
|
-
*
|
|
4744
|
-
* Ids map onto actions every binding already exposes; each binding resolves
|
|
4745
|
-
* an id to its own icon + handler when rendering the strip.
|
|
4746
|
-
*/
|
|
4747
|
-
interface QuickAccessCommandDefinition {
|
|
4748
|
-
id: string;
|
|
4749
|
-
labelKey: string;
|
|
4750
|
-
/** Logical icon name bindings map to their icon set. */
|
|
4751
|
-
icon: string;
|
|
4752
|
-
}
|
|
4753
|
-
|
|
4754
5157
|
interface ViewerAddinStatus {
|
|
4755
5158
|
/** Addin id -> whether the capability is active in this host. */
|
|
4756
5159
|
[addinId: string]: boolean | undefined;
|
|
@@ -6276,8 +6679,14 @@ declare class EditorStateService {
|
|
|
6276
6679
|
addElement(slideIndex: number, element: PptxElement): void;
|
|
6277
6680
|
/** Patch slide-level properties (background, notes, …); one history entry. */
|
|
6278
6681
|
updateSlide(slideIndex: number, patch: Partial<PptxSlide>): void;
|
|
6279
|
-
/**
|
|
6280
|
-
|
|
6682
|
+
/**
|
|
6683
|
+
* Insert a blank slide after `afterIndex` (records history).
|
|
6684
|
+
*
|
|
6685
|
+
* @param layoutPath - Package path of the slide layout the new slide should
|
|
6686
|
+
* inherit from, as offered by the Home tab's "New Slide" split button.
|
|
6687
|
+
* Omitted for a plain blank slide, which is what the button itself does.
|
|
6688
|
+
*/
|
|
6689
|
+
addSlide(afterIndex: number, layoutPath?: string): void;
|
|
6281
6690
|
/** Delete a slide (keeps at least one; records history). */
|
|
6282
6691
|
deleteSlide(index: number): void;
|
|
6283
6692
|
/** Duplicate a slide, inserting the copy after it (records history). */
|
|
@@ -6457,6 +6866,13 @@ declare class LoadContentService {
|
|
|
6457
6866
|
readonly notesCanvasSize: _angular_core.WritableSignal<CanvasSize | undefined>;
|
|
6458
6867
|
/** Custom document properties (used for `docproperty` field substitution). */
|
|
6459
6868
|
readonly customProperties: _angular_core.WritableSignal<PptxCustomProperty[]>;
|
|
6869
|
+
/**
|
|
6870
|
+
* `ppt/tags/*.xml` name/value metadata, editable from the inspector's TAGS
|
|
6871
|
+
* card. Tags are how add-ins and automation stamp machine-readable data onto
|
|
6872
|
+
* a deck, so they are carried through save (see {@link saveSlides}) rather
|
|
6873
|
+
* than silently dropped.
|
|
6874
|
+
*/
|
|
6875
|
+
readonly tagCollections: _angular_core.WritableSignal<PptxTagCollection[]>;
|
|
6460
6876
|
/** Header/footer settings (footer/header/date-time text + format) for field substitution. */
|
|
6461
6877
|
readonly headerFooter: _angular_core.WritableSignal<PptxHeaderFooter | undefined>;
|
|
6462
6878
|
/** Whether the presentation contains digital signatures. */
|
|
@@ -6862,8 +7278,18 @@ declare function getContainerStyle(el: PptxElement, zIndex: number): StyleMap;
|
|
|
6862
7278
|
*/
|
|
6863
7279
|
declare function getShapeFillStrokeStyle(el: PptxElement, parentGroupFill?: ShapeStyle, animatesFill?: boolean, animatesStroke?: boolean): StyleMap;
|
|
6864
7280
|
/**
|
|
6865
|
-
* Text block style for elements that carry text.
|
|
6866
|
-
*
|
|
7281
|
+
* Text block style for elements that carry text.
|
|
7282
|
+
*
|
|
7283
|
+
* A thin adapter over the shared {@link buildTextBlockStyle}, which React
|
|
7284
|
+
* renders from too. This used to be a hand-ported copy of React's builder, and
|
|
7285
|
+
* the copy had silently lost `a:normAutofit` (a shrink-to-fit title painted 43%
|
|
7286
|
+
* too large), `a:bodyPr/@wrap="none"` (a no-wrap line wrapped to three), the
|
|
7287
|
+
* default font declaration, the italic padding nudge and the body
|
|
7288
|
+
* margin/indent pair.
|
|
7289
|
+
*
|
|
7290
|
+
* The shared record is camelCase; `[ngStyle]` maps elsewhere in this binding
|
|
7291
|
+
* are kebab-case, so it is converted rather than mixing both conventions in one
|
|
7292
|
+
* merged map (`warpedTextStyle` merges this with the 3D scene style).
|
|
6867
7293
|
*/
|
|
6868
7294
|
declare function getTextBlockStyle(el: PptxElement): StyleMap;
|
|
6869
7295
|
/** Resolve a displayable image source for picture/image/media poster frames. */
|
|
@@ -7976,6 +8402,8 @@ declare class ViewerZoomService {
|
|
|
7976
8402
|
readonly zoom: _angular_core.WritableSignal<number>;
|
|
7977
8403
|
/** {@link zoom} rounded to a whole percentage for display. */
|
|
7978
8404
|
readonly zoomPercent: _angular_core.Signal<number>;
|
|
8405
|
+
/** Jump to an explicit zoom level, clamped by the shared bounds. */
|
|
8406
|
+
setZoom(level: number): void;
|
|
7979
8407
|
zoomIn(): void;
|
|
7980
8408
|
zoomOut(): void;
|
|
7981
8409
|
zoomReset(): void;
|
|
@@ -8219,6 +8647,12 @@ declare class PowerPointViewerComponent {
|
|
|
8219
8647
|
protected readonly rootStyle: _angular_core.Signal<Record<string, string>>;
|
|
8220
8648
|
/** Slide-sorter grid overlay visibility. */
|
|
8221
8649
|
protected readonly showSorter: _angular_core.WritableSignal<boolean>;
|
|
8650
|
+
/**
|
|
8651
|
+
* Reading View visibility: the deck at full window size with the editor
|
|
8652
|
+
* chrome cut back to a nav bar. Not the slide show (no fullscreen, no
|
|
8653
|
+
* pointer tools, no presenter console).
|
|
8654
|
+
*/
|
|
8655
|
+
protected readonly showReadingView: _angular_core.WritableSignal<boolean>;
|
|
8222
8656
|
/** Full-canvas master editor visibility and active target. */
|
|
8223
8657
|
protected readonly showMasterView: _angular_core.WritableSignal<boolean>;
|
|
8224
8658
|
protected readonly masterViewTab: _angular_core.WritableSignal<MasterViewTab>;
|
|
@@ -8229,7 +8663,7 @@ declare class PowerPointViewerComponent {
|
|
|
8229
8663
|
/** Whether periodic autosave is enabled (title-bar AutoSave toggle; default on). */
|
|
8230
8664
|
protected readonly autosaveEnabled: _angular_core.WritableSignal<boolean>;
|
|
8231
8665
|
/** Active drawing tool (from the ribbon Draw tab). */
|
|
8232
|
-
protected readonly activeDrawTool: _angular_core.WritableSignal<"
|
|
8666
|
+
protected readonly activeDrawTool: _angular_core.WritableSignal<"select" | "pen" | "highlighter" | "eraser" | "freeform">;
|
|
8233
8667
|
/** Active ink stroke colour. */
|
|
8234
8668
|
protected readonly activeDrawColor: _angular_core.WritableSignal<string>;
|
|
8235
8669
|
/** Active ink stroke width in stage pixels. */
|
|
@@ -8303,6 +8737,12 @@ declare class PowerPointViewerComponent {
|
|
|
8303
8737
|
protected updateNotesMaster(master: PptxNotesMaster): void;
|
|
8304
8738
|
protected updateHandoutMaster(master: PptxHandoutMaster): void;
|
|
8305
8739
|
goTo(index: number): void;
|
|
8740
|
+
/**
|
|
8741
|
+
* Leave Reading View on the slide the reader ended on, which is what leaving
|
|
8742
|
+
* any PowerPoint view does: the editor should not snap back to wherever it
|
|
8743
|
+
* was when the reader entered.
|
|
8744
|
+
*/
|
|
8745
|
+
protected closeReadingView(slideIndex: number): void;
|
|
8306
8746
|
goPrev(): void;
|
|
8307
8747
|
protected onCreatePresentation(templateId: string): void;
|
|
8308
8748
|
/**
|
|
@@ -8337,7 +8777,7 @@ declare class PowerPointViewerComponent {
|
|
|
8337
8777
|
canRedo(): boolean;
|
|
8338
8778
|
/** Get the current zoom level (1 = 100%). */
|
|
8339
8779
|
getZoom(): number;
|
|
8340
|
-
/** Set the zoom level (clamped
|
|
8780
|
+
/** Set the zoom level (clamped by the shared cross-binding bounds). */
|
|
8341
8781
|
setZoom(level: number): void;
|
|
8342
8782
|
/** Zoom in by one step. */
|
|
8343
8783
|
zoomIn(): void;
|
|
@@ -8368,6 +8808,14 @@ declare class PowerPointViewerComponent {
|
|
|
8368
8808
|
protected onContextMenuAskAi(): void;
|
|
8369
8809
|
/** Context-menu "Fix with AI": scope + open the assistant with a prefilled directive. */
|
|
8370
8810
|
protected onContextMenuFixAi(): void;
|
|
8811
|
+
/**
|
|
8812
|
+
* Context-menu "Add Comment": show the comments panel, mirroring React's
|
|
8813
|
+
* `setIsInspectorPaneOpen(true) + setSidebarPanelMode('comments')`. It sets
|
|
8814
|
+
* the panel rather than toggling it, because choosing Add Comment while the
|
|
8815
|
+
* panel is already open must not close it; the mobile swipe-dismiss flag is
|
|
8816
|
+
* cleared for the same reason.
|
|
8817
|
+
*/
|
|
8818
|
+
protected onContextMenuAddComment(): void;
|
|
8371
8819
|
/** Get the IDs of currently selected elements. */
|
|
8372
8820
|
getSelectedElementIds(): string[];
|
|
8373
8821
|
/** Programmatically select elements by their IDs. */
|
|
@@ -8606,6 +9054,11 @@ declare class ExportService {
|
|
|
8606
9054
|
* Provided alongside `LoadContentService` in the viewer subtree, so renderers
|
|
8607
9055
|
* used outside the viewer (thumbnails, export) that inject it `optional` simply
|
|
8608
9056
|
* fall back to no substitution.
|
|
9057
|
+
*
|
|
9058
|
+
* The assembly itself (including the slide-title resolution, which used to be a
|
|
9059
|
+
* local `placeholderType` scan here and so never resolved a title on a real
|
|
9060
|
+
* `.pptx`) lives in `pptx-viewer-shared`, so all five bindings build the same
|
|
9061
|
+
* context; this service is only the signals adapter.
|
|
8609
9062
|
*/
|
|
8610
9063
|
declare class FieldContextService {
|
|
8611
9064
|
private readonly load;
|
|
@@ -8706,6 +9159,10 @@ interface KeyboardHost {
|
|
|
8706
9159
|
readonly canEdit: () => boolean;
|
|
8707
9160
|
readonly presenting: () => boolean;
|
|
8708
9161
|
readonly activeSlideIndex: () => number;
|
|
9162
|
+
/** Go back one slide (the arrows page the deck when nothing is selected). */
|
|
9163
|
+
readonly goPrev?: () => void;
|
|
9164
|
+
/** Go forward one slide. */
|
|
9165
|
+
readonly goNext?: () => void;
|
|
8709
9166
|
}
|
|
8710
9167
|
declare class ViewerKeyboardService {
|
|
8711
9168
|
private readonly editor;
|
|
@@ -8715,6 +9172,13 @@ declare class ViewerKeyboardService {
|
|
|
8715
9172
|
/** Wire the host accessors (called once from the component constructor). */
|
|
8716
9173
|
bind(host: KeyboardHost): void;
|
|
8717
9174
|
handleKeyDown(event: KeyboardEvent): void;
|
|
9175
|
+
/**
|
|
9176
|
+
* Escape unwinds the transient chrome one layer at a time: an armed format
|
|
9177
|
+
* painter first (it is modal over the pointer), then the shortcut cheat
|
|
9178
|
+
* sheet. Before this the branch stopped after the painter, so the panel "?"
|
|
9179
|
+
* had just opened stayed on screen with no key that could dismiss it.
|
|
9180
|
+
*/
|
|
9181
|
+
private handleEscape;
|
|
8718
9182
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ViewerKeyboardService, never>;
|
|
8719
9183
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ViewerKeyboardService>;
|
|
8720
9184
|
}
|
|
@@ -9335,6 +9799,8 @@ declare class RibbonComponent {
|
|
|
9335
9799
|
readonly a11y: _angular_core.OutputEmitterRef<void>;
|
|
9336
9800
|
readonly link: _angular_core.OutputEmitterRef<void>;
|
|
9337
9801
|
readonly openSorter: _angular_core.OutputEmitterRef<void>;
|
|
9802
|
+
/** View tab > Reading View: the deck full-window, not the slide show. */
|
|
9803
|
+
readonly openReadingView: _angular_core.OutputEmitterRef<void>;
|
|
9338
9804
|
readonly openMasterView: _angular_core.OutputEmitterRef<void>;
|
|
9339
9805
|
readonly toggleNotes: _angular_core.OutputEmitterRef<void>;
|
|
9340
9806
|
readonly toggleFormatPainter: _angular_core.OutputEmitterRef<void>;
|
|
@@ -9393,7 +9859,7 @@ declare class RibbonComponent {
|
|
|
9393
9859
|
/** Forward the Review proofing toggle to the viewer-owned live state. */
|
|
9394
9860
|
protected setSpellCheck(enabled: boolean): void;
|
|
9395
9861
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonComponent, never>;
|
|
9396
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "showSubtitles": { "alias": "showSubtitles"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "aiEnabled": { "alias": "aiEnabled"; "required": false; "isSignal": true; }; "aiPanelOpen": { "alias": "aiPanelOpen"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "presentFromBeginning": "presentFromBeginning"; "rehearseTimings": "rehearseTimings"; "toggleSubtitles": "toggleSubtitles"; "openSubtitleSettings": "openSubtitleSettings"; "recordFromBeginning": "recordFromBeginning"; "recordFromCurrent": "recordFromCurrent"; "spellCheckChange": "spellCheckChange"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "createPresentation": "createPresentation"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "packageForSharing": "packageForSharing"; "toggleSidebar": "toggleSidebar"; "toggleAiPanel": "toggleAiPanel"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "link": "link"; "openSorter": "openSorter"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "copySlideAsImage": "copySlideAsImage"; "replace": "replace"; "toggleInspector": "toggleInspector"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "openSettings": "openSettings"; }, never, never, true, never>;
|
|
9862
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonComponent, "pptx-ribbon", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "zoomPercent": { "alias": "zoomPercent"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; "themeGalleryOpen": { "alias": "themeGalleryOpen"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "inspectorOpen": { "alias": "inspectorOpen"; "required": false; "isSignal": true; }; "commentsOpen": { "alias": "commentsOpen"; "required": false; "isSignal": true; }; "commentCount": { "alias": "commentCount"; "required": false; "isSignal": true; }; "findOpen": { "alias": "findOpen"; "required": false; "isSignal": true; }; "collabConnected": { "alias": "collabConnected"; "required": false; "isSignal": true; }; "connectedCount": { "alias": "connectedCount"; "required": false; "isSignal": true; }; "spellCheckEnabled": { "alias": "spellCheckEnabled"; "required": false; "isSignal": true; }; "showSubtitles": { "alias": "showSubtitles"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "aiEnabled": { "alias": "aiEnabled"; "required": false; "isSignal": true; }; "aiPanelOpen": { "alias": "aiPanelOpen"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; }, { "prev": "prev"; "next": "next"; "zoomIn": "zoomIn"; "zoomOut": "zoomOut"; "zoomReset": "zoomReset"; "find": "find"; "present": "present"; "presenter": "presenter"; "record": "record"; "presentFromBeginning": "presentFromBeginning"; "rehearseTimings": "rehearseTimings"; "toggleSubtitles": "toggleSubtitles"; "openSubtitleSettings": "openSubtitleSettings"; "recordFromBeginning": "recordFromBeginning"; "recordFromCurrent": "recordFromCurrent"; "spellCheckChange": "spellCheckChange"; "share": "share"; "broadcast": "broadcast"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "createPresentation": "createPresentation"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "packageForSharing": "packageForSharing"; "toggleSidebar": "toggleSidebar"; "toggleAiPanel": "toggleAiPanel"; "signatures": "signatures"; "info": "info"; "print": "print"; "comments": "comments"; "a11y": "a11y"; "link": "link"; "openSorter": "openSorter"; "openReadingView": "openReadingView"; "openMasterView": "openMasterView"; "toggleNotes": "toggleNotes"; "toggleFormatPainter": "toggleFormatPainter"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "copySlideAsImage": "copySlideAsImage"; "replace": "replace"; "toggleInspector": "toggleInspector"; "drawToolChange": "drawToolChange"; "toggleThemeGallery": "toggleThemeGallery"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "openCustomShows": "openCustomShows"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openSetUpSlideShow": "openSetUpSlideShow"; "openCompare": "openCompare"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "openShortcuts": "openShortcuts"; "openSettings": "openSettings"; }, never, never, true, never>;
|
|
9397
9863
|
}
|
|
9398
9864
|
|
|
9399
9865
|
/** The eight resize-handle positions around a selection box. */
|
|
@@ -9477,6 +9943,8 @@ declare class RulerGuidesService {
|
|
|
9477
9943
|
readonly rulerGuides: _angular_core.WritableSignal<readonly RulerGuide[]>;
|
|
9478
9944
|
/** Active guide-drag state (id + axis only), or null when nothing is being dragged. */
|
|
9479
9945
|
private guideDrag;
|
|
9946
|
+
/** Ruler strip a drag-out-a-guide gesture was armed on, or null. */
|
|
9947
|
+
private rulerDragAxis;
|
|
9480
9948
|
private host;
|
|
9481
9949
|
/** Wire the host accessors (called once from the component constructor). */
|
|
9482
9950
|
bind(host: RulerGuidesHost): void;
|
|
@@ -9489,10 +9957,24 @@ declare class RulerGuidesService {
|
|
|
9489
9957
|
onGuidePointerDown(event: PointerEvent, id: string, axis: RulerGuide['axis']): void;
|
|
9490
9958
|
/** Remove a guide (called on guide handle double-click). */
|
|
9491
9959
|
onGuideDoubleClick(event: MouseEvent, id: string): void;
|
|
9492
|
-
/**
|
|
9493
|
-
|
|
9494
|
-
|
|
9495
|
-
|
|
9960
|
+
/**
|
|
9961
|
+
* Arm a drag-out-a-guide gesture on a ruler strip ('h' = the horizontal strip
|
|
9962
|
+
* along the top, 'v' = the vertical strip down the left).
|
|
9963
|
+
*
|
|
9964
|
+
* Nothing is created yet: the guide is dropped on pointer-UP so a stray click
|
|
9965
|
+
* on the strip cannot leave a guide behind. This is the gesture React, Vue,
|
|
9966
|
+
* Svelte and Vanilla all implement; Angular used to create the guide on
|
|
9967
|
+
* pointer-DOWN off its own stage-relative arithmetic, which both diverged
|
|
9968
|
+
* from the other bindings and duplicated the drop maths.
|
|
9969
|
+
*/
|
|
9970
|
+
onRulerPointerDown(axis: 'h' | 'v', event: PointerEvent): void;
|
|
9971
|
+
/**
|
|
9972
|
+
* Resolve an armed ruler drag: drop one guide when the pointer left the strip
|
|
9973
|
+
* and landed on the slide. All three rules (must have left the strip, strip
|
|
9974
|
+
* thickness subtracted before un-scaling, out-of-slide drops discarded) live
|
|
9975
|
+
* in the shared {@link rulerDragToGuidePosition}.
|
|
9976
|
+
*/
|
|
9977
|
+
onRulerPointerUp(axis: 'h' | 'v', event: PointerEvent): void;
|
|
9496
9978
|
/** Update the dragged guide's position. Returns false when no guide drag is in progress (caller should fall through). */
|
|
9497
9979
|
handlePointerMove(event: PointerEvent): boolean;
|
|
9498
9980
|
/** End the guide drag. Returns false when no guide drag was in progress (caller should fall through). */
|
|
@@ -9501,30 +9983,6 @@ declare class RulerGuidesService {
|
|
|
9501
9983
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<RulerGuidesService>;
|
|
9502
9984
|
}
|
|
9503
9985
|
|
|
9504
|
-
/**
|
|
9505
|
-
* ruler-ticks.ts: Pure tick-mark generation for the slide canvas's horizontal
|
|
9506
|
-
* and vertical ruler strips. No Angular/DOM dependency so it is trivially
|
|
9507
|
-
* unit-testable in isolation from `SlideCanvasComponent`.
|
|
9508
|
-
*/
|
|
9509
|
-
/** Height/width (px) of the ruler strips: mirrors React's RULER_THICKNESS. */
|
|
9510
|
-
declare const RULER_THICKNESS = 20;
|
|
9511
|
-
/** Pixels per inch on the slide canvas (PPTX slides are 10" wide = 960 px). */
|
|
9512
|
-
declare const SLIDE_PX_PER_INCH = 96;
|
|
9513
|
-
/** A single tick mark on a ruler strip. */
|
|
9514
|
-
interface RulerTick {
|
|
9515
|
-
/** Position in screen pixels along the ruler. */
|
|
9516
|
-
position: number;
|
|
9517
|
-
/** Whether this is a major (inch) tick. */
|
|
9518
|
-
isMajor: boolean;
|
|
9519
|
-
/** Label to display (only on major ticks, every N inches). */
|
|
9520
|
-
label: string | null;
|
|
9521
|
-
}
|
|
9522
|
-
/**
|
|
9523
|
-
* Generate ruler tick marks for a given slide dimension and scale.
|
|
9524
|
-
* Produces ticks every 1/4 inch (minor) and every inch (major).
|
|
9525
|
-
*/
|
|
9526
|
-
declare function generateRulerTicks(slidePx: number, scale: number): ReadonlyArray<RulerTick>;
|
|
9527
|
-
|
|
9528
9986
|
/**
|
|
9529
9987
|
* Slide-scoped DI context: lets leaf renderers (chart, SmartArt) resolve which
|
|
9530
9988
|
* slide their canvas is displaying without threading an input through every
|
|
@@ -9571,6 +10029,12 @@ declare class SlideCanvasComponent implements SlideContext {
|
|
|
9571
10029
|
* of the slide viewport. Only active on the interactive canvas.
|
|
9572
10030
|
*/
|
|
9573
10031
|
readonly showRulers: _angular_core.InputSignal<boolean>;
|
|
10032
|
+
/**
|
|
10033
|
+
* Unit system for the ruler labels. Defaults to inches, as PowerPoint does;
|
|
10034
|
+
* the tick generator (shared with every other binding) also understands
|
|
10035
|
+
* centimetres, which the old Angular-only generator could not express.
|
|
10036
|
+
*/
|
|
10037
|
+
readonly rulerUnit: _angular_core.InputSignal<RulerUnit>;
|
|
9574
10038
|
/**
|
|
9575
10039
|
* When true, render a static center-crosshair guide overlay on the slide stage.
|
|
9576
10040
|
* Only active on the interactive canvas.
|
|
@@ -9669,7 +10133,7 @@ declare class SlideCanvasComponent implements SlideContext {
|
|
|
9669
10133
|
*/
|
|
9670
10134
|
readonly aiPickMode: _angular_core.InputSignal<boolean>;
|
|
9671
10135
|
/** Active draw tool. When not 'select', pointer gestures draw ink strokes. */
|
|
9672
|
-
readonly drawTool: _angular_core.InputSignal<"
|
|
10136
|
+
readonly drawTool: _angular_core.InputSignal<"select" | "pen" | "highlighter" | "eraser" | "freeform">;
|
|
9673
10137
|
/** Active ink stroke colour (CSS colour string). */
|
|
9674
10138
|
readonly drawColor: _angular_core.InputSignal<string>;
|
|
9675
10139
|
/** Active ink stroke width in stage pixels. */
|
|
@@ -9885,13 +10349,40 @@ declare class SlideCanvasComponent implements SlideContext {
|
|
|
9885
10349
|
* same page do not share the same `<pattern>` definition.
|
|
9886
10350
|
*/
|
|
9887
10351
|
protected readonly gridPatternId: string;
|
|
9888
|
-
/**
|
|
9889
|
-
|
|
10352
|
+
/**
|
|
10353
|
+
* Tick marks for the horizontal ruler strip (scaled slide width).
|
|
10354
|
+
*
|
|
10355
|
+
* Generated by the SHARED `generateTicks`, which is what gives Angular the
|
|
10356
|
+
* same unit system, subdivision-density collapse at low zoom and label
|
|
10357
|
+
* thinning the other bindings have. A local generator used to live in
|
|
10358
|
+
* `ruler-ticks.ts` with fixed quarter-inch subdivisions and inch-only
|
|
10359
|
+
* labels, so Angular disagreed with every other binding at every zoom.
|
|
10360
|
+
*/
|
|
10361
|
+
readonly hRulerTicks: _angular_core.Signal<readonly Tick[]>;
|
|
9890
10362
|
/** Tick marks for the vertical ruler strip (scaled slide height). */
|
|
9891
|
-
readonly vRulerTicks: _angular_core.Signal<readonly
|
|
10363
|
+
readonly vRulerTicks: _angular_core.Signal<readonly Tick[]>;
|
|
10364
|
+
/** Ruler strip thickness / label font size, exposed for the template. */
|
|
10365
|
+
protected readonly rulerThickness = 20;
|
|
10366
|
+
protected readonly rulerFontSize = 10;
|
|
10367
|
+
/**
|
|
10368
|
+
* Bounds of a single selection, highlighted on both strips (PowerPoint shades
|
|
10369
|
+
* the selected shape's span on its rulers). Multi-selection paints nothing,
|
|
10370
|
+
* matching React and Svelte.
|
|
10371
|
+
*/
|
|
10372
|
+
private readonly rulerHighlightBounds;
|
|
10373
|
+
/** Selected element extent (scaled px) highlighted on the horizontal strip. */
|
|
10374
|
+
readonly hRulerHighlight: _angular_core.Signal<{
|
|
10375
|
+
start: number;
|
|
10376
|
+
span: number;
|
|
10377
|
+
} | null>;
|
|
10378
|
+
/** Selected element extent (scaled px) highlighted on the vertical strip. */
|
|
10379
|
+
readonly vRulerHighlight: _angular_core.Signal<{
|
|
10380
|
+
start: number;
|
|
10381
|
+
span: number;
|
|
10382
|
+
} | null>;
|
|
9892
10383
|
readonly stageStyle: _angular_core.Signal<StyleMap>;
|
|
9893
10384
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideCanvasComponent, never>;
|
|
9894
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "guideCommand": { "alias": "guideCommand"; "required": false; "isSignal": true; }; "spellCheck": { "alias": "spellCheck"; "required": false; "isSignal": true; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "transparentBackground": { "alias": "transparentBackground"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "aiHighlights": { "alias": "aiHighlights"; "required": false; "isSignal": true; }; "aiActive": { "alias": "aiActive"; "required": false; "isSignal": true; }; "aiActiveSlideIndex": { "alias": "aiActiveSlideIndex"; "required": false; "isSignal": true; }; "aiChangeBatch": { "alias": "aiChangeBatch"; "required": false; "isSignal": true; }; "aiPickMode": { "alias": "aiPickMode"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textInput": "textInput"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, ["*"], true, never>;
|
|
10385
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideCanvasComponent, "pptx-slide-canvas", never, { "slide": { "alias": "slide"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "rulerUnit": { "alias": "rulerUnit"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "guideCommand": { "alias": "guideCommand"; "required": false; "isSignal": true; }; "spellCheck": { "alias": "spellCheck"; "required": false; "isSignal": true; }; "snapToGuides": { "alias": "snapToGuides"; "required": false; "isSignal": true; }; "autoFit": { "alias": "autoFit"; "required": false; "isSignal": true; }; "transparentBackground": { "alias": "transparentBackground"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "editingId": { "alias": "editingId"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "templateElements": { "alias": "templateElements"; "required": false; "isSignal": true; }; "aiHighlights": { "alias": "aiHighlights"; "required": false; "isSignal": true; }; "aiActive": { "alias": "aiActive"; "required": false; "isSignal": true; }; "aiActiveSlideIndex": { "alias": "aiActiveSlideIndex"; "required": false; "isSignal": true; }; "aiChangeBatch": { "alias": "aiChangeBatch"; "required": false; "isSignal": true; }; "aiPickMode": { "alias": "aiPickMode"; "required": false; "isSignal": true; }; "drawTool": { "alias": "drawTool"; "required": false; "isSignal": true; }; "drawColor": { "alias": "drawColor"; "required": false; "isSignal": true; }; "drawWidth": { "alias": "drawWidth"; "required": false; "isSignal": true; }; }, { "elementSelect": "elementSelect"; "backgroundClick": "backgroundClick"; "transformStart": "transformStart"; "transformUpdate": "transformUpdate"; "contextMenu": "contextMenu"; "textEditStart": "textEditStart"; "textCommit": "textCommit"; "textInput": "textInput"; "textCancel": "textCancel"; "textFormat": "textFormat"; "rotateUpdate": "rotateUpdate"; "marqueeSelect": "marqueeSelect"; "inkStrokeComplete": "inkStrokeComplete"; "eraserHit": "eraserHit"; "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, ["*"], true, never>;
|
|
9895
10386
|
}
|
|
9896
10387
|
|
|
9897
10388
|
/**
|
|
@@ -10109,6 +10600,12 @@ declare class ElementRendererComponent {
|
|
|
10109
10600
|
private readonly playback;
|
|
10110
10601
|
private readonly translate;
|
|
10111
10602
|
readonly smartArt3D: _angular_core.Signal<boolean>;
|
|
10603
|
+
/**
|
|
10604
|
+
* Whether the Selection Pane has hidden this element. Drives the empty first
|
|
10605
|
+
* `@case` in the template; see the comment there for why nothing is rendered
|
|
10606
|
+
* rather than rendered-and-hidden.
|
|
10607
|
+
*/
|
|
10608
|
+
readonly isHidden: _angular_core.Signal<boolean>;
|
|
10112
10609
|
/** Obstacle rects (absolute slide coords) for connector A* routing. */
|
|
10113
10610
|
readonly obstacles: _angular_core.InputSignal<readonly RouterRect[]>;
|
|
10114
10611
|
readonly canvasWidth: _angular_core.InputSignal<number>;
|
|
@@ -10137,6 +10634,18 @@ declare class ElementRendererComponent {
|
|
|
10137
10634
|
* runs resolve to display text, mirroring React's `fieldContext`.
|
|
10138
10635
|
*/
|
|
10139
10636
|
readonly fieldContext: _angular_core.InputSignal<FieldSubstitutionContext | undefined>;
|
|
10637
|
+
/**
|
|
10638
|
+
* The elements of the slide being painted, threaded down (including to
|
|
10639
|
+
* recursive group children) alongside {@link fieldContext}.
|
|
10640
|
+
*
|
|
10641
|
+
* Needed only by `a:linkedTxbx` chains: a text box in a linked chain renders
|
|
10642
|
+
* the slice of the chain's text that the preceding boxes could not hold,
|
|
10643
|
+
* which is computable only from its SIBLINGS. Mirrors React's `slideElements`
|
|
10644
|
+
* (taken from its `activeSlide.elements` prop). Left empty by a host that
|
|
10645
|
+
* renders an element outside any slide, in which case a linked box falls back
|
|
10646
|
+
* to its own authored segments.
|
|
10647
|
+
*/
|
|
10648
|
+
readonly slideElements: _angular_core.InputSignal<readonly PptxElement[]>;
|
|
10140
10649
|
/**
|
|
10141
10650
|
* When true, inherited master/layout (template) elements get a visual
|
|
10142
10651
|
* affordance (amber outline ring + slightly reduced opacity) signalling that
|
|
@@ -10172,6 +10681,10 @@ declare class ElementRendererComponent {
|
|
|
10172
10681
|
* DAG fill-overlay tint (colour + blend mode) painted as a separate blended
|
|
10173
10682
|
* layer over the shape. Undefined when the element has no fill overlay.
|
|
10174
10683
|
*/
|
|
10684
|
+
/** Gradient / pattern `a:ln` outline, stroked as an SVG path over the element. */
|
|
10685
|
+
readonly gradientOutline: _angular_core.Signal<StrokeOutline | undefined>;
|
|
10686
|
+
/** viewBox in the element's own pixel space, matching the outline path data. */
|
|
10687
|
+
readonly outlineViewBox: _angular_core.Signal<string>;
|
|
10175
10688
|
readonly fillOverlay: _angular_core.Signal<FillOverlayCss | undefined>;
|
|
10176
10689
|
/**
|
|
10177
10690
|
* Outline ring + slight transparency applied to inherited template
|
|
@@ -10232,7 +10745,7 @@ declare class ElementRendererComponent {
|
|
|
10232
10745
|
readonly hasText: _angular_core.Signal<boolean>;
|
|
10233
10746
|
readonly placeholderLabel: _angular_core.Signal<any>;
|
|
10234
10747
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ElementRendererComponent, never>;
|
|
10235
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementRendererComponent, "pptx-element-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "obstacles": { "alias": "obstacles"; "required": false; "isSignal": true; }; "canvasWidth": { "alias": "canvasWidth"; "required": false; "isSignal": true; }; "canvasHeight": { "alias": "canvasHeight"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "fieldContext": { "alias": "fieldContext"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "parentGroupFill": { "alias": "parentGroupFill"; "required": false; "isSignal": true; }; }, { "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
|
|
10748
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ElementRendererComponent, "pptx-element-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "obstacles": { "alias": "obstacles"; "required": false; "isSignal": true; }; "canvasWidth": { "alias": "canvasWidth"; "required": false; "isSignal": true; }; "canvasHeight": { "alias": "canvasHeight"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "presenting": { "alias": "presenting"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "fieldContext": { "alias": "fieldContext"; "required": false; "isSignal": true; }; "slideElements": { "alias": "slideElements"; "required": false; "isSignal": true; }; "editTemplateMode": { "alias": "editTemplateMode"; "required": false; "isSignal": true; }; "parentGroupFill": { "alias": "parentGroupFill"; "required": false; "isSignal": true; }; }, { "cellCommit": "cellCommit"; "tableChange": "tableChange"; }, never, never, true, never>;
|
|
10236
10749
|
}
|
|
10237
10750
|
|
|
10238
10751
|
/**
|
|
@@ -10607,11 +11120,17 @@ declare function computeTextLines(text: string, fontSize: number): Array<{
|
|
|
10607
11120
|
* `RenderedConnector[]` view-models. Every binding renders the same
|
|
10608
11121
|
* geometry; this maps those view-models to SVG exactly as Vue does.
|
|
10609
11122
|
* 3. **Placeholder** -- when there is neither data nor any nodes/shapes.
|
|
11123
|
+
*
|
|
11124
|
+
* Positioning is NOT this component's job: its chrome root fills the positioned,
|
|
11125
|
+
* element-id bearing box its host draws (the element dispatcher, the 3D
|
|
11126
|
+
* renderer's fallback branch, or a preview stage), the same contract the chart
|
|
11127
|
+
* and table renderers follow. Owning `left`/`top` here too offset the diagram
|
|
11128
|
+
* twice, and stamping the element id on this root hid the host's marked node
|
|
11129
|
+
* from anything reading the element contract by id.
|
|
10610
11130
|
*/
|
|
10611
11131
|
declare class SmartArtRendererComponent {
|
|
10612
11132
|
/** The smartArt element to render. Must be `type === 'smartArt'`. */
|
|
10613
11133
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
10614
|
-
readonly zIndex: _angular_core.InputSignal<number>;
|
|
10615
11134
|
/**
|
|
10616
11135
|
* Whether inline on-canvas node-text editing is enabled. False in
|
|
10617
11136
|
* presentation / read-only / thumbnail contexts (mirrors the table renderer's
|
|
@@ -10660,7 +11179,6 @@ declare class SmartArtRendererComponent {
|
|
|
10660
11179
|
readonly canEditNodes: _angular_core.Signal<boolean>;
|
|
10661
11180
|
constructor();
|
|
10662
11181
|
private readonly smartArtData;
|
|
10663
|
-
readonly containerStyle: _angular_core.Signal<StyleMap>;
|
|
10664
11182
|
readonly chromeStyle: _angular_core.Signal<StyleMap>;
|
|
10665
11183
|
readonly palette: _angular_core.Signal<string[]>;
|
|
10666
11184
|
readonly artStyle: _angular_core.Signal<pptx_viewer_core.SmartArtStyle>;
|
|
@@ -10749,7 +11267,7 @@ declare class SmartArtRendererComponent {
|
|
|
10749
11267
|
private reflow;
|
|
10750
11268
|
readonly isEmpty: _angular_core.Signal<boolean>;
|
|
10751
11269
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SmartArtRendererComponent, never>;
|
|
10752
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SmartArtRendererComponent, "pptx-smart-art-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "
|
|
11270
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SmartArtRendererComponent, "pptx-smart-art-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "animationState": { "alias": "animationState"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10753
11271
|
}
|
|
10754
11272
|
|
|
10755
11273
|
/**
|
|
@@ -10853,13 +11371,25 @@ declare class InkRendererComponent {
|
|
|
10853
11371
|
readonly zIndex: _angular_core.InputSignal<number>;
|
|
10854
11372
|
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
10855
11373
|
readonly replay: _angular_core.InputSignal<boolean>;
|
|
11374
|
+
/**
|
|
11375
|
+
* Emit the neutral element marker (`data-pptx-element="true"`) on this
|
|
11376
|
+
* renderer's root, the node that also carries `data-element-id`.
|
|
11377
|
+
*
|
|
11378
|
+
* Set only by the main interactive canvas. It is an input rather than
|
|
11379
|
+
* something the dispatcher wraps around this component because the root here
|
|
11380
|
+
* positions itself absolutely, so an outer marked box would offset the ink
|
|
11381
|
+
* twice. Without it an ink element renders correctly but is not an element as
|
|
11382
|
+
* far as the shared contract is concerned, so anything enumerating or
|
|
11383
|
+
* hit-testing slide elements by the marker skips it.
|
|
11384
|
+
*/
|
|
11385
|
+
readonly markElement: _angular_core.InputSignal<boolean>;
|
|
10856
11386
|
readonly replayKeyframes = "@keyframes pptx-ink-replay {\n from { stroke-dashoffset: var(--ink-path-length); }\n to { stroke-dashoffset: 0; }\n}";
|
|
10857
11387
|
readonly containerStyle: _angular_core.Signal<StyleMap>;
|
|
10858
11388
|
readonly strokes: _angular_core.Signal<InkStroke[]>;
|
|
10859
11389
|
readonly replayStyles: _angular_core.Signal<InkStrokeAnimationStyle[]>;
|
|
10860
11390
|
readonly viewBox: _angular_core.Signal<string>;
|
|
10861
11391
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InkRendererComponent, never>;
|
|
10862
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InkRendererComponent, "pptx-ink-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "replay": { "alias": "replay"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11392
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InkRendererComponent, "pptx-ink-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "replay": { "alias": "replay"; "required": false; "isSignal": true; }; "markElement": { "alias": "markElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10863
11393
|
}
|
|
10864
11394
|
|
|
10865
11395
|
/**
|
|
@@ -10939,6 +11469,10 @@ declare function buildOleActionModel(el: OlePptxElement, translate?: TranslateSe
|
|
|
10939
11469
|
* type-badge overlay; otherwise a type-specific icon + label placeholder box
|
|
10940
11470
|
* is drawn, mirroring the React / Vue fallback.
|
|
10941
11471
|
*
|
|
11472
|
+
* Positioning is NOT this component's job: it fills the positioned, element-id
|
|
11473
|
+
* bearing box its host draws (see `element-renderer.component.ts`), the same
|
|
11474
|
+
* contract the chart and table renderers follow.
|
|
11475
|
+
*
|
|
10942
11476
|
* Pure helpers (type resolution, colour / label maps, placeholder style) live
|
|
10943
11477
|
* in `ole-renderer-helpers.ts` so they can be unit-tested without TestBed.
|
|
10944
11478
|
*
|
|
@@ -10947,9 +11481,6 @@ declare function buildOleActionModel(el: OlePptxElement, translate?: TranslateSe
|
|
|
10947
11481
|
declare class OleRendererComponent {
|
|
10948
11482
|
/** The element to render. Must be `type === 'ole'`. */
|
|
10949
11483
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
10950
|
-
readonly zIndex: _angular_core.InputSignal<number>;
|
|
10951
|
-
/** Absolute container positioning + dimensions. */
|
|
10952
|
-
readonly containerStyle: _angular_core.Signal<StyleMap>;
|
|
10953
11484
|
/** Narrowed OLE element: undefined when the input is not `type === 'ole'`. */
|
|
10954
11485
|
private readonly ole;
|
|
10955
11486
|
/** Resolved application type (excel / word / pdf / visio / mathtype / unknown). */
|
|
@@ -10990,7 +11521,7 @@ declare class OleRendererComponent {
|
|
|
10990
11521
|
*/
|
|
10991
11522
|
openEmbedded(): void;
|
|
10992
11523
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<OleRendererComponent, never>;
|
|
10993
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OleRendererComponent, "pptx-ole-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; };
|
|
11524
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<OleRendererComponent, "pptx-ole-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
10994
11525
|
}
|
|
10995
11526
|
|
|
10996
11527
|
/** Narrowed view-model derived from a `Model3DPptxElement`. */
|
|
@@ -11055,6 +11586,15 @@ declare class Model3DRendererComponent implements OnDestroy {
|
|
|
11055
11586
|
* editor; the root viewer can pass `false` in passive presentation mode.
|
|
11056
11587
|
*/
|
|
11057
11588
|
readonly interactive: _angular_core.InputSignal<boolean>;
|
|
11589
|
+
/**
|
|
11590
|
+
* Emit the neutral element marker (`data-pptx-element="true"`) on this
|
|
11591
|
+
* renderer's root, the node that also carries `data-element-id`. Set only by
|
|
11592
|
+
* the main interactive canvas.
|
|
11593
|
+
*
|
|
11594
|
+
* Separate from `interactive` above, which is about the 3D scene's orbit
|
|
11595
|
+
* controls and defaults to `true` even on a thumbnail.
|
|
11596
|
+
*/
|
|
11597
|
+
readonly markElement: _angular_core.InputSignal<boolean>;
|
|
11058
11598
|
private readonly sceneRef;
|
|
11059
11599
|
readonly containerStyle: _angular_core.Signal<StyleMap>;
|
|
11060
11600
|
readonly vm: _angular_core.Signal<Model3DViewModel>;
|
|
@@ -11076,7 +11616,7 @@ declare class Model3DRendererComponent implements OnDestroy {
|
|
|
11076
11616
|
private teardownHandle;
|
|
11077
11617
|
ngOnDestroy(): void;
|
|
11078
11618
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Model3DRendererComponent, never>;
|
|
11079
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Model3DRendererComponent, "pptx-model3d-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11619
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Model3DRendererComponent, "pptx-model3d-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "interactive": { "alias": "interactive"; "required": false; "isSignal": true; }; "markElement": { "alias": "markElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11080
11620
|
}
|
|
11081
11621
|
|
|
11082
11622
|
/**
|
|
@@ -11171,6 +11711,16 @@ declare class ZoomRendererComponent {
|
|
|
11171
11711
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
11172
11712
|
readonly zIndex: _angular_core.InputSignal<number>;
|
|
11173
11713
|
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
11714
|
+
/**
|
|
11715
|
+
* Emit the neutral element marker (`data-pptx-element="true"`) on this
|
|
11716
|
+
* renderer's root, the node that also carries `data-element-id`. Set only by
|
|
11717
|
+
* the main interactive canvas.
|
|
11718
|
+
*
|
|
11719
|
+
* Deliberately NOT called `interactive`: this component already uses that
|
|
11720
|
+
* word for something else (`interactive()` below means the tile is
|
|
11721
|
+
* click-to-jump, which only happens inside a running presentation).
|
|
11722
|
+
*/
|
|
11723
|
+
readonly markElement: _angular_core.InputSignal<boolean>;
|
|
11174
11724
|
readonly containerStyle: _angular_core.Signal<StyleMap>;
|
|
11175
11725
|
/**
|
|
11176
11726
|
* Target-slide lookup, provided by the viewer. `null` in trees that do not
|
|
@@ -11194,7 +11744,7 @@ declare class ZoomRendererComponent {
|
|
|
11194
11744
|
protected onClick(event: MouseEvent): void;
|
|
11195
11745
|
protected onKeydown(event: KeyboardEvent): void;
|
|
11196
11746
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ZoomRendererComponent, never>;
|
|
11197
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZoomRendererComponent, "pptx-zoom-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11747
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ZoomRendererComponent, "pptx-zoom-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "markElement": { "alias": "markElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11198
11748
|
}
|
|
11199
11749
|
|
|
11200
11750
|
declare class AnimationPlaybackService {
|
|
@@ -11697,6 +12247,59 @@ declare class SlideSorterOverlayComponent {
|
|
|
11697
12247
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideSorterOverlayComponent, "pptx-slide-sorter-overlay", never, { "slides": { "alias": "slides"; "required": true; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "activeIndex": { "alias": "activeIndex"; "required": false; "isSignal": true; }; }, { "select": "select"; "closed": "closed"; }, never, never, true, never>;
|
|
11698
12248
|
}
|
|
11699
12249
|
|
|
12250
|
+
declare class ReadingViewOverlayComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
12251
|
+
/**
|
|
12252
|
+
* The deck to read, template (master/layout) elements already merged in. The
|
|
12253
|
+
* host passes its merged display deck rather than a separate template layer:
|
|
12254
|
+
* the reader navigates inside this overlay, so a single "active slide's
|
|
12255
|
+
* template elements" array would paint slide 1's master over slide 2.
|
|
12256
|
+
*/
|
|
12257
|
+
readonly slides: _angular_core.InputSignal<readonly PptxSlide[]>;
|
|
12258
|
+
readonly canvasSize: _angular_core.InputSignal<CanvasSize>;
|
|
12259
|
+
readonly mediaDataUrls: _angular_core.InputSignal<Map<string, string>>;
|
|
12260
|
+
/** Slide the editor was on when Reading View was entered. */
|
|
12261
|
+
readonly activeSlideIndex: _angular_core.InputSignal<number>;
|
|
12262
|
+
/** Emits the slide the reader ended on, so the editor lands there. */
|
|
12263
|
+
readonly exit: _angular_core.OutputEmitterRef<number>;
|
|
12264
|
+
/** Whether the view is on screen and which slide it shows (shared state). */
|
|
12265
|
+
protected readonly state: _angular_core.WritableSignal<ReadingViewState>;
|
|
12266
|
+
private readonly viewportRef;
|
|
12267
|
+
/** Measured size of the area the slide is fitted into, in CSS pixels. */
|
|
12268
|
+
private readonly viewport;
|
|
12269
|
+
/**
|
|
12270
|
+
* PowerPoint's "type a slide number, then Enter" jump. One buffer per open
|
|
12271
|
+
* session, and every key mapped through it EXACTLY once: mapping mutates the
|
|
12272
|
+
* buffer, so a second call would swallow the digit it just accumulated.
|
|
12273
|
+
*/
|
|
12274
|
+
private readonly keyBuffer;
|
|
12275
|
+
/** Bound once so the capture-phase listener can be removed again. */
|
|
12276
|
+
private readonly keyListener;
|
|
12277
|
+
private resizeObserver;
|
|
12278
|
+
ngOnInit(): void;
|
|
12279
|
+
ngAfterViewInit(): void;
|
|
12280
|
+
ngOnDestroy(): void;
|
|
12281
|
+
/** The slide on screen, or undefined when closed or the deck is empty. */
|
|
12282
|
+
protected readonly visibleSlide: _angular_core.Signal<PptxSlide | undefined>;
|
|
12283
|
+
/** Fit scale for the slide; 0 before the first layout pass. */
|
|
12284
|
+
protected readonly scale: _angular_core.Signal<number>;
|
|
12285
|
+
protected readonly stageWidth: _angular_core.Signal<number>;
|
|
12286
|
+
protected readonly stageHeight: _angular_core.Signal<number>;
|
|
12287
|
+
protected readonly counter: _angular_core.Signal<string>;
|
|
12288
|
+
protected readonly canPrevious: _angular_core.Signal<boolean>;
|
|
12289
|
+
protected readonly canNext: _angular_core.Signal<boolean>;
|
|
12290
|
+
/** Apply a navigation intent, handing the reader back to the editor on close. */
|
|
12291
|
+
protected run(command: ReadingViewCommand): void;
|
|
12292
|
+
/**
|
|
12293
|
+
* Window-level so no element has to hold focus, matching the slide show.
|
|
12294
|
+
* Writing {@link state} marks this `OnPush` view dirty and notifies Angular's
|
|
12295
|
+
* change-detection scheduler, so no manual `markForCheck` is needed even
|
|
12296
|
+
* though the listener is not a host binding.
|
|
12297
|
+
*/
|
|
12298
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
12299
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ReadingViewOverlayComponent, never>;
|
|
12300
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReadingViewOverlayComponent, "pptx-reading-view-overlay", never, { "slides": { "alias": "slides"; "required": false; "isSignal": true; }; "canvasSize": { "alias": "canvasSize"; "required": true; "isSignal": true; }; "mediaDataUrls": { "alias": "mediaDataUrls"; "required": false; "isSignal": true; }; "activeSlideIndex": { "alias": "activeSlideIndex"; "required": false; "isSignal": true; }; }, { "exit": "exit"; }, never, never, true, never>;
|
|
12301
|
+
}
|
|
12302
|
+
|
|
11700
12303
|
declare class FindBarComponent {
|
|
11701
12304
|
/** All slides in the current presentation. */
|
|
11702
12305
|
readonly slides: _angular_core.InputSignal<PptxSlide[]>;
|
|
@@ -11949,6 +12552,116 @@ declare class SlideSizeCardComponent {
|
|
|
11949
12552
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideSizeCardComponent, "pptx-slide-size-card", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11950
12553
|
}
|
|
11951
12554
|
|
|
12555
|
+
declare class SlideTransitionCardComponent {
|
|
12556
|
+
/** Zero-based index of the slide whose transition is being edited. */
|
|
12557
|
+
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
12558
|
+
/** Whether mutation controls are enabled. */
|
|
12559
|
+
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
12560
|
+
private readonly editor;
|
|
12561
|
+
protected readonly transitionOptions: readonly SlideTransitionOptionEntry[];
|
|
12562
|
+
protected readonly orientOptions: ({
|
|
12563
|
+
value: "horz";
|
|
12564
|
+
i18nKey: string;
|
|
12565
|
+
} | {
|
|
12566
|
+
value: "vert";
|
|
12567
|
+
i18nKey: string;
|
|
12568
|
+
})[];
|
|
12569
|
+
protected readonly maxDurationMs = 10000;
|
|
12570
|
+
protected readonly minSpokes = 1;
|
|
12571
|
+
protected readonly maxSpokes = 8;
|
|
12572
|
+
protected readonly activeSlide: _angular_core.Signal<PptxSlide | undefined>;
|
|
12573
|
+
protected readonly transition: _angular_core.Signal<PptxSlideTransition | undefined>;
|
|
12574
|
+
protected readonly transitionType: _angular_core.Signal<PptxTransitionType>;
|
|
12575
|
+
protected readonly usesOrientation: _angular_core.Signal<boolean>;
|
|
12576
|
+
protected readonly isWheel: _angular_core.Signal<boolean>;
|
|
12577
|
+
/** Compass tokens for the current type, or undefined when it takes none. */
|
|
12578
|
+
protected readonly directionTokens: _angular_core.Signal<readonly string[] | undefined>;
|
|
12579
|
+
protected readonly orientation: _angular_core.Signal<pptx_viewer_core.PptxSplitOrientation>;
|
|
12580
|
+
protected readonly spokes: _angular_core.Signal<number>;
|
|
12581
|
+
protected readonly durationMs: _angular_core.Signal<number>;
|
|
12582
|
+
protected readonly advanceOnClick: _angular_core.Signal<boolean>;
|
|
12583
|
+
protected onTypeChange(event: Event): void;
|
|
12584
|
+
protected onDirection(direction: string): void;
|
|
12585
|
+
protected onOrientation(orient: 'horz' | 'vert'): void;
|
|
12586
|
+
protected onSpokes(event: Event): void;
|
|
12587
|
+
protected onDuration(event: Event): void;
|
|
12588
|
+
protected onAdvanceOnClick(event: Event): void;
|
|
12589
|
+
/** Merge a partial transition change onto the slide as one history entry. */
|
|
12590
|
+
private patch;
|
|
12591
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideTransitionCardComponent, never>;
|
|
12592
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideTransitionCardComponent, "pptx-slide-transition-card", never, { "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12593
|
+
}
|
|
12594
|
+
|
|
12595
|
+
declare class SlideBackgroundCardComponent {
|
|
12596
|
+
/** Zero-based index of the slide whose background is being edited. */
|
|
12597
|
+
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
12598
|
+
/** Whether mutation controls are enabled. */
|
|
12599
|
+
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
12600
|
+
private readonly editor;
|
|
12601
|
+
protected readonly imageAccept = "image/png,image/jpeg,image/gif,image/webp,image/svg+xml";
|
|
12602
|
+
protected readonly slide: _angular_core.Signal<PptxSlide | undefined>;
|
|
12603
|
+
/** Stable per-slide key so the colour input reseeds only on slide change. */
|
|
12604
|
+
protected readonly slideKey: _angular_core.Signal<string>;
|
|
12605
|
+
protected readonly backgroundColor: _angular_core.Signal<string>;
|
|
12606
|
+
protected readonly hasBackground: _angular_core.Signal<boolean>;
|
|
12607
|
+
protected onColorChange(event: Event): void;
|
|
12608
|
+
protected onImagePicked(event: Event): void;
|
|
12609
|
+
protected onRemoveImage(): void;
|
|
12610
|
+
protected onClear(): void;
|
|
12611
|
+
private patch;
|
|
12612
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SlideBackgroundCardComponent, never>;
|
|
12613
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SlideBackgroundCardComponent, "pptx-slide-background-card", never, { "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12614
|
+
}
|
|
12615
|
+
|
|
12616
|
+
/** One rendered grid slot: a direction token, or a blank spacer. */
|
|
12617
|
+
interface DirectionCell {
|
|
12618
|
+
/** Stable key for `@for` tracking (cells can repeat `null`). */
|
|
12619
|
+
readonly key: string;
|
|
12620
|
+
/** The direction token, or null for an empty compass slot. */
|
|
12621
|
+
readonly value: string | null;
|
|
12622
|
+
/** Arrow glyph for the token (falls back to the raw token). */
|
|
12623
|
+
readonly arrow: string;
|
|
12624
|
+
}
|
|
12625
|
+
declare class TransitionDirectionPickerComponent {
|
|
12626
|
+
/** Valid direction tokens for the current transition type. */
|
|
12627
|
+
readonly directions: _angular_core.InputSignal<readonly string[]>;
|
|
12628
|
+
/** Currently selected token, if any. */
|
|
12629
|
+
readonly value: _angular_core.InputSignal<string | undefined>;
|
|
12630
|
+
/** Whether the buttons are inert (read-only deck). */
|
|
12631
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
12632
|
+
/** The token the user chose. */
|
|
12633
|
+
readonly pick: _angular_core.OutputEmitterRef<string>;
|
|
12634
|
+
/** Four or more tokens earn the compass grid; fewer stay an inline row. */
|
|
12635
|
+
protected readonly useGrid: _angular_core.Signal<boolean>;
|
|
12636
|
+
protected readonly gridCells: _angular_core.Signal<DirectionCell[]>;
|
|
12637
|
+
/** Arrow glyph for a token, falling back to the raw token. */
|
|
12638
|
+
protected arrowFor(token: string): string;
|
|
12639
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TransitionDirectionPickerComponent, never>;
|
|
12640
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TransitionDirectionPickerComponent, "pptx-transition-direction-picker", never, { "directions": { "alias": "directions"; "required": true; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "pick": "pick"; }, never, never, true, never>;
|
|
12641
|
+
}
|
|
12642
|
+
|
|
12643
|
+
declare class TransitionPreviewComponent {
|
|
12644
|
+
/** The transition being previewed. */
|
|
12645
|
+
readonly transition: _angular_core.InputSignal<PptxSlideTransition>;
|
|
12646
|
+
/** Bumped on every click; recreates both layers so the animation restarts. */
|
|
12647
|
+
private readonly playKey;
|
|
12648
|
+
private readonly playing;
|
|
12649
|
+
private timer;
|
|
12650
|
+
constructor();
|
|
12651
|
+
/** Single-element list so the template can key the layers on the counter. */
|
|
12652
|
+
protected readonly playKeys: _angular_core.Signal<readonly number[]>;
|
|
12653
|
+
protected readonly durationMs: _angular_core.Signal<number>;
|
|
12654
|
+
/** `none` and `cut` have nothing to show; React hides the preview entirely. */
|
|
12655
|
+
protected readonly previewable: _angular_core.Signal<boolean>;
|
|
12656
|
+
private readonly animations;
|
|
12657
|
+
protected readonly incomingAnimation: _angular_core.Signal<string | null>;
|
|
12658
|
+
protected readonly outgoingAnimation: _angular_core.Signal<string | null>;
|
|
12659
|
+
protected readonly outgoingZIndex: _angular_core.Signal<0 | 2>;
|
|
12660
|
+
protected play(): void;
|
|
12661
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TransitionPreviewComponent, never>;
|
|
12662
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TransitionPreviewComponent, "pptx-transition-preview", never, { "transition": { "alias": "transition"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12663
|
+
}
|
|
12664
|
+
|
|
11952
12665
|
declare class NotesHandoutCardComponent {
|
|
11953
12666
|
private readonly loader;
|
|
11954
12667
|
private readonly translate;
|
|
@@ -11979,6 +12692,28 @@ declare class DocumentPropertiesCardComponent {
|
|
|
11979
12692
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DocumentPropertiesCardComponent, "pptx-document-properties-card", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
11980
12693
|
}
|
|
11981
12694
|
|
|
12695
|
+
declare class TagsCardComponent {
|
|
12696
|
+
/** Whether mutation controls are enabled. */
|
|
12697
|
+
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
12698
|
+
private readonly loader;
|
|
12699
|
+
private readonly editor;
|
|
12700
|
+
/** Collapsed by default, matching React's TagsSection initial state. */
|
|
12701
|
+
protected readonly collapsed: _angular_core.WritableSignal<boolean>;
|
|
12702
|
+
protected readonly rows: _angular_core.Signal<FlatTagRow[]>;
|
|
12703
|
+
protected toggle(): void;
|
|
12704
|
+
protected onFieldChange(event: Event, colIdx: number, tagIdx: number, field: 'name' | 'value'): void;
|
|
12705
|
+
protected onDelete(colIdx: number, tagIdx: number): void;
|
|
12706
|
+
protected onAdd(): void;
|
|
12707
|
+
/**
|
|
12708
|
+
* Tags live outside the slide list, so they are not part of the slide undo
|
|
12709
|
+
* stack; writing the loader signal and flagging the deck dirty is the same
|
|
12710
|
+
* path the DOCUMENT properties card uses.
|
|
12711
|
+
*/
|
|
12712
|
+
private commit;
|
|
12713
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagsCardComponent, never>;
|
|
12714
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagsCardComponent, "pptx-tags-card", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
12715
|
+
}
|
|
12716
|
+
|
|
11982
12717
|
declare class GradientPickerComponent {
|
|
11983
12718
|
/** The element whose gradient fill is being edited. */
|
|
11984
12719
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
@@ -12066,6 +12801,79 @@ declare class TextAdvancedPanelComponent {
|
|
|
12066
12801
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextAdvancedPanelComponent, "pptx-text-advanced-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
|
|
12067
12802
|
}
|
|
12068
12803
|
|
|
12804
|
+
declare class Text3DPanelComponent {
|
|
12805
|
+
/** The selected element whose text style carries the 3D settings. */
|
|
12806
|
+
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
12807
|
+
/** A partial-element patch for the orchestrator to commit (one history entry). */
|
|
12808
|
+
readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
|
|
12809
|
+
protected readonly materialPresets: readonly {
|
|
12810
|
+
value: MaterialPresetType | "";
|
|
12811
|
+
label: string;
|
|
12812
|
+
}[];
|
|
12813
|
+
protected readonly maxDepthPt = 100;
|
|
12814
|
+
protected readonly topBevelKeys: pptx_angular_viewer.Text3DBevelKeys;
|
|
12815
|
+
protected readonly bottomBevelKeys: pptx_angular_viewer.Text3DBevelKeys;
|
|
12816
|
+
protected readonly text3d: _angular_core.Signal<Text3DStyle | undefined>;
|
|
12817
|
+
protected readonly hasExtrusion: _angular_core.Signal<boolean>;
|
|
12818
|
+
protected readonly depthPt: _angular_core.Signal<number>;
|
|
12819
|
+
protected readonly extrusionColor: _angular_core.Signal<string>;
|
|
12820
|
+
protected readonly material: _angular_core.Signal<string>;
|
|
12821
|
+
/** Merge a partial 3D change onto the current style and emit the patch. */
|
|
12822
|
+
protected commit(changes: Partial<Text3DStyle>): void;
|
|
12823
|
+
protected onExtrusionToggle(event: Event): void;
|
|
12824
|
+
protected onDepthChange(event: Event): void;
|
|
12825
|
+
protected onColorChange(event: Event): void;
|
|
12826
|
+
protected onMaterialChange(event: Event): void;
|
|
12827
|
+
private emitText3d;
|
|
12828
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Text3DPanelComponent, never>;
|
|
12829
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Text3DPanelComponent, "pptx-text-3d-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
|
|
12830
|
+
}
|
|
12831
|
+
|
|
12832
|
+
/** The three `Text3DStyle` fields one bevel block owns. */
|
|
12833
|
+
interface Text3DBevelKeys {
|
|
12834
|
+
readonly type: 'bevelTopType' | 'bevelBottomType';
|
|
12835
|
+
readonly width: 'bevelTopWidth' | 'bevelBottomWidth';
|
|
12836
|
+
readonly height: 'bevelTopHeight' | 'bevelBottomHeight';
|
|
12837
|
+
}
|
|
12838
|
+
/** Field names of the TOP bevel (`a:bevelT`). */
|
|
12839
|
+
declare const TEXT_3D_TOP_BEVEL_KEYS: Text3DBevelKeys;
|
|
12840
|
+
/** Field names of the BOTTOM bevel (`a:bevelB`). */
|
|
12841
|
+
declare const TEXT_3D_BOTTOM_BEVEL_KEYS: Text3DBevelKeys;
|
|
12842
|
+
/**
|
|
12843
|
+
* Build the single-field patch for one bevel input. Exported (and pure) so the
|
|
12844
|
+
* clamping is unit-testable without a TestBed, matching this package's
|
|
12845
|
+
* convention of testing logic and leaving DOM behaviour to the e2e specs.
|
|
12846
|
+
*/
|
|
12847
|
+
declare function bevelSizePatch(key: Text3DBevelKeys['width'] | Text3DBevelKeys['height'], pt: number): Partial<Text3DStyle>;
|
|
12848
|
+
declare class Text3DBevelSectionComponent {
|
|
12849
|
+
/** Display label for this edge (already translated by the parent). */
|
|
12850
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
12851
|
+
/** Which `Text3DStyle` fields this block writes. */
|
|
12852
|
+
readonly keys: _angular_core.InputSignal<Text3DBevelKeys>;
|
|
12853
|
+
/**
|
|
12854
|
+
* The element's current 3D-text style, if any. Named `text3d` rather than
|
|
12855
|
+
* `style` because Angular special-cases a `[style]` binding as the native
|
|
12856
|
+
* style map, which would never reach an input of that name.
|
|
12857
|
+
*/
|
|
12858
|
+
readonly text3d: _angular_core.InputSignal<Text3DStyle | undefined>;
|
|
12859
|
+
/** Whether the controls are inert (no extrusion, or read-only deck). */
|
|
12860
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
12861
|
+
/** A partial `Text3DStyle` change for the parent to merge and commit. */
|
|
12862
|
+
readonly bevelChange: _angular_core.OutputEmitterRef<Partial<Text3DStyle>>;
|
|
12863
|
+
protected readonly bevelPresets: readonly {
|
|
12864
|
+
value: BevelPresetType;
|
|
12865
|
+
label: string;
|
|
12866
|
+
}[];
|
|
12867
|
+
protected readonly maxPt = 50;
|
|
12868
|
+
protected readonly bevelType: _angular_core.Signal<BevelPresetType>;
|
|
12869
|
+
protected readonly widthPt: _angular_core.Signal<number>;
|
|
12870
|
+
protected readonly heightPt: _angular_core.Signal<number>;
|
|
12871
|
+
protected onType(event: Event): void;
|
|
12872
|
+
protected onSize(event: Event, dimension: 'width' | 'height'): void;
|
|
12873
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<Text3DBevelSectionComponent, never>;
|
|
12874
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<Text3DBevelSectionComponent, "pptx-text-3d-bevel-section", never, { "label": { "alias": "label"; "required": true; "isSignal": true; }; "keys": { "alias": "keys"; "required": true; "isSignal": true; }; "text3d": { "alias": "text3d"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "bevelChange": "bevelChange"; }, never, never, true, never>;
|
|
12875
|
+
}
|
|
12876
|
+
|
|
12069
12877
|
declare class TableDataEditorComponent {
|
|
12070
12878
|
/** The table element being edited. */
|
|
12071
12879
|
readonly element: _angular_core.InputSignal<TablePptxElement>;
|
|
@@ -12075,10 +12883,19 @@ declare class TableDataEditorComponent {
|
|
|
12075
12883
|
readonly elementChange: _angular_core.OutputEmitterRef<TablePptxElement>;
|
|
12076
12884
|
/** Shared cell selection (drives the cell-formatting panel + context menu). */
|
|
12077
12885
|
private readonly selection;
|
|
12078
|
-
|
|
12886
|
+
/**
|
|
12887
|
+
* Normalised render model from `pptx-viewer-shared`. Using it (rather than
|
|
12888
|
+
* iterating `tableData.rows` directly) is what keeps ragged rows, which real
|
|
12889
|
+
* decks do contain, from rendering a lopsided grid with cells missing off the
|
|
12890
|
+
* right-hand edge.
|
|
12891
|
+
*/
|
|
12892
|
+
protected readonly grid: _angular_core.Signal<TableDataGridModel>;
|
|
12893
|
+
protected readonly rows: _angular_core.Signal<TableDataGridRow[]>;
|
|
12079
12894
|
protected readonly rowCount: _angular_core.Signal<number>;
|
|
12080
12895
|
protected readonly colCount: _angular_core.Signal<number>;
|
|
12081
12896
|
protected readonly colIndices: _angular_core.Signal<number[]>;
|
|
12897
|
+
protected readonly canRemoveRow: _angular_core.Signal<boolean>;
|
|
12898
|
+
protected readonly canRemoveColumn: _angular_core.Signal<boolean>;
|
|
12082
12899
|
protected onCellChange(event: Event, rowIndex: number, colIndex: number): void;
|
|
12083
12900
|
/** Focusing a cell selects it so the cell-formatting panel targets it. */
|
|
12084
12901
|
protected onCellFocus(rowIndex: number, colIndex: number): void;
|
|
@@ -12948,6 +13765,8 @@ declare class EditorToolbarComponent {
|
|
|
12948
13765
|
}
|
|
12949
13766
|
|
|
12950
13767
|
declare class StatusBarComponent {
|
|
13768
|
+
/** Shared height token; see the note above the row in the template. */
|
|
13769
|
+
protected readonly statusBarHeightClass: "min-h-[29px]";
|
|
12951
13770
|
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
12952
13771
|
readonly slideCount: _angular_core.InputSignal<number>;
|
|
12953
13772
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
@@ -13006,6 +13825,14 @@ declare class EditorContextMenuComponent {
|
|
|
13006
13825
|
readonly askAi: _angular_core.OutputEmitterRef<void>;
|
|
13007
13826
|
/** "Fix with AI": open the assistant with a prefilled fix directive. */
|
|
13008
13827
|
readonly fixAi: _angular_core.OutputEmitterRef<void>;
|
|
13828
|
+
/**
|
|
13829
|
+
* "Edit Hyperlink": the dialog lives at viewer level (it needs the selected
|
|
13830
|
+
* element and the document-properties service), so the menu asks for it
|
|
13831
|
+
* rather than owning it.
|
|
13832
|
+
*/
|
|
13833
|
+
readonly editHyperlink: _angular_core.OutputEmitterRef<void>;
|
|
13834
|
+
/** "Add Comment": open the right-docked comments panel, as React does. */
|
|
13835
|
+
readonly addComment: _angular_core.OutputEmitterRef<void>;
|
|
13009
13836
|
protected readonly editor: EditorStateService;
|
|
13010
13837
|
private readonly tableSelection;
|
|
13011
13838
|
private readonly host;
|
|
@@ -13018,36 +13845,23 @@ declare class EditorContextMenuComponent {
|
|
|
13018
13845
|
element: TablePptxElement;
|
|
13019
13846
|
sel: TableCellSelection;
|
|
13020
13847
|
} | null>;
|
|
13848
|
+
/** The single selected element, or null on an empty or multi selection. */
|
|
13849
|
+
private readonly selectedElement;
|
|
13850
|
+
/** The menu, as the shared command list builds it for this right-click. */
|
|
13851
|
+
protected readonly entries: _angular_core.Signal<ContextMenuEntry[]>;
|
|
13852
|
+
/** Editor operations behind each command id (see the dispatch module). */
|
|
13853
|
+
private readonly actions;
|
|
13021
13854
|
onEscape(): void;
|
|
13022
13855
|
onDocumentPointerDown(event: PointerEvent): void;
|
|
13023
|
-
|
|
13024
|
-
protected
|
|
13025
|
-
protected onCut(): void;
|
|
13026
|
-
protected onCopy(): void;
|
|
13027
|
-
protected onPaste(): void;
|
|
13028
|
-
protected onDuplicate(): void;
|
|
13029
|
-
protected onDelete(): void;
|
|
13030
|
-
protected onBringToFront(): void;
|
|
13031
|
-
protected onSendToBack(): void;
|
|
13032
|
-
protected onBringForward(): void;
|
|
13033
|
-
protected onSendBackward(): void;
|
|
13034
|
-
protected onInsertRowAbove(): void;
|
|
13035
|
-
protected onInsertRowBelow(): void;
|
|
13036
|
-
protected onInsertColLeft(): void;
|
|
13037
|
-
protected onInsertColRight(): void;
|
|
13038
|
-
protected onDeleteRow(): void;
|
|
13039
|
-
protected onDeleteColumn(): void;
|
|
13040
|
-
protected onMergeRight(): void;
|
|
13041
|
-
protected onMergeDown(): void;
|
|
13042
|
-
protected onSplitCell(): void;
|
|
13043
|
-
protected onMergeSelected(): void;
|
|
13856
|
+
/** Run the chosen command, then close: every item closes the menu. */
|
|
13857
|
+
protected run(id: ContextMenuCommandId): void;
|
|
13044
13858
|
/**
|
|
13045
13859
|
* Run a pure table transform on the current table context and commit the
|
|
13046
|
-
* result through the editor (one undoable history entry)
|
|
13860
|
+
* result through the editor (one undoable history entry).
|
|
13047
13861
|
*/
|
|
13048
13862
|
private applyTable;
|
|
13049
13863
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EditorContextMenuComponent, never>;
|
|
13050
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EditorContextMenuComponent, "pptx-editor-context-menu", never, { "x": { "alias": "x"; "required": true; "isSignal": true; }; "y": { "alias": "y"; "required": true; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "showAiActions": { "alias": "showAiActions"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "askAi": "askAi"; "fixAi": "fixAi"; }, never, never, true, never>;
|
|
13864
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EditorContextMenuComponent, "pptx-editor-context-menu", never, { "x": { "alias": "x"; "required": true; "isSignal": true; }; "y": { "alias": "y"; "required": true; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": true; "isSignal": true; }; "showAiActions": { "alias": "showAiActions"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "askAi": "askAi"; "fixAi": "fixAi"; "editHyperlink": "editHyperlink"; "addComment": "addComment"; }, never, never, true, never>;
|
|
13051
13865
|
}
|
|
13052
13866
|
|
|
13053
13867
|
/**
|
|
@@ -13162,6 +13976,11 @@ declare class EquationRendererComponent {
|
|
|
13162
13976
|
* Converts the OMML input to MathML and wraps it in a `SafeHtml` value so
|
|
13163
13977
|
* Angular's `[innerHTML]` binding renders the `<math>` markup instead of
|
|
13164
13978
|
* stripping it.
|
|
13979
|
+
*
|
|
13980
|
+
* `bypassSecurityTrustHtml` switches Angular's own sanitiser off, and the
|
|
13981
|
+
* OMML comes from an arbitrary deck, so the markup is run through the shared
|
|
13982
|
+
* `sanitizeMathMl` (DOMPurify, MathML + SVG profiles) first. That is the same
|
|
13983
|
+
* guarantee the other four bindings apply at their raw-HTML sinks.
|
|
13165
13984
|
*/
|
|
13166
13985
|
readonly safeMathml: _angular_core.Signal<SafeHtml>;
|
|
13167
13986
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EquationRendererComponent, never>;
|
|
@@ -13376,22 +14195,32 @@ declare class AnimationPanelComponent {
|
|
|
13376
14195
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AnimationPanelComponent, "pptx-animation-panel", never, { "groups": { "alias": "groups"; "required": true; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "isPlaying": { "alias": "isPlaying"; "required": false; "isSignal": true; }; }, { "playRequested": "playRequested"; "pauseRequested": "pauseRequested"; "stepRequested": "stepRequested"; "resetRequested": "resetRequested"; "seek": "seek"; }, never, never, true, never>;
|
|
13377
14196
|
}
|
|
13378
14197
|
|
|
14198
|
+
type Trigger = 'click' | 'hover';
|
|
13379
14199
|
declare class ActionSettingsPanelComponent {
|
|
13380
14200
|
readonly element: _angular_core.InputSignal<PptxElement>;
|
|
13381
14201
|
readonly slideCount: _angular_core.InputSignal<number>;
|
|
13382
14202
|
readonly patch: _angular_core.OutputEmitterRef<Partial<PptxElement>>;
|
|
13383
14203
|
protected readonly triggers: readonly ["click", "hover"];
|
|
13384
|
-
protected readonly actionTypes: readonly
|
|
13385
|
-
|
|
13386
|
-
|
|
13387
|
-
|
|
14204
|
+
protected readonly actionTypes: readonly ElementActionOption[];
|
|
14205
|
+
/**
|
|
14206
|
+
* The type the user just picked, per trigger.
|
|
14207
|
+
*
|
|
14208
|
+
* WHY it exists: "Go to URL" / "Go to Slide" only become a stored action once
|
|
14209
|
+
* they carry a target, so controls driven purely by the committed element
|
|
14210
|
+
* never revealed the input needed to supply that target, leaving both kinds
|
|
14211
|
+
* unreachable. The pick is tagged with its element id so moving the inspector
|
|
14212
|
+
* to another shape does not carry a half-made choice across.
|
|
14213
|
+
*/
|
|
14214
|
+
private readonly pending;
|
|
13388
14215
|
private readonly clickAction;
|
|
13389
14216
|
private readonly hoverAction;
|
|
13390
|
-
protected actionFor(trigger:
|
|
14217
|
+
protected actionFor(trigger: Trigger): ElementAction | undefined;
|
|
14218
|
+
/** The action type this trigger's controls should render right now. */
|
|
14219
|
+
protected typeFor(trigger: Trigger): ElementActionType;
|
|
13391
14220
|
private update;
|
|
13392
|
-
protected onType(event: Event, trigger:
|
|
13393
|
-
protected onUrl(event: Event, trigger:
|
|
13394
|
-
protected onSlide(event: Event, trigger:
|
|
14221
|
+
protected onType(event: Event, trigger: Trigger): void;
|
|
14222
|
+
protected onUrl(event: Event, trigger: Trigger): void;
|
|
14223
|
+
protected onSlide(event: Event, trigger: Trigger): void;
|
|
13395
14224
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActionSettingsPanelComponent, never>;
|
|
13396
14225
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ActionSettingsPanelComponent, "pptx-action-settings-panel", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; }, { "patch": "patch"; }, never, never, true, never>;
|
|
13397
14226
|
}
|
|
@@ -13944,7 +14773,15 @@ declare class EquationEditorDialogComponent {
|
|
|
13944
14773
|
* (the shared catalogue every binding's equation dialog renders).
|
|
13945
14774
|
*/
|
|
13946
14775
|
declare const TEMPLATES: readonly pptx_angular_viewer.EquationTemplate[];
|
|
13947
|
-
/**
|
|
14776
|
+
/**
|
|
14777
|
+
* Convert a LaTeX string to a MathML markup string, empty on any failure.
|
|
14778
|
+
*
|
|
14779
|
+
* The result is DOMPurify-sanitised (MathML + SVG profiles) by shared before it
|
|
14780
|
+
* is returned. That matters here specifically: the Angular dialog and gallery
|
|
14781
|
+
* hand this string to `DomSanitizer.bypassSecurityTrustHtml`, which disables
|
|
14782
|
+
* Angular's own sanitiser, so this was previously the one binding injecting
|
|
14783
|
+
* unsanitised equation markup.
|
|
14784
|
+
*/
|
|
13948
14785
|
declare function latexToMathml(latex: string): string;
|
|
13949
14786
|
|
|
13950
14787
|
declare class EquationTemplateGalleryComponent {
|
|
@@ -14365,7 +15202,7 @@ declare class AccountPageComponent {
|
|
|
14365
15202
|
readonly accountAuth: _angular_core.InputSignal<AccountAuthConfig | undefined>;
|
|
14366
15203
|
private readonly translate;
|
|
14367
15204
|
protected readonly swatches: readonly string[];
|
|
14368
|
-
protected readonly version = "2.
|
|
15205
|
+
protected readonly version = "2.9.0";
|
|
14369
15206
|
protected readonly profile: _angular_core.WritableSignal<ViewerProfile>;
|
|
14370
15207
|
protected readonly initial: _angular_core.Signal<string>;
|
|
14371
15208
|
protected readonly usage: _angular_core.WritableSignal<LocalStorageUsageSummary | null>;
|
|
@@ -15154,10 +15991,19 @@ declare function computeCornerHandle(box: (Box & {
|
|
|
15154
15991
|
}) | null, editable: boolean, handleScreenPx: number, offsetPx: number, zoom: number, corner: 'top-center' | 'top-left'): CornerHandleBox | null;
|
|
15155
15992
|
/**
|
|
15156
15993
|
* Resolve the id of the interactive element under a pointer target, or null.
|
|
15157
|
-
*
|
|
15158
|
-
*
|
|
15159
|
-
*
|
|
15160
|
-
*
|
|
15994
|
+
*
|
|
15995
|
+
* Resolution goes through the shared hit-test, which answers with the TOP-LEVEL
|
|
15996
|
+
* element rather than the innermost `data-element-id` node. That distinction is
|
|
15997
|
+
* the whole point here: a group renders its children's nodes inside its own, so
|
|
15998
|
+
* the innermost node under a click is usually a grouped CHILD, whose id is not
|
|
15999
|
+
* in `allElements`. This function used to look that child id up, find nothing,
|
|
16000
|
+
* and report "no element", which CLEARED the selection: Ungroup was then only
|
|
16001
|
+
* reachable by hitting a gap inside the group's box that missed every child.
|
|
16002
|
+
* PowerPoint (and React, Vanilla and Svelte) select the group instead.
|
|
16003
|
+
*
|
|
16004
|
+
* Template (master/layout) elements are only interactive while
|
|
16005
|
+
* `editTemplateMode` is on; when off they are reported as null so the canvas
|
|
16006
|
+
* treats them as background (no select/drag/context-menu/inline-edit).
|
|
15161
16007
|
*/
|
|
15162
16008
|
declare function resolveInteractiveElementId(target: EventTarget | null, allElements: readonly PptxElement[], editTemplateMode: boolean): string | null;
|
|
15163
16009
|
|
|
@@ -15443,6 +16289,12 @@ declare class SmartArt3DRendererComponent implements OnDestroy {
|
|
|
15443
16289
|
readonly zIndex: _angular_core.InputSignal<number>;
|
|
15444
16290
|
/** When true and the 3D scene is active, enables inline node text editing. */
|
|
15445
16291
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
16292
|
+
/**
|
|
16293
|
+
* Emit the neutral element marker (`data-pptx-element="true"`) on the node
|
|
16294
|
+
* that also carries `data-element-id`: the 3D scene's root, or the box the
|
|
16295
|
+
* SVG fallback branch is drawn into. Set only by the main interactive canvas.
|
|
16296
|
+
*/
|
|
16297
|
+
readonly markElement: _angular_core.InputSignal<boolean>;
|
|
15446
16298
|
private readonly canvas;
|
|
15447
16299
|
private readonly containerEl;
|
|
15448
16300
|
private readonly nodeEditor3d;
|
|
@@ -15480,7 +16332,7 @@ declare class SmartArt3DRendererComponent implements OnDestroy {
|
|
|
15480
16332
|
private applyCommit;
|
|
15481
16333
|
ngOnDestroy(): void;
|
|
15482
16334
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SmartArt3DRendererComponent, never>;
|
|
15483
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SmartArt3DRendererComponent, "pptx-smart-art-3d-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
16335
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SmartArt3DRendererComponent, "pptx-smart-art-3d-renderer", never, { "element": { "alias": "element"; "required": true; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "markElement": { "alias": "markElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15484
16336
|
}
|
|
15485
16337
|
|
|
15486
16338
|
declare class SmartArtPreviewComponent {
|
|
@@ -15752,26 +16604,6 @@ declare function parseNodeTextarea(value: string, fallback: readonly string[]):
|
|
|
15752
16604
|
* @module angular-viewer/table-data-helpers
|
|
15753
16605
|
*/
|
|
15754
16606
|
|
|
15755
|
-
/**
|
|
15756
|
-
* Insert a blank row above or below `rowIdx`, growing any vertical merge spans
|
|
15757
|
-
* that straddle the insertion point (delegates to the shared `insertTableRow`).
|
|
15758
|
-
*/
|
|
15759
|
-
declare function insertRow(element: TablePptxElement, rowIdx: number, position: 'above' | 'below'): TablePptxElement;
|
|
15760
|
-
/**
|
|
15761
|
-
* Delete the row at `rowIdx`, adjusting vertical merge spans. No-op (element
|
|
15762
|
-
* returned unchanged) when the table has a single row.
|
|
15763
|
-
*/
|
|
15764
|
-
declare function removeRow(element: TablePptxElement, rowIdx: number): TablePptxElement;
|
|
15765
|
-
/**
|
|
15766
|
-
* Insert a blank column left or right of `colIdx`, splitting the source column's
|
|
15767
|
-
* width and growing horizontal merge spans (delegates to `insertTableColumn`).
|
|
15768
|
-
*/
|
|
15769
|
-
declare function insertColumn(element: TablePptxElement, colIdx: number, position: 'left' | 'right'): TablePptxElement;
|
|
15770
|
-
/**
|
|
15771
|
-
* Delete the column at `colIdx`, adjusting horizontal merge spans and
|
|
15772
|
-
* renormalising widths. No-op when the table has a single column.
|
|
15773
|
-
*/
|
|
15774
|
-
declare function removeColumn(element: TablePptxElement, colIdx: number): TablePptxElement;
|
|
15775
16607
|
/** Merge a rectangular selection of cells into their top-left anchor. */
|
|
15776
16608
|
declare function mergeSelection(element: TablePptxElement, cells: CellCoord[]): TablePptxElement;
|
|
15777
16609
|
/** Split the merged cell anchored at `(row, col)` back into individual cells. */
|
|
@@ -15788,6 +16620,42 @@ declare function splitCursorCell(element: TablePptxElement, row: number, col: nu
|
|
|
15788
16620
|
*/
|
|
15789
16621
|
declare function patchTableData(element: TablePptxElement, patch: Partial<PptxTableData>): TablePptxElement;
|
|
15790
16622
|
|
|
16623
|
+
/** One gallery button: the preset it applies plus the key naming it. */
|
|
16624
|
+
interface AnimationPresetEntry {
|
|
16625
|
+
value: PptxAnimationPreset;
|
|
16626
|
+
labelKey: string;
|
|
16627
|
+
}
|
|
16628
|
+
/** One gallery column: a bucket's caption plus the presets filed under it. */
|
|
16629
|
+
interface AnimationPresetCategory {
|
|
16630
|
+
group: AnimationGroup;
|
|
16631
|
+
labelKey: string;
|
|
16632
|
+
tone: string;
|
|
16633
|
+
presets: readonly AnimationPresetEntry[];
|
|
16634
|
+
}
|
|
16635
|
+
/** The i18n key naming a preset, shared by every binding's gallery. */
|
|
16636
|
+
declare function animationPresetLabelKey(preset: PptxAnimationPreset): string;
|
|
16637
|
+
/**
|
|
16638
|
+
* The gallery's columns, in the catalogue's own order.
|
|
16639
|
+
*
|
|
16640
|
+
* That order already leads each bucket with the effects PowerPoint puts first
|
|
16641
|
+
* (Appear / Fade In / Fly In, Spin / Pulse, Fade Out), so the six presets this
|
|
16642
|
+
* tab used to offer still read as the primary set without being rendered twice.
|
|
16643
|
+
*/
|
|
16644
|
+
declare const ANIMATION_PRESET_CATEGORIES: readonly AnimationPresetCategory[];
|
|
16645
|
+
/** What the gallery emits when a preset button is pressed. */
|
|
16646
|
+
interface AnimationPresetPick {
|
|
16647
|
+
preset: PptxAnimationPreset;
|
|
16648
|
+
group: AnimationGroup;
|
|
16649
|
+
}
|
|
16650
|
+
declare class RibbonAnimationGalleryComponent {
|
|
16651
|
+
/** True when the deck is not editable or nothing is selected. */
|
|
16652
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
16653
|
+
readonly addAnimation: _angular_core.OutputEmitterRef<AnimationPresetPick>;
|
|
16654
|
+
protected readonly categories: readonly AnimationPresetCategory[];
|
|
16655
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonAnimationGalleryComponent, never>;
|
|
16656
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonAnimationGalleryComponent, "pptx-ribbon-animation-gallery", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "addAnimation": "addAnimation"; }, never, never, true, never>;
|
|
16657
|
+
}
|
|
16658
|
+
|
|
15791
16659
|
declare class RibbonAnimationsSectionComponent {
|
|
15792
16660
|
private readonly editor;
|
|
15793
16661
|
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
@@ -15795,29 +16663,16 @@ declare class RibbonAnimationsSectionComponent {
|
|
|
15795
16663
|
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
15796
16664
|
readonly present: _angular_core.OutputEmitterRef<void>;
|
|
15797
16665
|
readonly toggleInspector: _angular_core.OutputEmitterRef<void>;
|
|
15798
|
-
protected readonly entrancePresets: readonly {
|
|
15799
|
-
value: PptxAnimationPreset;
|
|
15800
|
-
label: string;
|
|
15801
|
-
labelKey: string;
|
|
15802
|
-
}[];
|
|
15803
|
-
protected readonly emphasisPresets: readonly {
|
|
15804
|
-
value: PptxAnimationPreset;
|
|
15805
|
-
label: string;
|
|
15806
|
-
labelKey: string;
|
|
15807
|
-
}[];
|
|
15808
|
-
protected readonly exitPresets: readonly {
|
|
15809
|
-
value: PptxAnimationPreset;
|
|
15810
|
-
label: string;
|
|
15811
|
-
labelKey: string;
|
|
15812
|
-
}[];
|
|
15813
16666
|
protected hasSel(): boolean;
|
|
15814
16667
|
protected canAuthor(): boolean;
|
|
16668
|
+
/** Apply the preset a gallery button asked for. */
|
|
16669
|
+
protected onGalleryPick(pick: AnimationPresetPick): void;
|
|
15815
16670
|
/**
|
|
15816
16671
|
* Add an animation preset to the selected element on the active slide.
|
|
15817
16672
|
* Delegates to the immutable helpers in animation-author-helpers.ts and
|
|
15818
16673
|
* commits the updated animations array via EditorStateService.updateSlide.
|
|
15819
16674
|
*/
|
|
15820
|
-
protected addAnimation(preset: PptxAnimationPreset, group:
|
|
16675
|
+
protected addAnimation(preset: PptxAnimationPreset, group: AnimationGroup): void;
|
|
15821
16676
|
/** Remove all animations from the selected element. */
|
|
15822
16677
|
protected removeAnim(): void;
|
|
15823
16678
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonAnimationsSectionComponent, never>;
|
|
@@ -15827,6 +16682,10 @@ declare class RibbonAnimationsSectionComponent {
|
|
|
15827
16682
|
declare class RibbonArrangeSectionComponent {
|
|
15828
16683
|
protected readonly editor: EditorStateService;
|
|
15829
16684
|
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
16685
|
+
/** The active selection, which gates Ungroup and the outline-width spinner. */
|
|
16686
|
+
readonly selectedElement: _angular_core.InputSignal<PptxElement | null>;
|
|
16687
|
+
/** Whether the deck is editable; a read-only deck cannot group or restyle. */
|
|
16688
|
+
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
15830
16689
|
readonly formatPainterActive: _angular_core.InputSignal<boolean>;
|
|
15831
16690
|
readonly canActivateFormatPainter: _angular_core.InputSignal<boolean>;
|
|
15832
16691
|
readonly toggleFormatPainter: _angular_core.OutputEmitterRef<void>;
|
|
@@ -15835,7 +16694,7 @@ declare class RibbonArrangeSectionComponent {
|
|
|
15835
16694
|
/** Toggle horizontal/vertical flip on each selected element. */
|
|
15836
16695
|
protected flipSelected(axis: 'horizontal' | 'vertical'): void;
|
|
15837
16696
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonArrangeSectionComponent, never>;
|
|
15838
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonArrangeSectionComponent, "pptx-ribbon-arrange-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; }, never, never, true, never>;
|
|
16697
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonArrangeSectionComponent, "pptx-ribbon-arrange-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; }, never, never, true, never>;
|
|
15839
16698
|
}
|
|
15840
16699
|
|
|
15841
16700
|
declare class RibbonColorPopoverComponent {
|
|
@@ -15869,6 +16728,8 @@ declare class RibbonDrawingGroupComponent {
|
|
|
15869
16728
|
/** Insert the picked preset immediately (selects it and records history). */
|
|
15870
16729
|
protected onShapeSelect(shape: ShapePresetDef): void;
|
|
15871
16730
|
protected onArrange(direction: 'up' | 'down'): void;
|
|
16731
|
+
/** Group or ungroup the selection, then close the menu. */
|
|
16732
|
+
protected onGroup(group: boolean): void;
|
|
15872
16733
|
protected onArrangeEdge(edge: 'front' | 'back'): void;
|
|
15873
16734
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonDrawingGroupComponent, never>;
|
|
15874
16735
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonDrawingGroupComponent, "pptx-ribbon-drawing-group", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
@@ -15882,8 +16743,8 @@ declare class RibbonEditingSectionComponent {
|
|
|
15882
16743
|
}
|
|
15883
16744
|
|
|
15884
16745
|
interface BackstageAction {
|
|
15885
|
-
|
|
15886
|
-
|
|
16746
|
+
titleKey: string;
|
|
16747
|
+
bodyKey: string;
|
|
15887
16748
|
icon: string;
|
|
15888
16749
|
event: {
|
|
15889
16750
|
emit: () => void;
|
|
@@ -15920,33 +16781,48 @@ declare class RibbonFileSectionComponent {
|
|
|
15920
16781
|
readonly openVersionHistory: _angular_core.OutputEmitterRef<void>;
|
|
15921
16782
|
readonly share: _angular_core.OutputEmitterRef<void>;
|
|
15922
16783
|
readonly options: _angular_core.OutputEmitterRef<void>;
|
|
16784
|
+
/**
|
|
16785
|
+
* Optional: the backstage only needs a translator for the two strings the
|
|
16786
|
+
* shared helpers build (relative dates, recent-file fallbacks). A host that
|
|
16787
|
+
* has not provided ngx-translate should still get an English backstage
|
|
16788
|
+
* rather than an NG0201 at construction time.
|
|
16789
|
+
*/
|
|
16790
|
+
private readonly translate;
|
|
16791
|
+
private readonly t;
|
|
15923
16792
|
protected readonly templates: readonly BackstageTemplate[];
|
|
15924
16793
|
protected readonly mainNav: _angular_core.Signal<readonly {
|
|
15925
16794
|
id: BackstagePage;
|
|
15926
16795
|
label: string;
|
|
16796
|
+
labelKey: string;
|
|
15927
16797
|
group?: "footer";
|
|
15928
16798
|
}[]>;
|
|
15929
16799
|
protected readonly footerNav: {
|
|
15930
16800
|
id: BackstagePage;
|
|
15931
16801
|
label: string;
|
|
16802
|
+
labelKey: string;
|
|
15932
16803
|
group?: "footer";
|
|
15933
16804
|
}[];
|
|
15934
16805
|
protected readonly page: _angular_core.WritableSignal<BackstagePage>;
|
|
15935
16806
|
protected readonly query: _angular_core.WritableSignal<string>;
|
|
15936
16807
|
protected readonly recent: _angular_core.WritableSignal<BackstageRecentFile[]>;
|
|
15937
|
-
protected readonly
|
|
16808
|
+
protected readonly titleKey: _angular_core.Signal<string>;
|
|
15938
16809
|
protected readonly visibleRecent: _angular_core.Signal<BackstageRecentFile[]>;
|
|
15939
|
-
protected readonly date: typeof formatBackstageDate;
|
|
15940
16810
|
protected readonly size: typeof formatBackstageSize;
|
|
15941
16811
|
protected readonly actions: _angular_core.Signal<BackstageAction[]>;
|
|
15942
16812
|
constructor();
|
|
16813
|
+
protected date(timestamp: number): string;
|
|
15943
16814
|
protected selectPage(id: BackstagePage): void;
|
|
15944
16815
|
protected run(event: {
|
|
15945
16816
|
emit: () => void;
|
|
15946
16817
|
}): void;
|
|
15947
16818
|
protected create(templateId: string): void;
|
|
15948
16819
|
protected openRecent(key: string): void;
|
|
15949
|
-
|
|
16820
|
+
/**
|
|
16821
|
+
* Card order, wording and dictionary keys come from `pptx-viewer-shared`;
|
|
16822
|
+
* this only maps each card to its glyph and to the output that fires it, so
|
|
16823
|
+
* the backstage cannot be worded differently here than in the other four
|
|
16824
|
+
* bindings.
|
|
16825
|
+
*/
|
|
15950
16826
|
private pageActions;
|
|
15951
16827
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonFileSectionComponent, never>;
|
|
15952
16828
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonFileSectionComponent, "pptx-ribbon-file-section", never, { "fileName": { "alias": "fileName"; "required": false; "isSignal": true; }; "slideCount": { "alias": "slideCount"; "required": false; "isSignal": true; }; "exporting": { "alias": "exporting"; "required": false; "isSignal": true; }; "hasMacros": { "alias": "hasMacros"; "required": false; "isSignal": true; }; "hiddenActions": { "alias": "hiddenActions"; "required": false; "isSignal": true; }; "accountAuth": { "alias": "accountAuth"; "required": false; "isSignal": true; }; }, { "close": "close"; "createPresentation": "createPresentation"; "openFile": "openFile"; "openRecentFile": "openRecentFile"; "save": "save"; "savePpsx": "savePpsx"; "savePptm": "savePptm"; "packageForSharing": "packageForSharing"; "exportPng": "exportPng"; "exportPdf": "exportPdf"; "exportGif": "exportGif"; "exportVideo": "exportVideo"; "copySlideAsImage": "copySlideAsImage"; "print": "print"; "info": "info"; "signatures": "signatures"; "replace": "replace"; "openPassword": "openPassword"; "openFontEmbedding": "openFontEmbedding"; "openVersionHistory": "openVersionHistory"; "share": "share"; "options": "options"; }, never, never, true, never>;
|
|
@@ -15996,25 +16872,79 @@ declare class RibbonFontControlsComponent {
|
|
|
15996
16872
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonFontControlsComponent, "pptx-ribbon-font-controls", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15997
16873
|
}
|
|
15998
16874
|
|
|
16875
|
+
/**
|
|
16876
|
+
* The slide layouts the Home tab's "New Slide" split button can insert from.
|
|
16877
|
+
*
|
|
16878
|
+
* A deck's layouts hang off its masters, one list per master, and a layout's
|
|
16879
|
+
* `name` is optional in OOXML. This flattens both facts away so the ribbon can
|
|
16880
|
+
* render a single menu without knowing about masters: one entry per layout, in
|
|
16881
|
+
* document order, always with something to display.
|
|
16882
|
+
*
|
|
16883
|
+
* Pure on purpose: the picker's behaviour is worth testing without a TestBed.
|
|
16884
|
+
*/
|
|
16885
|
+
|
|
16886
|
+
/** One entry in the New Slide layout menu. */
|
|
16887
|
+
interface RibbonLayoutOption {
|
|
16888
|
+
/** Package path of the layout, written to the new slide's `layoutPath`. */
|
|
16889
|
+
path: string;
|
|
16890
|
+
/** Display name; falls back to the layout's file stem when OOXML omits one. */
|
|
16891
|
+
name: string;
|
|
16892
|
+
}
|
|
16893
|
+
|
|
15999
16894
|
declare class RibbonHomeSectionComponent {
|
|
16000
16895
|
protected readonly editor: EditorStateService;
|
|
16896
|
+
private readonly loader;
|
|
16897
|
+
/** Layouts offered by the New Slide split button (empty for a layout-less deck). */
|
|
16898
|
+
protected readonly layoutOptions: _angular_core.Signal<RibbonLayoutOption[]>;
|
|
16001
16899
|
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
16002
16900
|
readonly selectedElement: _angular_core.InputSignal<PptxElement | null>;
|
|
16901
|
+
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
16003
16902
|
readonly formatPainterActive: _angular_core.InputSignal<boolean>;
|
|
16004
16903
|
readonly canActivateFormatPainter: _angular_core.InputSignal<boolean>;
|
|
16005
16904
|
readonly toggleFormatPainter: _angular_core.OutputEmitterRef<void>;
|
|
16006
16905
|
readonly findReplace: _angular_core.OutputEmitterRef<void>;
|
|
16007
16906
|
readonly applyLayout: _angular_core.OutputEmitterRef<string>;
|
|
16008
16907
|
readonly resetSlide: _angular_core.OutputEmitterRef<void>;
|
|
16009
|
-
protected hasSel(): boolean;
|
|
16010
16908
|
protected copy(): void;
|
|
16011
16909
|
protected cut(): void;
|
|
16012
16910
|
protected paste(): void;
|
|
16013
16911
|
protected onSelectAll(): void;
|
|
16014
16912
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonHomeSectionComponent, never>;
|
|
16015
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonHomeSectionComponent, "pptx-ribbon-home-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; "findReplace": "findReplace"; "applyLayout": "applyLayout"; "resetSlide": "resetSlide"; }, never, never, true, never>;
|
|
16913
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonHomeSectionComponent, "pptx-ribbon-home-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "formatPainterActive": { "alias": "formatPainterActive"; "required": false; "isSignal": true; }; "canActivateFormatPainter": { "alias": "canActivateFormatPainter"; "required": false; "isSignal": true; }; }, { "toggleFormatPainter": "toggleFormatPainter"; "findReplace": "findReplace"; "applyLayout": "applyLayout"; "resetSlide": "resetSlide"; }, never, never, true, never>;
|
|
16914
|
+
}
|
|
16915
|
+
|
|
16916
|
+
declare class RibbonHyperlinkButtonComponent {
|
|
16917
|
+
protected readonly editor: EditorStateService;
|
|
16918
|
+
/** The host opens the hyperlink edit dialog for the current selection. */
|
|
16919
|
+
readonly openHyperlink: _angular_core.OutputEmitterRef<void>;
|
|
16920
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonHyperlinkButtonComponent, never>;
|
|
16921
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonHyperlinkButtonComponent, "pptx-ribbon-hyperlink-button", never, {}, { "openHyperlink": "openHyperlink"; }, never, never, true, never>;
|
|
16016
16922
|
}
|
|
16017
16923
|
|
|
16924
|
+
/**
|
|
16925
|
+
* ribbon-insert-file-picker.ts: the browser-file plumbing behind Insert >
|
|
16926
|
+
* Image / Media.
|
|
16927
|
+
*
|
|
16928
|
+
* Extracted from {@link RibbonInsertSectionComponent} because none of it is
|
|
16929
|
+
* view code: it is a file dialog, a FileReader, and an <img> probe, all of
|
|
16930
|
+
* which the component only ever awaits. Keeping them here holds that component
|
|
16931
|
+
* to this repo's 300-LOC budget and makes the three steps testable without
|
|
16932
|
+
* instantiating a ribbon.
|
|
16933
|
+
*
|
|
16934
|
+
* Every helper resolves rather than rejects. An insert the user cancelled and
|
|
16935
|
+
* an insert the browser could not decode are the same non-event to the caller,
|
|
16936
|
+
* and a rejected promise would only be re-swallowed one frame later.
|
|
16937
|
+
*/
|
|
16938
|
+
/** Read a File as a base64 data URL, resolving to '' on failure. */
|
|
16939
|
+
declare function readAsDataUrl(file: File): Promise<string>;
|
|
16940
|
+
/** Resolve an image data URL's natural dimensions (falls back to 400x300). */
|
|
16941
|
+
declare function imageDimensions(dataUrl: string): Promise<{
|
|
16942
|
+
width: number;
|
|
16943
|
+
height: number;
|
|
16944
|
+
}>;
|
|
16945
|
+
/** Open the native file picker for a single file of the given accept type. */
|
|
16946
|
+
declare function pickFile(accept: string, onFile: (file: File) => void): void;
|
|
16947
|
+
|
|
16018
16948
|
declare class RibbonInsertFieldsComponent {
|
|
16019
16949
|
private readonly editor;
|
|
16020
16950
|
private readonly translate;
|
|
@@ -16046,13 +16976,21 @@ declare class RibbonInsertSectionComponent {
|
|
|
16046
16976
|
private readonly translate;
|
|
16047
16977
|
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
16048
16978
|
readonly newChartType: _angular_core.InputSignal<PptxChartType>;
|
|
16979
|
+
readonly newShapeType: _angular_core.InputSignal<ShapePresetType>;
|
|
16049
16980
|
readonly openSmartArtDialog: _angular_core.OutputEmitterRef<void>;
|
|
16050
16981
|
readonly openEquationDialog: _angular_core.OutputEmitterRef<void>;
|
|
16982
|
+
/** "Hyperlink"; the host opens the hyperlink edit dialog for the selection. */
|
|
16983
|
+
readonly openHyperlink: _angular_core.OutputEmitterRef<void>;
|
|
16051
16984
|
readonly chartTypeChange: _angular_core.OutputEmitterRef<PptxChartType>;
|
|
16985
|
+
readonly shapeTypeChange: _angular_core.OutputEmitterRef<ShapePresetType>;
|
|
16052
16986
|
/** Chart types offered in the Insert tab dropdown (shared source of truth). */
|
|
16053
16987
|
protected readonly chartTypes: readonly InsertChartTypeOption[];
|
|
16988
|
+
/** Geometries offered by the Insert tab's shape picker (shared catalogue). */
|
|
16989
|
+
protected readonly shapePresets: readonly ShapePresetDef[];
|
|
16054
16990
|
protected insertText(): void;
|
|
16055
|
-
protected
|
|
16991
|
+
protected setShapeType(event: Event): void;
|
|
16992
|
+
/** Insert the geometry currently chosen in the shape-type dropdown. */
|
|
16993
|
+
protected insertShape(): void;
|
|
16056
16994
|
protected insertTable(): void;
|
|
16057
16995
|
protected setChartType(event: Event): void;
|
|
16058
16996
|
protected insertChart(): void;
|
|
@@ -16062,10 +17000,8 @@ declare class RibbonInsertSectionComponent {
|
|
|
16062
17000
|
protected insertMedia(): void;
|
|
16063
17001
|
private addImageFile;
|
|
16064
17002
|
private addMediaFile;
|
|
16065
|
-
/** Open the native file picker for a single file of the given accept type. */
|
|
16066
|
-
private pickFile;
|
|
16067
17003
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonInsertSectionComponent, never>;
|
|
16068
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonInsertSectionComponent, "pptx-ribbon-insert-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "newChartType": { "alias": "newChartType"; "required": false; "isSignal": true; }; }, { "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "chartTypeChange": "chartTypeChange"; }, never, never, true, never>;
|
|
17004
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonInsertSectionComponent, "pptx-ribbon-insert-section", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "newChartType": { "alias": "newChartType"; "required": false; "isSignal": true; }; "newShapeType": { "alias": "newShapeType"; "required": false; "isSignal": true; }; }, { "openSmartArtDialog": "openSmartArtDialog"; "openEquationDialog": "openEquationDialog"; "openHyperlink": "openHyperlink"; "chartTypeChange": "chartTypeChange"; "shapeTypeChange": "shapeTypeChange"; }, never, never, true, never>;
|
|
16069
17005
|
}
|
|
16070
17006
|
|
|
16071
17007
|
declare class RibbonParagraphControlsComponent {
|
|
@@ -16174,6 +17110,30 @@ declare class RibbonReviewSectionComponent {
|
|
|
16174
17110
|
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>;
|
|
16175
17111
|
}
|
|
16176
17112
|
|
|
17113
|
+
/** Grouping needs an editable deck and at least two selected elements. */
|
|
17114
|
+
declare function canGroupSelection(canEdit: boolean, selectedCount: number): boolean;
|
|
17115
|
+
/** Ungrouping needs an editable deck and a selection that IS a group. */
|
|
17116
|
+
declare function canUngroupSelection(canEdit: boolean, element: PptxElement | null): boolean;
|
|
17117
|
+
/** An outline width only exists on an element that carries shape properties. */
|
|
17118
|
+
declare function canSetStrokeWidth(canEdit: boolean, element: PptxElement | null): boolean;
|
|
17119
|
+
/** The stroke width to show for a selection, defaulted for a shape without one. */
|
|
17120
|
+
declare function strokeWidthOf(element: PptxElement | null): number;
|
|
17121
|
+
declare class RibbonShapeExtrasComponent {
|
|
17122
|
+
protected readonly editor: EditorStateService;
|
|
17123
|
+
readonly slideIndex: _angular_core.InputSignal<number>;
|
|
17124
|
+
readonly selectedElement: _angular_core.InputSignal<PptxElement | null>;
|
|
17125
|
+
readonly canEdit: _angular_core.InputSignal<boolean>;
|
|
17126
|
+
/** Grouping needs two elements; the multi-select is the source of truth. */
|
|
17127
|
+
protected readonly canGroup: _angular_core.Signal<boolean>;
|
|
17128
|
+
protected readonly canUngroup: _angular_core.Signal<boolean>;
|
|
17129
|
+
protected readonly canSetStroke: _angular_core.Signal<boolean>;
|
|
17130
|
+
protected readonly strokeWidth: _angular_core.Signal<number>;
|
|
17131
|
+
/** Write the typed outline width through the history-integrated patch path. */
|
|
17132
|
+
protected onStrokeWidth(event: Event): void;
|
|
17133
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonShapeExtrasComponent, never>;
|
|
17134
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonShapeExtrasComponent, "pptx-ribbon-shape-extras", never, { "slideIndex": { "alias": "slideIndex"; "required": false; "isSignal": true; }; "selectedElement": { "alias": "selectedElement"; "required": false; "isSignal": true; }; "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
17135
|
+
}
|
|
17136
|
+
|
|
16177
17137
|
declare class RibbonSlideshowSectionComponent {
|
|
16178
17138
|
readonly slideCount: _angular_core.InputSignal<number>;
|
|
16179
17139
|
readonly showSubtitles: _angular_core.InputSignal<boolean>;
|
|
@@ -16183,6 +17143,7 @@ declare class RibbonSlideshowSectionComponent {
|
|
|
16183
17143
|
readonly presentFromCurrent: _angular_core.OutputEmitterRef<void>;
|
|
16184
17144
|
readonly presenter: _angular_core.OutputEmitterRef<void>;
|
|
16185
17145
|
readonly broadcast: _angular_core.OutputEmitterRef<void>;
|
|
17146
|
+
/** "Custom show"; the host opens the custom-show manager dialog. */
|
|
16186
17147
|
readonly openCustomShows: _angular_core.OutputEmitterRef<void>;
|
|
16187
17148
|
readonly openSetUpSlideShow: _angular_core.OutputEmitterRef<void>;
|
|
16188
17149
|
readonly rehearseTimings: _angular_core.OutputEmitterRef<void>;
|
|
@@ -16238,12 +17199,12 @@ declare class RibbonViewSectionComponent {
|
|
|
16238
17199
|
readonly showRulers: _angular_core.InputSignal<boolean>;
|
|
16239
17200
|
readonly showGuides: _angular_core.InputSignal<boolean>;
|
|
16240
17201
|
readonly snapToGrid: _angular_core.InputSignal<boolean>;
|
|
17202
|
+
/** Whether dragging snaps to other shapes' edges (active-state styling). */
|
|
16241
17203
|
readonly snapToShape: _angular_core.InputSignal<boolean>;
|
|
16242
17204
|
readonly eyedropperActive: _angular_core.InputSignal<boolean>;
|
|
16243
17205
|
readonly openSorter: _angular_core.OutputEmitterRef<void>;
|
|
16244
|
-
|
|
16245
|
-
readonly
|
|
16246
|
-
readonly openShortcuts: _angular_core.OutputEmitterRef<void>;
|
|
17206
|
+
/** Enter Reading View: the deck full-window, NOT the fullscreen slide show. */
|
|
17207
|
+
readonly openReadingView: _angular_core.OutputEmitterRef<void>;
|
|
16247
17208
|
readonly openMasterView: _angular_core.OutputEmitterRef<void>;
|
|
16248
17209
|
readonly toggleGrid: _angular_core.OutputEmitterRef<void>;
|
|
16249
17210
|
readonly toggleRulers: _angular_core.OutputEmitterRef<void>;
|
|
@@ -16255,7 +17216,7 @@ declare class RibbonViewSectionComponent {
|
|
|
16255
17216
|
readonly zoomToFit: _angular_core.OutputEmitterRef<void>;
|
|
16256
17217
|
readonly toggleEyedropper: _angular_core.OutputEmitterRef<void>;
|
|
16257
17218
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RibbonViewSectionComponent, never>;
|
|
16258
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "
|
|
17219
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RibbonViewSectionComponent, "pptx-ribbon-view-section", never, { "canEdit": { "alias": "canEdit"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "showRulers": { "alias": "showRulers"; "required": false; "isSignal": true; }; "showGuides": { "alias": "showGuides"; "required": false; "isSignal": true; }; "snapToGrid": { "alias": "snapToGrid"; "required": false; "isSignal": true; }; "snapToShape": { "alias": "snapToShape"; "required": false; "isSignal": true; }; "eyedropperActive": { "alias": "eyedropperActive"; "required": false; "isSignal": true; }; }, { "openSorter": "openSorter"; "openReadingView": "openReadingView"; "openMasterView": "openMasterView"; "toggleGrid": "toggleGrid"; "toggleRulers": "toggleRulers"; "toggleGuides": "toggleGuides"; "toggleSelectionPane": "toggleSelectionPane"; "toggleSnapToGrid": "toggleSnapToGrid"; "toggleSnapToShape": "toggleSnapToShape"; "addGuide": "addGuide"; "zoomToFit": "zoomToFit"; "toggleEyedropper": "toggleEyedropper"; }, never, never, true, never>;
|
|
16259
17220
|
}
|
|
16260
17221
|
|
|
16261
17222
|
/**
|
|
@@ -16426,6 +17387,30 @@ interface SwipeDismissDrag {
|
|
|
16426
17387
|
*/
|
|
16427
17388
|
declare function createSwipeDismissDrag(onDismiss: () => void): SwipeDismissDrag;
|
|
16428
17389
|
|
|
17390
|
+
/**
|
|
17391
|
+
* ruler-strips.ts: the visibility gate for the slide canvas's ruler strips.
|
|
17392
|
+
*
|
|
17393
|
+
* Deliberately holds NO tick or guide-drop maths: it forwards to the shared
|
|
17394
|
+
* `generateTicks` (the single source of truth every binding renders from), and
|
|
17395
|
+
* exists only because Angular components cannot be mounted in this package's
|
|
17396
|
+
* unit tests, so the "rulers off -> no ticks / rulers on -> shared ticks" rule
|
|
17397
|
+
* needs a seam that is testable without a TestBed. It replaces the deleted
|
|
17398
|
+
* `ruler-ticks.ts`, which generated its OWN quarter-inch, inches-only ticks and
|
|
17399
|
+
* so disagreed with React, Vue, Svelte and Vanilla at every zoom level.
|
|
17400
|
+
*/
|
|
17401
|
+
|
|
17402
|
+
/** Ticks for one ruler strip, or nothing at all while the strip is hidden. */
|
|
17403
|
+
declare function rulerStripTicks(visible: boolean, slideLengthPx: number, scale: number, unit: RulerUnit): ReadonlyArray<Tick>;
|
|
17404
|
+
/**
|
|
17405
|
+
* Selected-element extent projected onto a strip, in scaled px, or null when
|
|
17406
|
+
* nothing (or more than one thing) is selected. PowerPoint shades this span on
|
|
17407
|
+
* both rulers; React and Svelte do the same.
|
|
17408
|
+
*/
|
|
17409
|
+
declare function rulerHighlight(start: number | undefined, span: number | undefined, scale: number): {
|
|
17410
|
+
start: number;
|
|
17411
|
+
span: number;
|
|
17412
|
+
} | null;
|
|
17413
|
+
|
|
16429
17414
|
/**
|
|
16430
17415
|
* collaboration-writeback.ts: elected-writer serialization helper for the
|
|
16431
17416
|
* Angular collaboration service.
|
|
@@ -16877,11 +17862,11 @@ declare class TitleBarComponent {
|
|
|
16877
17862
|
/** Resolved Quick Access options (host-supplied, or the default trio+). */
|
|
16878
17863
|
protected readonly qat: _angular_core.Signal<ViewerQuickAccessOptions>;
|
|
16879
17864
|
/**
|
|
16880
|
-
*
|
|
16881
|
-
* buttons
|
|
16882
|
-
* buttons
|
|
17865
|
+
* The Quick Access options narrowed to the commands beyond the dedicated
|
|
17866
|
+
* save/undo/redo buttons. Reusing {@link QuickAccessStripComponent} for the
|
|
17867
|
+
* remainder means those buttons carry real icons rather than a letter glyph.
|
|
16883
17868
|
*/
|
|
16884
|
-
protected readonly
|
|
17869
|
+
protected readonly extraQat: _angular_core.Signal<ViewerQuickAccessOptions>;
|
|
16885
17870
|
/**
|
|
16886
17871
|
* Route a Quick Access press: keep the dedicated save/undo/redo outputs
|
|
16887
17872
|
* (existing host wiring, `hiddenActions` gating) and forward everything
|
|
@@ -17008,5 +17993,5 @@ declare const SEQUENCE_OPTIONS: ReadonlyArray<{
|
|
|
17008
17993
|
labelKey: string;
|
|
17009
17994
|
}>;
|
|
17010
17995
|
|
|
17011
|
-
export { ALIGN_OPTIONS, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AccessibilityPanelComponent, AccessibilityService, AccountPageComponent, ActionSettingsPanelComponent, AdvancedChartEditorComponent, AiChangeOverlayComponent, AiChatPanelComponent, AiChatService, AiComposerComponent, AiFocusBarComponent, AiFocusHighlightOverlayComponent, AiMessageListComponent, AiPanelStore, AiProposalCardComponent, AiSettingsSectionComponent, AiToolCallCardComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveService, BroadcastDialogComponent, CHART_EDITOR_STYLES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, DEFAULT_BOUNDS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_SCHEME, DEFAULT_FILL_COLOR, DEFAULT_LAYOUT, DEFAULT_PALETTE$1 as DEFAULT_PALETTE, DEFAULT_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, 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, MediaPreviewComponent, MediaPropertiesPanelComponent, MediaRendererComponent, MediaTrimTimelineComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesHandoutCardComponent, NotesPanelComponent, NotesToolbarComponent, OleRendererComponent, POWER_POINT_VIEWER_PROVIDERS, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationPropertiesPanelComponent, PresentationSettingsCardComponent, PresentationSubtitleBarComponent, PresentationTransitionOverlayComponent, PresenterViewComponent, PresenterWindowService, PrintDialogComponent, PrintService, PrintSettingsPanelComponent, PropertiesDialogComponent, REPEAT_MODE_OPTIONS, RESIZE_HANDLES, RULER_THICKNESS, RemoteSelectionOverlayComponent, RibbonAnimationsSectionComponent, RibbonArrangeSectionComponent, RibbonColorPopoverComponent, RibbonComponent, RibbonDesignSectionComponent, RibbonDrawSectionComponent, RibbonDrawingGroupComponent, RibbonEditingSectionComponent, RibbonFileSectionComponent, RibbonFontControlsComponent, RibbonHomeSectionComponent, RibbonInsertFieldsComponent, RibbonInsertSectionComponent, RibbonParagraphControlsComponent, RibbonPrimaryRowComponent, RibbonReviewSectionComponent, RibbonSlideshowSectionComponent, RibbonTransitionsSectionComponent, RibbonViewSectionComponent, RulerGuidesService, SEQUENCE_OPTIONS, SEVERITY_GROUPS, SEVERITY_LABELS, SHORTCUT_REFERENCE_ITEMS, SLIDE_PX_PER_INCH, 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, SlideCanvasComponent, SlideDefaultInspectorComponent, SlideDiffChangesComponent, SlideDiffRowComponent, SlideDiffThumbnailsComponent, SlideSizeCardComponent, SlideSorterOverlayComponent, SlideThemeOverridePanelComponent, SlidesPanelComponent, SmartArt3DRendererComponent, SmartArt3DService, SmartArtPreviewComponent, SmartArtPropertiesComponent, SmartArtRendererComponent, StatusBarComponent, TABLE_STRUCTURE_TOGGLES, TEXT_DIRECTION_OPTIONS, THEME_CATALOG, TIMING_CURVE_OPTIONS, TRIGGER_OPTIONS, TYPE_LABELS, TableCellAdvancedFillComponent, TableCellFormattingComponent, TableDataEditorComponent, TablePropertiesComponent, TableRendererComponent, TableResizeOverlayComponent, TableSelectionService, TextAdvancedPanelComponent, ThemeEditorFieldsComponent, ThemeGalleryComponent, ThemeSelectorCardComponent, TitleBarComponent, 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, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, aiToggleVisible, alignPatch, animationFor, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, applyTableStylePreset, asMediaElement, assignUserColor, attachTouchGestures, beginNodeEdit, 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, buildModel3DContainerStyle, buildModel3DViewModel, buildOleActionModel, buildOleInfoRows, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, canRemoveTopLevelNode, canStartBroadcast, canStartShare, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAllLocalViewerData, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectStoredChats, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDataTablePrimitives, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeFocusTargets, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeScatterDots, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTextLines, computeTimerProgress, 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, estimatePageCount, evenColumnWidths, evenRowHeights, exitPresentationFullscreen, exportAiChatLogs, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, fitPolynomial, fitZoom, focusTargetChips, fontMimeForFormat, fontSizeOf, formatAutoNumber, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateRulerTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gridColumns, groupElements, groupIssuesBySeverity, hasAnimation, hasCopyableFormat, hasExistingLink, hasExitedFullscreen, hasGradientFill, hasPressureVariation, hasVisibleSlideAfter, headerLabel, inkViewBox, insertColumn, insertRow, interpolateWidth, isAudienceTab, isBold, isBrowserOpenableMime, isChildNode, isElementInteractive, isInjectableUrl, isItalic, isPpactionUrl, isPresenterMessage, isSigned, isTextElement, isTwoTableFocus, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, latexToMathml, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, newPresetShapeElement, newShapeElement, newSmartArtElement, newTableElement, newTextElement, nextVisibleIndex, nodeBold, nodeEditBox, nodeFillColor, nodeFontColor, nodeIdFromKey, nodeItalic, nodeStyle, normalizeFontFormat, normalizeSlidesPerPage, normalizeValue, numFromEvent, ommlToMathml, ooxmlDashToCssBorderStyle, openNativeEyeDropper, overallStatus, paletteColor, parseAudienceNonce, parseNodeTextarea, partitionSlides, patchChartData, patchChartStyle, patchTableData, patchTextStyle, pendingElementStyles, pickColorByClickFallback, pickSupportedMimeType, planGifFrames, planVideoSegments, pointsToSvgPathD, presenceToCursors, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, recordWebm, redistributeColumnWidth, removeAnimation, removeCategory, removeColumn, removeCommentFromList, removeElementAnimation, removeGradientStopPatch, removeNode, 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, revealedElementStyles, routeOrthogonalConnector, rowStyle, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, saveViewerProfile, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDelay, setDirection, setDuration, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldBlockClickAdvance, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, styleShadowFilter, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, ungroupElements, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus, zoomTargetSlideIndex };
|
|
17012
|
-
export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, AiCanvasHighlight, AiChatInitState, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AwarenessLike, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, GroupResult, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InlineEditState, InnerShadowState, LegendEntry, LinePoint, LinearFit, LocalIdentity, LocalStorageUsageSummary, LocaleCatalogEntry, MobileSheetKey, Model3DViewModel, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OuterShadowState, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PieSliceOptions, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PptxAiBridge, PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiElementUpdate, PptxAiToolName, PptxAiUIMessage, PptxAiWritePolicy, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, 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,
|
|
17996
|
+
export { ALIGN_OPTIONS, ANIMATION_PRESET_CATEGORIES, AUDIENCE_HASH, AUDIENCE_NONCE_KEY, AVATAR_COLOR_SWATCHES, AccessibilityPanelComponent, AccessibilityService, AccountPageComponent, ActionSettingsPanelComponent, AdvancedChartEditorComponent, AiChangeOverlayComponent, AiChatPanelComponent, AiChatService, AiComposerComponent, AiFocusBarComponent, AiFocusHighlightOverlayComponent, AiMessageListComponent, AiPanelStore, AiProposalCardComponent, AiSettingsSectionComponent, AiToolCallCardComponent, AnimationAuthorPanelComponent, AnimationPanelComponent, AnimationPlaybackService, AutosaveService, BroadcastDialogComponent, CHART_EDITOR_STYLES, CURSOR_PALETTE, CanvasFitService, ChartAxisOptionsComponent, ChartAxisStyleOptionsComponent, ChartComboTypeOptionsComponent, ChartDataEditorComponent, ChartDataLabelOptionsComponent, ChartDatapointOptionsComponent, ChartDisplayOptionsComponent, ChartElementViewComponent, ChartErrorBarOptionsComponent, ChartMarkerOptionsComponent, ChartPartSelectionService, ChartPrimitivesComponent, ChartRendererComponent, ChartTrendlineOptionsComponent, CollaborationCursorsComponent, CollaborationService, ColorChangedImageComponent, CommentsPanelComponent, CommentsService, ComparePanelComponent, ConnectorRendererComponent, ConnectorTextOverlayComponent, CustomShowsComponent, DATA_TABLE_HEADER_H, DATA_TABLE_KEY_W, DATA_TABLE_PADDING, DATA_TABLE_ROW_H, DEFAULT_BOUNDS, DEFAULT_BROADCAST_SERVER_URL, DEFAULT_CANVAS_HEIGHT, DEFAULT_CANVAS_WIDTH, DEFAULT_COLOR_SCHEME, DEFAULT_FILL_COLOR, DEFAULT_LAYOUT, DEFAULT_PALETTE$1 as DEFAULT_PALETTE, DEFAULT_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, 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, MediaPreviewComponent, MediaPropertiesPanelComponent, MediaRendererComponent, MediaTrimTimelineComponent, MobileBottomBarComponent, MobileMenuSheetComponent, MobilePresenterViewComponent, MobileSheetComponent, MobileSlidesSheetComponent, MobileToolbarComponent, ModalDialogComponent, Model3DRendererComponent, NotesHandoutCardComponent, NotesPanelComponent, NotesToolbarComponent, OleRendererComponent, POWER_POINT_VIEWER_PROVIDERS, PRESENTER_CHANNEL_NAME, PRESENTER_MSG_ORIGIN, PX_PER_CM, PX_PER_INCH, PasswordProtectionDialogComponent, PasswordStrengthMeterComponent, PowerPointViewerComponent, PresentationAnnotationOverlayComponent, PresentationAnnotationsService, PresentationOverlayComponent, PresentationPropertiesPanelComponent, PresentationSettingsCardComponent, PresentationSubtitleBarComponent, 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, 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, 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, ZoomNavigationService, ZoomRendererComponent, ZoomTargetService, addCategory, addCommentToList, addGradientStopPatch, addItem, addSeries, addSubItem, advanceStep, aiToggleVisible, alignPatch, animationFor, animationPresetLabelKey, annotationMapToInkInserts, applyAcceptedDiff, applyAnimationPreset, applyFindReplacements, applyFormatToElement, applyMove, applyResize, applyTableStylePreset, asMediaElement, assignUserColor, attachTouchGestures, 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, buildModel3DContainerStyle, buildModel3DViewModel, buildOleActionModel, buildOleInfoRows, buildPatternFillCss, buildPrintHtmlDocument as buildPrintDocument, buildPropertiesPatch, buildRegionMapViewModel, buildSaveSlides, buildShareUrl, buildSmartArtInsertElement, buildSmartArtNodes, buildStockViewModel, buildSurfaceViewModel, buildTableViewModel, buildTreemapViewModel, buildTrimFragment, buildWaterfallViewModel, buildZeroLine, buildZoomContainerStyle, buildZoomViewModel, bulletIndentPx, canAddTopLevelNode, canGroupSelection, canRemoveTopLevelNode, canSetStrokeWidth, canStartBroadcast, canStartShare, canUngroupSelection, canUseClipboard, captionDisplayText, cellRunStyle, cellStyleToStyleMap, cellTdStyle, changeCountLabel, changeIcon, characterSpacingPatch, checkFontAvailable, clampCursorPosition, clampGifDimensions, clampIndex, clampNotesFontSize, clampScale, clampStep, clearAllLocalViewerData, clearAudienceContent, cn, collectAccessibilityIssues, collectElementText, collectSlideText, collectStoredChats, collectUsedFontFamilies, columnWidthStyle, commitNodeText, computeAlign, computeAxisTitlePrimitives, computeBarRects, computeBubbleRadius, computeCornerHandle, computeDataTablePrimitives, computeDistribute, computeDrawingViewBox, computeErrorBarPrimitives, computeFocusTargets, computeHandleBoxes, computeHandoutLayout, computeIsMobile, computeIsTablet, computeLinePoints, computeLinearRegression, computePageCount, computePieLayout, computePieSlicePath, computePieSlices, computePlotLayout, computeRSquared, computeRadarPoints, computeScatterDots, computeSelectionBoxes, computeSingleSelected, computeSlideIndices, computeSnap, computeStackedBarRects, computeStackedValueRange, computeTextLines, computeTimerProgress, 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, estimatePageCount, evenColumnWidths, evenRowHeights, exitPresentationFullscreen, exportAiChatLogs, extractPathPoints, eyedropperAvailable, fillColorOf, findInSlides, findOwningSlideIndex, findSlideIndexByElementId, fitPolynomial, fitZoom, focusTargetChips, fontMimeForFormat, fontSizeOf, formatAutoNumber, formatAxisValue, formatBytes, formatCursorLabel, formatElapsed, formatFileSize, formatPropertyDate, formatTime, fpsToFrameIntervalMs, generateBroadcastRoomId, generateCommentId, generateCustomShowId, generatePressureCircles, generateTicks, getClrChangeParams, getContainerStyle, getDuotoneFilterDef, getImageSrc, getLocalStorageUsageSummary, getOleAriaLabel, getOleBadgeLabel, getOleDisplayName, getOleDownloadFileName, getOleTypeColor, getOleTypeLabel, getPasswordStrength, getPatternSvg, getPlaceholderStyle, getVersions as getRecoveryVersions, getResolvedShapeClipPath, getResolvedShapeClipPathFor, getShapeFillStrokeStyle, getSlideBackgroundStyle, getSlideTransitionAnimations, getSmartArtNodeBounds, getSpeechRecognitionCtor, getTextBlockStyle, getTextWarp, getTouchDistance, getWarpCategory, getWarpPath, gradientStateFromStyle, gradientStateOf, gradientStatePatch, gridColumns, groupElements, 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, isPpactionUrl, isPresenterMessage, isSigned, isTextElement, isTwoTableFocus, isUnderline, isUrlSafe, isValidRoomId, isViewportBackgroundPressTarget, isZoomActivationKey, issueTrackKey, issueTypeLabel, keyToLabel, latexToMathml, linePointsToSvgString, lineSpacingPatch, loadAudienceContent, mergeCaptionResults, mergeDown, mergeRight, mergeSelection, moveElementBy, moveNodeDown, moveNodeUp, msToFrameDelayCs, narrowToCircle, narrowToPolygon, narrowToRect, newChartElement, newEquationElement, newPresetShapeElement, newShapeElement, newSmartArtElement, newTableElement, newTextElement, nextVisibleIndex, nodeBold, nodeEditBox, nodeFillColor, nodeFontColor, nodeIdFromKey, nodeItalic, nodeStyle, normalizeFontFormat, normalizeSlidesPerPage, normalizeValue, numFromEvent, ommlToMathml, ooxmlDashToCssBorderStyle, openNativeEyeDropper, overallStatus, paletteColor, parseAudienceNonce, parseNodeTextarea, partitionSlides, patchChartData, patchChartStyle, patchTableData, patchTextStyle, pendingElementStyles, pickColorByClickFallback, pickFile, pickSupportedMimeType, planGifFrames, planVideoSegments, pointsToSvgPathD, presenceToCursors, presetByLayout, presetsForCategory, pressuresToWidths, prevVisibleIndex, projectDrawingShapes, promoteNode, provideViewerTheme, radarAngle, radarRingPoints, readAsDataUrl, recordWebm, redistributeColumnWidth, 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, revealedElementStyles, routeOrthogonalConnector, rowStyle, rulerDragToGuidePosition, rulerHighlight, rulerStripTicks, sampleColorFromSlide, sanitizeColor, sanitizeSlideIndex, sanitizeUserName, saveViewerProfile, scanAvailableFonts, searchSlides, seedBroadcastFields, seedHyperlinkDraft, seedPropertiesDraft, seedShareFields, segmentFrameCount, selectValue, sendBackward, sendToBack, sequentialColorScale, serializeWriteBack, seriesColor, setAnimationEmphasis, setAnimationEntrance, setAnimationExit, setAxis, setAxisLogScale, setAxisTitleStyle, setCategoryLabel, setCellText, setColorScheme, setDataLabels, setDataPointExplosion, setDataPointFill, setDataPointLabel, setDelay, setDirection, setDuration, setElementPosition, setGridlineStyle, setLayout, setLegend, setNodeStyle, setNodeText, setRepeatCount, setRepeatMode, setSequence, setSeriesChartType, setSeriesColor, setSeriesErrorBars, setSeriesMarker, setSeriesName, setSeriesTrendline, setSeriesValue, setStyle, setTimingCurve, setTitle, setTrigger, setTriggerShapeId, shapeStylePatch, sheetAfterNavigate, shouldBlockClickAdvance, shouldUseSvgWarp, showDirectionPicker, showsTemplateAffordance, signatureCountLabel, signatureKey, signatureTimestamp, signerName, statusLabel as slideDiffStatusLabel, slideNumberOf, smartArtNodes, paletteColour as smartArtPaletteColour, snapToGridStep, splitCursorCell, splitMergedCell, statusKind, statusLabel$1 as statusLabel, storeAudienceContent, stringFromEvent, strokeColorOf, strokeToInkElement, strokeWidthOf, styleShadowFilter, textAdvancedPatch, textAdvancedStateFromStyle, textAdvancedStateOf, textColorOf, textDirectionPatch, textStyleOf, textStylePatch, themeStyle, themeToCssVars, thumbnailHeight, thumbnailZoom, toggleCommentResolvedInList, toggleNodeBold, toggleNodeItalic, toggleSheet, topLevelNodeCount, transformSelectedTextCase, translationsEn, ungroupElements, updateElementById, updateGlowPatch, updateGradientStopPatch, updateInnerShadowPatch, updateOuterShadowPatch, updateReflectionPatch, vAlignPatch, validatePassword, validatePrintSettings, validateRoomId, valueToY, vermilionDarkColors, vermilionDarkTheme, vermilionLightColors, vermilionLightTheme, vermilionRadius, waypointsToPathD, worstStatus, zoomTargetSlideIndex };
|
|
17997
|
+
export type { AccessibilityIssueGroup, AccountAuthConfig, ActionDescriptor, AiCanvasHighlight, AiChatInitState, AiLogChat, AiLogExport, AiLogFormat, AiLogMessage, AiPanelSelectionAccessors, AlignBox, AlignMode, AnimationClickGroup, AnimationGroup, AnimationPresetCategory, AnimationPresetEntry, AnimationPresetPick, AnnotationInkInsert, AnnotationStroke, AttachTouchGesturesConfig, AwarenessLike, BarRect, Box, BridgeDeps, BroadcastConfig, BroadcastDefaults, CSSProperties, CanvasSize, CellCoord, CellParagraph, CellTextRun, ChartPartRef, ChartPartSelection, ChartValueDrag, ChartViewModel, ClassValue, ClrChangeParams, CollaborationConfig, CollaborationRole, RouterRect as ConnectorObstacle, RouterPoint as ConnectorPoint, ConnectorRouting, CopiedFormat, CornerHandleBox, CustomShow, CustomThemeEdit, DestroyableYDoc, DiagonalBorderInfo, DistributeMode, DocumentProperties, DrawingViewBox, DuotoneFilterDef, EffectsState, EmbeddedFontStyles, EquationTemplate, EyedropperResult, FindOptions, FindResult, FocusChip, FocusSelectionInput, GifFrame, GifFramePlan, GifPlanOptions, GlowState, GradientState, GradientStop$1 as GradientStop, GroupResult, HandleBox, HandoutSlidesPerPage, HyperlinkDraft, InkPoint, InkStroke, InlineEditState, InnerShadowState, LegendEntry, LinePoint, LinearFit, LocalIdentity, LocalStorageUsageSummary, LocaleCatalogEntry, MobileSheetKey, Model3DViewModel, NodeEditBox, NotesSegmentViewModel, ObjectUrlFactory, OleActionModel, OleInfoRow, OuterShadowState, OverallSignatureStatus, PartitionedSlides, PathPoint, PieSliceGeometry, PieSliceOptions, PlotLayout, PlotLayoutOptions, PositionUpdate, PowerPointViewerAPI, PptxAiBridge, PptxAiConfig, PptxAiConnection, PptxAiContextStrategy, PptxAiElementUpdate, PptxAiToolName, PptxAiUIMessage, PptxAiWritePolicy, PresentationTool, PresenterExitMessage, PresenterMessage, PresenterNotes, PresenterSlideChangeMessage, 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, ScatterDot, SelectionBox, 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, TimerProgress, ToolbarActionId, TouchGestureCallbacks, TranslationKey, UngroupResult, ValueRange, VideoPlanOptions, VideoSegmentPlan, ViewerMode, ViewerProfile, ViewerSettings, ViewerTheme, ViewerThemeColors, ZoomViewModel };
|