@prose-reader/core 1.66.0 → 1.68.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 +5514 -4869
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.umd.cjs +5517 -4872
  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,14 +1,22 @@
1
- import { Context } from './context/Context';
2
- import { SpineItem } from './spineItem/createSpineItem';
3
- import { ReaderSettingsManager } from './settings/ReaderSettingsManager';
1
+ import { Context } from '../../context/Context';
2
+ import { SpineItem } from '../../spineItem/createSpineItem';
3
+ import { createSpineItemLocator as createSpineItemLocator } from '../../spineItem/locationResolver';
4
+ import { SpineItemsManager } from '../SpineItemsManager';
5
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../spineItem/types';
6
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
7
+ import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
8
+ import { getVisibleSpineItemsFromPosition } from './getVisibleSpineItemsFromPosition';
4
9
 
5
- export declare const createSpineItemManager: ({ context, settings, }: {
10
+ export type SpineLocator = ReturnType<typeof createSpineLocator>;
11
+ export declare const createSpineLocator: ({ spineItemsManager, context, spineItemLocator, settings, }: {
12
+ spineItemsManager: SpineItemsManager;
6
13
  context: Context;
14
+ spineItemLocator: ReturnType<typeof createSpineItemLocator>;
7
15
  settings: ReaderSettingsManager;
8
16
  }) => {
9
- destroyItems: () => void;
10
- add: (spineItem: SpineItem) => void;
11
- get: (indexOrId: number | string) => {
17
+ getSpinePositionFromSpineItemPosition: (spineItemPosition: SafeSpineItemPosition, spineItem: SpineItem) => ViewportPosition;
18
+ getSpinePositionFromSpineItem: (spineItem: SpineItem) => ViewportPosition;
19
+ getSpineItemPositionFromSpinePosition: ((position: ViewportPosition, spineItem: SpineItem) => UnsafeSpineItemPosition) | ((position: ViewportPosition, spineItem: {
12
20
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
13
21
  blankPagePosition: `before` | `after` | `none`;
14
22
  minimumWidth: number;
@@ -20,13 +28,13 @@ export declare const createSpineItemManager: ({ context, settings, }: {
20
28
  item: {
21
29
  id: string;
22
30
  href: string;
23
- renditionLayout: `reflowable` | `pre-paginated`;
24
- progressionWeight: number;
25
- pageSpreadLeft: true | undefined;
26
- pageSpreadRight: true | undefined;
31
+ renditionLayout?: `reflowable` | `pre-paginated`;
32
+ progressionWeight?: number;
33
+ pageSpreadLeft?: true | undefined;
34
+ pageSpreadRight?: true | undefined;
27
35
  mediaType?: string;
28
36
  };
29
- load: () => void;
37
+ overlayElement: HTMLDivElement;
30
38
  adjustPositionOfElement: ({ right, left, top, }: {
31
39
  right?: number;
32
40
  left?: number;
@@ -35,6 +43,13 @@ export declare const createSpineItemManager: ({ context, settings, }: {
35
43
  getElementDimensions: () => {
36
44
  width: number;
37
45
  height: number;
46
+ x: number;
47
+ y: number;
48
+ bottom: number;
49
+ left: number;
50
+ right: number;
51
+ top: number;
52
+ toJSON(): any;
38
53
  };
39
54
  getHtmlFromResource: (response: Response) => Promise<string>;
40
55
  getResource: () => Promise<Response>;
@@ -45,43 +60,10 @@ export declare const createSpineItemManager: ({ context, settings, }: {
45
60
  clientX: number;
46
61
  clientY: number;
47
62
  };
48
- setLayoutDirty: () => void;
49
63
  injectStyle: (cssText: string) => void;
50
- loadContent: () => void;
51
- unloadContent: () => void;
52
- spineItemFrame: {
53
- getIsLoaded: () => boolean;
54
- getIsReady: () => boolean;
55
- getViewportDimensions: () => {
56
- width: number;
57
- height: number;
58
- } | undefined;
59
- getFrameElement: () => HTMLIFrameElement | undefined;
60
- getHtmlFromResource: (response: Response) => Promise<string>;
61
- load: () => void;
62
- unload: () => void;
63
- staticLayout: (size: {
64
- width: number;
65
- height: number;
66
- }) => void;
67
- getManipulableFrame: () => ReturnType<typeof import('./spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
68
- getReadingDirection: () => `ltr` | `rtl` | undefined;
69
- isUsingVerticalWriting: () => boolean;
70
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
71
- destroy: () => void;
72
- $: {
73
- unload$: import('rxjs').Observable<void>;
74
- unloaded$: import('rxjs').Observable<void>;
75
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
76
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
77
- isReady$: import('rxjs').Observable<boolean>;
78
- contentLayoutChange$: import('rxjs').Observable<{
79
- isFirstLayout: boolean;
80
- } | {
81
- isFirstLayout: boolean;
82
- }>;
83
- };
84
- };
64
+ load: () => void;
65
+ unload: () => void;
66
+ frame: import('../../spineItem/frame/FrameItem').FrameItem;
85
67
  element: HTMLElement;
86
68
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
87
69
  getViewPortInformation: () => {
@@ -95,17 +77,8 @@ export declare const createSpineItemManager: ({ context, settings, }: {
95
77
  isImageType: () => boolean;
96
78
  isReady: () => boolean;
97
79
  destroy: () => void;
80
+ readingDirection: "ltr" | "rtl" | undefined;
98
81
  isUsingVerticalWriting: () => boolean | undefined;
99
- getReadingDirection: () => "ltr" | "rtl" | undefined;
100
- manipulateSpineItem: (cb: (options: {
101
- container: HTMLElement;
102
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
103
- overlayElement: HTMLDivElement;
104
- } & (ReturnType<typeof import('./spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
105
- frame: undefined;
106
- removeStyle: (id: string) => void;
107
- addStyle: (id: string, style: string) => void;
108
- })) => boolean) => boolean;
109
82
  executeOnLayoutBeforeMeasurementHook: (options: {
110
83
  minimumWidth: number;
111
84
  }) => void[];
@@ -160,8 +133,8 @@ export declare const createSpineItemManager: ({ context, settings, }: {
160
133
  loaded$: import('rxjs').Observable<HTMLIFrameElement>;
161
134
  isReady$: import('rxjs').Observable<boolean>;
162
135
  };
163
- } | undefined;
164
- getAll: () => {
136
+ }) => UnsafeSpineItemPosition);
137
+ getSpineItemFromPosition: (position: ViewportPosition) => {
165
138
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
166
139
  blankPagePosition: `before` | `after` | `none`;
167
140
  minimumWidth: number;
@@ -173,13 +146,13 @@ export declare const createSpineItemManager: ({ context, settings, }: {
173
146
  item: {
174
147
  id: string;
175
148
  href: string;
176
- renditionLayout: `reflowable` | `pre-paginated`;
177
- progressionWeight: number;
178
- pageSpreadLeft: true | undefined;
179
- pageSpreadRight: true | undefined;
149
+ renditionLayout?: `reflowable` | `pre-paginated`;
150
+ progressionWeight?: number;
151
+ pageSpreadLeft?: true | undefined;
152
+ pageSpreadRight?: true | undefined;
180
153
  mediaType?: string;
181
154
  };
182
- load: () => void;
155
+ overlayElement: HTMLDivElement;
183
156
  adjustPositionOfElement: ({ right, left, top, }: {
184
157
  right?: number;
185
158
  left?: number;
@@ -188,6 +161,13 @@ export declare const createSpineItemManager: ({ context, settings, }: {
188
161
  getElementDimensions: () => {
189
162
  width: number;
190
163
  height: number;
164
+ x: number;
165
+ y: number;
166
+ bottom: number;
167
+ left: number;
168
+ right: number;
169
+ top: number;
170
+ toJSON(): any;
191
171
  };
192
172
  getHtmlFromResource: (response: Response) => Promise<string>;
193
173
  getResource: () => Promise<Response>;
@@ -198,43 +178,10 @@ export declare const createSpineItemManager: ({ context, settings, }: {
198
178
  clientX: number;
199
179
  clientY: number;
200
180
  };
201
- setLayoutDirty: () => void;
202
181
  injectStyle: (cssText: string) => void;
203
- loadContent: () => void;
204
- unloadContent: () => void;
205
- spineItemFrame: {
206
- getIsLoaded: () => boolean;
207
- getIsReady: () => boolean;
208
- getViewportDimensions: () => {
209
- width: number;
210
- height: number;
211
- } | undefined;
212
- getFrameElement: () => HTMLIFrameElement | undefined;
213
- getHtmlFromResource: (response: Response) => Promise<string>;
214
- load: () => void;
215
- unload: () => void;
216
- staticLayout: (size: {
217
- width: number;
218
- height: number;
219
- }) => void;
220
- getManipulableFrame: () => ReturnType<typeof import('./spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
221
- getReadingDirection: () => `ltr` | `rtl` | undefined;
222
- isUsingVerticalWriting: () => boolean;
223
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
224
- destroy: () => void;
225
- $: {
226
- unload$: import('rxjs').Observable<void>;
227
- unloaded$: import('rxjs').Observable<void>;
228
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
229
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
230
- isReady$: import('rxjs').Observable<boolean>;
231
- contentLayoutChange$: import('rxjs').Observable<{
232
- isFirstLayout: boolean;
233
- } | {
234
- isFirstLayout: boolean;
235
- }>;
236
- };
237
- };
182
+ load: () => void;
183
+ unload: () => void;
184
+ frame: import('../../spineItem/frame/FrameItem').FrameItem;
238
185
  element: HTMLElement;
239
186
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
240
187
  getViewPortInformation: () => {
@@ -248,17 +195,8 @@ export declare const createSpineItemManager: ({ context, settings, }: {
248
195
  isImageType: () => boolean;
249
196
  isReady: () => boolean;
250
197
  destroy: () => void;
198
+ readingDirection: "ltr" | "rtl" | undefined;
251
199
  isUsingVerticalWriting: () => boolean | undefined;
252
- getReadingDirection: () => "ltr" | "rtl" | undefined;
253
- manipulateSpineItem: (cb: (options: {
254
- container: HTMLElement;
255
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
256
- overlayElement: HTMLDivElement;
257
- } & (ReturnType<typeof import('./spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
258
- frame: undefined;
259
- removeStyle: (id: string) => void;
260
- addStyle: (id: string, style: string) => void;
261
- })) => boolean) => boolean;
262
200
  executeOnLayoutBeforeMeasurementHook: (options: {
263
201
  minimumWidth: number;
264
202
  }) => void[];
@@ -313,21 +251,8 @@ export declare const createSpineItemManager: ({ context, settings, }: {
313
251
  loaded$: import('rxjs').Observable<HTMLIFrameElement>;
314
252
  isReady$: import('rxjs').Observable<boolean>;
315
253
  };
316
- }[];
317
- getLength: () => number;
318
- layout: () => void;
319
- focus: (indexOrSpineItem: number | SpineItem) => void;
320
- loadContents: ((rangeOfIndex: [number, number]) => void) | ((rangeOfIndex: [number, number]) => ReturnType<(rangeOfIndex: [number, number]) => void>);
321
- comparePositionOf: (toCompare: SpineItem, withItem: SpineItem) => "after" | "before";
322
- getAbsolutePositionOf: (spineItemOrIndex: SpineItem | number) => {
323
- left: number;
324
- right: number;
325
- top: number;
326
- bottom: number;
327
- width: number;
328
- height: number;
329
- };
330
- getFocusedSpineItem: () => {
254
+ } | undefined;
255
+ getSpineItemFromIframe: (iframe: Element) => {
331
256
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
332
257
  blankPagePosition: `before` | `after` | `none`;
333
258
  minimumWidth: number;
@@ -339,13 +264,13 @@ export declare const createSpineItemManager: ({ context, settings, }: {
339
264
  item: {
340
265
  id: string;
341
266
  href: string;
342
- renditionLayout: `reflowable` | `pre-paginated`;
343
- progressionWeight: number;
344
- pageSpreadLeft: true | undefined;
345
- pageSpreadRight: true | undefined;
267
+ renditionLayout?: `reflowable` | `pre-paginated`;
268
+ progressionWeight?: number;
269
+ pageSpreadLeft?: true | undefined;
270
+ pageSpreadRight?: true | undefined;
346
271
  mediaType?: string;
347
272
  };
348
- load: () => void;
273
+ overlayElement: HTMLDivElement;
349
274
  adjustPositionOfElement: ({ right, left, top, }: {
350
275
  right?: number;
351
276
  left?: number;
@@ -354,6 +279,13 @@ export declare const createSpineItemManager: ({ context, settings, }: {
354
279
  getElementDimensions: () => {
355
280
  width: number;
356
281
  height: number;
282
+ x: number;
283
+ y: number;
284
+ bottom: number;
285
+ left: number;
286
+ right: number;
287
+ top: number;
288
+ toJSON(): any;
357
289
  };
358
290
  getHtmlFromResource: (response: Response) => Promise<string>;
359
291
  getResource: () => Promise<Response>;
@@ -364,43 +296,10 @@ export declare const createSpineItemManager: ({ context, settings, }: {
364
296
  clientX: number;
365
297
  clientY: number;
366
298
  };
367
- setLayoutDirty: () => void;
368
299
  injectStyle: (cssText: string) => void;
369
- loadContent: () => void;
370
- unloadContent: () => void;
371
- spineItemFrame: {
372
- getIsLoaded: () => boolean;
373
- getIsReady: () => boolean;
374
- getViewportDimensions: () => {
375
- width: number;
376
- height: number;
377
- } | undefined;
378
- getFrameElement: () => HTMLIFrameElement | undefined;
379
- getHtmlFromResource: (response: Response) => Promise<string>;
380
- load: () => void;
381
- unload: () => void;
382
- staticLayout: (size: {
383
- width: number;
384
- height: number;
385
- }) => void;
386
- getManipulableFrame: () => ReturnType<typeof import('./spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
387
- getReadingDirection: () => `ltr` | `rtl` | undefined;
388
- isUsingVerticalWriting: () => boolean;
389
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
390
- destroy: () => void;
391
- $: {
392
- unload$: import('rxjs').Observable<void>;
393
- unloaded$: import('rxjs').Observable<void>;
394
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
395
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
396
- isReady$: import('rxjs').Observable<boolean>;
397
- contentLayoutChange$: import('rxjs').Observable<{
398
- isFirstLayout: boolean;
399
- } | {
400
- isFirstLayout: boolean;
401
- }>;
402
- };
403
- };
300
+ load: () => void;
301
+ unload: () => void;
302
+ frame: import('../../spineItem/frame/FrameItem').FrameItem;
404
303
  element: HTMLElement;
405
304
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
406
305
  getViewPortInformation: () => {
@@ -414,17 +313,8 @@ export declare const createSpineItemManager: ({ context, settings, }: {
414
313
  isImageType: () => boolean;
415
314
  isReady: () => boolean;
416
315
  destroy: () => void;
316
+ readingDirection: "ltr" | "rtl" | undefined;
417
317
  isUsingVerticalWriting: () => boolean | undefined;
418
- getReadingDirection: () => "ltr" | "rtl" | undefined;
419
- manipulateSpineItem: (cb: (options: {
420
- container: HTMLElement;
421
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
422
- overlayElement: HTMLDivElement;
423
- } & (ReturnType<typeof import('./spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
424
- frame: undefined;
425
- removeStyle: (id: string) => void;
426
- addStyle: (id: string, style: string) => void;
427
- })) => boolean) => boolean;
428
318
  executeOnLayoutBeforeMeasurementHook: (options: {
429
319
  minimumWidth: number;
430
320
  }) => void[];
@@ -480,26 +370,47 @@ export declare const createSpineItemManager: ({ context, settings, }: {
480
370
  isReady$: import('rxjs').Observable<boolean>;
481
371
  };
482
372
  } | undefined;
483
- getFocusedSpineItemIndex: () => number | undefined;
484
- getSpineItemIndex: (spineItem: SpineItem | undefined) => number | undefined;
485
- destroy: () => void;
486
- $: {
487
- focus$: import('rxjs').Observable<{
488
- data: SpineItem;
489
- }>;
490
- layout$: import('rxjs').Observable<boolean>;
491
- itemIsReady$: import('rxjs').Observable<{
492
- item: {
493
- id: string;
494
- href: string;
495
- renditionLayout: `reflowable` | `pre-paginated`;
496
- progressionWeight: number;
497
- pageSpreadLeft: true | undefined;
498
- pageSpreadRight: true | undefined;
499
- mediaType?: string;
500
- };
501
- isReady: boolean;
502
- }>;
373
+ getSpineItemPageIndexFromNode: (node: Node, offset: number | undefined, spineItemOrIndex: SpineItem | number) => number | undefined;
374
+ getVisibleSpineItemsFromPosition: (params: Omit<Parameters<typeof getVisibleSpineItemsFromPosition>[0], "context" | "spineItemsManager" | "settings">) => {
375
+ beginIndex: number;
376
+ endIndex: number;
377
+ } | undefined;
378
+ getVisiblePagesFromViewportPosition: ({ position, threshold, spineItem, restrictToScreen, }: {
379
+ position: ViewportPosition;
380
+ threshold: number;
381
+ spineItem: SpineItem;
382
+ restrictToScreen?: boolean;
383
+ }) => {
384
+ beginPageIndex: number;
385
+ endPageIndex: number;
386
+ } | undefined;
387
+ isPositionWithinSpineItem: (position: ViewportPosition, spineItem: SpineItem) => boolean;
388
+ spineItemLocator: {
389
+ getSpineItemPositionFromNode: (node: Node, offset: number, spineItem: SpineItem) => {
390
+ x: number;
391
+ y: number;
392
+ } | undefined;
393
+ getSpineItemPositionFromPageIndex: (pageIndex: number, spineItem: SpineItem) => SafeSpineItemPosition;
394
+ getSpineItemPageIndexFromPosition: ({ itemWidth, itemHeight, position, isUsingVerticalWriting, }: {
395
+ itemWidth: number;
396
+ itemHeight: number;
397
+ position: UnsafeSpineItemPosition;
398
+ isUsingVerticalWriting: boolean;
399
+ }) => number;
400
+ getSpineItemPageIndexFromNode: (node: Node, offset: number, spineItem: SpineItem) => number | undefined;
401
+ getSpineItemClosestPositionFromUnsafePosition: (unsafePosition: UnsafeSpineItemPosition, spineItem: SpineItem) => {
402
+ x: number;
403
+ y: number;
404
+ };
405
+ getFirstNodeOrRangeAtPage: (pageIndex: number, spineItem: SpineItem) => {
406
+ node: Node;
407
+ offset: number;
408
+ } | undefined;
409
+ getSpineItemNumberOfPages: ({ itemHeight, itemWidth, isUsingVerticalWriting, }: {
410
+ itemWidth: number;
411
+ itemHeight: number;
412
+ isUsingVerticalWriting: boolean;
413
+ }) => number;
503
414
  };
415
+ getSafeSpineItemPositionFromUnsafeSpineItemPosition: (unsafePosition: UnsafeSpineItemPosition, spineItem: SpineItem) => SafeSpineItemPosition;
504
416
  };
505
- export type SpineItemManager = ReturnType<typeof createSpineItemManager>;
@@ -0,0 +1,19 @@
1
+ import { Context } from '../../context/Context';
2
+ import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
3
+
4
+ export declare const getItemVisibilityForPosition: ({ itemPosition: { bottom, left, right, top, width: itemWidth, height: itemHeight, }, threshold, viewportPosition, restrictToScreen, context, }: {
5
+ itemPosition: {
6
+ right: number;
7
+ left: number;
8
+ bottom: number;
9
+ top: number;
10
+ height: number;
11
+ width: number;
12
+ };
13
+ viewportPosition: ViewportPosition;
14
+ threshold: number;
15
+ restrictToScreen?: boolean;
16
+ context: Context;
17
+ }) => {
18
+ visible: boolean;
19
+ };
@@ -0,0 +1,126 @@
1
+ import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
2
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
3
+ import { SpineItemsManager } from '../SpineItemsManager';
4
+
5
+ export declare const getSpineItemFromPosition: ({ position, spineItemsManager, settings, }: {
6
+ position: ViewportPosition;
7
+ spineItemsManager: SpineItemsManager;
8
+ settings: ReaderSettingsManager;
9
+ }) => {
10
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
11
+ blankPagePosition: `before` | `after` | `none`;
12
+ minimumWidth: number;
13
+ spreadPosition: `none` | `left` | `right`;
14
+ }) => {
15
+ width: number;
16
+ height: number;
17
+ };
18
+ item: {
19
+ id: string;
20
+ href: string;
21
+ renditionLayout?: `reflowable` | `pre-paginated`;
22
+ progressionWeight?: number;
23
+ pageSpreadLeft?: true | undefined;
24
+ pageSpreadRight?: true | undefined;
25
+ mediaType?: string;
26
+ };
27
+ overlayElement: HTMLDivElement;
28
+ adjustPositionOfElement: ({ right, left, top, }: {
29
+ right?: number;
30
+ left?: number;
31
+ top?: number;
32
+ }) => void;
33
+ getElementDimensions: () => {
34
+ width: number;
35
+ height: number;
36
+ x: number;
37
+ y: number;
38
+ bottom: number;
39
+ left: number;
40
+ right: number;
41
+ top: number;
42
+ toJSON(): any;
43
+ };
44
+ getHtmlFromResource: (response: Response) => Promise<string>;
45
+ getResource: () => Promise<Response>;
46
+ translateFramePositionIntoPage: (position: {
47
+ clientX: number;
48
+ clientY: number;
49
+ }) => {
50
+ clientX: number;
51
+ clientY: number;
52
+ };
53
+ injectStyle: (cssText: string) => void;
54
+ load: () => void;
55
+ unload: () => void;
56
+ frame: import('../../spineItem/frame/FrameItem').FrameItem;
57
+ element: HTMLElement;
58
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
59
+ getViewPortInformation: () => {
60
+ computedScale: number;
61
+ computedWidthScale: number;
62
+ viewportDimensions: {
63
+ width: number;
64
+ height: number;
65
+ };
66
+ } | undefined;
67
+ isImageType: () => boolean;
68
+ isReady: () => boolean;
69
+ destroy: () => void;
70
+ readingDirection: "ltr" | "rtl" | undefined;
71
+ isUsingVerticalWriting: () => boolean | undefined;
72
+ executeOnLayoutBeforeMeasurementHook: (options: {
73
+ minimumWidth: number;
74
+ }) => void[];
75
+ selectionTracker: {
76
+ track: (frameToTrack: HTMLIFrameElement) => void;
77
+ destroy: () => void;
78
+ isSelecting: () => boolean;
79
+ getSelection: () => Selection | undefined;
80
+ $: import('rxjs').Observable<{
81
+ event: `selectionchange`;
82
+ data: Selection | null;
83
+ } | {
84
+ event: `selectstart`;
85
+ data: Selection | null;
86
+ } | {
87
+ event: `selectend`;
88
+ data: Selection | null;
89
+ }>;
90
+ };
91
+ fingerTracker: {
92
+ track: (frame: HTMLIFrameElement) => void;
93
+ getFingerPositionInIframe(): {
94
+ x: number | undefined;
95
+ y: number | undefined;
96
+ } | undefined;
97
+ destroy: () => void;
98
+ $: import('rxjs').Observable<{
99
+ event: `fingermove`;
100
+ data: {
101
+ x: number;
102
+ y: number;
103
+ };
104
+ } | {
105
+ event: `fingerout`;
106
+ data: undefined;
107
+ }>;
108
+ };
109
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
110
+ columnHeight: number;
111
+ columnWidth: number;
112
+ width: number;
113
+ };
114
+ getDimensionsForPaginatedContent: () => {
115
+ columnHeight: number;
116
+ columnWidth: number;
117
+ };
118
+ $: {
119
+ contentLayout$: import('rxjs').Observable<{
120
+ isFirstLayout: boolean;
121
+ isReady: boolean;
122
+ }>;
123
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
124
+ isReady$: import('rxjs').Observable<boolean>;
125
+ };
126
+ } | undefined;
@@ -0,0 +1,16 @@
1
+ import { Context } from '../../context/Context';
2
+ import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
3
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
+ import { SpineItemsManager } from '../SpineItemsManager';
5
+
6
+ export declare const getVisibleSpineItemsFromPosition: ({ position, threshold, restrictToScreen, spineItemsManager, context, settings, }: {
7
+ position: ViewportPosition;
8
+ threshold: number;
9
+ restrictToScreen?: boolean;
10
+ spineItemsManager: SpineItemsManager;
11
+ context: Context;
12
+ settings: ReaderSettingsManager;
13
+ }) => {
14
+ beginIndex: number;
15
+ endIndex: number;
16
+ } | undefined;