@docx-editor.dev/core 2.19.1 → 2.20.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.
- package/dist/automation.cjs +1 -1
- package/dist/automation.d.ts +10 -9
- package/dist/automation.js +1 -1
- package/dist/binding.cjs +1 -1
- package/dist/binding.d.ts +8 -9
- package/dist/binding.js +1 -1
- package/dist/chunk-2H4ABRMB.cjs +20 -0
- package/dist/{chunk-NIVIC7PA.cjs → chunk-2HQXLL5L.cjs} +1 -1
- package/dist/chunk-3EZO3O6I.js +4 -0
- package/dist/{chunk-GWW5FOLJ.cjs → chunk-44SIVFJT.cjs} +5 -5
- package/dist/chunk-6UCDHGXI.js +1 -0
- package/dist/chunk-7VMVDRRU.js +2 -0
- package/dist/{chunk-2QU7QTM7.js → chunk-CAIWEQLC.js} +1 -1
- package/dist/{chunk-3JKOZBQ3.cjs → chunk-CEXC2VHI.cjs} +1 -1
- package/dist/chunk-CF3JR35B.js +11 -0
- package/dist/chunk-D2V4YBWJ.cjs +2 -0
- package/dist/chunk-DGSJZMAE.cjs +11 -0
- package/dist/chunk-EHBPYFRE.js +20 -0
- package/dist/chunk-GSEUM6AI.cjs +1 -0
- package/dist/chunk-H6WDEAOJ.js +18 -0
- package/dist/chunk-I6LSEDUL.cjs +18 -0
- package/dist/{chunk-3SU7UWCR.js → chunk-IW35GWJN.js} +1 -1
- package/dist/{chunk-BJQDNKEX.js → chunk-JRBGCIR2.js} +4 -4
- package/dist/chunk-K5HIOS6J.cjs +3 -0
- package/dist/chunk-KLQXP27K.js +3 -0
- package/dist/{chunk-RDKPMNN6.cjs → chunk-MZFFU66H.cjs} +1 -1
- package/dist/{chunk-TSDGKNV7.js → chunk-MZPNLIP3.js} +1 -1
- package/dist/{chunk-JWHXOJEU.cjs → chunk-OA6LFCTG.cjs} +2 -2
- package/dist/{chunk-BUNY5MRX.js → chunk-OHVJYJOA.js} +1 -1
- package/dist/{chunk-UOE4WKL7.js → chunk-P4TGGDK3.js} +1 -1
- package/dist/{chunk-7VO6BLKV.cjs → chunk-PIBYJZIH.cjs} +1 -1
- package/dist/{chunk-76F73CY6.cjs → chunk-WTILOUPG.cjs} +1 -1
- package/dist/collaboration/replication.cjs +1 -1
- package/dist/collaboration/replication.d.ts +3 -3
- package/dist/collaboration/replication.js +1 -1
- package/dist/collaboration.d.ts +3 -3
- package/dist/contracts/document.d.ts +2 -2
- package/dist/contracts/editor.d.ts +8 -9
- package/dist/contracts/modules.d.ts +5 -7
- package/dist/contracts/types.d.ts +1 -562
- package/dist/{custom-node-writes-BqIv94ei.d.ts → custom-node-writes-piokwVR5.d.ts} +2 -2
- package/dist/{document-protection-BL5zp8cU.d.ts → document-protection-C6RvCHx-.d.ts} +1 -1
- package/dist/{editor-WXbTSXx1.d.ts → editor-BgtcHulQ.d.ts} +19 -14
- package/dist/editor.cjs +1 -1
- package/dist/editor.css +1 -1
- package/dist/editor.d.ts +25 -27
- package/dist/editor.js +1 -1
- package/dist/export.cjs +2 -2
- package/dist/export.d.ts +12 -13
- package/dist/export.js +1 -1
- package/dist/{font-resolver-BSrKnTeR.d.ts → font-resolver-Bv2Z25-J.d.ts} +1 -1
- package/dist/{headless-document-view-C4ttQJ5H.d.ts → headless-document-view-DHKMN_3Y.d.ts} +2 -2
- package/dist/image-resources-C51LuAAu.d.ts +210 -0
- package/dist/{index-C3As-Xxp.d.ts → index-3lr8xXF8.d.ts} +14 -15
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +17 -18
- package/dist/index.js +1 -1
- package/dist/{layout-shaping-Dqu3JW3p.d.ts → layout-shaping-CKBUSaS7.d.ts} +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.d.ts +48 -19
- package/dist/layout.js +1 -1
- package/dist/{tree-package-fragment-1pdDnhZ_.d.ts → note-lifecycle-D4AOFCAt.d.ts} +142 -141
- package/dist/{note-properties-RjYgbmXe.d.ts → note-properties-CcXUgqr8.d.ts} +2 -2
- package/dist/{omml-equation-hcP9AUFX.d.ts → omml-equation-C5P6Ym3v.d.ts} +1 -1
- package/dist/output.cjs +1 -1
- package/dist/output.d.ts +7 -7
- package/dist/output.js +1 -1
- package/dist/{protocol-OdRd17KZ.d.ts → protocol-CsawNZkt.d.ts} +14 -4
- package/dist/{review-paragraph-order--jLHXIcd.d.ts → review-paragraph-order-BCIqjopY.d.ts} +2 -3
- package/dist/{revision-projection-BIHO_qvw.d.ts → revision-projection-BcRnC4Yj.d.ts} +1 -1
- package/dist/{semantic-cell-selection-lCYAVCCF.d.ts → semantic-cell-selection-R9wrenwR.d.ts} +4 -4
- package/dist/{semantic-interaction-0vQXcMZk.d.ts → semantic-interaction-B7beVwH7.d.ts} +1 -1
- package/dist/{semantic-paint-BSan4pBk.d.ts → semantic-paint-CLvHwf8y.d.ts} +2 -2
- package/dist/{semantic-records-ZcYuB4-H.d.ts → semantic-records-CbXwnS80.d.ts} +5 -4
- package/dist/store.cjs +1 -1
- package/dist/store.d.ts +13 -14
- package/dist/store.js +1 -1
- package/dist/{tree-session-contract-Cgn6fQ-M.d.ts → tree-session-contract-DTQxw2zL.d.ts} +5 -5
- package/dist/{tree-op-types-DbdM7fJV.d.ts → types-barrel-CEOy-Jv0.d.ts} +961 -210
- package/package.json +2 -2
- package/dist/chunk-5BI4SIHO.cjs +0 -1
- package/dist/chunk-6ESSCMXL.js +0 -2
- package/dist/chunk-6W4DIR4X.cjs +0 -2
- package/dist/chunk-AKQRKR2H.js +0 -1
- package/dist/chunk-FBWBSHC4.cjs +0 -11
- package/dist/chunk-IA7WTZHI.js +0 -11
- package/dist/chunk-IXGUCLER.js +0 -20
- package/dist/chunk-NDPLQG4Y.cjs +0 -18
- package/dist/chunk-NLGUL6QL.js +0 -3
- package/dist/chunk-OWUSDS3L.cjs +0 -20
- package/dist/chunk-TUCDPXBD.js +0 -18
- package/dist/chunk-VSCPFHTD.cjs +0 -3
- package/dist/chunk-ZUGTEKLM.js +0 -4
- package/dist/review-items-CJz-kAW8.d.ts +0 -370
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-C51LuAAu.js';
|
|
2
|
+
import { j as OoxmlPackage, O as OoxmlPart, i as OoxmlNode, a1 as OoxmlElement, at as OoxmlParagraphNode, au as OoxmlNoteNode, av as OoxmlContinuationSeparatorNode, aw as OoxmlEndnotesNode, ax as OoxmlFootnotesNode, ay as OoxmlNoteRefNode, az as OoxmlNoteReferenceNode, aA as OoxmlSeparatorNode, as as RevisionAttributionInput, aB as DrawingTreeDocOp, aC as ImpactClass, W as TreeDocOp, a5 as TreeOpRejection } from './types-barrel-CEOy-Jv0.js';
|
|
2
3
|
|
|
3
4
|
/** A freshly allocated drawing property id, or the reason one could not be minted. */
|
|
4
5
|
type DrawingPropertyIdResult = {
|
|
@@ -401,119 +402,6 @@ declare function notesPartHasId(part: OoxmlPart, noteId: number): boolean;
|
|
|
401
402
|
/** List normal (body) note ids in document order, bounded. */
|
|
402
403
|
declare function normalNoteIds(part: OoxmlPart): readonly number[];
|
|
403
404
|
|
|
404
|
-
/** How far a note lifecycle op reaches — which parts a caller must expect to have changed. */
|
|
405
|
-
type NoteLifecycleImpact = 'flow-structural' | 'global';
|
|
406
|
-
/**
|
|
407
|
-
* A note lifecycle mutation: insert, delete, convert, or set properties.
|
|
408
|
-
*
|
|
409
|
-
* Package-level rather than story-level, because every one of these touches the main document,
|
|
410
|
-
* the notes part, the document relationships AND `[Content_Types].xml` together.
|
|
411
|
-
*/
|
|
412
|
-
type NoteLifecycleOp = {
|
|
413
|
-
readonly op: 'insertNote';
|
|
414
|
-
readonly noteKind: NoteKind;
|
|
415
|
-
readonly paragraphId: string;
|
|
416
|
-
readonly offset: number;
|
|
417
|
-
/**
|
|
418
|
-
* Write the citing reference as a TRACKED insertion: the reference run goes inside a
|
|
419
|
-
* `w:ins` carrying this attribution. The note body stays plain — rejecting the
|
|
420
|
-
* reference removes it, and the orphaned body is swept by the same cascade an
|
|
421
|
-
* untracked reference deletion triggers.
|
|
422
|
-
*/
|
|
423
|
-
readonly revision?: RevisionAttributionInput;
|
|
424
|
-
} | {
|
|
425
|
-
readonly op: 'deleteNote';
|
|
426
|
-
readonly noteKind: NoteKind;
|
|
427
|
-
readonly noteId: number;
|
|
428
|
-
} | {
|
|
429
|
-
readonly op: 'convertNote';
|
|
430
|
-
readonly fromKind: NoteKind;
|
|
431
|
-
readonly noteId: number;
|
|
432
|
-
} | {
|
|
433
|
-
/**
|
|
434
|
-
* Convert every normal note of `fromKind` in document order. One atomic package
|
|
435
|
-
* transaction / undo unit with the same validation as repeated `convertNote`.
|
|
436
|
-
*/
|
|
437
|
-
readonly op: 'convertAllNotes';
|
|
438
|
-
readonly fromKind: NoteKind;
|
|
439
|
-
} | {
|
|
440
|
-
readonly op: 'setNoteProperties';
|
|
441
|
-
readonly scope: 'document' | 'section';
|
|
442
|
-
readonly sectionIndex?: number;
|
|
443
|
-
readonly footnote?: {
|
|
444
|
-
readonly numFmt?: string;
|
|
445
|
-
readonly numRestart?: string;
|
|
446
|
-
readonly position?: string;
|
|
447
|
-
readonly numStart?: number;
|
|
448
|
-
};
|
|
449
|
-
readonly endnote?: {
|
|
450
|
-
readonly numFmt?: string;
|
|
451
|
-
readonly numRestart?: string;
|
|
452
|
-
readonly position?: string;
|
|
453
|
-
readonly numStart?: number;
|
|
454
|
-
};
|
|
455
|
-
};
|
|
456
|
-
/** Why a note lifecycle op was refused. */
|
|
457
|
-
type NoteLifecycleRejection = 'invalidArgs' | 'invalid-property-value' | 'tree-invariant';
|
|
458
|
-
/**
|
|
459
|
-
* A new package, or a typed rejection.
|
|
460
|
-
*
|
|
461
|
-
* Application is PURE and all-or-nothing: there are no partial writes, so a refused op leaves the
|
|
462
|
-
* caller's package untouched rather than half-migrated across four parts.
|
|
463
|
-
*/
|
|
464
|
-
type NoteLifecycleResult = {
|
|
465
|
-
readonly ok: true;
|
|
466
|
-
readonly package: OoxmlPackage;
|
|
467
|
-
readonly impact: NoteLifecycleImpact;
|
|
468
|
-
readonly noteId?: number;
|
|
469
|
-
readonly noteKind?: NoteKind;
|
|
470
|
-
readonly createdPartName?: string;
|
|
471
|
-
} | {
|
|
472
|
-
readonly ok: false;
|
|
473
|
-
readonly reason: NoteLifecycleRejection;
|
|
474
|
-
readonly detail?: string;
|
|
475
|
-
};
|
|
476
|
-
/** Whether an op is a note lifecycle op rather than a story-level one. */
|
|
477
|
-
declare function isNoteLifecycleOp(op: {
|
|
478
|
-
readonly op: string;
|
|
479
|
-
}): op is NoteLifecycleOp;
|
|
480
|
-
/** Attribution and limits applied to one note lifecycle op. */
|
|
481
|
-
interface NoteLifecycleOptions {
|
|
482
|
-
/**
|
|
483
|
-
* Shared part + visited-node budget for reference scans. When omitted a fresh default
|
|
484
|
-
* budget is used. Truncation rejects the op with the original package unchanged.
|
|
485
|
-
*/
|
|
486
|
-
readonly scanBudget?: NoteReferenceScanBudget;
|
|
487
|
-
}
|
|
488
|
-
/**
|
|
489
|
-
* Apply one note lifecycle op atomically. Rejected ops leave the input package untouched.
|
|
490
|
-
*/
|
|
491
|
-
declare function applyNoteLifecycleOp(pkg: OoxmlPackage, op: NoteLifecycleOp, options?: NoteLifecycleOptions): NoteLifecycleResult;
|
|
492
|
-
/**
|
|
493
|
-
* How deleting text cascades into the notes it referenced.
|
|
494
|
-
*
|
|
495
|
-
* A note's body and the citation reaching it are one thing to a reader, so removing the reference
|
|
496
|
-
* must remove the body too or the notes part keeps an entry nothing points at.
|
|
497
|
-
*/
|
|
498
|
-
interface CascadeDeletedNoteReferencesOptions {
|
|
499
|
-
/**
|
|
500
|
-
* Independent full budgets per snapshot. When omitted each snapshot gets its own
|
|
501
|
-
* default budget — never share one counter across before/after walks.
|
|
502
|
-
*/
|
|
503
|
-
readonly beforeBudget?: NoteReferenceScanBudget;
|
|
504
|
-
readonly afterBudget?: NoteReferenceScanBudget;
|
|
505
|
-
}
|
|
506
|
-
/**
|
|
507
|
-
* Remove note bodies for references that disappeared between two package snapshots.
|
|
508
|
-
* Used when `deleteText` or `deleteBlock` removes a `noteReference` atom so body+ref stay
|
|
509
|
-
* one undo unit.
|
|
510
|
-
*
|
|
511
|
-
* Each snapshot gets an independent full visited/part budget. If either scan truncates
|
|
512
|
-
* the cascade fails closed so a hostile package cannot skip body deletion silently —
|
|
513
|
-
* without accidentally halving capacity by charging both walks to one counter.
|
|
514
|
-
*/
|
|
515
|
-
declare function cascadeDeletedNoteReferences(before: OoxmlPackage, after: OoxmlPackage, options?: CascadeDeletedNoteReferencesOptions): OoxmlPackage | null;
|
|
516
|
-
|
|
517
405
|
interface InsertImageInput {
|
|
518
406
|
readonly paragraphId: string;
|
|
519
407
|
readonly offset: number;
|
|
@@ -856,6 +744,40 @@ declare class TreeDocumentStore {
|
|
|
856
744
|
private publish;
|
|
857
745
|
}
|
|
858
746
|
|
|
747
|
+
/** Decoded fragment payloads above this cap are refused before any package work. */
|
|
748
|
+
declare const MAX_FRAGMENT_DECODED_BYTES: number;
|
|
749
|
+
interface FragmentPasteInput {
|
|
750
|
+
readonly paragraphId: string;
|
|
751
|
+
readonly offset: number;
|
|
752
|
+
/** The fragment package zip (from the clipboard codec or the HTML projection). */
|
|
753
|
+
readonly fragmentBytes: Uint8Array;
|
|
754
|
+
readonly lastMarkCovered: boolean;
|
|
755
|
+
/** Ops that clear the current selection first (the surface's deleteSelectionPlan). */
|
|
756
|
+
readonly priorOps?: readonly TreeDocOp[];
|
|
757
|
+
/**
|
|
758
|
+
* Collaboration actor for the ids this paste mints.
|
|
759
|
+
*
|
|
760
|
+
* A paste freshens three package-wide namespaces — bookmark `@w:id`, revision `@w:id` and
|
|
761
|
+
* `wp:docPr/@id` — and the merge reads the actor off the open transaction. Without one, two
|
|
762
|
+
* replicas pasting the same fragment from one snapshot mint the same numbers, and only the
|
|
763
|
+
* merged document shows it. Omitted (solo) keeps Word's dense sequences.
|
|
764
|
+
*/
|
|
765
|
+
readonly actorId?: string;
|
|
766
|
+
}
|
|
767
|
+
type FragmentPasteResult = (Extract<PackageTransactResult, {
|
|
768
|
+
ok: true;
|
|
769
|
+
}> & {
|
|
770
|
+
readonly blockCount: number;
|
|
771
|
+
}) | Extract<PackageTransactResult, {
|
|
772
|
+
ok: false;
|
|
773
|
+
}>;
|
|
774
|
+
/**
|
|
775
|
+
* Read the fragment through the bounded file-open trust boundary, merge its resources,
|
|
776
|
+
* and land its blocks — all inside one transaction. Any refusal leaves the document
|
|
777
|
+
* exactly as it was; the caller (the paste router) degrades to the next flavour.
|
|
778
|
+
*/
|
|
779
|
+
declare function applyFragmentPaste(store: TreePackageStore, scope: StoryScope, input: FragmentPasteInput): FragmentPasteResult;
|
|
780
|
+
|
|
859
781
|
/** Attribution stamped on one remote canonical publication. */
|
|
860
782
|
interface RemotePackageAttribution {
|
|
861
783
|
readonly origin: string;
|
|
@@ -1097,38 +1019,117 @@ declare class TreePackageStore {
|
|
|
1097
1019
|
private publishSynthetic;
|
|
1098
1020
|
}
|
|
1099
1021
|
|
|
1100
|
-
/**
|
|
1101
|
-
|
|
1102
|
-
|
|
1022
|
+
/** How far a note lifecycle op reaches — which parts a caller must expect to have changed. */
|
|
1023
|
+
type NoteLifecycleImpact = 'flow-structural' | 'global';
|
|
1024
|
+
/**
|
|
1025
|
+
* A note lifecycle mutation: insert, delete, convert, or set properties.
|
|
1026
|
+
*
|
|
1027
|
+
* Package-level rather than story-level, because every one of these touches the main document,
|
|
1028
|
+
* the notes part, the document relationships AND `[Content_Types].xml` together.
|
|
1029
|
+
*/
|
|
1030
|
+
type NoteLifecycleOp = {
|
|
1031
|
+
readonly op: 'insertNote';
|
|
1032
|
+
readonly noteKind: NoteKind;
|
|
1103
1033
|
readonly paragraphId: string;
|
|
1104
1034
|
readonly offset: number;
|
|
1105
|
-
/** The fragment package zip (from the clipboard codec or the HTML projection). */
|
|
1106
|
-
readonly fragmentBytes: Uint8Array;
|
|
1107
|
-
readonly lastMarkCovered: boolean;
|
|
1108
|
-
/** Ops that clear the current selection first (the surface's deleteSelectionPlan). */
|
|
1109
|
-
readonly priorOps?: readonly TreeDocOp[];
|
|
1110
1035
|
/**
|
|
1111
|
-
*
|
|
1112
|
-
*
|
|
1113
|
-
*
|
|
1114
|
-
*
|
|
1115
|
-
* replicas pasting the same fragment from one snapshot mint the same numbers, and only the
|
|
1116
|
-
* merged document shows it. Omitted (solo) keeps Word's dense sequences.
|
|
1036
|
+
* Write the citing reference as a TRACKED insertion: the reference run goes inside a
|
|
1037
|
+
* `w:ins` carrying this attribution. The note body stays plain — rejecting the
|
|
1038
|
+
* reference removes it, and the orphaned body is swept by the same cascade an
|
|
1039
|
+
* untracked reference deletion triggers.
|
|
1117
1040
|
*/
|
|
1118
|
-
readonly
|
|
1041
|
+
readonly revision?: RevisionAttributionInput;
|
|
1042
|
+
} | {
|
|
1043
|
+
readonly op: 'deleteNote';
|
|
1044
|
+
readonly noteKind: NoteKind;
|
|
1045
|
+
readonly noteId: number;
|
|
1046
|
+
} | {
|
|
1047
|
+
readonly op: 'convertNote';
|
|
1048
|
+
readonly fromKind: NoteKind;
|
|
1049
|
+
readonly noteId: number;
|
|
1050
|
+
} | {
|
|
1051
|
+
/**
|
|
1052
|
+
* Convert every normal note of `fromKind` in document order. One atomic package
|
|
1053
|
+
* transaction / undo unit with the same validation as repeated `convertNote`.
|
|
1054
|
+
*/
|
|
1055
|
+
readonly op: 'convertAllNotes';
|
|
1056
|
+
readonly fromKind: NoteKind;
|
|
1057
|
+
} | {
|
|
1058
|
+
readonly op: 'setNoteProperties';
|
|
1059
|
+
readonly scope: 'document' | 'section';
|
|
1060
|
+
readonly sectionIndex?: number;
|
|
1061
|
+
readonly footnote?: {
|
|
1062
|
+
readonly numFmt?: string;
|
|
1063
|
+
readonly numRestart?: string;
|
|
1064
|
+
readonly position?: string;
|
|
1065
|
+
readonly numStart?: number;
|
|
1066
|
+
};
|
|
1067
|
+
readonly endnote?: {
|
|
1068
|
+
readonly numFmt?: string;
|
|
1069
|
+
readonly numRestart?: string;
|
|
1070
|
+
readonly position?: string;
|
|
1071
|
+
readonly numStart?: number;
|
|
1072
|
+
};
|
|
1073
|
+
};
|
|
1074
|
+
/** Why a note lifecycle op was refused. */
|
|
1075
|
+
type NoteLifecycleRejection = 'invalidArgs' | 'invalid-property-value' | 'tree-invariant';
|
|
1076
|
+
/**
|
|
1077
|
+
* A new package, or a typed rejection.
|
|
1078
|
+
*
|
|
1079
|
+
* Application is PURE and all-or-nothing: there are no partial writes, so a refused op leaves the
|
|
1080
|
+
* caller's package untouched rather than half-migrated across four parts.
|
|
1081
|
+
*/
|
|
1082
|
+
type NoteLifecycleResult = {
|
|
1083
|
+
readonly ok: true;
|
|
1084
|
+
readonly package: OoxmlPackage;
|
|
1085
|
+
readonly impact: NoteLifecycleImpact;
|
|
1086
|
+
readonly noteId?: number;
|
|
1087
|
+
readonly noteKind?: NoteKind;
|
|
1088
|
+
readonly createdPartName?: string;
|
|
1089
|
+
} | {
|
|
1090
|
+
readonly ok: false;
|
|
1091
|
+
readonly reason: NoteLifecycleRejection;
|
|
1092
|
+
readonly detail?: string;
|
|
1093
|
+
};
|
|
1094
|
+
/** Whether an op is a note lifecycle op rather than a story-level one. */
|
|
1095
|
+
declare function isNoteLifecycleOp(op: {
|
|
1096
|
+
readonly op: string;
|
|
1097
|
+
}): op is NoteLifecycleOp;
|
|
1098
|
+
/** Attribution and limits applied to one note lifecycle op. */
|
|
1099
|
+
interface NoteLifecycleOptions {
|
|
1100
|
+
/**
|
|
1101
|
+
* Shared part + visited-node budget for reference scans. When omitted a fresh default
|
|
1102
|
+
* budget is used. Truncation rejects the op with the original package unchanged.
|
|
1103
|
+
*/
|
|
1104
|
+
readonly scanBudget?: NoteReferenceScanBudget;
|
|
1119
1105
|
}
|
|
1120
|
-
type FragmentPasteResult = (Extract<PackageTransactResult, {
|
|
1121
|
-
ok: true;
|
|
1122
|
-
}> & {
|
|
1123
|
-
readonly blockCount: number;
|
|
1124
|
-
}) | Extract<PackageTransactResult, {
|
|
1125
|
-
ok: false;
|
|
1126
|
-
}>;
|
|
1127
1106
|
/**
|
|
1128
|
-
*
|
|
1129
|
-
* and land its blocks — all inside one transaction. Any refusal leaves the document
|
|
1130
|
-
* exactly as it was; the caller (the paste router) degrades to the next flavour.
|
|
1107
|
+
* Apply one note lifecycle op atomically. Rejected ops leave the input package untouched.
|
|
1131
1108
|
*/
|
|
1132
|
-
declare function
|
|
1109
|
+
declare function applyNoteLifecycleOp(pkg: OoxmlPackage, op: NoteLifecycleOp, options?: NoteLifecycleOptions): NoteLifecycleResult;
|
|
1110
|
+
/**
|
|
1111
|
+
* How deleting text cascades into the notes it referenced.
|
|
1112
|
+
*
|
|
1113
|
+
* A note's body and the citation reaching it are one thing to a reader, so removing the reference
|
|
1114
|
+
* must remove the body too or the notes part keeps an entry nothing points at.
|
|
1115
|
+
*/
|
|
1116
|
+
interface CascadeDeletedNoteReferencesOptions {
|
|
1117
|
+
/**
|
|
1118
|
+
* Independent full budgets per snapshot. When omitted each snapshot gets its own
|
|
1119
|
+
* default budget — never share one counter across before/after walks.
|
|
1120
|
+
*/
|
|
1121
|
+
readonly beforeBudget?: NoteReferenceScanBudget;
|
|
1122
|
+
readonly afterBudget?: NoteReferenceScanBudget;
|
|
1123
|
+
}
|
|
1124
|
+
/**
|
|
1125
|
+
* Remove note bodies for references that disappeared between two package snapshots.
|
|
1126
|
+
* Used when `deleteText` or `deleteBlock` removes a `noteReference` atom so body+ref stay
|
|
1127
|
+
* one undo unit.
|
|
1128
|
+
*
|
|
1129
|
+
* Each snapshot gets an independent full visited/part budget. If either scan truncates
|
|
1130
|
+
* the cascade fails closed so a hostile package cannot skip body deletion silently —
|
|
1131
|
+
* without accidentally halving capacity by charging both walks to one counter.
|
|
1132
|
+
*/
|
|
1133
|
+
declare function cascadeDeletedNoteReferences(before: OoxmlPackage, after: OoxmlPackage, options?: CascadeDeletedNoteReferencesOptions): OoxmlPackage | null;
|
|
1133
1134
|
|
|
1134
|
-
export { type
|
|
1135
|
+
export { type TransactionContext as $, type ApplyImagePropertiesInput as A, type NoteDiagnosticCode as B, type CascadeDeletedNoteReferencesOptions as C, DEFAULT_MAX_EDITABLE_STORY_PARTS as D, type NoteLifecycleImpact as E, type FragmentPasteInput as F, type NoteLifecycleOp as G, type HeaderFooterVariant as H, type InsertImageInput as I, type NoteLifecycleOptions as J, type NoteLifecycleRejection as K, type NoteLifecycleResult as L, MAX_FRAGMENT_DECODED_BYTES as M, type NoteKind as N, type NoteReferenceHit as O, type NoteReferenceScanBudget as P, type NoteType as Q, type ReplaceImageOptions as R, type StoryScope as S, TreePackageStore as T, type PackageTransactResult as U, type RemotePackageAttribution as V, type StoryResolveResult as W, type TreeDocumentStoreOptions as X, type TreePackageStoreOptions as Y, type TreeStoryRef as Z, type TransactResult as _, type StoryTargetRejection as a, allocateDrawingPropertyId as a0, allocateNoteId as a1, applyFragmentPaste as a2, applyHeaderFooterLifecycleOp as a3, applyNoteLifecycleOp as a4, atomicNoteSpansOf as a5, cascadeDeletedNoteReferences as a6, collectNoteReferences as a7, collectPackageNoteReferences as a8, collectSectionPropertyNodes as a9, parseNoteScopeId as aA, resolveHeaderFooterParts as aB, resolveHeaderFooterPartsBySection as aC, resolveHeaderFooterResolutionBySection as aD, resolveNotesPart as aE, withBinaryPart as aF, withEmbeddedImage as aG, withoutUnreferencedImagePart as aH, createNoteReferenceScanBudget as aa, customMarkFollows as ab, diagnoseNoteReferences as ac, findNoteById as ad, formatNoteScopeId as ae, isContinuationSeparatorNode as af, isEndnotesNode as ag, isFootnotesNode as ah, isHeaderFooterLifecycleOp as ai, isNormalNote as aj, isNoteAtomNode as ak, isNoteLifecycleOp as al, isNoteNode as am, isNoteRefNode as an, isNoteReferenceNode as ao, isSeparatorNode as ap, normalNoteIds as aq, noteAtomText as ar, noteIdOf as as, noteKindOf as at, noteRefKindOf as au, noteReferenceKindOf as av, noteTypeOf as aw, notesOf as ax, notesPartHasId as ay, parseNoteId as az, type TreeModelChange as b, type HeaderFooterParts as c, type HeaderFooterSectionResolution as d, TreeDocumentStore as e, type SelectionMark as f, type TransactOptions as g, type ImageIntentResult as h, type FragmentPasteResult as i, type AtomicNoteSpan as j, type DrawingPropertyIdResult as k, type HeaderFooterKind as l, type HeaderFooterLifecycleImpact as m, type HeaderFooterLifecycleOp as n, type HeaderFooterLifecycleRejection as o, type HeaderFooterLifecycleResult as p, type HeaderFooterSlotMeta as q, MAX_NOTES_PER_PART as r, MAX_NOTE_REFERENCE_PARTS as s, MAX_NOTE_REFERENCE_SCAN as t, NOTE_ATOM_CHAR as u, NOTE_CONTINUATION_SEPARATOR_ID as v, NOTE_ID_MAX as w, NOTE_ID_MIN as x, NOTE_SEPARATOR_ID as y, type NoteDiagnostic as z };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { O as OoxmlPart,
|
|
1
|
+
import { O as OoxmlPart, i as OoxmlNode, j as OoxmlPackage } from './types-barrel-CEOy-Jv0.js';
|
|
2
2
|
|
|
3
3
|
/** `w:pos` — where a section's footnotes are laid out. */
|
|
4
4
|
type FootnotePosition = 'pageBottom' | 'beneathText' | 'sectEnd' | 'docEnd';
|
|
@@ -64,4 +64,4 @@ declare function isLegalFootnotePosition(pos: string): pos is FootnotePosition;
|
|
|
64
64
|
/** Whether a file-supplied string is a legal `w:numRestart` value. Narrows the type. */
|
|
65
65
|
declare function isLegalNumRestart(value: string): value is NoteNumRestart;
|
|
66
66
|
|
|
67
|
-
export { type AuthoredNoteProperties as A, DEFAULT_ENDNOTE_PROPERTIES as D, type EndnotePosition as E, type FootnotePosition as F, type NoteNumRestart as N, type
|
|
67
|
+
export { type AuthoredNoteProperties as A, DEFAULT_ENDNOTE_PROPERTIES as D, type EndnotePosition as E, type FootnotePosition as F, type NoteNumRestart as N, type ResolvedEndnoteProperties as R, DEFAULT_FOOTNOTE_PROPERTIES as a, type ResolvedFootnoteProperties as b, authoredDocumentEndnoteProperties as c, authoredDocumentFootnoteProperties as d, authoredEndnotePropertiesFromSectPr as e, authoredFootnotePropertiesFromSectPr as f, isLegalFootnotePosition as g, isLegalNumRestart as h, isLegalEndnotePosition as i, resolveFootnoteProperties as j, parseAuthoredNoteProperties as p, resolveEndnoteProperties as r, settingsPartOf as s };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { U as OoxmlNodeId, V as OoxmlGenericElementNode, i as OoxmlNode } from './types-barrel-CEOy-Jv0.js';
|
|
2
2
|
|
|
3
3
|
/** Office Math Markup Language namespace. */
|
|
4
4
|
declare const OFFICE_MATH_NAMESPACE_URI = "http://schemas.openxmlformats.org/officeDocument/2006/math";
|
package/dist/output.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkMZFFU66H_cjs=require('./chunk-MZFFU66H.cjs');require('./chunk-OA6LFCTG.cjs'),require('./chunk-I6LSEDUL.cjs'),require('./chunk-FGBADUSK.cjs'),require('./chunk-K5HIOS6J.cjs'),require('./chunk-DGSJZMAE.cjs');Object.defineProperty(exports,"DEFAULT_FIELD_SHADING",{enumerable:true,get:function(){return chunkMZFFU66H_cjs.j}});Object.defineProperty(exports,"paintSelectionOverlay",{enumerable:true,get:function(){return chunkMZFFU66H_cjs.o}});Object.defineProperty(exports,"paintSemanticLayout",{enumerable:true,get:function(){return chunkMZFFU66H_cjs.m}});
|
package/dist/output.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { R as ReviewAuthorInfo } from './semantic-paint-
|
|
2
|
-
export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles, p as paintSemanticLayout } from './semantic-paint-
|
|
3
|
-
import { S as SemanticLayout } from './semantic-records-
|
|
4
|
-
import './
|
|
5
|
-
import './
|
|
6
|
-
import './revision-projection-
|
|
7
|
-
import './omml-equation-
|
|
1
|
+
import { R as ReviewAuthorInfo } from './semantic-paint-CLvHwf8y.js';
|
|
2
|
+
export { D as DEFAULT_FIELD_SHADING, F as FieldShadingMode, P as PaintOptions, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles, p as paintSemanticLayout } from './semantic-paint-CLvHwf8y.js';
|
|
3
|
+
import { S as SemanticLayout } from './semantic-records-CbXwnS80.js';
|
|
4
|
+
import './image-resources-C51LuAAu.js';
|
|
5
|
+
import './types-barrel-CEOy-Jv0.js';
|
|
6
|
+
import './revision-projection-BcRnC4Yj.js';
|
|
7
|
+
import './omml-equation-C5P6Ym3v.js';
|
|
8
8
|
|
|
9
9
|
/** A rectangle in page-content coordinates, on a named page. */
|
|
10
10
|
interface OverlayRect {
|
package/dist/output.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{j as DEFAULT_FIELD_SHADING,o as paintSelectionOverlay,m as paintSemanticLayout}from'./chunk-
|
|
1
|
+
export{j as DEFAULT_FIELD_SHADING,o as paintSelectionOverlay,m as paintSemanticLayout}from'./chunk-MZPNLIP3.js';import'./chunk-3EZO3O6I.js';import'./chunk-RIYSCEFQ.js';import'./chunk-H6WDEAOJ.js';import'./chunk-VP7SDFCM.js';import'./chunk-KLQXP27K.js';import'./chunk-CF3JR35B.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { H as HeaderFooterVariant, N as NoteKind } from './
|
|
1
|
+
import { a6 as AutomationTableMutation, _ as RevisionBatchResult } from './types-barrel-CEOy-Jv0.js';
|
|
2
|
+
import { H as HeaderFooterVariant, N as NoteKind } from './note-lifecycle-D4AOFCAt.js';
|
|
3
3
|
|
|
4
4
|
interface AutomationInlinePictureRead {
|
|
5
5
|
readonly width: number;
|
|
@@ -912,6 +912,13 @@ type AutomationOperation = AutomationAuthoringOperation | {
|
|
|
912
912
|
readonly op: 'getRevisions';
|
|
913
913
|
readonly body: AutomationHandle;
|
|
914
914
|
}
|
|
915
|
+
/** Resolve eligible decisions in one story. Omit revisions to select every canonical decision. */
|
|
916
|
+
| {
|
|
917
|
+
readonly op: 'resolveRevisionBatch';
|
|
918
|
+
readonly body: AutomationHandle;
|
|
919
|
+
readonly action: 'accept' | 'reject';
|
|
920
|
+
readonly revisions?: readonly AutomationHandle[];
|
|
921
|
+
}
|
|
915
922
|
/** Word's name for the kind of change: `Insert`, `Delete`, `Replace`, `Property`, … */
|
|
916
923
|
| {
|
|
917
924
|
readonly op: 'getRevisionType';
|
|
@@ -1200,7 +1207,7 @@ type AutomationOperationKind = AutomationOperation['op'];
|
|
|
1200
1207
|
/** Operations that read. They never open a transaction. */
|
|
1201
1208
|
declare const AUTOMATION_QUERY_OPERATIONS: readonly ["getTables", "getTable", "getTableRows", "getTableCells", "getTableCell", "getTableCellProperties", "getTableCellBody", "getFields", "getField", "getInlinePictures", "getInlinePicture", "getChangeTrackingMode", "getDocument", "getBody", "getParagraphs", "getRange", "getSpanParagraphs", "getText", "getSpanText", "getParagraphId", "search", "getFont", "getParagraphFormat", "getStyle", "getSections", "getPageSetup", "getFurniture", "getNotes", "getNoteBody", "getNoteText", "getNoteKind", "getLists", "getListId", "getListById", "getListParagraphs", "getParagraphList", "getListLevel", "getHyperlink", "getBookmarks", "getBookmarkName", "getBookmarkRange", "getComments", "getCommentReplies", "getCommentId", "getCommentAuthor", "getCommentDate", "getCommentText", "getCommentRange", "getCommentResolved", "getRevisions", "getRevisionType", "getRevisionAuthor", "getRevisionDate", "getRevisionRange", "getContentControls", "getContentControlById", "getContentControlsByTag", "getContentControlsByTitle", "getContentControlTag", "getContentControlTitle", "getContentControlFileId", "getContentControlSubtype", "getContentControlLock", "getContentControlIsBound", "getContentControlPlaceholderShown", "getContentControlTemporary", "getContentControlText", "getContentControlParagraphs", "getContentControlRange"];
|
|
1202
1209
|
/** Operations that write. Every one of these goes through the single transaction path. */
|
|
1203
|
-
declare const AUTOMATION_COMMAND_OPERATIONS: readonly ["insertTable", "updateTable", "updateTableCell", "setInlinePicture", "deleteInlinePicture", "insertField", "setFieldCode", "deleteField", "updateFieldResult", "insertInlinePicture", "insertBreak", "setChangeTrackingMode", "proposeInsertion", "proposeDeletion", "proposeReplacement", "insertText", "replaceSpan", "replaceStoryBlocks", "insertParagraph", "splitParagraph", "deleteParagraph", "selectSpan", "selectBookmark", "setFont", "setParagraphFormat", "setStyle", "setPageSetup", "deleteNote", "setListLevel", "startNewList", "attachToList", "detachFromList", "setListLevelFormat", "insertListParagraph", "setHyperlink", "insertComment", "setCommentResolved", "replyToComment", "deleteComment", "acceptRevision", "rejectRevision", "acceptAllRevisions", "rejectAllRevisions", "setContentControlValue", "setContentControlProperties", "deleteContentControl", "insertContentControlText", "insertContentControl", "insertCustomNode"];
|
|
1210
|
+
declare const AUTOMATION_COMMAND_OPERATIONS: readonly ["insertTable", "updateTable", "updateTableCell", "setInlinePicture", "deleteInlinePicture", "insertField", "setFieldCode", "deleteField", "updateFieldResult", "insertInlinePicture", "insertBreak", "setChangeTrackingMode", "proposeInsertion", "proposeDeletion", "proposeReplacement", "insertText", "replaceSpan", "replaceStoryBlocks", "insertParagraph", "splitParagraph", "deleteParagraph", "selectSpan", "selectBookmark", "setFont", "setParagraphFormat", "setStyle", "setPageSetup", "deleteNote", "setListLevel", "startNewList", "attachToList", "detachFromList", "setListLevelFormat", "insertListParagraph", "setHyperlink", "insertComment", "setCommentResolved", "replyToComment", "deleteComment", "acceptRevision", "rejectRevision", "resolveRevisionBatch", "acceptAllRevisions", "rejectAllRevisions", "setContentControlValue", "setContentControlProperties", "deleteContentControl", "insertContentControlText", "insertContentControl", "insertCustomNode"];
|
|
1204
1211
|
/**
|
|
1205
1212
|
* Commands that commit as a PACKAGE transaction and therefore share a batch with nothing.
|
|
1206
1213
|
*
|
|
@@ -1210,7 +1217,7 @@ declare const AUTOMATION_COMMAND_OPERATIONS: readonly ["insertTable", "updateTab
|
|
|
1210
1217
|
* beside a story command, would be two commits: two revisions, and a moment where half the
|
|
1211
1218
|
* caller's batch is published. Refused while planning instead.
|
|
1212
1219
|
*/
|
|
1213
|
-
declare const AUTOMATION_SOLITARY_OPERATIONS: readonly ["insertTable", "insertInlinePicture", "insertBreak", "startNewList", "deleteNote", "insertComment", "setCommentResolved", "replyToComment", "insertCustomNode"];
|
|
1220
|
+
declare const AUTOMATION_SOLITARY_OPERATIONS: readonly ["resolveRevisionBatch", "insertTable", "insertInlinePicture", "insertBreak", "startNewList", "deleteNote", "insertComment", "setCommentResolved", "replyToComment", "insertCustomNode"];
|
|
1214
1221
|
/** Whether an operation must be the only one in its batch. */
|
|
1215
1222
|
declare function isSolitaryAutomationCommand(operation: AutomationOperation): boolean;
|
|
1216
1223
|
/** Whether an operation writes. Drives the query/command split inside one batch. */
|
|
@@ -1360,6 +1367,9 @@ interface AutomationSpan {
|
|
|
1360
1367
|
}
|
|
1361
1368
|
/** What an operation answered with. */
|
|
1362
1369
|
type AutomationValue = {
|
|
1370
|
+
readonly kind: 'revisionBatch';
|
|
1371
|
+
readonly result: RevisionBatchResult;
|
|
1372
|
+
} | {
|
|
1363
1373
|
readonly kind: 'field';
|
|
1364
1374
|
readonly field: {
|
|
1365
1375
|
readonly code: string;
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { C as CommentRecord } from './review-items-CJz-kAW8.js';
|
|
1
|
+
import { i as OoxmlNode, a1 as OoxmlElement, a2 as OoxmlContentControlNode, V as OoxmlGenericElementNode, a3 as OoxmlContentControlContentNode, C as CommentRecord, O as OoxmlPart } from './types-barrel-CEOy-Jv0.js';
|
|
3
2
|
|
|
4
3
|
/** Nested content-control wrappers deeper than this stop flattening; content stays preserved. */
|
|
5
4
|
declare const MAX_CONTENT_CONTROL_NESTING = 32;
|
|
@@ -76,4 +75,4 @@ declare function paragraphOrderOfPart(part: OoxmlPart): ReadonlyMap<string, numb
|
|
|
76
75
|
*/
|
|
77
76
|
declare function deepParagraphOrderOfPart(part: OoxmlPart): ReadonlyMap<string, number>;
|
|
78
77
|
|
|
79
|
-
export { MAX_CONTENT_CONTROL_NESTING as M, commentBodyText as a, commentInitials as b, collectFlowBlocks as c,
|
|
78
|
+
export { MAX_CONTENT_CONTROL_NESTING as M, commentBodyText as a, commentInitials as b, collectFlowBlocks as c, contentControlContentOf as d, deepParagraphOrderOfPart as e, isContentControlContent as f, walkParagraphInline as g, walkStoryBlocks as h, isContentControl as i, contentControlContentChildren as j, paragraphOrderOfPart as p, walkAllStoryParagraphs as w };
|
package/dist/{semantic-cell-selection-lCYAVCCF.d.ts → semantic-cell-selection-R9wrenwR.d.ts}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { O as OoxmlPart,
|
|
2
|
-
import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, a as StyleSpanRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-
|
|
3
|
-
import { R as RevisionDisplayMode, a as RevisionAuthorFilter } from './revision-projection-
|
|
4
|
-
import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-
|
|
1
|
+
import { O as OoxmlPart, a1 as OoxmlElement, i as OoxmlNode } from './types-barrel-CEOy-Jv0.js';
|
|
2
|
+
import { P as PageGeometry, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, L as LineRecord, a as StyleSpanRecord, S as SemanticLayout, C as ContentControlBoundaryRecord, b as TableRowFragmentRecord, c as TableCellFragmentRecord } from './semantic-records-CbXwnS80.js';
|
|
3
|
+
import { R as RevisionDisplayMode, a as RevisionAuthorFilter } from './revision-projection-BcRnC4Yj.js';
|
|
4
|
+
import { S as SemanticPosition, C as CaretGeometry, a as SemanticSelection } from './semantic-interaction-B7beVwH7.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Hard ceiling on sections enumerated from a document (matches write-path
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-
|
|
1
|
+
import { T as TextMeasurer, S as SemanticLayout, B as BlockFragmentRecord, C as ContentControlBoundaryRecord, a as StyleSpanRecord } from './semantic-records-CbXwnS80.js';
|
|
2
2
|
|
|
3
3
|
/** A caret position in the model. */
|
|
4
4
|
interface SemanticPosition {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-
|
|
2
|
-
import { V as ValidatedImageBytesHandle,
|
|
1
|
+
import { C as ContentControlBoundaryRecord, S as SemanticLayout } from './semantic-records-CbXwnS80.js';
|
|
2
|
+
import { V as ValidatedImageBytesHandle, R as RenderableImageMime } from './image-resources-C51LuAAu.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* Everything a host can say about ONE author's presentation. Every field is optional and
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { b as RevisionAttribution, R as RevisionDisplayMode, a as RevisionAuthorFilter } from './revision-projection-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { b as RevisionAttribution, R as RevisionDisplayMode, a as RevisionAuthorFilter } from './revision-projection-BcRnC4Yj.js';
|
|
2
|
+
import { a0 as OoxmlProperty, a1 as OoxmlElement, i as OoxmlNode, O as OoxmlPart, aG as TableBorderStyle, aH as DrawingAccessibility, aI as DrawingImageEffects, a7 as SourceCrop, aJ as DrawingTransform, aK as VectorShapeProjection, ai as DrawingHorizontalReferenceFrame, aj as DrawingVerticalReferenceFrame, a9 as ImageWrapTarget, a4 as DrawingProjection, aL as OoxmlDrawingNode } from './types-barrel-CEOy-Jv0.js';
|
|
3
|
+
import { I as ImageResourceState } from './image-resources-C51LuAAu.js';
|
|
4
|
+
import { O as OmmlEquationProjection } from './omml-equation-C5P6Ym3v.js';
|
|
4
5
|
|
|
5
6
|
/** Soft ceiling on abstractNum / num entries read from one part. */
|
|
6
7
|
declare const MAX_NUMBERING_DEFINITIONS = 512;
|
|
@@ -930,7 +931,7 @@ interface RefFieldSpec {
|
|
|
930
931
|
readonly bookmark: string;
|
|
931
932
|
/** `r` / `w` paint the target's number; `n` the same without context; null the range text. */
|
|
932
933
|
readonly numberSwitch: 'r' | 'w' | 'n' | null;
|
|
933
|
-
/** `\h`
|
|
934
|
+
/** `\h` marks a reference whose displayed result links to its bookmark. */
|
|
934
935
|
readonly hyperlink: boolean;
|
|
935
936
|
}
|
|
936
937
|
/**
|