UNPKG

@pdf-viewer/react

Version:

A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.

272 lines (271 loc) 11.5 kB
import { jsxs as T, Fragment as R, jsx as t } from "react/jsx-runtime"; import { useState as k, useRef as z, useMemo as M, useEffect as j } from "react"; import { r as H, D as L } from "../../../ToolbarLayout.module-f843fd79.js"; import { useLayoutContainer as N } from "../../../contexts/LayoutContainerContext.js"; import { ThreeDotIcon as U } from "../../icons/ThreeDotIcon.js"; import { UIButton as y } from "../../ui/Button.js"; import { UIDropDown as B } from "../../ui/DropDown.js"; import { useViewportContext as G } from "../../../contexts/ViewportContext.js"; import { G as E } from "../../../index-f563c6f0.js"; import { MenuSeparator as b } from "./MenuSeparator.js"; import $ from "../../ui/RPTooltip.js"; import { useLocalizationContext as q } from "../../../contexts/LocalizationContext.js"; import { FileDownloadTool as A } from "./tools/more-options/FileDownloadTool.js"; import { FileUploadTool as J } from "./tools/more-options/FileUploadTool.js"; import { PrintTool as K } from "./tools/more-options/PrintTool.js"; import { FullScreenTool as Q } from "./tools/more-options/FullScreenTool.js"; import { MostPageTool as W } from "./tools/more-options/MostPageTool.js"; import { RotateTool as X } from "./tools/more-options/RotateTool.js"; import { SelectionModeTool as Y } from "./tools/more-options/SelectionModeTool.js"; import { ViewModeTool as Z } from "./tools/more-options/ViewModeTool.js"; import { ScrollModeTool as _ } from "./tools/more-options/ScrollModeTool.js"; import { DocumentProperties as oo } from "./tools/more-options/DocumentProperties.js"; import "../../icons/ChevronUpIcon.js"; import "../../ui/Input.js"; import "../../../clsx-0c6e471a.js"; import "../../../utils/withRef.js"; import "../../../utils/types.js"; import "../../../th_TH-d627cd51.js"; import "../../../contexts/ScrollModeContext.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 "../../../contexts/DarkModeContext.js"; import "../../../utils/hooks/useDarkMode.js"; import "../../../contexts/RotationContext.js"; import "../../../contexts/LayerContext.js"; import "../../../contexts/ZoomContext.js"; import "../../../utils/constants.js"; import "../../../utils/getZoomLevel.js"; import "../../../contexts/ViewModeContext.js"; import "../../../contexts/GlobalCurrentPage.js"; import "../../../contexts/EventCallbackContext.js"; import "../../../utils/hooks/useDebounce.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 "../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 "./MenuItem.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 "../../../floating-ui.react-dom-6b2fe0df.js"; import "../../../utils/hooks/useLocalization.js"; import "./DarkModeTool.js"; import "../../icons/MoonIcon.js"; import "../../icons/SunIcon.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"; const Bt = (P) => { const { children: S, icons: o, slots: r, slotTop: s, slotBottom: V } = P, { openFileTool: m = !0, downloadTool: e = !0, printTool: p = !0, fullscreenTool: l = !0, jumpNavigationTool: u = !0, rotateTool: d = !0, selectionModeTool: f = !0, scrollModeTool: I = !0, documentProperties: g = !0, viewModeTool: h = !0 } = r ?? {}, { container: v, pagesRef: c } = N(), { isSmallScreen: a } = G(), { localeMessages: i } = q(), [x, C] = k(0), w = z( new ResizeObserver((n) => { C(n[0].contentRect.height); }) ), D = M(() => { let n = !1; const O = u || d || f || I || g || h; return a && (n = !(!m && !e && !p && !l)), O || n; }, [ a, m, p, l, e, g, I, d, f, u, h ]), F = M(() => m || e || p || l, [m, e, p, l]); return j(() => (c && w.current.observe(c), () => { w.current.disconnect(); }), [c]), D ? /* @__PURE__ */ T(R, { children: [ /* @__PURE__ */ t( B, { container: v, triggerComponent: /* @__PURE__ */ t("div", { role: "button", children: /* @__PURE__ */ t($, { content: i == null ? void 0 : i.moreOptionTooltip, children: /* @__PURE__ */ t(y, { "aria-label": i == null ? void 0 : i.moreOptionTooltip, children: /* @__PURE__ */ t(U, {}) }) }) }), children: /* @__PURE__ */ T( "div", { style: { maxHeight: `${x}px`, overflow: "auto" }, className: H["rp-other-tool-content"], "data-rp": "moreOptionsDropdown", children: [ s, a && /* @__PURE__ */ T(E, { children: [ /* @__PURE__ */ t(J, { icon: o == null ? void 0 : o.openFileIcon, isToolVisible: r == null ? void 0 : r.openFileTool }), /* @__PURE__ */ t(A, { icon: o == null ? void 0 : o.downloadIcon, isToolVisible: r == null ? void 0 : r.downloadTool }), /* @__PURE__ */ t(K, { icon: o == null ? void 0 : o.printIcon, isToolVisible: r == null ? void 0 : r.printTool }), /* @__PURE__ */ t(Q, { icon: o == null ? void 0 : o.fullScreenIcon, isToolVisible: r == null ? void 0 : r.fullscreenTool }), F && /* @__PURE__ */ t(b, {}) ] }), /* @__PURE__ */ t( W, { icons: { firstPageIcon: o == null ? void 0 : o.goToFirstPageIcon, lastPageIcon: o == null ? void 0 : o.goToLastPageIcon }, isToolVisible: r == null ? void 0 : r.jumpNavigationTool } ), /* @__PURE__ */ t( X, { icons: { rotateClockwiseIcon: o == null ? void 0 : o.rotateClockwiseIcon, rotateCounterClockwiseIcon: o == null ? void 0 : o.rotateCounterClockwiseIcon }, isToolVisible: r == null ? void 0 : r.rotateTool } ), /* @__PURE__ */ t( Y, { icons: { handModeIcon: o == null ? void 0 : o.handModeIcon, textSelectionIcon: o == null ? void 0 : o.textSelectionIcon }, isToolVisible: r == null ? void 0 : r.selectionModeTool } ), /* @__PURE__ */ t( Z, { icons: { singlePageIcon: o == null ? void 0 : o.singlePageIcon, dualPageIcon: o == null ? void 0 : o.dualPageIcon }, isToolVisible: r == null ? void 0 : r.viewModeTool } ), /* @__PURE__ */ t( _, { icons: { pageScrollIcon: o == null ? void 0 : o.pageScrollIcon, verticalScrollIcon: o == null ? void 0 : o.verticalScrollIcon, horizontalScrollIcon: o == null ? void 0 : o.horizontalScrollIcon }, isToolVisible: r == null ? void 0 : r.scrollModeTool } ), !((r == null ? void 0 : r.scrollModeTool) === !1 || (r == null ? void 0 : r.documentProperties) === !1) && /* @__PURE__ */ t(b, {}), /* @__PURE__ */ t( oo, { icon: o == null ? void 0 : o.documentPropertiesIcon, isToolVisible: r == null ? void 0 : r.documentProperties } ), V, S ] } ) } ), /* @__PURE__ */ t(L, {}) ] }) : ""; }; export { Bt as RPMoreOptions };