ooxml-ui 1.8.4 → 1.9.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 (87) hide show
  1. package/dist/{chunk-CTPXTRDT.js → chunk-PH7IBZOZ.js} +1 -1
  2. package/dist/docx/columns-dialog.d.ts +1 -1
  3. package/dist/docx/editor-core.d.ts +2 -0
  4. package/dist/docx/page-controller.d.ts +3 -2
  5. package/dist/docx/print-drag-scroll.d.ts +7 -0
  6. package/dist/docx/print-editing-geometry.d.ts +2 -0
  7. package/dist/docx/print-editing-index.d.ts +30 -0
  8. package/dist/docx/print-editing.d.ts +12 -0
  9. package/dist/docx/print-keyboard-navigation.d.ts +18 -0
  10. package/dist/docx/print-layout-view.d.ts +6 -10
  11. package/dist/docx/print-layout.d.ts +2 -2
  12. package/dist/docx/print-picture.d.ts +1 -0
  13. package/dist/docx.js +677 -20
  14. package/dist/index.js +2 -2
  15. package/dist/pptx/{chunk-KMNNTEGF.cjs → chunk-BFZDO2DY.cjs} +429 -194
  16. package/dist/pptx/{chunk-VRFNAF3Q.mjs → chunk-F7BBPOVJ.mjs} +9 -0
  17. package/dist/pptx/{chunk-STXGHV25.cjs → chunk-HWW2UVUP.cjs} +161 -4
  18. package/dist/pptx/{chunk-GHFJ46NS.mjs → chunk-KBCKCW5M.mjs} +371 -161
  19. package/dist/pptx/{chunk-NVYVHNPD.mjs → chunk-MKVKISFW.mjs} +1 -1
  20. package/dist/pptx/{chunk-NKHPE4PS.cjs → chunk-PKDISDDZ.cjs} +2 -2
  21. package/dist/pptx/{chunk-SM3CWDIQ.cjs → chunk-QVYJB7G2.cjs} +9 -0
  22. package/dist/pptx/chunk-SABFKDRM.mjs +286 -0
  23. package/dist/pptx/dom/elements/image.d.ts.map +1 -1
  24. package/dist/pptx/dom/index.cjs +221 -213
  25. package/dist/pptx/dom/index.mjs +24 -16
  26. package/dist/pptx/i18n/index.cjs +6 -6
  27. package/dist/pptx/i18n/index.mjs +1 -1
  28. package/dist/pptx/i18n/translations-en.d.ts.map +1 -1
  29. package/dist/pptx/index.cjs +2834 -2766
  30. package/dist/pptx/index.mjs +4 -4
  31. package/dist/pptx/render/find-replace.d.ts +1 -1
  32. package/dist/pptx/render/find-replace.d.ts.map +1 -1
  33. package/dist/pptx/render/format-painter.cjs +5 -5
  34. package/dist/pptx/render/format-painter.mjs +2 -2
  35. package/dist/pptx/render/index.d.ts +3 -0
  36. package/dist/pptx/render/index.d.ts.map +1 -1
  37. package/dist/pptx/render/inspector-helpers.cjs +12 -12
  38. package/dist/pptx/render/inspector-helpers.d.ts.map +1 -1
  39. package/dist/pptx/render/inspector-helpers.mjs +1 -1
  40. package/dist/pptx/render/inspector-number.d.ts +15 -0
  41. package/dist/pptx/render/inspector-number.d.ts.map +1 -0
  42. package/dist/pptx/render/picture-frame.d.ts +52 -0
  43. package/dist/pptx/render/picture-frame.d.ts.map +1 -0
  44. package/dist/pptx/render/ribbon-home-commands.d.ts +11 -2
  45. package/dist/pptx/render/ribbon-home-commands.d.ts.map +1 -1
  46. package/dist/pptx/render/share-session.d.ts.map +1 -1
  47. package/dist/pptx/render/slide-operations.d.ts +2 -1
  48. package/dist/pptx/render/slide-operations.d.ts.map +1 -1
  49. package/dist/pptx/render/slide-package-clipboard.d.ts +31 -0
  50. package/dist/pptx/render/slide-package-clipboard.d.ts.map +1 -0
  51. package/dist/pptx/render/slide-sorter-context-menu.d.ts +3 -5
  52. package/dist/pptx/render/slide-sorter-context-menu.d.ts.map +1 -1
  53. package/dist/pptx/render/slide-sorter-state.d.ts +8 -1
  54. package/dist/pptx/render/slide-sorter-state.d.ts.map +1 -1
  55. package/dist/pptx/render/text-advanced.d.ts.map +1 -1
  56. package/dist/pptx/render/text-style-scope.d.ts +41 -1
  57. package/dist/pptx/render/text-style-scope.d.ts.map +1 -1
  58. package/dist/pptx/render/text-style-update.d.ts.map +1 -1
  59. package/dist/pptx/web-components/index.d.ts +2 -0
  60. package/dist/pptx/web-components/index.d.ts.map +1 -1
  61. package/dist/pptx/web-components/slide-clipboard.d.ts +14 -0
  62. package/dist/pptx/web-components/slide-clipboard.d.ts.map +1 -0
  63. package/dist/teams.js +1 -1
  64. package/dist/visio/format-pane-fields.d.ts +2 -0
  65. package/dist/visio/page-setup-action.d.ts +1 -1
  66. package/dist/visio/page-setup-dialog-form.d.ts +1 -1
  67. package/dist/visio/ribbon-action.d.ts +1 -1
  68. package/dist/visio/viewer-accessibility.d.ts +17 -0
  69. package/dist/visio/viewer-insert-dialog.d.ts +2 -1
  70. package/dist/visio/viewer-review.d.ts +2 -0
  71. package/dist/visio.js +304 -14
  72. package/dist/xlsx/commands/pivots.d.ts +2 -0
  73. package/dist/xlsx/commands/sparklines.d.ts +2 -0
  74. package/dist/xlsx/dialogs/help-dialogs.d.ts +2 -2
  75. package/dist/xlsx/dialogs/page-header.d.ts +4 -0
  76. package/dist/xlsx/dialogs/page-setup-tabs.d.ts +6 -1
  77. package/dist/xlsx/dialogs/pivots.d.ts +2 -0
  78. package/dist/xlsx/dialogs/print-preview.d.ts +2 -0
  79. package/dist/xlsx/dialogs/sparklines.d.ts +4 -0
  80. package/dist/xlsx/print-cell.d.ts +4 -0
  81. package/dist/xlsx/print-header.d.ts +7 -0
  82. package/dist/xlsx/print-pages.d.ts +4 -0
  83. package/dist/xlsx/print.d.ts +4 -12
  84. package/dist/xlsx.js +1078 -287
  85. package/package.json +3 -3
  86. package/dist/pptx/chunk-VD7HRMTA.mjs +0 -137
  87. /package/dist/{chunk-SUHT5S2P.js → chunk-SKYBYVYH.js} +0 -0
@@ -1,5 +1,5 @@
1
1
  import { defineSmartArt } from './chunk-PXIYHFZ5.js';
2
- import { TEAMS_TAGS, registerTeams } from './chunk-SUHT5S2P.js';
2
+ import { TEAMS_TAGS, registerTeams } from './chunk-SKYBYVYH.js';
3
3
  import { installOfficeUiTheme } from './chunk-S6ZXU442.js';
4
4
  import { registerControls } from './chunk-O7APCA5N.js';
5
5
  import { definePresence } from './chunk-L7JV5FVE.js';
@@ -3,7 +3,7 @@ import type { FormatDialog } from './font-dialog.js';
3
3
  export interface ColumnsHost {
4
4
  section(): SectionProperties | undefined;
5
5
  canEdit(): boolean;
6
- apply(columns: SectionColumns): void;
6
+ apply(columns: SectionColumns, footnoteColumns?: number): void;
7
7
  restoreFocus(): void;
8
8
  }
9
9
  /** Current-section column settings; width edits adjust the adjacent column as Word does. */
@@ -8,6 +8,7 @@ import type { SearchPanelHandle } from './search-panel.js';
8
8
  import { CollaborationSession } from './collaboration-session.js';
9
9
  import type { EditorTheme, EditorThemeMode } from 'ooxml-core/docx/ui';
10
10
  import type { EditorLocale } from './localization.js';
11
+ import type { PrintEditingBridge } from './print-editing.js';
11
12
  import type { PrintLayoutController } from './print-layout-view.js';
12
13
  import type { ReviewDisplayMode } from './review-display.js';
13
14
  import type { ReviewController } from './review-controller.js';
@@ -32,6 +33,7 @@ export interface ShellParts {
32
33
  review?: ReviewController;
33
34
  chrome?: EditorChrome;
34
35
  printLayout?: PrintLayoutController;
36
+ printEditing?: PrintEditingBridge;
35
37
  navigator?: PageNavigator;
36
38
  headings?: HeadingNavigator;
37
39
  }
@@ -10,6 +10,7 @@ export interface PageControllerHost extends EditorHost {
10
10
  toolbar(): HTMLElement | undefined;
11
11
  statusBar(): StatusBar | undefined;
12
12
  printLayout(): PrintLayoutController | undefined;
13
+ printEditing?(active: boolean): void;
13
14
  refreshControls(): void;
14
15
  }
15
16
  /** Page setup, section breaks, zoom, Web/Print Layout and printing. */
@@ -29,7 +30,7 @@ export declare class PageController {
29
30
  /** Applies the Page Setup dialog to the current section as one undoable step. */
30
31
  applyPageSetupValues(values: PageSetupValues): void;
31
32
  /** Layout > More Columns, recorded as one undoable section edit. */
32
- applyColumns(columns: SectionProperties['columns']): void;
33
+ applyColumns(columns: SectionProperties['columns'], footnoteColumns?: number): void;
33
34
  /** Layout > Line Numbers options, recorded as one undoable section edit. */
34
35
  applyLineNumberSettings(settings: SectionProperties['lineNumberSettings']): void;
35
36
  /** Layout > Watermark: a text watermark in every header (or none), one undoable step. */
@@ -58,7 +59,7 @@ export declare class PageController {
58
59
  zoomTo(mode: ZoomFit): void;
59
60
  /** `sideBySide` lays Print Layout's pages out two across (View > Multiple Pages). */
60
61
  setZoom(percent: number, sideBySide?: boolean): void;
61
- /** Switches between the continuous editing surface and the paginated Print Layout render. */
62
+ /** Switches between continuous and paginated presentations of the existing editor. */
62
63
  setViewMode(mode: 'draft' | 'print'): void;
63
64
  /** Re-lays out Print Layout after a model change (debounced by the layout view). */
64
65
  relayout(): void;
@@ -0,0 +1,7 @@
1
+ export interface PrintDragScroll {
2
+ update(x: number, y: number): void;
3
+ stop(): void;
4
+ destroy(): void;
5
+ }
6
+ /** Scroll only the document viewport; each tick extends the original editor selection. */
7
+ export declare function createPrintDragScroll(viewport: HTMLElement, selectAt: (x: number, y: number) => void): PrintDragScroll;
@@ -0,0 +1,2 @@
1
+ export declare function glyphRect(element: HTMLElement, from: number, to?: number): DOMRect;
2
+ export declare function caretRect(line: HTMLElement, offset: number): DOMRect;
@@ -0,0 +1,30 @@
1
+ import type { Node as DocumentNode } from 'prosemirror-model';
2
+ export interface PrintParagraphPosition {
3
+ id: string;
4
+ start: number;
5
+ end: number;
6
+ }
7
+ /** Index immutable editor documents and immutable page render roots independently. */
8
+ export declare class PrintEditingIndex {
9
+ private readonly pages;
10
+ private doc;
11
+ private root;
12
+ private paragraphs;
13
+ private positions;
14
+ private byBlock;
15
+ private lines;
16
+ private renderedLines;
17
+ private pageLines;
18
+ private linePositions;
19
+ constructor(pages: HTMLElement);
20
+ update(doc: DocumentNode): void;
21
+ position(id: string, offset: number): number | undefined;
22
+ private firstEndingAtOrAfter;
23
+ between(from: number, to: number): Iterable<PrintParagraphPosition>;
24
+ at(pos: number): PrintParagraphPosition | undefined;
25
+ block(id: string): readonly HTMLElement[];
26
+ adjacent(line: HTMLElement, direction: number): HTMLElement;
27
+ pageStep(line: HTMLElement, direction: number): HTMLElement;
28
+ nearest(x: number, y: number): HTMLElement | undefined;
29
+ clear(): void;
30
+ }
@@ -0,0 +1,12 @@
1
+ import type { EditorView } from 'prosemirror-view';
2
+ export interface PrintEditingBridge {
3
+ setActive(active: boolean): void;
4
+ refresh(): void;
5
+ destroy(): void;
6
+ select(blockId: string, offset: number, extend?: boolean): boolean;
7
+ }
8
+ /** Keep native ProseMirror input, composition, clipboard and history behind the page projection. */
9
+ export declare function createPrintEditingBridge(pages: HTMLElement, paper: HTMLElement, getView: () => EditorView | undefined, resolveHit: (target: Element, clientX: number) => {
10
+ blockId: string;
11
+ offset: number;
12
+ } | null, scrollContainer?: HTMLElement): PrintEditingBridge;
@@ -0,0 +1,18 @@
1
+ import type { EditorView } from 'prosemirror-view';
2
+ import type { PrintEditingIndex } from './print-editing-index.js';
3
+ interface Options {
4
+ active(): boolean;
5
+ getView(): EditorView | undefined;
6
+ index: PrintEditingIndex;
7
+ position(id: string, offset: number): number | undefined;
8
+ select(id: string, offset: number, extend?: boolean): boolean;
9
+ resolveHit(target: Element, x: number): {
10
+ blockId: string;
11
+ offset: number;
12
+ } | null;
13
+ scrollContainer: HTMLElement;
14
+ preferredPage(): string | undefined;
15
+ setPreferredPage(page: string | undefined): void;
16
+ }
17
+ export declare function printKeyboardNavigation(options: Options): (event: KeyboardEvent) => void;
18
+ export {};
@@ -2,19 +2,15 @@ import type { DocumentModel } from 'ooxml-core/docx';
2
2
  import { type ReviewDisplayMode } from 'ooxml-core/docx';
3
3
  import { type LayoutResult } from 'ooxml-core/docx/layout';
4
4
  import { type PictureUrl } from './print-layout.js';
5
- /**
6
- * Print Layout view: a read-only, paginated render kept in sync with the
7
- * editor model on a debounced relayout, rather than a second live editing
8
- * surface. Clicking a line asks the caller to move the real ProseMirror
9
- * cursor to the nearest editor position (see `print-layout.ts`'s
10
- * `resolveClick`), which is the chosen approach for keeping a single
11
- * source of truth for editing while still allowing click-to-place-cursor
12
- * from the paginated view.
13
- */
5
+ /** Paginated document projection, with native editing supplied by the ProseMirror input bridge. */
14
6
  export interface PrintLayoutController {
15
7
  /** Mount this in the DOM alongside the continuous editing surface. */
16
8
  element: HTMLElement;
17
9
  setActive(active: boolean): void;
10
+ resolveClick(target: Element, clientX: number): {
11
+ blockId: string;
12
+ offset: number;
13
+ } | null;
18
14
  scheduleRelayout(model: DocumentModel): void;
19
15
  /** Recomputes which page is most visible; call on the scroll container's `scroll` event. */
20
16
  refreshCurrentPage(): void;
@@ -34,6 +30,6 @@ export interface PrintLayoutController {
34
30
  print(model: DocumentModel, note: (message: string) => void): void;
35
31
  destroy(): void;
36
32
  }
37
- export declare function createPrintLayoutController(scrollContainer: HTMLElement, onRequestCursor: (blockId: string, offset: number) => void, pictureUrl?: PictureUrl, onLayout?: () => void, getReviewMode?: () => ReviewDisplayMode): PrintLayoutController;
33
+ export declare function createPrintLayoutController(scrollContainer: HTMLElement, onRequestCursor: (blockId: string, offset: number) => void, pictureUrl?: PictureUrl, onLayout?: () => void, getReviewMode?: () => ReviewDisplayMode, isEditing?: () => boolean): PrintLayoutController;
38
34
  /** `@page`-sized print path: prints the current Print Layout render as-is. */
39
35
  export declare function printLayoutResult(result: LayoutResult | null, note: (message: string) => void): void;
@@ -12,8 +12,8 @@ export interface PrintLayoutHandle {
12
12
  * Best-effort click-to-cursor mapping: given the line element under a
13
13
  * click and its horizontal offset, measures the displayed text fragments
14
14
  * and maps to a source boundary. Falls back to proportional mapping for
15
- * older layout results. Print Layout remains a read-only render synced
16
- * from the editor, not a second editing surface.
15
+ * older layout results. The editing bridge uses these source boundaries to
16
+ * move the existing ProseMirror selection.
17
17
  */
18
18
  resolveClick(target: Element, clientX: number): {
19
19
  blockId: string;
@@ -9,4 +9,5 @@ export declare function pictureElement(object: {
9
9
  svg?: string;
10
10
  label: string;
11
11
  };
12
+ noteSeparator?: 'separator' | 'continuationSeparator';
12
13
  }, pictureUrl: PictureUrl | undefined): HTMLElement;