@pdf-viewer/react 1.7.4-rc.0 → 1.8.0-beta.1

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.
Files changed (60) hide show
  1. package/dist/RPDefaultLayout-129bfdfc.js +3262 -0
  2. package/dist/assets/RPDefaultLayout.css +1 -1
  3. package/dist/components/RPController.js +26 -19
  4. package/dist/components/RPPages.js +3 -2
  5. package/dist/components/RPProvider.js +9 -23
  6. package/dist/components/layout/LayoutContainer.js +2 -1
  7. package/dist/components/layout/RPDefaultLayout.js +2 -2
  8. package/dist/components/layout/sidebar/RPSidebar.js +1 -1
  9. package/dist/components/layout/sidebar/Thumbnail.js +4 -2
  10. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  11. package/dist/components/layout/toolbar/DocumentDialog.js +3 -2
  12. package/dist/components/layout/toolbar/FileDownloadTool.js +1 -1
  13. package/dist/components/layout/toolbar/MostPageTool.js +3 -2
  14. package/dist/components/layout/toolbar/OtherTool.js +1 -1
  15. package/dist/components/layout/toolbar/Paginate.js +1 -1
  16. package/dist/components/layout/toolbar/PrintTool.js +1 -1
  17. package/dist/components/layout/toolbar/RPToolbar.js +1 -1
  18. package/dist/components/layout/toolbar/RPToolbarEnd.js +1 -1
  19. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  20. package/dist/components/layout/toolbar/SearchTool.js +3 -2
  21. package/dist/components/layout/toolbar/ZoomTool.js +3 -2
  22. package/dist/components/page/AnnotationLayer.js +3 -2
  23. package/dist/components/page/CanvasLayer.js +3 -2
  24. package/dist/components/page/DualPage.js +1 -1
  25. package/dist/components/page/RPPage.js +3 -2
  26. package/dist/components/page/SinglePage.js +1 -1
  27. package/dist/components/page/TextHighlightLayer.js +3 -2
  28. package/dist/components/page/TextLayer.js +3 -2
  29. package/dist/components/ui/LoadingIndicator.js +1 -1
  30. package/dist/contexts/DimensionPagesContext.js +27 -26
  31. package/dist/contexts/PaginationContext.js +1 -1
  32. package/dist/contexts/PrintContext.js +3 -3
  33. package/dist/contexts/SearchContext.js +1 -1
  34. package/dist/contexts/SinglePageRotateContext.js +21 -0
  35. package/dist/contexts/ThumbnailsContext.js +1 -1
  36. package/dist/main.js +18 -16
  37. package/dist/{th_TH-4af60d36.js → th_TH-f515b3ad.js} +1 -1
  38. package/dist/types/components/layout/LayoutContainer.d.ts +2 -3
  39. package/dist/types/components/layout/sidebar/Thumbnail.d.ts +1 -0
  40. package/dist/types/contexts/SinglePageRotateContext.d.ts +13 -0
  41. package/dist/types/locales/zh_CN.json.d.ts +2 -2
  42. package/dist/types/main.d.ts +2 -1
  43. package/dist/types/utils/hooks/useSinglePageRotate.d.ts +4 -0
  44. package/dist/types/utils/types.d.ts +5 -0
  45. package/dist/utils/getWordPositionInPage.js +21 -14
  46. package/dist/utils/hooks/useFileDownload.js +3 -2
  47. package/dist/utils/hooks/useHighlight.js +23 -25
  48. package/dist/utils/hooks/useLicense.js +1 -1
  49. package/dist/utils/hooks/useLocalization.js +1 -1
  50. package/dist/utils/hooks/usePaginate.js +3 -2
  51. package/dist/utils/hooks/usePresentPage.js +3 -2
  52. package/dist/utils/hooks/usePrint.js +3 -2
  53. package/dist/utils/hooks/useScrollToPage.js +3 -2
  54. package/dist/utils/hooks/useSearch.js +3 -2
  55. package/dist/utils/hooks/useSinglePageRotate.js +18 -0
  56. package/dist/utils/hooks/useThumbnail.js +3 -2
  57. package/dist/utils/hooks/useVirtualReactWindow.js +3 -2
  58. package/dist/utils/types.js +11 -10
  59. package/package.json +1 -1
  60. package/dist/RPDefaultLayout-a64aa90e.js +0 -3233
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { G as i } from "../../RPDefaultLayout-a64aa90e.js";
2
+ import { L as i } from "../../RPDefaultLayout-129bfdfc.js";
3
3
  import "../../clsx-0c6e471a.js";
4
4
  import "../../contexts/LocalizationContext.js";
5
5
  export {
@@ -1,42 +1,43 @@
1
- import { jsx as g } from "react/jsx-runtime";
2
- import { createContext as x, useContext as P, useState as p, useEffect as l } from "react";
3
- import { appConsole as v } from "../utils/appConsole.js";
4
- import { useDocumentContext as w } from "./RPDocumentContext.js";
5
- import { useZoomContext as C } from "./ZoomContext.js";
6
- import { useRotationContext as y } from "./RotationContext.js";
1
+ import { jsx as x } from "react/jsx-runtime";
2
+ import { createContext as l, useContext as C, useState as g, useEffect as v } from "react";
3
+ import { appConsole as w } from "../utils/appConsole.js";
4
+ import { useDocumentContext as y } from "./RPDocumentContext.js";
5
+ import { useZoomContext as b } from "./ZoomContext.js";
6
+ import { useRotationContext as D } from "./RotationContext.js";
7
7
  import { PAGE_PADDING as f } from "../utils/constants.js";
8
- const d = x({
8
+ import { useSinglePageRotateContext as A } from "./SinglePageRotateContext.js";
9
+ const d = l({
9
10
  widths: [],
10
11
  heights: [],
11
12
  setWidths: () => {
12
13
  },
13
14
  setHeights: () => {
14
15
  }
15
- }), _ = () => {
16
- const o = P(d), { widths: s, heights: e } = o;
17
- if (s && e) {
18
- const n = s.every((t) => typeof t == "number"), r = e.every((t) => typeof t == "number");
19
- (!n || !r) && v.warn("Please use this hooks inside children component of RPProvider");
16
+ }), S = () => {
17
+ const s = C(d), { widths: r, heights: o } = s;
18
+ if (r && o) {
19
+ const n = r.every((t) => typeof t == "number"), i = o.every((t) => typeof t == "number");
20
+ (!n || !i) && w.warn("Please use this hooks inside children component of RPProvider");
20
21
  }
21
- return o;
22
- }, E = ({ children: o }) => {
23
- const [s, e] = p([]), [n, r] = p([]), { pages: t } = w(), { currentZoom: m } = C(), { rotate: h } = y();
24
- return l(() => {
22
+ return s;
23
+ }, Z = ({ children: s }) => {
24
+ const [r, o] = g([]), [n, i] = g([]), { pages: t } = y(), { currentZoom: c } = b(), { rotate: m } = D(), { singlePageRotate: a } = A();
25
+ return v(() => {
25
26
  if (!t)
26
27
  return;
27
- const c = [], u = [];
28
- for (const i of Array.from(t.values())) {
29
- const a = i.page.getViewport({
30
- scale: m,
31
- rotation: h + i.defaultRotation,
28
+ const h = [], u = [];
29
+ for (const e of Array.from(t.values())) {
30
+ const P = (a[e.page.pageNumber] ? m + a[e.page.pageNumber] : m) + e.defaultRotation, p = e.page.getViewport({
31
+ scale: c,
32
+ rotation: P,
32
33
  dontFlip: !0
33
34
  });
34
- c.push(a.width + f), u.push(a.height + f);
35
+ h.push(p.width + f), u.push(p.height + f);
35
36
  }
36
- e((i) => [...c]), r((i) => [...u]);
37
- }, [m, h, t]), /* @__PURE__ */ g(d.Provider, { value: { widths: s, heights: n, setWidths: e, setHeights: r }, children: o });
37
+ o((e) => [...h]), i((e) => [...u]);
38
+ }, [c, m, a, t]), /* @__PURE__ */ x(d.Provider, { value: { widths: r, heights: n, setWidths: o, setHeights: i }, children: s });
38
39
  };
39
40
  export {
40
- E as DimensionPagesProvider,
41
- _ as useDimensionPagesContext
41
+ Z as DimensionPagesProvider,
42
+ S as useDimensionPagesContext
42
43
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { h as e, P as m, u as p } from "../RPDefaultLayout-a64aa90e.js";
3
+ import { h as e, P as m, u as p } from "../RPDefaultLayout-129bfdfc.js";
4
4
  import "./RPDocumentContext.js";
5
5
  import "../utils/appConsole.js";
6
6
  export {
@@ -1,8 +1,8 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { j as e, a as n, d as a } from "../RPDefaultLayout-a64aa90e.js";
3
+ import { j as i, e as n, c as s } from "../RPDefaultLayout-129bfdfc.js";
4
4
  export {
5
- e as PrintContext,
5
+ i as PrintContext,
6
6
  n as PrintProvider,
7
- a as usePrintContext
7
+ s as usePrintContext
8
8
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { o as a, S as s, e as S } from "../RPDefaultLayout-a64aa90e.js";
3
+ import { o as a, S as s, d as S } from "../RPDefaultLayout-129bfdfc.js";
4
4
  export {
5
5
  a as SearchContext,
6
6
  s as SearchProvider,
@@ -0,0 +1,21 @@
1
+ import { jsx as g } from "react/jsx-runtime";
2
+ import { createContext as s, useContext as r, useState as i, useEffect as P } from "react";
3
+ import { useDocumentContext as l } from "./RPDocumentContext.js";
4
+ const a = s({
5
+ singlePageRotate: {},
6
+ setSinglePageRotate: () => {
7
+ }
8
+ }), m = () => {
9
+ const { singlePageRotate: e, setSinglePageRotate: t } = r(a);
10
+ return { singlePageRotate: e, setSinglePageRotate: t };
11
+ }, x = ({ children: e }) => {
12
+ const [t, o] = i({}), { pages: n } = l();
13
+ return P(() => {
14
+ n && o({});
15
+ }, [n]), /* @__PURE__ */ g(a.Provider, { value: { singlePageRotate: t, setSinglePageRotate: o }, children: e });
16
+ };
17
+ export {
18
+ a as SinglePageRotateContext,
19
+ x as SinglePageRotateProvider,
20
+ m as useSinglePageRotateContext
21
+ };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { l as i, T as r, m as e } from "../RPDefaultLayout-a64aa90e.js";
3
+ import { l as i, T as r, m as e } from "../RPDefaultLayout-129bfdfc.js";
4
4
  export {
5
5
  i as ThumbnailContext,
6
6
  r as ThumbnailProvider,
package/dist/main.js CHANGED
@@ -1,36 +1,37 @@
1
1
  import { RPProvider as t } from "./components/RPProvider.js";
2
- import { b as x, R as n, c as s, u as m, d as p, e as f } from "./RPDefaultLayout-a64aa90e.js";
3
- import { RPConfig as a } from "./components/RPConfig.js";
2
+ import { a as x, R as n, b as s, u as m, c as p, d as a } from "./RPDefaultLayout-129bfdfc.js";
3
+ import { RPConfig as u } from "./components/RPConfig.js";
4
4
  import { RPController as l } from "./components/RPController.js";
5
5
  import { RPTheme as P } from "./components/RPTheme.js";
6
6
  import { RPDropFileZone as d } from "./components/RPDropFileZone.js";
7
- import { useDarkModeContext as D } from "./contexts/DarkModeContext.js";
7
+ import { useDarkModeContext as c } from "./contexts/DarkModeContext.js";
8
8
  import { useDocumentContext as h } from "./contexts/RPDocumentContext.js";
9
9
  import { useRotationContext as M } from "./contexts/RotationContext.js";
10
- import { useViewModeContext as w } from "./contexts/ViewModeContext.js";
11
- import { useDropFileZoneContext as S } from "./contexts/DropFileZoneContext.js";
10
+ import { useViewModeContext as Z } from "./contexts/ViewModeContext.js";
11
+ import { useDropFileZoneContext as L } from "./contexts/DropFileZoneContext.js";
12
12
  import { useOpenFileContext as b } from "./contexts/FileInputContext.js";
13
13
  import { useZoomContext as T } from "./contexts/ZoomContext.js";
14
14
  import { useHighlightContext as y } from "./contexts/HighlightContext.js";
15
15
  import { usePdfProperties as O } from "./utils/hooks/usePdfProperties.js";
16
16
  import { useFullScreenContext as q } from "./contexts/FullScreenContext.js";
17
- import { Locales as A, ScrollMode as B, ThemeVariables as E, ViewMode as G, ZoomLevel as I } from "./utils/types.js";
17
+ import { useSinglePageRotate as A } from "./utils/hooks/useSinglePageRotate.js";
18
+ import { Locales as E, ScrollMode as G, ThemeVariables as I, ViewMode as J, ZoomLevel as K } from "./utils/types.js";
18
19
  export {
19
- A as Locales,
20
- a as RPConfig,
20
+ E as Locales,
21
+ u as RPConfig,
21
22
  l as RPController,
22
23
  x as RPDefaultLayout,
23
24
  d as RPDropFileZone,
24
25
  n as RPPages,
25
26
  t as RPProvider,
26
27
  P as RPTheme,
27
- B as ScrollMode,
28
- E as ThemeVariables,
29
- G as ViewMode,
30
- I as ZoomLevel,
31
- D as useDarkModeContext,
28
+ G as ScrollMode,
29
+ I as ThemeVariables,
30
+ J as ViewMode,
31
+ K as ZoomLevel,
32
+ c as useDarkModeContext,
32
33
  h as useDocumentContext,
33
- S as useDropFileZoneContext,
34
+ L as useDropFileZoneContext,
34
35
  s as useFileDownload,
35
36
  q as useFullScreenContext,
36
37
  y as useHighlightContext,
@@ -39,7 +40,8 @@ export {
39
40
  O as usePdfProperties,
40
41
  p as usePrintContext,
41
42
  M as useRotationContext,
42
- f as useSearchContext,
43
- w as useViewModeContext,
43
+ a as useSearchContext,
44
+ A as useSinglePageRotate,
45
+ Z as useViewModeContext,
44
46
  T as useZoomContext
45
47
  };
@@ -76,7 +76,7 @@ const o = "Search in Document", e = "Enter to search", t = "Search", l = "Previo
76
76
  passwordConfirmLabel: So,
77
77
  passwordError: wo,
78
78
  dragDropFileMessage: Co
79
- }, zo = "搜索文件", Fo = "输入搜索词", vo = "搜索", Mo = "上一条", fo = "下一条", Do = "关闭", ko = "区分大小写", xo = "搜索区分大小写", Ao = "全字匹配", Wo = "搜索完全匹配", Eo = "上一页", Oo = "当前页", Io = "下一页", Bo = "放大", Vo = "缩小", No = "选择缩放级别", qo = "实际大小", Ro = "适合页面", jo = "页面宽度", yo = "切换到深色模式", Ko = "切换到浅色模式", Go = "打开文件", _o = "打开文件", Ho = "下载文件", Uo = "下载文件", Zo = "打印", Qo = "打印", Jo = "准备文件", Xo = "取消", Yo = "全屏", oe = "全屏", ee = "更多选项", te = "第一页", le = "跳转到第一页", ae = "最后一页", ie = "跳转到最后一页", re = "顺时针旋转", se = "顺时针旋转", ne = "逆时针旋转", ce = "逆时针旋转", pe = "文本选择工具", de = "启用文本选择工具", be = "手型工具", Te = "启用手型工具", ge = "文件属性", Le = "查看文件属性", ue = "页面滚动", $e = "启用页面滚动", he = "垂直滚动", Pe = "启用垂直滚动", me = "水平滚动", Se = "启用水平滚动", we = "环绕滚动", Ce = "启用环绕滚动", ze = "单页面视图", Fe = "启用单页视图", ve = "双页面视图", Me = "启用双页视图", fe = "文件名称", De = "文件大小", ke = "标题", xe = "作者", Ae = "主题", We = "关键字", Ee = "创建者", Oe = "创建于", Ie = "修改于", Be = "PDF 制作程序 ", Ve = "PDF版本", Ne = "页数", qe = "缩略图", Re = "需要密码", je = "此文件受密码保护。请输入密码以打开文件。", ye = "输入密码", Ke = "提交", Ge = "密码错误", _e = "将PDF文件拖放到这里", cr = {
79
+ }, zo = "搜索文件", Fo = "输入搜索词", vo = "搜索", Mo = "上一条", fo = "下一条", Do = "关闭", ko = "区分大小写", xo = "搜索区分大小写", Ao = "全字匹配", Wo = "搜索完全匹配", Eo = "上一页", Oo = "当前页", Io = "下一页", Bo = "缩小", Vo = "放大", No = "选择缩放级别", qo = "实际大小", Ro = "适合页面", jo = "页面宽度", yo = "切换到深色模式", Ko = "切换到浅色模式", Go = "打开文件", _o = "打开文件", Ho = "下载文件", Uo = "下载文件", Zo = "打印", Qo = "打印", Jo = "准备文件", Xo = "取消", Yo = "全屏", oe = "全屏", ee = "更多选项", te = "第一页", le = "跳转到第一页", ae = "最后一页", ie = "跳转到最后一页", re = "顺时针旋转", se = "顺时针旋转", ne = "逆时针旋转", ce = "逆时针旋转", pe = "文本选择工具", de = "启用文本选择工具", be = "手型工具", Te = "启用手型工具", ge = "文件属性", Le = "查看文件属性", ue = "页面滚动", $e = "启用页面滚动", he = "垂直滚动", Pe = "启用垂直滚动", me = "水平滚动", Se = "启用水平滚动", we = "环绕滚动", Ce = "启用环绕滚动", ze = "单页面视图", Fe = "启用单页视图", ve = "双页面视图", Me = "启用双页视图", fe = "文件名称", De = "文件大小", ke = "标题", xe = "作者", Ae = "主题", We = "关键字", Ee = "创建者", Oe = "创建于", Ie = "修改于", Be = "PDF 制作程序 ", Ve = "PDF版本", Ne = "页数", qe = "缩略图", Re = "需要密码", je = "此文件受密码保护。请输入密码以打开文件。", ye = "输入密码", Ke = "提交", Ge = "密码错误", _e = "将PDF文件拖放到这里", cr = {
80
80
  searchButtonTooltip: zo,
81
81
  searchInputPlaceholder: Fo,
82
82
  searchInputTooltip: vo,
@@ -1,6 +1,5 @@
1
- import { HTMLAttributes } from 'react';
2
- interface Props extends HTMLAttributes<HTMLDivElement> {
3
- toolbarRef?: HTMLDivElement | null;
1
+ interface Props {
2
+ toolbarRef: HTMLDivElement | null;
4
3
  className?: string;
5
4
  style?: React.CSSProperties;
6
5
  }
@@ -6,6 +6,7 @@ interface Props {
6
6
  loading: boolean;
7
7
  isFocused: boolean;
8
8
  viewport: PageViewport;
9
+ defaultRotation: number;
9
10
  }
10
11
  export declare const Thumbnail: FC<Props>;
11
12
  export {};
@@ -0,0 +1,13 @@
1
+ interface SinglePageRotateContextType {
2
+ singlePageRotate: Record<number, number>;
3
+ setSinglePageRotate: React.Dispatch<React.SetStateAction<Record<number, number>>>;
4
+ }
5
+ export declare const SinglePageRotateContext: import('react').Context<SinglePageRotateContextType>;
6
+ export declare const useSinglePageRotateContext: () => {
7
+ singlePageRotate: Record<number, number>;
8
+ setSinglePageRotate: import('react').Dispatch<import('react').SetStateAction<Record<number, number>>>;
9
+ };
10
+ export declare const SinglePageRotateProvider: ({ children }: {
11
+ children: React.ReactNode;
12
+ }) => import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -12,8 +12,8 @@ declare const _default: {
12
12
  "previousPageTooltip": "上一页",
13
13
  "currentPageTooltip": "当前页",
14
14
  "nextPageTooltip": "下一页",
15
- "zoomOutTooltip": "放大",
16
- "zoomInTooltip": "缩小",
15
+ "zoomOutTooltip": "缩小",
16
+ "zoomInTooltip": "放大",
17
17
  "zoomSelectTooltip": "选择缩放级别",
18
18
  "zoomActualSize": "实际大小",
19
19
  "zoomPageFit": "适合页面",
@@ -19,6 +19,7 @@ export { useSearchContext } from './contexts/SearchContext';
19
19
  export { useHighlightContext } from './contexts/HighlightContext';
20
20
  export { usePdfProperties } from './utils/hooks/usePdfProperties';
21
21
  export { useFullScreenContext } from './contexts/FullScreenContext';
22
+ export { useSinglePageRotate } from './utils/hooks/useSinglePageRotate';
22
23
  export { type PDFDocumentProxy } from 'pdfjs-dist';
23
- export type { CharacterMap, DarkModeProps, DownloadToolProps, FullScreenToolProps, Localization, MatchValue, OpenFileToolProps, PageNavigationToolProps, PdfPage, PdfProperties, PreparePrintProgress, PrintToolProps, RPConfigProps, RPThemeProps, RPProviderProps, RPLayoutProps, RPIcons, RPSlots, SearchOptions, SetPageResult, ScrollModeProps, ThumbnailToolProps, ViewModeProps, ZoomProps } from './utils/types';
24
+ export type { CharacterMap, DarkModeProps, DownloadToolProps, FullScreenToolProps, Localization, MatchValue, OpenFileToolProps, PageNavigationToolProps, PdfPage, PdfProperties, PreparePrintProgress, PrintToolProps, RPConfigProps, RPThemeProps, RPProviderProps, RPLayoutProps, RPIcons, RPSlots, SearchOptions, SetPageResult, ScrollModeProps, ThumbnailToolProps, ViewModeProps, ZoomProps, RotateDirection } from './utils/types';
24
25
  export { ViewMode, ScrollMode, ZoomLevel, Locales, ThemeVariables } from './utils/types';
@@ -0,0 +1,4 @@
1
+ import { RotateDirection } from '../types';
2
+ export declare const useSinglePageRotate: () => {
3
+ rotate: (pageNumber: number, rotate: RotateDirection) => void;
4
+ };
@@ -209,6 +209,10 @@ export interface RotateContextType {
209
209
  rotate: number;
210
210
  setRotate: React.Dispatch<React.SetStateAction<number>>;
211
211
  }
212
+ export declare enum RotateDirection {
213
+ CLOCKWISE = "CLOCKWISE",
214
+ COUNTER_CLOCKWISE = "COUNTER_CLOCKWISE"
215
+ }
212
216
  export interface RPThemeContextType extends PropsWithChildren {
213
217
  customVariables?: Partial<Record<ThemeVariables, string>>;
214
218
  customDarkVariables?: Partial<Record<ThemeVariables, string>>;
@@ -278,6 +282,7 @@ export interface ThumbnailRenderedList {
278
282
  thumbnailSrc?: string;
279
283
  viewport: PageViewport;
280
284
  scale: number;
285
+ defaultRotation: number;
281
286
  }
282
287
  export declare enum ViewMode {
283
288
  SINGLE_PAGE = "Single",
@@ -1,19 +1,26 @@
1
- const a = (n, c) => {
2
- const t = c * (Math.PI / 180);
1
+ const s = (h, c, t = { x: 0, y: 0 }) => {
2
+ const e = c * (Math.PI / 180);
3
3
  return {
4
- x: n.x * Math.cos(t) - n.y * Math.sin(t),
5
- y: n.x * Math.sin(t) + n.y * Math.cos(t)
4
+ x: (h.x - t.x) * Math.cos(e) - (h.y - t.y) * Math.sin(e) + t.x,
5
+ y: (h.x - t.x) * Math.sin(e) + (h.y - t.y) * Math.cos(e) + t.y
6
6
  };
7
- }, W = (n, c, t, e, h) => {
8
- const s = t.height * e, r = t.width * e, f = t.top * e, g = t.left * e, M = n.height - f, { x: p, y: i } = a(
9
- { x: r, y: s },
10
- h
11
- ), d = c.left + Math.abs(p) / 2, x = c.top + Math.abs(i) / 2, { x: y, y: u } = a({ x: g, y: M }, h), o = {
12
- left: y,
13
- top: u
14
- }, P = o.left - d, I = o.top - x;
15
- return { leftInPage: P, topInPage: I };
7
+ }, O = (h, c, t, e, n) => {
8
+ const y = t.height * e, a = t.width * e, f = t.top * e, M = t.left * e, { y: d } = s(
9
+ { x: h.width, y: h.height },
10
+ n % 180 === 0 ? 0 : 90
11
+ ), p = M, g = Math.abs(d) - f, o = { x: h.width / 2, y: h.height / 2 }, { x: r, y: u } = s(
12
+ {
13
+ x: c.left + Math.abs(a) / 2,
14
+ y: c.top + Math.abs(y) / 2
15
+ },
16
+ n,
17
+ o
18
+ ), { x: I, y: b } = s({ x: p, y: g }, n, o), x = {
19
+ left: I,
20
+ top: b
21
+ }, H = x.left - r, L = x.top - u;
22
+ return { leftInPage: H, topInPage: L };
16
23
  };
17
24
  export {
18
- W as getWordPositionInPage
25
+ O as getWordPositionInPage
19
26
  };
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "../../contexts/RPDocumentContext.js";
4
4
  import "../../contexts/DocumentPasswordContext.js";
5
- import { c as E } from "../../RPDefaultLayout-a64aa90e.js";
5
+ import { b as G } from "../../RPDefaultLayout-129bfdfc.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -23,11 +23,12 @@ import "../../contexts/HighlightContext.js";
23
23
  import "../../contexts/LicenseContext.js";
24
24
  import "../../contexts/DownloadContext.js";
25
25
  import "../../contexts/SmoothScrollContext.js";
26
+ import "../../contexts/SinglePageRotateContext.js";
26
27
  import "../../contexts/LoaderContext.js";
27
28
  import "../../components/RPConfig.js";
28
29
  import "../../contexts/ThemeContext.js";
29
30
  import "../../components/RPDropFileZone.js";
30
31
  import "../../contexts/ToolbarComponentContext.js";
31
32
  export {
32
- E as useFileDownload
33
+ G as useFileDownload
33
34
  };
@@ -1,52 +1,50 @@
1
1
  import { useState as l, useCallback as x, useEffect as C } from "react";
2
2
  import { getHighlightOptionsWithDefaults as H, findMatches as M } from "../highlight.js";
3
3
  const d = (i) => {
4
- const [n, a] = l(void 0), [u, r] = l([]), f = x(async (t) => {
4
+ const [g, a] = l(void 0), [u, r] = l([]), m = x(async (t) => {
5
5
  if (!t)
6
6
  return {};
7
- const s = t.numPages, e = {};
8
- for (let o = 1; o <= s; o++) {
9
- const g = await t.getPage(o);
10
- e[o.toString()] = await g.getTextContent();
7
+ const o = t.numPages, s = {};
8
+ for (let e = 1; e <= o; e++) {
9
+ const h = await t.getPage(e);
10
+ s[e.toString()] = await h.getTextContent();
11
11
  }
12
- return e;
13
- }, []), m = async (t) => {
12
+ return s;
13
+ }, []), f = async (t) => {
14
14
  a(t);
15
15
  }, c = () => {
16
16
  r([]), a(void 0);
17
17
  };
18
18
  return C(() => {
19
- i && f(i).then((t) => {
20
- let s = [];
21
- for (const { keyword: e, highlightColor: o, options: g } of n) {
22
- if (!e)
23
- continue;
24
- const p = H(g);
25
- for (const h of Object.keys(t)) {
19
+ i && m(i).then((t) => {
20
+ let o = [];
21
+ for (const { keyword: s, highlightColor: e, options: h } of g) {
22
+ const p = H(h);
23
+ for (const n of Object.keys(t)) {
26
24
  const y = M(
27
- [e],
28
- t[h],
29
- Number(h) - 1,
25
+ [s],
26
+ t[n],
27
+ Number(n) - 1,
30
28
  p
31
29
  ).map((b, w) => ({
32
30
  ...b,
33
- page: Number(h),
31
+ page: Number(n),
34
32
  pageMatchIdx: w,
35
- color: o,
36
- keyword: e
33
+ color: e,
34
+ keyword: s
37
35
  }));
38
- s = [...s, ...y];
36
+ o = [...o, ...y];
39
37
  }
40
38
  }
41
- r(s);
39
+ r(o);
42
40
  }).catch(() => {
43
41
  c();
44
42
  });
45
- }, [n, i]), {
46
- highlight: m,
43
+ }, [g, i]), {
44
+ highlight: f,
47
45
  clear: c,
48
46
  highlightMatches: u,
49
- highlightKeywords: n
47
+ highlightKeywords: g
50
48
  };
51
49
  };
52
50
  export {
@@ -1,6 +1,6 @@
1
1
  import { useState as g, useCallback as h, useEffect as A } from "react";
2
2
  import { appConsole as c } from "../appConsole.js";
3
- const b = /* @__PURE__ */ new Date("2025-07-08T02:12:23.937Z"), l = "Please visit https://www.react-pdf.dev/manage-license/ to generate a new license key.", s = {
3
+ const b = /* @__PURE__ */ new Date("2025-07-09T12:47:51.130Z"), l = "Please visit https://www.react-pdf.dev/manage-license/ to generate a new license key.", s = {
4
4
  invalidLicense: `You are currently using without a valid license. ${l}`,
5
5
  mismatchedDomain: `Your license key is not valid for the current domain / IP. ${l}`,
6
6
  expired: `Your license key has expired. ${l}`,
@@ -1,5 +1,5 @@
1
1
  import { useState as a, useMemo as m } from "react";
2
- import { e as s, t as p, z as u, i as _, p as L } from "../../th_TH-4af60d36.js";
2
+ import { e as s, t as p, z as u, i as _, p as L } from "../../th_TH-f515b3ad.js";
3
3
  const f = (e) => {
4
4
  const [o, c] = a(e), [t, i] = a({
5
5
  en_US: s,
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../types.js";
3
- import { g as G } from "../../RPDefaultLayout-a64aa90e.js";
3
+ import { g as H } from "../../RPDefaultLayout-129bfdfc.js";
4
4
  import "react/jsx-runtime";
5
5
  import "../../contexts/RPDocumentContext.js";
6
6
  import "../../contexts/DocumentPasswordContext.js";
@@ -24,6 +24,7 @@ import "../../contexts/HighlightContext.js";
24
24
  import "../../contexts/LicenseContext.js";
25
25
  import "../../contexts/DownloadContext.js";
26
26
  import "../../contexts/SmoothScrollContext.js";
27
+ import "../../contexts/SinglePageRotateContext.js";
27
28
  import "../../contexts/LoaderContext.js";
28
29
  import "../../components/RPConfig.js";
29
30
  import "../../contexts/ThemeContext.js";
@@ -31,5 +32,5 @@ import "../../components/RPDropFileZone.js";
31
32
  import "../../contexts/ToolbarComponentContext.js";
32
33
  import "./useDebounce.js";
33
34
  export {
34
- G as usePaginate
35
+ H as usePaginate
35
36
  };
@@ -5,7 +5,7 @@ import "../calculatePage.js";
5
5
  import "react/jsx-runtime";
6
6
  import "../../contexts/RPDocumentContext.js";
7
7
  import "../../contexts/DocumentPasswordContext.js";
8
- import { v as G } from "../../RPDefaultLayout-a64aa90e.js";
8
+ import { v as H } from "../../RPDefaultLayout-129bfdfc.js";
9
9
  import "../../contexts/DarkModeContext.js";
10
10
  import "../../contexts/RotationContext.js";
11
11
  import "../../contexts/LayerContext.js";
@@ -24,6 +24,7 @@ import "../../contexts/HighlightContext.js";
24
24
  import "../../contexts/LicenseContext.js";
25
25
  import "../../contexts/DownloadContext.js";
26
26
  import "../../contexts/SmoothScrollContext.js";
27
+ import "../../contexts/SinglePageRotateContext.js";
27
28
  import "../../contexts/LoaderContext.js";
28
29
  import "../../components/RPConfig.js";
29
30
  import "../../contexts/ThemeContext.js";
@@ -31,5 +32,5 @@ import "../../components/RPDropFileZone.js";
31
32
  import "../../contexts/ToolbarComponentContext.js";
32
33
  import "./useDebounce.js";
33
34
  export {
34
- G as usePresentPage
35
+ H as usePresentPage
35
36
  };
@@ -2,7 +2,7 @@ import "react";
2
2
  import "react/jsx-runtime";
3
3
  import "../../contexts/RPDocumentContext.js";
4
4
  import "../../contexts/DocumentPasswordContext.js";
5
- import { i as F } from "../../RPDefaultLayout-a64aa90e.js";
5
+ import { i as G } from "../../RPDefaultLayout-129bfdfc.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -23,6 +23,7 @@ import "../../contexts/HighlightContext.js";
23
23
  import "../../contexts/LicenseContext.js";
24
24
  import "../../contexts/DownloadContext.js";
25
25
  import "../../contexts/SmoothScrollContext.js";
26
+ import "../../contexts/SinglePageRotateContext.js";
26
27
  import "../../contexts/LoaderContext.js";
27
28
  import "../../components/RPConfig.js";
28
29
  import "../../contexts/ThemeContext.js";
@@ -30,5 +31,5 @@ import "../../components/RPDropFileZone.js";
30
31
  import "../../contexts/ToolbarComponentContext.js";
31
32
  import "pdfjs-dist";
32
33
  export {
33
- F as usePrint
34
+ G as usePrint
34
35
  };
@@ -3,7 +3,7 @@ import "../../contexts/ScrollModeContext.js";
3
3
  import "react/jsx-runtime";
4
4
  import "../../contexts/RPDocumentContext.js";
5
5
  import "../../contexts/DocumentPasswordContext.js";
6
- import { f as F } from "../../RPDefaultLayout-a64aa90e.js";
6
+ import { f as G } from "../../RPDefaultLayout-129bfdfc.js";
7
7
  import "../../contexts/DarkModeContext.js";
8
8
  import "../types.js";
9
9
  import "../../contexts/RotationContext.js";
@@ -24,6 +24,7 @@ import "../../contexts/HighlightContext.js";
24
24
  import "../../contexts/LicenseContext.js";
25
25
  import "../../contexts/DownloadContext.js";
26
26
  import "../../contexts/SmoothScrollContext.js";
27
+ import "../../contexts/SinglePageRotateContext.js";
27
28
  import "../../contexts/LoaderContext.js";
28
29
  import "../../components/RPConfig.js";
29
30
  import "../../contexts/ThemeContext.js";
@@ -32,5 +33,5 @@ import "../../contexts/ToolbarComponentContext.js";
32
33
  import "../smoothScrollTo.js";
33
34
  import "../getScrollDistance.js";
34
35
  export {
35
- F as useScrollToPage
36
+ G as useScrollToPage
36
37
  };
@@ -7,7 +7,7 @@ import "../../contexts/RPDocumentContext.js";
7
7
  import "../../contexts/ZoomContext.js";
8
8
  import "react/jsx-runtime";
9
9
  import "../../contexts/DocumentPasswordContext.js";
10
- import { n as I } from "../../RPDefaultLayout-a64aa90e.js";
10
+ import { n as J } from "../../RPDefaultLayout-129bfdfc.js";
11
11
  import "../../contexts/DarkModeContext.js";
12
12
  import "../../contexts/RotationContext.js";
13
13
  import "../../contexts/LayerContext.js";
@@ -25,6 +25,7 @@ import "../../contexts/HighlightContext.js";
25
25
  import "../../contexts/LicenseContext.js";
26
26
  import "../../contexts/DownloadContext.js";
27
27
  import "../../contexts/SmoothScrollContext.js";
28
+ import "../../contexts/SinglePageRotateContext.js";
28
29
  import "../../contexts/LoaderContext.js";
29
30
  import "../../components/RPConfig.js";
30
31
  import "../../contexts/ThemeContext.js";
@@ -33,5 +34,5 @@ import "../../contexts/ToolbarComponentContext.js";
33
34
  import "../getScrollDistance.js";
34
35
  import "../getWordPositionInPage.js";
35
36
  export {
36
- I as useSearch
37
+ J as useSearch
37
38
  };
@@ -0,0 +1,18 @@
1
+ import { useCallback as r } from "react";
2
+ import { useSinglePageRotateContext as a } from "../../contexts/SinglePageRotateContext.js";
3
+ import { RotateDirection as i } from "../types.js";
4
+ const m = () => {
5
+ const { setSinglePageRotate: e } = a();
6
+ return { rotate: r(
7
+ (t, n) => {
8
+ e((o) => ({
9
+ ...o,
10
+ [t]: n === i.CLOCKWISE ? ((o[t] || 0) + 90) % 360 : ((o[t] || 0) - 90) % 360
11
+ }));
12
+ },
13
+ [e]
14
+ ) };
15
+ };
16
+ export {
17
+ m as useSinglePageRotate
18
+ };
@@ -3,7 +3,7 @@ import "../renderPage.js";
3
3
  import "react/jsx-runtime";
4
4
  import "../../contexts/RPDocumentContext.js";
5
5
  import "../../contexts/DocumentPasswordContext.js";
6
- import { k as G } from "../../RPDefaultLayout-a64aa90e.js";
6
+ import { k as H } from "../../RPDefaultLayout-129bfdfc.js";
7
7
  import "../../contexts/DarkModeContext.js";
8
8
  import "../../contexts/RotationContext.js";
9
9
  import "../../contexts/LayerContext.js";
@@ -24,6 +24,7 @@ import "../../contexts/HighlightContext.js";
24
24
  import "../../contexts/LicenseContext.js";
25
25
  import "../../contexts/DownloadContext.js";
26
26
  import "../../contexts/SmoothScrollContext.js";
27
+ import "../../contexts/SinglePageRotateContext.js";
27
28
  import "../../contexts/LoaderContext.js";
28
29
  import "../../components/RPConfig.js";
29
30
  import "../../contexts/ThemeContext.js";
@@ -31,5 +32,5 @@ import "../../components/RPDropFileZone.js";
31
32
  import "../../contexts/ToolbarComponentContext.js";
32
33
  import "../getThumbnailViewport.js";
33
34
  export {
34
- G as useThumbnail
35
+ H as useThumbnail
35
36
  };