@prose-reader/core 0.0.36

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 (73) hide show
  1. package/dist/cfi.d.ts +74 -0
  2. package/dist/constants.d.ts +5 -0
  3. package/dist/context.d.ts +48 -0
  4. package/dist/createReaderWithEnhancer.d.ts +2242 -0
  5. package/dist/enhancers/accessibility.d.ts +2 -0
  6. package/dist/enhancers/chrome.d.ts +2 -0
  7. package/dist/enhancers/composeEnhancer.d.ts +21 -0
  8. package/dist/enhancers/firefox.d.ts +2 -0
  9. package/dist/enhancers/fonts.d.ts +12 -0
  10. package/dist/enhancers/hotkeys.d.ts +2 -0
  11. package/dist/enhancers/layoutEnhancer/createMovingSafePan$.d.ts +3 -0
  12. package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +10 -0
  13. package/dist/enhancers/links.d.ts +12 -0
  14. package/dist/enhancers/media.d.ts +2 -0
  15. package/dist/enhancers/navigation.d.ts +5 -0
  16. package/dist/enhancers/pagination.d.ts +46 -0
  17. package/dist/enhancers/progression.d.ts +15 -0
  18. package/dist/enhancers/resources/index.d.ts +2 -0
  19. package/dist/enhancers/resources/indexedDB.d.ts +6 -0
  20. package/dist/enhancers/resources/resourcesManager.d.ts +6 -0
  21. package/dist/enhancers/theme.d.ts +22 -0
  22. package/dist/enhancers/types.d.ts +28 -0
  23. package/dist/enhancers/utils.d.ts +6 -0
  24. package/dist/enhancers/webkit.d.ts +2 -0
  25. package/dist/enhancers/zoom.d.ts +16 -0
  26. package/dist/frames.d.ts +5 -0
  27. package/dist/index.d.ts +10 -0
  28. package/dist/index.js +701 -0
  29. package/dist/index.js.LICENSE.txt +385 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/pagination.d.ts +65 -0
  32. package/dist/reader.d.ts +63 -0
  33. package/dist/report.d.ts +26 -0
  34. package/dist/selection.d.ts +6 -0
  35. package/dist/settings.d.ts +37 -0
  36. package/dist/spine/cfiLocator.d.ts +257 -0
  37. package/dist/spine/createSpine.d.ts +896 -0
  38. package/dist/spine/eventsHelper.d.ts +11 -0
  39. package/dist/spine/locationResolver.d.ts +479 -0
  40. package/dist/spine/navigationResolver.d.ts +48 -0
  41. package/dist/spine/viewportNavigator/manualViewportNavigator.d.ts +99 -0
  42. package/dist/spine/viewportNavigator/panViewportNavigator.d.ts +50 -0
  43. package/dist/spine/viewportNavigator/scrollViewportNavigator.d.ts +23 -0
  44. package/dist/spine/viewportNavigator/viewportNavigator.d.ts +85 -0
  45. package/dist/spineItem/commonSpineItem.d.ts +160 -0
  46. package/dist/spineItem/createSpineItem.d.ts +458 -0
  47. package/dist/spineItem/frameItem/createFrame$.d.ts +1 -0
  48. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +5 -0
  49. package/dist/spineItem/frameItem/createHtmlPageFromResource.d.ts +2 -0
  50. package/dist/spineItem/frameItem/frameItem.d.ts +49 -0
  51. package/dist/spineItem/frameItem/loader.d.ts +27 -0
  52. package/dist/spineItem/index.d.ts +458 -0
  53. package/dist/spineItem/locationResolver.d.ts +27 -0
  54. package/dist/spineItem/navigationResolver.d.ts +23 -0
  55. package/dist/spineItem/prePaginatedSpineItem.d.ts +223 -0
  56. package/dist/spineItem/reflowableSpineItem.d.ts +222 -0
  57. package/dist/spineItem/trackers.d.ts +34 -0
  58. package/dist/spineItemManager.d.ts +264 -0
  59. package/dist/tryEnhancer/compose.d.ts +20 -0
  60. package/dist/tryEnhancer/createReader.d.ts +3 -0
  61. package/dist/tryEnhancer/enhancer.d.ts +24 -0
  62. package/dist/tryEnhancer/index.d.ts +1 -0
  63. package/dist/types/Hook.d.ts +70 -0
  64. package/dist/types/index.d.ts +16 -0
  65. package/dist/utils/compose.d.ts +8 -0
  66. package/dist/utils/contentType.d.ts +2 -0
  67. package/dist/utils/dom.d.ts +19 -0
  68. package/dist/utils/manifest.d.ts +2 -0
  69. package/dist/utils/objects.d.ts +6 -0
  70. package/dist/utils/objects.test.d.ts +1 -0
  71. package/dist/utils/rxjs.d.ts +4 -0
  72. package/dist/utils/url.d.ts +1 -0
  73. package/package.json +44 -0
@@ -0,0 +1,11 @@
1
+ import { Context } from "../context";
2
+ import { SpineItemManager } from "../spineItemManager";
3
+ import { createLocationResolver } from "./locationResolver";
4
+ export declare const createEventsHelper: ({ iframeEventBridgeElement, locator }: {
5
+ iframeEventBridgeElement: HTMLElement;
6
+ spineItemManager: SpineItemManager;
7
+ context: Context;
8
+ locator: ReturnType<typeof createLocationResolver>;
9
+ }) => {
10
+ normalizeEventForViewport: <E extends MouseEvent | TouchEvent | PointerEvent>(event: E) => E;
11
+ };
@@ -0,0 +1,479 @@
1
+ import { Context } from "../context";
2
+ import { SpineItem } from "../spineItem/createSpineItem";
3
+ import { createLocationResolver as createSpineItemLocator } from "../spineItem/locationResolver";
4
+ import { SpineItemManager } from "../spineItemManager";
5
+ declare type SpinePosition = {
6
+ x: number;
7
+ y: number;
8
+ };
9
+ declare type SpineItemPosition = {
10
+ x: number;
11
+ y: number;
12
+ outsideOfBoundaries?: boolean;
13
+ };
14
+ export declare const createLocationResolver: ({ spineItemManager, context, spineItemLocator }: {
15
+ spineItemManager: SpineItemManager;
16
+ context: Context;
17
+ spineItemLocator: ReturnType<typeof createSpineItemLocator>;
18
+ }) => {
19
+ getSpinePositionFromSpineItemPosition: (spineItemPosition: SpineItemPosition, spineItem: SpineItem) => SpinePosition;
20
+ getSpinePositionFromSpineItem: (spineItem: SpineItem) => SpinePosition;
21
+ getSpinePositionFromSpineItemAnchor: (anchor: string, spineItem: SpineItem) => SpinePosition;
22
+ getSpineItemPositionFromSpinePosition: ((position: SpinePosition, spineItem: SpineItem) => SpineItemPosition) | ((position: SpinePosition, spineItem: SpineItem) => SpineItemPosition);
23
+ getSpineItemFromPosition: ((position: SpinePosition) => ({
24
+ item: {
25
+ id: string;
26
+ href: string;
27
+ path: string;
28
+ renditionLayout: "reflowable" | "pre-paginated";
29
+ progressionWeight: number;
30
+ pageSpreadLeft: true | undefined;
31
+ pageSpreadRight: true | undefined;
32
+ mediaType?: string | undefined;
33
+ };
34
+ } & {
35
+ layout: (layoutInformation: {
36
+ blankPagePosition: "after" | "before" | "none";
37
+ minimumWidth: number;
38
+ spreadPosition: "right" | "left" | "none";
39
+ }) => {
40
+ width: number;
41
+ height: number;
42
+ };
43
+ load: () => void;
44
+ adjustPositionOfElement: ({ right, left, top }: {
45
+ right?: number | undefined;
46
+ left?: number | undefined;
47
+ top?: number | undefined;
48
+ }) => void;
49
+ createLoadingElement: (containerElement: HTMLElement, item: {
50
+ id: string;
51
+ href: string;
52
+ path: string;
53
+ renditionLayout: "reflowable" | "pre-paginated";
54
+ progressionWeight: number;
55
+ pageSpreadLeft: true | undefined;
56
+ pageSpreadRight: true | undefined;
57
+ mediaType?: string | undefined;
58
+ }, context: {
59
+ load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("../types").LoadOptions) => void;
60
+ isRTL: () => boolean;
61
+ areAllItemsPrePaginated: () => boolean;
62
+ destroy: () => void;
63
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
64
+ getCalculatedInnerMargin: () => number;
65
+ getVisibleAreaRect: () => {
66
+ width: number;
67
+ height: number;
68
+ x: number;
69
+ y: number;
70
+ };
71
+ shouldDisplaySpread: () => boolean;
72
+ setHasVerticalWriting: () => void;
73
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
74
+ getManifest: () => import("@prose-reader/shared").Manifest | undefined;
75
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
76
+ getPageSize: () => {
77
+ width: number;
78
+ height: number;
79
+ };
80
+ getSettings: () => import("../settings").PublicSettings & {
81
+ computedPageTurnMode: "controlled" | "scrollable";
82
+ computedPageTurnDirection: "vertical" | "horizontal";
83
+ computedPageTurnAnimation: "none" | "fade" | "slide";
84
+ computedPageTurnAnimationDuration: number;
85
+ computedSnapAnimationDuration: number;
86
+ };
87
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
88
+ $: {
89
+ hasVerticalWriting$: import("rxjs").Observable<boolean>;
90
+ destroy$: import("rxjs").Observable<void>;
91
+ settings$: import("rxjs").Observable<import("../settings").PublicSettings & {
92
+ computedPageTurnMode: "controlled" | "scrollable";
93
+ computedPageTurnDirection: "vertical" | "horizontal";
94
+ computedPageTurnAnimation: "none" | "fade" | "slide";
95
+ computedPageTurnAnimationDuration: number;
96
+ computedSnapAnimationDuration: number;
97
+ }>;
98
+ load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
99
+ };
100
+ }) => HTMLDivElement;
101
+ getElementDimensions: () => {
102
+ width: number;
103
+ height: number;
104
+ };
105
+ getHtmlFromResource: (response: Response) => Promise<string>;
106
+ getResource: () => Promise<Response>;
107
+ translateFramePositionIntoPage: (position: {
108
+ clientX: number;
109
+ clientY: number;
110
+ }) => {
111
+ clientX: number;
112
+ clientY: number;
113
+ };
114
+ setLayoutDirty: () => void;
115
+ injectStyle: (cssText: string) => void;
116
+ loadContent: () => void;
117
+ unloadContent: () => void;
118
+ spineItemFrame: {
119
+ getIsLoaded: () => boolean;
120
+ getIsReady: () => boolean;
121
+ getViewportDimensions: () => {
122
+ width: number;
123
+ height: number;
124
+ } | undefined;
125
+ getFrameElement: () => HTMLIFrameElement | undefined;
126
+ getHtmlFromResource: (response: Response) => Promise<string>;
127
+ load: () => void;
128
+ unload: () => void;
129
+ staticLayout: (size: {
130
+ width: number;
131
+ height: number;
132
+ }) => void;
133
+ getManipulableFrame: () => {
134
+ frame: HTMLIFrameElement;
135
+ removeStyle: (id: string) => void;
136
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
137
+ } | undefined;
138
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
139
+ isUsingVerticalWriting: () => boolean;
140
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
141
+ destroy: () => void;
142
+ $: {
143
+ unload$: import("rxjs").Observable<void>;
144
+ unloaded$: import("rxjs").Observable<void>;
145
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
146
+ ready$: import("rxjs").Observable<FontFaceSet | undefined>;
147
+ isReady$: import("rxjs").Observable<boolean>;
148
+ contentLayoutChange$: import("rxjs").Observable<{
149
+ isFirstLayout: boolean;
150
+ } | {
151
+ isFirstLayout: boolean;
152
+ }>;
153
+ };
154
+ };
155
+ element: HTMLElement;
156
+ loadingElement: HTMLDivElement;
157
+ isReflowable: boolean;
158
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
159
+ getViewPortInformation: () => {
160
+ computedScale: number;
161
+ computedWidthScale: number;
162
+ viewportDimensions: {
163
+ width: number;
164
+ height: number;
165
+ };
166
+ } | {
167
+ width?: number | undefined;
168
+ height?: number | undefined;
169
+ computedScale: number;
170
+ computedWidthScale: number;
171
+ viewportDimensions?: undefined;
172
+ };
173
+ isImageType: () => boolean | undefined;
174
+ isReady: () => boolean;
175
+ destroy: () => void;
176
+ isUsingVerticalWriting: () => boolean | undefined;
177
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
178
+ manipulateSpineItem: (cb: (options: {
179
+ container: HTMLElement;
180
+ loadingElement: HTMLElement;
181
+ item: {
182
+ id: string;
183
+ href: string;
184
+ path: string;
185
+ renditionLayout: "reflowable" | "pre-paginated";
186
+ progressionWeight: number;
187
+ pageSpreadLeft: true | undefined;
188
+ pageSpreadRight: true | undefined;
189
+ mediaType?: string | undefined;
190
+ };
191
+ overlayElement: HTMLDivElement;
192
+ } & ({
193
+ frame: HTMLIFrameElement;
194
+ removeStyle: (id: string) => void;
195
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
196
+ } | {
197
+ frame: undefined;
198
+ removeStyle: (id: string) => void;
199
+ addStyle: (id: string, style: string) => void;
200
+ })) => boolean) => boolean;
201
+ executeOnLayoutBeforeMeasurmentHook: (options: {
202
+ minimumWidth: number;
203
+ }) => void;
204
+ selectionTracker: {
205
+ track: (frameToTrack: HTMLIFrameElement) => void;
206
+ destroy: () => void;
207
+ isSelecting: () => boolean;
208
+ getSelection: () => Selection | undefined;
209
+ $: import("rxjs").Observable<{
210
+ event: "selectionchange";
211
+ data: Selection | null;
212
+ } | {
213
+ event: "selectstart";
214
+ data: Selection | null;
215
+ } | {
216
+ event: "selectend";
217
+ data: Selection | null;
218
+ }>;
219
+ };
220
+ fingerTracker: {
221
+ track: (frame: HTMLIFrameElement) => void;
222
+ getFingerPositionInIframe(): {
223
+ x: number | undefined;
224
+ y: number | undefined;
225
+ } | undefined;
226
+ destroy: () => void;
227
+ $: import("rxjs").Observable<{
228
+ event: "fingermove";
229
+ data: {
230
+ x: number;
231
+ y: number;
232
+ };
233
+ } | {
234
+ event: "fingerout";
235
+ data: undefined;
236
+ }>;
237
+ };
238
+ $: {
239
+ contentLayoutChangeSubject$: import("rxjs").Observable<{
240
+ isFirstLayout: boolean;
241
+ isReady: boolean;
242
+ }>;
243
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
244
+ };
245
+ }) | undefined) | ((position: SpinePosition) => ({
246
+ item: {
247
+ id: string;
248
+ href: string;
249
+ path: string;
250
+ renditionLayout: "reflowable" | "pre-paginated";
251
+ progressionWeight: number;
252
+ pageSpreadLeft: true | undefined;
253
+ pageSpreadRight: true | undefined;
254
+ mediaType?: string | undefined;
255
+ };
256
+ } & {
257
+ layout: (layoutInformation: {
258
+ blankPagePosition: "after" | "before" | "none";
259
+ minimumWidth: number;
260
+ spreadPosition: "right" | "left" | "none";
261
+ }) => {
262
+ width: number;
263
+ height: number;
264
+ };
265
+ load: () => void;
266
+ adjustPositionOfElement: ({ right, left, top }: {
267
+ right?: number | undefined;
268
+ left?: number | undefined;
269
+ top?: number | undefined;
270
+ }) => void;
271
+ createLoadingElement: (containerElement: HTMLElement, item: {
272
+ id: string;
273
+ href: string;
274
+ path: string;
275
+ renditionLayout: "reflowable" | "pre-paginated";
276
+ progressionWeight: number;
277
+ pageSpreadLeft: true | undefined;
278
+ pageSpreadRight: true | undefined;
279
+ mediaType?: string | undefined;
280
+ }, context: {
281
+ load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("../types").LoadOptions) => void;
282
+ isRTL: () => boolean;
283
+ areAllItemsPrePaginated: () => boolean;
284
+ destroy: () => void;
285
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
286
+ getCalculatedInnerMargin: () => number;
287
+ getVisibleAreaRect: () => {
288
+ width: number;
289
+ height: number;
290
+ x: number;
291
+ y: number;
292
+ };
293
+ shouldDisplaySpread: () => boolean;
294
+ setHasVerticalWriting: () => void;
295
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
296
+ getManifest: () => import("@prose-reader/shared").Manifest | undefined;
297
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
298
+ getPageSize: () => {
299
+ width: number;
300
+ height: number;
301
+ };
302
+ getSettings: () => import("../settings").PublicSettings & {
303
+ computedPageTurnMode: "controlled" | "scrollable";
304
+ computedPageTurnDirection: "vertical" | "horizontal";
305
+ computedPageTurnAnimation: "none" | "fade" | "slide";
306
+ computedPageTurnAnimationDuration: number;
307
+ computedSnapAnimationDuration: number;
308
+ };
309
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
310
+ $: {
311
+ hasVerticalWriting$: import("rxjs").Observable<boolean>;
312
+ destroy$: import("rxjs").Observable<void>;
313
+ settings$: import("rxjs").Observable<import("../settings").PublicSettings & {
314
+ computedPageTurnMode: "controlled" | "scrollable";
315
+ computedPageTurnDirection: "vertical" | "horizontal";
316
+ computedPageTurnAnimation: "none" | "fade" | "slide";
317
+ computedPageTurnAnimationDuration: number;
318
+ computedSnapAnimationDuration: number;
319
+ }>;
320
+ load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
321
+ };
322
+ }) => HTMLDivElement;
323
+ getElementDimensions: () => {
324
+ width: number;
325
+ height: number;
326
+ };
327
+ getHtmlFromResource: (response: Response) => Promise<string>;
328
+ getResource: () => Promise<Response>;
329
+ translateFramePositionIntoPage: (position: {
330
+ clientX: number;
331
+ clientY: number;
332
+ }) => {
333
+ clientX: number;
334
+ clientY: number;
335
+ };
336
+ setLayoutDirty: () => void;
337
+ injectStyle: (cssText: string) => void;
338
+ loadContent: () => void;
339
+ unloadContent: () => void;
340
+ spineItemFrame: {
341
+ getIsLoaded: () => boolean;
342
+ getIsReady: () => boolean;
343
+ getViewportDimensions: () => {
344
+ width: number;
345
+ height: number;
346
+ } | undefined;
347
+ getFrameElement: () => HTMLIFrameElement | undefined;
348
+ getHtmlFromResource: (response: Response) => Promise<string>;
349
+ load: () => void;
350
+ unload: () => void;
351
+ staticLayout: (size: {
352
+ width: number;
353
+ height: number;
354
+ }) => void;
355
+ getManipulableFrame: () => {
356
+ frame: HTMLIFrameElement;
357
+ removeStyle: (id: string) => void;
358
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
359
+ } | undefined;
360
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
361
+ isUsingVerticalWriting: () => boolean;
362
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
363
+ destroy: () => void;
364
+ $: {
365
+ unload$: import("rxjs").Observable<void>;
366
+ unloaded$: import("rxjs").Observable<void>;
367
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
368
+ ready$: import("rxjs").Observable<FontFaceSet | undefined>;
369
+ isReady$: import("rxjs").Observable<boolean>;
370
+ contentLayoutChange$: import("rxjs").Observable<{
371
+ isFirstLayout: boolean;
372
+ } | {
373
+ isFirstLayout: boolean;
374
+ }>;
375
+ };
376
+ };
377
+ element: HTMLElement;
378
+ loadingElement: HTMLDivElement;
379
+ isReflowable: boolean;
380
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
381
+ getViewPortInformation: () => {
382
+ computedScale: number;
383
+ computedWidthScale: number;
384
+ viewportDimensions: {
385
+ width: number;
386
+ height: number;
387
+ };
388
+ } | {
389
+ width?: number | undefined;
390
+ height?: number | undefined;
391
+ computedScale: number;
392
+ computedWidthScale: number;
393
+ viewportDimensions?: undefined;
394
+ };
395
+ isImageType: () => boolean | undefined;
396
+ isReady: () => boolean;
397
+ destroy: () => void;
398
+ isUsingVerticalWriting: () => boolean | undefined;
399
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
400
+ manipulateSpineItem: (cb: (options: {
401
+ container: HTMLElement;
402
+ loadingElement: HTMLElement;
403
+ item: {
404
+ id: string;
405
+ href: string;
406
+ path: string;
407
+ renditionLayout: "reflowable" | "pre-paginated";
408
+ progressionWeight: number;
409
+ pageSpreadLeft: true | undefined;
410
+ pageSpreadRight: true | undefined;
411
+ mediaType?: string | undefined;
412
+ };
413
+ overlayElement: HTMLDivElement;
414
+ } & ({
415
+ frame: HTMLIFrameElement;
416
+ removeStyle: (id: string) => void;
417
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
418
+ } | {
419
+ frame: undefined;
420
+ removeStyle: (id: string) => void;
421
+ addStyle: (id: string, style: string) => void;
422
+ })) => boolean) => boolean;
423
+ executeOnLayoutBeforeMeasurmentHook: (options: {
424
+ minimumWidth: number;
425
+ }) => void;
426
+ selectionTracker: {
427
+ track: (frameToTrack: HTMLIFrameElement) => void;
428
+ destroy: () => void;
429
+ isSelecting: () => boolean;
430
+ getSelection: () => Selection | undefined;
431
+ $: import("rxjs").Observable<{
432
+ event: "selectionchange";
433
+ data: Selection | null;
434
+ } | {
435
+ event: "selectstart";
436
+ data: Selection | null;
437
+ } | {
438
+ event: "selectend";
439
+ data: Selection | null;
440
+ }>;
441
+ };
442
+ fingerTracker: {
443
+ track: (frame: HTMLIFrameElement) => void;
444
+ getFingerPositionInIframe(): {
445
+ x: number | undefined;
446
+ y: number | undefined;
447
+ } | undefined;
448
+ destroy: () => void;
449
+ $: import("rxjs").Observable<{
450
+ event: "fingermove";
451
+ data: {
452
+ x: number;
453
+ y: number;
454
+ };
455
+ } | {
456
+ event: "fingerout";
457
+ data: undefined;
458
+ }>;
459
+ };
460
+ $: {
461
+ contentLayoutChangeSubject$: import("rxjs").Observable<{
462
+ isFirstLayout: boolean;
463
+ isReady: boolean;
464
+ }>;
465
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
466
+ };
467
+ }) | undefined);
468
+ getSpineItemFromIframe: (iframe: Element) => SpineItem | undefined;
469
+ getSpineItemPageIndexFromNode: (node: Node, offset: number | undefined, spineItemOrIndex: SpineItem | number) => number | undefined;
470
+ getSpineItemsFromReadingOrderPosition: (position: SpinePosition) => {
471
+ left: number;
472
+ right: number;
473
+ begin: number;
474
+ beginPosition: SpinePosition;
475
+ end: number;
476
+ endPosition: SpinePosition;
477
+ } | undefined;
478
+ };
479
+ export {};
@@ -0,0 +1,48 @@
1
+ import { Context } from "../context";
2
+ import { SpineItemManager } from "../spineItemManager";
3
+ import { SpineItem } from "../spineItem/createSpineItem";
4
+ import { createLocationResolver } from "./locationResolver";
5
+ import { createCfiLocator } from "./cfiLocator";
6
+ export declare type ViewportNavigationEntry = {
7
+ x: number;
8
+ y: number;
9
+ spineItem?: SpineItem;
10
+ };
11
+ declare type ViewportPosition = {
12
+ x: number;
13
+ y: number;
14
+ };
15
+ declare type SpineItemPosition = {
16
+ x: number;
17
+ y: number;
18
+ };
19
+ export declare const createNavigationResolver: ({ context, spineItemManager, cfiLocator, locator }: {
20
+ context: Context;
21
+ spineItemManager: SpineItemManager;
22
+ cfiLocator: ReturnType<typeof createCfiLocator>;
23
+ locator: ReturnType<typeof createLocationResolver>;
24
+ }) => {
25
+ getNavigationForCfi: (cfi: string) => ViewportNavigationEntry;
26
+ getNavigationForPage: (pageIndex: number, spineItem?: SpineItem | undefined) => ViewportNavigationEntry;
27
+ getNavigationForLastPage: (spineItem: SpineItem) => ViewportNavigationEntry;
28
+ getNavigationForSpineIndexOrId: (indexOrId: number | string) => ViewportNavigationEntry;
29
+ getNavigationForRightPage: (position: SpineItemPosition) => ViewportNavigationEntry;
30
+ getNavigationForLeftPage: (position: SpineItemPosition) => ViewportNavigationEntry;
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: SpineItemPosition) => {
38
+ x: number;
39
+ y: number;
40
+ }) | ((position: SpineItemPosition) => {
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,99 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { Context } from "../../context";
3
+ import { SpineItemManager } from "../../spineItemManager";
4
+ import { createNavigationResolver, ViewportNavigationEntry } from "../navigationResolver";
5
+ import { createLocationResolver } from "../locationResolver";
6
+ export declare const createManualViewportNavigator: ({ navigator, spineItemManager, currentNavigationSubject$, locator, context }: {
7
+ context: Context;
8
+ element: HTMLElement;
9
+ navigator: ReturnType<typeof createNavigationResolver>;
10
+ currentNavigationSubject$: BehaviorSubject<ViewportNavigationEntry>;
11
+ spineItemManager: SpineItemManager;
12
+ locator: ReturnType<typeof createLocationResolver>;
13
+ }) => {
14
+ destroy: () => void;
15
+ adjustReadingOffset: (_: {
16
+ x: number;
17
+ y: number;
18
+ }) => boolean;
19
+ turnLeft: ({ allowSpineItemChange }?: {
20
+ allowSpineItemChange?: boolean | undefined;
21
+ }) => void;
22
+ turnRight: ({ allowSpineItemChange }?: {
23
+ allowSpineItemChange?: boolean | undefined;
24
+ }) => void;
25
+ goToCfi: (cfi: string, options?: {
26
+ animate: boolean;
27
+ }) => void;
28
+ goToPageOfCurrentChapter: (pageIndex: number) => void;
29
+ goToSpineItem: (indexOrId: number | string, options?: {
30
+ animate: boolean;
31
+ }) => void;
32
+ goToUrl: (url: string | URL) => void;
33
+ goToPage: (pageIndex: number) => void;
34
+ $: {
35
+ state$: import("rxjs").Observable<"start" | "end">;
36
+ navigation$: import("rxjs").Observable<{
37
+ animate: boolean;
38
+ lastUserExpectedNavigation: {
39
+ type: "navigate-from-anchor";
40
+ data: string;
41
+ };
42
+ x: number;
43
+ y: number;
44
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
45
+ url: URL;
46
+ } | {
47
+ animate: boolean;
48
+ lastUserExpectedNavigation: {
49
+ type: "navigate-from-previous-item";
50
+ };
51
+ x: number;
52
+ y: number;
53
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
54
+ } | {
55
+ lastUserExpectedNavigation: undefined;
56
+ animate: boolean;
57
+ x: number;
58
+ y: number;
59
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
60
+ } | {
61
+ lastUserExpectedNavigation: {
62
+ type: "navigate-from-next-item";
63
+ };
64
+ animate: boolean;
65
+ x: number;
66
+ y: number;
67
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
68
+ } | {
69
+ lastUserExpectedNavigation: {
70
+ type: "navigate-from-previous-item";
71
+ };
72
+ animate: boolean;
73
+ x: number;
74
+ y: number;
75
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
76
+ } | {
77
+ lastUserExpectedNavigation: undefined;
78
+ animate: boolean;
79
+ x: number;
80
+ y: number;
81
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
82
+ } | {
83
+ animate: boolean;
84
+ lastUserExpectedNavigation: {
85
+ type: "navigate-from-cfi";
86
+ data: string;
87
+ };
88
+ x: number;
89
+ y: number;
90
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
91
+ } | {
92
+ lastUserExpectedNavigation: undefined;
93
+ animate: boolean;
94
+ x: number;
95
+ y: number;
96
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
97
+ }>;
98
+ };
99
+ };
@@ -0,0 +1,50 @@
1
+ import { BehaviorSubject, Subject } from "rxjs";
2
+ import { Context } from "../../context";
3
+ import { SpineItemManager } from "../../spineItemManager";
4
+ import { createNavigationResolver, ViewportNavigationEntry } from "../navigationResolver";
5
+ import { createLocationResolver } from "../locationResolver";
6
+ import { ViewportPosition } from "../../types";
7
+ export declare const createPanViewportNavigator: ({ getCurrentViewportPosition, navigator, spineItemManager, locator, context, currentNavigationSubject$ }: {
8
+ context: Context;
9
+ element: HTMLElement;
10
+ navigator: ReturnType<typeof createNavigationResolver>;
11
+ currentNavigationSubject$: BehaviorSubject<ViewportNavigationEntry>;
12
+ spineItemManager: SpineItemManager;
13
+ locator: ReturnType<typeof createLocationResolver>;
14
+ getCurrentViewportPosition: () => ViewportPosition;
15
+ }) => {
16
+ moveTo: ((delta: {
17
+ x: number;
18
+ y: number;
19
+ } | undefined, { final, start }?: {
20
+ start?: boolean | undefined;
21
+ final?: boolean | undefined;
22
+ }) => void) | ((args_0: {
23
+ x: number;
24
+ y: number;
25
+ } | undefined, args_1?: {
26
+ start?: boolean | undefined;
27
+ final?: boolean | undefined;
28
+ } | undefined) => void);
29
+ destroy: () => void;
30
+ adjustReadingOffset: (_: {
31
+ x: number;
32
+ y: number;
33
+ }) => boolean;
34
+ $: {
35
+ moveToSubject$: Subject<{
36
+ position: ViewportNavigationEntry;
37
+ }>;
38
+ state$: import("rxjs").Observable<"start" | "end">;
39
+ navigation$: import("rxjs").Observable<{
40
+ lastUserExpectedNavigation: {
41
+ type: "navigate-from-next-item";
42
+ } | {
43
+ type: "navigate-from-previous-item";
44
+ } | undefined;
45
+ x: number;
46
+ y: number;
47
+ spineItem?: import("../../spineItem/createSpineItem").SpineItem | undefined;
48
+ }>;
49
+ };
50
+ };