@docx-editor.dev/core 2.4.1 → 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.js +1 -1
- package/dist/binding.cjs +1 -1
- package/dist/binding.d.cts +8 -8
- package/dist/binding.d.ts +8 -8
- package/dist/binding.js +1 -1
- package/dist/chunk-4GQXAXTZ.js +5 -0
- package/dist/chunk-DGUHCJPF.cjs +18 -0
- package/dist/chunk-DY3QVCWC.cjs +10 -0
- package/dist/chunk-E7BXJ4BF.js +1 -0
- package/dist/chunk-F7Z6PWAZ.cjs +2 -0
- package/dist/chunk-IJ4V3LGV.cjs +2 -0
- package/dist/chunk-JEMP5YI5.cjs +15 -0
- package/dist/{chunk-YMIMLEX4.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-R75OLPL6.js +10 -0
- package/dist/chunk-SFMAIFEN.cjs +2 -0
- package/dist/chunk-SKWYEZCO.cjs +5 -0
- package/dist/chunk-SMRD66T5.js +2 -0
- package/dist/chunk-UVIUNAQ6.js +2 -0
- 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/contracts/editor.cjs +1 -1
- package/dist/contracts/editor.d.cts +8 -8
- package/dist/contracts/editor.d.ts +8 -8
- package/dist/contracts/editor.js +1 -1
- package/dist/contracts/interaction.d.cts +7 -7
- package/dist/contracts/interaction.d.ts +7 -7
- package/dist/contracts/modules.d.cts +4 -4
- package/dist/contracts/modules.d.ts +4 -4
- package/dist/contracts/types.d.cts +3 -1
- package/dist/contracts/types.d.ts +3 -1
- package/dist/{custom-node-writes-C5YRoPcc.d.cts → custom-node-writes-D9G3GKQ7.d.cts} +18 -3
- package/dist/{custom-node-writes-BkMgMXxs.d.ts → custom-node-writes-tJw8U9MO.d.ts} +18 -3
- package/dist/dist-YFULGVS3.js +2 -0
- package/dist/{editor-DYvC9CZs.d.cts → editor-BZEJL3vv.d.cts} +50 -19
- package/dist/{editor-D1qHfzOt.d.ts → editor-D2zOJztO.d.ts} +50 -19
- package/dist/editor.cjs +1 -1
- package/dist/editor.css +407 -38
- package/dist/editor.d.cts +38 -22
- package/dist/editor.d.ts +38 -22
- package/dist/editor.js +1 -1
- package/dist/harfbuzz.wasm +0 -0
- package/dist/{image-resources-DXvPZvXD.d.cts → image-resources-BaHz4QAd.d.cts} +1 -1
- package/dist/{image-resources-BG9DLyW7.d.ts → image-resources-Cl5_cNi9.d.ts} +1 -1
- package/dist/{index-DpY3WZuP.d.ts → index-D8L8WrNF.d.ts} +178 -23
- package/dist/{index-Bb-QAg_f.d.cts → index-_xF7n_z0.d.cts} +178 -23
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +16 -16
- package/dist/index.d.ts +16 -16
- package/dist/index.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.d.cts +159 -47
- package/dist/layout.d.ts +159 -47
- package/dist/layout.js +1 -1
- package/dist/node-module-shim-TTKTT66I.js +1 -0
- package/dist/output.cjs +1 -1
- package/dist/output.d.cts +20 -6
- package/dist/output.d.ts +20 -6
- package/dist/output.js +1 -1
- package/dist/{review-reads-CxgN62yp.d.cts → review-reads-Dr0CpW6u.d.cts} +25 -1
- package/dist/{review-reads-CQmU9Lcl.d.ts → review-reads-HDvoQXK2.d.ts} +25 -1
- package/dist/{review-support-DgXTIYBW.d.ts → review-support-D4ZBdUXa.d.ts} +46 -2
- package/dist/{review-support-BJ-YjGmD.d.cts → review-support-T-riLz4Y.d.cts} +46 -2
- package/dist/{revision-projection-DHAkcD_L.d.ts → revision-projection-UKqvPa4-.d.ts} +53 -2
- package/dist/{revision-projection-72ZApe-g.d.cts → revision-projection-WzlQGBJx.d.cts} +53 -2
- package/dist/{semantic-cell-selection-DZtyMXkH.d.ts → semantic-cell-selection-B5vfPz4Q.d.ts} +7 -4
- package/dist/{semantic-cell-selection--ezfezTe.d.cts → semantic-cell-selection-BTQFpN0S.d.cts} +7 -4
- package/dist/{semantic-interaction-DrgbgKg6.d.ts → semantic-interaction-CDNEU_Tx.d.cts} +2 -30
- package/dist/{semantic-interaction-2yxdv7q0.d.cts → semantic-interaction-lvpzZRpA.d.ts} +2 -30
- package/dist/{semantic-paint-BedBxkyY.d.ts → semantic-paint-BBPL3u5w.d.ts} +111 -3
- package/dist/{semantic-paint-BYjE0Xbl.d.cts → semantic-paint-IjbL-4CT.d.cts} +111 -3
- package/dist/{semantic-records-CR5hTqMK.d.ts → semantic-records-CdQvpUj1.d.ts} +106 -8
- package/dist/{semantic-records-DSD8WENa.d.cts → semantic-records-DEOs3_tE.d.cts} +106 -8
- package/dist/{shaped-measurer-CBOTJTV_.d.cts → shaped-measurer-C2SJAjV0.d.cts} +1 -1
- package/dist/{shaped-measurer-BL8g4AcW.d.ts → shaped-measurer-l4o5ITJ0.d.ts} +1 -1
- package/dist/store.cjs +1 -1
- package/dist/store.d.cts +38 -15
- package/dist/store.d.ts +38 -15
- package/dist/store.js +1 -1
- package/dist/{tree-op-types-EZXbR8bW.d.cts → tree-op-types-CUCwPWjT.d.cts} +1 -1
- package/dist/{tree-op-types-8a6xyRCN.d.ts → tree-op-types-D0fTNBVW.d.ts} +1 -1
- package/dist/{tree-session-SucW0znF.d.ts → tree-session-CH1oA75f.d.ts} +64 -42
- package/dist/{tree-session-DrMm8Cj2.d.cts → tree-session-b7bggR-S.d.cts} +64 -42
- package/dist/{tree-store-UYrGKF_Q.d.cts → tree-store-BqgeCa1Q.d.cts} +29 -2
- package/dist/{tree-store-BoM6eXaL.d.ts → tree-store-CIKASRHk.d.ts} +29 -2
- package/licenses/HarfBuzz-COPYING.txt +42 -0
- package/package.json +6 -4
- package/dist/chunk-33F6TRXO.js +0 -2
- package/dist/chunk-4WWEDTTE.js +0 -2
- package/dist/chunk-BS554B6D.cjs +0 -2
- package/dist/chunk-DQ5HGUWG.cjs +0 -12
- package/dist/chunk-EQO762XH.cjs +0 -10
- package/dist/chunk-F6WNPYOM.js +0 -2
- package/dist/chunk-FL4GWK76.js +0 -12
- package/dist/chunk-GWG5IVVX.cjs +0 -5
- package/dist/chunk-IZIL6BAW.cjs +0 -12
- package/dist/chunk-LIJPSHRA.js +0 -5
- package/dist/chunk-MHDO6HLI.cjs +0 -2
- package/dist/chunk-SG7OH2EK.js +0 -12
- package/dist/chunk-TCX3PVWR.js +0 -10
- package/dist/chunk-YTYKNA6X.cjs +0 -2
- package/dist/chunk-ZACHY6OS.js +0 -1
|
@@ -1,34 +1,13 @@
|
|
|
1
|
-
import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-
|
|
2
|
-
import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, I as InsertCustomNodeWrite, C as CustomNodeWriteResult, b as CustomNodeSweepOutcome, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, c as InsertImageInput, d as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './custom-node-writes-
|
|
1
|
+
import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-Cl5_cNi9.js';
|
|
2
|
+
import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, I as InsertCustomNodeWrite, C as CustomNodeWriteResult, b as CustomNodeSweepOutcome, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, c as InsertImageInput, d as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './custom-node-writes-tJw8U9MO.js';
|
|
3
3
|
import { Node } from 'prosemirror-model';
|
|
4
|
-
import { a as ReviewItem } from './review-support-
|
|
4
|
+
import { a as ReviewItem } from './review-support-D4ZBdUXa.js';
|
|
5
5
|
import { ReviewModuleContribution } from './contracts/modules.js';
|
|
6
6
|
import { e as OoxmlPart, O as OoxmlNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.js';
|
|
7
7
|
import { O as OoxmlPackage, b as OoxmlPackageRejection } from './ooxml-package-D_CtywTW.js';
|
|
8
8
|
import { a as HeaderFooterParts, b as HeaderFooterSectionResolution } from './hf-references-BdjsQNE_.js';
|
|
9
|
-
import { T as
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The scheme slots the picker shows, in Word's column order.
|
|
14
|
-
*
|
|
15
|
-
* Assumes the default `w:clrSchemeMapping` (bg1→lt1, t1→dk1, ...); a settings part
|
|
16
|
-
* that remaps them is rare and a follow-up.
|
|
17
|
-
*/
|
|
18
|
-
declare const PICKER_SLOTS: readonly ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6"];
|
|
19
|
-
type ThemeColorSlot = (typeof PICKER_SLOTS)[number];
|
|
20
|
-
/** One theme colour: the scheme slot and its resolved six-digit hex (no '#'). */
|
|
21
|
-
interface DocumentThemeColorEntry {
|
|
22
|
-
readonly slot: ThemeColorSlot;
|
|
23
|
-
readonly hex: string;
|
|
24
|
-
}
|
|
25
|
-
/** The theme's two font slots, for resolving `w:rFonts` theme attributes. */
|
|
26
|
-
interface DocumentThemeFonts {
|
|
27
|
-
/** `a:majorFont` latin typeface — headings. */
|
|
28
|
-
readonly major: string | null;
|
|
29
|
-
/** `a:minorFont` latin typeface — body text. */
|
|
30
|
-
readonly minor: string | null;
|
|
31
|
-
}
|
|
9
|
+
import { S as SelectionMark, T as TreeModelChange, D as DocumentProperties } from './tree-store-CIKASRHk.js';
|
|
10
|
+
import { T as TreeDocOp } from './tree-op-types-D0fTNBVW.js';
|
|
32
11
|
|
|
33
12
|
/**
|
|
34
13
|
* Why an edited projection could not be mapped back into tree ops.
|
|
@@ -164,6 +143,27 @@ interface DocumentSearchResult {
|
|
|
164
143
|
readonly truncated: boolean;
|
|
165
144
|
}
|
|
166
145
|
|
|
146
|
+
/**
|
|
147
|
+
* The scheme slots the picker shows, in Word's column order.
|
|
148
|
+
*
|
|
149
|
+
* Assumes the default `w:clrSchemeMapping` (bg1→lt1, t1→dk1, ...); a settings part
|
|
150
|
+
* that remaps them is rare and a follow-up.
|
|
151
|
+
*/
|
|
152
|
+
declare const PICKER_SLOTS: readonly ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6"];
|
|
153
|
+
type ThemeColorSlot = (typeof PICKER_SLOTS)[number];
|
|
154
|
+
/** One theme colour: the scheme slot and its resolved six-digit hex (no '#'). */
|
|
155
|
+
interface DocumentThemeColorEntry {
|
|
156
|
+
readonly slot: ThemeColorSlot;
|
|
157
|
+
readonly hex: string;
|
|
158
|
+
}
|
|
159
|
+
/** The theme's two font slots, for resolving `w:rFonts` theme attributes. */
|
|
160
|
+
interface DocumentThemeFonts {
|
|
161
|
+
/** `a:majorFont` latin typeface — headings. */
|
|
162
|
+
readonly major: string | null;
|
|
163
|
+
/** `a:minorFont` latin typeface — body text. */
|
|
164
|
+
readonly minor: string | null;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
167
|
/** What a run inherits at one point of the chain — null means "nothing authored". */
|
|
168
168
|
interface StyleRunDefaults {
|
|
169
169
|
readonly fontFamily: string | null;
|
|
@@ -207,7 +207,7 @@ interface TreeApplyResult {
|
|
|
207
207
|
* Holds the whole package, not just the body — headers, footers, notes, comments and styles are
|
|
208
208
|
* all reachable through it, and parts the engine does not model are preserved verbatim.
|
|
209
209
|
*/
|
|
210
|
-
interface
|
|
210
|
+
interface TreeDocxSessionView {
|
|
211
211
|
/** Whether the body holds at least one editable paragraph. */
|
|
212
212
|
readonly editable: boolean;
|
|
213
213
|
/** Canonical node ids of the body paragraphs, in order. */
|
|
@@ -238,20 +238,6 @@ interface TreeDocxSession {
|
|
|
238
238
|
* and one undo unit without swapping the body store.
|
|
239
239
|
*/
|
|
240
240
|
applyTreeOps(ops: readonly TreeDocOp[], selectionBefore?: SelectionMark | null, selectionAfter?: SelectionMark | null, scope?: StoryScope): TreeApplyResult;
|
|
241
|
-
/** Project the current BODY revision into a ProseMirror doc. */
|
|
242
|
-
projectDoc(): Node;
|
|
243
|
-
/** Re-project incrementally from the last committed change, reusing untouched paragraphs. */
|
|
244
|
-
reconcile(previousDoc: Node): Node;
|
|
245
|
-
/**
|
|
246
|
-
* Whether the last commit changed the BLOCK SEQUENCE (a split, join, insert or delete).
|
|
247
|
-
*
|
|
248
|
-
* A host needs this to decide whether the view must be re-projected at all: after a pure
|
|
249
|
-
* text edit the view already holds what the model holds, and re-projecting anyway both
|
|
250
|
-
* wastes work and races the next keystroke.
|
|
251
|
-
*/
|
|
252
|
-
lastCommitWasStructural(): boolean;
|
|
253
|
-
/** Map an edited BODY doc to tree ops and commit them as ONE transaction. */
|
|
254
|
-
applyPmDoc(doc: Node): TreeApplyResult;
|
|
255
241
|
/** Body text, paragraphs joined by newlines, read from the CANONICAL tree. */
|
|
256
242
|
bodyText(): string;
|
|
257
243
|
/** Text of a story scope, paragraphs joined by newlines. */
|
|
@@ -305,6 +291,15 @@ interface TreeDocxSession {
|
|
|
305
291
|
* Memoized per package revision.
|
|
306
292
|
*/
|
|
307
293
|
documentFonts(): readonly string[];
|
|
294
|
+
/**
|
|
295
|
+
* Whether the document puts any literal character on a page, over the same roots
|
|
296
|
+
* {@link TreeDocxSessionView.documentFonts} reads. Memoized per package revision.
|
|
297
|
+
*
|
|
298
|
+
* The font-substitution notice needs it: `documentFonts` reports what the document
|
|
299
|
+
* DECLARES, and a brand-new document declares Word's Calibri default over a single
|
|
300
|
+
* empty paragraph — a declaration with no glyph behind it.
|
|
301
|
+
*/
|
|
302
|
+
rendersText(): boolean;
|
|
308
303
|
/**
|
|
309
304
|
* The `w:style` definitions of the styles part, validated and projected for a style
|
|
310
305
|
* picker. Memoized once: the styles part is immutable for the session's lifetime.
|
|
@@ -336,6 +331,12 @@ interface TreeDocxSession {
|
|
|
336
331
|
* Settings editing is a later slice, so this is immutable for the session.
|
|
337
332
|
*/
|
|
338
333
|
settingsRoot(): OoxmlElement | null;
|
|
334
|
+
/**
|
|
335
|
+
* The document's own metadata from `docProps/core.xml` and `docProps/app.xml`, for
|
|
336
|
+
* document-property fields (TITLE, AUTHOR, SUBJECT, KEYWORDS, LASTSAVEDBY, COMMENTS). Read
|
|
337
|
+
* once per package revision; an empty object when the parts are absent.
|
|
338
|
+
*/
|
|
339
|
+
documentProperties(): DocumentProperties;
|
|
339
340
|
/**
|
|
340
341
|
* What `settings.xml` says about tracking — `w:trackRevisions`, the tracked-changes
|
|
341
342
|
* protection, and the two do-not-track switches.
|
|
@@ -546,6 +547,27 @@ interface TreeDocxSession {
|
|
|
546
547
|
/** Apply image property tree ops plus hyperlink relationship wiring atomically. */
|
|
547
548
|
applyImageProperties(scope: StoryScope, input: ApplyImagePropertiesInput): ImageIntentResult;
|
|
548
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* Binding-only session methods that exchange ProseMirror projections.
|
|
552
|
+
*
|
|
553
|
+
* Editor surfaces expose {@link TreeDocxSessionView}. Only the binding lane sees this extension.
|
|
554
|
+
*/
|
|
555
|
+
interface TreeDocxSession extends TreeDocxSessionView {
|
|
556
|
+
/** Project the current BODY revision into a ProseMirror doc. */
|
|
557
|
+
projectDoc(): Node;
|
|
558
|
+
/** Re-project incrementally from the last committed change, reusing untouched paragraphs. */
|
|
559
|
+
reconcile(previousDoc: Node): Node;
|
|
560
|
+
/**
|
|
561
|
+
* Whether the last commit changed the BLOCK SEQUENCE (a split, join, insert or delete).
|
|
562
|
+
*
|
|
563
|
+
* A host needs this to decide whether the view must be re-projected at all. After a pure
|
|
564
|
+
* text edit, the view already holds what the model holds. Re-projecting wastes work and
|
|
565
|
+
* races the next keystroke.
|
|
566
|
+
*/
|
|
567
|
+
lastCommitWasStructural(): boolean;
|
|
568
|
+
/** Map an edited BODY doc to tree ops and commit them as one transaction. */
|
|
569
|
+
applyPmDoc(doc: Node): TreeApplyResult;
|
|
570
|
+
}
|
|
549
571
|
|
|
550
572
|
/**
|
|
551
573
|
* Why bytes could not be opened: any bounded-reader rejection, plus the package that parsed but
|
|
@@ -589,4 +611,4 @@ declare function openTreeSession(bytes: Uint8Array, options?: OpenTreeSessionOpt
|
|
|
589
611
|
/** The origin a host should use when committing a reconciliation rather than a user edit. */
|
|
590
612
|
declare const PROJECTION_ORIGIN: "dev.docx-editor.core.origin.projection";
|
|
591
613
|
|
|
592
|
-
export { type DocumentStyleEntry as D, type MapResult as M, type OpenTreeSessionResult as O, PROJECTION_ORIGIN as P, type TreeDocxSession as T, type TreeApplyResult as a, type TreeBindingRejection as b, type
|
|
614
|
+
export { type DocumentStyleEntry as D, type MapResult as M, type OpenTreeSessionResult as O, PROJECTION_ORIGIN as P, type TreeDocxSession as T, type TreeApplyResult as a, type TreeBindingRejection as b, type TreeDocxSessionView as c, type TreeSessionRejection as d, bodyParagraphs as e, docToTreeOps as f, type DocumentThemeColorEntry as g, openTreeSession as o, partHasNode as p, reconcileDoc as r, treeToDoc as t };
|
|
@@ -1,34 +1,13 @@
|
|
|
1
|
-
import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-
|
|
2
|
-
import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, I as InsertCustomNodeWrite, C as CustomNodeWriteResult, b as CustomNodeSweepOutcome, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, c as InsertImageInput, d as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './custom-node-writes-
|
|
1
|
+
import { S as SupportedImageMime, b as ImageDecodePort } from './image-resources-BaHz4QAd.cjs';
|
|
2
|
+
import { S as StoryScope, a as StoryTargetRejection, D as DocumentTrackingSettings, I as InsertCustomNodeWrite, C as CustomNodeWriteResult, b as CustomNodeSweepOutcome, E as EmbeddedFont, B as BookmarkIndex, L as ListKind, c as InsertImageInput, d as ImageIntentResult, R as ReplaceImageOptions, A as ApplyImagePropertiesInput } from './custom-node-writes-D9G3GKQ7.cjs';
|
|
3
3
|
import { Node } from 'prosemirror-model';
|
|
4
|
-
import { a as ReviewItem } from './review-support-
|
|
4
|
+
import { a as ReviewItem } from './review-support-T-riLz4Y.cjs';
|
|
5
5
|
import { ReviewModuleContribution } from './contracts/modules.cjs';
|
|
6
6
|
import { e as OoxmlPart, O as OoxmlNode, a as OoxmlElement } from './ooxml-tree-BU0e3DVi.cjs';
|
|
7
7
|
import { O as OoxmlPackage, b as OoxmlPackageRejection } from './ooxml-package-CR5us6ad.cjs';
|
|
8
8
|
import { a as HeaderFooterParts, b as HeaderFooterSectionResolution } from './hf-references-CgEOSw3i.cjs';
|
|
9
|
-
import { T as
|
|
10
|
-
import {
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The scheme slots the picker shows, in Word's column order.
|
|
14
|
-
*
|
|
15
|
-
* Assumes the default `w:clrSchemeMapping` (bg1→lt1, t1→dk1, ...); a settings part
|
|
16
|
-
* that remaps them is rare and a follow-up.
|
|
17
|
-
*/
|
|
18
|
-
declare const PICKER_SLOTS: readonly ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6"];
|
|
19
|
-
type ThemeColorSlot = (typeof PICKER_SLOTS)[number];
|
|
20
|
-
/** One theme colour: the scheme slot and its resolved six-digit hex (no '#'). */
|
|
21
|
-
interface DocumentThemeColorEntry {
|
|
22
|
-
readonly slot: ThemeColorSlot;
|
|
23
|
-
readonly hex: string;
|
|
24
|
-
}
|
|
25
|
-
/** The theme's two font slots, for resolving `w:rFonts` theme attributes. */
|
|
26
|
-
interface DocumentThemeFonts {
|
|
27
|
-
/** `a:majorFont` latin typeface — headings. */
|
|
28
|
-
readonly major: string | null;
|
|
29
|
-
/** `a:minorFont` latin typeface — body text. */
|
|
30
|
-
readonly minor: string | null;
|
|
31
|
-
}
|
|
9
|
+
import { S as SelectionMark, T as TreeModelChange, D as DocumentProperties } from './tree-store-BqgeCa1Q.cjs';
|
|
10
|
+
import { T as TreeDocOp } from './tree-op-types-CUCwPWjT.cjs';
|
|
32
11
|
|
|
33
12
|
/**
|
|
34
13
|
* Why an edited projection could not be mapped back into tree ops.
|
|
@@ -164,6 +143,27 @@ interface DocumentSearchResult {
|
|
|
164
143
|
readonly truncated: boolean;
|
|
165
144
|
}
|
|
166
145
|
|
|
146
|
+
/**
|
|
147
|
+
* The scheme slots the picker shows, in Word's column order.
|
|
148
|
+
*
|
|
149
|
+
* Assumes the default `w:clrSchemeMapping` (bg1→lt1, t1→dk1, ...); a settings part
|
|
150
|
+
* that remaps them is rare and a follow-up.
|
|
151
|
+
*/
|
|
152
|
+
declare const PICKER_SLOTS: readonly ["lt1", "dk1", "lt2", "dk2", "accent1", "accent2", "accent3", "accent4", "accent5", "accent6"];
|
|
153
|
+
type ThemeColorSlot = (typeof PICKER_SLOTS)[number];
|
|
154
|
+
/** One theme colour: the scheme slot and its resolved six-digit hex (no '#'). */
|
|
155
|
+
interface DocumentThemeColorEntry {
|
|
156
|
+
readonly slot: ThemeColorSlot;
|
|
157
|
+
readonly hex: string;
|
|
158
|
+
}
|
|
159
|
+
/** The theme's two font slots, for resolving `w:rFonts` theme attributes. */
|
|
160
|
+
interface DocumentThemeFonts {
|
|
161
|
+
/** `a:majorFont` latin typeface — headings. */
|
|
162
|
+
readonly major: string | null;
|
|
163
|
+
/** `a:minorFont` latin typeface — body text. */
|
|
164
|
+
readonly minor: string | null;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
167
|
/** What a run inherits at one point of the chain — null means "nothing authored". */
|
|
168
168
|
interface StyleRunDefaults {
|
|
169
169
|
readonly fontFamily: string | null;
|
|
@@ -207,7 +207,7 @@ interface TreeApplyResult {
|
|
|
207
207
|
* Holds the whole package, not just the body — headers, footers, notes, comments and styles are
|
|
208
208
|
* all reachable through it, and parts the engine does not model are preserved verbatim.
|
|
209
209
|
*/
|
|
210
|
-
interface
|
|
210
|
+
interface TreeDocxSessionView {
|
|
211
211
|
/** Whether the body holds at least one editable paragraph. */
|
|
212
212
|
readonly editable: boolean;
|
|
213
213
|
/** Canonical node ids of the body paragraphs, in order. */
|
|
@@ -238,20 +238,6 @@ interface TreeDocxSession {
|
|
|
238
238
|
* and one undo unit without swapping the body store.
|
|
239
239
|
*/
|
|
240
240
|
applyTreeOps(ops: readonly TreeDocOp[], selectionBefore?: SelectionMark | null, selectionAfter?: SelectionMark | null, scope?: StoryScope): TreeApplyResult;
|
|
241
|
-
/** Project the current BODY revision into a ProseMirror doc. */
|
|
242
|
-
projectDoc(): Node;
|
|
243
|
-
/** Re-project incrementally from the last committed change, reusing untouched paragraphs. */
|
|
244
|
-
reconcile(previousDoc: Node): Node;
|
|
245
|
-
/**
|
|
246
|
-
* Whether the last commit changed the BLOCK SEQUENCE (a split, join, insert or delete).
|
|
247
|
-
*
|
|
248
|
-
* A host needs this to decide whether the view must be re-projected at all: after a pure
|
|
249
|
-
* text edit the view already holds what the model holds, and re-projecting anyway both
|
|
250
|
-
* wastes work and races the next keystroke.
|
|
251
|
-
*/
|
|
252
|
-
lastCommitWasStructural(): boolean;
|
|
253
|
-
/** Map an edited BODY doc to tree ops and commit them as ONE transaction. */
|
|
254
|
-
applyPmDoc(doc: Node): TreeApplyResult;
|
|
255
241
|
/** Body text, paragraphs joined by newlines, read from the CANONICAL tree. */
|
|
256
242
|
bodyText(): string;
|
|
257
243
|
/** Text of a story scope, paragraphs joined by newlines. */
|
|
@@ -305,6 +291,15 @@ interface TreeDocxSession {
|
|
|
305
291
|
* Memoized per package revision.
|
|
306
292
|
*/
|
|
307
293
|
documentFonts(): readonly string[];
|
|
294
|
+
/**
|
|
295
|
+
* Whether the document puts any literal character on a page, over the same roots
|
|
296
|
+
* {@link TreeDocxSessionView.documentFonts} reads. Memoized per package revision.
|
|
297
|
+
*
|
|
298
|
+
* The font-substitution notice needs it: `documentFonts` reports what the document
|
|
299
|
+
* DECLARES, and a brand-new document declares Word's Calibri default over a single
|
|
300
|
+
* empty paragraph — a declaration with no glyph behind it.
|
|
301
|
+
*/
|
|
302
|
+
rendersText(): boolean;
|
|
308
303
|
/**
|
|
309
304
|
* The `w:style` definitions of the styles part, validated and projected for a style
|
|
310
305
|
* picker. Memoized once: the styles part is immutable for the session's lifetime.
|
|
@@ -336,6 +331,12 @@ interface TreeDocxSession {
|
|
|
336
331
|
* Settings editing is a later slice, so this is immutable for the session.
|
|
337
332
|
*/
|
|
338
333
|
settingsRoot(): OoxmlElement | null;
|
|
334
|
+
/**
|
|
335
|
+
* The document's own metadata from `docProps/core.xml` and `docProps/app.xml`, for
|
|
336
|
+
* document-property fields (TITLE, AUTHOR, SUBJECT, KEYWORDS, LASTSAVEDBY, COMMENTS). Read
|
|
337
|
+
* once per package revision; an empty object when the parts are absent.
|
|
338
|
+
*/
|
|
339
|
+
documentProperties(): DocumentProperties;
|
|
339
340
|
/**
|
|
340
341
|
* What `settings.xml` says about tracking — `w:trackRevisions`, the tracked-changes
|
|
341
342
|
* protection, and the two do-not-track switches.
|
|
@@ -546,6 +547,27 @@ interface TreeDocxSession {
|
|
|
546
547
|
/** Apply image property tree ops plus hyperlink relationship wiring atomically. */
|
|
547
548
|
applyImageProperties(scope: StoryScope, input: ApplyImagePropertiesInput): ImageIntentResult;
|
|
548
549
|
}
|
|
550
|
+
/**
|
|
551
|
+
* Binding-only session methods that exchange ProseMirror projections.
|
|
552
|
+
*
|
|
553
|
+
* Editor surfaces expose {@link TreeDocxSessionView}. Only the binding lane sees this extension.
|
|
554
|
+
*/
|
|
555
|
+
interface TreeDocxSession extends TreeDocxSessionView {
|
|
556
|
+
/** Project the current BODY revision into a ProseMirror doc. */
|
|
557
|
+
projectDoc(): Node;
|
|
558
|
+
/** Re-project incrementally from the last committed change, reusing untouched paragraphs. */
|
|
559
|
+
reconcile(previousDoc: Node): Node;
|
|
560
|
+
/**
|
|
561
|
+
* Whether the last commit changed the BLOCK SEQUENCE (a split, join, insert or delete).
|
|
562
|
+
*
|
|
563
|
+
* A host needs this to decide whether the view must be re-projected at all. After a pure
|
|
564
|
+
* text edit, the view already holds what the model holds. Re-projecting wastes work and
|
|
565
|
+
* races the next keystroke.
|
|
566
|
+
*/
|
|
567
|
+
lastCommitWasStructural(): boolean;
|
|
568
|
+
/** Map an edited BODY doc to tree ops and commit them as one transaction. */
|
|
569
|
+
applyPmDoc(doc: Node): TreeApplyResult;
|
|
570
|
+
}
|
|
549
571
|
|
|
550
572
|
/**
|
|
551
573
|
* Why bytes could not be opened: any bounded-reader rejection, plus the package that parsed but
|
|
@@ -589,4 +611,4 @@ declare function openTreeSession(bytes: Uint8Array, options?: OpenTreeSessionOpt
|
|
|
589
611
|
/** The origin a host should use when committing a reconciliation rather than a user edit. */
|
|
590
612
|
declare const PROJECTION_ORIGIN: "dev.docx-editor.core.origin.projection";
|
|
591
613
|
|
|
592
|
-
export { type DocumentStyleEntry as D, type MapResult as M, type OpenTreeSessionResult as O, PROJECTION_ORIGIN as P, type TreeDocxSession as T, type TreeApplyResult as a, type TreeBindingRejection as b, type
|
|
614
|
+
export { type DocumentStyleEntry as D, type MapResult as M, type OpenTreeSessionResult as O, PROJECTION_ORIGIN as P, type TreeDocxSession as T, type TreeApplyResult as a, type TreeBindingRejection as b, type TreeDocxSessionView as c, type TreeSessionRejection as d, bodyParagraphs as e, docToTreeOps as f, type DocumentThemeColorEntry as g, openTreeSession as o, partHasNode as p, reconcileDoc as r, treeToDoc as t };
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
import { e as OoxmlPart } from './ooxml-tree-BU0e3DVi.cjs';
|
|
2
2
|
import { O as OoxmlPackage } from './ooxml-package-CR5us6ad.cjs';
|
|
3
|
-
import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-
|
|
3
|
+
import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-CUCwPWjT.cjs';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The document metadata Word's document-property fields render.
|
|
7
|
+
*
|
|
8
|
+
* Every member is optional: an absent part, an absent element, or an empty value all read as
|
|
9
|
+
* `undefined`, and a field over a missing property paints nothing. Keys are engine-internal
|
|
10
|
+
* names; the field → property mapping (`TITLE` → `title`, `AUTHOR` → `creator`, …) lives in
|
|
11
|
+
* `layout/field-doc-property.ts`.
|
|
12
|
+
*/
|
|
13
|
+
interface DocumentProperties {
|
|
14
|
+
/** `dc:title` — TITLE. */
|
|
15
|
+
readonly title?: string;
|
|
16
|
+
/** `dc:creator` — AUTHOR. */
|
|
17
|
+
readonly creator?: string;
|
|
18
|
+
/** `dc:subject` — SUBJECT. */
|
|
19
|
+
readonly subject?: string;
|
|
20
|
+
/** `cp:keywords` — KEYWORDS. */
|
|
21
|
+
readonly keywords?: string;
|
|
22
|
+
/** `cp:lastModifiedBy` — LASTSAVEDBY. */
|
|
23
|
+
readonly lastModifiedBy?: string;
|
|
24
|
+
/** `dc:description` — COMMENTS. */
|
|
25
|
+
readonly description?: string;
|
|
26
|
+
/** `Company` from `docProps/app.xml`. No field maps to it yet; carried for completeness. */
|
|
27
|
+
readonly company?: string;
|
|
28
|
+
/** `Manager` from `docProps/app.xml`. No field maps to it yet; carried for completeness. */
|
|
29
|
+
readonly manager?: string;
|
|
30
|
+
}
|
|
4
31
|
|
|
5
32
|
/** A selection the caller wants restored when an entry is undone or redone. */
|
|
6
33
|
/** A selection captured with a transaction, so undo restores where the caret was. */
|
|
@@ -270,4 +297,4 @@ declare class TreeDocumentStore {
|
|
|
270
297
|
private publish;
|
|
271
298
|
}
|
|
272
299
|
|
|
273
|
-
export { type SelectionMark as S, type TreeModelChange as T, type TreeStoryRef as a, TreeDocumentStore as b, type TransactionContext as c, type TransactOptions as d, type TreeDocumentCheckpoint as e, type TreeDocumentStoreOptions as f, type TransactResult as g };
|
|
300
|
+
export { type DocumentProperties as D, type SelectionMark as S, type TreeModelChange as T, type TreeStoryRef as a, TreeDocumentStore as b, type TransactionContext as c, type TransactOptions as d, type TreeDocumentCheckpoint as e, type TreeDocumentStoreOptions as f, type TransactResult as g };
|
|
@@ -1,6 +1,33 @@
|
|
|
1
1
|
import { e as OoxmlPart } from './ooxml-tree-BU0e3DVi.js';
|
|
2
2
|
import { O as OoxmlPackage } from './ooxml-package-D_CtywTW.js';
|
|
3
|
-
import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-
|
|
3
|
+
import { I as ImpactClass, T as TreeDocOp, a as TreeOpRejection } from './tree-op-types-D0fTNBVW.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The document metadata Word's document-property fields render.
|
|
7
|
+
*
|
|
8
|
+
* Every member is optional: an absent part, an absent element, or an empty value all read as
|
|
9
|
+
* `undefined`, and a field over a missing property paints nothing. Keys are engine-internal
|
|
10
|
+
* names; the field → property mapping (`TITLE` → `title`, `AUTHOR` → `creator`, …) lives in
|
|
11
|
+
* `layout/field-doc-property.ts`.
|
|
12
|
+
*/
|
|
13
|
+
interface DocumentProperties {
|
|
14
|
+
/** `dc:title` — TITLE. */
|
|
15
|
+
readonly title?: string;
|
|
16
|
+
/** `dc:creator` — AUTHOR. */
|
|
17
|
+
readonly creator?: string;
|
|
18
|
+
/** `dc:subject` — SUBJECT. */
|
|
19
|
+
readonly subject?: string;
|
|
20
|
+
/** `cp:keywords` — KEYWORDS. */
|
|
21
|
+
readonly keywords?: string;
|
|
22
|
+
/** `cp:lastModifiedBy` — LASTSAVEDBY. */
|
|
23
|
+
readonly lastModifiedBy?: string;
|
|
24
|
+
/** `dc:description` — COMMENTS. */
|
|
25
|
+
readonly description?: string;
|
|
26
|
+
/** `Company` from `docProps/app.xml`. No field maps to it yet; carried for completeness. */
|
|
27
|
+
readonly company?: string;
|
|
28
|
+
/** `Manager` from `docProps/app.xml`. No field maps to it yet; carried for completeness. */
|
|
29
|
+
readonly manager?: string;
|
|
30
|
+
}
|
|
4
31
|
|
|
5
32
|
/** A selection the caller wants restored when an entry is undone or redone. */
|
|
6
33
|
/** A selection captured with a transaction, so undo restores where the caret was. */
|
|
@@ -270,4 +297,4 @@ declare class TreeDocumentStore {
|
|
|
270
297
|
private publish;
|
|
271
298
|
}
|
|
272
299
|
|
|
273
|
-
export { type SelectionMark as S, type TreeModelChange as T, type TreeStoryRef as a, TreeDocumentStore as b, type TransactionContext as c, type TransactOptions as d, type TreeDocumentCheckpoint as e, type TreeDocumentStoreOptions as f, type TransactResult as g };
|
|
300
|
+
export { type DocumentProperties as D, type SelectionMark as S, type TreeModelChange as T, type TreeStoryRef as a, TreeDocumentStore as b, type TransactionContext as c, type TransactOptions as d, type TreeDocumentCheckpoint as e, type TreeDocumentStoreOptions as f, type TransactResult as g };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
HarfBuzz is licensed under the so-called "Old MIT" license. Details follow.
|
|
2
|
+
For parts of HarfBuzz that are licensed under different licenses see individual
|
|
3
|
+
files names COPYING in subdirectories where applicable.
|
|
4
|
+
|
|
5
|
+
Copyright © 2010-2022 Google, Inc.
|
|
6
|
+
Copyright © 2015-2020 Ebrahim Byagowi
|
|
7
|
+
Copyright © 2019,2020 Facebook, Inc.
|
|
8
|
+
Copyright © 2012,2015 Mozilla Foundation
|
|
9
|
+
Copyright © 2011 Codethink Limited
|
|
10
|
+
Copyright © 2008,2010 Nokia Corporation and/or its subsidiary(-ies)
|
|
11
|
+
Copyright © 2009 Keith Stribley
|
|
12
|
+
Copyright © 2011 Martin Hosken and SIL International
|
|
13
|
+
Copyright © 2007 Chris Wilson
|
|
14
|
+
Copyright © 2005,2006,2020,2021,2022,2023 Behdad Esfahbod
|
|
15
|
+
Copyright © 2004,2007,2008,2009,2010,2013,2021,2022,2023 Red Hat, Inc.
|
|
16
|
+
Copyright © 1998-2005 David Turner and Werner Lemberg
|
|
17
|
+
Copyright © 2016 Igalia S.L.
|
|
18
|
+
Copyright © 2022 Matthias Clasen
|
|
19
|
+
Copyright © 2018,2021 Khaled Hosny
|
|
20
|
+
Copyright © 2018,2019,2020 Adobe, Inc
|
|
21
|
+
Copyright © 2013-2015 Alexei Podtelezhnikov
|
|
22
|
+
|
|
23
|
+
For full copyright notices consult the individual files in the package.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Permission is hereby granted, without written agreement and without
|
|
27
|
+
license or royalty fees, to use, copy, modify, and distribute this
|
|
28
|
+
software and its documentation for any purpose, provided that the
|
|
29
|
+
above copyright notice and the following two paragraphs appear in
|
|
30
|
+
all copies of this software.
|
|
31
|
+
|
|
32
|
+
IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR
|
|
33
|
+
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
|
|
34
|
+
ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
|
|
35
|
+
IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
36
|
+
DAMAGE.
|
|
37
|
+
|
|
38
|
+
THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
|
|
39
|
+
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
40
|
+
FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
|
|
41
|
+
ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO
|
|
42
|
+
PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docx-editor.dev/core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Framework-agnostic core for docx-editor.dev: OOXML parse/serialize, the canonical document tree, layout and paint, and the Editor contract the adapters render.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -65,10 +65,11 @@
|
|
|
65
65
|
"require": "./dist/editor.cjs"
|
|
66
66
|
},
|
|
67
67
|
"./styles/editor.css": "./dist/editor.css",
|
|
68
|
+
"./harfbuzz.wasm": "./dist/harfbuzz.wasm",
|
|
68
69
|
"./package.json": "./package.json"
|
|
69
70
|
},
|
|
70
71
|
"scripts": {
|
|
71
|
-
"build": "tsup && node ../../scripts/build-core-styles.mjs",
|
|
72
|
+
"build": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\" && tsup && node ../../scripts/build-core-styles.mjs",
|
|
72
73
|
"typecheck": "tsc --noEmit"
|
|
73
74
|
},
|
|
74
75
|
"devDependencies": {
|
|
@@ -85,12 +86,12 @@
|
|
|
85
86
|
"directory": "packages/core"
|
|
86
87
|
},
|
|
87
88
|
"dependencies": {
|
|
88
|
-
"@docx-editor.dev/i18n": "^2.
|
|
89
|
+
"@docx-editor.dev/i18n": "^2.6.0",
|
|
89
90
|
"bidi-js": "1.0.3",
|
|
90
91
|
"emf-converter": "2.0.2",
|
|
91
92
|
"fast-xml-parser": "^5.10.1",
|
|
92
93
|
"fflate": "^0.8.2",
|
|
93
|
-
"harfbuzzjs": "1.
|
|
94
|
+
"harfbuzzjs": "1.6.0",
|
|
94
95
|
"prosemirror-commands": "^1.7.1",
|
|
95
96
|
"prosemirror-keymap": "^1.2.3",
|
|
96
97
|
"prosemirror-model": "^1.25.4",
|
|
@@ -112,6 +113,7 @@
|
|
|
112
113
|
},
|
|
113
114
|
"files": [
|
|
114
115
|
"dist",
|
|
116
|
+
"licenses",
|
|
115
117
|
"!dist/metafile-*.json",
|
|
116
118
|
"README.md",
|
|
117
119
|
"THIRD_PARTY_NOTICES.md"
|
package/dist/chunk-33F6TRXO.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import {t,u,G,w as w$1,B as B$1,A,z,yc,Dc,Ea,Ca,Ha,Aa,o,ca,pe,ne as ne$1,Fa,Ja,le,Ga,zb,df,Ze,Ve as Ve$1,Re,Fb,Ra,ba,Kc,la,q as q$1,ua,wa,Zb,kc,Kb,Mb,va,ka,pa,oa}from'./chunk-TCX3PVWR.js';import {strFromU8,strToU8}from'fflate';var $t=["extension","capability","command","query","schema","dependencyKey","runtimePort","result","origin"],At=/^[a-z0-9]+(?:-[a-z0-9]+)*(?:\.[a-z0-9]+(?:-[a-z0-9]+)*)+$/,Dt=/^@[a-z0-9.-]+\/[a-z0-9.-]+(?:#[a-z0-9]+(?:[/._-][a-z0-9]+)*)?$/;function nt(e){return At.test(e)||Dt.test(e)}function Y(e,t){if(!nt(e))throw new Error(`invalid ${t??"registry"} id ${JSON.stringify(e)}: must be reverse-domain (dev.docx-editor.core.x) or package-owned (@scope/pkg#kind/name)`)}var Ft=/^(\d+)\.(\d+)\.(\d+)$/;function k(e){let t=Ft.exec(e);if(!t)throw new Error(`invalid semantic version: ${JSON.stringify(e)}`);return {major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}}function J(e,t){return e.major!==t.major?e.major<t.major?-1:1:e.minor!==t.minor?e.minor<t.minor?-1:1:e.patch!==t.patch?e.patch<t.patch?-1:1:0}function q(e,t){let n=k(e),r=t.trim();if(r==="*")return true;if(r.startsWith("^")){let o=k(r.slice(1));return J(n,o)<0?false:o.major>0?n.major===o.major:o.minor>0?n.major===0&&n.minor===o.minor:n.major===0&&n.minor===0}if(r.includes(" ")){let o=r.split(/\s+/);if(o.length!==2)throw new Error(`unsupported version range: ${JSON.stringify(t)}`);let s=true;for(let a of o){let i=a.startsWith(">=")?">=":a.startsWith("<")?"<":null;if(!i)throw new Error(`unsupported version range: ${JSON.stringify(t)}`);let d=k(a.slice(i.length)),l=J(n,d);i===">="?s=s&&l>=0:s=s&&l<0;}return s}return J(n,k(r))===0}var h=class extends Error{constructor(n,r,o=[]){super(r);this.code=n;this.responsible=o;this.name="RegistryError";}code;responsible},_e=(e,t)=>`${e}:${t}`;function Lt(e,t={}){let n=new Map;for(let l of e){if(Y(l.id,"extension"),rt(l.version,l.id),n.has(l.id))throw new h("duplicate-extension",`duplicate extension id ${l.id}`,[l.id]);n.set(l.id,l);for(let c of l.contributions)Y(c.id,c.kind),rt(c.version,`${l.id} \u2192 ${c.id}`),c.replaces&&Ht(c.replaces.targetRange,`${l.id} \u2192 replaces ${c.replaces.targetId}`);}for(let l of e){for(let c of l.dependencies??[])if(!n.has(c))throw new h("missing-dependency",`${l.id} requires missing extension ${c}`,[l.id,c]);for(let c of l.conflicts??[])if(n.has(c)){let p=[l.id,c].sort();throw new h("conflict",`extensions ${p[0]} and ${p[1]} conflict`,p)}}Bt(n);let r=new Set(t.availablePorts??[]);for(let l of e)for(let c of l.contributions)c.kind==="runtimePort"&&r.add(c.id);for(let l of e)for(let c of l.requiredPorts??[])if(!r.has(c))throw new h("missing-port",`${l.id} requires unavailable port ${c}`,[l.id,c]);let o=new Map,s=new Map,a=new Map;for(let l of e)for(let c of l.contributions){let p=_e(c.kind,c.id);if(c.replaces){let u=_e(c.kind,c.replaces.targetId),m=a.get(u)??[];m.push({ext:l.id,c}),a.set(u,m);continue}if(s.has(p)){let u=[o.get(p),l.id].sort();throw new h("id-collision",`${c.kind} id ${c.id} registered by both ${u[0]} and ${u[1]}`,u)}s.set(p,c),o.set(p,l.id);}let i=new Map(s);for(let[l,c]of a){let p=s.get(l);if(!p){let f=c[0];throw new h("replacement-target-missing",`${f.ext} replaces missing target ${f.c.replaces.targetId}`,[f.ext,f.c.replaces.targetId])}let u=p.replaceable??{kind:"none"};for(let{ext:f,c:y}of c){if(!q(p.version,y.replaces.targetRange))throw new h("replacement-version-mismatch",`${f} replaces ${y.replaces.targetId}@${p.version} outside range ${y.replaces.targetRange}`,[f,y.replaces.targetId]);if(u.kind==="none")throw new h("unauthorized-replacement",`${y.replaces.targetId} does not authorize replacement (attempted by ${f})`,[f,y.replaces.targetId])}let m=Mt(p,c);i.set(l,m);}return {extensions:n,contributions:i,get:(l,c)=>i.get(_e(l,c))}}function Mt(e,t){let n=e.replaceable??{kind:"none"};if(t.length===1)return t[0].c;if(n.kind==="priority"){let o=[...t].sort((i,d)=>(d.c.replaces.priority??0)-(i.c.replaces.priority??0)),s=o[0].c.replaces.priority??0,a=o.filter(i=>(i.c.replaces.priority??0)===s);if(a.length>1){let i=a.map(d=>d.ext).sort();throw new h("ambiguous-replacement",`multiple replacers of ${e.id} share top priority ${s}: ${i.join(", ")}`,i)}return o[0].c}let r=t.map(o=>o.ext).sort();throw new h("ambiguous-replacement",`multiple replacers of ${e.id}: ${r.join(", ")}`,r)}function Bt(e){let o=new Map,s=[],a=i=>{o.set(i,1),s.push(i);let d=[...e.get(i)?.dependencies??[]].sort();for(let l of d){let c=o.get(l)??0;if(c===1){let p=s.indexOf(l),u=[...s.slice(p),l];throw new h("dependency-cycle",`dependency cycle: ${u.join(" -> ")}`,u)}c===0&&a(l);}s.pop(),o.set(i,2);};for(let i of [...e.keys()].sort())(o.get(i)??0)===0&&a(i);}function rt(e,t){try{k(e);}catch{throw new h("invalid-version",`invalid version ${JSON.stringify(e)} in ${t}`,[t])}}function Ht(e,t){try{q("0.0.0",e);}catch{throw new h("invalid-version",`invalid version range ${JSON.stringify(e)} in ${t}`,[t])}}var S=class extends Error{constructor(t){super(t),this.name="BudgetError";}},M=class e{constructor(t,n){this.label=t;this.capacity=n;this.used=new G(`${t}.budget`,n);}label;capacity;used;children=new Set;activeReservations=0;cleanups=[];disposed=false;carveAmount=0;parent;get inUse(){return this.used.current}get available(){return this.used.remaining}get isDisposed(){return this.disposed}reserve(t){this.assertLive(),this.used.add(t),this.activeReservations+=1;let n=false,r=this;return {amount:t,get released(){return n},release(){n||(n=true,r.used.release(t),r.activeReservations-=1);}}}child(t,n){this.assertLive(),this.used.add(n);let r=new e(t,n);return r.parent=this,r.carveAmount=n,this.children.add(r),r}onRelease(t){this.assertLive(),this.cleanups.push(t);}dispose(){if(this.disposed)return;if(this.children.size>0)throw new S(`${this.label}: cannot release with ${this.children.size} child budget(s) outstanding`);if(this.activeReservations>0)throw new S(`${this.label}: cannot release with ${this.activeReservations} reservation(s) outstanding`);let t=[];for(let n=this.cleanups.length-1;n>=0;n--)try{this.cleanups[n]();}catch(r){t.push(r);}if(this.disposed=true,this.parent&&(this.parent.children.delete(this),this.parent.used.release(this.carveAmount),this.parent=void 0),t.length>0)throw new S(`${this.label}: ${t.length} cleanup error(s); first: ${String(t[0])}`)}assertLive(){if(this.disposed)throw new S(`${this.label}: budget already released`)}};var Q=class extends Error{constructor(n,r){super(r?`cancelled: ${r}`:"cancelled");this.derivedOnly=n;this.name="CancellationError";}derivedOnly},B=class{_cancelled=false;_phase="pre-publication";_reason;cancel(t){this._cancelled=true,t!==void 0&&(this._reason=t);}markPublished(){this._phase="post-publication";}get isCancelled(){return this._cancelled}get phase(){return this._phase}get isPublished(){return this._phase==="post-publication"}get derivedOnly(){return this._cancelled&&this._phase==="post-publication"}get token(){let t=this;return {get isCancelled(){return t._cancelled},get phase(){return t._phase},get derivedOnly(){return t.derivedOnly},checkpoint(){if(t._cancelled)throw new Q(t.derivedOnly,t._reason)}}}};var Z=class extends Error{constructor(n){super(`runtime port not available: ${n}`);this.portId=n;this.name="PortResolutionError";}portId},$e=class{ports=new Map;provide(t,n){return this.ports.set(t,n),this}has(t){return this.ports.has(t)}resolve(t){if(!this.ports.has(t))throw new Z(t);return this.ports.get(t)}missing(t){return t.filter(n=>!this.ports.has(n))}availablePorts(){return [...this.ports.keys()]}clock(){return this.resolve(w$1.clock)}identity(){return this.resolve(w$1.identity)}},Ae=class{constructor(t=0,n=1){this.step=n;this.t=t;}step;t;now(){let t=this.t;return this.t+=this.step,t}},De=class{constructor(t="id"){this.prefix=t;}prefix;n=0;newId(){return this.n+=1,`${this.prefix}-${this.n}`}};function Ut(e){let t=B$1(e.limits),n=Object.freeze({...e.config??{}}),r=e.capacity??t.maxDecompressedBytes,o=e.id??"op",s={id:o,limits:t,config:n,ports:e.ports,budget:new M(`op:${o}`,r),cancellation:new B};return Object.freeze(s)}function Vt(e){e.budget.dispose();}var Le=Object.freeze({maxRecursionDepth:{unit:"depth",phase:"xml-parse"},maxElementCount:{unit:"count",phase:"xml-parse"},maxPartCount:{unit:"count",phase:"package-read"},maxDecompressedBytes:{unit:"bytes",phase:"package-read"},maxCompressedBytes:{unit:"bytes",phase:"package-read"},maxCompressionRatio:{unit:"ratio",phase:"package-read"},maxChunkBytes:{unit:"bytes",phase:"package-read"},maxPaginationPasses:{unit:"passes",phase:"layout"},maxQueueDepth:{unit:"count",phase:"output"}}),ot=Object.keys(Le);function Xt(e,t){return new G(`${Le[t].phase}:${t}`,e[t])}var Fe=class{counter;current=0;peak=0;constructor(t){this.counter=new G("memory",t);}allocate(t){this.counter.add(t),this.current+=t,this.current>this.peak&&(this.peak=this.current);}free(t){this.counter.release(t),this.current=Math.max(0,this.current-t);}get currentBytes(){return this.current}get peakBytes(){return this.peak}reset(){this.counter.release(this.current),this.current=0;}};function jt(){for(let e of ot){let t=A[e],n=z[e];if(!Number.isFinite(t)||t<=0)throw new Error(`default ${e} must be finite > 0`);if(!Number.isFinite(n)||n<=0)throw new Error(`ceiling ${e} must be finite > 0`);if(t>n)throw new Error(`default ${e} exceeds ceiling`)}}function H(e,t=new Set){let n=new WeakSet,r=o=>{if(o===null)return "null";let s=typeof o;if(s==="boolean")return o?"true":"false";if(s==="number"){let a=o;if(!Number.isFinite(a))throw new Error(`non-finite number is not comparable: ${a}`);return Object.is(a,-0)?"0":String(a)}if(s==="string")return JSON.stringify(o);if(s==="bigint")return `${o.toString()}n`;if(Array.isArray(o))return `[${o.map(r).join(",")}]`;if(s==="object"){let a=o;if(n.has(a))throw new Error("cannot canonicalize a cyclic structure");n.add(a);let d=Object.keys(a).filter(l=>!t.has(l)).sort().map(l=>`${JSON.stringify(l)}:${r(a[l])}`).join(",");return n.delete(a),`{${d}}`}throw new Error(`unsupported value type in comparator input: ${s}`)};return r(e)}function Me(e,t){let n=H(e,t),r=0xcbf29ce484222325n,o=0x100000001b3n,s=0xffffffffffffffffn;for(let a=0;a<n.length;a++)r^=BigInt(n.charCodeAt(a)),r=r*o&s;return r.toString(16).padStart(16,"0")}var R="dev.docx-editor.core.comparator",Be={authoredState:{id:`${R}.authored-state`,mode:"canonical-exact",ephemera:["revision","provenance","producedAt","commitId"],note:"canonical normalized authored records; ephemera excluded"},anchor:{id:`${R}.anchor`,mode:"exact",ephemera:[],note:"internal anchor identity/affinity compares exactly"},yjsStateVector:{id:`${R}.yjs-state-vector`,mode:"sync-optimization-only",ephemera:[],note:"exchange optimization only; never proves update or delete-set coverage"},shapedRun:{id:`${R}.shaped-run`,mode:"exact",ephemera:[],note:"glyph ids, clusters, and fixed-point advances compare exactly"},paginationFingerprint:{id:`${R}.pagination-fingerprint`,mode:"exact",ephemera:[],note:"page/column boundaries, break causes, fixed-point geometry compare exactly"},semanticTree:{id:`${R}.semantic-tree`,mode:"exact",ephemera:[],note:"reading order, roles, headings, alt text compare exactly"},hitTest:{id:`${R}.hit-test`,mode:"exact",ephemera:[],note:"resolved hit target and cluster affinity compare exactly"},pdfSemantics:{id:`${R}.pdf-semantics`,mode:"canonical-exact",ephemera:["objectNumber","producer","creationDate","modDate","subsetTag"],note:"canonical semantic PDF objects; container ephemera excluded"},rasterCheckpoint:{id:`${R}.raster-checkpoint`,mode:"tolerance",ephemera:[],note:"documented unavoidable raster comparison; explicit tolerance only"},benchmarkEvidence:{id:`${R}.benchmark-evidence`,mode:"sync-optimization-only",ephemera:[],note:"diagnostic evidence, not an equivalence basis"}};function He(e,t,n,r={}){let o=Be[e];switch(o.mode){case "sync-optimization-only":throw new Error(`${o.id} is not an equivalence basis (${o.note})`);case "tolerance":{if(r.epsilon===void 0)throw new Error(`${o.id} requires an explicit epsilon`);return {equal:it(t,n,r.epsilon)}}case "exact":case "canonical-exact":{let s=o.mode==="canonical-exact"?new Set(o.ephemera):new Set,a=H(t,s),i=H(n,s);return a===i?{equal:true}:{equal:false,left:a,right:i}}}}function Ue(e,t){let n=Be[e];if(n.mode==="tolerance"||n.mode==="sync-optimization-only")throw new Error(`${n.id} has no canonical fingerprint (${n.mode})`);let r=n.mode==="canonical-exact"?new Set(n.ephemera):void 0;return Me(t,r)}function it(e,t,n){return typeof e=="number"&&typeof t=="number"?Number.isFinite(e)&&Number.isFinite(t)&&Math.abs(e-t)<=n:Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((r,o)=>it(r,t[o],n)):false}var st=new Set([...t,...u]),at=/^[0-9a-f]{16}$/,Kt=/^[0-9a-f]*$/;function Ve(e){let t=[],n=o=>t.push(o);e.formatVersion!==1&&n(`unsupported formatVersion ${e.formatVersion}`),e.documentId||n("documentId is required"),e.source.kind==="docx"&&!/^[0-9a-f]{64}$/.test(e.source.sha256)&&n("docx source requires a 64-hex sha256");let r=-1;e.steps.forEach((o,s)=>{let a=`step[${s}]`;st.has(o.origin)||n(`${a}: unknown origin ${o.origin}`),(!Number.isInteger(o.baseRevision)||o.baseRevision<0)&&n(`${a}: baseRevision must be a non-negative integer`),o.baseRevision<r&&n(`${a}: baseRevision regressed below ${r}`);let i=o.expect;i.outcome==="applied"?(i.committedRevision===void 0?n(`${a}: applied step needs committedRevision`):i.committedRevision<=o.baseRevision?n(`${a}: committedRevision ${i.committedRevision} must exceed baseRevision ${o.baseRevision}`):r=i.committedRevision,i.modelChange&&Gt(i.modelChange,a,n)):(i.committedRevision!==void 0&&n(`${a}: ${i.outcome} step must not commit a revision`),i.authoredStateHash!==void 0&&n(`${a}: ${i.outcome} step must not change authored state`)),i.authoredStateHash!==void 0&&!at.test(i.authoredStateHash)&&n(`${a}: authoredStateHash must be 16-hex`),i.outputHash!==void 0&&!at.test(i.outputHash)&&n(`${a}: outputHash must be 16-hex`);});for(let o of [...e.snapshots??[],...e.updates??[]])o.documentId!==e.documentId&&n(`envelope documentId ${o.documentId} != ${e.documentId}`),Kt.test(o.bytesHex)||n("envelope bytesHex must be hex"),o.bytesHex.length!==o.byteLength*2&&n(`envelope byteLength ${o.byteLength} disagrees with ${o.bytesHex.length/2} decoded bytes`);return {valid:t.length===0,errors:t}}function Gt(e,t,n){st.has(e.origin)||n(`${t}: modelChange origin ${e.origin} unknown`),e.toRevision<=e.fromRevision&&n(`${t}: modelChange revision must advance`);}function zt(e,t){let n=Ve(e);if(!n.valid)return {ok:false,mismatches:n.errors};let r=[];return t.init(e),e.steps.forEach((o,s)=>{let a=`step[${s}]`,i=t.applyStep(o),d=o.expect;if(i.outcome!==d.outcome){r.push(`${a}: outcome ${i.outcome} != expected ${d.outcome}`);return}if(d.outcome==="applied"&&(i.committedRevision!==d.committedRevision&&r.push(`${a}: revision ${i.committedRevision} != expected ${d.committedRevision}`),d.authoredStateHash!==void 0))if(i.authoredState===void 0)r.push(`${a}: store returned no authored state to hash`);else {He("authoredState",i.authoredState,i.authoredState).equal||r.push(`${a}: authored state is not self-consistent`);let c=lt(i.authoredState);c!==d.authoredStateHash&&r.push(`${a}: authoredStateHash ${c} != expected ${d.authoredStateHash}`);}}),{ok:r.length===0,mismatches:r}}function lt(e){return Ue("authoredState",e)}var Wt=new Map([["embedRegular","regular"],["embedBold","bold"],["embedItalic","italic"],["embedBoldItalic","boldItalic"]]),Yt=32;function pt(e,t){let n=t.replace(/[^0-9a-fA-F]/g,"");if(n.length!==32)return null;let r=new Uint8Array(16);for(let a=0;a<16;a+=1){let i=Number.parseInt(n.slice(a*2,a*2+2),16);if(Number.isNaN(i))return null;r[15-a]=i;}let o=new Uint8Array(e),s=Math.min(Yt,o.length);for(let a=0;a<s;a+=1)o[a]=o[a]^r[a%16];return o}var Xe=(e,t)=>{if(!(e.kind==="textValue"||!("attributes"in e))){for(let n of e.attributes??[])if(n.localName===t)return n.value}},ct=e=>e.kind==="textValue"?[]:e.children??[],dt=e=>e.kind==="textValue"||!("localName"in e)?"":e.localName;function Jt(e,t,n){for(let r of e.relationships.get(t)??[]){if(r.id!==n)continue;if(r.targetMode==="External")return null;let o=q$1(t,r.rawTarget);return o.ok?o.partName:null}return null}function qt(e,t,n={}){if(!t)return [];let r=n.maxFontBytes??16*1024*1024,o=n.maxFonts??64,s=[],a=new Map,i=d=>{if(!(s.length>=o)){if(dt(d)==="font"){let l=Xe(d,"name");if(l&&l.length<=128)for(let c of ct(d)){if(s.length>=o)return;let p=Wt.get(dt(c));if(!p)continue;let u=Xe(c,"id"),m=Xe(c,"fontKey");if(!u||!m)continue;let f=Jt(e,t.name,u);if(!f)continue;let y=e.partBytes.get(f);if(!y||y.length===0||y.length>r)continue;let g=a.get(f);if(g){s.push({family:l,style:p,bytes:g,partName:f});continue}let O=pt(y,m);O&&(a.set(f,O),s.push({family:l,style:p,bytes:O,partName:f}));}}for(let l of ct(d))i(l);}};return i(t.root),s}function ut(e){if(e.kind!=="textValue")for(let t of e.children){if(t.kind==="textValue")continue;if(t.kind==="hyperlink"){let r=Ra(t);if(r!==void 0&&r.length>0)return r}let n=ut(t);if(n!==void 0)return n}}function Qt(e){let t="",n=false,r=o=>{if(!(n||o.kind==="textValue")){if(o.kind==="tab"||o.localName==="ptab"||o.localName==="tab"){n=true;return}if(o.kind==="text"||o.localName==="t"){for(let s of o.children)s.kind==="textValue"&&(t+=s.value);return}for(let s of o.children)r(s);}};return r(e),Dc(t)}function Zt(e,t,n,r){let o=n.filter(d=>{if(r.has(d.blockId))return false;let l=d.level+1;return l>=t.instruction.outlineStart&&l<=t.instruction.outlineEnd}),s=new Set(o.map(d=>d.blockId)),a=yc(e),i=new Map;for(let d of o){let l=Dc(d.text),c=i.get(l);c?c.push(d.blockId):i.set(l,[d.blockId]);}return t.resultParagraphIds.map(d=>{let l=Ea(e,d);if(!l||l.kind==="textValue")return null;let c=ut(l),p=c===void 0?void 0:a.get(c);if(p&&s.has(p.paragraphId)){let f=i.get(Dc(o.find(g=>g.blockId===p.paragraphId)?.text??"")),y=f?.indexOf(p.paragraphId)??-1;return f&&y>=0&&f.splice(y,1),p.paragraphId}let u=Qt(l);if(u.length===0)return null;let m=i.get(u);return !m||m.length===0?null:m.shift()??null})}function C(e){return e.namespaceUri===la?e.localName:`{${e.namespaceUri}}${e.localName}`}function I(e){let t=[];for(let n of e.attributes)t.push(n.namespaceUri===""||n.namespaceUri===la?`${n.localName}=${n.value}`:`{${n.namespaceUri}}${n.localName}=${n.value}`);return t.sort(),t}function ft(e,t){let n=I(e),r=n.length>0?`${C(e)}(${n.join(",")})`:C(e);if(t>=ba)return r;let o=[];for(let s of e.children){if(s.kind==="textValue"){s.value!==""&&o.push(`#${s.value}`);continue}o.push(ft(s,t+1));}return o.sort(),o.length>0?`${r}[${o.join(",")}]`:r}function mt(e){if(!e)return [];let t=[];for(let n of e.children)n.namespaceUri===la&&t.push(ft(n,1));return t.sort(),t}function je(e){if(e.kind==="textValue")return e.value;if(e.kind==="tab")return " ";if(e.kind==="hardBreak")return Zb(e);if(e.kind==="drawing")return kc();if(e.kind==="runProperties"||e.kind==="paragraphProperties"||e.kind==="generic")return "";if(e.kind==="hyperlink"||Kb(e)){let n="",r=e.kind==="hyperlink"?e.children:Mb(e)??[];for(let o of r)n+=je(o);return n}let t="";for(let n of e.children)t+=je(n);return t}function x(e,t){let n=new Map(e);for(let r of t.namespaceBindings)n.set(r.prefix,r.namespaceUri);return n}function U(e,t){try{return va(e,t)}catch(n){if(n instanceof pa&&n.reason==="undeclared-prefix")return `generic-refusal:undeclared-prefix:{${e.namespaceUri}}${e.localName}`;throw n}}function Ke(e,t,n=ua){if(e.kind==="textValue")return;if(e.kind==="runProperties"||e.kind==="paragraphProperties"){let o=x(n,e),s=[];for(let a of e.children)a.namespaceUri!==la&&s.push(U(a,o));s.sort(),t.push(...s);return}if(e.kind==="generic"){t.push(U(e,n));return}if(Kb(e)){t.push(wa(e));return}if(e.kind==="bookmarkStart"||e.kind==="bookmarkEnd"){t.push(va(e,n));return}if(e.kind==="drawing"){t.push(yt(e));return}if(ka(e.kind))return;let r=x(n,e);for(let o of e.children)Ke(o,t,r);}function en(e){return `hyperlink(${e.attributes.map(n=>`${n.namespaceUri}|${n.localName}=${n.value}`).sort().join(",")})`}function tn(e){for(let t of e.children)if(t.kind==="pictureBlipFill")for(let n of t.children){if(n.kind!=="pictureBlip")continue;let r=n.attributes.find(s=>s.localName==="embed"&&s.namespaceUri===oa)?.value,o=n.attributes.find(s=>s.localName==="link"&&s.namespaceUri===oa)?.value;if(r!==void 0)return `embed=${r}`;if(o!==void 0)return `link=${o}`}}function ee(e,t,n){if(e.kind==="textValue")return `#${e.value}`;if(t>=ba)return C(e);let r=x(n,e);if(e.kind==="generic")return U(e,r);let o=I(e),s=o.length>0?`${C(e)}(${o.join(",")})`:C(e),a=[];for(let i of e.children)i.kind!=="textValue"&&a.push(ee(i,t+1,r));return a.sort(),a.length>0?`${s}[${a.join(",")}]`:s}function nn(e,t,n){let r=x(n,e),o=[];for(let s of e.children)if(s.kind!=="textValue"){if(s.kind==="pictureBlipFill"){let a=s.children,i=a.find(l=>l.kind==="pictureBlip"),d=a.filter(l=>l.kind!=="pictureBlip").map(l=>ee(l,t+1,r));if(d.sort(),i&&i.kind==="pictureBlip"){let l=I(i),c=l.length>0?`pictureBlip(${l.join(",")})`:"pictureBlip";o.push(d.length>0?`${c}[${d.join(",")}]`:c);}else for(let l of a)o.push(ee(l,t+1,r));continue}o.push(ee(s,t+1,r));}return o.sort(),o}function Ge(e,t,n){if(e.kind==="textValue")return `#${e.value}`;if(t>=ba)return C(e);let r=x(n,e);if(e.kind==="drawingDocPr"){let i=I(e);return i.length>0?`docPr(${i.join(",")})`:"docPr"}if(e.kind==="picture"){let i=tn(e),d=nn(e,t+1,r),l=i===void 0?"picture":`picture(${i})`;return d.length>0?`${l}[${d.join(",")}]`:l}let o=I(e),s=o.length>0?`${C(e)}(${o.join(",")})`:C(e),a=[];for(let i of e.children){if(i.kind==="picture"){a.push(Ge(i,t+1,r));continue}if(i.kind==="generic"){a.push(U(i,r));continue}i.kind!=="textValue"&&a.push(Ge(i,t+1,r));}return a.length>0?`${s}[${a.join(",")}]`:s}function yt(e){let t=x(ua,e),n=e.children.find(i=>i.kind==="inlineDrawing"||i.kind==="anchoredDrawing");if(!n||n.kind==="textValue")return `drawing(${I(e).join(",")})`;let r=x(t,n),o=I(n),s=o.length>0?`${n.kind}(${o.join(",")})`:n.kind,a=[];for(let i of n.children){if(i.kind==="generic"){a.push(U(i,r));continue}i.kind!=="textValue"&&a.push(Ge(i,1,r));}return a.length>0?`drawing[${s};${a.join(";")}]`:`drawing[${s}]`}function rn(e,t,n){let r=e.children.find(c=>c.kind==="paragraphProperties"),o=[],s="",a=[],i=x(ua,e),d=(c,p)=>{if(c.kind==="run"){let u=x(p,c),m=c.children.find(f=>f.kind==="runProperties");o.push(mt(m)),s+=je(c);for(let f of c.children)Ke(f,a,u);return}if(c.kind==="drawing"){a.push(yt(c));return}if(c.kind==="hyperlink"){a.push(en(c));let u=x(p,c);for(let m of c.children)d(m,u);return}if(c.kind==="contentControl"){a.push(wa({...c,children:c.children.filter(m=>m.kind!=="contentControlContent")}));let u=x(p,c);for(let m of c.children){if(m.kind!=="contentControlContent")continue;let f=x(u,m);for(let y of m.children)d(y,f);}return}Ke(c,a,p);};for(let c of e.children)d(c,i);let l=Kc(e);return {ordinal:t,path:n,paraId:l===null?null:l.toUpperCase(),text:s,paragraphProperties:mt(r),runProperties:o,genericStructure:a}}function on(e){if(e.localName==="hdr"||e.localName==="ftr"||e.kind==="body")return e;for(let t of e.children)if(t.kind!=="textValue"&&(t.kind==="body"||t.localName==="hdr"||t.localName==="ftr"))return t;return e}function gt(e,t,n,r,o,s){if(s>ba)return;let a=0;for(let i of e.children){if(i.kind==="textValue"){i.value.trim()!==""&&o.push(`${t}/#text ${i.value}`);continue}let d=t===""?String(a):`${t}/${a}`;if(a+=1,i.kind==="paragraph"){n.push(i),r.push(d),o.push(`${d} p`);continue}let l=I(i);o.push(l.length>0?`${d} ${C(i)}(${l.join(",")})`:`${d} ${C(i)}`),gt(i,d,n,r,o,s+1);}}function ht(e){let t=on(e.root),n=[],r=[],o=[];gt(t,"",n,r,o,0);let s=n.map((a,i)=>rn(a,i,r[i]));return {partName:e.name,paragraphs:s,structure:o}}function an(e){let t=[];for(let n of e){let r=ht(n);r&&t.push(r);}return {stories:t}}function sn(e,t){let n=[],r=(s,a,i)=>{n.push({path:s,before:JSON.stringify(a)??"undefined",after:JSON.stringify(i)??"undefined"});};e.stories.length!==t.stories.length&&r("stories.length",e.stories.length,t.stories.length);let o=Math.min(e.stories.length,t.stories.length);for(let s=0;s<o;s+=1){let a=e.stories[s],i=t.stories[s],d=p=>`${a.partName}${p}`;a.paragraphs.length!==i.paragraphs.length&&r(d(".paragraphs.length"),a.paragraphs.length,i.paragraphs.length);let l=Math.min(a.paragraphs.length,i.paragraphs.length);for(let p=0;p<l;p+=1){let u=a.paragraphs[p],m=i.paragraphs[p];u.text!==m.text&&r(d(`.p[${p}].text`),u.text,m.text),u.path!==m.path&&r(d(`.p[${p}].path`),u.path,m.path),u.paraId!==m.paraId&&r(d(`.p[${p}].paraId`),u.paraId,m.paraId),JSON.stringify(u.paragraphProperties)!==JSON.stringify(m.paragraphProperties)&&r(d(`.p[${p}].paragraphProperties`),u.paragraphProperties,m.paragraphProperties),JSON.stringify(u.runProperties)!==JSON.stringify(m.runProperties)&&r(d(`.p[${p}].runProperties`),u.runProperties,m.runProperties),JSON.stringify(u.genericStructure)!==JSON.stringify(m.genericStructure)&&r(d(`.p[${p}].genericStructure`),u.genericStructure,m.genericStructure);}a.structure.length!==i.structure.length&&r(d(".structure.length"),a.structure.length,i.structure.length);let c=Math.min(a.structure.length,i.structure.length);for(let p=0;p<c;p+=1)a.structure[p]!==i.structure[p]&&r(d(`.structure[${p}]`),a.structure[p],i.structure[p]);}return n}var V="http://schemas.openxmlformats.org/wordprocessingml/2006/main",dn="http://schemas.openxmlformats.org/package/2006/relationships",xt="http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering",w="application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml",pn="application/vnd.openxmlformats-package.relationships+xml",un="http://schemas.openxmlformats.org/package/2006/content-types",Nt="/[Content_Types].xml",E="/word/numbering.xml",Ot=[{text:"\uF0B7",font:"Symbol"},{text:"o",font:"Courier New"},{text:"\uF0A7",font:"Wingdings"}],Rt=["decimal","lowerLetter","lowerRoman"],ze=9;function It(e,t){let n=720*(t+1),r='<w:start w:val="1"/>';if(e==="bullet"){let a=Ot[t%Ot.length];return `<w:lvl w:ilvl="${t}">${r}<w:numFmt w:val="bullet"/><w:lvlText w:val="${a.text}"/><w:lvlJc w:val="left"/><w:pPr><w:ind w:left="${n}" w:hanging="360"/></w:pPr><w:rPr><w:rFonts w:ascii="${a.font}" w:hAnsi="${a.font}" w:hint="default"/></w:rPr></w:lvl>`}let o=Rt[t%Rt.length],s=o==="lowerRoman";return `<w:lvl w:ilvl="${t}">${r}<w:numFmt w:val="${o}"/><w:lvlText w:val="%${t+1}."/><w:lvlJc w:val="${s?"right":"left"}"/><w:pPr><w:ind w:left="${n}" w:hanging="${s?180:360}"/></w:pPr></w:lvl>`}function mn(e,t){let n=Array.from({length:ze},(r,o)=>It(e,o)).join("");return `<w:abstractNum w:abstractNumId="${t}"><w:multiLevelType w:val="${e==="bullet"?"hybridMultilevel":"multilevel"}"/>${n}</w:abstractNum>`}function fn(){let e=Aa(`<w:numbering xmlns:w="${V}"></w:numbering>`,{name:E,contentType:w});return e.ok?e.part:null}var b=(e,t)=>{let n=[];for(let r of e.children)r.kind==="textValue"||r.localName!==t||r.namespaceUri===V&&n.push(r);return n},N=(e,t)=>e.attributes.find(n=>n.localName===t)?.value;function kt(e,t){let n=Aa(`<w:numbering xmlns:w="${V}">${e}</w:numbering>`,{name:E,contentType:w});if(!n.ok)return null;let r=[];for(let o of n.part.root.children)o.kind!=="textValue"&&r.push(o);if(r.length!==t.length)return null;for(let o=0;o<t.length;o+=1){let s=r[o],a=t[o];if(s.namespaceUri!==V||s.localName!==a.localName||a.attribute&&N(s,a.attribute.localName)!==a.attribute.value)return null}return r}var Ct=["numPicBullet","abstractNum","num","numIdMacAtCleanup"];function bt(e,t,n){let r=t.indexOf(n);if(r===-1)return e.length;let o=0;return e.forEach((s,a)=>{if(s.kind==="textValue")return;let i=t.indexOf(s.localName);i!==-1&&i<=r&&(o=a+1);}),o}function Et(e,t){let n=0;for(let r of e){let o=N(r,t);!o||!/^\d{1,9}$/.test(o)||(n=Math.max(n,Number(o)));}return n+1}function yn(e,t){let n=e.parts.get(E),r=n??fn();if(!r)return null;let o=r.root,s=b(o,"abstractNum"),a=b(o,"num"),i=t==="bullet"?"bullet":"decimal";for(let O of a){let $=N(O,"numId"),Ye=b(O,"abstractNumId")[0],Je=Ye?N(Ye,"val"):void 0;if(!$||!Je)continue;let qe=s.find(X=>N(X,"abstractNumId")===Je);if(!qe)continue;let Qe=b(qe,"lvl").find(X=>N(X,"ilvl")==="0"||N(X,"ilvl")===void 0),Ze=Qe?b(Qe,"numFmt")[0]:void 0;if(Ze&&N(Ze,"val")===i)return {pkg:e,numId:$}}let d=Et(s,"abstractNumId"),l=Et(a,"numId"),c=kt(mn(t,d)+`<w:num w:numId="${l}"><w:abstractNumId w:val="${d}"/></w:num>`,[{localName:"abstractNum",attribute:{localName:"abstractNumId",value:String(d)}},{localName:"num",attribute:{localName:"numId",value:String(l)}}]);if(!c)return null;let p=Ca(r),[u,m]=c.map(O=>te(O,p));if(!u||!m)return null;let f=Ha(r,o.id,bt(o.children,Ct,"abstractNum"),[u]);if(!f.ok)return null;let y=Ha(f.part,o.id,bt(f.part.root.children,Ct,"num"),[m]);if(!y.ok)return null;let g=Object.freeze({...e,parts:new Map([...e.parts,[E,y.part]])});if(!n){let O=Nn(g);if(!O)return null;let $=bn(O);if(!$)return null;g=$;}return {pkg:g,numId:String(l)}}var gn=["nsid","multiLevelType","tmpl","name","styleLink","numStyleLink","lvl"];function St(e){let t=N(e,"ilvl");return t===void 0||!/^\d{1,9}$/.test(t)?null:Number(t)}function hn(e,t){let n=0;return e.forEach((r,o)=>{if(r.kind!=="textValue"){if(r.localName==="lvl"&&r.namespaceUri===V){(St(r)??0)<t&&(n=o+1);return}gn.includes(r.localName)&&(n=o+1);}}),n}function xn(e,t,n,r){if(!Number.isInteger(n)||n<0||n>=ze||t.length===0||t.length>64)return null;let o=e.parts.get(E);if(!o)return null;let s=o.root,a=b(s,"num").find(f=>N(f,"numId")===t),i=a?b(a,"abstractNumId")[0]:void 0,d=i?N(i,"val"):void 0;if(!d)return null;let l=b(s,"abstractNum").find(f=>N(f,"abstractNumId")===d);if(!l||b(l,"numStyleLink").length>0)return null;let c=b(l,"lvl");if(c.some(f=>St(f)===n))return e;if(c.length>=ze)return null;let p=kt(It(r,n),[{localName:"lvl",attribute:{localName:"ilvl",value:String(n)}}]);if(!p)return null;let u=Ca(o),m=Ha(o,l.id,hn(l.children,n),[te(p[0],u)]);return m.ok?Object.freeze({...e,parts:new Map([...e.parts,[E,m.part]])}):null}function te(e,t){return e.kind==="textValue"?{...e,id:t()}:{...e,id:t(),children:e.children.map(n=>te(n,t))}}function Nn(e){let t=e.mainDocumentPart,n=On(t),r=e.parts.get(n),o=Rn(e),s=Aa(`<Relationships xmlns="${dn}"><Relationship Id="${o}" Type="${xt}" Target="numbering.xml"/></Relationships>`,{name:n,contentType:pn});if(!s.ok)return null;let a=e.relationships.get(t)??[],i={ownerPart:t,id:o,type:xt,rawTarget:"numbering.xml",targetMode:"Internal",order:a.reduce((u,m)=>Math.max(u,m.order),-1)+1},d=new Map([...e.relationships,[t,[...a,i]]]);if(!r)return Object.freeze({...e,parts:new Map([...e.parts,[n,s.part]]),relationships:d});let l=Ca(r),c=s.part.root.children[0];if(!c)return null;let p=Ha(r,r.root.id,r.root.children.length,[te(c,l)]);return p.ok?Object.freeze({...e,parts:new Map([...e.parts,[n,p.part]]),relationships:d}):null}function On(e){let t=e.lastIndexOf("/");return `${e.slice(0,t)}/_rels/${e.slice(t+1)}.rels`}function Rn(e){let t=0;for(let n of e.relationships.values())for(let r of n){let o=/^rId(\d{1,9})$/.exec(r.id);o&&(t=Math.max(t,Number(o[1])));}for(let n of e.externalTargets){let r=/^rId(\d{1,9})$/.exec(n.id);r&&(t=Math.max(t,Number(r[1])));}return `rId${t+1}`}var Cn=`<Override PartName="${E}" ContentType="${w}"/>`;function bn(e){let t=e.contentTypes.overrides.get(o(E));if(t===w)return e;if(t!==void 0)return null;let n=e.partBytes.get(Nt);if(!n)return null;let r=strFromU8(n),o$1=Pt(r);if(!o$1)return null;let s=r.lastIndexOf(`</${o$1.rootName}>`);if(s===-1)return null;let a=r.slice(0,s)+Cn+r.slice(s),i=Pt(a);if(!i||i.rootName!==o$1.rootName)return null;let d=[...o$1.children,vt("Override",{PartName:E,ContentType:w})];return i.children.length!==d.length||i.children.some((l,c)=>l!==d[c])?null:Object.freeze({...e,partBytes:new Map([...e.partBytes,[Nt,strToU8(a)]]),contentTypes:Object.freeze({defaults:e.contentTypes.defaults,overrides:new Map([...e.contentTypes.overrides,[o(E),w]])})})}function Pt(e){let t=ca(e);if(!t.ok)return null;let n=t.nodes.filter(i=>i.type==="element");if(n.length!==1)return null;let r=n[0],o=r.name.indexOf(":"),s=o===-1?"":r.name.slice(0,o);if(r.name.slice(o+1)!=="Types"||r.attributes[s?`xmlns:${s}`:"xmlns"]!==un)return null;let a=[];for(let i of r.children)i.type==="element"&&a.push(vt(i.name,i.attributes));return {rootName:r.name,children:a}}function vt(e,t){let n=Object.entries(t).map(([r,o])=>`${r}=${o}`).sort();return [e,...n].join("")}function ne(e){return e!=null&&e.kind!=="textValue"}function We(e,t){for(let n of e.children)if(n.kind!=="textValue"&&n.namespaceUri===la&&n.localName===t)return n;return null}function re(e,t){for(let n of e.attributes)if(n.namespaceUri===la&&n.localName===t)return n.value}function _(e,t){let n=We(e,t);if(!n)return false;let r=re(n,"val");return r===void 0?true:r!=="0"&&r!=="false"&&r!=="off"}var Tt=Object.freeze({trackRevisions:false,restrictedToTrackedChanges:false,doNotTrackMoves:false,doNotTrackFormatting:false});function En(e){if(!ne(e))return Tt;let t=We(e,"documentProtection"),n=t===null?void 0:re(t,"enforcement"),r=n!==void 0&&n!=="0"&&n!=="false"&&n!=="off";return {trackRevisions:_(e,"trackRevisions"),restrictedToTrackedChanges:r&&t!==null&&re(t,"edit")==="trackedChanges",doNotTrackMoves:_(e,"doNotTrackMoves"),doNotTrackFormatting:_(e,"doNotTrackFormatting")}}var wt=Object.freeze({doNotShadeFormData:false});function Pn(e){return ne(e)?{doNotShadeFormData:_(e,"doNotShadeFormData")}:wt}function In(e,t){let n=e.parts.get(t.storyPartName);if(!n)return {ok:false,reason:`no story part named ${t.storyPartName}`};let r=[];for(let d of pe(n.root)){let l=ne$1(d.node).tag;if(l===void 0||l.length===0)continue;let c=t.decide(l);c!=="keep"&&r.push({nodeId:d.node.id,policy:c});}let o=n,s=0,a=0;for(let{nodeId:d,policy:l}of r){let c=Fa(o,d);if(!c)continue;if(l==="remove"){let g=Ja(o,d,{deferValidation:true});if(!g.ok)return {ok:false,reason:`a node could not be removed: ${_t(g)}`};o=g.part,a+=1;continue}let p=c.children.find(g=>g.id===d);if(!p)continue;let u=le(p),m=u?u.children:[],f=c.children.flatMap(g=>g.id===d?m:[g]),y=Ga(o,c.id,f,{deferValidation:true});if(!y.ok)return {ok:false,reason:`a node could not be unwrapped: ${_t(y)}`};o=y.part,s+=1;}let i=o===n?e:zb(e,o);if(!i.parts.has(t.storyPartName))return {ok:false,reason:"the story went missing during the export"};for(let d of t.namespaces)for(let l of Sn(i,t.storyPartName,d)){let c=df(i,l.itemId),p=Ze(i,l.partName,c);if(p.pkg===i&&p.removed.length===0&&!kn(i,l.partName,c))return {ok:false,reason:`the payloads in ${d} could not be removed`};if(i=p.pkg,c.size>0)continue;let u=vn(i,l);if(!u.ok)return {ok:false,reason:`the payload store for ${d} could not be removed`};i=u.pkg;}return {ok:true,pkg:i,unwrapped:s,removed:a}}function kn(e,t,n){return Ve$1(e,t).every(r=>n.has(r.id))}function _t(e){return e.issues.map(t=>t.code).join(", ")||"the edit was refused"}function Sn(e,t,n){return Re(e,t).filter(r=>r.namespaceUri===n)}function vn(e,t){let n=Fb(e,t.partName);if(!n.ok)return {pkg:e,ok:false};let r=Fb(n.pkg,t.propsPartName);return r.ok?{pkg:r.pkg,ok:true}:{pkg:e,ok:false}}
|
|
2
|
-
export{He as A,Ue as B,Ve as C,zt as D,lt as E,pt as F,qt as G,Zt as H,ht as I,an as J,sn as K,yn as L,xn as M,Tt as N,En as O,wt as P,Pn as Q,In as R,$t as a,nt as b,Y as c,k as d,J as e,q as f,h as g,Lt as h,S as i,M as j,Q as k,B as l,Z as m,$e as n,Ae as o,De as p,Ut as q,Vt as r,Le as s,ot as t,Xt as u,Fe as v,jt as w,H as x,Me as y,Be as z};
|
package/dist/chunk-4WWEDTTE.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var R="http://schemas.microsoft.com/office/word/2012/wordml";function v(e){return `${e.kind}-${e.id}`}function w(e){let o=[],t=n=>{if(n.kind==="textValue"){o.push(n.value);return}for(let r of n.children)t(r);};for(let n of e.blocks)t(n);return o.join("")}function I(e){if(e.initials&&e.initials.trim().length>0)return e.initials.trim();let o=e.author.trim().split(/\s+/).filter(Boolean);return o.length===0?"?":o.slice(0,2).map(t=>t[0].toUpperCase()).join("")}function s(e){return e.kind==="revision"?e.ranges:e.range?[e.range]:[]}function l(e){return s(e)[0]??null}function x(e,o){let t=l(e);if(!t)return Number.MAX_SAFE_INTEGER;let n=o.get(t.start.paragraphId);return n===void 0?Number.MAX_SAFE_INTEGER:n*1e6+Math.min(t.start.offset,999999)}function y(e,o){let t=o.get(e.start.paragraphId),n=o.get(e.end.paragraphId);return t===void 0||n===void 0?Number.MAX_SAFE_INTEGER:(n-t)*1e6+(e.end.offset-e.start.offset)}function u(e,o,t){let n=t.get(o.paragraphId),r=t.get(e.start.paragraphId),i=t.get(e.end.paragraphId);return !(n===void 0||r===void 0||i===void 0||n<r||n>i||n===r&&o.offset<e.start.offset||n===i&&o.offset>e.end.offset)}function g(e,o,t){let n=null;for(let r of s(e)){if(!u(r,o,t))continue;let i=y(r,t);(n===null||i<n)&&(n=i);}return n}var d={comment:0,custom:1,revision:2};function f(e,o,t){let n=[];for(let r of e){let i=g(r,o,t);i!==null&&n.push({item:r,width:i});}return n.sort((r,i)=>r.width!==i.width?r.width-i.width:r.item.kind!==i.item.kind?d[r.item.kind]-d[i.item.kind]:0).map(r=>r.item)}function h(e,o,t){let r=f(e,o,t).filter(i=>!(i.kind==="comment"&&i.resolved))[0];return r?r.kind==="comment"?m(e,r):r:null}function b(e,o){return m(e,o)}function m(e,o){let t=new Map,n=new Map;for(let a of e)a.kind==="comment"?t.set(a.id,a):a.kind==="revision"&&n.set(a.id,a);let r=new Set([o.id]),i=o;for(;i.parentId!==void 0;){let a=t.get(i.parentId);if(!a||r.has(a.id))break;r.add(a.id),i=a;}if(i.parentRevisionId!==void 0){let a=n.get(i.parentRevisionId);if(a)return a}return i}function P(e,o){let t=new Map;for(let n of e.pages)for(let r of o(n))t.has(r.paragraphId)||t.set(r.paragraphId,{pageIndex:n.index,contentY:n.contentBox.y,fragmentY:r.box.y,...r.lines?{lines:r.lines}:{}});return t}function k(e,o){let t=l(e);if(!t)return null;let n=o.get(t.start.paragraphId);if(!n)return null;let r=n.lines?.find(i=>t.start.offset<i.range.end);return {pageIndex:n.pageIndex,y:n.contentY+(r?r.box.y:n.fragmentY)}}
|
|
2
|
-
export{R as a,v as b,w as c,I as d,s as e,l as f,x as g,f as h,h as i,b as j,P as k,k as l};
|
package/dist/chunk-BS554B6D.cjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
'use strict';var R="http://schemas.microsoft.com/office/word/2012/wordml";function v(e){return `${e.kind}-${e.id}`}function w(e){let o=[],t=n=>{if(n.kind==="textValue"){o.push(n.value);return}for(let r of n.children)t(r);};for(let n of e.blocks)t(n);return o.join("")}function I(e){if(e.initials&&e.initials.trim().length>0)return e.initials.trim();let o=e.author.trim().split(/\s+/).filter(Boolean);return o.length===0?"?":o.slice(0,2).map(t=>t[0].toUpperCase()).join("")}function s(e){return e.kind==="revision"?e.ranges:e.range?[e.range]:[]}function l(e){return s(e)[0]??null}function x(e,o){let t=l(e);if(!t)return Number.MAX_SAFE_INTEGER;let n=o.get(t.start.paragraphId);return n===void 0?Number.MAX_SAFE_INTEGER:n*1e6+Math.min(t.start.offset,999999)}function y(e,o){let t=o.get(e.start.paragraphId),n=o.get(e.end.paragraphId);return t===void 0||n===void 0?Number.MAX_SAFE_INTEGER:(n-t)*1e6+(e.end.offset-e.start.offset)}function u(e,o,t){let n=t.get(o.paragraphId),r=t.get(e.start.paragraphId),i=t.get(e.end.paragraphId);return !(n===void 0||r===void 0||i===void 0||n<r||n>i||n===r&&o.offset<e.start.offset||n===i&&o.offset>e.end.offset)}function g(e,o,t){let n=null;for(let r of s(e)){if(!u(r,o,t))continue;let i=y(r,t);(n===null||i<n)&&(n=i);}return n}var d={comment:0,custom:1,revision:2};function f(e,o,t){let n=[];for(let r of e){let i=g(r,o,t);i!==null&&n.push({item:r,width:i});}return n.sort((r,i)=>r.width!==i.width?r.width-i.width:r.item.kind!==i.item.kind?d[r.item.kind]-d[i.item.kind]:0).map(r=>r.item)}function h(e,o,t){let r=f(e,o,t).filter(i=>!(i.kind==="comment"&&i.resolved))[0];return r?r.kind==="comment"?m(e,r):r:null}function b(e,o){return m(e,o)}function m(e,o){let t=new Map,n=new Map;for(let a of e)a.kind==="comment"?t.set(a.id,a):a.kind==="revision"&&n.set(a.id,a);let r=new Set([o.id]),i=o;for(;i.parentId!==void 0;){let a=t.get(i.parentId);if(!a||r.has(a.id))break;r.add(a.id),i=a;}if(i.parentRevisionId!==void 0){let a=n.get(i.parentRevisionId);if(a)return a}return i}function P(e,o){let t=new Map;for(let n of e.pages)for(let r of o(n))t.has(r.paragraphId)||t.set(r.paragraphId,{pageIndex:n.index,contentY:n.contentBox.y,fragmentY:r.box.y,...r.lines?{lines:r.lines}:{}});return t}function k(e,o){let t=l(e);if(!t)return null;let n=o.get(t.start.paragraphId);if(!n)return null;let r=n.lines?.find(i=>t.start.offset<i.range.end);return {pageIndex:n.pageIndex,y:n.contentY+(r?r.box.y:n.fragmentY)}}
|
|
2
|
-
exports.a=R;exports.b=v;exports.c=w;exports.d=I;exports.e=s;exports.f=l;exports.g=x;exports.h=f;exports.i=h;exports.j=b;exports.k=P;exports.l=k;
|