@extend-ai/react-docx 0.6.3 → 0.6.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -31281,6 +31281,7 @@ function DocxEditorViewer({
31281
31281
  const hasExternalVisiblePageRange = Number.isFinite(Number(visiblePageRange?.startPageIndex)) || Number.isFinite(Number(visiblePageRange?.endPageIndex));
31282
31282
  const [deferInternalPageVirtualization, setDeferInternalPageVirtualization] = React.useState(false);
31283
31283
  const [internalVirtualScrollElement, setInternalVirtualScrollElement] = React.useState(null);
31284
+ const [virtualizerMeasurementScale, setVirtualizerMeasurementScale] = React.useState(1);
31284
31285
  const [observedVisiblePageRange, setObservedVisiblePageRange] = React.useState(void 0);
31285
31286
  const pageVirtualizationSettleDelayMs = Math.max(
31286
31287
  0,
@@ -31330,6 +31331,19 @@ function DocxEditorViewer({
31330
31331
  nearestScrollableAncestor(viewerRootRef.current)
31331
31332
  );
31332
31333
  }, [editor.documentLoadNonce, pageCount, trackedChangesEnabled]);
31334
+ React.useLayoutEffect(() => {
31335
+ if (typeof window === "undefined") {
31336
+ return;
31337
+ }
31338
+ const rootElement = viewerRootRef.current;
31339
+ if (!rootElement) {
31340
+ return;
31341
+ }
31342
+ const nextScale = resolveEffectiveZoomScale(rootElement);
31343
+ setVirtualizerMeasurementScale(
31344
+ (current) => Math.abs(current - nextScale) < 1e-3 ? current : nextScale
31345
+ );
31346
+ });
31333
31347
  const internalPageVirtualizationEnabled = internalPageVirtualizationRequested && internalVirtualScrollElement !== null;
31334
31348
  const internalPageVirtualizationPending = typeof window !== "undefined" && internalPageVirtualizationRequested && internalVirtualScrollElement === null;
31335
31349
  const internalVirtualScrollUsesWindow = typeof document !== "undefined" && internalVirtualScrollElement !== null && (internalVirtualScrollElement === document.scrollingElement || internalVirtualScrollElement === document.documentElement || internalVirtualScrollElement === document.body);
@@ -31338,20 +31352,37 @@ function DocxEditorViewer({
31338
31352
  const estimateVirtualPageSize = React.useCallback(
31339
31353
  (pageIndex) => {
31340
31354
  const pageLayout = pageSectionInfoByIndex[pageIndex]?.layout ?? documentLayout;
31341
- return Math.max(1, pageLayout.pageHeightPx + DOC_PAGE_BREAK_GAP);
31355
+ return Math.max(
31356
+ 1,
31357
+ Math.round(
31358
+ (pageLayout.pageHeightPx + DOC_PAGE_BREAK_GAP) * virtualizerMeasurementScale
31359
+ )
31360
+ );
31342
31361
  },
31343
- [documentLayout, pageSectionInfoByIndex]
31362
+ [documentLayout, pageSectionInfoByIndex, virtualizerMeasurementScale]
31363
+ );
31364
+ const measureVirtualPageElement = React.useCallback(
31365
+ (element) => {
31366
+ const rect = element.getBoundingClientRect();
31367
+ return Math.max(
31368
+ 1,
31369
+ Math.round(rect.height + DOC_PAGE_BREAK_GAP * virtualizerMeasurementScale)
31370
+ );
31371
+ },
31372
+ [virtualizerMeasurementScale]
31344
31373
  );
31345
31374
  const internalElementPageVirtualizer = (0, import_react_virtual.useVirtualizer)({
31346
31375
  count: Math.max(1, pageCount),
31347
31376
  getScrollElement: () => internalElementPageVirtualizationEnabled ? internalVirtualScrollElement : null,
31348
31377
  estimateSize: estimateVirtualPageSize,
31378
+ measureElement: measureVirtualPageElement,
31349
31379
  overscan: pageVirtualizationOverscan
31350
31380
  });
31351
31381
  const internalWindowPageVirtualizer = (0, import_react_virtual.useWindowVirtualizer)({
31352
31382
  count: Math.max(1, pageCount),
31353
31383
  getScrollElement: () => internalWindowPageVirtualizationEnabled && typeof window !== "undefined" ? window : null,
31354
31384
  estimateSize: estimateVirtualPageSize,
31385
+ measureElement: measureVirtualPageElement,
31355
31386
  overscan: pageVirtualizationOverscan
31356
31387
  });
31357
31388
  const internalPageVirtualizer = internalVirtualScrollUsesWindow ? internalWindowPageVirtualizer : internalElementPageVirtualizer;
@@ -31861,7 +31892,8 @@ function DocxEditorViewer({
31861
31892
  internalPageVirtualizationEnabled,
31862
31893
  internalPageVirtualizer,
31863
31894
  pageCount,
31864
- trackedChangesEnabled
31895
+ trackedChangesEnabled,
31896
+ virtualizerMeasurementScale
31865
31897
  ]);
31866
31898
  React.useEffect(() => {
31867
31899
  const nextCurrentPage = clampNumber(