@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 +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 -10
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(
|
|
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(
|