@betteroffice/docx 0.0.4 → 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 (61) hide show
  1. package/README.md +2 -1
  2. package/dist/chunk-24DL53QL.mjs +1 -0
  3. package/dist/chunk-5F6DLQZP.mjs +1 -0
  4. package/dist/{chunk-YTILOUAA.mjs → chunk-BUZ2X5CT.mjs} +1 -1
  5. package/dist/{chunk-B4IR6YP4.mjs → chunk-GHEHBYQK.mjs} +1 -1
  6. package/dist/{chunk-NJHOPXZW.mjs → chunk-HLDJMU3R.mjs} +1 -1
  7. package/dist/{chunk-4V6MDZIK.mjs → chunk-HTDNSQ44.mjs} +1 -1
  8. package/dist/{chunk-NTSSE5QK.mjs → chunk-PI2I3TO5.mjs} +1 -1
  9. package/dist/{chunk-6KDV6AIL.mjs → chunk-TMHG7OAZ.mjs} +1 -1
  10. package/dist/{chunk-NBSLB77E.mjs → chunk-VRGUAKOC.mjs} +1 -1
  11. package/dist/collaboration/index.d.mts +6 -6
  12. package/dist/{content-C3sTRz-u.d.mts → content-DrqzbIr7.d.mts} +67 -18
  13. package/dist/core.d.mts +7 -7
  14. package/dist/core.mjs +1 -1
  15. package/dist/{displayListQueries-DLzpvJV6.d.mts → displayListQueries-DGDR-OWc.d.mts} +87 -50
  16. package/dist/docx/index.d.mts +5 -5
  17. package/dist/docx/index.mjs +1 -1
  18. package/dist/editor/index.d.mts +8 -8
  19. package/dist/{fontLoader-CMH3bZ2Z.d.mts → fontLoader-DnixuYST.d.mts} +1 -1
  20. package/dist/{formatting-BEkIBePP.d.mts → formatting-BqrFPeev.d.mts} +8 -0
  21. package/dist/{frameDelta-B2kC6XiP.d.mts → frameDelta-DMgR8n13.d.mts} +15 -10
  22. package/dist/generated/edit/docx_edit_bg.wasm +0 -0
  23. package/dist/generated/layout/docx_layout_bg.wasm +0 -0
  24. package/dist/generated/opc/ooxml_opc_bg.wasm +0 -0
  25. package/dist/generated/parse/docx_parse_bg.wasm +0 -0
  26. package/dist/{index-2piKi4gO.d.mts → index-ImoMd0Ju.d.mts} +32 -65
  27. package/dist/layout/index.d.mts +40 -13
  28. package/dist/layout/index.mjs +1 -1
  29. package/dist/layout/pagination/index.d.mts +4 -4
  30. package/dist/layout/render/index.d.mts +33 -77
  31. package/dist/layout/render/index.mjs +1 -1
  32. package/dist/plugin-api/RenderedDomContext.d.mts +7 -7
  33. package/dist/plugin-api/index.d.mts +3 -3
  34. package/dist/plugin-api/resolveItemPositions.d.mts +3 -3
  35. package/dist/{rustDisplayList-B0M2eBkU.d.mts → rustDisplayList-B9dQoLHI.d.mts} +74 -50
  36. package/dist/{rustMeasureSource-D1KsQvVC.d.mts → rustMeasureSource-C0EZB055.d.mts} +5 -2
  37. package/dist/{selectiveSave-CVoajSKE.d.mts → selectiveSave-CRh-_Y_C.d.mts} +3 -3
  38. package/dist/styles/index.d.mts +3 -3
  39. package/dist/{styles-BK3Jecxs.d.mts → styles-CMybYYHS.d.mts} +1 -1
  40. package/dist/types/content.d.mts +2 -2
  41. package/dist/types/document.d.mts +7 -7
  42. package/dist/{types-C1rv3KM-.d.mts → types-CXLxVF1t.d.mts} +27 -23
  43. package/dist/utils/comments.d.mts +2 -2
  44. package/dist/utils/index.d.mts +11 -13
  45. package/dist/utils/index.mjs +1 -1
  46. package/dist/utils/stylePreview.d.mts +2 -2
  47. package/dist/wasm-CJHQHBDE.mjs +1 -0
  48. package/dist/{wasm-JE7B3ROD.mjs → wasm-T2CRCO7S.mjs} +1 -1
  49. package/dist/wasm-edit.d.mts +505 -173
  50. package/dist/wasm-edit.mjs +1 -1
  51. package/dist/wasm-layout.d.mts +31 -28
  52. package/dist/wasm-layout.mjs +1 -1
  53. package/dist/wasm-opc.mjs +1 -1
  54. package/dist/wasm-parse.mjs +1 -1
  55. package/dist/yrs/index.d.mts +5 -5
  56. package/dist/yrs/index.mjs +1 -1
  57. package/dist/yrs/residentEngineWorker.mjs +1 -1
  58. package/package.json +19 -2
  59. package/dist/chunk-GGEGIQRK.mjs +0 -1
  60. package/dist/chunk-T4EZMUXM.mjs +0 -1
  61. package/dist/wasm-F2ETFAYL.mjs +0 -1
@@ -1,17 +1,17 @@
1
- import { a as DisplayPage, b as DisplayPrimitive, D as DisplayList, G as GlyphRunPrimitive, L as LinePrimitive, T as TextRunPrimitive } from '../../frameDelta-B2kC6XiP.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-B2kC6XiP.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-B0M2eBkU.mjs';
4
- import { a as DisplayListQueries, b as DisplayListRegionHit, D as DisplayListRect } from '../../displayListQueries-DLzpvJV6.mjs';
5
- export { c as DisplayListHitRegion, d as DisplayListImageGeometry, e as DisplayListImageRegion, f as DisplayListParagraphGeometry, g as DisplayListQuerySourceState, h as DisplayListVerticalMove, i as DisplayListVisualLine, L as LocatedImagePrimitive, R as ResidentDisplayListQueryEngine, j as captureInlinePositionEmuFromDisplayList, k as createDisplayListQueries, l as findImagePrimitiveAtPoint, m as findImagePrimitiveByDocPos, n as isDisplayListQuerySourceDead, o as onDisplayListQuerySourceFailure } from '../../displayListQueries-DLzpvJV6.mjs';
6
- import { u as YrsLoc, Y as YrsSession, v as YrsRevisionInfo } from '../../index-2piKi4gO.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 '../../formatting-BEkIBePP.mjs';
9
- import '../../content-C3sTRz-u.mjs';
8
+ import '../../formatting-BqrFPeev.mjs';
9
+ import '../../content-DrqzbIr7.mjs';
10
10
  import '../../docx/wrapTypes.mjs';
11
- import '../../types-C1rv3KM-.mjs';
11
+ import '../../types-CXLxVF1t.mjs';
12
12
  import '../pagination/index.mjs';
13
13
  import '../../types/document.mjs';
14
- import '../../styles-BK3Jecxs.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-CTBUQRYQ.mjs';import {b}from'../../chunk-TTRUPDAB.mjs';var Ue={pages:[{pageIndex:0,width:816,height:1056,primitives:[{kind:"rect",x:96,y:96,w:624,h:20,fill:"#fff9c4",blockId:0,docStart:1,docEnd:12},{kind:"text",text:"Hello Word",x:96,baselineY:110,width:84.5,font:"700 16px Calibri, sans-serif",color:"#000000",docStart:1,docEnd:11,blockId:0},{kind:"decoration",deco:"underline",x:96,y:113,w:84.5,h:1,color:"#000000",docStart:1,docEnd:11,blockId:0},{kind:"text",text:" \u2014 second run",x:180.5,baselineY:110,width:96.25,font:"400 16px Calibri, sans-serif",color:"#c0392b",docStart:11,docEnd:24,blockId:0},{kind:"line",x1:96,y1:140,x2:720,y2:140,strokeWidth:.75,color:"#666666",role:"table-border"},{kind:"image",relId:"rId7",x:96,y:160,w:200,h:120,docStart:30,docEnd:31,blockId:2}]}]};function Wt(){return import('../../wasm-JE7B3ROD.mjs').then(async e=>(await e.preloadLayoutWasm(),e.outlineGlyphJson))}var D={page:"layout-page layout-page-mirror",content:"layout-page-content",header:"layout-page-header",footer:"layout-page-footer",block:"layout-paragraph",table:"layout-table",tableRow:"layout-table-row",tableCell:"layout-table-cell",text:"layout-run layout-run-text",rect:"layout-mirror-rect",image:"layout-run layout-run-image",shape:"layout-run layout-run-shape",chart:"layout-run layout-run-chart",decoration:"layout-decoration",line:"layout-mirror-line",pageBorder:"layout-page-border",tableCut:"layout-table-cut-border",blockSdt:"layout-block-sdt",inlineSdtWidget:"layout-inline-sdt-widget",revisionPmark:"layout-revision-pmark",revisionPmarkGlyph:"layout-revision-pmark-glyph",revisionPmarkIns:"layout-revision-ins",revisionPmarkDel:"layout-revision-del",listMarker:"layout-list-marker",revisionTable:"oox-revision-table",revisionRow:"oox-revision-row",revisionCell:"oox-revision-cell",revisionIns:"oox-revision-ins",revisionDel:"oox-revision-del",revisionMerge:"oox-revision-merge",notes:"layout-page-notes",note:"layout-note",noteBacklink:"layout-note-backlink"};function Kt(e,t={}){let r=t.document??document,i=t.labels,n={labels:i,noteRefIds:new Set},s=r.createElement("div");s.className=D.page,s.setAttribute("role","document"),i?.page&&s.setAttribute("aria-label",i.page),s.dataset.pageIndex=String(e.pageIndex),e.sectionId!==void 0&&(s.dataset.sectionId=e.sectionId),e.sectionIndex!==void 0&&(s.dataset.sectionIndex=String(e.sectionIndex)),e.sectionPageIndex!==void 0&&(s.dataset.sectionPageIndex=String(e.sectionPageIndex)),e.sectionPageNumber!==void 0&&(s.dataset.sectionPageNumber=String(e.sectionPageNumber)),e.pageLabel!==void 0&&(s.dataset.pageLabel=e.pageLabel),s.style.position="relative",s.style.width=`${e.width}px`,s.style.height=`${e.height}px`,s.style.opacity="0",s.style.pointerEvents="none";let o=r.createElement("div");o.className=D.content,o.style.position="absolute",o.style.left="0",o.style.top="0",o.style.width=`${e.width}px`,o.style.height=`${e.height}px`,s.appendChild(o);for(let a of (e.pageBorders??[]).filter(l=>l.zOrder==="back"))o.appendChild(et(a,r,0));re(o,e.primitives,r,0,n);for(let a of e.noteAreas??[])o.appendChild(on(a,e,r,n));for(let a of [e.header,e.footer])a&&s.appendChild(Vt(a,e,r,n));for(let a of (e.pageBorders??[]).filter(l=>l.zOrder!=="back"))s.appendChild(et(a,r,0));return s}function Vt(e,t,r,i){let n=r.createElement("div");n.className=e.kind==="header"?D.header:D.footer,n.dataset.hfRid=e.rId;let s=e.kind==="header"?i.labels?.header:i.labels?.footer;return s&&(n.setAttribute("role","region"),n.setAttribute("aria-label",s)),n.style.position="absolute",n.style.left="0",n.style.top=`${e.y}px`,n.style.width=`${t.width}px`,n.style.height=`${e.height}px`,re(n,e.primitives,r,-e.y,i),n}function re(e,t,r,i,n){let s=new Map;for(let o of t){let a=o.kind==="line"?void 0:o.blockKey??o.blockId;if(a===void 0){e.appendChild(be(o,r,i,n));continue}let l=o.table,c=l?.tableId!==void 0?`table:${l.tableId}#${l.rowStart??0}`:a,u=s.get(c);if(!u){let y=r.createElement("div");y.dataset.blockId=String(l?.tableId??a),y.style.position="absolute",y.style.left="0",y.style.top="0",e.appendChild(y),u={el:y,prims:[]},s.set(c,u);}u.prims.push(o);}for(let o of s.values())zt(o,r,i,n);qt(s);}function zt(e,t,r,i){let{el:n,prims:s}=e;if(!s.some(g=>g.cell!==void 0||g.structuralRevision?.scope==="table"||g.structuralRevision?.scope==="row"||g.structuralRevision?.scope==="cell")){qe(n,s,t,r,i);return}n.className=D.table,n.setAttribute("role","table");let a=s.find(g=>g.table!==void 0)?.table;e.table=a,e.cells=[],a?.tableId!==void 0&&(n.dataset.tableId=a.tableId),a?.rowStart!==void 0&&(n.dataset.rowStart=String(a.rowStart)),a?.rowEnd!==void 0&&(n.dataset.rowEnd=String(a.rowEnd)),a?.headerRowCount!==void 0&&(n.dataset.headerRowCount=String(a.headerRowCount)),a?.parentTableId!==void 0&&(n.dataset.parentTableId=a.parentTableId),a?.caption&&n.setAttribute("aria-label",a.caption),a?.description&&n.setAttribute("aria-description",a.description);let l=ge(s,"table");l&&he(n,l),Be(n,s.find(g=>g.sdt!==void 0)?.sdt);for(let g of s)g.cell===void 0&&n.appendChild(be(g,t,r,i));let c=new Map,u=0,y=0;for(let g of s){if(g.cell===void 0)continue;let{row:m,col:h}=g.cell;u=Math.max(u,m+(g.cell.rowSpan??1)),y=Math.max(y,h+(g.cell.colSpan??1));let R=c.get(m);R||(R=new Map,c.set(m,R));let k=R.get(h);k||(k={ref:g.cell,prims:[]},R.set(h,k)),k.prims.push(g);}n.setAttribute("aria-rowcount",String(a?.rowCount??u)),n.setAttribute("aria-colcount",String(a?.columnCount??y));for(let g of [...c.keys()].sort((m,h)=>m-h)){let m=t.createElement("div");m.className=D.tableRow,m.setAttribute("role","row"),m.setAttribute("aria-rowindex",String(g+1));let h=ge(s,"row",g);h&&he(m,h),m.style.position="absolute",m.style.left="0",m.style.top="0",n.appendChild(m);let R=c.get(g);for(let k of [...R.keys()].sort((I,x)=>I-x)){let I=R.get(k),x=t.createElement("div");x.className=D.tableCell,x.setAttribute("role",I.ref.isHeader?"columnheader":"cell"),x.setAttribute("aria-colindex",String(k+1)),I.ref.cellId&&(x.id=I.ref.cellId),I.ref.headerIds?.length&&x.setAttribute("aria-labelledby",I.ref.headerIds.join(" ")),I.ref.repeatedHeader&&(x.dataset.repeatedHeader="true"),I.ref.noWrap&&(x.dataset.noWrap="true");let P=I.ref.rowSpan??1,T=I.ref.colSpan??1;P>1&&x.setAttribute("aria-rowspan",String(P)),T>1&&x.setAttribute("aria-colspan",String(T));let M=ge(I.prims,"cell",g,k);M&&he(x,M),I.ref.continuation&&(x.dataset.vmergeContinuation="true"),x.style.position="absolute",x.style.left="0",x.style.top="0";let Y=new Map,z=[];for(let w of I.prims){let N=w.blockKey??w.blockId;if(N===void 0){z.push(w);continue}let F=Y.get(N);F?F.push(w):Y.set(N,[w]);}for(let w of Te(z))x.appendChild(be(w,t,r,i));for(let[w,N]of Y){let F=t.createElement("div");F.dataset.blockId=String(w),F.style.position="absolute",F.style.left="0",F.style.top="0",qe(F,N,t,r,i),x.appendChild(F);}Ut(x,I.prims),ot(x,I.prims),e.cells.push({el:x,bounds:rt(I.prims)}),m.appendChild(x);}}Ce(n,s);}function qe(e,t,r,i,n){let s=t.find(c=>c.chart!==void 0)?.chart;e.className=s?`${D.block} ${D.chart}`:D.block,e.setAttribute("role",s?"img":"paragraph"),s?.label&&e.setAttribute("aria-label",s.label);for(let c of Te(t))e.appendChild(be(c,r,i,n));let o=ge(t,"pmark");o&&he(e,o),jt(e,t,r,i),Be(e,t.find(c=>c.sdt!==void 0)?.sdt);let a=t.find(c=>c.paraId!==void 0)?.paraId;a!==void 0&&(e.dataset.paraId=a);let l=t.find(c=>c.fromLine!==void 0);l?.fromLine!==void 0&&(e.dataset.fromLine=String(l.fromLine),l.toLine!==void 0&&(e.dataset.toLine=String(l.toLine))),ot(e,t),en(e,t);}function jt(e,t,r,i){Ce(e,t);let n=Number(e.dataset.docStart),s=Number(e.dataset.docEnd),o=t.map(y=>y.fragmentDocStart).filter(y=>Number.isFinite(y)),a=t.map(y=>y.fragmentDocEnd).filter(y=>Number.isFinite(y)),l=o.length>0?Math.min(...o):void 0,c=a.length>0?Math.max(...a):void 0,u=l??(Number.isFinite(n)&&n===s&&n>0?n-1:void 0);if(u!==void 0&&(e.dataset.docStart=String(u)),c!==void 0&&(e.dataset.docEnd=String(c)),u!==void 0&&!t.some(y=>y.docStart===u)){let y=Te(t).find(m=>Ae(m)!==void 0),g=y?Ae(y):void 0;if(g){let m=r.createElement("span");m.className="layout-mirror-structural-anchor",m.dataset.docStart=String(u),m.dataset.docEnd=String(u),U(m,g,i),e.insertBefore(m,e.firstChild);}}}function Ut(e,t){let r=e.querySelectorAll(".layout-paragraph[data-doc-start]"),i=1/0,n=-1/0;for(let s of r){let o=Number(s.dataset.docStart),a=Number(s.dataset.docEnd);Number.isFinite(o)&&(i=Math.min(i,o)),Number.isFinite(a)&&(n=Math.max(n,a));}i!==1/0&&(e.dataset.docStart=String(i)),n!==-1/0&&(e.dataset.docEnd=String(n)),i===1/0&&n===-1/0&&Ce(e,t);}function qt(e){let t=new Map;for(let r of e.values())r.table?.tableId&&t.set(r.table.tableId,r);for(let r of e.values()){let i=r.table?.parentTableId;if(!i)continue;let n=t.get(i),s=rt(r.prims);if(!n?.cells?.length||!s)continue;let o=s.x+s.w/2,a=s.y+s.h/2,l=n.cells.filter(c=>c.bounds&&Zt(o,a,c.bounds));l.sort((c,u)=>Ze(c.bounds)-Ze(u.bounds)),l[0]?.el.appendChild(r.el);}}function Zt(e,t,r){return e>=r.x&&e<=r.x+r.w&&t>=r.y&&t<=r.y+r.h}function Ze(e){return e.w*e.h}function rt(e){let t;for(let r of e){let i=r.clipGroup?.clip,n=i?.x!==void 0&&i.y!==void 0&&i.w!==void 0&&i.h!==void 0?{x:i.x,y:i.y,w:i.w,h:i.h}:Ae(r);if(!n)continue;if(!t){t={...n};continue}let s=Math.max(t.x+t.w,n.x+n.w),o=Math.max(t.y+t.h,n.y+n.h);t.x=Math.min(t.x,n.x),t.y=Math.min(t.y,n.y),t.w=s-t.x,t.h=o-t.y;}return t}function Ae(e){switch(e.kind){case "text":return c(e);case "glyphRun":return d(e);case "rect":return {x:e.x,y:e.y,w:e.w,h:e.h};case "image":case "shape":return {x:e.x,y:e.y,w:e.w,h:e.h};case "decoration":return {x:e.x,y:e.y,w:e.w,h:e.h}}}function Te(e){let t=e.filter(i=>i.logicalOrder!==void 0).sort((i,n)=>(i.logicalOrder??0)-(n.logicalOrder??0)||(i.docStart??0)-(n.docStart??0));if(t.length<2)return e;let r=0;return e.map(i=>i.logicalOrder===void 0?i:t[r++])}function ot(e,t){let r=t.find(s=>s.lang)?.lang;r&&(e.lang=r);let i=t.find(s=>s.bidiLevel!==void 0||"rtl"in s);if(!i)return;let n=i.bidiLevel!==void 0?i.bidiLevel%2===1:"rtl"in i?i.rtl:false;e.dir=n?"rtl":"ltr";}function en(e,t){let r=t.find(i=>i.ariaLabel||i.ariaDescription||i.decorative||i.hiddenObject||i.groupId);r&&at(e,r);}function Ce(e,t){let r,i;for(let n of t)n.docStart!==void 0&&(r=r===void 0?n.docStart:Math.min(r,n.docStart)),n.docEnd!==void 0&&(i=i===void 0?n.docEnd:Math.max(i,n.docEnd));r!==void 0&&(e.dataset.docStart=String(r)),i!==void 0&&(e.dataset.docEnd=String(i));}function ge(e,t,r,i){return e.find(n=>{let s=n.structuralRevision;return !(!s||s.scope!==t||r!==void 0&&s.rowIndex!==r||i!==void 0&&s.colIndex!==i)})?.structuralRevision}function be(e$1,t,r,i){switch(e$1.kind){case "text":{let n=tt(t,e$1,i);return n.className=D.text,n.textContent=e$1.text,U(n,c(e$1),r),n.style.font=e$1.font,nt(n,e$1),it(n,e$1),Pe(n,e$1.hidden&&e$1.opacity===void 0?.4:e$1.opacity,e$1.rotationDeg,e$1.horizontalScale),e$1.structuralRevision?.scope==="pmark"&&(n.classList.add(D.revisionPmarkGlyph),e$1.structuralRevision.kind==="ins"&&n.classList.add(D.revisionPmarkIns),e$1.structuralRevision.kind==="del"&&n.classList.add(D.revisionPmarkDel),n.setAttribute("aria-hidden","true")),e$1.listMarker&&(n.classList.add(D.listMarker),n.setAttribute("aria-hidden","true"),e$1.listMarkerRevision&&(n.style.color=e$1.listMarkerRevision==="ins"?"rgb(46, 125, 50)":"rgb(198, 40, 40)")),ne(n,e$1),n}case "glyphRun":{let n=tt(t,e$1,i);return n.className=D.text,n.textContent=e$1.text,U(n,d(e$1),r),n.style.fontSize=`${e$1.size}px`,tn(n,e$1.fallbackFont),nt(n,e$1),it(n,e$1),Pe(n,e$1.hidden&&e$1.opacity===void 0?.4:e$1.opacity,e$1.rotationDeg,e$1.horizontalScale),ne(n,e$1),n}case "rect":{let n=t.createElement("div");return n.className=D.rect,U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(n,e$1),n}case "line":{let n=t.createElement("div");return n.className=e$1.role==="table-cut"?D.tableCut:D.line,e$1.role&&e$1.role!=="table-cut"&&(n.dataset.role=e$1.role),U(n,e(e$1),r),n.setAttribute("aria-hidden","true"),n}case "image":{let n=e$1.href?t.createElement("a"):t.createElement("div");return n.className=D.image,e$1.decorative?n.setAttribute("aria-hidden","true"):(n.setAttribute("role","img"),e$1.altText&&n.setAttribute("aria-label",e$1.altText)),st(n,e$1),n.dataset.relId=e$1.relId,U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),Pe(n,e$1.opacity,e$1.rotationDeg),e$1.filter&&(n.style.filter=e$1.filter),ne(n,e$1),e$1.revision&&(n.style.outline=`2px solid ${e$1.revision.kind==="ins"?"rgb(46, 125, 50)":"rgb(198, 40, 40)"}`),e$1.href||(n.style.pointerEvents="auto"),n}case "shape":{let n=t.createElement("div");return n.className=D.shape,e$1.decorative?n.setAttribute("aria-hidden","true"):n.setAttribute("role","img"),U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),nn(n,e$1.transform),ne(n,e$1),n}case "decoration":{let n=t.createElement("span");return n.className=D.decoration,n.dataset.deco=e$1.deco,U(n,{x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h},r),ne(n,e$1),n}}}function et(e,t,r){let i=t.createElement("div");return i.className=D.pageBorder,U(i,{x:e.x,y:e.y,w:e.w,h:e.h},r),i.style.boxSizing="border-box",i.style.pointerEvents="none",i.style.zIndex=e.zOrder==="back"?"0":"20",ye(i,"Top",e.top),ye(i,"Right",e.right),ye(i,"Bottom",e.bottom),ye(i,"Left",e.left),i}function U(e,t,r=0){e.style.position="absolute",e.style.left=`${t.x}px`,e.style.top=`${t.y+r}px`,e.style.width=`${t.w}px`,e.style.height=`${t.h}px`;}function tt(e,t,r){let i=t.noteRef?.id!==void 0?t.noteRef:void 0,n=t.href||i?e.createElement("a"):e.createElement("span");if(st(n,t),i&&!t.href){let s=i.kind??"footnote",o=`oox-${s}-${i.id}`;n.setAttribute("href",`#${o}`),n.setAttribute("role","doc-noteref");let a=`oox-noteref-${s}-${i.id}`;r.noteRefIds.has(a)||(r.noteRefIds.add(a),n.id=a);}return n}function st(e,t){let{href:r}=t;if(!r)return;e.setAttribute("href",r),e.dataset.href=r;let i=t.linkTitle??t.tooltip;i&&(e.title=i),t.linkTarget?e.setAttribute("target",t.linkTarget):r.startsWith("#")||e.setAttribute("target","_blank"),e.getAttribute("target")==="_blank"&&e.setAttribute("rel","noopener noreferrer"),t.linkHistory!==void 0&&(e.dataset.linkHistory=String(t.linkHistory)),t.linkDocLocation!==void 0&&(e.dataset.linkDocLocation=t.linkDocLocation);}function tn(e,t){if(t)for(let r of t.split(" ")){if(r.endsWith("px"))break;r==="italic"?e.style.fontStyle="italic":/^[1-9]00$/.test(r)&&r!=="400"&&(e.style.fontWeight=r);}}function nt(e,t){t.lang&&(e.lang=t.lang),t.bidiLevel!==void 0?e.dir=t.bidiLevel%2===1?"rtl":"ltr":t.rtl&&(e.dir="rtl");}function ye(e,t,r){if(!r)return;let i=e.style;i[`border${t}Width`]=`${r.width}px`,i[`border${t}Style`]=r.style,i[`border${t}Color`]=r.color;}function Pe(e,t,r,i){t!==void 0&&(e.style.opacity=String(t));let n=[];r&&n.push(`rotate(${r}deg)`),i!==void 0&&i!==100&&n.push(`scaleX(${i/100})`),n.length>0&&(e.style.transform=n.join(" "),e.style.transformOrigin=i!==void 0&&i!==100?"left center":"center center");}function nn(e,t){if(!t)return;let r=[];t.rotation&&r.push(`rotate(${t.rotation}deg)`),t.flipH&&r.push("scaleX(-1)"),t.flipV&&r.push("scaleY(-1)"),r.length!==0&&(e.style.transform=r.join(" "),e.style.transformOrigin="center center");}function it(e,t){if(t.allCaps&&(e.style.textTransform="uppercase"),t.smallCaps&&(e.style.fontVariant="small-caps"),t.hidden&&(e.classList.add("docx-hidden"),e.style.textDecoration="underline dotted"),t.textShadow==="emboss"?e.style.textShadow="1px 1px 1px rgba(255,255,255,0.5), -1px -1px 1px rgba(0,0,0,0.3)":t.textShadow==="imprint"?e.style.textShadow="-1px -1px 1px rgba(255,255,255,0.5), 1px 1px 1px rgba(0,0,0,0.3)":t.textShadow==="shadow"&&(e.style.textShadow="1px 1px 2px rgba(0,0,0,0.3)"),t.textOutline&&(e.style.webkitTextStroke="1px currentColor",e.style.webkitTextFillColor="transparent"),t.emphasisMark){let r=t.emphasisMark==="comma"?"filled sesame":t.emphasisMark==="circle"?"filled circle":"filled dot",i=t.emphasisMark==="underDot"?"under right":"over right";e.style.textEmphasis=r,e.style.textEmphasisPosition=i,e.style.webkitTextEmphasis=r,e.style.webkitTextEmphasisPosition=i;}t.textEffect&&(e.classList.add("docx-text-effect",`docx-text-effect-${t.textEffect}`),e.dataset.effect=t.textEffect);}function ne(e,t){if(t.docStart!==void 0&&(e.dataset.docStart=String(t.docStart)),t.docEnd!==void 0&&(e.dataset.docEnd=String(t.docEnd)),t.commentIds&&t.commentIds.length>0&&(e.dataset.commentId=t.commentIds.join(" ")),t.field){let r=t.field.type??t.field.category;r&&(e.dataset.fieldType=r),t.field.category&&(e.dataset.fieldCategory=t.field.category),t.field.instruction&&(e.dataset.fieldInstruction=t.field.instruction);let i=t.field.instruction?.trim()||r;i&&e.setAttribute("aria-description",i);}if(t.noteRef?.id!==void 0&&(e.dataset.noteRefKind=t.noteRef.kind??"footnote",e.dataset.noteRefId=String(t.noteRef.id)),t.comment){t.comment.status&&(e.dataset.commentStatus=t.comment.status),t.comment.authorId&&(e.dataset.commentAuthorId=t.comment.authorId),t.comment.paletteIndex!==void 0&&(e.dataset.commentPaletteIndex=String(t.comment.paletteIndex)),t.comment.color&&(e.dataset.commentColor=t.comment.color),t.comment.selected!==void 0&&(e.dataset.commentSelected=String(t.comment.selected)),t.comment.authorName&&(e.dataset.commentAuthorName=t.comment.authorName),t.comment.date&&(e.dataset.commentDate=t.comment.date),t.comment.replyCount!==void 0&&(e.dataset.commentReplyCount=String(t.comment.replyCount));let r=[t.comment.status,t.comment.authorName??t.comment.authorId,t.comment.date,t.comment.text,...(t.comment.replies??[]).map(i=>[i.authorName,i.text].filter(Boolean).join(": "))].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}if(t.revision){e.dataset.changeAuthor=t.revision.author,e.dataset.changeDate=t.revision.date,e.dataset.revisionId=t.revision.revisionId,e.classList.add(t.revision.kind==="ins"?"docx-insertion":"docx-deletion"),e.hasAttribute("role")||e.setAttribute("role",t.revision.kind==="ins"?"insertion":"deletion");let r=[t.revision.author,t.revision.date].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}t.href&&(e.dataset.href=t.href),rn(e,t.inlineSdtWidget),Be(e,t.sdt),t.sdtPath?.length&&(e.dataset.sdtPath=t.sdtPath.map(r=>r.groupId).join(" ")),t.logicalOrder!==void 0&&(e.dataset.logicalOrder=String(t.logicalOrder)),t.bidiLevel!==void 0&&(e.dataset.bidiLevel=String(t.bidiLevel)),at(e,t);}function at(e,t){if(t.groupId&&(e.dataset.groupId=t.groupId),t.decorative||t.hiddenObject){e.setAttribute("aria-hidden","true"),e.removeAttribute("role"),e.removeAttribute("aria-label"),e.removeAttribute("aria-description");return}t.ariaLabel&&e.setAttribute("aria-label",t.ariaLabel),t.ariaDescription&&e.setAttribute("aria-description",t.ariaDescription);}function Be(e,t){t&&(e.classList.add(D.blockSdt),e.dataset.sdtGroupId=t.groupId,e.dataset.sdtType=t.sdtType,t.depth!==void 0&&(e.dataset.sdtDepth=String(t.depth)),t.tag!==void 0&&(e.dataset.sdtTag=t.tag),t.alias!==void 0&&(e.dataset.sdtAlias=t.alias),t.lock!==void 0&&(e.dataset.sdtLock=t.lock),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked)),t.bound!==void 0&&(e.dataset.sdtBound=String(t.bound)),t.repeatingItem!==void 0&&(e.dataset.sdtRepeatingItem=String(t.repeatingItem)),!e.hasAttribute("aria-label")&&(t.alias||t.tag)&&e.setAttribute("aria-label",t.alias||t.tag||""),t.lock&&e.setAttribute("aria-readonly","true"));}function rn(e,t){if(!t)return;e.classList.add(D.inlineSdtWidget);let r=t.controlKind??t.kind;e.dataset.sdtWidget=r,e.dataset.sdtGroupId=t.groupId,e.dataset.sdtPos=String(t.pos),t.tag!==void 0&&(e.dataset.sdtTag=t.tag),t.alias!==void 0&&(e.dataset.sdtAlias=t.alias),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked),e.setAttribute("aria-checked",String(t.checked))),t.controlId!==void 0&&(e.dataset.sdtControlId=String(t.controlId)),t.value!==void 0&&(e.dataset.sdtValue=t.value),t.selectedIndex!==void 0&&(e.dataset.sdtSelectedIndex=String(t.selectedIndex)),t.dateFormat!==void 0&&(e.dataset.sdtDateFormat=t.dateFormat),t.dateLanguage!==void 0&&(e.dataset.sdtDateLanguage=t.dateLanguage),t.locked!==void 0&&(e.dataset.sdtLocked=String(t.locked)),r==="checkbox"?e.setAttribute("role","checkbox"):r==="dropDownList"||r==="comboBox"?(e.setAttribute("role","combobox"),e.setAttribute("aria-haspopup","listbox"),e.setAttribute("aria-expanded","false")):r==="date"?(e.setAttribute("role","button"),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("role","group"),e.removeAttribute("tabindex"),(t.alias||t.tag)&&e.setAttribute("aria-label",t.alias||t.tag||""),t.locked&&e.setAttribute("aria-disabled","true");}function he(e,t){switch(t.scope){case "pmark":e.classList.add(D.revisionPmark),t.kind==="ins"&&e.classList.add(D.revisionPmarkIns),t.kind==="del"&&e.classList.add(D.revisionPmarkDel);break;case "table":e.classList.add(D.revisionTable,Ee(t.kind));break;case "row":e.classList.add(D.revisionRow,Ee(t.kind));break;case "cell":e.classList.add(D.revisionCell,Ee(t.kind));break}e.dataset.revisionId=t.revisionId,e.dataset.revisionAuthor=t.author,t.date&&(e.dataset.revisionDate=t.date);let r=[t.author,t.date].filter(Boolean).join(", ");r&&e.setAttribute("aria-description",r);}function Ee(e){return e==="ins"?D.revisionIns:e==="del"?D.revisionDel:D.revisionMerge}function on(e,t,r,i){let n=r.createElement("section");n.className=D.notes,n.dataset.noteKind=e.kind??"footnote",e.sectionId&&(n.dataset.sectionId=e.sectionId),e.columns!==void 0&&(n.dataset.columns=String(e.columns)),n.style.position="absolute",n.style.left="0",n.style.top=`${e.y??0}px`,n.style.width=`${t.width}px`,n.style.height=`${e.height??0}px`;let s=new Map;for(let a of e.notes??[])a.id!==void 0&&s.set(a.id,a);re(n,e.separatorPrimitives??[],r,-(e.y??0),i);let o=[...e.primitives??[]];for(let a of e.noteIds??[]){let c=`${e.kind??"footnote"}-${a}`,u=o.filter(m=>m.groupId===c);if(u.length===0)continue;for(let m of u){let h=o.indexOf(m);h>=0&&o.splice(h,1);}let y=r.createElement("aside");y.className=D.note,y.id=`oox-${c}`,y.dataset.noteId=String(a),y.setAttribute("role",e.kind==="endnote"?"doc-endnote":"doc-footnote");let g=s.get(a);if(g&&(g.label!==void 0&&(y.dataset.noteLabel=g.label),g.anchorDocStart!==void 0&&(y.dataset.anchorDocStart=String(g.anchorDocStart)),g.anchorDocEnd!==void 0&&(y.dataset.anchorDocEnd=String(g.anchorDocEnd))),re(y,u,r,-(e.y??0),i),g){let m=r.createElement("a");m.className=D.noteBacklink,m.setAttribute("role","doc-backlink"),m.setAttribute("href",`#oox-noteref-${c}`);let h=i.labels?.noteBacklink??g.label??String(a);m.setAttribute("aria-label",h),y.appendChild(m);}n.appendChild(y);}return o.length>0&&re(n,o,r,-(e.y??0),i),n}function sn(e,t){for(let r of Array.from(e.querySelectorAll(".layout-canvas-sdt-box[data-sdt-group-id]")))r.classList.toggle("layout-sdt-focused",t.has(r.dataset.sdtGroupId??""));}var an=".layout-sdt-widget, .layout-inline-sdt-widget, .layout-sdt-repeat-btn";function ln(e,t={}){let r=t.document??document,i=r.createElement("div");i.className="layout-interactive-overlay",i.dataset.pageIndex=String(e.pageIndex),i.style.position="absolute",i.style.inset="0",i.style.width=`${e.width}px`,i.style.height=`${e.height}px`,i.style.pointerEvents="none",i.addEventListener("mousedown",a=>{a.target?.closest?.(an)&&(a.preventDefault(),a.stopPropagation());});let n=cn(e),s=dn(n);for(let a of [...s.values()].sort(pn))i.appendChild(mn(a,r,t.labels));let o=un(n);for(let a of o.values())i.appendChild(fn(a,r,t.labels));return i}function cn(e){return [...e.primitives,...e.header?.primitives??[],...e.footer?.primitives??[],...(e.noteAreas??[]).flatMap(t=>[...t.separatorPrimitives??[],...t.primitives??[]])]}function dn(e){let t=new Map;for(let r of e){let i=ct(r);if(!i)continue;let n=r.sdtPath?.length?r.sdtPath:r.sdt?[r.sdt]:[];for(let s of n){let o=t.get(s.groupId);o?o.rect=dt(o.rect,i):t.set(s.groupId,{attrs:s,rect:{...i}});}}return t}function un(e){let t=new Map;for(let r of e){let i=r.inlineSdtWidget,n=ct(r);if(!i||!n)continue;let s=`${i.groupId}:${i.pos}:${i.controlKind??i.kind}`,o=t.get(s);o?o.rect=dt(o.rect,n):t.set(s,{attrs:i,rect:{...n}});}return t}function pn(e,t){return (e.attrs.depth??0)-(t.attrs.depth??0)||e.rect.y-t.rect.y||e.rect.x-t.rect.x}function mn(e,t,r){let{attrs:i,rect:n}=e,s=t.createElement("div");s.className="layout-block-sdt-box layout-canvas-sdt-box",bn(s,i),ut(s,n),s.style.pointerEvents="none";let o=i.alias||i.tag;if(o){let c=t.createElement("span");c.className="layout-block-sdt-label",c.textContent=o,s.appendChild(c);}let a=gn(i.sdtType),l=!i.bound&&!hn(i.lock);if(a&&l){let c=t.createElement("button");c.type="button",c.className="layout-sdt-widget",c.dataset.sdtWidget=a,c.dataset.sdtGroupId=i.groupId,i.tag&&(c.dataset.sdtTag=i.tag),i.alias&&(c.dataset.sdtAlias=i.alias),(o||r?.control)&&c.setAttribute("aria-label",o||r?.control||""),a==="dropdown"&&c.setAttribute("aria-haspopup","listbox"),a==="date"&&c.setAttribute("aria-haspopup","dialog"),a==="checkbox"&&(c.setAttribute("role","checkbox"),c.setAttribute("aria-checked",String(i.checked??false))),c.textContent=a==="dropdown"?"\u25BE":a==="date"?"\u25A3":i.checked?"\u2612":"\u2610",c.style.pointerEvents="auto",s.appendChild(c);}if(i.repeatingItem&&l){let c=t.createElement("div");c.className="layout-sdt-repeat-controls",c.style.pointerEvents="auto",c.appendChild(lt(t,i,"add","\uFF0B",r?.addRepeatingItem,o)),c.appendChild(lt(t,i,"remove","\u2715",r?.removeRepeatingItem,o)),s.appendChild(c);}return s}function lt(e,t,r,i,n,s){let o=e.createElement("button");return o.type="button",o.className="layout-sdt-repeat-btn",o.dataset.sdtRepeat=r,o.dataset.sdtGroupId=t.groupId,t.tag&&(o.dataset.sdtTag=t.tag),(n||s)&&o.setAttribute("aria-label",n||s||""),o.textContent=i,o}function fn(e,t,r){let{attrs:i,rect:n}=e,s=i.controlKind??i.kind,o=t.createElement("button");return o.type="button",o.className="layout-sdt-widget layout-inline-sdt-widget layout-canvas-inline-sdt-widget",o.dataset.sdtWidget=yn(s),o.dataset.sdtGroupId=i.groupId,o.dataset.sdtPos=String(i.pos),i.tag&&(o.dataset.sdtTag=i.tag),i.alias&&(o.dataset.sdtAlias=i.alias),i.controlId!==void 0&&(o.dataset.sdtControlId=String(i.controlId)),i.value!==void 0&&(o.dataset.sdtValue=i.value),i.selectedIndex!==void 0&&(o.dataset.sdtSelectedIndex=String(i.selectedIndex)),i.dateFormat&&(o.dataset.sdtDateFormat=i.dateFormat),i.dateLanguage&&(o.dataset.sdtDateLanguage=i.dateLanguage),i.listItems?.length&&(o.dataset.sdtListItems=JSON.stringify(i.listItems)),(i.alias||i.tag||r?.control)&&o.setAttribute("aria-label",i.alias||i.tag||r?.control||""),s==="checkbox"?(o.setAttribute("role","checkbox"),o.setAttribute("aria-checked",String(i.checked??false))):s==="dropDownList"||s==="comboBox"?(o.setAttribute("aria-haspopup","listbox"),o.setAttribute("aria-expanded","false")):s==="date"&&o.setAttribute("aria-haspopup","dialog"),o.disabled=i.locked===true,o.textContent=s==="checkbox"?i.checked?"\u2612":"\u2610":s==="date"?"\u25A3":s==="picture"?"\u25A7":"\u25BE",ut(o,n),o.style.pointerEvents="auto",o}function yn(e){return e==="dropDownList"||e==="comboBox"?"dropdown":e}function gn(e){return e==="checkbox"?"checkbox":e==="dropDownList"||e==="comboBox"?"dropdown":e==="date"?"date":null}function hn(e){return e==="contentLocked"||e==="sdtContentLocked"||e==="sdtLocked"}function bn(e,t){e.dataset.sdtGroupId=t.groupId,e.dataset.sdtType=t.sdtType,t.depth!==void 0&&(e.dataset.sdtDepth=String(t.depth)),t.tag&&(e.dataset.sdtTag=t.tag),t.alias&&(e.dataset.sdtAlias=t.alias),t.lock&&(e.dataset.sdtLock=t.lock),t.checked!==void 0&&(e.dataset.sdtChecked=String(t.checked)),t.bound!==void 0&&(e.dataset.sdtBound=String(t.bound)),t.repeatingItem!==void 0&&(e.dataset.sdtRepeatingItem=String(t.repeatingItem));}function ct(e$1){let t=e$1.clipGroup?.clip;if(t?.x!==void 0&&t.y!==void 0&&t.w!==void 0&&t.h!==void 0)return {x:t.x,y:t.y,w:t.w,h:t.h};switch(e$1.kind){case "text":return c(e$1);case "glyphRun":return d(e$1);case "rect":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h};case "line":return e(e$1);case "image":case "shape":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h};case "decoration":return {x:e$1.x,y:e$1.y,w:e$1.w,h:e$1.h}}}function dt(e,t){let r=Math.min(e.x,t.x),i=Math.min(e.y,t.y),n=Math.max(e.x+e.w,t.x+t.w),s=Math.max(e.y+e.h,t.y+t.h);return {x:r,y:i,w:n-r,h:s-i}}function ut(e,t){e.style.position="absolute",e.style.left=`${t.x}px`,e.style.top=`${t.y}px`,e.style.width=`${Math.max(1,t.w)}px`,e.style.height=`${Math.max(1,t.h)}px`;}var V=class extends Error{constructor(r,i){let n=i instanceof Error?i.message:String(i);super(`Rust display-list ${r} failed: ${n}`);b(this,"stage");this.name="RustDisplayListSourceError",this.stage=r;}},pt=null;function He(){return pt??(pt=import('../../wasm-JE7B3ROD.mjs').then(async e=>(await e.preloadLayoutWasm(),{buildDisplayListJson:e.buildDisplayListJson,hitTestRegionsJson:e.hitTestRegionsJson,verticalMoveJson:e.verticalMoveJson,rangeRectsJson:e.rangeRectsJson,rangeRectsRegionJson:e.rangeRectsRegionJson,hasRangeRectsRegion:e.hasRangeRectsRegion,hasDisplayListSession:e.hasDisplayListSession,openDisplayList:e.openDisplayList,closeDisplayList:e.closeDisplayList,updateDisplayList:e.updateDisplayList,hasDisplayListUpdate:e.hasDisplayListUpdate,hitTestRegionsByHandle:e.hitTestRegionsByHandle,verticalMoveByHandle:e.verticalMoveByHandle,rangeRectsByHandle:e.rangeRectsByHandle,rangeRectsRegionByHandle:e.rangeRectsRegionByHandle}))),pt}function Ge(){return He()}function xn(e,t){let r=e.measured,i="[";for(let s=0;s<r.length;s++){s>0&&(i+=",");let o=r[s],a=o.measure,l;if(t&&a!==null&&typeof a=="object"){let c=a;l=t.get(c),l===void 0&&(l=JSON.stringify(o.measure),t.set(c,l));}else l=JSON.stringify(o.measure);i+='{"block":'+JSON.stringify(o.block)+',"measure":'+l+"}";}i+="]";let n='{"measured":'+i+',"options":'+JSON.stringify(e.options)+',"layout":'+JSON.stringify(e.layout);return e.contractVersion!==void 0&&(n+=',"contractVersion":'+JSON.stringify(e.contractVersion)),e.headersFooters!==void 0&&(n+=',"headersFooters":'+JSON.stringify(e.headersFooters)),e.fontChains!==void 0&&(n+=',"fontChains":'+JSON.stringify(e.fontChains)),e.noteAreas!==void 0&&(n+=',"noteAreas":'+JSON.stringify(e.noteAreas)),e.resolvedCommentIds!==void 0&&(n+=',"resolvedCommentIds":'+JSON.stringify(e.resolvedCommentIds)),e.commentAuthors!==void 0&&(n+=',"commentAuthors":'+JSON.stringify(e.commentAuthors)),e.commentThreads!==void 0&&(n+=',"commentThreads":'+JSON.stringify(e.commentThreads)),n+="}",n}function mt(e){let t={};return e.contractVersion!==void 0&&(t.contractVersion=e.contractVersion),e.headersFooters!==void 0&&(t.headersFooters=e.headersFooters),e.fontChains!==void 0&&(t.fontChains=e.fontChains),e.noteAreas!==void 0&&(t.noteAreas=e.noteAreas),e.resolvedCommentIds!==void 0&&(t.resolvedCommentIds=e.resolvedCommentIds),e.commentAuthors!==void 0&&(t.commentAuthors=e.commentAuthors),e.commentThreads!==void 0&&(t.commentThreads=e.commentThreads),JSON.stringify(t)}var Ln=new WeakMap;async function ft(e,t){let r;try{r=t??await He();}catch(s){throw new V("load",s)}let i,n;try{i=xn(e,Ln),n=r.buildDisplayListJson(i);}catch(s){throw new V("build",s)}try{return JSON.parse(n)}catch(s){throw new V("parse",s)}}async function Rn(e,t$1,r=null){let i;try{i=t$1??await He();}catch(l){throw new V("load",l)}if(!i.buildDisplayListFrame)return {displayList:await ft(e,i),frame:null,transport:"json"};let n=mt(e),s$1;try{s$1=i.buildDisplayListFrame(n,r?.frameEpoch??0);}catch(l){throw new V("build",l)}let o;try{o=s(s$1);}catch(l){throw new V("decode",l)}let a;try{a=t(r,o);}catch(l){throw new V("apply",l)}return {displayList:a.displayList,frame:a,transport:"frame-delta-v1"}}function yt(e,t,r){if(t==="body")return e.primitives.filter(n=>n.kind==="image");let i=t==="header"?e.header:e.footer;return !i||r!==void 0&&i.rId!==r?[]:i.primitives.filter(n=>n.kind==="image")}function Fe(e,t,r="body",i){for(let n of e.pages)for(let s of yt(n,r,i))if(s.docStart===t)return {primitive:s,pageIndex:n.pageIndex,...r!=="body"?{region:r,rId:i}:{}};return null}function Ne(e,t,r,i,n="body",s){let o=e.pages[t];if(!o)return null;let a=yt(o,n,s);for(let l=a.length-1;l>=0;l--){let c=a[l];if(!(r<c.x||r>c.x+c.w)&&!(i<c.y||i>c.y+c.h))return {primitive:c,pageIndex:o.pageIndex,...n!=="body"?{region:n,rId:s}:{}}}return null}function Dn(e,t){let r=e.imageByPos(t);if(!r)return;let i=e.contentBounds(r.pageIndex),n=e.paragraphRects(t).find(s=>s.pageIndex===r.pageIndex);if(!(!i||!n))return {horizontalEmu:Math.round(c$1(r.primitive.x-i.x)),verticalEmu:Math.round(c$1(r.primitive.y-n.y))}}var xe=(()=>{let e=globalThis.FinalizationRegistry;return e?new e(t=>t()):null})(),Ye=new WeakMap,Re=new WeakSet,Oe=new Set;function vn(e){return e!=null&&Re.has(e)}function In(e){return Oe.add(e),()=>{Oe.delete(e);}}function Le(e){return e instanceof Error?typeof WebAssembly<"u"&&e instanceof WebAssembly.RuntimeError?true:e.name==="RuntimeError":false}function Sn(e,t){let r=new Map;e.list.pages.forEach((s,o)=>r.set(s,o));let i=[],n=[];return t.pages.forEach((s,o)=>{let a=r.get(s);a!==void 0&&v(s)===e.pageRevisions[a]?(i.push([o,a]),r.delete(s)):n.push([o,s]);}),i.length===0?null:JSON.stringify({total:t.pages.length,...t.contractVersion!==void 0?{contractVersion:t.contractVersion}:{},reuse:i,replace:n})}function kn(e,t,r){let i=null,n=()=>i??(i=JSON.stringify(e)),s=wn(t)?t:null,o=s?null:t??null,a=null,l,c,u=new Promise((d,p)=>{l=d,c=p;});u.catch(()=>{});let y=null,g=false,m=false,h=false,R={},k=null;if(r){let d=Ye.get(r);d&&(k=d.hasHandle()?r:d.donor(),d.supersede());}let I=()=>s??o,x=()=>{let d=I();return d!==null&&Re.has(d)},P=(d,p)=>{let f=p instanceof Error?p:new Error(String(p));a=f,y=null,xe?.unregister(R);let b=I();if(!(!b||Re.has(b))){Re.add(b),console.error(`[CanvasRenderer] ${d} trapped in wasm; the session is unusable and must be rebuilt`,f);for(let L of Oe)try{L(f);}catch(v){console.error("[CanvasRenderer] display-list source failure listener threw",v);}}},T=()=>{if(y!==null&&x()){y=null;return}if(y!==null){try{o?.closeDisplayList?.(y);}catch{}y=null;}},M=()=>{let d=k;if(k=null,!d||!o?.updateDisplayList||!o.hasDisplayListUpdate?.())return false;let p=Ye.get(d);if(!p||p.engine()!==o)return false;let f=Sn(p,e);if(!f)return false;let b=p.takeHandle();if(b===null)return false;try{return o.updateDisplayList(b,f),y=b,!0}catch(L){try{o.closeDisplayList?.(b);}catch{}return console.warn("[CanvasRenderer] display-list delta update failed; reopening",L),false}},Y=()=>{if(!(h||m||g||y!==null||!o||x())&&!(!o.hasDisplayListSession?.()||!o.openDisplayList)&&(g=true,!M()))try{y=o.openDisplayList(n());}catch(d){if(y=null,Le(d)){P("display-list session open",d);return}console.warn("[CanvasRenderer] display-list session open failed; using JSON-arg queries",d);}};s||o?l():Ge().then(d=>{o=d,l();},d=>{a=d instanceof Error?d:new Error(String(d)),c(a),console.warn("[CanvasRenderer] display-list query engine failed to load",a);});let z=(d,p,f)=>{if(!o||x())return null;if(y===null&&Y(),y!==null&&d)try{return d(y)}catch(b){if(Le(b))return P(f,b),null;console.warn(`[CanvasRenderer] ${f} session query failed; falling back`,b),T();}try{return p()}catch(b){return Le(b)?(P(f,b),null):(a=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${f} query failed`,b),null)}},w=(d,p,f)=>{if(d===null)return p;try{return JSON.parse(d)}catch(b){return a=b instanceof Error?b:new Error(String(b)),console.warn(`[CanvasRenderer] ${f} returned invalid JSON`,b),p}},N=(d,p)=>{if(x())return null;try{return d()}catch(f){return Le(f)?(P(`resident ${p}`,f),null):(a=f instanceof Error?f:new Error(String(f)),console.warn(`[CanvasRenderer] resident ${p} query failed`,f),null)}},F=(d,p,f)=>{if(s)return w(N(()=>s.displayHitTestRegionsJson(d,p,f),"hit_test_regions"),null,"hit_test_regions");let b=z(o?.hitTestRegionsByHandle&&(L=>o.hitTestRegionsByHandle(L,d,p,f)),()=>o.hitTestRegionsJson(n(),d,p,f),"hit_test_regions");return w(b,null,"hit_test_regions")},Z=(d,p)=>{if(s)return w(N(()=>s.displayRangeRectsJson(d,p),"range_rects"),[],"range_rects");let f=z(o?.rangeRectsByHandle&&(b=>o.rangeRectsByHandle(b,d,p)),()=>o.rangeRectsJson(n(),d,p),"range_rects");return w(f,[],"range_rects")},le=(d,p,f)=>{let b=f??Number.NaN;if(s)return w(N(()=>s.displayVerticalMoveJson(d,p,b),"vertical_move"),null,"vertical_move");if(!o?.verticalMoveJson)return null;let L=z(o.verticalMoveByHandle&&(v=>o.verticalMoveByHandle(v,d,p,b)),()=>o.verticalMoveJson(n(),d,p,b),"vertical_move");return w(L,null,"vertical_move")},B=(d,p,f,b)=>{if(s)return w(N(()=>s.displayRangeRectsRegionJson(d,p,f,b),"range_rects_region"),[],"range_rects_region");if(!o||!o.hasRangeRectsRegion?.())return [];let L=z(o.rangeRectsRegionByHandle&&(v=>o.rangeRectsRegionByHandle(v,d,p,f,b)),()=>o.rangeRectsRegionJson(n(),d,p,f,b),"range_rects_region");return w(L,[],"range_rects_region")},ee=(d,p,f)=>{let b=B(d,p,f,f+1);if(b.length>0){let L=new Map;for(let v of b)L.has(v.pageIndex)||L.set(v.pageIndex,{pageIndex:v.pageIndex,x:v.x,y:v.y,width:0,height:v.height});return [...L.values()]}if(f>0){let L=B(d,p,f-1,f);if(L.length>0){let v=new Map;for(let S of L)v.set(S.pageIndex,{pageIndex:S.pageIndex,x:S.x+S.width,y:S.y,width:0,height:S.height});return [...v.values()]}}return []},A=d=>{let p=Z(d,d+1);if(p.length>0){let f=p[0];return {pageIndex:f.pageIndex,x:f.x,y:f.y,width:0,height:f.height}}if(d>0){let f=Z(d-1,d);if(f.length>0){let b=f[f.length-1];return {pageIndex:b.pageIndex,x:b.x+b.width,y:b.y,width:0,height:b.height}}}return null},_=d=>{let p=Z(d,d+2);return p.length>0?p[0]:A(d)},X=(d,p,f)=>{let b=B(d,p,f,f+2);if(b.length===0)return ee(d,p,f);let L=new Map;for(let v of b)L.has(v.pageIndex)||L.set(v.pageIndex,v);return [...L.values()]},$=(d,p)=>({pageIndex:d,x:p.x,y:p.y,width:p.w,height:p.h}),J=d=>{let p=e.pages[d];return p?{pageIndex:p.pageIndex,x:0,y:0,width:p.width,height:p.height}:null},j=d=>{let p=e.pages[d],f=p?.contentBounds;return p&&f?{pageIndex:p.pageIndex,x:f.x,y:f.y,width:f.width,height:f.height}:null},te=d=>{let p=e.pages[d];return p?(p.columnBounds??[]).map(f=>({pageIndex:p.pageIndex,x:f.x,y:f.y,width:f.width,height:f.height})):[]},Q=d=>d.paraId?`para:${d.paraId}`:d.blockKey!==void 0?`block-key:${d.blockKey}`:d.blockId!==void 0?`block-id:${d.blockId}`:null,ce=d=>d.blockKey??d.blockId,de=null,Dt=()=>{if(de)return de;let d=new Map;for(let p of e.pages)for(let f$1 of p.primitives){let b=Q(f$1);if(!b||f$1.docStart===void 0||f$1.docEnd===void 0)continue;let L=f(f$1),v=d.get(b);v||(v=new Map,d.set(b,v));let S=v.get(p.pageIndex);if(!S){v.set(p.pageIndex,{...$(p.pageIndex,L),from:f$1.docStart,to:f$1.docEnd,blockId:ce(f$1),paraId:f$1.paraId});continue}let C=Math.min(S.x,L.x),E=Math.min(S.y,L.y),pe=Math.max(S.x+S.width,L.x+L.w),me=Math.max(S.y+S.height,L.y+L.h);S.x=C,S.y=E,S.width=pe-C,S.height=me-E,S.from=Math.min(S.from,f$1.docStart),S.to=Math.max(S.to,f$1.docEnd);}return de=new Map([...d].map(([p,f])=>[p,[...f.values()]])),de},vt=d=>{let p=null;for(let f of e.pages)for(let b of f.primitives){let L=Q(b),v=b.docStart,S=b.docEnd;if(!L||v===void 0||S===void 0||d<v||d>S)continue;let C={identity:L,span:Math.max(0,S-v),startsAtPos:v===d};(!p||C.startsAtPos&&!p.startsAtPos||C.startsAtPos===p.startsAtPos&&C.span<p.span)&&(p=C);}return p?Dt().get(p.identity)??[]:[]},It=1.5,ue=null,Ve=()=>{if(ue)return ue;let d=[];for(let p of e.pages){let f$1=[],b=0;for(let L of p.primitives){if(L.kind!=="text"&&L.kind!=="glyphRun"||L.docStart===void 0||L.docEnd===void 0||L.kind==="glyphRun"&&L.glyphs.length===0)continue;let v=L.kind==="text"?L.baselineY:L.glyphs.reduce((fe,Mt)=>Math.max(fe,Mt.y),-1/0);if(!Number.isFinite(v))continue;let S=Q(L)??`anonymous:${b++}`,C=f(L),E=f$1.find(fe=>fe.identity===S&&Math.abs(fe.baseline-v)<=It);if(!E){f$1.push({identity:S,...$(p.pageIndex,C),baseline:v,from:L.docStart,to:L.docEnd,blockId:ce(L),paraId:L.paraId});continue}let pe=Math.min(E.x,C.x),me=Math.min(E.y,C.y),kt=Math.max(E.x+E.width,C.x+C.w),wt=Math.max(E.y+E.height,C.y+C.h);E.x=pe,E.y=me,E.width=kt-pe,E.height=wt-me,E.from=Math.min(E.from,L.docStart),E.to=Math.max(E.to,L.docEnd);}d.push(...f$1.map(({identity:L,...v})=>v));}return ue=d,ue},St=d=>{let p=null;for(let f of Ve())d<f.from||d>f.to||(!p||f.to-f.from<p.to-p.from)&&(p=f);return p},ze=d=>{if(!d)return null;let p=d.primitive.docStart;if(p===void 0)return null;let{primitive:f}=d;return {...d,pos:p,rect:{pageIndex:d.pageIndex,x:f.x,y:f.y,width:f.w,height:f.h}}},ve={displayList:e,isReady:()=>(s!==null||o!==null)&&a===null,sourceState:()=>a?{status:"error",error:a}:s||o?{status:"ready"}:{status:"loading"},whenReady:()=>u,pageCount:()=>e.pages.length,pageSize:d=>{let p=e.pages[d];return p?{width:p.width,height:p.height}:null},pageBounds:J,contentBounds:j,columnBounds:te,paragraphRects:vt,visualLines:Ve,visualLineAtPosition:St,imageAtPoint:(d,p,f,b="body",L)=>ze(Ne(e,d,p,f,b,L)),imageByPos:(d,p="body",f)=>ze(Fe(e,d,p,f)),hitTestRegions:F,verticalMove:le,rangeRects:Z,hfRangeRects:B,hfCaretRects:ee,hfAnchorRects:X,caretRect:A,anchorRect:_,sidebarAnchorRect:_,prime:Y,dispose:()=>{h||(h=true,T(),xe?.unregister(R));}};return xe?.register(ve,T,R),Ye.set(ve,{list:e,pageRevisions:e.pages.map(v),engine:()=>o,hasHandle:()=>y!==null,donor:()=>k,supersede:()=>{m=true;},takeHandle:()=>{let d=y;return d!==null&&(y=null,xe?.unregister(R)),d}}),ve}function wn(e){return typeof e?.displayHitTestRegionsJson=="function"&&typeof e?.displayVerticalMoveJson=="function"&&typeof e?.displayRangeRectsJson=="function"&&typeof e?.displayRangeRectsRegionJson=="function"}var Mn=16,Pn=24;function oe(e){let t=[],r=24;for(let i=0;i<e.pageCount();i++)t.push(r),r+=(e.pageSize(i)?.height??0)+16;return t}function En(){let e=new Map;return t=>{if(!t.startsWith("blob:")&&!t.startsWith("data:"))return null;let r=e.get(t);return r||(r=new Promise(i=>{let n=new Image;n.onload=()=>i(n),n.onerror=()=>i(null),n.src=t;}),e.set(t,r)),r}}function An(e,t){let r=e.activeCommentIds.length>0?t?.(e.activeCommentIds):void 0;return {hasSelection:e.hasSelection,inInsertion:e.inInsertion,inDeletion:e.inDeletion,hasComment:e.activeCommentIds.length>0,inList:e.inList,listLevel:e.listLevel??0,...r?.authorName!==void 0?{commentAuthor:r.authorName}:{},...r?.replyCount!==void 0?{commentReplyCount:r.replyCount}:{}}}function Tn(e,t){if(!e)return [];let r=[];return !e.hasSelection&&t.hasSelection&&r.push({key:"selected"}),e.hasSelection&&!t.hasSelection&&r.push({key:"selectionCleared"}),!e.hasComment&&t.hasComment&&r.push({key:"commentedText",...t.commentAuthor!==void 0||t.commentReplyCount!==void 0?{vars:{...t.commentAuthor!==void 0?{author:t.commentAuthor}:{},...t.commentReplyCount!==void 0?{replies:t.commentReplyCount}:{}}}:{}}),!e.inInsertion&&t.inInsertion&&r.push({key:"trackedInsertion"}),!e.inDeletion&&t.inDeletion&&r.push({key:"trackedDeletion"}),(!e.inList&&t.inList||t.inList&&e.listLevel!==t.listLevel)&&r.push({key:"listItem",vars:{level:t.listLevel+1}}),r}function se(e){let t=Number(e);if(Number.isFinite(t))return t;let r=0xcbf29ce484222325n;for(let i of new TextEncoder().encode(e))r=(r^BigInt(i))*0x100000001b3n,r&=0xffffffffffffffffn;return Number(r&(1n<<53n)-1n)}function De(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:null}function Cn(e){let t=typeof e.story=="string"?[e.story]:[],r=Array.isArray(e.rows)?e.rows:[];for(let i of r){let n=De(i),s=n&&Array.isArray(n.cells)?n.cells:[];for(let o of s){let a=De(o)?.story;typeof a=="string"&&t.push(a);}}return t}function Bn(e){let t=e.storyIds(),r=new Map,i=new Set;for(let o of t){let a=[];try{for(let l of e.storySegments(o))if(l.kind==="embed")for(let c of Cn(l.payload))a.push(c),i.add(c);}catch{}r.set(o,a);}let n=new Map,s=(o,a,l)=>{if(!(l.has(o)||n.has(o))){l.add(o),n.set(o,a);for(let c of r.get(o)??[])s(c,a,l);l.delete(o);}};t.includes("body")&&s("body",{story:"body"},new Set);for(let o of t)!o.startsWith("hf:")||i.has(o)||s(o,{story:o,hfRid:o.slice(3)},new Set);return n}function Hn(e,t,r,i,n){let s=Array.isArray(t.rows)?t.rows:[],o=r+1;for(let a of s){let l=De(a),c=l&&Array.isArray(l.cells)?l.cells:[],u=o+1;for(let y of c){let g=De(y),m=typeof g?.story=="string"?g.story:null,h=m?_e(e,m,u+1,i,n):0;u+=h+2;}o=u+1;}return o+1-r}function _e(e,t,r,i,n){if(n.has(t))throw new Error(`recursive yrs story: ${t}`);n.add(t);try{let s=r,o=r,a=0,l=!0;for(let c of e.storySegments(t)){if(c.kind==="text"){a+=c.text.length,l=!1;continue}if(c.kind==="pilcrow"){let u=o+a+2;i.set(c.paraId,{pmStart:o,pmEnd:u}),s=u,o=s,a=0,l=!0;continue}if(c.embedKind==="table"&&l){s+=Hn(e,c.payload,s,i,n),o=s;continue}if(c.embedKind==="blockSdt"&&l){let u=typeof c.payload.story=="string"?c.payload.story:null,y=u?_e(e,u,s+1,i,n):0;s+=y+2,o=s;continue}if(l&&(c.embedKind==="pageBreak"||c.embedKind==="columnBreak")){s+=1,o=s;continue}a+=1,l=!1;}return s-r}finally{n.delete(t);}}function Gn(e){let t=new Map,r=Bn(e),i=o=>{let a=r.get(o)?.story;if(!a)return null;if(t.has(a))return t.get(a)??null;try{let l=new Map;return _e(e,a,0,l,new Set),t.set(a,l),l}catch{return t.set(a,null),null}},n=o=>{let a=r.get(o.story);if(!a)return null;let l=i(o.story)?.get(o.paraId);if(!l)return null;let c=Math.max(0,l.pmEnd-l.pmStart-2),u=Math.min(Math.max(0,Math.trunc(o.offset)),c);return {story:o.story,position:l.pmStart+1+u,...a.hfRid?{hfRid:a.hfRid}:{}}};return {locToDisplayPoint:n,storyOffsetToDisplayPoint:(o,a)=>{if(!r.has(o))return null;let l=Math.max(0,Math.trunc(a));try{for(let c of e.paragraphs(o)){let u=e.locateParagraph(o,c.paraId);if(!(l<u.start||l>u.end))return n({story:o,paraId:c.paraId,offset:Math.min(l-u.start,u.end-u.start)})}}catch{return null}return null}}}function Xe(e,t){let{doc:r,schema:i}=e.state,n=i.marks.comment,s=i.marks.insertion,o=i.marks.deletion;!n&&!s&&!o||r.descendants((a,l)=>{let c=a.attrs;if(c){let u=[c.trIns,c.trDel,c.pPrIns,c.pPrDel];for(let h of u){let R=h?.revisionId;typeof R=="number"&&t(`revision-${R}`,l);}let g=c.cellMarker?.info?.revisionId;typeof g=="number"&&t(`revision-${g}`,l);let m=[c.pPrChange,c.trPrChange,c.tcPrChange,c.tblPrChange];for(let h of m)if(Array.isArray(h))for(let R of h){let k=R?.info?.id;typeof k=="number"&&t(`revision-${k}`,l);}}if(a.isInline)for(let u of a.marks){let y=null;n&&u.type===n?y=`comment-${u.attrs.commentId}`:(s&&u.type===s||o&&u.type===o)&&(y=`revision-${u.attrs.revisionId}`),y&&t(y,l);}});}function Fn(e,t,r){let i=new Map;if(!e?.state)return i;let n=oe(t),s=new Set;return Xe(e,(o,a)=>{if(s.has(o))return;s.add(o);let l=t.anchorRect(a);if(!l)return;let c=r?r(l):(n[l.pageIndex]??0)+l.y;c!=null&&i.set(o,c);}),i}function Nn(e,t,r){if(!e.hfRid)return t.anchorRect(e.position);let i=r?.get(e.hfRid);return i?t.hfAnchorRects(i,e.hfRid,e.position)[0]??null:null}function Yn(e,t,r,i,n,s,o){let a=new Map,l=oe(n),c=(u,y)=>{if(!y||a.has(u))return a.has(u);let g=Nn(y,n,s);if(!g)return false;let m=o?o(g):(l[g.pageIndex]??0)+g.y;return m==null?false:(a.set(u,m),true)};for(let u of t){let y=`comment-${u}`;try{for(let g of e.resolveComment(String(u)))if(c(y,i.storyOffsetToDisplayPoint(g.story,g.start)))break}catch{}}for(let u of r)c(`revision-${se(u.revisionId)}`,i.locToDisplayPoint({story:u.story,...u.range.start}));return a}function On(e,t,r,i){let n=oe(t);for(let{region:s,rId:o,view:a}of e)Xe(a,(l,c)=>{if(r.has(l))return;let u=t.hfAnchorRects(s,o,c)[0];if(!u)return;let y=i?i(u):(n[u.pageIndex]??0)+u.y;y!=null&&r.set(l,y);});return r}function _n(e,t){let r=e.map(o=>{let a=t.locToDisplayPoint({story:o.range.story,...o.range.start}),l=t.locToDisplayPoint({story:o.range.story,...o.range.end}),c=a?.position??0,u=Math.max(c,l?.position??c);return {type:o.kind==="pPrIns"?"paragraphMarkInsertion":o.kind==="pPrDel"?"paragraphMarkDeletion":o.kind==="pPrChange"?"paragraphPropertiesChanged":o.kind==="trIns"?"rowInserted":o.kind==="trDel"?"rowDeleted":o.kind==="tableIns"?"tableInserted":o.kind==="tableDel"?"tableDeleted":o.kind,text:o.preview,author:o.author,date:o.date||void 0,from:c,to:u,revisionId:se(o.revisionId),...a?.hfRid?{hfRid:a.hfRid}:{}}}),i=new Map;for(let o of r){let a=i.get(o.revisionId)??[];a.push(o),i.set(o.revisionId,a);}let n=[...i.values()].map(o=>{let a=Math.min(...o.map(m=>m.from)),l=Math.max(...o.map(m=>m.to)),c=o.filter(m=>m.type==="insertion"),u=o.filter(m=>m.type==="deletion");if(c.length>0&&u.length>0)return {...c[0],type:"replacement",text:c.map(h=>h.text).join(""),deletedText:u.map(h=>h.text).join(""),from:a,to:l};let y=o.find(m=>m.type==="insertion"||m.type==="deletion")??o[0],g=o.filter(m=>m.type===y.type).map(m=>m.text).join("");return {...y,text:g,from:a,to:l}}),s=[];for(let o=0;o<n.length;o+=1){let a=n[o],l=n[o+1];a.type==="deletion"&&l?.type==="insertion"&&a.author===l.author&&a.date===l.date&&a.to===l.from&&a.hfRid===l.hfRid?(s.push({type:"replacement",text:l.text,deletedText:a.text,author:a.author,date:a.date,from:a.from,to:l.to,revisionId:a.revisionId,insertionRevisionId:l.revisionId,...a.hfRid?{hfRid:a.hfRid}:{}}),o+=1):s.push(a);}return {entries:s,commentToRevision:new Map}}function Xn(e,t){let r=t.kind??"body";if(r==="body")return {kind:r,primitives:e.primitives};let i=r==="header"?e.header:e.footer;return !i||i.kind!==r||t.rId&&i.rId!==t.rId?null:{kind:r,rId:i.rId,primitives:i.primitives}}function $n(e){switch(e.kind){case "text":return c(e);case "glyphRun":return d(e);case "rect":case "image":case "shape":case "decoration":return {x:e.x,y:e.y,w:e.w,h:e.h};case "line":return {x:Math.min(e.x1,e.x2),y:Math.min(e.y1,e.y2),w:Math.abs(e.x2-e.x1),h:Math.abs(e.y2-e.y1)}}}function Jn(e){let t=$n(e),r=e.clipGroup?.clip;if(!r)return t;let i=r.x??0,n=r.y??0,s=i+Math.max(0,r.w??0),o=n+Math.max(0,r.h??0),a=Math.max(t.x,i),l=Math.max(t.y,n),c=Math.min(t.x+t.w,s),u=Math.min(t.y+t.h,o);return c<a||u<l?null:{x:a,y:l,w:c-a,h:u-l}}function Qn(e){return e.kind==="text"||e.kind==="glyphRun"?e.text:e.kind==="image"?e.altText??"":""}function Wn(e,t,r){return t>=e.x&&t<=e.x+e.w&&r>=e.y&&r<=e.y+e.h}function Kn(e,t,r,i,n={kind:"body"}){let s=e.pages[t];if(!s)return null;let o=Xn(s,n);if(!o)return null;for(let a=o.primitives.length-1;a>=0;a--){let l=o.primitives[a];if(l.kind==="line"||!l.href||l.hiddenObject)continue;let c=Jn(l);if(c&&Wn(c,r,i))return {pageIndex:t,region:o.kind,rId:o.rId,href:l.href,tooltip:l.linkTitle??l.tooltip,displayText:Qn(l)||l.href,rect:c}}return null}var O=7.5,q=16,gt=320,Vn=30,zn=200,jn=24,Un=10,qn=10,Zn=24;function ht(e){let t;switch(e.kind){case "text":t=c(e);break;case "glyphRun":t=d(e);break;case "rect":case "image":case "shape":case "decoration":t={x:e.x,y:e.y,w:e.w,h:e.h};break;case "line":t={x:Math.min(e.x1,e.x2),y:Math.min(e.y1,e.y2),w:Math.abs(e.x2-e.x1),h:Math.abs(e.y2-e.y1)};break}let r=Je(e);return r?ei(t,r)??{x:r.x,y:r.y,w:0,h:0}:t}function Je(e){let t=e.clipGroup?.clip;return t?{x:t.x??0,y:t.y??0,w:Math.max(0,t.w??0),h:Math.max(0,t.h??0)}:null}function ei(e,t){let r=Math.max(e.x,t.x),i=Math.max(e.y,t.y),n=Math.min(e.x+e.w,t.x+t.w),s=Math.min(e.y+e.h,t.y+t.h);return n<r||s<i?null:{x:r,y:i,w:n-r,h:s-i}}function bt(e,t,r){if(e.docStart!=null){let i=t(e.docStart);if(i!=null){let n={tableKey:i,docStartSample:e.docStart};return e.table?.tableId&&!r.has(e.table.tableId)&&r.set(e.table.tableId,n),n}}return e.table?.tableId?r.get(e.table.tableId)??null:null}function xt(e,t,r){let i=e.table?.tableId;if(!i)return null;let n=t.get(i);return n?r.get(n.tableKey)??null:null}function ti(e,t,r,i){let n=new Map;for(let o of t){if(o.kind==="line")continue;let a=o.cell;if(!a)continue;let l=bt(o,r,i);if(!l)continue;let{tableKey:c,docStartSample:u}=l,y=ht(o),g=Je(o),m=g??y,h=n.get(c);if(h||(h={tableKey:c,docStartSample:u,contentMinX:m.x,contentMinY:m.y,contentMaxX:m.x+m.w,contentMaxY:m.y+m.h,exactLeftX:[],exactBottomY:[],exactClipLeftX:[],exactClipBottomY:[],rows:new Map},n.set(c,h)),u<h.docStartSample&&(h.docStartSample=u),h.contentMinX=Math.min(h.contentMinX,m.x),h.contentMinY=Math.min(h.contentMinY,m.y),h.contentMaxX=Math.max(h.contentMaxX,m.x+m.w),h.contentMaxY=Math.max(h.contentMaxY,m.y+m.h),g&&(h.exactClipLeftX.push(g.x),h.exactClipBottomY.push(g.y+g.h)),!a.continuation){let R=h.rows.get(a.row);R?(R.top=Math.min(R.top,m.y),R.bottom=Math.max(R.bottom,m.y+m.h)):h.rows.set(a.row,{top:m.y,bottom:m.y+m.h});}}if(n.size===0)return [];for(let o of t){if(o.kind!=="line"||o.role!=="table-border"&&o.role!=="table-cut")continue;let a=xt(o,i,n);if(!a){let u=(o.x1+o.x2)/2,y=(o.y1+o.y2)/2,g=1/0;for(let m of n.values()){let h=u>=m.contentMinX-q&&u<=m.contentMaxX+q,R=y>=m.contentMinY-q&&y<=m.contentMaxY+q;if(!h||!R)continue;let k=Math.max(0,m.contentMinX-u,u-m.contentMaxX),I=Math.max(0,m.contentMinY-y,y-m.contentMaxY),x=k+I;x<g&&(g=x,a=m);}}if(!a)continue;let l=Math.abs(o.x1-o.x2)<.5,c=Math.abs(o.y1-o.y2)<.5;l&&a.exactLeftX.push(Math.min(o.x1,o.x2)),c&&a.exactBottomY.push(Math.max(o.y1,o.y2));}let s=[];for(let o of n.values()){if(o.rows.size===0)continue;let a=o.exactLeftX.length>0||o.exactClipLeftX.length>0,l=a?Math.min(...o.exactLeftX,...o.exactClipLeftX):o.contentMinX-O,c=o.exactBottomY.length>0||o.exactClipBottomY.length>0?Math.max(...o.exactBottomY,...o.exactClipBottomY):o.contentMaxY,u=[...o.rows.entries()].map(([y,g])=>({rowIndex:y,top:g.top,bottom:g.bottom})).sort((y,g)=>y.rowIndex-g.rowIndex);s.push({pageIndex:e,tableKey:o.tableKey,docStartSample:o.docStartSample,originX:l,originY:o.contentMinY,bottomY:c,originExact:a,rowBands:u});}return s}function ni(e,t){let r=[],i=We(e,t,{kind:"body"});for(let n of e.pages)r.push(...ti(n.pageIndex,n.primitives,t,i));return r}function Qe(e,t){let r=t.kind??"body";if(r==="body")return {kind:r,primitives:e.primitives};let i=r==="header"?e.header:e.footer;return !i||i.kind!==r||t.rId&&i.rId!==t.rId?null:{kind:r,rId:i.rId,primitives:i.primitives}}function We(e,t,r){let i=new Map;for(let n of e.pages){let s=Qe(n,r);if(s)for(let o of s.primitives){if(!o.cell||!o.table?.tableId||o.docStart==null)continue;let a=t(o.docStart);if(a==null)continue;let l=i.get(o.table.tableId);(!l||o.docStart<l.docStartSample)&&i.set(o.table.tableId,{tableKey:a,docStartSample:o.docStart});}}return i}function Ke(e,t){return `${e}:${t}`}function ii(e,t,r,i){let n=Ke(t.row,t.col),s=e.cells.get(n);s?(s.minX=Math.min(s.minX,r.x),s.minY=Math.min(s.minY,r.y),s.maxX=Math.max(s.maxX,r.x+r.w),s.maxY=Math.max(s.maxY,r.y+r.h),s.rowSpan=Math.max(s.rowSpan,t.rowSpan),s.colSpan=Math.max(s.colSpan,t.colSpan),i&&(s.exactClip=i)):e.cells.set(n,{row:t.row,col:t.col,rowSpan:t.rowSpan,colSpan:t.colSpan,minX:r.x,minY:r.y,maxX:r.x+r.w,maxY:r.y+r.h,exactClip:i??void 0});}function Lt(e,t,r){let i=new Map;for(let n of e){if(n.kind==="line")continue;let s=n.cell;if(!s)continue;let o=bt(n,t,r);if(!o)continue;let a=o.tableKey,l=ht(n),c=i.get(a);c||(c={tableKey:a,contentMinX:l.x,contentMinY:l.y,contentMaxX:l.x+l.w,contentMaxY:l.y+l.h,cells:new Map,verticalLines:[],horizontalLines:[]},i.set(a,c)),c.contentMinX=Math.min(c.contentMinX,l.x),c.contentMinY=Math.min(c.contentMinY,l.y),c.contentMaxX=Math.max(c.contentMaxX,l.x+l.w),c.contentMaxY=Math.max(c.contentMaxY,l.y+l.h),ii(c,s,l,Je(n));}if(i.size===0)return [];for(let n of e){if(n.kind!=="line"||n.role!=="table-border"&&n.role!=="table-cut")continue;let s=Math.abs(n.x1-n.x2)<.5,o=Math.abs(n.y1-n.y2)<.5;if(!s&&!o)continue;let a=Math.min(n.x1,n.x2),l=Math.max(n.x1,n.x2),c=Math.min(n.y1,n.y2),u=Math.max(n.y1,n.y2),y=xt(n,r,i);if(y){s?y.verticalLines.push(a):y.horizontalLines.push(c);continue}for(let g of i.values())if(s){if(!(u>=g.contentMinY-q&&c<=g.contentMaxY+q))continue;let h=a;Math.max(0,g.contentMinX-h,h-g.contentMaxX)<=gt&&g.verticalLines.push(h);}else if(o){if(!(l>=g.contentMinX-q&&a<=g.contentMaxX+q))continue;let h=c;Math.max(0,g.contentMinY-h,h-g.contentMaxY)<=gt&&g.horizontalLines.push(h);}}return [...i.values()]}function ae(e){let t=[];for(let r of [...e].sort((i,n)=>i-n))(t.length===0||Math.abs(t[t.length-1]-r)>.5)&&t.push(r);return t}function Rt(e){let t=ae([...e.cells.values()].map(n=>n.row)),r=ae(e.horizontalLines),i=new Map;if(t.length>0&&r.length>=t.length+1)for(let n=0;n<t.length;n++)i.set(t[n],r[n]),i.set(t[n]+1,r[n+1]);return i}function $e(e){if(!e)return null;if(e.exactClip)return e.exactClip;let t=e.minX-O,r=e.minY-O;return {x:t,y:r,w:Math.max(1,e.maxX-e.minX+O*2),h:Math.max(1,e.maxY-e.minY+O*2)}}function ri(e,t){let r=1/0,i=-1/0;for(let n of e.cells.values())n.row===t&&(r=Math.min(r,n.exactClip?.y??n.minY-O),i=Math.max(i,n.exactClip?n.exactClip.y+n.exactClip.h:n.maxY+O));return !Number.isFinite(r)||!Number.isFinite(i)||i<=r?null:{top:r,bottom:i}}function oi(e,t,r){let i=$e(e.cells.get(Ke(t,r)));return i?{left:i.x,right:i.x+i.w,top:i.y,bottom:i.y+i.h}:null}function si(e,t,r,i={kind:"body"}){if(t.length===0)return [];let n=new Map;for(let a of t){let l=n.get(a.tableKey);l?l.push(a):n.set(a.tableKey,[a]);}let s=[],o=We(e,r,i);for(let a of e.pages){let l=Qe(a,i);if(!l)continue;let c=Lt(l.primitives,r,o);for(let u of c){let y=n.get(u.tableKey);if(!y)continue;let g=ae(u.verticalLines),m=Rt(u);for(let h of y){let R=u.cells.get(Ke(h.row,h.col)),k=g[h.col],I=g[h.col+h.colSpan],x=m.get(h.row),P=m.get(h.row+h.rowSpan),T=true;if(k==null||I==null||I<=k){let M=R?.exactClip??$e(R);if(!M)continue;k=M.x,I=M.x+M.w,T=R?.exactClip!=null;}if(x==null||P==null||P<=x){let M=R?.exactClip??$e(R);if(!M)continue;x=M.y,P=M.y+M.h,T&&(T=R?.exactClip!=null);}s.push({pageIndex:a.pageIndex,tableKey:u.tableKey,row:h.row,col:h.col,rowSpan:h.rowSpan,colSpan:h.colSpan,x:k,y:x,w:Math.max(1,I-k),h:Math.max(1,P-x),exact:T,region:l.kind,rId:l.rId});}}}return s}function ai(e){let{list:t,pageIndex:r,x:i,y:n,canvasRect:s,pageSize:o,tableKeyOf:a,cellPmPosOf:l,region:c={kind:"body"},edgeProximity:u=Vn}=e,y=t.pages[r];if(!y)return null;let g=Qe(y,c);if(!g)return null;let m=o.width>0?s.width/o.width:1,h=o.height>0?s.height/o.height:1,R=(x,P)=>({clientX:s.left+x*m,clientY:s.top+P*h}),k=We(t,a,c),I=Lt(g.primitives,a,k);for(let x of I){let P=ae(x.verticalLines),T=Rt(x),M=ae([...x.cells.values()].map(B=>B.row));if(M.length===0)continue;let Y=P[0]??x.contentMinX-O,z=P[P.length-1]??x.contentMaxX+O,w=T.get(M[0])??x.contentMinY-O,N=M[M.length-1],F=T.get(N+1)??x.contentMaxY+O,Z=i<Y+u&&i>=Y-u,le=n<w+u&&n>=w-u;if(!(!Z&&!le)){if(Z&&n>=w-u&&n<=F)for(let B of M){let ee=T.get(B),A=T.get(B+1),_=ee==null||A==null?ri(x,B):null,X=ee??_?.top,$=A??_?.bottom;if(X==null||$==null||$<=X||n<X||n>$)continue;let J=[...x.cells.values()].filter(Q=>Q.row===B).sort((Q,ce)=>Q.col-ce.col)[0];if(!J)continue;let j=l(x.tableKey,B,J.col);if(!j)continue;let te=R(Y,X+($-X)/2);return {type:"row",clientX:te.clientX-jn,clientY:te.clientY-Un,cellPmPos:j}}if(le&&i>=Y-u&&i<=z){let B=M[0],ee=[...x.cells.values()].filter(A=>A.row===B).sort((A,_)=>A.col-_.col);for(let A of ee){let _=P[A.col],X=P[A.col+A.colSpan],$=_==null||X==null?oi(x,A.row,A.col):null,J=_??$?.left,j=X??$?.right;if(J==null||j==null||j<=J||i<J||i>j)continue;let te=l(x.tableKey,A.row,A.col);if(!te)continue;let Q=R(J+(j-J)/2,w);return {type:"column",clientX:Q.clientX-qn,clientY:Q.clientY-Zn,cellPmPos:te}}}}}return null}var tr=Ue;export{Pn as CANVAS_PAGES_PADDING_PX,Mn as CANVAS_PAGE_GAP_PX,zn as DISPLAY_LIST_TABLE_INSERT_HIDE_DELAY_MS,D as MIRROR_CLASS_NAMES,V as RustDisplayListSourceError,sn as applyInteractiveSdtFocus,ln as buildInteractiveOverlayPage,Kt as buildMirrorPage,Rn as buildRustDisplayFrame,ft as buildRustDisplayList,oe as canvasPageTops,Dn as captureInlinePositionEmuFromDisplayList,Tn as computeA11yAnnouncements,Fn as computeAnchorPositionsFromDisplayList,Yn as computeAnchorPositionsFromYrs,En as createCanvasImageResolver,kn as createDisplayListQueries,Gn as createYrsSidebarProjection,tr as demoDisplayList,si as deriveDisplayListSelectedCellRects,ni as deriveDisplayListTableFragments,ai as detectDisplayListTableInsertHover,mt as encodeDisplayListFrameExtras,_n as extractTrackedChangesFromYrs,Kn as findDisplayListHyperlinkAtPoint,Ne as findImagePrimitiveAtPoint,Fe as findImagePrimitiveByDocPos,vn as isDisplayListQuerySourceDead,Wt as loadGlyphOutlineProvider,Ge as loadRustDisplayListQueryEngine,On as mergeHfAnchorPositionsFromDisplayList,In as onDisplayListQuerySourceFailure,An as snapshotFromSelectionContext,Xe as visitAnchorKeys,se as yrsIdToNumericId};
1
+ import {d,c,e,s,t,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};