@prose-reader/core 1.72.0 → 1.74.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 (64) hide show
  1. package/dist/cfi/generate/{getCfiForSpineItemPage.d.ts → generateCfiForSpineItemPage.d.ts} +1 -1
  2. package/dist/cfi/lookup/resolveCfi.d.ts +236 -0
  3. package/dist/constants.d.ts +0 -1
  4. package/dist/context/Context.d.ts +6 -29
  5. package/dist/createReaderWithEnhancer.d.ts +252 -9
  6. package/dist/enhancers/events/events.d.ts +1 -6
  7. package/dist/enhancers/events/frames.d.ts +3 -0
  8. package/dist/enhancers/events/normalizeEventForViewport.d.ts +1 -5
  9. package/dist/enhancers/navigation/index.d.ts +1 -1
  10. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +4 -0
  11. package/dist/enhancers/navigation/resolvers/{getNavigationForLeftPage.d.ts → getNavigationForLeftOrTopPage.d.ts} +1 -1
  12. package/dist/enhancers/navigation/resolvers/{getNavigationForRightPage.d.ts → getNavigationForRightOrBottomPage.d.ts} +1 -1
  13. package/dist/enhancers/navigation/types.d.ts +8 -0
  14. package/dist/enhancers/zoom/ControllableZoomer.d.ts +19 -0
  15. package/dist/enhancers/zoom/ScrollableZoomer.d.ts +16 -0
  16. package/dist/enhancers/zoom/Zoomer.d.ts +21 -0
  17. package/dist/enhancers/zoom/index.d.ts +2 -2
  18. package/dist/enhancers/zoom/types.d.ts +10 -12
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.js +1021 -923
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.umd.cjs +1041 -941
  23. package/dist/index.umd.cjs.map +1 -1
  24. package/dist/navigation/InternalNavigator.d.ts +3 -5
  25. package/dist/navigation/Navigator.d.ts +1 -3
  26. package/dist/navigation/UserNavigator.d.ts +3 -1
  27. package/dist/navigation/consolidation/withSpineItemLayoutInfo.d.ts +3 -3
  28. package/dist/navigation/consolidation/withSpineItemPosition.d.ts +0 -2
  29. package/dist/navigation/resolvers/NavigationResolver.d.ts +3 -1
  30. package/dist/navigation/resolvers/getAdjustedPositionWithSafeEdge.d.ts +3 -1
  31. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +3 -1
  32. package/dist/navigation/restoration/restorePosition.d.ts +3 -1
  33. package/dist/navigation/restoration/withRestoredPosition.d.ts +3 -7
  34. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +2 -1
  35. package/dist/navigation/tests/utils.d.ts +2 -0
  36. package/dist/navigation/viewport/getScaledDownPosition.d.ts +2 -3
  37. package/dist/reader.d.ts +260 -18
  38. package/dist/settings/SettingsInterface.d.ts +2 -2
  39. package/dist/settings/SettingsManager.d.ts +2 -2
  40. package/dist/settings/SettingsManagerOverload.d.ts +2 -2
  41. package/dist/spine/Spine.d.ts +5 -2
  42. package/dist/spine/SpineItemsManager.d.ts +5 -26
  43. package/dist/spine/SpineItemsObserver.d.ts +3 -1
  44. package/dist/spine/SpineLayout.d.ts +49 -0
  45. package/dist/spine/layout/convertViewportPositionToLayoutPosition.d.ts +10 -0
  46. package/dist/spine/loader/SpineItemsLoader.d.ts +3 -1
  47. package/dist/spine/locator/SpineLocator.d.ts +146 -5
  48. package/dist/spine/locator/getAbsolutePageIndexFromPageIndex.d.ts +14 -0
  49. package/dist/spine/locator/getSpineInfoFromAbsolutePageIndex.d.ts +134 -0
  50. package/dist/spine/locator/getSpineItemFromPosition.d.ts +3 -1
  51. package/dist/spine/locator/getSpinePositionFromSpineItemPageIndex.d.ts +13 -0
  52. package/dist/spine/locator/getSpinePositionFromSpineItemPosition.d.ts +10 -0
  53. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +3 -1
  54. package/dist/spineItem/locationResolver.d.ts +12 -2
  55. package/dist/spineItem/locator/getSpineItemNumberOfPages.d.ts +10 -0
  56. package/dist/spineItem/locator/getSpineItemPagesPosition.d.ts +12 -0
  57. package/dist/spineItem/locator/getSpineItemPositionFromPageIndex.d.ts +12 -0
  58. package/dist/utils/frames.d.ts +1 -0
  59. package/dist/utils/objects.d.ts +1 -6
  60. package/package.json +3 -3
  61. package/dist/enhancers/events/createIframeEventBridgeElement.d.ts +0 -1
  62. package/dist/enhancers/zoom/elementZoomer.d.ts +0 -19
  63. package/dist/enhancers/zoom/viewportZoomer.d.ts +0 -19
  64. package/dist/frames.d.ts +0 -5
@@ -1,7 +1,7 @@
1
1
  import { SpineItem } from '../../spineItem/createSpineItem';
2
2
  import { SpineItemLocator } from '../../spineItem/locationResolver';
3
3
 
4
- export declare const getCfi: (({ pageIndex, spineItem, spineItemLocator, }: {
4
+ export declare const generateCfiForSpineItemPage: (({ pageIndex, spineItem, spineItemLocator, }: {
5
5
  pageIndex: number;
6
6
  spineItem: SpineItem;
7
7
  spineItemLocator: SpineItemLocator;
@@ -7,8 +7,244 @@ export declare const resolveCfi: ({ cfi, spineItemsManager, }: {
7
7
  node: Node | undefined;
8
8
  offset: number | undefined;
9
9
  spineItemIndex: number;
10
+ spineItem: {
11
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
12
+ blankPagePosition: `before` | `after` | `none`;
13
+ minimumWidth: number;
14
+ spreadPosition: `none` | `left` | `right`;
15
+ }) => {
16
+ width: number;
17
+ height: number;
18
+ };
19
+ item: {
20
+ id: string;
21
+ href: string;
22
+ renditionLayout?: `reflowable` | `pre-paginated`;
23
+ progressionWeight?: number;
24
+ pageSpreadLeft?: true | undefined;
25
+ pageSpreadRight?: true | undefined;
26
+ mediaType?: string;
27
+ };
28
+ overlayElement: HTMLDivElement;
29
+ adjustPositionOfElement: ({ right, left, top, }: {
30
+ right?: number;
31
+ left?: number;
32
+ top?: number;
33
+ }) => void;
34
+ getElementDimensions: () => {
35
+ width: number;
36
+ height: number;
37
+ x: number;
38
+ y: number;
39
+ bottom: number;
40
+ left: number;
41
+ right: number;
42
+ top: number;
43
+ toJSON(): any;
44
+ };
45
+ getHtmlFromResource: (response: Response) => Promise<string>;
46
+ getResource: () => Promise<Response>;
47
+ translateFramePositionIntoPage: (position: {
48
+ clientX: number;
49
+ clientY: number;
50
+ }) => {
51
+ clientX: number;
52
+ clientY: number;
53
+ };
54
+ injectStyle: (cssText: string) => void;
55
+ load: () => void;
56
+ unload: () => void;
57
+ frame: import('../../spineItem/frame/FrameItem').FrameItem;
58
+ element: HTMLElement;
59
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
60
+ getViewPortInformation: () => {
61
+ computedScale: number;
62
+ computedWidthScale: number;
63
+ viewportDimensions: {
64
+ width: number;
65
+ height: number;
66
+ };
67
+ } | undefined;
68
+ isImageType: () => boolean;
69
+ isReady: () => boolean;
70
+ destroy: () => void;
71
+ readingDirection: "ltr" | "rtl" | undefined;
72
+ isUsingVerticalWriting: () => boolean | undefined;
73
+ executeOnLayoutBeforeMeasurementHook: (options: {
74
+ minimumWidth: number;
75
+ }) => void[];
76
+ selectionTracker: {
77
+ track: (frameToTrack: HTMLIFrameElement) => void;
78
+ destroy: () => void;
79
+ isSelecting: () => boolean;
80
+ getSelection: () => Selection | undefined;
81
+ $: import('rxjs').Observable<{
82
+ event: `selectionchange`;
83
+ data: Selection | null;
84
+ } | {
85
+ event: `selectstart`;
86
+ data: Selection | null;
87
+ } | {
88
+ event: `selectend`;
89
+ data: Selection | null;
90
+ }>;
91
+ };
92
+ fingerTracker: {
93
+ track: (frame: HTMLIFrameElement) => void;
94
+ getFingerPositionInIframe(): {
95
+ x: number | undefined;
96
+ y: number | undefined;
97
+ } | undefined;
98
+ destroy: () => void;
99
+ $: import('rxjs').Observable<{
100
+ event: `fingermove`;
101
+ data: {
102
+ x: number;
103
+ y: number;
104
+ };
105
+ } | {
106
+ event: `fingerout`;
107
+ data: undefined;
108
+ }>;
109
+ };
110
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
111
+ columnHeight: number;
112
+ columnWidth: number;
113
+ width: number;
114
+ };
115
+ getDimensionsForPaginatedContent: () => {
116
+ columnHeight: number;
117
+ columnWidth: number;
118
+ };
119
+ $: {
120
+ contentLayout$: import('rxjs').Observable<{
121
+ isFirstLayout: boolean;
122
+ isReady: boolean;
123
+ }>;
124
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
125
+ isReady$: import('rxjs').Observable<boolean>;
126
+ };
127
+ };
10
128
  } | {
11
129
  spineItemIndex: number;
130
+ spineItem: {
131
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
132
+ blankPagePosition: `before` | `after` | `none`;
133
+ minimumWidth: number;
134
+ spreadPosition: `none` | `left` | `right`;
135
+ }) => {
136
+ width: number;
137
+ height: number;
138
+ };
139
+ item: {
140
+ id: string;
141
+ href: string;
142
+ renditionLayout?: `reflowable` | `pre-paginated`;
143
+ progressionWeight?: number;
144
+ pageSpreadLeft?: true | undefined;
145
+ pageSpreadRight?: true | undefined;
146
+ mediaType?: string;
147
+ };
148
+ overlayElement: HTMLDivElement;
149
+ adjustPositionOfElement: ({ right, left, top, }: {
150
+ right?: number;
151
+ left?: number;
152
+ top?: number;
153
+ }) => void;
154
+ getElementDimensions: () => {
155
+ width: number;
156
+ height: number;
157
+ x: number;
158
+ y: number;
159
+ bottom: number;
160
+ left: number;
161
+ right: number;
162
+ top: number;
163
+ toJSON(): any;
164
+ };
165
+ getHtmlFromResource: (response: Response) => Promise<string>;
166
+ getResource: () => Promise<Response>;
167
+ translateFramePositionIntoPage: (position: {
168
+ clientX: number;
169
+ clientY: number;
170
+ }) => {
171
+ clientX: number;
172
+ clientY: number;
173
+ };
174
+ injectStyle: (cssText: string) => void;
175
+ load: () => void;
176
+ unload: () => void;
177
+ frame: import('../../spineItem/frame/FrameItem').FrameItem;
178
+ element: HTMLElement;
179
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
180
+ getViewPortInformation: () => {
181
+ computedScale: number;
182
+ computedWidthScale: number;
183
+ viewportDimensions: {
184
+ width: number;
185
+ height: number;
186
+ };
187
+ } | undefined;
188
+ isImageType: () => boolean;
189
+ isReady: () => boolean;
190
+ destroy: () => void;
191
+ readingDirection: "ltr" | "rtl" | undefined;
192
+ isUsingVerticalWriting: () => boolean | undefined;
193
+ executeOnLayoutBeforeMeasurementHook: (options: {
194
+ minimumWidth: number;
195
+ }) => void[];
196
+ selectionTracker: {
197
+ track: (frameToTrack: HTMLIFrameElement) => void;
198
+ destroy: () => void;
199
+ isSelecting: () => boolean;
200
+ getSelection: () => Selection | undefined;
201
+ $: import('rxjs').Observable<{
202
+ event: `selectionchange`;
203
+ data: Selection | null;
204
+ } | {
205
+ event: `selectstart`;
206
+ data: Selection | null;
207
+ } | {
208
+ event: `selectend`;
209
+ data: Selection | null;
210
+ }>;
211
+ };
212
+ fingerTracker: {
213
+ track: (frame: HTMLIFrameElement) => void;
214
+ getFingerPositionInIframe(): {
215
+ x: number | undefined;
216
+ y: number | undefined;
217
+ } | undefined;
218
+ destroy: () => void;
219
+ $: import('rxjs').Observable<{
220
+ event: `fingermove`;
221
+ data: {
222
+ x: number;
223
+ y: number;
224
+ };
225
+ } | {
226
+ event: `fingerout`;
227
+ data: undefined;
228
+ }>;
229
+ };
230
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
231
+ columnHeight: number;
232
+ columnWidth: number;
233
+ width: number;
234
+ };
235
+ getDimensionsForPaginatedContent: () => {
236
+ columnHeight: number;
237
+ columnWidth: number;
238
+ };
239
+ $: {
240
+ contentLayout$: import('rxjs').Observable<{
241
+ isFirstLayout: boolean;
242
+ isReady: boolean;
243
+ }>;
244
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
245
+ isReady$: import('rxjs').Observable<boolean>;
246
+ };
247
+ };
12
248
  node?: undefined;
13
249
  offset?: undefined;
14
250
  } | undefined;
@@ -1,4 +1,3 @@
1
- export declare const __UNSAFE_REFERENCE_ORIGINAL_IFRAME_EVENT_KEY = "__UNSAFE_REFERENCE_ORIGINAL_IFRAME_EVENT";
2
1
  export declare const PROSE_READER_NAMESPACE = "@prose-reader/core";
3
2
  export declare const VIEWPORT_ADJUSTMENT_THROTTLE = 0;
4
3
  export declare const PAGINATION_UPDATE_AFTER_VIEWPORT_ADJUSTMENT_DEBOUNCE = 200;
@@ -1,9 +1,9 @@
1
1
  import { BehaviorSubject, Subject } from 'rxjs';
2
2
  import { Manifest } from '@prose-reader/shared';
3
3
  import { BridgeEvent } from './BridgeEvent';
4
- import { LoadOptions } from '../reader';
5
4
 
6
- export type State = Partial<Pick<LoadOptions, "containerElement">> & {
5
+ export type ContextState = {
6
+ containerElement?: HTMLElement;
7
7
  manifest?: Manifest;
8
8
  hasVerticalWriting?: boolean;
9
9
  isUsingSpreadMode?: boolean;
@@ -21,40 +21,17 @@ export type State = Partial<Pick<LoadOptions, "containerElement">> & {
21
21
  };
22
22
  };
23
23
  export declare class Context {
24
- _stateSubject: BehaviorSubject<State>;
24
+ _stateSubject: BehaviorSubject<ContextState>;
25
25
  bridgeEvent: BridgeEvent;
26
26
  destroy$: Subject<void>;
27
- state$: import('rxjs').Observable<Partial<Pick<LoadOptions, "containerElement">> & {
28
- manifest?: Manifest;
29
- hasVerticalWriting?: boolean;
30
- isUsingSpreadMode?: boolean;
31
- isFullyPrePaginated?: boolean;
32
- forceSinglePageMode?: boolean;
33
- areAllItemsPrePaginated?: boolean;
34
- calculatedInnerMargin: number;
35
- marginTop: number;
36
- marginBottom: number;
37
- visibleAreaRect: {
38
- width: number;
39
- height: number;
40
- x: number;
41
- y: number;
42
- };
43
- }>;
27
+ state$: import('rxjs').Observable<ContextState>;
44
28
  manifest$: import('rxjs').Observable<Manifest>;
45
29
  containerElement$: import('rxjs').Observable<HTMLElement>;
46
30
  hasVerticalWriting$: import('rxjs').Observable<boolean>;
47
31
  isUsingSpreadMode$: import('rxjs').Observable<boolean | undefined>;
48
- update(newState: {
49
- manifest?: Manifest;
50
- forceSinglePageMode?: boolean;
51
- visibleAreaRect?: State["visibleAreaRect"];
52
- marginTop?: number;
53
- marginBottom?: number;
54
- hasVerticalWriting?: boolean;
55
- }): void;
32
+ update(newState: Partial<ContextState>): void;
56
33
  isRTL: () => boolean;
57
- get state(): State;
34
+ get state(): ContextState;
58
35
  get manifest(): Manifest | undefined;
59
36
  get readingDirection(): "ltr" | "rtl" | undefined;
60
37
  getPageSize(): {
@@ -13,7 +13,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
13
13
  mediaType?: string;
14
14
  };
15
15
  }) => HTMLElement;
16
- }) => Omit<Omit<Omit<{
16
+ }) => Omit<Omit<Omit<Omit<{
17
17
  context: import('./context/Context').Context;
18
18
  spine: import('./spine/Spine').Spine;
19
19
  hookManager: import('.').HookManager<import('./hooks/types').CoreHook>;
@@ -27,12 +27,252 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
27
27
  start: string;
28
28
  end: string;
29
29
  };
30
+ generateCfiForSpineItemPage: (params: {
31
+ pageIndex: number;
32
+ spineItem: import('./spineItem/createSpineItem').SpineItem;
33
+ }) => string;
30
34
  resolveCfi: (params: Omit<Parameters<typeof import('./cfi/lookup/resolveCfi').resolveCfi>[0], "spineItemsManager">) => {
31
35
  node: Node | undefined;
32
36
  offset: number | undefined;
33
37
  spineItemIndex: number;
38
+ spineItem: {
39
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
40
+ blankPagePosition: `before` | `after` | `none`;
41
+ minimumWidth: number;
42
+ spreadPosition: `none` | `left` | `right`;
43
+ }) => {
44
+ width: number;
45
+ height: number;
46
+ };
47
+ item: {
48
+ id: string;
49
+ href: string;
50
+ renditionLayout?: `reflowable` | `pre-paginated`;
51
+ progressionWeight?: number;
52
+ pageSpreadLeft?: true | undefined;
53
+ pageSpreadRight?: true | undefined;
54
+ mediaType?: string;
55
+ };
56
+ overlayElement: HTMLDivElement;
57
+ adjustPositionOfElement: ({ right, left, top, }: {
58
+ right?: number;
59
+ left?: number;
60
+ top?: number;
61
+ }) => void;
62
+ getElementDimensions: () => {
63
+ width: number;
64
+ height: number;
65
+ x: number;
66
+ y: number;
67
+ bottom: number;
68
+ left: number;
69
+ right: number;
70
+ top: number;
71
+ toJSON(): any;
72
+ };
73
+ getHtmlFromResource: (response: Response) => Promise<string>;
74
+ getResource: () => Promise<Response>;
75
+ translateFramePositionIntoPage: (position: {
76
+ clientX: number;
77
+ clientY: number;
78
+ }) => {
79
+ clientX: number;
80
+ clientY: number;
81
+ };
82
+ injectStyle: (cssText: string) => void;
83
+ load: () => void;
84
+ unload: () => void;
85
+ frame: import('./spineItem/frame/FrameItem').FrameItem;
86
+ element: HTMLElement;
87
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
88
+ getViewPortInformation: () => {
89
+ computedScale: number;
90
+ computedWidthScale: number;
91
+ viewportDimensions: {
92
+ width: number;
93
+ height: number;
94
+ };
95
+ } | undefined;
96
+ isImageType: () => boolean;
97
+ isReady: () => boolean;
98
+ destroy: () => void;
99
+ readingDirection: "ltr" | "rtl" | undefined;
100
+ isUsingVerticalWriting: () => boolean | undefined;
101
+ executeOnLayoutBeforeMeasurementHook: (options: {
102
+ minimumWidth: number;
103
+ }) => void[];
104
+ selectionTracker: {
105
+ track: (frameToTrack: HTMLIFrameElement) => void;
106
+ destroy: () => void;
107
+ isSelecting: () => boolean;
108
+ getSelection: () => Selection | undefined;
109
+ $: import('rxjs').Observable<{
110
+ event: `selectionchange`;
111
+ data: Selection | null;
112
+ } | {
113
+ event: `selectstart`;
114
+ data: Selection | null;
115
+ } | {
116
+ event: `selectend`;
117
+ data: Selection | null;
118
+ }>;
119
+ };
120
+ fingerTracker: {
121
+ track: (frame: HTMLIFrameElement) => void;
122
+ getFingerPositionInIframe(): {
123
+ x: number | undefined;
124
+ y: number | undefined;
125
+ } | undefined;
126
+ destroy: () => void;
127
+ $: import('rxjs').Observable<{
128
+ event: `fingermove`;
129
+ data: {
130
+ x: number;
131
+ y: number;
132
+ };
133
+ } | {
134
+ event: `fingerout`;
135
+ data: undefined;
136
+ }>;
137
+ };
138
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
139
+ columnHeight: number;
140
+ columnWidth: number;
141
+ width: number;
142
+ };
143
+ getDimensionsForPaginatedContent: () => {
144
+ columnHeight: number;
145
+ columnWidth: number;
146
+ };
147
+ $: {
148
+ contentLayout$: import('rxjs').Observable<{
149
+ isFirstLayout: boolean;
150
+ isReady: boolean;
151
+ }>;
152
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
153
+ isReady$: import('rxjs').Observable<boolean>;
154
+ };
155
+ };
34
156
  } | {
35
157
  spineItemIndex: number;
158
+ spineItem: {
159
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
160
+ blankPagePosition: `before` | `after` | `none`;
161
+ minimumWidth: number;
162
+ spreadPosition: `none` | `left` | `right`;
163
+ }) => {
164
+ width: number;
165
+ height: number;
166
+ };
167
+ item: {
168
+ id: string;
169
+ href: string;
170
+ renditionLayout?: `reflowable` | `pre-paginated`;
171
+ progressionWeight?: number;
172
+ pageSpreadLeft?: true | undefined;
173
+ pageSpreadRight?: true | undefined;
174
+ mediaType?: string;
175
+ };
176
+ overlayElement: HTMLDivElement;
177
+ adjustPositionOfElement: ({ right, left, top, }: {
178
+ right?: number;
179
+ left?: number;
180
+ top?: number;
181
+ }) => void;
182
+ getElementDimensions: () => {
183
+ width: number;
184
+ height: number;
185
+ x: number;
186
+ y: number;
187
+ bottom: number;
188
+ left: number;
189
+ right: number;
190
+ top: number;
191
+ toJSON(): any;
192
+ };
193
+ getHtmlFromResource: (response: Response) => Promise<string>;
194
+ getResource: () => Promise<Response>;
195
+ translateFramePositionIntoPage: (position: {
196
+ clientX: number;
197
+ clientY: number;
198
+ }) => {
199
+ clientX: number;
200
+ clientY: number;
201
+ };
202
+ injectStyle: (cssText: string) => void;
203
+ load: () => void;
204
+ unload: () => void;
205
+ frame: import('./spineItem/frame/FrameItem').FrameItem;
206
+ element: HTMLElement;
207
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
208
+ getViewPortInformation: () => {
209
+ computedScale: number;
210
+ computedWidthScale: number;
211
+ viewportDimensions: {
212
+ width: number;
213
+ height: number;
214
+ };
215
+ } | undefined;
216
+ isImageType: () => boolean;
217
+ isReady: () => boolean;
218
+ destroy: () => void;
219
+ readingDirection: "ltr" | "rtl" | undefined;
220
+ isUsingVerticalWriting: () => boolean | undefined;
221
+ executeOnLayoutBeforeMeasurementHook: (options: {
222
+ minimumWidth: number;
223
+ }) => void[];
224
+ selectionTracker: {
225
+ track: (frameToTrack: HTMLIFrameElement) => void;
226
+ destroy: () => void;
227
+ isSelecting: () => boolean;
228
+ getSelection: () => Selection | undefined;
229
+ $: import('rxjs').Observable<{
230
+ event: `selectionchange`;
231
+ data: Selection | null;
232
+ } | {
233
+ event: `selectstart`;
234
+ data: Selection | null;
235
+ } | {
236
+ event: `selectend`;
237
+ data: Selection | null;
238
+ }>;
239
+ };
240
+ fingerTracker: {
241
+ track: (frame: HTMLIFrameElement) => void;
242
+ getFingerPositionInIframe(): {
243
+ x: number | undefined;
244
+ y: number | undefined;
245
+ } | undefined;
246
+ destroy: () => void;
247
+ $: import('rxjs').Observable<{
248
+ event: `fingermove`;
249
+ data: {
250
+ x: number;
251
+ y: number;
252
+ };
253
+ } | {
254
+ event: `fingerout`;
255
+ data: undefined;
256
+ }>;
257
+ };
258
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
259
+ columnHeight: number;
260
+ columnWidth: number;
261
+ width: number;
262
+ };
263
+ getDimensionsForPaginatedContent: () => {
264
+ columnHeight: number;
265
+ columnWidth: number;
266
+ };
267
+ $: {
268
+ contentLayout$: import('rxjs').Observable<{
269
+ isFirstLayout: boolean;
270
+ isReady: boolean;
271
+ }>;
272
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
273
+ isReady$: import('rxjs').Observable<boolean>;
274
+ };
275
+ };
36
276
  node?: undefined;
37
277
  offset?: undefined;
38
278
  } | undefined;
@@ -40,7 +280,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
40
280
  navigation: {
41
281
  viewportFree$: import('rxjs').Observable<"free">;
42
282
  viewportBusy$: import('rxjs').Observable<"busy">;
43
- readonly viewportPosition: {
283
+ getViewportPosition: () => {
44
284
  x: number;
45
285
  y: number;
46
286
  };
@@ -87,7 +327,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
87
327
  spineItemsObserver: import('./spine/SpineItemsObserver').SpineItemsObserver;
88
328
  spineItemsManager: import('./spine/SpineItemsManager').SpineItemsManager;
89
329
  layout: () => void;
90
- load: (manifest: import('@prose-reader/shared').Manifest, loadOptions: import('./reader').LoadOptions) => void;
330
+ load: (options: Required<Pick<import('./context/Context').ContextState, "manifest" | "containerElement">>) => void;
91
331
  destroy: () => void;
92
332
  pagination: {
93
333
  state: import('./pagination/Pagination').PaginationInfo;
@@ -95,6 +335,14 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
95
335
  };
96
336
  settings: import('./settings/SettingsInterface').SettingsInterface<NonNullable<import('./settings/types').CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
97
337
  element$: import('rxjs').Observable<HTMLElement>;
338
+ layout$: import('rxjs').Observable<{
339
+ hasChanged: boolean;
340
+ spineItemsAbsolutePositions: import('./spine/SpineLayout').LayoutPosition[];
341
+ spineItemsPagesAbsolutePositions: import('./spine/SpineLayout').LayoutPosition[][];
342
+ pages: import('./spine/SpineLayout').PageLayoutInformation[];
343
+ }>;
344
+ viewportState$: import('rxjs').Observable<"free" | "busy">;
345
+ state$: import('rxjs').Observable<"idle" | "ready">;
98
346
  $: {
99
347
  state$: import('rxjs').Observable<{
100
348
  supportedPageTurnAnimation: NonNullable<import('./reader').ContextSettings[`pageTurnAnimation`]>[];
@@ -102,13 +350,8 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
102
350
  supportedPageTurnDirection: NonNullable<import('./reader').ContextSettings[`pageTurnDirection`]>[];
103
351
  supportedComputedPageTurnDirection: NonNullable<import('./reader').ContextSettings[`pageTurnDirection`]>[];
104
352
  }>;
105
- loadStatus$: import('rxjs').Observable<"idle" | "ready">;
106
353
  destroy$: import('rxjs').Subject<void>;
107
354
  };
108
- } & {
109
- events: {
110
- normalizeEventForViewport: ReturnType<typeof import('./enhancers/events/normalizeEventForViewport').createNormalizeEventForViewport>;
111
- };
112
355
  } & {
113
356
  progression: {
114
357
  getPercentageEstimate: (context: import('./context/Context').Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
@@ -136,7 +379,7 @@ export declare const createReaderWithEnhancers: (options: Partial<import('./sett
136
379
  theme$: import('rxjs').Observable<import('./enhancers/theme').Theme>;
137
380
  };
138
381
  };
139
- } & import('./enhancers/navigation/types').NavigationEnhancerOutput & import('./enhancers/zoom/types').Api, "settings"> & {
382
+ }, "load"> & import('./enhancers/navigation/types').NavigationEnhancerOutput & import('./enhancers/zoom/types').EnhancerApi, "settings"> & {
140
383
  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>;
141
384
  } & {
142
385
  utils: {
@@ -1,8 +1,3 @@
1
1
  import { EnhancerOutput, RootEnhancer } from '../types/enhancer';
2
- import { createNormalizeEventForViewport } from './normalizeEventForViewport';
3
2
 
4
- export declare const eventsEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & {
5
- events: {
6
- normalizeEventForViewport: ReturnType<typeof createNormalizeEventForViewport>;
7
- };
8
- };
3
+ export declare const eventsEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput;
@@ -0,0 +1,3 @@
1
+ export declare const __UNSAFE_REFERENCE_ORIGINAL_IFRAME_EVENT_KEY = "__UNSAFE_REFERENCE_ORIGINAL_IFRAME_EVENT";
2
+ export declare const attachOriginalFrameEventToDocumentEvent: <E extends Event>(event: E, frameEvent: E) => void;
3
+ export declare const getOriginalFrameEventFromDocumentEvent: <E extends Event>(event: E) => E | undefined;
@@ -1,7 +1,3 @@
1
- import { BehaviorSubject } from 'rxjs';
2
1
  import { SpineLocator } from '../../spine/locator/SpineLocator';
3
2
 
4
- export declare const createNormalizeEventForViewport: ({ iframeEventBridgeElement$, locator, }: {
5
- iframeEventBridgeElement$: BehaviorSubject<HTMLElement | undefined>;
6
- locator: SpineLocator;
7
- }) => <E extends MouseEvent | TouchEvent | PointerEvent>(event: E) => E;
3
+ export declare const normalizeEventForViewport: <E extends MouseEvent | TouchEvent | PointerEvent>(event: E, locator: SpineLocator) => E;
@@ -1,4 +1,4 @@
1
1
  import { EnhancerOptions, EnhancerOutput, RootEnhancer } from '../types/enhancer';
2
2
  import { NavigationEnhancerOutput } from './types';
3
3
 
4
- export declare const navigationEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput & NavigationEnhancerOutput;
4
+ export declare const navigationEnhancer: <InheritOptions extends EnhancerOptions<RootEnhancer>, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => Omit<InheritOutput, "load"> & NavigationEnhancerOutput;
@@ -12,6 +12,10 @@ export declare class ManualNavigator {
12
12
  constructor(reader: Reader);
13
13
  turnRight(): void;
14
14
  turnLeft(): void;
15
+ turnTop(): void;
16
+ turnBottom(): void;
17
+ turnRightOrBottom(): void;
18
+ turnLeftOrTop(): void;
15
19
  goToCfi(cfi: string, options?: {
16
20
  animate: boolean;
17
21
  }): void;