@prose-reader/core 1.239.0 → 1.241.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.
Files changed (65) hide show
  1. package/dist/context/Context.d.ts +1 -21
  2. package/dist/createReaderWithEnhancer.d.ts +11 -12
  3. package/dist/enhancers/events/normalizeEventForViewport.d.ts +2 -2
  4. package/dist/enhancers/hotkeys.d.ts +1 -1
  5. package/dist/enhancers/layout/coordinates.d.ts +3 -3
  6. package/dist/enhancers/layout/updateSpreadMode.d.ts +12 -0
  7. package/dist/enhancers/layout/viewportMode.d.ts +4 -0
  8. package/dist/enhancers/loading/createLoadingElement.d.ts +2 -2
  9. package/dist/enhancers/navigation/navigators/UserScrollNavigation.d.ts +12 -0
  10. package/dist/enhancers/navigation/resolvers/getNavigationForLeftOrTopPage.d.ts +10 -6
  11. package/dist/enhancers/navigation/resolvers/getNavigationForLeftSinglePage.d.ts +7 -8
  12. package/dist/enhancers/navigation/resolvers/getNavigationForRightOrBottomPage.d.ts +10 -6
  13. package/dist/enhancers/navigation/resolvers/getNavigationForRightSinglePage.d.ts +7 -8
  14. package/dist/enhancers/zoom/ControllableZoomer.d.ts +2 -2
  15. package/dist/enhancers/zoom/ScrollableZoomer.d.ts +2 -2
  16. package/dist/enhancers/zoom/{Zoomer.d.ts → ZoomController.d.ts} +1 -1
  17. package/dist/index.js +2175 -2171
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.umd.cjs +37 -38
  20. package/dist/index.umd.cjs.map +1 -1
  21. package/dist/navigation/InternalNavigator.d.ts +6 -5
  22. package/dist/navigation/Navigator.d.ts +14 -14
  23. package/dist/navigation/consolidation/consolidateWithPagination.d.ts +4 -4
  24. package/dist/navigation/consolidation/withFallbackPosition.d.ts +4 -1
  25. package/dist/navigation/consolidation/withSpineItem.d.ts +1 -1
  26. package/dist/navigation/consolidation/withSpineItemPosition.d.ts +1 -1
  27. package/dist/navigation/controllers/ScrollNavigationController.d.ts +13 -6
  28. package/dist/navigation/resolvers/NavigationResolver.d.ts +13 -12
  29. package/dist/navigation/resolvers/{getAdjustedPositionWithSafeEdge.d.ts → fromUnboundSpinePosition.d.ts} +3 -4
  30. package/dist/navigation/resolvers/getAdjustedPositionForSpread.d.ts +3 -4
  31. package/dist/navigation/resolvers/getNavigationForPosition.d.ts +5 -6
  32. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +7 -7
  33. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +4 -4
  34. package/dist/navigation/restoration/restorePosition.d.ts +4 -4
  35. package/dist/navigation/tests/utils.d.ts +2 -2
  36. package/dist/navigation/types.d.ts +6 -7
  37. package/dist/reader.d.ts +11 -12
  38. package/dist/settings/ReaderSettingsManager.d.ts +1 -1
  39. package/dist/settings/computeSpreadMode.d.ts +5 -0
  40. package/dist/settings/types.d.ts +2 -1
  41. package/dist/spine/Spine.d.ts +1 -2
  42. package/dist/spine/SpineItemsObserver.d.ts +2 -3
  43. package/dist/spine/loader/SpineItemsLoader.d.ts +1 -1
  44. package/dist/spine/locator/SpineLocator.d.ts +11 -11
  45. package/dist/spine/locator/getSpineItemFromPosition.d.ts +2 -3
  46. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +2 -3
  47. package/dist/spine/types.d.ts +3 -3
  48. package/dist/spineItem/SpineItem.d.ts +3 -1
  49. package/dist/spineItem/SpineItemLayout.d.ts +3 -1
  50. package/dist/spineItem/layout/getSpineItemPositionFromPageIndex.d.ts +3 -1
  51. package/dist/spineItem/locationResolver.d.ts +5 -3
  52. package/dist/spineItem/navigationResolver.d.ts +3 -1
  53. package/dist/spineItem/renderer/DocumentRenderer.d.ts +4 -0
  54. package/dist/spineItem/types.d.ts +1 -1
  55. package/dist/types/index.d.ts +10 -0
  56. package/dist/utils/ReactiveEntity.d.ts +2 -1
  57. package/dist/viewport/Viewport.d.ts +14 -2
  58. package/dist/viewport/translateSpinePositionToRelativeViewport.d.ts +2 -3
  59. package/dist/viewport/types.d.ts +2 -2
  60. package/package.json +4 -4
  61. package/dist/context/isUsingSpreadMode.d.ts +0 -9
  62. package/dist/navigation/UserScrollNavigation.d.ts +0 -19
  63. package/dist/spine/locator/getSpinePositionFromSpineItemPageIndex.d.ts +0 -13
  64. package/dist/utils/layout.d.ts +0 -7
  65. package/dist/utils/layout.test.d.ts +0 -1
@@ -8,19 +8,20 @@ import { ControlledNavigationController } from './controllers/ControlledNavigati
8
8
  import { ScrollNavigationController } from './controllers/ScrollNavigationController';
9
9
  import { Locker } from './Locker';
10
10
  import { createNavigationResolver } from './resolvers/NavigationResolver';
11
- import { InternalNavigationEntry, UserNavigationEntry, DeprecatedViewportPosition, NavigationConsolidation } from './types';
11
+ import { InternalNavigationEntry, UserNavigationEntry, NavigationConsolidation } from './types';
12
+ import { UnboundSpinePosition } from '..';
12
13
  export declare class InternalNavigator extends DestroyableClass {
13
14
  protected settings: ReaderSettingsManager;
14
15
  protected context: Context;
15
16
  protected userNavigation$: Observable<UserNavigationEntry>;
16
- protected viewportController: ControlledNavigationController;
17
+ protected controlledNavigationController: ControlledNavigationController;
17
18
  protected scrollNavigationController: ScrollNavigationController;
18
19
  protected navigationResolver: ReturnType<typeof createNavigationResolver>;
19
20
  protected spine: Spine;
20
21
  protected isUserLocked$: Observable<boolean>;
21
22
  navigationSubject: BehaviorSubject<InternalNavigationEntry>;
22
23
  navigated$: Observable<{
23
- position: SpinePosition | DeprecatedViewportPosition;
24
+ position: SpinePosition | SpinePosition | UnboundSpinePosition;
24
25
  id: symbol;
25
26
  meta: {
26
27
  triggeredBy: `user` | `restoration` | `pagination`;
@@ -32,10 +33,10 @@ export declare class InternalNavigator extends DestroyableClass {
32
33
  cfi?: string;
33
34
  } & NavigationConsolidation>;
34
35
  navigation$: Observable<{
35
- position: SpinePosition;
36
+ position: SpinePosition | UnboundSpinePosition;
36
37
  id: symbol;
37
38
  }>;
38
39
  locker: Locker;
39
- constructor(settings: ReaderSettingsManager, context: Context, userNavigation$: Observable<UserNavigationEntry>, viewportController: ControlledNavigationController, scrollNavigationController: ScrollNavigationController, navigationResolver: ReturnType<typeof createNavigationResolver>, spine: Spine, isUserLocked$: Observable<boolean>);
40
+ constructor(settings: ReaderSettingsManager, context: Context, userNavigation$: Observable<UserNavigationEntry>, controlledNavigationController: ControlledNavigationController, scrollNavigationController: ScrollNavigationController, navigationResolver: ReturnType<typeof createNavigationResolver>, spine: Spine, isUserLocked$: Observable<boolean>);
40
41
  get navigation(): InternalNavigationEntry;
41
42
  }
@@ -4,13 +4,13 @@ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
4
  import { Spine } from '../spine/Spine';
5
5
  import { SpineItemsManager } from '../spine/SpineItemsManager';
6
6
  import { Viewport } from '../viewport/Viewport';
7
- import { InternalNavigator } from './InternalNavigator';
8
- import { Locker } from './Locker';
9
7
  import { ControlledNavigationController } from './controllers/ControlledNavigationController';
10
8
  import { ScrollNavigationController } from './controllers/ScrollNavigationController';
11
- import { UserNavigationEntry, InternalNavigationEntry, DeprecatedViewportPosition } from './types';
9
+ import { InternalNavigator } from './InternalNavigator';
10
+ import { Locker } from './Locker';
11
+ import { UserNavigationEntry, InternalNavigationEntry } from './types';
12
12
  import { Observable } from 'rxjs';
13
- import { SpinePosition, SpineItemPosition, SpineItem } from '..';
13
+ import { SpinePosition, SpineItemPosition, SpineItem, UnboundSpinePosition } from '..';
14
14
  import { getNavigationForSpineItemPage } from './resolvers/getNavigationForSpineItemPage';
15
15
  export declare const createNavigator: ({ spineItemsManager, context, hookManager, spine, settings, viewport, }: {
16
16
  spineItemsManager: SpineItemsManager;
@@ -34,18 +34,18 @@ export declare const createNavigator: ({ spineItemsManager, context, hookManager
34
34
  position: SpinePosition;
35
35
  spineItemId: string;
36
36
  } | undefined;
37
- getNavigationForSpineItemPage: (params: Omit<Parameters< getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => SpinePosition;
37
+ getNavigationForSpineItemPage: (params: Omit<Parameters< getNavigationForSpineItemPage>[0], "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator" | "viewport">) => SpinePosition;
38
38
  getNavigationFromSpineItemPosition: (params: {
39
39
  spineItemPosition: SpineItemPosition;
40
40
  spineItem: SpineItem;
41
41
  }) => SpinePosition;
42
- getNavigationForCfi: (cfi: string) => DeprecatedViewportPosition | undefined;
43
- getNavigationForLastPage: (spineItem: SpineItem) => DeprecatedViewportPosition;
44
- getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => DeprecatedViewportPosition;
45
- getNavigationForPosition: (viewportPosition: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
46
- getMostPredominantNavigationForPosition: (viewportPosition: DeprecatedViewportPosition) => DeprecatedViewportPosition;
47
- getAdjustedPositionWithSafeEdge: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
48
- isNavigationGoingForwardFrom: (to: DeprecatedViewportPosition, from: DeprecatedViewportPosition) => boolean;
42
+ getNavigationForCfi: (cfi: string) => SpinePosition | undefined;
43
+ getNavigationForLastPage: (spineItem: SpineItem) => SpinePosition;
44
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => SpinePosition;
45
+ getNavigationForPosition: (viewportPosition: SpinePosition | UnboundSpinePosition) => SpinePosition;
46
+ getMostPredominantNavigationForPosition: (viewportPosition: SpinePosition) => SpinePosition;
47
+ fromUnboundSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
48
+ isNavigationGoingForwardFrom: (to: SpinePosition, from: SpinePosition) => boolean;
49
49
  arePositionsDifferent: (a: {
50
50
  x: number;
51
51
  y: number;
@@ -53,7 +53,7 @@ export declare const createNavigator: ({ spineItemsManager, context, hookManager
53
53
  x: number;
54
54
  y: number;
55
55
  }) => boolean;
56
- getAdjustedPositionForSpread: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
56
+ getAdjustedPositionForSpread: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
57
57
  spineItemNavigator: {
58
58
  getNavigationForLastPage: (spineItem: SpineItem) => SpineItemPosition;
59
59
  getNavigationForPosition: (spineItem: SpineItem, position: SpineItemPosition) => SpineItemPosition;
@@ -61,7 +61,7 @@ export declare const createNavigator: ({ spineItemsManager, context, hookManager
61
61
  };
62
62
  };
63
63
  navigation$: Observable<{
64
- position: SpinePosition;
64
+ position: SpinePosition | UnboundSpinePosition;
65
65
  id: symbol;
66
66
  }>;
67
67
  };
@@ -1,13 +1,13 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Context } from '../../context/Context';
3
3
  import { Spine } from '../../spine/Spine';
4
- import { InternalNavigationEntry, DeprecatedViewportPosition } from '../types';
5
- import { SpinePosition, SpineItemPosition } from '../..';
4
+ import { InternalNavigationEntry } from '../types';
5
+ import { SpinePosition, UnboundSpinePosition, SpineItemPosition, UnboundSpineItemPagePosition } from '../..';
6
6
  export declare const consolidateWithPagination: (context: Context, navigation$: Observable<InternalNavigationEntry>, spine: Spine) => Observable<{
7
7
  meta: {
8
8
  triggeredBy: "pagination";
9
9
  };
10
- position: SpinePosition | DeprecatedViewportPosition;
10
+ position: SpinePosition | SpinePosition | UnboundSpinePosition;
11
11
  id: symbol;
12
12
  type: `api` | `scroll`;
13
13
  animation?: boolean | `turn` | `snap`;
@@ -21,6 +21,6 @@ export declare const consolidateWithPagination: (context: Context, navigation$:
21
21
  spineItemIsReady?: boolean;
22
22
  spineItemIsUsingVerticalWriting?: boolean;
23
23
  paginationBeginCfi?: string;
24
- positionInSpineItem?: SpineItemPosition;
24
+ positionInSpineItem?: SpineItemPosition | UnboundSpineItemPagePosition;
25
25
  directionFromLastNavigation?: "forward" | "backward" | "anchor";
26
26
  }>;
@@ -1,12 +1,15 @@
1
1
  import { Observable } from 'rxjs';
2
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
2
3
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
4
  import { NavigationResolver } from '../resolvers/NavigationResolver';
4
5
  import { InternalNavigationEntry, InternalNavigationInput } from '../types';
5
- export declare const withFallbackPosition: ({ spineItemsManager, navigationResolver, }: {
6
+ export declare const withFallbackPosition: ({ spineItemsManager, navigationResolver, settings, }: {
6
7
  spineItemsManager: SpineItemsManager;
7
8
  navigationResolver: NavigationResolver;
9
+ settings: ReaderSettingsManager;
8
10
  }) => <Navigation extends {
9
11
  navigation: InternalNavigationInput;
12
+ previousNavigation: InternalNavigationEntry;
10
13
  }>(stream: Observable<Navigation>) => Observable<Omit<Navigation, "navigation"> & {
11
14
  navigation: InternalNavigationEntry;
12
15
  }>;
@@ -1,8 +1,8 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Context } from '../../context/Context';
3
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
- import { SpineItemsManager } from '../../spine/SpineItemsManager';
5
4
  import { SpineLocator } from '../../spine/locator/SpineLocator';
5
+ import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
6
  import { NavigationResolver } from '../resolvers/NavigationResolver';
7
7
  import { InternalNavigationInput } from '../types';
8
8
  type Navigation = {
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
3
- import { SpineItemsManager } from '../../spine/SpineItemsManager';
4
3
  import { SpineLocator } from '../../spine/locator/SpineLocator';
4
+ import { SpineItemsManager } from '../../spine/SpineItemsManager';
5
5
  import { NavigationResolver } from '../resolvers/NavigationResolver';
6
6
  import { InternalNavigationEntry, InternalNavigationInput } from '../types';
7
7
  type Navigation = {
@@ -3,10 +3,15 @@ import { Context } from '../../context/Context';
3
3
  import { HookManager } from '../../hooks/HookManager';
4
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
5
  import { Spine } from '../../spine/Spine';
6
- import { SpinePosition } from '../../spine/types';
6
+ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
7
+ import { AbstractPosition } from '../../types';
7
8
  import { ReactiveEntity } from '../../utils/ReactiveEntity';
8
9
  import { Viewport } from '../../viewport/Viewport';
9
- import { ViewportNavigationEntry } from './ControlledNavigationController';
10
+ export declare class ScrollPosition extends AbstractPosition {
11
+ }
12
+ export type ScrollNavigationViewportNavigationEntry = {
13
+ position: UnboundSpinePosition | SpinePosition;
14
+ };
10
15
  export declare class ScrollNavigationController extends ReactiveEntity<{
11
16
  element: HTMLElement | undefined;
12
17
  }> {
@@ -15,16 +20,18 @@ export declare class ScrollNavigationController extends ReactiveEntity<{
15
20
  protected hookManager: HookManager;
16
21
  protected spine: Spine;
17
22
  protected context: Context;
18
- protected navigateSubject: Subject<ViewportNavigationEntry>;
23
+ protected navigateSubject: Subject<ScrollNavigationViewportNavigationEntry>;
19
24
  protected scrollingSubject: BehaviorSubject<boolean>;
20
25
  isScrolling$: Observable<boolean>;
21
26
  isNavigating$: Observable<boolean>;
22
27
  userScroll$: Observable<Event>;
23
28
  constructor(viewport: Viewport, settings: ReaderSettingsManager, hookManager: HookManager, spine: Spine, context: Context);
24
- protected setViewportPosition: ({ position }: ViewportNavigationEntry) => void;
29
+ protected setViewportPosition: ({ position, }: ScrollNavigationViewportNavigationEntry) => void;
25
30
  update(value: Partial<{
26
31
  element: HTMLElement | undefined;
27
32
  }>): void;
28
- navigate(navigation: ViewportNavigationEntry): void;
29
- get viewportPosition(): SpinePosition;
33
+ navigate(navigation: ScrollNavigationViewportNavigationEntry): void;
34
+ fromScrollPosition(position: ScrollPosition): UnboundSpinePosition;
35
+ fromSpinePosition(position: UnboundSpinePosition | SpinePosition): ScrollPosition;
36
+ get scrollPosition(): ScrollPosition;
30
37
  }
@@ -3,36 +3,37 @@ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
3
3
  import { SpineLocator } from '../../spine/locator/SpineLocator';
4
4
  import { Spine } from '../../spine/Spine';
5
5
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
- import { SpinePosition } from '../../spine/types';
6
+ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
7
7
  import { SpineItem } from '../../spineItem/SpineItem';
8
8
  import { SpineItemPosition } from '../../spineItem/types';
9
- import { DeprecatedViewportPosition } from '../types';
9
+ import { Viewport } from '../../viewport/Viewport';
10
10
  import { getNavigationForSpineItemPage } from './getNavigationForSpineItemPage';
11
11
  export declare const NAMESPACE = "spineNavigator";
12
12
  export type NavigationResolver = ReturnType<typeof createNavigationResolver>;
13
- export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, spine, }: {
13
+ export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, spine, viewport, }: {
14
14
  context: Context;
15
15
  spineItemsManager: SpineItemsManager;
16
16
  locator: SpineLocator;
17
17
  settings: ReaderSettingsManager;
18
18
  spine: Spine;
19
+ viewport: Viewport;
19
20
  }) => {
20
21
  getNavigationForUrl: (url: string | URL) => {
21
22
  position: SpinePosition;
22
23
  spineItemId: string;
23
24
  } | undefined;
24
- getNavigationForSpineItemPage: (params: Omit<Parameters<typeof getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => SpinePosition;
25
+ getNavigationForSpineItemPage: (params: Omit<Parameters<typeof getNavigationForSpineItemPage>[0], "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator" | "viewport">) => SpinePosition;
25
26
  getNavigationFromSpineItemPosition: (params: {
26
27
  spineItemPosition: SpineItemPosition;
27
28
  spineItem: SpineItem;
28
29
  }) => SpinePosition;
29
- getNavigationForCfi: (cfi: string) => DeprecatedViewportPosition | undefined;
30
- getNavigationForLastPage: (spineItem: SpineItem) => DeprecatedViewportPosition;
31
- getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => DeprecatedViewportPosition;
32
- getNavigationForPosition: (viewportPosition: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
33
- getMostPredominantNavigationForPosition: (viewportPosition: DeprecatedViewportPosition) => DeprecatedViewportPosition;
34
- getAdjustedPositionWithSafeEdge: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
35
- isNavigationGoingForwardFrom: (to: DeprecatedViewportPosition, from: DeprecatedViewportPosition) => boolean;
30
+ getNavigationForCfi: (cfi: string) => SpinePosition | undefined;
31
+ getNavigationForLastPage: (spineItem: SpineItem) => SpinePosition;
32
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => SpinePosition;
33
+ getNavigationForPosition: (viewportPosition: SpinePosition | UnboundSpinePosition) => SpinePosition;
34
+ getMostPredominantNavigationForPosition: (viewportPosition: SpinePosition) => SpinePosition;
35
+ fromUnboundSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
36
+ isNavigationGoingForwardFrom: (to: SpinePosition, from: SpinePosition) => boolean;
36
37
  arePositionsDifferent: (a: {
37
38
  x: number;
38
39
  y: number;
@@ -40,7 +41,7 @@ export declare const createNavigationResolver: ({ context, spineItemsManager, lo
40
41
  x: number;
41
42
  y: number;
42
43
  }) => boolean;
43
- getAdjustedPositionForSpread: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
44
+ getAdjustedPositionForSpread: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
44
45
  spineItemNavigator: {
45
46
  getNavigationForLastPage: (spineItem: SpineItem) => SpineItemPosition;
46
47
  getNavigationForPosition: (spineItem: SpineItem, position: SpineItemPosition) => SpineItemPosition;
@@ -1,10 +1,9 @@
1
1
  import { Spine } from '../../spine/Spine';
2
2
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
- import { SpinePosition } from '../../spine/types';
4
- import { DeprecatedViewportPosition } from '../types';
3
+ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
5
4
  export declare const NAMESPACE = "spineNavigator";
6
- export declare const getAdjustedPositionWithSafeEdge: ({ position, isRTL, pageSizeHeight, spineItemsManager, visibleAreaRectWidth, spine, }: {
7
- position: DeprecatedViewportPosition | SpinePosition;
5
+ export declare const fromUnboundSpinePosition: ({ position, isRTL, pageSizeHeight, spineItemsManager, visibleAreaRectWidth, spine, }: {
6
+ position: SpinePosition | UnboundSpinePosition;
8
7
  isRTL: boolean;
9
8
  pageSizeHeight: number;
10
9
  spineItemsManager: SpineItemsManager;
@@ -1,7 +1,6 @@
1
- import { SpinePosition } from '../../spine/types';
2
- import { DeprecatedViewportPosition } from '../types';
1
+ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
3
2
  export declare const getAdjustedPositionForSpread: ({ position: { x, y }, pageSizeWidth, visibleAreaRectWidth, }: {
4
- position: DeprecatedViewportPosition | SpinePosition;
3
+ position: SpinePosition | UnboundSpinePosition;
5
4
  pageSizeWidth: number;
6
5
  visibleAreaRectWidth: number;
7
- }) => DeprecatedViewportPosition;
6
+ }) => SpinePosition;
@@ -1,11 +1,10 @@
1
- import { Context } from '../../context/Context';
2
1
  import { SpineLocator } from '../../spine/locator/SpineLocator';
3
- import { SpinePosition } from '../../spine/types';
2
+ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
4
3
  import { SpineItemNavigationResolver } from '../../spineItem/navigationResolver';
5
- import { DeprecatedViewportPosition } from '../types';
6
- export declare const getNavigationForPosition: ({ viewportPosition, spineLocator, context, spineItemNavigationResolver, }: {
7
- viewportPosition: DeprecatedViewportPosition | SpinePosition;
4
+ import { Viewport } from '../../viewport/Viewport';
5
+ export declare const getNavigationForPosition: ({ viewportPosition, spineLocator, spineItemNavigationResolver, viewport, }: {
6
+ viewportPosition: SpinePosition | UnboundSpinePosition;
8
7
  spineLocator: SpineLocator;
9
- context: Context;
10
8
  spineItemNavigationResolver: SpineItemNavigationResolver;
9
+ viewport: Viewport;
11
10
  }) => SpinePosition;
@@ -1,14 +1,14 @@
1
- import { Context } from '../../context/Context';
2
- import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
1
  import { SpineLocator } from '../../spine/locator/SpineLocator';
4
- import { SpineItem } from '../../spineItem/SpineItem';
2
+ import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
+ import { SpinePosition } from '../../spine/types';
5
4
  import { SpineItemNavigationResolver } from '../../spineItem/navigationResolver';
6
- import { DeprecatedViewportPosition } from '../types';
7
- export declare const getNavigationForSpineItemPage: ({ pageIndex, spineItemsManager, spineItemId, context, spineLocator, spineItemNavigationResolver, }: {
5
+ import { SpineItem } from '../../spineItem/SpineItem';
6
+ import { Viewport } from '../../viewport/Viewport';
7
+ export declare const getNavigationForSpineItemPage: ({ pageIndex, spineItemsManager, spineItemId, spineLocator, spineItemNavigationResolver, viewport, }: {
8
8
  pageIndex: number;
9
9
  spineItemId: SpineItem | number | string;
10
10
  spineItemsManager: SpineItemsManager;
11
11
  spineItemNavigationResolver: SpineItemNavigationResolver;
12
12
  spineLocator: SpineLocator;
13
- context: Context;
14
- }) => DeprecatedViewportPosition;
13
+ viewport: Viewport;
14
+ }) => SpinePosition;
@@ -1,13 +1,13 @@
1
- import { Context } from '../../context/Context';
2
1
  import { SpineLocator } from '../../spine/locator/SpineLocator';
3
- import { SpineItem } from '../../spineItem/SpineItem';
4
2
  import { SpineItemLocator } from '../../spineItem/locationResolver';
3
+ import { SpineItem } from '../../spineItem/SpineItem';
5
4
  import { SpineItemPosition } from '../../spineItem/types';
5
+ import { Viewport } from '../../viewport/Viewport';
6
6
  import { SpinePosition } from '../..';
7
- export declare const getNavigationFromSpineItemPosition: ({ spineItem, spineItemPosition, spineLocator, spineItemLocator, context, }: {
7
+ export declare const getNavigationFromSpineItemPosition: ({ spineItem, spineItemPosition, spineLocator, spineItemLocator, viewport, }: {
8
8
  spineItemPosition: SpineItemPosition;
9
9
  spineItem: SpineItem;
10
10
  spineLocator: SpineLocator;
11
11
  spineItemLocator: SpineItemLocator;
12
- context: Context;
12
+ viewport: Viewport;
13
13
  }) => SpinePosition;
@@ -1,13 +1,13 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Context } from '../../context/Context';
3
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
+ import { SpineLocator } from '../../spine/locator/SpineLocator';
4
5
  import { Spine } from '../../spine/Spine';
5
6
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
- import { SpineLocator } from '../../spine/locator/SpineLocator';
7
- import { SpinePosition } from '../../spine/types';
7
+ import { SpinePosition, UnboundSpinePosition } from '../../spine/types';
8
8
  import { SpineItemLocator } from '../../spineItem/locationResolver';
9
9
  import { NavigationResolver } from '../resolvers/NavigationResolver';
10
- import { DeprecatedViewportPosition, InternalNavigationEntry } from '../types';
10
+ import { InternalNavigationEntry } from '../types';
11
11
  export declare const restorePosition: ({ navigation, spineItemsManager, settings, spineLocator, navigationResolver, spine, }: {
12
12
  spineLocator: SpineLocator;
13
13
  settings: ReaderSettingsManager;
@@ -17,4 +17,4 @@ export declare const restorePosition: ({ navigation, spineItemsManager, settings
17
17
  spineItemLocator: SpineItemLocator;
18
18
  context: Context;
19
19
  spine: Spine;
20
- }) => Observable<DeprecatedViewportPosition | SpinePosition>;
20
+ }) => Observable<SpinePosition | UnboundSpinePosition>;
@@ -1,7 +1,7 @@
1
- import { SpineItem } from '../..';
1
+ import { SpineItem, Viewport } from '../..';
2
2
  import { Context } from '../../context/Context';
3
3
  import { HookManager } from '../../hooks/HookManager';
4
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
5
  import { Spine } from '../../spine/Spine';
6
6
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
7
- export declare const generateItems: (size: number, number: number, context: Context, settings: ReaderSettingsManager, hookManager: HookManager, spine: Spine, spineItemsManager: SpineItemsManager) => SpineItem[];
7
+ export declare const generateItems: (size: number, number: number, context: Context, settings: ReaderSettingsManager, hookManager: HookManager, spine: Spine, spineItemsManager: SpineItemsManager, viewport: Viewport) => SpineItem[];
@@ -1,8 +1,7 @@
1
- import { SpinePosition, UnsafeSpinePosition } from '../spine/types';
2
- import { SpineItemPosition } from '../spineItem/types';
3
- export type DeprecatedViewportPosition = SpinePosition;
1
+ import { SpinePosition, UnboundSpinePosition } from '../spine/types';
2
+ import { SpineItemPosition, UnboundSpineItemPagePosition } from '../spineItem/types';
4
3
  export type UserNavigationEntry = {
5
- position?: DeprecatedViewportPosition | SpinePosition | UnsafeSpinePosition;
4
+ position?: SpinePosition | UnboundSpinePosition;
6
5
  spineItem?: number | string;
7
6
  url?: string | URL;
8
7
  cfi?: string;
@@ -18,11 +17,11 @@ export type NavigationConsolidation = {
18
17
  spineItemIsReady?: boolean;
19
18
  spineItemIsUsingVerticalWriting?: boolean;
20
19
  paginationBeginCfi?: string;
21
- positionInSpineItem?: SpineItemPosition;
20
+ positionInSpineItem?: SpineItemPosition | UnboundSpineItemPagePosition;
22
21
  directionFromLastNavigation?: "forward" | "backward" | "anchor";
23
22
  };
24
23
  export type InternalNavigationEntry = {
25
- position: SpinePosition | DeprecatedViewportPosition;
24
+ position: SpinePosition | SpinePosition | UnboundSpinePosition;
26
25
  id: symbol;
27
26
  meta: {
28
27
  triggeredBy: `user` | `restoration` | `pagination`;
@@ -34,6 +33,6 @@ export type InternalNavigationEntry = {
34
33
  cfi?: string;
35
34
  } & NavigationConsolidation;
36
35
  export type InternalNavigationInput = Omit<InternalNavigationEntry, "position"> & {
37
- position?: SpinePosition | DeprecatedViewportPosition;
36
+ position?: SpinePosition | UnboundSpinePosition;
38
37
  };
39
38
  export type Navigation = Pick<InternalNavigationEntry, "position" | "id">;
package/dist/reader.d.ts CHANGED
@@ -12,7 +12,7 @@ import { SpineItem, SpineItemReference } from './spineItem/SpineItem';
12
12
  import { Viewport } from './viewport/Viewport';
13
13
  import { CoreHook } from './hooks';
14
14
  import { Manifest } from '@prose-reader/shared';
15
- import { InternalNavigationEntry, InternalNavigator, ScrollNavigationController, ControlledNavigationController, Locker, UserNavigationEntry, SpinePosition, SpineItemPosition, DeprecatedViewportPosition, SpineItemsObserver, CoreOutputSettings } from '.';
15
+ import { InternalNavigationEntry, InternalNavigator, ScrollNavigationController, ControlledNavigationController, Locker, UserNavigationEntry, SpinePosition, SpineItemPosition, UnboundSpinePosition, SpineItemsObserver, CoreOutputSettings } from '.';
16
16
  import { getNavigationForSpineItemPage } from './navigation/resolvers/getNavigationForSpineItemPage';
17
17
  import { PaginationInfo } from './pagination';
18
18
  export type CreateReaderOptions = Partial<CoreInputSettings>;
@@ -62,18 +62,18 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
62
62
  position: SpinePosition;
63
63
  spineItemId: string;
64
64
  } | undefined;
65
- getNavigationForSpineItemPage: (params: Omit<Parameters< getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => SpinePosition;
65
+ getNavigationForSpineItemPage: (params: Omit<Parameters< getNavigationForSpineItemPage>[0], "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator" | "viewport">) => SpinePosition;
66
66
  getNavigationFromSpineItemPosition: (params: {
67
67
  spineItemPosition: SpineItemPosition;
68
68
  spineItem: SpineItem;
69
69
  }) => SpinePosition;
70
- getNavigationForCfi: (cfi: string) => DeprecatedViewportPosition | undefined;
71
- getNavigationForLastPage: (spineItem: SpineItem) => DeprecatedViewportPosition;
72
- getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => DeprecatedViewportPosition;
73
- getNavigationForPosition: (viewportPosition: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
74
- getMostPredominantNavigationForPosition: (viewportPosition: DeprecatedViewportPosition) => DeprecatedViewportPosition;
75
- getAdjustedPositionWithSafeEdge: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
76
- isNavigationGoingForwardFrom: (to: DeprecatedViewportPosition, from: DeprecatedViewportPosition) => boolean;
70
+ getNavigationForCfi: (cfi: string) => SpinePosition | undefined;
71
+ getNavigationForLastPage: (spineItem: SpineItem) => SpinePosition;
72
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => SpinePosition;
73
+ getNavigationForPosition: (viewportPosition: SpinePosition | UnboundSpinePosition) => SpinePosition;
74
+ getMostPredominantNavigationForPosition: (viewportPosition: SpinePosition) => SpinePosition;
75
+ fromUnboundSpinePosition: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
76
+ isNavigationGoingForwardFrom: (to: SpinePosition, from: SpinePosition) => boolean;
77
77
  arePositionsDifferent: (a: {
78
78
  x: number;
79
79
  y: number;
@@ -81,7 +81,7 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
81
81
  x: number;
82
82
  y: number;
83
83
  }) => boolean;
84
- getAdjustedPositionForSpread: (position: DeprecatedViewportPosition | SpinePosition) => SpinePosition;
84
+ getAdjustedPositionForSpread: (position: SpinePosition | UnboundSpinePosition) => SpinePosition;
85
85
  spineItemNavigator: {
86
86
  getNavigationForLastPage: (spineItem: SpineItem) => SpineItemPosition;
87
87
  getNavigationForPosition: (spineItem: SpineItem, position: SpineItemPosition) => SpineItemPosition;
@@ -89,7 +89,7 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
89
89
  };
90
90
  };
91
91
  navigation$: Observable<{
92
- position: SpinePosition;
92
+ position: SpinePosition | UnboundSpinePosition;
93
93
  id: symbol;
94
94
  }>;
95
95
  };
@@ -110,7 +110,6 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
110
110
  release: () => void;
111
111
  } | undefined>;
112
112
  viewport: Viewport;
113
- element$: Observable<HTMLElement | undefined>;
114
113
  viewportState$: Observable<"free" | "busy">;
115
114
  viewportFree$: Observable<"free">;
116
115
  state$: Observable<"idle" | "ready">;
@@ -8,7 +8,7 @@ export declare class ReaderSettingsManager extends SettingsManager<CoreInputSett
8
8
  private getComputedSettings;
9
9
  getOutputSettings(inputSettings: CoreInputSettings): CoreInputSettings & ComputedCoreSettings;
10
10
  getDefaultSettings(): {
11
- forceSinglePageMode: false;
11
+ spreadMode: false;
12
12
  pageTurnAnimation: "slide";
13
13
  pageTurnDirection: "horizontal";
14
14
  pageTurnAnimationDuration: undefined;
@@ -0,0 +1,5 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+ export declare const computeSpreadMode: ({ manifest, spreadMode, }: {
3
+ spreadMode: boolean;
4
+ manifest?: Manifest;
5
+ }) => boolean;
@@ -2,7 +2,7 @@ import { Manifest } from '@prose-reader/shared';
2
2
  import { Observable } from 'rxjs';
3
3
  import { DocumentRenderer, DocumentRendererParams } from '../spineItem/renderer/DocumentRenderer';
4
4
  export type CoreInputSettings = {
5
- forceSinglePageMode: boolean;
5
+ spreadMode: boolean;
6
6
  pageTurnAnimation: `none` | `fade` | `slide`;
7
7
  pageTurnAnimationDuration: undefined | number;
8
8
  pageTurnDirection: `vertical` | `horizontal`;
@@ -23,6 +23,7 @@ export type CoreInputSettings = {
23
23
  getRenderer?: (item: Manifest["spineItems"][number]) => undefined | ((props: DocumentRendererParams) => DocumentRenderer);
24
24
  };
25
25
  export type ComputedCoreSettings = {
26
+ computedSpreadMode: boolean;
26
27
  computedPageTurnMode: CoreInputSettings[`pageTurnMode`];
27
28
  computedPageTurnDirection: CoreInputSettings[`pageTurnDirection`];
28
29
  computedPageTurnAnimation: CoreInputSettings[`pageTurnAnimation`];
@@ -16,7 +16,6 @@ import { SpineLayout } from './SpineLayout';
16
16
  import { SpineItemSpineLayout, SpineItemPageSpineLayout } from './types';
17
17
  import { SpineItemPageLayout } from '..';
18
18
  export declare class Spine extends DestroyableClass {
19
- protected parentElement$: Observable<HTMLElement | undefined>;
20
19
  protected context: Context;
21
20
  protected pagination: Pagination;
22
21
  spineItemsManager: SpineItemsManager;
@@ -31,7 +30,7 @@ export declare class Spine extends DestroyableClass {
31
30
  spineItemsObserver: SpineItemsObserver;
32
31
  pages: Pages;
33
32
  element$: Observable<HTMLElement | undefined>;
34
- constructor(parentElement$: Observable<HTMLElement | undefined>, context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>, settings: ReaderSettingsManager, hookManager: HookManager, viewport: Viewport);
33
+ constructor(context: Context, pagination: Pagination, spineItemsManager: SpineItemsManager, spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>, settings: ReaderSettingsManager, hookManager: HookManager, viewport: Viewport);
35
34
  get element(): HTMLElement | undefined;
36
35
  layout(): void;
37
36
  getSpineItemSpineLayoutInfo(spineItemOrIndex: SpineItem | number | string | undefined): SpineItemSpineLayout;
@@ -1,8 +1,8 @@
1
1
  import { Observable } from 'rxjs';
2
- import { SpineItemsManager } from './SpineItemsManager';
2
+ import { SpineItem } from '../spineItem/SpineItem';
3
3
  import { DestroyableClass } from '../utils/DestroyableClass';
4
4
  import { SpineLocator } from './locator/SpineLocator';
5
- import { SpineItem } from '../spineItem/SpineItem';
5
+ import { SpineItemsManager } from './SpineItemsManager';
6
6
  export declare class SpineItemsObserver extends DestroyableClass {
7
7
  protected spineItemsManager: SpineItemsManager;
8
8
  protected spineLocator: SpineLocator;
@@ -10,7 +10,6 @@ export declare class SpineItemsObserver extends DestroyableClass {
10
10
  item: SpineItem;
11
11
  isReady: boolean;
12
12
  }>;
13
- itemLoaded$: Observable<SpineItem>;
14
13
  itemResize$: Observable<{
15
14
  item: SpineItem;
16
15
  entries: ResizeObserverEntry[];
@@ -2,9 +2,9 @@ import { Context } from '../../context/Context';
2
2
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
3
3
  import { SpineItem } from '../../spineItem/SpineItem';
4
4
  import { DestroyableClass } from '../../utils/DestroyableClass';
5
+ import { SpineLocator } from '../locator/SpineLocator';
5
6
  import { SpineItemsManager } from '../SpineItemsManager';
6
7
  import { SpineLayout } from '../SpineLayout';
7
- import { SpineLocator } from '../locator/SpineLocator';
8
8
  export declare class SpineItemsLoader extends DestroyableClass {
9
9
  protected context: Context;
10
10
  protected spineItemsManager: SpineItemsManager;