@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,896 @@
1
+ import { BehaviorSubject } from "rxjs";
2
+ import { Context } from "../context";
3
+ import { Pagination } from "../pagination";
4
+ import { createSpineItem } from "../spineItem/createSpineItem";
5
+ import { SpineItemManager } from "../spineItemManager";
6
+ import { createSelection } from "../selection";
7
+ import { ViewportNavigationEntry } from "./navigationResolver";
8
+ import { Hook } from "../types/Hook";
9
+ declare type SpineItem = ReturnType<typeof createSpineItem>;
10
+ declare type RequireLayout = boolean;
11
+ declare type ManipulableSpineItemCallback = Parameters<SpineItem[`manipulateSpineItem`]>[0];
12
+ declare type ManipulableSpineItemCallbackPayload = Parameters<ManipulableSpineItemCallback>[0];
13
+ declare type Event = {
14
+ type: `onSelectionChange`;
15
+ data: ReturnType<typeof createSelection> | null;
16
+ };
17
+ export declare const createSpine: ({ parentElement, context, pagination, iframeEventBridgeElement, spineItemManager, hooks$ }: {
18
+ parentElement: HTMLElement;
19
+ iframeEventBridgeElement: HTMLElement;
20
+ context: Context;
21
+ pagination: Pagination;
22
+ spineItemManager: SpineItemManager;
23
+ hooks$: BehaviorSubject<Hook[]>;
24
+ }) => {
25
+ viewportNavigator: {
26
+ destroy: () => void;
27
+ layout: () => void;
28
+ getCurrentNavigationPosition: () => ViewportNavigationEntry;
29
+ getCurrentViewportPosition: (() => {
30
+ x: number;
31
+ y: number;
32
+ }) | (() => {
33
+ x: number;
34
+ y: number;
35
+ });
36
+ turnLeft: ({ allowSpineItemChange }?: {
37
+ allowSpineItemChange?: boolean | undefined;
38
+ }) => void;
39
+ turnRight: ({ allowSpineItemChange }?: {
40
+ allowSpineItemChange?: boolean | undefined;
41
+ }) => void;
42
+ goToPage: (pageIndex: number) => void;
43
+ goToSpineItem: (indexOrId: string | number, options?: {
44
+ animate: boolean;
45
+ }) => void;
46
+ goToUrl: (url: string | URL) => void;
47
+ goToCfi: (cfi: string, options?: {
48
+ animate: boolean;
49
+ }) => void;
50
+ goToPageOfCurrentChapter: (pageIndex: number) => void;
51
+ adjustNavigation: (spineItem: import("../spineItem/createSpineItem").SpineItem) => import("rxjs").Observable<{
52
+ previousNavigationPosition: ViewportNavigationEntry;
53
+ adjustedSpinePosition: ViewportNavigationEntry;
54
+ areDifferent: boolean;
55
+ }>;
56
+ moveTo: ((delta: {
57
+ x: number;
58
+ y: number;
59
+ } | undefined, { final, start }?: {
60
+ start?: boolean | undefined;
61
+ final?: boolean | undefined;
62
+ }) => void) | ((args_0: {
63
+ x: number;
64
+ y: number;
65
+ } | undefined, args_1?: {
66
+ start?: boolean | undefined;
67
+ final?: boolean | undefined;
68
+ } | undefined) => void);
69
+ getLastUserExpectedNavigation: () => {
70
+ type: "navigate-from-previous-item";
71
+ } | {
72
+ type: "navigate-from-next-item";
73
+ } | {
74
+ type: "navigate-from-cfi";
75
+ data: string;
76
+ } | {
77
+ type: "navigate-from-anchor";
78
+ data: string;
79
+ } | undefined;
80
+ $: {
81
+ state$: import("rxjs").Observable<"free" | "busy">;
82
+ navigation$: import("rxjs").Observable<{
83
+ position: {
84
+ x: number;
85
+ y: number;
86
+ spineItem?: import("../spineItem/createSpineItem").SpineItem | undefined;
87
+ };
88
+ triggeredBy: "scroll" | "manual" | "adjust";
89
+ animation: false | "turn" | "snap";
90
+ }>;
91
+ };
92
+ };
93
+ element: HTMLElement;
94
+ locator: {
95
+ getSpinePositionFromSpineItemPosition: (spineItemPosition: {
96
+ x: number;
97
+ y: number;
98
+ outsideOfBoundaries?: boolean | undefined;
99
+ }, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
100
+ x: number;
101
+ y: number;
102
+ };
103
+ getSpinePositionFromSpineItem: (spineItem: import("../spineItem/createSpineItem").SpineItem) => {
104
+ x: number;
105
+ y: number;
106
+ };
107
+ getSpinePositionFromSpineItemAnchor: (anchor: string, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
108
+ x: number;
109
+ y: number;
110
+ };
111
+ getSpineItemPositionFromSpinePosition: ((position: {
112
+ x: number;
113
+ y: number;
114
+ }, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
115
+ x: number;
116
+ y: number;
117
+ outsideOfBoundaries?: boolean | undefined;
118
+ }) | ((position: {
119
+ x: number;
120
+ y: number;
121
+ }, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
122
+ x: number;
123
+ y: number;
124
+ outsideOfBoundaries?: boolean | undefined;
125
+ });
126
+ getSpineItemFromPosition: ((position: {
127
+ x: number;
128
+ y: number;
129
+ }) => ({
130
+ item: {
131
+ id: string;
132
+ href: string;
133
+ path: string;
134
+ renditionLayout: "reflowable" | "pre-paginated";
135
+ progressionWeight: number;
136
+ pageSpreadLeft: true | undefined;
137
+ pageSpreadRight: true | undefined;
138
+ mediaType?: string | undefined;
139
+ };
140
+ } & {
141
+ layout: (layoutInformation: {
142
+ blankPagePosition: "after" | "before" | "none";
143
+ minimumWidth: number;
144
+ spreadPosition: "right" | "left" | "none";
145
+ }) => {
146
+ width: number;
147
+ height: number;
148
+ };
149
+ load: () => void;
150
+ adjustPositionOfElement: ({ right, left, top }: {
151
+ right?: number | undefined;
152
+ left?: number | undefined;
153
+ top?: number | undefined;
154
+ }) => void;
155
+ createLoadingElement: (containerElement: HTMLElement, item: {
156
+ id: string;
157
+ href: string;
158
+ path: string;
159
+ renditionLayout: "reflowable" | "pre-paginated";
160
+ progressionWeight: number;
161
+ pageSpreadLeft: true | undefined;
162
+ pageSpreadRight: true | undefined;
163
+ mediaType?: string | undefined;
164
+ }, context: {
165
+ load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("../types").LoadOptions) => void;
166
+ isRTL: () => boolean;
167
+ areAllItemsPrePaginated: () => boolean;
168
+ destroy: () => void;
169
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
170
+ getCalculatedInnerMargin: () => number;
171
+ getVisibleAreaRect: () => {
172
+ width: number;
173
+ height: number;
174
+ x: number;
175
+ y: number;
176
+ };
177
+ shouldDisplaySpread: () => boolean;
178
+ setHasVerticalWriting: () => void;
179
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
180
+ getManifest: () => import("@prose-reader/shared").Manifest | undefined;
181
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
182
+ getPageSize: () => {
183
+ width: number;
184
+ height: number;
185
+ };
186
+ getSettings: () => import("../settings").PublicSettings & {
187
+ computedPageTurnMode: "controlled" | "scrollable";
188
+ computedPageTurnDirection: "vertical" | "horizontal";
189
+ computedPageTurnAnimation: "none" | "fade" | "slide";
190
+ computedPageTurnAnimationDuration: number;
191
+ computedSnapAnimationDuration: number;
192
+ };
193
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
194
+ $: {
195
+ hasVerticalWriting$: import("rxjs").Observable<boolean>;
196
+ destroy$: import("rxjs").Observable<void>;
197
+ settings$: import("rxjs").Observable<import("../settings").PublicSettings & {
198
+ computedPageTurnMode: "controlled" | "scrollable";
199
+ computedPageTurnDirection: "vertical" | "horizontal";
200
+ computedPageTurnAnimation: "none" | "fade" | "slide";
201
+ computedPageTurnAnimationDuration: number;
202
+ computedSnapAnimationDuration: number;
203
+ }>;
204
+ load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
205
+ };
206
+ }) => HTMLDivElement;
207
+ getElementDimensions: () => {
208
+ width: number;
209
+ height: number;
210
+ };
211
+ getHtmlFromResource: (response: Response) => Promise<string>;
212
+ getResource: () => Promise<Response>;
213
+ translateFramePositionIntoPage: (position: {
214
+ clientX: number;
215
+ clientY: number;
216
+ }) => {
217
+ clientX: number;
218
+ clientY: number;
219
+ };
220
+ setLayoutDirty: () => void;
221
+ injectStyle: (cssText: string) => void;
222
+ loadContent: () => void;
223
+ unloadContent: () => void;
224
+ spineItemFrame: {
225
+ getIsLoaded: () => boolean;
226
+ getIsReady: () => boolean;
227
+ getViewportDimensions: () => {
228
+ width: number;
229
+ height: number;
230
+ } | undefined;
231
+ getFrameElement: () => HTMLIFrameElement | undefined;
232
+ getHtmlFromResource: (response: Response) => Promise<string>;
233
+ load: () => void;
234
+ unload: () => void;
235
+ staticLayout: (size: {
236
+ width: number;
237
+ height: number;
238
+ }) => void;
239
+ getManipulableFrame: () => {
240
+ frame: HTMLIFrameElement;
241
+ removeStyle: (id: string) => void;
242
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
243
+ } | undefined;
244
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
245
+ isUsingVerticalWriting: () => boolean;
246
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
247
+ destroy: () => void;
248
+ $: {
249
+ unload$: import("rxjs").Observable<void>;
250
+ unloaded$: import("rxjs").Observable<void>;
251
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
252
+ ready$: import("rxjs").Observable<FontFaceSet | undefined>;
253
+ isReady$: import("rxjs").Observable<boolean>;
254
+ contentLayoutChange$: import("rxjs").Observable<{
255
+ isFirstLayout: boolean;
256
+ } | {
257
+ isFirstLayout: boolean;
258
+ }>;
259
+ };
260
+ };
261
+ element: HTMLElement;
262
+ loadingElement: HTMLDivElement;
263
+ isReflowable: boolean;
264
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
265
+ getViewPortInformation: () => {
266
+ computedScale: number;
267
+ computedWidthScale: number;
268
+ viewportDimensions: {
269
+ width: number;
270
+ height: number;
271
+ };
272
+ } | {
273
+ width?: number | undefined;
274
+ height?: number | undefined;
275
+ computedScale: number;
276
+ computedWidthScale: number;
277
+ viewportDimensions?: undefined;
278
+ };
279
+ isImageType: () => boolean | undefined;
280
+ isReady: () => boolean;
281
+ destroy: () => void;
282
+ isUsingVerticalWriting: () => boolean | undefined;
283
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
284
+ manipulateSpineItem: (cb: (options: {
285
+ container: HTMLElement;
286
+ loadingElement: HTMLElement;
287
+ item: {
288
+ id: string;
289
+ href: string;
290
+ path: string;
291
+ renditionLayout: "reflowable" | "pre-paginated";
292
+ progressionWeight: number;
293
+ pageSpreadLeft: true | undefined;
294
+ pageSpreadRight: true | undefined;
295
+ mediaType?: string | undefined;
296
+ };
297
+ overlayElement: HTMLDivElement;
298
+ } & ({
299
+ frame: HTMLIFrameElement;
300
+ removeStyle: (id: string) => void;
301
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
302
+ } | {
303
+ frame: undefined;
304
+ removeStyle: (id: string) => void;
305
+ addStyle: (id: string, style: string) => void;
306
+ })) => boolean) => boolean;
307
+ executeOnLayoutBeforeMeasurmentHook: (options: {
308
+ minimumWidth: number;
309
+ }) => void;
310
+ selectionTracker: {
311
+ track: (frameToTrack: HTMLIFrameElement) => void;
312
+ destroy: () => void;
313
+ isSelecting: () => boolean;
314
+ getSelection: () => Selection | undefined;
315
+ $: import("rxjs").Observable<{
316
+ event: "selectionchange";
317
+ data: Selection | null;
318
+ } | {
319
+ event: "selectstart";
320
+ data: Selection | null;
321
+ } | {
322
+ event: "selectend";
323
+ data: Selection | null;
324
+ }>;
325
+ };
326
+ fingerTracker: {
327
+ track: (frame: HTMLIFrameElement) => void;
328
+ getFingerPositionInIframe(): {
329
+ x: number | undefined;
330
+ y: number | undefined;
331
+ } | undefined;
332
+ destroy: () => void;
333
+ $: import("rxjs").Observable<{
334
+ event: "fingermove";
335
+ data: {
336
+ x: number;
337
+ y: number;
338
+ };
339
+ } | {
340
+ event: "fingerout";
341
+ data: undefined;
342
+ }>;
343
+ };
344
+ $: {
345
+ contentLayoutChangeSubject$: import("rxjs").Observable<{
346
+ isFirstLayout: boolean;
347
+ isReady: boolean;
348
+ }>;
349
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
350
+ };
351
+ }) | undefined) | ((position: {
352
+ x: number;
353
+ y: number;
354
+ }) => ({
355
+ item: {
356
+ id: string;
357
+ href: string;
358
+ path: string;
359
+ renditionLayout: "reflowable" | "pre-paginated";
360
+ progressionWeight: number;
361
+ pageSpreadLeft: true | undefined;
362
+ pageSpreadRight: true | undefined;
363
+ mediaType?: string | undefined;
364
+ };
365
+ } & {
366
+ layout: (layoutInformation: {
367
+ blankPagePosition: "after" | "before" | "none";
368
+ minimumWidth: number;
369
+ spreadPosition: "right" | "left" | "none";
370
+ }) => {
371
+ width: number;
372
+ height: number;
373
+ };
374
+ load: () => void;
375
+ adjustPositionOfElement: ({ right, left, top }: {
376
+ right?: number | undefined;
377
+ left?: number | undefined;
378
+ top?: number | undefined;
379
+ }) => void;
380
+ createLoadingElement: (containerElement: HTMLElement, item: {
381
+ id: string;
382
+ href: string;
383
+ path: string;
384
+ renditionLayout: "reflowable" | "pre-paginated";
385
+ progressionWeight: number;
386
+ pageSpreadLeft: true | undefined;
387
+ pageSpreadRight: true | undefined;
388
+ mediaType?: string | undefined;
389
+ }, context: {
390
+ load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("../types").LoadOptions) => void;
391
+ isRTL: () => boolean;
392
+ areAllItemsPrePaginated: () => boolean;
393
+ destroy: () => void;
394
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
395
+ getCalculatedInnerMargin: () => number;
396
+ getVisibleAreaRect: () => {
397
+ width: number;
398
+ height: number;
399
+ x: number;
400
+ y: number;
401
+ };
402
+ shouldDisplaySpread: () => boolean;
403
+ setHasVerticalWriting: () => void;
404
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
405
+ getManifest: () => import("@prose-reader/shared").Manifest | undefined;
406
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
407
+ getPageSize: () => {
408
+ width: number;
409
+ height: number;
410
+ };
411
+ getSettings: () => import("../settings").PublicSettings & {
412
+ computedPageTurnMode: "controlled" | "scrollable";
413
+ computedPageTurnDirection: "vertical" | "horizontal";
414
+ computedPageTurnAnimation: "none" | "fade" | "slide";
415
+ computedPageTurnAnimationDuration: number;
416
+ computedSnapAnimationDuration: number;
417
+ };
418
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
419
+ $: {
420
+ hasVerticalWriting$: import("rxjs").Observable<boolean>;
421
+ destroy$: import("rxjs").Observable<void>;
422
+ settings$: import("rxjs").Observable<import("../settings").PublicSettings & {
423
+ computedPageTurnMode: "controlled" | "scrollable";
424
+ computedPageTurnDirection: "vertical" | "horizontal";
425
+ computedPageTurnAnimation: "none" | "fade" | "slide";
426
+ computedPageTurnAnimationDuration: number;
427
+ computedSnapAnimationDuration: number;
428
+ }>;
429
+ load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
430
+ };
431
+ }) => HTMLDivElement;
432
+ getElementDimensions: () => {
433
+ width: number;
434
+ height: number;
435
+ };
436
+ getHtmlFromResource: (response: Response) => Promise<string>;
437
+ getResource: () => Promise<Response>;
438
+ translateFramePositionIntoPage: (position: {
439
+ clientX: number;
440
+ clientY: number;
441
+ }) => {
442
+ clientX: number;
443
+ clientY: number;
444
+ };
445
+ setLayoutDirty: () => void;
446
+ injectStyle: (cssText: string) => void;
447
+ loadContent: () => void;
448
+ unloadContent: () => void;
449
+ spineItemFrame: {
450
+ getIsLoaded: () => boolean;
451
+ getIsReady: () => boolean;
452
+ getViewportDimensions: () => {
453
+ width: number;
454
+ height: number;
455
+ } | undefined;
456
+ getFrameElement: () => HTMLIFrameElement | undefined;
457
+ getHtmlFromResource: (response: Response) => Promise<string>;
458
+ load: () => void;
459
+ unload: () => void;
460
+ staticLayout: (size: {
461
+ width: number;
462
+ height: number;
463
+ }) => void;
464
+ getManipulableFrame: () => {
465
+ frame: HTMLIFrameElement;
466
+ removeStyle: (id: string) => void;
467
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
468
+ } | undefined;
469
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
470
+ isUsingVerticalWriting: () => boolean;
471
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
472
+ destroy: () => void;
473
+ $: {
474
+ unload$: import("rxjs").Observable<void>;
475
+ unloaded$: import("rxjs").Observable<void>;
476
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
477
+ ready$: import("rxjs").Observable<FontFaceSet | undefined>;
478
+ isReady$: import("rxjs").Observable<boolean>;
479
+ contentLayoutChange$: import("rxjs").Observable<{
480
+ isFirstLayout: boolean;
481
+ } | {
482
+ isFirstLayout: boolean;
483
+ }>;
484
+ };
485
+ };
486
+ element: HTMLElement;
487
+ loadingElement: HTMLDivElement;
488
+ isReflowable: boolean;
489
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
490
+ getViewPortInformation: () => {
491
+ computedScale: number;
492
+ computedWidthScale: number;
493
+ viewportDimensions: {
494
+ width: number;
495
+ height: number;
496
+ };
497
+ } | {
498
+ width?: number | undefined;
499
+ height?: number | undefined;
500
+ computedScale: number;
501
+ computedWidthScale: number;
502
+ viewportDimensions?: undefined;
503
+ };
504
+ isImageType: () => boolean | undefined;
505
+ isReady: () => boolean;
506
+ destroy: () => void;
507
+ isUsingVerticalWriting: () => boolean | undefined;
508
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
509
+ manipulateSpineItem: (cb: (options: {
510
+ container: HTMLElement;
511
+ loadingElement: HTMLElement;
512
+ item: {
513
+ id: string;
514
+ href: string;
515
+ path: string;
516
+ renditionLayout: "reflowable" | "pre-paginated";
517
+ progressionWeight: number;
518
+ pageSpreadLeft: true | undefined;
519
+ pageSpreadRight: true | undefined;
520
+ mediaType?: string | undefined;
521
+ };
522
+ overlayElement: HTMLDivElement;
523
+ } & ({
524
+ frame: HTMLIFrameElement;
525
+ removeStyle: (id: string) => void;
526
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
527
+ } | {
528
+ frame: undefined;
529
+ removeStyle: (id: string) => void;
530
+ addStyle: (id: string, style: string) => void;
531
+ })) => boolean) => boolean;
532
+ executeOnLayoutBeforeMeasurmentHook: (options: {
533
+ minimumWidth: number;
534
+ }) => void;
535
+ selectionTracker: {
536
+ track: (frameToTrack: HTMLIFrameElement) => void;
537
+ destroy: () => void;
538
+ isSelecting: () => boolean;
539
+ getSelection: () => Selection | undefined;
540
+ $: import("rxjs").Observable<{
541
+ event: "selectionchange";
542
+ data: Selection | null;
543
+ } | {
544
+ event: "selectstart";
545
+ data: Selection | null;
546
+ } | {
547
+ event: "selectend";
548
+ data: Selection | null;
549
+ }>;
550
+ };
551
+ fingerTracker: {
552
+ track: (frame: HTMLIFrameElement) => void;
553
+ getFingerPositionInIframe(): {
554
+ x: number | undefined;
555
+ y: number | undefined;
556
+ } | undefined;
557
+ destroy: () => void;
558
+ $: import("rxjs").Observable<{
559
+ event: "fingermove";
560
+ data: {
561
+ x: number;
562
+ y: number;
563
+ };
564
+ } | {
565
+ event: "fingerout";
566
+ data: undefined;
567
+ }>;
568
+ };
569
+ $: {
570
+ contentLayoutChangeSubject$: import("rxjs").Observable<{
571
+ isFirstLayout: boolean;
572
+ isReady: boolean;
573
+ }>;
574
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
575
+ };
576
+ }) | undefined);
577
+ getSpineItemFromIframe: (iframe: Element) => import("../spineItem/createSpineItem").SpineItem | undefined;
578
+ getSpineItemPageIndexFromNode: (node: Node, offset: number | undefined, spineItemOrIndex: number | import("../spineItem/createSpineItem").SpineItem) => number | undefined;
579
+ getSpineItemsFromReadingOrderPosition: (position: {
580
+ x: number;
581
+ y: number;
582
+ }) => {
583
+ left: number;
584
+ right: number;
585
+ begin: number;
586
+ beginPosition: {
587
+ x: number;
588
+ y: number;
589
+ };
590
+ end: number;
591
+ endPosition: {
592
+ x: number;
593
+ y: number;
594
+ };
595
+ } | undefined;
596
+ };
597
+ spineItemLocator: {
598
+ getSpineItemPositionFromNode: (node: Node, offset: number, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
599
+ x: number;
600
+ y: number;
601
+ } | undefined;
602
+ getSpineItemPositionFromPageIndex: (pageIndex: number, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
603
+ x: number;
604
+ y: number;
605
+ };
606
+ getSpineItemOffsetFromAnchor: (anchor: string, spineItem: import("../spineItem/createSpineItem").SpineItem) => number;
607
+ getSpineItemPageIndexFromPosition: (position: {
608
+ x: number;
609
+ y: number;
610
+ }, spineItem: import("../spineItem/createSpineItem").SpineItem) => number;
611
+ getSpineItemPageIndexFromNode: (node: Node, offset: number, spineItem: import("../spineItem/createSpineItem").SpineItem) => number | undefined;
612
+ getSpineItemClosestPositionFromUnsafePosition: (unsafePosition: {
613
+ x: number;
614
+ y: number;
615
+ }, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
616
+ x: number;
617
+ y: number;
618
+ };
619
+ getFirstNodeOrRangeAtPage: (pageIndex: number, spineItem: import("../spineItem/createSpineItem").SpineItem) => {
620
+ node: Node;
621
+ offset: number;
622
+ } | undefined;
623
+ };
624
+ cfiLocator: {
625
+ getSpineItemFromCfi: (cfi: string) => ({
626
+ item: {
627
+ id: string;
628
+ href: string;
629
+ path: string;
630
+ renditionLayout: "reflowable" | "pre-paginated";
631
+ progressionWeight: number;
632
+ pageSpreadLeft: true | undefined;
633
+ pageSpreadRight: true | undefined;
634
+ mediaType?: string | undefined;
635
+ };
636
+ } & {
637
+ layout: (layoutInformation: {
638
+ blankPagePosition: "after" | "before" | "none";
639
+ minimumWidth: number;
640
+ spreadPosition: "right" | "left" | "none";
641
+ }) => {
642
+ width: number;
643
+ height: number;
644
+ };
645
+ load: () => void;
646
+ adjustPositionOfElement: ({ right, left, top }: {
647
+ right?: number | undefined;
648
+ left?: number | undefined;
649
+ top?: number | undefined;
650
+ }) => void;
651
+ createLoadingElement: (containerElement: HTMLElement, item: {
652
+ id: string;
653
+ href: string;
654
+ path: string;
655
+ renditionLayout: "reflowable" | "pre-paginated";
656
+ progressionWeight: number;
657
+ pageSpreadLeft: true | undefined;
658
+ pageSpreadRight: true | undefined;
659
+ mediaType?: string | undefined;
660
+ }, context: {
661
+ load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("../types").LoadOptions) => void;
662
+ isRTL: () => boolean;
663
+ areAllItemsPrePaginated: () => boolean;
664
+ destroy: () => void;
665
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
666
+ getCalculatedInnerMargin: () => number;
667
+ getVisibleAreaRect: () => {
668
+ width: number;
669
+ height: number;
670
+ x: number;
671
+ y: number;
672
+ };
673
+ shouldDisplaySpread: () => boolean;
674
+ setHasVerticalWriting: () => void;
675
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
676
+ getManifest: () => import("@prose-reader/shared").Manifest | undefined;
677
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
678
+ getPageSize: () => {
679
+ width: number;
680
+ height: number;
681
+ };
682
+ getSettings: () => import("../settings").PublicSettings & {
683
+ computedPageTurnMode: "controlled" | "scrollable";
684
+ computedPageTurnDirection: "vertical" | "horizontal";
685
+ computedPageTurnAnimation: "none" | "fade" | "slide";
686
+ computedPageTurnAnimationDuration: number;
687
+ computedSnapAnimationDuration: number;
688
+ };
689
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
690
+ $: {
691
+ hasVerticalWriting$: import("rxjs").Observable<boolean>;
692
+ destroy$: import("rxjs").Observable<void>;
693
+ settings$: import("rxjs").Observable<import("../settings").PublicSettings & {
694
+ computedPageTurnMode: "controlled" | "scrollable";
695
+ computedPageTurnDirection: "vertical" | "horizontal";
696
+ computedPageTurnAnimation: "none" | "fade" | "slide";
697
+ computedPageTurnAnimationDuration: number;
698
+ computedSnapAnimationDuration: number;
699
+ }>;
700
+ load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
701
+ };
702
+ }) => HTMLDivElement;
703
+ getElementDimensions: () => {
704
+ width: number;
705
+ height: number;
706
+ };
707
+ getHtmlFromResource: (response: Response) => Promise<string>;
708
+ getResource: () => Promise<Response>;
709
+ translateFramePositionIntoPage: (position: {
710
+ clientX: number;
711
+ clientY: number;
712
+ }) => {
713
+ clientX: number;
714
+ clientY: number;
715
+ };
716
+ setLayoutDirty: () => void;
717
+ injectStyle: (cssText: string) => void;
718
+ loadContent: () => void;
719
+ unloadContent: () => void;
720
+ spineItemFrame: {
721
+ getIsLoaded: () => boolean;
722
+ getIsReady: () => boolean;
723
+ getViewportDimensions: () => {
724
+ width: number;
725
+ height: number;
726
+ } | undefined;
727
+ getFrameElement: () => HTMLIFrameElement | undefined;
728
+ getHtmlFromResource: (response: Response) => Promise<string>;
729
+ load: () => void;
730
+ unload: () => void;
731
+ staticLayout: (size: {
732
+ width: number;
733
+ height: number;
734
+ }) => void;
735
+ getManipulableFrame: () => {
736
+ frame: HTMLIFrameElement;
737
+ removeStyle: (id: string) => void;
738
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
739
+ } | undefined;
740
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
741
+ isUsingVerticalWriting: () => boolean;
742
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
743
+ destroy: () => void;
744
+ $: {
745
+ unload$: import("rxjs").Observable<void>;
746
+ unloaded$: import("rxjs").Observable<void>;
747
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
748
+ ready$: import("rxjs").Observable<FontFaceSet | undefined>;
749
+ isReady$: import("rxjs").Observable<boolean>;
750
+ contentLayoutChange$: import("rxjs").Observable<{
751
+ isFirstLayout: boolean;
752
+ } | {
753
+ isFirstLayout: boolean;
754
+ }>;
755
+ };
756
+ };
757
+ element: HTMLElement;
758
+ loadingElement: HTMLDivElement;
759
+ isReflowable: boolean;
760
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
761
+ getViewPortInformation: () => {
762
+ computedScale: number;
763
+ computedWidthScale: number;
764
+ viewportDimensions: {
765
+ width: number;
766
+ height: number;
767
+ };
768
+ } | {
769
+ width?: number | undefined;
770
+ height?: number | undefined;
771
+ computedScale: number;
772
+ computedWidthScale: number;
773
+ viewportDimensions?: undefined;
774
+ };
775
+ isImageType: () => boolean | undefined;
776
+ isReady: () => boolean;
777
+ destroy: () => void;
778
+ isUsingVerticalWriting: () => boolean | undefined;
779
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
780
+ manipulateSpineItem: (cb: (options: {
781
+ container: HTMLElement;
782
+ loadingElement: HTMLElement;
783
+ item: {
784
+ id: string;
785
+ href: string;
786
+ path: string;
787
+ renditionLayout: "reflowable" | "pre-paginated";
788
+ progressionWeight: number;
789
+ pageSpreadLeft: true | undefined;
790
+ pageSpreadRight: true | undefined;
791
+ mediaType?: string | undefined;
792
+ };
793
+ overlayElement: HTMLDivElement;
794
+ } & ({
795
+ frame: HTMLIFrameElement;
796
+ removeStyle: (id: string) => void;
797
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
798
+ } | {
799
+ frame: undefined;
800
+ removeStyle: (id: string) => void;
801
+ addStyle: (id: string, style: string) => void;
802
+ })) => boolean) => boolean;
803
+ executeOnLayoutBeforeMeasurmentHook: (options: {
804
+ minimumWidth: number;
805
+ }) => void;
806
+ selectionTracker: {
807
+ track: (frameToTrack: HTMLIFrameElement) => void;
808
+ destroy: () => void;
809
+ isSelecting: () => boolean;
810
+ getSelection: () => Selection | undefined;
811
+ $: import("rxjs").Observable<{
812
+ event: "selectionchange";
813
+ data: Selection | null;
814
+ } | {
815
+ event: "selectstart";
816
+ data: Selection | null;
817
+ } | {
818
+ event: "selectend";
819
+ data: Selection | null;
820
+ }>;
821
+ };
822
+ fingerTracker: {
823
+ track: (frame: HTMLIFrameElement) => void;
824
+ getFingerPositionInIframe(): {
825
+ x: number | undefined;
826
+ y: number | undefined;
827
+ } | undefined;
828
+ destroy: () => void;
829
+ $: import("rxjs").Observable<{
830
+ event: "fingermove";
831
+ data: {
832
+ x: number;
833
+ y: number;
834
+ };
835
+ } | {
836
+ event: "fingerout";
837
+ data: undefined;
838
+ }>;
839
+ };
840
+ $: {
841
+ contentLayoutChangeSubject$: import("rxjs").Observable<{
842
+ isFirstLayout: boolean;
843
+ isReady: boolean;
844
+ }>;
845
+ loaded$: import("rxjs").Observable<HTMLIFrameElement>;
846
+ };
847
+ }) | undefined;
848
+ getCfiMetaInformation: (cfi: string) => {
849
+ spineItemIndex: number | undefined;
850
+ } | undefined;
851
+ getCfi: ((pageIndex: number, spineItem: import("../spineItem/createSpineItem").SpineItem) => string) | ((pageIndex: number, spineItem: import("../spineItem/createSpineItem").SpineItem) => string);
852
+ getRootCfi: (spineItem: import("../spineItem/createSpineItem").SpineItem) => string;
853
+ resolveCfi: (cfiString: string) => {
854
+ node: Node | undefined;
855
+ offset: number | undefined;
856
+ spineItemIndex: number;
857
+ } | {
858
+ spineItemIndex: number;
859
+ node?: undefined;
860
+ offset?: undefined;
861
+ } | undefined;
862
+ generateFromRange: ({ startNode, start, end, endNode }: {
863
+ startNode: Node;
864
+ start: number;
865
+ endNode: Node;
866
+ end: number;
867
+ }, item: {
868
+ id: string;
869
+ href: string;
870
+ path: string;
871
+ renditionLayout: "reflowable" | "pre-paginated";
872
+ progressionWeight: number;
873
+ pageSpreadLeft: true | undefined;
874
+ pageSpreadRight: true | undefined;
875
+ mediaType?: string | undefined;
876
+ }) => {
877
+ start: string;
878
+ end: string;
879
+ };
880
+ };
881
+ normalizeEventForViewport: <E extends MouseEvent | TouchEvent | PointerEvent>(event: E) => E;
882
+ manipulateSpineItems: (cb: (payload: ManipulableSpineItemCallbackPayload & {
883
+ index: number;
884
+ }) => RequireLayout) => void;
885
+ layout: () => void;
886
+ destroy: () => void;
887
+ isSelecting: () => boolean | undefined;
888
+ getSelection: () => Selection | undefined;
889
+ $: {
890
+ $: import("rxjs").Observable<Event>;
891
+ viewportState$: import("rxjs").Observable<"free" | "busy">;
892
+ layout$: import("rxjs").Observable<boolean>;
893
+ };
894
+ };
895
+ export declare type Spine = ReturnType<typeof createSpine>;
896
+ export {};