@prose-reader/core 1.261.0 → 1.264.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.
@@ -57,7 +57,7 @@ export declare const createReaderWithEnhancers: (options: Partial< CoreInputSett
57
57
  scrollNavigationController: ScrollNavigationController;
58
58
  controlledNavigationController: ControlledNavigationController;
59
59
  locker: Locker;
60
- viewportState$: Observable<"free" | "busy">;
60
+ navigationState$: Observable<"free" | "busy">;
61
61
  navigate: (to: UserNavigationEntry) => void;
62
62
  lock(): () => void;
63
63
  navigationResolver: {
@@ -145,6 +145,7 @@ export declare const createReaderWithEnhancers: (options: Partial< CoreInputSett
145
145
  }, "load"> & NavigationEnhancerOutput & ZoomEnhancerOutput & {
146
146
  utils: {
147
147
  isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
148
+ injectScopedCSS: (doc: Document, scope: string, styleTemplate: string) => () => void;
148
149
  };
149
150
  }, "settings"> & {
150
151
  settings: SettingsInterface< CoreInputSettings & EnhancerLayoutInputSettings & EnhancerFontsInputSettings, EnhancerFontsInputSettings & EnhancerLayoutInputSettings & CoreInputSettings & ComputedCoreSettings>;
@@ -1,20 +1,28 @@
1
1
  import { Reader } from '../../../reader';
2
- import { SpinePosition } from '../../../spine/types';
3
- export declare class PanNavigator {
4
- protected reader: Reader;
2
+ import { SpinePosition, UnboundSpinePosition } from '../../../spine/types';
3
+ import { ReactiveEntity } from '../../../utils/ReactiveEntity';
4
+ export declare class PanNavigator extends ReactiveEntity<{
5
5
  lastDelta: {
6
6
  x: number;
7
7
  y: number;
8
8
  };
9
- lastPosition: SpinePosition;
9
+ lastPosition: SpinePosition | UnboundSpinePosition;
10
10
  lastStartPosition: SpinePosition;
11
+ isStarted: boolean;
12
+ }> {
13
+ protected reader: Reader;
11
14
  unlock: ReturnType<Reader["navigation"]["lock"]> | undefined;
12
15
  constructor(reader: Reader);
13
- moveTo(delta: {
16
+ start(delta: {
14
17
  x: number;
15
18
  y: number;
16
- } | undefined, { final, start }?: {
17
- start?: boolean;
18
- final?: boolean;
19
19
  }): void;
20
+ stop(delta: {
21
+ x: number;
22
+ y: number;
23
+ }): void;
24
+ panMoveTo(delta: {
25
+ x: number;
26
+ y: number;
27
+ } | undefined): void;
20
28
  }
@@ -13,7 +13,7 @@ export type NavigationEnhancerOutput = {
13
13
  duration: number;
14
14
  trigger: Observable<T>;
15
15
  }) => Observable<T>;
16
- moveTo: PanNavigator["moveTo"];
16
+ panNavigator: PanNavigator;
17
17
  turnTop: ManualNavigator["turnTop"];
18
18
  turnBottom: ManualNavigator["turnBottom"];
19
19
  turnLeftOrTop: ManualNavigator["turnLeftOrTop"];
@@ -2,5 +2,6 @@ import { EnhancerOutput, RootEnhancer } from './types/enhancer';
2
2
  export declare const utilsEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
3
3
  utils: {
4
4
  isOrIsWithinValidLink: (target: Event[`target`]) => boolean;
5
+ injectScopedCSS: (doc: Document, scope: string, styleTemplate: string) => () => void;
5
6
  };
6
7
  };
@@ -1,14 +1,12 @@
1
1
  import { ObservedValueOf } from 'rxjs';
2
2
  import { Reader } from '../../reader';
3
3
  import { ReactiveEntity } from '../../utils/ReactiveEntity';
4
+ import { ZoomPosition } from './types';
4
5
  import { ScrollNavigationController } from '../..';
5
6
  export type ZoomControllerState = {
6
7
  isZooming: boolean;
7
8
  currentScale: number;
8
- currentPosition: {
9
- x: number;
10
- y: number;
11
- };
9
+ currentPosition: ZoomPosition;
12
10
  };
13
11
  export declare class ZoomController extends ReactiveEntity<ZoomControllerState> {
14
12
  protected reader: Reader;
@@ -20,11 +18,14 @@ export declare class ZoomController extends ReactiveEntity<ZoomControllerState>
20
18
  move(position: {
21
19
  x: number;
22
20
  y: number;
21
+ }, options?: {
22
+ constrain?: "within-viewport";
23
23
  }): void;
24
- scaleAt(userScale: number): void;
25
- protected updateZoom(scale: number, position?: {
26
- x: number;
27
- y: number;
24
+ scaleAt(userScale: number, options?: {
25
+ constrain?: "within-viewport";
26
+ }): void;
27
+ protected updateZoom(scale: number, position?: ZoomPosition, options?: {
28
+ constraints?: (position: ZoomPosition, scale: number) => ZoomPosition;
28
29
  }): void;
29
30
  protected applyZoom(scale: number, position: {
30
31
  x: number;
@@ -0,0 +1,6 @@
1
+ import { Viewport } from '../../viewport/Viewport';
2
+ import { ZoomPosition } from './types';
3
+ export declare const constrainPositionWithinViewport: (position: ZoomPosition, scale: number, viewport: Viewport) => {
4
+ x: number;
5
+ y: number;
6
+ };
@@ -1,5 +1,4 @@
1
1
  import { UnboundScrollPosition } from '../../navigation/controllers/ScrollNavigationController';
2
2
  import { Reader } from '../../reader';
3
- import { UnboundSpinePosition } from '../..';
4
3
  export declare const adjustScrollToKeepContentCentered: (scrollContainer: HTMLElement, fromScale: number, toScale: number, marginX: number, marginY: number) => UnboundScrollPosition;
5
- export declare const deriveSpinePositionFromScale: (scale: number, reader: Reader) => UnboundSpinePosition;
4
+ export declare const applyScaleToViewportForScroll: (scale: number, reader: Reader) => void;
@@ -1,5 +1,9 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { ZoomControllerState } from './ZoomController';
3
+ export type ZoomPosition = {
4
+ x: number;
5
+ y: number;
6
+ };
3
7
  export type ZoomEnhancerOutput = {
4
8
  zoom: {
5
9
  enter: (params?: {
@@ -10,11 +14,12 @@ export type ZoomEnhancerOutput = {
10
14
  exit: (options?: {
11
15
  animate?: boolean;
12
16
  }) => void;
13
- move: (position: {
14
- x: number;
15
- y: number;
17
+ move: (position: ZoomPosition, options?: {
18
+ constrain?: "within-viewport";
19
+ }) => void;
20
+ scaleAt: (scale: number, options?: {
21
+ constrain?: "within-viewport";
16
22
  }) => void;
17
- scaleAt: (scale: number) => void;
18
23
  state$: Observable<ZoomControllerState>;
19
24
  get state(): ZoomControllerState;
20
25
  };