@betteroffice/docx 0.0.4 → 0.2.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/README.md +4 -7
- package/dist/chunk-47Q2FMFF.mjs +1 -0
- package/dist/chunk-5F6DLQZP.mjs +1 -0
- package/dist/chunk-6LQJAKOC.mjs +1 -0
- package/dist/chunk-ACGKK7IB.mjs +1 -0
- package/dist/{chunk-NTSSE5QK.mjs → chunk-AFMVSI4Z.mjs} +2 -2
- package/dist/chunk-GD4VNJ64.mjs +1 -0
- package/dist/{chunk-NJHOPXZW.mjs → chunk-HLDJMU3R.mjs} +1 -1
- package/dist/{chunk-YTILOUAA.mjs → chunk-JHJLG4I6.mjs} +1 -1
- package/dist/chunk-PGMXWI5X.mjs +1 -0
- package/dist/{chunk-NBSLB77E.mjs → chunk-WTFRNX5K.mjs} +1 -1
- package/dist/collaboration/index.d.mts +6 -6
- package/dist/{content-C3sTRz-u.d.mts → content-CvEtPl0c.d.mts} +124 -22
- package/dist/core.d.mts +8 -8
- package/dist/core.mjs +1 -1
- package/dist/{displayListQueries-DLzpvJV6.d.mts → displayListQueries-DF8F6fMl.d.mts} +87 -50
- package/dist/docx/index.d.mts +5 -5
- package/dist/docx/index.mjs +1 -1
- package/dist/editor/index.d.mts +21 -12
- package/dist/editor/index.mjs +1 -1
- package/dist/{fontLoader-CMH3bZ2Z.d.mts → fontLoader-b8eicJKV.d.mts} +1 -1
- package/dist/{formatting-BEkIBePP.d.mts → formatting-7zKCTu5a.d.mts} +11 -2
- package/dist/{frameDelta-B2kC6XiP.d.mts → frameDelta-pA4jrQ1G.d.mts} +16 -10
- package/dist/generated/edit/docx_edit_bg.wasm +0 -0
- package/dist/generated/layout/docx_layout_bg.wasm +0 -0
- package/dist/generated/opc/ooxml_opc_bg.wasm +0 -0
- package/dist/generated/parse/docx_parse_bg.wasm +0 -0
- package/dist/{index-2piKi4gO.d.mts → index-CHl2zLJ7.d.mts} +146 -77
- package/dist/layout/index.d.mts +40 -13
- package/dist/layout/index.mjs +1 -1
- package/dist/layout/pagination/index.d.mts +4 -4
- package/dist/layout/pagination/index.mjs +1 -1
- package/dist/layout/render/index.d.mts +33 -77
- package/dist/layout/render/index.mjs +1 -1
- package/dist/plugin-api/RenderedDomContext.d.mts +7 -7
- package/dist/plugin-api/index.d.mts +3 -3
- package/dist/plugin-api/resolveItemPositions.d.mts +3 -3
- package/dist/{rustDisplayList-B0M2eBkU.d.mts → rustDisplayList-BJqaN9tt.d.mts} +74 -50
- package/dist/{rustMeasureSource-D1KsQvVC.d.mts → rustMeasureSource-C0EZB055.d.mts} +5 -2
- package/dist/{selectiveSave-CVoajSKE.d.mts → selectiveSave-CRh-_Y_C.d.mts} +3 -3
- package/dist/styles/index.d.mts +6 -10
- package/dist/styles/index.mjs +1 -1
- package/dist/{styles-BK3Jecxs.d.mts → styles-7e-mq3c-.d.mts} +1 -1
- package/dist/types/content.d.mts +2 -2
- package/dist/types/document.d.mts +8 -7
- package/dist/{types-C1rv3KM-.d.mts → types-C4A8mWjU.d.mts} +44 -24
- package/dist/utils/comments.d.mts +2 -2
- package/dist/utils/index.d.mts +11 -13
- package/dist/utils/index.mjs +1 -1
- package/dist/utils/stylePreview.d.mts +2 -2
- package/dist/wasm-7SOSHNGP.mjs +1 -0
- package/dist/{wasm-JE7B3ROD.mjs → wasm-ZQAVP7P2.mjs} +1 -1
- package/dist/wasm-edit.d.mts +525 -185
- package/dist/wasm-edit.mjs +1 -1
- package/dist/wasm-layout.d.mts +31 -28
- package/dist/wasm-layout.mjs +1 -1
- package/dist/wasm-opc.mjs +1 -1
- package/dist/wasm-parse.d.mts +2 -1
- package/dist/wasm-parse.mjs +1 -1
- package/dist/yrs/index.d.mts +5 -5
- package/dist/yrs/index.mjs +1 -1
- package/dist/yrs/residentEngineWorker.mjs +1 -1
- package/package.json +19 -2
- package/dist/chunk-4V6MDZIK.mjs +0 -1
- package/dist/chunk-6KDV6AIL.mjs +0 -1
- package/dist/chunk-B4IR6YP4.mjs +0 -1
- package/dist/chunk-GGEGIQRK.mjs +0 -1
- package/dist/chunk-T4EZMUXM.mjs +0 -1
- package/dist/chunk-WBH3SXI6.mjs +0 -1
- package/dist/wasm-F2ETFAYL.mjs +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { a as DisplayPage, b as DisplayPrimitive, D as DisplayList, G as GlyphRunPrimitive, L as LinePrimitive, T as TextRunPrimitive } from '../../frameDelta-
|
|
2
|
-
export { c as DecodedFrameDelta, d as DecorationPrimitive, e as DisplayBounds, f as DocAttrs, F as FRAME_DELTA_HEADER_BYTES, g as FRAME_DELTA_PAGE_OP_BYTES, h as FRAME_DELTA_VERSION, i as FrameDeltaError, j as FrameDeltaErrorCode, k as FramePageOperation, H as HfRegion, I as ImagePrimitive, P as PositionedGlyph, l as RectPrimitive, R as RetainedFrame, m as RetainedFramePage, n as TableCellRef, o as applyFrameDelta, p as applyFrameDeltaOwned, q as decodeFrameDelta } from '../../frameDelta-
|
|
3
|
-
export { a as DisplayListBuildInputs, D as DisplayListHeadersFooters, b as DisplayListHfVariant, c as DisplayListPictureWatermark, d as DisplayListTextWatermark, e as DisplayListWatermark, f as RustDisplayFrameResult, g as RustDisplayListEngine, R as RustDisplayListQueryEngine, h as RustDisplayListSourceError, i as RustDisplayListSourceErrorStage, j as buildRustDisplayFrame, k as buildRustDisplayList, l as encodeDisplayListFrameExtras, m as loadRustDisplayListQueryEngine } from '../../rustDisplayList-
|
|
4
|
-
import { a as DisplayListQueries, b as DisplayListRegionHit, D as DisplayListRect } from '../../displayListQueries-
|
|
5
|
-
export { c as DisplayListHitRegion, d as
|
|
6
|
-
import { u as YrsLoc, Y as YrsSession, v as YrsRevisionInfo } from '../../index-
|
|
1
|
+
import { a as DisplayPage, b as DisplayPrimitive, D as DisplayList, G as GlyphRunPrimitive, L as LinePrimitive, T as TextRunPrimitive } from '../../frameDelta-pA4jrQ1G.mjs';
|
|
2
|
+
export { c as DecodedFrameDelta, d as DecorationPrimitive, e as DisplayBounds, f as DocAttrs, F as FRAME_DELTA_HEADER_BYTES, g as FRAME_DELTA_PAGE_OP_BYTES, h as FRAME_DELTA_VERSION, i as FrameDeltaError, j as FrameDeltaErrorCode, k as FramePageOperation, H as HfRegion, I as ImagePrimitive, P as PositionedGlyph, l as RectPrimitive, R as RetainedFrame, m as RetainedFramePage, n as TableCellRef, o as applyFrameDelta, p as applyFrameDeltaOwned, q as decodeFrameDelta } from '../../frameDelta-pA4jrQ1G.mjs';
|
|
3
|
+
export { a as DisplayListBuildInputs, D as DisplayListHeadersFooters, b as DisplayListHfVariant, c as DisplayListPictureWatermark, d as DisplayListTextWatermark, e as DisplayListWatermark, f as RustDisplayFrameResult, g as RustDisplayListEngine, R as RustDisplayListQueryEngine, h as RustDisplayListSourceError, i as RustDisplayListSourceErrorStage, j as buildRustDisplayFrame, k as buildRustDisplayList, l as encodeDisplayListFrameExtras, m as loadRustDisplayListQueryEngine } from '../../rustDisplayList-BJqaN9tt.mjs';
|
|
4
|
+
import { a as DisplayListQueries, b as DisplayListRegionHit, D as DisplayListRect } from '../../displayListQueries-DF8F6fMl.mjs';
|
|
5
|
+
export { c as DisplayListHitRegion, d as DisplayListHoverTarget, e as DisplayListImageGeometry, f as DisplayListImageRegion, g as DisplayListParagraphGeometry, h as DisplayListQuerySourceState, i as DisplayListVerticalMove, j as DisplayListVisualLine, L as LocatedImagePrimitive, R as ResidentDisplayListQueryEngine, k as captureInlinePositionEmuFromDisplayList, l as createDisplayListQueries, m as findImagePrimitiveAtPoint, n as findImagePrimitiveByDocPos, o as isDisplayListQuerySourceDead, p as onDisplayListQuerySourceFailure } from '../../displayListQueries-DF8F6fMl.mjs';
|
|
6
|
+
import { u as YrsLoc, Y as YrsSession, v as YrsRevisionInfo } from '../../index-CHl2zLJ7.mjs';
|
|
7
7
|
import { TrackedChangeEntry } from '../../utils/comments.mjs';
|
|
8
|
-
import '../../formatting-
|
|
9
|
-
import '../../content-
|
|
8
|
+
import '../../formatting-7zKCTu5a.mjs';
|
|
9
|
+
import '../../content-CvEtPl0c.mjs';
|
|
10
10
|
import '../../docx/wrapTypes.mjs';
|
|
11
|
-
import '../../types-
|
|
11
|
+
import '../../types-C4A8mWjU.mjs';
|
|
12
12
|
import '../pagination/index.mjs';
|
|
13
13
|
import '../../types/document.mjs';
|
|
14
|
-
import '../../styles-
|
|
14
|
+
import '../../styles-7e-mq3c-.mjs';
|
|
15
15
|
|
|
16
16
|
/** a cached glyph: its outline path (font units) plus the font's units-per-em. */
|
|
17
17
|
interface GlyphOutline {
|
|
@@ -71,7 +71,6 @@ declare class GlyphCache {
|
|
|
71
71
|
* rasterize as `.notdef`. Keeping the import dynamic also keeps the ~800KB
|
|
72
72
|
* inlined wasm out of the default bundle (see `layout/wasm/index.ts`).
|
|
73
73
|
*
|
|
74
|
-
* @experimental part of the rust-canvas-engine glyph pipeline; shape may evolve.
|
|
75
74
|
*/
|
|
76
75
|
|
|
77
76
|
/**
|
|
@@ -85,6 +84,8 @@ declare class GlyphCache {
|
|
|
85
84
|
*/
|
|
86
85
|
declare function loadGlyphOutlineProvider(): Promise<GlyphOutlineProvider>;
|
|
87
86
|
|
|
87
|
+
/** Builds an accessible display-list mirror with DOM APIs only. */
|
|
88
|
+
|
|
88
89
|
declare const MIRROR_CLASS_NAMES: {
|
|
89
90
|
page: string;
|
|
90
91
|
content: string;
|
|
@@ -159,14 +160,14 @@ interface BuildMirrorPageOptions {
|
|
|
159
160
|
* header/footer regions mirror the painter's structural classes: each HfRegion
|
|
160
161
|
* becomes a `.layout-page-header` / `.layout-page-footer` wrapper at the band's
|
|
161
162
|
* page-local y, and all of the region's primitives (including their block
|
|
162
|
-
* wrappers and doc-range attrs, which refer to the HF
|
|
163
|
+
* wrappers and doc-range attrs, which refer to the HF doc identified by
|
|
163
164
|
* `data-hf-rid`) stay scoped inside it — never under `.layout-page-content`.
|
|
164
165
|
*
|
|
165
166
|
* data-from-line/to-line ride on paragraph fragment primitives (body, HF, text
|
|
166
167
|
* box) and land on the paragraph wrapper; data-vmerge-continuation comes from
|
|
167
168
|
* the cell's `continuation` flag and lands on the ARIA cell. still not derivable
|
|
168
169
|
* from the v0 display list and therefore not emitted: data-carried-from-prev/
|
|
169
|
-
* to-next
|
|
170
|
+
* to-next.
|
|
170
171
|
*/
|
|
171
172
|
declare function buildMirrorPage(page: DisplayPage, options?: BuildMirrorPageOptions): HTMLElement;
|
|
172
173
|
|
|
@@ -196,7 +197,7 @@ interface BuildInteractiveOverlayOptions {
|
|
|
196
197
|
/** Host-localized button names. */
|
|
197
198
|
labels?: InteractiveOverlayLabels;
|
|
198
199
|
}
|
|
199
|
-
/** Apply
|
|
200
|
+
/** Apply content-control focus to the interactive overlay boxes. */
|
|
200
201
|
declare function applyInteractiveSdtFocus(root: ParentNode, focusedGroupIds: ReadonlySet<string>): void;
|
|
201
202
|
/**
|
|
202
203
|
* Build the visible/pointer-active overlay for one page.
|
|
@@ -216,12 +217,7 @@ declare function buildInteractiveOverlayPage(page: DisplayPage, options?: BuildI
|
|
|
216
217
|
type ImageResolver = (relId: string) => CanvasImageSource | Promise<CanvasImageSource | null> | null;
|
|
217
218
|
interface DrawPageOptions {
|
|
218
219
|
resolveImage?: ImageResolver;
|
|
219
|
-
/**
|
|
220
|
-
* Glyph-outline cache for `glyphRun` primitives (phase-2 shaped text). When
|
|
221
|
-
* absent, or when an outline cannot be resolved, the run is painted with
|
|
222
|
-
* `fillText` so text is never invisible. Owned by the host and reused across
|
|
223
|
-
* pages/renders.
|
|
224
|
-
*/
|
|
220
|
+
/** Glyph cache; unresolved outlines fall back to `fillText`. */
|
|
225
221
|
glyphCache?: GlyphCache;
|
|
226
222
|
}
|
|
227
223
|
/**
|
|
@@ -266,28 +262,12 @@ declare function presentOffscreenPageBackBuffer(canvas: OffscreenCanvas, buffer:
|
|
|
266
262
|
declare function sizeCanvasForPage(canvas: PageCanvasLike, ctx: CanvasRenderingContext2D, page: Pick<DisplayPage, 'width' | 'height'>, devicePixelRatio: number, zoom?: number): void;
|
|
267
263
|
/** Raster every display page without requiring a mounted renderer surface. */
|
|
268
264
|
declare function rasterizeDisplayListPages(list: DisplayList, options?: DrawPageOptions, devicePixelRatio?: number): Promise<HTMLCanvasElement[]>;
|
|
269
|
-
/**
|
|
270
|
-
* Replays one DisplayPage onto a 2D context, honoring primitive paint order.
|
|
271
|
-
* Header/footer bands replay after the body, mirroring the DOM painter's
|
|
272
|
-
* append order in renderPage (content, then header, then footer); their
|
|
273
|
-
* primitives are already in page coordinates so they go through the same
|
|
274
|
-
* replay path. Async only because image sources may resolve lazily; each
|
|
275
|
-
* image is awaited in sequence so later primitives still paint above it.
|
|
276
|
-
* Every primitive sets the full context state it depends on, so no
|
|
277
|
-
* save/restore per primitive is needed (images use save/restore for their
|
|
278
|
-
* rotation transform only).
|
|
279
|
-
*/
|
|
265
|
+
/** Replays a page in primitive order, including body and header/footer bands. */
|
|
280
266
|
declare function drawDisplayPage(ctx: CanvasRenderingContext2D, page: DisplayPage, options?: DrawPageOptions): Promise<void>;
|
|
281
267
|
/** Replays a single primitive; exported for hosts that paint incrementally. */
|
|
282
268
|
declare function drawPrimitive(ctx: CanvasRenderingContext2D, primitive: DisplayPrimitive, options?: DrawPageOptions): Promise<void>;
|
|
283
269
|
|
|
284
|
-
/**
|
|
285
|
-
* Renderer-neutral geometry helpers for display-list primitives.
|
|
286
|
-
*
|
|
287
|
-
* These helpers are shared by canvas replay, interaction queries, the a11y
|
|
288
|
-
* mirror, and the temporary painter/display-list differential harness. They
|
|
289
|
-
* must not depend on DOM layout: every returned rectangle is page-local px.
|
|
290
|
-
*/
|
|
270
|
+
/** Renderer-neutral page-local geometry for display-list primitives. */
|
|
291
271
|
|
|
292
272
|
interface GeoRect {
|
|
293
273
|
x: number;
|
|
@@ -304,15 +284,7 @@ declare function glyphRunRect(p: Pick<GlyphRunPrimitive, 'glyphs' | 'size'>): Ge
|
|
|
304
284
|
/** Canonical stroke-expanded page-local box for a line primitive. */
|
|
305
285
|
declare function lineRect(p: Pick<LinePrimitive, 'x1' | 'y1' | 'x2' | 'y2' | 'strokeWidth'>): GeoRect;
|
|
306
286
|
|
|
307
|
-
/**
|
|
308
|
-
* Layout constants + vertical page math for the experimental canvas pages
|
|
309
|
-
* hosts (React `CanvasPagesView` / Vue `CanvasPagesView.vue`): a flex column
|
|
310
|
-
* of one <canvas> per page. Shared by the views themselves and by the
|
|
311
|
-
* display-list consumers that need scroll-container Y coordinates (sidebar
|
|
312
|
-
* anchor positions) so the two can never drift.
|
|
313
|
-
*
|
|
314
|
-
* @experimental part of the rust-canvas-engine change; shape may evolve.
|
|
315
|
-
*/
|
|
287
|
+
/** Shared vertical geometry for canvas page hosts. */
|
|
316
288
|
|
|
317
289
|
/** vertical gap between canvas pages (flex `gap`) */
|
|
318
290
|
declare const CANVAS_PAGE_GAP_PX = 16;
|
|
@@ -335,7 +307,6 @@ declare function canvasPageTops(queries: DisplayListQueries): number[];
|
|
|
335
307
|
* display list's unit space), and ask the Rust `hit_test_regions` query for
|
|
336
308
|
* the region + doc position.
|
|
337
309
|
*
|
|
338
|
-
* @experimental part of the rust-canvas-engine change; shape may evolve.
|
|
339
310
|
*/
|
|
340
311
|
|
|
341
312
|
interface CanvasPointHit {
|
|
@@ -360,13 +331,7 @@ interface DisplayPageClientRect {
|
|
|
360
331
|
width: number;
|
|
361
332
|
height: number;
|
|
362
333
|
}
|
|
363
|
-
/**
|
|
364
|
-
* Resolve the client-space shell for one display-list page. A mounted canvas
|
|
365
|
-
* is the preferred projection host. During the Phase-2 transition the DOM
|
|
366
|
-
* painter may still be the visible renderer, so its *container* is used as a
|
|
367
|
-
* page-stack projection host without inspecting any painted page/text/table
|
|
368
|
-
* node. Page sizes remain display-list-owned.
|
|
369
|
-
*/
|
|
334
|
+
/** Resolves a display-list page rectangle from canvas or DOM page hosts. */
|
|
370
335
|
declare function resolveDisplayPageClientRect(host: HTMLElement, queries: DisplayListQueries, pageIndex: number, options?: DisplayPageHostOptions): DisplayPageClientRect | null;
|
|
371
336
|
/**
|
|
372
337
|
* Resolve a client point against the canvas pages.
|
|
@@ -396,7 +361,6 @@ declare function resolveCanvasPoint(host: HTMLElement, queries: DisplayListQueri
|
|
|
396
361
|
* network fetch (the no-zero-click-external-fetch security contract). Decode
|
|
397
362
|
* results are cached per source so repaints reuse the same HTMLImageElement.
|
|
398
363
|
*
|
|
399
|
-
* @experimental part of the rust-canvas-engine change; shape may evolve.
|
|
400
364
|
*/
|
|
401
365
|
|
|
402
366
|
declare function createCanvasImageResolver(): ImageResolver;
|
|
@@ -414,7 +378,6 @@ declare function createCanvasImageResolver(): ImageResolver;
|
|
|
414
378
|
* entering commented / tracked-change / list content. Edge-triggered on the
|
|
415
379
|
* selection context, so plain typing and uniform caret movement stay silent.
|
|
416
380
|
*
|
|
417
|
-
* @experimental part of the rust-canvas-engine change; shape may evolve.
|
|
418
381
|
*/
|
|
419
382
|
interface A11ySelectionContext {
|
|
420
383
|
hasSelection: boolean;
|
|
@@ -461,7 +424,7 @@ interface A11yAnnouncement {
|
|
|
461
424
|
*/
|
|
462
425
|
declare function computeA11yAnnouncements(prev: A11ySelectionSnapshot | null, next: A11ySelectionSnapshot): A11yAnnouncement[];
|
|
463
426
|
|
|
464
|
-
/** A yrs location projected into the
|
|
427
|
+
/** A yrs location projected into the position space used by the display list. */
|
|
465
428
|
interface YrsSidebarDisplayPoint {
|
|
466
429
|
story: string;
|
|
467
430
|
position: number;
|
|
@@ -480,7 +443,7 @@ interface YrsSidebarProjection {
|
|
|
480
443
|
*/
|
|
481
444
|
declare function yrsIdToNumericId(value: string): number;
|
|
482
445
|
/**
|
|
483
|
-
* Build a lazy
|
|
446
|
+
* Build a lazy projection from live yrs stories to display positions.
|
|
484
447
|
* The canonical yrs segment stream supplies paragraph/atom units; table-cell
|
|
485
448
|
* and block-SDT stories are recursively sized so container tokens are included.
|
|
486
449
|
*/
|
|
@@ -490,12 +453,11 @@ declare function createYrsSidebarProjection(session: YrsSession): YrsSidebarProj
|
|
|
490
453
|
* Comment / tracked-change anchor derivation over the display list, shared
|
|
491
454
|
* by both adapters' sidebar plumbing on the canvas-renderer path.
|
|
492
455
|
*
|
|
493
|
-
* `visitAnchorKeys` walks the
|
|
456
|
+
* `visitAnchorKeys` walks the document and reports every comment /
|
|
494
457
|
* tracked-change anchor as `(key, pos)` — shared between each adapter's
|
|
495
458
|
* layout-math derivation (DOM painter path) and the display-list derivation
|
|
496
459
|
* here, so both register identical keys in identical order.
|
|
497
460
|
*
|
|
498
|
-
* @experimental part of the rust-canvas-engine change; shape may evolve.
|
|
499
461
|
*/
|
|
500
462
|
|
|
501
463
|
/** Structural view shape used only by the legacy display-list anchor walker. */
|
|
@@ -510,13 +472,12 @@ interface AnchorEditorView {
|
|
|
510
472
|
};
|
|
511
473
|
}
|
|
512
474
|
/**
|
|
513
|
-
* Walk the
|
|
475
|
+
* Walk the document and report every comment / tracked-change anchor as
|
|
514
476
|
* `(key, pos)`. `register` is called once per occurrence; callers dedupe.
|
|
515
477
|
*/
|
|
516
478
|
declare function visitAnchorKeys(pmView: AnchorEditorView, register: (key: string, pos: number) => void): void;
|
|
517
479
|
/**
|
|
518
|
-
* Display-list
|
|
519
|
-
* the experimental canvas renderer: anchor Ys come from Rust `range_rects`
|
|
480
|
+
* Display-list anchor derivation: anchor Ys come from Rust `range_rects`
|
|
520
481
|
* queries over the display list (page-local px) plus the canvas page stack
|
|
521
482
|
* math, instead of layout-fragment scans in the DOM viewport's coordinate
|
|
522
483
|
* space. Returns `.canvas-pages`-host Y offsets keyed by
|
|
@@ -529,7 +490,7 @@ interface YrsHeaderFooterRegions {
|
|
|
529
490
|
/**
|
|
530
491
|
* yrs-authoritative sidebar anchors. Comment coverage comes from sticky yrs
|
|
531
492
|
* side-map positions and tracked-change anchors come from `listRevisions()`;
|
|
532
|
-
* neither path reads an
|
|
493
|
+
* neither path reads an `AnchorEditorView` or its document.
|
|
533
494
|
*/
|
|
534
495
|
declare function computeAnchorPositionsFromYrs(session: YrsSession, commentIds: Iterable<string | number>, revisions: readonly YrsRevisionInfo[], projection: YrsSidebarProjection, queries: DisplayListQueries, hfRegions?: YrsHeaderFooterRegions, projectY?: (rect: DisplayListRect) => number | null): Map<string, number>;
|
|
535
496
|
interface DisplayListHfAnchorSource {
|
|
@@ -576,25 +537,24 @@ declare function extractTrackedChangesFromYrs(revisions: readonly YrsRevisionInf
|
|
|
576
537
|
* NOT the table's, so grouping by block id would split a table into one fragment
|
|
577
538
|
* per cell. The adapter therefore supplies `tableKeyOf`, mapping an in-cell doc
|
|
578
539
|
* position to a stable per-table key (in the React adapter: the enclosing table
|
|
579
|
-
* node's
|
|
540
|
+
* node's `before` position, resolved against the live doc). Primitives whose
|
|
580
541
|
* position doesn't resolve to a table are skipped.
|
|
581
542
|
*
|
|
582
543
|
* Column-boundary x's and the right edge are intentionally NOT computed here:
|
|
583
|
-
* they come from the
|
|
544
|
+
* they come from the doc's `columnWidths` (twips) anchored at `originX`,
|
|
584
545
|
* which is exact and robust to horizontally-merged cells (colspan suppresses
|
|
585
546
|
* the interior border line the display list would otherwise expose).
|
|
586
547
|
*
|
|
587
548
|
* Body region only. The HF caret + selection on canvas are now sourced from the
|
|
588
549
|
* region-aware `hfRangeRects` / `hfCaretRects` queries (see
|
|
589
|
-
* `
|
|
550
|
+
* `CanvasPartSelectionOverlay`), but HF *table* resize handles remain a documented
|
|
590
551
|
* gap: this walker takes `page.primitives` (body), and the overlay's
|
|
591
|
-
* `tableKeyOf` / commit path resolves against the body
|
|
552
|
+
* `tableKeyOf` / commit path resolves against the body doc. Closing it needs
|
|
592
553
|
* (1) an optional region parameter here to walk `page.header|footer.primitives`,
|
|
593
554
|
* (2) a `tableKeyOf` bound to the active HF EditorView, and (3) the same
|
|
594
555
|
* nearest-viewport page pick the HF caret uses (the part paints on every page).
|
|
595
556
|
* HF tables are rare, so this is deferred.
|
|
596
557
|
*
|
|
597
|
-
* @experimental part of the rust-canvas-engine change; shape may evolve.
|
|
598
558
|
*/
|
|
599
559
|
|
|
600
560
|
interface TableRowBand {
|
|
@@ -666,7 +626,7 @@ interface DisplayListTableInsertHoverInput {
|
|
|
666
626
|
height: number;
|
|
667
627
|
};
|
|
668
628
|
tableKeyOf: TableKeyResolver;
|
|
669
|
-
/** Resolve a table grid cell to its
|
|
629
|
+
/** Resolve a table grid cell to its cell-start position. */
|
|
670
630
|
cellPmPosOf: (tableKey: string, row: number, col: number) => number | null;
|
|
671
631
|
region?: DisplayListTableRegion;
|
|
672
632
|
edgeProximity?: number;
|
|
@@ -688,7 +648,7 @@ declare function deriveDisplayListTableFragments(list: DisplayList, tableKeyOf:
|
|
|
688
648
|
* Full selected-cell boxes for canvas overlays.
|
|
689
649
|
*
|
|
690
650
|
* The DOM painter highlights `.layout-table-cell` elements directly; in canvas
|
|
691
|
-
* mode those cells are parked, so adapters pass the live
|
|
651
|
+
* mode those cells are parked, so adapters pass the live cell selection as
|
|
692
652
|
* grid coordinates and this helper resolves visible page-local boxes from the
|
|
693
653
|
* display-list table geometry. Border lines provide exact grid edges when
|
|
694
654
|
* present; borderless fragments fall back to the selected cell's content bbox
|
|
@@ -718,14 +678,10 @@ declare function findDisplayListHyperlinkAtPoint(list: DisplayList, pageIndex: n
|
|
|
718
678
|
/**
|
|
719
679
|
* Display-list rendering surface: the renderer-agnostic contract between
|
|
720
680
|
* layout output and every backend, plus the web canvas replay backend.
|
|
721
|
-
*
|
|
722
|
-
* @experimental The display-list pipeline is under active development
|
|
723
|
-
* (rust-canvas-engine change); shape may evolve while the Rust builder lands.
|
|
724
681
|
*/
|
|
725
682
|
|
|
726
683
|
/**
|
|
727
|
-
* Demo display list used
|
|
728
|
-
* display-list builder plugs in. One page, one paragraph of two runs with a
|
|
684
|
+
* Demo display list used when no provider value is injected. One page, one paragraph of two runs with a
|
|
729
685
|
* highlight and underline, a table border line, and an image reference.
|
|
730
686
|
*/
|
|
731
687
|
declare const demoDisplayList: DisplayList;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import {d,c,e,s,t,v,f}from'../../chunk-GGEGIQRK.mjs';export{p as FRAME_DELTA_HEADER_BYTES,q as FRAME_DELTA_PAGE_OP_BYTES,o as FRAME_DELTA_VERSION,r as FrameDeltaError,a as GlyphCache,t as applyFrameDelta,u as applyFrameDeltaOwned,s as decodeFrameDelta,m as drawDisplayPage,n as drawPrimitive,b as fontSizePxFromShorthand,d as glyphRunRect,e as lineRect,h as presentDisplayPageBackBuffer,i as presentOffscreenPageBackBuffer,l as rasterizeDisplayListPages,g as rasterizeDisplayPageToBackBuffer,k as sizeCanvasForPage,c as textRunRect}from'../../chunk-GGEGIQRK.mjs';export{b as resolveCanvasPoint,a as resolveDisplayPageClientRect}from'../../chunk-WRWRCBLK.mjs';import {c as c$1}from'../../chunk-CTBUQRYQ.mjs';import {b}from'../../chunk-TTRUPDAB.mjs';var Ue={pages:[{pageIndex:0,width:816,height:1056,primitives:[{kind:"rect",x:96,y:96,w:624,h:20,fill:"#fff9c4",blockId:0,docStart:1,docEnd:12},{kind:"text",text:"Hello Word",x:96,baselineY:110,width:84.5,font:"700 16px Calibri, sans-serif",color:"#000000",docStart:1,docEnd:11,blockId:0},{kind:"decoration",deco:"underline",x:96,y:113,w:84.5,h:1,color:"#000000",docStart:1,docEnd:11,blockId:0},{kind:"text",text:" \u2014 second run",x:180.5,baselineY:110,width:96.25,font:"400 16px Calibri, sans-serif",color:"#c0392b",docStart:11,docEnd:24,blockId:0},{kind:"line",x1:96,y1:140,x2:720,y2:140,strokeWidth:.75,color:"#666666",role:"table-border"},{kind:"image",relId:"rId7",x:96,y:160,w:200,h:120,docStart:30,docEnd:31,blockId:2}]}]};function Wt(){return import('../../wasm-JE7B3ROD.mjs').then(async e=>(await e.preloadLayoutWasm(),e.outlineGlyphJson))}var D={page:"layout-page layout-page-mirror",content:"layout-page-content",header:"layout-page-header",footer:"layout-page-footer",block:"layout-paragraph",table:"layout-table",tableRow:"layout-table-row",tableCell:"layout-table-cell",text:"layout-run layout-run-text",rect:"layout-mirror-rect",image:"layout-run layout-run-image",shape:"layout-run layout-run-shape",chart:"layout-run layout-run-chart",decoration:"layout-decoration",line:"layout-mirror-line",pageBorder:"layout-page-border",tableCut:"layout-table-cut-border",blockSdt:"layout-block-sdt",inlineSdtWidget:"layout-inline-sdt-widget",revisionPmark:"layout-revision-pmark",revisionPmarkGlyph:"layout-revision-pmark-glyph",revisionPmarkIns:"layout-revision-ins",revisionPmarkDel:"layout-revision-del",listMarker:"layout-list-marker",revisionTable:"oox-revision-table",revisionRow:"oox-revision-row",revisionCell:"oox-revision-cell",revisionIns:"oox-revision-ins",revisionDel:"oox-revision-del",revisionMerge:"oox-revision-merge",notes:"layout-page-notes",note:"layout-note",noteBacklink:"layout-note-backlink"};function Kt(e,t={}){let r=t.document??document,i=t.labels,n={labels:i,noteRefIds:new Set},s=r.createElement("div");s.className=D.page,s.setAttribute("role","document"),i?.page&&s.setAttribute("aria-label",i.page),s.dataset.pageIndex=String(e.pageIndex),e.sectionId!==void 0&&(s.dataset.sectionId=e.sectionId),e.sectionIndex!==void 0&&(s.dataset.sectionIndex=String(e.sectionIndex)),e.sectionPageIndex!==void 0&&(s.dataset.sectionPageIndex=String(e.sectionPageIndex)),e.sectionPageNumber!==void 0&&(s.dataset.sectionPageNumber=String(e.sectionPageNumber)),e.pageLabel!==void 0&&(s.dataset.pageLabel=e.pageLabel),s.style.position="relative",s.style.width=`${e.width}px`,s.style.height=`${e.height}px`,s.style.opacity="0",s.style.pointerEvents="none";let o=r.createElement("div");o.className=D.content,o.style.position="absolute",o.style.left="0",o.style.top="0",o.style.width=`${e.width}px`,o.style.height=`${e.height}px`,s.appendChild(o);for(let a of (e.pageBorders??[]).filter(l=>l.zOrder==="back"))o.appendChild(et(a,r,0));re(o,e.primitives,r,0,n);for(let a of e.noteAreas??[])o.appendChild(on(a,e,r,n));for(let a of [e.header,e.footer])a&&s.appendChild(Vt(a,e,r,n));for(let a of (e.pageBorders??[]).filter(l=>l.zOrder!=="back"))s.appendChild(et(a,r,0));return s}function Vt(e,t,r,i){let n=r.createElement("div");n.className=e.kind==="header"?D.header:D.footer,n.dataset.hfRid=e.rId;let s=e.kind==="header"?i.labels?.header:i.labels?.footer;return s&&(n.setAttribute("role","region"),n.setAttribute("aria-label",s)),n.style.position="absolute",n.style.left="0",n.style.top=`${e.y}px`,n.style.width=`${t.width}px`,n.style.height=`${e.height}px`,re(n,e.primitives,r,-e.y,i),n}function re(e,t,r,i,n){let s=new Map;for(let o of t){let a=o.kind==="line"?void 0:o.blockKey??o.blockId;if(a===void 0){e.appendChild(be(o,r,i,n));continue}let l=o.table,c=l?.tableId!==void 0?`table:${l.tableId}#${l.rowStart??0}`:a,u=s.get(c);if(!u){let y=r.createElement("div");y.dataset.blockId=String(l?.tableId??a),y.style.position="absolute",y.style.left="0",y.style.top="0",e.appendChild(y),u={el:y,prims:[]},s.set(c,u);}u.prims.push(o);}for(let o of s.values())zt(o,r,i,n);qt(s);}function zt(e,t,r,i){let{el:n,prims:s}=e;if(!s.some(g=>g.cell!==void 0||g.structuralRevision?.scope==="table"||g.structuralRevision?.scope==="row"||g.structuralRevision?.scope==="cell")){qe(n,s,t,r,i);return}n.className=D.table,n.setAttribute("role","table");let a=s.find(g=>g.table!==void 0)?.table;e.table=a,e.cells=[],a?.tableId!==void 0&&(n.dataset.tableId=a.tableId),a?.rowStart!==void 0&&(n.dataset.rowStart=String(a.rowStart)),a?.rowEnd!==void 0&&(n.dataset.rowEnd=String(a.rowEnd)),a?.headerRowCount!==void 0&&(n.dataset.headerRowCount=String(a.headerRowCount)),a?.parentTableId!==void 0&&(n.dataset.parentTableId=a.parentTableId),a?.caption&&n.setAttribute("aria-label",a.caption),a?.description&&n.setAttribute("aria-description",a.description);let l=ge(s,"table");l&&he(n,l),Be(n,s.find(g=>g.sdt!==void 0)?.sdt);for(let g of s)g.cell===void 0&&n.appendChild(be(g,t,r,i));let c=new Map,u=0,y=0;for(let g of s){if(g.cell===void 0)continue;let{row:m,col:h}=g.cell;u=Math.max(u,m+(g.cell.rowSpan??1)),y=Math.max(y,h+(g.cell.colSpan??1));let R=c.get(m);R||(R=new Map,c.set(m,R));let k=R.get(h);k||(k={ref:g.cell,prims:[]},R.set(h,k)),k.prims.push(g);}n.setAttribute("aria-rowcount",String(a?.rowCount??u)),n.setAttribute("aria-colcount",String(a?.columnCount??y));for(let g of [...c.keys()].sort((m,h)=>m-h)){let m=t.createElement("div");m.className=D.tableRow,m.setAttribute("role","row"),m.setAttribute("aria-rowindex",String(g+1));let h=ge(s,"row",g);h&&he(m,h),m.style.position="absolute",m.style.left="0",m.style.top="0",n.appendChild(m);let R=c.get(g);for(let k of [...R.keys()].sort((I,x)=>I-x)){let I=R.get(k),x=t.createElement("div");x.className=D.tableCell,x.setAttribute("role",I.ref.isHeader?"columnheader":"cell"),x.setAttribute("aria-colindex",String(k+1)),I.ref.cellId&&(x.id=I.ref.cellId),I.ref.headerIds?.length&&x.setAttribute("aria-labelledby",I.ref.headerIds.join(" ")),I.ref.repeatedHeader&&(x.dataset.repeatedHeader="true"),I.ref.noWrap&&(x.dataset.noWrap="true");let P=I.ref.rowSpan??1,T=I.ref.colSpan??1;P>1&&x.setAttribute("aria-rowspan",String(P)),T>1&&x.setAttribute("aria-colspan",String(T));let M=ge(I.prims,"cell",g,k);M&&he(x,M),I.ref.continuation&&(x.dataset.vmergeContinuation="true"),x.style.position="absolute",x.style.left="0",x.style.top="0";let Y=new Map,z=[];for(let w of I.prims){let N=w.blockKey??w.blockId;if(N===void 0){z.push(w);continue}let F=Y.get(N);F?F.push(w):Y.set(N,[w]);}for(let w of Te(z))x.appendChild(be(w,t,r,i));for(let[w,N]of Y){let F=t.createElement("div");F.dataset.blockId=String(w),F.style.position="absolute",F.style.left="0",F.style.top="0",qe(F,N,t,r,i),x.appendChild(F);}Ut(x,I.prims),ot(x,I.prims),e.cells.push({el:x,bounds:rt(I.prims)}),m.appendChild(x);}}Ce(n,s);}function qe(e,t,r,i,n){let s=t.find(c=>c.chart!==void 0)?.chart;e.className=s?`${D.block} ${D.chart}`:D.block,e.setAttribute("role",s?"img":"paragraph"),s?.label&&e.setAttribute("aria-label",s.label);for(let c of Te(t))e.appendChild(be(c,r,i,n));let o=ge(t,"pmark");o&&he(e,o),jt(e,t,r,i),Be(e,t.find(c=>c.sdt!==void 0)?.sdt);let a=t.find(c=>c.paraId!==void 0)?.paraId;a!==void 0&&(e.dataset.paraId=a);let l=t.find(c=>c.fromLine!==void 0);l?.fromLine!==void 0&&(e.dataset.fromLine=String(l.fromLine),l.toLine!==void 0&&(e.dataset.toLine=String(l.toLine))),ot(e,t),en(e,t);}function jt(e,t,r,i){Ce(e,t);let n=Number(e.dataset.docStart),s=Number(e.dataset.docEnd),o=t.map(y=>y.fragmentDocStart).filter(y=>Number.isFinite(y)),a=t.map(y=>y.fragmentDocEnd).filter(y=>Number.isFinite(y)),l=o.length>0?Math.min(...o):void 0,c=a.length>0?Math.max(...a):void 0,u=l??(Number.isFinite(n)&&n===s&&n>0?n-1:void 0);if(u!==void 0&&(e.dataset.docStart=String(u)),c!==void 0&&(e.dataset.docEnd=String(c)),u!==void 0&&!t.some(y=>y.docStart===u)){let y=Te(t).find(m=>Ae(m)!==void 0),g=y?Ae(y):void 0;if(g){let m=r.createElement("span");m.className="layout-mirror-structural-anchor",m.dataset.docStart=String(u),m.dataset.docEnd=String(u),U(m,g,i),e.insertBefore(m,e.firstChild);}}}function Ut(e,t){let r=e.querySelectorAll(".layout-paragraph[data-doc-start]"),i=1/0,n=-1/0;for(let s of r){let o=Number(s.dataset.docStart),a=Number(s.dataset.docEnd);Number.isFinite(o)&&(i=Math.min(i,o)),Number.isFinite(a)&&(n=Math.max(n,a));}i!==1/0&&(e.dataset.docStart=String(i)),n!==-1/0&&(e.dataset.docEnd=String(n)),i===1/0&&n===-1/0&&Ce(e,t);}function qt(e){let t=new Map;for(let r of e.values())r.table?.tableId&&t.set(r.table.tableId,r);for(let r of e.values()){let i=r.table?.parentTableId;if(!i)continue;let n=t.get(i),s=rt(r.prims);if(!n?.cells?.length||!s)continue;let o=s.x+s.w/2,a=s.y+s.h/2,l=n.cells.filter(c=>c.bounds&&Zt(o,a,c.bounds));l.sort((c,u)=>Ze(c.bounds)-Ze(u.bounds)),l[0]?.el.appendChild(r.el);}}function Zt(e,t,r){return e>=r.x&&e<=r.x+r.w&&t>=r.y&&t<=r.y+r.h}function Ze(e){return e.w*e.h}function rt(e){let t;for(let r of e){let i=r.clipGroup?.clip,n=i?.x!==void 0&&i.y!==void 0&&i.w!==void 0&&i.h!==void 0?{x:i.x,y:i.y,w:i.w,h:i.h}:Ae(r);if(!n)continue;if(!t){t={...n};continue}let s=Math.max(t.x+t.w,n.x+n.w),o=Math.max(t.y+t.h,n.y+n.h);t.x=Math.min(t.x,n.x),t.y=Math.min(t.y,n.y),t.w=s-t.x,t.h=o-t.y;}return t}function Ae(e){switch(e.kind){case "text":return c(e);case "glyphRun":return d(e);case "rect":return {x:e.x,y:e.y,w:e.w,h:e.h};case "image":case "shape":return {x:e.x,y:e.y,w:e.w,h:e.h};case "decoration":return {x:e.x,y:e.y,w:e.w,h:e.h}}}function Te(e){let t=e.filter(i=>i.logicalOrder!==void 0).sort((i,n)=>(i.logicalOrder??0)-(n.logicalOrder??0)||(i.docStart??0)-(n.docStart??0));if(t.length<2)return e;let r=0;return e.map(i=>i.logicalOrder===void 0?i:t[r++])}function ot(e,t){let r=t.find(s=>s.lang)?.lang;r&&(e.lang=r);let i=t.find(s=>s.bidiLevel!==void 0||"rtl"in s);if(!i)return;let n=i.bidiLevel!==void 0?i.bidiLevel%2===1:"rtl"in i?i.rtl:false;e.dir=n?"rtl":"ltr";}function en(e,t){let r=t.find(i=>i.ariaLabel||i.ariaDescription||i.decorative||i.hiddenObject||i.groupId);r&&at(e,r);}function Ce(e,t){let r,i;for(let n of t)n.docStart!==void 0&&(r=r===void 0?n.docStart:Math.min(r,n.docStart)),n.docEnd!==void 0&&(i=i===void 0?n.docEnd:Math.max(i,n.docEnd));r!==void 0&&(e.dataset.docStart=String(r)),i!==void 0&&(e.dataset.docEnd=String(i));}function ge(e,t,r,i){return e.find(n=>{let s=n.structuralRevision;return !(!s||s.scope!==t||r!==void 0&&s.rowIndex!==r||i!==void 0&&s.colIndex!==i)})?.structuralRevision}function be(e$1,t,r,i){switch(e$1.kind){case "text":{let n=tt(t,e$1,i);return n.className=D.text,n.textContent=e$1.text,U(n,c(e$1),r),n.style.font=e$1.font,nt(n,e$1),it(n,e$1),Pe(n,e$1.hidden&&e$1.opacity===void 0?.4:e$1.opacity,e$1.rotationDeg,e$1.horizontalScale),e$1.structuralRevision?.scope==="pmark"&&(n.classList.add(D.revisionPmarkGlyph),e$1.structuralRevision.kind==="ins"&&n.classList.add(D.revisionPmarkIns),e$1.structuralRevision.kind==="del"&&n.classList.add(D.revisionPmarkDel),n.setAttribute("aria-hidden","true")),e$1.listMarker&&(n.classList.add(D.listMarker),n.setAttribute("aria-hidden","true"),e$1.listMarkerRevision&&(n.style.color=e$1.listMarkerRevision==="ins"?"rgb(46, 125, 50)":"rgb(198, 40, 40)")),ne(n,e$1),n}case "glyphRun":{let n=tt(t,e$1,i);return n.className=D.text,n.textContent=e$1.text,U(n,d(e$1),r),n.style.fontSize=`${e$1.size}px`,tn(n,e$1.fallbackFont),nt(n,e$1),it(n,e$1),Pe(n,e$1.hidden&&e$1.opacity===void 0?.4:e$1.opacity,e$1.rotationDeg,e$1.horizontalScale),ne(n,e$1),n}case "rect":{let n=t.createElement("div");return n.className=D.rect,U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(n,e$1),n}case "line":{let n=t.createElement("div");return n.className=e$1.role==="table-cut"?D.tableCut:D.line,e$1.role&&e$1.role!=="table-cut"&&(n.dataset.role=e$1.role),U(n,e(e$1),r),n.setAttribute("aria-hidden","true"),n}case "image":{let n=e$1.href?t.createElement("a"):t.createElement("div");return n.className=D.image,e$1.decorative?n.setAttribute("aria-hidden","true"):(n.setAttribute("role","img"),e$1.altText&&n.setAttribute("aria-label",e$1.altText)),st(n,e$1),n.dataset.relId=e$1.relId,U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),Pe(n,e$1.opacity,e$1.rotationDeg),e$1.filter&&(n.style.filter=e$1.filter),ne(n,e$1),e$1.revision&&(n.style.outline=`2px solid ${e$1.revision.kind==="ins"?"rgb(46, 125, 50)":"rgb(198, 40, 40)"}`),e$1.href||(n.style.pointerEvents="auto"),n}case "shape":{let n=t.createElement("div");return n.className=D.shape,e$1.decorative?n.setAttribute("aria-hidden","true"):n.setAttribute("role","img"),U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),nn(n,e$1.transform),ne(n,e$1),n}case "decoration":{let n=t.createElement("span");return n.className=D.decoration,n.dataset.deco=e$1.deco,U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(n,e$1),n}}}function et(e,t,r){let i=t.createElement("div");return i.className=D.pageBorder,U(i,{x:e.x,y:e.y,w:e.w,h:e.h},r),i.style.boxSizing="border-box",i.style.pointerEvents="none",i.style.zIndex=e.zOrder==="back"?"0":"20",ye(i,"Top",e.top),ye(i,"Right",e.right),ye(i,"Bottom",e.bottom),ye(i,"Left",e.left),i}function U(e,t,r=0){e.style.position="absolute",e.style.left=`${t.x}px`,e.style.top=`${t.y+r}px`,e.style.width=`${t.w}px`,e.style.height=`${t.h}px`;}function tt(e,t,r){let i=t.noteRef?.id!==void 0?t.noteRef:void 0,n=t.href||i?e.createElement("a"):e.createElement("span");if(st(n,t),i&&!t.href){let s=i.kind??"footnote",o=`oox-${s}-${i.id}`;n.setAttribute("href",`#${o}`),n.setAttribute("role","doc-noteref");let a=`oox-noteref-${s}-${i.id}`;r.noteRefIds.has(a)||(r.noteRefIds.add(a),n.id=a);}return n}function st(e,t){let{href:r}=t;if(!r)return;e.setAttribute("href",r),e.dataset.href=r;let i=t.linkTitle??t.tooltip;i&&(e.title=i),t.linkTarget?e.setAttribute("target",t.linkTarget):r.startsWith("#")||e.setAttribute("target","_blank"),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener noreferrer"),t.linkHistory!==void 0&&(e.dataset.linkHistory=String(t.linkHistory)),t.linkDocLocation!==void 0&&(e.dataset.linkDocLocation=t.linkDocLocation);}function tn(e,t){if(t)for(let r of t.split(" ")){if(r.endsWith("px"))break;r==="italic"?e.style.fontStyle="italic":/^[1-9]00$/.test(r)&&r!=="400"&&(e.style.fontWeight=r);}}function nt(e,t){t.lang&&(e.lang=t.lang),t.bidiLevel!==void 0?e.dir=t.bidiLevel%2===1?"rtl":"ltr":t.rtl&&(e.dir="rtl");}function ye(e,t,r){if(!r)return;let i=e.style;i[`border${t}Width`]=`${r.width}px`,i[`border${t}Style`]=r.style,i[`border${t}Color`]=r.color;}function Pe(e,t,r,i){t!==void 0&&(e.style.opacity=String(t));let n=[];r&&n.push(`rotate(${r}deg)`),i!==void 0&&i!==100&&n.push(`scaleX(${i/100})`),n.length>0&&(e.style.transform=n.join(" "),e.style.transformOrigin=i!==void 0&&i!==100?"left center":"center center");}function nn(e,t){if(!t)return;let r=[];t.rotation&&r.push(`rotate(${t.rotation}deg)`),t.flipH&&r.push("scaleX(-1)"),t.flipV&&r.push("scaleY(-1)"),r.length!==0&&(e.style.transform=r.join(" "),e.style.transformOrigin="center center");}function it(e,t){if(t.allCaps&&(e.style.textTransform="uppercase"),t.smallCaps&&(e.style.fontVariant="small-caps"),t.hidden&&(e.classList.add("docx-hidden"),e.style.textDecoration="underline dotted"),t.textShadow==="emboss"?e.style.textShadow="1px 1px 1px rgba(255,255,255,0.5), -1px -1px 1px rgba(0,0,0,0.3)":t.textShadow==="imprint"?e.style.textShadow="-1px -1px 1px rgba(255,255,255,0.5), 1px 1px 1px rgba(0,0,0,0.3)":t.textShadow==="shadow"&&(e.style.textShadow="1px 1px 2px rgba(0,0,0,0.3)"),t.textOutline&&(e.style.webkitTextStroke="1px currentColor",e.style.webkitTextFillColor="transparent"),t.emphasisMark){let r=t.emphasisMark==="comma"?"filled sesame":t.emphasisMark==="circle"?"filled circle":"filled dot",i=t.emphasisMark==="underDot"?"under right":"over right";e.style.textEmphasis=r,e.style.textEmphasisPosition=i,e.style.webkitTextEmphasis=r,e.style.webkitTextEmphasisPosition=i;}t.textEffect&&(e.classList.add("docx-text-effect",`docx-text-effect-${t.textEffect}`),e.dataset.effect=t.textEffect);}function ne(e,t){if(t.docStart!==void 0&&(e.dataset.docStart=String(t.docStart)),t.docEnd!==void 0&&(e.dataset.docEnd=String(t.docEnd)),t.commentIds&&t.commentIds.length>0&&(e.dataset.commentId=t.commentIds.join(" ")),t.field){let r=t.field.type??t.field.category;r&&(e.dataset.fieldType=r),t.field.category&&(e.dataset.fieldCategory=t.field.category),t.field.instruction&&(e.dataset.fieldInstruction=t.field.instruction);let i=t.field.instruction?.trim()||r;i&&e.setAttribute("aria-description",i);}if(t.noteRef?.id!==void 0&&(e.dataset.noteRefKind=t.noteRef.kind??"footnote",e.dataset.noteRefId=String(t.noteRef.id)),t.comment){t.comment.status&&(e.dataset.commentStatus=t.comment.status),t.comment.authorId&&(e.dataset.commentAuthorId=t.comment.authorId),t.comment.paletteIndex!==void 0&&(e.dataset.commentPaletteIndex=String(t.comment.paletteIndex)),t.comment.color&&(e.dataset.commentColor=t.comment.color),t.comment.selected!==void 0&&(e.dataset.commentSelected=String(t.comment.selected)),t.comment.authorName&&(e.dataset.commentAuthorName=t.comment.authorName),t.comment.date&&(e.dataset.commentDate=t.comment.date),t.comment.replyCount!==void 0&&(e.dataset.commentReplyCount=String(t.comment.replyCount));let r=[t.comment.status,t.comment.authorName??t.comment.authorId,t.comment.date,t.comment.text,...(t.comment.replies??[]).map(i=>[i.authorName,i.text].filter(Boolean).join(": "))].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}if(t.revision){e.dataset.changeAuthor=t.revision.author,e.dataset.changeDate=t.revision.date,e.dataset.revisionId=t.revision.revisionId,e.classList.add(t.revision.kind==="ins"?"docx-insertion":"docx-deletion"),e.hasAttribute("role")||e.setAttribute("role",t.revision.kind==="ins"?"insertion":"deletion");let r=[t.revision.author,t.revision.date].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}t.href&&(e.dataset.href=t.href),rn(e,t.inlineSdtWidget),Be(e,t.sdt),t.sdtPath?.length&&(e.dataset.sdtPath=t.sdtPath.map(r=>r.groupId).join(" ")),t.logicalOrder!==void 0&&(e.dataset.logicalOrder=String(t.logicalOrder)),t.bidiLevel!==void 0&&(e.dataset.bidiLevel=String(t.bidiLevel)),at(e,t);}function at(e,t){if(t.groupId&&(e.dataset.groupId=t.groupId),t.decorative||t.hiddenObject){e.setAttribute("aria-hidden","true"),e.removeAttribute("role"),e.removeAttribute("aria-label"),e.removeAttribute("aria-description");return}t.ariaLabel&&e.setAttribute("aria-label",t.ariaLabel),t.ariaDescription&&e.setAttribute("aria-description",t.ariaDescription);}function Be(e,t){t&&(e.classList.add(D.blockSdt),e.dataset.sdtGroupId=t.groupId,e.dataset.sdtType=t.sdtType,t.depth!==void 0&&(e.dataset.sdtDepth=String(t.depth)),t.tag!==void 0&&(e.dataset.sdtTag=t.tag),t.alias!==void 0&&(e.dataset.sdtAlias=t.alias),t.lock!==void 0&&(e.dataset.sdtLock=t.lock),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked)),t.bound!==void 0&&(e.dataset.sdtBound=String(t.bound)),t.repeatingItem!==void 0&&(e.dataset.sdtRepeatingItem=String(t.repeatingItem)),!e.hasAttribute("aria-label")&&(t.alias||t.tag)&&e.setAttribute("aria-label",t.alias||t.tag||""),t.lock&&e.setAttribute("aria-readonly","true"));}function rn(e,t){if(!t)return;e.classList.add(D.inlineSdtWidget);let r=t.controlKind??t.kind;e.dataset.sdtWidget=r,e.dataset.sdtGroupId=t.groupId,e.dataset.sdtPos=String(t.pos),t.tag!==void 0&&(e.dataset.sdtTag=t.tag),t.alias!==void 0&&(e.dataset.sdtAlias=t.alias),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked),e.setAttribute("aria-checked",String(t.checked))),t.controlId!==void 0&&(e.dataset.sdtControlId=String(t.controlId)),t.value!==void 0&&(e.dataset.sdtValue=t.value),t.selectedIndex!==void 0&&(e.dataset.sdtSelectedIndex=String(t.selectedIndex)),t.dateFormat!==void 0&&(e.dataset.sdtDateFormat=t.dateFormat),t.dateLanguage!==void 0&&(e.dataset.sdtDateLanguage=t.dateLanguage),t.locked!==void 0&&(e.dataset.sdtLocked=String(t.locked)),r==="checkbox"?e.setAttribute("role","checkbox"):r==="dropDownList"||r==="comboBox"?(e.setAttribute("role","combobox"),e.setAttribute("aria-haspopup","listbox"),e.setAttribute("aria-expanded","false")):r==="date"?(e.setAttribute("role","button"),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("role","group"),e.removeAttribute("tabindex"),(t.alias||t.tag)&&e.setAttribute("aria-label",t.alias||t.tag||""),t.locked&&e.setAttribute("aria-disabled","true");}function he(e,t){switch(t.scope){case "pmark":e.classList.add(D.revisionPmark),t.kind==="ins"&&e.classList.add(D.revisionPmarkIns),t.kind==="del"&&e.classList.add(D.revisionPmarkDel);break;case "table":e.classList.add(D.revisionTable,Ee(t.kind));break;case "row":e.classList.add(D.revisionRow,Ee(t.kind));break;case "cell":e.classList.add(D.revisionCell,Ee(t.kind));break}e.dataset.revisionId=t.revisionId,e.dataset.revisionAuthor=t.author,t.date&&(e.dataset.revisionDate=t.date);let r=[t.author,t.date].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}function Ee(e){return e==="ins"?D.revisionIns:e==="del"?D.revisionDel:D.revisionMerge}function on(e,t,r,i){let n=r.createElement("section");n.className=D.notes,n.dataset.noteKind=e.kind??"footnote",e.sectionId&&(n.dataset.sectionId=e.sectionId),e.columns!==void 0&&(n.dataset.columns=String(e.columns)),n.style.position="absolute",n.style.left="0",n.style.top=`${e.y??0}px`,n.style.width=`${t.width}px`,n.style.height=`${e.height??0}px`;let s=new Map;for(let a of e.notes??[])a.id!==void 0&&s.set(a.id,a);re(n,e.separatorPrimitives??[],r,-(e.y??0),i);let o=[...e.primitives??[]];for(let a of e.noteIds??[]){let c=`${e.kind??"footnote"}-${a}`,u=o.filter(m=>m.groupId===c);if(u.length===0)continue;for(let m of u){let h=o.indexOf(m);h>=0&&o.splice(h,1);}let y=r.createElement("aside");y.className=D.note,y.id=`oox-${c}`,y.dataset.noteId=String(a),y.setAttribute("role",e.kind==="endnote"?"doc-endnote":"doc-footnote");let g=s.get(a);if(g&&(g.label!==void 0&&(y.dataset.noteLabel=g.label),g.anchorDocStart!==void 0&&(y.dataset.anchorDocStart=String(g.anchorDocStart)),g.anchorDocEnd!==void 0&&(y.dataset.anchorDocEnd=String(g.anchorDocEnd))),re(y,u,r,-(e.y??0),i),g){let m=r.createElement("a");m.className=D.noteBacklink,m.setAttribute("role","doc-backlink"),m.setAttribute("href",`#oox-noteref-${c}`);let h=i.labels?.noteBacklink??g.label??String(a);m.setAttribute("aria-label",h),y.appendChild(m);}n.appendChild(y);}return o.length>0&&re(n,o,r,-(e.y??0),i),n}function sn(e,t){for(let r of Array.from(e.querySelectorAll(".layout-canvas-sdt-box[data-sdt-group-id]")))r.classList.toggle("layout-sdt-focused",t.has(r.dataset.sdtGroupId??""));}var an=".layout-sdt-widget, .layout-inline-sdt-widget, .layout-sdt-repeat-btn";function ln(e,t={}){let r=t.document??document,i=r.createElement("div");i.className="layout-interactive-overlay",i.dataset.pageIndex=String(e.pageIndex),i.style.position="absolute",i.style.inset="0",i.style.width=`${e.width}px`,i.style.height=`${e.height}px`,i.style.pointerEvents="none",i.addEventListener("mousedown",a=>{a.target?.closest?.(an)&&(a.preventDefault(),a.stopPropagation());});let n=cn(e),s=dn(n);for(let a of [...s.values()].sort(pn))i.appendChild(mn(a,r,t.labels));let o=un(n);for(let a of o.values())i.appendChild(fn(a,r,t.labels));return i}function cn(e){return [...e.primitives,...e.header?.primitives??[],...e.footer?.primitives??[],...(e.noteAreas??[]).flatMap(t=>[...t.separatorPrimitives??[],...t.primitives??[]])]}function dn(e){let t=new Map;for(let r of e){let i=ct(r);if(!i)continue;let n=r.sdtPath?.length?r.sdtPath:r.sdt?[r.sdt]:[];for(let s of n){let o=t.get(s.groupId);o?o.rect=dt(o.rect,i):t.set(s.groupId,{attrs:s,rect:{...i}});}}return t}function un(e){let t=new Map;for(let r of e){let i=r.inlineSdtWidget,n=ct(r);if(!i||!n)continue;let s=`${i.groupId}:${i.pos}:${i.controlKind??i.kind}`,o=t.get(s);o?o.rect=dt(o.rect,n):t.set(s,{attrs:i,rect:{...n}});}return t}function pn(e,t){return (e.attrs.depth??0)-(t.attrs.depth??0)||e.rect.y-t.rect.y||e.rect.x-t.rect.x}function mn(e,t,r){let{attrs:i,rect:n}=e,s=t.createElement("div");s.className="layout-block-sdt-box layout-canvas-sdt-box",bn(s,i),ut(s,n),s.style.pointerEvents="none";let o=i.alias||i.tag;if(o){let c=t.createElement("span");c.className="layout-block-sdt-label",c.textContent=o,s.appendChild(c);}let a=gn(i.sdtType),l=!i.bound&&!hn(i.lock);if(a&&l){let c=t.createElement("button");c.type="button",c.className="layout-sdt-widget",c.dataset.sdtWidget=a,c.dataset.sdtGroupId=i.groupId,i.tag&&(c.dataset.sdtTag=i.tag),i.alias&&(c.dataset.sdtAlias=i.alias),(o||r?.control)&&c.setAttribute("aria-label",o||r?.control||""),a==="dropdown"&&c.setAttribute("aria-haspopup","listbox"),a==="date"&&c.setAttribute("aria-haspopup","dialog"),a==="checkbox"&&(c.setAttribute("role","checkbox"),c.setAttribute("aria-checked",String(i.checked??false))),c.textContent=a==="dropdown"?"\u25BE":a==="date"?"\u25A3":i.checked?"\u2612":"\u2610",c.style.pointerEvents="auto",s.appendChild(c);}if(i.repeatingItem&&l){let c=t.createElement("div");c.className="layout-sdt-repeat-controls",c.style.pointerEvents="auto",c.appendChild(lt(t,i,"add","\uFF0B",r?.addRepeatingItem,o)),c.appendChild(lt(t,i,"remove","\u2715",r?.removeRepeatingItem,o)),s.appendChild(c);}return s}function lt(e,t,r,i,n,s){let o=e.createElement("button");return o.type="button",o.className="layout-sdt-repeat-btn",o.dataset.sdtRepeat=r,o.dataset.sdtGroupId=t.groupId,t.tag&&(o.dataset.sdtTag=t.tag),(n||s)&&o.setAttribute("aria-label",n||s||""),o.textContent=i,o}function fn(e,t,r){let{attrs:i,rect:n}=e,s=i.controlKind??i.kind,o=t.createElement("button");return o.type="button",o.className="layout-sdt-widget layout-inline-sdt-widget layout-canvas-inline-sdt-widget",o.dataset.sdtWidget=yn(s),o.dataset.sdtGroupId=i.groupId,o.dataset.sdtPos=String(i.pos),i.tag&&(o.dataset.sdtTag=i.tag),i.alias&&(o.dataset.sdtAlias=i.alias),i.controlId!==void 0&&(o.dataset.sdtControlId=String(i.controlId)),i.value!==void 0&&(o.dataset.sdtValue=i.value),i.selectedIndex!==void 0&&(o.dataset.sdtSelectedIndex=String(i.selectedIndex)),i.dateFormat&&(o.dataset.sdtDateFormat=i.dateFormat),i.dateLanguage&&(o.dataset.sdtDateLanguage=i.dateLanguage),i.listItems?.length&&(o.dataset.sdtListItems=JSON.stringify(i.listItems)),(i.alias||i.tag||r?.control)&&o.setAttribute("aria-label",i.alias||i.tag||r?.control||""),s==="checkbox"?(o.setAttribute("role","checkbox"),o.setAttribute("aria-checked",String(i.checked??false))):s==="dropDownList"||s==="comboBox"?(o.setAttribute("aria-haspopup","listbox"),o.setAttribute("aria-expanded","false")):s==="date"&&o.setAttribute("aria-haspopup","dialog"),o.disabled=i.locked===true,o.textContent=s==="checkbox"?i.checked?"\u2612":"\u2610":s==="date"?"\u25A3":s==="picture"?"\u25A7":"\u25BE",ut(o,n),o.style.pointerEvents="auto",o}function yn(e){return e==="dropDownList"||e==="comboBox"?"dropdown":e}function gn(e){return e==="checkbox"?"checkbox":e==="dropDownList"||e==="comboBox"?"dropdown":e==="date"?"date":null}function hn(e){return e==="contentLocked"||e==="sdtContentLocked"||e==="sdtLocked"}function bn(e,t){e.dataset.sdtGroupId=t.groupId,e.dataset.sdtType=t.sdtType,t.depth!==void 0&&(e.dataset.sdtDepth=String(t.depth)),t.tag&&(e.dataset.sdtTag=t.tag),t.alias&&(e.dataset.sdtAlias=t.alias),t.lock&&(e.dataset.sdtLock=t.lock),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked)),t.bound!==void 0&&(e.dataset.sdtBound=String(t.bound)),t.repeatingItem!==void 0&&(e.dataset.sdtRepeatingItem=String(t.repeatingItem));}function ct(e$1){let t=e$1.clipGroup?.clip;if(t?.x!==void 0&&t.y!==void 0&&t.w!==void 0&&t.h!==void 0)return {x:t.x,y:t.y,w:t.w,h:t.h};switch(e$1.kind){case "text":return c(e$1);case "glyphRun":return d(e$1);case "rect":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h};case "line":return e(e$1);case "image":case "shape":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h};case "decoration":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h}}}function dt(e,t){let r=Math.min(e.x,t.x),i=Math.min(e.y,t.y),n=Math.max(e.x+e.w,t.x+t.w),s=Math.max(e.y+e.h,t.y+t.h);return {x:r,y:i,w:n-r,h:s-i}}function ut(e,t){e.style.position="absolute",e.style.left=`${t.x}px`,e.style.top=`${t.y}px`,e.style.width=`${Math.max(1,t.w)}px`,e.style.height=`${Math.max(1,t.h)}px`;}var V=class extends Error{constructor(r,i){let n=i instanceof Error?i.message:String(i);super(`Rust display-list ${r} failed: ${n}`);b(this,"stage");this.name="RustDisplayListSourceError",this.stage=r;}},pt=null;function He(){return pt??(pt=import('../../wasm-JE7B3ROD.mjs').then(async e=>(await e.preloadLayoutWasm(),{buildDisplayListJson:e.buildDisplayListJson,hitTestRegionsJson:e.hitTestRegionsJson,verticalMoveJson:e.verticalMoveJson,rangeRectsJson:e.rangeRectsJson,rangeRectsRegionJson:e.rangeRectsRegionJson,hasRangeRectsRegion:e.hasRangeRectsRegion,hasDisplayListSession:e.hasDisplayListSession,openDisplayList:e.openDisplayList,closeDisplayList:e.closeDisplayList,updateDisplayList:e.updateDisplayList,hasDisplayListUpdate:e.hasDisplayListUpdate,hitTestRegionsByHandle:e.hitTestRegionsByHandle,verticalMoveByHandle:e.verticalMoveByHandle,rangeRectsByHandle:e.rangeRectsByHandle,rangeRectsRegionByHandle:e.rangeRectsRegionByHandle}))),pt}function Ge(){return He()}function xn(e,t){let r=e.measured,i="[";for(let s=0;s<r.length;s++){s>0&&(i+=",");let o=r[s],a=o.measure,l;if(t&&a!==null&&typeof a=="object"){let c=a;l=t.get(c),l===void 0&&(l=JSON.stringify(o.measure),t.set(c,l));}else l=JSON.stringify(o.measure);i+='{"block":'+JSON.stringify(o.block)+',"measure":'+l+"}";}i+="]";let n='{"measured":'+i+',"options":'+JSON.stringify(e.options)+',"layout":'+JSON.stringify(e.layout);return e.contractVersion!==void 0&&(n+=',"contractVersion":'+JSON.stringify(e.contractVersion)),e.headersFooters!==void 0&&(n+=',"headersFooters":'+JSON.stringify(e.headersFooters)),e.fontChains!==void 0&&(n+=',"fontChains":'+JSON.stringify(e.fontChains)),e.noteAreas!==void 0&&(n+=',"noteAreas":'+JSON.stringify(e.noteAreas)),e.resolvedCommentIds!==void 0&&(n+=',"resolvedCommentIds":'+JSON.stringify(e.resolvedCommentIds)),e.commentAuthors!==void 0&&(n+=',"commentAuthors":'+JSON.stringify(e.commentAuthors)),e.commentThreads!==void 0&&(n+=',"commentThreads":'+JSON.stringify(e.commentThreads)),n+="}",n}function mt(e){let t={};return e.contractVersion!==void 0&&(t.contractVersion=e.contractVersion),e.headersFooters!==void 0&&(t.headersFooters=e.headersFooters),e.fontChains!==void 0&&(t.fontChains=e.fontChains),e.noteAreas!==void 0&&(t.noteAreas=e.noteAreas),e.resolvedCommentIds!==void 0&&(t.resolvedCommentIds=e.resolvedCommentIds),e.commentAuthors!==void 0&&(t.commentAuthors=e.commentAuthors),e.commentThreads!==void 0&&(t.commentThreads=e.commentThreads),JSON.stringify(t)}var Ln=new WeakMap;async function ft(e,t){let r;try{r=t??await He();}catch(s){throw new V("load",s)}let i,n;try{i=xn(e,Ln),n=r.buildDisplayListJson(i);}catch(s){throw new V("build",s)}try{return JSON.parse(n)}catch(s){throw new V("parse",s)}}async function Rn(e,t$1,r=null){let i;try{i=t$1??await He();}catch(l){throw new V("load",l)}if(!i.buildDisplayListFrame)return {displayList:await ft(e,i),frame:null,transport:"json"};let n=mt(e),s$1;try{s$1=i.buildDisplayListFrame(n,r?.frameEpoch??0);}catch(l){throw new V("build",l)}let o;try{o=s(s$1);}catch(l){throw new V("decode",l)}let a;try{a=t(r,o);}catch(l){throw new V("apply",l)}return {displayList:a.displayList,frame:a,transport:"frame-delta-v1"}}function yt(e,t,r){if(t==="body")return e.primitives.filter(n=>n.kind==="image");let i=t==="header"?e.header:e.footer;return !i||r!==void 0&&i.rId!==r?[]:i.primitives.filter(n=>n.kind==="image")}function Fe(e,t,r="body",i){for(let n of e.pages)for(let s of yt(n,r,i))if(s.docStart===t)return {primitive:s,pageIndex:n.pageIndex,...r!=="body"?{region:r,rId:i}:{}};return null}function Ne(e,t,r,i,n="body",s){let o=e.pages[t];if(!o)return null;let a=yt(o,n,s);for(let l=a.length-1;l>=0;l--){let c=a[l];if(!(r<c.x||r>c.x+c.w)&&!(i<c.y||i>c.y+c.h))return {primitive:c,pageIndex:o.pageIndex,...n!=="body"?{region:n,rId:s}:{}}}return null}function Dn(e,t){let r=e.imageByPos(t);if(!r)return;let i=e.contentBounds(r.pageIndex),n=e.paragraphRects(t).find(s=>s.pageIndex===r.pageIndex);if(!(!i||!n))return {horizontalEmu:Math.round(c$1(r.primitive.x-i.x)),verticalEmu:Math.round(c$1(r.primitive.y-n.y))}}var xe=(()=>{let e=globalThis.FinalizationRegistry;return e?new e(t=>t()):null})(),Ye=new WeakMap,Re=new WeakSet,Oe=new Set;function vn(e){return e!=null&&Re.has(e)}function In(e){return Oe.add(e),()=>{Oe.delete(e);}}function Le(e){return e instanceof Error?typeof WebAssembly<"u"&&e instanceof WebAssembly.RuntimeError?true:e.name==="RuntimeError":false}function Sn(e,t){let r=new Map;e.list.pages.forEach((s,o)=>r.set(s,o));let i=[],n=[];return t.pages.forEach((s,o)=>{let a=r.get(s);a!==void 0&&v(s)===e.pageRevisions[a]?(i.push([o,a]),r.delete(s)):n.push([o,s]);}),i.length===0?null:JSON.stringify({total:t.pages.length,...t.contractVersion!==void 0?{contractVersion:t.contractVersion}:{},reuse:i,replace:n})}function kn(e,t,r){let i=null,n=()=>i??(i=JSON.stringify(e)),s=wn(t)?t:null,o=s?null:t??null,a=null,l,c,u=new Promise((d,p)=>{l=d,c=p;});u.catch(()=>{});let y=null,g=false,m=false,h=false,R={},k=null;if(r){let d=Ye.get(r);d&&(k=d.hasHandle()?r:d.donor(),d.supersede());}let I=()=>s??o,x=()=>{let d=I();return d!==null&&Re.has(d)},P=(d,p)=>{let f=p instanceof Error?p:new Error(String(p));a=f,y=null,xe?.unregister(R);let b=I();if(!(!b||Re.has(b))){Re.add(b),console.error(`[CanvasRenderer] ${d} trapped in wasm; the session is unusable and must be rebuilt`,f);for(let L of Oe)try{L(f);}catch(v){console.error("[CanvasRenderer] display-list source failure listener threw",v);}}},T=()=>{if(y!==null&&x()){y=null;return}if(y!==null){try{o?.closeDisplayList?.(y);}catch{}y=null;}},M=()=>{let d=k;if(k=null,!d||!o?.updateDisplayList||!o.hasDisplayListUpdate?.())return false;let p=Ye.get(d);if(!p||p.engine()!==o)return false;let f=Sn(p,e);if(!f)return false;let b=p.takeHandle();if(b===null)return false;try{return o.updateDisplayList(b,f),y=b,!0}catch(L){try{o.closeDisplayList?.(b);}catch{}return console.warn("[CanvasRenderer] display-list delta update failed; reopening",L),false}},Y=()=>{if(!(h||m||g||y!==null||!o||x())&&!(!o.hasDisplayListSession?.()||!o.openDisplayList)&&(g=true,!M()))try{y=o.openDisplayList(n());}catch(d){if(y=null,Le(d)){P("display-list session open",d);return}console.warn("[CanvasRenderer] display-list session open failed; using JSON-arg queries",d);}};s||o?l():Ge().then(d=>{o=d,l();},d=>{a=d instanceof Error?d:new Error(String(d)),c(a),console.warn("[CanvasRenderer] display-list query engine failed to load",a);});let z=(d,p,f)=>{if(!o||x())return null;if(y===null&&Y(),y!==null&&d)try{return d(y)}catch(b){if(Le(b))return P(f,b),null;console.warn(`[CanvasRenderer] ${f} session query failed; falling back`,b),T();}try{return p()}catch(b){return Le(b)?(P(f,b),null):(a=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${f} query failed`,b),null)}},w=(d,p,f)=>{if(d===null)return p;try{return JSON.parse(d)}catch(b){return a=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${f} returned invalid JSON`,b),p}},N=(d,p)=>{if(x())return null;try{return d()}catch(f){return Le(f)?(P(`resident ${p}`,f),null):(a=f instanceof Error?f:new Error(String(f)),console.warn(`[CanvasRenderer] resident ${p} query failed`,f),null)}},F=(d,p,f)=>{if(s)return w(N(()=>s.displayHitTestRegionsJson(d,p,f),"hit_test_regions"),null,"hit_test_regions");let b=z(o?.hitTestRegionsByHandle&&(L=>o.hitTestRegionsByHandle(L,d,p,f)),()=>o.hitTestRegionsJson(n(),d,p,f),"hit_test_regions");return w(b,null,"hit_test_regions")},Z=(d,p)=>{if(s)return w(N(()=>s.displayRangeRectsJson(d,p),"range_rects"),[],"range_rects");let f=z(o?.rangeRectsByHandle&&(b=>o.rangeRectsByHandle(b,d,p)),()=>o.rangeRectsJson(n(),d,p),"range_rects");return w(f,[],"range_rects")},le=(d,p,f)=>{let b=f??Number.NaN;if(s)return w(N(()=>s.displayVerticalMoveJson(d,p,b),"vertical_move"),null,"vertical_move");if(!o?.verticalMoveJson)return null;let L=z(o.verticalMoveByHandle&&(v=>o.verticalMoveByHandle(v,d,p,b)),()=>o.verticalMoveJson(n(),d,p,b),"vertical_move");return w(L,null,"vertical_move")},B=(d,p,f,b)=>{if(s)return w(N(()=>s.displayRangeRectsRegionJson(d,p,f,b),"range_rects_region"),[],"range_rects_region");if(!o||!o.hasRangeRectsRegion?.())return [];let L=z(o.rangeRectsRegionByHandle&&(v=>o.rangeRectsRegionByHandle(v,d,p,f,b)),()=>o.rangeRectsRegionJson(n(),d,p,f,b),"range_rects_region");return w(L,[],"range_rects_region")},ee=(d,p,f)=>{let b=B(d,p,f,f+1);if(b.length>0){let L=new Map;for(let v of b)L.has(v.pageIndex)||L.set(v.pageIndex,{pageIndex:v.pageIndex,x:v.x,y:v.y,width:0,height:v.height});return [...L.values()]}if(f>0){let L=B(d,p,f-1,f);if(L.length>0){let v=new Map;for(let S of L)v.set(S.pageIndex,{pageIndex:S.pageIndex,x:S.x+S.width,y:S.y,width:0,height:S.height});return [...v.values()]}}return []},A=d=>{let p=Z(d,d+1);if(p.length>0){let f=p[0];return {pageIndex:f.pageIndex,x:f.x,y:f.y,width:0,height:f.height}}if(d>0){let f=Z(d-1,d);if(f.length>0){let b=f[f.length-1];return {pageIndex:b.pageIndex,x:b.x+b.width,y:b.y,width:0,height:b.height}}}return null},_=d=>{let p=Z(d,d+2);return p.length>0?p[0]:A(d)},X=(d,p,f)=>{let b=B(d,p,f,f+2);if(b.length===0)return ee(d,p,f);let L=new Map;for(let v of b)L.has(v.pageIndex)||L.set(v.pageIndex,v);return [...L.values()]},$=(d,p)=>({pageIndex:d,x:p.x,y:p.y,width:p.w,height:p.h}),J=d=>{let p=e.pages[d];return p?{pageIndex:p.pageIndex,x:0,y:0,width:p.width,height:p.height}:null},j=d=>{let p=e.pages[d],f=p?.contentBounds;return p&&f?{pageIndex:p.pageIndex,x:f.x,y:f.y,width:f.width,height:f.height}:null},te=d=>{let p=e.pages[d];return p?(p.columnBounds??[]).map(f=>({pageIndex:p.pageIndex,x:f.x,y:f.y,width:f.width,height:f.height})):[]},Q=d=>d.paraId?`para:${d.paraId}`:d.blockKey!==void 0?`block-key:${d.blockKey}`:d.blockId!==void 0?`block-id:${d.blockId}`:null,ce=d=>d.blockKey??d.blockId,de=null,Dt=()=>{if(de)return de;let d=new Map;for(let p of e.pages)for(let f$1 of p.primitives){let b=Q(f$1);if(!b||f$1.docStart===void 0||f$1.docEnd===void 0)continue;let L=f(f$1),v=d.get(b);v||(v=new Map,d.set(b,v));let S=v.get(p.pageIndex);if(!S){v.set(p.pageIndex,{...$(p.pageIndex,L),from:f$1.docStart,to:f$1.docEnd,blockId:ce(f$1),paraId:f$1.paraId});continue}let C=Math.min(S.x,L.x),E=Math.min(S.y,L.y),pe=Math.max(S.x+S.width,L.x+L.w),me=Math.max(S.y+S.height,L.y+L.h);S.x=C,S.y=E,S.width=pe-C,S.height=me-E,S.from=Math.min(S.from,f$1.docStart),S.to=Math.max(S.to,f$1.docEnd);}return de=new Map([...d].map(([p,f])=>[p,[...f.values()]])),de},vt=d=>{let p=null;for(let f of e.pages)for(let b of f.primitives){let L=Q(b),v=b.docStart,S=b.docEnd;if(!L||v===void 0||S===void 0||d<v||d>S)continue;let C={identity:L,span:Math.max(0,S-v),startsAtPos:v===d};(!p||C.startsAtPos&&!p.startsAtPos||C.startsAtPos===p.startsAtPos&&C.span<p.span)&&(p=C);}return p?Dt().get(p.identity)??[]:[]},It=1.5,ue=null,Ve=()=>{if(ue)return ue;let d=[];for(let p of e.pages){let f$1=[],b=0;for(let L of p.primitives){if(L.kind!=="text"&&L.kind!=="glyphRun"||L.docStart===void 0||L.docEnd===void 0||L.kind==="glyphRun"&&L.glyphs.length===0)continue;let v=L.kind==="text"?L.baselineY:L.glyphs.reduce((fe,Mt)=>Math.max(fe,Mt.y),-1/0);if(!Number.isFinite(v))continue;let S=Q(L)??`anonymous:${b++}`,C=f(L),E=f$1.find(fe=>fe.identity===S&&Math.abs(fe.baseline-v)<=It);if(!E){f$1.push({identity:S,...$(p.pageIndex,C),baseline:v,from:L.docStart,to:L.docEnd,blockId:ce(L),paraId:L.paraId});continue}let pe=Math.min(E.x,C.x),me=Math.min(E.y,C.y),kt=Math.max(E.x+E.width,C.x+C.w),wt=Math.max(E.y+E.height,C.y+C.h);E.x=pe,E.y=me,E.width=kt-pe,E.height=wt-me,E.from=Math.min(E.from,L.docStart),E.to=Math.max(E.to,L.docEnd);}d.push(...f$1.map(({identity:L,...v})=>v));}return ue=d,ue},St=d=>{let p=null;for(let f of Ve())d<f.from||d>f.to||(!p||f.to-f.from<p.to-p.from)&&(p=f);return p},ze=d=>{if(!d)return null;let p=d.primitive.docStart;if(p===void 0)return null;let{primitive:f}=d;return {...d,pos:p,rect:{pageIndex:d.pageIndex,x:f.x,y:f.y,width:f.w,height:f.h}}},ve={displayList:e,isReady:()=>(s!==null||o!==null)&&a===null,sourceState:()=>a?{status:"error",error:a}:s||o?{status:"ready"}:{status:"loading"},whenReady:()=>u,pageCount:()=>e.pages.length,pageSize:d=>{let p=e.pages[d];return p?{width:p.width,height:p.height}:null},pageBounds:J,contentBounds:j,columnBounds:te,paragraphRects:vt,visualLines:Ve,visualLineAtPosition:St,imageAtPoint:(d,p,f,b="body",L)=>ze(Ne(e,d,p,f,b,L)),imageByPos:(d,p="body",f)=>ze(Fe(e,d,p,f)),hitTestRegions:F,verticalMove:le,rangeRects:Z,hfRangeRects:B,hfCaretRects:ee,hfAnchorRects:X,caretRect:A,anchorRect:_,sidebarAnchorRect:_,prime:Y,dispose:()=>{h||(h=true,T(),xe?.unregister(R));}};return xe?.register(ve,T,R),Ye.set(ve,{list:e,pageRevisions:e.pages.map(v),engine:()=>o,hasHandle:()=>y!==null,donor:()=>k,supersede:()=>{m=true;},takeHandle:()=>{let d=y;return d!==null&&(y=null,xe?.unregister(R)),d}}),ve}function wn(e){return typeof e?.displayHitTestRegionsJson=="function"&&typeof e?.displayVerticalMoveJson=="function"&&typeof e?.displayRangeRectsJson=="function"&&typeof e?.displayRangeRectsRegionJson=="function"}var Mn=16,Pn=24;function oe(e){let t=[],r=24;for(let i=0;i<e.pageCount();i++)t.push(r),r+=(e.pageSize(i)?.height??0)+16;return t}function En(){let e=new Map;return t=>{if(!t.startsWith("blob:")&&!t.startsWith("data:"))return null;let r=e.get(t);return r||(r=new Promise(i=>{let n=new Image;n.onload=()=>i(n),n.onerror=()=>i(null),n.src=t;}),e.set(t,r)),r}}function An(e,t){let r=e.activeCommentIds.length>0?t?.(e.activeCommentIds):void 0;return {hasSelection:e.hasSelection,inInsertion:e.inInsertion,inDeletion:e.inDeletion,hasComment:e.activeCommentIds.length>0,inList:e.inList,listLevel:e.listLevel??0,...r?.authorName!==void 0?{commentAuthor:r.authorName}:{},...r?.replyCount!==void 0?{commentReplyCount:r.replyCount}:{}}}function Tn(e,t){if(!e)return [];let r=[];return !e.hasSelection&&t.hasSelection&&r.push({key:"selected"}),e.hasSelection&&!t.hasSelection&&r.push({key:"selectionCleared"}),!e.hasComment&&t.hasComment&&r.push({key:"commentedText",...t.commentAuthor!==void 0||t.commentReplyCount!==void 0?{vars:{...t.commentAuthor!==void 0?{author:t.commentAuthor}:{},...t.commentReplyCount!==void 0?{replies:t.commentReplyCount}:{}}}:{}}),!e.inInsertion&&t.inInsertion&&r.push({key:"trackedInsertion"}),!e.inDeletion&&t.inDeletion&&r.push({key:"trackedDeletion"}),(!e.inList&&t.inList||t.inList&&e.listLevel!==t.listLevel)&&r.push({key:"listItem",vars:{level:t.listLevel+1}}),r}function se(e){let t=Number(e);if(Number.isFinite(t))return t;let r=0xcbf29ce484222325n;for(let i of new TextEncoder().encode(e))r=(r^BigInt(i))*0x100000001b3n,r&=0xffffffffffffffffn;return Number(r&(1n<<53n)-1n)}function De(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Cn(e){let t=typeof e.story=="string"?[e.story]:[],r=Array.isArray(e.rows)?e.rows:[];for(let i of r){let n=De(i),s=n&&Array.isArray(n.cells)?n.cells:[];for(let o of s){let a=De(o)?.story;typeof a=="string"&&t.push(a);}}return t}function Bn(e){let t=e.storyIds(),r=new Map,i=new Set;for(let o of t){let a=[];try{for(let l of e.storySegments(o))if(l.kind==="embed")for(let c of Cn(l.payload))a.push(c),i.add(c);}catch{}r.set(o,a);}let n=new Map,s=(o,a,l)=>{if(!(l.has(o)||n.has(o))){l.add(o),n.set(o,a);for(let c of r.get(o)??[])s(c,a,l);l.delete(o);}};t.includes("body")&&s("body",{story:"body"},new Set);for(let o of t)!o.startsWith("hf:")||i.has(o)||s(o,{story:o,hfRid:o.slice(3)},new Set);return n}function Hn(e,t,r,i,n){let s=Array.isArray(t.rows)?t.rows:[],o=r+1;for(let a of s){let l=De(a),c=l&&Array.isArray(l.cells)?l.cells:[],u=o+1;for(let y of c){let g=De(y),m=typeof g?.story=="string"?g.story:null,h=m?_e(e,m,u+1,i,n):0;u+=h+2;}o=u+1;}return o+1-r}function _e(e,t,r,i,n){if(n.has(t))throw new Error(`recursive yrs story: ${t}`);n.add(t);try{let s=r,o=r,a=0,l=!0;for(let c of e.storySegments(t)){if(c.kind==="text"){a+=c.text.length,l=!1;continue}if(c.kind==="pilcrow"){let u=o+a+2;i.set(c.paraId,{pmStart:o,pmEnd:u}),s=u,o=s,a=0,l=!0;continue}if(c.embedKind==="table"&&l){s+=Hn(e,c.payload,s,i,n),o=s;continue}if(c.embedKind==="blockSdt"&&l){let u=typeof c.payload.story=="string"?c.payload.story:null,y=u?_e(e,u,s+1,i,n):0;s+=y+2,o=s;continue}if(l&&(c.embedKind==="pageBreak"||c.embedKind==="columnBreak")){s+=1,o=s;continue}a+=1,l=!1;}return s-r}finally{n.delete(t);}}function Gn(e){let t=new Map,r=Bn(e),i=o=>{let a=r.get(o)?.story;if(!a)return null;if(t.has(a))return t.get(a)??null;try{let l=new Map;return _e(e,a,0,l,new Set),t.set(a,l),l}catch{return t.set(a,null),null}},n=o=>{let a=r.get(o.story);if(!a)return null;let l=i(o.story)?.get(o.paraId);if(!l)return null;let c=Math.max(0,l.pmEnd-l.pmStart-2),u=Math.min(Math.max(0,Math.trunc(o.offset)),c);return {story:o.story,position:l.pmStart+1+u,...a.hfRid?{hfRid:a.hfRid}:{}}};return {locToDisplayPoint:n,storyOffsetToDisplayPoint:(o,a)=>{if(!r.has(o))return null;let l=Math.max(0,Math.trunc(a));try{for(let c of e.paragraphs(o)){let u=e.locateParagraph(o,c.paraId);if(!(l<u.start||l>u.end))return n({story:o,paraId:c.paraId,offset:Math.min(l-u.start,u.end-u.start)})}}catch{return null}return null}}}function Xe(e,t){let{doc:r,schema:i}=e.state,n=i.marks.comment,s=i.marks.insertion,o=i.marks.deletion;!n&&!s&&!o||r.descendants((a,l)=>{let c=a.attrs;if(c){let u=[c.trIns,c.trDel,c.pPrIns,c.pPrDel];for(let h of u){let R=h?.revisionId;typeof R=="number"&&t(`revision-${R}`,l);}let g=c.cellMarker?.info?.revisionId;typeof g=="number"&&t(`revision-${g}`,l);let m=[c.pPrChange,c.trPrChange,c.tcPrChange,c.tblPrChange];for(let h of m)if(Array.isArray(h))for(let R of h){let k=R?.info?.id;typeof k=="number"&&t(`revision-${k}`,l);}}if(a.isInline)for(let u of a.marks){let y=null;n&&u.type===n?y=`comment-${u.attrs.commentId}`:(s&&u.type===s||o&&u.type===o)&&(y=`revision-${u.attrs.revisionId}`),y&&t(y,l);}});}function Fn(e,t,r){let i=new Map;if(!e?.state)return i;let n=oe(t),s=new Set;return Xe(e,(o,a)=>{if(s.has(o))return;s.add(o);let l=t.anchorRect(a);if(!l)return;let c=r?r(l):(n[l.pageIndex]??0)+l.y;c!=null&&i.set(o,c);}),i}function Nn(e,t,r){if(!e.hfRid)return t.anchorRect(e.position);let i=r?.get(e.hfRid);return i?t.hfAnchorRects(i,e.hfRid,e.position)[0]??null:null}function Yn(e,t,r,i,n,s,o){let a=new Map,l=oe(n),c=(u,y)=>{if(!y||a.has(u))return a.has(u);let g=Nn(y,n,s);if(!g)return false;let m=o?o(g):(l[g.pageIndex]??0)+g.y;return m==null?false:(a.set(u,m),true)};for(let u of t){let y=`comment-${u}`;try{for(let g of e.resolveComment(String(u)))if(c(y,i.storyOffsetToDisplayPoint(g.story,g.start)))break}catch{}}for(let u of r)c(`revision-${se(u.revisionId)}`,i.locToDisplayPoint({story:u.story,...u.range.start}));return a}function On(e,t,r,i){let n=oe(t);for(let{region:s,rId:o,view:a}of e)Xe(a,(l,c)=>{if(r.has(l))return;let u=t.hfAnchorRects(s,o,c)[0];if(!u)return;let y=i?i(u):(n[u.pageIndex]??0)+u.y;y!=null&&r.set(l,y);});return r}function _n(e,t){let r=e.map(o=>{let a=t.locToDisplayPoint({story:o.range.story,...o.range.start}),l=t.locToDisplayPoint({story:o.range.story,...o.range.end}),c=a?.position??0,u=Math.max(c,l?.position??c);return {type:o.kind==="pPrIns"?"paragraphMarkInsertion":o.kind==="pPrDel"?"paragraphMarkDeletion":o.kind==="pPrChange"?"paragraphPropertiesChanged":o.kind==="trIns"?"rowInserted":o.kind==="trDel"?"rowDeleted":o.kind==="tableIns"?"tableInserted":o.kind==="tableDel"?"tableDeleted":o.kind,text:o.preview,author:o.author,date:o.date||void 0,from:c,to:u,revisionId:se(o.revisionId),...a?.hfRid?{hfRid:a.hfRid}:{}}}),i=new Map;for(let o of r){let a=i.get(o.revisionId)??[];a.push(o),i.set(o.revisionId,a);}let n=[...i.values()].map(o=>{let a=Math.min(...o.map(m=>m.from)),l=Math.max(...o.map(m=>m.to)),c=o.filter(m=>m.type==="insertion"),u=o.filter(m=>m.type==="deletion");if(c.length>0&&u.length>0)return {...c[0],type:"replacement",text:c.map(h=>h.text).join(""),deletedText:u.map(h=>h.text).join(""),from:a,to:l};let y=o.find(m=>m.type==="insertion"||m.type==="deletion")??o[0],g=o.filter(m=>m.type===y.type).map(m=>m.text).join("");return {...y,text:g,from:a,to:l}}),s=[];for(let o=0;o<n.length;o+=1){let a=n[o],l=n[o+1];a.type==="deletion"&&l?.type==="insertion"&&a.author===l.author&&a.date===l.date&&a.to===l.from&&a.hfRid===l.hfRid?(s.push({type:"replacement",text:l.text,deletedText:a.text,author:a.author,date:a.date,from:a.from,to:l.to,revisionId:a.revisionId,insertionRevisionId:l.revisionId,...a.hfRid?{hfRid:a.hfRid}:{}}),o+=1):s.push(a);}return {entries:s,commentToRevision:new Map}}function Xn(e,t){let r=t.kind??"body";if(r==="body")return {kind:r,primitives:e.primitives};let i=r==="header"?e.header:e.footer;return !i||i.kind!==r||t.rId&&i.rId!==t.rId?null:{kind:r,rId:i.rId,primitives:i.primitives}}function $n(e){switch(e.kind){case "text":return c(e);case "glyphRun":return d(e);case "rect":case "image":case "shape":case "decoration":return {x:e.x,y:e.y,w:e.w,h:e.h};case "line":return {x:Math.min(e.x1,e.x2),y:Math.min(e.y1,e.y2),w:Math.abs(e.x2-e.x1),h:Math.abs(e.y2-e.y1)}}}function Jn(e){let t=$n(e),r=e.clipGroup?.clip;if(!r)return t;let i=r.x??0,n=r.y??0,s=i+Math.max(0,r.w??0),o=n+Math.max(0,r.h??0),a=Math.max(t.x,i),l=Math.max(t.y,n),c=Math.min(t.x+t.w,s),u=Math.min(t.y+t.h,o);return c<a||u<l?null:{x:a,y:l,w:c-a,h:u-l}}function Qn(e){return e.kind==="text"||e.kind==="glyphRun"?e.text:e.kind==="image"?e.altText??"":""}function Wn(e,t,r){return t>=e.x&&t<=e.x+e.w&&r>=e.y&&r<=e.y+e.h}function Kn(e,t,r,i,n={kind:"body"}){let s=e.pages[t];if(!s)return null;let o=Xn(s,n);if(!o)return null;for(let a=o.primitives.length-1;a>=0;a--){let l=o.primitives[a];if(l.kind==="line"||!l.href||l.hiddenObject)continue;let c=Jn(l);if(c&&Wn(c,r,i))return {pageIndex:t,region:o.kind,rId:o.rId,href:l.href,tooltip:l.linkTitle??l.tooltip,displayText:Qn(l)||l.href,rect:c}}return null}var O=7.5,q=16,gt=320,Vn=30,zn=200,jn=24,Un=10,qn=10,Zn=24;function ht(e){let t;switch(e.kind){case "text":t=c(e);break;case "glyphRun":t=d(e);break;case "rect":case "image":case "shape":case "decoration":t={x:e.x,y:e.y,w:e.w,h:e.h};break;case "line":t={x:Math.min(e.x1,e.x2),y:Math.min(e.y1,e.y2),w:Math.abs(e.x2-e.x1),h:Math.abs(e.y2-e.y1)};break}let r=Je(e);return r?ei(t,r)??{x:r.x,y:r.y,w:0,h:0}:t}function Je(e){let t=e.clipGroup?.clip;return t?{x:t.x??0,y:t.y??0,w:Math.max(0,t.w??0),h:Math.max(0,t.h??0)}:null}function ei(e,t){let r=Math.max(e.x,t.x),i=Math.max(e.y,t.y),n=Math.min(e.x+e.w,t.x+t.w),s=Math.min(e.y+e.h,t.y+t.h);return n<r||s<i?null:{x:r,y:i,w:n-r,h:s-i}}function bt(e,t,r){if(e.docStart!=null){let i=t(e.docStart);if(i!=null){let n={tableKey:i,docStartSample:e.docStart};return e.table?.tableId&&!r.has(e.table.tableId)&&r.set(e.table.tableId,n),n}}return e.table?.tableId?r.get(e.table.tableId)??null:null}function xt(e,t,r){let i=e.table?.tableId;if(!i)return null;let n=t.get(i);return n?r.get(n.tableKey)??null:null}function ti(e,t,r,i){let n=new Map;for(let o of t){if(o.kind==="line")continue;let a=o.cell;if(!a)continue;let l=bt(o,r,i);if(!l)continue;let{tableKey:c,docStartSample:u}=l,y=ht(o),g=Je(o),m=g??y,h=n.get(c);if(h||(h={tableKey:c,docStartSample:u,contentMinX:m.x,contentMinY:m.y,contentMaxX:m.x+m.w,contentMaxY:m.y+m.h,exactLeftX:[],exactBottomY:[],exactClipLeftX:[],exactClipBottomY:[],rows:new Map},n.set(c,h)),u<h.docStartSample&&(h.docStartSample=u),h.contentMinX=Math.min(h.contentMinX,m.x),h.contentMinY=Math.min(h.contentMinY,m.y),h.contentMaxX=Math.max(h.contentMaxX,m.x+m.w),h.contentMaxY=Math.max(h.contentMaxY,m.y+m.h),g&&(h.exactClipLeftX.push(g.x),h.exactClipBottomY.push(g.y+g.h)),!a.continuation){let R=h.rows.get(a.row);R?(R.top=Math.min(R.top,m.y),R.bottom=Math.max(R.bottom,m.y+m.h)):h.rows.set(a.row,{top:m.y,bottom:m.y+m.h});}}if(n.size===0)return [];for(let o of t){if(o.kind!=="line"||o.role!=="table-border"&&o.role!=="table-cut")continue;let a=xt(o,i,n);if(!a){let u=(o.x1+o.x2)/2,y=(o.y1+o.y2)/2,g=1/0;for(let m of n.values()){let h=u>=m.contentMinX-q&&u<=m.contentMaxX+q,R=y>=m.contentMinY-q&&y<=m.contentMaxY+q;if(!h||!R)continue;let k=Math.max(0,m.contentMinX-u,u-m.contentMaxX),I=Math.max(0,m.contentMinY-y,y-m.contentMaxY),x=k+I;x<g&&(g=x,a=m);}}if(!a)continue;let l=Math.abs(o.x1-o.x2)<.5,c=Math.abs(o.y1-o.y2)<.5;l&&a.exactLeftX.push(Math.min(o.x1,o.x2)),c&&a.exactBottomY.push(Math.max(o.y1,o.y2));}let s=[];for(let o of n.values()){if(o.rows.size===0)continue;let a=o.exactLeftX.length>0||o.exactClipLeftX.length>0,l=a?Math.min(...o.exactLeftX,...o.exactClipLeftX):o.contentMinX-O,c=o.exactBottomY.length>0||o.exactClipBottomY.length>0?Math.max(...o.exactBottomY,...o.exactClipBottomY):o.contentMaxY,u=[...o.rows.entries()].map(([y,g])=>({rowIndex:y,top:g.top,bottom:g.bottom})).sort((y,g)=>y.rowIndex-g.rowIndex);s.push({pageIndex:e,tableKey:o.tableKey,docStartSample:o.docStartSample,originX:l,originY:o.contentMinY,bottomY:c,originExact:a,rowBands:u});}return s}function ni(e,t){let r=[],i=We(e,t,{kind:"body"});for(let n of e.pages)r.push(...ti(n.pageIndex,n.primitives,t,i));return r}function Qe(e,t){let r=t.kind??"body";if(r==="body")return {kind:r,primitives:e.primitives};let i=r==="header"?e.header:e.footer;return !i||i.kind!==r||t.rId&&i.rId!==t.rId?null:{kind:r,rId:i.rId,primitives:i.primitives}}function We(e,t,r){let i=new Map;for(let n of e.pages){let s=Qe(n,r);if(s)for(let o of s.primitives){if(!o.cell||!o.table?.tableId||o.docStart==null)continue;let a=t(o.docStart);if(a==null)continue;let l=i.get(o.table.tableId);(!l||o.docStart<l.docStartSample)&&i.set(o.table.tableId,{tableKey:a,docStartSample:o.docStart});}}return i}function Ke(e,t){return `${e}:${t}`}function ii(e,t,r,i){let n=Ke(t.row,t.col),s=e.cells.get(n);s?(s.minX=Math.min(s.minX,r.x),s.minY=Math.min(s.minY,r.y),s.maxX=Math.max(s.maxX,r.x+r.w),s.maxY=Math.max(s.maxY,r.y+r.h),s.rowSpan=Math.max(s.rowSpan,t.rowSpan),s.colSpan=Math.max(s.colSpan,t.colSpan),i&&(s.exactClip=i)):e.cells.set(n,{row:t.row,col:t.col,rowSpan:t.rowSpan,colSpan:t.colSpan,minX:r.x,minY:r.y,maxX:r.x+r.w,maxY:r.y+r.h,exactClip:i??void 0});}function Lt(e,t,r){let i=new Map;for(let n of e){if(n.kind==="line")continue;let s=n.cell;if(!s)continue;let o=bt(n,t,r);if(!o)continue;let a=o.tableKey,l=ht(n),c=i.get(a);c||(c={tableKey:a,contentMinX:l.x,contentMinY:l.y,contentMaxX:l.x+l.w,contentMaxY:l.y+l.h,cells:new Map,verticalLines:[],horizontalLines:[]},i.set(a,c)),c.contentMinX=Math.min(c.contentMinX,l.x),c.contentMinY=Math.min(c.contentMinY,l.y),c.contentMaxX=Math.max(c.contentMaxX,l.x+l.w),c.contentMaxY=Math.max(c.contentMaxY,l.y+l.h),ii(c,s,l,Je(n));}if(i.size===0)return [];for(let n of e){if(n.kind!=="line"||n.role!=="table-border"&&n.role!=="table-cut")continue;let s=Math.abs(n.x1-n.x2)<.5,o=Math.abs(n.y1-n.y2)<.5;if(!s&&!o)continue;let a=Math.min(n.x1,n.x2),l=Math.max(n.x1,n.x2),c=Math.min(n.y1,n.y2),u=Math.max(n.y1,n.y2),y=xt(n,r,i);if(y){s?y.verticalLines.push(a):y.horizontalLines.push(c);continue}for(let g of i.values())if(s){if(!(u>=g.contentMinY-q&&c<=g.contentMaxY+q))continue;let h=a;Math.max(0,g.contentMinX-h,h-g.contentMaxX)<=gt&&g.verticalLines.push(h);}else if(o){if(!(l>=g.contentMinX-q&&a<=g.contentMaxX+q))continue;let h=c;Math.max(0,g.contentMinY-h,h-g.contentMaxY)<=gt&&g.horizontalLines.push(h);}}return [...i.values()]}function ae(e){let t=[];for(let r of [...e].sort((i,n)=>i-n))(t.length===0||Math.abs(t[t.length-1]-r)>.5)&&t.push(r);return t}function Rt(e){let t=ae([...e.cells.values()].map(n=>n.row)),r=ae(e.horizontalLines),i=new Map;if(t.length>0&&r.length>=t.length+1)for(let n=0;n<t.length;n++)i.set(t[n],r[n]),i.set(t[n]+1,r[n+1]);return i}function $e(e){if(!e)return null;if(e.exactClip)return e.exactClip;let t=e.minX-O,r=e.minY-O;return {x:t,y:r,w:Math.max(1,e.maxX-e.minX+O*2),h:Math.max(1,e.maxY-e.minY+O*2)}}function ri(e,t){let r=1/0,i=-1/0;for(let n of e.cells.values())n.row===t&&(r=Math.min(r,n.exactClip?.y??n.minY-O),i=Math.max(i,n.exactClip?n.exactClip.y+n.exactClip.h:n.maxY+O));return !Number.isFinite(r)||!Number.isFinite(i)||i<=r?null:{top:r,bottom:i}}function oi(e,t,r){let i=$e(e.cells.get(Ke(t,r)));return i?{left:i.x,right:i.x+i.w,top:i.y,bottom:i.y+i.h}:null}function si(e,t,r,i={kind:"body"}){if(t.length===0)return [];let n=new Map;for(let a of t){let l=n.get(a.tableKey);l?l.push(a):n.set(a.tableKey,[a]);}let s=[],o=We(e,r,i);for(let a of e.pages){let l=Qe(a,i);if(!l)continue;let c=Lt(l.primitives,r,o);for(let u of c){let y=n.get(u.tableKey);if(!y)continue;let g=ae(u.verticalLines),m=Rt(u);for(let h of y){let R=u.cells.get(Ke(h.row,h.col)),k=g[h.col],I=g[h.col+h.colSpan],x=m.get(h.row),P=m.get(h.row+h.rowSpan),T=true;if(k==null||I==null||I<=k){let M=R?.exactClip??$e(R);if(!M)continue;k=M.x,I=M.x+M.w,T=R?.exactClip!=null;}if(x==null||P==null||P<=x){let M=R?.exactClip??$e(R);if(!M)continue;x=M.y,P=M.y+M.h,T&&(T=R?.exactClip!=null);}s.push({pageIndex:a.pageIndex,tableKey:u.tableKey,row:h.row,col:h.col,rowSpan:h.rowSpan,colSpan:h.colSpan,x:k,y:x,w:Math.max(1,I-k),h:Math.max(1,P-x),exact:T,region:l.kind,rId:l.rId});}}}return s}function ai(e){let{list:t,pageIndex:r,x:i,y:n,canvasRect:s,pageSize:o,tableKeyOf:a,cellPmPosOf:l,region:c={kind:"body"},edgeProximity:u=Vn}=e,y=t.pages[r];if(!y)return null;let g=Qe(y,c);if(!g)return null;let m=o.width>0?s.width/o.width:1,h=o.height>0?s.height/o.height:1,R=(x,P)=>({clientX:s.left+x*m,clientY:s.top+P*h}),k=We(t,a,c),I=Lt(g.primitives,a,k);for(let x of I){let P=ae(x.verticalLines),T=Rt(x),M=ae([...x.cells.values()].map(B=>B.row));if(M.length===0)continue;let Y=P[0]??x.contentMinX-O,z=P[P.length-1]??x.contentMaxX+O,w=T.get(M[0])??x.contentMinY-O,N=M[M.length-1],F=T.get(N+1)??x.contentMaxY+O,Z=i<Y+u&&i>=Y-u,le=n<w+u&&n>=w-u;if(!(!Z&&!le)){if(Z&&n>=w-u&&n<=F)for(let B of M){let ee=T.get(B),A=T.get(B+1),_=ee==null||A==null?ri(x,B):null,X=ee??_?.top,$=A??_?.bottom;if(X==null||$==null||$<=X||n<X||n>$)continue;let J=[...x.cells.values()].filter(Q=>Q.row===B).sort((Q,ce)=>Q.col-ce.col)[0];if(!J)continue;let j=l(x.tableKey,B,J.col);if(!j)continue;let te=R(Y,X+($-X)/2);return {type:"row",clientX:te.clientX-jn,clientY:te.clientY-Un,cellPmPos:j}}if(le&&i>=Y-u&&i<=z){let B=M[0],ee=[...x.cells.values()].filter(A=>A.row===B).sort((A,_)=>A.col-_.col);for(let A of ee){let _=P[A.col],X=P[A.col+A.colSpan],$=_==null||X==null?oi(x,A.row,A.col):null,J=_??$?.left,j=X??$?.right;if(J==null||j==null||j<=J||i<J||i>j)continue;let te=l(x.tableKey,A.row,A.col);if(!te)continue;let Q=R(J+(j-J)/2,w);return {type:"column",clientX:Q.clientX-qn,clientY:Q.clientY-Zn,cellPmPos:te}}}}}return null}var tr=Ue;export{Pn as CANVAS_PAGES_PADDING_PX,Mn as CANVAS_PAGE_GAP_PX,zn as DISPLAY_LIST_TABLE_INSERT_HIDE_DELAY_MS,D as MIRROR_CLASS_NAMES,V as RustDisplayListSourceError,sn as applyInteractiveSdtFocus,ln as buildInteractiveOverlayPage,Kt as buildMirrorPage,Rn as buildRustDisplayFrame,ft as buildRustDisplayList,oe as canvasPageTops,Dn as captureInlinePositionEmuFromDisplayList,Tn as computeA11yAnnouncements,Fn as computeAnchorPositionsFromDisplayList,Yn as computeAnchorPositionsFromYrs,En as createCanvasImageResolver,kn as createDisplayListQueries,Gn as createYrsSidebarProjection,tr as demoDisplayList,si as deriveDisplayListSelectedCellRects,ni as deriveDisplayListTableFragments,ai as detectDisplayListTableInsertHover,mt as encodeDisplayListFrameExtras,_n as extractTrackedChangesFromYrs,Kn as findDisplayListHyperlinkAtPoint,Ne as findImagePrimitiveAtPoint,Fe as findImagePrimitiveByDocPos,vn as isDisplayListQuerySourceDead,Wt as loadGlyphOutlineProvider,Ge as loadRustDisplayListQueryEngine,On as mergeHfAnchorPositionsFromDisplayList,In as onDisplayListQuerySourceFailure,An as snapshotFromSelectionContext,Xe as visitAnchorKeys,se as yrsIdToNumericId};
|
|
1
|
+
import {d,c,e,s,t,f,v,w}from'../../chunk-PGMXWI5X.mjs';export{p as FRAME_DELTA_HEADER_BYTES,q as FRAME_DELTA_PAGE_OP_BYTES,o as FRAME_DELTA_VERSION,r as FrameDeltaError,a as GlyphCache,t as applyFrameDelta,u as applyFrameDeltaOwned,s as decodeFrameDelta,m as drawDisplayPage,n as drawPrimitive,b as fontSizePxFromShorthand,d as glyphRunRect,e as lineRect,h as presentDisplayPageBackBuffer,i as presentOffscreenPageBackBuffer,l as rasterizeDisplayListPages,g as rasterizeDisplayPageToBackBuffer,k as sizeCanvasForPage,c as textRunRect}from'../../chunk-PGMXWI5X.mjs';export{b as resolveCanvasPoint,a as resolveDisplayPageClientRect}from'../../chunk-WRWRCBLK.mjs';import {c as c$1}from'../../chunk-CTBUQRYQ.mjs';import {b}from'../../chunk-TTRUPDAB.mjs';var tt={pages:[{pageIndex:0,width:816,height:1056,primitives:[{kind:"rect",x:96,y:96,w:624,h:20,fill:"#fff9c4",blockId:0,docStart:1,docEnd:12},{kind:"text",text:"Hello Word",x:96,baselineY:110,width:84.5,font:"700 16px Calibri, sans-serif",color:"#000000",docStart:1,docEnd:11,blockId:0},{kind:"decoration",deco:"underline",x:96,y:113,w:84.5,h:1,color:"#000000",docStart:1,docEnd:11,blockId:0},{kind:"text",text:" \u2014 second run",x:180.5,baselineY:110,width:96.25,font:"400 16px Calibri, sans-serif",color:"#c0392b",docStart:11,docEnd:24,blockId:0},{kind:"line",x1:96,y1:140,x2:720,y2:140,strokeWidth:.75,color:"#666666",role:"table-border"},{kind:"image",relId:"rId7",x:96,y:160,w:200,h:120,docStart:30,docEnd:31,blockId:2}]}]};function Zt(){return import('../../wasm-ZQAVP7P2.mjs').then(async e=>(await e.preloadLayoutWasm(),e.outlineGlyphJson))}var R={page:"layout-page layout-page-mirror",content:"layout-page-content",header:"layout-page-header",footer:"layout-page-footer",block:"layout-paragraph",table:"layout-table",tableRow:"layout-table-row",tableCell:"layout-table-cell",text:"layout-run layout-run-text",rect:"layout-mirror-rect",image:"layout-run layout-run-image",shape:"layout-run layout-run-shape",chart:"layout-run layout-run-chart",decoration:"layout-decoration",line:"layout-mirror-line",pageBorder:"layout-page-border",tableCut:"layout-table-cut-border",blockSdt:"layout-block-sdt",inlineSdtWidget:"layout-inline-sdt-widget",revisionPmark:"layout-revision-pmark",revisionPmarkGlyph:"layout-revision-pmark-glyph",revisionPmarkIns:"layout-revision-ins",revisionPmarkDel:"layout-revision-del",listMarker:"layout-list-marker",revisionTable:"oox-revision-table",revisionRow:"oox-revision-row",revisionCell:"oox-revision-cell",revisionIns:"oox-revision-ins",revisionDel:"oox-revision-del",revisionMerge:"oox-revision-merge",notes:"layout-page-notes",note:"layout-note",noteBacklink:"layout-note-backlink"};function en(e,t={}){let r=t.document??document,n=t.labels,i={labels:n,noteRefIds:new Set},s=r.createElement("div");s.className=R.page,s.setAttribute("role","document"),n?.page&&s.setAttribute("aria-label",n.page),s.dataset.pageIndex=String(e.pageIndex),e.sectionId!==void 0&&(s.dataset.sectionId=e.sectionId),e.sectionIndex!==void 0&&(s.dataset.sectionIndex=String(e.sectionIndex)),e.sectionPageIndex!==void 0&&(s.dataset.sectionPageIndex=String(e.sectionPageIndex)),e.sectionPageNumber!==void 0&&(s.dataset.sectionPageNumber=String(e.sectionPageNumber)),e.pageLabel!==void 0&&(s.dataset.pageLabel=e.pageLabel),s.style.position="relative",s.style.width=`${e.width}px`,s.style.height=`${e.height}px`,s.style.opacity="0",s.style.pointerEvents="none";let o=r.createElement("div");o.className=R.content,o.style.position="absolute",o.style.left="0",o.style.top="0",o.style.width=`${e.width}px`,o.style.height=`${e.height}px`,s.appendChild(o);for(let a of (e.pageBorders??[]).filter(l=>l.zOrder==="back"))o.appendChild(rt(a,r,0));re(o,e.primitives,r,0,i);for(let a of e.noteAreas??[])o.appendChild(mn(a,e,r,i));for(let a of [e.header,e.footer])a&&s.appendChild(tn(a,e,r,i));for(let a of (e.pageBorders??[]).filter(l=>l.zOrder!=="back"))s.appendChild(rt(a,r,0));return s}function tn(e,t,r,n){let i=r.createElement("div");i.className=e.kind==="header"?R.header:R.footer,i.dataset.hfRid=e.rId;let s=e.kind==="header"?n.labels?.header:n.labels?.footer;return s&&(i.setAttribute("role","region"),i.setAttribute("aria-label",s)),i.style.position="absolute",i.style.left="0",i.style.top=`${e.y}px`,i.style.width=`${t.width}px`,i.style.height=`${e.height}px`,re(i,e.primitives,r,-e.y,n),i}function re(e,t,r,n,i){let s=new Map;for(let o of t){let a=o.kind==="line"?void 0:o.blockKey??o.blockId;if(a===void 0){e.appendChild(be(o,r,n,i));continue}let l=o.table,c=l?.tableId!==void 0?`table:${l.tableId}#${l.rowStart??0}`:a,p=s.get(c);if(!p){let g=r.createElement("div");g.dataset.blockId=String(l?.tableId??a),g.style.position="absolute",g.style.left="0",g.style.top="0",e.appendChild(g),p={el:g,prims:[]},s.set(c,p);}p.prims.push(o);}for(let o of s.values())nn(o,r,n,i);sn(s);}function nn(e,t,r,n){let{el:i,prims:s}=e;if(!s.some(y=>y.cell!==void 0||y.structuralRevision?.scope==="table"||y.structuralRevision?.scope==="row"||y.structuralRevision?.scope==="cell")){nt(i,s,t,r,n);return}i.className=R.table,i.setAttribute("role","table");let a=s.find(y=>y.table!==void 0)?.table;e.table=a,e.cells=[],a?.tableId!==void 0&&(i.dataset.tableId=a.tableId),a?.rowStart!==void 0&&(i.dataset.rowStart=String(a.rowStart)),a?.rowEnd!==void 0&&(i.dataset.rowEnd=String(a.rowEnd)),a?.headerRowCount!==void 0&&(i.dataset.headerRowCount=String(a.headerRowCount)),a?.parentTableId!==void 0&&(i.dataset.parentTableId=a.parentTableId),a?.caption&&i.setAttribute("aria-label",a.caption),a?.description&&i.setAttribute("aria-description",a.description);let l=ge(s,"table");l&&he(i,l),He(i,s.find(y=>y.sdt!==void 0)?.sdt);for(let y of s)y.cell===void 0&&i.appendChild(be(y,t,r,n));let c=new Map,p=0,g=0;for(let y of s){if(y.cell===void 0)continue;let{row:u,col:h}=y.cell;p=Math.max(p,u+(y.cell.rowSpan??1)),g=Math.max(g,h+(y.cell.colSpan??1));let D=c.get(u);D||(D=new Map,c.set(u,D));let k=D.get(h);k||(k={ref:y.cell,prims:[]},D.set(h,k)),k.prims.push(y);}i.setAttribute("aria-rowcount",String(a?.rowCount??p)),i.setAttribute("aria-colcount",String(a?.columnCount??g));for(let y of [...c.keys()].sort((u,h)=>u-h)){let u=t.createElement("div");u.className=R.tableRow,u.setAttribute("role","row"),u.setAttribute("aria-rowindex",String(y+1));let h=ge(s,"row",y);h&&he(u,h),u.style.position="absolute",u.style.left="0",u.style.top="0",i.appendChild(u);let D=c.get(y);for(let k of [...D.keys()].sort((v,L)=>v-L)){let v=D.get(k),L=t.createElement("div");L.className=R.tableCell,L.setAttribute("role",v.ref.isHeader?"columnheader":"cell"),L.setAttribute("aria-colindex",String(k+1)),v.ref.cellId&&(L.id=v.ref.cellId),v.ref.headerIds?.length&&L.setAttribute("aria-labelledby",v.ref.headerIds.join(" ")),v.ref.repeatedHeader&&(L.dataset.repeatedHeader="true"),v.ref.noWrap&&(L.dataset.noWrap="true");let E=v.ref.rowSpan??1,B=v.ref.colSpan??1;E>1&&L.setAttribute("aria-rowspan",String(E)),B>1&&L.setAttribute("aria-colspan",String(B));let w=ge(v.prims,"cell",y,k);w&&he(L,w),v.ref.continuation&&(L.dataset.vmergeContinuation="true"),L.style.position="absolute",L.style.left="0",L.style.top="0";let N=new Map,ee=[];for(let T of v.prims){let Y=T.blockKey??T.blockId;if(Y===void 0){ee.push(T);continue}let P=N.get(Y);P?P.push(T):N.set(Y,[T]);}for(let T of Ce(ee))L.appendChild(be(T,t,r,n));for(let[T,Y]of N){let P=t.createElement("div");P.dataset.blockId=String(T),P.style.position="absolute",P.style.left="0",P.style.top="0",nt(P,Y,t,r,n),L.appendChild(P);}on(L,v.prims),ct(L,v.prims),e.cells.push({el:L,bounds:lt(v.prims)}),u.appendChild(L);}}Be(i,s);}function nt(e,t,r,n,i){let s=t.find(c=>c.chart!==void 0)?.chart;e.className=s?`${R.block} ${R.chart}`:R.block,e.setAttribute("role",s?"img":"paragraph"),s?.label&&e.setAttribute("aria-label",s.label);for(let c of Ce(t))e.appendChild(be(c,r,n,i));let o=ge(t,"pmark");o&&he(e,o),rn(e,t,r,n),He(e,t.find(c=>c.sdt!==void 0)?.sdt);let a=t.find(c=>c.paraId!==void 0)?.paraId;a!==void 0&&(e.dataset.paraId=a);let l=t.find(c=>c.fromLine!==void 0);l?.fromLine!==void 0&&(e.dataset.fromLine=String(l.fromLine),l.toLine!==void 0&&(e.dataset.toLine=String(l.toLine))),ct(e,t),ln(e,t);}function rn(e,t,r,n){Be(e,t);let i=Number(e.dataset.docStart),s=Number(e.dataset.docEnd),o=t.map(g=>g.fragmentDocStart).filter(g=>Number.isFinite(g)),a=t.map(g=>g.fragmentDocEnd).filter(g=>Number.isFinite(g)),l=o.length>0?Math.min(...o):void 0,c=a.length>0?Math.max(...a):void 0,p=l??(Number.isFinite(i)&&i===s&&i>0?i-1:void 0);if(p!==void 0&&(e.dataset.docStart=String(p)),c!==void 0&&(e.dataset.docEnd=String(c)),p!==void 0&&!t.some(g=>g.docStart===p)){let g=Ce(t).find(u=>Te(u)!==void 0),y=g?Te(g):void 0;if(y){let u=r.createElement("span");u.className="layout-mirror-structural-anchor",u.dataset.docStart=String(p),u.dataset.docEnd=String(p),j(u,y,n),e.insertBefore(u,e.firstChild);}}}function on(e,t){let r=e.querySelectorAll(".layout-paragraph[data-doc-start]"),n=1/0,i=-1/0;for(let s of r){let o=Number(s.dataset.docStart),a=Number(s.dataset.docEnd);Number.isFinite(o)&&(n=Math.min(n,o)),Number.isFinite(a)&&(i=Math.max(i,a));}n!==1/0&&(e.dataset.docStart=String(n)),i!==-1/0&&(e.dataset.docEnd=String(i)),n===1/0&&i===-1/0&&Be(e,t);}function sn(e){let t=new Map;for(let r of e.values())r.table?.tableId&&t.set(r.table.tableId,r);for(let r of e.values()){let n=r.table?.parentTableId;if(!n)continue;let i=t.get(n),s=lt(r.prims);if(!i?.cells?.length||!s)continue;let o=s.x+s.w/2,a=s.y+s.h/2,l=i.cells.filter(c=>c.bounds&&an(o,a,c.bounds));l.sort((c,p)=>it(c.bounds)-it(p.bounds)),l[0]?.el.appendChild(r.el);}}function an(e,t,r){return e>=r.x&&e<=r.x+r.w&&t>=r.y&&t<=r.y+r.h}function it(e){return e.w*e.h}function lt(e){let t;for(let r of e){let n=r.clipGroup?.clip,i=n?.x!==void 0&&n.y!==void 0&&n.w!==void 0&&n.h!==void 0?{x:n.x,y:n.y,w:n.w,h:n.h}:Te(r);if(!i)continue;if(!t){t={...i};continue}let s=Math.max(t.x+t.w,i.x+i.w),o=Math.max(t.y+t.h,i.y+i.h);t.x=Math.min(t.x,i.x),t.y=Math.min(t.y,i.y),t.w=s-t.x,t.h=o-t.y;}return t}function Te(e){switch(e.kind){case "text":return c(e);case "glyphRun":return d(e);case "rect":return {x:e.x,y:e.y,w:e.w,h:e.h};case "image":case "shape":return {x:e.x,y:e.y,w:e.w,h:e.h};case "decoration":return {x:e.x,y:e.y,w:e.w,h:e.h}}}function Ce(e){let t=e.filter(n=>n.logicalOrder!==void 0).sort((n,i)=>(n.logicalOrder??0)-(i.logicalOrder??0)||(n.docStart??0)-(i.docStart??0));if(t.length<2)return e;let r=0;return e.map(n=>n.logicalOrder===void 0?n:t[r++])}function ct(e,t){let r=t.find(s=>s.lang)?.lang;r&&(e.lang=r);let n=t.find(s=>s.bidiLevel!==void 0||"rtl"in s);if(!n)return;let i=n.bidiLevel!==void 0?n.bidiLevel%2===1:"rtl"in n?n.rtl:false;e.dir=i?"rtl":"ltr";}function ln(e,t){let r=t.find(n=>n.ariaLabel||n.ariaDescription||n.decorative||n.hiddenObject||n.groupId);r&&ut(e,r);}function Be(e,t){let r,n;for(let i of t)i.docStart!==void 0&&(r=r===void 0?i.docStart:Math.min(r,i.docStart)),i.docEnd!==void 0&&(n=n===void 0?i.docEnd:Math.max(n,i.docEnd));r!==void 0&&(e.dataset.docStart=String(r)),n!==void 0&&(e.dataset.docEnd=String(n));}function ge(e,t,r,n){return e.find(i=>{let s=i.structuralRevision;return !(!s||s.scope!==t||r!==void 0&&s.rowIndex!==r||n!==void 0&&s.colIndex!==n)})?.structuralRevision}function be(e$1,t,r,n){switch(e$1.kind){case "text":{let i=ot(t,e$1,n);return i.className=R.text,i.textContent=e$1.text,j(i,c(e$1),r),i.style.font=e$1.font,st(i,e$1),at(i,e$1),Ee(i,e$1.hidden&&e$1.opacity===void 0?.4:e$1.opacity,e$1.rotationDeg,e$1.horizontalScale),e$1.structuralRevision?.scope==="pmark"&&(i.classList.add(R.revisionPmarkGlyph),e$1.structuralRevision.kind==="ins"&&i.classList.add(R.revisionPmarkIns),e$1.structuralRevision.kind==="del"&&i.classList.add(R.revisionPmarkDel),i.setAttribute("aria-hidden","true")),e$1.listMarker&&(i.classList.add(R.listMarker),i.setAttribute("aria-hidden","true"),e$1.listMarkerRevision&&(i.style.color=e$1.listMarkerRevision==="ins"?"rgb(46, 125, 50)":"rgb(198, 40, 40)")),ne(i,e$1),i}case "glyphRun":{let i=ot(t,e$1,n);return i.className=R.text,i.textContent=e$1.text,j(i,d(e$1),r),i.style.fontSize=`${e$1.size}px`,cn(i,e$1.fallbackFont),st(i,e$1),at(i,e$1),Ee(i,e$1.hidden&&e$1.opacity===void 0?.4:e$1.opacity,e$1.rotationDeg,e$1.horizontalScale),ne(i,e$1),i}case "rect":{let i=t.createElement("div");return i.className=R.rect,j(i,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(i,e$1),i}case "line":{let i=t.createElement("div");return i.className=e$1.role==="table-cut"?R.tableCut:R.line,e$1.role&&e$1.role!=="table-cut"&&(i.dataset.role=e$1.role),j(i,e(e$1),r),i.setAttribute("aria-hidden","true"),i}case "image":{let i=e$1.href?t.createElement("a"):t.createElement("div");return i.className=R.image,e$1.decorative?i.setAttribute("aria-hidden","true"):(i.setAttribute("role","img"),e$1.altText&&i.setAttribute("aria-label",e$1.altText)),dt(i,e$1),i.dataset.relId=e$1.relId,j(i,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),Ee(i,e$1.opacity,e$1.rotationDeg),e$1.filter&&(i.style.filter=e$1.filter),ne(i,e$1),e$1.revision&&(i.style.outline=`2px solid ${e$1.revision.kind==="ins"?"rgb(46, 125, 50)":"rgb(198, 40, 40)"}`),e$1.href||(i.style.pointerEvents="auto"),i}case "shape":{let i=t.createElement("div");return i.className=R.shape,e$1.decorative?i.setAttribute("aria-hidden","true"):i.setAttribute("role","img"),j(i,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),dn(i,e$1.transform),ne(i,e$1),i}case "decoration":{let i=t.createElement("span");return i.className=R.decoration,i.dataset.deco=e$1.deco,j(i,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(i,e$1),i}}}function rt(e,t,r){let n=t.createElement("div");return n.className=R.pageBorder,j(n,{x:e.x,y:e.y,w:e.w,h:e.h},r),n.style.boxSizing="border-box",n.style.pointerEvents="none",n.style.zIndex=e.zOrder==="back"?"0":"20",ye(n,"Top",e.top),ye(n,"Right",e.right),ye(n,"Bottom",e.bottom),ye(n,"Left",e.left),n}function j(e,t,r=0){e.style.position="absolute",e.style.left=`${t.x}px`,e.style.top=`${t.y+r}px`,e.style.width=`${t.w}px`,e.style.height=`${t.h}px`;}function ot(e,t,r){let n=t.noteRef?.id!==void 0?t.noteRef:void 0,i=t.href||n?e.createElement("a"):e.createElement("span");if(dt(i,t),n&&!t.href){let s=n.kind??"footnote",o=`oox-${s}-${n.id}`;i.setAttribute("href",`#${o}`),i.setAttribute("role","doc-noteref");let a=`oox-noteref-${s}-${n.id}`;r.noteRefIds.has(a)||(r.noteRefIds.add(a),i.id=a);}return i}function dt(e,t){let{href:r}=t;if(!r)return;e.setAttribute("href",r),e.dataset.href=r;let n=t.linkTitle??t.tooltip;n&&(e.title=n),t.linkTarget?e.setAttribute("target",t.linkTarget):r.startsWith("#")||e.setAttribute("target","_blank"),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener noreferrer"),t.linkHistory!==void 0&&(e.dataset.linkHistory=String(t.linkHistory)),t.linkDocLocation!==void 0&&(e.dataset.linkDocLocation=t.linkDocLocation);}function cn(e,t){if(t)for(let r of t.split(" ")){if(r.endsWith("px"))break;r==="italic"?e.style.fontStyle="italic":/^[1-9]00$/.test(r)&&r!=="400"&&(e.style.fontWeight=r);}}function st(e,t){t.lang&&(e.lang=t.lang),t.bidiLevel!==void 0?e.dir=t.bidiLevel%2===1?"rtl":"ltr":t.rtl&&(e.dir="rtl");}function ye(e,t,r){if(!r)return;let n=e.style;n[`border${t}Width`]=`${r.width}px`,n[`border${t}Style`]=r.style,n[`border${t}Color`]=r.color;}function Ee(e,t,r,n){t!==void 0&&(e.style.opacity=String(t));let i=[];r&&i.push(`rotate(${r}deg)`),n!==void 0&&n!==100&&i.push(`scaleX(${n/100})`),i.length>0&&(e.style.transform=i.join(" "),e.style.transformOrigin=n!==void 0&&n!==100?"left center":"center center");}function dn(e,t){if(!t)return;let r=[];t.rotation&&r.push(`rotate(${t.rotation}deg)`),t.flipH&&r.push("scaleX(-1)"),t.flipV&&r.push("scaleY(-1)"),r.length!==0&&(e.style.transform=r.join(" "),e.style.transformOrigin="center center");}function at(e,t){if(t.allCaps&&(e.style.textTransform="uppercase"),t.smallCaps&&(e.style.fontVariant="small-caps"),t.hidden&&(e.classList.add("docx-hidden"),e.style.textDecoration="underline dotted"),t.textShadow==="emboss"?e.style.textShadow="1px 1px 1px rgba(255,255,255,0.5), -1px -1px 1px rgba(0,0,0,0.3)":t.textShadow==="imprint"?e.style.textShadow="-1px -1px 1px rgba(255,255,255,0.5), 1px 1px 1px rgba(0,0,0,0.3)":t.textShadow==="shadow"&&(e.style.textShadow="1px 1px 2px rgba(0,0,0,0.3)"),t.textOutline&&(e.style.webkitTextStroke="1px currentColor",e.style.webkitTextFillColor="transparent"),t.emphasisMark){let r=t.emphasisMark==="comma"?"filled sesame":t.emphasisMark==="circle"?"filled circle":"filled dot",n=t.emphasisMark==="underDot"?"under right":"over right";e.style.textEmphasis=r,e.style.textEmphasisPosition=n,e.style.webkitTextEmphasis=r,e.style.webkitTextEmphasisPosition=n;}t.textEffect&&(e.classList.add("docx-text-effect",`docx-text-effect-${t.textEffect}`),e.dataset.effect=t.textEffect);}function ne(e,t){if(t.docStart!==void 0&&(e.dataset.docStart=String(t.docStart)),t.docEnd!==void 0&&(e.dataset.docEnd=String(t.docEnd)),t.commentIds&&t.commentIds.length>0&&(e.dataset.commentId=t.commentIds.join(" ")),t.field){let r=t.field.type??t.field.category;r&&(e.dataset.fieldType=r),t.field.category&&(e.dataset.fieldCategory=t.field.category),t.field.instruction&&(e.dataset.fieldInstruction=t.field.instruction);let n=t.field.instruction?.trim()||r;n&&e.setAttribute("aria-description",n);}if(t.noteRef?.id!==void 0&&(e.dataset.noteRefKind=t.noteRef.kind??"footnote",e.dataset.noteRefId=String(t.noteRef.id)),t.comment){t.comment.status&&(e.dataset.commentStatus=t.comment.status),t.comment.authorId&&(e.dataset.commentAuthorId=t.comment.authorId),t.comment.paletteIndex!==void 0&&(e.dataset.commentPaletteIndex=String(t.comment.paletteIndex)),t.comment.color&&(e.dataset.commentColor=t.comment.color),t.comment.selected!==void 0&&(e.dataset.commentSelected=String(t.comment.selected)),t.comment.authorName&&(e.dataset.commentAuthorName=t.comment.authorName),t.comment.date&&(e.dataset.commentDate=t.comment.date),t.comment.replyCount!==void 0&&(e.dataset.commentReplyCount=String(t.comment.replyCount));let r=[t.comment.status,t.comment.authorName??t.comment.authorId,t.comment.date,t.comment.text,...(t.comment.replies??[]).map(n=>[n.authorName,n.text].filter(Boolean).join(": "))].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}if(t.revision){e.dataset.changeAuthor=t.revision.author,e.dataset.changeDate=t.revision.date,e.dataset.revisionId=t.revision.revisionId,e.classList.add(t.revision.kind==="ins"?"docx-insertion":"docx-deletion"),e.hasAttribute("role")||e.setAttribute("role",t.revision.kind==="ins"?"insertion":"deletion");let r=[t.revision.author,t.revision.date].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}t.href&&(e.dataset.href=t.href),un(e,t.inlineSdtWidget),He(e,t.sdt),t.sdtPath?.length&&(e.dataset.sdtPath=t.sdtPath.map(r=>r.groupId).join(" ")),t.logicalOrder!==void 0&&(e.dataset.logicalOrder=String(t.logicalOrder)),t.bidiLevel!==void 0&&(e.dataset.bidiLevel=String(t.bidiLevel)),ut(e,t);}function ut(e,t){if(t.groupId&&(e.dataset.groupId=t.groupId),t.decorative||t.hiddenObject){e.setAttribute("aria-hidden","true"),e.removeAttribute("role"),e.removeAttribute("aria-label"),e.removeAttribute("aria-description");return}t.ariaLabel&&e.setAttribute("aria-label",t.ariaLabel),t.ariaDescription&&e.setAttribute("aria-description",t.ariaDescription);}function He(e,t){t&&(e.classList.add(R.blockSdt),e.dataset.sdtGroupId=t.groupId,e.dataset.sdtType=t.sdtType,t.depth!==void 0&&(e.dataset.sdtDepth=String(t.depth)),t.tag!==void 0&&(e.dataset.sdtTag=t.tag),t.alias!==void 0&&(e.dataset.sdtAlias=t.alias),t.lock!==void 0&&(e.dataset.sdtLock=t.lock),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked)),t.bound!==void 0&&(e.dataset.sdtBound=String(t.bound)),t.repeatingItem!==void 0&&(e.dataset.sdtRepeatingItem=String(t.repeatingItem)),!e.hasAttribute("aria-label")&&(t.alias||t.tag)&&e.setAttribute("aria-label",t.alias||t.tag||""),t.lock&&e.setAttribute("aria-readonly","true"));}function un(e,t){if(!t)return;e.classList.add(R.inlineSdtWidget);let r=t.controlKind??t.kind;e.dataset.sdtWidget=r,e.dataset.sdtGroupId=t.groupId,e.dataset.sdtPos=String(t.pos),t.tag!==void 0&&(e.dataset.sdtTag=t.tag),t.alias!==void 0&&(e.dataset.sdtAlias=t.alias),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked),e.setAttribute("aria-checked",String(t.checked))),t.controlId!==void 0&&(e.dataset.sdtControlId=String(t.controlId)),t.value!==void 0&&(e.dataset.sdtValue=t.value),t.selectedIndex!==void 0&&(e.dataset.sdtSelectedIndex=String(t.selectedIndex)),t.dateFormat!==void 0&&(e.dataset.sdtDateFormat=t.dateFormat),t.dateLanguage!==void 0&&(e.dataset.sdtDateLanguage=t.dateLanguage),t.locked!==void 0&&(e.dataset.sdtLocked=String(t.locked)),r==="checkbox"?e.setAttribute("role","checkbox"):r==="dropDownList"||r==="comboBox"?(e.setAttribute("role","combobox"),e.setAttribute("aria-haspopup","listbox"),e.setAttribute("aria-expanded","false")):r==="date"?(e.setAttribute("role","button"),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("role","group"),e.removeAttribute("tabindex"),(t.alias||t.tag)&&e.setAttribute("aria-label",t.alias||t.tag||""),t.locked&&e.setAttribute("aria-disabled","true");}function he(e,t){switch(t.scope){case "pmark":e.classList.add(R.revisionPmark),t.kind==="ins"&&e.classList.add(R.revisionPmarkIns),t.kind==="del"&&e.classList.add(R.revisionPmarkDel);break;case "table":e.classList.add(R.revisionTable,Ae(t.kind));break;case "row":e.classList.add(R.revisionRow,Ae(t.kind));break;case "cell":e.classList.add(R.revisionCell,Ae(t.kind));break}e.dataset.revisionId=t.revisionId,e.dataset.revisionAuthor=t.author,t.date&&(e.dataset.revisionDate=t.date);let r=[t.author,t.date].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}function Ae(e){return e==="ins"?R.revisionIns:e==="del"?R.revisionDel:R.revisionMerge}function mn(e,t,r,n){let i=r.createElement("section");i.className=R.notes,i.dataset.noteKind=e.kind??"footnote",e.sectionId&&(i.dataset.sectionId=e.sectionId),e.columns!==void 0&&(i.dataset.columns=String(e.columns)),i.style.position="absolute",i.style.left="0",i.style.top=`${e.y??0}px`,i.style.width=`${t.width}px`,i.style.height=`${e.height??0}px`;let s=new Map;for(let a of e.notes??[])a.id!==void 0&&s.set(a.id,a);re(i,e.separatorPrimitives??[],r,-(e.y??0),n);let o=[...e.primitives??[]];for(let a of e.noteIds??[]){let c=`${e.kind??"footnote"}-${a}`,p=o.filter(u=>u.groupId===c);if(p.length===0)continue;for(let u of p){let h=o.indexOf(u);h>=0&&o.splice(h,1);}let g=r.createElement("aside");g.className=R.note,g.id=`oox-${c}`,g.dataset.noteId=String(a),g.setAttribute("role",e.kind==="endnote"?"doc-endnote":"doc-footnote");let y=s.get(a);if(y&&(y.label!==void 0&&(g.dataset.noteLabel=y.label),y.anchorDocStart!==void 0&&(g.dataset.anchorDocStart=String(y.anchorDocStart)),y.anchorDocEnd!==void 0&&(g.dataset.anchorDocEnd=String(y.anchorDocEnd))),re(g,p,r,-(e.y??0),n),y){let u=r.createElement("a");u.className=R.noteBacklink,u.setAttribute("role","doc-backlink"),u.setAttribute("href",`#oox-noteref-${c}`);let h=n.labels?.noteBacklink??y.label??String(a);u.setAttribute("aria-label",h),g.appendChild(u);}i.appendChild(g);}return o.length>0&&re(i,o,r,-(e.y??0),n),i}function pn(e,t){for(let r of Array.from(e.querySelectorAll(".layout-canvas-sdt-box[data-sdt-group-id]")))r.classList.toggle("layout-sdt-focused",t.has(r.dataset.sdtGroupId??""));}var fn=".layout-sdt-widget, .layout-inline-sdt-widget, .layout-sdt-repeat-btn";function yn(e,t={}){let r=t.document??document,n=r.createElement("div");n.className="layout-interactive-overlay",n.dataset.pageIndex=String(e.pageIndex),n.style.position="absolute",n.style.inset="0",n.style.width=`${e.width}px`,n.style.height=`${e.height}px`,n.style.pointerEvents="none",n.addEventListener("mousedown",a=>{a.target?.closest?.(fn)&&(a.preventDefault(),a.stopPropagation());});let i=gn(e),s=hn(i);for(let a of [...s.values()].sort(xn))n.appendChild(Ln(a,r,t.labels));let o=bn(i);for(let a of o.values())n.appendChild(Rn(a,r,t.labels));return n}function gn(e){return [...e.primitives,...e.header?.primitives??[],...e.footer?.primitives??[],...(e.noteAreas??[]).flatMap(t=>[...t.separatorPrimitives??[],...t.primitives??[]])]}function hn(e){let t=new Map;for(let r of e){let n=pt(r);if(!n)continue;let i=r.sdtPath?.length?r.sdtPath:r.sdt?[r.sdt]:[];for(let s of i){let o=t.get(s.groupId);o?o.rect=ft(o.rect,n):t.set(s.groupId,{attrs:s,rect:{...n}});}}return t}function bn(e){let t=new Map;for(let r of e){let n=r.inlineSdtWidget,i=pt(r);if(!n||!i)continue;let s=`${n.groupId}:${n.pos}:${n.controlKind??n.kind}`,o=t.get(s);o?o.rect=ft(o.rect,i):t.set(s,{attrs:n,rect:{...i}});}return t}function xn(e,t){return (e.attrs.depth??0)-(t.attrs.depth??0)||e.rect.y-t.rect.y||e.rect.x-t.rect.x}function Ln(e,t,r){let{attrs:n,rect:i}=e,s=t.createElement("div");s.className="layout-block-sdt-box layout-canvas-sdt-box",Sn(s,n),yt(s,i),s.style.pointerEvents="none";let o=n.alias||n.tag;if(o){let c=t.createElement("span");c.className="layout-block-sdt-label",c.textContent=o,s.appendChild(c);}let a=vn(n.sdtType),l=!n.bound&&!In(n.lock);if(a&&l){let c=t.createElement("button");c.type="button",c.className="layout-sdt-widget",c.dataset.sdtWidget=a,c.dataset.sdtGroupId=n.groupId,n.tag&&(c.dataset.sdtTag=n.tag),n.alias&&(c.dataset.sdtAlias=n.alias),(o||r?.control)&&c.setAttribute("aria-label",o||r?.control||""),a==="dropdown"&&c.setAttribute("aria-haspopup","listbox"),a==="date"&&c.setAttribute("aria-haspopup","dialog"),a==="checkbox"&&(c.setAttribute("role","checkbox"),c.setAttribute("aria-checked",String(n.checked??false))),c.textContent=a==="dropdown"?"\u25BE":a==="date"?"\u25A3":n.checked?"\u2612":"\u2610",c.style.pointerEvents="auto",s.appendChild(c);}if(n.repeatingItem&&l){let c=t.createElement("div");c.className="layout-sdt-repeat-controls",c.style.pointerEvents="auto",c.appendChild(mt(t,n,"add","\uFF0B",r?.addRepeatingItem,o)),c.appendChild(mt(t,n,"remove","\u2715",r?.removeRepeatingItem,o)),s.appendChild(c);}return s}function mt(e,t,r,n,i,s){let o=e.createElement("button");return o.type="button",o.className="layout-sdt-repeat-btn",o.dataset.sdtRepeat=r,o.dataset.sdtGroupId=t.groupId,t.tag&&(o.dataset.sdtTag=t.tag),(i||s)&&o.setAttribute("aria-label",i||s||""),o.textContent=n,o}function Rn(e,t,r){let{attrs:n,rect:i}=e,s=n.controlKind??n.kind,o=t.createElement("button");return o.type="button",o.className="layout-sdt-widget layout-inline-sdt-widget layout-canvas-inline-sdt-widget",o.dataset.sdtWidget=Dn(s),o.dataset.sdtGroupId=n.groupId,o.dataset.sdtPos=String(n.pos),n.tag&&(o.dataset.sdtTag=n.tag),n.alias&&(o.dataset.sdtAlias=n.alias),n.controlId!==void 0&&(o.dataset.sdtControlId=String(n.controlId)),n.value!==void 0&&(o.dataset.sdtValue=n.value),n.selectedIndex!==void 0&&(o.dataset.sdtSelectedIndex=String(n.selectedIndex)),n.dateFormat&&(o.dataset.sdtDateFormat=n.dateFormat),n.dateLanguage&&(o.dataset.sdtDateLanguage=n.dateLanguage),n.listItems?.length&&(o.dataset.sdtListItems=JSON.stringify(n.listItems)),(n.alias||n.tag||r?.control)&&o.setAttribute("aria-label",n.alias||n.tag||r?.control||""),s==="checkbox"?(o.setAttribute("role","checkbox"),o.setAttribute("aria-checked",String(n.checked??false))):s==="dropDownList"||s==="comboBox"?(o.setAttribute("aria-haspopup","listbox"),o.setAttribute("aria-expanded","false")):s==="date"&&o.setAttribute("aria-haspopup","dialog"),o.disabled=n.locked===true,o.textContent=s==="checkbox"?n.checked?"\u2612":"\u2610":s==="date"?"\u25A3":s==="picture"?"\u25A7":"\u25BE",yt(o,i),o.style.pointerEvents="auto",o}function Dn(e){return e==="dropDownList"||e==="comboBox"?"dropdown":e}function vn(e){return e==="checkbox"?"checkbox":e==="dropDownList"||e==="comboBox"?"dropdown":e==="date"?"date":null}function In(e){return e==="contentLocked"||e==="sdtContentLocked"||e==="sdtLocked"}function Sn(e,t){e.dataset.sdtGroupId=t.groupId,e.dataset.sdtType=t.sdtType,t.depth!==void 0&&(e.dataset.sdtDepth=String(t.depth)),t.tag&&(e.dataset.sdtTag=t.tag),t.alias&&(e.dataset.sdtAlias=t.alias),t.lock&&(e.dataset.sdtLock=t.lock),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked)),t.bound!==void 0&&(e.dataset.sdtBound=String(t.bound)),t.repeatingItem!==void 0&&(e.dataset.sdtRepeatingItem=String(t.repeatingItem));}function pt(e$1){let t=e$1.clipGroup?.clip;if(t?.x!==void 0&&t.y!==void 0&&t.w!==void 0&&t.h!==void 0)return {x:t.x,y:t.y,w:t.w,h:t.h};switch(e$1.kind){case "text":return c(e$1);case "glyphRun":return d(e$1);case "rect":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h};case "line":return e(e$1);case "image":case "shape":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h};case "decoration":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h}}}function ft(e,t){let r=Math.min(e.x,t.x),n=Math.min(e.y,t.y),i=Math.max(e.x+e.w,t.x+t.w),s=Math.max(e.y+e.h,t.y+t.h);return {x:r,y:n,w:i-r,h:s-n}}function yt(e,t){e.style.position="absolute",e.style.left=`${t.x}px`,e.style.top=`${t.y}px`,e.style.width=`${Math.max(1,t.w)}px`,e.style.height=`${Math.max(1,t.h)}px`;}var K=class extends Error{constructor(r,n){let i=n instanceof Error?n.message:String(n);super(`Rust display-list ${r} failed: ${i}`);b(this,"stage");this.name="RustDisplayListSourceError",this.stage=r;}},gt=null;function Fe(){return gt??(gt=import('../../wasm-ZQAVP7P2.mjs').then(async e=>(await e.preloadLayoutWasm(),{buildDisplayListJson:e.buildDisplayListJson,hitTestRegionsJson:e.hitTestRegionsJson,verticalMoveJson:e.verticalMoveJson,rangeRectsJson:e.rangeRectsJson,rangeRectsRegionJson:e.rangeRectsRegionJson,hasRangeRectsRegion:e.hasRangeRectsRegion,hasDisplayListSession:e.hasDisplayListSession,openDisplayList:e.openDisplayList,closeDisplayList:e.closeDisplayList,updateDisplayList:e.updateDisplayList,hasDisplayListUpdate:e.hasDisplayListUpdate,hitTestRegionsByHandle:e.hitTestRegionsByHandle,verticalMoveByHandle:e.verticalMoveByHandle,rangeRectsByHandle:e.rangeRectsByHandle,rangeRectsRegionByHandle:e.rangeRectsRegionByHandle}))),gt}function Ge(){return Fe()}function kn(e,t){let r=e.measured,n="[";for(let s=0;s<r.length;s++){s>0&&(n+=",");let o=r[s],a=o.measure,l;if(t&&a!==null&&typeof a=="object"){let c=a;l=t.get(c),l===void 0&&(l=JSON.stringify(o.measure),t.set(c,l));}else l=JSON.stringify(o.measure);n+='{"block":'+JSON.stringify(o.block)+',"measure":'+l+"}";}n+="]";let i='{"measured":'+n+',"options":'+JSON.stringify(e.options)+',"layout":'+JSON.stringify(e.layout);return e.contractVersion!==void 0&&(i+=',"contractVersion":'+JSON.stringify(e.contractVersion)),e.headersFooters!==void 0&&(i+=',"headersFooters":'+JSON.stringify(e.headersFooters)),e.fontChains!==void 0&&(i+=',"fontChains":'+JSON.stringify(e.fontChains)),e.noteAreas!==void 0&&(i+=',"noteAreas":'+JSON.stringify(e.noteAreas)),e.resolvedCommentIds!==void 0&&(i+=',"resolvedCommentIds":'+JSON.stringify(e.resolvedCommentIds)),e.commentAuthors!==void 0&&(i+=',"commentAuthors":'+JSON.stringify(e.commentAuthors)),e.commentThreads!==void 0&&(i+=',"commentThreads":'+JSON.stringify(e.commentThreads)),i+="}",i}function ht(e){let t={};return e.contractVersion!==void 0&&(t.contractVersion=e.contractVersion),e.headersFooters!==void 0&&(t.headersFooters=e.headersFooters),e.fontChains!==void 0&&(t.fontChains=e.fontChains),e.noteAreas!==void 0&&(t.noteAreas=e.noteAreas),e.resolvedCommentIds!==void 0&&(t.resolvedCommentIds=e.resolvedCommentIds),e.commentAuthors!==void 0&&(t.commentAuthors=e.commentAuthors),e.commentThreads!==void 0&&(t.commentThreads=e.commentThreads),JSON.stringify(t)}var wn=new WeakMap;async function bt(e,t){let r;try{r=t??await Fe();}catch(s){throw new K("load",s)}let n,i;try{n=kn(e,wn),i=r.buildDisplayListJson(n);}catch(s){throw new K("build",s)}try{return JSON.parse(i)}catch(s){throw new K("parse",s)}}async function Mn(e,t$1,r=null){let n;try{n=t$1??await Fe();}catch(l){throw new K("load",l)}if(!n.buildDisplayListFrame)return {displayList:await bt(e,n),frame:null,transport:"json"};let i=ht(e),s$1;try{s$1=n.buildDisplayListFrame(i,r?.frameEpoch??0);}catch(l){throw new K("build",l)}let o;try{o=s(s$1);}catch(l){throw new K("decode",l)}let a;try{a=t(r,o);}catch(l){throw new K("apply",l)}return {displayList:a.displayList,frame:a,transport:"frame-delta-v1"}}function xt(e,t,r){if(t==="body")return e.primitives.filter(i=>i.kind==="image");let n=t==="header"?e.header:e.footer;return !n||r!==void 0&&n.rId!==r?[]:n.primitives.filter(i=>i.kind==="image")}function Ne(e,t,r="body",n){for(let i of e.pages)for(let s of xt(i,r,n))if(s.docStart===t)return {primitive:s,pageIndex:i.pageIndex,...r!=="body"?{region:r,rId:n}:{}};return null}function Ye(e,t,r,n,i="body",s){let o=e.pages[t];if(!o)return null;let a=xt(o,i,s);for(let l=a.length-1;l>=0;l--){let c=a[l];if(!(r<c.x||r>c.x+c.w)&&!(n<c.y||n>c.y+c.h))return {primitive:c,pageIndex:o.pageIndex,...i!=="body"?{region:i,rId:s}:{}}}return null}function Pn(e,t){let r=e.imageByPos(t);if(!r)return;let n=e.contentBounds(r.pageIndex),i=e.paragraphRects(t).find(s=>s.pageIndex===r.pageIndex);if(!(!n||!i))return {horizontalEmu:Math.round(c$1(r.primitive.x-n.x)),verticalEmu:Math.round(c$1(r.primitive.y-i.y))}}var xe=(()=>{let e=globalThis.FinalizationRegistry;return e?new e(t=>t()):null})(),Oe=new WeakMap,Re=new WeakSet,_e=new Set;function En(e){return e!=null&&Re.has(e)}function An(e){return _e.add(e),()=>{_e.delete(e);}}function Le(e){return e instanceof Error?typeof WebAssembly<"u"&&e instanceof WebAssembly.RuntimeError?true:e.name==="RuntimeError":false}function Tn(e,t){let r=e.storeRevisions();if(!r)return null;let n=new Map;e.list.pages.forEach((a,l)=>n.set(a,l));let i=[],s=[],o=[];return t.pages.forEach((a,l)=>{let c=n.get(a);if(c===void 0){s.push([l,a]);return}n.delete(a);let p=r[c];if(p===void 0){s.push([l,a]);return}let g=v(a)===p?[]:w(a,p);g===null?s.push([l,a]):g.length===0?i.push([l,c]):o.push([l,c,g.map(y=>y.map(u=>[u.start,u.count,u.changedMask,u.delta]))]);}),i.length===0&&o.length===0?null:JSON.stringify({total:t.pages.length,...t.contractVersion!==void 0?{contractVersion:t.contractVersion}:{},reuse:i,replace:s,...o.length>0?{shift:o}:{}})}function Cn(e,t,r){let n=null,i=null,s=()=>(n===null&&(i=e.pages.map(v),n=JSON.stringify(e)),n),o=null,a=Bn(t)?t:null,l=a?null:t??null,c=null,p,g,y=new Promise((d,m)=>{p=d,g=m;});y.catch(()=>{});let u=null,h=false,D=false,k=false,v$1={},L=null;if(r){let d=Oe.get(r);d&&(L=d.hasHandle()?r:d.donor(),d.supersede());}let E=()=>a??l,B=()=>{let d=E();return d!==null&&Re.has(d)},w=(d,m)=>{let f=m instanceof Error?m:new Error(String(m));c=f,u=null,xe?.unregister(v$1);let b=E();if(!(!b||Re.has(b))){Re.add(b),console.error(`[CanvasRenderer] ${d} trapped in wasm; the session is unusable and must be rebuilt`,f);for(let x of _e)try{x(f);}catch(I){console.error("[CanvasRenderer] display-list source failure listener threw",I);}}},N=()=>{if(u!==null&&B()){u=null;return}if(u!==null){try{l?.closeDisplayList?.(u);}catch{}u=null;}},ee=()=>{let d=L;if(L=null,!d||!l?.updateDisplayList||!l.hasDisplayListUpdate?.())return false;let m=Oe.get(d);if(!m||m.engine()!==l)return false;let f=e.pages.map(v),b=Tn(m,e);if(!b)return false;let x=m.takeHandle();if(x===null)return false;try{return l.updateDisplayList(x,b),u=x,o=f,!0}catch(I){try{l.closeDisplayList?.(x);}catch{}return console.warn("[CanvasRenderer] display-list delta update failed; reopening",I),false}},T=()=>{if(!(k||D||h||u!==null||!l||B())&&!(!l.hasDisplayListSession?.()||!l.openDisplayList)&&(h=true,!ee()))try{u=l.openDisplayList(s()),o=i;}catch(d){if(u=null,Le(d)){w("display-list session open",d);return}console.warn("[CanvasRenderer] display-list session open failed; using JSON-arg queries",d);}};a||l?p():Ge().then(d=>{l=d,p();},d=>{c=d instanceof Error?d:new Error(String(d)),g(c),console.warn("[CanvasRenderer] display-list query engine failed to load",c);});let Y=(d,m,f)=>{if(!l||B())return null;if(u===null&&T(),u!==null&&d)try{return d(u)}catch(b){if(Le(b))return w(f,b),null;console.warn(`[CanvasRenderer] ${f} session query failed; falling back`,b),N();}try{return m()}catch(b){return Le(b)?(w(f,b),null):(c=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${f} query failed`,b),null)}},P=(d,m,f)=>{if(d===null)return m;try{return JSON.parse(d)}catch(b){return c=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${f} returned invalid JSON`,b),m}},Z=(d,m)=>{if(B())return null;try{return d()}catch(f){return Le(f)?(w(`resident ${m}`,f),null):(c=f instanceof Error?f:new Error(String(f)),console.warn(`[CanvasRenderer] resident ${m} query failed`,f),null)}},le=(d,m,f)=>{if(a)return P(Z(()=>a.displayHitTestRegionsJson(d,m,f),"hit_test_regions"),null,"hit_test_regions");let b=Y(l?.hitTestRegionsByHandle&&(x=>l.hitTestRegionsByHandle(x,d,m,f)),()=>l.hitTestRegionsJson(s(),d,m,f),"hit_test_regions");return P(b,null,"hit_test_regions")},H=(d,m)=>{if(a)return P(Z(()=>a.displayRangeRectsJson(d,m),"range_rects"),[],"range_rects");let f=Y(l?.rangeRectsByHandle&&(b=>l.rangeRectsByHandle(b,d,m)),()=>l.rangeRectsJson(s(),d,m),"range_rects");return P(f,[],"range_rects")},te=(d,m,f)=>{let b=f??Number.NaN;if(a)return P(Z(()=>a.displayVerticalMoveJson(d,m,b),"vertical_move"),null,"vertical_move");if(!l?.verticalMoveJson)return null;let x=Y(l.verticalMoveByHandle&&(I=>l.verticalMoveByHandle(I,d,m,b)),()=>l.verticalMoveJson(s(),d,m,b),"vertical_move");return P(x,null,"vertical_move")},C=(d,m,f,b)=>{if(a)return P(Z(()=>a.displayRangeRectsRegionJson(d,m,f,b),"range_rects_region"),[],"range_rects_region");if(!l||!l.hasRangeRectsRegion?.())return [];let x=Y(l.rangeRectsRegionByHandle&&(I=>l.rangeRectsRegionByHandle(I,d,m,f,b)),()=>l.rangeRectsRegionJson(s(),d,m,f,b),"range_rects_region");return P(x,[],"range_rects_region")},O=(d,m,f,b)=>C(d,m,f,b),_=(d,m,f,b)=>C(d,String(m),f,b),J=(d,m)=>{let f=(x,I)=>{let S=new Map;for(let M of x)I&&S.has(M.pageIndex)||S.set(M.pageIndex,{pageIndex:M.pageIndex,x:I?M.x:M.x+M.width,y:M.y,width:0,height:M.height});return [...S.values()]},b=d(m,m+1);if(b.length>0)return f(b,true);if(m>0){let x=d(m-1,m);if(x.length>0)return f(x,false)}return []},X=(d,m,f)=>J((b,x)=>O(d,m,b,x),f),V=(d,m,f)=>J((b,x)=>_(d,m,b,x),f),U=d=>{let m=H(d,d+1);if(m.length>0){let f=m[0];return {pageIndex:f.pageIndex,x:f.x,y:f.y,width:0,height:f.height}}if(d>0){let f=H(d-1,d);if(f.length>0){let b=f[f.length-1];return {pageIndex:b.pageIndex,x:b.x+b.width,y:b.y,width:0,height:b.height}}}return null},z=d=>{let m=H(d,d+2);return m.length>0?m[0]:U(d)},ve=(d,m,f)=>{let b=O(d,m,f,f+2);if(b.length===0)return X(d,m,f);let x=new Map;for(let I of b)x.has(I.pageIndex)||x.set(I.pageIndex,I);return [...x.values()]},ze=(d,m)=>({pageIndex:d,x:m.x,y:m.y,width:m.w,height:m.h}),kt=d=>{let m=e.pages[d];return m?{pageIndex:m.pageIndex,x:0,y:0,width:m.width,height:m.height}:null},wt=d=>{let m=e.pages[d],f=m?.contentBounds;return m&&f?{pageIndex:m.pageIndex,x:f.x,y:f.y,width:f.width,height:f.height}:null},Mt=d=>{let m=e.pages[d];return m?(m.columnBounds??[]).map(f=>({pageIndex:m.pageIndex,x:f.x,y:f.y,width:f.width,height:f.height})):[]},Ie=d=>d.paraId?`para:${d.paraId}`:d.blockKey!==void 0?`block-key:${d.blockKey}`:d.blockId!==void 0?`block-id:${d.blockId}`:null,je=d=>d.blockKey??d.blockId,ce=null,Pt=()=>{if(ce)return ce;let d=new Map;for(let m of e.pages)for(let f$1 of m.primitives){let b=Ie(f$1);if(!b||f$1.docStart===void 0||f$1.docEnd===void 0)continue;let x=f(f$1),I=d.get(b);I||(I=new Map,d.set(b,I));let S=I.get(m.pageIndex);if(!S){I.set(m.pageIndex,{...ze(m.pageIndex,x),from:f$1.docStart,to:f$1.docEnd,blockId:je(f$1),paraId:f$1.paraId});continue}let M=Math.min(S.x,x.x),A=Math.min(S.y,x.y),ue=Math.max(S.x+S.width,x.x+x.w),me=Math.max(S.y+S.height,x.y+x.h);S.x=M,S.y=A,S.width=ue-M,S.height=me-A,S.from=Math.min(S.from,f$1.docStart),S.to=Math.max(S.to,f$1.docEnd);}return ce=new Map([...d].map(([m,f])=>[m,[...f.values()]])),ce},Et=d=>{let m=null;for(let f of e.pages)for(let b of f.primitives){let x=Ie(b),I=b.docStart,S=b.docEnd;if(!x||I===void 0||S===void 0||d<I||d>S)continue;let M={identity:x,span:Math.max(0,S-I),startsAtPos:I===d};(!m||M.startsAtPos&&!m.startsAtPos||M.startsAtPos===m.startsAtPos&&M.span<m.span)&&(m=M);}return m?Pt().get(m.identity)??[]:[]},At=1.5,de=null,Ue=()=>{if(de)return de;let d=[];for(let m of e.pages){let f$1=[],b=0;for(let x of m.primitives){if(x.kind!=="text"&&x.kind!=="glyphRun"||x.docStart===void 0||x.docEnd===void 0||x.kind==="glyphRun"&&x.glyphs.length===0)continue;let I=x.kind==="text"?x.baselineY:x.glyphs.reduce((pe,Ht)=>Math.max(pe,Ht.y),-1/0);if(!Number.isFinite(I))continue;let S=Ie(x)??`anonymous:${b++}`,M=f(x),A=f$1.find(pe=>pe.identity===S&&Math.abs(pe.baseline-I)<=At);if(!A){f$1.push({identity:S,...ze(m.pageIndex,M),baseline:I,from:x.docStart,to:x.docEnd,blockId:je(x),paraId:x.paraId});continue}let ue=Math.min(A.x,M.x),me=Math.min(A.y,M.y),Ct=Math.max(A.x+A.width,M.x+M.w),Bt=Math.max(A.y+A.height,M.y+M.h);A.x=ue,A.y=me,A.width=Ct-ue,A.height=Bt-me,A.from=Math.min(A.from,x.docStart),A.to=Math.max(A.to,x.docEnd);}d.push(...f$1.map(({identity:x,...I})=>I));}return de=d,de},Tt=d=>{let m=null;for(let f of Ue())d<f.from||d>f.to||(!m||f.to-f.from<m.to-m.from)&&(m=f);return m},qe=d=>{if(!d)return null;let m=d.primitive.docStart;if(m===void 0)return null;let{primitive:f}=d;return {...d,pos:m,rect:{pageIndex:d.pageIndex,x:f.x,y:f.y,width:f.w,height:f.h}}},Se={displayList:e,isReady:()=>(a!==null||l!==null)&&c===null,sourceState:()=>c?{status:"error",error:c}:a||l?{status:"ready"}:{status:"loading"},whenReady:()=>y,pageCount:()=>e.pages.length,pageSize:d=>{let m=e.pages[d];return m?{width:m.width,height:m.height}:null},pageBounds:kt,contentBounds:wt,columnBounds:Mt,paragraphRects:Et,visualLines:Ue,visualLineAtPosition:Tt,imageAtPoint:(d,m,f,b="body",x)=>qe(Ye(e,d,m,f,b,x)),imageByPos:(d,m="body",f)=>qe(Ne(e,d,m,f)),hitTestRegions:le,verticalMove:te,rangeRects:H,hfRangeRects:O,noteRangeRects:_,hfCaretRects:X,noteCaretRects:V,hfAnchorRects:ve,caretRect:U,anchorRect:z,sidebarAnchorRect:z,prime:T,dispose:()=>{k||(k=true,N(),xe?.unregister(v$1));}};return xe?.register(Se,N,v$1),Oe.set(Se,{list:e,storeRevisions:()=>o,engine:()=>l,hasHandle:()=>u!==null,donor:()=>L,supersede:()=>{D=true;},takeHandle:()=>{let d=u;return d!==null&&(u=null,xe?.unregister(v$1)),d}}),Se}function Bn(e){return typeof e?.displayHitTestRegionsJson=="function"&&typeof e?.displayVerticalMoveJson=="function"&&typeof e?.displayRangeRectsJson=="function"&&typeof e?.displayRangeRectsRegionJson=="function"}var Hn=16,Fn=24;function oe(e){let t=[],r=24;for(let n=0;n<e.pageCount();n++)t.push(r),r+=(e.pageSize(n)?.height??0)+16;return t}function Gn(){let e=new Map;return t=>{if(!t.startsWith("blob:")&&!t.startsWith("data:"))return null;let r=e.get(t);return r||(r=new Promise(n=>{let i=new Image;i.onload=()=>n(i),i.onerror=()=>n(null),i.src=t;}),e.set(t,r)),r}}function Nn(e,t){let r=e.activeCommentIds.length>0?t?.(e.activeCommentIds):void 0;return {hasSelection:e.hasSelection,inInsertion:e.inInsertion,inDeletion:e.inDeletion,hasComment:e.activeCommentIds.length>0,inList:e.inList,listLevel:e.listLevel??0,...r?.authorName!==void 0?{commentAuthor:r.authorName}:{},...r?.replyCount!==void 0?{commentReplyCount:r.replyCount}:{}}}function Yn(e,t){if(!e)return [];let r=[];return !e.hasSelection&&t.hasSelection&&r.push({key:"selected"}),e.hasSelection&&!t.hasSelection&&r.push({key:"selectionCleared"}),!e.hasComment&&t.hasComment&&r.push({key:"commentedText",...t.commentAuthor!==void 0||t.commentReplyCount!==void 0?{vars:{...t.commentAuthor!==void 0?{author:t.commentAuthor}:{},...t.commentReplyCount!==void 0?{replies:t.commentReplyCount}:{}}}:{}}),!e.inInsertion&&t.inInsertion&&r.push({key:"trackedInsertion"}),!e.inDeletion&&t.inDeletion&&r.push({key:"trackedDeletion"}),(!e.inList&&t.inList||t.inList&&e.listLevel!==t.listLevel)&&r.push({key:"listItem",vars:{level:t.listLevel+1}}),r}function se(e){let t=Number(e);if(Number.isFinite(t))return t;let r=0xcbf29ce484222325n;for(let n of new TextEncoder().encode(e))r=(r^BigInt(n))*0x100000001b3n,r&=0xffffffffffffffffn;return Number(r&(1n<<53n)-1n)}function De(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function On(e){let t=typeof e.story=="string"?[e.story]:[],r=Array.isArray(e.rows)?e.rows:[];for(let n of r){let i=De(n),s=i&&Array.isArray(i.cells)?i.cells:[];for(let o of s){let a=De(o)?.story;typeof a=="string"&&t.push(a);}}return t}function _n(e){let t=e.storyIds(),r=new Map,n=new Set;for(let o of t){let a=[];try{for(let l of e.storySegments(o))if(l.kind==="embed")for(let c of On(l.payload))a.push(c),n.add(c);}catch{}r.set(o,a);}let i=new Map,s=(o,a,l)=>{if(!(l.has(o)||i.has(o))){l.add(o),i.set(o,a);for(let c of r.get(o)??[])s(c,a,l);l.delete(o);}};t.includes("body")&&s("body",{story:"body"},new Set);for(let o of t)!o.startsWith("hf:")||n.has(o)||s(o,{story:o,hfRid:o.slice(3)},new Set);return i}function Xn(e,t,r,n,i){let s=Array.isArray(t.rows)?t.rows:[],o=r+1;for(let a of s){let l=De(a),c=l&&Array.isArray(l.cells)?l.cells:[],p=o+1;for(let g of c){let y=De(g),u=typeof y?.story=="string"?y.story:null,h=u?Xe(e,u,p+1,n,i):0;p+=h+2;}o=p+1;}return o+1-r}function Xe(e,t,r,n,i){if(i.has(t))throw new Error(`recursive yrs story: ${t}`);i.add(t);try{let s=r,o=r,a=0,l=!0;for(let c of e.storySegments(t)){if(c.kind==="text"){a+=c.text.length,l=!1;continue}if(c.kind==="pilcrow"){let p=o+a+2;n.set(c.paraId,{pmStart:o,pmEnd:p}),s=p,o=s,a=0,l=!0;continue}if(c.embedKind==="table"&&l){s+=Xn(e,c.payload,s,n,i),o=s;continue}if(c.embedKind==="blockSdt"&&l){let p=typeof c.payload.story=="string"?c.payload.story:null,g=p?Xe(e,p,s+1,n,i):0;s+=g+2,o=s;continue}if(l&&(c.embedKind==="pageBreak"||c.embedKind==="columnBreak")){s+=1,o=s;continue}a+=1,l=!1;}return s-r}finally{i.delete(t);}}function $n(e){let t=new Map,r=_n(e),n=o=>{let a=r.get(o)?.story;if(!a)return null;if(t.has(a))return t.get(a)??null;try{let l=new Map;return Xe(e,a,0,l,new Set),t.set(a,l),l}catch{return t.set(a,null),null}},i=o=>{let a=r.get(o.story);if(!a)return null;let l=n(o.story)?.get(o.paraId);if(!l)return null;let c=Math.max(0,l.pmEnd-l.pmStart-2),p=Math.min(Math.max(0,Math.trunc(o.offset)),c);return {story:o.story,position:l.pmStart+1+p,...a.hfRid?{hfRid:a.hfRid}:{}}};return {locToDisplayPoint:i,storyOffsetToDisplayPoint:(o,a)=>{if(!r.has(o))return null;let l=Math.max(0,Math.trunc(a));try{for(let c of e.paragraphs(o)){let p=e.locateParagraph(o,c.paraId);if(!(l<p.start||l>p.end))return i({story:o,paraId:c.paraId,offset:Math.min(l-p.start,p.end-p.start)})}}catch{return null}return null}}}function $e(e,t){let{doc:r,schema:n}=e.state,i=n.marks.comment,s=n.marks.insertion,o=n.marks.deletion;!i&&!s&&!o||r.descendants((a,l)=>{let c=a.attrs;if(c){let p=[c.trIns,c.trDel,c.pPrIns,c.pPrDel];for(let h of p){let D=h?.revisionId;typeof D=="number"&&t(`revision-${D}`,l);}let y=c.cellMarker?.info?.revisionId;typeof y=="number"&&t(`revision-${y}`,l);let u=[c.pPrChange,c.trPrChange,c.tcPrChange,c.tblPrChange];for(let h of u)if(Array.isArray(h))for(let D of h){let k=D?.info?.id;typeof k=="number"&&t(`revision-${k}`,l);}}if(a.isInline)for(let p of a.marks){let g=null;i&&p.type===i?g=`comment-${p.attrs.commentId}`:(s&&p.type===s||o&&p.type===o)&&(g=`revision-${p.attrs.revisionId}`),g&&t(g,l);}});}function Jn(e,t,r){let n=new Map;if(!e?.state)return n;let i=oe(t),s=new Set;return $e(e,(o,a)=>{if(s.has(o))return;s.add(o);let l=t.anchorRect(a);if(!l)return;let c=r?r(l):(i[l.pageIndex]??0)+l.y;c!=null&&n.set(o,c);}),n}function Qn(e,t,r){if(!e.hfRid)return t.anchorRect(e.position);let n=r?.get(e.hfRid);return n?t.hfAnchorRects(n,e.hfRid,e.position)[0]??null:null}function Wn(e,t,r,n,i,s,o){let a=new Map,l=oe(i),c=(p,g)=>{if(!g||a.has(p))return a.has(p);let y=Qn(g,i,s);if(!y)return false;let u=o?o(y):(l[y.pageIndex]??0)+y.y;return u==null?false:(a.set(p,u),true)};for(let p of t){let g=`comment-${p}`;try{for(let y of e.resolveComment(String(p)))if(c(g,n.storyOffsetToDisplayPoint(y.story,y.start)))break}catch{}}for(let p of r)c(`revision-${se(p.revisionId)}`,n.locToDisplayPoint({story:p.story,...p.range.start}));return a}function Kn(e,t,r,n){let i=oe(t);for(let{region:s,rId:o,view:a}of e)$e(a,(l,c)=>{if(r.has(l))return;let p=t.hfAnchorRects(s,o,c)[0];if(!p)return;let g=n?n(p):(i[p.pageIndex]??0)+p.y;g!=null&&r.set(l,g);});return r}function Vn(e,t){let r=e.map(o=>{let a=t.locToDisplayPoint({story:o.range.story,...o.range.start}),l=t.locToDisplayPoint({story:o.range.story,...o.range.end}),c=a?.position??0,p=Math.max(c,l?.position??c);return {type:o.kind==="pPrIns"?"paragraphMarkInsertion":o.kind==="pPrDel"?"paragraphMarkDeletion":o.kind==="pPrChange"?"paragraphPropertiesChanged":o.kind==="trIns"?"rowInserted":o.kind==="trDel"?"rowDeleted":o.kind==="tableIns"?"tableInserted":o.kind==="tableDel"?"tableDeleted":o.kind,text:o.preview,author:o.author,date:o.date||void 0,from:c,to:p,revisionId:se(o.revisionId),...a?.hfRid?{hfRid:a.hfRid}:{}}}),n=new Map;for(let o of r){let a=n.get(o.revisionId)??[];a.push(o),n.set(o.revisionId,a);}let i=[...n.values()].map(o=>{let a=Math.min(...o.map(u=>u.from)),l=Math.max(...o.map(u=>u.to)),c=o.filter(u=>u.type==="insertion"),p=o.filter(u=>u.type==="deletion");if(c.length>0&&p.length>0)return {...c[0],type:"replacement",text:c.map(h=>h.text).join(""),deletedText:p.map(h=>h.text).join(""),from:a,to:l};let g=o.find(u=>u.type==="insertion"||u.type==="deletion")??o[0],y=o.filter(u=>u.type===g.type).map(u=>u.text).join("");return {...g,text:y,from:a,to:l}}),s=[];for(let o=0;o<i.length;o+=1){let a=i[o],l=i[o+1];a.type==="deletion"&&l?.type==="insertion"&&a.author===l.author&&a.date===l.date&&a.to===l.from&&a.hfRid===l.hfRid?(s.push({type:"replacement",text:l.text,deletedText:a.text,author:a.author,date:a.date,from:a.from,to:l.to,revisionId:a.revisionId,insertionRevisionId:l.revisionId,...a.hfRid?{hfRid:a.hfRid}:{}}),o+=1):s.push(a);}return {entries:s,commentToRevision:new Map}}function zn(e,t){let r=t.kind??"body";if(r==="body")return {kind:r,primitives:e.primitives};let n=r==="header"?e.header:e.footer;return !n||n.kind!==r||t.rId&&n.rId!==t.rId?null:{kind:r,rId:n.rId,primitives:n.primitives}}function jn(e){switch(e.kind){case "text":return c(e);case "glyphRun":return d(e);case "rect":case "image":case "shape":case "decoration":return {x:e.x,y:e.y,w:e.w,h:e.h};case "line":return {x:Math.min(e.x1,e.x2),y:Math.min(e.y1,e.y2),w:Math.abs(e.x2-e.x1),h:Math.abs(e.y2-e.y1)}}}function Un(e){let t=jn(e),r=e.clipGroup?.clip;if(!r)return t;let n=r.x??0,i=r.y??0,s=n+Math.max(0,r.w??0),o=i+Math.max(0,r.h??0),a=Math.max(t.x,n),l=Math.max(t.y,i),c=Math.min(t.x+t.w,s),p=Math.min(t.y+t.h,o);return c<a||p<l?null:{x:a,y:l,w:c-a,h:p-l}}function qn(e){return e.kind==="text"||e.kind==="glyphRun"?e.text:e.kind==="image"?e.altText??"":""}function Zn(e,t,r){return t>=e.x&&t<=e.x+e.w&&r>=e.y&&r<=e.y+e.h}function ei(e,t,r,n,i={kind:"body"}){let s=e.pages[t];if(!s)return null;let o=zn(s,i);if(!o)return null;for(let a=o.primitives.length-1;a>=0;a--){let l=o.primitives[a];if(l.kind==="line"||!l.href||l.hiddenObject)continue;let c=Un(l);if(c&&Zn(c,r,n))return {pageIndex:t,region:o.kind,rId:o.rId,href:l.href,tooltip:l.linkTitle??l.tooltip,displayText:qn(l)||l.href,rect:c}}return null}var $=7.5,q=16,Lt=320,ti=30,ni=200,ii=24,ri=10,oi=10,si=24;function Rt(e){let t;switch(e.kind){case "text":t=c(e);break;case "glyphRun":t=d(e);break;case "rect":case "image":case "shape":case "decoration":t={x:e.x,y:e.y,w:e.w,h:e.h};break;case "line":t={x:Math.min(e.x1,e.x2),y:Math.min(e.y1,e.y2),w:Math.abs(e.x2-e.x1),h:Math.abs(e.y2-e.y1)};break}let r=Qe(e);return r?ai(t,r)??{x:r.x,y:r.y,w:0,h:0}:t}function Qe(e){let t=e.clipGroup?.clip;return t?{x:t.x??0,y:t.y??0,w:Math.max(0,t.w??0),h:Math.max(0,t.h??0)}:null}function ai(e,t){let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),i=Math.min(e.x+e.w,t.x+t.w),s=Math.min(e.y+e.h,t.y+t.h);return i<r||s<n?null:{x:r,y:n,w:i-r,h:s-n}}function Dt(e,t,r){if(e.docStart!=null){let n=t(e.docStart);if(n!=null){let i={tableKey:n,docStartSample:e.docStart};return e.table?.tableId&&!r.has(e.table.tableId)&&r.set(e.table.tableId,i),i}}return e.table?.tableId?r.get(e.table.tableId)??null:null}function vt(e,t,r){let n=e.table?.tableId;if(!n)return null;let i=t.get(n);return i?r.get(i.tableKey)??null:null}function li(e,t,r,n){let i=new Map;for(let o of t){if(o.kind==="line")continue;let a=o.cell;if(!a)continue;let l=Dt(o,r,n);if(!l)continue;let{tableKey:c,docStartSample:p}=l,g=Rt(o),y=Qe(o),u=y??g,h=i.get(c);if(h||(h={tableKey:c,docStartSample:p,contentMinX:u.x,contentMinY:u.y,contentMaxX:u.x+u.w,contentMaxY:u.y+u.h,exactLeftX:[],exactBottomY:[],exactClipLeftX:[],exactClipBottomY:[],rows:new Map},i.set(c,h)),p<h.docStartSample&&(h.docStartSample=p),h.contentMinX=Math.min(h.contentMinX,u.x),h.contentMinY=Math.min(h.contentMinY,u.y),h.contentMaxX=Math.max(h.contentMaxX,u.x+u.w),h.contentMaxY=Math.max(h.contentMaxY,u.y+u.h),y&&(h.exactClipLeftX.push(y.x),h.exactClipBottomY.push(y.y+y.h)),!a.continuation){let D=h.rows.get(a.row);D?(D.top=Math.min(D.top,u.y),D.bottom=Math.max(D.bottom,u.y+u.h)):h.rows.set(a.row,{top:u.y,bottom:u.y+u.h});}}if(i.size===0)return [];for(let o of t){if(o.kind!=="line"||o.role!=="table-border"&&o.role!=="table-cut")continue;let a=vt(o,n,i);if(!a){let p=(o.x1+o.x2)/2,g=(o.y1+o.y2)/2,y=1/0;for(let u of i.values()){let h=p>=u.contentMinX-q&&p<=u.contentMaxX+q,D=g>=u.contentMinY-q&&g<=u.contentMaxY+q;if(!h||!D)continue;let k=Math.max(0,u.contentMinX-p,p-u.contentMaxX),v=Math.max(0,u.contentMinY-g,g-u.contentMaxY),L=k+v;L<y&&(y=L,a=u);}}if(!a)continue;let l=Math.abs(o.x1-o.x2)<.5,c=Math.abs(o.y1-o.y2)<.5;l&&a.exactLeftX.push(Math.min(o.x1,o.x2)),c&&a.exactBottomY.push(Math.max(o.y1,o.y2));}let s=[];for(let o of i.values()){if(o.rows.size===0)continue;let a=o.exactLeftX.length>0||o.exactClipLeftX.length>0,l=a?Math.min(...o.exactLeftX,...o.exactClipLeftX):o.contentMinX-$,c=o.exactBottomY.length>0||o.exactClipBottomY.length>0?Math.max(...o.exactBottomY,...o.exactClipBottomY):o.contentMaxY,p=[...o.rows.entries()].map(([g,y])=>({rowIndex:g,top:y.top,bottom:y.bottom})).sort((g,y)=>g.rowIndex-y.rowIndex);s.push({pageIndex:e,tableKey:o.tableKey,docStartSample:o.docStartSample,originX:l,originY:o.contentMinY,bottomY:c,originExact:a,rowBands:p});}return s}function ci(e,t){let r=[],n=Ke(e,t,{kind:"body"});for(let i of e.pages)r.push(...li(i.pageIndex,i.primitives,t,n));return r}function We(e,t){let r=t.kind??"body";if(r==="body")return {kind:r,primitives:e.primitives};let n=r==="header"?e.header:e.footer;return !n||n.kind!==r||t.rId&&n.rId!==t.rId?null:{kind:r,rId:n.rId,primitives:n.primitives}}function Ke(e,t,r){let n=new Map;for(let i of e.pages){let s=We(i,r);if(s)for(let o of s.primitives){if(!o.cell||!o.table?.tableId||o.docStart==null)continue;let a=t(o.docStart);if(a==null)continue;let l=n.get(o.table.tableId);(!l||o.docStart<l.docStartSample)&&n.set(o.table.tableId,{tableKey:a,docStartSample:o.docStart});}}return n}function Ve(e,t){return `${e}:${t}`}function di(e,t,r,n){let i=Ve(t.row,t.col),s=e.cells.get(i);s?(s.minX=Math.min(s.minX,r.x),s.minY=Math.min(s.minY,r.y),s.maxX=Math.max(s.maxX,r.x+r.w),s.maxY=Math.max(s.maxY,r.y+r.h),s.rowSpan=Math.max(s.rowSpan,t.rowSpan),s.colSpan=Math.max(s.colSpan,t.colSpan),n&&(s.exactClip=n)):e.cells.set(i,{row:t.row,col:t.col,rowSpan:t.rowSpan,colSpan:t.colSpan,minX:r.x,minY:r.y,maxX:r.x+r.w,maxY:r.y+r.h,exactClip:n??void 0});}function It(e,t,r){let n=new Map;for(let i of e){if(i.kind==="line")continue;let s=i.cell;if(!s)continue;let o=Dt(i,t,r);if(!o)continue;let a=o.tableKey,l=Rt(i),c=n.get(a);c||(c={tableKey:a,contentMinX:l.x,contentMinY:l.y,contentMaxX:l.x+l.w,contentMaxY:l.y+l.h,cells:new Map,verticalLines:[],horizontalLines:[]},n.set(a,c)),c.contentMinX=Math.min(c.contentMinX,l.x),c.contentMinY=Math.min(c.contentMinY,l.y),c.contentMaxX=Math.max(c.contentMaxX,l.x+l.w),c.contentMaxY=Math.max(c.contentMaxY,l.y+l.h),di(c,s,l,Qe(i));}if(n.size===0)return [];for(let i of e){if(i.kind!=="line"||i.role!=="table-border"&&i.role!=="table-cut")continue;let s=Math.abs(i.x1-i.x2)<.5,o=Math.abs(i.y1-i.y2)<.5;if(!s&&!o)continue;let a=Math.min(i.x1,i.x2),l=Math.max(i.x1,i.x2),c=Math.min(i.y1,i.y2),p=Math.max(i.y1,i.y2),g=vt(i,r,n);if(g){s?g.verticalLines.push(a):g.horizontalLines.push(c);continue}for(let y of n.values())if(s){if(!(p>=y.contentMinY-q&&c<=y.contentMaxY+q))continue;let h=a;Math.max(0,y.contentMinX-h,h-y.contentMaxX)<=Lt&&y.verticalLines.push(h);}else if(o){if(!(l>=y.contentMinX-q&&a<=y.contentMaxX+q))continue;let h=c;Math.max(0,y.contentMinY-h,h-y.contentMaxY)<=Lt&&y.horizontalLines.push(h);}}return [...n.values()]}function ae(e){let t=[];for(let r of [...e].sort((n,i)=>n-i))(t.length===0||Math.abs(t[t.length-1]-r)>.5)&&t.push(r);return t}function St(e){let t=ae([...e.cells.values()].map(i=>i.row)),r=ae(e.horizontalLines),n=new Map;if(t.length>0&&r.length>=t.length+1)for(let i=0;i<t.length;i++)n.set(t[i],r[i]),n.set(t[i]+1,r[i+1]);return n}function Je(e){if(!e)return null;if(e.exactClip)return e.exactClip;let t=e.minX-$,r=e.minY-$;return {x:t,y:r,w:Math.max(1,e.maxX-e.minX+$*2),h:Math.max(1,e.maxY-e.minY+$*2)}}function ui(e,t){let r=1/0,n=-1/0;for(let i of e.cells.values())i.row===t&&(r=Math.min(r,i.exactClip?.y??i.minY-$),n=Math.max(n,i.exactClip?i.exactClip.y+i.exactClip.h:i.maxY+$));return !Number.isFinite(r)||!Number.isFinite(n)||n<=r?null:{top:r,bottom:n}}function mi(e,t,r){let n=Je(e.cells.get(Ve(t,r)));return n?{left:n.x,right:n.x+n.w,top:n.y,bottom:n.y+n.h}:null}function pi(e,t,r,n={kind:"body"}){if(t.length===0)return [];let i=new Map;for(let a of t){let l=i.get(a.tableKey);l?l.push(a):i.set(a.tableKey,[a]);}let s=[],o=Ke(e,r,n);for(let a of e.pages){let l=We(a,n);if(!l)continue;let c=It(l.primitives,r,o);for(let p of c){let g=i.get(p.tableKey);if(!g)continue;let y=ae(p.verticalLines),u=St(p);for(let h of g){let D=p.cells.get(Ve(h.row,h.col)),k=y[h.col],v=y[h.col+h.colSpan],L=u.get(h.row),E=u.get(h.row+h.rowSpan),B=true;if(k==null||v==null||v<=k){let w=D?.exactClip??Je(D);if(!w)continue;k=w.x,v=w.x+w.w,B=D?.exactClip!=null;}if(L==null||E==null||E<=L){let w=D?.exactClip??Je(D);if(!w)continue;L=w.y,E=w.y+w.h,B&&(B=D?.exactClip!=null);}s.push({pageIndex:a.pageIndex,tableKey:p.tableKey,row:h.row,col:h.col,rowSpan:h.rowSpan,colSpan:h.colSpan,x:k,y:L,w:Math.max(1,v-k),h:Math.max(1,E-L),exact:B,region:l.kind,rId:l.rId});}}}return s}function fi(e){let{list:t,pageIndex:r,x:n,y:i,canvasRect:s,pageSize:o,tableKeyOf:a,cellPmPosOf:l,region:c={kind:"body"},edgeProximity:p=ti}=e,g=t.pages[r];if(!g)return null;let y=We(g,c);if(!y)return null;let u=o.width>0?s.width/o.width:1,h=o.height>0?s.height/o.height:1,D=(L,E)=>({clientX:s.left+L*u,clientY:s.top+E*h}),k=Ke(t,a,c),v=It(y.primitives,a,k);for(let L of v){let E=ae(L.verticalLines),B=St(L),w=ae([...L.cells.values()].map(H=>H.row));if(w.length===0)continue;let N=E[0]??L.contentMinX-$,ee=E[E.length-1]??L.contentMaxX+$,T=B.get(w[0])??L.contentMinY-$,Y=w[w.length-1],P=B.get(Y+1)??L.contentMaxY+$,Z=n<N+p&&n>=N-p,le=i<T+p&&i>=T-p;if(!(!Z&&!le)){if(Z&&i>=T-p&&i<=P)for(let H of w){let te=B.get(H),C=B.get(H+1),O=te==null||C==null?ui(L,H):null,_=te??O?.top,J=C??O?.bottom;if(_==null||J==null||J<=_||i<_||i>J)continue;let X=[...L.cells.values()].filter(z=>z.row===H).sort((z,ve)=>z.col-ve.col)[0];if(!X)continue;let V=l(L.tableKey,H,X.col);if(!V)continue;let U=D(N,_+(J-_)/2);return {type:"row",clientX:U.clientX-ii,clientY:U.clientY-ri,cellPmPos:V}}if(le&&n>=N-p&&n<=ee){let H=w[0],te=[...L.cells.values()].filter(C=>C.row===H).sort((C,O)=>C.col-O.col);for(let C of te){let O=E[C.col],_=E[C.col+C.colSpan],J=O==null||_==null?mi(L,C.row,C.col):null,X=O??J?.left,V=_??J?.right;if(X==null||V==null||V<=X||n<X||n>V)continue;let U=l(L.tableKey,C.row,C.col);if(!U)continue;let z=D(X+(V-X)/2,T);return {type:"column",clientX:z.clientX-oi,clientY:z.clientY-si,cellPmPos:U}}}}}return null}var lr=tt;export{Fn as CANVAS_PAGES_PADDING_PX,Hn as CANVAS_PAGE_GAP_PX,ni as DISPLAY_LIST_TABLE_INSERT_HIDE_DELAY_MS,R as MIRROR_CLASS_NAMES,K as RustDisplayListSourceError,pn as applyInteractiveSdtFocus,yn as buildInteractiveOverlayPage,en as buildMirrorPage,Mn as buildRustDisplayFrame,bt as buildRustDisplayList,oe as canvasPageTops,Pn as captureInlinePositionEmuFromDisplayList,Yn as computeA11yAnnouncements,Jn as computeAnchorPositionsFromDisplayList,Wn as computeAnchorPositionsFromYrs,Gn as createCanvasImageResolver,Cn as createDisplayListQueries,$n as createYrsSidebarProjection,lr as demoDisplayList,pi as deriveDisplayListSelectedCellRects,ci as deriveDisplayListTableFragments,fi as detectDisplayListTableInsertHover,ht as encodeDisplayListFrameExtras,Vn as extractTrackedChangesFromYrs,ei as findDisplayListHyperlinkAtPoint,Ye as findImagePrimitiveAtPoint,Ne as findImagePrimitiveByDocPos,En as isDisplayListQuerySourceDead,Zt as loadGlyphOutlineProvider,Ge as loadRustDisplayListQueryEngine,Kn as mergeHfAnchorPositionsFromDisplayList,An as onDisplayListQuerySourceFailure,Nn as snapshotFromSelectionContext,$e as visitAnchorKeys,se as yrsIdToNumericId};
|