@prose-reader/core 1.56.0 → 1.58.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 (100) hide show
  1. package/dist/cfi.d.ts +74 -0
  2. package/dist/constants.d.ts +6 -0
  3. package/dist/context/Context.d.ts +63 -0
  4. package/dist/context/isUsingSpreadMode.d.ts +10 -0
  5. package/dist/createReaderWithEnhancer.d.ts +271 -0
  6. package/dist/enhancers/accessibility.d.ts +3 -0
  7. package/dist/enhancers/chrome.d.ts +3 -0
  8. package/dist/enhancers/events/createIframeEventBridgeElement.d.ts +1 -0
  9. package/dist/enhancers/events/events.d.ts +8 -0
  10. package/dist/enhancers/events/normalizeEventForViewport.d.ts +7 -0
  11. package/dist/enhancers/firefox.d.ts +3 -0
  12. package/dist/enhancers/fonts.d.ts +19 -0
  13. package/dist/enhancers/hotkeys.d.ts +3 -0
  14. package/dist/enhancers/layoutEnhancer/createMovingSafePan$.d.ts +4 -0
  15. package/dist/enhancers/layoutEnhancer/fixReflowable.d.ts +3 -0
  16. package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +10 -0
  17. package/dist/enhancers/layoutEnhancer/types.d.ts +8 -0
  18. package/dist/enhancers/links.d.ts +14 -0
  19. package/dist/enhancers/loadingEnhancer.d.ts +24 -0
  20. package/dist/enhancers/media.d.ts +3 -0
  21. package/dist/enhancers/navigation/navigation.d.ts +9 -0
  22. package/dist/enhancers/navigation/navigator.d.ts +8 -0
  23. package/dist/enhancers/navigation/state.d.ts +12 -0
  24. package/dist/enhancers/pagination/chapters.d.ts +24 -0
  25. package/dist/enhancers/pagination/constants.d.ts +1 -0
  26. package/dist/enhancers/pagination/enhancer.d.ts +14 -0
  27. package/dist/enhancers/pagination/pagination.d.ts +10 -0
  28. package/dist/enhancers/pagination/spine.d.ts +13 -0
  29. package/dist/enhancers/pagination/types.d.ts +19 -0
  30. package/dist/enhancers/pagination.test.d.ts +1 -0
  31. package/dist/enhancers/progression.d.ts +16 -0
  32. package/dist/enhancers/publicApi.d.ts +5 -0
  33. package/dist/enhancers/resources/index.d.ts +3 -0
  34. package/dist/enhancers/resources/indexedDB.d.ts +6 -0
  35. package/dist/enhancers/resources/resourcesManager.d.ts +7 -0
  36. package/dist/enhancers/theme.d.ts +32 -0
  37. package/dist/enhancers/types/enhancer.d.ts +9 -0
  38. package/dist/enhancers/utils.d.ts +7 -0
  39. package/dist/enhancers/webkit.d.ts +3 -0
  40. package/dist/enhancers/zoom/elementZoomer.d.ts +19 -0
  41. package/dist/enhancers/zoom/index.d.ts +4 -0
  42. package/dist/enhancers/zoom/types.d.ts +23 -0
  43. package/dist/enhancers/zoom/viewportZoomer.d.ts +19 -0
  44. package/dist/frames.d.ts +5 -0
  45. package/dist/hooks/HookManager.d.ts +10 -0
  46. package/dist/hooks/types.d.ts +64 -0
  47. package/dist/index.d.ts +9 -4324
  48. package/dist/index.js +1032 -1107
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.umd.cjs +1032 -1107
  51. package/dist/index.umd.cjs.map +1 -1
  52. package/dist/manifest/areAllItemsPrePaginated.d.ts +3 -0
  53. package/dist/manifest/isFullyPrePaginated.d.ts +3 -0
  54. package/dist/pagination/pagination.d.ts +88 -0
  55. package/dist/pagination/types.d.ts +10 -0
  56. package/dist/reader.d.ts +8 -0
  57. package/dist/report.d.ts +26 -0
  58. package/dist/selection.d.ts +7 -0
  59. package/dist/settings/SettingsManager.d.ts +14 -0
  60. package/dist/settings/defaultSettings.d.ts +3 -0
  61. package/dist/settings/getComputedSettings.d.ts +4 -0
  62. package/dist/settings/types.d.ts +19 -0
  63. package/dist/spine/cfiLocator.d.ts +340 -0
  64. package/dist/spine/createSpine.d.ts +31 -0
  65. package/dist/spine/locationResolver.d.ts +636 -0
  66. package/dist/spine/navigationResolver.d.ts +48 -0
  67. package/dist/spine/types.d.ts +10 -0
  68. package/dist/spineItem/commonSpineItem.d.ts +165 -0
  69. package/dist/spineItem/createSpineItem.d.ts +167 -0
  70. package/dist/spineItem/frameItem/createFrame$.d.ts +1 -0
  71. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +5 -0
  72. package/dist/spineItem/frameItem/createHtmlPageFromResource.d.ts +3 -0
  73. package/dist/spineItem/frameItem/frameItem.d.ts +49 -0
  74. package/dist/spineItem/frameItem/loader.d.ts +30 -0
  75. package/dist/spineItem/locationResolver.d.ts +24 -0
  76. package/dist/spineItem/navigationResolver.d.ts +16 -0
  77. package/dist/spineItem/prePaginatedSpineItem.d.ts +166 -0
  78. package/dist/spineItem/reflowableSpineItem.d.ts +165 -0
  79. package/dist/spineItem/styles/getStyleForViewportDocument.d.ts +1 -0
  80. package/dist/spineItem/trackers.d.ts +34 -0
  81. package/dist/spineItem/types.d.ts +19 -0
  82. package/dist/spineItemManager.d.ts +505 -0
  83. package/dist/types/Spine.d.ts +40 -0
  84. package/dist/types/index.d.ts +12 -0
  85. package/dist/types/reader.d.ts +44 -0
  86. package/dist/utils/compose.d.ts +8 -0
  87. package/dist/utils/dom.d.ts +19 -0
  88. package/dist/utils/isDefined.d.ts +1 -0
  89. package/dist/utils/layout.d.ts +7 -0
  90. package/dist/utils/layout.test.d.ts +1 -0
  91. package/dist/utils/manifest.d.ts +3 -0
  92. package/dist/utils/objects.d.ts +6 -0
  93. package/dist/utils/objects.test.d.ts +1 -0
  94. package/dist/utils/rxjs.d.ts +5 -0
  95. package/dist/viewportNavigator/manualViewportNavigator.d.ts +96 -0
  96. package/dist/viewportNavigator/panViewportNavigator.d.ts +55 -0
  97. package/dist/viewportNavigator/scrollViewportNavigator.d.ts +38 -0
  98. package/dist/viewportNavigator/types.d.ts +34 -0
  99. package/dist/viewportNavigator/viewportNavigator.d.ts +82 -0
  100. package/package.json +3 -3
@@ -0,0 +1,636 @@
1
+ import { Context } from '../context/Context';
2
+ import { SpineItem } from '../spineItem/createSpineItem';
3
+ import { createLocationResolver as createSpineItemLocator } from '../spineItem/locationResolver';
4
+ import { SpineItemManager } from '../spineItemManager';
5
+ import { SpineItemNavigationPosition, SpineItemPosition, UnsafeSpineItemPosition } from '../spineItem/types';
6
+ import { SpinePosition, UnsafeSpinePosition } from './types';
7
+ import { SettingsManager } from '../settings/SettingsManager';
8
+
9
+ export declare const createLocationResolver: ({ spineItemManager, context, spineItemLocator, settings, }: {
10
+ spineItemManager: SpineItemManager;
11
+ context: Context;
12
+ spineItemLocator: ReturnType<typeof createSpineItemLocator>;
13
+ settings: SettingsManager;
14
+ }) => {
15
+ getSpinePositionFromSpineItemPosition: (spineItemPosition: SpineItemNavigationPosition | SpineItemPosition, spineItem: SpineItem) => SpinePosition;
16
+ getSpinePositionFromSpineItem: (spineItem: SpineItem) => SpinePosition;
17
+ getSpinePositionFromSpineItemAnchor: (anchor: string, spineItem: SpineItem) => SpinePosition;
18
+ getSpineItemPositionFromSpinePosition: ((position: UnsafeSpinePosition, spineItem: SpineItem) => UnsafeSpineItemPosition) | ((position: UnsafeSpinePosition, spineItem: {
19
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
20
+ blankPagePosition: `before` | `after` | `none`;
21
+ minimumWidth: number;
22
+ spreadPosition: `none` | `left` | `right`;
23
+ }) => {
24
+ width: number;
25
+ height: number;
26
+ };
27
+ item: {
28
+ id: string;
29
+ href: string;
30
+ renditionLayout: `reflowable` | `pre-paginated`;
31
+ progressionWeight: number;
32
+ pageSpreadLeft: true | undefined;
33
+ pageSpreadRight: true | undefined;
34
+ mediaType?: string;
35
+ };
36
+ load: () => void;
37
+ adjustPositionOfElement: ({ right, left, top }: {
38
+ right?: number;
39
+ left?: number;
40
+ top?: number;
41
+ }) => void;
42
+ getElementDimensions: () => {
43
+ width: number;
44
+ height: number;
45
+ };
46
+ getHtmlFromResource: (response: Response) => Promise<string>;
47
+ getResource: () => Promise<Response>;
48
+ translateFramePositionIntoPage: (position: {
49
+ clientX: number;
50
+ clientY: number;
51
+ }) => {
52
+ clientX: number;
53
+ clientY: number;
54
+ };
55
+ setLayoutDirty: () => void;
56
+ injectStyle: (cssText: string) => void;
57
+ loadContent: () => void;
58
+ unloadContent: () => void;
59
+ spineItemFrame: {
60
+ getIsLoaded: () => boolean;
61
+ getIsReady: () => boolean;
62
+ getViewportDimensions: () => {
63
+ width: number;
64
+ height: number;
65
+ } | undefined;
66
+ getFrameElement: () => HTMLIFrameElement | undefined;
67
+ getHtmlFromResource: (response: Response) => Promise<string>;
68
+ load: () => void;
69
+ unload: () => void;
70
+ staticLayout: (size: {
71
+ width: number;
72
+ height: number;
73
+ }) => void;
74
+ getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
75
+ getReadingDirection: () => `ltr` | `rtl` | undefined;
76
+ isUsingVerticalWriting: () => boolean;
77
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
78
+ destroy: () => void;
79
+ $: {
80
+ unload$: import('rxjs').Observable<void>;
81
+ unloaded$: import('rxjs').Observable<void>;
82
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
83
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
84
+ isReady$: import('rxjs').Observable<boolean>;
85
+ contentLayoutChange$: import('rxjs').Observable<{
86
+ isFirstLayout: boolean;
87
+ } | {
88
+ isFirstLayout: boolean;
89
+ }>;
90
+ };
91
+ };
92
+ element: HTMLElement;
93
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
94
+ getViewPortInformation: () => {
95
+ computedScale: number;
96
+ computedWidthScale: number;
97
+ viewportDimensions: {
98
+ width: number;
99
+ height: number;
100
+ };
101
+ } | undefined;
102
+ isImageType: () => boolean;
103
+ isReady: () => boolean;
104
+ destroy: () => void;
105
+ isUsingVerticalWriting: () => boolean | undefined;
106
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
107
+ manipulateSpineItem: (cb: (options: {
108
+ container: HTMLElement;
109
+ item: import('@prose-reader/shared').Manifest[`spineItems`][number];
110
+ overlayElement: HTMLDivElement;
111
+ } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
112
+ frame: undefined;
113
+ removeStyle: (id: string) => void;
114
+ addStyle: (id: string, style: string) => void;
115
+ })) => boolean) => boolean;
116
+ executeOnLayoutBeforeMeasurementHook: (options: {
117
+ minimumWidth: number;
118
+ }) => void[];
119
+ selectionTracker: {
120
+ track: (frameToTrack: HTMLIFrameElement) => void;
121
+ destroy: () => void;
122
+ isSelecting: () => boolean;
123
+ getSelection: () => Selection | undefined;
124
+ $: import('rxjs').Observable<{
125
+ event: `selectionchange`;
126
+ data: Selection | null;
127
+ } | {
128
+ event: `selectstart`;
129
+ data: Selection | null;
130
+ } | {
131
+ event: `selectend`;
132
+ data: Selection | null;
133
+ }>;
134
+ };
135
+ fingerTracker: {
136
+ track: (frame: HTMLIFrameElement) => void;
137
+ getFingerPositionInIframe(): {
138
+ x: number | undefined;
139
+ y: number | undefined;
140
+ } | undefined;
141
+ destroy: () => void;
142
+ $: import('rxjs').Observable<{
143
+ event: `fingermove`;
144
+ data: {
145
+ x: number;
146
+ y: number;
147
+ };
148
+ } | {
149
+ event: `fingerout`;
150
+ data: undefined;
151
+ }>;
152
+ };
153
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
154
+ columnHeight: number;
155
+ columnWidth: number;
156
+ width: number;
157
+ };
158
+ getDimensionsForPaginatedContent: () => {
159
+ columnHeight: number;
160
+ columnWidth: number;
161
+ };
162
+ $: {
163
+ contentLayout$: import('rxjs').Observable<{
164
+ isFirstLayout: boolean;
165
+ isReady: boolean;
166
+ }>;
167
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
168
+ isReady$: import('rxjs').Observable<boolean>;
169
+ };
170
+ }) => ReturnType<(position: UnsafeSpinePosition, spineItem: SpineItem) => UnsafeSpineItemPosition>);
171
+ getSpineItemFromPosition: ((position: UnsafeSpinePosition) => {
172
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
173
+ blankPagePosition: `before` | `after` | `none`;
174
+ minimumWidth: number;
175
+ spreadPosition: `none` | `left` | `right`;
176
+ }) => {
177
+ width: number;
178
+ height: number;
179
+ };
180
+ item: {
181
+ id: string;
182
+ href: string;
183
+ renditionLayout: `reflowable` | `pre-paginated`;
184
+ progressionWeight: number;
185
+ pageSpreadLeft: true | undefined;
186
+ pageSpreadRight: true | undefined;
187
+ mediaType?: string;
188
+ };
189
+ load: () => void;
190
+ adjustPositionOfElement: ({ right, left, top }: {
191
+ right?: number;
192
+ left?: number;
193
+ top?: number;
194
+ }) => void;
195
+ getElementDimensions: () => {
196
+ width: number;
197
+ height: number;
198
+ };
199
+ getHtmlFromResource: (response: Response) => Promise<string>;
200
+ getResource: () => Promise<Response>;
201
+ translateFramePositionIntoPage: (position: {
202
+ clientX: number;
203
+ clientY: number;
204
+ }) => {
205
+ clientX: number;
206
+ clientY: number;
207
+ };
208
+ setLayoutDirty: () => void;
209
+ injectStyle: (cssText: string) => void;
210
+ loadContent: () => void;
211
+ unloadContent: () => void;
212
+ spineItemFrame: {
213
+ getIsLoaded: () => boolean;
214
+ getIsReady: () => boolean;
215
+ getViewportDimensions: () => {
216
+ width: number;
217
+ height: number;
218
+ } | undefined;
219
+ getFrameElement: () => HTMLIFrameElement | undefined;
220
+ getHtmlFromResource: (response: Response) => Promise<string>;
221
+ load: () => void;
222
+ unload: () => void;
223
+ staticLayout: (size: {
224
+ width: number;
225
+ height: number;
226
+ }) => void;
227
+ getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
228
+ getReadingDirection: () => `ltr` | `rtl` | undefined;
229
+ isUsingVerticalWriting: () => boolean;
230
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
231
+ destroy: () => void;
232
+ $: {
233
+ unload$: import('rxjs').Observable<void>;
234
+ unloaded$: import('rxjs').Observable<void>;
235
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
236
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
237
+ isReady$: import('rxjs').Observable<boolean>;
238
+ contentLayoutChange$: import('rxjs').Observable<{
239
+ isFirstLayout: boolean;
240
+ } | {
241
+ isFirstLayout: boolean;
242
+ }>;
243
+ };
244
+ };
245
+ element: HTMLElement;
246
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
247
+ getViewPortInformation: () => {
248
+ computedScale: number;
249
+ computedWidthScale: number;
250
+ viewportDimensions: {
251
+ width: number;
252
+ height: number;
253
+ };
254
+ } | undefined;
255
+ isImageType: () => boolean;
256
+ isReady: () => boolean;
257
+ destroy: () => void;
258
+ isUsingVerticalWriting: () => boolean | undefined;
259
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
260
+ manipulateSpineItem: (cb: (options: {
261
+ container: HTMLElement;
262
+ item: import('@prose-reader/shared').Manifest[`spineItems`][number];
263
+ overlayElement: HTMLDivElement;
264
+ } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
265
+ frame: undefined;
266
+ removeStyle: (id: string) => void;
267
+ addStyle: (id: string, style: string) => void;
268
+ })) => boolean) => boolean;
269
+ executeOnLayoutBeforeMeasurementHook: (options: {
270
+ minimumWidth: number;
271
+ }) => void[];
272
+ selectionTracker: {
273
+ track: (frameToTrack: HTMLIFrameElement) => void;
274
+ destroy: () => void;
275
+ isSelecting: () => boolean;
276
+ getSelection: () => Selection | undefined;
277
+ $: import('rxjs').Observable<{
278
+ event: `selectionchange`;
279
+ data: Selection | null;
280
+ } | {
281
+ event: `selectstart`;
282
+ data: Selection | null;
283
+ } | {
284
+ event: `selectend`;
285
+ data: Selection | null;
286
+ }>;
287
+ };
288
+ fingerTracker: {
289
+ track: (frame: HTMLIFrameElement) => void;
290
+ getFingerPositionInIframe(): {
291
+ x: number | undefined;
292
+ y: number | undefined;
293
+ } | undefined;
294
+ destroy: () => void;
295
+ $: import('rxjs').Observable<{
296
+ event: `fingermove`;
297
+ data: {
298
+ x: number;
299
+ y: number;
300
+ };
301
+ } | {
302
+ event: `fingerout`;
303
+ data: undefined;
304
+ }>;
305
+ };
306
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
307
+ columnHeight: number;
308
+ columnWidth: number;
309
+ width: number;
310
+ };
311
+ getDimensionsForPaginatedContent: () => {
312
+ columnHeight: number;
313
+ columnWidth: number;
314
+ };
315
+ $: {
316
+ contentLayout$: import('rxjs').Observable<{
317
+ isFirstLayout: boolean;
318
+ isReady: boolean;
319
+ }>;
320
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
321
+ isReady$: import('rxjs').Observable<boolean>;
322
+ };
323
+ } | undefined) | ((position: UnsafeSpinePosition) => ReturnType<(position: UnsafeSpinePosition) => {
324
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
325
+ blankPagePosition: `before` | `after` | `none`;
326
+ minimumWidth: number;
327
+ spreadPosition: `none` | `left` | `right`;
328
+ }) => {
329
+ width: number;
330
+ height: number;
331
+ };
332
+ item: {
333
+ id: string;
334
+ href: string;
335
+ renditionLayout: `reflowable` | `pre-paginated`;
336
+ progressionWeight: number;
337
+ pageSpreadLeft: true | undefined;
338
+ pageSpreadRight: true | undefined;
339
+ mediaType?: string;
340
+ };
341
+ load: () => void;
342
+ adjustPositionOfElement: ({ right, left, top }: {
343
+ right?: number;
344
+ left?: number;
345
+ top?: number;
346
+ }) => void;
347
+ getElementDimensions: () => {
348
+ width: number;
349
+ height: number;
350
+ };
351
+ getHtmlFromResource: (response: Response) => Promise<string>;
352
+ getResource: () => Promise<Response>;
353
+ translateFramePositionIntoPage: (position: {
354
+ clientX: number;
355
+ clientY: number;
356
+ }) => {
357
+ clientX: number;
358
+ clientY: number;
359
+ };
360
+ setLayoutDirty: () => void;
361
+ injectStyle: (cssText: string) => void;
362
+ loadContent: () => void;
363
+ unloadContent: () => void;
364
+ spineItemFrame: {
365
+ getIsLoaded: () => boolean;
366
+ getIsReady: () => boolean;
367
+ getViewportDimensions: () => {
368
+ width: number;
369
+ height: number;
370
+ } | undefined;
371
+ getFrameElement: () => HTMLIFrameElement | undefined;
372
+ getHtmlFromResource: (response: Response) => Promise<string>;
373
+ load: () => void;
374
+ unload: () => void;
375
+ staticLayout: (size: {
376
+ width: number;
377
+ height: number;
378
+ }) => void;
379
+ getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
380
+ getReadingDirection: () => `ltr` | `rtl` | undefined;
381
+ isUsingVerticalWriting: () => boolean;
382
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
383
+ destroy: () => void;
384
+ $: {
385
+ unload$: import('rxjs').Observable<void>;
386
+ unloaded$: import('rxjs').Observable<void>;
387
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
388
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
389
+ isReady$: import('rxjs').Observable<boolean>;
390
+ contentLayoutChange$: import('rxjs').Observable<{
391
+ isFirstLayout: boolean;
392
+ } | {
393
+ isFirstLayout: boolean;
394
+ }>;
395
+ };
396
+ };
397
+ element: HTMLElement;
398
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
399
+ getViewPortInformation: () => {
400
+ computedScale: number;
401
+ computedWidthScale: number;
402
+ viewportDimensions: {
403
+ width: number;
404
+ height: number;
405
+ };
406
+ } | undefined;
407
+ isImageType: () => boolean;
408
+ isReady: () => boolean;
409
+ destroy: () => void;
410
+ isUsingVerticalWriting: () => boolean | undefined;
411
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
412
+ manipulateSpineItem: (cb: (options: {
413
+ container: HTMLElement;
414
+ item: import('@prose-reader/shared').Manifest[`spineItems`][number];
415
+ overlayElement: HTMLDivElement;
416
+ } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
417
+ frame: undefined;
418
+ removeStyle: (id: string) => void;
419
+ addStyle: (id: string, style: string) => void;
420
+ })) => boolean) => boolean;
421
+ executeOnLayoutBeforeMeasurementHook: (options: {
422
+ minimumWidth: number;
423
+ }) => void[];
424
+ selectionTracker: {
425
+ track: (frameToTrack: HTMLIFrameElement) => void;
426
+ destroy: () => void;
427
+ isSelecting: () => boolean;
428
+ getSelection: () => Selection | undefined;
429
+ $: import('rxjs').Observable<{
430
+ event: `selectionchange`;
431
+ data: Selection | null;
432
+ } | {
433
+ event: `selectstart`;
434
+ data: Selection | null;
435
+ } | {
436
+ event: `selectend`;
437
+ data: Selection | null;
438
+ }>;
439
+ };
440
+ fingerTracker: {
441
+ track: (frame: HTMLIFrameElement) => void;
442
+ getFingerPositionInIframe(): {
443
+ x: number | undefined;
444
+ y: number | undefined;
445
+ } | undefined;
446
+ destroy: () => void;
447
+ $: import('rxjs').Observable<{
448
+ event: `fingermove`;
449
+ data: {
450
+ x: number;
451
+ y: number;
452
+ };
453
+ } | {
454
+ event: `fingerout`;
455
+ data: undefined;
456
+ }>;
457
+ };
458
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
459
+ columnHeight: number;
460
+ columnWidth: number;
461
+ width: number;
462
+ };
463
+ getDimensionsForPaginatedContent: () => {
464
+ columnHeight: number;
465
+ columnWidth: number;
466
+ };
467
+ $: {
468
+ contentLayout$: import('rxjs').Observable<{
469
+ isFirstLayout: boolean;
470
+ isReady: boolean;
471
+ }>;
472
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
473
+ isReady$: import('rxjs').Observable<boolean>;
474
+ };
475
+ } | undefined>);
476
+ getSpineItemFromIframe: (iframe: Element) => {
477
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
478
+ blankPagePosition: `before` | `after` | `none`;
479
+ minimumWidth: number;
480
+ spreadPosition: `none` | `left` | `right`;
481
+ }) => {
482
+ width: number;
483
+ height: number;
484
+ };
485
+ item: {
486
+ id: string;
487
+ href: string;
488
+ renditionLayout: `reflowable` | `pre-paginated`;
489
+ progressionWeight: number;
490
+ pageSpreadLeft: true | undefined;
491
+ pageSpreadRight: true | undefined;
492
+ mediaType?: string;
493
+ };
494
+ load: () => void;
495
+ adjustPositionOfElement: ({ right, left, top }: {
496
+ right?: number;
497
+ left?: number;
498
+ top?: number;
499
+ }) => void;
500
+ getElementDimensions: () => {
501
+ width: number;
502
+ height: number;
503
+ };
504
+ getHtmlFromResource: (response: Response) => Promise<string>;
505
+ getResource: () => Promise<Response>;
506
+ translateFramePositionIntoPage: (position: {
507
+ clientX: number;
508
+ clientY: number;
509
+ }) => {
510
+ clientX: number;
511
+ clientY: number;
512
+ };
513
+ setLayoutDirty: () => void;
514
+ injectStyle: (cssText: string) => void;
515
+ loadContent: () => void;
516
+ unloadContent: () => void;
517
+ spineItemFrame: {
518
+ getIsLoaded: () => boolean;
519
+ getIsReady: () => boolean;
520
+ getViewportDimensions: () => {
521
+ width: number;
522
+ height: number;
523
+ } | undefined;
524
+ getFrameElement: () => HTMLIFrameElement | undefined;
525
+ getHtmlFromResource: (response: Response) => Promise<string>;
526
+ load: () => void;
527
+ unload: () => void;
528
+ staticLayout: (size: {
529
+ width: number;
530
+ height: number;
531
+ }) => void;
532
+ getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
533
+ getReadingDirection: () => `ltr` | `rtl` | undefined;
534
+ isUsingVerticalWriting: () => boolean;
535
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
536
+ destroy: () => void;
537
+ $: {
538
+ unload$: import('rxjs').Observable<void>;
539
+ unloaded$: import('rxjs').Observable<void>;
540
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
541
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
542
+ isReady$: import('rxjs').Observable<boolean>;
543
+ contentLayoutChange$: import('rxjs').Observable<{
544
+ isFirstLayout: boolean;
545
+ } | {
546
+ isFirstLayout: boolean;
547
+ }>;
548
+ };
549
+ };
550
+ element: HTMLElement;
551
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
552
+ getViewPortInformation: () => {
553
+ computedScale: number;
554
+ computedWidthScale: number;
555
+ viewportDimensions: {
556
+ width: number;
557
+ height: number;
558
+ };
559
+ } | undefined;
560
+ isImageType: () => boolean;
561
+ isReady: () => boolean;
562
+ destroy: () => void;
563
+ isUsingVerticalWriting: () => boolean | undefined;
564
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
565
+ manipulateSpineItem: (cb: (options: {
566
+ container: HTMLElement;
567
+ item: import('@prose-reader/shared').Manifest[`spineItems`][number];
568
+ overlayElement: HTMLDivElement;
569
+ } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
570
+ frame: undefined;
571
+ removeStyle: (id: string) => void;
572
+ addStyle: (id: string, style: string) => void;
573
+ })) => boolean) => boolean;
574
+ executeOnLayoutBeforeMeasurementHook: (options: {
575
+ minimumWidth: number;
576
+ }) => void[];
577
+ selectionTracker: {
578
+ track: (frameToTrack: HTMLIFrameElement) => void;
579
+ destroy: () => void;
580
+ isSelecting: () => boolean;
581
+ getSelection: () => Selection | undefined;
582
+ $: import('rxjs').Observable<{
583
+ event: `selectionchange`;
584
+ data: Selection | null;
585
+ } | {
586
+ event: `selectstart`;
587
+ data: Selection | null;
588
+ } | {
589
+ event: `selectend`;
590
+ data: Selection | null;
591
+ }>;
592
+ };
593
+ fingerTracker: {
594
+ track: (frame: HTMLIFrameElement) => void;
595
+ getFingerPositionInIframe(): {
596
+ x: number | undefined;
597
+ y: number | undefined;
598
+ } | undefined;
599
+ destroy: () => void;
600
+ $: import('rxjs').Observable<{
601
+ event: `fingermove`;
602
+ data: {
603
+ x: number;
604
+ y: number;
605
+ };
606
+ } | {
607
+ event: `fingerout`;
608
+ data: undefined;
609
+ }>;
610
+ };
611
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
612
+ columnHeight: number;
613
+ columnWidth: number;
614
+ width: number;
615
+ };
616
+ getDimensionsForPaginatedContent: () => {
617
+ columnHeight: number;
618
+ columnWidth: number;
619
+ };
620
+ $: {
621
+ contentLayout$: import('rxjs').Observable<{
622
+ isFirstLayout: boolean;
623
+ isReady: boolean;
624
+ }>;
625
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
626
+ isReady$: import('rxjs').Observable<boolean>;
627
+ };
628
+ } | undefined;
629
+ getSpineItemPageIndexFromNode: (node: Node, offset: number | undefined, spineItemOrIndex: SpineItem | number) => number | undefined;
630
+ getSpineItemsFromReadingOrderPosition: (position: SpinePosition) => {
631
+ begin: number;
632
+ beginPosition: SpinePosition;
633
+ end: number;
634
+ endPosition: SpinePosition;
635
+ } | undefined;
636
+ };
@@ -0,0 +1,48 @@
1
+ import { Context } from '../context/Context';
2
+ import { SpineItemManager } from '../spineItemManager';
3
+ import { SpineItem } from '../spineItem/createSpineItem';
4
+ import { createLocationResolver } from './locationResolver';
5
+ import { createCfiLocator } from './cfiLocator';
6
+ import { SpinePosition, UnsafeSpinePosition } from './types';
7
+ import { SettingsManager } from '../settings/SettingsManager';
8
+
9
+ export type ViewportNavigationEntry = {
10
+ x: number;
11
+ y: number;
12
+ spineItem?: SpineItem;
13
+ };
14
+ type ViewportPosition = {
15
+ x: number;
16
+ y: number;
17
+ };
18
+ export declare const createNavigationResolver: ({ context, spineItemManager, cfiLocator, locator, settings, }: {
19
+ context: Context;
20
+ spineItemManager: SpineItemManager;
21
+ cfiLocator: ReturnType<typeof createCfiLocator>;
22
+ locator: ReturnType<typeof createLocationResolver>;
23
+ settings: SettingsManager;
24
+ }) => {
25
+ getNavigationForCfi: (cfi: string) => ViewportNavigationEntry;
26
+ getNavigationForPage: (pageIndex: number, spineItem?: SpineItem) => ViewportNavigationEntry;
27
+ getNavigationForLastPage: (spineItem: SpineItem) => ViewportNavigationEntry;
28
+ getNavigationForSpineIndexOrId: (indexOrId: number | string) => ViewportNavigationEntry;
29
+ getNavigationForRightPage: (position: SpinePosition) => ViewportNavigationEntry;
30
+ getNavigationForLeftPage: (position: UnsafeSpinePosition) => SpinePosition;
31
+ getNavigationForUrl: (url: string | URL) => (ViewportNavigationEntry & {
32
+ url: URL;
33
+ }) | undefined;
34
+ getNavigationForAnchor: (anchor: string, spineItem: SpineItem) => ViewportNavigationEntry;
35
+ getNavigationForPosition: (viewportPosition: ViewportPosition) => ViewportNavigationEntry;
36
+ getMostPredominantNavigationForPosition: (viewportPosition: ViewportPosition) => ViewportNavigationEntry;
37
+ wrapPositionWithSafeEdge: ((position: SpinePosition) => {
38
+ x: number;
39
+ y: number;
40
+ }) | ((position: SpinePosition) => ReturnType<(position: SpinePosition) => {
41
+ x: number;
42
+ y: number;
43
+ }>);
44
+ isNavigationGoingForwardFrom: (to: ViewportPosition, from: ViewportPosition) => boolean;
45
+ areNavigationDifferent: (a: ViewportNavigationEntry, b: ViewportNavigationEntry) => boolean;
46
+ arePositionsDifferent: (a: ViewportNavigationEntry, b: ViewportNavigationEntry) => boolean;
47
+ };
48
+ export {};
@@ -0,0 +1,10 @@
1
+ export type SpinePosition = {
2
+ x: number;
3
+ y: number;
4
+ __symbol?: `SpinePosition`;
5
+ };
6
+ export type UnsafeSpinePosition = {
7
+ x: number;
8
+ y: number;
9
+ __symbol?: `UnsafeSpinePosition` | `SpinePosition`;
10
+ };