@docx-editor.dev/core 2.5.0 → 2.6.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/THIRD_PARTY_NOTICES.md +39 -1
- package/dist/automation.cjs +1 -1
- package/dist/automation.d.cts +6 -6
- package/dist/automation.d.ts +6 -6
- package/dist/automation.js +1 -1
- package/dist/binding.cjs +1 -1
- package/dist/binding.d.cts +12 -12
- package/dist/binding.d.ts +12 -12
- package/dist/binding.js +1 -1
- package/dist/chunk-4GQXAXTZ.js +5 -0
- package/dist/chunk-DGUHCJPF.cjs +18 -0
- package/dist/{chunk-2GSRLGUI.cjs → chunk-DY3QVCWC.cjs} +6 -6
- package/dist/{chunk-45FL7KH4.js → chunk-E7BXJ4BF.js} +1 -1
- package/dist/chunk-F7Z6PWAZ.cjs +2 -0
- package/dist/chunk-JEMP5YI5.cjs +15 -0
- package/dist/{chunk-3FRSOOND.cjs → chunk-JZXK4DKV.cjs} +1 -1
- package/dist/chunk-NIGGABAA.js +15 -0
- package/dist/chunk-OPKOTVQQ.js +18 -0
- package/dist/{chunk-GOEBQ26R.js → chunk-PSZH2VXP.js} +1 -1
- package/dist/{chunk-LJIX4ZDF.js → chunk-R75OLPL6.js} +6 -6
- package/dist/{chunk-JDHTCMFA.cjs → chunk-SFMAIFEN.cjs} +1 -1
- package/dist/chunk-SKWYEZCO.cjs +5 -0
- package/dist/{chunk-YTZIGUXT.js → chunk-SMRD66T5.js} +1 -1
- package/dist/chunk-WAVN7MAT.js +2 -0
- package/dist/chunk-WU7PUTVA.js +2 -0
- package/dist/{chunk-OHJQ7GPZ.cjs → chunk-YMYCPY5Y.cjs} +1 -1
- package/dist/{content-control-walk-BeAFh6Xi.d.cts → content-control-walk-CbTqHq6O.d.cts} +1 -1
- package/dist/{content-control-walk-CQp8l6eS.d.ts → content-control-walk-D06GijR0.d.ts} +1 -1
- package/dist/contracts/editor.cjs +1 -1
- package/dist/contracts/editor.d.cts +10 -10
- package/dist/contracts/editor.d.ts +10 -10
- package/dist/contracts/editor.js +1 -1
- package/dist/contracts/interaction.d.cts +9 -9
- package/dist/contracts/interaction.d.ts +9 -9
- package/dist/contracts/modules.d.cts +5 -5
- package/dist/contracts/modules.d.ts +5 -5
- package/dist/contracts/types.d.cts +3 -1
- package/dist/contracts/types.d.ts +3 -1
- package/dist/{custom-node-writes-CIC_-wad.d.cts → custom-node-writes-D9G3GKQ7.d.cts} +7 -7
- package/dist/{custom-node-writes-2clI36T9.d.ts → custom-node-writes-tJw8U9MO.d.ts} +7 -7
- package/dist/dist-YFULGVS3.js +2 -0
- package/dist/{editor-CUul9IuY.d.cts → editor-BZEJL3vv.d.cts} +33 -19
- package/dist/{editor-DIwctMcU.d.ts → editor-D2zOJztO.d.ts} +33 -19
- package/dist/editor.cjs +1 -1
- package/dist/editor.css +375 -38
- package/dist/editor.d.cts +42 -26
- package/dist/editor.d.ts +42 -26
- package/dist/editor.js +1 -1
- package/dist/harfbuzz.wasm +0 -0
- package/dist/{hf-references-CAp1xTv6.d.ts → hf-references-BdjsQNE_.d.ts} +2 -2
- package/dist/{hf-references-BPET4tlK.d.cts → hf-references-CgEOSw3i.d.cts} +2 -2
- package/dist/{image-resources-CSlQmPIm.d.cts → image-resources-BaHz4QAd.d.cts} +10 -10
- package/dist/{image-resources-e13t-pgy.d.ts → image-resources-Cl5_cNi9.d.ts} +10 -10
- package/dist/{index-BUsYjxF5.d.ts → index-D8L8WrNF.d.ts} +111 -21
- package/dist/{index-8t44iXTY.d.cts → index-_xF7n_z0.d.cts} +111 -21
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +20 -20
- package/dist/index.d.ts +20 -20
- package/dist/index.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.d.cts +71 -23
- package/dist/layout.d.ts +71 -23
- package/dist/layout.js +1 -1
- package/dist/node-module-shim-TTKTT66I.js +1 -0
- package/dist/{note-nodes-CZQXU6Fg.d.ts → note-nodes-BPSTVDMr.d.ts} +1 -1
- package/dist/{note-nodes-B2wWES2L.d.cts → note-nodes-C6DLxlvj.d.cts} +1 -1
- package/dist/{ooxml-package-Cmbe_M04.d.cts → ooxml-package-CR5us6ad.d.cts} +115 -115
- package/dist/{ooxml-package-BrxTmTsZ.d.ts → ooxml-package-D_CtywTW.d.ts} +115 -115
- package/dist/{ooxml-tree-CG0odFyi.d.cts → ooxml-tree-BU0e3DVi.d.cts} +1 -1
- package/dist/{ooxml-tree-CG0odFyi.d.ts → ooxml-tree-BU0e3DVi.d.ts} +1 -1
- package/dist/output.cjs +1 -1
- package/dist/output.d.cts +22 -8
- package/dist/output.d.ts +22 -8
- package/dist/output.js +1 -1
- package/dist/{protocol-B5oSt08P.d.cts → protocol-CD7slqvl.d.cts} +2 -2
- package/dist/{protocol-ooK7PAXz.d.ts → protocol-DsbfgBwA.d.ts} +2 -2
- package/dist/{note-properties-Dhqkro--.d.cts → review-reads-Dr0CpW6u.d.cts} +67 -67
- package/dist/{note-properties-BS66XmcC.d.ts → review-reads-HDvoQXK2.d.ts} +67 -67
- package/dist/{review-support-Bl9sN8cv.d.ts → review-support-D4ZBdUXa.d.ts} +2 -2
- package/dist/{review-support-CHuJxHmz.d.cts → review-support-T-riLz4Y.d.cts} +2 -2
- package/dist/{revision-projection-u4nT52xT.d.ts → revision-projection-UKqvPa4-.d.ts} +1 -1
- package/dist/{revision-projection-DRZMzoLD.d.cts → revision-projection-WzlQGBJx.d.cts} +1 -1
- package/dist/{semantic-cell-selection-Dc-_enhm.d.ts → semantic-cell-selection-B5vfPz4Q.d.ts} +4 -4
- package/dist/{semantic-cell-selection-CdNQ-a9-.d.cts → semantic-cell-selection-BTQFpN0S.d.cts} +4 -4
- package/dist/{semantic-interaction-DgaWs-5w.d.cts → semantic-interaction-CDNEU_Tx.d.cts} +1 -1
- package/dist/{semantic-interaction-CCVwyw2A.d.ts → semantic-interaction-lvpzZRpA.d.ts} +1 -1
- package/dist/{semantic-paint-6iIB4fhx.d.cts → semantic-paint-BBPL3u5w.d.ts} +111 -3
- package/dist/{semantic-paint-CKIbFkQ7.d.ts → semantic-paint-IjbL-4CT.d.cts} +111 -3
- package/dist/{semantic-records-B-qbrnp2.d.ts → semantic-records-CdQvpUj1.d.ts} +4 -4
- package/dist/{semantic-records-Dq8SlCY8.d.cts → semantic-records-DEOs3_tE.d.cts} +4 -4
- package/dist/{shaped-measurer-Dx4llNhK.d.cts → shaped-measurer-C2SJAjV0.d.cts} +1 -1
- package/dist/{shaped-measurer-BT4FqYe9.d.ts → shaped-measurer-l4o5ITJ0.d.ts} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.d.cts +238 -238
- package/dist/store.d.ts +238 -238
- package/dist/store.js +1 -1
- package/dist/{tree-op-types-DOYNkKqD.d.cts → tree-op-types-CUCwPWjT.d.cts} +219 -219
- package/dist/{tree-op-types-CZw9QhWX.d.ts → tree-op-types-D0fTNBVW.d.ts} +219 -219
- package/dist/{tree-session-CF_EOhTW.d.ts → tree-session-CH1oA75f.d.ts} +61 -45
- package/dist/{tree-session-CtK3KgFU.d.cts → tree-session-b7bggR-S.d.cts} +61 -45
- package/dist/{tree-store-Jg-q7fyf.d.cts → tree-store-BqgeCa1Q.d.cts} +3 -3
- package/dist/{tree-store-9TaX-L0V.d.ts → tree-store-CIKASRHk.d.ts} +3 -3
- package/licenses/HarfBuzz-COPYING.txt +42 -0
- package/package.json +5 -3
- package/dist/chunk-2QIA75K3.js +0 -2
- package/dist/chunk-32NXPFYL.js +0 -5
- package/dist/chunk-3C533HSQ.cjs +0 -18
- package/dist/chunk-7GYF33B5.cjs +0 -2
- package/dist/chunk-H3DZP4LE.cjs +0 -5
- package/dist/chunk-L2GMLEHX.cjs +0 -14
- package/dist/chunk-QUZM6LWQ.js +0 -14
- package/dist/chunk-T252F4US.js +0 -18
package/dist/store.d.ts
CHANGED
|
@@ -1,241 +1,18 @@
|
|
|
1
|
-
import { e as ResourceLimits } from './image-resources-
|
|
2
|
-
export { C as CreateImageResourceCacheOptions, D as DEFAULT_IMAGE_RESOURCE_LIMITS, f as DEFAULT_LIMITS, H as HARD_CEILINGS, g as IMAGE_RESOURCE_HARD_CEILINGS, b as ImageDecodePort, c as ImageResourceLimits, h as ImageResourceLookup, I as ImageResourceState, M as MAX_SVG_SNIFF_BYTES, P as PreservedImageMime, S as SupportedImageMime, i as ValidatedRasterHeader, j as createImageResourceCache, k as hasBoundedSvgRoot, l as imageResourceLookupFor, m as liveDrawingReferenceCount, r as resolveImageResourceLimits, n as resolveLimits, s as sniffImageMime, o as validateGifHeader, p as validateJpegHeader, q as validatePngHeader, v as validateRasterHeader } from './image-resources-
|
|
3
|
-
import { O as OoxmlPackage, R as RelationshipRecord } from './ooxml-package-
|
|
4
|
-
export { C as ContentTypeError, c as ContentTypeIndex, d as ContentTypeRecords, D as DEFAULT_OOXML_PACKAGE_LIMITS, e as DEFAULT_ZIP_LIMITS, f as DefaultRecord, I as IMAGE_RELATIONSHIP_TYPE, g as ImageRelationshipResolution, h as IndexResult, N as NameRejection, i as NameResult, j as OoxmlExternalTarget, a as OoxmlPackageLimits, b as OoxmlPackageRejection, k as OoxmlPackageResult, l as OverrideRecord, m as RelationshipError, n as RelationshipSetResult, o as ResolveResult, p as ResolvedRelationship, T as TargetMode, Z as ZipLimits, q as ZipReadResult, r as ZipRejection, s as asciiFold, t as buildContentTypeIndex, u as buildRelationshipSet, v as detectDuplicateNames, w as extensionKey, x as isValidMime, y as normalizePartName, z as partNameKey, A as readOoxmlPackage, B as readZip, E as resolveContentType, F as resolveImageRelationship, G as resolveInternalTarget, H as resolveRelationship, J as validateExternalTarget, K as withPart, L as writeOoxmlPackage, M as writeZip } from './ooxml-package-
|
|
5
|
-
import { e as OoxmlPart, O as OoxmlNode, r as OoxmlInvariantResult,
|
|
6
|
-
export { y as OOXML_NODE_IDENTITY_RULES, z as OoxmlBodyNode, A as OoxmlBookmarkEndNode, B as OoxmlBookmarkStartNode, C as OoxmlContentControlCalendarNode, D as OoxmlContentControlCheckboxNode, E as OoxmlContentControlCheckedNode, F as OoxmlContentControlCheckedStateNode, G as OoxmlContentControlComboBoxNode, d as OoxmlContentControlContentNode, H as OoxmlContentControlDataBindingNode, I as OoxmlContentControlDateFormatNode, J as OoxmlContentControlDateNode, K as OoxmlContentControlDropDownListNode,
|
|
7
|
-
export { e as BookmarkAnchor, B as BookmarkIndex, f as CascadeDeletedNoteReferencesOptions, g as CustomNodePayloadRead, h as CustomNodePayloadWrite, b as CustomNodeSweepOutcome, i as CustomNodeSweepResult, j as CustomNodeWriteRejection, C as CustomNodeWriteResult, k as DEFAULT_MAX_EDITABLE_STORY_PARTS, D as DocumentTrackingSettings, l as DrawingPropertyIdResult, E as EmbeddedFont, F as FontStyleKey, H as HeaderFooterLifecycleImpact, m as HeaderFooterLifecycleOp, n as HeaderFooterLifecycleRejection, o as HeaderFooterLifecycleResult, I as InsertCustomNodeWrite, L as ListKind, M as MAX_CUSTOM_NODE_LABEL_LENGTH, p as MAX_CUSTOM_NODE_PAYLOAD_LENGTH, q as MAX_NOTE_REFERENCE_PARTS, r as MAX_NOTE_REFERENCE_SCAN, N as NO_TRACKING_SETTINGS, s as NoteDiagnostic, t as NoteDiagnosticCode, u as NoteLifecycleImpact, v as NoteLifecycleOp, w as NoteLifecycleOptions, x as NoteLifecycleRejection, y as NoteLifecycleResult, z as NoteReferenceHit, G as NoteReferenceScanBudget, P as PackageTransactResult, J as ReadEmbeddedFontsOptions, K as StoryResolveResult, S as StoryScope, a as StoryTargetRejection, T as TreePackageStore, O as TreePackageStoreOptions, Q as allocateDrawingPropertyId, U as applyHeaderFooterLifecycleOp, V as applyNoteLifecycleOp, W as buildBookmarkIndex, X as cascadeDeletedNoteReferences, Y as collectNoteReferences, Z as collectPackageNoteReferences, _ as createNoteReferenceScanBudget, $ as customNodePayloadsByControl, a0 as customNodePayloadsOf, a1 as deobfuscateFont, a2 as diagnoseNoteReferences, a3 as ensureListDefinition, a4 as ensureNumberingLevel, a5 as insertCustomNodeWrite, a6 as isHeaderFooterLifecycleOp, a7 as isNoteLifecycleOp, a8 as normalNoteIds, a9 as notesPartHasId, aa as readEmbeddedFonts, ab as readTrackingSettings, ac as removeCustomNodeWrite, ad as resolveNotesPart, ae as sweepCustomNodePayloads, af as withBinaryPart, ag as withEmbeddedImage, ah as withoutUnreferencedImagePart } from './custom-node-writes-
|
|
8
|
-
export { c as HeaderFooterKind, a as HeaderFooterParts, b as HeaderFooterSectionResolution, d as HeaderFooterSlotMeta, H as HeaderFooterVariant, e as collectSectionPropertyNodes, r as resolveHeaderFooterParts, f as resolveHeaderFooterPartsBySection, g as resolveHeaderFooterResolutionBySection } from './hf-references-
|
|
9
|
-
export { c as collectFlowBlocks, d as contentControlContentOf, i as isContentControl, b as isContentControlContent, w as walkAllStoryParagraphs, e as walkParagraphInline, f as walkStoryBlocks } from './content-control-walk-
|
|
10
|
-
import { T as TreeDocOp, a as TreeOpRejection, q as TreeOpResult, O as OoxmlProperty,
|
|
11
|
-
export { A as ACCEPTED_PARAGRAPH_PROPERTIES, r as ACCEPTED_RUN_PROPERTIES, s as CONTENT_CONTROL_ID_MAX, t as CONTENT_CONTROL_PROPERTY_ORDER, u as ContentControlCheckbox, v as ContentControlCheckboxState, p as ContentControlDataBinding, w as ContentControlDateFormat, x as ContentControlEntry, C as ContentControlKind, n as ContentControlLevel, y as ContentControlListItem, o as ContentControlLock, z as ContentControlProperties, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, H as HYPERLINK_RELATIONSHIP_TYPE, B as HyperlinkKind, E as HyperlinkTarget,
|
|
12
|
-
export { A as AtomicNoteSpan, M as MAX_NOTES_PER_PART, a as NOTE_ATOM_CHAR, b as NOTE_CONTINUATION_SEPARATOR_ID, c as NOTE_ID_MAX, d as NOTE_ID_MIN, e as NOTE_SEPARATOR_ID, N as NoteKind, f as NoteType, g as allocateNoteId, h as atomicNoteSpansOf, i as customMarkFollows, j as findNoteById, k as formatNoteScopeId, l as isContinuationSeparatorNode, m as isEndnotesNode, o as isFootnotesNode, p as isNormalNote, q as isNoteAtomNode, r as isNoteNode, s as isNoteRefNode, t as isNoteReferenceNode, u as isSeparatorNode, v as noteAtomText, w as noteIdOf, x as noteKindOf, y as noteRefKindOf, z as noteReferenceKindOf, n as noteTypeOf, B as notesOf, C as parseNoteId, D as parseNoteScopeId } from './note-nodes-
|
|
13
|
-
export { A as AuthoredNoteProperties, C as CommentAnchor, b as CommentPosition, c as CommentRecord, d as CommentThreadState, D as DEFAULT_ENDNOTE_PROPERTIES, e as DEFAULT_FOOTNOTE_PROPERTIES, E as EndnotePosition, F as FootnotePosition, L as LinkableReviewItem, N as NoteNumRestart, a as ResolvedEndnoteProperties, R as ResolvedFootnoteProperties, f as ReviewCommentItem, g as ReviewItem, h as ReviewModelInput, i as ReviewPosition, j as ReviewRange, k as ReviewRevisionItem, l as ReviewRevisionKind, W as W15_NAMESPACE_URI, m as authoredDocumentEndnoteProperties, n as authoredDocumentFootnoteProperties, o as authoredEndnotePropertiesFromSectPr, q as authoredFootnotePropertiesFromSectPr, r as collectReviewItems, s as commentAnchorsOfStory, t as commentBodyText, u as commentInitials, v as commentItemsOf, w as commentsOfPart, x as deepParagraphOrderOfPart, y as firstReviewRange, z as hasAnyComment, B as isLegalEndnotePosition, G as isLegalFootnotePosition, H as isLegalNumRestart, I as linkRevisionReplies, p as paragraphOrderOfPart, J as parseAuthoredNoteProperties, K as resolveEndnoteProperties, M as resolveFootnoteProperties, O as reviewItemKey, P as reviewItemRanges, Q as revisionItemsOf, S as settingsPartOf, T as threadStateOfPart } from './
|
|
14
|
-
import { T as TreeModelChange, b as TreeDocumentStore } from './tree-store-
|
|
15
|
-
export { D as DocumentProperties, S as SelectionMark, f as TreeDocumentStoreOptions, a as TreeStoryRef, d as TreeTransactOptions, g as TreeTransactResult, c as TreeTransactionContext } from './tree-store-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Serialize normalized XML from a canonical part using repository-controlled
|
|
19
|
-
* prefixes and validated, escaped names and values. This does not yet replace
|
|
20
|
-
* writeDocx; package integration belongs to the subsequent migration pass.
|
|
21
|
-
*/
|
|
22
|
-
declare function serializeOoxmlPart(part: OoxmlPart): string;
|
|
23
|
-
/** Repository-owned namespace-aware semantic XML oracle. */
|
|
24
|
-
declare function canonicalOoxmlFingerprint(value: OoxmlPart | OoxmlNode): string;
|
|
25
|
-
/**
|
|
26
|
-
* Structural equality of two canonical trees, ignoring node ids.
|
|
27
|
-
*
|
|
28
|
-
* Ids differ between two parses of the same bytes, so comparing them would report every reopen as
|
|
29
|
-
* a change. This compares what the document SAYS.
|
|
30
|
-
*/
|
|
31
|
-
declare function ooxmlTreesEqual(left: OoxmlPart | OoxmlNode, right: OoxmlPart | OoxmlNode): boolean;
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Validate a parser-created or copy-modified immutable part before publication.
|
|
35
|
-
* Future tree-edit primitives can retain shared nodes and their IDs, while any
|
|
36
|
-
* replacement chooses explicitly whether to retain or allocate identity.
|
|
37
|
-
*/
|
|
38
|
-
declare function validateOoxmlPart(part: OoxmlPart): OoxmlInvariantResult;
|
|
39
|
-
|
|
40
|
-
/** An edited part, or the invariant violations that rejected the edit. */
|
|
41
|
-
type OoxmlEditResult = {
|
|
42
|
-
readonly ok: true;
|
|
43
|
-
readonly part: OoxmlPart;
|
|
44
|
-
} | {
|
|
45
|
-
readonly ok: false;
|
|
46
|
-
readonly issues: readonly OoxmlInvariantIssue[];
|
|
47
|
-
};
|
|
48
|
-
/**
|
|
49
|
-
* How an edit primitive validates its result.
|
|
50
|
-
*
|
|
51
|
-
* By default every primitive runs the full-part invariant validation before handing its
|
|
52
|
-
* result back — the safe reading for an isolated call. A TRANSACTION applying many ops pays
|
|
53
|
-
* that full-tree walk once per primitive, which is what made a hundred-paragraph paste
|
|
54
|
-
* quadratic; it defers instead, and runs the same validation ONCE on the final tree before
|
|
55
|
-
* anything is published. Deferring is only sound for a caller that owns a commit boundary:
|
|
56
|
-
* nothing may escape between the unvalidated intermediate and the validated result.
|
|
57
|
-
*/
|
|
58
|
-
interface EditOptions {
|
|
59
|
-
readonly deferValidation?: boolean;
|
|
60
|
-
}
|
|
61
|
-
/** Every node id currently present in the part. */
|
|
62
|
-
declare function collectNodeIds(part: OoxmlPart): Set<string>;
|
|
63
|
-
/**
|
|
64
|
-
* Mint ids for nodes an edit introduces.
|
|
65
|
-
*
|
|
66
|
-
* Deterministic and collision-checked against the whole part: a structural-path id from the
|
|
67
|
-
* original parse (`/word/document.xml#0.1.2`) and a minted one (`/word/document.xml#new:3`)
|
|
68
|
-
* can never coincide, and the counter skips anything already taken so repeated edits in one
|
|
69
|
-
* session stay unique.
|
|
70
|
-
*
|
|
71
|
-
* Checks the part's node index directly rather than copying every id into a fresh set: the
|
|
72
|
-
* copy was O(document) per op, and an allocator is created for every op.
|
|
73
|
-
*/
|
|
74
|
-
declare function createNodeIdAllocator(part: OoxmlPart): () => string;
|
|
75
|
-
/** Whether a node id exists in the part. */
|
|
76
|
-
declare function hasNode(part: OoxmlPart, nodeId: string): boolean;
|
|
77
|
-
/** Read a node back out of a part by id. */
|
|
78
|
-
declare function findNode(part: OoxmlPart, nodeId: string): OoxmlNode | null;
|
|
79
|
-
/** The element that holds a node, or null for the root and for unknown ids. */
|
|
80
|
-
declare function parentNodeOf(part: OoxmlPart, nodeId: string): OoxmlElement | null;
|
|
81
|
-
/** Replace one node's children wholesale. */
|
|
82
|
-
declare function replaceChildren(part: OoxmlPart, nodeId: string, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
|
|
83
|
-
/** Insert children into a node at `index` (clamped to the child list). */
|
|
84
|
-
declare function insertChildren(part: OoxmlPart, nodeId: string, index: number, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
|
|
85
|
-
/** Replace one node with another, keeping its position among its siblings. */
|
|
86
|
-
declare function replaceNode(part: OoxmlPart, nodeId: string, replacement: OoxmlNode, options?: EditOptions): OoxmlEditResult;
|
|
87
|
-
/** Remove a node and its subtree. */
|
|
88
|
-
declare function removeNode(part: OoxmlPart, nodeId: string, options?: EditOptions): OoxmlEditResult;
|
|
89
|
-
/**
|
|
90
|
-
* Apply several primitives as ONE atomic step.
|
|
91
|
-
*
|
|
92
|
-
* Each edit runs against the result of the previous one, and the whole sequence is
|
|
93
|
-
* validated once at the end. If any step fails, the ORIGINAL part is what the caller keeps
|
|
94
|
-
* — there is no partially-edited intermediate to publish. This is the shape a multi-`DocOp`
|
|
95
|
-
* store transaction needs.
|
|
96
|
-
*/
|
|
97
|
-
declare function applyEdits(part: OoxmlPart, edits: readonly ((current: OoxmlPart) => OoxmlEditResult)[], options?: EditOptions): OoxmlEditResult;
|
|
98
|
-
|
|
99
|
-
/** One addressable unit of paragraph text: text, tab, hard break, or atomic field. */
|
|
100
|
-
interface Segment {
|
|
101
|
-
readonly runId: string;
|
|
102
|
-
readonly node: OoxmlNode;
|
|
103
|
-
readonly start: number;
|
|
104
|
-
readonly end: number;
|
|
105
|
-
/**
|
|
106
|
-
* When set, deleting this segment removes every listed node id in one step (atomic
|
|
107
|
-
* field begin→end or `fldSimple`). Absent for ordinary text/tab/break segments.
|
|
108
|
-
*/
|
|
109
|
-
readonly removeNodeIds?: readonly string[];
|
|
110
|
-
/**
|
|
111
|
-
* When set, run formatting for this atom targets these runs (field result ownership),
|
|
112
|
-
* not necessarily `runId`. Absent for ordinary text/tab/break segments.
|
|
113
|
-
*/
|
|
114
|
-
readonly formatRunIds?: readonly string[];
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Flatten a paragraph into UTF-16 addressable segments, in document order.
|
|
118
|
-
*
|
|
119
|
-
* A HYPERLINK's runs are addressed too. `w:hyperlink` is a run container, not a leaf, and
|
|
120
|
-
* the characters inside a link are ordinary paragraph text: the user selects them, types
|
|
121
|
-
* over them and deletes them like any other. Skipping the container — which is what
|
|
122
|
-
* iterating only direct `w:r` children did — left every link's text with no offsets at all,
|
|
123
|
-
* so `paragraphTextOf` read "Visit or ." for a sentence that says "Visit Example.com or
|
|
124
|
-
* Anthropic's website." and layout, selection and the ops all agreed on the wrong string.
|
|
125
|
-
*
|
|
126
|
-
* Inline CONTENT CONTROLS are the same class of wrapper: their `w:sdtContent` runs join the
|
|
127
|
-
* paragraph's offset stream with no break opportunity at the boundary. Nesting is bounded
|
|
128
|
-
* (`MAX_CONTENT_CONTROL_NESTING`); beyond the bound the wrapper is opaque so recursion
|
|
129
|
-
* cannot exhaust the stack.
|
|
130
|
-
*
|
|
131
|
-
* `runId` stays the id of the run the content actually lives in, at whatever depth: the
|
|
132
|
-
* appliers resolve it with `findNode` and rebuild that run's children, so nesting costs them
|
|
133
|
-
* nothing.
|
|
134
|
-
*/
|
|
135
|
-
declare function segmentsOf(paragraph: OoxmlParagraphNode): Segment[];
|
|
136
|
-
/** Half-open `[start, end)` of one node in its paragraph's model offset space. */
|
|
137
|
-
interface OffsetSpan {
|
|
138
|
-
readonly start: number;
|
|
139
|
-
readonly end: number;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Every node's place in the paragraph's model offset space, from the SAME walk `segmentsOf`
|
|
143
|
-
* uses.
|
|
144
|
-
*
|
|
145
|
-
* The offset model has exactly one authority, and this is how a caller borrows it. Three
|
|
146
|
-
* private walkers used to re-derive it — one in the tracked-change writer, one in the comment
|
|
147
|
-
* anchor reader, one in the review queue — and all three disagreed with `segmentsOf` and with
|
|
148
|
-
* each other: none gave a note reference or an atomic field its length of one, one counted a
|
|
149
|
-
* field's instruction text as visible characters, and one never descended into `w:hyperlink`
|
|
150
|
-
* at all. The consequences were an anchor short by a link's length, two unrelated comments
|
|
151
|
-
* threaded onto one zero-width offset, and a tracked insert landing a character out in any
|
|
152
|
-
* paragraph carrying a footnote. Patching each walker only resets the clock on the next drift.
|
|
153
|
-
*
|
|
154
|
-
* A node the walk never reaches — content under a `generic` container, or past the nesting cap
|
|
155
|
-
* — has NO span, and {@link ParagraphOffsetIndex.lengthOf} reports zero for it. That is the
|
|
156
|
-
* same answer `segmentsOf` gives: it contributes no addressable characters.
|
|
157
|
-
*/
|
|
158
|
-
interface ParagraphOffsetIndex {
|
|
159
|
-
/** The paragraph's own length, identical to {@link paragraphLength}. */
|
|
160
|
-
readonly length: number;
|
|
161
|
-
readonly segments: readonly Segment[];
|
|
162
|
-
/** Where a node sits, or null when the offset walk never reached it. */
|
|
163
|
-
spanOf(node: OoxmlNode | string): OffsetSpan | null;
|
|
164
|
-
/** A node's model length: `end - start` of its span, and 0 when it has none. */
|
|
165
|
-
lengthOf(node: OoxmlNode | string): number;
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* THE paragraph offset authority: maps a paragraph's UTF-16 offsets to the nodes holding them.
|
|
169
|
-
*
|
|
170
|
-
* One authority on purpose. An atomic field spans many nodes but is ONE unit to an offset, and a
|
|
171
|
-
* second implementation that disagreed would place edits inside content that cannot be split.
|
|
172
|
-
*/
|
|
173
|
-
declare function paragraphOffsetIndex(paragraph: OoxmlParagraphNode): ParagraphOffsetIndex;
|
|
174
|
-
/** One inline content control's identity and the UTF-16 span its content covers. */
|
|
175
|
-
interface InlineControlSpan {
|
|
176
|
-
readonly controlId: string;
|
|
177
|
-
readonly start: number;
|
|
178
|
-
readonly end: number;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* The innermost inline content control whose content ends exactly at `offset` — the caret
|
|
182
|
-
* at its right outer edge. What Backspace consults to delete the node as ONE unit
|
|
183
|
-
* (pro-review-and-custom-nodes 4.6): deleting its last character from outside would either
|
|
184
|
-
* strip one letter from a content-locked label (refused, so the key looks dead) or leave a
|
|
185
|
-
* half-deleted chip whose tag still claims the full payload.
|
|
186
|
-
*/
|
|
187
|
-
declare function inlineControlEndingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
|
|
188
|
-
/** The forward-delete mirror: the control whose content STARTS exactly at `offset`. */
|
|
189
|
-
declare function inlineControlStartingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
|
|
190
|
-
|
|
191
|
-
/** Structural validation, run before any tree work so a rejection changes nothing. */
|
|
192
|
-
declare function validateTreeOp(part: OoxmlPart, op: TreeDocOp): TreeOpRejection | null;
|
|
193
|
-
|
|
194
|
-
interface RevisionSite {
|
|
195
|
-
readonly node: OoxmlElement;
|
|
196
|
-
readonly parent: OoxmlElement | null;
|
|
197
|
-
/** True when this site cannot be resolved and the whole op must refuse. */
|
|
198
|
-
readonly refused: boolean;
|
|
199
|
-
/** True for `w:pPr/w:rPr/w:ins|w:del` — the paragraph MARK, not content. */
|
|
200
|
-
readonly paragraphMark: boolean;
|
|
201
|
-
/** True for `w:rPrChange` / `w:pPrChange`. */
|
|
202
|
-
readonly propertyChange: boolean;
|
|
203
|
-
/**
|
|
204
|
-
* How many content-revision wrappers ENCLOSE this one, counted within its own paragraph.
|
|
205
|
-
*
|
|
206
|
-
* Revisions nest for real: `w:ins` wrapping `w:del` is content one reviewer added and another
|
|
207
|
-
* struck, and both stay pending because each author has to be answered separately. The two
|
|
208
|
-
* wrappers then cover exactly the same characters, so a range cannot tell them apart and
|
|
209
|
-
* "which change is this text under" has only one honest answer — the innermost one, which is
|
|
210
|
-
* the change that decides what the reader is looking at.
|
|
211
|
-
*
|
|
212
|
-
* Relative to the paragraph or table subtree, which is the unit the site walk memoizes. That
|
|
213
|
-
* is enough and it is what keeps the memo valid: a content revision cannot enclose a
|
|
214
|
-
* paragraph, and two sites can only cover one position if they are in the same paragraph.
|
|
215
|
-
*/
|
|
216
|
-
readonly nesting: number;
|
|
217
|
-
}
|
|
218
|
-
/** Every revision-bearing element in the part. */
|
|
219
|
-
declare function collectRevisionSites(part: OoxmlPart): RevisionSite[];
|
|
220
|
-
|
|
221
|
-
/** The `w:p` a node sits inside, and the model offset it starts at within that paragraph. */
|
|
222
|
-
interface SiteLocation {
|
|
223
|
-
readonly paragraphId: string;
|
|
224
|
-
readonly start: number;
|
|
225
|
-
readonly end: number;
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Locate every revision site in one walk.
|
|
229
|
-
*
|
|
230
|
-
* One walk rather than a lookup per site: `resolveRevisions` learned the same lesson the hard
|
|
231
|
-
* way, where a per-site tree walk inside a per-site loop made accept-all quadratic.
|
|
232
|
-
*
|
|
233
|
-
* Offsets come from `paragraphOffsetIndex`, which is `segmentsOf`'s walk. A private one here
|
|
234
|
-
* measured a run by summing its text and gave a note reference, an atomic field and a field's
|
|
235
|
-
* instruction text the wrong lengths, so every card in a paragraph holding one reported a
|
|
236
|
-
* range the caret and the ops disagreed with.
|
|
237
|
-
*/
|
|
238
|
-
declare function locateSites(part: OoxmlPart): ReadonlyMap<string, SiteLocation>;
|
|
1
|
+
import { e as ResourceLimits } from './image-resources-Cl5_cNi9.js';
|
|
2
|
+
export { C as CreateImageResourceCacheOptions, D as DEFAULT_IMAGE_RESOURCE_LIMITS, f as DEFAULT_LIMITS, H as HARD_CEILINGS, g as IMAGE_RESOURCE_HARD_CEILINGS, b as ImageDecodePort, c as ImageResourceLimits, h as ImageResourceLookup, I as ImageResourceState, M as MAX_SVG_SNIFF_BYTES, P as PreservedImageMime, S as SupportedImageMime, i as ValidatedRasterHeader, j as createImageResourceCache, k as hasBoundedSvgRoot, l as imageResourceLookupFor, m as liveDrawingReferenceCount, r as resolveImageResourceLimits, n as resolveLimits, s as sniffImageMime, o as validateGifHeader, p as validateJpegHeader, q as validatePngHeader, v as validateRasterHeader } from './image-resources-Cl5_cNi9.js';
|
|
3
|
+
import { O as OoxmlPackage, R as RelationshipRecord } from './ooxml-package-D_CtywTW.js';
|
|
4
|
+
export { C as ContentTypeError, c as ContentTypeIndex, d as ContentTypeRecords, D as DEFAULT_OOXML_PACKAGE_LIMITS, e as DEFAULT_ZIP_LIMITS, f as DefaultRecord, I as IMAGE_RELATIONSHIP_TYPE, g as ImageRelationshipResolution, h as IndexResult, N as NameRejection, i as NameResult, j as OoxmlExternalTarget, a as OoxmlPackageLimits, b as OoxmlPackageRejection, k as OoxmlPackageResult, l as OverrideRecord, m as RelationshipError, n as RelationshipSetResult, o as ResolveResult, p as ResolvedRelationship, T as TargetMode, Z as ZipLimits, q as ZipReadResult, r as ZipRejection, s as asciiFold, t as buildContentTypeIndex, u as buildRelationshipSet, v as detectDuplicateNames, w as extensionKey, x as isValidMime, y as normalizePartName, z as partNameKey, A as readOoxmlPackage, B as readZip, E as resolveContentType, F as resolveImageRelationship, G as resolveInternalTarget, H as resolveRelationship, J as validateExternalTarget, K as withPart, L as writeOoxmlPackage, M as writeZip } from './ooxml-package-D_CtywTW.js';
|
|
5
|
+
import { e as OoxmlPart, O as OoxmlNode, r as OoxmlInvariantResult, a as OoxmlElement, s as OoxmlInvariantIssue, t as OoxmlHardBreakNode, f as OoxmlParagraphNode, u as OoxmlFldCharNode, v as OoxmlFldSimpleNode, w as OoxmlInstrTextNode, x as OoxmlAttribute } from './ooxml-tree-BU0e3DVi.js';
|
|
6
|
+
export { y as OOXML_NODE_IDENTITY_RULES, z as OoxmlBodyNode, A as OoxmlBookmarkEndNode, B as OoxmlBookmarkStartNode, C as OoxmlContentControlCalendarNode, D as OoxmlContentControlCheckboxNode, E as OoxmlContentControlCheckedNode, F as OoxmlContentControlCheckedStateNode, G as OoxmlContentControlComboBoxNode, d as OoxmlContentControlContentNode, H as OoxmlContentControlDataBindingNode, I as OoxmlContentControlDateFormatNode, J as OoxmlContentControlDateNode, K as OoxmlContentControlDropDownListNode, p as OoxmlContentControlEndPropertiesNode, L as OoxmlContentControlLidNode, M as OoxmlContentControlListItemNode, b as OoxmlContentControlNode, q as OoxmlContentControlPropertiesNode, N as OoxmlContentControlStoreMappedDataAsNode, P as OoxmlContentControlTextNode, Q as OoxmlContentControlUncheckedStateNode, h as OoxmlContinuationSeparatorNode, R as OoxmlDocumentNode, i as OoxmlEndnotesNode, j as OoxmlFootnotesNode, c as OoxmlGenericElementNode, S as OoxmlGenericExtensionAttribute, T as OoxmlHyperlinkNode, U as OoxmlInvariantIssueCode, V as OoxmlKnownNodeAttribute, W as OoxmlNamespaceBinding, Y as OoxmlNodeId, Z as OoxmlNodeIdentityRules, g as OoxmlNoteNode, k as OoxmlNoteRefNode, l as OoxmlNoteReferenceNode, _ as OoxmlParagraphPropertiesNode, $ as OoxmlPartMetadata, n as OoxmlReadRejection, a0 as OoxmlReadResult, a1 as OoxmlRunNode, a2 as OoxmlRunPropertiesNode, m as OoxmlSeparatorNode, a3 as OoxmlTabNode, a4 as OoxmlTextElementNode, a5 as OoxmlTextNode, a6 as OoxmlWmlValAttribute, a7 as OoxmlXmlSpaceAttribute, a8 as WML_NAMESPACE_URI, a9 as XMLNS_NAMESPACE_URI, aa as XML_NAMESPACE_URI, X as XmlLimits, ab as XmlNode, ac as XmlRejection, ad as XmlResult, ae as childElements, af as findElement, ag as isContentRevisionKind, ah as isRangeMarkerKind, ai as readOnOffChild, aj as readOoxmlPart, ak as readXml, al as textContent } from './ooxml-tree-BU0e3DVi.js';
|
|
7
|
+
export { e as BookmarkAnchor, B as BookmarkIndex, f as CascadeDeletedNoteReferencesOptions, g as CustomNodePayloadRead, h as CustomNodePayloadWrite, b as CustomNodeSweepOutcome, i as CustomNodeSweepResult, j as CustomNodeWriteRejection, C as CustomNodeWriteResult, k as DEFAULT_MAX_EDITABLE_STORY_PARTS, D as DocumentTrackingSettings, l as DrawingPropertyIdResult, E as EmbeddedFont, F as FontStyleKey, H as HeaderFooterLifecycleImpact, m as HeaderFooterLifecycleOp, n as HeaderFooterLifecycleRejection, o as HeaderFooterLifecycleResult, I as InsertCustomNodeWrite, L as ListKind, M as MAX_CUSTOM_NODE_LABEL_LENGTH, p as MAX_CUSTOM_NODE_PAYLOAD_LENGTH, q as MAX_NOTE_REFERENCE_PARTS, r as MAX_NOTE_REFERENCE_SCAN, N as NO_TRACKING_SETTINGS, s as NoteDiagnostic, t as NoteDiagnosticCode, u as NoteLifecycleImpact, v as NoteLifecycleOp, w as NoteLifecycleOptions, x as NoteLifecycleRejection, y as NoteLifecycleResult, z as NoteReferenceHit, G as NoteReferenceScanBudget, P as PackageTransactResult, J as ReadEmbeddedFontsOptions, K as StoryResolveResult, S as StoryScope, a as StoryTargetRejection, T as TreePackageStore, O as TreePackageStoreOptions, Q as allocateDrawingPropertyId, U as applyHeaderFooterLifecycleOp, V as applyNoteLifecycleOp, W as buildBookmarkIndex, X as cascadeDeletedNoteReferences, Y as collectNoteReferences, Z as collectPackageNoteReferences, _ as createNoteReferenceScanBudget, $ as customNodePayloadsByControl, a0 as customNodePayloadsOf, a1 as deobfuscateFont, a2 as diagnoseNoteReferences, a3 as ensureListDefinition, a4 as ensureNumberingLevel, a5 as insertCustomNodeWrite, a6 as isHeaderFooterLifecycleOp, a7 as isNoteLifecycleOp, a8 as normalNoteIds, a9 as notesPartHasId, aa as readEmbeddedFonts, ab as readTrackingSettings, ac as removeCustomNodeWrite, ad as resolveNotesPart, ae as sweepCustomNodePayloads, af as withBinaryPart, ag as withEmbeddedImage, ah as withoutUnreferencedImagePart } from './custom-node-writes-tJw8U9MO.js';
|
|
8
|
+
export { c as HeaderFooterKind, a as HeaderFooterParts, b as HeaderFooterSectionResolution, d as HeaderFooterSlotMeta, H as HeaderFooterVariant, e as collectSectionPropertyNodes, r as resolveHeaderFooterParts, f as resolveHeaderFooterPartsBySection, g as resolveHeaderFooterResolutionBySection } from './hf-references-BdjsQNE_.js';
|
|
9
|
+
export { c as collectFlowBlocks, d as contentControlContentOf, i as isContentControl, b as isContentControlContent, w as walkAllStoryParagraphs, e as walkParagraphInline, f as walkStoryBlocks } from './content-control-walk-D06GijR0.js';
|
|
10
|
+
import { T as TreeDocOp, a as TreeOpRejection, q as TreeOpResult, O as OoxmlProperty, h as DrawingTreeDocOp, I as ImpactClass, b as ImageWrapTarget } from './tree-op-types-D0fTNBVW.js';
|
|
11
|
+
export { A as ACCEPTED_PARAGRAPH_PROPERTIES, r as ACCEPTED_RUN_PROPERTIES, s as CONTENT_CONTROL_ID_MAX, t as CONTENT_CONTROL_PROPERTY_ORDER, u as ContentControlCheckbox, v as ContentControlCheckboxState, p as ContentControlDataBinding, w as ContentControlDateFormat, x as ContentControlEntry, C as ContentControlKind, n as ContentControlLevel, y as ContentControlListItem, o as ContentControlLock, z as ContentControlProperties, c as DrawingKind, e as DrawingLocks, d as DrawingPositionInput, H as HYPERLINK_RELATIONSHIP_TYPE, B as HyperlinkKind, E as HyperlinkTarget, j as IMAGE_WRAP_TARGETS, M as MAX_CONTENT_CONTROLS_PER_PART, F as MAX_CONTENT_CONTROL_NESTING, G as OFFICE_RELATIONSHIP_NAMESPACE_URI, J as RelationshipTargetResolver, R as RevisionAddress, S as SourceCrop, K as TABLE_BORDER_STYLES, L as TREE_DOC_OP_KINDS, m as TableBorderStyle, N as TreeDocOpKind, P as TreeOpEffect, Q as allocateContentControlId, U as contentControlContentChildren, W as contentControlContentNodeOf, X as contentControlEndPropertiesNodeOf, Y as contentControlLevelOf, Z as contentControlPropertiesNodeOf, _ as contentControlPropertiesOf, $ as contentControlTextOf, a0 as contentControlsIn, a1 as findContentControl, a2 as flattenContentControls, a3 as hyperlinkAnchorOf, a4 as hyperlinkRelationshipIdOf, a5 as hyperlinkTargetOf, a6 as isContentControlContentNode, a7 as isContentControlNode, a8 as isContentControlWrapper, a9 as isHyperlinkNode, aa as lockForbidsEdit, ab as lockForbidsRemoval, ac as orderedContentControlProperties, ad as parseContentControlId, ae as projectDrawing, af as resolveContentControlLock } from './tree-op-types-D0fTNBVW.js';
|
|
12
|
+
export { A as AtomicNoteSpan, M as MAX_NOTES_PER_PART, a as NOTE_ATOM_CHAR, b as NOTE_CONTINUATION_SEPARATOR_ID, c as NOTE_ID_MAX, d as NOTE_ID_MIN, e as NOTE_SEPARATOR_ID, N as NoteKind, f as NoteType, g as allocateNoteId, h as atomicNoteSpansOf, i as customMarkFollows, j as findNoteById, k as formatNoteScopeId, l as isContinuationSeparatorNode, m as isEndnotesNode, o as isFootnotesNode, p as isNormalNote, q as isNoteAtomNode, r as isNoteNode, s as isNoteRefNode, t as isNoteReferenceNode, u as isSeparatorNode, v as noteAtomText, w as noteIdOf, x as noteKindOf, y as noteRefKindOf, z as noteReferenceKindOf, n as noteTypeOf, B as notesOf, C as parseNoteId, D as parseNoteScopeId } from './note-nodes-BPSTVDMr.js';
|
|
13
|
+
export { A as AuthoredNoteProperties, C as CommentAnchor, b as CommentPosition, c as CommentRecord, d as CommentThreadState, D as DEFAULT_ENDNOTE_PROPERTIES, e as DEFAULT_FOOTNOTE_PROPERTIES, E as EndnotePosition, F as FootnotePosition, L as LinkableReviewItem, N as NoteNumRestart, a as ResolvedEndnoteProperties, R as ResolvedFootnoteProperties, f as ReviewCommentItem, g as ReviewItem, h as ReviewModelInput, i as ReviewPosition, j as ReviewRange, k as ReviewRevisionItem, l as ReviewRevisionKind, W as W15_NAMESPACE_URI, m as authoredDocumentEndnoteProperties, n as authoredDocumentFootnoteProperties, o as authoredEndnotePropertiesFromSectPr, q as authoredFootnotePropertiesFromSectPr, r as collectReviewItems, s as commentAnchorsOfStory, t as commentBodyText, u as commentInitials, v as commentItemsOf, w as commentsOfPart, x as deepParagraphOrderOfPart, y as firstReviewRange, z as hasAnyComment, B as isLegalEndnotePosition, G as isLegalFootnotePosition, H as isLegalNumRestart, I as linkRevisionReplies, p as paragraphOrderOfPart, J as parseAuthoredNoteProperties, K as resolveEndnoteProperties, M as resolveFootnoteProperties, O as reviewItemKey, P as reviewItemRanges, Q as revisionItemsOf, S as settingsPartOf, T as threadStateOfPart } from './review-reads-HDvoQXK2.js';
|
|
14
|
+
import { T as TreeModelChange, b as TreeDocumentStore } from './tree-store-CIKASRHk.js';
|
|
15
|
+
export { D as DocumentProperties, S as SelectionMark, f as TreeDocumentStoreOptions, a as TreeStoryRef, d as TreeTransactOptions, g as TreeTransactResult, c as TreeTransactionContext } from './tree-store-CIKASRHk.js';
|
|
239
16
|
|
|
240
17
|
/**
|
|
241
18
|
* Every kind of thing the registry gives a stable identity to.
|
|
@@ -1002,6 +779,29 @@ declare function nullRecord<T = unknown>(): Record<string, T>;
|
|
|
1002
779
|
*/
|
|
1003
780
|
declare function toSafeRecord(value: unknown, path?: string): unknown;
|
|
1004
781
|
|
|
782
|
+
/**
|
|
783
|
+
* Serialize normalized XML from a canonical part using repository-controlled
|
|
784
|
+
* prefixes and validated, escaped names and values. This does not yet replace
|
|
785
|
+
* writeDocx; package integration belongs to the subsequent migration pass.
|
|
786
|
+
*/
|
|
787
|
+
declare function serializeOoxmlPart(part: OoxmlPart): string;
|
|
788
|
+
/** Repository-owned namespace-aware semantic XML oracle. */
|
|
789
|
+
declare function canonicalOoxmlFingerprint(value: OoxmlPart | OoxmlNode): string;
|
|
790
|
+
/**
|
|
791
|
+
* Structural equality of two canonical trees, ignoring node ids.
|
|
792
|
+
*
|
|
793
|
+
* Ids differ between two parses of the same bytes, so comparing them would report every reopen as
|
|
794
|
+
* a change. This compares what the document SAYS.
|
|
795
|
+
*/
|
|
796
|
+
declare function ooxmlTreesEqual(left: OoxmlPart | OoxmlNode, right: OoxmlPart | OoxmlNode): boolean;
|
|
797
|
+
|
|
798
|
+
/**
|
|
799
|
+
* Validate a parser-created or copy-modified immutable part before publication.
|
|
800
|
+
* Future tree-edit primitives can retain shared nodes and their IDs, while any
|
|
801
|
+
* replacement chooses explicitly whether to retain or allocate identity.
|
|
802
|
+
*/
|
|
803
|
+
declare function validateOoxmlPart(part: OoxmlPart): OoxmlInvariantResult;
|
|
804
|
+
|
|
1005
805
|
/** Locate `[Content_Types].xml` bytes regardless of zip key spelling. */
|
|
1006
806
|
declare function contentTypesPartBytes(pkg: OoxmlPackage): {
|
|
1007
807
|
readonly storageKey: string;
|
|
@@ -1178,6 +978,65 @@ interface ScrubResult {
|
|
|
1178
978
|
/** Explicit scrub export: remove inert executable classes, report removals. */
|
|
1179
979
|
declare function scrubExport(items: readonly ContentItem[]): ScrubResult;
|
|
1180
980
|
|
|
981
|
+
/** An edited part, or the invariant violations that rejected the edit. */
|
|
982
|
+
type OoxmlEditResult = {
|
|
983
|
+
readonly ok: true;
|
|
984
|
+
readonly part: OoxmlPart;
|
|
985
|
+
} | {
|
|
986
|
+
readonly ok: false;
|
|
987
|
+
readonly issues: readonly OoxmlInvariantIssue[];
|
|
988
|
+
};
|
|
989
|
+
/**
|
|
990
|
+
* How an edit primitive validates its result.
|
|
991
|
+
*
|
|
992
|
+
* By default every primitive runs the full-part invariant validation before handing its
|
|
993
|
+
* result back — the safe reading for an isolated call. A TRANSACTION applying many ops pays
|
|
994
|
+
* that full-tree walk once per primitive, which is what made a hundred-paragraph paste
|
|
995
|
+
* quadratic; it defers instead, and runs the same validation ONCE on the final tree before
|
|
996
|
+
* anything is published. Deferring is only sound for a caller that owns a commit boundary:
|
|
997
|
+
* nothing may escape between the unvalidated intermediate and the validated result.
|
|
998
|
+
*/
|
|
999
|
+
interface EditOptions {
|
|
1000
|
+
readonly deferValidation?: boolean;
|
|
1001
|
+
}
|
|
1002
|
+
/** Every node id currently present in the part. */
|
|
1003
|
+
declare function collectNodeIds(part: OoxmlPart): Set<string>;
|
|
1004
|
+
/**
|
|
1005
|
+
* Mint ids for nodes an edit introduces.
|
|
1006
|
+
*
|
|
1007
|
+
* Deterministic and collision-checked against the whole part: a structural-path id from the
|
|
1008
|
+
* original parse (`/word/document.xml#0.1.2`) and a minted one (`/word/document.xml#new:3`)
|
|
1009
|
+
* can never coincide, and the counter skips anything already taken so repeated edits in one
|
|
1010
|
+
* session stay unique.
|
|
1011
|
+
*
|
|
1012
|
+
* Checks the part's node index directly rather than copying every id into a fresh set: the
|
|
1013
|
+
* copy was O(document) per op, and an allocator is created for every op.
|
|
1014
|
+
*/
|
|
1015
|
+
declare function createNodeIdAllocator(part: OoxmlPart): () => string;
|
|
1016
|
+
/** Whether a node id exists in the part. */
|
|
1017
|
+
declare function hasNode(part: OoxmlPart, nodeId: string): boolean;
|
|
1018
|
+
/** Read a node back out of a part by id. */
|
|
1019
|
+
declare function findNode(part: OoxmlPart, nodeId: string): OoxmlNode | null;
|
|
1020
|
+
/** The element that holds a node, or null for the root and for unknown ids. */
|
|
1021
|
+
declare function parentNodeOf(part: OoxmlPart, nodeId: string): OoxmlElement | null;
|
|
1022
|
+
/** Replace one node's children wholesale. */
|
|
1023
|
+
declare function replaceChildren(part: OoxmlPart, nodeId: string, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
|
|
1024
|
+
/** Insert children into a node at `index` (clamped to the child list). */
|
|
1025
|
+
declare function insertChildren(part: OoxmlPart, nodeId: string, index: number, children: readonly OoxmlNode[], options?: EditOptions): OoxmlEditResult;
|
|
1026
|
+
/** Replace one node with another, keeping its position among its siblings. */
|
|
1027
|
+
declare function replaceNode(part: OoxmlPart, nodeId: string, replacement: OoxmlNode, options?: EditOptions): OoxmlEditResult;
|
|
1028
|
+
/** Remove a node and its subtree. */
|
|
1029
|
+
declare function removeNode(part: OoxmlPart, nodeId: string, options?: EditOptions): OoxmlEditResult;
|
|
1030
|
+
/**
|
|
1031
|
+
* Apply several primitives as ONE atomic step.
|
|
1032
|
+
*
|
|
1033
|
+
* Each edit runs against the result of the previous one, and the whole sequence is
|
|
1034
|
+
* validated once at the end. If any step fails, the ORIGINAL part is what the caller keeps
|
|
1035
|
+
* — there is no partially-edited intermediate to publish. This is the shape a multi-`DocOp`
|
|
1036
|
+
* store transaction needs.
|
|
1037
|
+
*/
|
|
1038
|
+
declare function applyEdits(part: OoxmlPart, edits: readonly ((current: OoxmlPart) => OoxmlEditResult)[], options?: EditOptions): OoxmlEditResult;
|
|
1039
|
+
|
|
1181
1040
|
/** UTF-16 placeholder for a page break in paragraph text projections. */
|
|
1182
1041
|
declare const PAGE_BREAK_CHAR = "\f";
|
|
1183
1042
|
/** What a `w:br` breaks. `other` covers values this engine does not model, kept losslessly. */
|
|
@@ -1920,6 +1779,128 @@ type CustomNodeExportResult = {
|
|
|
1920
1779
|
*/
|
|
1921
1780
|
declare function withExportedCustomNodes(pkg: OoxmlPackage, request: CustomNodeExportRequest): CustomNodeExportResult;
|
|
1922
1781
|
|
|
1782
|
+
/** One addressable unit of paragraph text: text, tab, hard break, or atomic field. */
|
|
1783
|
+
interface Segment {
|
|
1784
|
+
readonly runId: string;
|
|
1785
|
+
readonly node: OoxmlNode;
|
|
1786
|
+
readonly start: number;
|
|
1787
|
+
readonly end: number;
|
|
1788
|
+
/**
|
|
1789
|
+
* When set, deleting this segment removes every listed node id in one step (atomic
|
|
1790
|
+
* field begin→end or `fldSimple`). Absent for ordinary text/tab/break segments.
|
|
1791
|
+
*/
|
|
1792
|
+
readonly removeNodeIds?: readonly string[];
|
|
1793
|
+
/**
|
|
1794
|
+
* When set, run formatting for this atom targets these runs (field result ownership),
|
|
1795
|
+
* not necessarily `runId`. Absent for ordinary text/tab/break segments.
|
|
1796
|
+
*/
|
|
1797
|
+
readonly formatRunIds?: readonly string[];
|
|
1798
|
+
}
|
|
1799
|
+
/**
|
|
1800
|
+
* Flatten a paragraph into UTF-16 addressable segments, in document order.
|
|
1801
|
+
*
|
|
1802
|
+
* A HYPERLINK's runs are addressed too. `w:hyperlink` is a run container, not a leaf, and
|
|
1803
|
+
* the characters inside a link are ordinary paragraph text: the user selects them, types
|
|
1804
|
+
* over them and deletes them like any other. Skipping the container — which is what
|
|
1805
|
+
* iterating only direct `w:r` children did — left every link's text with no offsets at all,
|
|
1806
|
+
* so `paragraphTextOf` read "Visit or ." for a sentence that says "Visit Example.com or
|
|
1807
|
+
* Anthropic's website." and layout, selection and the ops all agreed on the wrong string.
|
|
1808
|
+
*
|
|
1809
|
+
* Inline CONTENT CONTROLS are the same class of wrapper: their `w:sdtContent` runs join the
|
|
1810
|
+
* paragraph's offset stream with no break opportunity at the boundary. Nesting is bounded
|
|
1811
|
+
* (`MAX_CONTENT_CONTROL_NESTING`); beyond the bound the wrapper is opaque so recursion
|
|
1812
|
+
* cannot exhaust the stack.
|
|
1813
|
+
*
|
|
1814
|
+
* `runId` stays the id of the run the content actually lives in, at whatever depth: the
|
|
1815
|
+
* appliers resolve it with `findNode` and rebuild that run's children, so nesting costs them
|
|
1816
|
+
* nothing.
|
|
1817
|
+
*/
|
|
1818
|
+
declare function segmentsOf(paragraph: OoxmlParagraphNode): Segment[];
|
|
1819
|
+
/** Half-open `[start, end)` of one node in its paragraph's model offset space. */
|
|
1820
|
+
interface OffsetSpan {
|
|
1821
|
+
readonly start: number;
|
|
1822
|
+
readonly end: number;
|
|
1823
|
+
}
|
|
1824
|
+
/**
|
|
1825
|
+
* Every node's place in the paragraph's model offset space, from the SAME walk `segmentsOf`
|
|
1826
|
+
* uses.
|
|
1827
|
+
*
|
|
1828
|
+
* The offset model has exactly one authority, and this is how a caller borrows it. Three
|
|
1829
|
+
* private walkers used to re-derive it — one in the tracked-change writer, one in the comment
|
|
1830
|
+
* anchor reader, one in the review queue — and all three disagreed with `segmentsOf` and with
|
|
1831
|
+
* each other: none gave a note reference or an atomic field its length of one, one counted a
|
|
1832
|
+
* field's instruction text as visible characters, and one never descended into `w:hyperlink`
|
|
1833
|
+
* at all. The consequences were an anchor short by a link's length, two unrelated comments
|
|
1834
|
+
* threaded onto one zero-width offset, and a tracked insert landing a character out in any
|
|
1835
|
+
* paragraph carrying a footnote. Patching each walker only resets the clock on the next drift.
|
|
1836
|
+
*
|
|
1837
|
+
* A node the walk never reaches — content under a `generic` container, or past the nesting cap
|
|
1838
|
+
* — has NO span, and {@link ParagraphOffsetIndex.lengthOf} reports zero for it. That is the
|
|
1839
|
+
* same answer `segmentsOf` gives: it contributes no addressable characters.
|
|
1840
|
+
*/
|
|
1841
|
+
interface ParagraphOffsetIndex {
|
|
1842
|
+
/** The paragraph's own length, identical to {@link paragraphLength}. */
|
|
1843
|
+
readonly length: number;
|
|
1844
|
+
readonly segments: readonly Segment[];
|
|
1845
|
+
/** Where a node sits, or null when the offset walk never reached it. */
|
|
1846
|
+
spanOf(node: OoxmlNode | string): OffsetSpan | null;
|
|
1847
|
+
/** A node's model length: `end - start` of its span, and 0 when it has none. */
|
|
1848
|
+
lengthOf(node: OoxmlNode | string): number;
|
|
1849
|
+
}
|
|
1850
|
+
/**
|
|
1851
|
+
* THE paragraph offset authority: maps a paragraph's UTF-16 offsets to the nodes holding them.
|
|
1852
|
+
*
|
|
1853
|
+
* One authority on purpose. An atomic field spans many nodes but is ONE unit to an offset, and a
|
|
1854
|
+
* second implementation that disagreed would place edits inside content that cannot be split.
|
|
1855
|
+
*/
|
|
1856
|
+
declare function paragraphOffsetIndex(paragraph: OoxmlParagraphNode): ParagraphOffsetIndex;
|
|
1857
|
+
/** One inline content control's identity and the UTF-16 span its content covers. */
|
|
1858
|
+
interface InlineControlSpan {
|
|
1859
|
+
readonly controlId: string;
|
|
1860
|
+
readonly start: number;
|
|
1861
|
+
readonly end: number;
|
|
1862
|
+
}
|
|
1863
|
+
/**
|
|
1864
|
+
* The innermost inline content control whose content ends exactly at `offset` — the caret
|
|
1865
|
+
* at its right outer edge. What Backspace consults to delete the node as ONE unit
|
|
1866
|
+
* (pro-review-and-custom-nodes 4.6): deleting its last character from outside would either
|
|
1867
|
+
* strip one letter from a content-locked label (refused, so the key looks dead) or leave a
|
|
1868
|
+
* half-deleted chip whose tag still claims the full payload.
|
|
1869
|
+
*/
|
|
1870
|
+
declare function inlineControlEndingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
|
|
1871
|
+
/** The forward-delete mirror: the control whose content STARTS exactly at `offset`. */
|
|
1872
|
+
declare function inlineControlStartingAt(paragraph: OoxmlParagraphNode, offset: number): InlineControlSpan | null;
|
|
1873
|
+
|
|
1874
|
+
interface RevisionSite {
|
|
1875
|
+
readonly node: OoxmlElement;
|
|
1876
|
+
readonly parent: OoxmlElement | null;
|
|
1877
|
+
/** True when this site cannot be resolved and the whole op must refuse. */
|
|
1878
|
+
readonly refused: boolean;
|
|
1879
|
+
/** True for `w:pPr/w:rPr/w:ins|w:del` — the paragraph MARK, not content. */
|
|
1880
|
+
readonly paragraphMark: boolean;
|
|
1881
|
+
/** True for `w:rPrChange` / `w:pPrChange`. */
|
|
1882
|
+
readonly propertyChange: boolean;
|
|
1883
|
+
/**
|
|
1884
|
+
* How many content-revision wrappers ENCLOSE this one, counted within its own paragraph.
|
|
1885
|
+
*
|
|
1886
|
+
* Revisions nest for real: `w:ins` wrapping `w:del` is content one reviewer added and another
|
|
1887
|
+
* struck, and both stay pending because each author has to be answered separately. The two
|
|
1888
|
+
* wrappers then cover exactly the same characters, so a range cannot tell them apart and
|
|
1889
|
+
* "which change is this text under" has only one honest answer — the innermost one, which is
|
|
1890
|
+
* the change that decides what the reader is looking at.
|
|
1891
|
+
*
|
|
1892
|
+
* Relative to the paragraph or table subtree, which is the unit the site walk memoizes. That
|
|
1893
|
+
* is enough and it is what keeps the memo valid: a content revision cannot enclose a
|
|
1894
|
+
* paragraph, and two sites can only cover one position if they are in the same paragraph.
|
|
1895
|
+
*/
|
|
1896
|
+
readonly nesting: number;
|
|
1897
|
+
}
|
|
1898
|
+
/** Every revision-bearing element in the part. */
|
|
1899
|
+
declare function collectRevisionSites(part: OoxmlPart): RevisionSite[];
|
|
1900
|
+
|
|
1901
|
+
/** Structural validation, run before any tree work so a rejection changes nothing. */
|
|
1902
|
+
declare function validateTreeOp(part: OoxmlPart, op: TreeDocOp): TreeOpRejection | null;
|
|
1903
|
+
|
|
1923
1904
|
/**
|
|
1924
1905
|
* Apply one validated op to a part.
|
|
1925
1906
|
*
|
|
@@ -2126,6 +2107,25 @@ declare function runPropertyEdits(part: OoxmlPart, paragraphId: string, start: n
|
|
|
2126
2107
|
*/
|
|
2127
2108
|
declare function runsCovering(part: OoxmlPart, paragraphId: string, start: number, end: number): readonly OoxmlNode[];
|
|
2128
2109
|
|
|
2110
|
+
/** The `w:p` a node sits inside, and the model offset it starts at within that paragraph. */
|
|
2111
|
+
interface SiteLocation {
|
|
2112
|
+
readonly paragraphId: string;
|
|
2113
|
+
readonly start: number;
|
|
2114
|
+
readonly end: number;
|
|
2115
|
+
}
|
|
2116
|
+
/**
|
|
2117
|
+
* Locate every revision site in one walk.
|
|
2118
|
+
*
|
|
2119
|
+
* One walk rather than a lookup per site: `resolveRevisions` learned the same lesson the hard
|
|
2120
|
+
* way, where a per-site tree walk inside a per-site loop made accept-all quadratic.
|
|
2121
|
+
*
|
|
2122
|
+
* Offsets come from `paragraphOffsetIndex`, which is `segmentsOf`'s walk. A private one here
|
|
2123
|
+
* measured a run by summing its text and gave a note reference, an atomic field and a field's
|
|
2124
|
+
* instruction text the wrong lengths, so every card in a paragraph holding one reported a
|
|
2125
|
+
* range the caret and the ops disagreed with.
|
|
2126
|
+
*/
|
|
2127
|
+
declare function locateSites(part: OoxmlPart): ReadonlyMap<string, SiteLocation>;
|
|
2128
|
+
|
|
2129
2129
|
/**
|
|
2130
2130
|
* Longest accepted query. A query is host input rather than file content, but the scan is
|
|
2131
2131
|
* proportional to it and there is no legitimate find phrase this long.
|
package/dist/store.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{j as Budget,i as BudgetError,z as COMPARATORS,l as CancellationController,k as CancellationError,P as DEFAULT_VIEW_SETTINGS,o as DeterministicClock,v as DeterministicMemoryMeter,a as ID_KINDS,t as LIMIT_KEYS,s as LIMIT_SPECS,N as NO_TRACKING_SETTINGS,n as PortRegistry,m as PortResolutionError,g as RegistryError,p as SequentialIdentity,w as assertLimitInvariants,c as assertValidId,q as beginOperation,x as canonicalize,A as compareArtifacts,e as compareSemVer,F as deobfuscateFont,K as diffSemanticDigests,I as digestPart,r as endOperation,L as ensureListDefinition,M as ensureNumberingLevel,B as fingerprint,E as hashAuthored,b as isValidId,u as makeLimitCounter,d as parseSemVer,G as readEmbeddedFonts,O as readTrackingSettings,Q as readViewSettings,D as replayFixture,h as resolve,H as resolveTocRowHeadings,f as satisfies,J as semanticDigest,y as stableHash,C as validateFixture,T as withExportedCustomNodes}from'./chunk-
|
|
1
|
+
export{j as Budget,i as BudgetError,z as COMPARATORS,l as CancellationController,k as CancellationError,P as DEFAULT_VIEW_SETTINGS,o as DeterministicClock,v as DeterministicMemoryMeter,a as ID_KINDS,t as LIMIT_KEYS,s as LIMIT_SPECS,N as NO_TRACKING_SETTINGS,n as PortRegistry,m as PortResolutionError,g as RegistryError,p as SequentialIdentity,w as assertLimitInvariants,c as assertValidId,q as beginOperation,x as canonicalize,A as compareArtifacts,e as compareSemVer,F as deobfuscateFont,K as diffSemanticDigests,I as digestPart,r as endOperation,L as ensureListDefinition,M as ensureNumberingLevel,B as fingerprint,E as hashAuthored,b as isValidId,u as makeLimitCounter,d as parseSemVer,G as readEmbeddedFonts,O as readTrackingSettings,Q as readViewSettings,D as replayFixture,h as resolve,H as resolveTocRowHeadings,f as satisfies,J as semanticDigest,y as stableHash,C as validateFixture,T as withExportedCustomNodes}from'./chunk-SMRD66T5.js';export{mf as ACCEPTED_PARAGRAPH_PROPERTIES,lf as ACCEPTED_RUN_PROPERTIES,z as ALL_FROZEN_IDS,$f as AUTHORABLE_PARAGRAPH_PROPERTIES,ag as AUTHORABLE_RUN_PROPERTIES,H as BoundedCounter,u as CANONICAL_MUTATION_ORIGINS,he as CONTENT_CONTROL_ID_MAX,ze as CONTENT_CONTROL_PROPERTY_ORDER,ff as CUSTOM_NODE_XPATH_PREFIX,Se as CUSTOM_XML_PROPS_REL,Te as CUSTOM_XML_PROPS_TYPE,Re as CUSTOM_XML_REL,Q as DANGEROUS_KEYS,Ue as DATASTORE_NAMESPACE_URI,Cd as DEFAULT_ENDNOTE_PROPERTIES,Bd as DEFAULT_FOOTNOTE_PROPERTIES,E as DEFAULT_IMAGE_RESOURCE_LIMITS,B as DEFAULT_LIMITS,Jf as DEFAULT_MAX_EDITABLE_STORY_PARTS,xb as DEFAULT_OOXML_PACKAGE_LIMITS,Ma as DEFAULT_ZIP_LIMITS,y as DEPENDENCY_KEY_IDS,R as DangerousKeyError,ac as FIELD_ATOM_CHAR,A as HARD_CEILINGS,Qa as HYPERLINK_RELATIONSHIP_TYPE,M as IMAGE_RELATIONSHIP_TYPE,D as IMAGE_RESOURCE_HARD_CEILINGS,Xa as IMAGE_WRAP_TARGETS,_ as INERT_EXECUTABLE_KINDS,G as LimitExceededError,ge as MAX_CONTENT_CONTROLS_PER_PART,fe as MAX_CONTENT_CONTROL_NESTING,Vf as MAX_CUSTOM_NODE_LABEL_LENGTH,Uf as MAX_CUSTOM_NODE_PAYLOAD_LENGTH,xd as MAX_NOTES_PER_PART,Wd as MAX_NOTE_REFERENCE_PARTS,Vd as MAX_NOTE_REFERENCE_SCAN,Ce as MAX_STORY_SDT_NESTING,ib as MAX_SVG_SNIFF_BYTES,v as NON_CANONICAL_ORIGINS,_c as NOTE_ATOM_CHAR,cd as NOTE_CONTINUATION_SEPARATOR_ID,ad as NOTE_ID_MAX,$c as NOTE_ID_MIN,bd as NOTE_SEPARATOR_ID,Pa as OFFICE_RELATIONSHIP_NAMESPACE_URI,Aa as OOXML_NODE_IDENTITY_RULES,t as ORIGIN_IDS,Xb as PAGE_BREAK_CHAR,ka as PrefixAllocator,w as RESULT_IDS,x as RUNTIME_PORT_IDS,yg as SEARCH_MATCH_LIMIT,xg as SEARCH_QUERY_MAX,tf as TABLE_BORDER_STYLES,Dc as TOC_LEVEL_INDENT_TWIPS,wc as TOC_MAX_BOOKMARKS_PER_REFRESH,vc as TOC_MAX_ENTRIES,xc as TOC_MAX_FIELD_NESTING,uc as TOC_MAX_INSTRUCTION_CHARS,yc as TOC_MAX_PAGE_PASSES,nf as TREE_DOC_OP_KINDS,If as TreeDocumentStore,Kf as TreePackageStore,Ie as W15_NAMESPACE_URI,ma as WML_NAMESPACE_URI,oa as XMLNS_NAMESPACE_URI,na as XML_NAMESPACE_URI,Pf as addComment,Be as allocateContentControlId,tb as allocateDrawingPropertyId,yd as allocateNoteId,La as applyEdits,Zc as applyHeaderFooterLifecycleOp,de as applyNoteLifecycleOp,Ef as applyTreeOp,o as asciiFold,ja as assertValidQName,sc as atomicFieldSpansOf,wd as atomicNoteSpansOf,Vc as authorableHyperlinkTarget,Id as authoredDocumentEndnoteProperties,Hd as authoredDocumentFootnoteProperties,Fd as authoredEndnotePropertiesFromSectPr,Ed as authoredFootnotePropertiesFromSectPr,dg as authoredProperties,Ee as bodyStoryRoot,Jc as bookmarkPairNodes,jf as boundCustomXmlNodeIdOf,hf as boundCustomXmlNodeIds,if as boundCustomXmlNodeIdsInPackage,Cc as buildBookmarkIndex,K as buildContentTypeIndex,N as buildRelationshipSet,Gc as buildTocContentControl,Fc as buildTocEntryParagraph,xa as canonicalOoxmlFingerprint,ee as cascadeDeletedNoteReferences,Qe as cascadeEmptiedComments,fa as childElements,Pb as collectFlowBlocks,Ca as collectNodeIds,Zd as collectNoteReferences,_d as collectPackageNoteReferences,rg as collectReviewItems,kf as collectRevisionSites,Tb as collectSectionPropertyNodes,Ge as collectStoryParagraphs,Je as commentAnchorsOfStory,ng as commentBodyText,og as commentInitials,qg as commentItemsOf,Sf as commentPartNameOf,Tf as commentsExtendedPartNameOf,Ke as commentsOfPart,Z as containsCssFetch,le as contentControlContentChildren,pe as contentControlContentNodeOf,Nb as contentControlContentOf,oe as contentControlEndPropertiesNodeOf,se as contentControlLevelOf,ne as contentControlPropertiesNodeOf,re as contentControlPropertiesOf,ve as contentControlTextOf,te as contentControlsIn,Bb as contentTypesPartBytes,sb as createImageResourceCache,Da as createNodeIdAllocator,Xd as createNoteReferenceScanBudget,td as customMarkFollows,gf as customNodeBinding,Zf as customNodePayloadsByControl,_f as customNodePayloadsOf,We as customXmlDataParts,df as customXmlLabelXPath,_e as customXmlNodes,ef as customXmlPrefixMappings,Ve as datastoreItemIdFor,ug as deepParagraphOrderOfPart,Ne as deleteCommentThread,Mc as deriveOoxmlIndexes,Ac as detectBodyTocs,q as detectDuplicateNames,$d as diagnoseNoteReferences,fg as directParagraphMarkProperties,eg as directParagraphProperties,Af as drawingOpImpact,Wc as ensureHyperlinkRelationship,Y as escapeCssString,W as escapeXml,J as extensionKey,mc as fieldAtomText,lc as fieldOnOffAttribute,ue as findContentControl,Xe as findCustomXmlDataPart,Bc as findDetectedToc,ea as findElement,Fa as findNode,Ad as findNoteById,Cg as findOccurrences,wg as firstReviewRange,me as flattenContentControls,bc as fldCharType,kc as fldSimpleInstr,Pc as fnv1a32,zg as foldCase,ed as formatNoteScopeId,ig as formatOwnedRunIds,$b as hardBreakAttributes,Yb as hardBreakKind,_b as hardBreakText,Me as hasAnyComment,jb as hasBoundedSvgRoot,Rf as hasCommentPart,oc as hasLegacyFormFieldData,Ea as hasNode,Sa as hyperlinkAnchorOf,Ta as hyperlinkRelationshipIdOf,Ua as hyperlinkTargetOf,rb as imageResourceLookupFor,Kc as indexStyles,Td as inlineControlEndingAt,Ud as inlineControlStartingAt,Ia as insertChildren,Wf as insertCustomNodeWrite,jc as instrTextValue,bg as isAuthorableRunProperty,Lb as isContentControl,Mb as isContentControlContent,je as isContentControlContentNode,ie as isContentControlNode,ke as isContentControlWrapper,ra as isContentRevisionKind,md as isContinuationSeparatorNode,S as isDangerousKey,Df as isDrawingTreeDocOp,hd as isEndnotesNode,aa as isEvaluableField,nc as isFieldChrome,fc as isFldChar,cc as isFldCharNode,ic as isFldSimple,ec as isFldSimpleNode,gd as isFootnotesNode,Yc as isHeaderFooterLifecycleOp,Ra as isHyperlinkNode,$ as isInertExecutable,gc as isInstrText,dc as isInstrTextNode,Ld as isLegalEndnotePosition,tc as isLegalFldCharType,Md as isLegalFootnotePosition,Nd as isLegalNumRestart,qd as isNormalNote,vd as isNoteAtomNode,ce as isNoteLifecycleOp,id as isNoteNode,kd as isNoteRefNode,jd as isNoteReferenceNode,Zb as isPageBreakNode,sa as isRangeMarkerKind,Bg as isSearchableQuery,ld as isSeparatorNode,I as isValidMime,ha as isValidNCName,Nc as isValidParaId,ia as isValidQName,Ag as isWholeWord,sg as linkRevisionReplies,qb as liveDrawingReferenceCount,lg as locateSites,xe as lockForbidsEdit,ye as lockForbidsRemoval,gg as mergedProperties,Qc as mintParaId,Tc as mintedParagraphIdentityAttributes,be as normalNoteIds,Uc as normalizeParagraphIdentity,m as normalizePartName,ud as noteAtomText,od as noteIdOf,nd as noteKindOf,sd as noteRefKindOf,rd as noteReferenceKindOf,pd as noteTypeOf,zd as notesOf,ae as notesPartHasId,T as nullRecord,ya as ooxmlTreesEqual,Ae as orderedContentControlProperties,Oc as paraIdOf,Sd as paragraphOffsetIndex,tg as paragraphOrderOfPart,Ff as paragraphTextOf,Ga as parentNodeOf,Dd as parseAuthoredNoteProperties,qe as parseContentControlId,dd as parseNoteId,fd as parseNoteScopeId,zc as parseTocInstruction,p as partNameKey,Ic as planTocEntries,cb as projectDrawing,cg as propertyContainer,$e as readCustomXmlNode,ta as readOnOffChild,yb as readOoxmlPackage,Ba as readOoxmlPart,da as readXml,Na as readZip,Xc as relationshipTargetIn,Cb as relationshipsOf,Eb as relsPartNameFor,Xf as removeCustomNodeWrite,Ka as removeNode,Ha as replaceChildren,Ja as replaceNode,we as resolveContentControlLock,L as resolveContentType,Db as resolveContentTypeOf,Kd as resolveEndnoteProperties,Jd as resolveFootnoteProperties,Wb as resolveHeaderFooterParts,Vb as resolveHeaderFooterPartsBySection,Ub as resolveHeaderFooterResolutionBySection,P as resolveImageRelationship,F as resolveImageResourceLimits,r as resolveInternalTarget,C as resolveLimits,Yd as resolveNotesPart,O as resolveRelationship,mg as reviewItemKey,vg as reviewItemRanges,pg as revisionItemsOf,hg as runAddressRanges,jg as runPropertyEdits,kg as runsCovering,V as sanitizeHref,ba as scrubExport,Rd as segmentsOf,ua as serializeOoxmlPart,Qf as setCommentResolved,Gd as settingsPartOf,kb as sniffImageMime,Fe as storyParagraphs,De as storyRootsOf,Lc as stylesPartOf,Yf as sweepCustomNodePayloads,ga as textContent,Le as threadStateOfPart,U as toSafeRecord,Hc as tocEntryText,Ec as tocLeftIndentTwips,Rc as usedParaIds,Bf as validateDrawingOp,s as validateExternalTarget,mb as validateGifHeader,nb as validateJpegHeader,za as validateOoxmlPart,Jb as validatePackageInvariants,lb as validatePngHeader,pb as validateRasterHeader,Hf as validateTreeOp,Sc as w14RootPrefix,Rb as walkAllStoryParagraphs,Sb as walkParagraphInline,Qb as walkStoryBlocks,ub as withBinaryPart,Fb as withContentTypeOverride,Ye as withCustomXmlDataPart,af as withCustomXmlNode,vb as withEmbeddedImage,Ib as withNewPart,Ab as withPart,Hb as withRelationship,Ze as withoutCustomXmlDataPart,bf as withoutCustomXmlNode,cf as withoutOrphanCustomXmlNodes,wb as withoutUnreferencedImagePart,Cf as wrapTargetToAnchorSpec,zb as writeOoxmlPackage,Oa as writeZip}from'./chunk-R75OLPL6.js';
|