@pdf-viewer/react
Version:
A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.
194 lines (193 loc) • 8.53 kB
JavaScript
import { jsx as r, Fragment as v, jsxs as m } from "react/jsx-runtime";
import { useState as z, useRef as x, useEffect as C } from "react";
import { useZoomContext as L } from "../../../../contexts/ZoomContext.js";
import { UIButton as T } from "../../../ui/Button.js";
import { j as p, Z as w } from "../../../../ToolbarLayout.module-f843fd79.js";
import { UIDropDown as I } from "../../../ui/DropDown.js";
import { useLayoutContainer as Z } from "../../../../contexts/LayoutContainerContext.js";
import { G as h } from "../../../../index-f563c6f0.js";
import { MenuItem as e } from "../MenuItem.js";
import { MenuSeparator as b } from "../MenuSeparator.js";
import A from "../../../ui/RPTooltip.js";
import { ZoomLevel as c } from "../../../../utils/types.js";
import { useLocalizationContext as D } from "../../../../contexts/LocalizationContext.js";
import { ChevronDownIcon as P } from "../../../icons/ChevronDownIcon.js";
import "../../../../utils/appConsole.js";
import "../../../../contexts/InitialStateContext.js";
import "../../../../contexts/RPDocumentContext.js";
import "../../../../utils/hooks/useLoadPdf.js";
import "pdfjs-dist";
import "../../../../utils/getThumbnailViewport.js";
import "../../../../contexts/ConfigContext.js";
import "../../../../contexts/DocumentPasswordContext.js";
import "../../../../utils/hooks/usePdfProperties.js";
import "../../../../utils/convertPdfDate.js";
import "../../../../utils/formatFileSize.js";
import "../../../../th_TH-d627cd51.js";
import "../../../../utils/constants.js";
import "../../../../utils/getZoomLevel.js";
import "../../../../contexts/ViewModeContext.js";
import "../../../../contexts/RotationContext.js";
import "../../../../contexts/GlobalCurrentPage.js";
import "../../../../contexts/EventCallbackContext.js";
import "../../../../utils/hooks/useDebounce.js";
import "../../../../clsx-0c6e471a.js";
import "../../../../utils/withRef.js";
import "../../../icons/ChevronUpIcon.js";
import "../../../ui/Input.js";
import "../../../../contexts/ScrollModeContext.js";
import "../../../../contexts/DarkModeContext.js";
import "../../../../utils/hooks/useDarkMode.js";
import "../../../../contexts/LayerContext.js";
import "../../../../contexts/VirtualScrollContext.js";
import "../../../../contexts/VirtualGridContext.js";
import "../../../../contexts/SelectionModeContext.js";
import "../../../../contexts/FullScreenContext.js";
import "../../../../utils/hooks/useFullScreen.js";
import "../../../../contexts/FileInputContext.js";
import "../../../../contexts/DropFileZoneContext.js";
import "../../../../contexts/ToolbarComponentContext.js";
import "../../../../contexts/ToolComponentContext.js";
import "../../../../utils/highlight.js";
import "../../../../utils/charators.js";
import "../../../../contexts/DimensionPagesContext.js";
import "../../../../contexts/PagesRotateContext.js";
import "../../../../contexts/HighlightContext.js";
import "../../../../utils/hooks/useHighlight.js";
import "../../../../contexts/LicenseContext.js";
import "../../../../utils/hooks/useLicense.js";
import "../../../../contexts/DownloadContext.js";
import "../../../../contexts/SmoothScrollContext.js";
import "../../../../contexts/ElementPageContext.js";
import "../../../../utils/const.js";
import "../../../../utils/getScrollDistance.js";
import "../../../../utils/getElementPositionInPage.js";
import "../../../../utils/Queue.js";
import "../../../../utils/renderPage.js";
import "../../../../contexts/LoaderContext.js";
import "../../../icons/LoaderIcon.js";
import "../../../../contexts/IconToolContext.js";
import "../../../../contexts/OtherToolContext.js";
import "../../../../contexts/ThemeContext.js";
import "../../../icons/Thumbnail.js";
import "../../Container.js";
import "../../../../contexts/ViewportContext.js";
import "../../sidebar/RPSplitter.js";
import "../../WrapperLayout.js";
import "../../../../LayoutWrapper-6224491f.js";
import "../../../RPDropFileZone.js";
import "../../../icons/LightPdfIcon.js";
import "../../../icons/DarkPdfIcon.js";
import "../../../../SearchCloseButton-08d57275.js";
import "../../../icons/CloseIcon.js";
import "../../../ui/Checkbox.js";
import "../../../../index-35c7f4a2.js";
import "react-dom";
import "../../../icons/CheckIcon.js";
import "../../../../contexts/IconContext.js";
import "../../../../utils/dateFormatter.js";
import "../PropertyItem.js";
import "../../../../RotateTool.module-67946714.js";
import "../../../../utils/hooks/useInfiniteScroll.js";
import "../../../../utils/link_service.js";
import "../../../../utils/annotations.js";
import "../../../../utils/sanitizeExternalUrl.js";
import "../../../page/searchHighlight.js";
import "../../../page/CustomElement.js";
import "../../../../utils/calculatePage.js";
import "../../../../utils/hooks/useMousePressed.js";
import "../../../../utils/hooks/useGrabScroll.js";
import "../../../../utils/hooks/usePinch.js";
import "../../../ui/PasswordModal.js";
import "../../../../utils/hooks/useCopyText.js";
import "../../../../utils/getWordPositionInPage.js";
import "../../../../utils/smoothScrollTo.js";
import "../FileUploadTool.js";
import "../../../icons/FileUploadDefaultIcon.js";
import "../DarkModeTool.js";
import "../../../icons/MoonIcon.js";
import "../../../icons/SunIcon.js";
import "../../../icons/ThreeDotIcon.js";
import "../../../../floating-ui.react-dom-6b2fe0df.js";
import "../DocumentProperties.js";
import "../../../icons/InfoIcon.js";
import "../RotateTool.js";
import "../../../icons/ClockwiseIcon.js";
import "../../../../utils/hooks/useRotate.js";
import "../ViewModeTool.js";
import "../../../icons/SinglePageIcon.js";
import "../../../icons/DualPageIcon.js";
import "../ScrollModeTool.js";
import "../../../icons/PageScrollingIcon.js";
import "../../../icons/VerticalScrollingIcon.js";
import "../../../icons/HorizontalScrollingIcon.js";
import "../../../icons/FileDownloadDefaultIcon.js";
import "../../../icons/PrintDefaultIcon.js";
import "../FullScreenTool.js";
import "../../../icons/FullScreenIcon.js";
import "../../../icons/GoToDownIcon.js";
import "../SelectionModeTool.js";
import "../../../icons/TextSelectionDefaultIcon.js";
import "../../../icons/HandModeDefaultIcon.js";
import "../../../icons/ZoomInIcon.js";
import "../../../icons/ZoomOutIcon.js";
import "../../../../utils/zoom.js";
import "../../../icons/SearchIcon.js";
import "../../../icons/ClearIcon.js";
import "../../../../utils/hooks/useLocalization.js";
const R = [50, 75, 100, 125, 150, 200, 300, 400], et = ({ icon: l }) => {
const { zoomLevel: f, setZoomLevel: i } = L(), { container: u, pagesRef: n } = Z(), { localeMessages: o } = D(), [a, s] = z(0), d = x(
new ResizeObserver((t) => {
s(t[0].contentRect.height);
})
);
return C(() => (n && d.current.observe(n), () => {
d.current.disconnect();
}), [n]), /* @__PURE__ */ r(v, { children: /* @__PURE__ */ r(
I,
{
container: u,
triggerComponent: /* @__PURE__ */ r("div", { role: "button", children: /* @__PURE__ */ r(A, { content: o == null ? void 0 : o.zoomSelectTooltip, children: /* @__PURE__ */ m(
T,
{
className: p["rp-current-zoom-wrapper"],
"aria-label": o == null ? void 0 : o.zoomSelectTooltip,
children: [
/* @__PURE__ */ r(
w,
{
zoomLevel: f,
className: p["rp-current-zoom-text"]
}
),
/* @__PURE__ */ r("div", { className: p["rp-zoom-level-icon"], children: l || /* @__PURE__ */ r(P, {}) })
]
}
) }) }),
style: { minWidth: "200px" },
align: "center",
children: /* @__PURE__ */ m(
"div",
{
style: { maxHeight: `${a}px`, overflow: "auto" },
className: p["rp-zoom-dropdown-content"],
children: [
/* @__PURE__ */ m(h, { children: [
/* @__PURE__ */ r(e, { onClick: () => i(c.ACTUAL), children: o == null ? void 0 : o.zoomActualSize }),
/* @__PURE__ */ r(e, { onClick: () => i(c.PAGE_FIT), children: o == null ? void 0 : o.zoomPageFit }),
/* @__PURE__ */ r(e, { onClick: () => i(c.PAGE_WIDTH), children: o == null ? void 0 : o.zoomPageWidth })
] }),
/* @__PURE__ */ r(b, {}),
/* @__PURE__ */ r(h, { children: R.map((t) => /* @__PURE__ */ m(e, { onClick: () => i(t), children: [
t,
" %"
] }, t)) })
]
}
)
}
) });
};
export {
et as ZoomLevelTool
};