@docx-editor.dev/core 2.21.1 → 2.23.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 (108) hide show
  1. package/README.md +11 -5
  2. package/dist/automation.cjs +1 -1
  3. package/dist/automation.d.ts +13 -12
  4. package/dist/automation.js +1 -1
  5. package/dist/binding.cjs +1 -1
  6. package/dist/binding.d.ts +11 -10
  7. package/dist/binding.js +1 -1
  8. package/dist/chunk-4OAXZNBU.js +5 -0
  9. package/dist/chunk-6745I4XF.cjs +20 -0
  10. package/dist/chunk-6KA3L3FR.cjs +11 -0
  11. package/dist/chunk-6QS5WL63.js +1 -0
  12. package/dist/{chunk-E5OUYRNM.cjs → chunk-BUDXZ7T2.cjs} +5 -5
  13. package/dist/chunk-DYRXA5UJ.cjs +2 -0
  14. package/dist/chunk-DZOGUV7O.js +1 -0
  15. package/dist/chunk-EHT4LKKZ.cjs +1 -0
  16. package/dist/chunk-F5LAOPAD.js +20 -0
  17. package/dist/chunk-FWX535CS.cjs +1 -0
  18. package/dist/chunk-GRVRQBKU.js +1 -0
  19. package/dist/chunk-JN62FLHE.cjs +4 -0
  20. package/dist/{chunk-BF2TOG2V.js → chunk-KRBBWATQ.js} +1 -1
  21. package/dist/chunk-KV5HFE23.cjs +2 -0
  22. package/dist/{chunk-T5B4NMKF.cjs → chunk-PCPBDYEL.cjs} +1 -1
  23. package/dist/chunk-Q4RDWB3U.cjs +18 -0
  24. package/dist/{chunk-4TYA4RLP.cjs → chunk-QK23BSRK.cjs} +1 -1
  25. package/dist/chunk-QTFAXWVI.cjs +1 -0
  26. package/dist/chunk-RLO64PHP.cjs +1 -0
  27. package/dist/chunk-T7RGKBCE.cjs +5 -0
  28. package/dist/{chunk-FPDIJ4RF.js → chunk-UMBHUW6R.js} +1 -1
  29. package/dist/chunk-VE6H5EJA.js +5 -0
  30. package/dist/chunk-WHG23WNI.js +1 -0
  31. package/dist/chunk-XBYZTDF7.js +4 -0
  32. package/dist/chunk-XRBPZCNK.js +11 -0
  33. package/dist/chunk-Y5JCIWTF.js +2 -0
  34. package/dist/chunk-ZA6HEWUM.js +2 -0
  35. package/dist/chunk-ZCRSPN4Q.js +18 -0
  36. package/dist/collaboration/replication.cjs +1 -1
  37. package/dist/collaboration/replication.d.ts +6 -5
  38. package/dist/collaboration/replication.js +1 -1
  39. package/dist/collaboration.d.ts +7 -6
  40. package/dist/contracts/document.d.ts +4 -3
  41. package/dist/contracts/editor.d.ts +9 -9
  42. package/dist/contracts/interaction.d.ts +2 -1
  43. package/dist/contracts/modules.d.ts +9 -8
  44. package/dist/contracts/types.d.ts +1 -1
  45. package/dist/{custom-node-writes-CncR6KfC.d.ts → custom-node-writes-77rvPW2-.d.ts} +4 -3
  46. package/dist/{document-protection-DM6mA8Rf.d.ts → document-protection-CYIjO-li.d.ts} +3 -2
  47. package/dist/{editor-BRh7GuZF.d.ts → editor-DhUQsWWH.d.ts} +179 -52
  48. package/dist/editor.cjs +1 -1
  49. package/dist/editor.css +1 -1
  50. package/dist/editor.d.ts +181 -28
  51. package/dist/editor.js +1 -1
  52. package/dist/export.cjs +2 -2
  53. package/dist/export.d.ts +36 -18
  54. package/dist/export.js +2 -2
  55. package/dist/{failure-DNNmwsgD.d.ts → failure-BIPVQbRm.d.ts} +2 -1
  56. package/dist/{font-resolver-DwuQYj3P.d.ts → font-resolver-BwoHFBlr.d.ts} +3 -2
  57. package/dist/{headless-document-view-C3fc_jV0.d.ts → headless-document-view-Cc3fFWhv.d.ts} +4 -3
  58. package/dist/{image-resources-DxF-SN_8.d.ts → image-resources-DkuzBnTM.d.ts} +3 -2
  59. package/dist/{index-3pNnG4z4.d.ts → index-BYaCkGKO.d.ts} +179 -26
  60. package/dist/index.cjs +1 -1
  61. package/dist/index.d.ts +18 -18
  62. package/dist/index.js +1 -1
  63. package/dist/{layout-shaping-_GGjhhVc.d.ts → layout-shaping-DpWQG26a.d.ts} +7 -3
  64. package/dist/layout.cjs +1 -1
  65. package/dist/layout.d.ts +473 -64
  66. package/dist/layout.js +1 -1
  67. package/dist/{note-properties-CjT31AuP.d.ts → note-properties-DMfKK3QU.d.ts} +3 -2
  68. package/dist/{omml-equation-Bk3OP1fv.d.ts → omml-equation-BY7OdfGY.d.ts} +3 -2
  69. package/dist/output.cjs +1 -1
  70. package/dist/output.d.ts +9 -8
  71. package/dist/output.js +1 -1
  72. package/dist/{protocol-CrbTIW2Z.d.ts → protocol-CPAakntQ.d.ts} +4 -3
  73. package/dist/{review-paragraph-order-D3KZohIL.d.ts → review-paragraph-order-B0BP_wJP.d.ts} +1 -1
  74. package/dist/{revision-projection-kVd7p6Wd.d.ts → revision-projection-CVJeA2jp.d.ts} +3 -2
  75. package/dist/{semantic-cell-selection-CkSsZHDL.d.ts → semantic-cell-selection-B8GF_H2e.d.ts} +10 -6
  76. package/dist/{semantic-interaction-Z2Xa68U5.d.ts → semantic-interaction-DQjtIruQ.d.ts} +3 -2
  77. package/dist/{semantic-paint-BHKprI9P.d.ts → semantic-paint-DoPl85nR.d.ts} +4 -3
  78. package/dist/{semantic-records-StH-AnHK.d.ts → semantic-records-DB0VgWsr.d.ts} +1125 -1039
  79. package/dist/store.cjs +1 -1
  80. package/dist/store.d.ts +17 -16
  81. package/dist/store.js +1 -1
  82. package/dist/{tree-package-fragment-CpEV1gl3.d.ts → tree-package-fragment-BIyGh6L8.d.ts} +4 -3
  83. package/dist/{tree-session-contract-CTT9nM7Z.d.ts → tree-session-contract-CHcCnz3W.d.ts} +7 -6
  84. package/dist/{types-barrel-PwcfEkaX.d.ts → types-barrel-DN_-gaRX.d.ts} +72 -5
  85. package/package.json +3 -3
  86. package/dist/chunk-25OQBAKA.js +0 -2
  87. package/dist/chunk-3B3DQMSL.js +0 -11
  88. package/dist/chunk-3P3DNJYM.js +0 -5
  89. package/dist/chunk-3PA64KPK.js +0 -5
  90. package/dist/chunk-7N77EN2Z.cjs +0 -2
  91. package/dist/chunk-AGWWNVIJ.cjs +0 -1
  92. package/dist/chunk-DFTVN25X.cjs +0 -5
  93. package/dist/chunk-DGONGMAV.js +0 -2
  94. package/dist/chunk-DZYKU2HG.js +0 -1
  95. package/dist/chunk-F4H3LC6M.cjs +0 -2
  96. package/dist/chunk-FGBADUSK.cjs +0 -1
  97. package/dist/chunk-IUTTOBQW.cjs +0 -20
  98. package/dist/chunk-IYCXQAFT.cjs +0 -4
  99. package/dist/chunk-JL3SI5SZ.js +0 -18
  100. package/dist/chunk-OFWUHH52.js +0 -20
  101. package/dist/chunk-OKY6JRJL.js +0 -4
  102. package/dist/chunk-P24FHMQW.cjs +0 -1
  103. package/dist/chunk-QBKAOSVF.cjs +0 -18
  104. package/dist/chunk-RA2TDTEQ.cjs +0 -1
  105. package/dist/chunk-U5GUJKTS.js +0 -1
  106. package/dist/chunk-VP7SDFCM.js +0 -1
  107. package/dist/chunk-XRYSPKKC.js +0 -1
  108. package/dist/chunk-ZZRCVDQU.cjs +0 -11
package/dist/editor.d.ts CHANGED
@@ -1,36 +1,36 @@
1
- import { O as OoxmlPart, aD as TreeDocColorValue, t as ColorValue, aa as DrawingPositionInput, G as ParagraphTabStop } from './types-barrel-PwcfEkaX.js';
2
- export { aE as IMAGE_WRAP_TARGETS, a9 as ImageWrapTarget, F as ParagraphFlags, R as ReviewModelInput, aF as TEXT_FORM_FORMATS } from './types-barrel-PwcfEkaX.js';
3
- export { D as DEFAULT_IMAGE_RESOURCE_LIMITS, b as ImageDecodePort, c as ImageResourceLimits, R as RenderableImageMime, S as SupportedImageMime, a as VectorImageMime, r as resolveImageResourceLimits, d as resolveSvgIntrinsicSize, s as sniffImageMime, v as validateRasterHeader } from './image-resources-DxF-SN_8.js';
1
+ import { O as OoxmlPart, aD as TreeDocColorValue, r as ColorValue, ab as DrawingPositionInput, A as ParagraphTabStop } from './types-barrel-DN_-gaRX.js';
2
+ export { aE as IMAGE_WRAP_TARGETS, aa as ImageWrapTarget, z as ParagraphFlags, R as ReviewModelInput, aF as TEXT_FORM_FORMATS } from './types-barrel-DN_-gaRX.js';
3
+ export { D as DEFAULT_IMAGE_RESOURCE_LIMITS, a as ImageDecodePort, I as ImageResourceLimits, R as RenderableImageMime, S as SupportedImageMime, c as VectorImageMime, r as resolveImageResourceLimits, d as resolveSvgIntrinsicSize, s as sniffImageMime, v as validateRasterHeader } from './image-resources-DkuzBnTM.js';
4
4
  export { CollectReviewItems, EditorModule, EditorModuleRegistry, ReviewModuleContribution, resolveEditorModules } from './contracts/modules.js';
5
- import { T as TreeDocxSessionView, f as DocumentThemeColorEntry } from './tree-session-contract-CTT9nM7Z.js';
6
- export { a as TreeApplyResult } from './tree-session-contract-CTT9nM7Z.js';
7
- import { a as FontConfiguration, E as EditorFontError, d as EditorSnapshot, e as EditorCommand, C as CanResult, Z as ZoomMode } from './editor-BRh7GuZF.js';
8
- export { I as ImageContext, f as ImageCropPercent, g as ImageCropPermille, S as SelectedImageState, T as TrackedChangeFilterMode, h as TrackedChangePredicate, i as cropPercentFromCropPermille, j as cropPercentFromPermille, k as cropPercentFromSourceCrop, l as cropPermilleFromCropPercent, m as cropPermilleFromPercent, s as sourceCropFromCropPercent, v as validateImageCropPercent } from './editor-BRh7GuZF.js';
9
- import { L as LayoutShapingInstrumentation, a as LayoutShapingOptions } from './layout-shaping-_GGjhhVc.js';
10
- export { d as disposeLayoutShaping } from './layout-shaping-_GGjhhVc.js';
11
- export { C as ComposeFontOriginsOptions, b as FONT_RESOLVER_BRAND, c as FONT_RESOLVER_MARK_KEY, d as FontConfigurationBase, e as FontConfigurationFragment, a as FontOrigin, F as FontOriginFailure, f as FontResolutionRequest, g as FontResolver, h as FontResolverMark, M as MAX_RESOLVER_FAMILIES, i as MarkedFontResolver, W as WORD_DEFAULT_FONT, j as composeFontConfiguration, k as composeFontOrigins, l as defineFontResolver, m as isFontResolver } from './font-resolver-DwuQYj3P.js';
12
- import { P as PaginatedSurfaceOptions, O as OpenPaginatedResult, a as PaginatedSurface, T as TableCommandPlan, D as DocxEditorInstance } from './index-3pNnG4z4.js';
13
- export { A as AnchorFrameOrigin, C as CHROME_GROUPS, b as CHROME_MENUS, c as CHROME_UNAVAILABLE_KEY, d as ChromeControl, e as ChromeControlId, f as ChromeControlState, g as ChromeGroup, h as ChromeGroupId, i as ChromeMenu, j as ChromeMenuEntry, k as ChromeMenuId, l as ChromeMenuItemEntry, m as ChromeMenuSeparatorEntry, n as ChromeMenuSubmenuEntry, o as ChromeSlotId, p as ContentControlWidgetChromeHandlers, q as ContentControlWidgetSession, r as CustomFontsOptions, s as CustomFontsResolver, t as DEFAULT_TABLE_CHROME_DRAFT, u as DocxEditorConfig, v as DrawingSelectionIntent, E as EMU_PER_POINT, w as EditorCommandExecute, x as EquationActivation, y as EquationChromeHandlers, z as EquationOps, F as FinalizedImageOverlayInteraction, B as FontLoadFailure, G as FontLoadFailureReason, H as FontMeasurementState, I as FontUrlSource, J as HistoryGroupBinding, K as HistoryGroupBindingOptions, L as HyperlinkActivation, M as HyperlinkChromeHandlers, N as HyperlinkOps, Q as IMAGE_OVERLAY_NUDGE_PT, R as IMAGE_OVERLAY_NUDGE_SHIFT_PT, S as ImageInteractionSession, U as ImageOverlayScrollPort, V as ImageResizeHandle, W as ImageResizeResult, X as InvalidTextFormFieldChromeHandlers, Y as InvalidTextFormFieldSession, Z as LoadFontsRequest, _ as LoadFontsResult, $ as OverlayFrameRect, a0 as PaginatedSurfaceState, a1 as ParagraphPropertyEdit, a2 as PopupChromeRegistrationOptions, a3 as RemoteCaretLabelAnchor, a4 as RemoteCaretLabelHost, a5 as ReviewWriteIntent, a6 as RunTableChromeCommandResult, a7 as SectionAnchor, a8 as SectionBreakInsertType, a9 as SelectedDrawingOverlayTarget, aa as SurfaceEquation, ab as SurfaceFormatting, ac as SurfaceHyperlink, ad as SurfaceInsertImageInput, ae as SurfaceNavigation, af as SurfaceOverlayCoordinates, ag as SurfaceParagraphFormat, ah as TABLE_BORDER_STYLE_OPTIONS, ai as TABLE_BORDER_TARGET_OPTIONS, aj as TABLE_BORDER_WIDTH_OPTIONS, ak as TABLE_CHROME_SLOT_IDS, al as TableBorderStyleOption, am as TableBorderTargetOption, an as TableBorderTargetValue, ao as TableBorderWidthOption, ap as TableChromeDraft, aq as TableChromePick, ar as TableChromeSlotId, as as TableInteractionLabelKey, at as TextFormFieldChromeHandlers, au as TextFormFieldDialogSession, av as ToolbarCommandState, aw as ToolbarSlotValue, ax as ToolbarValueMap, ay as ToolbarValueSlot, az as applyTableChromePick, aA as bindHistoryGroup, aB as blankDocumentBytes, aC as canExecuteImageCommand, aD as captureImageMutationPreconditions, aE as chromeControlCount, aF as chromeMenuSlots, aG as chromeProbeForSlot, aH as chromeSlotId, aI as chromeSlotIsToggle, aJ as commandExecOptions, aK as commandForSlot, aL as commandForSlotValue, aM as commandForTableChromeSlotValue, aN as computeImageResizeResult, aO as computeMovedImagePosition, aP as computeResizedImageExtentEmu, aQ as createDocxEditor, aR as createFontSource, aS as createImageOverlayScrollPort, aT as cssPixelsToLayoutPoints, aU as customFonts, aV as defaultChromeGroups, aW as defaultTableLabel, aX as emuToOverlayPoints, aY as equationAtPosition, aZ as executeImageCommand, a_ as finalizeImageOverlayInteraction, a$ as formattingBarChromeGroups, b0 as isStaleImageInteractionCommit, b1 as isTableChromeSlot, b2 as layoutPointsToCssPixels, b3 as loadFonts, b4 as overlayFrameToSheetCssPixels, b5 as overlayHostOrigin, b6 as pointsToEmu, b7 as probeTableChromeCommand, b8 as resizePreservesAspect, b9 as runSave, ba as runTableChromeCommand, bb as runTableCommand, bc as runToolbarCommand, bd as selectedDrawingOverlayTargetOf, be as selectedImageStateOf, bf as surfacePaintScale, bg as tableChromeIconPaths, bh as tableChromeLabelKeyForTarget, bi as tableChromeToolbarState, bj as tableChromeVisible, bk as tableCommandToolbarState, bl as toolbarCommandState, bm as toolbarCommandStates } from './index-3pNnG4z4.js';
14
- import { A as AutomationCapabilities, a as AutomationHost } from './protocol-CrbTIW2Z.js';
15
- import { S as SemanticLayout } from './semantic-records-StH-AnHK.js';
16
- export { T as TextMeasurer } from './semantic-records-StH-AnHK.js';
17
- export { N as NavigationCommand, S as SemanticPosition, a as SemanticSelection } from './semantic-interaction-Z2Xa68U5.js';
18
- export { S as SectionProperties } from './semantic-cell-selection-CkSsZHDL.js';
19
- export { F as FieldShadingMode, R as ReviewAuthorInfo, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles } from './semantic-paint-BHKprI9P.js';
5
+ import { T as TreeDocxSessionView, f as DocumentThemeColorEntry } from './tree-session-contract-CHcCnz3W.js';
6
+ export { a as TreeApplyResult } from './tree-session-contract-CHcCnz3W.js';
7
+ import { a as FontConfiguration, E as EditorFontError, d as EditorSnapshot, e as EditorCommand, C as CanResult, Z as ZoomMode, f as ClearAnchorHighlightOptions, A as AnchorHighlightOptions, S as ScrollToAnchorOptions, g as AnchorHighlightAnimation } from './editor-DhUQsWWH.js';
8
+ export { I as ImageContext, h as ImageCropPercent, i as ImageCropPermille, j as SelectedImageState, T as TrackedChangeFilterMode, k as TrackedChangePredicate, l as cropPercentFromCropPermille, m as cropPercentFromPermille, n as cropPercentFromSourceCrop, o as cropPermilleFromCropPercent, p as cropPermilleFromPercent, s as sourceCropFromCropPercent, v as validateImageCropPercent } from './editor-DhUQsWWH.js';
9
+ import { L as LayoutShapingInstrumentation, a as LayoutShapingOptions } from './layout-shaping-DpWQG26a.js';
10
+ export { d as disposeLayoutShaping } from './layout-shaping-DpWQG26a.js';
11
+ export { C as ComposeFontOriginsOptions, b as FONT_RESOLVER_BRAND, c as FONT_RESOLVER_MARK_KEY, d as FontConfigurationBase, e as FontConfigurationFragment, a as FontOrigin, F as FontOriginFailure, f as FontResolutionRequest, g as FontResolver, h as FontResolverMark, M as MAX_RESOLVER_FAMILIES, i as MarkedFontResolver, W as WORD_DEFAULT_FONT, j as composeFontConfiguration, k as composeFontOrigins, l as defineFontResolver, m as isFontResolver } from './font-resolver-BwoHFBlr.js';
12
+ import { P as PaginatedSurfaceOptions, O as OpenPaginatedResult, a as PaginatedSurface, T as TableCommandPlan, D as DocxEditorInstance } from './index-BYaCkGKO.js';
13
+ export { A as AnchorFrameOrigin, C as CHROME_GROUPS, b as CHROME_MENUS, c as CHROME_UNAVAILABLE_KEY, d as ChromeControl, e as ChromeControlId, f as ChromeControlState, g as ChromeExportError, h as ChromeExportFormat, i as ChromeExportHandlers, j as ChromeExportResult, k as ChromeGroup, l as ChromeGroupId, m as ChromeMenu, n as ChromeMenuEntry, o as ChromeMenuId, p as ChromeMenuItemEntry, q as ChromeMenuSeparatorEntry, r as ChromeMenuSubmenuEntry, s as ChromePrintError, t as ChromePrintErrorCode, u as ChromePrintJob, v as ChromePrintOptions, w as ChromeSlotId, x as ContentControlWidgetChromeHandlers, y as ContentControlWidgetSession, z as CustomFontsOptions, B as CustomFontsResolver, E as DEFAULT_TABLE_CHROME_DRAFT, F as DocxEditorConfig, G as DrawingSelectionIntent, H as EMU_PER_POINT, I as EditorCommandExecute, J as EquationActivation, K as EquationChromeHandlers, L as EquationOps, M as FinalizedImageOverlayInteraction, N as FontLoadFailure, Q as FontLoadFailureReason, R as FontMeasurementState, S as FontUrlSource, U as HistoryGroupBinding, V as HistoryGroupBindingOptions, W as HyperlinkActivation, X as HyperlinkChromeHandlers, Y as HyperlinkOps, Z as IMAGE_OVERLAY_NUDGE_PT, _ as IMAGE_OVERLAY_NUDGE_SHIFT_PT, $ as ImageInteractionSession, a0 as ImageOverlayScrollPort, a1 as ImageResizeHandle, a2 as ImageResizeResult, a3 as InvalidTextFormFieldChromeHandlers, a4 as InvalidTextFormFieldSession, a5 as LoadFontsRequest, a6 as LoadFontsResult, a7 as OverlayFrameRect, a8 as PaginatedSurfaceState, a9 as ParagraphPropertyEdit, aa as PopupChromeRegistrationOptions, ab as RemoteCaretLabelAnchor, ac as RemoteCaretLabelHost, ad as ReviewWriteIntent, ae as RunTableChromeCommandResult, af as SectionAnchor, ag as SectionBreakInsertType, ah as SelectedDrawingOverlayTarget, ai as SurfaceEquation, aj as SurfaceFormatting, ak as SurfaceHyperlink, al as SurfaceInsertImageInput, am as SurfaceNavigation, an as SurfaceOverlayCoordinates, ao as SurfaceParagraphFormat, ap as TABLE_BORDER_STYLE_OPTIONS, aq as TABLE_BORDER_TARGET_OPTIONS, ar as TABLE_BORDER_WIDTH_OPTIONS, as as TABLE_CHROME_SLOT_IDS, at as TableBorderStyleOption, au as TableBorderTargetOption, av as TableBorderTargetValue, aw as TableBorderWidthOption, ax as TableChromeDraft, ay as TableChromePick, az as TableChromeSlotId, aA as TableInteractionLabelKey, aB as TextFormFieldChromeHandlers, aC as TextFormFieldDialogSession, aD as ToolbarCommandState, aE as ToolbarSlotValue, aF as ToolbarValueMap, aG as ToolbarValueSlot, aH as applyTableChromePick, aI as bindHistoryGroup, aJ as blankDocumentBytes, aK as canExecuteImageCommand, aL as captureImageMutationPreconditions, aM as chromeControlCount, aN as chromeMenuSlots, aO as chromeProbeForSlot, aP as chromeSlotId, aQ as chromeSlotIsToggle, aR as commandExecOptions, aS as commandForSlot, aT as commandForSlotValue, aU as commandForTableChromeSlotValue, aV as computeImageResizeResult, aW as computeMovedImagePosition, aX as computeResizedImageExtentEmu, aY as createDocxEditor, aZ as createFontSource, a_ as createImageOverlayScrollPort, a$ as cssPixelsToLayoutPoints, b0 as customFonts, b1 as defaultChromeGroups, b2 as defaultTableLabel, b3 as emuToOverlayPoints, b4 as equationAtPosition, b5 as executeImageCommand, b6 as finalizeImageOverlayInteraction, b7 as formattingBarChromeGroups, b8 as isChromePrintShortcut, b9 as isStaleImageInteractionCommit, ba as isTableChromeSlot, bb as layoutPointsToCssPixels, bc as loadFonts, bd as overlayFrameToSheetCssPixels, be as overlayHostOrigin, bf as pointsToEmu, bg as probeTableChromeCommand, bh as resizePreservesAspect, bi as runChromeExport, bj as runChromePrint, bk as runSave, bl as runTableChromeCommand, bm as runTableCommand, bn as runToolbarCommand, bo as selectedDrawingOverlayTargetOf, bp as selectedImageStateOf, bq as surfacePaintScale, br as tableChromeIconPaths, bs as tableChromeLabelKeyForTarget, bt as tableChromeToolbarState, bu as tableChromeVisible, bv as tableCommandToolbarState, bw as toolbarCommandState, bx as toolbarCommandStates } from './index-BYaCkGKO.js';
14
+ import { A as AutomationCapabilities, a as AutomationHost } from './protocol-CPAakntQ.js';
15
+ import { S as SemanticLayout } from './semantic-records-DB0VgWsr.js';
16
+ export { T as TextMeasurer } from './semantic-records-DB0VgWsr.js';
17
+ export { N as NavigationCommand, S as SemanticPosition, a as SemanticSelection } from './semantic-interaction-DQjtIruQ.js';
18
+ export { S as SectionProperties } from './semantic-cell-selection-B8GF_H2e.js';
19
+ export { F as FieldShadingMode, R as ReviewAuthorInfo, a as RevisionAuthorAssignments, b as RevisionAuthorStyle, c as RevisionStyles } from './semantic-paint-DoPl85nR.js';
20
20
  export { CollaborationModuleContribution } from './collaboration.js';
21
21
  import './editor-scope-OHPwVQ5l.js';
22
- import './revision-projection-kVd7p6Wd.js';
23
- import './tree-package-fragment-CpEV1gl3.js';
22
+ import './revision-projection-CVJeA2jp.js';
23
+ import './tree-package-fragment-BIyGh6L8.js';
24
24
  import './collaboration/replication.js';
25
- import './failure-DNNmwsgD.js';
26
- import './custom-node-writes-CncR6KfC.js';
27
- import './headless-document-view-C3fc_jV0.js';
25
+ import './failure-BIPVQbRm.js';
26
+ import './custom-node-writes-77rvPW2-.js';
27
+ import './headless-document-view-Cc3fFWhv.js';
28
28
  import 'prosemirror-model';
29
29
  import './contracts/document.js';
30
30
  import './contracts/interaction.js';
31
- import './document-protection-DM6mA8Rf.js';
32
- import './note-properties-CjT31AuP.js';
33
- import './omml-equation-Bk3OP1fv.js';
31
+ import './document-protection-CYIjO-li.js';
32
+ import './note-properties-DMfKK3QU.js';
33
+ import './omml-equation-BY7OdfGY.js';
34
34
 
35
35
  declare function toEditorFontError(error: unknown): EditorFontError;
36
36
  declare function createLayoutShaping(configuration: FontConfiguration, instrumentation?: LayoutShapingInstrumentation): Promise<LayoutShapingOptions>;
@@ -168,6 +168,11 @@ interface RulerIndent {
168
168
  readonly left: number;
169
169
  readonly right: number;
170
170
  readonly firstLine: number;
171
+ /**
172
+ * The paragraph reads right to left. Its `left` indent is then the LEADING one, on the
173
+ * right margin, and its first-line offset counts from there, so the ruler axis mirrors.
174
+ */
175
+ readonly rtl?: boolean;
171
176
  }
172
177
  /** The page the handles are placed against. Twips. */
173
178
  interface RulerPageMetrics {
@@ -186,7 +191,11 @@ interface RulerDragOptions {
186
191
  /** Alt held: continuous, twip-precision drag, bypassing the snap grid — as in Word. */
187
192
  readonly precise?: boolean;
188
193
  }
189
- /** Where a handle sits, in twips from the page's LEFT SHEET EDGE (not the margin). */
194
+ /**
195
+ * Where a handle sits, in twips from the page's LEFT SHEET EDGE (not the margin).
196
+ *
197
+ * With `indent.rtl`, `indent.left` is the leading indent and sits on the right margin.
198
+ */
190
199
  declare function handlePosition(handle: RulerIndentHandle, indent: RulerIndent, page: RulerPageMetrics): number;
191
200
  /** Round to the ruler's grid, or to the twip when the drag is precise. */
192
201
  declare function snapTwips(value: number, unit: RulerUnit, precise: boolean): number;
@@ -381,6 +390,8 @@ interface ParagraphFormatRead {
381
390
  * comes out of `format` can go straight back into `apply`.
382
391
  */
383
392
  readonly alignment: 'left' | 'center' | 'right' | 'justify' | null;
393
+ /** Base direction (`w:bidi` through the cascade); null when the selection mixes them. */
394
+ readonly direction: 'ltr' | 'rtl' | null;
384
395
  readonly spaceBeforePt: number | null;
385
396
  readonly spaceAfterPt: number | null;
386
397
  readonly lineSpacing: {
@@ -409,6 +420,7 @@ interface ParagraphFormatRead {
409
420
  */
410
421
  readonly disagrees: {
411
422
  readonly alignment: boolean;
423
+ readonly direction: boolean;
412
424
  readonly spaceBeforePt: boolean;
413
425
  readonly spaceAfterPt: boolean;
414
426
  readonly lineSpacing: boolean;
@@ -434,6 +446,8 @@ interface ParagraphFormatRead {
434
446
  */
435
447
  interface ParagraphFormatUpdate {
436
448
  readonly alignment?: 'left' | 'center' | 'right' | 'justify';
449
+ /** Word's Direction. `ltr` overrides a right-to-left style with `w:bidi w:val="0"`. */
450
+ readonly direction?: 'ltr' | 'rtl';
437
451
  readonly spaceBeforePt?: number | null;
438
452
  readonly spaceAfterPt?: number | null;
439
453
  readonly lineSpacing?: {
@@ -502,6 +516,7 @@ declare const signedFirstLineOf: (kind: SpecialIndent, magnitudeTwips: number) =
502
516
  */
503
517
  interface ParagraphDialogFields {
504
518
  alignment: 'left' | 'center' | 'right' | 'justify';
519
+ direction: 'ltr' | 'rtl';
505
520
  indentLeft: number;
506
521
  indentRight: number;
507
522
  special: SpecialIndent;
@@ -549,6 +564,7 @@ interface ParagraphDialogMixed {
549
564
  /** The selection's paragraphs carry DIFFERENT tab stops, so the list shows none of them. */
550
565
  readonly tabStops: boolean;
551
566
  readonly alignment: boolean;
567
+ readonly direction: boolean;
552
568
  readonly indentLeft: boolean;
553
569
  readonly indentRight: boolean;
554
570
  readonly special: boolean;
@@ -589,6 +605,14 @@ declare function changedFields(seed: ParagraphDialogFields, current: ParagraphDi
589
605
  seedMixed?: ParagraphDialogMixed,
590
606
  /** What it still disagrees about now. A field that left this set was RESOLVED. */
591
607
  currentMixed?: ParagraphDialogMixed): ParagraphFormatUpdate | null;
608
+ /**
609
+ * The physical alignment a paragraph shows after its direction flips, with its stored
610
+ * `w:jc` unchanged: leading and trailing edges trade sides. A dialog applies this to its
611
+ * Alignment field when Direction changes, so the field shows what OK will produce, the same
612
+ * result as the toolbar's direction buttons.
613
+ * @public
614
+ */
615
+ declare function alignmentAfterDirectionChange(alignment: ParagraphDialogFields['alignment']): ParagraphDialogFields['alignment'];
592
616
  /** Add one stop, replacing any stop already at that position, and keep the list sorted. * @public
593
617
  */
594
618
  declare function withTabStop(stops: readonly ParagraphTabStop[], stop: ParagraphTabStop): readonly ParagraphTabStop[];
@@ -707,4 +731,133 @@ declare function createContentControlListNavigation(locale?: string): ContentCon
707
731
  /** The `accept` list of the engine's picker: what `replaceImage` takes. */
708
732
  declare const CONTENT_CONTROL_PICTURE_ACCEPT = "image/png,image/jpeg,image/gif,image/bmp,image/webp";
709
733
 
710
- export { AUTO_ZOOM_MODE, BROWSER_AUTOMATION_CAPABILITIES, CONTENT_CONTROL_PICTURE_ACCEPT, type CalendarDay, type CalendarMonth, type CalendarMonthOptions, type ColorLowerResult, type ContentControlListNavigation, DRAWING_REL_FROM_H, DRAWING_REL_FROM_V, DocxEditorInstance, DrawingPositionInput, FIT_WIDTH_ZOOM_MODE, LOADING_SNAPSHOT, NO_MIXED_FIELDS, OpenPaginatedResult, PX_PER_CM, PX_PER_INCH, PaginatedSurface, PaginatedSurfaceOptions, type ParagraphDialogFields, type ParagraphDialogMixed, type ParagraphFlagKey, type ParagraphFlagState, type ParagraphFormatRead, type ParagraphFormatUpdate, ParagraphTabStop, type RulerDragOptions, type RulerIndent, type RulerIndentHandle, type RulerPageMetrics, type RulerTick, type RulerUnit, SNAP_TWIPS_CM, SNAP_TWIPS_INCH, type SpecialIndent, type SurfaceExtent, TAB_ALIGNMENT_LABELS, TWIPS_PER_CM, TWIPS_PER_INCH, type TabAlignment, type TabLeaderName, TreeDocxSessionView, ZOOM_MAX, ZOOM_MIN, applyThemeShade, applyThemeTint, calendarDateForKey, calendarDateFromText, calendarDateText, calendarMonth, calendarMonthNames, calendarMonthTitle, calendarWeekdays, changedFields, clipboardDropLandsText, clipboardPasteLandsContent, contentControlPopupKeyDown, contentControlPopupOpener, createBrowserAutomationHost, createContentControlListNavigation, createLayoutShaping, dragIndent, editorCommandKey, firstDayOfWeek, formatInches, generateRulerTicks, handlePosition, inchesToTwips, isoDateOf, lowerColorValueForBorder, lowerColorValueForFill, mixedFieldsOf, mountPaginatedSurface, observeContentControlPopup, parseIsoDate, partOfNodeId, positionContentControlPopup, positionInputFromPropertiesCommand, propertiesCommandHasPositionFields, resolveColorValueToCss, resolveThemeColorHex, resolveZoomMode, rulerPageBox, sameTabStops, sameZoomMode, seedFields, shiftMonth, signedFirstLineOf, snapTwips, specialOf, surfaceExtent, tableCommandState, toEditorFontError, trapTabWithin, twipsToInches, validateDrawingPositionInput, validateSetImagePositionCommand, validateThemeModifier, withTabStop };
734
+ /** A processor location in the returned document's body, including table paragraphs. @public */
735
+ interface RefreshLocation {
736
+ /** OOXML w14:paraId. Use this or paragraphIndex, not both. */
737
+ readonly paragraphId?: string;
738
+ /** Zero-based body paragraph index in document order. */
739
+ readonly paragraphIndex?: number;
740
+ /** UTF-16 offsets in the returned paragraph. */
741
+ readonly start: number;
742
+ readonly end: number;
743
+ /** Exact returned text at these offsets. Required to reject mismatched metadata. */
744
+ readonly text: string;
745
+ }
746
+ /** One processor change. Keep its id stable across cumulative results. @public */
747
+ interface RefreshChangeInput {
748
+ readonly id: string;
749
+ readonly location?: RefreshLocation;
750
+ /** Deletions without a surviving range have no highlight. */
751
+ readonly unavailableReason?: 'deleted' | 'unavailable';
752
+ }
753
+ /** One validated change for an accepted result. @public */
754
+ interface RefreshChange {
755
+ readonly id: string;
756
+ /** Identity of the accepted submission and processor sequence. */
757
+ readonly resultId: string;
758
+ /** True for a new change id or changed text in an existing change id. */
759
+ readonly isNew: boolean;
760
+ readonly status: 'available' | 'deleted' | 'unavailable' | 'invalid' | 'unsupported-story';
761
+ readonly location?: RefreshLocation;
762
+ }
763
+ /** A document captured for external processing. Treat this object as an opaque token. @public */
764
+ interface RefreshSubmission {
765
+ readonly id: string;
766
+ readonly bytes: ArrayBuffer;
767
+ }
768
+ /** Cumulative output for one submission. Assign sequence at the processor, before delivery. @public */
769
+ interface RefreshUpdate {
770
+ readonly submission: RefreshSubmission;
771
+ readonly sequence: number;
772
+ readonly bytes: ArrayBuffer | Uint8Array;
773
+ /** Omit to derive changes from tracked revisions when a review module is registered. */
774
+ readonly changes?: readonly RefreshChangeInput[];
775
+ /** Stable failed operation ids. The controller reports these and never retries processor work. */
776
+ readonly failures?: readonly string[];
777
+ }
778
+ /** Stable refusal codes for external document replacement. @public */
779
+ type RefreshFailureCode = 'unavailable' | 'collaboration' | 'busy' | 'cancelled' | 'superseded' | 'document-changed' | 'local-edits' | 'out-of-order' | 'invalid-result' | 'invalid-document' | 'input-failed' | 'load-failed' | 'recovery-failed';
780
+ /** Completion belongs to one result, including refusals and recovery failures. @public */
781
+ type RefreshResult = {
782
+ readonly ok: true;
783
+ readonly resultId: string;
784
+ readonly changes: readonly RefreshChange[];
785
+ readonly changeInformation: 'available' | 'unavailable';
786
+ readonly failures: readonly string[];
787
+ } | {
788
+ readonly ok: false;
789
+ readonly resultId: string;
790
+ readonly code: RefreshFailureCode;
791
+ readonly recovered?: boolean;
792
+ };
793
+ /** Observable controller state. Document editing stays available during processing. @public */
794
+ interface DocumentRefreshState {
795
+ readonly phase: 'idle' | 'capturing' | 'processing' | 'refreshing' | 'recovering' | 'complete' | 'failed';
796
+ readonly result: RefreshResult | null;
797
+ readonly changes: readonly RefreshChange[];
798
+ /** Whether highlights are requested for available locations. False when the whole set starts dismissal. */
799
+ readonly highlightsVisible: boolean;
800
+ /** Offer restore and download controls when true. */
801
+ readonly recoveryAvailable: boolean;
802
+ }
803
+ /** Opacity fade settings. Reduced motion caps fades at 125ms. @public */
804
+ type RefreshHighlightAnimation = AnchorHighlightAnimation;
805
+ /** Presentation for temporary paragraph highlights. Each call starts from these defaults. @public */
806
+ interface RefreshHighlightOptions extends AnchorHighlightOptions {
807
+ /** Include earlier changes from the latest cumulative result. Default: false. */
808
+ readonly includePrevious?: boolean;
809
+ /** Select these change IDs instead of the recent/all filter. Unknown or unavailable IDs are skipped. Empty means none. */
810
+ readonly changeIds?: readonly string[];
811
+ }
812
+ /** Explicit highlight dismissal. Document edits always remove stale highlights immediately. @public */
813
+ type ClearRefreshHighlightsOptions = ClearAnchorHighlightOptions;
814
+ /** Explicit change navigation. Does not change the default scroll preservation during refresh. @public */
815
+ interface NavigateToChangeOptions extends ScrollToAnchorOptions {
816
+ /** Move the caret and focus to the changed range start. Default: false. */
817
+ readonly focus?: boolean;
818
+ /** Target alignment. Default: center. centerIfNeeded preserves scroll for an already visible target. */
819
+ readonly block?: 'start' | 'center' | 'centerIfNeeded' | 'nearest';
820
+ }
821
+ /** External file transport stays in your application. Reload resets selection and undo history. @public */
822
+ interface DocumentRefresh {
823
+ /** Finish pending input and capture bytes with their document revision. Supersedes earlier submissions. */
824
+ capture(): Promise<RefreshSubmission>;
825
+ /** Accept cumulative output. Preserve a clamped scroll position without moving focus. */
826
+ applyUpdate(update: RefreshUpdate): Promise<RefreshResult>;
827
+ /** Cancel pending processing. An accepted result stays loaded. */
828
+ cancel(): void;
829
+ /** End processing when no further output will arrive. */
830
+ finish(submission: RefreshSubmission): void;
831
+ /** Cached state, suitable for framework external-store subscriptions. */
832
+ snapshot(): DocumentRefreshState;
833
+ /** Observe state changes. Returns an unsubscribe function. */
834
+ subscribe(listener: () => void): () => void;
835
+ /** Completion notification for every `applyUpdate()` call, including a refused result. */
836
+ onResult(listener: (result: RefreshResult) => void): () => void;
837
+ /** Highlight available changes and return their count, including offscreen locations. Zero means none. Always validates options. */
838
+ highlightChanges(options?: RefreshHighlightOptions): number;
839
+ /** Remove temporary paragraph highlights without changing document content or history. */
840
+ clearHighlights(options?: ClearRefreshHighlightsOptions): void;
841
+ /** Explicit navigation. Does not focus unless requested. Returns false for unavailable locations. */
842
+ navigateToChange(id: string, options?: NavigateToChangeOptions): boolean;
843
+ /** Return a copy for download after recovery fails. */
844
+ recoveryBytes(): ArrayBuffer | null;
845
+ /** Retry recovery only while the failed document session is still active. */
846
+ recover(): Promise<boolean>;
847
+ }
848
+ /** A capture failure with a stable code. `applyUpdate()` failures use RefreshResult instead. @public */
849
+ declare class DocumentRefreshError extends Error {
850
+ /** Machine-readable reason. */
851
+ readonly code: RefreshFailureCode;
852
+ constructor(code: RefreshFailureCode, cause?: unknown);
853
+ }
854
+
855
+ /**
856
+ * Get the engine-owned controller for updated DOCX files. React and Vue use the same controller.
857
+ * Transport and processor jobs belong to your application. This is a host API, not an Office.js document member.
858
+ * @public
859
+ */
860
+ declare function createDocumentRefresh(editor: DocxEditorInstance): DocumentRefresh;
861
+
862
+ export { AUTO_ZOOM_MODE, AnchorHighlightAnimation, AnchorHighlightOptions, BROWSER_AUTOMATION_CAPABILITIES, CONTENT_CONTROL_PICTURE_ACCEPT, ClearAnchorHighlightOptions, DRAWING_REL_FROM_H, DRAWING_REL_FROM_V, DocumentRefreshError, DocxEditorInstance, DrawingPositionInput, FIT_WIDTH_ZOOM_MODE, LOADING_SNAPSHOT, NO_MIXED_FIELDS, OpenPaginatedResult, PX_PER_CM, PX_PER_INCH, PaginatedSurface, PaginatedSurfaceOptions, ParagraphTabStop, SNAP_TWIPS_CM, SNAP_TWIPS_INCH, ScrollToAnchorOptions, TAB_ALIGNMENT_LABELS, TWIPS_PER_CM, TWIPS_PER_INCH, TreeDocxSessionView, ZOOM_MAX, ZOOM_MIN, alignmentAfterDirectionChange, applyThemeShade, applyThemeTint, calendarDateForKey, calendarDateFromText, calendarDateText, calendarMonth, calendarMonthNames, calendarMonthTitle, calendarWeekdays, changedFields, clipboardDropLandsText, clipboardPasteLandsContent, contentControlPopupKeyDown, contentControlPopupOpener, createBrowserAutomationHost, createContentControlListNavigation, createDocumentRefresh, createLayoutShaping, dragIndent, editorCommandKey, firstDayOfWeek, formatInches, generateRulerTicks, handlePosition, inchesToTwips, isoDateOf, lowerColorValueForBorder, lowerColorValueForFill, mixedFieldsOf, mountPaginatedSurface, observeContentControlPopup, parseIsoDate, partOfNodeId, positionContentControlPopup, positionInputFromPropertiesCommand, propertiesCommandHasPositionFields, resolveColorValueToCss, resolveThemeColorHex, resolveZoomMode, rulerPageBox, sameTabStops, sameZoomMode, seedFields, shiftMonth, signedFirstLineOf, snapTwips, specialOf, surfaceExtent, tableCommandState, toEditorFontError, trapTabWithin, twipsToInches, validateDrawingPositionInput, validateSetImagePositionCommand, validateThemeModifier, withTabStop };
863
+ export type { CalendarDay, CalendarMonth, CalendarMonthOptions, ClearRefreshHighlightsOptions, ColorLowerResult, ContentControlListNavigation, DocumentRefresh, DocumentRefreshState, NavigateToChangeOptions, ParagraphDialogFields, ParagraphDialogMixed, ParagraphFlagKey, ParagraphFlagState, ParagraphFormatRead, ParagraphFormatUpdate, RefreshChange, RefreshChangeInput, RefreshFailureCode, RefreshHighlightAnimation, RefreshHighlightOptions, RefreshLocation, RefreshResult, RefreshSubmission, RefreshUpdate, RulerDragOptions, RulerIndent, RulerIndentHandle, RulerPageMetrics, RulerTick, RulerUnit, SpecialIndent, SurfaceExtent, TabAlignment, TabLeaderName };
package/dist/editor.js CHANGED
@@ -1 +1 @@
1
- export{_a as AUTO_ZOOM_MODE,db as BROWSER_AUTOMATION_CAPABILITIES,wa as CHROME_GROUPS,Aa as CHROME_MENUS,Da as CHROME_UNAVAILABLE_KEY,Ia as CONTENT_CONTROL_PICTURE_ACCEPT,Y as DEFAULT_TABLE_CHROME_DRAFT,Q as EMU_PER_POINT,$a as FIT_WIDTH_ZOOM_MODE,O as IMAGE_OVERLAY_NUDGE_PT,P as IMAGE_OVERLAY_NUDGE_SHIFT_PT,c as LOADING_SNAPSHOT,vb as NO_MIXED_FIELDS,l as PX_PER_CM,k as PX_PER_INCH,r as SNAP_TWIPS_CM,q as SNAP_TWIPS_INCH,ca as TABLE_BORDER_STYLE_OPTIONS,ba as TABLE_BORDER_TARGET_OPTIONS,da as TABLE_BORDER_WIDTH_OPTIONS,Z as TABLE_CHROME_SLOT_IDS,rb as TAB_ALIGNMENT_LABELS,p as TWIPS_PER_CM,o as TWIPS_PER_INCH,Za as ZOOM_MAX,Ya as ZOOM_MIN,ea as applyTableChromePick,y as applyThemeShade,x as applyThemeTint,Bb as bindHistoryGroup,d as blankDocumentBytes,Qa as calendarDateForKey,Sa as calendarDateFromText,Ra as calendarDateText,Oa as calendarMonth,Ta as calendarMonthNames,Ma as calendarMonthTitle,Na as calendarWeekdays,M as canExecuteImageCommand,L as captureImageMutationPreconditions,yb as changedFields,Ca as chromeControlCount,Ba as chromeMenuSlots,ia as chromeProbeForSlot,xa as chromeSlotId,oa as chromeSlotIsToggle,f as clipboardDropLandsText,e as clipboardPasteLandsContent,v as commandExecOptions,ja as commandForSlot,la as commandForSlotValue,ka as commandForTableChromeSlotValue,lb as computeImageResizeResult,V as computeMovedImagePosition,U as computeResizedImageExtentEmu,Ga as contentControlPopupKeyDown,Ha as contentControlPopupOpener,eb as createBrowserAutomationHost,Ua as createContentControlListNavigation,cb as createDocxEditor,i as createFontSource,mb as createImageOverlayScrollPort,b as createLayoutShaping,I as cropPercentFromCropPermille,G as cropPercentFromPermille,D as cropPercentFromSourceCrop,H as cropPermilleFromCropPercent,F as cropPermilleFromPercent,hb as cssPixelsToLayoutPoints,j as customFonts,ya as defaultChromeGroups,_ as defaultTableLabel,u as dragIndent,va as editorCommandKey,T as emuToOverlayPoints,Wa as equationAtPosition,N as executeImageCommand,nb as finalizeImageOverlayInteraction,La as firstDayOfWeek,pb as formatInches,za as formattingBarChromeGroups,m as generateRulerTicks,s as handlePosition,qb as inchesToTwips,W as isStaleImageInteractionCommit,$ as isTableChromeSlot,Ja as isoDateOf,gb as layoutPointsToCssPixels,h as loadFonts,A as lowerColorValueForBorder,B as lowerColorValueForFill,wb as mixedFieldsOf,Xa as mountPaginatedSurface,Fa as observeContentControlPopup,ib as overlayFrameToSheetCssPixels,jb as overlayHostOrigin,Ka as parseIsoDate,g as partOfNodeId,S as pointsToEmu,Ea as positionContentControlPopup,fa as probeTableChromeCommand,kb as resizePreservesAspect,C as resolveColorValueToCss,z as resolveThemeColorHex,ab as resolveZoomMode,n as rulerPageBox,sa as runSave,qa as runTableChromeCommand,ua as runTableCommand,ra as runToolbarCommand,xb as sameTabStops,bb as sameZoomMode,ub as seedFields,R as selectedDrawingOverlayTargetOf,K as selectedImageStateOf,Pa as shiftMonth,tb as signedFirstLineOf,t as snapTwips,E as sourceCropFromCropPercent,sb as specialOf,Va as surfaceExtent,fb as surfacePaintScale,ha as tableChromeIconPaths,ga as tableChromeLabelKeyForTarget,ma as tableChromeToolbarState,aa as tableChromeVisible,X as tableCommandState,ta as tableCommandToolbarState,a as toEditorFontError,na as toolbarCommandState,pa as toolbarCommandStates,Ab as trapTabWithin,ob as twipsToInches,J as validateImageCropPercent,w as validateThemeModifier,zb as withTabStop}from'./chunk-OFWUHH52.js';export{a as resolveEditorModules}from'./chunk-AJCCS53D.js';import'./chunk-DGONGMAV.js';export{h as FONT_RESOLVER_BRAND,g as FONT_RESOLVER_MARK_KEY,c as MAX_RESOLVER_FAMILIES,d as WORD_DEFAULT_FONT,e as composeFontConfiguration,k as composeFontOrigins,i as defineFontResolver,j as isFontResolver}from'./chunk-U5GUJKTS.js';export{H as disposeLayoutShaping}from'./chunk-OKY6JRJL.js';import'./chunk-RIYSCEFQ.js';import'./chunk-25OQBAKA.js';import'./chunk-XRYSPKKC.js';import'./chunk-JL3SI5SZ.js';import'./chunk-3PA64KPK.js';import'./chunk-FPDIJ4RF.js';import'./chunk-DZYKU2HG.js';import'./chunk-VP7SDFCM.js';import'./chunk-3P3DNJYM.js';import'./chunk-6JIJOZDW.js';import'./chunk-BF2TOG2V.js';export{m as DEFAULT_IMAGE_RESOURCE_LIMITS,xi as DRAWING_REL_FROM_H,yi as DRAWING_REL_FROM_V,db as IMAGE_WRAP_TARGETS,kh as TEXT_FORM_FORMATS,Ai as positionInputFromPropertiesCommand,zi as propertiesCommandHasPositionFields,n as resolveImageResourceLimits,yb as resolveSvgIntrinsicSize,ub as sniffImageMime,wi as validateDrawingPositionInput,zb as validateRasterHeader,Bi as validateSetImagePositionCommand}from'./chunk-3B3DQMSL.js';import'./chunk-S6J4O5XP.js';
1
+ export{_a as AUTO_ZOOM_MODE,db as BROWSER_AUTOMATION_CAPABILITIES,wa as CHROME_GROUPS,Aa as CHROME_MENUS,Da as CHROME_UNAVAILABLE_KEY,Ia as CONTENT_CONTROL_PICTURE_ACCEPT,Fb as ChromeExportError,Hb as ChromePrintError,Y as DEFAULT_TABLE_CHROME_DRAFT,Db as DocumentRefreshError,Q as EMU_PER_POINT,$a as FIT_WIDTH_ZOOM_MODE,O as IMAGE_OVERLAY_NUDGE_PT,P as IMAGE_OVERLAY_NUDGE_SHIFT_PT,c as LOADING_SNAPSHOT,vb as NO_MIXED_FIELDS,l as PX_PER_CM,k as PX_PER_INCH,r as SNAP_TWIPS_CM,q as SNAP_TWIPS_INCH,ca as TABLE_BORDER_STYLE_OPTIONS,ba as TABLE_BORDER_TARGET_OPTIONS,da as TABLE_BORDER_WIDTH_OPTIONS,Z as TABLE_CHROME_SLOT_IDS,rb as TAB_ALIGNMENT_LABELS,p as TWIPS_PER_CM,o as TWIPS_PER_INCH,Za as ZOOM_MAX,Ya as ZOOM_MIN,zb as alignmentAfterDirectionChange,ea as applyTableChromePick,y as applyThemeShade,x as applyThemeTint,Cb as bindHistoryGroup,d as blankDocumentBytes,Qa as calendarDateForKey,Sa as calendarDateFromText,Ra as calendarDateText,Oa as calendarMonth,Ta as calendarMonthNames,Ma as calendarMonthTitle,Na as calendarWeekdays,M as canExecuteImageCommand,L as captureImageMutationPreconditions,yb as changedFields,Ca as chromeControlCount,Ba as chromeMenuSlots,ia as chromeProbeForSlot,xa as chromeSlotId,oa as chromeSlotIsToggle,f as clipboardDropLandsText,e as clipboardPasteLandsContent,v as commandExecOptions,ja as commandForSlot,la as commandForSlotValue,ka as commandForTableChromeSlotValue,lb as computeImageResizeResult,V as computeMovedImagePosition,U as computeResizedImageExtentEmu,Ga as contentControlPopupKeyDown,Ha as contentControlPopupOpener,eb as createBrowserAutomationHost,Ua as createContentControlListNavigation,Eb as createDocumentRefresh,cb as createDocxEditor,i as createFontSource,mb as createImageOverlayScrollPort,b as createLayoutShaping,I as cropPercentFromCropPermille,G as cropPercentFromPermille,D as cropPercentFromSourceCrop,H as cropPermilleFromCropPercent,F as cropPermilleFromPercent,hb as cssPixelsToLayoutPoints,j as customFonts,ya as defaultChromeGroups,_ as defaultTableLabel,u as dragIndent,va as editorCommandKey,T as emuToOverlayPoints,Wa as equationAtPosition,N as executeImageCommand,nb as finalizeImageOverlayInteraction,La as firstDayOfWeek,pb as formatInches,za as formattingBarChromeGroups,m as generateRulerTicks,s as handlePosition,qb as inchesToTwips,Ib as isChromePrintShortcut,W as isStaleImageInteractionCommit,$ as isTableChromeSlot,Ja as isoDateOf,gb as layoutPointsToCssPixels,h as loadFonts,A as lowerColorValueForBorder,B as lowerColorValueForFill,wb as mixedFieldsOf,Xa as mountPaginatedSurface,Fa as observeContentControlPopup,ib as overlayFrameToSheetCssPixels,jb as overlayHostOrigin,Ka as parseIsoDate,g as partOfNodeId,S as pointsToEmu,Ea as positionContentControlPopup,fa as probeTableChromeCommand,kb as resizePreservesAspect,C as resolveColorValueToCss,z as resolveThemeColorHex,ab as resolveZoomMode,n as rulerPageBox,Gb as runChromeExport,Jb as runChromePrint,sa as runSave,qa as runTableChromeCommand,ua as runTableCommand,ra as runToolbarCommand,xb as sameTabStops,bb as sameZoomMode,ub as seedFields,R as selectedDrawingOverlayTargetOf,K as selectedImageStateOf,Pa as shiftMonth,tb as signedFirstLineOf,t as snapTwips,E as sourceCropFromCropPercent,sb as specialOf,Va as surfaceExtent,fb as surfacePaintScale,ha as tableChromeIconPaths,ga as tableChromeLabelKeyForTarget,ma as tableChromeToolbarState,aa as tableChromeVisible,X as tableCommandState,ta as tableCommandToolbarState,a as toEditorFontError,na as toolbarCommandState,pa as toolbarCommandStates,Bb as trapTabWithin,ob as twipsToInches,J as validateImageCropPercent,w as validateThemeModifier,Ab as withTabStop}from'./chunk-F5LAOPAD.js';export{a as resolveEditorModules}from'./chunk-AJCCS53D.js';import'./chunk-Y5JCIWTF.js';export{h as FONT_RESOLVER_BRAND,g as FONT_RESOLVER_MARK_KEY,c as MAX_RESOLVER_FAMILIES,d as WORD_DEFAULT_FONT,e as composeFontConfiguration,k as composeFontOrigins,i as defineFontResolver,j as isFontResolver}from'./chunk-GRVRQBKU.js';export{r as disposeLayoutShaping}from'./chunk-XBYZTDF7.js';import'./chunk-RIYSCEFQ.js';import'./chunk-ZA6HEWUM.js';import'./chunk-WHG23WNI.js';import'./chunk-ZCRSPN4Q.js';import'./chunk-4OAXZNBU.js';import'./chunk-UMBHUW6R.js';import'./chunk-DZOGUV7O.js';import'./chunk-6QS5WL63.js';import'./chunk-VE6H5EJA.js';import'./chunk-6JIJOZDW.js';import'./chunk-KRBBWATQ.js';export{m as DEFAULT_IMAGE_RESOURCE_LIMITS,$i as DRAWING_REL_FROM_H,aj as DRAWING_REL_FROM_V,Uc as IMAGE_WRAP_TARGETS,Oh as TEXT_FORM_FORMATS,cj as positionInputFromPropertiesCommand,bj as propertiesCommandHasPositionFields,n as resolveImageResourceLimits,nd as resolveSvgIntrinsicSize,jd as sniffImageMime,_i as validateDrawingPositionInput,od as validateRasterHeader,dj as validateSetImagePositionCommand}from'./chunk-XRBPZCNK.js';import'./chunk-S6J4O5XP.js';
package/dist/export.cjs CHANGED
@@ -1,2 +1,2 @@
1
- 'use strict';var chunkP24FHMQW_cjs=require('./chunk-P24FHMQW.cjs'),chunkIYCXQAFT_cjs=require('./chunk-IYCXQAFT.cjs'),chunkAGWWNVIJ_cjs=require('./chunk-AGWWNVIJ.cjs'),chunkQBKAOSVF_cjs=require('./chunk-QBKAOSVF.cjs'),chunkT5B4NMKF_cjs=require('./chunk-T5B4NMKF.cjs');require('./chunk-FGBADUSK.cjs');var chunkDFTVN25X_cjs=require('./chunk-DFTVN25X.cjs'),chunkZZRCVDQU_cjs=require('./chunk-ZZRCVDQU.cjs');var B=chunkIYCXQAFT_cjs.b;function q(e){return typeof e.admittedFontFace=="function"}var yt=Object.freeze([{weight:400,style:"normal"},{weight:700,style:"normal"},{weight:400,style:"italic"},{weight:700,style:"italic"}]);function P(e){return Object.freeze({family:e.family,weight:e.weight,style:e.style})}function j(e){let o=e.substitution;return Object.freeze({id:e.id,identity:e.identity,family:e.family,request:P(e.request),byteLength:e.byteLength,hash:e.hash,faceIndex:e.faceIndex,substitution:o?Object.freeze({requested:P(o.requested),resolved:P(o.resolved),...o.lineMetrics?{lineMetrics:Object.freeze({...o.lineMetrics})}:{}}):null})}function ht(e){return Object.freeze({...j(e),bytes:chunkIYCXQAFT_cjs.h(e)})}function Ft(e,o){if(!e)return null;try{let t=e(o);return !t||t instanceof chunkIYCXQAFT_cjs.d?null:ht(t)}catch{return null}}function Ge(e){return o=>{if(e.status()!=="active")throw e.unavailable();return Ft(e.resolve(),o)}}function xt(e){return Object.freeze(e.slice(0,B).map(o=>Object.freeze({request:P(o.request),partName:o.partName,reason:o.reason})))}function z(e,o,t,n,r=[]){let i=new Map;for(let l of [...e,o]){let u=l.toLowerCase();i.has(u)||i.set(u,l);}let a=[...i.values()].map(l=>{let u=[];for(let c of yt){let s=n?.({family:l,...c});!s||s instanceof chunkIYCXQAFT_cjs.d||u.push(Object.freeze({...c,sourceFamily:s.family,via:s.substitution?"substitution":"direct",identity:s.identity,id:s.id,hash:s.hash,faceIndex:s.faceIndex,substitution:s.substitution}));}return Object.freeze({family:l,coverage:u.length===4?"complete":u.length>0?"partial":"none",faces:Object.freeze(u)})});return Object.freeze({requestedFamilies:Object.freeze([...e]),defaultFamily:o,families:Object.freeze(a),originFailures:Object.freeze([...t]),droppedEmbeddedFonts:xt(r)})}function V(e,o){if(o.onFontResolution){try{let t=o.onFontResolution(e);Promise.resolve(t).catch(n=>{console.warn("[fonts] font-resolution diagnostics callback failed",n);});}catch(t){console.warn("[fonts] font-resolution diagnostics callback failed",t);}return}for(let t of e.originFailures)console.warn("[fonts] a document export font origin failed and was skipped",t);for(let t of e.droppedEmbeddedFonts??[])console.warn("[fonts] a document embedded font face was dropped during export",t);}function H(e,o){if(o.fontPolicy!=="strict"||e.originFailures.length===0&&e.families.every(n=>n.coverage==="complete"))return;let t=e.families.filter(n=>n.coverage!=="complete").map(n=>n.family).join(", ");throw new chunkAGWWNVIJ_cjs.d("layoutFailed",`Strict font policy refused export${t?`; incomplete families: ${t}`:"; a font origin failed"}`)}function N(){return new Map}function G(e,o,t,n){if(t.trim().length===0)return null;let r={family:t,weight:n.bold?700:400,style:n.italic?"italic":"normal"},i=chunkIYCXQAFT_cjs.g(r),a=o.get(i);if(!a){try{a=e.fonts.resolve(r);}catch{return null}o.set(i,a);}return a instanceof chunkIYCXQAFT_cjs.d?null:a}function Xe(e,o,t){let n=t.fontFamily??e.defaultFont.family;return G(e,o,n,t)}function X(e){return typeof e.shapeLaidOutText=="function"}function W(e){let o=N(),t=new WeakMap;return n=>{let r=chunkQBKAOSVF_cjs.z(n.style,n.fontSlot),i=chunkQBKAOSVF_cjs.j(n.text,r);if(i.length===0)return null;let a=r.fontFamily??e.defaultFont.family,l=G(e,o,a,r);if(!l)return null;try{if(r.smallCaps&&!chunkIYCXQAFT_cjs.na(e.shaper,e.environment,l,r,t))return null;let u=chunkIYCXQAFT_cjs.ma(e.shaper,e.environment,l,r,i);return Object.freeze({run:u,font:j(l),fixedPointScale:e.environment.fixedPointScale})}catch{return null}}}function We(e){return o=>{if(e.status()!=="active")throw e.unavailable();return e.shaping()?.shapeLaidOutText(o)??null}}var A=new Map,I=new WeakMap,$=0,T,Y=32,$e=chunkIYCXQAFT_cjs.c;function Ye(){if(T)return T;let e=(async()=>(await chunkIYCXQAFT_cjs.s(),chunkIYCXQAFT_cjs.x(chunkIYCXQAFT_cjs.y)))();return T=e,e.catch(()=>{T===e&&(T=void 0);}),e}function Ke(e){let o=N();return chunkIYCXQAFT_cjs.pa(e,{resolveFont(t){return Xe(e,o,t)},fallback:chunkQBKAOSVF_cjs.b()})}async function Ze(e,o){if(!chunkIYCXQAFT_cjs.A(e))throw new TypeError("Session exporter shaping requires a prepared font handle");let t=await Ye(),n=await chunkIYCXQAFT_cjs.H(e,t,chunkIYCXQAFT_cjs.y,o);return Object.freeze({createMeasurer:()=>Ke(n),resolveFont:r=>n.fonts.resolve(r),shapeLaidOutText:W(n),producer:["node-export-session",e.fingerprint,n.operation.shapingHash,`producer:${n.operation.producerVersion}`,`fallback:${chunkQBKAOSVF_cjs.a}`].join("|"),extensionFingerprint:e.fingerprint})}function gt(e,o){if(!chunkIYCXQAFT_cjs.A(e))return Promise.reject(new TypeError("Shared exporter shaping requires a prepared font handle"));let t=I.get(e);if(t)return t;let n=chunkIYCXQAFT_cjs.C(e),r=A.get(n);if(!r){if(A.size>=Y)return Promise.reject(new RangeError(`Shared exporter shaping is limited to ${Y} process-wide configurations`));r=(async()=>{let u=chunkIYCXQAFT_cjs.B(e).sources.reduce((s,p)=>s+(p.availability==="forbidden"?0:p.bytes.byteLength),0);if($+u>$e)throw new RangeError(`Shared exporter shaping font bytes are limited to ${$e} process-wide`);$+=u;let c;try{let s=await Ye();c=await chunkIYCXQAFT_cjs.H(e,s,chunkIYCXQAFT_cjs.y,o);}catch(s){throw $-=u,s}return Object.freeze({createMeasurer:()=>Ke(c),shapeLaidOutText:W(c),shapingHash:c.operation.shapingHash,producerVersion:c.operation.producerVersion})})(),A.set(n,r),r.catch(()=>{A.get(n)===r&&A.delete(n);});}let i=e.fingerprint,a=r.then(l=>Object.freeze({createMeasurer:l.createMeasurer,shapeLaidOutText:l.shapeLaidOutText,producer:["node-export",i,l.shapingHash,`producer:${l.producerVersion}`,`fallback:${chunkQBKAOSVF_cjs.a}`].join("|"),extensionFingerprint:i}));return I.set(e,a),a.catch(()=>{I.get(e)===a&&I.delete(e);}),a}var Et="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";function bt(e){let o=e.currentPackage(),t=(o.relationships.get(o.mainDocumentPart)??[]).find(r=>r.type===Et),n;if(t){let r=chunkZZRCVDQU_cjs.E(t);r.mode==="Internal"&&r.target.ok&&(n=o.parts.get(r.target.partName));}return n??=o.parts.get("/word/fontTable.xml"),chunkZZRCVDQU_cjs.Td(o,n)}function Qe(e,o){let t=bt(e);if(t.length!==0)return chunkP24FHMQW_cjs.i(n=>{let r=new Set((n.resolvedFaces??[]).map(a=>chunkIYCXQAFT_cjs.g(a))),i=chunkP24FHMQW_cjs.o(t,{maxFontBytes:chunkIYCXQAFT_cjs.a,aggregateBudget:Rt(n),shadowedRequests:r});if(o)for(let a of i.dropped){if(o.dropped.length>=B)break;o.dropped.push(a);}return {sources:i.sources}})}function Rt(e){let o=e.committedSourceBytes;return o===void 0||!Number.isSafeInteger(o)||o<=0?chunkIYCXQAFT_cjs.c:Math.max(0,chunkIYCXQAFT_cjs.c-o)}function Ot(e){return q(e)&&X(e)}var R=0,Je=Symbol("font-resolution-timeout");function St(e){let o=0,t=false;return e?.(R),{reserve:r=>{if(t)throw new Error("Document font-byte lease is already released");if(R+r>chunkIYCXQAFT_cjs.c)throw new chunkAGWWNVIJ_cjs.d("layoutFailed",`Active document export font bytes are limited to ${chunkIYCXQAFT_cjs.c}; requested ${r} bytes with ${R} bytes already active`);R+=r,o+=r,e?.(R);let i=false;return ()=>{i||t||(i=true,R-=r,o-=r,e?.(R));}},release:()=>{t||(t=true,R-=o,o=0,e?.(R));}}}function Z(e,o){return e.attributes.find(t=>t.localName===o)?.value}function wt(e,o){return e.attributes.find(t=>t.localName===o&&(t.namespaceUri===chunkZZRCVDQU_cjs.da||t.namespaceUri===""))?.value}async function vt(e,o){if(o.reuseAcrossRevisions===true)throw new TypeError("reuseAcrossRevisions requires a live view or caller-supplied measurer; document-aware byte sessions are immutable");if(o.signal?.aborted)return {ok:false,reason:"aborted"};let t=chunkDFTVN25X_cjs.$a(e);if(!t.ok)return t;let{fonts:n,fontResolutionTimeoutMs:r,fontPolicy:i,onFontResolution:a,...l}=o,u=Array.isArray(n)?n:[n],c,s;try{s=await At(t.view,u,{signal:o.signal,timeoutMs:r??o.resourceTimeoutMs,fontPolicy:i,onFontResolution:y=>(c=y,a?.(y))});}catch(y){if(y instanceof chunkAGWWNVIJ_cjs.d&&y.code==="aborted")return {ok:false,reason:"aborted"};throw y}if(!c)throw s?.dispose(),new chunkAGWWNVIJ_cjs.d("layoutFailed","Document font resolution completed without publishing its evidence");let p;try{p=chunkAGWWNVIJ_cjs.e(t.view,{...l,reuseAcrossRevisions:!1,...s?{measurer:s.createMeasurer(),producer:o.producer??s.producer}:o.producer?{producer:o.producer}:{}});}catch(y){throw s?.dispose(),y}if(!p.ok)return s?.dispose(),p;let d=p.session,m=s,f="active",x=()=>f==="aborted"?new chunkAGWWNVIJ_cjs.d("aborted","Export resource settlement was aborted"):new chunkAGWWNVIJ_cjs.d("disposed","Export session has been disposed"),F=y=>{if(f==="active"){f=y,o.signal?.removeEventListener("abort",h);try{d.dispose();}finally{m?.dispose(),m=void 0;}}},h=()=>F("aborted");return o.signal?.addEventListener("abort",h,{once:true}),o.signal?.aborted&&h(),{ok:true,session:Object.freeze({fontResolution:c,layout:()=>f==="active"?d.layout():Promise.reject(x()),layoutFor:y=>f==="active"?d.layoutFor(y):Promise.reject(x()),validatedImageBytes:y=>f==="active"?d.validatedImageBytes(y):null,admittedFontFace:Ge({status:()=>f,unavailable:x,resolve:()=>m?.resolveFont}),shapeLaidOutText:We({status:()=>f,unavailable:x,shaping:()=>m}),dispose:()=>F("disposed")})}}async function At(e,o,t={}){let n=Tt(t.timeoutMs),r=new AbortController,i=()=>r.abort(t.signal?.reason);t.signal?.addEventListener("abort",i,{once:true}),t.signal?.aborted&&i();let a=setTimeout(()=>r.abort(Je),n);try{K(r.signal);let l=(async()=>{let u=St(t.onActiveFontBytesChange),c=!1;try{let s=Dt(e).slice(0,chunkP24FHMQW_cjs.c),p=[],d={dropped:[]},m=Qe(e,d),f=m?[...o,m]:o,x=await chunkP24FHMQW_cjs.l(f,{families:s,defaultFamily:chunkP24FHMQW_cjs.d.family,signal:r.signal},{onOriginFailure:E=>p.push(E),reserveOwnedBytes:u.reserve});K(r.signal);let F=chunkP24FHMQW_cjs.e(x??{});if(F.sources.length===0){let E=z(s,F.defaultFont.family,p,void 0,d.dropped);V(E,t),H(E,t);return}let h=await Ze(chunkIYCXQAFT_cjs.E(F));K(r.signal);let y=z(s,F.defaultFont.family,p,h.resolveFont,d.dropped);return V(y,t),H(y,t),c=!0,Object.freeze({...h,dispose:u.release})}finally{c||u.release();}})();return await Promise.race([l,Lt(r.signal)])}finally{clearTimeout(a),t.signal?.removeEventListener("abort",i);}}function Tt(e){if(e===void 0)return 6e4;if(!Number.isFinite(e)||e<=0)throw new RangeError("timeoutMs must be a positive finite number");return Math.max(1,e)}function Lt(e){return new Promise((o,t)=>{let n=()=>{t(et(e));};e.aborted?n():e.addEventListener("abort",n,{once:true});})}function et(e){let o=e.reason===Je;return new chunkAGWWNVIJ_cjs.d(o?"timedOut":"aborted",o?"Font resolution timed out":"Font resolution was aborted",o?void 0:{cause:e.reason})}function K(e){if(e.aborted)throw et(e)}function Dt(e){let o=[e.part().root],t=[],n=[],r=new Set([e.part().name]),i=(s,p)=>{!p||r.has(p.name)||(r.add(p.name),s.push(p.root));};for(let s of e.headerFooterPartsBySection()){for(let p of s.headers.values())i(t,p);for(let p of s.footers.values())i(t,p);}for(let s of ["footnote","endnote"])n.push(...Pt(e,s));let a=e.documentThemeFonts(),l={...a,major:a.major,minor:a.minor,majorEastAsia:a.majorEastAsia??null,minorEastAsia:a.minorEastAsia??null},u=new Map,c=(s,p)=>{let d=chunkT5B4NMKF_cjs.d(s,e.stylesRoot(),l,It(s,p)),m=chunkP24FHMQW_cjs.v(s,e.numberingRoot(),e.stylesRoot(),l);for(let f of [...d.direct,...Ut(s),...m,...chunkP24FHMQW_cjs.s(s,e.stylesRoot(),l),...d.inherited]){let x=f.toLowerCase();u.has(x)||u.set(x,f);}};return c(o,"body"),c(t,"furniture"),c(n,"note"),[...u.values()]}function Pt(e,o){let t=chunkZZRCVDQU_cjs.Wf(e.currentPackage(),o);if(!t)return [];let n=new Set(chunkZZRCVDQU_cjs.Xf(e.part()).filter(i=>i.noteKind===o).map(i=>i.noteId)),r=[];for(let i of t.root.children){if(i.kind==="textValue")continue;let a=chunkZZRCVDQU_cjs.jd(i),l=chunkZZRCVDQU_cjs.id(i);(a==="separator"||a==="continuationSeparator"||l!==null&&n.has(l))&&r.push(i);}return r}var Nt="http://schemas.openxmlformats.org/officeDocument/2006/math";function It(e,o){let t=new Set;for(let n of e){let r=[],i=[{node:n,context:o}];for(;i.length>0;){let{node:a,context:l}=i.pop();a.namespaceUri===chunkZZRCVDQU_cjs.da&&a.localName==="p"&&r.push({paragraph:a,context:l});let u=a.namespaceUri===chunkZZRCVDQU_cjs.da&&a.localName==="txbxContent"&&(l==="body"||l==="note")?"detached":l;for(let c=a.children.length-1;c>=0;c-=1){let s=a.children[c];s.kind!=="textValue"&&i.push({node:s,context:u});}}for(let a of r)_t(a.paragraph,t,a.context);}return t}function _t(e,o,t){let n=chunkQBKAOSVF_cjs.ia(),r=null,i=null,a="",l=false,u=false,c=false,s=0,p=[];for(let d=e.children.length-1;d>=0;d-=1){let m=e.children[d];m.kind!=="textValue"&&p.push({node:m,runId:null,visibility:S,containerDepth:0});}for(;p.length>0;){let{node:d,runId:m,visibility:f,containerDepth:x}=p.pop();if(x>=chunkZZRCVDQU_cjs.la||d.namespaceUri===chunkZZRCVDQU_cjs.da&&d.localName==="p")continue;let F=d.namespaceUri===chunkZZRCVDQU_cjs.da&&d.localName==="r"?d.id:m;if(d.namespaceUri===chunkZZRCVDQU_cjs.da&&d.localName==="fldSimple"){let h=Z(d,"instr")??"";chunkQBKAOSVF_cjs.qc(h,{allowPageFields:t==="body"||t==="furniture",allowRefFields:t==="body"||t==="note",allowPageRef:t==="body",allowAutonum:t==="body"||t==="note"})&&kt(d)!==S&&o.add(d.id);}if(d.namespaceUri===chunkZZRCVDQU_cjs.da&&d.localName==="fldChar"){let h=Z(d,"fldCharType");if(h==="begin")chunkQBKAOSVF_cjs.la(n),n.nesting===1&&(r=F,i=null,a="",l=false,u=false,c=chunkZZRCVDQU_cjs.le(d),s=0);else if(h==="separate"){let y=n.nesting===1;if(chunkQBKAOSVF_cjs.na(n),y){let E=chunkQBKAOSVF_cjs.ka(n);a=E.instruction,l=E.overflow||n.nestingOverflow,i=F,u=true;}}else if(h==="end"){if(n.nesting===1){if(n.phase==="instruction"){let E=chunkQBKAOSVF_cjs.ka(n);a=E.instruction,l=E.overflow||n.nestingOverflow;}if(!l&&chunkQBKAOSVF_cjs.pc(a,{hasSeparate:u,hasLegacyFormData:c,allowPageFields:t==="body"||t==="furniture",allowRefFields:t==="body"||t==="note",allowPageRef:t==="body",allowAutonum:t==="body"||t==="note"})&&s!==S){let E=i??r;E&&o.add(E);}}chunkQBKAOSVF_cjs.oa(n);}continue}if(d.namespaceUri===chunkZZRCVDQU_cjs.da&&(d.localName==="instrText"||d.localName==="delInstrText")){chunkQBKAOSVF_cjs.ma(n,it(d),d.localName==="delInstrText");continue}n.nesting>0&&chunkQBKAOSVF_cjs.pa(n)&&d.namespaceUri===chunkZZRCVDQU_cjs.da&&tt(d)&&(s|=f);for(let h=d.children.length-1;h>=0;h-=1){let y=d.children[h];y.kind!=="textValue"&&p.push({node:y,runId:F,visibility:f&rt(d),containerDepth:chunkZZRCVDQU_cjs.ma(d,x)});}}chunkQBKAOSVF_cjs.ja(n);}function tt(e){return e.localName==="t"||e.localName==="delText"?it(e).length>0:e.localName==="sym"||e.localName==="tab"||e.localName==="br"}var Q=1,ot=2,nt=4,S=Q|ot|nt;function kt(e){let o=[];for(let n of e.children)n.kind!=="textValue"&&o.push({node:n,visibility:S});let t=0;for(;o.length>0;){let{node:n,visibility:r}=o.pop();if(!(n.namespaceUri===chunkZZRCVDQU_cjs.da&&n.localName==="p")){if(n.namespaceUri===chunkZZRCVDQU_cjs.da&&tt(n)&&(t|=r,t===S))return t;for(let i of n.children)i.kind!=="textValue"&&o.push({node:i,visibility:r&rt(n)});}}return t}function rt(e){return e.namespaceUri!==chunkZZRCVDQU_cjs.da?S:e.localName==="ins"||e.localName==="moveTo"?Q|ot:e.localName==="del"||e.localName==="moveFrom"?Q|nt:S}function Ut(e){let o=new Map,t=n=>{let r=chunkT5B4NMKF_cjs.a(n??void 0);if(r===null)return;let i=r.toLowerCase();o.has(i)||o.set(i,r);};for(let n of e){let r=[n];for(;r.length>0;){let i=r.pop();if(i.namespaceUri===Nt&&t(chunkQBKAOSVF_cjs.yb),i.namespaceUri===chunkZZRCVDQU_cjs.da&&i.localName==="sym"&&t(chunkT5B4NMKF_cjs.b(wt(i,"font"))),i.namespaceUri===chunkZZRCVDQU_cjs.da&&i.localName==="fldSimple"){let a=Z(i,"instr");t(chunkQBKAOSVF_cjs.kc(a??"")?.font??null);}if(i.namespaceUri===chunkZZRCVDQU_cjs.da&&i.localName==="p")for(let a of chunkP24FHMQW_cjs.u(i))t(a);for(let a=i.children.length-1;a>=0;a-=1){let l=i.children[a];l.kind!=="textValue"&&r.push(l);}}}return [...o.values()]}function it(e){let o="",t=[...e.children].reverse();for(;t.length>0&&o.length<=256;){let n=t.pop();if(n.kind==="textValue")o+=n.value;else for(let r=n.children.length-1;r>=0;r-=1)t.push(n.children[r]);}return o}var lt="FILE_TOO_LARGE",at=8;function Mt(e){return typeof e=="object"&&e!==null}function dt(e){if(!(!Mt(e)||typeof e.code!="string"))return e.code}function ut(e){return e===""||e.toLowerCase()==="localhost"}function Ct(e){try{let o=decodeURIComponent(e);return o.includes("\0")?null:o}catch{return null}}function ct(e){let o=Ct(e);if(o===null)return null;let t=[];for(let n of o.split(/[/\\]/))if(!(n===""||n===".")){if(n===".."){if(t.length===0)return null;t.pop();continue}t.push(n);}return `/${t.join("/")}`}function pt(e){let o=ct(e);return o===null?null:o.endsWith("/")?o:`${o}/`}function Bt(e){return e==="/"||/^\/[A-Za-z]:\/$/.test(e)}function qt(e){let o;try{o=typeof e=="string"?new URL(e):new URL("href"in e?e.href:String(e));}catch{throw new TypeError("trustedRoot must be an absolute file: URL")}if(o.protocol!=="file:")throw new TypeError("trustedRoot must use the file: protocol");if(o.username!==""||o.password!=="")throw new TypeError("trustedRoot must not include credentials");if(!ut(o.host))throw new TypeError("trustedRoot must be a local file: URL");let t=pt(o.pathname);if(t===null||Bt(t))throw new TypeError("trustedRoot must be a directory inside the filesystem");let n=new URL("file:///");return n.pathname=t,n}function jt(e){if(typeof e=="string")return [e];if(typeof e=="object"&&e!==null&&"href"in e)return [e];if(Array.isArray(e))return e;throw new TypeError("trustedRoot must be an absolute file: URL")}function zt(e){let o=jt(e);if(o.length===0)throw new TypeError("trustedRoot must name at least one directory");if(o.length>at)throw new TypeError(`trustedRoot must not exceed ${at} directories`);return o.map(qt)}function Vt(e){if(!Number.isSafeInteger(e)||e<=0)throw new TypeError("maxBytes must be a positive safe integer");if(e>chunkIYCXQAFT_cjs.a)throw new TypeError(`maxBytes must not exceed ${chunkIYCXQAFT_cjs.a}`);return e}function Ht(e,o){if(e.protocol!=="file:"||e.username!==""||e.password!==""||!ut(e.host))return null;let t=ct(e.pathname);if(t===null)return null;for(let n of o){let r=pt(n.pathname);if(r===null||!t.startsWith(r)||t.length<=r.length)continue;let i=new URL("file:///");return i.pathname=t,i}return null}function Gt(e){return typeof e=="string"?new URL(e):"href"in e&&typeof e.href=="string"?new URL(e.href):new URL("url"in e?e.url:String(e))}function Xt(e,o,t){let n=t.relative(t.resolve(e),t.resolve(o));return n!==""&&!n.startsWith("..")&&!t.isAbsolute(n)}function st(e,o,t){return e.some(n=>Xt(n,o,t))}async function Wt(e,o){let t=[];for(let n of e)try{t.push(await o(n));}catch(r){if(dt(r)==="ENOENT")continue;throw r}return t}function $t(e){return async(o,{signal:t,maxBytes:n})=>{if(t?.aborted)throw t.reason;let[{open:r,realpath:i},{constants:a},{fileURLToPath:l},u]=await Promise.all([import('fs/promises'),import('fs'),import('url'),import('path')]),c=e.map(f=>u.resolve(l(f.href))),s=u.resolve(l(typeof o=="string"?o:o.href));if(!st(c,s,u))throw Object.assign(new Error("packaged file is outside trustedRoot"),{code:"ENOENT"});let p=typeof a.O_NOFOLLOW=="number"?a.O_RDONLY|a.O_NOFOLLOW:"r",d=await r(s,p),m=()=>{d.close();};t?.addEventListener("abort",m,{once:true});try{if(t?.aborted)throw t.reason;let f=await i(s);if(!st(await Wt(c,i),f,u))throw Object.assign(new Error("packaged file is outside trustedRoot"),{code:"ENOENT"});let x=(await d.stat()).size;if(!Number.isSafeInteger(x)||x<0||x>n)throw Object.assign(new Error("packaged file exceeds maxBytes"),{code:lt});let F=new Uint8Array(x),h=0;for(;h<F.byteLength;){if(t?.aborted)throw t.reason;let{bytesRead:y}=await d.read(F,h,F.byteLength-h,h);if(y===0)break;h+=y;}if(t?.aborted)throw t.reason;return h===F.byteLength?F:F.slice(0,h)}catch(f){throw t?.aborted?t.reason:f}finally{t?.removeEventListener("abort",m),await d.close().catch(()=>{});}}}function Yt(e){if(e===null||typeof e!="object")throw new TypeError("createPackagedFileFetch requires trustedRoot and maxBytes");if(e.trustedRoot===void 0||e.maxBytes===void 0)throw new TypeError("createPackagedFileFetch requires trustedRoot and maxBytes");let o=zt(e.trustedRoot),t=Vt(e.maxBytes),n=e.read??$t(o),r=e.networkFetch??fetch;return(async(i,a)=>{let l=a?.signal;if(l?.aborted)throw l.reason;let u=Gt(i);if(u.protocol!=="file:")return r(u,a);let c=Ht(u,o);if(!c)return new Response(null,{status:404});let s=l?new AbortController:void 0,p=()=>s?.abort(l?.reason);l?.addEventListener("abort",p,{once:true});let d;try{if(d=await n(c,{maxBytes:t,...s?{signal:s.signal}:{}}),l?.aborted)throw l.reason;if(d.byteLength>t)return new Response(null,{status:413})}catch(m){if(l?.aborted)throw l.reason;if(s?.signal.aborted)throw s.signal.reason??m;if(m instanceof DOMException&&m.name==="AbortError"||m instanceof Error&&m.name==="AbortError")throw m;let f=dt(m);if(f===lt)return new Response(null,{status:413});if(f==="ENOENT"||f==="ENOTDIR"||f==="ELOOP")return new Response(null,{status:404});throw m}finally{l?.removeEventListener("abort",p);}return new Response(d,{status:200})})}
2
- Object.defineProperty(exports,"ExportResourceError",{enumerable:true,get:function(){return chunkAGWWNVIJ_cjs.d}});Object.defineProperty(exports,"createNodeImageDecodePort",{enumerable:true,get:function(){return chunkAGWWNVIJ_cjs.c}});Object.defineProperty(exports,"exportDestinationNamed",{enumerable:true,get:function(){return chunkAGWWNVIJ_cjs.b}});Object.defineProperty(exports,"openDocumentForExport",{enumerable:true,get:function(){return chunkAGWWNVIJ_cjs.e}});exports.MAX_SHARED_EXPORT_SHAPING_CONFIGURATIONS=Y;exports.acquireSharedExportShaping=gt;exports.createPackagedFileFetch=Yt;exports.hasExportAdmittedFont=q;exports.hasExportLaidOutText=X;exports.hasFontBackedExportCapabilities=Ot;exports.openFontBackedDocumentForExport=vt;
1
+ 'use strict';var chunkFWX535CS_cjs=require('./chunk-FWX535CS.cjs'),chunkJN62FLHE_cjs=require('./chunk-JN62FLHE.cjs'),chunkRLO64PHP_cjs=require('./chunk-RLO64PHP.cjs'),chunkQ4RDWB3U_cjs=require('./chunk-Q4RDWB3U.cjs'),chunkPCPBDYEL_cjs=require('./chunk-PCPBDYEL.cjs');require('./chunk-EHT4LKKZ.cjs');var chunkT7RGKBCE_cjs=require('./chunk-T7RGKBCE.cjs'),chunk6KA3L3FR_cjs=require('./chunk-6KA3L3FR.cjs');function I(e,o,t){if(o.environment.features.smcp!==1||!/\p{Ll}/u.test(o.text))return t;let n={...o,environment:{...o.environment,features:{...o.environment.features,smcp:0}}},r=e.shape(n);if(t.glyphs.length!==r.glyphs.length||t.glyphs.some((d,c)=>d.id!==r.glyphs[c]?.id))return t;let i=[],s=0;for(let d of o.text){let c=d.toUpperCase()!==d,y=i.at(-1);y&&(y.lower===c||/\p{M}/u.test(d))?y.text+=d:i.push({text:d,start:s,lower:c}),s+=d.length;}let a=[],u=[],p=[],l=true,g=0;for(let d of o.environment.direction==="rtl"?i.reverse():i){let c=d.lower?.8:1,y=[],R=[],b="",f=d.start;for(let F of d.text){let m=d.lower?F.toUpperCase():F;for(let E=0;E<m.length;E++)y.push(f),R.push(f+F.length);b+=m,f+=F.length;}let h=e.shape({...n,text:b}),x=a.length;for(let[F,m]of h.glyphs.entries()){let E=h.exactAdvancesX?.[F];E===void 0?l=false:p.push(E*c),a.push({...m,cluster:y[m.cluster]??d.start,originX:chunkQ4RDWB3U_cjs.o(g+Math.round(m.originX*c)),originY:chunkQ4RDWB3U_cjs.o(Math.round(m.originY*c)),offsetX:chunkQ4RDWB3U_cjs.o(Math.round(m.offsetX*c)),offsetY:chunkQ4RDWB3U_cjs.o(Math.round(m.offsetY*c)),advanceX:chunkQ4RDWB3U_cjs.o(Math.round(m.advanceX*c)),advanceY:chunkQ4RDWB3U_cjs.o(Math.round(m.advanceY*c)),drawScale:c});}for(let F of h.clusters){let m=y[F.textStart]??d.start,E=R[F.textEnd-1]??f,L=chunkQ4RDWB3U_cjs.o(Math.round(F.advance*c)),A=u.at(-1);A&&A.textStart===m&&A.textEnd===E?u[u.length-1]={...A,glyphEnd:x+F.glyphEnd,advance:chunkQ4RDWB3U_cjs.o(A.advance+L),caretEdges:[chunkQ4RDWB3U_cjs.o(0),chunkQ4RDWB3U_cjs.o(A.advance+L)]}:u.push({...F,textStart:m,textEnd:E,glyphStart:x+F.glyphStart,glyphEnd:x+F.glyphEnd,advance:L,caretEdges:F.caretEdges.map(G=>chunkQ4RDWB3U_cjs.o(Math.round(G*c))),fontSpan:0});}g+=h.glyphs.reduce((F,m)=>F+Math.round(m.advanceX*c),0);}return {...t,glyphs:a,clusters:u,fontSpans:[{...t.fontSpans[0],glyphStart:0,glyphEnd:a.length}],exactAdvancesX:l&&p.length===a.length?p:void 0}}var nt=new WeakMap;function Nt(e){let o=nt.get(e);return o===void 0&&(o=Ct(e.bytes,e.faceIndex),nt.set(e,o)),o}var _t=new Set(["COLR","CBDT","sbix"]),Mt=512;function Ct(e,o){let t=new DataView(e.buffer,e.byteOffset,e.byteLength);if(e.byteLength<12)return false;let n=0;if(rt(e,0)==="ttcf"){let i=t.getUint32(8);if(o<0||o>=i||12+4*o+4>e.byteLength||(n=t.getUint32(12+4*o),n+12>e.byteLength))return false}let r=Math.min(t.getUint16(n+4),Mt);for(let i=0;i<r;i++){let s=n+12+i*16;if(s+4>e.byteLength)return false;if(_t.has(rt(e,s)))return true}return false}function rt(e,o){return String.fromCharCode(e[o],e[o+1],e[o+2],e[o+3])}var Ut=/\p{Emoji_Presentation}|️/u;function Bt(e){return Ut.test(e)}function q(e,o){if(e.length<2)return e;let t=e.filter(Nt);if(t.length===0||t.length===e.length)return e;let n=e.filter(r=>!t.includes(r));return Bt(o)?[...t,...n]:[...n,...t]}var qt=2048;function it(e,o,t,n){if(!t.clusters.length||t.clusters.length>qt)return null;let r=(f,h)=>{let{context:x,...F}=o,m={...F,text:h,environment:chunkQ4RDWB3U_cjs.q({...o.environment,font:f})};return I(e,m,e.shape(m))},i=[],s=new Map;for(let f of [...t.clusters].sort((h,x)=>h.textStart-x.textStart)){let h=o.environment.font,x=o.text.slice(f.textStart,f.textEnd),F=i.at(-1);if(/^[\uFE0E\uFE0F]$/.test(x)&&F&&F.end===f.textStart){F.end=f.textEnd;continue}if(o.environment.script==="Hebr"&&/^\s+$/u.test(x)&&F&&F.font!==o.environment.font&&F.end===f.textStart){F.end=f.textEnd;continue}if(t.glyphs.slice(f.glyphStart,f.glyphEnd).some(E=>E.id===0)){let E=o.text.slice(f.textStart,f.textEnd+1),L=s.get(x)??q(n,E).find(A=>{try{return !r(A,x).glyphs.some(G=>G.id===0)}catch{return false}});if(!L)return null;s.set(x,L),h=L;}let m=i.at(-1);m&&m.font===h&&m.end===f.textStart?m.end=f.textEnd:i.push({start:f.textStart,end:f.textEnd,font:h});}let a=[],u=[],p=[],l=[],g=true,d=0,c=0,y=0,R=0,b=0;for(let f of o.environment.direction==="rtl"?i.reverse():i){let h=r(f.font,o.text.slice(f.start,f.end));if(h.glyphs.some(m=>m.id===0))return null;let x=a.length,F=p.length;for(let m of h.glyphs)a.push({...m,cluster:f.start+m.cluster,originX:chunkQ4RDWB3U_cjs.o(d+m.originX),originY:chunkQ4RDWB3U_cjs.o(c+m.originY)});if(h.exactAdvancesX===void 0)g=false;else for(let m of h.exactAdvancesX)l.push(m);for(let m of h.clusters)u.push({...m,textStart:f.start+m.textStart,textEnd:f.start+m.textEnd,glyphStart:x+m.glyphStart,glyphEnd:x+m.glyphEnd,fontSpan:F});h.glyphs.length&&p.push({font:f.font,glyphStart:x,glyphEnd:a.length,fallbackIndex:f.font===o.environment.font?null:n.indexOf(f.font)}),d+=h.glyphs.reduce((m,E)=>m+E.advanceX,0),c+=h.glyphs.reduce((m,E)=>m+E.advanceY,0),y=Math.max(y,h.metrics.ascent),R=Math.max(R,h.metrics.descent),b=Math.max(b,h.metrics.lineGap);}return chunkQ4RDWB3U_cjs.t({...t,glyphs:a,clusters:u,fontSpans:p,exactAdvancesX:g&&l.length===a.length?l:void 0,metrics:{ascent:chunkQ4RDWB3U_cjs.o(y),descent:chunkQ4RDWB3U_cjs.o(R),lineGap:chunkQ4RDWB3U_cjs.o(b)}},{...o.environment,fallbackOrder:n})}var jt=new Map([["Beng",["bng2","beng"]],["Deva",["dev2","deva"]],["Gujr",["gjr2","gujr"]],["Guru",["gur2","guru"]],["Knda",["knd2","knda"]],["Mlym",["mlm2","mlym"]],["Orya",["ory2","orya"]],["Taml",["tml2","taml"]],["Telu",["tel2","telu"]],["Nkoo",["nko "]]]),zt=512,at=new WeakMap;function Ht(e,o){let t=new Set,n=new DataView(e.buffer,e.byteOffset,e.byteLength),r=c=>c+2<=n.byteLength?n.getUint16(c):-1,i=c=>c+4<=n.byteLength?n.getUint32(c):-1,s=c=>c+4<=n.byteLength?String.fromCharCode(n.getUint8(c),n.getUint8(c+1),n.getUint8(c+2),n.getUint8(c+3)):"",a=0;if(s(0)==="ttcf"){let c=i(8);if(c<0||o<0||o>=c||(a=i(12+o*4),a<0))return t}let u=r(a+4);if(u<0||u>1024)return t;let p=-1;for(let c=0;c<u;c+=1){let y=a+12+c*16;if(s(y)==="GSUB"){p=i(y+8);break}}if(p<0)return t;let l=r(p+4);if(l<=0)return t;let g=p+l,d=r(g);if(d<0)return t;for(let c=0;c<Math.min(d,zt);c+=1){let y=s(g+2+c*6);y&&t.add(y);}return t}function Xt(e,o){let t=at.get(e);return t||(t=Ht(e.bytes,e.faceIndex),at.set(e,t)),(jt.get(o)??[o.toLowerCase()]).some(r=>t.has(r))}function st(e,o){let t=e.filter(n=>Xt(n,o));return t.length===0||t.length===e.length?e:[...t,...e.filter(n=>!t.includes(n))]}function J(e,o,t){if(!o.text.includes("\u2011"))return t;let n=new Set(t.glyphs.filter(i=>i.id===0).map(i=>i.cluster));if(!n.size)return t;let r=o.text.replace(/\u2011/g,(i,s)=>n.has(s)?"-":i);if(r===o.text)return t;try{let i=e.shape({...o,text:r});return chunkQ4RDWB3U_cjs.t({...i,text:o.text},o.environment)}catch{return t}}function lt(e,o){if(o.length===0)return e;if(o.length>16)throw new RangeError("At most 16 glyph fallback faces are supported");let t=o.map(a=>e.fonts.resolve(a)).filter(a=>!(a instanceof chunkQ4RDWB3U_cjs.e)),n={shape(a){return J(e.shaper,a,e.shaper.shape(a))}},r=new WeakMap,i={shape(a){let u=e.shaper.shape(a),p=r.get(u);if(p&&p.input.text===a.text&&p.input.fontSizeHalfPoints===a.fontSizeHalfPoints&&p.input.bidiLevel===a.bidiLevel&&p.input.context?.before===a.context?.before&&p.input.context?.after===a.context?.after&&p.input.environment===a.environment)return p.run;let l=s(a,J(e.shaper,a,u));return r.set(u,{input:a,run:l}),l}},s=(a,u)=>{let p=I(n,a,u);if(!p.glyphs.some(l=>l.id===0)||/^[\t\n\r\f]*$/.test(a.text))return p;if(/^(Latn|Cyrl|Grek|Hebr|Hani|Hira|Kana|Hang|Zyyy|Zinh)$/.test(a.environment.script)){let l=it(n,a,p,t);if(l)return l}for(let l of st(q(t,a.text),a.environment.script))if(!(l.hash===a.environment.font.hash&&l.faceIndex===a.environment.font.faceIndex))try{let g={...a,environment:chunkQ4RDWB3U_cjs.q({...a.environment,font:l})},d=I(n,g,n.shape(g));if(!d.glyphs.some(c=>c.id===0))return d}catch{}return p};return {...e,shaper:i}}var Q=chunkQ4RDWB3U_cjs.c;function ee(e){return typeof e.admittedFontFace=="function"}var Gt=Object.freeze([{weight:400,style:"normal"},{weight:700,style:"normal"},{weight:400,style:"italic"},{weight:700,style:"italic"}]);function j(e){return Object.freeze({family:e.family,weight:e.weight,style:e.style})}var dt=new WeakMap;function z(e){let o=dt.get(e);return o||dt.set(e,o=Vt(e)),o}function Vt(e){let o=e.substitution;return Object.freeze({id:e.id,identity:e.identity,family:e.family,request:j(e.request),byteLength:e.byteLength,hash:e.hash,faceIndex:e.faceIndex,substitution:o?Object.freeze({requested:j(o.requested),resolved:j(o.resolved),...o.lineMetrics?{lineMetrics:Object.freeze({...o.lineMetrics})}:{}}):null})}function Wt(e){return Object.freeze({...z(e),bytes:chunkQ4RDWB3U_cjs.j(e)})}function Yt(e,o){if(!e)return null;try{let t=e(o);return !t||t instanceof chunkQ4RDWB3U_cjs.e?null:Wt(t)}catch{return null}}function ct(e){return o=>{if(e.status()!=="active")throw e.unavailable();return Yt(e.resolve(),o)}}function $t(e){return Object.freeze(e.slice(0,Q).map(o=>Object.freeze({request:j(o.request),partName:o.partName,reason:o.reason})))}function te(e,o,t,n,r=[]){let i=new Map;for(let a of [...e,o]){let u=a.toLowerCase();i.has(u)||i.set(u,a);}let s=[...i.values()].map(a=>{let u=[];for(let p of Gt){let l=n?.({family:a,...p});!l||l instanceof chunkQ4RDWB3U_cjs.e||u.push(Object.freeze({...p,sourceFamily:l.family,via:l.substitution?"substitution":"direct",identity:l.identity,id:l.id,hash:l.hash,faceIndex:l.faceIndex,substitution:l.substitution}));}return Object.freeze({family:a,coverage:u.length===4?"complete":u.length>0?"partial":"none",faces:Object.freeze(u)})});return Object.freeze({requestedFamilies:Object.freeze([...e]),defaultFamily:o,families:Object.freeze(s),originFailures:Object.freeze([...t]),droppedEmbeddedFonts:$t(r)})}function oe(e,o){if(o.onFontResolution){try{let t=o.onFontResolution(e);Promise.resolve(t).catch(n=>{console.warn("[fonts] font-resolution diagnostics callback failed",n);});}catch(t){console.warn("[fonts] font-resolution diagnostics callback failed",t);}return}for(let t of e.originFailures)console.warn("[fonts] a document export font origin failed and was skipped",t);for(let t of e.droppedEmbeddedFonts??[])console.warn("[fonts] a document embedded font face was dropped during export",t);}function ne(e,o){if(o.fontPolicy!=="strict"||e.originFailures.length===0&&e.families.every(n=>n.coverage==="complete"))return;let t=e.families.filter(n=>n.coverage!=="complete").map(n=>n.family).join(", ");throw new chunkRLO64PHP_cjs.d("layoutFailed",`Strict font policy refused export${t?`; incomplete families: ${t}`:"; a font origin failed"}`)}function H(){return new Map}function re(e,o,t,n){if(t.trim().length===0)return null;let r={family:t,weight:n.bold?700:400,style:n.italic?"italic":"normal"},i=chunkQ4RDWB3U_cjs.i(r),s=o.get(i);if(!s){try{s=e.fonts.resolve(r);}catch{return null}o.set(i,s);}return s instanceof chunkQ4RDWB3U_cjs.e?null:s}function ut(e,o,t){let n=t.fontFamily??e.defaultFont.family;return re(e,o,n,t)}function ie(e){return typeof e.shapeLaidOutText=="function"}function ae(e){let o=H(),t=new WeakMap;return n=>{let r=chunkQ4RDWB3U_cjs.sa(n.style,n.fontSlot),i=chunkQ4RDWB3U_cjs.$(n.text,r);if(i.length===0)return null;let s=r.fontFamily??e.defaultFont.family,a=re(e,o,s,r);if(!a)return null;try{if(r.smallCaps&&!chunkJN62FLHE_cjs.$(e.shaper,e.environment,a,r,t))return null;let u=chunkJN62FLHE_cjs._(e.shaper,e.environment,a,r,i);return Object.freeze({run:u,font:z(u.fontSpans[0]?.font??a),...u.fontSpans.length>1?{fonts:Object.freeze(u.fontSpans.map(p=>z(p.font)))}:{},fixedPointScale:e.environment.fixedPointScale})}catch{return null}}}function pt(e){return o=>{if(e.status()!=="active")throw e.unavailable();return e.shaping()?.shapeLaidOutText(o)??null}}var N=new Map,X=new WeakMap,se=0,_,le=32,ft=chunkQ4RDWB3U_cjs.d;function mt(){if(_)return _;let e=(async()=>(await chunkJN62FLHE_cjs.c(),chunkJN62FLHE_cjs.h(chunkJN62FLHE_cjs.i)))();return _=e,e.catch(()=>{_===e&&(_=void 0);}),e}function yt(e){let o=H();return chunkJN62FLHE_cjs.ba(e,{resolveFont(t){return ut(e,o,t)},fallback:chunkQ4RDWB3U_cjs.fa()})}async function ht(e,o,t=[],n=false){if(!chunkJN62FLHE_cjs.k(e))throw new TypeError("Session exporter shaping requires a prepared font handle");let r=await mt(),i=lt(await chunkJN62FLHE_cjs.r(e,r,chunkJN62FLHE_cjs.i,o,n),t);return Object.freeze({createMeasurer:()=>yt(i),resolveFont:s=>i.fonts.resolve(s),shapeLaidOutText:ae(i),producer:["node-export-session",JSON.stringify(t),e.fingerprint,i.operation.shapingHash,`producer:${i.operation.producerVersion}`,`fallback:${chunkQ4RDWB3U_cjs.ea}`].join("|"),extensionFingerprint:e.fingerprint})}function Kt(e,o){if(!chunkJN62FLHE_cjs.k(e))return Promise.reject(new TypeError("Shared exporter shaping requires a prepared font handle"));let t=X.get(e);if(t)return t;let n=chunkJN62FLHE_cjs.m(e),r=N.get(n);if(!r){if(N.size>=le)return Promise.reject(new RangeError(`Shared exporter shaping is limited to ${le} process-wide configurations`));r=(async()=>{let u=chunkJN62FLHE_cjs.l(e).sources.reduce((l,g)=>l+(g.availability==="forbidden"?0:g.bytes.byteLength),0);if(se+u>ft)throw new RangeError(`Shared exporter shaping font bytes are limited to ${ft} process-wide`);se+=u;let p;try{let l=await mt();p=await chunkJN62FLHE_cjs.r(e,l,chunkJN62FLHE_cjs.i,o);}catch(l){throw se-=u,l}return Object.freeze({createMeasurer:()=>yt(p),shapeLaidOutText:ae(p),shapingHash:p.operation.shapingHash,producerVersion:p.operation.producerVersion})})(),N.set(n,r),r.catch(()=>{N.get(n)===r&&N.delete(n);});}let i=e.fingerprint,s=r.then(a=>Object.freeze({createMeasurer:a.createMeasurer,shapeLaidOutText:a.shapeLaidOutText,producer:["node-export",i,a.shapingHash,`producer:${a.producerVersion}`,`fallback:${chunkQ4RDWB3U_cjs.ea}`].join("|"),extensionFingerprint:i}));return X.set(e,s),s.catch(()=>{X.get(e)===s&&X.delete(e);}),s}var Zt="http://schemas.openxmlformats.org/officeDocument/2006/relationships/fontTable";function Jt(e){let o=e.currentPackage(),t=(o.relationships.get(o.mainDocumentPart)??[]).find(r=>r.type===Zt),n;if(t){let r=chunk6KA3L3FR_cjs.E(t);r.mode==="Internal"&&r.target.ok&&(n=o.parts.get(r.target.partName));}return n??=o.parts.get("/word/fontTable.xml"),chunk6KA3L3FR_cjs.ge(o,n)}function gt(e,o){let t=Jt(e);if(t.length!==0)return chunkFWX535CS_cjs.i(n=>{let r=new Set((n.resolvedFaces??[]).map(s=>chunkQ4RDWB3U_cjs.i(s))),i=chunkFWX535CS_cjs.o(t,{maxFontBytes:chunkQ4RDWB3U_cjs.b,aggregateBudget:Qt(n),shadowedRequests:r});if(o)for(let s of i.dropped){if(o.dropped.length>=Q)break;o.dropped.push(s);}return {sources:i.sources}})}function Qt(e){let o=e.committedSourceBytes;return o===void 0||!Number.isSafeInteger(o)||o<=0?chunkQ4RDWB3U_cjs.d:Math.max(0,chunkQ4RDWB3U_cjs.d-o)}function eo(e){return ee(e)&&ie(e)}var w=0,xt=Symbol("font-resolution-timeout");function to(e){let o=0,t=false;return e?.(w),{reserve:r=>{if(t)throw new Error("Document font-byte lease is already released");if(w+r>chunkQ4RDWB3U_cjs.d)throw new chunkRLO64PHP_cjs.d("layoutFailed",`Active document export font bytes are limited to ${chunkQ4RDWB3U_cjs.d}; requested ${r} bytes with ${w} bytes already active`);w+=r,o+=r,e?.(w);let i=false;return ()=>{i||t||(i=true,w-=r,o-=r,e?.(w));}},release:()=>{t||(t=true,w-=o,o=0,e?.(w));}}}function ce(e,o){return e.attributes.find(t=>t.localName===o)?.value}function oo(e,o){return e.attributes.find(t=>t.localName===o&&(t.namespaceUri===chunk6KA3L3FR_cjs.da||t.namespaceUri===""))?.value}async function no(e,o){if(o.reuseAcrossRevisions===true)throw new TypeError("reuseAcrossRevisions requires a live view or caller-supplied measurer; document-aware byte sessions are immutable");if(o.signal?.aborted)return {ok:false,reason:"aborted"};let t=chunkT7RGKBCE_cjs.Ka(e);if(!t.ok)return t;let{fonts:n,lastResortFonts:r,fontResolutionTimeoutMs:i,fontPolicy:s,onFontResolution:a,glyphFallbacks:u,documentLigatures:p,...l}=o,g=Array.isArray(n)?n:[n],d=r===void 0?[]:Array.isArray(r)?r:[r],c,y;try{y=await ro(t.view,g,{signal:o.signal,timeoutMs:i??o.resourceTimeoutMs,fontPolicy:s,glyphFallbacks:u,documentLigatures:p,lastResortFonts:d,onFontResolution:E=>(c=E,a?.(E))});}catch(E){if(E instanceof chunkRLO64PHP_cjs.d&&E.code==="aborted")return {ok:false,reason:"aborted"};throw E}if(!c)throw y?.dispose(),new chunkRLO64PHP_cjs.d("layoutFailed","Document font resolution completed without publishing its evidence");let R;try{R=chunkRLO64PHP_cjs.e(t.view,{...l,reuseAcrossRevisions:!1,...y?{measurer:y.createMeasurer(),producer:o.producer??y.producer}:o.producer?{producer:o.producer}:{}});}catch(E){throw y?.dispose(),E}if(!R.ok)return y?.dispose(),R;let b=R.session,f=y,h="active",x=()=>h==="aborted"?new chunkRLO64PHP_cjs.d("aborted","Export resource settlement was aborted"):new chunkRLO64PHP_cjs.d("disposed","Export session has been disposed"),F=E=>{if(h==="active"){h=E,o.signal?.removeEventListener("abort",m);try{b.dispose();}finally{f?.dispose(),f=void 0;}}},m=()=>F("aborted");return o.signal?.addEventListener("abort",m,{once:true}),o.signal?.aborted&&m(),{ok:true,session:Object.freeze({fontResolution:c,layout:()=>h==="active"?b.layout():Promise.reject(x()),layoutFor:E=>h==="active"?b.layoutFor(E):Promise.reject(x()),validatedImageBytes:E=>h==="active"?b.validatedImageBytes(E):null,admittedFontFace:ct({status:()=>h,unavailable:x,resolve:()=>f?.resolveFont}),shapeLaidOutText:pt({status:()=>h,unavailable:x,shaping:()=>f}),dispose:()=>F("disposed")})}}async function ro(e,o,t={}){if((t.glyphFallbacks?.length??0)>16)throw new RangeError("At most 16 glyph fallback faces are supported");let n=io(t.timeoutMs),r=new AbortController,i=()=>r.abort(t.signal?.reason);t.signal?.addEventListener("abort",i,{once:true}),t.signal?.aborted&&i();let s=setTimeout(()=>r.abort(xt),n);try{de(r.signal);let a=(async()=>{let u=to(t.onActiveFontBytesChange),p=!1;try{let l=so(e).slice(0,chunkFWX535CS_cjs.c),g=[],d={dropped:[]},c=gt(e,d),y=[...o,...c?[c]:[],...t.lastResortFonts??[]],R=await chunkFWX535CS_cjs.l(y,{families:[...new Set([...(t.glyphFallbacks??[]).map(x=>x.family),...l])].slice(0,chunkFWX535CS_cjs.c),defaultFamily:chunkFWX535CS_cjs.d.family,signal:r.signal},{onOriginFailure:x=>g.push(x),reserveOwnedBytes:u.reserve});de(r.signal);let b=chunkFWX535CS_cjs.e(R??{});if(b.sources.length===0){let x=te(l,b.defaultFont.family,g,void 0,d.dropped);oe(x,t),ne(x,t);return}let f=await ht(chunkJN62FLHE_cjs.o(b),void 0,t.glyphFallbacks,t.documentLigatures);de(r.signal);let h=te(l,b.defaultFont.family,g,f.resolveFont,d.dropped);return oe(h,t),ne(h,t),p=!0,Object.freeze({...f,dispose:u.release})}finally{p||u.release();}})();return await Promise.race([a,ao(r.signal)])}finally{clearTimeout(s),t.signal?.removeEventListener("abort",i);}}function io(e){if(e===void 0)return 6e4;if(!Number.isFinite(e)||e<=0)throw new RangeError("timeoutMs must be a positive finite number");return Math.max(1,e)}function ao(e){return new Promise((o,t)=>{let n=()=>{t(Ft(e));};e.aborted?n():e.addEventListener("abort",n,{once:true});})}function Ft(e){let o=e.reason===xt;return new chunkRLO64PHP_cjs.d(o?"timedOut":"aborted",o?"Font resolution timed out":"Font resolution was aborted",o?void 0:{cause:e.reason})}function de(e){if(e.aborted)throw Ft(e)}function so(e){let o=[e.part().root],t=[],n=[],r=new Set([e.part().name]),i=(l,g)=>{!g||r.has(g.name)||(r.add(g.name),l.push(g.root));};for(let l of e.headerFooterPartsBySection()){for(let g of l.headers.values())i(t,g);for(let g of l.footers.values())i(t,g);}for(let l of ["footnote","endnote"])n.push(...lo(e,l));let s=e.documentThemeFonts(),a={...s,major:s.major,minor:s.minor,majorEastAsia:s.majorEastAsia??null,minorEastAsia:s.minorEastAsia??null},u=new Map,p=(l,g)=>{let d=chunkPCPBDYEL_cjs.d(l,e.stylesRoot(),a,uo(l,g)),c=chunkFWX535CS_cjs.v(l,e.numberingRoot(),e.stylesRoot(),a);for(let y of [...d.direct,...mo(l),...c,...chunkFWX535CS_cjs.s(l,e.stylesRoot(),a),...d.inherited]){let R=y.toLowerCase();u.has(R)||u.set(R,y);}};return p(o,"body"),p(t,"furniture"),p(n,"note"),[...u.values()]}function lo(e,o){let t=chunk6KA3L3FR_cjs.bg(e.currentPackage(),o);if(!t)return [];let n=new Set(chunk6KA3L3FR_cjs.cg(e.part()).filter(i=>i.noteKind===o).map(i=>i.noteId)),r=[];for(let i of t.root.children){if(i.kind==="textValue")continue;let s=chunk6KA3L3FR_cjs.Yb(i),a=chunk6KA3L3FR_cjs.Xb(i);(s==="separator"||s==="continuationSeparator"||a!==null&&n.has(a))&&r.push(i);}return r}var co="http://schemas.openxmlformats.org/officeDocument/2006/math";function uo(e,o){let t=new Set;for(let n of e){let r=[],i=[{node:n,context:o}];for(;i.length>0;){let{node:s,context:a}=i.pop();s.namespaceUri===chunk6KA3L3FR_cjs.da&&s.localName==="p"&&r.push({paragraph:s,context:a});let u=s.namespaceUri===chunk6KA3L3FR_cjs.da&&s.localName==="txbxContent"&&(a==="body"||a==="note")?"detached":a;for(let p=s.children.length-1;p>=0;p-=1){let l=s.children[p];l.kind!=="textValue"&&i.push({node:l,context:u});}}for(let s of r)po(s.paragraph,t,s.context);}return t}function po(e,o,t){let n=chunkQ4RDWB3U_cjs.gb(),r=null,i=null,s="",a=false,u=false,p=false,l=0,g=[];for(let d=e.children.length-1;d>=0;d-=1){let c=e.children[d];c.kind!=="textValue"&&g.push({node:c,runId:null,visibility:D,containerDepth:0});}for(;g.length>0;){let{node:d,runId:c,visibility:y,containerDepth:R}=g.pop();if(R>=chunk6KA3L3FR_cjs.la||d.namespaceUri===chunk6KA3L3FR_cjs.da&&d.localName==="p")continue;let b=d.namespaceUri===chunk6KA3L3FR_cjs.da&&d.localName==="r"?d.id:c;if(d.namespaceUri===chunk6KA3L3FR_cjs.da&&d.localName==="fldSimple"){let f=ce(d,"instr")??"";chunkQ4RDWB3U_cjs.$c(f,{allowPageFields:t==="body"||t==="furniture",allowRefFields:t==="body"||t==="note",allowPageRef:t==="body",allowAutonum:t==="body"||t==="note"})&&fo(d)!==D&&o.add(d.id);}if(d.namespaceUri===chunk6KA3L3FR_cjs.da&&d.localName==="fldChar"){let f=ce(d,"fldCharType");if(f==="begin")chunkQ4RDWB3U_cjs.jb(n),n.nesting===1&&(r=b,i=null,s="",a=false,u=false,p=chunk6KA3L3FR_cjs.ve(d),l=0);else if(f==="separate"){let h=n.nesting===1;if(chunkQ4RDWB3U_cjs.lb(n),h){let x=chunkQ4RDWB3U_cjs.ib(n);s=x.instruction,a=x.overflow||n.nestingOverflow,i=b,u=true;}}else if(f==="end"){if(n.nesting===1){if(n.phase==="instruction"){let x=chunkQ4RDWB3U_cjs.ib(n);s=x.instruction,a=x.overflow||n.nestingOverflow;}if(!a&&chunkQ4RDWB3U_cjs._c(s,{hasSeparate:u,hasLegacyFormData:p,allowPageFields:t==="body"||t==="furniture",allowRefFields:t==="body"||t==="note",allowPageRef:t==="body",allowAutonum:t==="body"||t==="note"})&&l!==D){let x=i??r;x&&o.add(x);}}chunkQ4RDWB3U_cjs.mb(n);}continue}if(d.namespaceUri===chunk6KA3L3FR_cjs.da&&(d.localName==="instrText"||d.localName==="delInstrText")){chunkQ4RDWB3U_cjs.kb(n,Ot(d),d.localName==="delInstrText");continue}n.nesting>0&&chunkQ4RDWB3U_cjs.nb(n)&&d.namespaceUri===chunk6KA3L3FR_cjs.da&&Et(d)&&(l|=y);for(let f=d.children.length-1;f>=0;f-=1){let h=d.children[f];h.kind!=="textValue"&&g.push({node:h,runId:b,visibility:y&St(d),containerDepth:chunk6KA3L3FR_cjs.ma(d,R)});}}chunkQ4RDWB3U_cjs.hb(n);}function Et(e){return e.localName==="t"||e.localName==="delText"?Ot(e).length>0:e.localName==="sym"||e.localName==="tab"||e.localName==="br"}var ue=1,bt=2,Rt=4,D=ue|bt|Rt;function fo(e){let o=[];for(let n of e.children)n.kind!=="textValue"&&o.push({node:n,visibility:D});let t=0;for(;o.length>0;){let{node:n,visibility:r}=o.pop();if(!(n.namespaceUri===chunk6KA3L3FR_cjs.da&&n.localName==="p")){if(n.namespaceUri===chunk6KA3L3FR_cjs.da&&Et(n)&&(t|=r,t===D))return t;for(let i of n.children)i.kind!=="textValue"&&o.push({node:i,visibility:r&St(n)});}}return t}function St(e){return e.namespaceUri!==chunk6KA3L3FR_cjs.da?D:e.localName==="ins"||e.localName==="moveTo"?ue|bt:e.localName==="del"||e.localName==="moveFrom"?ue|Rt:D}function mo(e){let o=new Map,t=n=>{let r=chunkPCPBDYEL_cjs.a(n??void 0);if(r===null)return;let i=r.toLowerCase();o.has(i)||o.set(i,r);};for(let n of e){let r=[n];for(;r.length>0;){let i=r.pop();if(i.namespaceUri===co&&t(chunkQ4RDWB3U_cjs.Zb),i.namespaceUri===chunk6KA3L3FR_cjs.da&&i.localName==="sym"&&t(chunkPCPBDYEL_cjs.b(oo(i,"font"))),i.namespaceUri===chunk6KA3L3FR_cjs.da&&i.localName==="fldSimple"){let s=ce(i,"instr");t(chunkQ4RDWB3U_cjs.Vc(s??"")?.font??null);}if(i.namespaceUri===chunk6KA3L3FR_cjs.da&&i.localName==="p")for(let s of chunkFWX535CS_cjs.u(i))t(s);for(let s=i.children.length-1;s>=0;s-=1){let a=i.children[s];a.kind!=="textValue"&&r.push(a);}}}return [...o.values()]}function Ot(e){let o="",t=[...e.children].reverse();for(;t.length>0&&o.length<=256;){let n=t.pop();if(n.kind==="textValue")o+=n.value;else for(let r=n.children.length-1;r>=0;r-=1)t.push(n.children[r]);}return o}var At="FILE_TOO_LARGE",vt=8;function yo(e){return typeof e=="object"&&e!==null}function Tt(e){if(!(!yo(e)||typeof e.code!="string"))return e.code}function Lt(e){return e===""||e.toLowerCase()==="localhost"}function ho(e){try{let o=decodeURIComponent(e);return o.includes("\0")?null:o}catch{return null}}function Pt(e){let o=ho(e);if(o===null)return null;let t=[];for(let n of o.split(/[/\\]/))if(!(n===""||n===".")){if(n===".."){if(t.length===0)return null;t.pop();continue}t.push(n);}return `/${t.join("/")}`}function Dt(e){let o=Pt(e);return o===null?null:o.endsWith("/")?o:`${o}/`}function go(e){return e==="/"||/^\/[A-Za-z]:\/$/.test(e)}function xo(e){let o;try{o=typeof e=="string"?new URL(e):new URL("href"in e?e.href:String(e));}catch{throw new TypeError("trustedRoot must be an absolute file: URL")}if(o.protocol!=="file:")throw new TypeError("trustedRoot must use the file: protocol");if(o.username!==""||o.password!=="")throw new TypeError("trustedRoot must not include credentials");if(!Lt(o.host))throw new TypeError("trustedRoot must be a local file: URL");let t=Dt(o.pathname);if(t===null||go(t))throw new TypeError("trustedRoot must be a directory inside the filesystem");let n=new URL("file:///");return n.pathname=t,n}function Fo(e){if(typeof e=="string")return [e];if(typeof e=="object"&&e!==null&&"href"in e)return [e];if(Array.isArray(e))return e;throw new TypeError("trustedRoot must be an absolute file: URL")}function Eo(e){let o=Fo(e);if(o.length===0)throw new TypeError("trustedRoot must name at least one directory");if(o.length>vt)throw new TypeError(`trustedRoot must not exceed ${vt} directories`);return o.map(xo)}function bo(e){if(!Number.isSafeInteger(e)||e<=0)throw new TypeError("maxBytes must be a positive safe integer");if(e>chunkQ4RDWB3U_cjs.b)throw new TypeError(`maxBytes must not exceed ${chunkQ4RDWB3U_cjs.b}`);return e}function Ro(e,o){if(e.protocol!=="file:"||e.username!==""||e.password!==""||!Lt(e.host))return null;let t=Pt(e.pathname);if(t===null)return null;for(let n of o){let r=Dt(n.pathname);if(r===null||!t.startsWith(r)||t.length<=r.length)continue;let i=new URL("file:///");return i.pathname=t,i}return null}function So(e){return typeof e=="string"?new URL(e):"href"in e&&typeof e.href=="string"?new URL(e.href):new URL("url"in e?e.url:String(e))}function Oo(e,o,t){let n=t.relative(t.resolve(e),t.resolve(o));return n!==""&&!n.startsWith("..")&&!t.isAbsolute(n)}function wt(e,o,t){return e.some(n=>Oo(n,o,t))}async function vo(e,o){let t=[];for(let n of e)try{t.push(await o(n));}catch(r){if(Tt(r)==="ENOENT")continue;throw r}return t}function wo(e){return async(o,{signal:t,maxBytes:n})=>{if(t?.aborted)throw t.reason;let[{open:r,realpath:i},{constants:s},{fileURLToPath:a},u]=await Promise.all([import('fs/promises'),import('fs'),import('url'),import('path')]),p=e.map(y=>u.resolve(a(y.href))),l=u.resolve(a(typeof o=="string"?o:o.href));if(!wt(p,l,u))throw Object.assign(new Error("packaged file is outside trustedRoot"),{code:"ENOENT"});let g=typeof s.O_NOFOLLOW=="number"?s.O_RDONLY|s.O_NOFOLLOW:"r",d=await r(l,g),c=()=>{d.close();};t?.addEventListener("abort",c,{once:true});try{if(t?.aborted)throw t.reason;let y=await i(l);if(!wt(await vo(p,i),y,u))throw Object.assign(new Error("packaged file is outside trustedRoot"),{code:"ENOENT"});let R=(await d.stat()).size;if(!Number.isSafeInteger(R)||R<0||R>n)throw Object.assign(new Error("packaged file exceeds maxBytes"),{code:At});let b=new Uint8Array(R),f=0;for(;f<b.byteLength;){if(t?.aborted)throw t.reason;let{bytesRead:h}=await d.read(b,f,b.byteLength-f,f);if(h===0)break;f+=h;}if(t?.aborted)throw t.reason;return f===b.byteLength?b:b.slice(0,f)}catch(y){throw t?.aborted?t.reason:y}finally{t?.removeEventListener("abort",c),await d.close().catch(()=>{});}}}function Ao(e){if(e===null||typeof e!="object")throw new TypeError("createPackagedFileFetch requires trustedRoot and maxBytes");if(e.trustedRoot===void 0||e.maxBytes===void 0)throw new TypeError("createPackagedFileFetch requires trustedRoot and maxBytes");let o=Eo(e.trustedRoot),t=bo(e.maxBytes),n=e.read??wo(o),r=e.networkFetch??fetch;return(async(i,s)=>{let a=s?.signal;if(a?.aborted)throw a.reason;let u=So(i);if(u.protocol!=="file:")return r(u,s);let p=Ro(u,o);if(!p)return new Response(null,{status:404});let l=a?new AbortController:void 0,g=()=>l?.abort(a?.reason);a?.addEventListener("abort",g,{once:true});let d;try{if(d=await n(p,{maxBytes:t,...l?{signal:l.signal}:{}}),a?.aborted)throw a.reason;if(d.byteLength>t)return new Response(null,{status:413})}catch(c){if(a?.aborted)throw a.reason;if(l?.signal.aborted)throw l.signal.reason??c;if(c instanceof DOMException&&c.name==="AbortError"||c instanceof Error&&c.name==="AbortError")throw c;let y=Tt(c);if(y===At)return new Response(null,{status:413});if(y==="ENOENT"||y==="ENOTDIR"||y==="ELOOP")return new Response(null,{status:404});throw c}finally{a?.removeEventListener("abort",g);}return new Response(d,{status:200})})}
2
+ Object.defineProperty(exports,"ExportResourceError",{enumerable:true,get:function(){return chunkRLO64PHP_cjs.d}});Object.defineProperty(exports,"createNodeImageDecodePort",{enumerable:true,get:function(){return chunkRLO64PHP_cjs.c}});Object.defineProperty(exports,"exportDestinationNamed",{enumerable:true,get:function(){return chunkRLO64PHP_cjs.b}});Object.defineProperty(exports,"openDocumentForExport",{enumerable:true,get:function(){return chunkRLO64PHP_cjs.e}});exports.MAX_SHARED_EXPORT_SHAPING_CONFIGURATIONS=le;exports.acquireSharedExportShaping=Kt;exports.createPackagedFileFetch=Ao;exports.hasExportAdmittedFont=ee;exports.hasExportLaidOutText=ie;exports.hasFontBackedExportCapabilities=eo;exports.openFontBackedDocumentForExport=no;
package/dist/export.d.ts CHANGED
@@ -1,24 +1,24 @@
1
- import { P as PreservedImageMime, c as ImageResourceLimits, S as SupportedImageMime, b as ImageDecodePort } from './image-resources-DxF-SN_8.js';
2
- import { a as RevisionDisplayMode } from './revision-projection-kVd7p6Wd.js';
3
- import { S as SemanticLayout, j as SemanticReviewArtifactRecord, I as InlineDrawingRecord, A as AnchoredDrawingRecord, T as TextMeasurer, i as FontRequest, k as FontSubstitution, l as ShapedRun, a as StyleSpanRecord } from './semantic-records-StH-AnHK.js';
4
- import { D as DocumentProperties, H as HeadlessDocumentView, a as HeadlessDocumentRejection } from './headless-document-view-C3fc_jV0.js';
5
- import { P as PreparedLayoutFontConfiguration, L as LayoutShapingInstrumentation } from './layout-shaping-_GGjhhVc.js';
6
- import { F as FontOriginFailure, a as FontOrigin } from './font-resolver-DwuQYj3P.js';
7
- import './types-barrel-PwcfEkaX.js';
1
+ import { P as PreservedImageMime, I as ImageResourceLimits, S as SupportedImageMime, a as ImageDecodePort } from './image-resources-DkuzBnTM.js';
2
+ import { a as RevisionDisplayMode } from './revision-projection-CVJeA2jp.js';
3
+ import { S as SemanticLayout, j as SemanticReviewArtifactRecord, I as InlineDrawingRecord, A as AnchoredDrawingRecord, k as ListMarkerPictureRecord, T as TextMeasurer, i as FontRequest, l as FontSubstitution, m as ShapedRun, a as StyleSpanRecord } from './semantic-records-DB0VgWsr.js';
4
+ import { D as DocumentProperties, H as HeadlessDocumentView, a as HeadlessDocumentRejection } from './headless-document-view-Cc3fFWhv.js';
5
+ import { P as PreparedLayoutFontConfiguration, L as LayoutShapingInstrumentation } from './layout-shaping-DpWQG26a.js';
6
+ import { F as FontOriginFailure, a as FontOrigin } from './font-resolver-BwoHFBlr.js';
7
+ import './types-barrel-DN_-gaRX.js';
8
8
  import './editor-scope-OHPwVQ5l.js';
9
- import './omml-equation-Bk3OP1fv.js';
10
- import './tree-package-fragment-CpEV1gl3.js';
11
- import './editor-BRh7GuZF.js';
9
+ import './omml-equation-BY7OdfGY.js';
10
+ import './tree-package-fragment-BIyGh6L8.js';
11
+ import './editor-DhUQsWWH.js';
12
12
  import './contracts/document.js';
13
13
  import './contracts/interaction.js';
14
- import './semantic-interaction-Z2Xa68U5.js';
15
- import './document-protection-DM6mA8Rf.js';
16
- import './failure-DNNmwsgD.js';
14
+ import './semantic-interaction-DQjtIruQ.js';
15
+ import './document-protection-CYIjO-li.js';
16
+ import './failure-BIPVQbRm.js';
17
17
 
18
18
  /** Source content that cannot be certified by the layout snapshot. @public */
19
19
  interface ExportContentWarning {
20
- /** Legacy content is preserved in the DOCX but not laid out. */
21
- readonly code: 'legacy-textbox' | 'legacy-drawing' | 'scan-limit';
20
+ /** Content outside a supported layout subset stays preserved in the DOCX. */
21
+ readonly code: 'legacy-textbox' | 'legacy-drawing' | 'scan-limit' | 'unsupported-style-separator';
22
22
  /** Package part containing the content, or where the bounded scan stopped. */
23
23
  readonly partName: string;
24
24
  }
@@ -139,8 +139,13 @@ interface ExportSession {
139
139
  layout(): Promise<ExportSemanticLayout>;
140
140
  /** Settle resources and cache one explicit revision projection. */
141
141
  layoutFor(displayMode: RevisionDisplayMode): Promise<ExportSemanticLayout>;
142
- /** Mint a defensive copy only for a ready drawing from this session. */
143
- validatedImageBytes(drawing: InlineDrawingRecord | AnchoredDrawingRecord): Uint8Array | null;
142
+ /**
143
+ * Mint a defensive copy only for a ready image published by this session.
144
+ *
145
+ * Takes any record that carries a validated `resource`: an inline or anchored drawing, or
146
+ * a list marker's picture bullet. A resource that is not `ready` answers null.
147
+ */
148
+ validatedImageBytes(source: InlineDrawingRecord | AnchoredDrawingRecord | ListMarkerPictureRecord): Uint8Array | null;
144
149
  /**
145
150
  * Release per-document caches, pending resource work, and image-byte capabilities. Idempotent.
146
151
  * Previously resolved layout snapshots remain immutable and traversable after disposal.
@@ -243,6 +248,8 @@ declare function hasExportAdmittedFont<T extends object>(value: T): value is T &
243
248
  interface ExportLaidOutText {
244
249
  readonly run: ShapedRun;
245
250
  readonly font: ExportAdmittedFontIdentity;
251
+ /** Face descriptors indexed by run.fontSpans when a run needs multiple faces. */
252
+ readonly fonts?: readonly ExportAdmittedFontIdentity[];
246
253
  readonly fixedPointScale: number;
247
254
  }
248
255
  /** Additive laid-out text shaping for font-backed export sessions and shared shaping. @public */
@@ -298,12 +305,22 @@ type OpenFontBackedDocumentForExportResult = {
298
305
  }>;
299
306
  /** Font-backed one-shot session options shared by Markdown and future exporters. @public */
300
307
  interface OpenFontBackedDocumentForExportOptions extends Omit<OpenDocumentForExportOptions, 'measurer' | 'reuseAcrossRevisions'> {
308
+ /** Apply document optional ligatures to both layout measurement and exported glyphs. */
309
+ readonly documentLigatures?: boolean;
301
310
  /** Immutable font-backed byte sessions reject incremental revision reuse. */
302
311
  readonly reuseAcrossRevisions?: false;
303
312
  /** Ordered first-wins font origins resolved against this immutable DOCX. */
304
313
  readonly fonts: FontOrigin | readonly FontOrigin[];
314
+ /**
315
+ * Origins composed AFTER the document's own embedded fonts, for faces nothing else covers.
316
+ * An origin here sees every face the explicit origins and the embedded fonts can paint in
317
+ * `resolvedFaces`, so a stand-in it offers cannot shadow a face the document carries.
318
+ */
319
+ readonly lastResortFonts?: FontOrigin | readonly FontOrigin[];
305
320
  /** Font provisioning deadline; defaults to `resourceTimeoutMs`, then 60 seconds. */
306
321
  readonly fontResolutionTimeoutMs?: number;
322
+ /** Ordered admitted faces used when a complete text span lacks glyph coverage. Maximum 16. */
323
+ readonly glyphFallbacks?: readonly FontRequest[];
307
324
  /** `strict` refuses incomplete face coverage or any failed origin. Default: `best-effort`. */
308
325
  readonly fontPolicy?: 'best-effort' | 'strict';
309
326
  /** Fire-and-forget diagnostics; returned promises are observed but do not delay export. */
@@ -348,4 +365,5 @@ interface PackagedFileFetchOptions {
348
365
  */
349
366
  declare function createPackagedFileFetch(options: PackagedFileFetchOptions): typeof fetch;
350
367
 
351
- export { type ExportAdmittedFontApi, type ExportAdmittedFontFace, type ExportAdmittedFontIdentity, type ExportContentWarning, type ExportDestinationAnchor, type ExportDestinationGeometry, type ExportDocumentMetadata, type ExportDocumentSource, type ExportDroppedEmbeddedFont, type ExportFontFaceResolution, type ExportFontFamilyResolution, type ExportFontResolutionReport, type ExportLaidOutText, type ExportLaidOutTextApi, ExportResourceError, type ExportSemanticLayout, type ExportSession, type FontBackedExportCapabilities, type FontBackedExportSession, FontOrigin, FontOriginFailure, FontRequest, FontSubstitution, MAX_SHARED_EXPORT_SHAPING_CONFIGURATIONS, type OpenDocumentForExportOptions, type OpenDocumentForExportResult, type OpenFontBackedDocumentForExportOptions, type OpenFontBackedDocumentForExportResult, type PackagedFileFetchOptions, type PackagedFileRead, type PreservedImageConverter, type SharedExportShaping, type SharedExportShapingCapabilities, acquireSharedExportShaping, createNodeImageDecodePort, createPackagedFileFetch, exportDestinationNamed, hasExportAdmittedFont, hasExportLaidOutText, hasFontBackedExportCapabilities, openDocumentForExport, openFontBackedDocumentForExport };
368
+ export { ExportResourceError, FontOrigin, FontOriginFailure, FontRequest, FontSubstitution, MAX_SHARED_EXPORT_SHAPING_CONFIGURATIONS, acquireSharedExportShaping, createNodeImageDecodePort, createPackagedFileFetch, exportDestinationNamed, hasExportAdmittedFont, hasExportLaidOutText, hasFontBackedExportCapabilities, openDocumentForExport, openFontBackedDocumentForExport };
369
+ export type { ExportAdmittedFontApi, ExportAdmittedFontFace, ExportAdmittedFontIdentity, ExportContentWarning, ExportDestinationAnchor, ExportDestinationGeometry, ExportDocumentMetadata, ExportDocumentSource, ExportDroppedEmbeddedFont, ExportFontFaceResolution, ExportFontFamilyResolution, ExportFontResolutionReport, ExportLaidOutText, ExportLaidOutTextApi, ExportSemanticLayout, ExportSession, FontBackedExportCapabilities, FontBackedExportSession, OpenDocumentForExportOptions, OpenDocumentForExportResult, OpenFontBackedDocumentForExportOptions, OpenFontBackedDocumentForExportResult, PackagedFileFetchOptions, PackagedFileRead, PreservedImageConverter, SharedExportShaping, SharedExportShapingCapabilities };