@extend-ai/react-docx 0.6.4 → 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.js CHANGED
@@ -31171,6 +31171,7 @@ function DocxEditorViewer({
31171
31171
  const hasExternalVisiblePageRange = Number.isFinite(Number(visiblePageRange?.startPageIndex)) || Number.isFinite(Number(visiblePageRange?.endPageIndex));
31172
31172
  const [deferInternalPageVirtualization, setDeferInternalPageVirtualization] = React.useState(false);
31173
31173
  const [internalVirtualScrollElement, setInternalVirtualScrollElement] = React.useState(null);
31174
+ const [virtualizerMeasurementScale, setVirtualizerMeasurementScale] = React.useState(1);
31174
31175
  const [observedVisiblePageRange, setObservedVisiblePageRange] = React.useState(void 0);
31175
31176
  const pageVirtualizationSettleDelayMs = Math.max(
31176
31177
  0,
@@ -31220,6 +31221,19 @@ function DocxEditorViewer({
31220
31221
  nearestScrollableAncestor(viewerRootRef.current)
31221
31222
  );
31222
31223
  }, [editor.documentLoadNonce, pageCount, trackedChangesEnabled]);
31224
+ React.useLayoutEffect(() => {
31225
+ if (typeof window === "undefined") {
31226
+ return;
31227
+ }
31228
+ const rootElement = viewerRootRef.current;
31229
+ if (!rootElement) {
31230
+ return;
31231
+ }
31232
+ const nextScale = resolveEffectiveZoomScale(rootElement);
31233
+ setVirtualizerMeasurementScale(
31234
+ (current) => Math.abs(current - nextScale) < 1e-3 ? current : nextScale
31235
+ );
31236
+ });
31223
31237
  const internalPageVirtualizationEnabled = internalPageVirtualizationRequested && internalVirtualScrollElement !== null;
31224
31238
  const internalPageVirtualizationPending = typeof window !== "undefined" && internalPageVirtualizationRequested && internalVirtualScrollElement === null;
31225
31239
  const internalVirtualScrollUsesWindow = typeof document !== "undefined" && internalVirtualScrollElement !== null && (internalVirtualScrollElement === document.scrollingElement || internalVirtualScrollElement === document.documentElement || internalVirtualScrollElement === document.body);
@@ -31228,20 +31242,37 @@ function DocxEditorViewer({
31228
31242
  const estimateVirtualPageSize = React.useCallback(
31229
31243
  (pageIndex) => {
31230
31244
  const pageLayout = pageSectionInfoByIndex[pageIndex]?.layout ?? documentLayout;
31231
- return Math.max(1, pageLayout.pageHeightPx + DOC_PAGE_BREAK_GAP);
31245
+ return Math.max(
31246
+ 1,
31247
+ Math.round(
31248
+ (pageLayout.pageHeightPx + DOC_PAGE_BREAK_GAP) * virtualizerMeasurementScale
31249
+ )
31250
+ );
31232
31251
  },
31233
- [documentLayout, pageSectionInfoByIndex]
31252
+ [documentLayout, pageSectionInfoByIndex, virtualizerMeasurementScale]
31253
+ );
31254
+ const measureVirtualPageElement = React.useCallback(
31255
+ (element) => {
31256
+ const rect = element.getBoundingClientRect();
31257
+ return Math.max(
31258
+ 1,
31259
+ Math.round(rect.height + DOC_PAGE_BREAK_GAP * virtualizerMeasurementScale)
31260
+ );
31261
+ },
31262
+ [virtualizerMeasurementScale]
31234
31263
  );
31235
31264
  const internalElementPageVirtualizer = useVirtualizer({
31236
31265
  count: Math.max(1, pageCount),
31237
31266
  getScrollElement: () => internalElementPageVirtualizationEnabled ? internalVirtualScrollElement : null,
31238
31267
  estimateSize: estimateVirtualPageSize,
31268
+ measureElement: measureVirtualPageElement,
31239
31269
  overscan: pageVirtualizationOverscan
31240
31270
  });
31241
31271
  const internalWindowPageVirtualizer = useWindowVirtualizer({
31242
31272
  count: Math.max(1, pageCount),
31243
31273
  getScrollElement: () => internalWindowPageVirtualizationEnabled && typeof window !== "undefined" ? window : null,
31244
31274
  estimateSize: estimateVirtualPageSize,
31275
+ measureElement: measureVirtualPageElement,
31245
31276
  overscan: pageVirtualizationOverscan
31246
31277
  });
31247
31278
  const internalPageVirtualizer = internalVirtualScrollUsesWindow ? internalWindowPageVirtualizer : internalElementPageVirtualizer;
@@ -31751,7 +31782,8 @@ function DocxEditorViewer({
31751
31782
  internalPageVirtualizationEnabled,
31752
31783
  internalPageVirtualizer,
31753
31784
  pageCount,
31754
- trackedChangesEnabled
31785
+ trackedChangesEnabled,
31786
+ virtualizerMeasurementScale
31755
31787
  ]);
31756
31788
  React.useEffect(() => {
31757
31789
  const nextCurrentPage = clampNumber(