@betteroffice/docx 0.0.3 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/README.md +22 -8
  2. package/dist/chunk-24DL53QL.mjs +1 -0
  3. package/dist/chunk-5F6DLQZP.mjs +1 -0
  4. package/dist/chunk-BUZ2X5CT.mjs +16 -0
  5. package/dist/chunk-CTBUQRYQ.mjs +1 -0
  6. package/dist/{chunk-B4IR6YP4.mjs → chunk-GHEHBYQK.mjs} +1 -1
  7. package/dist/{chunk-NJHOPXZW.mjs → chunk-HLDJMU3R.mjs} +1 -1
  8. package/dist/chunk-HTDNSQ44.mjs +1 -0
  9. package/dist/{chunk-IFT6DUJX.mjs → chunk-LTVVQMHB.mjs} +1 -1
  10. package/dist/chunk-PI2I3TO5.mjs +57 -0
  11. package/dist/chunk-TMHG7OAZ.mjs +1 -0
  12. package/dist/chunk-VRGUAKOC.mjs +1 -0
  13. package/dist/collaboration/index.d.mts +32 -8
  14. package/dist/collaboration/index.mjs +1 -1
  15. package/dist/{content-MOZ6hKP4.d.mts → content-DrqzbIr7.d.mts} +582 -666
  16. package/dist/core.d.mts +7 -7
  17. package/dist/core.mjs +1 -1
  18. package/dist/{displayListQueries-BJlo7Jkz.d.mts → displayListQueries-DGDR-OWc.d.mts} +98 -50
  19. package/dist/docx/index.d.mts +5 -5
  20. package/dist/docx/index.mjs +1 -1
  21. package/dist/editor/index.d.mts +8 -8
  22. package/dist/{fontLoader-aSewHMKF.d.mts → fontLoader-DnixuYST.d.mts} +127 -2
  23. package/dist/{formatting-D1EPSaJP.d.mts → formatting-BqrFPeev.d.mts} +85 -203
  24. package/dist/{frameDelta-D965X8yK.d.mts → frameDelta-DMgR8n13.d.mts} +17 -10
  25. package/dist/generated/edit/docx_edit_bg.wasm +0 -0
  26. package/dist/generated/layout/docx_layout_bg.wasm +0 -0
  27. package/dist/generated/opc/ooxml_opc_bg.wasm +0 -0
  28. package/dist/generated/parse/docx_parse_bg.wasm +0 -0
  29. package/dist/{index-Dx4Z3lkz.d.mts → index-ImoMd0Ju.d.mts} +97 -67
  30. package/dist/layout/index.d.mts +40 -12
  31. package/dist/layout/index.mjs +1 -1
  32. package/dist/layout/pagination/index.d.mts +4 -4
  33. package/dist/layout/pagination/index.mjs +1 -1
  34. package/dist/layout/render/index.d.mts +33 -77
  35. package/dist/layout/render/index.mjs +1 -1
  36. package/dist/plugin-api/RenderedDomContext.d.mts +7 -7
  37. package/dist/plugin-api/index.d.mts +3 -3
  38. package/dist/plugin-api/resolveItemPositions.d.mts +3 -3
  39. package/dist/{rustDisplayList-BRuZBqdL.d.mts → rustDisplayList-B9dQoLHI.d.mts} +79 -50
  40. package/dist/{rustMeasureSource-D1KsQvVC.d.mts → rustMeasureSource-C0EZB055.d.mts} +5 -2
  41. package/dist/{selectiveSave-CVoajSKE.d.mts → selectiveSave-CRh-_Y_C.d.mts} +3 -3
  42. package/dist/styles/index.d.mts +3 -3
  43. package/dist/{styles-Dn_o3Vo5.d.mts → styles-CMybYYHS.d.mts} +1 -1
  44. package/dist/types/content.d.mts +2 -2
  45. package/dist/types/document.d.mts +7 -7
  46. package/dist/{types-BfqUl2h_.d.mts → types-CXLxVF1t.d.mts} +27 -23
  47. package/dist/utils/comments.d.mts +2 -2
  48. package/dist/utils/index.d.mts +11 -13
  49. package/dist/utils/index.mjs +1 -1
  50. package/dist/utils/stylePreview.d.mts +2 -2
  51. package/dist/utils/units.d.mts +4 -34
  52. package/dist/utils/units.mjs +1 -1
  53. package/dist/wasm-CJHQHBDE.mjs +1 -0
  54. package/dist/wasm-T2CRCO7S.mjs +1 -0
  55. package/dist/wasm-edit.d.mts +524 -168
  56. package/dist/wasm-edit.mjs +1 -1
  57. package/dist/wasm-layout.d.mts +35 -28
  58. package/dist/wasm-layout.mjs +1 -1
  59. package/dist/wasm-opc.mjs +1 -1
  60. package/dist/wasm-parse.mjs +1 -1
  61. package/dist/yrs/index.d.mts +6 -6
  62. package/dist/yrs/index.mjs +1 -1
  63. package/dist/yrs/residentEngineWorker.mjs +1 -1
  64. package/package.json +19 -3
  65. package/dist/chunk-3UBMCDME.mjs +0 -1
  66. package/dist/chunk-AEQOEQJ7.mjs +0 -57
  67. package/dist/chunk-AZ52IWB6.mjs +0 -16
  68. package/dist/chunk-GGEGIQRK.mjs +0 -1
  69. package/dist/chunk-T4EZMUXM.mjs +0 -1
  70. package/dist/chunk-WON6K4FY.mjs +0 -1
  71. package/dist/chunk-Y7RUNRU2.mjs +0 -1
  72. package/dist/wasm-DO3BUV7C.mjs +0 -1
  73. package/dist/wasm-NWXX4H5G.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-D965X8yK.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-D965X8yK.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-BRuZBqdL.mjs';
4
- import { a as DisplayListQueries, b as DisplayListRegionHit, D as DisplayListRect } from '../../displayListQueries-BJlo7Jkz.mjs';
5
- export { c as DisplayListHitRegion, d as DisplayListImageGeometry, e as DisplayListImageRegion, f as DisplayListParagraphGeometry, g as DisplayListQuerySourceState, h as DisplayListVisualLine, L as LocatedImagePrimitive, R as ResidentDisplayListQueryEngine, i as captureInlinePositionEmuFromDisplayList, j as createDisplayListQueries, k as findImagePrimitiveAtPoint, l as findImagePrimitiveByDocPos } from '../../displayListQueries-BJlo7Jkz.mjs';
6
- import { m as YrsLoc, Y as YrsSession, n as YrsRevisionInfo } from '../../index-Dx4Z3lkz.mjs';
1
+ import { a as DisplayPage, b as DisplayPrimitive, D as DisplayList, G as GlyphRunPrimitive, L as LinePrimitive, T as TextRunPrimitive } from '../../frameDelta-DMgR8n13.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-DMgR8n13.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-B9dQoLHI.mjs';
4
+ import { a as DisplayListQueries, b as DisplayListRegionHit, D as DisplayListRect } from '../../displayListQueries-DGDR-OWc.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-DGDR-OWc.mjs';
6
+ import { u as YrsLoc, Y as YrsSession, v as YrsRevisionInfo } from '../../index-ImoMd0Ju.mjs';
7
7
  import { TrackedChangeEntry } from '../../utils/comments.mjs';
8
- import '../../content-MOZ6hKP4.mjs';
9
- import '../../formatting-D1EPSaJP.mjs';
8
+ import '../../formatting-BqrFPeev.mjs';
9
+ import '../../content-DrqzbIr7.mjs';
10
10
  import '../../docx/wrapTypes.mjs';
11
- import '../../types-BfqUl2h_.mjs';
11
+ import '../../types-CXLxVF1t.mjs';
12
12
  import '../pagination/index.mjs';
13
13
  import '../../types/document.mjs';
14
- import '../../styles-Dn_o3Vo5.mjs';
14
+ import '../../styles-CMybYYHS.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 PM doc identified by
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 (display-list contract gap — see openspec/changes/rust-canvas-engine).
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 PM-derived content-control focus to the interactive overlay boxes. */
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 PM-shaped position space used by the display list. */
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 PM-free projection from live yrs stories to display positions.
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 PM doc and reports every comment /
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 PM doc and report every comment / tracked-change anchor as
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 variant of the adapters' layout-based anchor derivation for
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 EditorView or ProseMirror document.
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 PM `before` position, resolved against the live doc). Primitives whose
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 PM doc's `columnWidths` (twips) anchored at `originX`,
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
- * `CanvasHfSelectionOverlay`), but HF *table* resize handles remain a documented
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 PM doc. Closing it needs
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 PM cell-start position. */
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 PM CellSelection as
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 as the default provider value until the Rust
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-3UBMCDME.mjs';import {b}from'../../chunk-TTRUPDAB.mjs';var We={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 _t(){return import('../../wasm-DO3BUV7C.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 Xt(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(je(a,r,0));oe(o,e.primitives,r,0,n);for(let a of e.noteAreas??[])o.appendChild(Zt(a,e,r,n));for(let a of [e.header,e.footer])a&&s.appendChild($t(a,e,r,n));for(let a of (e.pageBorders??[]).filter(l=>l.zOrder!=="back"))s.appendChild(je(a,r,0));return s}function $t(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`,oe(n,e.primitives,r,-e.y,i),n}function oe(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(ge(o,r,i,n));continue}let l=o.table,c=l?.tableId!==void 0?`table:${l.tableId}#${l.rowStart??0}`:a,d=s.get(c);if(!d){let p=r.createElement("div");p.dataset.blockId=String(l?.tableId??a),p.style.position="absolute",p.style.left="0",p.style.top="0",e.appendChild(p),d={el:p,prims:[]},s.set(c,d);}d.prims.push(o);}for(let o of s.values())Jt(o,r,i,n);Wt(s);}function Jt(e,t,r,i){let{el:n,prims:s}=e;if(!s.some(y=>y.cell!==void 0||y.structuralRevision?.scope==="table"||y.structuralRevision?.scope==="row"||y.structuralRevision?.scope==="cell")){Ve(n,s,t,r,i);return}n.className=D.table,n.setAttribute("role","table");let a=s.find(y=>y.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=fe(s,"table");l&&ye(n,l),Ae(n,s.find(y=>y.sdt!==void 0)?.sdt);for(let y of s)y.cell===void 0&&n.appendChild(ge(y,t,r,i));let c=new Map,d=0,p=0;for(let y of s){if(y.cell===void 0)continue;let{row:m,col:h}=y.cell;d=Math.max(d,m+(y.cell.rowSpan??1)),p=Math.max(p,h+(y.cell.colSpan??1));let R=c.get(m);R||(R=new Map,c.set(m,R));let k=R.get(h);k||(k={ref:y.cell,prims:[]},R.set(h,k)),k.prims.push(y);}n.setAttribute("aria-rowcount",String(a?.rowCount??d)),n.setAttribute("aria-colcount",String(a?.columnCount??p));for(let y 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(y+1));let h=fe(s,"row",y);h&&ye(m,h),m.style.position="absolute",m.style.left="0",m.style.top="0",n.appendChild(m);let R=c.get(y);for(let k of [...R.keys()].sort((v,b)=>v-b)){let v=R.get(k),b=t.createElement("div");b.className=D.tableCell,b.setAttribute("role",v.ref.isHeader?"columnheader":"cell"),b.setAttribute("aria-colindex",String(k+1)),v.ref.cellId&&(b.id=v.ref.cellId),v.ref.headerIds?.length&&b.setAttribute("aria-labelledby",v.ref.headerIds.join(" ")),v.ref.repeatedHeader&&(b.dataset.repeatedHeader="true"),v.ref.noWrap&&(b.dataset.noWrap="true");let M=v.ref.rowSpan??1,A=v.ref.colSpan??1;M>1&&b.setAttribute("aria-rowspan",String(M)),A>1&&b.setAttribute("aria-colspan",String(A));let w=fe(v.prims,"cell",y,k);w&&ye(b,w),v.ref.continuation&&(b.dataset.vmergeContinuation="true"),b.style.position="absolute",b.style.left="0",b.style.top="0";let _=new Map,W=[];for(let P of v.prims){let X=P.blockKey??P.blockId;if(X===void 0){W.push(P);continue}let B=_.get(X);B?B.push(P):_.set(X,[P]);}for(let P of Me(W))b.appendChild(ge(P,t,r,i));for(let[P,X]of _){let B=t.createElement("div");B.dataset.blockId=String(P),B.style.position="absolute",B.style.left="0",B.style.top="0",Ve(B,X,t,r,i),b.appendChild(B);}Qt(b,v.prims),tt(b,v.prims),e.cells.push({el:b,bounds:et(v.prims)}),m.appendChild(b);}}Pe(n,s);}function Ve(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 Me(t))e.appendChild(ge(c,r,i,n));let o=fe(t,"pmark");o&&ye(e,o),Kt(e,t,r,i),Ae(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))),tt(e,t),zt(e,t);}function Kt(e,t,r,i){Pe(e,t);let n=Number(e.dataset.docStart),s=Number(e.dataset.docEnd),o=t.map(p=>p.fragmentDocStart).filter(p=>Number.isFinite(p)),a=t.map(p=>p.fragmentDocEnd).filter(p=>Number.isFinite(p)),l=o.length>0?Math.min(...o):void 0,c=a.length>0?Math.max(...a):void 0,d=l??(Number.isFinite(n)&&n===s&&n>0?n-1:void 0);if(d!==void 0&&(e.dataset.docStart=String(d)),c!==void 0&&(e.dataset.docEnd=String(c)),d!==void 0&&!t.some(p=>p.docStart===d)){let p=Me(t).find(m=>we(m)!==void 0),y=p?we(p):void 0;if(y){let m=r.createElement("span");m.className="layout-mirror-structural-anchor",m.dataset.docStart=String(d),m.dataset.docEnd=String(d),j(m,y,i),e.insertBefore(m,e.firstChild);}}}function Qt(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&&Pe(e,t);}function Wt(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=et(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&&Vt(o,a,c.bounds));l.sort((c,d)=>ze(c.bounds)-ze(d.bounds)),l[0]?.el.appendChild(r.el);}}function Vt(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 et(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}:we(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 we(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 Me(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 tt(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 zt(e,t){let r=t.find(i=>i.ariaLabel||i.ariaDescription||i.decorative||i.hiddenObject||i.groupId);r&&it(e,r);}function Pe(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 fe(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 ge(e$1,t,r,i){switch(e$1.kind){case "text":{let n=Ue(t,e$1,i);return n.className=D.text,n.textContent=e$1.text,j(n,c(e$1),r),n.style.font=e$1.font,qe(n,e$1),Ze(n,e$1),ve(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=Ue(t,e$1,i);return n.className=D.text,n.textContent=e$1.text,j(n,d(e$1),r),n.style.fontSize=`${e$1.size}px`,jt(n,e$1.fallbackFont),qe(n,e$1),Ze(n,e$1),ve(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,j(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),j(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)),nt(n,e$1),n.dataset.relId=e$1.relId,j(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ve(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"),j(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),Ut(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,j(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(n,e$1),n}}}function je(e,t,r){let i=t.createElement("div");return i.className=D.pageBorder,j(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",pe(i,"Top",e.top),pe(i,"Right",e.right),pe(i,"Bottom",e.bottom),pe(i,"Left",e.left),i}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 Ue(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(nt(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 nt(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 jt(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 qe(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 pe(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 ve(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 Ut(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 Ze(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),qt(e,t.inlineSdtWidget),Ae(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)),it(e,t);}function it(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 Ae(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 qt(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 ye(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,ke(t.kind));break;case "row":e.classList.add(D.revisionRow,ke(t.kind));break;case "cell":e.classList.add(D.revisionCell,ke(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 ke(e){return e==="ins"?D.revisionIns:e==="del"?D.revisionDel:D.revisionMerge}function Zt(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);oe(n,e.separatorPrimitives??[],r,-(e.y??0),i);let o=[...e.primitives??[]];for(let a of e.noteIds??[]){let c=`${e.kind??"footnote"}-${a}`,d=o.filter(m=>m.groupId===c);if(d.length===0)continue;for(let m of d){let h=o.indexOf(m);h>=0&&o.splice(h,1);}let p=r.createElement("aside");p.className=D.note,p.id=`oox-${c}`,p.dataset.noteId=String(a),p.setAttribute("role",e.kind==="endnote"?"doc-endnote":"doc-footnote");let y=s.get(a);if(y&&(y.label!==void 0&&(p.dataset.noteLabel=y.label),y.anchorDocStart!==void 0&&(p.dataset.anchorDocStart=String(y.anchorDocStart)),y.anchorDocEnd!==void 0&&(p.dataset.anchorDocEnd=String(y.anchorDocEnd))),oe(p,d,r,-(e.y??0),i),y){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??y.label??String(a);m.setAttribute("aria-label",h),p.appendChild(m);}n.appendChild(p);}return o.length>0&&oe(n,o,r,-(e.y??0),i),n}function en(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 tn=".layout-sdt-widget, .layout-inline-sdt-widget, .layout-sdt-repeat-btn";function nn(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?.(tn)&&(a.preventDefault(),a.stopPropagation());});let n=rn(e),s=on(n);for(let a of [...s.values()].sort(an))i.appendChild(ln(a,r,t.labels));let o=sn(n);for(let a of o.values())i.appendChild(cn(a,r,t.labels));return i}function rn(e){return [...e.primitives,...e.header?.primitives??[],...e.footer?.primitives??[],...(e.noteAreas??[]).flatMap(t=>[...t.separatorPrimitives??[],...t.primitives??[]])]}function on(e){let t=new Map;for(let r of e){let i=ot(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=st(o.rect,i):t.set(s.groupId,{attrs:s,rect:{...i}});}}return t}function sn(e){let t=new Map;for(let r of e){let i=r.inlineSdtWidget,n=ot(r);if(!i||!n)continue;let s=`${i.groupId}:${i.pos}:${i.controlKind??i.kind}`,o=t.get(s);o?o.rect=st(o.rect,n):t.set(s,{attrs:i,rect:{...n}});}return t}function an(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:i,rect:n}=e,s=t.createElement("div");s.className="layout-block-sdt-box layout-canvas-sdt-box",pn(s,i),at(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=un(i.sdtType),l=!i.bound&&!mn(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(rt(t,i,"add","\uFF0B",r?.addRepeatingItem,o)),c.appendChild(rt(t,i,"remove","\u2715",r?.removeRepeatingItem,o)),s.appendChild(c);}return s}function rt(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 cn(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=dn(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",at(o,n),o.style.pointerEvents="auto",o}function dn(e){return e==="dropDownList"||e==="comboBox"?"dropdown":e}function un(e){return e==="checkbox"?"checkbox":e==="dropDownList"||e==="comboBox"?"dropdown":e==="date"?"date":null}function mn(e){return e==="contentLocked"||e==="sdtContentLocked"||e==="sdtLocked"}function pn(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 ot(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 st(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 at(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 Q=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;}},lt=null;function Ee(){return lt??(lt=import('../../wasm-DO3BUV7C.mjs').then(async e=>(await e.preloadLayoutWasm(),{buildDisplayListJson:e.buildDisplayListJson,hitTestRegionsJson:e.hitTestRegionsJson,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,rangeRectsByHandle:e.rangeRectsByHandle,rangeRectsRegionByHandle:e.rangeRectsRegionByHandle}))),lt}function Te(){return Ee()}function fn(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 ct(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 yn=new WeakMap;async function dt(e,t){let r;try{r=t??await Ee();}catch(s){throw new Q("load",s)}let i,n;try{i=fn(e,yn),n=r.buildDisplayListJson(i);}catch(s){throw new Q("build",s)}try{return JSON.parse(n)}catch(s){throw new Q("parse",s)}}async function gn(e,t$1,r=null){let i;try{i=t$1??await Ee();}catch(l){throw new Q("load",l)}if(!i.buildDisplayListFrame)return {displayList:await dt(e,i),frame:null,transport:"json"};let n=ct(e),s$1;try{s$1=i.buildDisplayListFrame(n,r?.frameEpoch??0);}catch(l){throw new Q("build",l)}let o;try{o=s(s$1);}catch(l){throw new Q("decode",l)}let a;try{a=t(r,o);}catch(l){throw new Q("apply",l)}return {displayList:a.displayList,frame:a,transport:"frame-delta-v1"}}function ut(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 Ce(e,t,r="body",i){for(let n of e.pages)for(let s of ut(n,r,i))if(s.docStart===t)return {primitive:s,pageIndex:n.pageIndex,...r!=="body"?{region:r,rId:i}:{}};return null}function Be(e,t,r,i,n="body",s){let o=e.pages[t];if(!o)return null;let a=ut(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 hn(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 He=(()=>{let e=globalThis.FinalizationRegistry;return e?new e(t=>t()):null})(),Ge=new WeakMap;function bn(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 xn(e,t,r){let i=null,n=()=>i??(i=JSON.stringify(e)),s=Ln(t)?t:null,o=s?null:t??null,a=null,l,c,d=new Promise((u,f)=>{l=u,c=f;});d.catch(()=>{});let p=null,y=false,m=false,h=false,R=null;if(r){let u=Ge.get(r);u&&(R=u.hasHandle()?r:u.donor(),u.supersede());}let k=()=>{if(p!==null){try{o?.closeDisplayList?.(p);}catch{}p=null;}},v$1=()=>{let u=R;if(R=null,!u||!o?.updateDisplayList||!o.hasDisplayListUpdate?.())return false;let f=Ge.get(u);if(!f||f.engine()!==o)return false;let g=bn(f,e);if(!g)return false;let x=f.takeHandle();if(x===null)return false;try{return o.updateDisplayList(x,g),p=x,!0}catch(L){try{o.closeDisplayList?.(x);}catch{}return console.warn("[CanvasRenderer] display-list delta update failed; reopening",L),false}},b=()=>{if(!(h||m||y||p!==null||!o)&&!(!o.hasDisplayListSession?.()||!o.openDisplayList)&&(y=true,!v$1()))try{p=o.openDisplayList(n());}catch(u){p=null,console.warn("[CanvasRenderer] display-list session open failed; using JSON-arg queries",u);}};s||o?l():Te().then(u=>{o=u,l();},u=>{a=u instanceof Error?u:new Error(String(u)),c(a),console.warn("[CanvasRenderer] display-list query engine failed to load",a);});let M=(u,f,g)=>{if(!o)return null;if(p===null&&b(),p!==null&&u)try{return u(p)}catch(x){console.warn(`[CanvasRenderer] ${g} session query failed; falling back`,x),k();}try{return f()}catch(x){return a=x instanceof Error?x:new Error(String(x)),console.warn(`[CanvasRenderer] ${g} query failed`,x),null}},A=(u,f,g)=>{if(u===null)return f;try{return JSON.parse(u)}catch(x){return a=x instanceof Error?x:new Error(String(x)),console.warn(`[CanvasRenderer] ${g} returned invalid JSON`,x),f}},w=(u,f)=>{try{return u()}catch(g){return a=g instanceof Error?g:new Error(String(g)),console.warn(`[CanvasRenderer] resident ${f} query failed`,g),null}},_=(u,f,g)=>{if(s)return A(w(()=>s.displayHitTestRegionsJson(u,f,g),"hit_test_regions"),null,"hit_test_regions");let x=M(o?.hitTestRegionsByHandle&&(L=>o.hitTestRegionsByHandle(L,u,f,g)),()=>o.hitTestRegionsJson(n(),u,f,g),"hit_test_regions");return A(x,null,"hit_test_regions")},W=(u,f)=>{if(s)return A(w(()=>s.displayRangeRectsJson(u,f),"range_rects"),[],"range_rects");let g=M(o?.rangeRectsByHandle&&(x=>o.rangeRectsByHandle(x,u,f)),()=>o.rangeRectsJson(n(),u,f),"range_rects");return A(g,[],"range_rects")},P=(u,f,g,x)=>{if(s)return A(w(()=>s.displayRangeRectsRegionJson(u,f,g,x),"range_rects_region"),[],"range_rects_region");if(!o||!o.hasRangeRectsRegion?.())return [];let L=M(o.rangeRectsRegionByHandle&&(I=>o.rangeRectsRegionByHandle(I,u,f,g,x)),()=>o.rangeRectsRegionJson(n(),u,f,g,x),"range_rects_region");return A(L,[],"range_rects_region")},X=(u,f,g)=>{let x=P(u,f,g,g+1);if(x.length>0){let L=new Map;for(let I of x)L.has(I.pageIndex)||L.set(I.pageIndex,{pageIndex:I.pageIndex,x:I.x,y:I.y,width:0,height:I.height});return [...L.values()]}if(g>0){let L=P(u,f,g-1,g);if(L.length>0){let I=new Map;for(let S of L)I.set(S.pageIndex,{pageIndex:S.pageIndex,x:S.x+S.width,y:S.y,width:0,height:S.height});return [...I.values()]}}return []},B=u=>{let f=W(u,u+1);if(f.length>0){let g=f[0];return {pageIndex:g.pageIndex,x:g.x,y:g.y,width:0,height:g.height}}if(u>0){let g=W(u-1,u);if(g.length>0){let x=g[g.length-1];return {pageIndex:x.pageIndex,x:x.x+x.width,y:x.y,width:0,height:x.height}}}return null},ie=u=>{let f=W(u,u+2);return f.length>0?f[0]:B(u)},ce=(u,f,g)=>{let x=P(u,f,g,g+2);if(x.length===0)return X(u,f,g);let L=new Map;for(let I of x)L.has(I.pageIndex)||L.set(I.pageIndex,I);return [...L.values()]},N=(u,f)=>({pageIndex:u,x:f.x,y:f.y,width:f.w,height:f.h}),ee=u=>{let f=e.pages[u];return f?{pageIndex:f.pageIndex,x:0,y:0,width:f.width,height:f.height}:null},T=u=>{let f=e.pages[u],g=f?.contentBounds;return f&&g?{pageIndex:f.pageIndex,x:g.x,y:g.y,width:g.width,height:g.height}:null},V=u=>{let f=e.pages[u];return f?(f.columnBounds??[]).map(g=>({pageIndex:f.pageIndex,x:g.x,y:g.y,width:g.width,height:g.height})):[]},Y=u=>u.paraId?`para:${u.paraId}`:u.blockKey!==void 0?`block-key:${u.blockKey}`:u.blockId!==void 0?`block-id:${u.blockId}`:null,$=u=>u.blockKey??u.blockId,F=null,z=()=>{if(F)return F;let u=new Map;for(let f$1 of e.pages)for(let g of f$1.primitives){let x=Y(g);if(!x||g.docStart===void 0||g.docEnd===void 0)continue;let L=f(g),I=u.get(x);I||(I=new Map,u.set(x,I));let S=I.get(f$1.pageIndex);if(!S){I.set(f$1.pageIndex,{...N(f$1.pageIndex,L),from:g.docStart,to:g.docEnd,blockId:$(g),paraId:g.paraId});continue}let C=Math.min(S.x,L.x),E=Math.min(S.y,L.y),de=Math.max(S.x+S.width,L.x+L.w),ue=Math.max(S.y+S.height,L.y+L.h);S.x=C,S.y=E,S.width=de-C,S.height=ue-E,S.from=Math.min(S.from,g.docStart),S.to=Math.max(S.to,g.docEnd);}return F=new Map([...u].map(([f,g])=>[f,[...g.values()]])),F},Z=u=>{let f=null;for(let g of e.pages)for(let x of g.primitives){let L=Y(x),I=x.docStart,S=x.docEnd;if(!L||I===void 0||S===void 0||u<I||u>S)continue;let C={identity:L,span:Math.max(0,S-I),startsAtPos:I===u};(!f||C.startsAtPos&&!f.startsAtPos||C.startsAtPos===f.startsAtPos&&C.span<f.span)&&(f=C);}return f?z().get(f.identity)??[]:[]},U=1.5,te=null,Je=()=>{if(te)return te;let u=[];for(let f$1 of e.pages){let g=[],x=0;for(let L of f$1.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 I=L.kind==="text"?L.baselineY:L.glyphs.reduce((me,It)=>Math.max(me,It.y),-1/0);if(!Number.isFinite(I))continue;let S=Y(L)??`anonymous:${x++}`,C=f(L),E=g.find(me=>me.identity===S&&Math.abs(me.baseline-I)<=U);if(!E){g.push({identity:S,...N(f$1.pageIndex,C),baseline:I,from:L.docStart,to:L.docEnd,blockId:$(L),paraId:L.paraId});continue}let de=Math.min(E.x,C.x),ue=Math.min(E.y,C.y),Rt=Math.max(E.x+E.width,C.x+C.w),Dt=Math.max(E.y+E.height,C.y+C.h);E.x=de,E.y=ue,E.width=Rt-de,E.height=Dt-ue,E.from=Math.min(E.from,L.docStart),E.to=Math.max(E.to,L.docEnd);}u.push(...g.map(({identity:L,...I})=>I));}return te=u,te},bt=u=>{let f=null;for(let g of Je())u<g.from||u>g.to||(!f||g.to-g.from<f.to-f.from)&&(f=g);return f},Ke=u=>{if(!u)return null;let f=u.primitive.docStart;if(f===void 0)return null;let{primitive:g}=u;return {...u,pos:f,rect:{pageIndex:u.pageIndex,x:g.x,y:g.y,width:g.w,height:g.h}}},xt=(u,f,g,x="body",L)=>Ke(Be(e,u,f,g,x,L)),Lt=(u,f="body",g)=>Ke(Ce(e,u,f,g)),be={},xe={displayList:e,isReady:()=>(s!==null||o!==null)&&a===null,sourceState:()=>a?{status:"error",error:a}:s||o?{status:"ready"}:{status:"loading"},whenReady:()=>d,pageCount:()=>e.pages.length,pageSize:u=>{let f=e.pages[u];return f?{width:f.width,height:f.height}:null},pageBounds:ee,contentBounds:T,columnBounds:V,paragraphRects:Z,visualLines:Je,visualLineAtPosition:bt,imageAtPoint:xt,imageByPos:Lt,hitTestRegions:_,rangeRects:W,hfRangeRects:P,hfCaretRects:X,hfAnchorRects:ce,caretRect:B,anchorRect:ie,sidebarAnchorRect:ie,prime:b,dispose:()=>{h||(h=true,k(),He?.unregister(be));}};return He?.register(xe,k,be),Ge.set(xe,{list:e,pageRevisions:e.pages.map(v),engine:()=>o,hasHandle:()=>p!==null,donor:()=>R,supersede:()=>{m=true;},takeHandle:()=>{let u=p;return u!==null&&(p=null,He?.unregister(be)),u}}),xe}function Ln(e){return typeof e?.displayHitTestRegionsJson=="function"&&typeof e?.displayRangeRectsJson=="function"&&typeof e?.displayRangeRectsRegionJson=="function"}var Rn=16,Dn=24;function se(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 In(){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 Sn(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 vn(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 ae(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 he(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function kn(e){let t=typeof e.story=="string"?[e.story]:[],r=Array.isArray(e.rows)?e.rows:[];for(let i of r){let n=he(i),s=n&&Array.isArray(n.cells)?n.cells:[];for(let o of s){let a=he(o)?.story;typeof a=="string"&&t.push(a);}}return t}function wn(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 kn(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 Mn(e,t,r,i,n){let s=Array.isArray(t.rows)?t.rows:[],o=r+1;for(let a of s){let l=he(a),c=l&&Array.isArray(l.cells)?l.cells:[],d=o+1;for(let p of c){let y=he(p),m=typeof y?.story=="string"?y.story:null,h=m?Fe(e,m,d+1,i,n):0;d+=h+2;}o=d+1;}return o+1-r}function Fe(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 d=o+a+2;i.set(c.paraId,{pmStart:o,pmEnd:d}),s=d,o=s,a=0,l=!0;continue}if(c.embedKind==="table"&&l){s+=Mn(e,c.payload,s,i,n),o=s;continue}if(c.embedKind==="blockSdt"&&l){let d=typeof c.payload.story=="string"?c.payload.story:null,p=d?Fe(e,d,s+1,i,n):0;s+=p+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 Pn(e){let t=new Map,r=wn(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 Fe(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),d=Math.min(Math.max(0,Math.trunc(o.offset)),c);return {story:o.story,position:l.pmStart+1+d,...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 d=e.locateParagraph(o,c.paraId);if(!(l<d.start||l>d.end))return n({story:o,paraId:c.paraId,offset:Math.min(l-d.start,d.end-d.start)})}}catch{return null}return null}}}function Ne(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 d=[c.trIns,c.trDel,c.pPrIns,c.pPrDel];for(let h of d){let R=h?.revisionId;typeof R=="number"&&t(`revision-${R}`,l);}let y=c.cellMarker?.info?.revisionId;typeof y=="number"&&t(`revision-${y}`,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 d of a.marks){let p=null;n&&d.type===n?p=`comment-${d.attrs.commentId}`:(s&&d.type===s||o&&d.type===o)&&(p=`revision-${d.attrs.revisionId}`),p&&t(p,l);}});}function An(e,t,r){let i=new Map;if(!e?.state)return i;let n=se(t),s=new Set;return Ne(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 En(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 Tn(e,t,r,i,n,s,o){let a=new Map,l=se(n),c=(d,p)=>{if(!p||a.has(d))return a.has(d);let y=En(p,n,s);if(!y)return false;let m=o?o(y):(l[y.pageIndex]??0)+y.y;return m==null?false:(a.set(d,m),true)};for(let d of t){let p=`comment-${d}`;try{for(let y of e.resolveComment(String(d)))if(c(p,i.storyOffsetToDisplayPoint(y.story,y.start)))break}catch{}}for(let d of r)c(`revision-${ae(d.revisionId)}`,i.locToDisplayPoint({story:d.story,...d.range.start}));return a}function Cn(e,t,r,i){let n=se(t);for(let{region:s,rId:o,view:a}of e)Ne(a,(l,c)=>{if(r.has(l))return;let d=t.hfAnchorRects(s,o,c)[0];if(!d)return;let p=i?i(d):(n[d.pageIndex]??0)+d.y;p!=null&&r.set(l,p);});return r}function Bn(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,d=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:d,revisionId:ae(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"),d=o.filter(m=>m.type==="deletion");if(c.length>0&&d.length>0)return {...c[0],type:"replacement",text:c.map(h=>h.text).join(""),deletedText:d.map(h=>h.text).join(""),from:a,to:l};let p=o.find(m=>m.type==="insertion"||m.type==="deletion")??o[0],y=o.filter(m=>m.type===p.type).map(m=>m.text).join("");return {...p,text:y,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 Hn(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 Gn(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 Fn(e){let t=Gn(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),d=Math.min(t.y+t.h,o);return c<a||d<l?null:{x:a,y:l,w:c-a,h:d-l}}function Nn(e){return e.kind==="text"||e.kind==="glyphRun"?e.text:e.kind==="image"?e.altText??"":""}function Yn(e,t,r){return t>=e.x&&t<=e.x+e.w&&r>=e.y&&r<=e.y+e.h}function On(e,t,r,i,n={kind:"body"}){let s=e.pages[t];if(!s)return null;let o=Hn(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=Fn(l);if(c&&Yn(c,r,i))return {pageIndex:t,region:o.kind,rId:o.rId,href:l.href,tooltip:l.linkTitle??l.tooltip,displayText:Nn(l)||l.href,rect:c}}return null}var O=7.5,q=16,mt=320,_n=30,Xn=200,$n=24,Jn=10,Kn=10,Qn=24;function pt(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=Oe(e);return r?Wn(t,r)??{x:r.x,y:r.y,w:0,h:0}:t}function Oe(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 Wn(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 ft(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 yt(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 Vn(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=ft(o,r,i);if(!l)continue;let{tableKey:c,docStartSample:d}=l,p=pt(o),y=Oe(o),m=y??p,h=n.get(c);if(h||(h={tableKey:c,docStartSample:d,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)),d<h.docStartSample&&(h.docStartSample=d),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),y&&(h.exactClipLeftX.push(y.x),h.exactClipBottomY.push(y.y+y.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=yt(o,i,n);if(!a){let d=(o.x1+o.x2)/2,p=(o.y1+o.y2)/2,y=1/0;for(let m of n.values()){let h=d>=m.contentMinX-q&&d<=m.contentMaxX+q,R=p>=m.contentMinY-q&&p<=m.contentMaxY+q;if(!h||!R)continue;let k=Math.max(0,m.contentMinX-d,d-m.contentMaxX),v=Math.max(0,m.contentMinY-p,p-m.contentMaxY),b=k+v;b<y&&(y=b,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,d=[...o.rows.entries()].map(([p,y])=>({rowIndex:p,top:y.top,bottom:y.bottom})).sort((p,y)=>p.rowIndex-y.rowIndex);s.push({pageIndex:e,tableKey:o.tableKey,docStartSample:o.docStartSample,originX:l,originY:o.contentMinY,bottomY:c,originExact:a,rowBands:d});}return s}function zn(e,t){let r=[],i=Xe(e,t,{kind:"body"});for(let n of e.pages)r.push(...Vn(n.pageIndex,n.primitives,t,i));return r}function _e(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 Xe(e,t,r){let i=new Map;for(let n of e.pages){let s=_e(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 $e(e,t){return `${e}:${t}`}function jn(e,t,r,i){let n=$e(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 gt(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=ft(n,t,r);if(!o)continue;let a=o.tableKey,l=pt(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),jn(c,s,l,Oe(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),d=Math.max(n.y1,n.y2),p=yt(n,r,i);if(p){s?p.verticalLines.push(a):p.horizontalLines.push(c);continue}for(let y of i.values())if(s){if(!(d>=y.contentMinY-q&&c<=y.contentMaxY+q))continue;let h=a;Math.max(0,y.contentMinX-h,h-y.contentMaxX)<=mt&&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)<=mt&&y.horizontalLines.push(h);}}return [...i.values()]}function le(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 ht(e){let t=le([...e.cells.values()].map(n=>n.row)),r=le(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 Ye(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 Un(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 qn(e,t,r){let i=Ye(e.cells.get($e(t,r)));return i?{left:i.x,right:i.x+i.w,top:i.y,bottom:i.y+i.h}:null}function Zn(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=Xe(e,r,i);for(let a of e.pages){let l=_e(a,i);if(!l)continue;let c=gt(l.primitives,r,o);for(let d of c){let p=n.get(d.tableKey);if(!p)continue;let y=le(d.verticalLines),m=ht(d);for(let h of p){let R=d.cells.get($e(h.row,h.col)),k=y[h.col],v=y[h.col+h.colSpan],b=m.get(h.row),M=m.get(h.row+h.rowSpan),A=true;if(k==null||v==null||v<=k){let w=R?.exactClip??Ye(R);if(!w)continue;k=w.x,v=w.x+w.w,A=R?.exactClip!=null;}if(b==null||M==null||M<=b){let w=R?.exactClip??Ye(R);if(!w)continue;b=w.y,M=w.y+w.h,A&&(A=R?.exactClip!=null);}s.push({pageIndex:a.pageIndex,tableKey:d.tableKey,row:h.row,col:h.col,rowSpan:h.rowSpan,colSpan:h.colSpan,x:k,y:b,w:Math.max(1,v-k),h:Math.max(1,M-b),exact:A,region:l.kind,rId:l.rId});}}}return s}function ei(e){let{list:t,pageIndex:r,x:i,y:n,canvasRect:s,pageSize:o,tableKeyOf:a,cellPmPosOf:l,region:c={kind:"body"},edgeProximity:d=_n}=e,p=t.pages[r];if(!p)return null;let y=_e(p,c);if(!y)return null;let m=o.width>0?s.width/o.width:1,h=o.height>0?s.height/o.height:1,R=(b,M)=>({clientX:s.left+b*m,clientY:s.top+M*h}),k=Xe(t,a,c),v=gt(y.primitives,a,k);for(let b of v){let M=le(b.verticalLines),A=ht(b),w=le([...b.cells.values()].map(N=>N.row));if(w.length===0)continue;let _=M[0]??b.contentMinX-O,W=M[M.length-1]??b.contentMaxX+O,P=A.get(w[0])??b.contentMinY-O,X=w[w.length-1],B=A.get(X+1)??b.contentMaxY+O,ie=i<_+d&&i>=_-d,ce=n<P+d&&n>=P-d;if(!(!ie&&!ce)){if(ie&&n>=P-d&&n<=B)for(let N of w){let ee=A.get(N),T=A.get(N+1),V=ee==null||T==null?Un(b,N):null,Y=ee??V?.top,$=T??V?.bottom;if(Y==null||$==null||$<=Y||n<Y||n>$)continue;let F=[...b.cells.values()].filter(U=>U.row===N).sort((U,te)=>U.col-te.col)[0];if(!F)continue;let z=l(b.tableKey,N,F.col);if(!z)continue;let Z=R(_,Y+($-Y)/2);return {type:"row",clientX:Z.clientX-$n,clientY:Z.clientY-Jn,cellPmPos:z}}if(ce&&i>=_-d&&i<=W){let N=w[0],ee=[...b.cells.values()].filter(T=>T.row===N).sort((T,V)=>T.col-V.col);for(let T of ee){let V=M[T.col],Y=M[T.col+T.colSpan],$=V==null||Y==null?qn(b,T.row,T.col):null,F=V??$?.left,z=Y??$?.right;if(F==null||z==null||z<=F||i<F||i>z)continue;let Z=l(b.tableKey,T.row,T.col);if(!Z)continue;let U=R(F+(z-F)/2,P);return {type:"column",clientX:U.clientX-Kn,clientY:U.clientY-Qn,cellPmPos:Z}}}}}return null}var Qi=We;export{Dn as CANVAS_PAGES_PADDING_PX,Rn as CANVAS_PAGE_GAP_PX,Xn as DISPLAY_LIST_TABLE_INSERT_HIDE_DELAY_MS,D as MIRROR_CLASS_NAMES,Q as RustDisplayListSourceError,en as applyInteractiveSdtFocus,nn as buildInteractiveOverlayPage,Xt as buildMirrorPage,gn as buildRustDisplayFrame,dt as buildRustDisplayList,se as canvasPageTops,hn as captureInlinePositionEmuFromDisplayList,vn as computeA11yAnnouncements,An as computeAnchorPositionsFromDisplayList,Tn as computeAnchorPositionsFromYrs,In as createCanvasImageResolver,xn as createDisplayListQueries,Pn as createYrsSidebarProjection,Qi as demoDisplayList,Zn as deriveDisplayListSelectedCellRects,zn as deriveDisplayListTableFragments,ei as detectDisplayListTableInsertHover,ct as encodeDisplayListFrameExtras,Bn as extractTrackedChangesFromYrs,On as findDisplayListHyperlinkAtPoint,Be as findImagePrimitiveAtPoint,Ce as findImagePrimitiveByDocPos,_t as loadGlyphOutlineProvider,Te as loadRustDisplayListQueryEngine,Cn as mergeHfAnchorPositionsFromDisplayList,Sn as snapshotFromSelectionContext,Ne as visitAnchorKeys,ae as yrsIdToNumericId};
1
+ import {d,c,e,s,t,v,f}from'../../chunk-24DL53QL.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-24DL53QL.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 Ze={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 jt(){return import('../../wasm-T2CRCO7S.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 Ut(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(nt(a,r,0));re(o,e.primitives,r,0,n);for(let a of e.noteAreas??[])o.appendChild(cn(a,e,r,n));for(let a of [e.header,e.footer])a&&s.appendChild(qt(a,e,r,n));for(let a of (e.pageBorders??[]).filter(l=>l.zOrder!=="back"))s.appendChild(nt(a,r,0));return s}function qt(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(he(o,r,i,n));continue}let l=o.table,c=l?.tableId!==void 0?`table:${l.tableId}#${l.rowStart??0}`:a,m=s.get(c);if(!m){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),m={el:y,prims:[]},s.set(c,m);}m.prims.push(o);}for(let o of s.values())Zt(o,r,i,n);nn(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")){et(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=ye(s,"table");l&&ge(n,l),He(n,s.find(g=>g.sdt!==void 0)?.sdt);for(let g of s)g.cell===void 0&&n.appendChild(he(g,t,r,i));let c=new Map,m=0,y=0;for(let g of s){if(g.cell===void 0)continue;let{row:f,col:h}=g.cell;m=Math.max(m,f+(g.cell.rowSpan??1)),y=Math.max(y,h+(g.cell.colSpan??1));let R=c.get(f);R||(R=new Map,c.set(f,R));let S=R.get(h);S||(S={ref:g.cell,prims:[]},R.set(h,S)),S.prims.push(g);}n.setAttribute("aria-rowcount",String(a?.rowCount??m)),n.setAttribute("aria-colcount",String(a?.columnCount??y));for(let g of [...c.keys()].sort((f,h)=>f-h)){let f=t.createElement("div");f.className=D.tableRow,f.setAttribute("role","row"),f.setAttribute("aria-rowindex",String(g+1));let h=ye(s,"row",g);h&&ge(f,h),f.style.position="absolute",f.style.left="0",f.style.top="0",n.appendChild(f);let R=c.get(g);for(let S of [...R.keys()].sort((v,L)=>v-L)){let v=R.get(S),L=t.createElement("div");L.className=D.tableCell,L.setAttribute("role",v.ref.isHeader?"columnheader":"cell"),L.setAttribute("aria-colindex",String(S+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,C=v.ref.colSpan??1;E>1&&L.setAttribute("aria-rowspan",String(E)),C>1&&L.setAttribute("aria-colspan",String(C));let P=ye(v.prims,"cell",g,S);P&&ge(L,P),v.ref.continuation&&(L.dataset.vmergeContinuation="true"),L.style.position="absolute",L.style.left="0",L.style.top="0";let Y=new Map,V=[];for(let M of v.prims){let F=M.blockKey??M.blockId;if(F===void 0){V.push(M);continue}let G=Y.get(F);G?G.push(M):Y.set(F,[M]);}for(let M of Ce(V))L.appendChild(he(M,t,r,i));for(let[M,F]of Y){let G=t.createElement("div");G.dataset.blockId=String(M),G.style.position="absolute",G.style.left="0",G.style.top="0",et(G,F,t,r,i),L.appendChild(G);}tn(L,v.prims),at(L,v.prims),e.cells.push({el:L,bounds:st(v.prims)}),f.appendChild(L);}}Be(n,s);}function et(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 Ce(t))e.appendChild(he(c,r,i,n));let o=ye(t,"pmark");o&&ge(e,o),en(e,t,r,i),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))),at(e,t),on(e,t);}function en(e,t,r,i){Be(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,m=l??(Number.isFinite(n)&&n===s&&n>0?n-1:void 0);if(m!==void 0&&(e.dataset.docStart=String(m)),c!==void 0&&(e.dataset.docEnd=String(c)),m!==void 0&&!t.some(y=>y.docStart===m)){let y=Ce(t).find(f=>Te(f)!==void 0),g=y?Te(y):void 0;if(g){let f=r.createElement("span");f.className="layout-mirror-structural-anchor",f.dataset.docStart=String(m),f.dataset.docEnd=String(m),U(f,g,i),e.insertBefore(f,e.firstChild);}}}function tn(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&&Be(e,t);}function nn(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=st(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&&rn(o,a,c.bounds));l.sort((c,m)=>tt(c.bounds)-tt(m.bounds)),l[0]?.el.appendChild(r.el);}}function rn(e,t,r){return e>=r.x&&e<=r.x+r.w&&t>=r.y&&t<=r.y+r.h}function tt(e){return e.w*e.h}function st(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}:Te(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 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(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 at(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 on(e,t){let r=t.find(i=>i.ariaLabel||i.ariaDescription||i.decorative||i.hiddenObject||i.groupId);r&&ct(e,r);}function Be(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 ye(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 he(e$1,t,r,i){switch(e$1.kind){case "text":{let n=it(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,rt(n,e$1),ot(n,e$1),Ee(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=it(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`,sn(n,e$1.fallbackFont),rt(n,e$1),ot(n,e$1),Ee(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)),lt(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),Ee(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),an(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 nt(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",fe(i,"Top",e.top),fe(i,"Right",e.right),fe(i,"Bottom",e.bottom),fe(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 it(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(lt(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 lt(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 sn(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 rt(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 fe(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 Ee(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 an(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 ot(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),ln(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)),ct(e,t);}function ct(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(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 ln(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 ge(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,Ae(t.kind));break;case "row":e.classList.add(D.revisionRow,Ae(t.kind));break;case "cell":e.classList.add(D.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"?D.revisionIns:e==="del"?D.revisionDel:D.revisionMerge}function cn(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}`,m=o.filter(f=>f.groupId===c);if(m.length===0)continue;for(let f of m){let h=o.indexOf(f);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,m,r,-(e.y??0),i),g){let f=r.createElement("a");f.className=D.noteBacklink,f.setAttribute("role","doc-backlink"),f.setAttribute("href",`#oox-noteref-${c}`);let h=i.labels?.noteBacklink??g.label??String(a);f.setAttribute("aria-label",h),y.appendChild(f);}n.appendChild(y);}return o.length>0&&re(n,o,r,-(e.y??0),i),n}function dn(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 un=".layout-sdt-widget, .layout-inline-sdt-widget, .layout-sdt-repeat-btn";function pn(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?.(un)&&(a.preventDefault(),a.stopPropagation());});let n=mn(e),s=fn(n);for(let a of [...s.values()].sort(gn))i.appendChild(hn(a,r,t.labels));let o=yn(n);for(let a of o.values())i.appendChild(bn(a,r,t.labels));return i}function mn(e){return [...e.primitives,...e.header?.primitives??[],...e.footer?.primitives??[],...(e.noteAreas??[]).flatMap(t=>[...t.separatorPrimitives??[],...t.primitives??[]])]}function fn(e){let t=new Map;for(let r of e){let i=ut(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=pt(o.rect,i):t.set(s.groupId,{attrs:s,rect:{...i}});}}return t}function yn(e){let t=new Map;for(let r of e){let i=r.inlineSdtWidget,n=ut(r);if(!i||!n)continue;let s=`${i.groupId}:${i.pos}:${i.controlKind??i.kind}`,o=t.get(s);o?o.rect=pt(o.rect,n):t.set(s,{attrs:i,rect:{...n}});}return t}function gn(e,t){return (e.attrs.depth??0)-(t.attrs.depth??0)||e.rect.y-t.rect.y||e.rect.x-t.rect.x}function hn(e,t,r){let{attrs:i,rect:n}=e,s=t.createElement("div");s.className="layout-block-sdt-box layout-canvas-sdt-box",Dn(s,i),mt(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=Ln(i.sdtType),l=!i.bound&&!Rn(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(dt(t,i,"add","\uFF0B",r?.addRepeatingItem,o)),c.appendChild(dt(t,i,"remove","\u2715",r?.removeRepeatingItem,o)),s.appendChild(c);}return s}function dt(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 bn(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=xn(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",mt(o,n),o.style.pointerEvents="auto",o}function xn(e){return e==="dropDownList"||e==="comboBox"?"dropdown":e}function Ln(e){return e==="checkbox"?"checkbox":e==="dropDownList"||e==="comboBox"?"dropdown":e==="date"?"date":null}function Rn(e){return e==="contentLocked"||e==="sdtContentLocked"||e==="sdtLocked"}function Dn(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 ut(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 pt(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 mt(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,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;}},ft=null;function Ge(){return ft??(ft=import('../../wasm-T2CRCO7S.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}))),ft}function Fe(){return Ge()}function vn(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 yt(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 In=new WeakMap;async function gt(e,t){let r;try{r=t??await Ge();}catch(s){throw new K("load",s)}let i,n;try{i=vn(e,In),n=r.buildDisplayListJson(i);}catch(s){throw new K("build",s)}try{return JSON.parse(n)}catch(s){throw new K("parse",s)}}async function Sn(e,t$1,r=null){let i;try{i=t$1??await Ge();}catch(l){throw new K("load",l)}if(!i.buildDisplayListFrame)return {displayList:await gt(e,i),frame:null,transport:"json"};let n=yt(e),s$1;try{s$1=i.buildDisplayListFrame(n,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 ht(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 Ne(e,t,r="body",i){for(let n of e.pages)for(let s of ht(n,r,i))if(s.docStart===t)return {primitive:s,pageIndex:n.pageIndex,...r!=="body"?{region:r,rId:i}:{}};return null}function Ye(e,t,r,i,n="body",s){let o=e.pages[t];if(!o)return null;let a=ht(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 kn(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 be=(()=>{let e=globalThis.FinalizationRegistry;return e?new e(t=>t()):null})(),Oe=new WeakMap,Le=new WeakSet,_e=new Set;function wn(e){return e!=null&&Le.has(e)}function Mn(e){return _e.add(e),()=>{_e.delete(e);}}function xe(e){return e instanceof Error?typeof WebAssembly<"u"&&e instanceof WebAssembly.RuntimeError?true:e.name==="RuntimeError":false}function Pn(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 En(e,t,r){let i=null,n=()=>i??(i=JSON.stringify(e)),s=An(t)?t:null,o=s?null:t??null,a=null,l,c,m=new Promise((d,u)=>{l=d,c=u;});m.catch(()=>{});let y=null,g=false,f$1=false,h=false,R={},S=null;if(r){let d=Oe.get(r);d&&(S=d.hasHandle()?r:d.donor(),d.supersede());}let v$1=()=>s??o,L=()=>{let d=v$1();return d!==null&&Le.has(d)},E=(d,u)=>{let p=u instanceof Error?u:new Error(String(u));a=p,y=null,be?.unregister(R);let b=v$1();if(!(!b||Le.has(b))){Le.add(b),console.error(`[CanvasRenderer] ${d} trapped in wasm; the session is unusable and must be rebuilt`,p);for(let x of _e)try{x(p);}catch(I){console.error("[CanvasRenderer] display-list source failure listener threw",I);}}},C=()=>{if(y!==null&&L()){y=null;return}if(y!==null){try{o?.closeDisplayList?.(y);}catch{}y=null;}},P=()=>{let d=S;if(S=null,!d||!o?.updateDisplayList||!o.hasDisplayListUpdate?.())return false;let u=Oe.get(d);if(!u||u.engine()!==o)return false;let p=Pn(u,e);if(!p)return false;let b=u.takeHandle();if(b===null)return false;try{return o.updateDisplayList(b,p),y=b,!0}catch(x){try{o.closeDisplayList?.(b);}catch{}return console.warn("[CanvasRenderer] display-list delta update failed; reopening",x),false}},Y=()=>{if(!(h||f$1||g||y!==null||!o||L())&&!(!o.hasDisplayListSession?.()||!o.openDisplayList)&&(g=true,!P()))try{y=o.openDisplayList(n());}catch(d){if(y=null,xe(d)){E("display-list session open",d);return}console.warn("[CanvasRenderer] display-list session open failed; using JSON-arg queries",d);}};s||o?l():Fe().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 V=(d,u,p)=>{if(!o||L())return null;if(y===null&&Y(),y!==null&&d)try{return d(y)}catch(b){if(xe(b))return E(p,b),null;console.warn(`[CanvasRenderer] ${p} session query failed; falling back`,b),C();}try{return u()}catch(b){return xe(b)?(E(p,b),null):(a=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${p} query failed`,b),null)}},M=(d,u,p)=>{if(d===null)return u;try{return JSON.parse(d)}catch(b){return a=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${p} returned invalid JSON`,b),u}},F=(d,u)=>{if(L())return null;try{return d()}catch(p){return xe(p)?(E(`resident ${u}`,p),null):(a=p instanceof Error?p:new Error(String(p)),console.warn(`[CanvasRenderer] resident ${u} query failed`,p),null)}},G=(d,u,p)=>{if(s)return M(F(()=>s.displayHitTestRegionsJson(d,u,p),"hit_test_regions"),null,"hit_test_regions");let b=V(o?.hitTestRegionsByHandle&&(x=>o.hitTestRegionsByHandle(x,d,u,p)),()=>o.hitTestRegionsJson(n(),d,u,p),"hit_test_regions");return M(b,null,"hit_test_regions")},ee=(d,u)=>{if(s)return M(F(()=>s.displayRangeRectsJson(d,u),"range_rects"),[],"range_rects");let p=V(o?.rangeRectsByHandle&&(b=>o.rangeRectsByHandle(b,d,u)),()=>o.rangeRectsJson(n(),d,u),"range_rects");return M(p,[],"range_rects")},le=(d,u,p)=>{let b=p??Number.NaN;if(s)return M(F(()=>s.displayVerticalMoveJson(d,u,b),"vertical_move"),null,"vertical_move");if(!o?.verticalMoveJson)return null;let x=V(o.verticalMoveByHandle&&(I=>o.verticalMoveByHandle(I,d,u,b)),()=>o.verticalMoveJson(n(),d,u,b),"vertical_move");return M(x,null,"vertical_move")},N=(d,u,p,b)=>{if(s)return M(F(()=>s.displayRangeRectsRegionJson(d,u,p,b),"range_rects_region"),[],"range_rects_region");if(!o||!o.hasRangeRectsRegion?.())return [];let x=V(o.rangeRectsRegionByHandle&&(I=>o.rangeRectsRegionByHandle(I,d,u,p,b)),()=>o.rangeRectsRegionJson(n(),d,u,p,b),"range_rects_region");return M(x,[],"range_rects_region")},q=(d,u,p,b)=>N(d,u,p,b),T=(d,u,p,b)=>N(d,String(u),p,b),$=(d,u)=>{let p=(x,I)=>{let k=new Map;for(let w of x)I&&k.has(w.pageIndex)||k.set(w.pageIndex,{pageIndex:w.pageIndex,x:I?w.x:w.x+w.width,y:w.y,width:0,height:w.height});return [...k.values()]},b=d(u,u+1);if(b.length>0)return p(b,true);if(u>0){let x=d(u-1,u);if(x.length>0)return p(x,false)}return []},O=(d,u,p)=>$((b,x)=>q(d,u,b,x),p),z=(d,u,p)=>$((b,x)=>T(d,u,b,x),p),_=d=>{let u=ee(d,d+1);if(u.length>0){let p=u[0];return {pageIndex:p.pageIndex,x:p.x,y:p.y,width:0,height:p.height}}if(d>0){let p=ee(d-1,d);if(p.length>0){let b=p[p.length-1];return {pageIndex:b.pageIndex,x:b.x+b.width,y:b.y,width:0,height:b.height}}}return null},J=d=>{let u=ee(d,d+2);return u.length>0?u[0]:_(d)},te=(d,u,p)=>{let b=q(d,u,p,p+2);if(b.length===0)return O(d,u,p);let x=new Map;for(let I of b)x.has(I.pageIndex)||x.set(I.pageIndex,I);return [...x.values()]},j=(d,u)=>({pageIndex:d,x:u.x,y:u.y,width:u.w,height:u.h}),De=d=>{let u=e.pages[d];return u?{pageIndex:u.pageIndex,x:0,y:0,width:u.width,height:u.height}:null},It=d=>{let u=e.pages[d],p=u?.contentBounds;return u&&p?{pageIndex:u.pageIndex,x:p.x,y:p.y,width:p.width,height:p.height}:null},St=d=>{let u=e.pages[d];return u?(u.columnBounds??[]).map(p=>({pageIndex:u.pageIndex,x:p.x,y:p.y,width:p.width,height:p.height})):[]},ve=d=>d.paraId?`para:${d.paraId}`:d.blockKey!==void 0?`block-key:${d.blockKey}`:d.blockId!==void 0?`block-id:${d.blockId}`:null,ze=d=>d.blockKey??d.blockId,ce=null,kt=()=>{if(ce)return ce;let d=new Map;for(let u of e.pages)for(let p of u.primitives){let b=ve(p);if(!b||p.docStart===void 0||p.docEnd===void 0)continue;let x=f(p),I=d.get(b);I||(I=new Map,d.set(b,I));let k=I.get(u.pageIndex);if(!k){I.set(u.pageIndex,{...j(u.pageIndex,x),from:p.docStart,to:p.docEnd,blockId:ze(p),paraId:p.paraId});continue}let w=Math.min(k.x,x.x),A=Math.min(k.y,x.y),ue=Math.max(k.x+k.width,x.x+x.w),pe=Math.max(k.y+k.height,x.y+x.h);k.x=w,k.y=A,k.width=ue-w,k.height=pe-A,k.from=Math.min(k.from,p.docStart),k.to=Math.max(k.to,p.docEnd);}return ce=new Map([...d].map(([u,p])=>[u,[...p.values()]])),ce},wt=d=>{let u=null;for(let p of e.pages)for(let b of p.primitives){let x=ve(b),I=b.docStart,k=b.docEnd;if(!x||I===void 0||k===void 0||d<I||d>k)continue;let w={identity:x,span:Math.max(0,k-I),startsAtPos:I===d};(!u||w.startsAtPos&&!u.startsAtPos||w.startsAtPos===u.startsAtPos&&w.span<u.span)&&(u=w);}return u?kt().get(u.identity)??[]:[]},Mt=1.5,de=null,je=()=>{if(de)return de;let d=[];for(let u of e.pages){let p=[],b=0;for(let x of u.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((me,Tt)=>Math.max(me,Tt.y),-1/0);if(!Number.isFinite(I))continue;let k=ve(x)??`anonymous:${b++}`,w=f(x),A=p.find(me=>me.identity===k&&Math.abs(me.baseline-I)<=Mt);if(!A){p.push({identity:k,...j(u.pageIndex,w),baseline:I,from:x.docStart,to:x.docEnd,blockId:ze(x),paraId:x.paraId});continue}let ue=Math.min(A.x,w.x),pe=Math.min(A.y,w.y),Et=Math.max(A.x+A.width,w.x+w.w),At=Math.max(A.y+A.height,w.y+w.h);A.x=ue,A.y=pe,A.width=Et-ue,A.height=At-pe,A.from=Math.min(A.from,x.docStart),A.to=Math.max(A.to,x.docEnd);}d.push(...p.map(({identity:x,...I})=>I));}return de=d,de},Pt=d=>{let u=null;for(let p of je())d<p.from||d>p.to||(!u||p.to-p.from<u.to-u.from)&&(u=p);return u},Ue=d=>{if(!d)return null;let u=d.primitive.docStart;if(u===void 0)return null;let{primitive:p}=d;return {...d,pos:u,rect:{pageIndex:d.pageIndex,x:p.x,y:p.y,width:p.w,height:p.h}}},Ie={displayList:e,isReady:()=>(s!==null||o!==null)&&a===null,sourceState:()=>a?{status:"error",error:a}:s||o?{status:"ready"}:{status:"loading"},whenReady:()=>m,pageCount:()=>e.pages.length,pageSize:d=>{let u=e.pages[d];return u?{width:u.width,height:u.height}:null},pageBounds:De,contentBounds:It,columnBounds:St,paragraphRects:wt,visualLines:je,visualLineAtPosition:Pt,imageAtPoint:(d,u,p,b="body",x)=>Ue(Ye(e,d,u,p,b,x)),imageByPos:(d,u="body",p)=>Ue(Ne(e,d,u,p)),hitTestRegions:G,verticalMove:le,rangeRects:ee,hfRangeRects:q,noteRangeRects:T,hfCaretRects:O,noteCaretRects:z,hfAnchorRects:te,caretRect:_,anchorRect:J,sidebarAnchorRect:J,prime:Y,dispose:()=>{h||(h=true,C(),be?.unregister(R));}};return be?.register(Ie,C,R),Oe.set(Ie,{list:e,pageRevisions:e.pages.map(v),engine:()=>o,hasHandle:()=>y!==null,donor:()=>S,supersede:()=>{f$1=true;},takeHandle:()=>{let d=y;return d!==null&&(y=null,be?.unregister(R)),d}}),Ie}function An(e){return typeof e?.displayHitTestRegionsJson=="function"&&typeof e?.displayVerticalMoveJson=="function"&&typeof e?.displayRangeRectsJson=="function"&&typeof e?.displayRangeRectsRegionJson=="function"}var Tn=16,Cn=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 Bn(){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 Hn(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 Gn(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 Re(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Fn(e){let t=typeof e.story=="string"?[e.story]:[],r=Array.isArray(e.rows)?e.rows:[];for(let i of r){let n=Re(i),s=n&&Array.isArray(n.cells)?n.cells:[];for(let o of s){let a=Re(o)?.story;typeof a=="string"&&t.push(a);}}return t}function Nn(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 Fn(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 Yn(e,t,r,i,n){let s=Array.isArray(t.rows)?t.rows:[],o=r+1;for(let a of s){let l=Re(a),c=l&&Array.isArray(l.cells)?l.cells:[],m=o+1;for(let y of c){let g=Re(y),f=typeof g?.story=="string"?g.story:null,h=f?Xe(e,f,m+1,i,n):0;m+=h+2;}o=m+1;}return o+1-r}function Xe(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 m=o+a+2;i.set(c.paraId,{pmStart:o,pmEnd:m}),s=m,o=s,a=0,l=!0;continue}if(c.embedKind==="table"&&l){s+=Yn(e,c.payload,s,i,n),o=s;continue}if(c.embedKind==="blockSdt"&&l){let m=typeof c.payload.story=="string"?c.payload.story:null,y=m?Xe(e,m,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 On(e){let t=new Map,r=Nn(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 Xe(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),m=Math.min(Math.max(0,Math.trunc(o.offset)),c);return {story:o.story,position:l.pmStart+1+m,...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 m=e.locateParagraph(o,c.paraId);if(!(l<m.start||l>m.end))return n({story:o,paraId:c.paraId,offset:Math.min(l-m.start,m.end-m.start)})}}catch{return null}return null}}}function $e(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 m=[c.trIns,c.trDel,c.pPrIns,c.pPrDel];for(let h of m){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 f=[c.pPrChange,c.trPrChange,c.tcPrChange,c.tblPrChange];for(let h of f)if(Array.isArray(h))for(let R of h){let S=R?.info?.id;typeof S=="number"&&t(`revision-${S}`,l);}}if(a.isInline)for(let m of a.marks){let y=null;n&&m.type===n?y=`comment-${m.attrs.commentId}`:(s&&m.type===s||o&&m.type===o)&&(y=`revision-${m.attrs.revisionId}`),y&&t(y,l);}});}function _n(e,t,r){let i=new Map;if(!e?.state)return i;let n=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):(n[l.pageIndex]??0)+l.y;c!=null&&i.set(o,c);}),i}function Xn(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 $n(e,t,r,i,n,s,o){let a=new Map,l=oe(n),c=(m,y)=>{if(!y||a.has(m))return a.has(m);let g=Xn(y,n,s);if(!g)return false;let f=o?o(g):(l[g.pageIndex]??0)+g.y;return f==null?false:(a.set(m,f),true)};for(let m of t){let y=`comment-${m}`;try{for(let g of e.resolveComment(String(m)))if(c(y,i.storyOffsetToDisplayPoint(g.story,g.start)))break}catch{}}for(let m of r)c(`revision-${se(m.revisionId)}`,i.locToDisplayPoint({story:m.story,...m.range.start}));return a}function Jn(e,t,r,i){let n=oe(t);for(let{region:s,rId:o,view:a}of e)$e(a,(l,c)=>{if(r.has(l))return;let m=t.hfAnchorRects(s,o,c)[0];if(!m)return;let y=i?i(m):(n[m.pageIndex]??0)+m.y;y!=null&&r.set(l,y);});return r}function Qn(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,m=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:m,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(f=>f.from)),l=Math.max(...o.map(f=>f.to)),c=o.filter(f=>f.type==="insertion"),m=o.filter(f=>f.type==="deletion");if(c.length>0&&m.length>0)return {...c[0],type:"replacement",text:c.map(h=>h.text).join(""),deletedText:m.map(h=>h.text).join(""),from:a,to:l};let y=o.find(f=>f.type==="insertion"||f.type==="deletion")??o[0],g=o.filter(f=>f.type===y.type).map(f=>f.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 Wn(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 Kn(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 Vn(e){let t=Kn(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),m=Math.min(t.y+t.h,o);return c<a||m<l?null:{x:a,y:l,w:c-a,h:m-l}}function zn(e){return e.kind==="text"||e.kind==="glyphRun"?e.text:e.kind==="image"?e.altText??"":""}function jn(e,t,r){return t>=e.x&&t<=e.x+e.w&&r>=e.y&&r<=e.y+e.h}function Un(e,t,r,i,n={kind:"body"}){let s=e.pages[t];if(!s)return null;let o=Wn(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=Vn(l);if(c&&jn(c,r,i))return {pageIndex:t,region:o.kind,rId:o.rId,href:l.href,tooltip:l.linkTitle??l.tooltip,displayText:zn(l)||l.href,rect:c}}return null}var X=7.5,Z=16,bt=320,qn=30,Zn=200,ei=24,ti=10,ni=10,ii=24;function xt(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?ri(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 ri(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 Lt(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 Rt(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 oi(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=Lt(o,r,i);if(!l)continue;let{tableKey:c,docStartSample:m}=l,y=xt(o),g=Qe(o),f=g??y,h=n.get(c);if(h||(h={tableKey:c,docStartSample:m,contentMinX:f.x,contentMinY:f.y,contentMaxX:f.x+f.w,contentMaxY:f.y+f.h,exactLeftX:[],exactBottomY:[],exactClipLeftX:[],exactClipBottomY:[],rows:new Map},n.set(c,h)),m<h.docStartSample&&(h.docStartSample=m),h.contentMinX=Math.min(h.contentMinX,f.x),h.contentMinY=Math.min(h.contentMinY,f.y),h.contentMaxX=Math.max(h.contentMaxX,f.x+f.w),h.contentMaxY=Math.max(h.contentMaxY,f.y+f.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,f.y),R.bottom=Math.max(R.bottom,f.y+f.h)):h.rows.set(a.row,{top:f.y,bottom:f.y+f.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=Rt(o,i,n);if(!a){let m=(o.x1+o.x2)/2,y=(o.y1+o.y2)/2,g=1/0;for(let f of n.values()){let h=m>=f.contentMinX-Z&&m<=f.contentMaxX+Z,R=y>=f.contentMinY-Z&&y<=f.contentMaxY+Z;if(!h||!R)continue;let S=Math.max(0,f.contentMinX-m,m-f.contentMaxX),v=Math.max(0,f.contentMinY-y,y-f.contentMaxY),L=S+v;L<g&&(g=L,a=f);}}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-X,c=o.exactBottomY.length>0||o.exactClipBottomY.length>0?Math.max(...o.exactBottomY,...o.exactClipBottomY):o.contentMaxY,m=[...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:m});}return s}function si(e,t){let r=[],i=Ke(e,t,{kind:"body"});for(let n of e.pages)r.push(...oi(n.pageIndex,n.primitives,t,i));return r}function We(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 Ke(e,t,r){let i=new Map;for(let n of e.pages){let s=We(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 Ve(e,t){return `${e}:${t}`}function ai(e,t,r,i){let n=Ve(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 Dt(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=Lt(n,t,r);if(!o)continue;let a=o.tableKey,l=xt(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),ai(c,s,l,Qe(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),m=Math.max(n.y1,n.y2),y=Rt(n,r,i);if(y){s?y.verticalLines.push(a):y.horizontalLines.push(c);continue}for(let g of i.values())if(s){if(!(m>=g.contentMinY-Z&&c<=g.contentMaxY+Z))continue;let h=a;Math.max(0,g.contentMinX-h,h-g.contentMaxX)<=bt&&g.verticalLines.push(h);}else if(o){if(!(l>=g.contentMinX-Z&&a<=g.contentMaxX+Z))continue;let h=c;Math.max(0,g.contentMinY-h,h-g.contentMaxY)<=bt&&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 vt(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 Je(e){if(!e)return null;if(e.exactClip)return e.exactClip;let t=e.minX-X,r=e.minY-X;return {x:t,y:r,w:Math.max(1,e.maxX-e.minX+X*2),h:Math.max(1,e.maxY-e.minY+X*2)}}function li(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-X),i=Math.max(i,n.exactClip?n.exactClip.y+n.exactClip.h:n.maxY+X));return !Number.isFinite(r)||!Number.isFinite(i)||i<=r?null:{top:r,bottom:i}}function ci(e,t,r){let i=Je(e.cells.get(Ve(t,r)));return i?{left:i.x,right:i.x+i.w,top:i.y,bottom:i.y+i.h}:null}function di(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=Ke(e,r,i);for(let a of e.pages){let l=We(a,i);if(!l)continue;let c=Dt(l.primitives,r,o);for(let m of c){let y=n.get(m.tableKey);if(!y)continue;let g=ae(m.verticalLines),f=vt(m);for(let h of y){let R=m.cells.get(Ve(h.row,h.col)),S=g[h.col],v=g[h.col+h.colSpan],L=f.get(h.row),E=f.get(h.row+h.rowSpan),C=true;if(S==null||v==null||v<=S){let P=R?.exactClip??Je(R);if(!P)continue;S=P.x,v=P.x+P.w,C=R?.exactClip!=null;}if(L==null||E==null||E<=L){let P=R?.exactClip??Je(R);if(!P)continue;L=P.y,E=P.y+P.h,C&&(C=R?.exactClip!=null);}s.push({pageIndex:a.pageIndex,tableKey:m.tableKey,row:h.row,col:h.col,rowSpan:h.rowSpan,colSpan:h.colSpan,x:S,y:L,w:Math.max(1,v-S),h:Math.max(1,E-L),exact:C,region:l.kind,rId:l.rId});}}}return s}function ui(e){let{list:t,pageIndex:r,x:i,y:n,canvasRect:s,pageSize:o,tableKeyOf:a,cellPmPosOf:l,region:c={kind:"body"},edgeProximity:m=qn}=e,y=t.pages[r];if(!y)return null;let g=We(y,c);if(!g)return null;let f=o.width>0?s.width/o.width:1,h=o.height>0?s.height/o.height:1,R=(L,E)=>({clientX:s.left+L*f,clientY:s.top+E*h}),S=Ke(t,a,c),v=Dt(g.primitives,a,S);for(let L of v){let E=ae(L.verticalLines),C=vt(L),P=ae([...L.cells.values()].map(N=>N.row));if(P.length===0)continue;let Y=E[0]??L.contentMinX-X,V=E[E.length-1]??L.contentMaxX+X,M=C.get(P[0])??L.contentMinY-X,F=P[P.length-1],G=C.get(F+1)??L.contentMaxY+X,ee=i<Y+m&&i>=Y-m,le=n<M+m&&n>=M-m;if(!(!ee&&!le)){if(ee&&n>=M-m&&n<=G)for(let N of P){let q=C.get(N),T=C.get(N+1),$=q==null||T==null?li(L,N):null,O=q??$?.top,z=T??$?.bottom;if(O==null||z==null||z<=O||n<O||n>z)continue;let _=[...L.cells.values()].filter(j=>j.row===N).sort((j,De)=>j.col-De.col)[0];if(!_)continue;let J=l(L.tableKey,N,_.col);if(!J)continue;let te=R(Y,O+(z-O)/2);return {type:"row",clientX:te.clientX-ei,clientY:te.clientY-ti,cellPmPos:J}}if(le&&i>=Y-m&&i<=V){let N=P[0],q=[...L.cells.values()].filter(T=>T.row===N).sort((T,$)=>T.col-$.col);for(let T of q){let $=E[T.col],O=E[T.col+T.colSpan],z=$==null||O==null?ci(L,T.row,T.col):null,_=$??z?.left,J=O??z?.right;if(_==null||J==null||J<=_||i<_||i>J)continue;let te=l(L.tableKey,T.row,T.col);if(!te)continue;let j=R(_+(J-_)/2,M);return {type:"column",clientX:j.clientX-ni,clientY:j.clientY-ii,cellPmPos:te}}}}}return null}var or=Ze;export{Cn as CANVAS_PAGES_PADDING_PX,Tn as CANVAS_PAGE_GAP_PX,Zn as DISPLAY_LIST_TABLE_INSERT_HIDE_DELAY_MS,D as MIRROR_CLASS_NAMES,K as RustDisplayListSourceError,dn as applyInteractiveSdtFocus,pn as buildInteractiveOverlayPage,Ut as buildMirrorPage,Sn as buildRustDisplayFrame,gt as buildRustDisplayList,oe as canvasPageTops,kn as captureInlinePositionEmuFromDisplayList,Gn as computeA11yAnnouncements,_n as computeAnchorPositionsFromDisplayList,$n as computeAnchorPositionsFromYrs,Bn as createCanvasImageResolver,En as createDisplayListQueries,On as createYrsSidebarProjection,or as demoDisplayList,di as deriveDisplayListSelectedCellRects,si as deriveDisplayListTableFragments,ui as detectDisplayListTableInsertHover,yt as encodeDisplayListFrameExtras,Qn as extractTrackedChangesFromYrs,Un as findDisplayListHyperlinkAtPoint,Ye as findImagePrimitiveAtPoint,Ne as findImagePrimitiveByDocPos,wn as isDisplayListQuerySourceDead,jt as loadGlyphOutlineProvider,Fe as loadRustDisplayListQueryEngine,Jn as mergeHfAnchorPositionsFromDisplayList,Mn as onDisplayListQuerySourceFailure,Hn as snapshotFromSelectionContext,$e as visitAnchorKeys,se as yrsIdToNumericId};