@prose-reader/core 1.67.0 → 1.69.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 (129) hide show
  1. package/dist/{cfi.d.ts → cfi/CfiHandler.d.ts} +1 -7
  2. package/dist/cfi/generate/generateCfiFromRange.d.ts +11 -0
  3. package/dist/cfi/generate/getCfiForSpineItemPage.d.ts +12 -0
  4. package/dist/cfi/generate/getItemAnchor.d.ts +3 -0
  5. package/dist/cfi/generate/getRootCfi.d.ts +3 -0
  6. package/dist/cfi/lookup/extractProseMetadataFromCfi.d.ts +5 -0
  7. package/dist/cfi/lookup/isRootCfi.d.ts +1 -0
  8. package/dist/cfi/lookup/resolveCfi.d.ts +14 -0
  9. package/dist/context/BridgeEvent.d.ts +16 -0
  10. package/dist/context/Context.d.ts +3 -1
  11. package/dist/createReaderWithEnhancer.d.ts +103 -167
  12. package/dist/enhancers/events/normalizeEventForViewport.d.ts +2 -2
  13. package/dist/enhancers/hotkeys.d.ts +2 -1
  14. package/dist/enhancers/links.d.ts +2 -1
  15. package/dist/enhancers/loadingEnhancer.d.ts +1 -1
  16. package/dist/enhancers/navigation/{navigation.d.ts → index.d.ts} +2 -7
  17. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +27 -0
  18. package/dist/enhancers/navigation/navigators/panNavigator.d.ts +21 -0
  19. package/dist/enhancers/navigation/resolvers/getNavigationForLeftPage.d.ts +16 -0
  20. package/dist/enhancers/navigation/resolvers/getNavigationForLeftSinglePage.d.ts +14 -0
  21. package/dist/enhancers/navigation/resolvers/getNavigationForRightPage.d.ts +16 -0
  22. package/dist/enhancers/navigation/resolvers/getNavigationForRightSinglePage.d.ts +14 -0
  23. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +11 -0
  24. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForRightPage.d.ts +11 -0
  25. package/dist/enhancers/navigation/state.d.ts +2 -5
  26. package/dist/enhancers/navigation/types.d.ts +20 -0
  27. package/dist/enhancers/pagination/enhancer.d.ts +4 -4
  28. package/dist/enhancers/pagination/pagination.d.ts +1 -1
  29. package/dist/enhancers/pagination/spine.d.ts +0 -5
  30. package/dist/enhancers/pagination/types.d.ts +1 -1
  31. package/dist/enhancers/resources/resourcesManager.d.ts +1 -1
  32. package/dist/enhancers/types/enhancer.d.ts +1 -2
  33. package/dist/hooks/types.d.ts +2 -15
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +4809 -4153
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.umd.cjs +5523 -4867
  38. package/dist/index.umd.cjs.map +1 -1
  39. package/dist/navigation/InternalNavigator.d.ts +67 -0
  40. package/dist/navigation/InternalNavigator.test.d.ts +1 -0
  41. package/dist/navigation/Locker.d.ts +7 -0
  42. package/dist/navigation/Navigator.d.ts +70 -0
  43. package/dist/navigation/UserNavigator.d.ts +27 -0
  44. package/dist/navigation/consolidation/mapUserNavigationToInternal.d.ts +8 -0
  45. package/dist/navigation/consolidation/withCfiPosition.d.ts +11 -0
  46. package/dist/navigation/consolidation/withDirection.d.ts +22 -0
  47. package/dist/navigation/consolidation/withFallbackPosition.d.ts +13 -0
  48. package/dist/navigation/consolidation/withPaginationInfo.d.ts +10 -0
  49. package/dist/navigation/consolidation/withSpineItem.d.ts +19 -0
  50. package/dist/navigation/consolidation/withSpineItemLayoutInfo.d.ts +11 -0
  51. package/dist/navigation/consolidation/withSpineItemPosition.d.ts +19 -0
  52. package/dist/navigation/consolidation/withUrlInfo.d.ts +11 -0
  53. package/dist/navigation/resolvers/NavigationResolver.d.ts +51 -0
  54. package/dist/navigation/resolvers/getAdjustedPositionForSpread.d.ts +7 -0
  55. package/dist/navigation/resolvers/getNavigationForPosition.d.ts +11 -0
  56. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +15 -0
  57. package/dist/navigation/resolvers/getNavigationForUrl.d.ts +16 -0
  58. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +13 -0
  59. package/dist/navigation/resolvers/wrapPositionWithSafeEdge.d.ts +14 -0
  60. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +11 -0
  61. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.test.d.ts +1 -0
  62. package/dist/navigation/restoration/restorePosition.d.ts +18 -0
  63. package/dist/navigation/restoration/withRestoredPosition.d.ts +21 -0
  64. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +27 -0
  65. package/dist/navigation/tests/utils.d.ts +12 -0
  66. package/dist/navigation/viewport/ViewportNavigator.d.ts +36 -0
  67. package/dist/navigation/viewport/getScaledDownPosition.d.ts +11 -0
  68. package/dist/pagination/Pagination.d.ts +26 -0
  69. package/dist/pagination/PaginationController.d.ts +15 -0
  70. package/dist/reader.d.ts +108 -2
  71. package/dist/report.d.ts +2 -0
  72. package/dist/selection.d.ts +1 -1
  73. package/dist/settings/ReaderSettingsManager.d.ts +2 -1
  74. package/dist/spine/Spine.d.ts +32 -0
  75. package/dist/spine/{locationResolver.d.ts → SpineItemsManager.d.ts} +216 -226
  76. package/dist/spine/SpineItemsObserver.d.ts +17 -0
  77. package/dist/spine/loader/SpineItemsLoader.d.ts +13 -0
  78. package/dist/spine/loader/loadItems.d.ts +8 -0
  79. package/dist/spine/loader/mapToItemsToLoad.d.ts +7 -0
  80. package/dist/{spineItemManager.d.ts → spine/locator/SpineLocator.d.ts} +109 -198
  81. package/dist/spine/locator/getItemVisibilityForPosition.d.ts +19 -0
  82. package/dist/spine/locator/getItemVisibilityForPosition.test.d.ts +1 -0
  83. package/dist/spine/locator/getSpineItemFromPosition.d.ts +126 -0
  84. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +16 -0
  85. package/dist/spine/locator/getVisibleSpineItemsFromPosition.test.d.ts +1 -0
  86. package/dist/spineItem/commonSpineItem.d.ts +25 -61
  87. package/dist/spineItem/createSpineItem.d.ts +24 -60
  88. package/dist/spineItem/frame/FrameItem.d.ts +44 -0
  89. package/dist/spineItem/{frameItem → frame}/createHtmlPageFromResource.d.ts +1 -1
  90. package/dist/spineItem/frame/loader/attachFrameSrc.d.ts +8 -0
  91. package/dist/spineItem/frame/loader/configureFrame.d.ts +10 -0
  92. package/dist/spineItem/frame/loader/createFrameElement.d.ts +1 -0
  93. package/dist/spineItem/frame/loader/loadFrame.d.ts +12 -0
  94. package/dist/spineItem/frame/loader/loader.d.ts +23 -0
  95. package/dist/spineItem/frame/loader/unloadFrame.d.ts +9 -0
  96. package/dist/spineItem/frame/loader/waitForFrameLoad.d.ts +3 -0
  97. package/dist/spineItem/frame/loader/waitForFrameReady.d.ts +3 -0
  98. package/dist/spineItem/helpers.d.ts +3 -0
  99. package/dist/spineItem/locationResolver.d.ts +17 -5
  100. package/dist/spineItem/navigationResolver.d.ts +6 -8
  101. package/dist/spineItem/prePaginatedSpineItem.d.ts +24 -60
  102. package/dist/spineItem/reflowable/ReflowableSpineItems.d.ts +24 -60
  103. package/dist/spineItem/types.d.ts +1 -10
  104. package/dist/tests/utils.d.ts +1 -0
  105. package/dist/utils/DestroyableClass.d.ts +5 -0
  106. package/dist/utils/dom.d.ts +3 -2
  107. package/dist/utils/rxjs.d.ts +3 -1
  108. package/package.json +3 -3
  109. package/dist/enhancers/navigation/navigator.d.ts +0 -8
  110. package/dist/enhancers/publicApi.d.ts +0 -5
  111. package/dist/pagination/pagination.d.ts +0 -88
  112. package/dist/pagination/types.d.ts +0 -10
  113. package/dist/spine/cfiLocator.d.ts +0 -340
  114. package/dist/spine/createSpine.d.ts +0 -31
  115. package/dist/spine/navigationResolver.d.ts +0 -48
  116. package/dist/spine/types.d.ts +0 -10
  117. package/dist/spineItem/frameItem/createFrame$.d.ts +0 -1
  118. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +0 -5
  119. package/dist/spineItem/frameItem/frameItem.d.ts +0 -48
  120. package/dist/spineItem/frameItem/loader.d.ts +0 -29
  121. package/dist/types/Spine.d.ts +0 -40
  122. package/dist/types/index.d.ts +0 -12
  123. package/dist/types/reader.d.ts +0 -44
  124. package/dist/viewportNavigator/manualViewportNavigator.d.ts +0 -96
  125. package/dist/viewportNavigator/panViewportNavigator.d.ts +0 -55
  126. package/dist/viewportNavigator/scrollViewportNavigator.d.ts +0 -38
  127. package/dist/viewportNavigator/types.d.ts +0 -34
  128. package/dist/viewportNavigator/viewportNavigator.d.ts +0 -82
  129. /package/dist/enhancers/{pagination.test.d.ts → pagination/pagination.test.d.ts} +0 -0
@@ -1,4 +1,4 @@
1
- declare class CFI {
1
+ export declare class CfiHandler {
2
2
  isRange: boolean;
3
3
  parts: {}[];
4
4
  opts: {};
@@ -66,9 +66,3 @@ declare class CFI {
66
66
  offset?: number;
67
67
  };
68
68
  }
69
- export { CFI };
70
- export declare const extractProseMetadataFromCfi: (cfi: string) => {
71
- cleanedCfi: string;
72
- itemId?: string;
73
- offset?: number;
74
- };
@@ -0,0 +1,11 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+
3
+ export declare const generateCfiFromRange: ({ startNode, start, end, endNode, }: {
4
+ startNode: Node;
5
+ start: number;
6
+ endNode: Node;
7
+ end: number;
8
+ }, item: Manifest[`spineItems`][number]) => {
9
+ start: string;
10
+ end: string;
11
+ };
@@ -0,0 +1,12 @@
1
+ import { SpineItem } from '../../spineItem/createSpineItem';
2
+ import { SpineItemLocator } from '../../spineItem/locationResolver';
3
+
4
+ export declare const getCfi: (({ pageIndex, spineItem, spineItemLocator, }: {
5
+ pageIndex: number;
6
+ spineItem: SpineItem;
7
+ spineItemLocator: SpineItemLocator;
8
+ }) => string) | ((args_0: {
9
+ pageIndex: number;
10
+ spineItem: SpineItem;
11
+ spineItemLocator: SpineItemLocator;
12
+ }) => string);
@@ -0,0 +1,3 @@
1
+ import { SpineItem } from '../../spineItem/createSpineItem';
2
+
3
+ export declare const getItemAnchor: (spineItem: SpineItem) => string;
@@ -0,0 +1,3 @@
1
+ import { SpineItem } from '../../spineItem/createSpineItem';
2
+
3
+ export declare const getRootCfi: (spineItem: SpineItem) => string;
@@ -0,0 +1,5 @@
1
+ export declare const extractProseMetadataFromCfi: (cfi: string) => {
2
+ cleanedCfi: string;
3
+ itemId?: string;
4
+ offset?: number;
5
+ };
@@ -0,0 +1 @@
1
+ export declare const isRootCfi: (cfi: string) => boolean;
@@ -0,0 +1,14 @@
1
+ import { SpineItemsManager } from '../../spine/SpineItemsManager';
2
+
3
+ export declare const resolveCfi: ({ cfi, spineItemsManager, }: {
4
+ cfi: string;
5
+ spineItemsManager: SpineItemsManager;
6
+ }) => {
7
+ node: Node | undefined;
8
+ offset: number | undefined;
9
+ spineItemIndex: number;
10
+ } | {
11
+ spineItemIndex: number;
12
+ node?: undefined;
13
+ offset?: undefined;
14
+ } | undefined;
@@ -0,0 +1,16 @@
1
+ import { BehaviorSubject, ReplaySubject } from 'rxjs';
2
+ import { Navigation } from '../navigation/InternalNavigator';
3
+ import { PaginationInfo } from '../pagination/Pagination';
4
+
5
+ export declare class BridgeEvent {
6
+ navigationSubject: ReplaySubject<Navigation>;
7
+ viewportStateSubject: BehaviorSubject<"free" | "busy">;
8
+ paginationSubject: ReplaySubject<PaginationInfo>;
9
+ navigationIsLockedSubject: BehaviorSubject<boolean>;
10
+ pagination$: import('rxjs').Observable<PaginationInfo>;
11
+ navigationUnlocked$: import('rxjs').Observable<boolean>;
12
+ viewportState$: import('rxjs').Observable<"free" | "busy">;
13
+ viewportFree$: import('rxjs').Observable<"free">;
14
+ viewportBusy$: import('rxjs').Observable<"busy">;
15
+ navigation$: import('rxjs').Observable<Navigation>;
16
+ }
@@ -1,6 +1,7 @@
1
1
  import { BehaviorSubject, Subject } from 'rxjs';
2
2
  import { Manifest } from '@prose-reader/shared';
3
- import { LoadOptions } from '../types/reader';
3
+ import { BridgeEvent } from './BridgeEvent';
4
+ import { LoadOptions } from '../reader';
4
5
 
5
6
  export type State = Partial<Pick<LoadOptions, "containerElement">> & {
6
7
  manifest?: Manifest;
@@ -21,6 +22,7 @@ export type State = Partial<Pick<LoadOptions, "containerElement">> & {
21
22
  };
22
23
  export declare class Context {
23
24
  _stateSubject: BehaviorSubject<State>;
25
+ bridgeEvent: BridgeEvent;
24
26
  destroy$: Subject<void>;
25
27
  state$: import('rxjs').Observable<Partial<Pick<LoadOptions, "containerElement">> & {
26
28
  manifest?: Manifest;
@@ -6,14 +6,106 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
6
6
  item: {
7
7
  id: string;
8
8
  href: string;
9
- renditionLayout: `reflowable` | `pre-paginated`;
10
- progressionWeight: number;
11
- pageSpreadLeft: true | undefined;
12
- pageSpreadRight: true | undefined;
9
+ renditionLayout?: `reflowable` | `pre-paginated`;
10
+ progressionWeight?: number;
11
+ pageSpreadLeft?: true | undefined;
12
+ pageSpreadRight?: true | undefined;
13
13
  mediaType?: string;
14
14
  };
15
15
  }) => HTMLElement;
16
- }) => Omit<Omit<Omit<Omit<import('./types/reader').ReaderInternal & {
16
+ }) => Omit<Omit<Omit<{
17
+ context: import('./context/Context').Context;
18
+ spine: import('./spine/Spine').Spine;
19
+ hookManager: import('.').HookManager<import('./hooks/types').CoreHook>;
20
+ cfi: {
21
+ generateCfiFromRange: ({ startNode, start, end, endNode, }: {
22
+ startNode: Node;
23
+ start: number;
24
+ endNode: Node;
25
+ end: number;
26
+ }, item: import('@prose-reader/shared').Manifest[`spineItems`][number]) => {
27
+ start: string;
28
+ end: string;
29
+ };
30
+ resolveCfi: (params: Omit<Parameters<typeof import('./cfi/lookup/resolveCfi').resolveCfi>[0], "spineItemsManager">) => {
31
+ node: Node | undefined;
32
+ offset: number | undefined;
33
+ spineItemIndex: number;
34
+ } | {
35
+ spineItemIndex: number;
36
+ node?: undefined;
37
+ offset?: undefined;
38
+ } | undefined;
39
+ };
40
+ navigation: {
41
+ viewportFree$: import('rxjs').Observable<"free">;
42
+ viewportBusy$: import('rxjs').Observable<"busy">;
43
+ readonly viewportPosition: {
44
+ x: number;
45
+ y: number;
46
+ };
47
+ getNavigation: () => import('./navigation/InternalNavigator').InternalNavigationEntry;
48
+ getElement: () => HTMLElement;
49
+ navigate: (to: import('./navigation/UserNavigator').UserNavigationEntry) => void;
50
+ lock: () => () => void;
51
+ navigationResolver: {
52
+ getNavigationForUrl: (url: string | URL) => {
53
+ position: import('./navigation/viewport/ViewportNavigator').ViewportPosition;
54
+ spineItemId: string;
55
+ } | undefined;
56
+ getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./navigation/resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
57
+ getNavigationFromSpineItemPosition: (params: {
58
+ spineItemPosition: import('./spineItem/types').UnsafeSpineItemPosition;
59
+ spineItem: import('./spineItem/createSpineItem').SpineItem;
60
+ }) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
61
+ getNavigationForCfi: (cfi: string) => import('./navigation/viewport/ViewportNavigator').ViewportPosition | undefined;
62
+ getNavigationForLastPage: (spineItem: import('./spineItem/createSpineItem').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
63
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | import('./spineItem/createSpineItem').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
64
+ getNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
65
+ getMostPredominantNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
66
+ wrapPositionWithSafeEdge: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => {
67
+ x: number;
68
+ y: number;
69
+ };
70
+ isNavigationGoingForwardFrom: (to: import('./navigation/viewport/ViewportNavigator').ViewportPosition, from: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => boolean;
71
+ areNavigationDifferent: (a: import('./navigation/viewport/ViewportNavigator').ViewportPosition, b: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => boolean;
72
+ arePositionsDifferent: (a: {
73
+ x: number;
74
+ y: number;
75
+ }, b: {
76
+ x: number;
77
+ y: number;
78
+ }) => boolean;
79
+ getAdjustedPositionForSpread: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
80
+ spineItemNavigator: {
81
+ getNavigationForLastPage: (spineItem: import('./spineItem/createSpineItem').SpineItem) => import('./spineItem/types').SafeSpineItemPosition;
82
+ getNavigationForPosition: (spineItem: import('./spineItem/createSpineItem').SpineItem, position: import('./spineItem/types').UnsafeSpineItemPosition) => import('./spineItem/types').SafeSpineItemPosition;
83
+ getNavigationFromNode: (spineItem: import('./spineItem/createSpineItem').SpineItem, node: Node, offset: number) => import('./spineItem/types').SafeSpineItemPosition;
84
+ };
85
+ };
86
+ };
87
+ spineItemsObserver: import('./spine/SpineItemsObserver').SpineItemsObserver;
88
+ spineItemsManager: import('./spine/SpineItemsManager').SpineItemsManager;
89
+ layout: () => void;
90
+ load: (manifest: import('@prose-reader/shared').Manifest, loadOptions: import('./reader').LoadOptions) => void;
91
+ destroy: () => void;
92
+ pagination: {
93
+ pagination: import('./pagination/Pagination').PaginationInfo;
94
+ pagination$: import('rxjs').Observable<import('./pagination/Pagination').PaginationInfo>;
95
+ };
96
+ settings: import('./settings/SettingsInterface').SettingsInterface<NonNullable<import('./settings/types').CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
97
+ element$: import('rxjs').Observable<HTMLElement>;
98
+ $: {
99
+ state$: import('rxjs').Observable<{
100
+ supportedPageTurnAnimation: NonNullable<import('./reader').ContextSettings[`pageTurnAnimation`]>[];
101
+ supportedPageTurnMode: NonNullable<import('./reader').ContextSettings[`pageTurnMode`]>[];
102
+ supportedPageTurnDirection: NonNullable<import('./reader').ContextSettings[`pageTurnDirection`]>[];
103
+ supportedComputedPageTurnDirection: NonNullable<import('./reader').ContextSettings[`pageTurnDirection`]>[];
104
+ }>;
105
+ loadStatus$: import('rxjs').Observable<"idle" | "ready">;
106
+ destroy$: import('rxjs').Subject<void>;
107
+ };
108
+ } & {
17
109
  events: {
18
110
  normalizeEventForViewport: ReturnType<typeof import('./enhancers/events/normalizeEventForViewport').createNormalizeEventForViewport>;
19
111
  };
@@ -30,83 +122,11 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
30
122
  };
31
123
  }, "pagination"> & {
32
124
  pagination: Omit<{
33
- destroy: () => void;
34
- updateBeginAndEnd: ((begin: Parameters<(info: {
35
- spineItem: import('./spineItem/createSpineItem').SpineItem;
36
- pageIndex: number;
37
- cfi: string | undefined;
38
- options: {
39
- isAtEndOfChapter?: boolean;
40
- };
41
- }) => {
42
- numberOfPages: number;
43
- pageIndex: number;
44
- cfi: string | undefined;
45
- }>[0] & {
46
- spineItemIndex: number;
47
- }, end: Parameters<(info: {
48
- spineItem: import('./spineItem/createSpineItem').SpineItem;
49
- pageIndex: number;
50
- cfi: string | undefined;
51
- options: {
52
- isAtEndOfChapter?: boolean;
53
- };
54
- }) => {
55
- numberOfPages: number;
56
- pageIndex: number;
57
- cfi: string | undefined;
58
- }>[0] & {
59
- spineItemIndex: number;
60
- }) => void) | ((begin: {
61
- spineItem: import('./spineItem/createSpineItem').SpineItem;
62
- pageIndex: number;
63
- cfi: string | undefined;
64
- options: {
65
- isAtEndOfChapter?: boolean;
66
- };
67
- } & {
68
- spineItemIndex: number;
69
- }, end: {
70
- spineItem: import('./spineItem/createSpineItem').SpineItem;
71
- pageIndex: number;
72
- cfi: string | undefined;
73
- options: {
74
- isAtEndOfChapter?: boolean;
75
- };
76
- } & {
77
- spineItemIndex: number;
78
- }) => ReturnType<(begin: Parameters<(info: {
79
- spineItem: import('./spineItem/createSpineItem').SpineItem;
80
- pageIndex: number;
81
- cfi: string | undefined;
82
- options: {
83
- isAtEndOfChapter?: boolean;
84
- };
85
- }) => {
86
- numberOfPages: number;
87
- pageIndex: number;
88
- cfi: string | undefined;
89
- }>[0] & {
90
- spineItemIndex: number;
91
- }, end: Parameters<(info: {
92
- spineItem: import('./spineItem/createSpineItem').SpineItem;
93
- pageIndex: number;
94
- cfi: string | undefined;
95
- options: {
96
- isAtEndOfChapter?: boolean;
97
- };
98
- }) => {
99
- numberOfPages: number;
100
- pageIndex: number;
101
- cfi: string | undefined;
102
- }>[0] & {
103
- spineItemIndex: number;
104
- }) => void>);
105
- getPaginationInfo: () => import('./pagination/types').PaginationInfo;
106
- paginationInfo$: import('rxjs').Observable<import('./pagination/types').PaginationInfo>;
107
- }, "paginationInfo$" | "getPaginationInfo"> & {
108
- paginationInfo$: import('rxjs').Observable<import('./pagination/types').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo>;
109
- getPaginationInfo: () => import('./pagination/types').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo;
125
+ pagination: import('./pagination/Pagination').PaginationInfo;
126
+ pagination$: import('rxjs').Observable<import('./pagination/Pagination').PaginationInfo>;
127
+ }, "pagination" | "pagination$"> & {
128
+ pagination$: import('rxjs').Observable<import('./pagination/Pagination').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo>;
129
+ pagination: import('./pagination/Pagination').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo;
110
130
  };
111
131
  } & {
112
132
  theme: {
@@ -116,11 +136,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
116
136
  theme$: import('rxjs').Observable<import('./enhancers/theme').Theme>;
117
137
  };
118
138
  };
119
- } & {
120
- navigation: ReturnType<typeof import('./enhancers/navigation/navigator').createNavigator> & {
121
- state$: ReturnType<typeof import('./enhancers/navigation/state').createState>;
122
- };
123
- } & import('./enhancers/zoom/types').Api, "settings"> & {
139
+ } & import('./enhancers/navigation/types').NavigationEnhancerOutput & import('./enhancers/zoom/types').Api, "settings"> & {
124
140
  settings: import('./settings/SettingsInterface').SettingsInterface<import('./settings/types').CoreInputSettings & import('./enhancers/layoutEnhancer/types').InputSettings, import('./enhancers/layoutEnhancer/types').InputSettings & import('./settings/types').CoreInputSettings & import('./settings/types').ComputedCoreSettings>;
125
141
  } & {
126
142
  utils: {
@@ -144,84 +160,4 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
144
160
  }>;
145
161
  };
146
162
  };
147
- }, "pagination"> & {
148
- pagination: Pick<Omit<{
149
- destroy: () => void;
150
- updateBeginAndEnd: ((begin: Parameters<(info: {
151
- spineItem: import('./spineItem/createSpineItem').SpineItem;
152
- pageIndex: number;
153
- cfi: string | undefined;
154
- options: {
155
- isAtEndOfChapter?: boolean;
156
- };
157
- }) => {
158
- numberOfPages: number;
159
- pageIndex: number;
160
- cfi: string | undefined;
161
- }>[0] & {
162
- spineItemIndex: number;
163
- }, end: Parameters<(info: {
164
- spineItem: import('./spineItem/createSpineItem').SpineItem;
165
- pageIndex: number;
166
- cfi: string | undefined;
167
- options: {
168
- isAtEndOfChapter?: boolean;
169
- };
170
- }) => {
171
- numberOfPages: number;
172
- pageIndex: number;
173
- cfi: string | undefined;
174
- }>[0] & {
175
- spineItemIndex: number;
176
- }) => void) | ((begin: {
177
- spineItem: import('./spineItem/createSpineItem').SpineItem;
178
- pageIndex: number;
179
- cfi: string | undefined;
180
- options: {
181
- isAtEndOfChapter?: boolean;
182
- };
183
- } & {
184
- spineItemIndex: number;
185
- }, end: {
186
- spineItem: import('./spineItem/createSpineItem').SpineItem;
187
- pageIndex: number;
188
- cfi: string | undefined;
189
- options: {
190
- isAtEndOfChapter?: boolean;
191
- };
192
- } & {
193
- spineItemIndex: number;
194
- }) => ReturnType<(begin: Parameters<(info: {
195
- spineItem: import('./spineItem/createSpineItem').SpineItem;
196
- pageIndex: number;
197
- cfi: string | undefined;
198
- options: {
199
- isAtEndOfChapter?: boolean;
200
- };
201
- }) => {
202
- numberOfPages: number;
203
- pageIndex: number;
204
- cfi: string | undefined;
205
- }>[0] & {
206
- spineItemIndex: number;
207
- }, end: Parameters<(info: {
208
- spineItem: import('./spineItem/createSpineItem').SpineItem;
209
- pageIndex: number;
210
- cfi: string | undefined;
211
- options: {
212
- isAtEndOfChapter?: boolean;
213
- };
214
- }) => {
215
- numberOfPages: number;
216
- pageIndex: number;
217
- cfi: string | undefined;
218
- }>[0] & {
219
- spineItemIndex: number;
220
- }) => void>);
221
- getPaginationInfo: () => import('./pagination/types').PaginationInfo;
222
- paginationInfo$: import('rxjs').Observable<import('./pagination/types').PaginationInfo>;
223
- }, "paginationInfo$" | "getPaginationInfo"> & {
224
- paginationInfo$: import('rxjs').Observable<import('./pagination/types').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo>;
225
- getPaginationInfo: () => import('./pagination/types').PaginationInfo & import('./enhancers/pagination/types').ExtraPaginationInfo;
226
- }, "paginationInfo$" | "getPaginationInfo">;
227
163
  };
@@ -1,7 +1,7 @@
1
1
  import { BehaviorSubject } from 'rxjs';
2
- import { createLocationResolver } from '../../spine/locationResolver';
2
+ import { SpineLocator } from '../../spine/locator/SpineLocator';
3
3
 
4
4
  export declare const createNormalizeEventForViewport: ({ iframeEventBridgeElement$, locator, }: {
5
5
  iframeEventBridgeElement$: BehaviorSubject<HTMLElement | undefined>;
6
- locator: ReturnType<typeof createLocationResolver>;
6
+ locator: SpineLocator;
7
7
  }) => <E extends MouseEvent | TouchEvent | PointerEvent>(event: E) => E;
@@ -1,3 +1,4 @@
1
1
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from './types/enhancer';
2
+ import { NavigationEnhancerOutput } from './navigation/types';
2
3
 
3
- export declare const hotkeysEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput;
4
+ export declare const hotkeysEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer> & NavigationEnhancerOutput>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput;
@@ -1,12 +1,13 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from './types/enhancer';
3
+ import { NavigationEnhancerOutput } from './navigation/types';
3
4
 
4
5
  type SubjectData = {
5
6
  event: `linkClicked`;
6
7
  data: HTMLAnchorElement;
7
8
  isNavigable: boolean;
8
9
  };
9
- export declare const linksEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
10
+ export declare const linksEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer> & NavigationEnhancerOutput>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
10
11
  $: {
11
12
  links$: Observable<SubjectData>;
12
13
  };
@@ -1,5 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
- import { Manifest } from '../types';
2
+ import { Manifest } from '..';
3
3
  import { EnhancerOutput } from './types/enhancer';
4
4
  import { themeEnhancer } from './theme';
5
5
 
@@ -1,9 +1,4 @@
1
1
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from '../types/enhancer';
2
- import { createNavigator } from './navigator';
3
- import { createState } from './state';
2
+ import { NavigationEnhancerOutput } from './types';
4
3
 
5
- export declare const navigationEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
6
- navigation: ReturnType<typeof createNavigator> & {
7
- state$: ReturnType<typeof createState>;
8
- };
9
- };
4
+ export declare const navigationEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & NavigationEnhancerOutput;
@@ -0,0 +1,27 @@
1
+ import { Reader } from '../../../reader';
2
+ import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
3
+
4
+ export declare class ManualNavigator {
5
+ protected reader: Reader;
6
+ movingLastDelta: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ movingLastPosition: ViewportPosition;
11
+ unlock: ReturnType<Reader["navigation"]["lock"]> | undefined;
12
+ constructor(reader: Reader);
13
+ turnRight(): void;
14
+ turnLeft(): void;
15
+ goToCfi(cfi: string, options?: {
16
+ animate: boolean;
17
+ }): void;
18
+ goToSpineItem(indexOrId: number | string): void;
19
+ goToNextSpineItem(): void;
20
+ goToPreviousSpineItem(): void;
21
+ goToUrl(url: string | URL): void;
22
+ goToRightSpineItem(): void;
23
+ goToLeftSpineItem(): void;
24
+ goToTopSpineItem(): void;
25
+ goToBottomSpineItem(): void;
26
+ goToPageOfSpineItem(pageIndex: number, spineItemId: string | number): void;
27
+ }
@@ -0,0 +1,21 @@
1
+ import { Reader } from '../../../reader';
2
+ import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
3
+
4
+ export declare class PanNavigator {
5
+ protected reader: Reader;
6
+ lastDelta: {
7
+ x: number;
8
+ y: number;
9
+ };
10
+ lastPosition: ViewportPosition;
11
+ lastStartPosition: ViewportPosition;
12
+ unlock: ReturnType<Reader["navigation"]["lock"]> | undefined;
13
+ constructor(reader: Reader);
14
+ moveTo(delta: {
15
+ x: number;
16
+ y: number;
17
+ } | undefined, { final, start }?: {
18
+ start?: boolean;
19
+ final?: boolean;
20
+ }): void;
21
+ }
@@ -0,0 +1,16 @@
1
+ import { Context } from '../../../context/Context';
2
+ import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
+ import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
+ import { SpineItem } from '../../../spineItem/createSpineItem';
6
+ import { SpineItemsManager } from '../../../spine/SpineItemsManager';
7
+
8
+ export declare const getNavigationForLeftPage: ({ position, spineItem, context, navigationResolver, spineItemsManager, spineLocator, computedPageTurnDirection, }: {
9
+ position: ViewportPosition;
10
+ spineItem: SpineItem;
11
+ context: Context;
12
+ spineItemsManager: SpineItemsManager;
13
+ navigationResolver: NavigationResolver;
14
+ spineLocator: SpineLocator;
15
+ computedPageTurnDirection: "horizontal" | "vertical";
16
+ }) => ViewportPosition;
@@ -0,0 +1,14 @@
1
+ import { Context } from '../../../context/Context';
2
+ import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
+ import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
+ import { SpineItemsManager } from '../../../spine/SpineItemsManager';
6
+
7
+ export declare const getNavigationForLeftSinglePage: ({ position, navigationResolver, computedPageTurnDirection, spineItemsManager, spineLocator, context, }: {
8
+ position: ViewportPosition;
9
+ navigationResolver: NavigationResolver;
10
+ computedPageTurnDirection: "horizontal" | "vertical";
11
+ spineItemsManager: SpineItemsManager;
12
+ spineLocator: SpineLocator;
13
+ context: Context;
14
+ }) => ViewportPosition;
@@ -0,0 +1,16 @@
1
+ import { Context } from '../../../context/Context';
2
+ import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
+ import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
+ import { SpineItem } from '../../../spineItem/createSpineItem';
6
+ import { SpineItemsManager } from '../../../spine/SpineItemsManager';
7
+
8
+ export declare const getNavigationForRightPage: ({ position, spineItem, context, navigationResolver, spineItemsManager, spineLocator, computedPageTurnDirection, }: {
9
+ position: ViewportPosition;
10
+ spineItem: SpineItem;
11
+ context: Context;
12
+ spineItemsManager: SpineItemsManager;
13
+ navigationResolver: NavigationResolver;
14
+ spineLocator: SpineLocator;
15
+ computedPageTurnDirection: "horizontal" | "vertical";
16
+ }) => ViewportPosition;
@@ -0,0 +1,14 @@
1
+ import { Context } from '../../../context/Context';
2
+ import { NavigationResolver } from '../../../navigation/resolvers/NavigationResolver';
3
+ import { ViewportPosition } from '../../../navigation/viewport/ViewportNavigator';
4
+ import { SpineLocator } from '../../../spine/locator/SpineLocator';
5
+ import { SpineItemsManager } from '../../../spine/SpineItemsManager';
6
+
7
+ export declare const getNavigationForRightSinglePage: ({ position, navigationResolver, computedPageTurnDirection, spineItemsManager, spineLocator, context, }: {
8
+ position: ViewportPosition;
9
+ navigationResolver: NavigationResolver;
10
+ computedPageTurnDirection: "horizontal" | "vertical";
11
+ spineItemsManager: SpineItemsManager;
12
+ spineLocator: SpineLocator;
13
+ context: Context;
14
+ }) => ViewportPosition;
@@ -0,0 +1,11 @@
1
+ import { SpineItem } from '../../../spineItem/createSpineItem';
2
+ import { SpineItemLocator } from '../../../spineItem/locationResolver';
3
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../../spineItem/types';
4
+
5
+ export declare const getSpineItemPositionForLeftPage: ({ position, spineItem, pageHeight, pageWidth, spineItemLocator, }: {
6
+ position: UnsafeSpineItemPosition;
7
+ spineItem: SpineItem;
8
+ pageWidth: number;
9
+ pageHeight: number;
10
+ spineItemLocator: SpineItemLocator;
11
+ }) => SafeSpineItemPosition;
@@ -0,0 +1,11 @@
1
+ import { SpineItem } from '../../../spineItem/createSpineItem';
2
+ import { SpineItemLocator } from '../../../spineItem/locationResolver';
3
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../../spineItem/types';
4
+
5
+ export declare const getSpineItemPositionForRightPage: ({ position, spineItem, pageHeight, pageWidth, spineItemLocator, }: {
6
+ position: UnsafeSpineItemPosition;
7
+ spineItem: SpineItem;
8
+ pageWidth: number;
9
+ pageHeight: number;
10
+ spineItemLocator: SpineItemLocator;
11
+ }) => SafeSpineItemPosition;
@@ -1,10 +1,7 @@
1
1
  import { Reader } from '../../reader';
2
2
 
3
- export type State = {
4
- canGoLeftSpineItem: boolean;
5
- canGoRightSpineItem: boolean;
6
- };
7
- export declare const createState: (reader: Reader) => import('rxjs').Observable<{
3
+ export type State = ReturnType<typeof observeState>;
4
+ export declare const observeState: (reader: Reader) => import('rxjs').Observable<{
8
5
  canGoTopSpineItem: boolean;
9
6
  canGoBottomSpineItem: boolean;
10
7
  canGoLeftSpineItem: boolean;
@@ -0,0 +1,20 @@
1
+ import { ManualNavigator } from './navigators/manualNavigator';
2
+ import { PanNavigator } from './navigators/panNavigator';
3
+ import { observeState } from './state';
4
+
5
+ export type NavigationEnhancerOutput = {
6
+ navigation: {
7
+ state$: ReturnType<typeof observeState>;
8
+ moveTo: PanNavigator["moveTo"];
9
+ turnLeft: ManualNavigator["turnLeft"];
10
+ turnRight: ManualNavigator["turnRight"];
11
+ goToCfi: ManualNavigator["goToCfi"];
12
+ goToSpineItem: ManualNavigator["goToSpineItem"];
13
+ goToLeftSpineItem: ManualNavigator["goToLeftSpineItem"];
14
+ goToRightSpineItem: ManualNavigator["goToRightSpineItem"];
15
+ goToTopSpineItem: ManualNavigator["goToTopSpineItem"];
16
+ goToBottomSpineItem: ManualNavigator["goToBottomSpineItem"];
17
+ goToUrl: ManualNavigator["goToUrl"];
18
+ goToPageOfSpineItem: ManualNavigator["goToPageOfSpineItem"];
19
+ };
20
+ };