@pdf-viewer/react 1.9.1-rc.0 → 1.9.1-rc.10

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 (75) hide show
  1. package/dist/ToolbarLayout.module-cbc8e216.js +3346 -0
  2. package/dist/ZoomTool.module-6c5eabbb.js +12 -0
  3. package/dist/assets/ToolbarLayout.css +1 -1
  4. package/dist/assets/ZoomTool.css +1 -0
  5. package/dist/components/RPController.js +20 -19
  6. package/dist/components/RPPages.js +4 -2
  7. package/dist/components/layout/LayoutContainer.js +4 -2
  8. package/dist/components/layout/RPDefaultLayout.js +1 -1
  9. package/dist/components/layout/RPLayout.js +5 -3
  10. package/dist/components/layout/sidebar/RPSidebar.js +1 -1
  11. package/dist/components/layout/sidebar/Thumbnail.js +4 -2
  12. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  13. package/dist/components/layout/toolbar/DocumentDialog.js +4 -2
  14. package/dist/components/layout/toolbar/FileDownloadTool.js +1 -1
  15. package/dist/components/layout/toolbar/MostPageTool.js +4 -2
  16. package/dist/components/layout/toolbar/OtherTool.js +1 -1
  17. package/dist/components/layout/toolbar/Paginate.js +2 -2
  18. package/dist/components/layout/toolbar/PrintTool.js +2 -2
  19. package/dist/components/layout/toolbar/RPToolbar.js +3 -2
  20. package/dist/components/layout/toolbar/RPToolbarEnd.js +2 -2
  21. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  22. package/dist/components/layout/toolbar/SearchTool.js +4 -2
  23. package/dist/components/layout/toolbar/ThumbnailTool.js +1 -1
  24. package/dist/components/layout/toolbar/ToolbarCustom.js +9 -7
  25. package/dist/components/layout/toolbar/ToolbarDefault.js +8 -6
  26. package/dist/components/layout/toolbar/ZoomTool.js +128 -28
  27. package/dist/components/layout/toolbar/tools/FileDownloadTool.js +1 -1
  28. package/dist/components/layout/toolbar/tools/InputPageTool.js +1 -1
  29. package/dist/components/layout/toolbar/tools/NextPageTool.js +5 -3
  30. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +1 -1
  31. package/dist/components/layout/toolbar/tools/PrintTool.js +1 -1
  32. package/dist/components/layout/toolbar/tools/ThumbnailTool.js +1 -1
  33. package/dist/components/layout/toolbar/tools/ZoomInTool.js +13 -13
  34. package/dist/components/layout/toolbar/tools/ZoomLevelTool.js +38 -64
  35. package/dist/components/layout/toolbar/tools/ZoomOutTool.js +18 -18
  36. package/dist/components/layout/toolbar/tools/defaults/RPHorizontalBar.js +12 -9
  37. package/dist/components/page/AnnotationLayer.js +4 -2
  38. package/dist/components/page/CanvasLayer.js +4 -2
  39. package/dist/components/page/DualPage.js +1 -1
  40. package/dist/components/page/RPPage.js +4 -2
  41. package/dist/components/page/SinglePage.js +1 -1
  42. package/dist/components/page/TextHighlightLayer.js +4 -2
  43. package/dist/components/page/TextLayer.js +4 -2
  44. package/dist/components/ui/LoadingIndicator.js +1 -1
  45. package/dist/contexts/ElementPageContext.js +25 -20
  46. package/dist/contexts/GlobalCurrentPage.js +16 -0
  47. package/dist/contexts/PaginationContext.js +5 -4
  48. package/dist/contexts/PrintContext.js +1 -1
  49. package/dist/contexts/RPDocumentContext.js +31 -29
  50. package/dist/contexts/RenderQueueProvider.js +1 -1
  51. package/dist/contexts/SearchContext.js +1 -1
  52. package/dist/contexts/ThumbnailsContext.js +1 -1
  53. package/dist/contexts/ZoomContext.js +86 -39
  54. package/dist/main.js +1 -1
  55. package/dist/{th_TH-f515b3ad.js → th_TH-d627cd51.js} +19 -19
  56. package/dist/types/contexts/GlobalCurrentPage.d.ts +11 -0
  57. package/dist/types/locales/en_US.json.d.ts +3 -3
  58. package/dist/types/utils/hooks/useLoadPdf.d.ts +2 -1
  59. package/dist/types/utils/types.d.ts +9 -5
  60. package/dist/utils/getZoomLevel.js +13 -12
  61. package/dist/utils/hooks/useFileDownload.js +4 -2
  62. package/dist/utils/hooks/useLicense.js +1 -1
  63. package/dist/utils/hooks/useLoadPdf.js +64 -57
  64. package/dist/utils/hooks/useLocalization.js +1 -1
  65. package/dist/utils/hooks/usePaginate.js +4 -2
  66. package/dist/utils/hooks/usePinch.js +17 -17
  67. package/dist/utils/hooks/usePresentPage.js +4 -2
  68. package/dist/utils/hooks/usePrint.js +4 -2
  69. package/dist/utils/hooks/useScrollToPage.js +4 -2
  70. package/dist/utils/hooks/useSearch.js +4 -2
  71. package/dist/utils/hooks/useThumbnail.js +4 -2
  72. package/dist/utils/hooks/useVirtualReactWindow.js +4 -2
  73. package/dist/utils/types.js +11 -10
  74. package/package.json +1 -1
  75. package/dist/ToolbarLayout.module-cd89d275.js +0 -3455
@@ -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 { D as _ } from "../../ToolbarLayout.module-cd89d275.js";
5
+ import { C as rr } from "../../ToolbarLayout.module-cbc8e216.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -25,6 +25,7 @@ import "../../contexts/DownloadContext.js";
25
25
  import "../../contexts/SmoothScrollContext.js";
26
26
  import "../../contexts/ElementPageContext.js";
27
27
  import "../../contexts/PagesRotateContext.js";
28
+ import "../../contexts/GlobalCurrentPage.js";
28
29
  import "../../contexts/LoaderContext.js";
29
30
  import "../../contexts/ToolComponentContext.js";
30
31
  import "../../contexts/IconToolContext.js";
@@ -44,11 +45,12 @@ import "../icons/LoaderIcon.js";
44
45
  import "../../contexts/IconContext.js";
45
46
  import "../ui/RPTooltip.js";
46
47
  import "../ui/DropDown.js";
48
+ import "../../ZoomTool.module-6c5eabbb.js";
47
49
  import "../layout/toolbar/MenuItem.js";
48
50
  import "../layout/toolbar/MenuSeparator.js";
49
51
  import "../../utils/dateFormatter.js";
50
52
  import "../layout/toolbar/PropertyItem.js";
51
53
  import "../layout/toolbar/RotateTool.js";
52
54
  export {
53
- _ as CanvasLayer
55
+ rr as CanvasLayer
54
56
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { J as p } from "../../ToolbarLayout.module-cd89d275.js";
3
+ import { I as p } from "../../ToolbarLayout.module-cbc8e216.js";
4
4
  export {
5
5
  p as DualPage
6
6
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { H as oo } from "../../ToolbarLayout.module-cd89d275.js";
3
+ import { G as mo } from "../../ToolbarLayout.module-cbc8e216.js";
4
4
  import "../../contexts/RPDocumentContext.js";
5
5
  import "../../contexts/DocumentPasswordContext.js";
6
6
  import "../../contexts/DarkModeContext.js";
@@ -25,6 +25,7 @@ import "../../contexts/DownloadContext.js";
25
25
  import "../../contexts/SmoothScrollContext.js";
26
26
  import "../../contexts/ElementPageContext.js";
27
27
  import "../../contexts/PagesRotateContext.js";
28
+ import "../../contexts/GlobalCurrentPage.js";
28
29
  import "../../contexts/LoaderContext.js";
29
30
  import "../../contexts/ToolComponentContext.js";
30
31
  import "../../contexts/IconToolContext.js";
@@ -44,6 +45,7 @@ import "../icons/LoaderIcon.js";
44
45
  import "../../contexts/IconContext.js";
45
46
  import "../ui/RPTooltip.js";
46
47
  import "../ui/DropDown.js";
48
+ import "../../ZoomTool.module-6c5eabbb.js";
47
49
  import "../layout/toolbar/MenuItem.js";
48
50
  import "../layout/toolbar/MenuSeparator.js";
49
51
  import "../../utils/dateFormatter.js";
@@ -52,5 +54,5 @@ import "../layout/toolbar/RotateTool.js";
52
54
  import "./CustomElement.js";
53
55
  import "../../utils/withRef.js";
54
56
  export {
55
- oo as RPPage
57
+ mo as RPPage
56
58
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { K as m } from "../../ToolbarLayout.module-cd89d275.js";
3
+ import { J as m } from "../../ToolbarLayout.module-cbc8e216.js";
4
4
  export {
5
5
  m as SinglePage
6
6
  };
@@ -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 { G as rr } from "../../ToolbarLayout.module-cd89d275.js";
5
+ import { F as ir } from "../../ToolbarLayout.module-cbc8e216.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -25,6 +25,7 @@ import "../../contexts/DownloadContext.js";
25
25
  import "../../contexts/SmoothScrollContext.js";
26
26
  import "../../contexts/ElementPageContext.js";
27
27
  import "../../contexts/PagesRotateContext.js";
28
+ import "../../contexts/GlobalCurrentPage.js";
28
29
  import "../../contexts/LoaderContext.js";
29
30
  import "../../contexts/ToolComponentContext.js";
30
31
  import "../../contexts/IconToolContext.js";
@@ -44,6 +45,7 @@ import "../icons/LoaderIcon.js";
44
45
  import "../../contexts/IconContext.js";
45
46
  import "../ui/RPTooltip.js";
46
47
  import "../ui/DropDown.js";
48
+ import "../../ZoomTool.module-6c5eabbb.js";
47
49
  import "../layout/toolbar/MenuItem.js";
48
50
  import "../layout/toolbar/MenuSeparator.js";
49
51
  import "../../utils/dateFormatter.js";
@@ -52,5 +54,5 @@ import "../layout/toolbar/RotateTool.js";
52
54
  import "./searchHighlight.js";
53
55
  import "../../utils/highlight.js";
54
56
  export {
55
- rr as TextHighlightLayer
57
+ ir as TextHighlightLayer
56
58
  };
@@ -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 { E as rr } from "../../ToolbarLayout.module-cd89d275.js";
5
+ import { D as tr } from "../../ToolbarLayout.module-cbc8e216.js";
6
6
  import "../../contexts/DarkModeContext.js";
7
7
  import "../../contexts/RotationContext.js";
8
8
  import "../../contexts/LayerContext.js";
@@ -25,6 +25,7 @@ import "../../contexts/DownloadContext.js";
25
25
  import "../../contexts/SmoothScrollContext.js";
26
26
  import "../../contexts/ElementPageContext.js";
27
27
  import "../../contexts/PagesRotateContext.js";
28
+ import "../../contexts/GlobalCurrentPage.js";
28
29
  import "../../contexts/LoaderContext.js";
29
30
  import "../../contexts/ToolComponentContext.js";
30
31
  import "../../contexts/IconToolContext.js";
@@ -44,6 +45,7 @@ import "../icons/LoaderIcon.js";
44
45
  import "../../contexts/IconContext.js";
45
46
  import "../ui/RPTooltip.js";
46
47
  import "../ui/DropDown.js";
48
+ import "../../ZoomTool.module-6c5eabbb.js";
47
49
  import "../layout/toolbar/MenuItem.js";
48
50
  import "../layout/toolbar/MenuSeparator.js";
49
51
  import "../../utils/dateFormatter.js";
@@ -52,5 +54,5 @@ import "../layout/toolbar/RotateTool.js";
52
54
  import "pdfjs-dist";
53
55
  import "../../utils/highlight.js";
54
56
  export {
55
- rr as TextLayer
57
+ tr as TextLayer
56
58
  };
@@ -1,5 +1,5 @@
1
1
  import "react/jsx-runtime";
2
- import { q as i } from "../../ToolbarLayout.module-cd89d275.js";
2
+ import { p as i } from "../../ToolbarLayout.module-cbc8e216.js";
3
3
  import "../../clsx-0c6e471a.js";
4
4
  import "../../contexts/LocalizationContext.js";
5
5
  export {
@@ -1,44 +1,49 @@
1
- import { jsx as L } from "react/jsx-runtime";
2
- import { createContext as w, useState as P, useCallback as u, useContext as h, useRef as g, useMemo as A } from "react";
1
+ import { jsx as w } from "react/jsx-runtime";
2
+ import { createContext as L, useState as P, useCallback as u, useContext as h, useRef as g, useMemo as A } from "react";
3
3
  import { LicenseType as R } from "../utils/types.js";
4
4
  import { useDimensionPagesContext as y } from "./DimensionPagesContext.js";
5
5
  import { usePagesRotateContext as S } from "./PagesRotateContext.js";
6
6
  import { useLicenseContext as T } from "./LicenseContext.js";
7
7
  import { useZoomContext as _ } from "./ZoomContext.js";
8
8
  import { ORGANIZATION_ALLOWED_FEATURES_MESSAGE as E } from "../utils/const.js";
9
- const d = w(void 0), z = ({ children: i }) => {
10
- const [l, o] = P({}), { widths: t, heights: c } = y(), { pageRotate: m } = S(), { zoomLevel: f } = _(), x = u(
9
+ const d = L(void 0), U = ({ children: c }) => {
10
+ const [i, o] = P({}), { widths: t, heights: l } = y(), { pageRotate: m } = S(), { currentZoom: f } = _(), x = u(
11
11
  (e, r) => {
12
12
  o((n) => {
13
- const s = { width: t[e], height: c[e] };
13
+ const s = { width: t[e], height: l[e] };
14
14
  return {
15
15
  ...n,
16
- [e]: r(n[e], s, m[e], f)
16
+ [e]: r(
17
+ n[e],
18
+ s,
19
+ m[e],
20
+ f * 100
21
+ )
17
22
  };
18
23
  });
19
24
  },
20
- [t, c, f, m]
25
+ [t, l, f, m]
21
26
  ), p = u((e) => {
22
27
  o((r) => {
23
28
  const n = { ...r };
24
29
  return delete n[e], n;
25
30
  });
26
- }, []), v = u((e, r) => {
31
+ }, []), C = u((e, r) => {
27
32
  o((n) => {
28
33
  const s = { ...n };
29
- return s[e] = s[e].filter((D, C) => C !== r), s;
34
+ return s[e] = s[e].filter((D, v) => v !== r), s;
30
35
  });
31
36
  }, []);
32
- return /* @__PURE__ */ L(
37
+ return /* @__PURE__ */ w(
33
38
  d.Provider,
34
39
  {
35
- value: { updateElement: x, clearElements: p, removeElement: v, elementList: l },
36
- children: i
40
+ value: { updateElement: x, clearElements: p, removeElement: C, elementList: i },
41
+ children: c
37
42
  }
38
43
  );
39
44
  }, a = () => {
40
- }, U = () => {
41
- const i = h(d), { type: l, validating: o } = T(), t = g(0), c = A(() => {
45
+ }, W = () => {
46
+ const c = h(d), { type: i, validating: o } = T(), t = g(0), l = A(() => {
42
47
  if (o !== !1)
43
48
  return {
44
49
  updateElement: a,
@@ -46,7 +51,7 @@ const d = w(void 0), z = ({ children: i }) => {
46
51
  removeElement: a,
47
52
  elementList: {}
48
53
  };
49
- if (!(l !== R.Developer))
54
+ if (!(i !== R.Developer))
50
55
  return {
51
56
  updateElement: () => {
52
57
  t.current === 0 && (console.error(E), t.current++);
@@ -59,13 +64,13 @@ const d = w(void 0), z = ({ children: i }) => {
59
64
  },
60
65
  elementList: {}
61
66
  };
62
- }, [l, o]);
63
- if (!i)
67
+ }, [i, o]);
68
+ if (!c)
64
69
  throw new Error("useElementPageContext must be used within a ElementPageProvider");
65
- return c || i;
70
+ return l || c;
66
71
  };
67
72
  export {
68
73
  d as ElementPageContext,
69
- z as ElementPageProvider,
70
- U as useElementPageContext
74
+ U as ElementPageProvider,
75
+ W as useElementPageContext
71
76
  };
@@ -0,0 +1,16 @@
1
+ import { jsx as a } from "react/jsx-runtime";
2
+ import { createContext as u, useContext as s, useState as c } from "react";
3
+ import { useInitialStateContext as i } from "./InitialStateContext.js";
4
+ const e = u({
5
+ currentPage: 1,
6
+ setCurrentPage: () => {
7
+ }
8
+ }), C = () => s(e), x = ({ children: t }) => {
9
+ const { initialPage: r = 1 } = i(), [o, n] = c(r);
10
+ return /* @__PURE__ */ a(e.Provider, { value: { currentPage: o, setCurrentPage: n }, children: t });
11
+ };
12
+ export {
13
+ e as GlobalCurrentPage,
14
+ x as GlobalCurrentPageProvider,
15
+ C as useGlobalCurrentPage
16
+ };
@@ -1,10 +1,11 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { t as e, P as m, u as p } from "../ToolbarLayout.module-cd89d275.js";
3
+ import { s as p, P as e, u as s } from "../ToolbarLayout.module-cbc8e216.js";
4
4
  import "./RPDocumentContext.js";
5
5
  import "../utils/appConsole.js";
6
+ import "./GlobalCurrentPage.js";
6
7
  export {
7
- e as PaginationContext,
8
- m as PaginationProvider,
9
- p as usePaginationContext
8
+ p as PaginationContext,
9
+ e as PaginationProvider,
10
+ s as usePaginationContext
10
11
  };
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { w as e, h as n, c as s } from "../ToolbarLayout.module-cd89d275.js";
3
+ import { v as e, h as n, c as s } from "../ToolbarLayout.module-cbc8e216.js";
4
4
  export {
5
5
  e as PrintContext,
6
6
  n as PrintProvider,
@@ -1,9 +1,9 @@
1
- import { jsx as x } from "react/jsx-runtime";
2
- import { createContext as C, useState as l, useEffect as h, useMemo as S, useContext as v } from "react";
3
- import { useLoadPdf as D } from "../utils/hooks/useLoadPdf.js";
4
- import { usePdfProperties as F } from "../utils/hooks/usePdfProperties.js";
5
- import { appConsole as M } from "../utils/appConsole.js";
6
- const m = C({
1
+ import { jsx as C } from "react/jsx-runtime";
2
+ import { createContext as h, useState as m, useEffect as v, useMemo as S, useContext as D } from "react";
3
+ import { useLoadPdf as F } from "../utils/hooks/useLoadPdf.js";
4
+ import { usePdfProperties as M } from "../utils/hooks/usePdfProperties.js";
5
+ import { appConsole as j } from "../utils/appConsole.js";
6
+ const u = h({
7
7
  pdf: void 0,
8
8
  pages: /* @__PURE__ */ new Map(),
9
9
  setPdfSrc: () => {
@@ -11,39 +11,41 @@ const m = C({
11
11
  setFilename: () => {
12
12
  },
13
13
  loading: !1,
14
- loaderProgress: 0
15
- }), R = ({
14
+ loaderProgress: 0,
15
+ error: void 0
16
+ }), b = ({
16
17
  children: t,
17
18
  src: e,
18
- characterMap: u,
19
- onLoadError: c,
20
- onLoaded: P
19
+ characterMap: c,
20
+ onLoadError: P,
21
+ onLoaded: g
21
22
  }) => {
22
- const [o, n] = l(e), [s, i] = l(), { pdf: r, pages: p, loading: d, loadingProgress: f } = D(o, u, {
23
- onLoadError: c,
24
- onLoaded: P
25
- }), a = F(o, r, s);
26
- h(() => {
23
+ const [o, n] = m(e), [s, i] = m(), { pdf: r, pages: d, loading: p, loadingProgress: f, error: a } = F(o, c, {
24
+ onLoadError: P,
25
+ onLoaded: g
26
+ }), l = M(o, r, s);
27
+ v(() => {
27
28
  i(e == null ? void 0 : e.split("/").pop()), n(e);
28
29
  }, [e]);
29
- const g = S(() => ({
30
+ const x = S(() => ({
30
31
  pdf: r,
31
- pages: p,
32
+ pages: d,
32
33
  pdfSrc: o,
33
34
  setPdfSrc: n,
34
- pdfProperties: a,
35
+ pdfProperties: l,
35
36
  setFilename: i,
36
37
  filename: s,
37
- loading: d,
38
- loaderProgress: f
39
- }), [r, p, o, a, d, f]);
40
- return /* @__PURE__ */ x(m.Provider, { value: g, children: o ? t : null });
41
- }, b = () => {
42
- const t = v(m);
43
- return t.pdfSrc || M.error("Please use this hooks inside children component of RPDocument"), t;
38
+ loading: p,
39
+ loaderProgress: f,
40
+ error: a
41
+ }), [r, d, o, l, p, f, a]);
42
+ return /* @__PURE__ */ C(u.Provider, { value: x, children: o ? t : null });
43
+ }, q = () => {
44
+ const t = D(u);
45
+ return t.pdfSrc || j.error("Please use this hooks inside children component of RPDocument"), t;
44
46
  };
45
47
  export {
46
- R as DocumentProvider,
47
- m as default,
48
- b as useDocumentContext
48
+ b as DocumentProvider,
49
+ u as default,
50
+ q as useDocumentContext
49
51
  };
@@ -2,7 +2,7 @@ import "react/jsx-runtime";
2
2
  import "react";
3
3
  import "../utils/Queue.js";
4
4
  import "../utils/renderPage.js";
5
- import { B as m, g as p, C as d } from "../ToolbarLayout.module-cd89d275.js";
5
+ import { A as m, g as p, B as d } from "../ToolbarLayout.module-cbc8e216.js";
6
6
  export {
7
7
  m as RenderQueueContext,
8
8
  p as RenderQueueProvider,
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { A as a, f as s, d as c } from "../ToolbarLayout.module-cd89d275.js";
3
+ import { z as a, f as s, d as c } from "../ToolbarLayout.module-cbc8e216.js";
4
4
  export {
5
5
  a as SearchContext,
6
6
  s as SearchProvider,
@@ -1,6 +1,6 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import { y as m, T as r, i as e } from "../ToolbarLayout.module-cd89d275.js";
3
+ import { x as m, T as r, i as e } from "../ToolbarLayout.module-cbc8e216.js";
4
4
  export {
5
5
  m as ThumbnailContext,
6
6
  r as ThumbnailProvider,
@@ -1,47 +1,94 @@
1
- import { jsx as C } from "react/jsx-runtime";
2
- import { createContext as P, useContext as L, useState as y, useMemo as c, useEffect as S } from "react";
3
- import { ZoomLevel as V } from "../utils/types.js";
4
- import { appConsole as b } from "../utils/appConsole.js";
5
- import { useInitialStateContext as A } from "./InitialStateContext.js";
6
- import { useDocumentContext as D } from "./RPDocumentContext.js";
7
- import { PAGE_PADDING as p } from "../utils/constants.js";
8
- import { getZoomLevel as E } from "../utils/getZoomLevel.js";
9
- import { useLayoutContainer as G } from "./LayoutContainerContext.js";
10
- import { useViewModeContext as H } from "./ViewModeContext.js";
11
- const d = P({
1
+ import { jsx as A } from "react/jsx-runtime";
2
+ import { createContext as I, useContext as M, useState as u, useRef as O, useEffect as p, useCallback as Z, useMemo as x } from "react";
3
+ import { ZoomLevel as R } from "../utils/types.js";
4
+ import { appConsole as J } from "../utils/appConsole.js";
5
+ import { useInitialStateContext as _ } from "./InitialStateContext.js";
6
+ import { useDocumentContext as j } from "./RPDocumentContext.js";
7
+ import { PAGE_PADDING as F } from "../utils/constants.js";
8
+ import { getZoomLevel as C } from "../utils/getZoomLevel.js";
9
+ import { useLayoutContainer as T } from "./LayoutContainerContext.js";
10
+ import { useViewModeContext as k } from "./ViewModeContext.js";
11
+ import { useRotationContext as q } from "./RotationContext.js";
12
+ import { useGlobalCurrentPage as B } from "./GlobalCurrentPage.js";
13
+ import { useDebounce as K } from "../utils/hooks/useDebounce.js";
14
+ const D = I({
12
15
  zoomLevel: 100,
13
16
  currentZoom: 1,
14
17
  setZoomLevel: () => {
15
18
  }
16
- }), T = () => {
17
- const n = L(d);
18
- return typeof n.currentZoom != "number" && b.warn("Please use this hooks inside children component of RPProvider"), n;
19
- }, q = ({ children: n }) => {
20
- const {
21
- initialScale: r = V.PAGE_FIT,
22
- initialPage: u = 1,
23
- initialRotation: l = 0
24
- } = A(), [i, a] = y(typeof r == "number" ? r : 100), { pages: s } = D(), { pagesRef: e } = G(), { viewMode: h } = H(), f = c(() => i / 100, [i]), t = c(() => {
25
- let o = s.get(u);
26
- return o || (o = s.get(1)), o == null ? void 0 : o.page.getViewport({ scale: 1, rotation: l + o.defaultRotation });
27
- }, [s, u, l]), m = c(() => {
28
- if (!t)
19
+ }), me = () => {
20
+ const c = M(D);
21
+ return typeof c.currentZoom != "number" && J.warn("Please use this hooks inside children component of RPProvider"), c;
22
+ }, ue = ({ children: c }) => {
23
+ const { initialScale: W = R.PAGE_FIT } = _(), [n, b] = u(W), { pages: l } = j(), { pagesRef: t } = T(), { viewMode: h } = k(), [H, V] = u({
24
+ width: (t == null ? void 0 : t.clientWidth) || 0,
25
+ height: (t == null ? void 0 : t.clientHeight) || 0
26
+ }), a = K(H, 100), { rotate: g } = q(), [i, z] = u(null), d = O(null), { currentPage: v } = B(), [w, y] = u(v);
27
+ p(() => {
28
+ let e = l.get(w);
29
+ e || (e = l.get(1));
30
+ const o = e == null ? void 0 : e.page.getViewport({
31
+ scale: 1,
32
+ rotation: e.defaultRotation + g
33
+ });
34
+ o && JSON.stringify(o) !== JSON.stringify(d.current) && (d.current = o, z(o));
35
+ }, [l, g, w]);
36
+ const m = Z(() => {
37
+ if (!i)
38
+ return null;
39
+ const e = ((i == null ? void 0 : i.width) || 0) + 2 * F, o = (i == null ? void 0 : i.height) || 0, r = (t == null ? void 0 : t.clientWidth) || 0, s = (t == null ? void 0 : t.clientHeight) || 0;
40
+ return { pageWidth: e, pageHeight: o, clientWidth: r, clientHeight: s };
41
+ }, [i, t]), L = x(() => {
42
+ const e = m();
43
+ if (!a.width || !a.height || !e)
29
44
  return 0;
30
- const o = ((t == null ? void 0 : t.width) || 0) + 2 * p, Z = ((t == null ? void 0 : t.height) || 0) + 2 * p, g = (e == null ? void 0 : e.clientWidth) || 0, v = (e == null ? void 0 : e.clientHeight) || 0;
31
- return E(r, g, v, o, Z, h);
32
- }, [t, r, e]);
33
- S(() => {
34
- typeof m == "number" && m && a(m);
35
- }, [m]);
36
- const x = c(() => ({
37
- zoomLevel: i,
38
- currentZoom: f,
39
- setZoomLevel: a
40
- }), [f, i]);
41
- return /* @__PURE__ */ C(d.Provider, { value: x, children: n });
45
+ if (typeof n == "number")
46
+ return n / 100;
47
+ const { clientWidth: o, clientHeight: r, pageWidth: s, pageHeight: f } = e;
48
+ return C(n, o, r, s, f, h) / 100;
49
+ }, [n, a, m, h]);
50
+ p(() => {
51
+ y(v);
52
+ }, [n]), p(() => {
53
+ const e = (r) => {
54
+ r.forEach((s) => {
55
+ V({ width: s.contentRect.width, height: s.contentRect.height });
56
+ });
57
+ }, o = new ResizeObserver(e);
58
+ return t && o.observe(t), () => {
59
+ o.disconnect();
60
+ };
61
+ }, [t]);
62
+ const N = Z(
63
+ (e) => {
64
+ let o = 0;
65
+ if (typeof e == "function") {
66
+ const r = m();
67
+ if (!r)
68
+ return;
69
+ const { clientWidth: s, clientHeight: f, pageWidth: P, pageHeight: E } = r, G = C(
70
+ n,
71
+ s,
72
+ f,
73
+ P,
74
+ E,
75
+ h
76
+ );
77
+ o = e(G);
78
+ } else
79
+ o = e;
80
+ o && b(o);
81
+ },
82
+ [m]
83
+ ), S = x(() => ({
84
+ zoomLevel: n,
85
+ currentZoom: L,
86
+ setZoomLevel: N
87
+ }), [L, n]);
88
+ return /* @__PURE__ */ A(D.Provider, { value: S, children: c });
42
89
  };
43
90
  export {
44
- d as ZoomContext,
45
- q as ZoomProvider,
46
- T as useZoomContext
91
+ D as ZoomContext,
92
+ ue as ZoomProvider,
93
+ me as useZoomContext
47
94
  };
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { RPProvider as r } from "./components/RPProvider.js";
2
- import { a as x, R as m, S as l, b as p, u as f, c as a, d as n } from "./ToolbarLayout.module-cd89d275.js";
2
+ import { a as x, R as m, S as l, b as p, u as f, c as a, d as n } from "./ToolbarLayout.module-cbc8e216.js";
3
3
  import { RPConfig as u } from "./components/RPConfig.js";
4
4
  import { RPLayout as P } from "./components/layout/RPLayout.js";
5
5
  import { RPController as C } from "./components/RPController.js";