pptx-svelte-viewer 2.17.9 → 2.19.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 (92) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/{AiChatPanel-L5y0kiDu.js → AiChatPanel-DKeBilcx.js} +40 -40
  3. package/dist/{export-57mdVQIa.js → export-CZzvhGTm.js} +67407 -60108
  4. package/dist/i18n.js +1 -1
  5. package/dist/index.d.ts +599 -30
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +34 -27
  8. package/dist/pptx-svelte-viewer.css +1 -1
  9. package/dist/{translator-CZy5sxU0.js → translator-EP8BTIz6.js} +44 -4
  10. package/dist/viewer/components/chart-drag.svelte.d.ts +39 -0
  11. package/dist/viewer/components/chart-drag.svelte.d.ts.map +1 -0
  12. package/dist/viewer/components/props-editing.d.ts +15 -1
  13. package/dist/viewer/components/props-editing.d.ts.map +1 -1
  14. package/dist/viewer/components/props-elements.d.ts +8 -1
  15. package/dist/viewer/components/props-elements.d.ts.map +1 -1
  16. package/dist/viewer/components/props-stage.d.ts +5 -1
  17. package/dist/viewer/components/props-stage.d.ts.map +1 -1
  18. package/dist/viewer/components/ribbon/transitions/transition-presets.d.ts +13 -6
  19. package/dist/viewer/components/ribbon/transitions/transition-presets.d.ts.map +1 -1
  20. package/dist/viewer/components/viewer-body-commits.d.ts +12 -0
  21. package/dist/viewer/components/viewer-body-commits.d.ts.map +1 -1
  22. package/dist/viewer/editor/context-menu-dispatch.d.ts.map +1 -1
  23. package/dist/viewer/editor/editing-api.d.ts.map +1 -1
  24. package/dist/viewer/editor/editor-adjust-gesture.d.ts +21 -0
  25. package/dist/viewer/editor/editor-adjust-gesture.d.ts.map +1 -0
  26. package/dist/viewer/editor/editor-arrange-ops.d.ts.map +1 -1
  27. package/dist/viewer/editor/editor-controller-deps.d.ts +5 -0
  28. package/dist/viewer/editor/editor-controller-deps.d.ts.map +1 -1
  29. package/dist/viewer/editor/editor-controller-wiring.d.ts +21 -0
  30. package/dist/viewer/editor/editor-controller-wiring.d.ts.map +1 -1
  31. package/dist/viewer/editor/editor-controller.svelte.d.ts +20 -1
  32. package/dist/viewer/editor/editor-controller.svelte.d.ts.map +1 -1
  33. package/dist/viewer/editor/editor-document-lifecycle.d.ts.map +1 -1
  34. package/dist/viewer/editor/editor-document-state.d.ts +21 -3
  35. package/dist/viewer/editor/editor-document-state.d.ts.map +1 -1
  36. package/dist/viewer/editor/editor-handle-handlers.d.ts +42 -0
  37. package/dist/viewer/editor/editor-handle-handlers.d.ts.map +1 -0
  38. package/dist/viewer/editor/editor-keyboard.d.ts +7 -0
  39. package/dist/viewer/editor/editor-keyboard.d.ts.map +1 -1
  40. package/dist/viewer/editor/editor-master-controller.d.ts +2 -0
  41. package/dist/viewer/editor/editor-master-controller.d.ts.map +1 -1
  42. package/dist/viewer/editor/editor-presentation-metadata.svelte.d.ts +11 -0
  43. package/dist/viewer/editor/editor-presentation-metadata.svelte.d.ts.map +1 -1
  44. package/dist/viewer/editor/editor-selection-gestures.d.ts +8 -1
  45. package/dist/viewer/editor/editor-selection-gestures.d.ts.map +1 -1
  46. package/dist/viewer/editor/editor-selection-interactivity.d.ts +48 -0
  47. package/dist/viewer/editor/editor-selection-interactivity.d.ts.map +1 -0
  48. package/dist/viewer/editor/editor-slides-controller.d.ts +8 -1
  49. package/dist/viewer/editor/editor-slides-controller.d.ts.map +1 -1
  50. package/dist/viewer/editor/editor-state.svelte.d.ts +80 -2
  51. package/dist/viewer/editor/editor-state.svelte.d.ts.map +1 -1
  52. package/dist/viewer/editor/editor-transition-controller.d.ts +12 -0
  53. package/dist/viewer/editor/editor-transition-controller.d.ts.map +1 -1
  54. package/dist/viewer/editor/index.d.ts +9 -0
  55. package/dist/viewer/editor/index.d.ts.map +1 -1
  56. package/dist/viewer/editor/inline-text.d.ts.map +1 -1
  57. package/dist/viewer/editor/table-cell-pointer.d.ts +29 -0
  58. package/dist/viewer/editor/table-cell-pointer.d.ts.map +1 -0
  59. package/dist/viewer/editor/table-cell-selection.svelte.d.ts +51 -0
  60. package/dist/viewer/editor/table-cell-selection.svelte.d.ts.map +1 -0
  61. package/dist/viewer/index.d.ts +939 -30
  62. package/dist/viewer/index.js +16 -16
  63. package/dist/viewer/master/master-view.d.ts +8 -1
  64. package/dist/viewer/master/master-view.d.ts.map +1 -1
  65. package/dist/viewer/render/contentpart-view.d.ts +8 -21
  66. package/dist/viewer/render/contentpart-view.d.ts.map +1 -1
  67. package/dist/viewer/render/index.d.ts +2 -2
  68. package/dist/viewer/render/index.d.ts.map +1 -1
  69. package/dist/viewer/render/smartart-view.d.ts +6 -5
  70. package/dist/viewer/render/smartart-view.d.ts.map +1 -1
  71. package/dist/viewer/render/table-view.d.ts +6 -0
  72. package/dist/viewer/render/table-view.d.ts.map +1 -1
  73. package/dist/viewer/state/autosave.svelte.d.ts +9 -0
  74. package/dist/viewer/state/autosave.svelte.d.ts.map +1 -1
  75. package/dist/viewer/state/create-viewer-state-collab.svelte.d.ts.map +1 -1
  76. package/dist/viewer/state/create-viewer-state-editor-ui.svelte.d.ts.map +1 -1
  77. package/dist/viewer/state/create-viewer-state-presentation.svelte.d.ts.map +1 -1
  78. package/dist/viewer/state/create-viewer-state.svelte.d.ts.map +1 -1
  79. package/dist/viewer/state/index.d.ts +2 -0
  80. package/dist/viewer/state/index.d.ts.map +1 -1
  81. package/dist/viewer/state/inspector-deck.d.ts +10 -2
  82. package/dist/viewer/state/inspector-deck.d.ts.map +1 -1
  83. package/dist/viewer/state/presentation-loader.svelte.d.ts +12 -1
  84. package/dist/viewer/state/presentation-loader.svelte.d.ts.map +1 -1
  85. package/dist/viewer/state/table-cell-selection-context.d.ts +20 -0
  86. package/dist/viewer/state/table-cell-selection-context.d.ts.map +1 -0
  87. package/dist/viewer/state/viewer-effects.svelte.d.ts +2 -1
  88. package/dist/viewer/state/viewer-effects.svelte.d.ts.map +1 -1
  89. package/dist/viewer/state/viewport-handlers.d.ts +2 -0
  90. package/dist/viewer/state/viewport-handlers.d.ts.map +1 -1
  91. package/dist/viewer/style/element-style.d.ts.map +1 -1
  92. package/package.json +2 -2
@@ -600,6 +600,15 @@ var n = {
600
600
  "pptx.field.dateTime": "Date/Time",
601
601
  "pptx.field.header": "Header",
602
602
  "pptx.field.footer": "Footer",
603
+ "pptx.font.group.theme": "Theme fonts",
604
+ "pptx.font.group.embedded": "Embedded in this presentation",
605
+ "pptx.font.group.custom": "Added this session",
606
+ "pptx.font.group.all": "All fonts",
607
+ "pptx.font.role.heading": "Headings",
608
+ "pptx.font.role.body": "Body",
609
+ "pptx.layoutGallery.current": "Current layout",
610
+ "pptx.layoutGallery.loading": "Loading layouts",
611
+ "pptx.layoutGallery.empty": "No layouts available",
603
612
  "pptx.master.master": "Master",
604
613
  "pptx.master.layout": "Layout",
605
614
  "pptx.master.noMasters": "No masters",
@@ -1212,6 +1221,8 @@ var n = {
1212
1221
  "pptx.equation.update": "Update",
1213
1222
  "pptx.fonts.embedDescription": "Embed fonts used in this presentation so they display correctly on other devices.",
1214
1223
  "pptx.fonts.embedFonts": "Embed Fonts",
1224
+ "pptx.fonts.embedKeepsExisting": "Turning this off removes the embedded font data when you save.",
1225
+ "pptx.fonts.embedUnavailable": "This presentation carries no embedded font data, and font files cannot be read from your system, so there is nothing to embed.",
1215
1226
  "pptx.fonts.embedded": "Embedded",
1216
1227
  "pptx.fonts.enableEmbedding": "Enable font embedding",
1217
1228
  "pptx.fonts.missingWarning": "{{count}} font(s) could not be found and will not be embedded.",
@@ -2167,6 +2178,9 @@ Item 3`,
2167
2178
  "pptx.arrange.duplicateSelection": "Duplicate selection",
2168
2179
  "pptx.arrange.groupLabel": "Arrange",
2169
2180
  "pptx.canvas.adjustShape": "Adjust shape",
2181
+ "pptx.canvas.connectorEndpointStart": "Connector start point",
2182
+ "pptx.canvas.connectorEndpointEnd": "Connector end point",
2183
+ "pptx.canvas.connectionSite": "Connection point",
2170
2184
  "pptx.canvas.guideTooltip": "Drag to move guide, double-click to remove",
2171
2185
  "pptx.customShows.none": "None",
2172
2186
  "pptx.customShows.noSlidesYet": "No slides in this show yet.",
@@ -2714,6 +2728,26 @@ Item 3`,
2714
2728
  "pptx.slideBackground.templateBackgroundsHeading": "Template Backgrounds",
2715
2729
  "pptx.slideDiff.changeCount": "{{count}} change(s)",
2716
2730
  "pptx.slides.ungroupedSlides": "Ungrouped Slides",
2731
+ "pptx.slideSize.orientation": "Orientation",
2732
+ "pptx.slideSize.landscape": "Landscape",
2733
+ "pptx.slideSize.portrait": "Portrait",
2734
+ "pptx.slideSize.customSize": "Custom",
2735
+ "pptx.slideSize.preset.screen4x3": "On-screen Show (4:3)",
2736
+ "pptx.slideSize.preset.screen16x9": "On-screen Show (16:9)",
2737
+ "pptx.slideSize.preset.screen16x10": "On-screen Show (16:10)",
2738
+ "pptx.slideSize.preset.widescreen": "Widescreen",
2739
+ "pptx.slideSize.preset.letter": "Letter Paper (8.5x11 in)",
2740
+ "pptx.slideSize.preset.ledger": "Ledger Paper (11x17 in)",
2741
+ "pptx.slideSize.preset.a3": "A3 Paper (297x420 mm)",
2742
+ "pptx.slideSize.preset.a4": "A4 Paper (210x297 mm)",
2743
+ "pptx.slideSize.preset.b4Iso": "B4 (ISO) Paper (250x353 mm)",
2744
+ "pptx.slideSize.preset.b5Iso": "B5 (ISO) Paper (176x250 mm)",
2745
+ "pptx.slideSize.preset.b4Jis": "B4 (JIS) Paper (257x364 mm)",
2746
+ "pptx.slideSize.preset.b5Jis": "B5 (JIS) Paper (182x257 mm)",
2747
+ "pptx.slideSize.preset.slide35mm": "35mm Slides",
2748
+ "pptx.slideSize.preset.overhead": "Overhead",
2749
+ "pptx.slideSize.preset.banner": "Banner",
2750
+ "pptx.slideSize.preset.hagakiCard": "Hagaki Card (100x148 mm)",
2717
2751
  "pptx.slideSize.presetFullHd": "Full HD (1920x1080)",
2718
2752
  "pptx.slideSize.presetPortrait": "Portrait 5:4 (1280x1024)",
2719
2753
  "pptx.slideSize.presetQhd": "QHD (2560x1440)",
@@ -2876,6 +2910,15 @@ Item 3`,
2876
2910
  "pptx.options.general.userName": "User name",
2877
2911
  "pptx.options.general.userInitials": "Initials",
2878
2912
  "pptx.options.general.appearance": "Viewer theme",
2913
+ "pptx.options.general.fonts": "Fonts",
2914
+ "pptx.options.general.fontsDescription": "Presentations sometimes use fonts your device does not have installed, and the viewer substitutes the closest available face. Adding the font file makes the deck render with the font it was written in.",
2915
+ "pptx.options.general.enableCustomFonts": "Let me add font files to this session",
2916
+ "pptx.options.general.enableCustomFontsInfo": "Added fonts are used for rendering and appear in the Home tab font list. They are held in memory only, are never uploaded or saved into the presentation, and are discarded when you reload the page.",
2917
+ "pptx.options.general.addFontFile": "Add font file",
2918
+ "pptx.options.general.customFontsAdded": "Fonts added this session",
2919
+ "pptx.options.general.customFontsEmpty": "No fonts added yet.",
2920
+ "pptx.options.general.customFontsDisabled": "Turn the setting above on to add a font file.",
2921
+ "pptx.options.general.customFontError": "That file could not be read as a font.",
2879
2922
  "pptx.options.general.startup": "Start up options",
2880
2923
  "pptx.options.general.showStartScreen": "Show the Start screen when this application starts",
2881
2924
  "pptx.options.proofing.label": "Proofing",
@@ -2909,10 +2952,6 @@ Item 3`,
2909
2952
  "pptx.options.save.autoRecoverInterval": "Save AutoRecover information every",
2910
2953
  "pptx.options.save.minutes": "minutes",
2911
2954
  "pptx.options.save.keepLastAutoRecovered": "Keep the last AutoRecovered version if I close without saving",
2912
- "pptx.options.save.fidelity": "Preserve fidelity when sharing this presentation",
2913
- "pptx.options.save.embedFonts": "Embed fonts in the file",
2914
- "pptx.options.save.embedFontsInfo": "Embedding fonts increases file size but keeps text identical on other devices.",
2915
- "pptx.options.save.embedAllCharacters": "Embed all characters (best for editing by other people)",
2916
2955
  "pptx.options.save.cache": "Cache Settings",
2917
2956
  "pptx.options.save.cacheRetentionDays": "Days to keep files in the local document cache",
2918
2957
  "pptx.options.save.days": "days",
@@ -3345,6 +3384,7 @@ Item 3`,
3345
3384
  "pptx.transitionPresets.cube": "Cube",
3346
3385
  "pptx.transitionPresets.flip": "Flip",
3347
3386
  "pptx.transitionPresets.rotate": "Rotate",
3387
+ "pptx.transitionPresets.box": "Box",
3348
3388
  "pptx.transitionPresets.orbit": "Orbit",
3349
3389
  "pptx.transitionPresets.fallOver": "Fall Over",
3350
3390
  "pptx.transitionPresets.drape": "Drape",
@@ -0,0 +1,39 @@
1
+ import { ChartPptxElement, PptxChartData, PptxElement } from 'pptx-viewer-core';
2
+ import { ChartPartRef } from 'pptx-viewer-shared';
3
+ /**
4
+ * chart-drag (Svelte): direct on-canvas chart editing, the Svelte port of Vue's
5
+ * `useChartCanvasInteraction` and React's `ChartElementView`.
6
+ *
7
+ * The state machine, the hit-target stylesheet and the highlight all live in
8
+ * `pptx-viewer-shared/render/chart-canvas-drag`; this module is only the runes
9
+ * wrapper, so a fix to the drag maths reaches all five bindings at once.
10
+ *
11
+ * Behaviour: press a bar / dot / slice to select it, drag it vertically to
12
+ * change its value (live local preview, committed ONCE on release so one drag
13
+ * is one undo step), Escape cancels. The projector always emits the
14
+ * `data-chart-*` hit-testing attributes; they stay pointer-transparent until
15
+ * the root carries `pptx-chart-interactive`, which is why thumbnails and the
16
+ * presentation stage cannot be dragged.
17
+ */
18
+ export declare class ChartDragController {
19
+ #private;
20
+ /** Chart data with the in-flight drag applied, or null when idle. */
21
+ preview: PptxChartData | null;
22
+ /** Formatted value for the floating mid-drag badge, or null when idle. */
23
+ label: string | null;
24
+ /** The mark the user last pressed, highlighted until selection moves away. */
25
+ selectedPart: ChartPartRef | null;
26
+ constructor(input: {
27
+ element: () => ChartPptxElement;
28
+ root: () => HTMLElement | null;
29
+ commit: (elementId: string, chartData: PptxChartData) => void;
30
+ });
31
+ /** The element to render: the committed one, or the drag preview over it. */
32
+ rendered(): PptxElement;
33
+ /** Re-apply the selected-mark highlight; the SVG is re-created every render. */
34
+ syncHighlight(): void;
35
+ onpointerdown: (event: PointerEvent) => void;
36
+ /** Release listeners when the chart unmounts mid-drag. */
37
+ destroy(): void;
38
+ }
39
+ //# sourceMappingURL=chart-drag.svelte.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-drag.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/chart-drag.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAUrF,OAAO,KAAK,EAAE,YAAY,EAAuB,MAAM,oBAAoB,CAAC;AAE5E;;;;;;;;;;;;;;GAcG;AACH,qBAAa,mBAAmB;;IAC/B,qEAAqE;IACrE,OAAO,uBAAsC;IAC7C,0EAA0E;IAC1E,KAAK,gBAA+B;IACpC,8EAA8E;IAC9E,YAAY,sBAAqC;gBAOrC,KAAK,EAAE;QAClB,OAAO,EAAE,MAAM,gBAAgB,CAAC;QAChC,IAAI,EAAE,MAAM,WAAW,GAAG,IAAI,CAAC;QAC/B,MAAM,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;KAC9D;IAOD,6EAA6E;IAC7E,QAAQ,IAAI,WAAW;IAKvB,gFAAgF;IAChF,aAAa,IAAI,IAAI;IAIrB,aAAa,GAAI,OAAO,YAAY,KAAG,IAAI,CAsCzC;IAEF,0DAA0D;IAC1D,OAAO,IAAI,IAAI;CA6Cf"}
@@ -1,8 +1,9 @@
1
1
  import { PptxElement } from 'pptx-viewer-core';
2
- import { ResizeHandleId, SnapLine } from 'pptx-viewer-shared';
2
+ import { ResizeHandleId, ShapeAdjustmentHandleDescriptor, SnapLine } from 'pptx-viewer-shared';
3
3
  import { ContextMenuCellTarget } from '../editor/context-menu-dispatch';
4
4
  import { EditorController } from '../editor/editor-controller.svelte';
5
5
  import { EditorMarqueeRect } from '../editor/editor-selection-gestures';
6
+ import { SelectionInteractivity } from '../editor/editor-selection-interactivity';
6
7
  import { EditorState } from '../editor/editor-state.svelte';
7
8
  import { OverlayBox } from '../editor/types';
8
9
  /**
@@ -25,8 +26,21 @@ export interface SelectionOverlayProps {
25
26
  selectionCount?: number;
26
27
  /** In-progress empty-canvas marquee rectangle. */
27
28
  marquee?: EditorMarqueeRect | null;
29
+ /**
30
+ * What the selection's authored `a:spLocks` still permit, plus the
31
+ * shape-adjustment descriptor. The overlay is handed an `OverlayBox`, never
32
+ * the element, so the element-level verdict is computed by the controller
33
+ * (`EditorController.interactivity`) and passed down as this prop; the
34
+ * component only maps it onto which chrome it draws.
35
+ *
36
+ * Defaults to fully interactive with no adjustment handle, which is what an
37
+ * unlocked non-round-rect resolves to.
38
+ */
39
+ interactivity?: SelectionInteractivity;
28
40
  onhandlepointerdown: (handle: ResizeHandleId, event: PointerEvent) => void;
29
41
  onrotatepointerdown: (event: PointerEvent) => void;
42
+ /** Pointer-down on the amber shape-adjustment diamond. */
43
+ onadjustpointerdown?: (event: PointerEvent, descriptor: ShapeAdjustmentHandleDescriptor) => void;
30
44
  }
31
45
  /** Props for the inline (double-click) text editing surface. */
32
46
  export interface InlineTextEditorProps {
@@ -1 +1 @@
1
- {"version":3,"file":"props-editing.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props-editing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AAEH,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACrC,wEAAwE;IACxE,GAAG,EAAE,UAAU,GAAG,IAAI,CAAC;IACvB,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd,mDAAmD;IACnD,SAAS,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC/B,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC,mBAAmB,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3E,mBAAmB,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;CACnD;AAED,gEAAgE;AAChE,MAAM,WAAW,qBAAqB;IACrC,sEAAsE;IACtE,OAAO,EAAE,WAAW,CAAC;IACrB,qDAAqD;IACrD,GAAG,EAAE,UAAU,CAAC;IAChB,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,0EAA0E;IAC1E,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,0DAA0D;IAC1D,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAgB;IAChC,0EAA0E;IAC1E,UAAU,EAAE,gBAAgB,CAAC;IAC7B,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACnC;AAED,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,IAAI,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpC,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACpB"}
1
+ {"version":3,"file":"props-editing.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props-editing.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { PptxElement, ShapeStyle } from 'pptx-viewer-core';
1
+ import { PptxChartData, PptxElement, ShapeStyle } from 'pptx-viewer-core';
2
2
  import { ElementAnimationState, RenderParagraph } from 'pptx-viewer-shared';
3
3
  /**
4
4
  * Prop contracts for the element-level renderers (the per-`PptxElement` views
@@ -58,6 +58,13 @@ export interface ElementRendererProps {
58
58
  ontablecellcommit?: (elementId: string, rowIndex: number, cellIndex: number, text: string) => void;
59
59
  onsmartartnodecommit?: (elementId: string, nodeId: string, text: string) => void;
60
60
  onsmartartnodefill?: (elementId: string, nodeId: string, fill: string) => void;
61
+ /**
62
+ * Commit a chart data point dragged on the canvas, with the whole updated
63
+ * `chartData`. Fired ONCE on pointer release (the drag is a local preview),
64
+ * so one drag is one undo step. Absent outside the editable canvas, which
65
+ * is what makes the chart marks inert on thumbnails and in presentation.
66
+ */
67
+ onchartpointcommit?: (elementId: string, chartData: PptxChartData) => void;
61
68
  }
62
69
  export interface TextBlockProps {
63
70
  paragraphs: RenderParagraph[];
@@ -1 +1 @@
1
- {"version":3,"file":"props-elements.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props-elements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjF;;;;;GAKG;AAEH,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/E;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAClE"}
1
+ {"version":3,"file":"props-elements.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props-elements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,KAAK,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEjF;;;;;GAKG;AAEH,oDAAoD;AACpD,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;;;;OAQG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC;IAC7B;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3E;AAED,MAAM,WAAW,cAAc;IAC9B,UAAU,EAAE,eAAe,EAAE,CAAC;IAC9B,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAClE"}
@@ -1,4 +1,4 @@
1
- import { PptxComment, PptxSlide } from 'pptx-viewer-core';
1
+ import { PptxChartData, PptxComment, PptxSlide } from 'pptx-viewer-core';
2
2
  import { CanvasSize } from 'pptx-viewer-shared';
3
3
  /**
4
4
  * Prop contracts for the slide surfaces: the pure `SlideStage` (used by the
@@ -35,6 +35,8 @@ export interface SlideStageProps {
35
35
  ontablecellcommit?: (elementId: string, rowIndex: number, cellIndex: number, text: string) => void;
36
36
  onsmartartnodecommit?: (elementId: string, nodeId: string, text: string) => void;
37
37
  onsmartartnodefill?: (elementId: string, nodeId: string, fill: string) => void;
38
+ /** See `ElementRendererProps.onchartpointcommit`. */
39
+ onchartpointcommit?: (elementId: string, chartData: PptxChartData) => void;
38
40
  /**
39
41
  * Comments drawn as numbered marker dots INSIDE the stage (the
40
42
  * `aria-roledescription="slide"` region, the framework-neutral e2e hook).
@@ -59,6 +61,8 @@ export interface SlideCanvasProps {
59
61
  ontablecellcommit?: (elementId: string, rowIndex: number, cellIndex: number, text: string) => void;
60
62
  onsmartartnodecommit?: (elementId: string, nodeId: string, text: string) => void;
61
63
  onsmartartnodefill?: (elementId: string, nodeId: string, fill: string) => void;
64
+ /** See `ElementRendererProps.onchartpointcommit`. */
65
+ onchartpointcommit?: (elementId: string, chartData: PptxChartData) => void;
62
66
  /** Passed through to `SlideStage`; see {@link SlideStageProps.comments}. */
63
67
  comments?: readonly PptxComment[];
64
68
  /** Passed through to `SlideStage`; see {@link SlideStageProps.oncommentmarkerclick}. */
@@ -1 +1 @@
1
- {"version":3,"file":"props-stage.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props-stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;GAMG;AAEH,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAClC,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAClC,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,gHAAgH;IAChH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,QAAQ,EAAE,OAAO,CAAC;CACpC"}
1
+ {"version":3,"file":"props-stage.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/props-stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC9E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD;;;;;;GAMG;AAEH,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;;;;;OAQG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3E;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAClC,2EAA2E;IAC3E,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,WAAW,gBAAgB;IAChC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,+EAA+E;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yGAAyG;IACzG,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,iBAAiB,CAAC,EAAE,CACnB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,KACR,IAAI,CAAC;IACV,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjF,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/E,qDAAqD;IACrD,kBAAkB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3E,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,SAAS,WAAW,EAAE,CAAC;IAClC,wFAAwF;IACxF,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,gHAAgH;IAChH,aAAa,CAAC,EAAE,CAAC,EAAE,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACpD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;IACnD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC9C,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACjD,sFAAsF;IACtF,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAC3C;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sEAAsE;IACtE,eAAe,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,OAAO,QAAQ,EAAE,OAAO,CAAC;CACpC"}
@@ -1,10 +1,17 @@
1
- import { PptxTransitionType } from 'pptx-viewer-core';
1
+ import { RibbonTransitionPreset } from 'pptx-viewer-shared';
2
+ /**
3
+ * The Transitions tab's gallery, re-exported from `pptx-viewer-shared`.
4
+ *
5
+ * The list itself used to be a hand-copied array per binding, which is exactly
6
+ * how five galleries drift apart entry by entry. It now lives in
7
+ * `render/ribbon-transitions`; this module survives only so the existing
8
+ * `TRANSITION_PRESETS` / `DEFAULT_TRANSITION_DURATION_SEC` importers keep
9
+ * resolving, and must never grow a second source of truth.
10
+ */
11
+ /** @deprecated Use `RibbonTransitionPreset` from `pptx-viewer-shared`. */
12
+ export type TransitionPreset = RibbonTransitionPreset;
2
13
  /** Transition presets surfaced in the gallery (matches the `pptx.ribbon.transition.*` i18n keys). */
3
- export interface TransitionPreset {
4
- type: PptxTransitionType;
5
- labelKey: string;
6
- }
7
- export declare const TRANSITION_PRESETS: readonly TransitionPreset[];
14
+ export declare const TRANSITION_PRESETS: readonly RibbonTransitionPreset[];
8
15
  /** Default duration (seconds) seeded into the Transitions tab's duration field. */
9
16
  export declare const DEFAULT_TRANSITION_DURATION_SEC = 0.7;
10
17
  //# sourceMappingURL=transition-presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transition-presets.d.ts","sourceRoot":"","sources":["../../../../../src/viewer/components/ribbon/transitions/transition-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,qGAAqG;AACrG,MAAM,WAAW,gBAAgB;IAChC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,kBAAkB,EAAE,SAAS,gBAAgB,EAUzD,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,+BAA+B,MAAM,CAAC"}
1
+ {"version":3,"file":"transition-presets.d.ts","sourceRoot":"","sources":["../../../../../src/viewer/components/ribbon/transitions/transition-presets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAMjE;;;;;;;;GAQG;AAEH,0EAA0E;AAC1E,MAAM,MAAM,gBAAgB,GAAG,sBAAsB,CAAC;AAEtD,qGAAqG;AACrG,eAAO,MAAM,kBAAkB,EAAE,SAAS,sBAAsB,EAA8B,CAAC;AAE/F,mFAAmF;AACnF,eAAO,MAAM,+BAA+B,MAAyC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { PptxChartData } from 'pptx-viewer-core';
1
2
  import { EditorState } from '../editor/editor-state.svelte';
2
3
  /**
3
4
  * On-canvas edit commits (table cell text, SmartArt node text/fill) routed from
@@ -8,11 +9,22 @@ import { EditorState } from '../editor/editor-state.svelte';
8
9
  * module rather than an SFC: the SFC only needs to know that editing is active,
9
10
  * not how a SmartArt fill patch is shaped. Each reads `editor.activeElements`
10
11
  * at call time, so the returned closures stay correct as the deck changes.
12
+ *
13
+ * Both SmartArt commits run the result through `reflowSmartArtData`, as React
14
+ * does: a node-style change clears the cached `dsp` drawing, and without the
15
+ * reflow the diagram silently dropped to the family approximation. The cached
16
+ * drawing still wins whenever it survives the edit (a text edit patches it in
17
+ * place), so the precedence between the two render paths is unchanged.
11
18
  */
12
19
  export interface EditCommitHandlers {
13
20
  commitTableCell(id: string, rowIndex: number, cellIndex: number, text: string): void;
14
21
  commitSmartArtNode(id: string, nodeId: string, text: string): void;
15
22
  commitSmartArtFill(id: string, nodeId: string, fill: string): void;
23
+ /**
24
+ * Commit a data point dragged on the canvas. Called ONCE on pointer release
25
+ * (the drag itself is a local preview), so one drag is one undo step.
26
+ */
27
+ commitChartPoint(id: string, chartData: PptxChartData): void;
16
28
  }
17
29
  export declare function createEditCommits(editor: EditorState): EditCommitHandlers;
18
30
  //# sourceMappingURL=viewer-body-commits.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-body-commits.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/viewer-body-commits.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,WAAW,kBAAkB;IAClC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACrF,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACnE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CAmCzE"}
1
+ {"version":3,"file":"viewer-body-commits.d.ts","sourceRoot":"","sources":["../../../src/viewer/components/viewer-body-commits.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,kBAAkB;IAClC,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACrF,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACnE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;CAC7D;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB,CA6CzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-menu-dispatch.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/context-menu-dispatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYjF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;;;;;;GAiBG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpC,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAYD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,qBAAqB,GAAG,IAAI,CAa5F;AAiBD,iEAAiE;AACjE,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAmB/F;AA2DD,qFAAqF;AACrF,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,oBAAoB,EACxB,IAAI,EAAE,uBAAuB,GAC3B,IAAI,CAmDN"}
1
+ {"version":3,"file":"context-menu-dispatch.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/context-menu-dispatch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAc5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;;;;;;;;;GAiBG;AAEH,+EAA+E;AAC/E,MAAM,WAAW,qBAAqB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,oEAAoE;AACpE,MAAM,WAAW,uBAAuB;IACvC,MAAM,EAAE,WAAW,CAAC;IACpB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpC,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAcD,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,qBAAqB,GAAG,IAAI,CAa5F;AAiBD,iEAAiE;AACjE,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,uBAAuB,GAAG,gBAAgB,EAAE,CAwB/F;AA+ED,qFAAqF;AACrF,wBAAgB,qBAAqB,CACpC,EAAE,EAAE,oBAAoB,EACxB,IAAI,EAAE,uBAAuB,GAC3B,IAAI,CAmDN"}
@@ -1 +1 @@
1
- {"version":3,"file":"editing-api.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editing-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQzD,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IAC1B,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,cAAc,IAAI,IAAI,CAAC;IACvB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CA6BhE"}
1
+ {"version":3,"file":"editing-api.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editing-api.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAQzD,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IAC1B,IAAI,IAAI,IAAI,CAAC;IACb,IAAI,IAAI,IAAI,CAAC;IACb,OAAO,IAAI,OAAO,CAAC;IACnB,OAAO,IAAI,OAAO,CAAC;IACnB,cAAc,IAAI,IAAI,CAAC;IACvB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnD,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACrE,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAgChE"}
@@ -0,0 +1,21 @@
1
+ import { PptxElement } from 'pptx-viewer-core';
2
+ import { ShapeAdjustmentHandleDescriptor } from 'pptx-viewer-shared';
3
+ export interface AdjustGestureDeps {
4
+ /** Stage scale (screen px per element px); the drag delta is un-scaled by it. */
5
+ getScale(): number;
6
+ /** First movement past the dead zone: push history, mark the interaction. */
7
+ onStart(): void;
8
+ /** Live frame: write the new adjustment map onto the element (no history). */
9
+ onPreview(elementId: string, adjustments: Record<string, number>): void;
10
+ /** Gesture finished. `moved` is false for a plain tap (no dead-zone exit). */
11
+ onEnd(moved: boolean): void;
12
+ }
13
+ export interface AdjustGestureController {
14
+ begin(element: PptxElement, descriptor: ShapeAdjustmentHandleDescriptor, event: PointerEvent): void;
15
+ isActive(): boolean;
16
+ dispose(): void;
17
+ }
18
+ /** `element` with `adjustments` merged over its existing `a:avLst` values. */
19
+ export declare function withShapeAdjustments(element: PptxElement, adjustments: Record<string, number>): PptxElement;
20
+ export declare function createAdjustGestureController(deps: AdjustGestureDeps): AdjustGestureController;
21
+ //# sourceMappingURL=editor-adjust-gesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-adjust-gesture.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-adjust-gesture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAA4B,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAwBpG,MAAM,WAAW,iBAAiB;IACjC,iFAAiF;IACjF,QAAQ,IAAI,MAAM,CAAC;IACnB,6EAA6E;IAC7E,OAAO,IAAI,IAAI,CAAC;IAChB,8EAA8E;IAC9E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IACxE,8EAA8E;IAC9E,KAAK,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,uBAAuB;IACvC,KAAK,CACJ,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,+BAA+B,EAC3C,KAAK,EAAE,YAAY,GACjB,IAAI,CAAC;IACR,QAAQ,IAAI,OAAO,CAAC;IACpB,OAAO,IAAI,IAAI,CAAC;CAChB;AAiBD,8EAA8E;AAC9E,wBAAgB,oBAAoB,CACnC,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,WAAW,CAGb;AAED,wBAAgB,6BAA6B,CAAC,IAAI,EAAE,iBAAiB,GAAG,uBAAuB,CAkE9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor-arrange-ops.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-arrange-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYpE;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,IAAI,EAAE,SAAS,GACb,SAAS,EAAE,GAAG,IAAI,CAepB;AAED,iGAAiG;AACjG,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,IAAI,EAAE,cAAc,GAClB,SAAS,EAAE,GAAG,IAAI,CAepB;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,IAAI,EAAE,YAAY,GAAG,UAAU,GAC7B,SAAS,EAAE,GAAG,IAAI,CAQpB;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,YAAY,UAAQ,GAClB;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYjD;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAC7B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,UAAQ,GAClB;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAapD"}
1
+ {"version":3,"file":"editor-arrange-ops.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-arrange-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAe,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAYpE;;;;;;;;GAQG;AAEH,yFAAyF;AACzF,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,IAAI,EAAE,SAAS,GACb,SAAS,EAAE,GAAG,IAAI,CAepB;AAED,iGAAiG;AACjG,wBAAgB,yBAAyB,CACxC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,IAAI,EAAE,cAAc,GAClB,SAAS,EAAE,GAAG,IAAI,CAepB;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAClC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,IAAI,EAAE,YAAY,GAAG,UAAU,GAC7B,SAAS,EAAE,GAAG,IAAI,CAQpB;AAED,oGAAoG;AACpG,wBAAgB,oBAAoB,CACnC,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,SAAS,MAAM,EAAE,EACtB,YAAY,UAAQ,GAClB;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAYjD;AAED,yGAAyG;AACzG,wBAAgB,cAAc,CAC7B,MAAM,EAAE,SAAS,SAAS,EAAE,EAC5B,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,MAAM,EACf,YAAY,UAAQ,GAClB;IAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,IAAI,CAepD"}
@@ -47,5 +47,10 @@ export interface EditorControllerDeps {
47
47
  toggleShortcuts?(): void;
48
48
  /** Close the cheat sheet on Escape; true when it was open (Escape consumed). */
49
49
  closeShortcuts?(): boolean;
50
+ /**
51
+ * Open or close the find bar (Ctrl/Cmd+F). Like the cheat sheet, the panel is
52
+ * shell-owned UI state, so the controller only signals the intent.
53
+ */
54
+ toggleFind?(): void;
50
55
  }
51
56
  //# sourceMappingURL=editor-controller-deps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-controller-deps.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACpC,QAAQ,IAAI,MAAM,CAAC;IACnB,UAAU,IAAI,MAAM,CAAC;IACrB,aAAa,IAAI,OAAO,CAAC;IACzB,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC;IAC/B,WAAW,IAAI,WAAW,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,SAAS,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,IAAI,OAAO,CAAC;IAC1B,cAAc,CAAC,IAAI,OAAO,CAAC;IAC3B,SAAS,CAAC,IAAI,SAAS;QAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D;;;OAGG;IACH,sBAAsB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C;;;;OAIG;IACH,cAAc,CAAC,IAAI,wBAAwB,GAAG,SAAS,CAAC;IACxD,4EAA4E;IAC5E,cAAc,CAAC,IAAI,SAAS,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,eAAe,CAAC,IAAI,IAAI,CAAC;IACzB,gFAAgF;IAChF,cAAc,CAAC,IAAI,OAAO,CAAC;CAC3B"}
1
+ {"version":3,"file":"editor-controller-deps.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller-deps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAErE,MAAM,WAAW,oBAAoB;IACpC,QAAQ,IAAI,MAAM,CAAC;IACnB,UAAU,IAAI,MAAM,CAAC;IACrB,aAAa,IAAI,OAAO,CAAC;IACzB,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC;IAC/B,WAAW,IAAI,WAAW,GAAG,IAAI,CAAC;IAClC;;;;OAIG;IACH,SAAS,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C;;;;;OAKG;IACH,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC/E,aAAa,CAAC,IAAI,OAAO,CAAC;IAC1B,cAAc,CAAC,IAAI,OAAO,CAAC;IAC3B,SAAS,CAAC,IAAI,SAAS;QAAE,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D;;;OAGG;IACH,sBAAsB,CAAC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9C;;;;OAIG;IACH,cAAc,CAAC,IAAI,wBAAwB,GAAG,SAAS,CAAC;IACxD,4EAA4E;IAC5E,cAAc,CAAC,IAAI,SAAS,GAAG,SAAS,CAAC;IACzC;;;OAGG;IACH,eAAe,CAAC,IAAI,IAAI,CAAC;IACzB,gFAAgF;IAChF,cAAc,CAAC,IAAI,OAAO,CAAC;IAC3B;;;OAGG;IACH,UAAU,CAAC,IAAI,IAAI,CAAC;CACpB"}
@@ -1,5 +1,6 @@
1
1
  import { PptxElement } from 'pptx-viewer-core';
2
2
  import { SnapLine } from 'pptx-viewer-shared';
3
+ import { AdjustGestureController } from './editor-adjust-gesture';
3
4
  import { EditorControllerDeps } from './editor-controller-deps';
4
5
  import { GestureController } from './editor-gestures';
5
6
  import { InkGestureController } from './editor-ink-gesture';
@@ -24,8 +25,28 @@ export interface EditorControllerHost {
24
25
  /** The element currently open in the inline text editor, or null. */
25
26
  getEditingId(): string | null;
26
27
  }
28
+ /**
29
+ * Drag a shape and the connectors glued to it must follow, exactly as they do
30
+ * in PowerPoint. The endpoint math is the shared `connector-reroute` model (one
31
+ * copy for all five bindings); this only decides WHEN it runs: once, at gesture
32
+ * end, over the ids the gesture actually moved.
33
+ *
34
+ * Deliberately NOT `commitActiveElements` and deliberately no `pushHistory`:
35
+ * the gesture's own `onStart` already pushed one history entry, so recording a
36
+ * second here would make every drag of a connected shape take two undos.
37
+ */
38
+ export declare function rerouteConnectorsAfterGesture(host: EditorControllerHost, movedIds: Set<string>): void;
27
39
  /** Move / resize / rotate gestures, including snapping and history bracketing. */
28
40
  export declare function createTransformGestures(host: EditorControllerHost): GestureController;
41
+ /**
42
+ * The amber adjustment-diamond drag (round-rect corner radius).
43
+ *
44
+ * Bracketed exactly like the transform gestures: one `pushHistory` when the
45
+ * drag clears its dead zone, live frames straight onto the active elements
46
+ * (history-free, so a drag is not one undo step per frame), one `commitChange`
47
+ * at the end.
48
+ */
49
+ export declare function createAdjustGestures(host: EditorControllerHost): AdjustGestureController;
29
50
  /** Pen / highlighter / eraser stroke gestures. */
30
51
  export declare function createInkGestures(host: EditorControllerHost): InkGestureController;
31
52
  /** The editing keymap (delete / duplicate / nudge / clipboard / undo / group / ...). */
@@ -1 +1 @@
1
- {"version":3,"file":"editor-controller-wiring.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller-wiring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,4EAA4E;IAC5E,eAAe,IAAI,WAAW,EAAE,CAAC;IACjC,iEAAiE;IACjE,YAAY,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC/C,8DAA8D;IAC9D,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;IACjD,qEAAqE;IACrE,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;CAC9B;AAQD,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CA6BrF;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,CAoBlF;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAmC9F;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,oBAAoB,GACxB,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAmBrD"}
1
+ {"version":3,"file":"editor-controller-wiring.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller-wiring.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACpC,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,oBAAoB,CAAC;IAC3B,4EAA4E;IAC5E,eAAe,IAAI,WAAW,EAAE,CAAC;IACjC,iEAAiE;IACjE,YAAY,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,GAAG,IAAI,CAAC;IAC/C,8DAA8D;IAC9D,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,GAAG,IAAI,CAAC;IACjD,qEAAqE;IACrE,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;CAC9B;AAQD;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAC5C,IAAI,EAAE,oBAAoB,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GACnB,IAAI,CAUN;AAED,kFAAkF;AAClF,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,oBAAoB,GAAG,iBAAiB,CA8BrF;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,oBAAoB,GAAG,uBAAuB,CAwBxF;AAED,kDAAkD;AAClD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,oBAAoB,CAoBlF;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAoC9F;AAED,mEAAmE;AACnE,wBAAgB,uBAAuB,CACtC,IAAI,EAAE,oBAAoB,GACxB,UAAU,CAAC,OAAO,gCAAgC,CAAC,CA0BrD"}
@@ -1,7 +1,8 @@
1
1
  import { PptxElement } from 'pptx-viewer-core';
2
- import { ResizeHandleId, SnapLine } from 'pptx-viewer-shared';
2
+ import { ConnectorEndpointKind, ResizeHandleId, ShapeAdjustmentHandleDescriptor, SnapLine } from 'pptx-viewer-shared';
3
3
  import { EditorControllerDeps } from './editor-controller-deps';
4
4
  import { EditorMarqueeRect } from './editor-selection-gestures';
5
+ import { SelectionInteractivity } from './editor-selection-interactivity';
5
6
  import { EditorState } from './editor-state.svelte';
6
7
  export type { EditorControllerDeps } from './editor-controller-deps';
7
8
  export declare class EditorController {
@@ -10,7 +11,15 @@ export declare class EditorController {
10
11
  editingId: string | null;
11
12
  marquee: EditorMarqueeRect | null;
12
13
  constructor(editor: EditorState, deps: EditorControllerDeps);
14
+ /** The elements the pointer acts on (slide, or master/layout), for overlays. */
15
+ get activeElements(): PptxElement[];
13
16
  get overlayBox(): import('./types').OverlayBox | null;
17
+ /**
18
+ * Which selection chrome the authored `a:spLocks` still permit, plus the
19
+ * shape-adjustment descriptor. The overlay only ever sees an `OverlayBox`,
20
+ * so the element-level verdict is computed here and passed down as a prop.
21
+ */
22
+ get interactivity(): SelectionInteractivity;
14
23
  get editing(): boolean;
15
24
  get selectionCount(): number;
16
25
  get editingElement(): PptxElement | undefined;
@@ -23,6 +32,16 @@ export declare class EditorController {
23
32
  onStageContextMenu: (event: MouseEvent) => void;
24
33
  onHandlePointerDown: (handle: ResizeHandleId, event: PointerEvent) => void;
25
34
  onRotatePointerDown: (event: PointerEvent) => void;
35
+ onAdjustPointerDown: (event: PointerEvent, descriptor: ShapeAdjustmentHandleDescriptor) => void;
36
+ /** Live connector-endpoint drag position in SLIDE px, or null when idle. */
37
+ connectorEndpointDrag: {
38
+ kind: ConnectorEndpointKind;
39
+ x: number;
40
+ y: number;
41
+ } | null;
42
+ /** The selected connector, when exactly one connector is selected. */
43
+ get selectedConnector(): PptxElement | null;
44
+ onConnectorEndpointPointerDown: (kind: ConnectorEndpointKind, event: PointerEvent) => void;
26
45
  onKeyDown: (event: KeyboardEvent) => void;
27
46
  /** Open the inline text editor over `id` when the element carries text. */
28
47
  enterInlineEdit(id: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-controller.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAQnE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAWrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAIzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,qBAAa,gBAAgB;;IAQ5B,SAAS,sBAAmC;IAC5C,SAAS,gBAA+B;IACxC,OAAO,2BAA0C;gBAErC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB;IA6B3D,IAAI,UAAU,wCAKb;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,cAAc,IAAI,WAAW,GAAG,SAAS,CAI5C;IAED,gFAAgF;IAChF,gBAAgB,IAAI,OAAO;IAM3B,kBAAkB,GAAI,OAAO,YAAY,KAAG,IAAI,CA2C9C;IAEF,kBAAkB,GAAI,OAAO,YAAY,KAAG,IAAI,CAa9C;IAEF,eAAe,GAAI,OAAO,UAAU,KAAG,IAAI,CAkBzC;IAEF,yEAAyE;IACzE,kBAAkB,GAAI,OAAO,UAAU,KAAG,IAAI,CA2B5C;IAEF,mBAAmB,GAAI,QAAQ,cAAc,EAAE,OAAO,YAAY,KAAG,IAAI,CAQvE;IAEF,mBAAmB,GAAI,OAAO,YAAY,KAAG,IAAI,CAK/C;IAEF,SAAS,GAAI,OAAO,aAAa,KAAG,IAAI,CAEtC;IAEF,2EAA2E;IAC3E,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYjC;;;OAGG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7C,qEAAqE;IACrE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5C,wDAAwD;IACxD,WAAW,IAAI,IAAI;IAInB,sDAAsD;IACtD,OAAO,IAAI,IAAI;CAKf"}
1
+ {"version":3,"file":"editor-controller.svelte.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-controller.svelte.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EACX,qBAAqB,EACrB,cAAc,EACd,+BAA+B,EAC/B,QAAQ,EACR,MAAM,oBAAoB,CAAC;AAa5B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAcrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAKzD,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAErE,qBAAa,gBAAgB;;IAU5B,SAAS,sBAAmC;IAC5C,SAAS,gBAA+B;IACxC,OAAO,2BAA0C;gBAErC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,oBAAoB;IAuC3D,gFAAgF;IAChF,IAAI,cAAc,IAAI,WAAW,EAAE,CAElC;IAED,IAAI,UAAU,wCAKb;IAED;;;;OAIG;IACH,IAAI,aAAa,IAAI,sBAAsB,CAE1C;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,cAAc,IAAI,MAAM,CAE3B;IAED,IAAI,cAAc,IAAI,WAAW,GAAG,SAAS,CAI5C;IAED,gFAAgF;IAChF,gBAAgB,IAAI,OAAO;IAM3B,kBAAkB,GAAI,OAAO,YAAY,KAAG,IAAI,CAuD9C;IAEF,kBAAkB,GAAI,OAAO,YAAY,KAAG,IAAI,CAa9C;IAEF,eAAe,GAAI,OAAO,UAAU,KAAG,IAAI,CAkBzC;IAEF,yEAAyE;IACzE,kBAAkB,GAAI,OAAO,UAAU,KAAG,IAAI,CA2B5C;IAGF,mBAAmB,GAAI,QAAQ,cAAc,EAAE,OAAO,YAAY,KAAG,IAAI,CACvB;IAElD,mBAAmB,GAAI,OAAO,YAAY,KAAG,IAAI,CAA6C;IAE9F,mBAAmB,GAAI,OAAO,YAAY,EAAE,YAAY,+BAA+B,KAAG,IAAI,CACxC;IAItD,4EAA4E;IAC5E,qBAAqB;cAAkB,qBAAqB;WAAK,MAAM;WAAK,MAAM;aAEhF;IAEF,sEAAsE;IACtE,IAAI,iBAAiB,IAAI,WAAW,GAAG,IAAI,CAM1C;IAYD,8BAA8B,GAAI,MAAM,qBAAqB,EAAE,OAAO,YAAY,KAAG,IAAI,CA2CvF;IAEF,SAAS,GAAI,OAAO,aAAa,KAAG,IAAI,CAEtC;IAEF,2EAA2E;IAC3E,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAYjC;;;OAGG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7C,qEAAqE;IACrE,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5C,wDAAwD;IACxD,WAAW,IAAI,IAAI;IAInB,sDAAsD;IACtD,OAAO,IAAI,IAAI;CAMf"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor-document-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-document-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,SAAS,EAAE;IACnB,YAAY,CAAC,EAAE,eAAe,EAAE;IAChC,WAAW,CAAC,EAAE,eAAe;IAC7B,aAAa,CAAC,EAAE,iBAAiB;IACjC,QAAQ,CAAC,EAAE,WAAW,EAAE;IACxB,cAAc,CAAC,EAAE,kBAAkB;IACnC,aAAa,CAAC,EAAE,iBAAiB;IACjC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE;IACvC,YAAY,CAAC,EAAE,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,0BAA0B;IACnD,WAAW,CAAC,EAAE,cAAc,EAAE;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,gBAAgB,GAAG,IAAI,CA6BtF;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAS3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAKrF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,GAAG,SAAS,GAClC,IAAI,CAuBN;AAED,0EAA0E;AAC1E,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAC1B,IAAI,CASN;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAChC,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,cAAuB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAYrB"}
1
+ {"version":3,"file":"editor-document-lifecycle.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-document-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;;;;;;GASG;AAEH;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,EAAE,SAAS,EAAE;IACnB,YAAY,CAAC,EAAE,eAAe,EAAE;IAChC,WAAW,CAAC,EAAE,eAAe;IAC7B,aAAa,CAAC,EAAE,iBAAiB;IACjC,QAAQ,CAAC,EAAE,WAAW,EAAE;IACxB,cAAc,CAAC,EAAE,kBAAkB;IACnC,aAAa,CAAC,EAAE,iBAAiB;IACjC,gBAAgB,CAAC,EAAE,kBAAkB,EAAE;IACvC,YAAY,CAAC,EAAE,gBAAgB;IAC/B,sBAAsB,CAAC,EAAE,0BAA0B;IACnD,WAAW,CAAC,EAAE,cAAc,EAAE;CAC9B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,gBAAgB,GAAG,IAAI,CA6BtF;AAED,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAS3D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAKrF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACpC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,cAAc,GAAG,SAAS,GAClC,IAAI,CAuBN;AAED,0EAA0E;AAC1E,wBAAgB,8BAA8B,CAC7C,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,kBAAkB,EACxB,GAAG,EAAE,iBAAiB,EACtB,MAAM,EAAE,kBAAkB,EAAE,GAC1B,IAAI,CASN;AAED,iFAAiF;AACjF,wBAAgB,0BAA0B,CACzC,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,SAAS,iBAAiB,EAAE,GAChC,IAAI,CAUN;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACpC,KAAK,EAAE,WAAW,EAClB,MAAM,GAAE,cAAuB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAkBrB"}
@@ -1,5 +1,5 @@
1
- import { PptxAppProperties, PptxCoreProperties, PptxCustomProperty, PptxHandoutMaster, PptxHeaderFooter, PptxHandler, PptxNotesMaster, PptxSaveFormat, PptxSection, PptxSlide, PptxSlideMaster, PptxPresentationProperties, PptxCustomShow, PptxTagCollection } from 'pptx-viewer-core';
2
- import { TemplateElementMap } from 'pptx-viewer-shared';
1
+ import { PptxAppProperties, PptxCoreProperties, PptxCustomProperty, PptxHandoutMaster, PptxHeaderFooter, PptxHandler, PptxNotesMaster, PptxSaveFormat, PptxSection, PptxSlide, PptxSlideMaster, PptxSlideSize, PptxPresentationProperties, PptxCustomShow, PptxTagCollection } from 'pptx-viewer-core';
2
+ import { DeckSaveIntent, TemplateElementMap } from 'pptx-viewer-shared';
3
3
  export interface EditorSnapshot {
4
4
  slides: PptxSlide[];
5
5
  templateElementsBySlideId: TemplateElementMap;
@@ -17,5 +17,23 @@ export interface EditorSnapshot {
17
17
  tagCollections: PptxTagCollection[];
18
18
  }
19
19
  export declare function createEditorSnapshot(snapshot: EditorSnapshot): EditorSnapshot;
20
- export declare function saveEditorDocument(handler: PptxHandler, snapshot: EditorSnapshot, format?: PptxSaveFormat): Promise<Uint8Array>;
20
+ /**
21
+ * Serialise a document snapshot to `.pptx` bytes.
22
+ *
23
+ * `saveIntent` carries the File > Info > Protect Presentation state: when it
24
+ * holds a password the deck goes through `saveEncrypted`, producing an OLE2
25
+ * compound file (`EncryptionInfo` + `EncryptedPackage`) instead of a plain ZIP.
26
+ * The choice is made by the shared `planDeckSave`, so all five bindings agree.
27
+ *
28
+ * `embedFonts` carries File > Fonts > "Embed fonts in the file" the same way:
29
+ * `false` strips `p:embeddedFontLst`, the `/font` relationships and the
30
+ * `.fntdata` parts, while `true` (core's default) re-embeds losslessly. Before
31
+ * this the toggle lived in `Ribbon.svelte`'s local `$state` and reached no save
32
+ * call at all, so the switch moved and the bytes were identical either way.
33
+ *
34
+ * `slideSize` carries Design > Slide Size the same way: omitting the option
35
+ * makes core re-emit the load-time `p:sldSz` verbatim, so a preset or
36
+ * orientation change made in the inspector never reached the written file.
37
+ */
38
+ export declare function saveEditorDocument(handler: PptxHandler, snapshot: EditorSnapshot, format?: PptxSaveFormat, saveIntent?: DeckSaveIntent | string | null, embedFonts?: boolean, slideSize?: PptxSlideSize): Promise<Uint8Array>;
21
39
  //# sourceMappingURL=editor-document-state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor-document-state.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-document-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAK7D,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;IACzC,aAAa,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,sBAAsB,EAAE,0BAA0B,CAAC;IACnD,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,aAAa,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,uEAAuE;IACvE,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAgB7E;AAED,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,cAAc,EACxB,MAAM,GAAE,cAAuB,GAC7B,OAAO,CAAC,UAAU,CAAC,CAkCrB"}
1
+ {"version":3,"file":"editor-document-state.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-document-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,eAAe,EACf,cAAc,EACd,WAAW,EACX,SAAS,EACT,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,cAAc,EACd,iBAAiB,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAS7E,MAAM,WAAW,cAAc;IAC9B,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,yBAAyB,EAAE,kBAAkB,CAAC;IAC9C,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,WAAW,EAAE,eAAe,GAAG,SAAS,CAAC;IACzC,aAAa,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,YAAY,EAAE,gBAAgB,CAAC;IAC/B,sBAAsB,EAAE,0BAA0B,CAAC;IACnD,WAAW,EAAE,cAAc,EAAE,CAAC;IAC9B,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,aAAa,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAC7C,gBAAgB,EAAE,kBAAkB,EAAE,CAAC;IACvC,uEAAuE;IACvE,cAAc,EAAE,iBAAiB,EAAE,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,cAAc,GAAG,cAAc,CAgB7E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACvC,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,cAAc,EACxB,MAAM,GAAE,cAAuB,EAC/B,UAAU,CAAC,EAAE,cAAc,GAAG,MAAM,GAAG,IAAI,EAC3C,UAAU,UAAO,EACjB,SAAS,CAAC,EAAE,aAAa,GACvB,OAAO,CAAC,UAAU,CAAC,CA+CrB"}
@@ -0,0 +1,42 @@
1
+ import { PptxElement } from 'pptx-viewer-core';
2
+ import { ResizeHandleId, ShapeAdjustmentHandleDescriptor } from 'pptx-viewer-shared';
3
+ import { AdjustGestureController } from './editor-adjust-gesture';
4
+ import { GestureController } from './editor-gestures';
5
+ import { SelectionInteractivity } from './editor-selection-interactivity';
6
+ /**
7
+ * The three pointer-downs that start on selection CHROME rather than on the
8
+ * slide: a resize handle, the rotate knob, and the amber shape-adjustment
9
+ * diamond.
10
+ *
11
+ * Each one re-checks the lock that governs it even though `SelectionOverlay`
12
+ * already hides the chrome it belongs to. Hiding a button is presentation; a
13
+ * synthetic pointerdown, an assistive click, or a frame rendered before the
14
+ * selection settled must all still be refused, and the guard belongs beside
15
+ * the gesture it guards rather than in the view.
16
+ *
17
+ * Extracted from `EditorController` so that class stays the event surface and
18
+ * both files stay within the repo's file-size budget.
19
+ *
20
+ * @module editor/editor-handle-handlers
21
+ */
22
+ export interface HandleGestureHost {
23
+ /** The primary selected element's id, or null. */
24
+ getSelectedId(): string | null;
25
+ /** The primary selected element, or undefined. */
26
+ getSelectedElement(): PptxElement | undefined;
27
+ /** The collective lock verdict + adjustment descriptor for the selection. */
28
+ getInteractivity(): SelectionInteractivity;
29
+ /** Single-element move / resize / rotate driver. */
30
+ gestures: GestureController;
31
+ /** Collective (multi-selection) driver; returns false for a selection of one. */
32
+ beginCollectiveTransform(kind: 'move' | 'resize', event: PointerEvent, handle?: ResizeHandleId): boolean;
33
+ /** Shape-adjustment (`a:avLst`) driver. */
34
+ adjust: AdjustGestureController;
35
+ }
36
+ export interface HandleHandlers {
37
+ onHandlePointerDown(handle: ResizeHandleId, event: PointerEvent): void;
38
+ onRotatePointerDown(event: PointerEvent): void;
39
+ onAdjustPointerDown(event: PointerEvent, descriptor: ShapeAdjustmentHandleDescriptor): void;
40
+ }
41
+ export declare function createHandleHandlers(host: HandleGestureHost): HandleHandlers;
42
+ //# sourceMappingURL=editor-handle-handlers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-handle-handlers.d.ts","sourceRoot":"","sources":["../../../src/viewer/editor/editor-handle-handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,+BAA+B,EAAE,MAAM,oBAAoB,CAAC;AAE1F,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAC;AAE/E;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,iBAAiB;IACjC,kDAAkD;IAClD,aAAa,IAAI,MAAM,GAAG,IAAI,CAAC;IAC/B,kDAAkD;IAClD,kBAAkB,IAAI,WAAW,GAAG,SAAS,CAAC;IAC9C,6EAA6E;IAC7E,gBAAgB,IAAI,sBAAsB,CAAC;IAC3C,oDAAoD;IACpD,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,iFAAiF;IACjF,wBAAwB,CACvB,IAAI,EAAE,MAAM,GAAG,QAAQ,EACvB,KAAK,EAAE,YAAY,EACnB,MAAM,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC;IACX,2CAA2C;IAC3C,MAAM,EAAE,uBAAuB,CAAC;CAChC;AAED,MAAM,WAAW,cAAc;IAC9B,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACvE,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IAC/C,mBAAmB,CAAC,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,+BAA+B,GAAG,IAAI,CAAC;CAC5F;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAkC5E"}