@prose-reader/core 1.241.0 → 1.243.0

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.
@@ -3,3 +3,5 @@ export declare const VIEWPORT_ADJUSTMENT_THROTTLE = 0;
3
3
  export declare const PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE = 200;
4
4
  export declare const ITEM_EXTENSION_VALID_FOR_FRAME_SRC: string[];
5
5
  export declare const HTML_PREFIX = "prose-reader";
6
+ export declare const HTML_ATTRIBUTE_DATA_READER_ID = "data-prose-reader-id";
7
+ export declare const HTML_ATTRIBUTE_VIEWPORT_CLASSNAME = "prose-reader-viewport";
@@ -22,6 +22,7 @@ export declare const createReaderWithEnhancers: (options: Partial< CoreInputSett
22
22
  };
23
23
  }) => HTMLElement;
24
24
  }) => Omit<Omit<Omit<Omit<{
25
+ id: `${string}-${string}-${string}-${string}-${string}`;
25
26
  context: Context;
26
27
  spine: Spine;
27
28
  hookManager: HookManager<CoreHook>;
@@ -75,6 +76,7 @@ export declare const createReaderWithEnhancers: (options: Partial< CoreInputSett
75
76
  getNavigationForPosition: (viewportPosition: SpinePosition | UnboundSpinePosition) => SpinePosition;
76
77
  getMostPredominantNavigationForPosition: (viewportPosition: SpinePosition) => SpinePosition;
77
78
  fromUnboundSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
79
+ fromOutOfBoundsSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition | UnboundSpinePosition;
78
80
  isNavigationGoingForwardFrom: (to: SpinePosition, from: SpinePosition) => boolean;
79
81
  arePositionsDifferent: (a: {
80
82
  x: number;
@@ -3,6 +3,5 @@ export type EnhancerLayoutInputSettings = {
3
3
  pageVerticalMargin: number;
4
4
  layoutAutoResize: `container` | false;
5
5
  layoutLayerTransition: boolean;
6
- viewportMode: `normal` | `thumbnails`;
7
6
  };
8
7
  export type OutputSettings = EnhancerLayoutInputSettings;
@@ -0,0 +1,19 @@
1
+ import { Reader } from '../../reader';
2
+ import { ZoomController } from './ZoomController';
3
+ export declare class ControlledZoomController extends ZoomController {
4
+ constructor(reader: Reader);
5
+ enter({ element, scale, animate, }?: {
6
+ element?: HTMLImageElement;
7
+ scale?: number;
8
+ animate?: boolean;
9
+ }): void;
10
+ exit(): void;
11
+ moveAt(position: {
12
+ x: number;
13
+ y: number;
14
+ }): void;
15
+ protected setElementScale(element: HTMLDivElement, scale: number): void;
16
+ protected setViewportScale(scale: number): void;
17
+ protected setScale(userScale: number): void;
18
+ scaleAt(userScale: number): void;
19
+ }
@@ -1,15 +1,14 @@
1
- import { BehaviorSubject } from 'rxjs';
2
1
  import { ZoomController } from './ZoomController';
3
- export declare class ScrollableZoomer extends ZoomController {
4
- element: HTMLDivElement | undefined;
5
- isZooming$: BehaviorSubject<boolean>;
6
- currentScale: number;
7
- currentPosition: {
8
- x: number;
9
- y: number;
10
- };
11
- enter(): void;
2
+ export declare const adjustScrollToKeepContentCentered: (scrollContainer: HTMLElement, fromScale: number, toScale: number, marginX: number, marginY: number) => {
3
+ newScrollLeft: number;
4
+ newScrollTop: number;
5
+ };
6
+ export declare class ScrollableZoomController extends ZoomController {
7
+ enter({ scale }?: {
8
+ scale?: number;
9
+ }): void;
12
10
  exit(): void;
13
11
  moveAt(): void;
12
+ protected setScale(scale: number): void;
14
13
  scaleAt(userScale: number): void;
15
14
  }
@@ -1,20 +1,26 @@
1
- import { BehaviorSubject } from 'rxjs';
2
1
  import { Reader } from '../../reader';
3
- export declare abstract class ZoomController {
2
+ import { ReactiveEntity } from '../../utils/ReactiveEntity';
3
+ export type ZoomControllerState = {
4
+ element: HTMLDivElement | undefined;
5
+ isZooming: boolean;
6
+ currentScale: number;
7
+ currentPosition: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ };
12
+ export declare abstract class ZoomController extends ReactiveEntity<ZoomControllerState> {
4
13
  protected reader: Reader;
5
14
  constructor(reader: Reader);
6
- abstract enter(element?: HTMLImageElement): void;
15
+ abstract enter(params?: {
16
+ element?: HTMLImageElement;
17
+ scale?: number;
18
+ animate?: boolean;
19
+ }): void;
7
20
  abstract exit(): void;
8
21
  abstract moveAt(position: {
9
22
  x: number;
10
23
  y: number;
11
24
  }): void;
12
25
  abstract scaleAt(scale: number): void;
13
- abstract element: HTMLDivElement | undefined;
14
- abstract isZooming$: BehaviorSubject<boolean>;
15
- abstract currentScale: number;
16
- abstract currentPosition: {
17
- x: number;
18
- y: number;
19
- };
20
26
  }
@@ -1,20 +1,19 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { ZoomControllerState } from './ZoomController';
2
3
  export type ZoomEnhancerOutput = {
3
4
  zoom: {
4
- enter: (imgElement?: HTMLImageElement) => void;
5
+ enter: (params?: {
6
+ element?: HTMLImageElement;
7
+ scale?: number;
8
+ animate?: boolean;
9
+ }) => void;
5
10
  exit: () => void;
6
11
  moveAt: (position: {
7
12
  x: number;
8
13
  y: number;
9
14
  }) => void;
10
15
  scaleAt: (scale: number) => void;
11
- currentScale: number;
12
- currentPosition: {
13
- x: number;
14
- y: number;
15
- };
16
- zoomContainerElement: HTMLDivElement | undefined;
17
- isZooming$: Observable<boolean>;
18
- isZooming: boolean;
16
+ state$: Observable<ZoomControllerState>;
17
+ get state(): ZoomControllerState;
19
18
  };
20
19
  };
package/dist/index.d.ts CHANGED
@@ -9,6 +9,7 @@ export type CreateReaderOptions = Parameters<typeof createReader>[0];
9
9
  export { createReader };
10
10
  export type Reader = ReturnType<typeof createReader>;
11
11
  export * from './cfi';
12
+ export * from './constants';
12
13
  export * from './context/Context';
13
14
  export type { EnhancerFontsInputSettings } from './enhancers/fonts';
14
15
  export * from './enhancers/html/enhancer';
@@ -39,7 +40,7 @@ export * from './spineItem/types';
39
40
  export * from './utils/DestroyableClass';
40
41
  export { isHtmlElement, isHtmlTagElement } from './utils/dom';
41
42
  export * from './utils/frames';
42
- export { isShallowEqual } from './utils/objects';
43
+ export * from './utils/objects';
44
+ export * from './utils/ReactiveEntity';
43
45
  export * from './utils/rxjs';
44
- export { waitForSwitch } from './utils/rxjs';
45
46
  export * from './viewport/Viewport';