@react-pdf-kit/viewer 2.3.0-beta.2 → 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 (52) hide show
  1. package/dist/PaginationContext-15f88187.js +222 -0
  2. package/dist/RPSplitter-b62772f9.js +122 -0
  3. package/dist/components/RPController.js +1 -1
  4. package/dist/components/RPPages.js +530 -503
  5. package/dist/components/RPProvider.js +50 -48
  6. package/dist/components/layout/RPDefaultLayout.js +2 -2
  7. package/dist/components/layout/RPLayout.js +2 -2
  8. package/dist/components/layout/sidebar/RPSidebar.js +5 -4
  9. package/dist/components/layout/sidebar/RPSplitter.js +3 -2
  10. package/dist/components/layout/sidebar/Thumbnail.js +1 -1
  11. package/dist/components/layout/sidebar/Thumbnails.js +1 -1
  12. package/dist/components/layout/toolbar/MostPageTool.js +1 -1
  13. package/dist/components/layout/toolbar/OtherTool.js +1 -1
  14. package/dist/components/layout/toolbar/Paginate.js +1 -1
  15. package/dist/components/layout/toolbar/RPMoreOptions.js +1 -1
  16. package/dist/components/layout/toolbar/RPToolbar.js +1 -1
  17. package/dist/components/layout/toolbar/RPToolbarEnd.js +1 -1
  18. package/dist/components/layout/toolbar/SearchResultNavigator.js +1 -1
  19. package/dist/components/layout/toolbar/SearchTool.js +1 -1
  20. package/dist/components/layout/toolbar/ToolbarCustom.js +5 -4
  21. package/dist/components/layout/toolbar/ToolbarDefault.js +2 -2
  22. package/dist/components/layout/toolbar/ToolbarLayout.js +2 -2
  23. package/dist/components/layout/toolbar/tools/DualPageWithCoverTool.js +2 -2
  24. package/dist/components/layout/toolbar/tools/FirstPageTool.js +2 -2
  25. package/dist/components/layout/toolbar/tools/InputPageTool.js +1 -1
  26. package/dist/components/layout/toolbar/tools/LastPageTool.js +2 -2
  27. package/dist/components/layout/toolbar/tools/NextPageTool.js +1 -1
  28. package/dist/components/layout/toolbar/tools/PreviousPageTool.js +1 -1
  29. package/dist/components/layout/toolbar/tools/defaults/RPHorizontalBar.js +1 -1
  30. package/dist/components/layout/toolbar/tools/more-options/MostPageTool.js +1 -1
  31. package/dist/components/page/AnnotationLayer.js +1 -1
  32. package/dist/components/page/CanvasLayer.js +1 -1
  33. package/dist/components/page/DualPage.js +1 -1
  34. package/dist/components/page/DualPageWithCover.js +1 -1
  35. package/dist/components/page/RPPage.js +1 -1
  36. package/dist/components/page/SinglePage.js +1 -1
  37. package/dist/components/page/TextLayer.js +1 -1
  38. package/dist/contexts/PaginationContext.js +2 -2
  39. package/dist/contexts/RenderQueueProvider.js +1 -1
  40. package/dist/contexts/SearchContext.js +1 -1
  41. package/dist/main.js +2 -2
  42. package/dist/types/utils/hooks/usePaginate.d.ts +2 -2
  43. package/dist/types/utils/types.d.ts +3 -0
  44. package/dist/utils/hooks/useLicense.js +1 -1
  45. package/dist/utils/hooks/useLoadPdf.js +28 -28
  46. package/dist/utils/hooks/usePaginate.js +1 -1
  47. package/dist/utils/hooks/usePresentPage.js +34 -32
  48. package/dist/utils/hooks/useScrollToPage.js +1 -1
  49. package/dist/utils/hooks/useSearch.js +1 -1
  50. package/package.json +1 -1
  51. package/dist/PaginationContext-9217cab4.js +0 -201
  52. package/dist/RPSplitter-3438b930.js +0 -109
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-3438b930.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-31T09:28:25.744Z"), 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.2",
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,109 +0,0 @@
1
- import { jsx as j } from "react/jsx-runtime";
2
- import { useRef as d, useState as k, useLayoutEffect as q, useCallback as f, useEffect as N } from "react";
3
- import { THUMBNAIL_MIN_WIDTH as s } from "./utils/constants.js";
4
- import { useLayoutContainer as z } from "./contexts/LayoutContainerContext.js";
5
- const F = {
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
- }, A = {
12
- "rp-thumbnail-dragger": "_rp-thumbnail-dragger_1faw8_2",
13
- "rp-thumbnail-dragger-dragging": "_rp-thumbnail-dragger-dragging_1faw8_13"
14
- }, T = {
15
- "rp-thumbnail-dragger": "_rp-thumbnail-dragger_174bn_1",
16
- "rp-thumbnail-dragger-dragging": "_rp-thumbnail-dragger-dragging_174bn_15"
17
- }, U = 20, y = (w) => {
18
- w.preventDefault(), w.stopPropagation();
19
- }, J = (w) => {
20
- const { onWidthChange: e, thumbnailRef: _, leftSidebarRef: S, isRPLayout: H } = w, n = d(null), B = d(0), L = d(null), v = d(!1), C = d(s), I = d(s), E = d(s), [l, O] = k(s), { container: o, pagesRef: c } = z();
21
- q(() => {
22
- C.current = l;
23
- }, [l]);
24
- const x = f(() => {
25
- var m, h, b;
26
- if (!o)
27
- return null;
28
- const r = (m = n.current) == null ? void 0 : m.closest(".rp-content"), t = (r == null ? void 0 : r.clientWidth) ?? o.clientWidth, a = ((h = S.current) == null ? void 0 : h.getBoundingClientRect().width) ?? 0, D = ((b = n.current) == null ? void 0 : b.offsetWidth) ?? 0, M = (c == null ? void 0 : c.clientWidth) ?? Number.POSITIVE_INFINITY, R = Math.floor(t * 0.5 - a), W = Math.floor(t * U / 100 - a - D);
29
- let i = Math.min(R, M);
30
- Number.isFinite(i) || (i = 0), i = Math.max(0, Math.floor(i));
31
- let u = Math.max(s, W);
32
- return u = Math.min(u, i), E.current = u, { maxAllowed: i, minAllowed: u };
33
- }, [o, c, S]), p = f(() => {
34
- if (!o || v.current)
35
- return;
36
- const r = x();
37
- r && O(r.maxAllowed);
38
- }, [o, x]), X = f(
39
- (r) => {
40
- var M, R, W, i, u, m, h, b;
41
- y(r);
42
- const t = x();
43
- t ? (E.current = t.minAllowed, I.current = t.maxAllowed) : I.current = C.current, v.current = !0;
44
- try {
45
- r.currentTarget.setPointerCapture(r.pointerId);
46
- } catch {
47
- }
48
- const a = ((R = (M = n.current) == null ? void 0 : M.getBoundingClientRect()) == null ? void 0 : R.left) ?? 0, D = ((i = (W = _.current) == null ? void 0 : W.getBoundingClientRect()) == null ? void 0 : i.width) ?? 0;
49
- L.current = { x: a, y: 0 }, B.current = D, (u = n.current) == null || u.classList.add(A["rp-thumbnail-dragger-dragging"]), (m = n.current) == null || m.classList.add(T["rp-thumbnail-dragger-dragging"]), (b = (h = n.current) == null ? void 0 : h.closest('[data-rp="thumbnailSidebar"]')) == null || b.classList.add(
50
- F["rp-thumbnails-wrapper"],
51
- F["rp-thumbnails-wrapper-dragging"]
52
- );
53
- },
54
- [_, x]
55
- ), g = f(
56
- (r) => {
57
- var t, a;
58
- y(r);
59
- try {
60
- n.current && r.pointerId != null && n.current.releasePointerCapture(r.pointerId);
61
- } catch {
62
- }
63
- L.current = null, v.current = !1, requestAnimationFrame(() => {
64
- p();
65
- }), (t = n.current) == null || t.classList.remove(A["rp-thumbnail-dragger-dragging"]), (a = n.current) == null || a.classList.remove(T["rp-thumbnail-dragger-dragging"]);
66
- },
67
- [p]
68
- ), P = f(
69
- (r) => {
70
- if (!L.current)
71
- return;
72
- const t = r.clientX - L.current.x, a = Math.max(
73
- E.current,
74
- Math.min(B.current + t, I.current)
75
- );
76
- e == null || e(a), y(r);
77
- },
78
- [e]
79
- );
80
- return N(() => {
81
- if (!o)
82
- return;
83
- const r = new ResizeObserver(() => {
84
- p();
85
- });
86
- return r.observe(o), c && r.observe(c), p(), () => {
87
- r.disconnect();
88
- };
89
- }, [o, c, p]), N(() => {
90
- var t;
91
- if (v.current)
92
- return;
93
- const r = ((t = _.current) == null ? void 0 : t.clientWidth) ?? s;
94
- r > l ? e == null || e(l) : l >= s && r < s && (e == null || e(s));
95
- }, [l, e, _]), N(() => (window.addEventListener("pointermove", P), window.addEventListener("pointerup", g), window.addEventListener("pointercancel", g), () => {
96
- window.removeEventListener("pointermove", P), window.removeEventListener("pointerup", g), window.removeEventListener("pointercancel", g);
97
- }), [P, g]), /* @__PURE__ */ j(
98
- "div",
99
- {
100
- ref: n,
101
- className: H ? T["rp-thumbnail-dragger"] : A["rp-thumbnail-dragger"],
102
- onPointerDown: X
103
- }
104
- );
105
- };
106
- export {
107
- J as R,
108
- F as c
109
- };