pptx-angular-viewer 1.1.62 → 1.1.63

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 CHANGED
@@ -4,6 +4,12 @@ All notable changes to this project are documented here.
4
4
  This file is generated from [Conventional Commits](https://www.conventionalcommits.org)
5
5
  by [git-cliff](https://git-cliff.org); do not edit it by hand.
6
6
 
7
+ ## [1.1.62](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-angular-viewer@1.1.62) - 2026-07-03
8
+
9
+ ### Documentation
10
+
11
+ - **vue,angular:** Correct stale parity-tracker claims (by @ChristopherVR) ([54c4f05](https://github.com/ChristopherVR/pptx-viewer/commit/54c4f0540e33692d82f961c96d8a1818c8678751))
12
+
7
13
  ## [1.1.59](https://github.com/ChristopherVR/pptx-viewer/releases/tag/pptx-angular-viewer@1.1.59) - 2026-07-03
8
14
 
9
15
  ### Features
package/README.md CHANGED
@@ -194,8 +194,7 @@ polish/cosmetic, not behavioural gaps:
194
194
  image otherwise (the same as the React package).
195
195
 
196
196
  The `pptx-viewer-core` engine parses all element data, so you can access it from
197
- the model even where the UI does not expose it yet. Progress and design notes live
198
- in [`PORTING.md`](./PORTING.md).
197
+ the model even where the UI does not expose it yet.
199
198
 
200
199
  ## Build (contributing)
201
200
 
@@ -21862,7 +21862,7 @@ function connectorBendFraction(element) {
21862
21862
  * for straight connectors (which render as a `<line>`). Endpoints are already
21863
21863
  * flip-adjusted by the caller.
21864
21864
  *
21865
- * Viewer-first approximation (full A* routing is a TODO, see PORTING.md):
21865
+ * Viewer-first approximation (full A* routing is a TODO):
21866
21866
  * - **bent**: orthogonal elbow polyline. `bentConnector2` is a single L-bend;
21867
21867
  * `bentConnector3..5` route through a vertical mid-axis at `bend`.
21868
21868
  * - **curved**: `curvedConnector2` is a quadratic Bezier; `curvedConnector3..5`
@@ -34589,10 +34589,9 @@ function segmentFrameCount(durationMs, fps) {
34589
34589
  * - loader: load-pipeline helpers (media/image collection, guides).
34590
34590
  * - types: CanvasSize, CollaborationConfig, CollaborationRole.
34591
34591
  * - constants: scalar viewer defaults (canvas size, fallback colours).
34592
- *
34593
- * Roadmap (see packages/angular/PORTING.md and packages/vue/PORTING.md):
34594
- * color resolution, geometry/clip-paths, connector routing, animation
34595
- * timeline engine, table-merge math, morph matching, export data helpers.
34592
+ * - render: the bulk of the shared logic (colour/geometry/connector/
34593
+ * animation/table/chart/text/effects/collaboration/i18n).
34594
+ * - export: export data helpers.
34596
34595
  */
34597
34596
 
34598
34597
  /**
@@ -39467,10 +39466,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
39467
39466
  * Provide it at the component level so its lifetime tracks the host viewer:
39468
39467
  * `@Component({ providers: [LoadContentService] })`.
39469
39468
  *
39470
- * This is the viewer-first subset; the React hook also populated ~25 extra
39471
- * pieces of presentation metadata (sections, custom shows, embedded fonts,
39472
- * digital signatures, …). Those are tracked in PORTING.md and added here as
39473
- * the corresponding features are ported.
39469
+ * Originally the viewer-first subset of the React hook; the extra pieces of
39470
+ * presentation metadata (sections, custom shows, embedded fonts, digital
39471
+ * signatures, …) were added alongside the corresponding features.
39474
39472
  */
39475
39473
  class LoadContentService {
39476
39474
  /** Parsed slides (with image Blob URLs patched in). */
@@ -40881,7 +40879,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
40881
40879
  * building the SmartArt element payload from a chosen preset, hierarchy
40882
40880
  * parenting) is delegated to the pure functions below so they can be unit-tested
40883
40881
  * in plain vitest (the Angular package's vitest setup has no Angular compiler,
40884
- * so component / TestBed tests are not available - see PORTING.md).
40882
+ * so component / TestBed tests are not available).
40885
40883
  *
40886
40884
  * The preset catalogue itself is the framework-agnostic, vendored
40887
40885
  * `pptx-viewer-shared` source of truth (`render/smart-art-presets`), consumed
@@ -46680,7 +46678,7 @@ function describeSmartArtBounds(layout) {
46680
46678
  * `editor-insert.ts` (sourced from `pptx-viewer-core`). Keeping this logic out of
46681
46679
  * the component lets it be unit-tested in plain vitest (the Angular package's
46682
46680
  * vitest setup has no Angular compiler, so TestBed component tests are not
46683
- * available - see PORTING.md).
46681
+ * available).
46684
46682
  *
46685
46683
  * Mirrors the React inspector:
46686
46684
  * packages/react/src/viewer/components/inspector/SmartArtPropertiesPanel.tsx
@@ -52369,7 +52367,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
52369
52367
  * Compound (double/triple) lines render as parallel strands and line caps map
52370
52368
  * from `a:ln/@cap`; both derive from the shared connector geometry.
52371
52369
  *
52372
- * Not yet ported (TODO, see PORTING.md): line shadows/glow.
52370
+ * Not yet ported (TODO): line shadows/glow.
52373
52371
  */
52374
52372
  class ConnectorRendererComponent {
52375
52373
  element = input.required(/* @ts-ignore */
@@ -52796,7 +52794,8 @@ function buildDuotoneFilter(element) {
52796
52794
  * and paint text boxes, basic preset shapes, images, and image/gradient fills
52797
52795
  * (the latter via the parser's prebuilt CSS gradient string). Advanced visuals
52798
52796
  * (the structured gradient builder, pattern fills, custom geometry clip-paths,
52799
- * shadows, 3D, image effects, text warp) are tracked in PORTING.md.
52797
+ * shadows, 3D, image effects, text warp) are handled by the shared render
52798
+ * modules (`pptx-viewer-shared`) consumed from the renderer components.
52800
52799
  *
52801
52800
  * Long term the *logic* here is a shared-extraction candidate; only the
52802
52801
  * return type (CSS map shape) differs per framework, so a future refactor
@@ -53234,7 +53233,7 @@ function buildInkContainerStyle(element, zIndex) {
53234
53233
  * radii follow the per-point pressure, matching React's `renderInk`. Strokes
53235
53234
  * without pressure variation degrade to a plain constant-width `<path>`.
53236
53235
  *
53237
- * Not ported (TODO, see PORTING.md): ink replay animation and the
53236
+ * Not ported (TODO): ink replay animation and the
53238
53237
  * highlighter/eraser tool blend modes.
53239
53238
  *
53240
53239
  * All non-trivial pure computation lives in `ink-renderer-helpers.ts` (no
@@ -54629,7 +54628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
54629
54628
  * its text directly on the diagram. Everything that can be expressed as a pure
54630
54629
  * function lives here so it can be unit-tested in plain vitest (the Angular
54631
54630
  * package's vitest setup has no Angular compiler, so component/TestBed tests are
54632
- * not available - see PORTING.md). The component
54631
+ * not available). The component
54633
54632
  * (`smart-art-renderer.component.ts`) stays thin: it owns only the edit-state
54634
54633
  * signal, the positioned `<textarea>`, and the call into the existing commit
54635
54634
  * path (`EditorStateService.updateElement`, the same channel the inspector's
@@ -57294,8 +57293,7 @@ function runStyleFromSegment(seg) {
57294
57293
  * ElementRendererComponent: Angular port of the React `ElementRenderer.tsx`
57295
57294
  * and the Vue `ElementRenderer.vue`.
57296
57295
  *
57297
- * Renders a single slide element by its `type` discriminant (viewer-first
57298
- * subset):
57296
+ * Renders a single slide element by its `type` discriminant:
57299
57297
  * - `text` / `shape` → positioned box with fill/stroke + rich text + effects
57300
57298
  * - `connector` → SVG straight/bent/curved connector
57301
57299
  * - `chart` → inline-SVG chart (bar/line/area/pie/scatter)
@@ -57303,14 +57301,13 @@ function runStyleFromSegment(seg) {
57303
57301
  * - `smartArt` → SVG drawing-shapes / node-text fallback
57304
57302
  * - `ink` → SVG ink strokes
57305
57303
  * - `ole` → embedded-object preview / icon
57306
- * - `model3d` → poster / placeholder (no three.js)
57304
+ * - `model3d` → interactive three.js scene when the optional
57305
+ * `three` peer is present, else poster / placeholder
57307
57306
  * - `zoom` → slide/section zoom thumbnail
57308
57307
  * - `picture` / `image` → `<img>`
57309
57308
  * - `media` → native `<video>`/`<audio>` playback, poster fallback
57310
57309
  * - `group` → recursive children (self-referencing selector)
57311
- * - everything else → labelled placeholder (TODO, see PORTING.md)
57312
- *
57313
- * Interaction (selection, resize, inline editing) is not yet ported.
57310
+ * - everything else → labelled placeholder (defensive fallback)
57314
57311
  */
57315
57312
  class ElementRendererComponent {
57316
57313
  element = input.required(/* @ts-ignore */
@@ -58196,8 +58193,8 @@ function plainText(el) {
58196
58193
  * Renders the active slide as a fixed-size stage scaled by `zoom`, with each
58197
58194
  * element absolutely positioned. When `editable`, supports click-to-select
58198
58195
  * (event delegation), selection outlines, and pointer drag-to-move / resize
58199
- * handles. Rulers, grid, guides, marquee, and collaboration overlays are
58200
- * tracked in PORTING.md.
58196
+ * handles, plus the rulers, grid, guides, marquee, and collaboration
58197
+ * overlays.
58201
58198
  */
58202
58199
  class SlideCanvasComponent {
58203
58200
  slide = input(undefined, /* @ts-ignore */
@@ -71431,7 +71428,6 @@ const GRID_GAP = 16;
71431
71428
  * Escape or clicking the ✕ button emits `closed`.
71432
71429
  *
71433
71430
  * Viewer-first scope: no drag-reorder, no context menu, no section grouping.
71434
- * Those features are tracked in PORTING.md.
71435
71431
  *
71436
71432
  * Usage:
71437
71433
  * ```html
@@ -76999,10 +76995,9 @@ const ZOOM_MAX = 3;
76999
76995
  * and Vue `PowerPointViewer.vue`.
77000
76996
  *
77001
76997
  * Top-level orchestrator that loads `.pptx` bytes and renders the slides with
77002
- * navigation and zoom. This is the viewer-first milestone of the port: the
77003
- * React component additionally composes a full editor (toolbar, inspector
77004
- * panels, dialogs, presentation mode, collaboration, export). The roadmap and
77005
- * per-area status live in `packages/angular/PORTING.md`.
76998
+ * navigation and zoom, composing the full editor (toolbar, inspector panels,
76999
+ * dialogs, presentation mode, collaboration, export) like its React and Vue
77000
+ * counterparts.
77006
77001
  *
77007
77002
  * Conventions vs. React/Vue:
77008
77003
  * - React `forwardRef` handle / Vue `defineExpose` → public {@link getContent}