@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.cjs +35 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +35 -3
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
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(
|
|
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(
|