@prose-reader/core 1.241.0 → 1.242.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.
@@ -75,6 +75,7 @@ export declare const createReaderWithEnhancers: (options: Partial< CoreInputSett
75
75
  getNavigationForPosition: (viewportPosition: SpinePosition | UnboundSpinePosition) => SpinePosition;
76
76
  getMostPredominantNavigationForPosition: (viewportPosition: SpinePosition) => SpinePosition;
77
77
  fromUnboundSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
78
+ fromOutOfBoundsSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition | UnboundSpinePosition;
78
79
  isNavigationGoingForwardFrom: (to: SpinePosition, from: SpinePosition) => boolean;
79
80
  arePositionsDifferent: (a: {
80
81
  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) => {
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
  };