@json-to-office/core-docx 0.36.1 → 0.37.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 (39) hide show
  1. package/dist/components/heading.d.ts.map +1 -1
  2. package/dist/components/list.d.ts.map +1 -1
  3. package/dist/components/text-box.d.ts +1 -1
  4. package/dist/components/text-box.d.ts.map +1 -1
  5. package/dist/components/toc/index.d.ts.map +1 -1
  6. package/dist/core/cached-render.d.ts +2 -2
  7. package/dist/core/cached-render.d.ts.map +1 -1
  8. package/dist/core/collectTocHeadings.d.ts +27 -1
  9. package/dist/core/collectTocHeadings.d.ts.map +1 -1
  10. package/dist/core/content.d.ts +10 -0
  11. package/dist/core/content.d.ts.map +1 -1
  12. package/dist/core/render.d.ts +2 -2
  13. package/dist/core/render.d.ts.map +1 -1
  14. package/dist/index.js +605 -160
  15. package/dist/index.js.map +1 -1
  16. package/dist/plugin/example/index.js +603 -160
  17. package/dist/plugin/example/index.js.map +1 -1
  18. package/dist/templates/themes/apex.docx.theme.json +0 -3
  19. package/dist/templates/themes/corporate.docx.theme.json +0 -3
  20. package/dist/templates/themes/devportal.docx.theme.json +0 -3
  21. package/dist/templates/themes/index.d.ts +4 -0
  22. package/dist/templates/themes/index.d.ts.map +1 -1
  23. package/dist/templates/themes/minimal.docx.theme.json +0 -3
  24. package/dist/tsconfig.tsbuildinfo +1 -1
  25. package/dist/utils/bookmarkRegistry.d.ts +14 -0
  26. package/dist/utils/bookmarkRegistry.d.ts.map +1 -1
  27. package/dist/utils/listLevels.d.ts +38 -0
  28. package/dist/utils/listLevels.d.ts.map +1 -0
  29. package/dist/utils/numberFormatting.d.ts +11 -0
  30. package/dist/utils/numberFormatting.d.ts.map +1 -0
  31. package/dist/utils/numberedItemsRegistry.d.ts +38 -0
  32. package/dist/utils/numberedItemsRegistry.d.ts.map +1 -0
  33. package/dist/utils/numberingConfig.d.ts +31 -0
  34. package/dist/utils/numberingConfig.d.ts.map +1 -1
  35. package/dist/utils/placeholderProcessor.d.ts +2 -2
  36. package/dist/utils/placeholderProcessor.d.ts.map +1 -1
  37. package/dist/utils/textParser.d.ts +6 -0
  38. package/dist/utils/textParser.d.ts.map +1 -1
  39. package/package.json +3 -3
@@ -7,6 +7,20 @@ export interface BookmarkInfo {
7
7
  title: string;
8
8
  type: string;
9
9
  }
10
+ /**
11
+ * Slug a piece of text into a bookmark id candidate.
12
+ *
13
+ * Pure half of `generateId`: the document-outline pre-pass has to predict the
14
+ * ids render will produce before any registry state exists, so the algorithm
15
+ * cannot live inside the registry.
16
+ */
17
+ export declare function slugifyBookmarkText(text: string): string;
18
+ /**
19
+ * Disambiguate a slug against ids already taken, appending `-1`, `-2`, … .
20
+ * Gives up after 100 attempts and returns the colliding id, exactly as
21
+ * `generateId` always has.
22
+ */
23
+ export declare function dedupeBookmarkId(base: string, taken: (id: string) => boolean): string;
10
24
  /**
11
25
  * Registry for managing document bookmarks
12
26
  * Used to track bookmark IDs and validate internal hyperlink targets
@@ -1 +1 @@
1
- {"version":3,"file":"bookmarkRegistry.d.ts","sourceRoot":"","sources":["../../src/utils/bookmarkRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,OAAO,KAAK,KAAK,GAEhB;IAED,4EAA4E;IAC5E,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAIlC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IASvD;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM;IAkB5D;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzC;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAStD;AAGD,eAAO,MAAM,sBAAsB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"bookmarkRegistry.d.ts","sourceRoot":"","sources":["../../src/utils/bookmarkRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAMD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,GAC7B,MAAM,CAOR;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA2C;IACpE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IAEjE,OAAO,KAAK,KAAK,GAEhB;IAED,4EAA4E;IAC5E,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAIlC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IASvD;;;OAGG;IACH,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAmB,GAAG,MAAM;IAM5D;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI3B;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAIzC;;OAEG;IACH,MAAM,IAAI,YAAY,EAAE;IAIxB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;;OAGG;IACH,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;CAStD;AAGD,eAAO,MAAM,sBAAsB,kBAAyB,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Level derivation for `list` components.
3
+ *
4
+ * Shared by the renderer (which turns these into `w:abstractNum` levels) and by
5
+ * the document-outline pre-pass (which needs each level's format and start to
6
+ * predict the counter a cross-reference should cache). Keeping one definition
7
+ * is the point: a level the renderer numbers `a., b., c.` and a pre-pass that
8
+ * thinks it is decimal produce a field whose cached value Word overwrites on
9
+ * refresh — the silent disagreement cross-references exist to avoid.
10
+ */
11
+ import type { ListLevelConfig } from './numberingConfig';
12
+ /** The `list` props this module reads, structurally. */
13
+ export interface ListLevelSource {
14
+ items?: readonly (string | {
15
+ readonly level?: number;
16
+ })[];
17
+ levels?: readonly ListLevelConfig[];
18
+ format?: string;
19
+ bullet?: string;
20
+ start?: number;
21
+ indent?: number | {
22
+ left?: number;
23
+ hanging?: number;
24
+ };
25
+ }
26
+ /**
27
+ * Get the maximum level used in list items
28
+ */
29
+ export declare function getMaxLevelFromItems(items: readonly (string | {
30
+ readonly level?: number;
31
+ })[] | undefined): number;
32
+ /**
33
+ * The levels a list's numbering definition ends up with: explicit `levels` when
34
+ * given (with `props.start` folded in), otherwise the simplified shorthand —
35
+ * either way padded out to the deepest level the items actually use.
36
+ */
37
+ export declare function resolveListLevels(props: ListLevelSource): ListLevelConfig[];
38
+ //# sourceMappingURL=listLevels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listLevels.d.ts","sourceRoot":"","sources":["../../src/utils/listLevels.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wDAAwD;AACxD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG;QAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAC1D,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACvD;AAmFD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,SAAS,CAAC,MAAM,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,EAAE,GAAG,SAAS,GACnE,MAAM,CAYR;AA0DD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,eAAe,EAAE,CAW3E"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Render a list counter the way Word renders it, for the cached value of a
3
+ * cross-reference field.
4
+ *
5
+ * Only the formats whose glyph sequence is unambiguous are supported. Anything
6
+ * else (bullets, CJK counting, `none`, an unknown string) returns undefined —
7
+ * the caller then emits a field with no cached value rather than guessing a
8
+ * number Word would disagree with on refresh.
9
+ */
10
+ export declare function formatNumberForLevel(value: number, format?: string): string | undefined;
11
+ //# sourceMappingURL=numberFormatting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberFormatting.d.ts","sourceRoot":"","sources":["../../src/utils/numberFormatting.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAwCH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAkBpB"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Numbered Item Registry
3
+ *
4
+ * Cross-reference targets — numbered headings and list items — resolved by the
5
+ * document-outline pre-pass and read back while rendering inline text.
6
+ *
7
+ * It is a registry rather than a field on `RenderContext` because the consumer
8
+ * is `textParser`, which is reached through `createText`/`createHeading`/
9
+ * `createList` and never sees the context.
10
+ */
11
+ export interface NumberedItemInfo {
12
+ kind: 'heading' | 'list-item';
13
+ /** Rendered text of the target, for a `:none` (text) reference. */
14
+ text: string;
15
+ /** Full multilevel number ("2.1.3"), absent when the target is unnumbered. */
16
+ full?: string;
17
+ /** The target's own level counter ("3"), absent when unnumbered. */
18
+ own?: string;
19
+ }
20
+ export declare class NumberedItemsRegistry {
21
+ private readonly fallback;
22
+ private readonly scopes;
23
+ private get state();
24
+ /** Run work with an isolated registry that follows its async call chain. */
25
+ runScoped<T>(callback: () => T): T;
26
+ /** Replace the contents with the pre-pass result. */
27
+ seed(items: ReadonlyMap<string, NumberedItemInfo>): void;
28
+ /**
29
+ * False outside a render (a unit test calling `createText` directly). An
30
+ * unresolved reference is then expected rather than an authoring mistake, so
31
+ * the caller stays quiet about it.
32
+ */
33
+ isSeeded(): boolean;
34
+ get(id: string): NumberedItemInfo | undefined;
35
+ clear(): void;
36
+ }
37
+ export declare const globalNumberedItemsRegistry: NumberedItemsRegistry;
38
+ //# sourceMappingURL=numberedItemsRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numberedItemsRegistry.d.ts","sourceRoot":"","sources":["../../src/utils/numberedItemsRegistry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,SAAS,GAAG,WAAW,CAAC;IAC9B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAOD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGvB;IACF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+C;IAEtE,OAAO,KAAK,KAAK,GAEhB;IAED,4EAA4E;IAC5E,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAIlC,qDAAqD;IACrD,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,IAAI;IAMxD;;;;OAIG;IACH,QAAQ,IAAI,OAAO;IAInB,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAI7C,KAAK,IAAI,IAAI;CAId;AAED,eAAO,MAAM,2BAA2B,uBAA8B,CAAC"}
@@ -55,6 +55,37 @@ export declare function createNumberedListConfig(reference: string, start?: numb
55
55
  levels: ILevelsOptions[];
56
56
  reference: string;
57
57
  };
58
+ /**
59
+ * The one multilevel definition every numbered heading in a document shares —
60
+ * shared so that 1., 1.1., 1.1.1. is a single continuous sequence rather than
61
+ * one restarting per heading.
62
+ */
63
+ export declare const HEADING_NUMBERING_REFERENCE = "jto-heading-numbering";
64
+ /**
65
+ * Word's built-in heading numbering: decimal at every level, each level's text
66
+ * accumulating the ones above it, bound to `Heading1`..`Heading6` through
67
+ * `w:lvl/w:pStyle` so Word's own "restart/continue numbering" UI and the `\r`
68
+ * cross-reference switch recognise it.
69
+ *
70
+ * The levels are built here rather than through `createNumberingConfig`
71
+ * because that helper applies list indents; a numbered heading stays flush
72
+ * left and takes its indentation from the heading style.
73
+ */
74
+ export declare function createHeadingNumberingConfig(): {
75
+ levels: ILevelsOptions[];
76
+ reference: string;
77
+ };
78
+ /**
79
+ * The heading number as Word draws it in the document — the bare dotted number
80
+ * plus the trailing period `lvlText` ends with.
81
+ *
82
+ * A cached TOC entry has to reproduce that form exactly: Word rewrites the
83
+ * entry from the heading's own rendered text the first time it refreshes the
84
+ * field, and an entry cached as "1.1 Methods" would visibly shift to
85
+ * "1.1. Methods". Cross-references keep the bare number instead — Word's `\w`
86
+ * switch is defined as the paragraph number *without* trailing periods.
87
+ */
88
+ export declare function headingNumberLabel(number: string): string;
58
89
  /**
59
90
  * Registry for managing numbering configurations
60
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"numberingConfig.d.ts","sourceRoot":"","sources":["../../src/utils/numberingConfig.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,cAAc,EAA8B,MAAM,MAAM,CAAC;AAiFvE;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,oBAAoB,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAmFD;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,eAAe,GAAG;IAC9D,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB,CAmDA;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAY,GACnB;IAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CASjD;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAU,GAChB;IAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CASjD;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAGvB;IACF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAElE,OAAO,KAAK,KAAK,GAEhB;IAED,4EAA4E;IAC5E,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC;IAIlC;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAMzE;;OAEG;IACH,iBAAiB,CAAC,MAAM,GAAE,MAAe,GAAG,MAAM;IAIlD;;OAEG;IACH,MAAM,IAAI;QAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE;IAI3D;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,GAAG,CACD,SAAS,EAAE,MAAM,GAChB;QAAE,MAAM,EAAE,cAAc,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS;CAG/D;AAGD,eAAO,MAAM,uBAAuB,mBAA0B,CAAC"}
1
+ {"version":3,"file":"numberingConfig.d.ts","sourceRoot":"","sources":["../../src/utils/numberingConfig.ts"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@
2
2
  * Placeholder Processing System
3
3
  * Handles dynamic content replacement in text with support for rich text formatting
4
4
  */
5
- import { TextRun, ExternalHyperlink, InternalHyperlink, FootnoteReferenceRun, EndnoteReferenceRun } from 'docx';
5
+ import { TextRun, ExternalHyperlink, InternalHyperlink, FootnoteReferenceRun, EndnoteReferenceRun, SimpleField } from 'docx';
6
6
  import { TextStyle } from './textParser';
7
- export type PlaceholderChild = TextRun | ExternalHyperlink | InternalHyperlink | FootnoteReferenceRun | EndnoteReferenceRun;
7
+ export type PlaceholderChild = TextRun | ExternalHyperlink | InternalHyperlink | FootnoteReferenceRun | EndnoteReferenceRun | SimpleField;
8
8
  /**
9
9
  * Placeholder handler function type
10
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"placeholderProcessor.d.ts","sourceRoot":"","sources":["../../src/utils/placeholderProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,OAAO,EAEP,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACpB,MAAM,MAAM,CAAC;AACd,OAAO,EAIL,SAAS,EACV,MAAM,cAAc,CAAC;AAKtB,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,iBAAiB,GACjB,iBAAiB,GAEjB,oBAAoB,GACpB,mBAAmB,CAAC;AAExB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,CAAC,EAAE,kBAAkB,KAC1B,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAkCD;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAEhE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIhE;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIxD;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,EACzB,OAAO,GAAE,kBAAuB,GAC/B,gBAAgB,EAAE,CAgDpB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,EACzB,OAAO,GAAE,kBAAuB,EAChC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,gBAAgB,EAAE,CAyGpB;AAgBD;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CA4CpD"}
1
+ {"version":3,"file":"placeholderProcessor.d.ts","sourceRoot":"","sources":["../../src/utils/placeholderProcessor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,OAAO,EAEP,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,EACZ,MAAM,MAAM,CAAC;AACd,OAAO,EAIL,SAAS,EACV,MAAM,cAAc,CAAC;AAKtB,MAAM,MAAM,gBAAgB,GACxB,OAAO,GACP,iBAAiB,GACjB,iBAAiB,GAEjB,oBAAoB,GACpB,mBAAmB,GAEnB,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAC/B,QAAQ,CAAC,EAAE,kBAAkB,KAC1B,gBAAgB,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAkCD;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyC;IAEhE;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAIhE;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAIxD;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjC;;OAEG;IACH,MAAM,CAAC,kBAAkB,IAAI,MAAM,EAAE;IAIrC;;OAEG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,EACzB,OAAO,GAAE,kBAAuB,GAC/B,gBAAgB,EAAE,CAgDpB;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,EACzB,OAAO,GAAE,kBAAuB,EAChC,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,gBAAgB,EAAE,CAyGpB;AAgBD;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CA4CpD"}
@@ -108,4 +108,10 @@ export declare function buildTextRuns(text: string, commonProps: ReturnType<type
108
108
  noProof?: boolean;
109
109
  noProofWords?: string[];
110
110
  }): TextRun[];
111
+ /**
112
+ * True when the text carries a `[@id]` token. `createHeading` renders simple
113
+ * headings through a run builder that never reaches this parser, so it needs to
114
+ * know when a heading is not simple after all.
115
+ */
116
+ export declare function hasCrossReference(text: string): boolean;
111
117
  //# sourceMappingURL=textParser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"textParser.d.ts","sourceRoot":"","sources":["../../src/utils/textParser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAMR,MAAM,MAAM,CAAC;AACd,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EACD,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,YAAY,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,UAAU,GACV,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,YAAY,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACxE;AAaD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAY7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,EACvD,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,EAAE,CAoBX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,EACzB,OAAO,GAAE,oBAAyB,GACjC,gBAAgB,EAAE,CAoGpB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,SAAS,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;EAoBtE;AAyDD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EACnD,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACxD,OAAO,EAAE,CAiBX"}
1
+ {"version":3,"file":"textParser.d.ts","sourceRoot":"","sources":["../../src/utils/textParser.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAQR,MAAM,MAAM,CAAC;AACd,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAIhC,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EACD,QAAQ,GACR,QAAQ,GACR,OAAO,GACP,QAAQ,GACR,MAAM,GACN,SAAS,GACT,YAAY,GACZ,MAAM,GACN,MAAM,GACN,OAAO,GACP,aAAa,GACb,aAAa,GACb,UAAU,GACV,eAAe,GACf,cAAc,GACd,iBAAiB,GACjB,WAAW,GACX,YAAY,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAEF,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE;QACT,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IAEF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;CACxE;AAaD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAY7E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,EACvD,YAAY,CAAC,EAAE,MAAM,EAAE,GACtB,OAAO,EAAE,CAoBX;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CACrC,IAAI,EAAE,MAAM,EACZ,SAAS,GAAE,SAAc,EACzB,OAAO,GAAE,oBAAyB,GACjC,gBAAgB,EAAE,CAoGpB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,SAAS,EACpB,SAAS,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;;;;;;;;;EAoBtE;AAyDD;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EACnD,IAAI,GAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACxD,OAAO,EAAE,CAiBX;AAoGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@json-to-office/core-docx",
3
- "version": "0.36.1",
3
+ "version": "0.37.0",
4
4
  "description": "Core DOCX document generation engine",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -23,8 +23,8 @@
23
23
  "adm-zip": "0.5.16",
24
24
  "date-fns": "3.6.0",
25
25
  "probe-image-size": "7.2.3",
26
- "@json-to-office/shared": "^0.35.0",
27
- "@json-to-office/shared-docx": "^0.35.0"
26
+ "@json-to-office/shared-docx": "^0.37.0",
27
+ "@json-to-office/shared": "^0.35.0"
28
28
  },
29
29
  "peerDependencies": {
30
30
  "docx": "9.7.1"