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