@embedpdf/plugin-scroll 1.0.0 → 1.0.2

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.
@@ -22,28 +22,47 @@ var preact_exports = {};
22
22
  __export(preact_exports, {
23
23
  Scroller: () => Scroller,
24
24
  useScroll: () => useScroll,
25
- useScrollCapability: () => useScrollCapability
25
+ useScrollCapability: () => useScrollCapability,
26
+ useScrollPlugin: () => useScrollPlugin
26
27
  });
27
28
  module.exports = __toCommonJS(preact_exports);
28
29
 
29
30
  // src/preact/hooks/use-scroll.ts
30
31
  var import_preact = require("@embedpdf/core/preact");
31
32
  var import_plugin_scroll = require("@embedpdf/plugin-scroll");
32
- var useScroll = () => (0, import_preact.usePlugin)(import_plugin_scroll.ScrollPlugin.id);
33
+ var import_hooks = require("preact/hooks");
34
+ var useScrollPlugin = () => (0, import_preact.usePlugin)(import_plugin_scroll.ScrollPlugin.id);
33
35
  var useScrollCapability = () => (0, import_preact.useCapability)(import_plugin_scroll.ScrollPlugin.id);
36
+ var useScroll = () => {
37
+ const { provides: scroll } = useScrollCapability();
38
+ const [currentPage, setCurrentPage] = (0, import_hooks.useState)(1);
39
+ const [totalPages, setTotalPages] = (0, import_hooks.useState)(1);
40
+ (0, import_hooks.useEffect)(() => {
41
+ if (!scroll) return;
42
+ return scroll.onPageChange(({ pageNumber, totalPages: totalPages2 }) => {
43
+ setCurrentPage(pageNumber);
44
+ setTotalPages(totalPages2);
45
+ });
46
+ }, [scroll]);
47
+ return {
48
+ ...scroll,
49
+ currentPage,
50
+ totalPages
51
+ };
52
+ };
34
53
 
35
54
  // src/preact/components/scroller.tsx
36
- var import_hooks = require("preact/hooks");
55
+ var import_hooks2 = require("preact/hooks");
37
56
  var import_plugin_scroll2 = require("@embedpdf/plugin-scroll");
38
57
  var import_preact2 = require("@embedpdf/core/preact");
39
58
  var import_jsx_runtime = require("preact/jsx-runtime");
40
59
  function Scroller({ renderPage, overlayElements, ...props }) {
41
60
  const { provides: scrollProvides } = useScrollCapability();
42
61
  const { registry } = (0, import_preact2.useRegistry)();
43
- const [scrollerLayout, setScrollerLayout] = (0, import_hooks.useState)(
62
+ const [scrollerLayout, setScrollerLayout] = (0, import_hooks2.useState)(
44
63
  () => scrollProvides?.getScrollerLayout() ?? null
45
64
  );
46
- (0, import_hooks.useEffect)(() => {
65
+ (0, import_hooks2.useEffect)(() => {
47
66
  if (!scrollProvides) return;
48
67
  return scrollProvides.onScrollerData(setScrollerLayout);
49
68
  }, [scrollProvides]);
@@ -151,6 +170,7 @@ function Scroller({ renderPage, overlayElements, ...props }) {
151
170
  0 && (module.exports = {
152
171
  Scroller,
153
172
  useScroll,
154
- useScrollCapability
173
+ useScrollCapability,
174
+ useScrollPlugin
155
175
  });
156
176
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/preact/index.ts","../../src/preact/hooks/use-scroll.ts","../../src/preact/components/scroller.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\n\nexport const useScroll = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n","/** @jsxImportSource preact */\nimport { JSX } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/preact';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => JSX.Element;\n overlayElements?: JSX.Element[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":["import_plugin_scroll","import_preact"]}
1
+ {"version":3,"sources":["../../src/preact/index.ts","../../src/preact/hooks/use-scroll.ts","../../src/preact/components/scroller.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\nimport { useEffect, useState } from 'preact/hooks';\n\nexport const useScrollPlugin = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n\nexport const useScroll = () => {\n const { provides: scroll } = useScrollCapability();\n const [currentPage, setCurrentPage] = useState(1);\n const [totalPages, setTotalPages] = useState(1);\n\n useEffect(() => {\n if (!scroll) return;\n return scroll.onPageChange(({ pageNumber, totalPages }) => {\n setCurrentPage(pageNumber);\n setTotalPages(totalPages);\n });\n }, [scroll]);\n\n return {\n ...scroll,\n currentPage,\n totalPages,\n };\n};\n","/** @jsxImportSource preact */\nimport { JSX } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/preact';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => JSX.Element;\n overlayElements?: JSX.Element[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":["totalPages","import_hooks","import_plugin_scroll","import_preact"]}
@@ -1,9 +1,12 @@
1
+ import * as _embedpdf_models from '@embedpdf/models';
2
+ import { Rotation, PdfDocumentObject } from '@embedpdf/models';
3
+ import * as _embedpdf_plugin_viewport from '@embedpdf/plugin-viewport';
4
+ import * as _embedpdf_core from '@embedpdf/core';
1
5
  import * as _embedpdf_plugin_scroll from '@embedpdf/plugin-scroll';
2
6
  import { ScrollPlugin, PageLayout } from '@embedpdf/plugin-scroll';
3
7
  import { JSX } from 'preact';
4
- import { Rotation, PdfDocumentObject } from '@embedpdf/models';
5
8
 
6
- declare const useScroll: () => {
9
+ declare const useScrollPlugin: () => {
7
10
  plugin: ScrollPlugin | null;
8
11
  isLoading: boolean;
9
12
  ready: Promise<void>;
@@ -13,6 +16,26 @@ declare const useScrollCapability: () => {
13
16
  isLoading: boolean;
14
17
  ready: Promise<void>;
15
18
  };
19
+ declare const useScroll: () => {
20
+ currentPage: number;
21
+ totalPages: number;
22
+ onScrollerData?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollerLayout> | undefined;
23
+ onStateChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollState> | undefined;
24
+ onScroll?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollMetrics> | undefined;
25
+ getCurrentPage?: (() => number) | undefined;
26
+ getTotalPages?: (() => number) | undefined;
27
+ onPageChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.PageChangePayload> | undefined;
28
+ onLayoutChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.LayoutChangePayload> | undefined;
29
+ scrollToPage?: ((options: _embedpdf_plugin_scroll.ScrollToPageOptions) => void) | undefined;
30
+ scrollToNextPage?: ((behavior?: ScrollBehavior) => void) | undefined;
31
+ scrollToPreviousPage?: ((behavior?: ScrollBehavior) => void) | undefined;
32
+ getMetrics?: ((viewport?: _embedpdf_plugin_viewport.ViewportMetrics) => _embedpdf_plugin_scroll.ScrollMetrics) | undefined;
33
+ getLayout?: (() => _embedpdf_plugin_scroll.LayoutChangePayload) | undefined;
34
+ getScrollerLayout?: (() => _embedpdf_plugin_scroll.ScrollerLayout) | undefined;
35
+ getRectPositionForPage?: ((page: number, rect: _embedpdf_models.Rect, scale?: number, rotation?: _embedpdf_models.Rotation) => _embedpdf_models.Rect | null) | undefined;
36
+ setScrollStrategy?: ((strategy: _embedpdf_plugin_scroll.ScrollStrategy) => void) | undefined;
37
+ getPageGap?: (() => number) | undefined;
38
+ };
16
39
 
17
40
  /** @jsxImportSource preact */
18
41
 
@@ -27,4 +50,4 @@ type ScrollerProps = JSX.HTMLAttributes<HTMLDivElement> & {
27
50
  };
28
51
  declare function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps): JSX.Element | null;
29
52
 
30
- export { Scroller, useScroll, useScrollCapability };
53
+ export { Scroller, useScroll, useScrollCapability, useScrollPlugin };
@@ -1,9 +1,12 @@
1
+ import * as _embedpdf_models from '@embedpdf/models';
2
+ import { Rotation, PdfDocumentObject } from '@embedpdf/models';
3
+ import * as _embedpdf_plugin_viewport from '@embedpdf/plugin-viewport';
4
+ import * as _embedpdf_core from '@embedpdf/core';
1
5
  import * as _embedpdf_plugin_scroll from '@embedpdf/plugin-scroll';
2
6
  import { ScrollPlugin, PageLayout } from '@embedpdf/plugin-scroll';
3
7
  import { JSX } from 'preact';
4
- import { Rotation, PdfDocumentObject } from '@embedpdf/models';
5
8
 
6
- declare const useScroll: () => {
9
+ declare const useScrollPlugin: () => {
7
10
  plugin: ScrollPlugin | null;
8
11
  isLoading: boolean;
9
12
  ready: Promise<void>;
@@ -13,6 +16,26 @@ declare const useScrollCapability: () => {
13
16
  isLoading: boolean;
14
17
  ready: Promise<void>;
15
18
  };
19
+ declare const useScroll: () => {
20
+ currentPage: number;
21
+ totalPages: number;
22
+ onScrollerData?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollerLayout> | undefined;
23
+ onStateChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollState> | undefined;
24
+ onScroll?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollMetrics> | undefined;
25
+ getCurrentPage?: (() => number) | undefined;
26
+ getTotalPages?: (() => number) | undefined;
27
+ onPageChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.PageChangePayload> | undefined;
28
+ onLayoutChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.LayoutChangePayload> | undefined;
29
+ scrollToPage?: ((options: _embedpdf_plugin_scroll.ScrollToPageOptions) => void) | undefined;
30
+ scrollToNextPage?: ((behavior?: ScrollBehavior) => void) | undefined;
31
+ scrollToPreviousPage?: ((behavior?: ScrollBehavior) => void) | undefined;
32
+ getMetrics?: ((viewport?: _embedpdf_plugin_viewport.ViewportMetrics) => _embedpdf_plugin_scroll.ScrollMetrics) | undefined;
33
+ getLayout?: (() => _embedpdf_plugin_scroll.LayoutChangePayload) | undefined;
34
+ getScrollerLayout?: (() => _embedpdf_plugin_scroll.ScrollerLayout) | undefined;
35
+ getRectPositionForPage?: ((page: number, rect: _embedpdf_models.Rect, scale?: number, rotation?: _embedpdf_models.Rotation) => _embedpdf_models.Rect | null) | undefined;
36
+ setScrollStrategy?: ((strategy: _embedpdf_plugin_scroll.ScrollStrategy) => void) | undefined;
37
+ getPageGap?: (() => number) | undefined;
38
+ };
16
39
 
17
40
  /** @jsxImportSource preact */
18
41
 
@@ -27,4 +50,4 @@ type ScrollerProps = JSX.HTMLAttributes<HTMLDivElement> & {
27
50
  };
28
51
  declare function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps): JSX.Element | null;
29
52
 
30
- export { Scroller, useScroll, useScrollCapability };
53
+ export { Scroller, useScroll, useScrollCapability, useScrollPlugin };
@@ -1,21 +1,39 @@
1
1
  // src/preact/hooks/use-scroll.ts
2
2
  import { useCapability, usePlugin } from "@embedpdf/core/preact";
3
3
  import { ScrollPlugin } from "@embedpdf/plugin-scroll";
4
- var useScroll = () => usePlugin(ScrollPlugin.id);
4
+ import { useEffect, useState } from "preact/hooks";
5
+ var useScrollPlugin = () => usePlugin(ScrollPlugin.id);
5
6
  var useScrollCapability = () => useCapability(ScrollPlugin.id);
7
+ var useScroll = () => {
8
+ const { provides: scroll } = useScrollCapability();
9
+ const [currentPage, setCurrentPage] = useState(1);
10
+ const [totalPages, setTotalPages] = useState(1);
11
+ useEffect(() => {
12
+ if (!scroll) return;
13
+ return scroll.onPageChange(({ pageNumber, totalPages: totalPages2 }) => {
14
+ setCurrentPage(pageNumber);
15
+ setTotalPages(totalPages2);
16
+ });
17
+ }, [scroll]);
18
+ return {
19
+ ...scroll,
20
+ currentPage,
21
+ totalPages
22
+ };
23
+ };
6
24
 
7
25
  // src/preact/components/scroller.tsx
8
- import { useEffect, useState } from "preact/hooks";
26
+ import { useEffect as useEffect2, useState as useState2 } from "preact/hooks";
9
27
  import { ScrollStrategy } from "@embedpdf/plugin-scroll";
10
28
  import { useRegistry } from "@embedpdf/core/preact";
11
29
  import { jsx, jsxs } from "preact/jsx-runtime";
12
30
  function Scroller({ renderPage, overlayElements, ...props }) {
13
31
  const { provides: scrollProvides } = useScrollCapability();
14
32
  const { registry } = useRegistry();
15
- const [scrollerLayout, setScrollerLayout] = useState(
33
+ const [scrollerLayout, setScrollerLayout] = useState2(
16
34
  () => scrollProvides?.getScrollerLayout() ?? null
17
35
  );
18
- useEffect(() => {
36
+ useEffect2(() => {
19
37
  if (!scrollProvides) return;
20
38
  return scrollProvides.onScrollerData(setScrollerLayout);
21
39
  }, [scrollProvides]);
@@ -122,6 +140,7 @@ function Scroller({ renderPage, overlayElements, ...props }) {
122
140
  export {
123
141
  Scroller,
124
142
  useScroll,
125
- useScrollCapability
143
+ useScrollCapability,
144
+ useScrollPlugin
126
145
  };
127
146
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/preact/hooks/use-scroll.ts","../../src/preact/components/scroller.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\n\nexport const useScroll = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n","/** @jsxImportSource preact */\nimport { JSX } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/preact';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => JSX.Element;\n overlayElements?: JSX.Element[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/preact/hooks/use-scroll.ts","../../src/preact/components/scroller.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/preact';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\nimport { useEffect, useState } from 'preact/hooks';\n\nexport const useScrollPlugin = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n\nexport const useScroll = () => {\n const { provides: scroll } = useScrollCapability();\n const [currentPage, setCurrentPage] = useState(1);\n const [totalPages, setTotalPages] = useState(1);\n\n useEffect(() => {\n if (!scroll) return;\n return scroll.onPageChange(({ pageNumber, totalPages }) => {\n setCurrentPage(pageNumber);\n setTotalPages(totalPages);\n });\n }, [scroll]);\n\n return {\n ...scroll,\n currentPage,\n totalPages,\n };\n};\n","/** @jsxImportSource preact */\nimport { JSX } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/preact';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = JSX.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => JSX.Element;\n overlayElements?: JSX.Element[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":["totalPages","useEffect","useState","useState","useEffect"]}
@@ -22,28 +22,47 @@ var react_exports = {};
22
22
  __export(react_exports, {
23
23
  Scroller: () => Scroller,
24
24
  useScroll: () => useScroll,
25
- useScrollCapability: () => useScrollCapability
25
+ useScrollCapability: () => useScrollCapability,
26
+ useScrollPlugin: () => useScrollPlugin
26
27
  });
27
28
  module.exports = __toCommonJS(react_exports);
28
29
 
29
30
  // src/react/hooks/use-scroll.ts
30
31
  var import_react = require("@embedpdf/core/react");
31
32
  var import_plugin_scroll = require("@embedpdf/plugin-scroll");
32
- var useScroll = () => (0, import_react.usePlugin)(import_plugin_scroll.ScrollPlugin.id);
33
+ var import_react2 = require("react");
34
+ var useScrollPlugin = () => (0, import_react.usePlugin)(import_plugin_scroll.ScrollPlugin.id);
33
35
  var useScrollCapability = () => (0, import_react.useCapability)(import_plugin_scroll.ScrollPlugin.id);
36
+ var useScroll = () => {
37
+ const { provides: scroll } = useScrollCapability();
38
+ const [currentPage, setCurrentPage] = (0, import_react2.useState)(1);
39
+ const [totalPages, setTotalPages] = (0, import_react2.useState)(1);
40
+ (0, import_react2.useEffect)(() => {
41
+ if (!scroll) return;
42
+ return scroll.onPageChange(({ pageNumber, totalPages: totalPages2 }) => {
43
+ setCurrentPage(pageNumber);
44
+ setTotalPages(totalPages2);
45
+ });
46
+ }, [scroll]);
47
+ return {
48
+ ...scroll,
49
+ currentPage,
50
+ totalPages
51
+ };
52
+ };
34
53
 
35
54
  // src/react/components/scroller.tsx
36
- var import_react2 = require("react");
55
+ var import_react3 = require("react");
37
56
  var import_plugin_scroll2 = require("@embedpdf/plugin-scroll");
38
- var import_react3 = require("@embedpdf/core/react");
57
+ var import_react4 = require("@embedpdf/core/react");
39
58
  var import_jsx_runtime = require("react/jsx-runtime");
40
59
  function Scroller({ renderPage, overlayElements, ...props }) {
41
60
  const { provides: scrollProvides } = useScrollCapability();
42
- const { registry } = (0, import_react3.useRegistry)();
43
- const [scrollerLayout, setScrollerLayout] = (0, import_react2.useState)(
61
+ const { registry } = (0, import_react4.useRegistry)();
62
+ const [scrollerLayout, setScrollerLayout] = (0, import_react3.useState)(
44
63
  () => scrollProvides?.getScrollerLayout() ?? null
45
64
  );
46
- (0, import_react2.useEffect)(() => {
65
+ (0, import_react3.useEffect)(() => {
47
66
  if (!scrollProvides) return;
48
67
  return scrollProvides.onScrollerData(setScrollerLayout);
49
68
  }, [scrollProvides]);
@@ -151,6 +170,7 @@ function Scroller({ renderPage, overlayElements, ...props }) {
151
170
  0 && (module.exports = {
152
171
  Scroller,
153
172
  useScroll,
154
- useScrollCapability
173
+ useScrollCapability,
174
+ useScrollPlugin
155
175
  });
156
176
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/index.ts","../../src/react/hooks/use-scroll.ts","../../src/react/components/scroller.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\n\nexport const useScroll = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n","import React, { ReactNode, useEffect, useState } from 'react';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/react';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = React.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => ReactNode;\n overlayElements?: ReactNode[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":["import_react","import_plugin_scroll"]}
1
+ {"version":3,"sources":["../../src/react/index.ts","../../src/react/hooks/use-scroll.ts","../../src/react/components/scroller.tsx"],"sourcesContent":["export * from './hooks';\nexport * from './components';\n","import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\nimport { useEffect, useState } from 'react';\n\nexport const useScrollPlugin = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n\nexport const useScroll = () => {\n const { provides: scroll } = useScrollCapability();\n const [currentPage, setCurrentPage] = useState(1);\n const [totalPages, setTotalPages] = useState(1);\n\n useEffect(() => {\n if (!scroll) return;\n return scroll.onPageChange(({ pageNumber, totalPages }) => {\n setCurrentPage(pageNumber);\n setTotalPages(totalPages);\n });\n }, [scroll]);\n\n return {\n ...scroll,\n currentPage,\n totalPages,\n };\n};\n","import React, { ReactNode, useEffect, useState } from 'react';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/react';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = React.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => ReactNode;\n overlayElements?: ReactNode[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":["import_react","totalPages","import_react","import_plugin_scroll"]}
@@ -1,10 +1,13 @@
1
+ import * as _embedpdf_models from '@embedpdf/models';
2
+ import { Rotation, PdfDocumentObject } from '@embedpdf/models';
3
+ import * as _embedpdf_plugin_viewport from '@embedpdf/plugin-viewport';
4
+ import * as _embedpdf_core from '@embedpdf/core';
1
5
  import * as _embedpdf_plugin_scroll from '@embedpdf/plugin-scroll';
2
6
  import { ScrollPlugin, PageLayout } from '@embedpdf/plugin-scroll';
3
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
8
  import React, { ReactNode } from 'react';
5
- import { Rotation, PdfDocumentObject } from '@embedpdf/models';
6
9
 
7
- declare const useScroll: () => {
10
+ declare const useScrollPlugin: () => {
8
11
  plugin: ScrollPlugin | null;
9
12
  isLoading: boolean;
10
13
  ready: Promise<void>;
@@ -14,6 +17,26 @@ declare const useScrollCapability: () => {
14
17
  isLoading: boolean;
15
18
  ready: Promise<void>;
16
19
  };
20
+ declare const useScroll: () => {
21
+ currentPage: number;
22
+ totalPages: number;
23
+ onScrollerData?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollerLayout> | undefined;
24
+ onStateChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollState> | undefined;
25
+ onScroll?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollMetrics> | undefined;
26
+ getCurrentPage?: (() => number) | undefined;
27
+ getTotalPages?: (() => number) | undefined;
28
+ onPageChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.PageChangePayload> | undefined;
29
+ onLayoutChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.LayoutChangePayload> | undefined;
30
+ scrollToPage?: ((options: _embedpdf_plugin_scroll.ScrollToPageOptions) => void) | undefined;
31
+ scrollToNextPage?: ((behavior?: ScrollBehavior) => void) | undefined;
32
+ scrollToPreviousPage?: ((behavior?: ScrollBehavior) => void) | undefined;
33
+ getMetrics?: ((viewport?: _embedpdf_plugin_viewport.ViewportMetrics) => _embedpdf_plugin_scroll.ScrollMetrics) | undefined;
34
+ getLayout?: (() => _embedpdf_plugin_scroll.LayoutChangePayload) | undefined;
35
+ getScrollerLayout?: (() => _embedpdf_plugin_scroll.ScrollerLayout) | undefined;
36
+ getRectPositionForPage?: ((page: number, rect: _embedpdf_models.Rect, scale?: number, rotation?: _embedpdf_models.Rotation) => _embedpdf_models.Rect | null) | undefined;
37
+ setScrollStrategy?: ((strategy: _embedpdf_plugin_scroll.ScrollStrategy) => void) | undefined;
38
+ getPageGap?: (() => number) | undefined;
39
+ };
17
40
 
18
41
  interface RenderPageProps extends PageLayout {
19
42
  rotation: Rotation;
@@ -26,4 +49,4 @@ type ScrollerProps = React.HTMLAttributes<HTMLDivElement> & {
26
49
  };
27
50
  declare function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps): react_jsx_runtime.JSX.Element | null;
28
51
 
29
- export { Scroller, useScroll, useScrollCapability };
52
+ export { Scroller, useScroll, useScrollCapability, useScrollPlugin };
@@ -1,10 +1,13 @@
1
+ import * as _embedpdf_models from '@embedpdf/models';
2
+ import { Rotation, PdfDocumentObject } from '@embedpdf/models';
3
+ import * as _embedpdf_plugin_viewport from '@embedpdf/plugin-viewport';
4
+ import * as _embedpdf_core from '@embedpdf/core';
1
5
  import * as _embedpdf_plugin_scroll from '@embedpdf/plugin-scroll';
2
6
  import { ScrollPlugin, PageLayout } from '@embedpdf/plugin-scroll';
3
7
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
8
  import React, { ReactNode } from 'react';
5
- import { Rotation, PdfDocumentObject } from '@embedpdf/models';
6
9
 
7
- declare const useScroll: () => {
10
+ declare const useScrollPlugin: () => {
8
11
  plugin: ScrollPlugin | null;
9
12
  isLoading: boolean;
10
13
  ready: Promise<void>;
@@ -14,6 +17,26 @@ declare const useScrollCapability: () => {
14
17
  isLoading: boolean;
15
18
  ready: Promise<void>;
16
19
  };
20
+ declare const useScroll: () => {
21
+ currentPage: number;
22
+ totalPages: number;
23
+ onScrollerData?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollerLayout> | undefined;
24
+ onStateChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollState> | undefined;
25
+ onScroll?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.ScrollMetrics> | undefined;
26
+ getCurrentPage?: (() => number) | undefined;
27
+ getTotalPages?: (() => number) | undefined;
28
+ onPageChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.PageChangePayload> | undefined;
29
+ onLayoutChange?: _embedpdf_core.EventHook<_embedpdf_plugin_scroll.LayoutChangePayload> | undefined;
30
+ scrollToPage?: ((options: _embedpdf_plugin_scroll.ScrollToPageOptions) => void) | undefined;
31
+ scrollToNextPage?: ((behavior?: ScrollBehavior) => void) | undefined;
32
+ scrollToPreviousPage?: ((behavior?: ScrollBehavior) => void) | undefined;
33
+ getMetrics?: ((viewport?: _embedpdf_plugin_viewport.ViewportMetrics) => _embedpdf_plugin_scroll.ScrollMetrics) | undefined;
34
+ getLayout?: (() => _embedpdf_plugin_scroll.LayoutChangePayload) | undefined;
35
+ getScrollerLayout?: (() => _embedpdf_plugin_scroll.ScrollerLayout) | undefined;
36
+ getRectPositionForPage?: ((page: number, rect: _embedpdf_models.Rect, scale?: number, rotation?: _embedpdf_models.Rotation) => _embedpdf_models.Rect | null) | undefined;
37
+ setScrollStrategy?: ((strategy: _embedpdf_plugin_scroll.ScrollStrategy) => void) | undefined;
38
+ getPageGap?: (() => number) | undefined;
39
+ };
17
40
 
18
41
  interface RenderPageProps extends PageLayout {
19
42
  rotation: Rotation;
@@ -26,4 +49,4 @@ type ScrollerProps = React.HTMLAttributes<HTMLDivElement> & {
26
49
  };
27
50
  declare function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps): react_jsx_runtime.JSX.Element | null;
28
51
 
29
- export { Scroller, useScroll, useScrollCapability };
52
+ export { Scroller, useScroll, useScrollCapability, useScrollPlugin };
@@ -1,21 +1,39 @@
1
1
  // src/react/hooks/use-scroll.ts
2
2
  import { useCapability, usePlugin } from "@embedpdf/core/react";
3
3
  import { ScrollPlugin } from "@embedpdf/plugin-scroll";
4
- var useScroll = () => usePlugin(ScrollPlugin.id);
4
+ import { useEffect, useState } from "react";
5
+ var useScrollPlugin = () => usePlugin(ScrollPlugin.id);
5
6
  var useScrollCapability = () => useCapability(ScrollPlugin.id);
7
+ var useScroll = () => {
8
+ const { provides: scroll } = useScrollCapability();
9
+ const [currentPage, setCurrentPage] = useState(1);
10
+ const [totalPages, setTotalPages] = useState(1);
11
+ useEffect(() => {
12
+ if (!scroll) return;
13
+ return scroll.onPageChange(({ pageNumber, totalPages: totalPages2 }) => {
14
+ setCurrentPage(pageNumber);
15
+ setTotalPages(totalPages2);
16
+ });
17
+ }, [scroll]);
18
+ return {
19
+ ...scroll,
20
+ currentPage,
21
+ totalPages
22
+ };
23
+ };
6
24
 
7
25
  // src/react/components/scroller.tsx
8
- import { useEffect, useState } from "react";
26
+ import { useEffect as useEffect2, useState as useState2 } from "react";
9
27
  import { ScrollStrategy } from "@embedpdf/plugin-scroll";
10
28
  import { useRegistry } from "@embedpdf/core/react";
11
29
  import { jsx, jsxs } from "react/jsx-runtime";
12
30
  function Scroller({ renderPage, overlayElements, ...props }) {
13
31
  const { provides: scrollProvides } = useScrollCapability();
14
32
  const { registry } = useRegistry();
15
- const [scrollerLayout, setScrollerLayout] = useState(
33
+ const [scrollerLayout, setScrollerLayout] = useState2(
16
34
  () => scrollProvides?.getScrollerLayout() ?? null
17
35
  );
18
- useEffect(() => {
36
+ useEffect2(() => {
19
37
  if (!scrollProvides) return;
20
38
  return scrollProvides.onScrollerData(setScrollerLayout);
21
39
  }, [scrollProvides]);
@@ -122,6 +140,7 @@ function Scroller({ renderPage, overlayElements, ...props }) {
122
140
  export {
123
141
  Scroller,
124
142
  useScroll,
125
- useScrollCapability
143
+ useScrollCapability,
144
+ useScrollPlugin
126
145
  };
127
146
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/react/hooks/use-scroll.ts","../../src/react/components/scroller.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\n\nexport const useScroll = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n","import React, { ReactNode, useEffect, useState } from 'react';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/react';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = React.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => ReactNode;\n overlayElements?: ReactNode[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../src/react/hooks/use-scroll.ts","../../src/react/components/scroller.tsx"],"sourcesContent":["import { useCapability, usePlugin } from '@embedpdf/core/react';\nimport { ScrollPlugin } from '@embedpdf/plugin-scroll';\nimport { useEffect, useState } from 'react';\n\nexport const useScrollPlugin = () => usePlugin<ScrollPlugin>(ScrollPlugin.id);\nexport const useScrollCapability = () => useCapability<ScrollPlugin>(ScrollPlugin.id);\n\nexport const useScroll = () => {\n const { provides: scroll } = useScrollCapability();\n const [currentPage, setCurrentPage] = useState(1);\n const [totalPages, setTotalPages] = useState(1);\n\n useEffect(() => {\n if (!scroll) return;\n return scroll.onPageChange(({ pageNumber, totalPages }) => {\n setCurrentPage(pageNumber);\n setTotalPages(totalPages);\n });\n }, [scroll]);\n\n return {\n ...scroll,\n currentPage,\n totalPages,\n };\n};\n","import React, { ReactNode, useEffect, useState } from 'react';\nimport { ScrollStrategy, ScrollerLayout, PageLayout } from '@embedpdf/plugin-scroll';\nimport { useRegistry } from '@embedpdf/core/react';\nimport { PdfDocumentObject, Rotation } from '@embedpdf/models';\n\nimport { useScrollCapability } from '../hooks';\n\ninterface RenderPageProps extends PageLayout {\n rotation: Rotation;\n scale: number;\n document: PdfDocumentObject | null;\n}\n\ntype ScrollerProps = React.HTMLAttributes<HTMLDivElement> & {\n renderPage: (props: RenderPageProps) => ReactNode;\n overlayElements?: ReactNode[];\n};\n\nexport function Scroller({ renderPage, overlayElements, ...props }: ScrollerProps) {\n const { provides: scrollProvides } = useScrollCapability();\n const { registry } = useRegistry();\n const [scrollerLayout, setScrollerLayout] = useState<ScrollerLayout | null>(\n () => scrollProvides?.getScrollerLayout() ?? null,\n );\n\n useEffect(() => {\n if (!scrollProvides) return;\n\n return scrollProvides.onScrollerData(setScrollerLayout);\n }, [scrollProvides]);\n\n if (!scrollerLayout) return null;\n if (!registry) return null;\n\n const coreState = registry.getStore().getState();\n\n return (\n <div\n {...props}\n style={{\n width: `${scrollerLayout.totalWidth}px`,\n height: `${scrollerLayout.totalHeight}px`,\n position: 'relative',\n boxSizing: 'border-box',\n margin: '0 auto',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal && {\n display: 'flex',\n flexDirection: 'row',\n }),\n }}\n >\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.startSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.startSpacing,\n width: '100%',\n }),\n }}\n />\n <div\n style={{\n gap: scrollerLayout.pageGap,\n display: 'flex',\n alignItems: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n flexDirection: 'row',\n minHeight: '100%',\n }\n : {\n flexDirection: 'column',\n minWidth: 'fit-content',\n }),\n }}\n >\n {scrollerLayout.items.map((item) => (\n <div\n key={item.pageNumbers[0]}\n style={{\n display: 'flex',\n justifyContent: 'center',\n gap: scrollerLayout.pageGap,\n }}\n >\n {item.pageLayouts.map((layout) => (\n <div\n key={layout.pageNumber}\n style={{\n width: `${layout.rotatedWidth}px`,\n height: `${layout.rotatedHeight}px`,\n }}\n >\n {renderPage({\n ...layout,\n rotation: coreState.core.rotation,\n scale: coreState.core.scale,\n document: coreState.core.document,\n })}\n </div>\n ))}\n </div>\n ))}\n </div>\n <div\n style={{\n ...(scrollerLayout.strategy === ScrollStrategy.Horizontal\n ? {\n width: scrollerLayout.endSpacing,\n height: '100%',\n flexShrink: 0,\n }\n : {\n height: scrollerLayout.endSpacing,\n width: '100%',\n }),\n }}\n />\n {overlayElements}\n </div>\n );\n}\n"],"mappings":"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","names":["totalPages","useEffect","useState","useState","useEffect"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@embedpdf/plugin-scroll",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "type": "module",
5
5
  "main": "./dist/index.cjs",
6
6
  "module": "./dist/index.js",
@@ -27,15 +27,15 @@
27
27
  "@types/react": "^18.2.0",
28
28
  "tsup": "^8.0.0",
29
29
  "typescript": "^5.0.0",
30
- "@embedpdf/models": "1.0.0",
31
- "@embedpdf/plugin-viewport": "1.0.0"
30
+ "@embedpdf/models": "1.0.2",
31
+ "@embedpdf/plugin-viewport": "1.0.2"
32
32
  },
33
33
  "peerDependencies": {
34
34
  "react": ">=16.8.0",
35
35
  "react-dom": ">=16.8.0",
36
36
  "preact": "^10.26.4",
37
- "@embedpdf/core": "1.0.0",
38
- "@embedpdf/plugin-viewport": "1.0.0"
37
+ "@embedpdf/core": "1.0.2",
38
+ "@embedpdf/plugin-viewport": "1.0.2"
39
39
  },
40
40
  "files": [
41
41
  "dist",