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 +6 -0
- package/README.md +1 -2
- package/fesm2022/pptx-angular-viewer.mjs +23 -28
- package/fesm2022/pptx-angular-viewer.mjs.map +1 -1
- package/package.json +1 -1
- package/types/pptx-angular-viewer.d.ts +17 -21
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.
|
|
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
|
|
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
|
-
*
|
|
34594
|
-
*
|
|
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
|
-
*
|
|
39471
|
-
*
|
|
39472
|
-
*
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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` →
|
|
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 (
|
|
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
|
|
58200
|
-
*
|
|
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
|
|
77003
|
-
*
|
|
77004
|
-
*
|
|
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}
|