UNPKG

@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
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 };