@docen/docx 0.3.3 → 0.3.4
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/dist/blockquote-DY80QC06.d.mts +21 -0
- package/dist/bullet-list-DF60pnSL.d.mts +12 -0
- package/dist/converters/docx.d.mts +1 -1
- package/dist/converters/docx.mjs +121 -24
- package/dist/converters/html.d.mts +1 -1
- package/dist/converters/html.mjs +1 -1
- package/dist/converters/markdown.d.mts +1 -1
- package/dist/converters/markdown.mjs +1 -1
- package/dist/converters/patch.d.mts +1 -1
- package/dist/converters/prepare.d.mts +1 -1
- package/dist/converters/prepare.mjs +6 -9
- package/dist/{core-B8ba_FNi.mjs → core-BnF8XhVE.mjs} +180 -31
- package/dist/core-DC0_-WcE.d.mts +387 -0
- package/dist/core.d.mts +1 -1
- package/dist/core.mjs +1 -1
- package/dist/details-Dd5MqqmR.d.mts +17 -0
- package/dist/editor.d.mts +1 -1
- package/dist/editor.mjs +1 -1
- package/dist/extensions/blockquote.d.mts +2 -22
- package/dist/extensions/bullet-list.d.mts +2 -0
- package/dist/extensions/bullet-list.mjs +21 -0
- package/dist/extensions/code-block.d.mts +1 -18
- package/dist/extensions/column-break.d.mts +1 -30
- package/dist/extensions/column-break.mjs +1 -1
- package/dist/extensions/details.d.mts +2 -18
- package/dist/extensions/document.mjs +2 -1
- package/dist/extensions/extensions.d.mts +10 -6
- package/dist/extensions/extensions.mjs +9 -4
- package/dist/extensions/formatting-marks.d.mts +1 -37
- package/dist/extensions/formatting-marks.mjs +1 -1
- package/dist/extensions/image.d.mts +1 -1
- package/dist/extensions/image.mjs +20 -4
- package/dist/extensions/index.d.mts +15 -2
- package/dist/extensions/index.mjs +17 -2
- package/dist/extensions/link.d.mts +2 -0
- package/dist/extensions/link.mjs +56 -0
- package/dist/extensions/mention.d.mts +2 -24
- package/dist/extensions/ordered-list.d.mts +1 -24
- package/dist/extensions/ordered-list.mjs +10 -1
- package/dist/extensions/page-break.d.mts +1 -1
- package/dist/extensions/page-break.mjs +1 -1
- package/dist/extensions/paragraph.mjs +13 -0
- package/dist/extensions/passthrough.d.mts +2 -2
- package/dist/extensions/passthrough.mjs +2 -2
- package/dist/extensions/scroll.d.mts +2 -0
- package/dist/extensions/scroll.mjs +33 -0
- package/dist/extensions/section-break.d.mts +1 -43
- package/dist/extensions/section-break.mjs +1 -1
- package/dist/extensions/tab.d.mts +2 -0
- package/dist/extensions/tab.mjs +2 -0
- package/dist/extensions/task-item.d.mts +2 -26
- package/dist/extensions/tiptap.d.mts +1 -1
- package/dist/extensions/toc-field.d.mts +1 -1
- package/dist/extensions/toc-field.mjs +1 -1
- package/dist/extensions/wpg-group.d.mts +2 -2
- package/dist/extensions/wpg-group.mjs +2 -2
- package/dist/extensions/wps-shape.d.mts +1 -1
- package/dist/extensions/wps-shape.mjs +1 -1
- package/dist/index.d.mts +31 -7
- package/dist/index.mjs +17 -2
- package/dist/link-BawPjQZR.d.mts +6 -0
- package/dist/mention-BGLzLVYw.d.mts +23 -0
- package/dist/ordered-list-DFAe-YEV.d.mts +25 -0
- package/dist/scroll-ZNeThJsJ.d.mts +18 -0
- package/dist/task-item-B0ntvQ1Y.d.mts +25 -0
- package/dist/{tiptap-pZsNPsvV.d.mts → tiptap-BKqn41uT.d.mts} +2 -2
- package/package.json +3 -3
- package/dist/core-DRaLI8nd.d.mts +0 -203
|
@@ -1,38 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
//#region src/extensions/formatting-marks.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* FormattingMarks — paints the non-printing paragraph mark via ProseMirror
|
|
6
|
-
* widget decorations.
|
|
7
|
-
*
|
|
8
|
-
* CSS `p::after { content: "…" }` does NOT work on a ProseMirror-managed
|
|
9
|
-
* paragraph: the view owns the DOM and the trailing-break kludge pushes the
|
|
10
|
-
* pseudo-element off the visible line, so the mark never appears (verified).
|
|
11
|
-
* Marijn Haverbeke endorses widget decorations for exactly this use case
|
|
12
|
-
* (https://discuss.prosemirror.net/t/1442). Each textblock gets a widget at its
|
|
13
|
-
* closing position (inside the textblock, so it stays on the content's line)
|
|
14
|
-
* holding a non-editable `<span class="docen-para-mark">`. `side: 1` keeps the
|
|
15
|
-
* mark to the right of a cursor resting at the paragraph end (the cursor always
|
|
16
|
-
* precedes its own paragraph mark).
|
|
17
|
-
*
|
|
18
|
-
* Glyph: a down-then-left return arrow (↲, U+21B2 "downwards arrow with tip
|
|
19
|
-
* leftwards" — the Enter-key glyph). Word/WPS use the pilcrow ¶ for paragraph
|
|
20
|
-
* marks; that down-then-left arrow is Word's line-break glyph — adopted here as
|
|
21
|
-
* the paragraph mark per the project's visual preference.
|
|
22
|
-
*
|
|
23
|
-
* Performance: the widget set is cached in plugin state and rebuilt only on a
|
|
24
|
-
* doc change or a marks toggle — NOT on every selectionUpdate. Without the
|
|
25
|
-
* cache, each caret move / selection re-traverses the whole document (one
|
|
26
|
-
* widget per textblock) and rebuilds the set, which costs 200ms+ on 1000-page
|
|
27
|
-
* documents. Pure selection transactions now reuse the cached set in O(1).
|
|
28
|
-
*/
|
|
29
|
-
declare const FormattingMarks: Extension<any, any>;
|
|
30
|
-
declare module "@tiptap/core" {
|
|
31
|
-
interface Commands<ReturnType> {
|
|
32
|
-
formattingMarks: {
|
|
33
|
-
/** Toggle the non-printing paragraph marks on or off. */toggleFormattingMarks: () => ReturnType;
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
//#endregion
|
|
1
|
+
import { O as FormattingMarks } from "../core-DC0_-WcE.mjs";
|
|
38
2
|
export { FormattingMarks };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S as FormattingMarks } from "../core-BnF8XhVE.mjs";
|
|
2
2
|
export { FormattingMarks };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { A as Image, M as renderCropAttrs, N as renderDocx, j as parseDocx, k as CropRenderContext } from "../core-DC0_-WcE.mjs";
|
|
2
2
|
export { CropRenderContext, Image, parseDocx, renderCropAttrs, renderDocx };
|
|
@@ -54,8 +54,8 @@ function renderDocx(node) {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
if (!imageOpts.data) return null;
|
|
57
|
-
const width = attrs.width
|
|
58
|
-
const height = attrs.height
|
|
57
|
+
const width = Number.isFinite(attrs.width) ? attrs.width : 600;
|
|
58
|
+
const height = Number.isFinite(attrs.height) ? attrs.height : 400;
|
|
59
59
|
const transformation = {
|
|
60
60
|
width: `${width}px`,
|
|
61
61
|
height: `${height}px`
|
|
@@ -164,6 +164,18 @@ function renderImageStyles(attrs) {
|
|
|
164
164
|
function isVectorImage(src) {
|
|
165
165
|
return typeof src === "string" && /^data:image\/(?:x-)?(?:emf|wmf)/i.test(src);
|
|
166
166
|
}
|
|
167
|
+
/** Remote http(s) images are lazy-loaded + async-decoded in renderHTML; data
|
|
168
|
+
* URLs (the imported-DOCX majority) have no network to defer, so they stay
|
|
169
|
+
* eager — and their load event, awaited by the editor's cap path, is not
|
|
170
|
+
* delayed by `loading="lazy"`. */
|
|
171
|
+
function isRemoteImage(src) {
|
|
172
|
+
return typeof src === "string" && /^https?:/.test(src);
|
|
173
|
+
}
|
|
174
|
+
/** Render attrs applied only to remote images (see isRemoteImage). */
|
|
175
|
+
const REMOTE_IMG_ATTRS = {
|
|
176
|
+
loading: "lazy",
|
|
177
|
+
decoding: "async"
|
|
178
|
+
};
|
|
167
179
|
/**
|
|
168
180
|
* Stamp the nested office-open attrs onto an HTML attribute map as JSON
|
|
169
181
|
* data-* pairs. Shared by the cropped-div and plain-img render branches so the
|
|
@@ -315,7 +327,8 @@ const Image = Image$1.extend({
|
|
|
315
327
|
if (floatAnchor) boxAttrs["data-float-anchor"] = floatAnchor;
|
|
316
328
|
const imgAttrs = {
|
|
317
329
|
src: attrs.src,
|
|
318
|
-
style: crop.style
|
|
330
|
+
style: crop.style,
|
|
331
|
+
...isRemoteImage(attrs.src) ? REMOTE_IMG_ATTRS : {}
|
|
319
332
|
};
|
|
320
333
|
if (attrs.alt) imgAttrs.alt = attrs.alt;
|
|
321
334
|
if (attrs.title) imgAttrs.title = attrs.title;
|
|
@@ -325,7 +338,10 @@ const Image = Image$1.extend({
|
|
|
325
338
|
["img", imgAttrs]
|
|
326
339
|
];
|
|
327
340
|
}
|
|
328
|
-
const htmlAttrs = {
|
|
341
|
+
const htmlAttrs = {
|
|
342
|
+
...HTMLAttributes,
|
|
343
|
+
...isRemoteImage(attrs.src) ? REMOTE_IMG_ATTRS : {}
|
|
344
|
+
};
|
|
329
345
|
const styles = renderImageStyles(attrs);
|
|
330
346
|
if (styles.length > 0) htmlAttrs.style = styles.join(";");
|
|
331
347
|
attachRawAttrs(htmlAttrs, attrs);
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
+
import { A as TaskItem, F as Underline, M as Text, N as TextAlign, T as Superscript, a as CodeBlockLowlight, b as Mention, c as DetailsSummary, d as HardBreak, g as Italic, i as Code, j as TaskList, m as HorizontalRule, n as Bold, o as Details, p as Highlight, s as DetailsContent, t as Blockquote, u as Emoji, v as ListItem, w as Subscript, y as Mathematics } from "../tiptap-BKqn41uT.mjs";
|
|
1
2
|
import { n as createDocument, t as Document } from "../document-Cws7XTYL.mjs";
|
|
2
|
-
import {
|
|
3
|
+
import { t as Paragraph } from "../paragraph-D8mpHo_o.mjs";
|
|
4
|
+
import { t as Heading } from "../heading-BvqBD2zX.mjs";
|
|
5
|
+
import { t as BulletList } from "../bullet-list-DF60pnSL.mjs";
|
|
6
|
+
import { r as OrderedList } from "../ordered-list-DFAe-YEV.mjs";
|
|
7
|
+
import { A as Image, D as PageBreak, E as wpsShapeStyles, F as ColumnBreak, I as CodeBlock, O as FormattingMarks, P as SectionBreak, _ as WpsShape, b as WpsShapeStandalone, c as DocxKit, d as tiptapMarkExtensions, f as tiptapNodeExtensions, g as Passthrough, h as InlinePassthrough, l as DocxKitOptions, m as TocField, p as Tab, u as docxExtensions, v as WpgGroup, x as WpsShapeStyles } from "../core-DC0_-WcE.mjs";
|
|
8
|
+
import { t as Table } from "../table-BFkfeRp9.mjs";
|
|
9
|
+
import { t as TableRow } from "../table-row-kgzYkZlW.mjs";
|
|
10
|
+
import { t as TableCell } from "../table-cell-D_FV4D2h.mjs";
|
|
11
|
+
import { t as TableHeader } from "../table-header-KGQ2aEkP.mjs";
|
|
12
|
+
import { t as Link } from "../link-BawPjQZR.mjs";
|
|
13
|
+
import { t as Strike } from "../strike-BgWGvjKr.mjs";
|
|
14
|
+
import { t as TextStyle } from "../text-style-BHdtXkMb.mjs";
|
|
15
|
+
import { n as scrollContainerOf, t as scrollCaretToTop } from "../scroll-ZNeThJsJ.mjs";
|
|
3
16
|
import { A as twipsToMm, S as sectionMarginCss, b as resolvePageSize, x as sectionLinePitchCss, y as resolveFontName } from "../utils-BJwDQts7.mjs";
|
|
4
|
-
export { Document, DocxKit,
|
|
17
|
+
export { Blockquote, Bold, BulletList, Code, CodeBlock, CodeBlockLowlight, ColumnBreak, Details, DetailsContent, DetailsSummary, Document, DocxKit, DocxKitOptions, Emoji, FormattingMarks, HardBreak, Heading, Highlight, HorizontalRule, Image, InlinePassthrough, Italic, Link, ListItem, Mathematics, Mention, OrderedList, PageBreak, Paragraph, Passthrough, SectionBreak, Strike, Subscript, Superscript, Tab, Table, TableCell, TableHeader, TableRow, TaskItem, TaskList, Text, TextAlign, TextStyle, TocField, Underline, WpgGroup, WpsShape, type WpsShapeStandalone, type WpsShapeStyles, createDocument, docxExtensions, resolveFontName, resolvePageSize, scrollCaretToTop, scrollContainerOf, sectionLinePitchCss, sectionMarginCss, tiptapMarkExtensions, tiptapNodeExtensions, twipsToMm, wpsShapeStyles };
|
|
@@ -1,4 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Blockquote, Bold, Code, CodeBlockLowlight, Details, DetailsContent, DetailsSummary, Emoji, HardBreak, Highlight, HorizontalRule, Italic, ListItem, Mathematics, Mention, Subscript, Superscript, TaskItem, TaskList, Text, TextAlign, Underline } from "./tiptap.mjs";
|
|
2
|
+
import { BulletList } from "./bullet-list.mjs";
|
|
3
|
+
import { CodeBlock } from "./code-block.mjs";
|
|
4
|
+
import { C as ColumnBreak, S as FormattingMarks, _ as Tab, a as DocxKit, b as Passthrough, c as tiptapNodeExtensions, g as TocField, h as wpsShapeStyles, l as WpsShape, o as docxExtensions, s as tiptapMarkExtensions, u as WpgGroup, v as SectionBreak, x as PageBreak, y as InlinePassthrough } from "../core-BnF8XhVE.mjs";
|
|
2
5
|
import { resolveFontName, resolvePageSize, sectionLinePitchCss, sectionMarginCss, twipsToMm } from "./utils.mjs";
|
|
3
6
|
import { Document, createDocument } from "./document.mjs";
|
|
4
|
-
|
|
7
|
+
import { Heading } from "./heading.mjs";
|
|
8
|
+
import { Image } from "./image.mjs";
|
|
9
|
+
import { scrollCaretToTop, scrollContainerOf } from "./scroll.mjs";
|
|
10
|
+
import { Link } from "./link.mjs";
|
|
11
|
+
import { OrderedList } from "./ordered-list.mjs";
|
|
12
|
+
import { Paragraph } from "./paragraph.mjs";
|
|
13
|
+
import { Strike } from "./strike.mjs";
|
|
14
|
+
import { Table } from "./table.mjs";
|
|
15
|
+
import { TableCell } from "./table-cell.mjs";
|
|
16
|
+
import { TableHeader } from "./table-header.mjs";
|
|
17
|
+
import { TableRow } from "./table-row.mjs";
|
|
18
|
+
import { TextStyle } from "./text-style.mjs";
|
|
19
|
+
export { Blockquote, Bold, BulletList, Code, CodeBlock, CodeBlockLowlight, ColumnBreak, Details, DetailsContent, DetailsSummary, Document, DocxKit, Emoji, FormattingMarks, HardBreak, Heading, Highlight, HorizontalRule, Image, InlinePassthrough, Italic, Link, ListItem, Mathematics, Mention, OrderedList, PageBreak, Paragraph, Passthrough, SectionBreak, Strike, Subscript, Superscript, Tab, Table, TableCell, TableHeader, TableRow, TaskItem, TaskList, Text, TextAlign, TextStyle, TocField, Underline, WpgGroup, WpsShape, createDocument, docxExtensions, resolveFontName, resolvePageSize, scrollCaretToTop, scrollContainerOf, sectionLinePitchCss, sectionMarginCss, tiptapMarkExtensions, tiptapNodeExtensions, twipsToMm, wpsShapeStyles };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { scrollCaretToTop } from "./scroll.mjs";
|
|
2
|
+
import { Link as Link$1 } from "@tiptap/extension-link";
|
|
3
|
+
import { Plugin, PluginKey, TextSelection } from "@tiptap/pm/state";
|
|
4
|
+
//#region src/extensions/link.ts
|
|
5
|
+
/**
|
|
6
|
+
* Link — overrides {@link LinkBase}'s click behavior to match MS Word: a plain
|
|
7
|
+
* click places the caret for editing; Ctrl/Cmd+Click follows the hyperlink
|
|
8
|
+
* (in-page scroll for a `#bookmark` anchor, a new tab for an external URL).
|
|
9
|
+
*
|
|
10
|
+
* The upstream extension defaults to `openOnClick: true`, which calls
|
|
11
|
+
* `window.open(href, target)` on every plain click — opening a new tab even for
|
|
12
|
+
* internal `#` anchors. That both breaks TOC navigation and diverges from
|
|
13
|
+
* Word's "click-to-edit / Ctrl+Click-to-follow" semantics.
|
|
14
|
+
*/
|
|
15
|
+
function docxLinkClickHandler() {
|
|
16
|
+
return new Plugin({
|
|
17
|
+
key: new PluginKey("docxLinkClick"),
|
|
18
|
+
props: { handleClick(view, _pos, event) {
|
|
19
|
+
const me = event;
|
|
20
|
+
if (me.button !== 0 || !(me.ctrlKey || me.metaKey)) return false;
|
|
21
|
+
const link = me.target?.closest?.("a");
|
|
22
|
+
if (!link || !view.dom.contains(link)) return false;
|
|
23
|
+
const href = link.getAttribute("href") ?? "";
|
|
24
|
+
me.preventDefault();
|
|
25
|
+
if (href.startsWith("#")) {
|
|
26
|
+
const id = href.slice(1);
|
|
27
|
+
if (id) {
|
|
28
|
+
const dest = view.dom.querySelector(`[id="${id.replace(/["\\]/g, "\\$&")}"]`);
|
|
29
|
+
if (dest) {
|
|
30
|
+
const p = view.posAtDOM(dest, 0);
|
|
31
|
+
const { state } = view;
|
|
32
|
+
view.dispatch(state.tr.setSelection(TextSelection.create(state.doc, p)));
|
|
33
|
+
scrollCaretToTop(view);
|
|
34
|
+
view.focus();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
if (href) window.open(href, "_blank");
|
|
40
|
+
return true;
|
|
41
|
+
} }
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const Link = Link$1.extend({
|
|
45
|
+
addOptions() {
|
|
46
|
+
return {
|
|
47
|
+
...this.parent?.(),
|
|
48
|
+
openOnClick: false
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
addProseMirrorPlugins() {
|
|
52
|
+
return [...this.parent?.() ?? [], docxLinkClickHandler()];
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
//#endregion
|
|
56
|
+
export { Link };
|
|
@@ -1,25 +1,3 @@
|
|
|
1
|
-
import { b as Mention } from "../tiptap-
|
|
2
|
-
|
|
3
|
-
//#region src/extensions/mention.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* Mention extension — owns the DOCX expression of an inline mention.
|
|
6
|
-
*
|
|
7
|
-
* A mention is an atom node carrying `{ id, label }`. DOCX has no mention
|
|
8
|
-
* element, but an inline text-SDT (CT_SdtRun) is a reversible carrier: the
|
|
9
|
-
* `id` rides in the SDT alias, the `label` as the SDT's run text, and a fixed
|
|
10
|
-
* tag marks the type so resolve can recover the mention. (customXml would also
|
|
11
|
-
* carry the id but triggers Word's i4i patent warning; SDT does not.)
|
|
12
|
-
*/
|
|
13
|
-
/** SDT tag marking a mention content control. */
|
|
14
|
-
declare const MENTION_TAG = "docen-mention";
|
|
15
|
-
/** Inline text-SDT carrying a mention (id in alias, label as run text). */
|
|
16
|
-
declare function createMention(id: string, label: string): Record<string, unknown>;
|
|
17
|
-
/** True if an inline SDT child carries a mention. */
|
|
18
|
-
declare function isMention(child: unknown): boolean;
|
|
19
|
-
/** Read a mention SDT → `{ id, label }`. */
|
|
20
|
-
declare function readMention(child: unknown): {
|
|
21
|
-
id: string;
|
|
22
|
-
label: string;
|
|
23
|
-
};
|
|
24
|
-
//#endregion
|
|
1
|
+
import { b as Mention } from "../tiptap-BKqn41uT.mjs";
|
|
2
|
+
import { i as readMention, n as createMention, r as isMention, t as MENTION_TAG } from "../mention-BGLzLVYw.mjs";
|
|
25
3
|
export { MENTION_TAG, Mention, createMention, isMention, readMention };
|
|
@@ -1,25 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { LevelsOptions } from "@office-open/docx";
|
|
3
|
-
|
|
4
|
-
//#region src/extensions/ordered-list.d.ts
|
|
5
|
-
/**
|
|
6
|
-
* OrderedList extension — owns the DOCX expression of an ordered list.
|
|
7
|
-
*
|
|
8
|
-
* A Tiptap orderedList maps to a sequence of paragraphs referencing one
|
|
9
|
-
* abstractNum (decimal). The reference is keyed by `start` so lists with the
|
|
10
|
-
* same start share a definition; DocxManager gives each list its own instance
|
|
11
|
-
* for independent counting. This module owns that abstractNum shape; DocxManager
|
|
12
|
-
* owns the cross-paragraph tree walk, start recovery, and numbering-instance
|
|
13
|
-
* bookkeeping.
|
|
14
|
-
*/
|
|
15
|
-
/** Reference prefix for generated ordered-list abstractNum definitions. */
|
|
16
|
-
declare const ORDERED_REFERENCE_PREFIX = "docen-ordered";
|
|
17
|
-
/** lvlText per nesting depth (level 0 → "%1.", … level 8 → "%9."). */
|
|
18
|
-
declare const ORDERED_LEVEL_TEXT: string[];
|
|
19
|
-
/**
|
|
20
|
-
* Build nine decimal numbering levels for an ordered list. Level 0 carries
|
|
21
|
-
* `start`; deeper levels restart at 1 (Word convention).
|
|
22
|
-
*/
|
|
23
|
-
declare function buildOrderedLevels(start: number): LevelsOptions[];
|
|
24
|
-
//#endregion
|
|
1
|
+
import { i as buildOrderedLevels, n as ORDERED_REFERENCE_PREFIX, r as OrderedList, t as ORDERED_LEVEL_TEXT } from "../ordered-list-DFAe-YEV.mjs";
|
|
25
2
|
export { ORDERED_LEVEL_TEXT, ORDERED_REFERENCE_PREFIX, OrderedList, buildOrderedLevels };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { OrderedList } from "./tiptap.mjs";
|
|
1
|
+
import { OrderedList as OrderedList$1 } from "./tiptap.mjs";
|
|
2
2
|
import { LevelFormat } from "@office-open/docx";
|
|
3
3
|
//#region src/extensions/ordered-list.ts
|
|
4
4
|
/**
|
|
@@ -37,5 +37,14 @@ function buildOrderedLevels(start) {
|
|
|
37
37
|
text: ORDERED_LEVEL_TEXT[level]
|
|
38
38
|
}));
|
|
39
39
|
}
|
|
40
|
+
const OrderedList = OrderedList$1.extend({ addAttributes() {
|
|
41
|
+
return {
|
|
42
|
+
...this.parent?.(),
|
|
43
|
+
numbering: {
|
|
44
|
+
default: null,
|
|
45
|
+
rendered: false
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
} });
|
|
40
49
|
//#endregion
|
|
41
50
|
export { ORDERED_LEVEL_TEXT, ORDERED_REFERENCE_PREFIX, OrderedList, buildOrderedLevels };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { D as PageBreak } from "../core-DC0_-WcE.mjs";
|
|
2
2
|
export { PageBreak };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { x as PageBreak } from "../core-BnF8XhVE.mjs";
|
|
2
2
|
export { PageBreak };
|
|
@@ -14,6 +14,18 @@ const SECTION_ATTR_KEYS = new Set([
|
|
|
14
14
|
"sectionHeaders",
|
|
15
15
|
"sectionFooters"
|
|
16
16
|
]);
|
|
17
|
+
/**
|
|
18
|
+
* Whether a paragraph's tabStops include a leader (dot/underscore/hyphen/…), e.g.
|
|
19
|
+
* a TOC entry's right tab. Signals dot-leader layout to the editor CSS.
|
|
20
|
+
*/
|
|
21
|
+
function hasLeaderTabStop(tabStops) {
|
|
22
|
+
if (!Array.isArray(tabStops)) return false;
|
|
23
|
+
return tabStops.some((t) => {
|
|
24
|
+
if (!t || typeof t !== "object") return false;
|
|
25
|
+
const leader = t.leader;
|
|
26
|
+
return typeof leader === "string" && leader !== "none" && leader.length > 0;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
17
29
|
function renderDocx(node) {
|
|
18
30
|
const attrs = node.attrs ?? {};
|
|
19
31
|
const opts = {};
|
|
@@ -132,6 +144,7 @@ const Paragraph = Paragraph$1.extend({
|
|
|
132
144
|
const attrs = { ...HTMLAttributes };
|
|
133
145
|
const styleId = node.attrs.styleId;
|
|
134
146
|
attrs.class = styleId ? `docx-style-${styleId}` : "docx-default";
|
|
147
|
+
if (hasLeaderTabStop(node.attrs.tabStops)) attrs.class += " docx-tab-leader";
|
|
135
148
|
if (styles.length > 0) attrs.style = styles.join(";");
|
|
136
149
|
return [
|
|
137
150
|
"p",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { g as Passthrough } from "../core-
|
|
2
|
-
export { Passthrough };
|
|
1
|
+
import { g as Passthrough, h as InlinePassthrough } from "../core-DC0_-WcE.mjs";
|
|
2
|
+
export { InlinePassthrough, Passthrough };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { Passthrough };
|
|
1
|
+
import { b as Passthrough, y as InlinePassthrough } from "../core-BnF8XhVE.mjs";
|
|
2
|
+
export { InlinePassthrough, Passthrough };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
//#region src/extensions/scroll.ts
|
|
2
|
+
/**
|
|
3
|
+
* Scroll helpers shared by the editor and the docx engine's link-click handler,
|
|
4
|
+
* so every "jump then scroll" path (outline heading, search result, find, TOC
|
|
5
|
+
* Ctrl+Click, post-reflow caret follow) scrolls the SAME way — to the top of the
|
|
6
|
+
* viewport, Word-style. ProseMirror's default `tr.scrollIntoView()` parks the
|
|
7
|
+
* caret at the bottom edge, which reads wrong for a page/heading/TOC jump.
|
|
8
|
+
*/
|
|
9
|
+
/** Nearest scrollable ancestor of the editor surface (e.g. the docen-canvas). */
|
|
10
|
+
function scrollContainerOf(view) {
|
|
11
|
+
let el = view.dom.parentElement;
|
|
12
|
+
while (el) {
|
|
13
|
+
if (el.clientHeight > 0 && el.scrollHeight > el.clientHeight) {
|
|
14
|
+
const overflowY = getComputedStyle(el).overflowY;
|
|
15
|
+
if (overflowY === "auto" || overflowY === "scroll") return el;
|
|
16
|
+
}
|
|
17
|
+
el = el.parentElement;
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
/** Scroll the caret to the TOP of the viewport when it has left the visible area
|
|
22
|
+
* (Word-style page follow). No-op while the caret stays in view, so normal
|
|
23
|
+
* typing doesn't fight the user's scroll. Replaces PM's default scrollIntoView. */
|
|
24
|
+
function scrollCaretToTop(view) {
|
|
25
|
+
const scroller = scrollContainerOf(view);
|
|
26
|
+
if (!scroller) return;
|
|
27
|
+
const margin = 64;
|
|
28
|
+
const caretTop = view.coordsAtPos(view.state.selection.head).top;
|
|
29
|
+
const rect = scroller.getBoundingClientRect();
|
|
30
|
+
if (caretTop < rect.top + margin || caretTop > rect.bottom - margin) scroller.scrollTop += caretTop - rect.top - margin;
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { scrollCaretToTop, scrollContainerOf };
|
|
@@ -1,44 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
//#region src/extensions/section-break.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* SectionBreak — command extension that marks a paragraph as a section boundary.
|
|
6
|
-
*
|
|
7
|
-
* OOXML sections (sectPr) attach to a section's LAST paragraph's pPr, NOT a
|
|
8
|
-
* standalone node. So this extension provides only the `setSectionBreak`
|
|
9
|
-
* command (stamps sectionProperties on the current paragraph); the paragraph
|
|
10
|
-
* extension carries the sectionProperties/sectionHeaders/sectionFooters attrs,
|
|
11
|
-
* and DocxManager splits/merges sections in compile/resolve by reading them off
|
|
12
|
-
* the paragraph.
|
|
13
|
-
*
|
|
14
|
-
* The final section's sectPr rides on doc.attrs.sectionProperties (it lives at
|
|
15
|
-
* <w:body>'s end in OOXML). Single-section documents have no section-carrying
|
|
16
|
-
* paragraph at all.
|
|
17
|
-
*
|
|
18
|
-
* Next Page semantics: `setSectionBreak` stamps sectionProperties on the current
|
|
19
|
-
* paragraph (making it the section's last paragraph) AND inserts a fresh empty
|
|
20
|
-
* paragraph after it (the next section's first paragraph), then moves the
|
|
21
|
-
* selection into that new paragraph. The page-plugin's `forcesPageBreakAfter`
|
|
22
|
-
* treats a sectionProperties-bearing paragraph as a page break, so repaginate
|
|
23
|
-
* pushes the new paragraph onto the next page — and the caret follows. This
|
|
24
|
-
* mirrors Word's "Section Break (Next Page)".
|
|
25
|
-
*
|
|
26
|
-
* Split hygiene: pressing Enter inside a section-carrying paragraph must NOT
|
|
27
|
-
* split it. A split would place the new paragraph past the section boundary —
|
|
28
|
-
* forcesPageBreakAfter then pushes it onto the next page (next section), and
|
|
29
|
-
* splitBlock would copy sectionProperties onto it (a second break mark). Word
|
|
30
|
-
* instead inserts a fresh paragraph BEFORE the section's last paragraph, so the
|
|
31
|
-
* new paragraph stays in this section and the stamped paragraph remains last.
|
|
32
|
-
* The Enter shortcut does exactly that; non-section paragraphs fall through to
|
|
33
|
-
* the default Enter unchanged.
|
|
34
|
-
*/
|
|
35
|
-
declare const SectionBreak: Extension<any, any>;
|
|
36
|
-
declare module "@tiptap/core" {
|
|
37
|
-
interface Commands<ReturnType> {
|
|
38
|
-
sectionBreak: {
|
|
39
|
-
/** Insert a Next Page section break at the current paragraph. */setSectionBreak: () => ReturnType;
|
|
40
|
-
};
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//#endregion
|
|
1
|
+
import { P as SectionBreak } from "../core-DC0_-WcE.mjs";
|
|
44
2
|
export { SectionBreak };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { v as SectionBreak } from "../core-BnF8XhVE.mjs";
|
|
2
2
|
export { SectionBreak };
|
|
@@ -1,27 +1,3 @@
|
|
|
1
|
-
import { A as TaskItem } from "../tiptap-
|
|
2
|
-
|
|
3
|
-
//#region src/extensions/task-item.d.ts
|
|
4
|
-
/**
|
|
5
|
-
* TaskItem extension — owns the DOCX expression of a task-list checkbox.
|
|
6
|
-
*
|
|
7
|
-
* DOCX has no native task list, but a clickable checkbox is reversible via an
|
|
8
|
-
* inline content-control SDT (w14:checkbox). Each task paragraph carries a
|
|
9
|
-
* leading checkbox SDT tagged "docen-task" so resolve can tell task items apart
|
|
10
|
-
* from ordinary paragraphs that happen to contain an SDT. The checked state
|
|
11
|
-
* round-trips through the SDT; DocxManager injects/strips the SDT at the
|
|
12
|
-
* paragraph boundary and rebuilds the taskList/taskItem tree.
|
|
13
|
-
*/
|
|
14
|
-
/** SDT tag marking our task-item checkbox content control. */
|
|
15
|
-
declare const TASK_CHECKBOX_TAG = "docen-task";
|
|
16
|
-
/**
|
|
17
|
-
* Inline checkbox SDT (w14:checkbox) for a task item, as a ParagraphChild.
|
|
18
|
-
* Tagged so resolve can distinguish task items from ordinary SDT-bearing
|
|
19
|
-
* paragraphs.
|
|
20
|
-
*/
|
|
21
|
-
declare function createTaskCheckbox(checked: boolean): Record<string, unknown>;
|
|
22
|
-
/** True if an inline ParagraphChild is our task checkbox SDT. */
|
|
23
|
-
declare function isTaskCheckbox(child: unknown): boolean;
|
|
24
|
-
/** Read the checked state of a task checkbox SDT child (false if not one). */
|
|
25
|
-
declare function readCheckboxState(child: unknown): boolean;
|
|
26
|
-
//#endregion
|
|
1
|
+
import { A as TaskItem } from "../tiptap-BKqn41uT.mjs";
|
|
2
|
+
import { i as readCheckboxState, n as createTaskCheckbox, r as isTaskCheckbox, t as TASK_CHECKBOX_TAG } from "../task-item-B0ntvQ1Y.mjs";
|
|
27
3
|
export { TASK_CHECKBOX_TAG, TaskItem, createTaskCheckbox, isTaskCheckbox, readCheckboxState };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as TaskItem, C as Strike, D as TableCell, E as Table, F as Underline, M as Text, N as TextAlign, O as TableHeader, P as TextStyle, S as Paragraph, T as Superscript, _ as Link, a as CodeBlockLowlight, b as Mention, c as DetailsSummary, d as HardBreak, f as Heading, g as Italic, h as Image, i as Code, j as TaskList, k as TableRow, l as Document, m as HorizontalRule, n as Bold, o as Details, p as Highlight, r as BulletList, s as DetailsContent, t as Blockquote, u as Emoji, v as ListItem, w as Subscript, x as OrderedList, y as Mathematics } from "../tiptap-
|
|
1
|
+
import { A as TaskItem, C as Strike, D as TableCell, E as Table, F as Underline, M as Text, N as TextAlign, O as TableHeader, P as TextStyle, S as Paragraph, T as Superscript, _ as Link, a as CodeBlockLowlight, b as Mention, c as DetailsSummary, d as HardBreak, f as Heading, g as Italic, h as Image, i as Code, j as TaskList, k as TableRow, l as Document, m as HorizontalRule, n as Bold, o as Details, p as Highlight, r as BulletList, s as DetailsContent, t as Blockquote, u as Emoji, v as ListItem, w as Subscript, x as OrderedList, y as Mathematics } from "../tiptap-BKqn41uT.mjs";
|
|
2
2
|
export { Blockquote, Bold, BulletList, Code, CodeBlockLowlight, Details, DetailsContent, DetailsSummary, Document, Emoji, HardBreak, Heading, Highlight, HorizontalRule, Image, Italic, Link, ListItem, Mathematics, Mention, OrderedList, Paragraph, Strike, Subscript, Superscript, Table, TableCell, TableHeader, TableRow, TaskItem, TaskList, Text, TextAlign, TextStyle, Underline };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { m as TocField } from "../core-DC0_-WcE.mjs";
|
|
2
2
|
export { TocField };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { g as TocField } from "../core-BnF8XhVE.mjs";
|
|
2
2
|
export { TocField };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export { WpgGroup, WpsData, renderWpsInterior, renderWpsText };
|
|
1
|
+
import { C as renderWpsText, E as wpsShapeStyles, S as renderWpsInterior, T as wpsRotationVert, b as WpsShapeStandalone, v as WpgGroup, w as wpsInnerStyle, x as WpsShapeStyles, y as WpsData } from "../core-DC0_-WcE.mjs";
|
|
2
|
+
export { WpgGroup, WpsData, WpsShapeStandalone, WpsShapeStyles, renderWpsInterior, renderWpsText, wpsInnerStyle, wpsRotationVert, wpsShapeStyles };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { d as
|
|
2
|
-
export { WpgGroup, renderWpsInterior, renderWpsText };
|
|
1
|
+
import { d as renderWpsInterior, f as renderWpsText, h as wpsShapeStyles, m as wpsRotationVert, p as wpsInnerStyle, u as WpgGroup } from "../core-BnF8XhVE.mjs";
|
|
2
|
+
export { WpgGroup, renderWpsInterior, renderWpsText, wpsInnerStyle, wpsRotationVert, wpsShapeStyles };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { _ as WpsShape } from "../core-
|
|
1
|
+
import { _ as WpsShape } from "../core-DC0_-WcE.mjs";
|
|
2
2
|
export { WpsShape };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as WpsShape } from "../core-BnF8XhVE.mjs";
|
|
2
2
|
export { WpsShape };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
|
+
import { A as TaskItem, F as Underline, M as Text, N as TextAlign, T as Superscript, a as CodeBlockLowlight, b as Mention, c as DetailsSummary, d as HardBreak, g as Italic, i as Code, j as TaskList, m as HorizontalRule, n as Bold, o as Details, p as Highlight, s as DetailsContent, t as Blockquote, u as Emoji, v as ListItem, w as Subscript, y as Mathematics } from "./tiptap-BKqn41uT.mjs";
|
|
1
2
|
import { n as createDocument, t as Document } from "./document-Cws7XTYL.mjs";
|
|
2
|
-
import {
|
|
3
|
+
import { t as Paragraph } from "./paragraph-D8mpHo_o.mjs";
|
|
4
|
+
import { t as Heading } from "./heading-BvqBD2zX.mjs";
|
|
5
|
+
import { t as BulletList } from "./bullet-list-DF60pnSL.mjs";
|
|
6
|
+
import { r as OrderedList } from "./ordered-list-DFAe-YEV.mjs";
|
|
7
|
+
import { A as Image, D as PageBreak, E as wpsShapeStyles, F as ColumnBreak, I as CodeBlock, O as FormattingMarks, P as SectionBreak, _ as WpsShape, a as JSONContent, b as WpsShapeStandalone, c as DocxKit, d as tiptapMarkExtensions, f as tiptapNodeExtensions, g as Passthrough, h as InlinePassthrough, l as DocxKitOptions, m as TocField, p as Tab, t as AnyExtension, u as docxExtensions, v as WpgGroup, x as WpsShapeStyles } from "./core-DC0_-WcE.mjs";
|
|
8
|
+
import { t as Table } from "./table-BFkfeRp9.mjs";
|
|
9
|
+
import { t as TableRow } from "./table-row-kgzYkZlW.mjs";
|
|
10
|
+
import { t as TableCell } from "./table-cell-D_FV4D2h.mjs";
|
|
11
|
+
import { t as TableHeader } from "./table-header-KGQ2aEkP.mjs";
|
|
12
|
+
import { t as Link } from "./link-BawPjQZR.mjs";
|
|
13
|
+
import { t as Strike } from "./strike-BgWGvjKr.mjs";
|
|
14
|
+
import { t as TextStyle } from "./text-style-BHdtXkMb.mjs";
|
|
15
|
+
import { n as scrollContainerOf, t as scrollCaretToTop } from "./scroll-ZNeThJsJ.mjs";
|
|
3
16
|
import { A as twipsToMm, S as sectionMarginCss, b as resolvePageSize, x as sectionLinePitchCss, y as resolveFontName } from "./utils-BJwDQts7.mjs";
|
|
4
17
|
import { ImageFetchHandler, PrepareStep, fetchImageHandler, prepareDocument, prepareImages } from "./converters/prepare.mjs";
|
|
5
18
|
import { DocxGenerateOptions, DocxManager, compileDocument, generateDOCX, generateDOCXStream, generateDOCXSync, parseDOCX, resolveDocument } from "./converters/docx.mjs";
|
|
@@ -265,16 +278,18 @@ interface WpgGroupNode extends TiptapJSONContent {
|
|
|
265
278
|
};
|
|
266
279
|
}
|
|
267
280
|
/**
|
|
268
|
-
* Standalone floating text-box shape (wp:anchor > wps:wsp)
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
281
|
+
* Standalone floating text-box shape (wp:anchor > wps:wsp). The shape geometry
|
|
282
|
+
* + styling (transformation/floating/fill/outline/bodyProperties) ride on
|
|
283
|
+
* attrs.wpsShape; the editable text body is PM content (one ParagraphNode per
|
|
284
|
+
* office-open ParagraphOptions). Unlike a group's interior wps children, this
|
|
285
|
+
* shape floats on its own anchor and is editable via its NodeView contentDOM.
|
|
272
286
|
*/
|
|
273
287
|
interface WpsShapeNode extends TiptapJSONContent {
|
|
274
288
|
type: "wpsShape";
|
|
275
289
|
attrs?: {
|
|
276
290
|
wpsShape: Record<string, unknown> | null;
|
|
277
291
|
};
|
|
292
|
+
content?: Array<ParagraphNode>;
|
|
278
293
|
}
|
|
279
294
|
interface EmojiNode extends TiptapJSONContent {
|
|
280
295
|
type: "emoji";
|
|
@@ -286,6 +301,9 @@ interface PageBreakNode extends TiptapJSONContent {
|
|
|
286
301
|
interface ColumnBreakNode extends TiptapJSONContent {
|
|
287
302
|
type: "columnBreak";
|
|
288
303
|
}
|
|
304
|
+
interface TabNode extends TiptapJSONContent {
|
|
305
|
+
type: "tab";
|
|
306
|
+
}
|
|
289
307
|
interface MentionNode extends TiptapJSONContent {
|
|
290
308
|
type: "mention";
|
|
291
309
|
attrs?: MentionAttrs;
|
|
@@ -304,6 +322,12 @@ interface PassthroughNode extends TiptapJSONContent {
|
|
|
304
322
|
data: string;
|
|
305
323
|
};
|
|
306
324
|
}
|
|
325
|
+
interface InlinePassthroughNode extends TiptapJSONContent {
|
|
326
|
+
type: "inlinePassthrough";
|
|
327
|
+
attrs?: {
|
|
328
|
+
data: string;
|
|
329
|
+
};
|
|
330
|
+
}
|
|
307
331
|
interface DetailsNode extends TiptapJSONContent {
|
|
308
332
|
type: "details";
|
|
309
333
|
content?: Array<DetailsSummaryNode | DetailsContentNode>;
|
|
@@ -329,7 +353,7 @@ interface DetailsContentNode extends TiptapJSONContent {
|
|
|
329
353
|
type: "detailsContent";
|
|
330
354
|
content?: Array<BlockNode>;
|
|
331
355
|
}
|
|
332
|
-
type InlineContent = TextNode | HardBreakNode | ImageNode | EmojiNode | PageBreakNode | ColumnBreakNode | MentionNode | InlineMathNode;
|
|
356
|
+
type InlineContent = TextNode | HardBreakNode | ImageNode | EmojiNode | PageBreakNode | ColumnBreakNode | TabNode | MentionNode | InlineMathNode | InlinePassthroughNode;
|
|
333
357
|
type BlockNode = ParagraphNode | HeadingNode | BlockquoteNode | CodeBlockNode | HorizontalRuleNode | BulletListNode | OrderedListNode | TaskListNode | TableNode | WpsShapeNode | WpgGroupNode | DetailsNode | TocFieldNode | PassthroughNode | BlockMathNode;
|
|
334
358
|
//#endregion
|
|
335
|
-
export { type AlignmentType, type AnyExtension, type AttrNullable, type BlockMathNode, type BlockNode, type BlockquoteNode, type BookmarkOptions, type BorderOptions, type BordersOptions, type BulletListNode, type CodeBlockNode, type ColumnBreakNode, type DetailsContentNode, type DetailsNode, type DetailsSummaryNode, Document, type DocumentOptions, type DocxEditorOptions, type DocxGenerateOptions, DocxKit,
|
|
359
|
+
export { type AlignmentType, type AnyExtension, type AttrNullable, type BlockMathNode, type BlockNode, Blockquote, type BlockquoteNode, Bold, type BookmarkOptions, type BorderOptions, type BordersOptions, BulletList, type BulletListNode, Code, CodeBlock, CodeBlockLowlight, type CodeBlockNode, ColumnBreak, type ColumnBreakNode, Details, DetailsContent, type DetailsContentNode, type DetailsNode, DetailsSummary, type DetailsSummaryNode, Document, type DocumentOptions, type DocxEditorOptions, type DocxGenerateOptions, DocxKit, DocxKitOptions, DocxManager, type DocxPatchContent, type DocxPatchOptions, Emoji, type EmojiAttrs, type EmojiNode, type EmphasisMarkType, type ExternalHyperlinkOptions, type Floating, type FontAttributesProperties, FormattingMarks, type FrameOptions, HardBreak, type HardBreakNode, type HeaderFooterSlots, Heading, type HeadingLevel, type HeadingNode, type HeightRule, Highlight, type HighlightColor, HorizontalRule, type HorizontalRuleNode, Image, type ImageAttrs, type ImageFetchHandler, type ImageNode, type ImageOptions, type IndentAttributesProperties, type InlineContent, type InlineMathNode, InlinePassthrough, type InlinePassthroughNode, type InternalHyperlinkOptions, Italic, type JSONContent, type LeaderType, type LevelParagraphStylePropertiesOptions, type LineRuleType, Link, type LinkAttrs, ListItem, type ListItemNode, type Margins, type Mark, type MathAttrs, type MathInput, Mathematics, type MediaTransformation, Mention, type MentionAttrs, type MentionNode, OrderedList, type OrderedListNode, PageBreak, type PageBreakNode, Paragraph, type ParagraphAttrs, type ParagraphChild, type ParagraphNode, type ParagraphOptions, type ParagraphPropertiesOptions, type ParagraphPropertiesOptionsBase, type ParagraphRunPropertiesOptions, type ParagraphStylePropertiesOptions, Passthrough, type PassthroughNode, type PrepareStep, type QuickStyleEntry, type RubyOptions, type RunOptions, type RunPropertiesOptions, type RunStylePropertiesOptions, SectionBreak, type SectionChild, type SectionOptions, type SectionPropertiesOptions, type ShadingAttributesProperties, type SpacingProperties, Strike, type StrikeAttrs, type StylesOptions, Subscript, Superscript, Tab, type TabNode, type TabStopDefinition, type TabStopPosition, type TabStopType, Table, type TableAttrs, type TableBordersOptions, TableCell, type TableCellAttrs, type TableCellBordersOptions, type TableCellNode, type TableCellOptions, type TableFloatOptions, TableHeader, type TableHeaderNode, type TableLayoutType, type TableLookOptions, type TableNode, type TableOptions, TableRow, type TableRowAttrs, type TableRowNode, type TableRowOptions, type TableRowPropertiesOptionsBase, type TableVerticalAlign, type TableWidthProperties, TaskItem, type TaskItemNode, TaskList, type TaskListNode, Text, TextAlign, type TextAlignmentType, type TextNode, TextStyle, type TextStyleAttrs, TocField, type TocFieldNode, Underline, type UnderlineType, type WidthType, WpgGroup, type WpgGroupNode, WpsShape, type WpsShapeNode, type WpsShapeStandalone, type WpsShapeStyles, compileDocument, convertMillimetersToTwip, createDocument, createDocxEditor, docxExtensions, effectiveRunProps, fetchImageHandler, generateDOCX, generateDOCXStream, generateDOCXSync, generateHTML, generateMarkdown, inlineStyles, parseDOCX, parseHTML, parseMarkdown, patchDOCX, prepareDocument, prepareImages, quickStyles, resolveDocument, resolveFontName, resolvePageSize, scrollCaretToTop, scrollContainerOf, sectionLinePitchCss, sectionMarginCss, sectionMarginDefaults, sectionPageSizeDefaults, stylesToCss, tiptapMarkExtensions, tiptapNodeExtensions, twipsToMm, wpsShapeStyles };
|