pptx-svelte-viewer 3.2.3 → 3.4.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.
Files changed (69) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/{AiChatPanel-ll_EeEu6.js → AiChatPanel-DjHkDmi9.js} +11 -11
  3. package/dist/{export-DGmRuakg.js → export-Bb3HzTLw.js} +35256 -30910
  4. package/dist/i18n.js +1 -1
  5. package/dist/index.d.ts +170 -17
  6. package/dist/index.js +2 -2
  7. package/dist/pptx-svelte-viewer.css +1 -1
  8. package/dist/{translator-Cvwv7iQG.js → translator-vErJ1kUG.js} +48 -5
  9. package/dist/viewer/ai/ai-panel-controller.svelte.d.ts +2 -8
  10. package/dist/viewer/ai/ai-panel-controller.svelte.d.ts.map +1 -1
  11. package/dist/viewer/components/inspector/animation-panel-helpers.d.ts.map +1 -1
  12. package/dist/viewer/components/props-elements.d.ts +9 -0
  13. package/dist/viewer/components/props-elements.d.ts.map +1 -1
  14. package/dist/viewer/components/props-stage.d.ts +2 -0
  15. package/dist/viewer/components/props-stage.d.ts.map +1 -1
  16. package/dist/viewer/editor/editor-arrange-ops.d.ts.map +1 -1
  17. package/dist/viewer/editor/editor-background-controller.d.ts.map +1 -1
  18. package/dist/viewer/editor/editor-clipboard.d.ts.map +1 -1
  19. package/dist/viewer/editor/editor-controller-deps.d.ts +2 -5
  20. package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
  21. package/dist/viewer/editor/editor-controller-wiring.d.ts +1 -2
  22. package/dist/viewer/editor/editor-controller-wiring.d.ts.map +1 -1
  23. package/dist/viewer/editor/editor-controller.svelte.d.ts.map +1 -1
  24. package/dist/viewer/editor/editor-document-state.d.ts.map +1 -1
  25. package/dist/viewer/editor/editor-element-controller.d.ts +1 -1
  26. package/dist/viewer/editor/editor-element-controller.d.ts.map +1 -1
  27. package/dist/viewer/editor/editor-handle-handlers.d.ts +1 -2
  28. package/dist/viewer/editor/editor-handle-handlers.d.ts.map +1 -1
  29. package/dist/viewer/editor/editor-ink-controller.svelte.d.ts.map +1 -1
  30. package/dist/viewer/editor/editor-insert.d.ts.map +1 -1
  31. package/dist/viewer/editor/editor-selection-gestures.d.ts +1 -2
  32. package/dist/viewer/editor/editor-selection-gestures.d.ts.map +1 -1
  33. package/dist/viewer/editor/editor-state.svelte.d.ts +1 -2
  34. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  35. package/dist/viewer/editor/editor-transition-controller.d.ts.map +1 -1
  36. package/dist/viewer/editor/editor-zorder.d.ts +2 -2
  37. package/dist/viewer/editor/editor-zorder.d.ts.map +1 -1
  38. package/dist/viewer/editor/index.d.ts +4 -5
  39. package/dist/viewer/editor/index.d.ts.map +1 -1
  40. package/dist/viewer/editor/inline-text.d.ts +1 -6
  41. package/dist/viewer/editor/inline-text.d.ts.map +1 -1
  42. package/dist/viewer/index.d.ts +233 -53
  43. package/dist/viewer/index.js +13 -13
  44. package/dist/viewer/presentation/animation-playback.svelte.d.ts +3 -2
  45. package/dist/viewer/presentation/animation-playback.svelte.d.ts.map +1 -1
  46. package/dist/viewer/presentation/presentation-controller.svelte.d.ts +8 -0
  47. package/dist/viewer/presentation/presentation-controller.svelte.d.ts.map +1 -1
  48. package/dist/viewer/render/media-view.d.ts +1 -13
  49. package/dist/viewer/render/media-view.d.ts.map +1 -1
  50. package/dist/viewer/render/ole-view.d.ts +2 -8
  51. package/dist/viewer/render/ole-view.d.ts.map +1 -1
  52. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -1
  53. package/dist/viewer/state/google-webfonts.d.ts +23 -0
  54. package/dist/viewer/state/google-webfonts.d.ts.map +1 -0
  55. package/dist/viewer/state/loader-helpers.d.ts.map +1 -1
  56. package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/dist/viewer/ai/ai-log-export.d.ts +0 -71
  59. package/dist/viewer/ai/ai-log-export.d.ts.map +0 -1
  60. package/dist/viewer/ai/focus-targets.d.ts +0 -36
  61. package/dist/viewer/ai/focus-targets.d.ts.map +0 -1
  62. package/dist/viewer/editor/editor-geometry.d.ts +0 -29
  63. package/dist/viewer/editor/editor-geometry.d.ts.map +0 -1
  64. package/dist/viewer/editor/editor-gestures.d.ts +0 -55
  65. package/dist/viewer/editor/editor-gestures.d.ts.map +0 -1
  66. package/dist/viewer/editor/editor-mutations.d.ts +0 -59
  67. package/dist/viewer/editor/editor-mutations.d.ts.map +0 -1
  68. package/dist/viewer/presentation/animation-playback-helpers.d.ts +0 -43
  69. package/dist/viewer/presentation/animation-playback-helpers.d.ts.map +0 -1
@@ -221,6 +221,12 @@ interface PptxShapeLocks {
221
221
  * `a:spLocks` / `a:picLocks` / `a:cxnSpLocks` / `a:grpSpLocks`.
222
222
  */
223
223
  noDrilldown?: boolean;
224
+ /**
225
+ * `a:picLocks/@noCrop`: forbids cropping the picture. Declared ONLY by
226
+ * `CT_PictureLocking`, so it is written for pictures (and media authored as
227
+ * a `p:pic`) and never onto the other lock elements.
228
+ */
229
+ noCrop?: boolean;
224
230
  /**
225
231
  * Text-box flag from `p:cNvSpPr/@txBox`. Not a lock in the strict sense,
226
232
  * but it lives on the same non-visual-properties node as `a:spLocks`, so
@@ -2162,13 +2168,32 @@ interface PlaceholderTextLevelStyle {
2162
2168
  bulletSizePercent?: number;
2163
2169
  /** Bullet colour from `a:buClr` as hex string. */
2164
2170
  bulletColor?: string;
2171
+ /**
2172
+ * The colour-choice node inside `a:buClr` this level's {@link bulletColor}
2173
+ * resolved from (`a:schemeClr` / `a:sysClr` / `a:prstClr` / `a:srgbClr`,
2174
+ * transforms included), mirroring `BulletInfo.colorXml`. Re-emitted
2175
+ * verbatim on save so a themed bullet is not downgraded to a literal
2176
+ * `a:srgbClr`. Absent when the level declares no bullet colour.
2177
+ */
2178
+ bulletColorXml?: XmlObject;
2165
2179
  /** Bullet size in points from `a:buSzPts`. */
2166
2180
  bulletSizePts?: number;
2167
2181
  /** True when `a:buNone` is present at this level. */
2168
2182
  bulletNone?: boolean;
2169
2183
  marginLeft?: number;
2184
+ /** Paragraph right margin in px (from `@_marR` EMU). */
2185
+ marginRight?: number;
2170
2186
  indent?: number;
2187
+ /**
2188
+ * Paragraph alignment as a `TextStyle['align']` token (`left`, `center`,
2189
+ * `right`, `justify`, `justLow`, `dist`, `thaiDist`), never the raw OOXML
2190
+ * `@algn` value.
2191
+ */
2171
2192
  alignment?: string;
2193
+ /** Right-to-left paragraph direction (`@rtl`). */
2194
+ rtl?: boolean;
2195
+ /** Tab stops from `a:tabLst/a:tab` (positions in px). */
2196
+ tabStops?: TextStyle['tabStops'];
2172
2197
  lineSpacing?: number;
2173
2198
  lineSpacingExactPt?: number;
2174
2199
  spaceBefore?: number;
@@ -2394,6 +2419,20 @@ type PptxChartType = 'bar' | 'line' | 'pie' | 'ofPie' | 'doughnut' | 'area' | 's
2394
2419
  * ```
2395
2420
  */
2396
2421
  type PptxChartBarDirection = 'col' | 'bar';
2422
+ /**
2423
+ * 3-D bar/column shape (OOXML `ST_Shape`, `c:bar3DChart/c:shape/@val` or a
2424
+ * per-series `c:ser/c:shape` override). `coneToMax` / `pyramidToMax` scale
2425
+ * the cone/pyramid so it reaches full height at the value axis maximum,
2426
+ * appearing truncated below it; the plain `cone`/`pyramid` always come to a
2427
+ * full point at the bar's own value.
2428
+ *
2429
+ * @example
2430
+ * ```ts
2431
+ * const shape: PptxBar3DShape = "cylinder";
2432
+ * // => "cylinder", one of: "box" | "cone" | "coneToMax" | "cylinder" | "pyramid" | "pyramidToMax"
2433
+ * ```
2434
+ */
2435
+ type PptxBar3DShape = 'box' | 'cone' | 'coneToMax' | 'cylinder' | 'pyramid' | 'pyramidToMax';
2397
2436
  /**
2398
2437
  * Supported trendline regression types.
2399
2438
  *
@@ -2822,6 +2861,12 @@ interface PptxChartSeries {
2822
2861
  * series.
2823
2862
  */
2824
2863
  seriesChartType?: PptxChartType;
2864
+ /**
2865
+ * Per-series 3-D bar/column shape override (`c:ser/c:shape`), legal only
2866
+ * inside a bar3D chart-type container. Overrides {@link PptxChartData.barShape}
2867
+ * for this series alone.
2868
+ */
2869
+ shape?: PptxBar3DShape;
2825
2870
  boxWhiskerOptions?: PptxChartBoxWhiskerOptions;
2826
2871
  histogramOptions?: PptxChartHistogramOptions;
2827
2872
  waterfallOptions?: PptxChartWaterfallOptions;
@@ -3123,6 +3168,28 @@ interface PptxChartData {
3123
3168
  * default), so only horizontal bar charts need to carry the field.
3124
3169
  */
3125
3170
  barDirection?: PptxChartBarDirection;
3171
+ /**
3172
+ * 3-D bar/column shape (`c:bar3DChart/c:shape/@val`). Bar3D only; a plain
3173
+ * bar chart has no `c:shape` element. A per-series `c:ser/c:shape`
3174
+ * ({@link PptxChartSeries.shape}) overrides this for that series.
3175
+ */
3176
+ barShape?: PptxBar3DShape;
3177
+ /**
3178
+ * Radar chart drawing style (`c:radarChart/c:radarStyle/@val`). `standard`
3179
+ * draws an outline only, `marker` adds markers at each vertex (PowerPoint's
3180
+ * own default for every radar chart it authors), and `filled` paints the
3181
+ * enclosed polygon with the series fill and omits markers. Radar only.
3182
+ */
3183
+ radarStyle?: 'standard' | 'marker' | 'filled';
3184
+ /**
3185
+ * Whether a surface chart renders as a wireframe grid rather than a solid
3186
+ * coloured surface (`c:surfaceChart/c:wireframe/@val` or
3187
+ * `c:surface3DChart/c:wireframe/@val`, both modeled as chart type
3188
+ * `"surface"`). A `CT_Boolean` element: absent from the source XML
3189
+ * defaults to `true` per schema, so `undefined` here means "not present in
3190
+ * the source" and callers should treat it as `true`. Surface only.
3191
+ */
3192
+ wireframe?: boolean;
3126
3193
  /**
3127
3194
  * Scatter presentation mode (`c:scatterChart/c:scatterStyle/@val`).
3128
3195
  *
@@ -3320,6 +3387,26 @@ interface PptxBackgroundRemovalMark {
3320
3387
  * // => retains the middle of the image; the marks list stays empty
3321
3388
  * ```
3322
3389
  */
3390
+ /**
3391
+ * Snapshot of the a14 Corrections / Color panel values as they were read from
3392
+ * the file, kept on {@link PptxImageEffects.prerenderedCorrections} so a
3393
+ * renderer can tell a baked-in value from one changed in this library.
3394
+ */
3395
+ interface PptxImagePrerenderedCorrections {
3396
+ sharpenSoften?: {
3397
+ amount: number;
3398
+ };
3399
+ brightnessContrast?: {
3400
+ bright?: number;
3401
+ contrast?: number;
3402
+ };
3403
+ colorTemperature?: {
3404
+ colorTemp: number;
3405
+ };
3406
+ colorSaturation?: {
3407
+ sat: number;
3408
+ };
3409
+ }
3323
3410
  interface PptxBackgroundRemoval {
3324
3411
  /** Top edge of the retained rectangle (0..1 fraction of the image height). */
3325
3412
  top: number;
@@ -3386,18 +3473,71 @@ interface PptxImageEffects {
3386
3473
  */
3387
3474
  backgroundRemoval?: PptxBackgroundRemoval;
3388
3475
  /**
3389
- * `a14:imgLayer/@r:embed` — relationship id of the PRISTINE original image
3476
+ * `a14:imgLayer/@r:embed`: relationship id of the PRISTINE original image
3390
3477
  * the baked effects were derived from (PowerPoint stores it as an HD Photo
3391
3478
  * `.wdp` part, which browsers cannot decode).
3392
3479
  */
3393
3480
  originalImageRelId?: string;
3481
+ /**
3482
+ * PowerPoint 2010+ Corrections panel "Sharpen/Soften"
3483
+ * (`a14:sharpenSoften/@amount`). Raw as the XML carries it: 1/1000ths of a
3484
+ * percent, `-100000` (fully softened) .. `100000` (fully sharpened).
3485
+ * Edit-time metadata like the artistic effects: PowerPoint bakes the result
3486
+ * into the stored bitmap.
3487
+ */
3488
+ sharpenSoften?: {
3489
+ amount: number;
3490
+ };
3491
+ /**
3492
+ * PowerPoint 2010+ Corrections panel "Brightness/Contrast"
3493
+ * (`a14:brightnessContrast/@bright`, `@contrast`). Raw 1/1000ths of a
3494
+ * percent, `-100000` .. `100000`. Distinct from the legacy `a:blip/@bright`
3495
+ * + `@contrast` pair in {@link PptxImageEffects.brightness} /
3496
+ * {@link PptxImageEffects.contrast}, which PowerPoint 2007 wrote and which
3497
+ * a renderer still applies.
3498
+ */
3499
+ brightnessContrast?: {
3500
+ bright?: number;
3501
+ contrast?: number;
3502
+ };
3503
+ /**
3504
+ * PowerPoint 2010+ Color panel "Color Tone"
3505
+ * (`a14:colorTemperature/@colorTemp`). Raw Kelvin value, `1500` .. `11500`;
3506
+ * `6500` is neutral.
3507
+ */
3508
+ colorTemperature?: {
3509
+ colorTemp: number;
3510
+ };
3511
+ /**
3512
+ * PowerPoint 2010+ Color panel "Color Saturation" (`a14:saturation/@sat`).
3513
+ * Raw 1/1000ths of a percent: `100000` is unchanged, `0` is grayscale,
3514
+ * `400000` the maximum. Named `colorSaturation` because
3515
+ * {@link PptxImageEffects.saturation} is the viewer-side -100..100 knob
3516
+ * that has no OOXML counterpart.
3517
+ */
3518
+ colorSaturation?: {
3519
+ sat: number;
3520
+ };
3521
+ /**
3522
+ * The Corrections / Color panel values ALREADY baked into the image data,
3523
+ * which a renderer must not apply a second time. The a14 counterpart of
3524
+ * {@link PptxImageEffects.artisticPrerenderedEffect}: PowerPoint writes the
3525
+ * corrected bitmap to the main `a:blip` and keeps the pristine original in
3526
+ * `a14:imgLayer` (measured on a real deck: the stored PNG is a monotone tonal
3527
+ * transform of the `.wdp` original, slope 0.7 for `contrast="-40000"`).
3528
+ *
3529
+ * Holds the VALUES rather than a boolean so that changing one of the four
3530
+ * fields in this library's inspector still renders: a field that differs
3531
+ * from its snapshot is applied, one that matches is skipped.
3532
+ */
3533
+ prerenderedCorrections?: PptxImagePrerenderedCorrections;
3394
3534
  /** Alpha modulation fixed: non-negative percentage (100 means unchanged opacity). */
3395
3535
  alphaModFix?: number;
3396
3536
  /** Original alpha modulation fixed node, including foreign attributes. */
3397
3537
  alphaModFixRawXml?: XmlObject;
3398
- /** Bi-level threshold — converts to 1-bit black/white (0-100). */
3538
+ /** Bi-level threshold: converts to 1-bit black/white (0-100). */
3399
3539
  biLevel?: number;
3400
- /** Colour change — swap one colour range for another (used for transparency keying). */
3540
+ /** Colour change: swap one colour range for another (used for transparency keying). */
3401
3541
  clrChange?: {
3402
3542
  clrFrom: string;
3403
3543
  clrTo: string;
@@ -3420,11 +3560,11 @@ interface PptxImageEffects {
3420
3560
  /** Original effect XML, including colour transforms and foreign attributes. */
3421
3561
  rawXml?: XmlObject;
3422
3562
  };
3423
- /** Alpha ceiling (`a:alphaCeiling`) — clamps any non-zero alpha to fully opaque. Boolean flag. */
3563
+ /** Alpha ceiling (`a:alphaCeiling`): clamps any non-zero alpha to fully opaque. Boolean flag. */
3424
3564
  alphaCeiling?: boolean;
3425
3565
  /** Original alpha ceiling node, including foreign attributes. */
3426
3566
  alphaCeilingRawXml?: XmlObject;
3427
- /** Alpha floor (`a:alphaFloor`) — clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
3567
+ /** Alpha floor (`a:alphaFloor`): clamps any non-fully-opaque alpha to fully transparent. Boolean flag. */
3428
3568
  alphaFloor?: boolean;
3429
3569
  /** Original alpha floor node, including foreign attributes. */
3430
3570
  alphaFloorRawXml?: XmlObject;
@@ -3448,16 +3588,16 @@ interface PptxImageEffects {
3448
3588
  */
3449
3589
  amt?: number;
3450
3590
  };
3451
- /** Alpha replace (`a:alphaRepl`) — replaces alpha with the given fixed-percent value (0..100). */
3591
+ /** Alpha replace (`a:alphaRepl`): replaces alpha with the given fixed-percent value (0..100). */
3452
3592
  alphaRepl?: number;
3453
3593
  /** Original alpha replace node, including foreign attributes. */
3454
3594
  alphaReplRawXml?: XmlObject;
3455
- /** Alpha bi-level (`a:alphaBiLevel`) — threshold (0..100) above which alpha becomes fully opaque. */
3595
+ /** Alpha bi-level (`a:alphaBiLevel`): threshold (0..100) above which alpha becomes fully opaque. */
3456
3596
  alphaBiLevel?: number;
3457
3597
  /** Original alpha bi-level node, including foreign attributes. */
3458
3598
  alphaBiLevelRawXml?: XmlObject;
3459
3599
  /**
3460
- * Colour replace (`a:clrRepl`) — replaces all colour information in an image
3600
+ * Colour replace (`a:clrRepl`): replaces all colour information in an image
3461
3601
  * with the given solid colour. Stores the raw colour child to preserve scheme
3462
3602
  * colour references and modifiers.
3463
3603
  */
@@ -3467,24 +3607,24 @@ interface PptxImageEffects {
3467
3607
  /** Raw opaque colour XML for round-trip. */
3468
3608
  rawXml?: Record<string, unknown>;
3469
3609
  };
3470
- /** Luminance modulation (`a:lum`) — bright/contrast as fixed percentages (0..100). */
3610
+ /** Luminance modulation (`a:lum`): bright/contrast as fixed percentages (0..100). */
3471
3611
  lum?: {
3472
3612
  bright?: number;
3473
3613
  contrast?: number;
3474
3614
  };
3475
- /** HSL modulation (`a:hsl`) — hue (0..360 degrees), saturation/luminance (-100..100). */
3615
+ /** HSL modulation (`a:hsl`): hue (0..360 degrees), saturation/luminance (-100..100). */
3476
3616
  hsl?: {
3477
3617
  hue?: number;
3478
3618
  sat?: number;
3479
3619
  lum?: number;
3480
3620
  };
3481
- /** Image-effect tint (`a:tint` inside blip) — hue (0..360), amount (-100..100). */
3621
+ /** Image-effect tint (`a:tint` inside blip): hue (0..360), amount (-100..100). */
3482
3622
  tint?: {
3483
3623
  hue?: number;
3484
3624
  amt?: number;
3485
3625
  };
3486
3626
  /**
3487
- * Fill overlay (`a:fillOverlay`) — overlays a fill on top of the blip.
3627
+ * Fill overlay (`a:fillOverlay`): overlays a fill on top of the blip.
3488
3628
  * Stores blend mode and the raw inner fill XML for round-trip.
3489
3629
  */
3490
3630
  fillOverlay?: {
@@ -3526,7 +3666,7 @@ interface PptxImageEffects {
3526
3666
  background?: string;
3527
3667
  };
3528
3668
  };
3529
- /** Blur (`a:blur`) — radius in EMU and grow flag. */
3669
+ /** Blur (`a:blur`): radius in EMU and grow flag. */
3530
3670
  blur?: {
3531
3671
  rad?: number;
3532
3672
  grow?: boolean;
@@ -3538,12 +3678,12 @@ interface PptxImageEffects {
3538
3678
  * @example
3539
3679
  * ```ts
3540
3680
  * const shape: PptxCropShape = "ellipse";
3541
- * // => "ellipse" — one of: none | ellipse | roundedRect | triangle | diamond | pentagon | hexagon | star
3681
+ * // => "ellipse": one of: none | ellipse | roundedRect | triangle | diamond | pentagon | hexagon | star
3542
3682
  * ```
3543
3683
  */
3544
3684
  type PptxCropShape = 'none' | 'ellipse' | 'roundedRect' | 'triangle' | 'diamond' | 'pentagon' | 'hexagon' | 'star';
3545
3685
  /**
3546
- * Image content mixin — present on image and picture elements.
3686
+ * Image content mixin: present on image and picture elements.
3547
3687
  *
3548
3688
  * Contains the decoded image data (base64 data URL or archive path),
3549
3689
  * alt text, crop insets, tiling settings, and image effects.
@@ -3613,7 +3753,16 @@ interface PptxImageProperties {
3613
3753
  dpi?: number;
3614
3754
  /** Image recolour/artistic effect properties. */
3615
3755
  imageEffects?: PptxImageEffects;
3616
- /** Crop-to-shape — CSS clip-path shape name. */
3756
+ /**
3757
+ * Crop-to-shape (CSS clip-path shape name).
3758
+ *
3759
+ * PowerPoint implements "Crop to Shape" by writing the picture's own
3760
+ * `a:prstGeom`, so this is a typed view over `shapeType`: on load it is
3761
+ * derived from the preset (`ellipse` -> `'ellipse'`, `roundRect` ->
3762
+ * `'roundedRect'`, `star5` -> `'star'`, ...; see
3763
+ * `utils/crop-shape-geometry`), and on save a changed value rewrites the
3764
+ * preset. `'none'` / `undefined` leaves the geometry alone.
3765
+ */
3617
3766
  cropShape?: PptxCropShape;
3618
3767
  }
3619
3768
  //#endregion
@@ -7540,7 +7689,11 @@ interface PptxSlide {
7540
7689
  */
7541
7690
  slideId?: string;
7542
7691
  sourceSlideId?: string;
7543
- /** Optional author-supplied slide name (set via `SlideBuilder.setName`). */
7692
+ /**
7693
+ * The slide name, `p:cSld/@name`: loaded from the part, written back on
7694
+ * save (an empty string clears the attribute), and settable via
7695
+ * `SlideBuilder.setName`.
7696
+ */
7544
7697
  name?: string;
7545
7698
  layoutPath?: string;
7546
7699
  layoutName?: string;
@@ -9940,9 +10093,16 @@ interface CellRect {
9940
10093
  * return a `Map` keyed by element `id` describing the *new* position(s) for the
9941
10094
  * elements that need to move. Elements that already sit on the target edge (or
9942
10095
  * the two outer-most elements during distribution) are still included with
9943
- * their unchanged coordinate so callers can apply the whole map uniformly — the
10096
+ * their unchanged coordinate so callers can apply the whole map uniformly; the
9944
10097
  * map only ever contains the axis that the operation touches.
9945
10098
  *
10099
+ * The reference box the selection is aligned against is either the union of
10100
+ * the selected boxes (PowerPoint's "Align Selected Objects") or the slide
10101
+ * itself ("Align to Slide"). PowerPoint defaults to the slide whenever a
10102
+ * single object is selected, which is why a one-element selection is not a
10103
+ * no-op once a `slideSize` is supplied: Align Center on a lone title is one
10104
+ * of the commonest arrange gestures there is.
10105
+ *
9946
10106
  * The helpers are deliberately framework-agnostic: no DOM, no Vue reactivity,
9947
10107
  * no side effects. The host wires them into the editor by feeding the current
9948
10108
  * selection in and applying the returned `Map` via its element-transform
@@ -10001,6 +10161,11 @@ interface SlideTemplateBuildOptions {
10001
10161
  */
10002
10162
  translate?: (key: string) => string;
10003
10163
  }
10164
+ /** A user-placed alignment guide: `axis: 'v'` is a vertical line at x=`position`. */
10165
+ interface SnapGuideInput {
10166
+ axis: 'h' | 'v';
10167
+ position: number;
10168
+ }
10004
10169
  /** A snap alignment line: `axis: 'v'` is a vertical line at x=`position`. */
10005
10170
  interface SnapLine {
10006
10171
  axis: 'h' | 'v';
@@ -10609,7 +10774,14 @@ interface DeckSaveIntent {
10609
10774
  }
10610
10775
  //#endregion
10611
10776
  //#region src/render/viewer-preferences.d.ts
10612
- /** Framework-neutral viewer preferences surfaced by Settings dialogs. */
10777
+ /**
10778
+ * Framework-neutral viewer preferences surfaced by Settings dialogs.
10779
+ *
10780
+ * Every field is a boolean toggle on purpose: the bindings iterate
10781
+ * `keyof ViewerPreferences` and hand each value to a `(key, boolean)` setter,
10782
+ * so the deck-authored view properties (grid spacing is a number) live on the
10783
+ * extending {@link DeckViewPreferences} instead.
10784
+ */
10613
10785
  interface ViewerPreferences {
10614
10786
  autoSave: boolean;
10615
10787
  spellCheck: boolean;
@@ -10857,6 +11029,27 @@ interface ViewerOptionsStoreInit {
10857
11029
  /** Skip localStorage entirely (hosts that own persistence themselves). */
10858
11030
  persist?: boolean;
10859
11031
  }
11032
+ //#endregion
11033
+ //#region src/render/editor-mutations.d.ts
11034
+ /**
11035
+ * Pure, immutable slide-array mutations for the editor.
11036
+ *
11037
+ * Extracted from the Vanilla binding's `editor/editor-mutations` (the superset
11038
+ * of the byte-for-byte-equivalent Svelte copy; Vue's `useEditorOperations`
11039
+ * commit helpers do the same array math inline, reactivity mixed in). Every
11040
+ * function takes the current `PptxSlide[]` and returns a brand-new array
11041
+ * (untouched slides are reused by reference so the render layer can cheaply
11042
+ * detect changes). All cloning defers to the core helpers (`cloneSlide`,
11043
+ * `cloneElement`, `duplicateElement`); nothing is mutated in place.
11044
+ */
11045
+ /** Geometry patch applied by drag / resize / rotate / nudge. */
11046
+ interface ElementBoxPatch {
11047
+ x: number;
11048
+ y: number;
11049
+ width: number;
11050
+ height: number;
11051
+ rotation: number;
11052
+ }
10860
11053
 
10861
11054
  //#endregion
10862
11055
  //#region src/ai/change-diff.d.ts
@@ -11116,6 +11309,13 @@ interface PptxAiBridge {
11116
11309
  /** Surface a transient message in the host UI (toast / status line). */
11117
11310
  notify?(message: string, level?: PptxAiNotifyLevel): void;
11118
11311
  }
11312
+ /** One element ring to draw on the canvas: an explicit pick or a live-tool focus. */
11313
+ interface AiCanvasHighlight {
11314
+ slideIndex: number;
11315
+ elementId: string;
11316
+ /** `pick` = persistent user pick; `active` = transient AI-is-working ring. */
11317
+ variant: 'pick' | 'active';
11318
+ }
11119
11319
  //#endregion
11120
11320
  //#region src/ai/tool-target.d.ts
11121
11321
  /**
@@ -12113,25 +12313,6 @@ type LoadDocumentArgs = [
12113
12313
  customShows?: PptxCustomShow[]
12114
12314
  ];
12115
12315
 
12116
- /**
12117
- * Pure, immutable slide-array mutations for the Svelte editor.
12118
- *
12119
- * Mirrors the vanilla binding's `editor-mutations` (in turn the Vue binding's
12120
- * `useEditorOperations` commit helpers), minus the reactivity: every function
12121
- * takes the current `PptxSlide[]` and returns a brand-new array (untouched
12122
- * slides are reused by reference so the render layer can cheaply detect
12123
- * changes). All cloning defers to the core helpers (`cloneSlide`,
12124
- * `cloneElement`, `duplicateElement`); nothing is mutated in place.
12125
- */
12126
- /** Geometry patch applied by drag / resize / rotate / nudge. */
12127
- interface ElementBoxPatch {
12128
- x: number;
12129
- y: number;
12130
- width: number;
12131
- height: number;
12132
- rotation: number;
12133
- }
12134
-
12135
12316
  /**
12136
12317
  * Z-order (paint-order) reordering for the Svelte editor.
12137
12318
  *
@@ -12139,8 +12320,8 @@ interface ElementBoxPatch {
12139
12320
  * `sendBackward`) are the shared, framework-agnostic operations from
12140
12321
  * `pptx-viewer-shared` (`render/element-operations`), where array index 0 is
12141
12322
  * the back and the last index is the front. This module only lifts them to the
12142
- * slide-array shape the editor state stores, reusing the same immutable
12143
- * `mapSlideElements` helper as the other mutations.
12323
+ * slide-array shape the editor state stores, reusing the shared
12324
+ * `reorderElementOnSlide` helper as the other mutations do.
12144
12325
  */
12145
12326
  /** Which way to move the selected element through the paint-order stack. */
12146
12327
  type ZOrderDirection = 'front' | 'back' | 'forward' | 'backward';
@@ -12803,10 +12984,7 @@ interface EditorControllerDeps {
12803
12984
  */
12804
12985
  getGridSize?(): number;
12805
12986
  getSnapToShape?(): boolean;
12806
- getGuides?(): readonly {
12807
- axis: 'h' | 'v';
12808
- position: number;
12809
- }[];
12987
+ getGuides?(): readonly SnapGuideInput[];
12810
12988
  /**
12811
12989
  * Transform inline-editor text at commit time (File > Options > Proofing
12812
12990
  * AutoCorrect); identity when unset.
@@ -13516,8 +13694,9 @@ interface EditingApi {
13516
13694
  *
13517
13695
  * The class owns the reactive per-element state map, the keyframes CSS, and the
13518
13696
  * interactive / hover trigger-shape id sets; the controller stays pure. The
13519
- * clock (timers, requestAnimationFrame) + DOM effects live in
13520
- * {@link module:presentation/animation-playback-helpers}.
13697
+ * clock (timers, requestAnimationFrame) + DOM effects live in the shared
13698
+ * {@link module:render/animation-playback-engine}, wired here with the local
13699
+ * `./animation-sound` player.
13521
13700
  *
13522
13701
  * NOTE: the editor / inspector animation PREVIEW still uses the older shared
13523
13702
  * `buildClickGroups` model (see `AnimationsTab` / `editor-animation-controller`);
@@ -13621,6 +13800,14 @@ interface PresentationControllerDeps {
13621
13800
  exit?(): void;
13622
13801
  /** `p:showPr` "end with black slide"; defaults to on, like PowerPoint. */
13623
13802
  getEndWithBlackSlide?(): boolean | undefined;
13803
+ /**
13804
+ * Slide Show > Set Up Show > "Loop continuously until 'Esc'"
13805
+ * (`p:presentationPr/@loopContinuously`), or the implicit loop of a kiosk
13806
+ * (`showType === 'kiosk'`) show. When true, advancing past the last slide
13807
+ * wraps to the show's first slide instead of raising the black end screen
13808
+ * or exiting.
13809
+ */
13810
+ getLoopContinuously?(): boolean | undefined;
13624
13811
  /**
13625
13812
  * Membership of the custom show the user selected, or null/undefined for the
13626
13813
  * whole deck. Restricts and reorders the show; hiding still wins over it.
@@ -13799,13 +13986,6 @@ declare class AutosaveRecoveryController {
13799
13986
  dismiss(): void;
13800
13987
  }
13801
13988
 
13802
- /** One element ring to draw on the canvas: an explicit pick or a live-tool focus. */
13803
- interface AiCanvasHighlight {
13804
- slideIndex: number;
13805
- elementId: string;
13806
- /** `pick` = persistent user pick; `active` = transient AI-is-working ring. */
13807
- variant: 'pick' | 'active';
13808
- }
13809
13989
  /** Live viewer accessors + the panel-open hook the controller closes over. */
13810
13990
  interface AiPanelControllerDeps {
13811
13991
  getActiveSlideIndex(): number;
@@ -1,22 +1,22 @@
1
- import { A as e, M as a, _ as s, c as t, d as i, f as l, gt as S, ht as n, i as v, j as o, l as d, n as p, o as b, p as g, r as c, s as x, t as w, u as T } from "../export-DGmRuakg.js";
2
- var m = a, A = o, P = e;
1
+ import { A as e, M as a, c as s, d as t, f as i, gt as l, ht as S, i as n, j as o, l as v, m as d, n as p, o as b, p as g, r as c, s as x, t as m, u as w } from "../export-Bb3HzTLw.js";
2
+ var T = a, A = o, P = e;
3
3
  export {
4
- w as PowerPointViewer,
5
- v as PresentationLoader,
6
- m as Ribbon,
4
+ m as PowerPointViewer,
5
+ n as PresentationLoader,
6
+ T as Ribbon,
7
7
  P as SlideCanvas,
8
8
  c as ViewerState,
9
9
  A as ViewerToolbar,
10
- i as clampSlideIndex,
11
- s as createSvelteAiBridge,
10
+ t as clampSlideIndex,
11
+ d as createSvelteAiBridge,
12
12
  p as createViewerState,
13
13
  b as exportAllSlidesToSvg,
14
14
  x as exportAllSlidesToSvgBlobs,
15
- t as exportSlideAsSvg,
16
- d as exportSlideToSvg,
17
- T as exportSlideToSvgBlob,
18
- l as fitScale,
15
+ s as exportSlideAsSvg,
16
+ v as exportSlideToSvg,
17
+ w as exportSlideToSvgBlob,
18
+ i as fitScale,
19
19
  g as resolveNavigationKey,
20
- n as zoomInPercent,
21
- S as zoomOutPercent
20
+ S as zoomInPercent,
21
+ l as zoomOutPercent
22
22
  };
@@ -15,8 +15,9 @@ import { ElementAnimationState } from 'pptx-viewer-shared';
15
15
  *
16
16
  * The class owns the reactive per-element state map, the keyframes CSS, and the
17
17
  * interactive / hover trigger-shape id sets; the controller stays pure. The
18
- * clock (timers, requestAnimationFrame) + DOM effects live in
19
- * {@link module:presentation/animation-playback-helpers}.
18
+ * clock (timers, requestAnimationFrame) + DOM effects live in the shared
19
+ * {@link module:render/animation-playback-engine}, wired here with the local
20
+ * `./animation-sound` player.
20
21
  *
21
22
  * NOTE: the editor / inspector animation PREVIEW still uses the older shared
22
23
  * `buildClickGroups` model (see `AnimationsTab` / `editor-animation-controller`);
@@ -1 +1 @@
1
- {"version":3,"file":"animation-playback.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAShE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,qBAAqB;IACrC,oEAAoE;IACpE,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC;IAClC,wDAAwD;IACxD,oBAAoB,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;IAC7C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,iBAAiB;;gBAkBjB,IAAI,EAAE,qBAAqB;IAavC,+EAA+E;IAC/E,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAEtD;IAED,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uEAAuE;IACvE,IAAI,0BAA0B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;IAED,2DAA2D;IAC3D,IAAI,oBAAoB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE9C;IAED,mEAAmE;IACnE,IAAI,UAAU,IAAI,OAAO,CAExB;IAUD,iEAAiE;IACjE,WAAW,IAAI,IAAI;IAcnB,2EAA2E;IAC3E,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAmD9C;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAclB,0EAA0E;IAC1E,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYrD,mEAAmE;IACnE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkB1C,mEAAmE;IACnE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAKrC"}
1
+ {"version":3,"file":"animation-playback.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/animation-playback.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAkB,qBAAqB,EAAmB,MAAM,oBAAoB,CAAC;AAUjG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,qBAAqB;IACrC,oEAAoE;IACpE,QAAQ,IAAI,SAAS,GAAG,SAAS,CAAC;IAClC,wDAAwD;IACxD,oBAAoB,CAAC,IAAI,OAAO,GAAG,SAAS,CAAC;IAC7C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;CACrC;AAED,qBAAa,iBAAiB;;gBAkBjB,IAAI,EAAE,qBAAqB;IAevC,+EAA+E;IAC/E,IAAI,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAEtD;IAED,+DAA+D;IAC/D,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,uEAAuE;IACvE,IAAI,0BAA0B,IAAI,WAAW,CAAC,MAAM,CAAC,CAEpD;IAED,2DAA2D;IAC3D,IAAI,oBAAoB,IAAI,WAAW,CAAC,MAAM,CAAC,CAE9C;IAED,mEAAmE;IACnE,IAAI,UAAU,IAAI,OAAO,CAExB;IAUD,iEAAiE;IACjE,WAAW,IAAI,IAAI;IAcnB,2EAA2E;IAC3E,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAmD9C;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAclB,0EAA0E;IAC1E,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAYrD,mEAAmE;IACnE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAkB1C,mEAAmE;IACnE,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAKrC"}
@@ -50,6 +50,14 @@ export interface PresentationControllerDeps {
50
50
  exit?(): void;
51
51
  /** `p:showPr` "end with black slide"; defaults to on, like PowerPoint. */
52
52
  getEndWithBlackSlide?(): boolean | undefined;
53
+ /**
54
+ * Slide Show > Set Up Show > "Loop continuously until 'Esc'"
55
+ * (`p:presentationPr/@loopContinuously`), or the implicit loop of a kiosk
56
+ * (`showType === 'kiosk'`) show. When true, advancing past the last slide
57
+ * wraps to the show's first slide instead of raising the black end screen
58
+ * or exiting.
59
+ */
60
+ getLoopContinuously?(): boolean | undefined;
53
61
  /**
54
62
  * Membership of the custom show the user selected, or null/undefined for the
55
63
  * whole deck. Restricts and reorders the show; hiding still wins over it.
@@ -1 +1 @@
1
- {"version":3,"file":"presentation-controller.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/presentation-controller.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"presentation-controller.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/presentation/presentation-controller.svelte.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { MediaPptxElement } from 'pptx-viewer-core';
2
+ export { registerCrossSlideAudio } from 'pptx-viewer-shared';
2
3
  /**
3
4
  * Source resolution for `media` (audio / video) elements (port of the vanilla
4
5
  * binding's `renderMediaElement` cascade): `mediaData` (data-URL embedded by
@@ -14,17 +15,4 @@ export interface MediaView {
14
15
  }
15
16
  /** Resolve the playable and poster sources for a media element. */
16
17
  export declare function resolveMediaView(element: MediaPptxElement, mediaDataUrls: Map<string, string>): MediaView;
17
- /**
18
- * Register a `playAcrossSlides` audio element with the shared persistent-audio
19
- * manager, using the same resolved source, loop, volume and trim start the
20
- * slide-local element would have used. PowerPoint keeps such background audio
21
- * playing when the show advances, but the slide-local `<audio>` dies with its
22
- * slide's DOM; the manager's hidden document-level element survives it.
23
- *
24
- * Returns true when the persistent element owns playback, in which case the
25
- * slide-local media node must stay silent or the track doubles. Idempotent per
26
- * element id (the manager no-ops a re-register), so re-entering the owning
27
- * slide does not restart the track.
28
- */
29
- export declare function registerCrossSlideAudio(element: MediaPptxElement, src: string | undefined): boolean;
30
18
  //# sourceMappingURL=media-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-view.d.ts","sourceRoot":"","sources":["../../../src/viewer/render/media-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACzB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,SAAS,CAMX;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,gBAAgB,EACzB,GAAG,EAAE,MAAM,GAAG,SAAS,GACrB,OAAO,CAcT"}
1
+ {"version":3,"file":"media-view.d.ts","sourceRoot":"","sources":["../../../src/viewer/render/media-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAE7D;;;;;;GAMG;AACH,MAAM,WAAW,SAAS;IACzB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAED,mEAAmE;AACnE,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,SAAS,CAMX"}
@@ -1,5 +1,7 @@
1
1
  import { OlePptxElement } from 'pptx-viewer-core';
2
2
  import { ResolvedOleType } from 'pptx-viewer-shared';
3
+ export type { OleIconShape } from 'pptx-viewer-shared';
4
+ export { getOleIconShapes } from 'pptx-viewer-shared';
3
5
  /**
4
6
  * View-model builder for `ole` (embedded object) elements (port of the
5
7
  * vanilla binding's `renderOleElement`). Type resolution, brand colours,
@@ -33,12 +35,4 @@ export interface OleView {
33
35
  }
34
36
  /** Build the full display view for an OLE element. */
35
37
  export declare function buildOleView(element: OlePptxElement): OleView;
36
- /** One primitive of a data-driven placeholder icon. */
37
- export interface OleIconShape {
38
- tag: 'rect' | 'line' | 'text';
39
- attrs: Record<string, string | number>;
40
- text?: string;
41
- }
42
- /** Icon primitives for a resolved OLE type. */
43
- export declare function getOleIconShapes(type: ResolvedOleType): OleIconShape[];
44
38
  //# sourceMappingURL=ole-view.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ole-view.d.ts","sourceRoot":"","sources":["../../../src/viewer/render/ole-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAe1D;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAkC7D;AAmBD,uDAAuD;AACvD,MAAM,WAAW,YAAY;IAC5B,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AA8ED,+CAA+C;AAC/C,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,YAAY,EAAE,CAEtE"}
1
+ {"version":3,"file":"ole-view.d.ts","sourceRoot":"","sources":["../../../src/viewer/render/ole-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAe1D,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;GAMG;AACH,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,uEAAuE;IACvE,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,uEAAuE;IACvE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,yDAAyD;IACzD,gBAAgB,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,2EAA2E;IAC3E,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,sDAAsD;AACtD,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAkC7D"}
@@ -1 +1 @@
1
- {"version":3,"file":"create-viewer-state-presentation.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-presentation.svelte.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAA0B,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iFAAiF;IACjF,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,sGAAsG;IACtG,YAAY,EAAE,kBAAkB,CAAC;IACjC,+DAA+D;IAC/D,CAAC,EAAE,UAAU,CAAC;IACd,gBAAgB,IAAI,OAAO,CAAC;IAC5B,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAAC;IAC/C,SAAS,IAAI,cAAc,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC5D,YAAY,EAAE,sBAAsB,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,CAoIzF"}
1
+ {"version":3,"file":"create-viewer-state-presentation.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/state/create-viewer-state-presentation.svelte.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAA0B,MAAM,iBAAiB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,UAAU,EAAE,gBAAgB,CAAC;IAC7B,iFAAiF;IACjF,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,sGAAsG;IACtG,YAAY,EAAE,kBAAkB,CAAC;IACjC,+DAA+D;IAC/D,CAAC,EAAE,UAAU,CAAC;IACd,gBAAgB,IAAI,OAAO,CAAC;IAC5B,gBAAgB,IAAI,cAAc,GAAG,SAAS,CAAC;IAC/C,SAAS,IAAI,cAAc,GAAG,SAAS,CAAC;CACxC;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC5D,YAAY,EAAE,sBAAsB,CAAC;CACrC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,uBAAuB,GAAG,mBAAmB,CAwIzF"}