@react-pdf-kit/viewer 2.3.0-beta.1 → 2.3.0-beta.3

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 (54) hide show
  1. package/dist/PaginationContext-15f88187.js +222 -0
  2. package/dist/RPSplitter-b62772f9.js +122 -0
  3. package/dist/assets/style.css +1 -1
  4. package/dist/assets/style.js +2 -2
  5. package/dist/components/RPController.js +1 -1
  6. package/dist/components/RPPages.js +530 -503
  7. package/dist/components/RPProvider.js +50 -48
  8. package/dist/components/layout/RPDefaultLayout.js +2 -2
  9. package/dist/components/layout/RPLayout.js +2 -2
  10. package/dist/components/layout/sidebar/RPSidebar.js +5 -4
  11. package/dist/components/layout/sidebar/RPSplitter.js +3 -2
  12. package/dist/components/layout/sidebar/Thumbnail.js +1 -1
  13. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  14. package/dist/components/layout/toolbar/MostPageTool.js +1 -1
  15. package/dist/components/layout/toolbar/OtherTool.js +1 -1
  16. package/dist/components/layout/toolbar/Paginate.js +1 -1
  17. package/dist/components/layout/toolbar/RPMoreOptions.js +1 -1
  18. package/dist/components/layout/toolbar/RPToolbar.js +1 -1
  19. package/dist/components/layout/toolbar/RPToolbarEnd.js +1 -1
  20. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  21. package/dist/components/layout/toolbar/SearchTool.js +1 -1
  22. package/dist/components/layout/toolbar/ToolbarCustom.js +5 -4
  23. package/dist/components/layout/toolbar/ToolbarDefault.js +2 -2
  24. package/dist/components/layout/toolbar/ToolbarLayout.js +2 -2
  25. package/dist/components/layout/toolbar/tools/DualPageWithCoverTool.js +2 -2
  26. package/dist/components/layout/toolbar/tools/FirstPageTool.js +2 -2
  27. package/dist/components/layout/toolbar/tools/InputPageTool.js +1 -1
  28. package/dist/components/layout/toolbar/tools/LastPageTool.js +2 -2
  29. package/dist/components/layout/toolbar/tools/NextPageTool.js +1 -1
  30. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +1 -1
  31. package/dist/components/layout/toolbar/tools/defaults/RPHorizontalBar.js +1 -1
  32. package/dist/components/layout/toolbar/tools/more-options/MostPageTool.js +1 -1
  33. package/dist/components/page/AnnotationLayer.js +1 -1
  34. package/dist/components/page/CanvasLayer.js +1 -1
  35. package/dist/components/page/DualPage.js +1 -1
  36. package/dist/components/page/DualPageWithCover.js +1 -1
  37. package/dist/components/page/RPPage.js +1 -1
  38. package/dist/components/page/SinglePage.js +1 -1
  39. package/dist/components/page/TextLayer.js +1 -1
  40. package/dist/contexts/PaginationContext.js +2 -2
  41. package/dist/contexts/RenderQueueProvider.js +1 -1
  42. package/dist/contexts/SearchContext.js +1 -1
  43. package/dist/main.js +2 -2
  44. package/dist/types/utils/hooks/usePaginate.d.ts +2 -2
  45. package/dist/types/utils/types.d.ts +3 -0
  46. package/dist/utils/hooks/useLicense.js +1 -1
  47. package/dist/utils/hooks/useLoadPdf.js +28 -28
  48. package/dist/utils/hooks/usePaginate.js +1 -1
  49. package/dist/utils/hooks/usePresentPage.js +34 -32
  50. package/dist/utils/hooks/useScrollToPage.js +1 -1
  51. package/dist/utils/hooks/useSearch.js +1 -1
  52. package/package.json +1 -1
  53. package/dist/PaginationContext-9217cab4.js +0 -201
  54. package/dist/RPSplitter-925c8ff7.js +0 -72
package/dist/main.js CHANGED
@@ -7,7 +7,7 @@ import { RPTheme as Ht } from "./components/RPTheme.js";
7
7
  import { default as bt } from "./components/ui/RPTooltip.js";
8
8
  import { UIButton as zt } from "./components/ui/Button.js";
9
9
  import { useDarkModeContext as Ut } from "./contexts/DarkModeContext.js";
10
- import { u as Nt } from "./PaginationContext-9217cab4.js";
10
+ import { u as Nt } from "./PaginationContext-15f88187.js";
11
11
  import { useDocumentContext as jt } from "./contexts/RPDocumentContext.js";
12
12
  import { useRotationContext as At } from "./contexts/RotationContext.js";
13
13
  import { useViewModeContext as Jt } from "./contexts/ViewModeContext.js";
@@ -193,7 +193,7 @@ import "./utils/zoom.js";
193
193
  import "./components/ui/LoadingIndicator.js";
194
194
  import "./components/layout/sidebar/RPSidebar.js";
195
195
  import "./components/icons/Thumbnail.js";
196
- import "./RPSplitter-925c8ff7.js";
196
+ import "./RPSplitter-b62772f9.js";
197
197
  import "./components/layout/sidebar/Thumbnails.js";
198
198
  import "./components/layout/sidebar/Thumbnail.js";
199
199
  import "./utils/hooks/useInfiniteScroll.js";
@@ -1,2 +1,2 @@
1
- import { PageControl } from '../types';
2
- export declare const usePaginate: (initialPage?: number) => PageControl;
1
+ import { PageControlInternal } from '../types';
2
+ export declare const usePaginate: (initialPage?: number) => PageControlInternal;
@@ -271,6 +271,9 @@ export interface PageControl {
271
271
  nextPage: () => void;
272
272
  prevPage: () => void;
273
273
  }
274
+ export interface PageControlInternal extends PageControl {
275
+ resetPage: (page: number) => void;
276
+ }
274
277
  export interface PageControlContextType extends PageControl {
275
278
  }
276
279
  export interface ThumbnailContextType {
@@ -2,7 +2,7 @@ import { useState as E, useCallback as y, useEffect as b } from "react";
2
2
  import { LicenseType as L } from "../types.js";
3
3
  import { appConsole as c } from "../appConsole.js";
4
4
  import "../../de_DE-a553b162.js";
5
- const A = /* @__PURE__ */ new Date("2026-03-26T04:34:25.350Z"), w = `-----BEGIN PUBLIC KEY-----
5
+ const A = /* @__PURE__ */ new Date("2026-04-02T17:26:38.433Z"), w = `-----BEGIN PUBLIC KEY-----
6
6
  MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvIokvErJ0Fctu0jduSAx
7
7
  gr+5Har/VSuZLlOunS28hnlqqA+OF1apHL7RYkjBosS15yvviYdLrVWYHpHnoY4b
8
8
  HLQ9I6YX6FMB9T/VbB4xLdVdKvfi8r49aTScl5EKuSpgpPgz2VSJTfvVGcRuth/Y
@@ -1,5 +1,5 @@
1
- import { useState as a, useRef as F, useEffect as v } from "react";
2
- import * as U from "pdfjs-dist";
1
+ import { useState as d, useRef as F, useEffect as k } from "react";
2
+ import * as h from "pdfjs-dist";
3
3
  import { ErrorType as j } from "../types.js";
4
4
  import { getThumbnailViewport as z } from "../getThumbnailViewport.js";
5
5
  import { useConfigContext as _ } from "../../contexts/ConfigContext.js";
@@ -7,37 +7,37 @@ import { useDocumentPasswordContext as B } from "../../contexts/DocumentPassword
7
7
  import "../../de_DE-a553b162.js";
8
8
  import "react/jsx-runtime";
9
9
  import "../appConsole.js";
10
- const Z = (m, s, h = {}) => {
11
- const [n, q] = a(), { workerUrlAdded: S, wasmUrl: f } = _(), [D, T] = a(/* @__PURE__ */ new Map()), d = F(), [g, P] = a(0), [c, x] = a(!1), [N, O] = a(), { password: u, passwordError: A, setPasswordError: p, passwordRequired: w, setPasswordRequired: E } = B(), { onLoadError: i, onLoaded: b, onLoadProgress: R, disableAutoFetch: C, disableStream: V, rangeChunkSize: I } = h;
12
- return v(() => {
10
+ const Z = (m, s, q = {}) => {
11
+ const [n, S] = d(), { workerUrlAdded: T, wasmUrl: f } = _(), [D, x] = d(/* @__PURE__ */ new Map()), a = F(), [g, P] = d(0), [c, C] = d(!1), [N, O] = d(), { password: u, passwordError: A, setPasswordError: p, passwordRequired: w, setPasswordRequired: E } = B(), { onLoadError: i, onLoaded: b, onLoadProgress: R, disableAutoFetch: V, disableStream: I, rangeChunkSize: U } = q;
12
+ return k(() => {
13
13
  R && R(g);
14
- }, [g, R]), v(() => {
15
- if (!S || !m)
14
+ }, [g, R]), k(() => {
15
+ if (!T || !m)
16
16
  return;
17
- P(0), d.current = Date.now();
18
- const r = d.current, y = {
17
+ P(0), a.current = Date.now();
18
+ const r = a.current, v = {
19
19
  url: m,
20
20
  cMapPacked: (s == null ? void 0 : s.isCompressed) ?? !0,
21
21
  ...(s == null ? void 0 : s.url) && { cMapUrl: s.url },
22
22
  ...u && { password: u },
23
- ...C !== void 0 && { disableAutoFetch: C },
24
- ...V !== void 0 && { disableStream: V },
25
- ...I !== void 0 && { rangeChunkSize: I },
23
+ ...V !== void 0 && { disableAutoFetch: V },
24
+ ...I !== void 0 && { disableStream: I },
25
+ ...U !== void 0 && { rangeChunkSize: U },
26
26
  ...f && { wasmUrl: f },
27
- verbosity: U.VerbosityLevel.ERRORS
27
+ verbosity: h.VerbosityLevel.ERRORS
28
28
  };
29
29
  try {
30
- const e = U.getDocument(y);
30
+ const e = h.getDocument(v);
31
31
  e.onProgress = (o) => {
32
- if (r === d.current) {
33
- const { loaded: L, total: l } = o, k = l ? Math.min(100, Math.round(L / l * 100)) : 0;
34
- P(k);
32
+ if (r === a.current) {
33
+ const { loaded: y, total: l } = o, L = l ? Math.min(100, Math.round(y / l * 100)) : 0;
34
+ P(L);
35
35
  }
36
- }, x(!0);
37
- const t = e.promise.then((o) => (r === d.current && (q(o), P(100)), b && b(o), E(!1), p(""), o)).catch((o) => {
36
+ }, C(!0), S(void 0);
37
+ const t = e.promise.then((o) => (r === a.current && (S(o), P(100)), b && b(o), E(!1), p(""), o)).catch((o) => {
38
38
  o instanceof Error && o.name === "PasswordException" ? (E(!0), p(o.message || "Password required")) : o instanceof Error && o.name === "InvalidPDFException" && u ? (E(!0), p("Incorrect password")) : i && i(o);
39
39
  }).finally(() => {
40
- x(!1);
40
+ C(!1);
41
41
  });
42
42
  return () => {
43
43
  t.finally(() => {
@@ -47,29 +47,29 @@ const Z = (m, s, h = {}) => {
47
47
  } catch (e) {
48
48
  O(j.NOT_SUPPORTED), i && i(e);
49
49
  }
50
- }, [m, S, f, u, i, b]), v(() => {
50
+ }, [m, T, f, u, i, b]), k(() => {
51
51
  if (w)
52
52
  return;
53
53
  const r = /* @__PURE__ */ new Map();
54
54
  if (!n || c) {
55
- T(r);
55
+ x(r);
56
56
  return;
57
57
  }
58
- const y = n.numPages, e = [];
59
- for (let t = 1; t <= y; t++) {
58
+ const v = n.numPages, e = [];
59
+ for (let t = 1; t <= v; t++) {
60
60
  const o = n.getPage(t);
61
61
  e.push(o);
62
62
  }
63
63
  Promise.all(e).then((t) => {
64
64
  t.map((o) => {
65
- const { thumbnailViewport: L, scale: l } = z(o), k = o.getViewport();
65
+ const { thumbnailViewport: y, scale: l } = z(o), L = o.getViewport();
66
66
  r.set(o.pageNumber, {
67
67
  page: o,
68
- thumbnailViewport: L,
68
+ thumbnailViewport: y,
69
69
  thumbnailScale: l,
70
- defaultRotation: k.rotation
70
+ defaultRotation: L.rotation
71
71
  });
72
- }), T(r);
72
+ }), x(r);
73
73
  });
74
74
  }, [n, c, w]), {
75
75
  pdf: n,
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../types.js";
3
- import { b as I } from "../../PaginationContext-9217cab4.js";
3
+ import { b as I } from "../../PaginationContext-15f88187.js";
4
4
  import "../../contexts/ViewModeContext.js";
5
5
  import "../../contexts/ScrollModeContext.js";
6
6
  import "./useDebounce.js";
@@ -1,11 +1,11 @@
1
- import { useRef as x, useState as C, useMemo as D, useEffect as X, useCallback as F } from "react";
2
- import { useLayoutContainer as N } from "../../contexts/LayoutContainerContext.js";
3
- import { useDimensionPagesContext as v } from "../../contexts/DimensionPagesContext.js";
4
- import { getGridDimension as A, getPositionFromPage as H } from "../calculatePage.js";
5
- import { u as _ } from "../../PaginationContext-9217cab4.js";
6
- import { useDebounce as q } from "./useDebounce.js";
7
- import { useSmoothScrollContext as G } from "../../contexts/SmoothScrollContext.js";
8
- import { ViewMode as M } from "../types.js";
1
+ import { useRef as Y, useState as C, useMemo as D, useEffect as E, useCallback as N } from "react";
2
+ import { useLayoutContainer as v } from "../../contexts/LayoutContainerContext.js";
3
+ import { useDimensionPagesContext as A } from "../../contexts/DimensionPagesContext.js";
4
+ import { getGridDimension as H, getPositionFromPage as _ } from "../calculatePage.js";
5
+ import { u as q } from "../../PaginationContext-15f88187.js";
6
+ import { useDebounce as G } from "./useDebounce.js";
7
+ import { useSmoothScrollContext as M } from "../../contexts/SmoothScrollContext.js";
8
+ import { ViewMode as V } from "../types.js";
9
9
  import "react/jsx-runtime";
10
10
  import "../appConsole.js";
11
11
  import "../../contexts/RPDocumentContext.js";
@@ -32,15 +32,17 @@ import "../../contexts/VirtualScrollContext.js";
32
32
  import "../../contexts/VirtualGridContext.js";
33
33
  import "../smoothScrollTo.js";
34
34
  import "../getScrollDistance.js";
35
- const Wt = (f, Y, n, W) => {
36
- const P = x(), { contentRef: E } = N(), { heights: h, widths: l } = v(), { setFocusedPage: b } = _(), [S, R] = C([]), { targetScrollPage: L } = G(), i = q(S, 0, 500), I = D(() => {
37
- const c = W === M.DUAL_PAGE_WITH_COVER, { rowsHeight: r, columnsWidth: o } = A({ heights: h, widths: l }, f, c);
35
+ const bt = (f, R, e, W) => {
36
+ const P = Y(), { contentRef: S } = v(), { heights: h, widths: g } = A(), { setFocusedPage: b } = q(), I = Y(b);
37
+ I.current = b;
38
+ const [F, x] = C([]), { targetScrollPage: l } = M(), i = G(F, 0, 500), X = D(() => {
39
+ const c = W === V.DUAL_PAGE_WITH_COVER, { rowsHeight: r, columnsWidth: o } = H({ heights: h, widths: g }, f, c);
38
40
  return h.map((m, t) => {
39
- const e = l[t], s = H(t + 1, f, c), p = o.slice(0, s.columnIndex).reduce((u, a) => u + a, 0), d = r.slice(0, s.rowIndex).reduce((u, a) => u + a, 0), T = p + e, w = d + m;
41
+ const n = g[t], s = _(t + 1, f, c), p = o.slice(0, s.columnIndex).reduce((u, a) => u + a, 0), d = r.slice(0, s.rowIndex).reduce((u, a) => u + a, 0), T = p + n, w = d + m;
40
42
  return {
41
43
  pageNumber: t + 1,
42
44
  ...s,
43
- width: e,
45
+ width: n,
44
46
  height: m,
45
47
  startX: p,
46
48
  startY: d,
@@ -48,14 +50,14 @@ const Wt = (f, Y, n, W) => {
48
50
  endY: w
49
51
  };
50
52
  });
51
- }, [h, l, f, Y, W]);
52
- X(() => {
53
+ }, [h, g, f, R, W]);
54
+ E(() => {
53
55
  var r;
54
- i.length > 0 && !L.current && b(i[0].pageNumber), ((r = i[0]) == null ? void 0 : r.ratio) && i.some((o) => o.pageNumber === L.current) && setTimeout(() => {
55
- L.current = void 0;
56
+ i.length > 0 && !l.current && I.current(i[0].pageNumber), ((r = i[0]) == null ? void 0 : r.ratio) && i.some((o) => o.pageNumber === l.current) && setTimeout(() => {
57
+ l.current = void 0;
56
58
  }, 500);
57
- }, [i, b]);
58
- const g = F(
59
+ }, [i]);
60
+ const L = N(
59
61
  (c) => {
60
62
  P.current && cancelAnimationFrame(P.current), P.current = requestAnimationFrame(() => {
61
63
  const r = c.target, o = {
@@ -63,28 +65,28 @@ const Wt = (f, Y, n, W) => {
63
65
  startLeft: r.scrollLeft,
64
66
  endTop: r.scrollTop + r.clientHeight,
65
67
  endLeft: r.scrollLeft + r.clientWidth
66
- }, m = I.filter((t) => {
67
- const e = t.endX >= o.startLeft && t.endY >= o.startTop, s = t.startX <= o.endLeft && t.startY <= o.endTop;
68
- return e && s;
68
+ }, m = X.filter((t) => {
69
+ const n = t.endX >= o.startLeft && t.endY >= o.startTop, s = t.startX <= o.endLeft && t.startY <= o.endTop;
70
+ return n && s;
69
71
  }).map((t) => {
70
- const e = o.startLeft > t.startX ? o.startLeft : t.startX, s = o.startTop > t.startY ? o.startTop : t.startY, p = o.endLeft < t.endX ? o.endLeft : t.endX, d = o.endTop < t.endY ? o.endTop : t.endY, T = p - e, w = d - s, a = +(T * w / (t.width * t.height) * 100).toFixed(2);
72
+ const n = o.startLeft > t.startX ? o.startLeft : t.startX, s = o.startTop > t.startY ? o.startTop : t.startY, p = o.endLeft < t.endX ? o.endLeft : t.endX, d = o.endTop < t.endY ? o.endTop : t.endY, T = p - n, w = d - s, a = +(T * w / (t.width * t.height) * 100).toFixed(2);
71
73
  return {
72
74
  pageNumber: t.pageNumber,
73
75
  ratio: a
74
76
  };
75
- }).sort((t, e) => e.ratio - t.ratio);
76
- R(m);
77
+ }).sort((t, n) => n.ratio - t.ratio);
78
+ x(m);
77
79
  });
78
80
  },
79
- [E, I]
81
+ [S, X]
80
82
  );
81
- X(() => {
82
- if (n)
83
- return n == null || n.addEventListener("scroll", g), () => {
84
- n == null || n.removeEventListener("scroll", g);
83
+ E(() => {
84
+ if (e)
85
+ return e == null || e.addEventListener("scroll", L), () => {
86
+ e == null || e.removeEventListener("scroll", L);
85
87
  };
86
- }, [n, g]);
88
+ }, [e, L]);
87
89
  };
88
90
  export {
89
- Wt as usePresentPage
91
+ bt as usePresentPage
90
92
  };
@@ -1,6 +1,6 @@
1
1
  import "react";
2
2
  import "../../contexts/ScrollModeContext.js";
3
- import { a as G } from "../../PaginationContext-9217cab4.js";
3
+ import { a as G } from "../../PaginationContext-15f88187.js";
4
4
  import "../../contexts/ViewModeContext.js";
5
5
  import "../types.js";
6
6
  import "../../contexts/VirtualScrollContext.js";
@@ -5,7 +5,7 @@ import { useVirtualScrollContext as st } from "../../contexts/VirtualScrollConte
5
5
  import { useScrollModeContext as ct } from "../../contexts/ScrollModeContext.js";
6
6
  import { useDocumentContext as it } from "../../contexts/RPDocumentContext.js";
7
7
  import { useZoomContext as at } from "../../contexts/ZoomContext.js";
8
- import { u as mt } from "../../PaginationContext-9217cab4.js";
8
+ import { u as mt } from "../../PaginationContext-15f88187.js";
9
9
  import { useViewModeContext as ut } from "../../contexts/ViewModeContext.js";
10
10
  import { useDimensionPagesContext as pt } from "../../contexts/DimensionPagesContext.js";
11
11
  import { useLayoutContainer as lt } from "../../contexts/LayoutContainerContext.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-pdf-kit/viewer",
3
- "version": "2.3.0-beta.1",
3
+ "version": "2.3.0-beta.3",
4
4
  "private": false,
5
5
  "description": "A react-pdf-viewer component for React and Next.js. Suitable for react-pdf document.",
6
6
  "keywords": [
@@ -1,201 +0,0 @@
1
- import { jsx as H } from "react/jsx-runtime";
2
- import { useRef as G, useEffect as S, useCallback as x, useState as F, useMemo as y, createContext as j, useContext as Z } from "react";
3
- import { ViewMode as D, ScrollMode as R } from "./utils/types.js";
4
- import { useScrollModeContext as O } from "./contexts/ScrollModeContext.js";
5
- import { useDocumentContext as $ } from "./contexts/RPDocumentContext.js";
6
- import { appConsole as q } from "./utils/appConsole.js";
7
- import { useGlobalCurrentPage as B } from "./contexts/GlobalCurrentPage.js";
8
- import { useViewModeContext as W } from "./contexts/ViewModeContext.js";
9
- import { useVirtualScrollContext as J } from "./contexts/VirtualScrollContext.js";
10
- import { useVirtualGridContext as K } from "./contexts/VirtualGridContext.js";
11
- import { smoothScrollTo as I } from "./utils/smoothScrollTo.js";
12
- import { useDimensionPagesContext as b } from "./contexts/DimensionPagesContext.js";
13
- import { useSmoothScrollContext as Q } from "./contexts/SmoothScrollContext.js";
14
- import { getScrollDistance as A } from "./utils/getScrollDistance.js";
15
- import { getGridDimension as X } from "./utils/calculatePage.js";
16
- import { useDebounce as Y } from "./utils/hooks/useDebounce.js";
17
- import { useLayoutContainer as ee } from "./contexts/LayoutContainerContext.js";
18
- const te = () => {
19
- const { viewMode: o } = W(), { scrollMode: t } = O(), { virtualScrollRef: i, virtualScrollableElementRef: r, pageScrollElementRef: a } = J(), { setFocusedPage: l } = re(), g = G(), { columnCount: n } = K(), { widths: u, heights: P } = b(), d = G(t), C = G(o), T = G(n), { targetScrollPage: E } = Q();
20
- S(() => {
21
- i != null && i.scrollToItem && (g.current = i);
22
- }, [i]), S(() => {
23
- d.current = t, C.current = o;
24
- }, [t, o]);
25
- const h = x(
26
- (f, m) => {
27
- if (!a)
28
- return;
29
- const p = Math.ceil(f / 2) * 2 - 1;
30
- if (f === p + 1) {
31
- const s = {
32
- left: u[p],
33
- top: 0
34
- };
35
- return new Promise(
36
- (c) => I(a, s, c)
37
- );
38
- }
39
- const e = {
40
- left: 0,
41
- top: 0
42
- };
43
- return a == null ? void 0 : a.scrollTo({
44
- ...e,
45
- behavior: m
46
- });
47
- },
48
- [a, u, I]
49
- );
50
- return S(() => {
51
- d.current = t, C.current = o;
52
- }, [t, o]), S(() => {
53
- T.current = n;
54
- }, [n]), { scrollToPage: x(
55
- (f, m = "smooth") => {
56
- l(f);
57
- const p = f - 1;
58
- let e = p, s = 0;
59
- if (C.current === D.DUAL_PAGE && d.current === R.PAGE_SCROLLING) {
60
- h(f, m);
61
- return;
62
- }
63
- if (d.current === R.PAGE_SCROLLING) {
64
- l(f);
65
- return;
66
- }
67
- if (!g.current || !r)
68
- return;
69
- const c = r;
70
- m === "smooth" && (E.current = f);
71
- const { columnsWidth: L, rowsHeight: N } = X(
72
- { widths: u, heights: P },
73
- n
74
- );
75
- if (d.current === R.HORIZONTAL_SCROLLING) {
76
- s = p;
77
- const w = A(L, s), _ = {
78
- left: Math.floor(w),
79
- top: 0
80
- };
81
- return c.scrollTo({
82
- ..._,
83
- behavior: m
84
- });
85
- }
86
- if (C.current === D.DUAL_PAGE) {
87
- s = p % 2, e = Math.floor(p / 2);
88
- const _ = A(L, s), k = A(N, e), z = {
89
- left: Math.floor(_),
90
- top: Math.floor(k)
91
- };
92
- return c.scrollTo({
93
- ...z,
94
- behavior: m
95
- });
96
- }
97
- const U = A(N, e), V = {
98
- left: 0,
99
- top: Math.floor(U)
100
- };
101
- return c.scrollTo({
102
- ...V,
103
- behavior: m
104
- });
105
- },
106
- [
107
- r,
108
- n,
109
- h,
110
- l,
111
- I,
112
- P,
113
- u
114
- ]
115
- ) };
116
- }, oe = (o = 1) => {
117
- const [t, i] = F(o), [r, a] = F(0), { scrollToPage: l } = te(), g = G(1), { viewMode: n } = W(), { scrollMode: u } = O(), { widths: P } = b(), { pagesRef: d } = ee(), C = Y(t, 100), T = x(
118
- (e) => {
119
- if (!/^[0-9]*$/g.test(e.toString()) || !e)
120
- return { success: !1, currentPage: g.current };
121
- const c = +e;
122
- return c < 0 || c > r ? { success: !1, currentPage: g.current } : (i(c), g.current = c, { success: !0, currentPage: +e });
123
- },
124
- [r]
125
- ), E = x(T, [T]), h = x(
126
- (e) => {
127
- const s = T(e);
128
- return s.success && l(s.currentPage), s;
129
- },
130
- [T, l]
131
- ), M = x(
132
- (e) => {
133
- const s = e % 2 === 1;
134
- if (!d || s)
135
- return !1;
136
- const c = s ? P[e] : P[e - 1], L = s ? P[e + 1] : P[e];
137
- return n === D.DUAL_PAGE && c + L < d.clientWidth;
138
- },
139
- [n, P, d, r]
140
- ), f = x(() => {
141
- let e = t - 1;
142
- M(e) && (e = t - 2), h(e);
143
- }, [h, t, n, u, M]), m = y(() => n === D.DUAL_PAGE && u === R.PAGE_SCROLLING ? t === r - 1 : t === r, [t, r, n, u]), p = x(() => {
144
- if (m)
145
- return;
146
- let e = t + 1;
147
- M(e) && (e = t + 2), h(e);
148
- }, [h, t, M, n, u, m]);
149
- return {
150
- focusedPage: C,
151
- totalPages: r,
152
- setFocusedPage: E,
153
- setTotalPages: a,
154
- nextPage: p,
155
- prevPage: f,
156
- goToPage: h
157
- };
158
- }, v = j({
159
- focusedPage: 0,
160
- setFocusedPage: (o) => {
161
- },
162
- goToPage: (o) => ({ success: !!o, currentPage: +o }),
163
- totalPages: 0,
164
- setTotalPages: (o) => {
165
- },
166
- prevPage: () => {
167
- },
168
- nextPage: () => {
169
- }
170
- }), re = () => {
171
- const o = Z(v);
172
- return typeof (o == null ? void 0 : o.focusedPage) > "u" && q.error("Please use this hooks inside children component of RPProvider"), o;
173
- }, Se = ({ children: o }) => {
174
- const { pdf: t } = $(), { setCurrentPage: i } = B(), { focusedPage: r, totalPages: a, setFocusedPage: l, setTotalPages: g, goToPage: n, nextPage: u, prevPage: P } = oe();
175
- return S(() => {
176
- t != null && t.numPages && (g(t.numPages), l(1));
177
- }, [t, g, l]), S(() => {
178
- i(r);
179
- }, [r, i]), /* @__PURE__ */ H(
180
- v.Provider,
181
- {
182
- value: {
183
- focusedPage: r,
184
- totalPages: a,
185
- setFocusedPage: l,
186
- setTotalPages: g,
187
- nextPage: u,
188
- prevPage: P,
189
- goToPage: n
190
- },
191
- children: o
192
- }
193
- );
194
- };
195
- export {
196
- Se as P,
197
- te as a,
198
- oe as b,
199
- v as c,
200
- re as u
201
- };
@@ -1,72 +0,0 @@
1
- import { jsx as N } from "react/jsx-runtime";
2
- import { useRef as w, useState as T, useCallback as f, useEffect as v } from "react";
3
- import { THUMBNAIL_MIN_WIDTH as s } from "./utils/constants.js";
4
- import { useLayoutContainer as A } from "./contexts/LayoutContainerContext.js";
5
- const P = {
6
- "rp-sidebar-content-wrapper": "_rp-sidebar-content-wrapper_ppg43_1",
7
- "rp-sidebar-content": "_rp-sidebar-content_ppg43_1",
8
- "rp-thumbnails-wrapper": "_rp-thumbnails-wrapper_ppg43_17",
9
- "rp-thumbnails-wrapper-dragging": "_rp-thumbnails-wrapper-dragging_ppg43_24",
10
- "rp-thumbnails-wrapper-hidden": "_rp-thumbnails-wrapper-hidden_ppg43_28"
11
- }, L = {
12
- "rp-thumbnail-dragger": "_rp-thumbnail-dragger_17ndw_2",
13
- "rp-thumbnail-dragger-dragging": "_rp-thumbnail-dragger-dragging_17ndw_12"
14
- }, R = {
15
- "rp-thumbnail-dragger": "_rp-thumbnail-dragger_8o6id_1",
16
- "rp-thumbnail-dragger-dragging": "_rp-thumbnail-dragger-dragging_8o6id_14"
17
- }, S = (o) => {
18
- o.preventDefault(), o.stopPropagation();
19
- }, z = (o) => {
20
- const { onWidthChange: t, thumbnailRef: x, leftSidebarRef: E, isRPLayout: y } = o, n = w(null), M = w(0), c = w(null), [a, B] = T(s), { container: b } = A(), I = f((r) => {
21
- var u, l, m, d, p, g, W, D;
22
- S(r);
23
- const e = ((l = (u = n.current) == null ? void 0 : u.getBoundingClientRect()) == null ? void 0 : l.left) ?? 0, i = ((d = (m = x.current) == null ? void 0 : m.getBoundingClientRect()) == null ? void 0 : d.width) ?? 0;
24
- c.current = { x: e, y: 0 }, M.current = i, (p = n.current) == null || p.classList.add(L["rp-thumbnail-dragger-dragging"]), (g = n.current) == null || g.classList.add(R["rp-thumbnail-dragger-dragging"]), (D = (W = n.current) == null ? void 0 : W.closest('[data-rp="thumbnailSidebar"]')) == null || D.classList.add(
25
- P["rp-thumbnails-wrapper"],
26
- P["rp-thumbnails-wrapper-dragging"]
27
- );
28
- }, []), h = f((r) => {
29
- var e, i;
30
- S(r), c.current = null, (e = n.current) == null || e.classList.remove(L["rp-thumbnail-dragger-dragging"]), (i = n.current) == null || i.classList.remove(R["rp-thumbnail-dragger-dragging"]);
31
- }, []), _ = f(
32
- (r) => {
33
- if (!c.current)
34
- return;
35
- const e = r.clientX - c.current.x, i = Math.max(
36
- s,
37
- Math.min(M.current + e, a)
38
- );
39
- t == null || t(i), S(r);
40
- },
41
- [t, a]
42
- );
43
- return v(() => {
44
- if (!b)
45
- return;
46
- const r = new ResizeObserver(([e]) => {
47
- var d, p, g;
48
- const i = ((d = n.current) == null ? void 0 : d.offsetWidth) ?? 0, u = ((g = (p = E.current) == null ? void 0 : p.getBoundingClientRect()) == null ? void 0 : g.width) ?? 0, l = e.contentRect.width / 2, m = i + u;
49
- B(l - m);
50
- });
51
- return r.observe(b), () => {
52
- r.disconnect();
53
- };
54
- }, [b, E]), v(() => {
55
- var e;
56
- const r = ((e = x.current) == null ? void 0 : e.clientWidth) ?? s;
57
- r > a ? t == null || t(a) : a >= s && r < s && (t == null || t(s));
58
- }, [a, t]), v(() => (window.addEventListener("pointermove", _), window.addEventListener("pointerup", h), () => {
59
- window.removeEventListener("pointermove", _), window.removeEventListener("pointerup", h);
60
- }), [_, h]), /* @__PURE__ */ N(
61
- "div",
62
- {
63
- ref: n,
64
- className: y ? R["rp-thumbnail-dragger"] : L["rp-thumbnail-dragger"],
65
- onPointerDown: I
66
- }
67
- );
68
- };
69
- export {
70
- z as R,
71
- P as c
72
- };