@prose-reader/core 1.57.0 → 1.59.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 +268 -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 -4262
  48. package/dist/index.js +225 -255
  49. package/dist/index.js.map +1 -1
  50. package/dist/index.umd.cjs +225 -255
  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
package/dist/index.d.ts CHANGED
@@ -1,4263 +1,10 @@
1
- import { BehaviorSubject } from 'rxjs';
2
- import { Manifest } from '@prose-reader/shared';
3
- import { Observable } from 'rxjs';
4
- import { Subject } from 'rxjs';
5
-
6
- declare type Api = {
7
- zoom: {
8
- enter: (imgElement?: HTMLImageElement) => void;
9
- exit: () => void;
10
- move: (position: {
11
- x: number;
12
- y: number;
13
- } | undefined, details: {
14
- isFirst: boolean;
15
- isLast: boolean;
16
- }) => void;
17
- isZooming: () => boolean;
18
- isUsingScrollableZoom: () => boolean;
19
- getScaleValue: () => number;
20
- scale: (scale: number) => void;
21
- setCurrentScaleAsBase: () => void;
22
- $: {
23
- isZooming$: Observable<boolean>;
24
- };
25
- };
26
- };
27
-
28
- declare type CfiLocator = ReturnType<typeof createCfiLocator>;
29
-
30
- declare type ChapterInfo = {
31
- title: string;
32
- subChapter?: {
33
- title: string;
34
- subChapter?: {
35
- title: string;
36
- subChapter?: {
37
- title: string;
38
- path: string;
39
- };
40
- path: string;
41
- };
42
- path: string;
43
- };
44
- path: string;
45
- };
46
-
47
- declare type ComputedSettings = Settings & {
48
- computedPageTurnMode: Settings[`pageTurnMode`];
49
- computedPageTurnDirection: Settings[`pageTurnDirection`];
50
- computedPageTurnAnimation: Settings[`pageTurnAnimation`];
51
- computedPageTurnAnimationDuration: number;
52
- computedSnapAnimationDuration: number;
53
- };
54
-
55
- declare class Context {
56
- _stateSubject: BehaviorSubject<State>;
57
- destroy$: Subject<void>;
58
- state$: Observable<Partial<Pick<LoadOptions, "containerElement">> & {
59
- manifest?: Manifest | undefined;
60
- hasVerticalWriting?: boolean | undefined;
61
- isUsingSpreadMode?: boolean | undefined;
62
- isFullyPrePaginated?: boolean | undefined;
63
- forceSinglePageMode?: boolean | undefined;
64
- areAllItemsPrePaginated?: boolean | undefined;
65
- calculatedInnerMargin: number;
66
- marginTop: number;
67
- marginBottom: number;
68
- visibleAreaRect: {
69
- width: number;
70
- height: number;
71
- x: number;
72
- y: number;
73
- };
74
- }>;
75
- manifest$: Observable<Manifest>;
76
- containerElement$: Observable<HTMLElement>;
77
- hasVerticalWriting$: Observable<boolean>;
78
- isUsingSpreadMode$: Observable<boolean | undefined>;
79
- update(newState: {
80
- manifest?: Manifest;
81
- forceSinglePageMode?: boolean;
82
- visibleAreaRect?: State["visibleAreaRect"];
83
- marginTop?: number;
84
- marginBottom?: number;
85
- hasVerticalWriting?: boolean;
86
- }): void;
87
- isRTL: () => boolean;
88
- get state(): State;
89
- get manifest(): Manifest | undefined;
90
- get readingDirection(): "ltr" | "rtl" | undefined;
91
- getPageSize(): {
92
- width: number;
93
- height: number;
94
- };
95
- destroy: () => void;
96
- }
97
-
98
- declare type ContextSettings = Partial<Settings>;
99
-
100
- declare const createCfiLocator: ({ spineItemManager, spineItemLocator, }: {
101
- spineItemManager: SpineItemManager;
102
- context: Context;
103
- spineItemLocator: ReturnType<typeof createLocationResolver_2>;
104
- }) => {
105
- getSpineItemFromCfi: (cfi: string) => {
106
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
107
- blankPagePosition: "after" | "before" | "none";
108
- minimumWidth: number;
109
- spreadPosition: "none" | "right" | "left";
110
- }) => {
111
- width: number;
112
- height: number;
113
- };
114
- item: {
115
- id: string;
116
- href: string;
117
- renditionLayout: "reflowable" | "pre-paginated";
118
- progressionWeight: number;
119
- pageSpreadLeft: true | undefined;
120
- pageSpreadRight: true | undefined;
121
- mediaType?: string | undefined;
122
- };
123
- load: () => void;
124
- adjustPositionOfElement: ({ right, left, top }: {
125
- right?: number | undefined;
126
- left?: number | undefined;
127
- top?: number | undefined;
128
- }) => void;
129
- getElementDimensions: () => {
130
- width: number;
131
- height: number;
132
- };
133
- getHtmlFromResource: (response: Response) => Promise<string>;
134
- getResource: () => Promise<Response>;
135
- translateFramePositionIntoPage: (position: {
136
- clientX: number;
137
- clientY: number;
138
- }) => {
139
- clientX: number;
140
- clientY: number;
141
- };
142
- setLayoutDirty: () => void;
143
- injectStyle: (cssText: string) => void;
144
- loadContent: () => void;
145
- unloadContent: () => void;
146
- spineItemFrame: {
147
- getIsLoaded: () => boolean;
148
- getIsReady: () => boolean;
149
- getViewportDimensions: () => {
150
- width: number;
151
- height: number;
152
- } | undefined;
153
- getFrameElement: () => HTMLIFrameElement | undefined;
154
- getHtmlFromResource: (response: Response) => Promise<string>;
155
- load: () => void;
156
- unload: () => void;
157
- staticLayout: (size: {
158
- width: number;
159
- height: number;
160
- }) => void;
161
- getManipulableFrame: () => {
162
- frame: HTMLIFrameElement;
163
- removeStyle: (id: string) => void;
164
- addStyle: (id: string, style: string, prepend?: boolean) => void;
165
- } | undefined;
166
- getReadingDirection: () => "ltr" | "rtl" | undefined;
167
- isUsingVerticalWriting: () => boolean;
168
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
169
- destroy: () => void;
170
- $: {
171
- unload$: Observable<void>;
172
- unloaded$: Observable<void>;
173
- loaded$: Observable<HTMLIFrameElement>;
174
- ready$: Observable<FontFaceSet | undefined>;
175
- isReady$: Observable<boolean>;
176
- contentLayoutChange$: Observable< {
177
- isFirstLayout: boolean;
178
- } | {
179
- isFirstLayout: boolean;
180
- }>;
181
- };
182
- };
183
- element: HTMLElement;
184
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
185
- getViewPortInformation: () => {
186
- computedScale: number;
187
- computedWidthScale: number;
188
- viewportDimensions: {
189
- width: number;
190
- height: number;
191
- };
192
- } | undefined;
193
- isImageType: () => boolean;
194
- isReady: () => boolean;
195
- destroy: () => void;
196
- isUsingVerticalWriting: () => boolean | undefined;
197
- getReadingDirection: () => "ltr" | "rtl" | undefined;
198
- manipulateSpineItem: (cb: (options: {
199
- container: HTMLElement;
200
- item: {
201
- id: string;
202
- href: string;
203
- renditionLayout: "reflowable" | "pre-paginated";
204
- progressionWeight: number;
205
- pageSpreadLeft: true | undefined;
206
- pageSpreadRight: true | undefined;
207
- mediaType?: string | undefined;
208
- };
209
- overlayElement: HTMLDivElement;
210
- } & ({
211
- frame: HTMLIFrameElement;
212
- removeStyle: (id: string) => void;
213
- addStyle: (id: string, style: string, prepend?: boolean) => void;
214
- } | {
215
- frame: undefined;
216
- removeStyle: (id: string) => void;
217
- addStyle: (id: string, style: string) => void;
218
- })) => boolean) => boolean;
219
- executeOnLayoutBeforeMeasurementHook: (options: {
220
- minimumWidth: number;
221
- }) => Observable<[void | Observable<void>]>;
222
- selectionTracker: {
223
- track: (frameToTrack: HTMLIFrameElement) => void;
224
- destroy: () => void;
225
- isSelecting: () => boolean;
226
- getSelection: () => Selection | undefined;
227
- $: Observable< {
228
- event: "selectionchange";
229
- data: Selection | null;
230
- } | {
231
- event: "selectstart";
232
- data: Selection | null;
233
- } | {
234
- event: "selectend";
235
- data: Selection | null;
236
- }>;
237
- };
238
- fingerTracker: {
239
- track: (frame: HTMLIFrameElement) => void;
240
- getFingerPositionInIframe(): {
241
- x: number | undefined;
242
- y: number | undefined;
243
- } | undefined;
244
- destroy: () => void;
245
- $: Observable< {
246
- event: "fingermove";
247
- data: {
248
- x: number;
249
- y: number;
250
- };
251
- } | {
252
- event: "fingerout";
253
- data: undefined;
254
- }>;
255
- };
256
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
257
- columnHeight: number;
258
- columnWidth: number;
259
- width: number;
260
- };
261
- getDimensionsForPaginatedContent: () => {
262
- columnHeight: number;
263
- columnWidth: number;
264
- };
265
- $: {
266
- contentLayout$: Observable< {
267
- isFirstLayout: boolean;
268
- isReady: boolean;
269
- }>;
270
- loaded$: Observable<HTMLIFrameElement>;
271
- isReady$: Observable<boolean>;
272
- };
273
- } | undefined;
274
- getCfiMetaInformation: (cfi: string) => {
275
- spineItemIndex: number | undefined;
276
- } | undefined;
277
- getCfi: ((pageIndex: number, spineItem: SpineItem) => string) | ((pageIndex: number, spineItem: {
278
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
279
- blankPagePosition: "after" | "before" | "none";
280
- minimumWidth: number;
281
- spreadPosition: "none" | "right" | "left";
282
- }) => {
283
- width: number;
284
- height: number;
285
- };
286
- item: {
287
- id: string;
288
- href: string;
289
- renditionLayout: "reflowable" | "pre-paginated";
290
- progressionWeight: number;
291
- pageSpreadLeft: true | undefined;
292
- pageSpreadRight: true | undefined;
293
- mediaType?: string | undefined;
294
- };
295
- load: () => void;
296
- adjustPositionOfElement: ({ right, left, top }: {
297
- right?: number | undefined;
298
- left?: number | undefined;
299
- top?: number | undefined;
300
- }) => void;
301
- getElementDimensions: () => {
302
- width: number;
303
- height: number;
304
- };
305
- getHtmlFromResource: (response: Response) => Promise<string>;
306
- getResource: () => Promise<Response>;
307
- translateFramePositionIntoPage: (position: {
308
- clientX: number;
309
- clientY: number;
310
- }) => {
311
- clientX: number;
312
- clientY: number;
313
- };
314
- setLayoutDirty: () => void;
315
- injectStyle: (cssText: string) => void;
316
- loadContent: () => void;
317
- unloadContent: () => void;
318
- spineItemFrame: {
319
- getIsLoaded: () => boolean;
320
- getIsReady: () => boolean;
321
- getViewportDimensions: () => {
322
- width: number;
323
- height: number;
324
- } | undefined;
325
- getFrameElement: () => HTMLIFrameElement | undefined;
326
- getHtmlFromResource: (response: Response) => Promise<string>;
327
- load: () => void;
328
- unload: () => void;
329
- staticLayout: (size: {
330
- width: number;
331
- height: number;
332
- }) => void;
333
- getManipulableFrame: () => {
334
- frame: HTMLIFrameElement;
335
- removeStyle: (id: string) => void;
336
- addStyle: (id: string, style: string, prepend?: boolean) => void;
337
- } | undefined;
338
- getReadingDirection: () => "ltr" | "rtl" | undefined;
339
- isUsingVerticalWriting: () => boolean;
340
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
341
- destroy: () => void;
342
- $: {
343
- unload$: Observable<void>;
344
- unloaded$: Observable<void>;
345
- loaded$: Observable<HTMLIFrameElement>;
346
- ready$: Observable<FontFaceSet | undefined>;
347
- isReady$: Observable<boolean>;
348
- contentLayoutChange$: Observable< {
349
- isFirstLayout: boolean;
350
- } | {
351
- isFirstLayout: boolean;
352
- }>;
353
- };
354
- };
355
- element: HTMLElement;
356
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
357
- getViewPortInformation: () => {
358
- computedScale: number;
359
- computedWidthScale: number;
360
- viewportDimensions: {
361
- width: number;
362
- height: number;
363
- };
364
- } | undefined;
365
- isImageType: () => boolean;
366
- isReady: () => boolean;
367
- destroy: () => void;
368
- isUsingVerticalWriting: () => boolean | undefined;
369
- getReadingDirection: () => "ltr" | "rtl" | undefined;
370
- manipulateSpineItem: (cb: (options: {
371
- container: HTMLElement;
372
- item: {
373
- id: string;
374
- href: string;
375
- renditionLayout: "reflowable" | "pre-paginated";
376
- progressionWeight: number;
377
- pageSpreadLeft: true | undefined;
378
- pageSpreadRight: true | undefined;
379
- mediaType?: string | undefined;
380
- };
381
- overlayElement: HTMLDivElement;
382
- } & ({
383
- frame: HTMLIFrameElement;
384
- removeStyle: (id: string) => void;
385
- addStyle: (id: string, style: string, prepend?: boolean) => void;
386
- } | {
387
- frame: undefined;
388
- removeStyle: (id: string) => void;
389
- addStyle: (id: string, style: string) => void;
390
- })) => boolean) => boolean;
391
- executeOnLayoutBeforeMeasurementHook: (options: {
392
- minimumWidth: number;
393
- }) => Observable<[void | Observable<void>]>;
394
- selectionTracker: {
395
- track: (frameToTrack: HTMLIFrameElement) => void;
396
- destroy: () => void;
397
- isSelecting: () => boolean;
398
- getSelection: () => Selection | undefined;
399
- $: Observable< {
400
- event: "selectionchange";
401
- data: Selection | null;
402
- } | {
403
- event: "selectstart";
404
- data: Selection | null;
405
- } | {
406
- event: "selectend";
407
- data: Selection | null;
408
- }>;
409
- };
410
- fingerTracker: {
411
- track: (frame: HTMLIFrameElement) => void;
412
- getFingerPositionInIframe(): {
413
- x: number | undefined;
414
- y: number | undefined;
415
- } | undefined;
416
- destroy: () => void;
417
- $: Observable< {
418
- event: "fingermove";
419
- data: {
420
- x: number;
421
- y: number;
422
- };
423
- } | {
424
- event: "fingerout";
425
- data: undefined;
426
- }>;
427
- };
428
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
429
- columnHeight: number;
430
- columnWidth: number;
431
- width: number;
432
- };
433
- getDimensionsForPaginatedContent: () => {
434
- columnHeight: number;
435
- columnWidth: number;
436
- };
437
- $: {
438
- contentLayout$: Observable< {
439
- isFirstLayout: boolean;
440
- isReady: boolean;
441
- }>;
442
- loaded$: Observable<HTMLIFrameElement>;
443
- isReady$: Observable<boolean>;
444
- };
445
- }) => string);
446
- getRootCfi: (spineItem: SpineItem) => string;
447
- resolveCfi: (cfiString: string) => {
448
- node: Node | undefined;
449
- offset: number | undefined;
450
- spineItemIndex: number;
451
- } | {
452
- spineItemIndex: number;
453
- node?: undefined;
454
- offset?: undefined;
455
- } | undefined;
456
- generateFromRange: ({ startNode, start, end, endNode }: {
457
- startNode: Node;
458
- start: number;
459
- endNode: Node;
460
- end: number;
461
- }, item: Manifest[`spineItems`][number]) => {
462
- start: string;
463
- end: string;
464
- };
465
- };
466
-
467
- declare const createLocationResolver: ({ spineItemManager, context, spineItemLocator, settings }: {
468
- spineItemManager: SpineItemManager;
469
- context: Context;
470
- spineItemLocator: ReturnType<typeof createLocationResolver_2>;
471
- settings: SettingsManager;
472
- }) => {
473
- getSpinePositionFromSpineItemPosition: (spineItemPosition: SpineItemNavigationPosition | SpineItemPosition, spineItem: SpineItem) => SpinePosition;
474
- getSpinePositionFromSpineItem: (spineItem: SpineItem) => SpinePosition;
475
- getSpinePositionFromSpineItemAnchor: (anchor: string, spineItem: SpineItem) => SpinePosition;
476
- getSpineItemPositionFromSpinePosition: ((position: UnsafeSpinePosition, spineItem: SpineItem) => UnsafeSpineItemPosition) | ((position: UnsafeSpinePosition, spineItem: {
477
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
478
- blankPagePosition: "after" | "before" | "none";
479
- minimumWidth: number;
480
- spreadPosition: "none" | "right" | "left";
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 | undefined;
493
- };
494
- load: () => void;
495
- adjustPositionOfElement: ({ right, left, top }: {
496
- right?: number | undefined;
497
- left?: number | undefined;
498
- top?: number | undefined;
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: () => {
533
- frame: HTMLIFrameElement;
534
- removeStyle: (id: string) => void;
535
- addStyle: (id: string, style: string, prepend?: boolean) => void;
536
- } | undefined;
537
- getReadingDirection: () => "ltr" | "rtl" | undefined;
538
- isUsingVerticalWriting: () => boolean;
539
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
540
- destroy: () => void;
541
- $: {
542
- unload$: Observable<void>;
543
- unloaded$: Observable<void>;
544
- loaded$: Observable<HTMLIFrameElement>;
545
- ready$: Observable<FontFaceSet | undefined>;
546
- isReady$: Observable<boolean>;
547
- contentLayoutChange$: Observable< {
548
- isFirstLayout: boolean;
549
- } | {
550
- isFirstLayout: boolean;
551
- }>;
552
- };
553
- };
554
- element: HTMLElement;
555
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
556
- getViewPortInformation: () => {
557
- computedScale: number;
558
- computedWidthScale: number;
559
- viewportDimensions: {
560
- width: number;
561
- height: number;
562
- };
563
- } | undefined;
564
- isImageType: () => boolean;
565
- isReady: () => boolean;
566
- destroy: () => void;
567
- isUsingVerticalWriting: () => boolean | undefined;
568
- getReadingDirection: () => "ltr" | "rtl" | undefined;
569
- manipulateSpineItem: (cb: (options: {
570
- container: HTMLElement;
571
- item: {
572
- id: string;
573
- href: string;
574
- renditionLayout: "reflowable" | "pre-paginated";
575
- progressionWeight: number;
576
- pageSpreadLeft: true | undefined;
577
- pageSpreadRight: true | undefined;
578
- mediaType?: string | undefined;
579
- };
580
- overlayElement: HTMLDivElement;
581
- } & ({
582
- frame: HTMLIFrameElement;
583
- removeStyle: (id: string) => void;
584
- addStyle: (id: string, style: string, prepend?: boolean) => void;
585
- } | {
586
- frame: undefined;
587
- removeStyle: (id: string) => void;
588
- addStyle: (id: string, style: string) => void;
589
- })) => boolean) => boolean;
590
- executeOnLayoutBeforeMeasurementHook: (options: {
591
- minimumWidth: number;
592
- }) => Observable<[void | Observable<void>]>;
593
- selectionTracker: {
594
- track: (frameToTrack: HTMLIFrameElement) => void;
595
- destroy: () => void;
596
- isSelecting: () => boolean;
597
- getSelection: () => Selection | undefined;
598
- $: Observable< {
599
- event: "selectionchange";
600
- data: Selection | null;
601
- } | {
602
- event: "selectstart";
603
- data: Selection | null;
604
- } | {
605
- event: "selectend";
606
- data: Selection | null;
607
- }>;
608
- };
609
- fingerTracker: {
610
- track: (frame: HTMLIFrameElement) => void;
611
- getFingerPositionInIframe(): {
612
- x: number | undefined;
613
- y: number | undefined;
614
- } | undefined;
615
- destroy: () => void;
616
- $: Observable< {
617
- event: "fingermove";
618
- data: {
619
- x: number;
620
- y: number;
621
- };
622
- } | {
623
- event: "fingerout";
624
- data: undefined;
625
- }>;
626
- };
627
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
628
- columnHeight: number;
629
- columnWidth: number;
630
- width: number;
631
- };
632
- getDimensionsForPaginatedContent: () => {
633
- columnHeight: number;
634
- columnWidth: number;
635
- };
636
- $: {
637
- contentLayout$: Observable< {
638
- isFirstLayout: boolean;
639
- isReady: boolean;
640
- }>;
641
- loaded$: Observable<HTMLIFrameElement>;
642
- isReady$: Observable<boolean>;
643
- };
644
- }) => UnsafeSpineItemPosition);
645
- getSpineItemFromPosition: ((position: UnsafeSpinePosition) => {
646
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
647
- blankPagePosition: "after" | "before" | "none";
648
- minimumWidth: number;
649
- spreadPosition: "none" | "right" | "left";
650
- }) => {
651
- width: number;
652
- height: number;
653
- };
654
- item: {
655
- id: string;
656
- href: string;
657
- renditionLayout: "reflowable" | "pre-paginated";
658
- progressionWeight: number;
659
- pageSpreadLeft: true | undefined;
660
- pageSpreadRight: true | undefined;
661
- mediaType?: string | undefined;
662
- };
663
- load: () => void;
664
- adjustPositionOfElement: ({ right, left, top }: {
665
- right?: number | undefined;
666
- left?: number | undefined;
667
- top?: number | undefined;
668
- }) => void;
669
- getElementDimensions: () => {
670
- width: number;
671
- height: number;
672
- };
673
- getHtmlFromResource: (response: Response) => Promise<string>;
674
- getResource: () => Promise<Response>;
675
- translateFramePositionIntoPage: (position: {
676
- clientX: number;
677
- clientY: number;
678
- }) => {
679
- clientX: number;
680
- clientY: number;
681
- };
682
- setLayoutDirty: () => void;
683
- injectStyle: (cssText: string) => void;
684
- loadContent: () => void;
685
- unloadContent: () => void;
686
- spineItemFrame: {
687
- getIsLoaded: () => boolean;
688
- getIsReady: () => boolean;
689
- getViewportDimensions: () => {
690
- width: number;
691
- height: number;
692
- } | undefined;
693
- getFrameElement: () => HTMLIFrameElement | undefined;
694
- getHtmlFromResource: (response: Response) => Promise<string>;
695
- load: () => void;
696
- unload: () => void;
697
- staticLayout: (size: {
698
- width: number;
699
- height: number;
700
- }) => void;
701
- getManipulableFrame: () => {
702
- frame: HTMLIFrameElement;
703
- removeStyle: (id: string) => void;
704
- addStyle: (id: string, style: string, prepend?: boolean) => void;
705
- } | undefined;
706
- getReadingDirection: () => "ltr" | "rtl" | undefined;
707
- isUsingVerticalWriting: () => boolean;
708
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
709
- destroy: () => void;
710
- $: {
711
- unload$: Observable<void>;
712
- unloaded$: Observable<void>;
713
- loaded$: Observable<HTMLIFrameElement>;
714
- ready$: Observable<FontFaceSet | undefined>;
715
- isReady$: Observable<boolean>;
716
- contentLayoutChange$: Observable< {
717
- isFirstLayout: boolean;
718
- } | {
719
- isFirstLayout: boolean;
720
- }>;
721
- };
722
- };
723
- element: HTMLElement;
724
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
725
- getViewPortInformation: () => {
726
- computedScale: number;
727
- computedWidthScale: number;
728
- viewportDimensions: {
729
- width: number;
730
- height: number;
731
- };
732
- } | undefined;
733
- isImageType: () => boolean;
734
- isReady: () => boolean;
735
- destroy: () => void;
736
- isUsingVerticalWriting: () => boolean | undefined;
737
- getReadingDirection: () => "ltr" | "rtl" | undefined;
738
- manipulateSpineItem: (cb: (options: {
739
- container: HTMLElement;
740
- item: {
741
- id: string;
742
- href: string;
743
- renditionLayout: "reflowable" | "pre-paginated";
744
- progressionWeight: number;
745
- pageSpreadLeft: true | undefined;
746
- pageSpreadRight: true | undefined;
747
- mediaType?: string | undefined;
748
- };
749
- overlayElement: HTMLDivElement;
750
- } & ({
751
- frame: HTMLIFrameElement;
752
- removeStyle: (id: string) => void;
753
- addStyle: (id: string, style: string, prepend?: boolean) => void;
754
- } | {
755
- frame: undefined;
756
- removeStyle: (id: string) => void;
757
- addStyle: (id: string, style: string) => void;
758
- })) => boolean) => boolean;
759
- executeOnLayoutBeforeMeasurementHook: (options: {
760
- minimumWidth: number;
761
- }) => Observable<[void | Observable<void>]>;
762
- selectionTracker: {
763
- track: (frameToTrack: HTMLIFrameElement) => void;
764
- destroy: () => void;
765
- isSelecting: () => boolean;
766
- getSelection: () => Selection | undefined;
767
- $: Observable< {
768
- event: "selectionchange";
769
- data: Selection | null;
770
- } | {
771
- event: "selectstart";
772
- data: Selection | null;
773
- } | {
774
- event: "selectend";
775
- data: Selection | null;
776
- }>;
777
- };
778
- fingerTracker: {
779
- track: (frame: HTMLIFrameElement) => void;
780
- getFingerPositionInIframe(): {
781
- x: number | undefined;
782
- y: number | undefined;
783
- } | undefined;
784
- destroy: () => void;
785
- $: Observable< {
786
- event: "fingermove";
787
- data: {
788
- x: number;
789
- y: number;
790
- };
791
- } | {
792
- event: "fingerout";
793
- data: undefined;
794
- }>;
795
- };
796
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
797
- columnHeight: number;
798
- columnWidth: number;
799
- width: number;
800
- };
801
- getDimensionsForPaginatedContent: () => {
802
- columnHeight: number;
803
- columnWidth: number;
804
- };
805
- $: {
806
- contentLayout$: Observable< {
807
- isFirstLayout: boolean;
808
- isReady: boolean;
809
- }>;
810
- loaded$: Observable<HTMLIFrameElement>;
811
- isReady$: Observable<boolean>;
812
- };
813
- } | undefined) | ((position: UnsafeSpinePosition) => {
814
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
815
- blankPagePosition: "after" | "before" | "none";
816
- minimumWidth: number;
817
- spreadPosition: "none" | "right" | "left";
818
- }) => {
819
- width: number;
820
- height: number;
821
- };
822
- item: {
823
- id: string;
824
- href: string;
825
- renditionLayout: "reflowable" | "pre-paginated";
826
- progressionWeight: number;
827
- pageSpreadLeft: true | undefined;
828
- pageSpreadRight: true | undefined;
829
- mediaType?: string | undefined;
830
- };
831
- load: () => void;
832
- adjustPositionOfElement: ({ right, left, top }: {
833
- right?: number | undefined;
834
- left?: number | undefined;
835
- top?: number | undefined;
836
- }) => void;
837
- getElementDimensions: () => {
838
- width: number;
839
- height: number;
840
- };
841
- getHtmlFromResource: (response: Response) => Promise<string>;
842
- getResource: () => Promise<Response>;
843
- translateFramePositionIntoPage: (position: {
844
- clientX: number;
845
- clientY: number;
846
- }) => {
847
- clientX: number;
848
- clientY: number;
849
- };
850
- setLayoutDirty: () => void;
851
- injectStyle: (cssText: string) => void;
852
- loadContent: () => void;
853
- unloadContent: () => void;
854
- spineItemFrame: {
855
- getIsLoaded: () => boolean;
856
- getIsReady: () => boolean;
857
- getViewportDimensions: () => {
858
- width: number;
859
- height: number;
860
- } | undefined;
861
- getFrameElement: () => HTMLIFrameElement | undefined;
862
- getHtmlFromResource: (response: Response) => Promise<string>;
863
- load: () => void;
864
- unload: () => void;
865
- staticLayout: (size: {
866
- width: number;
867
- height: number;
868
- }) => void;
869
- getManipulableFrame: () => {
870
- frame: HTMLIFrameElement;
871
- removeStyle: (id: string) => void;
872
- addStyle: (id: string, style: string, prepend?: boolean) => void;
873
- } | undefined;
874
- getReadingDirection: () => "ltr" | "rtl" | undefined;
875
- isUsingVerticalWriting: () => boolean;
876
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
877
- destroy: () => void;
878
- $: {
879
- unload$: Observable<void>;
880
- unloaded$: Observable<void>;
881
- loaded$: Observable<HTMLIFrameElement>;
882
- ready$: Observable<FontFaceSet | undefined>;
883
- isReady$: Observable<boolean>;
884
- contentLayoutChange$: Observable< {
885
- isFirstLayout: boolean;
886
- } | {
887
- isFirstLayout: boolean;
888
- }>;
889
- };
890
- };
891
- element: HTMLElement;
892
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
893
- getViewPortInformation: () => {
894
- computedScale: number;
895
- computedWidthScale: number;
896
- viewportDimensions: {
897
- width: number;
898
- height: number;
899
- };
900
- } | undefined;
901
- isImageType: () => boolean;
902
- isReady: () => boolean;
903
- destroy: () => void;
904
- isUsingVerticalWriting: () => boolean | undefined;
905
- getReadingDirection: () => "ltr" | "rtl" | undefined;
906
- manipulateSpineItem: (cb: (options: {
907
- container: HTMLElement;
908
- item: {
909
- id: string;
910
- href: string;
911
- renditionLayout: "reflowable" | "pre-paginated";
912
- progressionWeight: number;
913
- pageSpreadLeft: true | undefined;
914
- pageSpreadRight: true | undefined;
915
- mediaType?: string | undefined;
916
- };
917
- overlayElement: HTMLDivElement;
918
- } & ({
919
- frame: HTMLIFrameElement;
920
- removeStyle: (id: string) => void;
921
- addStyle: (id: string, style: string, prepend?: boolean) => void;
922
- } | {
923
- frame: undefined;
924
- removeStyle: (id: string) => void;
925
- addStyle: (id: string, style: string) => void;
926
- })) => boolean) => boolean;
927
- executeOnLayoutBeforeMeasurementHook: (options: {
928
- minimumWidth: number;
929
- }) => Observable<[void | Observable<void>]>;
930
- selectionTracker: {
931
- track: (frameToTrack: HTMLIFrameElement) => void;
932
- destroy: () => void;
933
- isSelecting: () => boolean;
934
- getSelection: () => Selection | undefined;
935
- $: Observable< {
936
- event: "selectionchange";
937
- data: Selection | null;
938
- } | {
939
- event: "selectstart";
940
- data: Selection | null;
941
- } | {
942
- event: "selectend";
943
- data: Selection | null;
944
- }>;
945
- };
946
- fingerTracker: {
947
- track: (frame: HTMLIFrameElement) => void;
948
- getFingerPositionInIframe(): {
949
- x: number | undefined;
950
- y: number | undefined;
951
- } | undefined;
952
- destroy: () => void;
953
- $: Observable< {
954
- event: "fingermove";
955
- data: {
956
- x: number;
957
- y: number;
958
- };
959
- } | {
960
- event: "fingerout";
961
- data: undefined;
962
- }>;
963
- };
964
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
965
- columnHeight: number;
966
- columnWidth: number;
967
- width: number;
968
- };
969
- getDimensionsForPaginatedContent: () => {
970
- columnHeight: number;
971
- columnWidth: number;
972
- };
973
- $: {
974
- contentLayout$: Observable< {
975
- isFirstLayout: boolean;
976
- isReady: boolean;
977
- }>;
978
- loaded$: Observable<HTMLIFrameElement>;
979
- isReady$: Observable<boolean>;
980
- };
981
- } | undefined);
982
- getSpineItemFromIframe: (iframe: Element) => {
983
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
984
- blankPagePosition: "after" | "before" | "none";
985
- minimumWidth: number;
986
- spreadPosition: "none" | "right" | "left";
987
- }) => {
988
- width: number;
989
- height: number;
990
- };
991
- item: {
992
- id: string;
993
- href: string;
994
- renditionLayout: "reflowable" | "pre-paginated";
995
- progressionWeight: number;
996
- pageSpreadLeft: true | undefined;
997
- pageSpreadRight: true | undefined;
998
- mediaType?: string | undefined;
999
- };
1000
- load: () => void;
1001
- adjustPositionOfElement: ({ right, left, top }: {
1002
- right?: number | undefined;
1003
- left?: number | undefined;
1004
- top?: number | undefined;
1005
- }) => void;
1006
- getElementDimensions: () => {
1007
- width: number;
1008
- height: number;
1009
- };
1010
- getHtmlFromResource: (response: Response) => Promise<string>;
1011
- getResource: () => Promise<Response>;
1012
- translateFramePositionIntoPage: (position: {
1013
- clientX: number;
1014
- clientY: number;
1015
- }) => {
1016
- clientX: number;
1017
- clientY: number;
1018
- };
1019
- setLayoutDirty: () => void;
1020
- injectStyle: (cssText: string) => void;
1021
- loadContent: () => void;
1022
- unloadContent: () => void;
1023
- spineItemFrame: {
1024
- getIsLoaded: () => boolean;
1025
- getIsReady: () => boolean;
1026
- getViewportDimensions: () => {
1027
- width: number;
1028
- height: number;
1029
- } | undefined;
1030
- getFrameElement: () => HTMLIFrameElement | undefined;
1031
- getHtmlFromResource: (response: Response) => Promise<string>;
1032
- load: () => void;
1033
- unload: () => void;
1034
- staticLayout: (size: {
1035
- width: number;
1036
- height: number;
1037
- }) => void;
1038
- getManipulableFrame: () => {
1039
- frame: HTMLIFrameElement;
1040
- removeStyle: (id: string) => void;
1041
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1042
- } | undefined;
1043
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1044
- isUsingVerticalWriting: () => boolean;
1045
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
1046
- destroy: () => void;
1047
- $: {
1048
- unload$: Observable<void>;
1049
- unloaded$: Observable<void>;
1050
- loaded$: Observable<HTMLIFrameElement>;
1051
- ready$: Observable<FontFaceSet | undefined>;
1052
- isReady$: Observable<boolean>;
1053
- contentLayoutChange$: Observable< {
1054
- isFirstLayout: boolean;
1055
- } | {
1056
- isFirstLayout: boolean;
1057
- }>;
1058
- };
1059
- };
1060
- element: HTMLElement;
1061
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
1062
- getViewPortInformation: () => {
1063
- computedScale: number;
1064
- computedWidthScale: number;
1065
- viewportDimensions: {
1066
- width: number;
1067
- height: number;
1068
- };
1069
- } | undefined;
1070
- isImageType: () => boolean;
1071
- isReady: () => boolean;
1072
- destroy: () => void;
1073
- isUsingVerticalWriting: () => boolean | undefined;
1074
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1075
- manipulateSpineItem: (cb: (options: {
1076
- container: HTMLElement;
1077
- item: {
1078
- id: string;
1079
- href: string;
1080
- renditionLayout: "reflowable" | "pre-paginated";
1081
- progressionWeight: number;
1082
- pageSpreadLeft: true | undefined;
1083
- pageSpreadRight: true | undefined;
1084
- mediaType?: string | undefined;
1085
- };
1086
- overlayElement: HTMLDivElement;
1087
- } & ({
1088
- frame: HTMLIFrameElement;
1089
- removeStyle: (id: string) => void;
1090
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1091
- } | {
1092
- frame: undefined;
1093
- removeStyle: (id: string) => void;
1094
- addStyle: (id: string, style: string) => void;
1095
- })) => boolean) => boolean;
1096
- executeOnLayoutBeforeMeasurementHook: (options: {
1097
- minimumWidth: number;
1098
- }) => Observable<[void | Observable<void>]>;
1099
- selectionTracker: {
1100
- track: (frameToTrack: HTMLIFrameElement) => void;
1101
- destroy: () => void;
1102
- isSelecting: () => boolean;
1103
- getSelection: () => Selection | undefined;
1104
- $: Observable< {
1105
- event: "selectionchange";
1106
- data: Selection | null;
1107
- } | {
1108
- event: "selectstart";
1109
- data: Selection | null;
1110
- } | {
1111
- event: "selectend";
1112
- data: Selection | null;
1113
- }>;
1114
- };
1115
- fingerTracker: {
1116
- track: (frame: HTMLIFrameElement) => void;
1117
- getFingerPositionInIframe(): {
1118
- x: number | undefined;
1119
- y: number | undefined;
1120
- } | undefined;
1121
- destroy: () => void;
1122
- $: Observable< {
1123
- event: "fingermove";
1124
- data: {
1125
- x: number;
1126
- y: number;
1127
- };
1128
- } | {
1129
- event: "fingerout";
1130
- data: undefined;
1131
- }>;
1132
- };
1133
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
1134
- columnHeight: number;
1135
- columnWidth: number;
1136
- width: number;
1137
- };
1138
- getDimensionsForPaginatedContent: () => {
1139
- columnHeight: number;
1140
- columnWidth: number;
1141
- };
1142
- $: {
1143
- contentLayout$: Observable< {
1144
- isFirstLayout: boolean;
1145
- isReady: boolean;
1146
- }>;
1147
- loaded$: Observable<HTMLIFrameElement>;
1148
- isReady$: Observable<boolean>;
1149
- };
1150
- } | undefined;
1151
- getSpineItemPageIndexFromNode: (node: Node, offset: number | undefined, spineItemOrIndex: SpineItem | number) => number | undefined;
1152
- getSpineItemsFromReadingOrderPosition: (position: SpinePosition) => {
1153
- begin: number;
1154
- beginPosition: SpinePosition;
1155
- end: number;
1156
- endPosition: SpinePosition;
1157
- } | undefined;
1158
- };
1159
-
1160
- declare const createLocationResolver_2: ({ context }: {
1161
- context: Context;
1162
- }) => {
1163
- getSpineItemPositionFromNode: (node: Node, offset: number, spineItem: SpineItem) => {
1164
- x: number;
1165
- y: number;
1166
- } | undefined;
1167
- getSpineItemPositionFromPageIndex: (pageIndex: number, spineItem: SpineItem) => SpineItemPosition;
1168
- getSpineItemOffsetFromAnchor: (anchor: string, spineItem: SpineItem) => number;
1169
- getSpineItemPageIndexFromPosition: (position: UnsafeSpineItemPosition, spineItem: SpineItem) => number;
1170
- getSpineItemPageIndexFromNode: (node: Node, offset: number, spineItem: SpineItem) => number | undefined;
1171
- getSpineItemClosestPositionFromUnsafePosition: (unsafePosition: UnsafeSpineItemPosition, spineItem: SpineItem) => {
1172
- x: number;
1173
- y: number;
1174
- };
1175
- getFirstNodeOrRangeAtPage: (pageIndex: number, spineItem: SpineItem) => {
1176
- node: Node;
1177
- offset: number;
1178
- } | undefined;
1179
- };
1180
-
1181
- declare const createPagination: ({ context }: {
1182
- context: Context;
1183
- spineItemManager: SpineItemManager;
1184
- }) => {
1185
- destroy: () => void;
1186
- updateBeginAndEnd: ((begin: {
1187
- spineItem: SpineItem;
1188
- pageIndex: number;
1189
- cfi: string | undefined;
1190
- options: {
1191
- isAtEndOfChapter?: boolean;
1192
- };
1193
- } & {
1194
- spineItemIndex: number;
1195
- }, end: {
1196
- spineItem: SpineItem;
1197
- pageIndex: number;
1198
- cfi: string | undefined;
1199
- options: {
1200
- isAtEndOfChapter?: boolean;
1201
- };
1202
- } & {
1203
- spineItemIndex: number;
1204
- }) => void) | ((begin: {
1205
- spineItem: SpineItem;
1206
- pageIndex: number;
1207
- cfi: string | undefined;
1208
- options: {
1209
- isAtEndOfChapter?: boolean;
1210
- };
1211
- } & {
1212
- spineItemIndex: number;
1213
- }, end: {
1214
- spineItem: SpineItem;
1215
- pageIndex: number;
1216
- cfi: string | undefined;
1217
- options: {
1218
- isAtEndOfChapter?: boolean;
1219
- };
1220
- } & {
1221
- spineItemIndex: number;
1222
- }) => void);
1223
- getPaginationInfo: () => PaginationInfo;
1224
- paginationInfo$: Observable<PaginationInfo>;
1225
- };
1226
-
1227
- export declare const createReader: (options: Partial<Settings> & {
1228
- theme?: Theme | undefined;
1229
- } & SettingsInput & {
1230
- layoutAutoResize?: false | "container" | undefined;
1231
- } & {
1232
- fontScale?: number | undefined;
1233
- lineHeight?: number | "publisher" | undefined;
1234
- fontWeight?: 200 | 300 | 100 | 400 | 500 | 600 | 700 | 800 | 900 | "publisher" | undefined;
1235
- fontJustification?: "center" | "right" | "left" | "justify" | "publisher" | undefined;
1236
- } & {
1237
- loadingElementCreate?: ((options: {
1238
- container: HTMLElement;
1239
- item: {
1240
- id: string;
1241
- href: string;
1242
- renditionLayout: "reflowable" | "pre-paginated";
1243
- progressionWeight: number;
1244
- pageSpreadLeft: true | undefined;
1245
- pageSpreadRight: true | undefined;
1246
- mediaType?: string | undefined;
1247
- };
1248
- }) => HTMLElement) | undefined;
1249
- }) => Omit<Omit<Omit<Omit<ReaderInternal & {
1250
- events: {
1251
- normalizeEventForViewport: <E extends MouseEvent | PointerEvent | TouchEvent>(event: E) => E;
1252
- };
1253
- } & {
1254
- progression: {
1255
- getPercentageEstimate: (context: Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
1256
- x: number;
1257
- y: number;
1258
- }, currentItem: {
1259
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
1260
- blankPagePosition: "after" | "before" | "none";
1261
- minimumWidth: number;
1262
- spreadPosition: "none" | "right" | "left";
1263
- }) => {
1264
- width: number;
1265
- height: number;
1266
- };
1267
- item: {
1268
- id: string;
1269
- href: string;
1270
- renditionLayout: "reflowable" | "pre-paginated";
1271
- progressionWeight: number;
1272
- pageSpreadLeft: true | undefined;
1273
- pageSpreadRight: true | undefined;
1274
- mediaType?: string | undefined;
1275
- };
1276
- load: () => void;
1277
- adjustPositionOfElement: ({ right, left, top }: {
1278
- right?: number | undefined;
1279
- left?: number | undefined;
1280
- top?: number | undefined;
1281
- }) => void;
1282
- getElementDimensions: () => {
1283
- width: number;
1284
- height: number;
1285
- };
1286
- getHtmlFromResource: (response: Response) => Promise<string>;
1287
- getResource: () => Promise<Response>;
1288
- translateFramePositionIntoPage: (position: {
1289
- clientX: number;
1290
- clientY: number;
1291
- }) => {
1292
- clientX: number;
1293
- clientY: number;
1294
- };
1295
- setLayoutDirty: () => void;
1296
- injectStyle: (cssText: string) => void;
1297
- loadContent: () => void;
1298
- unloadContent: () => void;
1299
- spineItemFrame: {
1300
- getIsLoaded: () => boolean;
1301
- getIsReady: () => boolean;
1302
- getViewportDimensions: () => {
1303
- width: number;
1304
- height: number;
1305
- } | undefined;
1306
- getFrameElement: () => HTMLIFrameElement | undefined;
1307
- getHtmlFromResource: (response: Response) => Promise<string>;
1308
- load: () => void;
1309
- unload: () => void;
1310
- staticLayout: (size: {
1311
- width: number;
1312
- height: number;
1313
- }) => void;
1314
- getManipulableFrame: () => {
1315
- frame: HTMLIFrameElement;
1316
- removeStyle: (id: string) => void;
1317
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1318
- } | undefined;
1319
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1320
- isUsingVerticalWriting: () => boolean;
1321
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
1322
- destroy: () => void;
1323
- $: {
1324
- unload$: Observable<void>;
1325
- unloaded$: Observable<void>;
1326
- loaded$: Observable<HTMLIFrameElement>;
1327
- ready$: Observable<FontFaceSet | undefined>;
1328
- isReady$: Observable<boolean>;
1329
- contentLayoutChange$: Observable< {
1330
- isFirstLayout: boolean;
1331
- } | {
1332
- isFirstLayout: boolean;
1333
- }>;
1334
- };
1335
- };
1336
- element: HTMLElement;
1337
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
1338
- getViewPortInformation: () => {
1339
- computedScale: number;
1340
- computedWidthScale: number;
1341
- viewportDimensions: {
1342
- width: number;
1343
- height: number;
1344
- };
1345
- } | undefined;
1346
- isImageType: () => boolean;
1347
- isReady: () => boolean;
1348
- destroy: () => void;
1349
- isUsingVerticalWriting: () => boolean | undefined;
1350
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1351
- manipulateSpineItem: (cb: (options: {
1352
- container: HTMLElement;
1353
- item: {
1354
- id: string;
1355
- href: string;
1356
- renditionLayout: "reflowable" | "pre-paginated";
1357
- progressionWeight: number;
1358
- pageSpreadLeft: true | undefined;
1359
- pageSpreadRight: true | undefined;
1360
- mediaType?: string | undefined;
1361
- };
1362
- overlayElement: HTMLDivElement;
1363
- } & ({
1364
- frame: HTMLIFrameElement;
1365
- removeStyle: (id: string) => void;
1366
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1367
- } | {
1368
- frame: undefined;
1369
- removeStyle: (id: string) => void;
1370
- addStyle: (id: string, style: string) => void;
1371
- })) => boolean) => boolean;
1372
- executeOnLayoutBeforeMeasurementHook: (options: {
1373
- minimumWidth: number;
1374
- }) => Observable<[void | Observable<void>]>;
1375
- selectionTracker: {
1376
- track: (frameToTrack: HTMLIFrameElement) => void;
1377
- destroy: () => void;
1378
- isSelecting: () => boolean;
1379
- getSelection: () => Selection | undefined;
1380
- $: Observable< {
1381
- event: "selectionchange";
1382
- data: Selection | null;
1383
- } | {
1384
- event: "selectstart";
1385
- data: Selection | null;
1386
- } | {
1387
- event: "selectend";
1388
- data: Selection | null;
1389
- }>;
1390
- };
1391
- fingerTracker: {
1392
- track: (frame: HTMLIFrameElement) => void;
1393
- getFingerPositionInIframe(): {
1394
- x: number | undefined;
1395
- y: number | undefined;
1396
- } | undefined;
1397
- destroy: () => void;
1398
- $: Observable< {
1399
- event: "fingermove";
1400
- data: {
1401
- x: number;
1402
- y: number;
1403
- };
1404
- } | {
1405
- event: "fingerout";
1406
- data: undefined;
1407
- }>;
1408
- };
1409
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
1410
- columnHeight: number;
1411
- columnWidth: number;
1412
- width: number;
1413
- };
1414
- getDimensionsForPaginatedContent: () => {
1415
- columnHeight: number;
1416
- columnWidth: number;
1417
- };
1418
- $: {
1419
- contentLayout$: Observable< {
1420
- isFirstLayout: boolean;
1421
- isReady: boolean;
1422
- }>;
1423
- loaded$: Observable<HTMLIFrameElement>;
1424
- isReady$: Observable<boolean>;
1425
- };
1426
- }) => number;
1427
- getScrollPercentageWithinItem: (context: Context, currentPosition: {
1428
- x: number;
1429
- y: number;
1430
- }, currentItem: {
1431
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
1432
- blankPagePosition: "after" | "before" | "none";
1433
- minimumWidth: number;
1434
- spreadPosition: "none" | "right" | "left";
1435
- }) => {
1436
- width: number;
1437
- height: number;
1438
- };
1439
- item: {
1440
- id: string;
1441
- href: string;
1442
- renditionLayout: "reflowable" | "pre-paginated";
1443
- progressionWeight: number;
1444
- pageSpreadLeft: true | undefined;
1445
- pageSpreadRight: true | undefined;
1446
- mediaType?: string | undefined;
1447
- };
1448
- load: () => void;
1449
- adjustPositionOfElement: ({ right, left, top }: {
1450
- right?: number | undefined;
1451
- left?: number | undefined;
1452
- top?: number | undefined;
1453
- }) => void;
1454
- getElementDimensions: () => {
1455
- width: number;
1456
- height: number;
1457
- };
1458
- getHtmlFromResource: (response: Response) => Promise<string>;
1459
- getResource: () => Promise<Response>;
1460
- translateFramePositionIntoPage: (position: {
1461
- clientX: number;
1462
- clientY: number;
1463
- }) => {
1464
- clientX: number;
1465
- clientY: number;
1466
- };
1467
- setLayoutDirty: () => void;
1468
- injectStyle: (cssText: string) => void;
1469
- loadContent: () => void;
1470
- unloadContent: () => void;
1471
- spineItemFrame: {
1472
- getIsLoaded: () => boolean;
1473
- getIsReady: () => boolean;
1474
- getViewportDimensions: () => {
1475
- width: number;
1476
- height: number;
1477
- } | undefined;
1478
- getFrameElement: () => HTMLIFrameElement | undefined;
1479
- getHtmlFromResource: (response: Response) => Promise<string>;
1480
- load: () => void;
1481
- unload: () => void;
1482
- staticLayout: (size: {
1483
- width: number;
1484
- height: number;
1485
- }) => void;
1486
- getManipulableFrame: () => {
1487
- frame: HTMLIFrameElement;
1488
- removeStyle: (id: string) => void;
1489
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1490
- } | undefined;
1491
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1492
- isUsingVerticalWriting: () => boolean;
1493
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
1494
- destroy: () => void;
1495
- $: {
1496
- unload$: Observable<void>;
1497
- unloaded$: Observable<void>;
1498
- loaded$: Observable<HTMLIFrameElement>;
1499
- ready$: Observable<FontFaceSet | undefined>;
1500
- isReady$: Observable<boolean>;
1501
- contentLayoutChange$: Observable< {
1502
- isFirstLayout: boolean;
1503
- } | {
1504
- isFirstLayout: boolean;
1505
- }>;
1506
- };
1507
- };
1508
- element: HTMLElement;
1509
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
1510
- getViewPortInformation: () => {
1511
- computedScale: number;
1512
- computedWidthScale: number;
1513
- viewportDimensions: {
1514
- width: number;
1515
- height: number;
1516
- };
1517
- } | undefined;
1518
- isImageType: () => boolean;
1519
- isReady: () => boolean;
1520
- destroy: () => void;
1521
- isUsingVerticalWriting: () => boolean | undefined;
1522
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1523
- manipulateSpineItem: (cb: (options: {
1524
- container: HTMLElement;
1525
- item: {
1526
- id: string;
1527
- href: string;
1528
- renditionLayout: "reflowable" | "pre-paginated";
1529
- progressionWeight: number;
1530
- pageSpreadLeft: true | undefined;
1531
- pageSpreadRight: true | undefined;
1532
- mediaType?: string | undefined;
1533
- };
1534
- overlayElement: HTMLDivElement;
1535
- } & ({
1536
- frame: HTMLIFrameElement;
1537
- removeStyle: (id: string) => void;
1538
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1539
- } | {
1540
- frame: undefined;
1541
- removeStyle: (id: string) => void;
1542
- addStyle: (id: string, style: string) => void;
1543
- })) => boolean) => boolean;
1544
- executeOnLayoutBeforeMeasurementHook: (options: {
1545
- minimumWidth: number;
1546
- }) => Observable<[void | Observable<void>]>;
1547
- selectionTracker: {
1548
- track: (frameToTrack: HTMLIFrameElement) => void;
1549
- destroy: () => void;
1550
- isSelecting: () => boolean;
1551
- getSelection: () => Selection | undefined;
1552
- $: Observable< {
1553
- event: "selectionchange";
1554
- data: Selection | null;
1555
- } | {
1556
- event: "selectstart";
1557
- data: Selection | null;
1558
- } | {
1559
- event: "selectend";
1560
- data: Selection | null;
1561
- }>;
1562
- };
1563
- fingerTracker: {
1564
- track: (frame: HTMLIFrameElement) => void;
1565
- getFingerPositionInIframe(): {
1566
- x: number | undefined;
1567
- y: number | undefined;
1568
- } | undefined;
1569
- destroy: () => void;
1570
- $: Observable< {
1571
- event: "fingermove";
1572
- data: {
1573
- x: number;
1574
- y: number;
1575
- };
1576
- } | {
1577
- event: "fingerout";
1578
- data: undefined;
1579
- }>;
1580
- };
1581
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
1582
- columnHeight: number;
1583
- columnWidth: number;
1584
- width: number;
1585
- };
1586
- getDimensionsForPaginatedContent: () => {
1587
- columnHeight: number;
1588
- columnWidth: number;
1589
- };
1590
- $: {
1591
- contentLayout$: Observable< {
1592
- isFirstLayout: boolean;
1593
- isReady: boolean;
1594
- }>;
1595
- loaded$: Observable<HTMLIFrameElement>;
1596
- isReady$: Observable<boolean>;
1597
- };
1598
- }) => number;
1599
- };
1600
- }, "pagination"> & {
1601
- pagination: Omit<{
1602
- destroy: () => void;
1603
- updateBeginAndEnd: ((begin: {
1604
- spineItem: {
1605
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
1606
- blankPagePosition: "after" | "before" | "none";
1607
- minimumWidth: number;
1608
- spreadPosition: "none" | "right" | "left";
1609
- }) => {
1610
- width: number;
1611
- height: number;
1612
- };
1613
- item: {
1614
- id: string;
1615
- href: string;
1616
- renditionLayout: "reflowable" | "pre-paginated";
1617
- progressionWeight: number;
1618
- pageSpreadLeft: true | undefined;
1619
- pageSpreadRight: true | undefined;
1620
- mediaType?: string | undefined;
1621
- };
1622
- load: () => void;
1623
- adjustPositionOfElement: ({ right, left, top }: {
1624
- right?: number | undefined;
1625
- left?: number | undefined;
1626
- top?: number | undefined;
1627
- }) => void;
1628
- getElementDimensions: () => {
1629
- width: number;
1630
- height: number;
1631
- };
1632
- getHtmlFromResource: (response: Response) => Promise<string>;
1633
- getResource: () => Promise<Response>;
1634
- translateFramePositionIntoPage: (position: {
1635
- clientX: number;
1636
- clientY: number;
1637
- }) => {
1638
- clientX: number;
1639
- clientY: number;
1640
- };
1641
- setLayoutDirty: () => void;
1642
- injectStyle: (cssText: string) => void;
1643
- loadContent: () => void;
1644
- unloadContent: () => void;
1645
- spineItemFrame: {
1646
- getIsLoaded: () => boolean;
1647
- getIsReady: () => boolean;
1648
- getViewportDimensions: () => {
1649
- width: number;
1650
- height: number;
1651
- } | undefined;
1652
- getFrameElement: () => HTMLIFrameElement | undefined;
1653
- getHtmlFromResource: (response: Response) => Promise<string>;
1654
- load: () => void;
1655
- unload: () => void;
1656
- staticLayout: (size: {
1657
- width: number;
1658
- height: number;
1659
- }) => void;
1660
- getManipulableFrame: () => {
1661
- frame: HTMLIFrameElement;
1662
- removeStyle: (id: string) => void;
1663
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1664
- } | undefined;
1665
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1666
- isUsingVerticalWriting: () => boolean;
1667
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
1668
- destroy: () => void;
1669
- $: {
1670
- unload$: Observable<void>;
1671
- unloaded$: Observable<void>;
1672
- loaded$: Observable<HTMLIFrameElement>;
1673
- ready$: Observable<FontFaceSet | undefined>;
1674
- isReady$: Observable<boolean>;
1675
- contentLayoutChange$: Observable< {
1676
- isFirstLayout: boolean;
1677
- } | {
1678
- isFirstLayout: boolean;
1679
- }>;
1680
- };
1681
- };
1682
- element: HTMLElement;
1683
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
1684
- getViewPortInformation: () => {
1685
- computedScale: number;
1686
- computedWidthScale: number;
1687
- viewportDimensions: {
1688
- width: number;
1689
- height: number;
1690
- };
1691
- } | undefined;
1692
- isImageType: () => boolean;
1693
- isReady: () => boolean;
1694
- destroy: () => void;
1695
- isUsingVerticalWriting: () => boolean | undefined;
1696
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1697
- manipulateSpineItem: (cb: (options: {
1698
- container: HTMLElement;
1699
- item: {
1700
- id: string;
1701
- href: string;
1702
- renditionLayout: "reflowable" | "pre-paginated";
1703
- progressionWeight: number;
1704
- pageSpreadLeft: true | undefined;
1705
- pageSpreadRight: true | undefined;
1706
- mediaType?: string | undefined;
1707
- };
1708
- overlayElement: HTMLDivElement;
1709
- } & ({
1710
- frame: HTMLIFrameElement;
1711
- removeStyle: (id: string) => void;
1712
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1713
- } | {
1714
- frame: undefined;
1715
- removeStyle: (id: string) => void;
1716
- addStyle: (id: string, style: string) => void;
1717
- })) => boolean) => boolean;
1718
- executeOnLayoutBeforeMeasurementHook: (options: {
1719
- minimumWidth: number;
1720
- }) => Observable<[void | Observable<void>]>;
1721
- selectionTracker: {
1722
- track: (frameToTrack: HTMLIFrameElement) => void;
1723
- destroy: () => void;
1724
- isSelecting: () => boolean;
1725
- getSelection: () => Selection | undefined;
1726
- $: Observable< {
1727
- event: "selectionchange";
1728
- data: Selection | null;
1729
- } | {
1730
- event: "selectstart";
1731
- data: Selection | null;
1732
- } | {
1733
- event: "selectend";
1734
- data: Selection | null;
1735
- }>;
1736
- };
1737
- fingerTracker: {
1738
- track: (frame: HTMLIFrameElement) => void;
1739
- getFingerPositionInIframe(): {
1740
- x: number | undefined;
1741
- y: number | undefined;
1742
- } | undefined;
1743
- destroy: () => void;
1744
- $: Observable< {
1745
- event: "fingermove";
1746
- data: {
1747
- x: number;
1748
- y: number;
1749
- };
1750
- } | {
1751
- event: "fingerout";
1752
- data: undefined;
1753
- }>;
1754
- };
1755
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
1756
- columnHeight: number;
1757
- columnWidth: number;
1758
- width: number;
1759
- };
1760
- getDimensionsForPaginatedContent: () => {
1761
- columnHeight: number;
1762
- columnWidth: number;
1763
- };
1764
- $: {
1765
- contentLayout$: Observable< {
1766
- isFirstLayout: boolean;
1767
- isReady: boolean;
1768
- }>;
1769
- loaded$: Observable<HTMLIFrameElement>;
1770
- isReady$: Observable<boolean>;
1771
- };
1772
- };
1773
- pageIndex: number;
1774
- cfi: string | undefined;
1775
- options: {
1776
- isAtEndOfChapter?: boolean | undefined;
1777
- };
1778
- } & {
1779
- spineItemIndex: number;
1780
- }, end: {
1781
- spineItem: {
1782
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
1783
- blankPagePosition: "after" | "before" | "none";
1784
- minimumWidth: number;
1785
- spreadPosition: "none" | "right" | "left";
1786
- }) => {
1787
- width: number;
1788
- height: number;
1789
- };
1790
- item: {
1791
- id: string;
1792
- href: string;
1793
- renditionLayout: "reflowable" | "pre-paginated";
1794
- progressionWeight: number;
1795
- pageSpreadLeft: true | undefined;
1796
- pageSpreadRight: true | undefined;
1797
- mediaType?: string | undefined;
1798
- };
1799
- load: () => void;
1800
- adjustPositionOfElement: ({ right, left, top }: {
1801
- right?: number | undefined;
1802
- left?: number | undefined;
1803
- top?: number | undefined;
1804
- }) => void;
1805
- getElementDimensions: () => {
1806
- width: number;
1807
- height: number;
1808
- };
1809
- getHtmlFromResource: (response: Response) => Promise<string>;
1810
- getResource: () => Promise<Response>;
1811
- translateFramePositionIntoPage: (position: {
1812
- clientX: number;
1813
- clientY: number;
1814
- }) => {
1815
- clientX: number;
1816
- clientY: number;
1817
- };
1818
- setLayoutDirty: () => void;
1819
- injectStyle: (cssText: string) => void;
1820
- loadContent: () => void;
1821
- unloadContent: () => void;
1822
- spineItemFrame: {
1823
- getIsLoaded: () => boolean;
1824
- getIsReady: () => boolean;
1825
- getViewportDimensions: () => {
1826
- width: number;
1827
- height: number;
1828
- } | undefined;
1829
- getFrameElement: () => HTMLIFrameElement | undefined;
1830
- getHtmlFromResource: (response: Response) => Promise<string>;
1831
- load: () => void;
1832
- unload: () => void;
1833
- staticLayout: (size: {
1834
- width: number;
1835
- height: number;
1836
- }) => void;
1837
- getManipulableFrame: () => {
1838
- frame: HTMLIFrameElement;
1839
- removeStyle: (id: string) => void;
1840
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1841
- } | undefined;
1842
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1843
- isUsingVerticalWriting: () => boolean;
1844
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
1845
- destroy: () => void;
1846
- $: {
1847
- unload$: Observable<void>;
1848
- unloaded$: Observable<void>;
1849
- loaded$: Observable<HTMLIFrameElement>;
1850
- ready$: Observable<FontFaceSet | undefined>;
1851
- isReady$: Observable<boolean>;
1852
- contentLayoutChange$: Observable< {
1853
- isFirstLayout: boolean;
1854
- } | {
1855
- isFirstLayout: boolean;
1856
- }>;
1857
- };
1858
- };
1859
- element: HTMLElement;
1860
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
1861
- getViewPortInformation: () => {
1862
- computedScale: number;
1863
- computedWidthScale: number;
1864
- viewportDimensions: {
1865
- width: number;
1866
- height: number;
1867
- };
1868
- } | undefined;
1869
- isImageType: () => boolean;
1870
- isReady: () => boolean;
1871
- destroy: () => void;
1872
- isUsingVerticalWriting: () => boolean | undefined;
1873
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1874
- manipulateSpineItem: (cb: (options: {
1875
- container: HTMLElement;
1876
- item: {
1877
- id: string;
1878
- href: string;
1879
- renditionLayout: "reflowable" | "pre-paginated";
1880
- progressionWeight: number;
1881
- pageSpreadLeft: true | undefined;
1882
- pageSpreadRight: true | undefined;
1883
- mediaType?: string | undefined;
1884
- };
1885
- overlayElement: HTMLDivElement;
1886
- } & ({
1887
- frame: HTMLIFrameElement;
1888
- removeStyle: (id: string) => void;
1889
- addStyle: (id: string, style: string, prepend?: boolean) => void;
1890
- } | {
1891
- frame: undefined;
1892
- removeStyle: (id: string) => void;
1893
- addStyle: (id: string, style: string) => void;
1894
- })) => boolean) => boolean;
1895
- executeOnLayoutBeforeMeasurementHook: (options: {
1896
- minimumWidth: number;
1897
- }) => Observable<[void | Observable<void>]>;
1898
- selectionTracker: {
1899
- track: (frameToTrack: HTMLIFrameElement) => void;
1900
- destroy: () => void;
1901
- isSelecting: () => boolean;
1902
- getSelection: () => Selection | undefined;
1903
- $: Observable< {
1904
- event: "selectionchange";
1905
- data: Selection | null;
1906
- } | {
1907
- event: "selectstart";
1908
- data: Selection | null;
1909
- } | {
1910
- event: "selectend";
1911
- data: Selection | null;
1912
- }>;
1913
- };
1914
- fingerTracker: {
1915
- track: (frame: HTMLIFrameElement) => void;
1916
- getFingerPositionInIframe(): {
1917
- x: number | undefined;
1918
- y: number | undefined;
1919
- } | undefined;
1920
- destroy: () => void;
1921
- $: Observable< {
1922
- event: "fingermove";
1923
- data: {
1924
- x: number;
1925
- y: number;
1926
- };
1927
- } | {
1928
- event: "fingerout";
1929
- data: undefined;
1930
- }>;
1931
- };
1932
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
1933
- columnHeight: number;
1934
- columnWidth: number;
1935
- width: number;
1936
- };
1937
- getDimensionsForPaginatedContent: () => {
1938
- columnHeight: number;
1939
- columnWidth: number;
1940
- };
1941
- $: {
1942
- contentLayout$: Observable< {
1943
- isFirstLayout: boolean;
1944
- isReady: boolean;
1945
- }>;
1946
- loaded$: Observable<HTMLIFrameElement>;
1947
- isReady$: Observable<boolean>;
1948
- };
1949
- };
1950
- pageIndex: number;
1951
- cfi: string | undefined;
1952
- options: {
1953
- isAtEndOfChapter?: boolean | undefined;
1954
- };
1955
- } & {
1956
- spineItemIndex: number;
1957
- }) => void) | ((begin: {
1958
- spineItem: {
1959
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
1960
- blankPagePosition: "after" | "before" | "none";
1961
- minimumWidth: number;
1962
- spreadPosition: "none" | "right" | "left";
1963
- }) => {
1964
- width: number;
1965
- height: number;
1966
- };
1967
- item: {
1968
- id: string;
1969
- href: string;
1970
- renditionLayout: "reflowable" | "pre-paginated";
1971
- progressionWeight: number;
1972
- pageSpreadLeft: true | undefined;
1973
- pageSpreadRight: true | undefined;
1974
- mediaType?: string | undefined;
1975
- };
1976
- load: () => void;
1977
- adjustPositionOfElement: ({ right, left, top }: {
1978
- right?: number | undefined;
1979
- left?: number | undefined;
1980
- top?: number | undefined;
1981
- }) => void;
1982
- getElementDimensions: () => {
1983
- width: number;
1984
- height: number;
1985
- };
1986
- getHtmlFromResource: (response: Response) => Promise<string>;
1987
- getResource: () => Promise<Response>;
1988
- translateFramePositionIntoPage: (position: {
1989
- clientX: number;
1990
- clientY: number;
1991
- }) => {
1992
- clientX: number;
1993
- clientY: number;
1994
- };
1995
- setLayoutDirty: () => void;
1996
- injectStyle: (cssText: string) => void;
1997
- loadContent: () => void;
1998
- unloadContent: () => void;
1999
- spineItemFrame: {
2000
- getIsLoaded: () => boolean;
2001
- getIsReady: () => boolean;
2002
- getViewportDimensions: () => {
2003
- width: number;
2004
- height: number;
2005
- } | undefined;
2006
- getFrameElement: () => HTMLIFrameElement | undefined;
2007
- getHtmlFromResource: (response: Response) => Promise<string>;
2008
- load: () => void;
2009
- unload: () => void;
2010
- staticLayout: (size: {
2011
- width: number;
2012
- height: number;
2013
- }) => void;
2014
- getManipulableFrame: () => {
2015
- frame: HTMLIFrameElement;
2016
- removeStyle: (id: string) => void;
2017
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2018
- } | undefined;
2019
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2020
- isUsingVerticalWriting: () => boolean;
2021
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
2022
- destroy: () => void;
2023
- $: {
2024
- unload$: Observable<void>;
2025
- unloaded$: Observable<void>;
2026
- loaded$: Observable<HTMLIFrameElement>;
2027
- ready$: Observable<FontFaceSet | undefined>;
2028
- isReady$: Observable<boolean>;
2029
- contentLayoutChange$: Observable< {
2030
- isFirstLayout: boolean;
2031
- } | {
2032
- isFirstLayout: boolean;
2033
- }>;
2034
- };
2035
- };
2036
- element: HTMLElement;
2037
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
2038
- getViewPortInformation: () => {
2039
- computedScale: number;
2040
- computedWidthScale: number;
2041
- viewportDimensions: {
2042
- width: number;
2043
- height: number;
2044
- };
2045
- } | undefined;
2046
- isImageType: () => boolean;
2047
- isReady: () => boolean;
2048
- destroy: () => void;
2049
- isUsingVerticalWriting: () => boolean | undefined;
2050
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2051
- manipulateSpineItem: (cb: (options: {
2052
- container: HTMLElement;
2053
- item: {
2054
- id: string;
2055
- href: string;
2056
- renditionLayout: "reflowable" | "pre-paginated";
2057
- progressionWeight: number;
2058
- pageSpreadLeft: true | undefined;
2059
- pageSpreadRight: true | undefined;
2060
- mediaType?: string | undefined;
2061
- };
2062
- overlayElement: HTMLDivElement;
2063
- } & ({
2064
- frame: HTMLIFrameElement;
2065
- removeStyle: (id: string) => void;
2066
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2067
- } | {
2068
- frame: undefined;
2069
- removeStyle: (id: string) => void;
2070
- addStyle: (id: string, style: string) => void;
2071
- })) => boolean) => boolean;
2072
- executeOnLayoutBeforeMeasurementHook: (options: {
2073
- minimumWidth: number;
2074
- }) => Observable<[void | Observable<void>]>;
2075
- selectionTracker: {
2076
- track: (frameToTrack: HTMLIFrameElement) => void;
2077
- destroy: () => void;
2078
- isSelecting: () => boolean;
2079
- getSelection: () => Selection | undefined;
2080
- $: Observable< {
2081
- event: "selectionchange";
2082
- data: Selection | null;
2083
- } | {
2084
- event: "selectstart";
2085
- data: Selection | null;
2086
- } | {
2087
- event: "selectend";
2088
- data: Selection | null;
2089
- }>;
2090
- };
2091
- fingerTracker: {
2092
- track: (frame: HTMLIFrameElement) => void;
2093
- getFingerPositionInIframe(): {
2094
- x: number | undefined;
2095
- y: number | undefined;
2096
- } | undefined;
2097
- destroy: () => void;
2098
- $: Observable< {
2099
- event: "fingermove";
2100
- data: {
2101
- x: number;
2102
- y: number;
2103
- };
2104
- } | {
2105
- event: "fingerout";
2106
- data: undefined;
2107
- }>;
2108
- };
2109
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
2110
- columnHeight: number;
2111
- columnWidth: number;
2112
- width: number;
2113
- };
2114
- getDimensionsForPaginatedContent: () => {
2115
- columnHeight: number;
2116
- columnWidth: number;
2117
- };
2118
- $: {
2119
- contentLayout$: Observable< {
2120
- isFirstLayout: boolean;
2121
- isReady: boolean;
2122
- }>;
2123
- loaded$: Observable<HTMLIFrameElement>;
2124
- isReady$: Observable<boolean>;
2125
- };
2126
- };
2127
- pageIndex: number;
2128
- cfi: string | undefined;
2129
- options: {
2130
- isAtEndOfChapter?: boolean | undefined;
2131
- };
2132
- } & {
2133
- spineItemIndex: number;
2134
- }, end: {
2135
- spineItem: {
2136
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
2137
- blankPagePosition: "after" | "before" | "none";
2138
- minimumWidth: number;
2139
- spreadPosition: "none" | "right" | "left";
2140
- }) => {
2141
- width: number;
2142
- height: number;
2143
- };
2144
- item: {
2145
- id: string;
2146
- href: string;
2147
- renditionLayout: "reflowable" | "pre-paginated";
2148
- progressionWeight: number;
2149
- pageSpreadLeft: true | undefined;
2150
- pageSpreadRight: true | undefined;
2151
- mediaType?: string | undefined;
2152
- };
2153
- load: () => void;
2154
- adjustPositionOfElement: ({ right, left, top }: {
2155
- right?: number | undefined;
2156
- left?: number | undefined;
2157
- top?: number | undefined;
2158
- }) => void;
2159
- getElementDimensions: () => {
2160
- width: number;
2161
- height: number;
2162
- };
2163
- getHtmlFromResource: (response: Response) => Promise<string>;
2164
- getResource: () => Promise<Response>;
2165
- translateFramePositionIntoPage: (position: {
2166
- clientX: number;
2167
- clientY: number;
2168
- }) => {
2169
- clientX: number;
2170
- clientY: number;
2171
- };
2172
- setLayoutDirty: () => void;
2173
- injectStyle: (cssText: string) => void;
2174
- loadContent: () => void;
2175
- unloadContent: () => void;
2176
- spineItemFrame: {
2177
- getIsLoaded: () => boolean;
2178
- getIsReady: () => boolean;
2179
- getViewportDimensions: () => {
2180
- width: number;
2181
- height: number;
2182
- } | undefined;
2183
- getFrameElement: () => HTMLIFrameElement | undefined;
2184
- getHtmlFromResource: (response: Response) => Promise<string>;
2185
- load: () => void;
2186
- unload: () => void;
2187
- staticLayout: (size: {
2188
- width: number;
2189
- height: number;
2190
- }) => void;
2191
- getManipulableFrame: () => {
2192
- frame: HTMLIFrameElement;
2193
- removeStyle: (id: string) => void;
2194
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2195
- } | undefined;
2196
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2197
- isUsingVerticalWriting: () => boolean;
2198
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
2199
- destroy: () => void;
2200
- $: {
2201
- unload$: Observable<void>;
2202
- unloaded$: Observable<void>;
2203
- loaded$: Observable<HTMLIFrameElement>;
2204
- ready$: Observable<FontFaceSet | undefined>;
2205
- isReady$: Observable<boolean>;
2206
- contentLayoutChange$: Observable< {
2207
- isFirstLayout: boolean;
2208
- } | {
2209
- isFirstLayout: boolean;
2210
- }>;
2211
- };
2212
- };
2213
- element: HTMLElement;
2214
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
2215
- getViewPortInformation: () => {
2216
- computedScale: number;
2217
- computedWidthScale: number;
2218
- viewportDimensions: {
2219
- width: number;
2220
- height: number;
2221
- };
2222
- } | undefined;
2223
- isImageType: () => boolean;
2224
- isReady: () => boolean;
2225
- destroy: () => void;
2226
- isUsingVerticalWriting: () => boolean | undefined;
2227
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2228
- manipulateSpineItem: (cb: (options: {
2229
- container: HTMLElement;
2230
- item: {
2231
- id: string;
2232
- href: string;
2233
- renditionLayout: "reflowable" | "pre-paginated";
2234
- progressionWeight: number;
2235
- pageSpreadLeft: true | undefined;
2236
- pageSpreadRight: true | undefined;
2237
- mediaType?: string | undefined;
2238
- };
2239
- overlayElement: HTMLDivElement;
2240
- } & ({
2241
- frame: HTMLIFrameElement;
2242
- removeStyle: (id: string) => void;
2243
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2244
- } | {
2245
- frame: undefined;
2246
- removeStyle: (id: string) => void;
2247
- addStyle: (id: string, style: string) => void;
2248
- })) => boolean) => boolean;
2249
- executeOnLayoutBeforeMeasurementHook: (options: {
2250
- minimumWidth: number;
2251
- }) => Observable<[void | Observable<void>]>;
2252
- selectionTracker: {
2253
- track: (frameToTrack: HTMLIFrameElement) => void;
2254
- destroy: () => void;
2255
- isSelecting: () => boolean;
2256
- getSelection: () => Selection | undefined;
2257
- $: Observable< {
2258
- event: "selectionchange";
2259
- data: Selection | null;
2260
- } | {
2261
- event: "selectstart";
2262
- data: Selection | null;
2263
- } | {
2264
- event: "selectend";
2265
- data: Selection | null;
2266
- }>;
2267
- };
2268
- fingerTracker: {
2269
- track: (frame: HTMLIFrameElement) => void;
2270
- getFingerPositionInIframe(): {
2271
- x: number | undefined;
2272
- y: number | undefined;
2273
- } | undefined;
2274
- destroy: () => void;
2275
- $: Observable< {
2276
- event: "fingermove";
2277
- data: {
2278
- x: number;
2279
- y: number;
2280
- };
2281
- } | {
2282
- event: "fingerout";
2283
- data: undefined;
2284
- }>;
2285
- };
2286
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
2287
- columnHeight: number;
2288
- columnWidth: number;
2289
- width: number;
2290
- };
2291
- getDimensionsForPaginatedContent: () => {
2292
- columnHeight: number;
2293
- columnWidth: number;
2294
- };
2295
- $: {
2296
- contentLayout$: Observable< {
2297
- isFirstLayout: boolean;
2298
- isReady: boolean;
2299
- }>;
2300
- loaded$: Observable<HTMLIFrameElement>;
2301
- isReady$: Observable<boolean>;
2302
- };
2303
- };
2304
- pageIndex: number;
2305
- cfi: string | undefined;
2306
- options: {
2307
- isAtEndOfChapter?: boolean | undefined;
2308
- };
2309
- } & {
2310
- spineItemIndex: number;
2311
- }) => void);
2312
- getPaginationInfo: () => PaginationInfo;
2313
- paginationInfo$: Observable<PaginationInfo>;
2314
- }, "paginationInfo$" | "getPaginationInfo"> & {
2315
- paginationInfo$: Observable<PaginationInfo & ExtraPaginationInfo>;
2316
- getPaginationInfo: () => PaginationInfo & ExtraPaginationInfo;
2317
- };
2318
- } & {
2319
- theme: {
2320
- set: (theme: Theme) => void;
2321
- get: () => Theme;
2322
- $: {
2323
- theme$: Observable<Theme>;
2324
- };
2325
- };
2326
- } & {
2327
- navigation: {
2328
- goToNextSpineItem: () => void;
2329
- goToPreviousSpineItem: () => void;
2330
- goToLeftSpineItem: () => void;
2331
- goToRightSpineItem: () => void;
2332
- } & {
2333
- state$: Observable< {
2334
- canGoTopSpineItem: boolean;
2335
- canGoBottomSpineItem: boolean;
2336
- canGoLeftSpineItem: boolean;
2337
- canGoRightSpineItem: boolean;
2338
- }>;
2339
- };
2340
- } & Api, "settings"> & {
2341
- settings: Omit<SettingsManager, "setSettings" | "settings$"> & {
2342
- settings$: Observable<Settings & {
2343
- computedPageTurnMode: "controlled" | "scrollable";
2344
- computedPageTurnDirection: "vertical" | "horizontal";
2345
- computedPageTurnAnimation: "none" | "fade" | "slide";
2346
- computedPageTurnAnimationDuration: number;
2347
- computedSnapAnimationDuration: number;
2348
- } & Required<SettingsInput>>;
2349
- setSettings: (settings: Partial<Settings> & SettingsInput) => void;
2350
- };
2351
- } & {
2352
- utils: {
2353
- isOrIsWithinValidLink: (target: EventTarget | null) => boolean;
2354
- };
2355
- } & {
2356
- $: {
2357
- links$: Observable< {
2358
- event: "linkClicked";
2359
- data: HTMLAnchorElement;
2360
- isNavigable: boolean;
2361
- }>;
2362
- };
2363
- }, "settings"> & {
2364
- settings: Omit<Omit<SettingsManager, "setSettings" | "settings$"> & {
2365
- settings$: Observable<Settings & {
2366
- computedPageTurnMode: "controlled" | "scrollable";
2367
- computedPageTurnDirection: "vertical" | "horizontal";
2368
- computedPageTurnAnimation: "none" | "fade" | "slide";
2369
- computedPageTurnAnimationDuration: number;
2370
- computedSnapAnimationDuration: number;
2371
- } & Required<SettingsInput>>;
2372
- setSettings: (settings: Partial<Settings> & SettingsInput) => void;
2373
- }, "setSettings" | "settings$"> & {
2374
- settings$: Observable<Settings & {
2375
- computedPageTurnMode: "controlled" | "scrollable";
2376
- computedPageTurnDirection: "vertical" | "horizontal";
2377
- computedPageTurnAnimation: "none" | "fade" | "slide";
2378
- computedPageTurnAnimationDuration: number;
2379
- computedSnapAnimationDuration: number;
2380
- } & Required<SettingsInput> & Required<{
2381
- fontScale?: number | undefined;
2382
- lineHeight?: number | "publisher" | undefined;
2383
- fontWeight?: 200 | 300 | 100 | 400 | 500 | 600 | 700 | 800 | 900 | "publisher" | undefined;
2384
- fontJustification?: "center" | "right" | "left" | "justify" | "publisher" | undefined;
2385
- }>>;
2386
- setSettings: (settings: Partial<Settings> & SettingsInput & {
2387
- fontScale?: number | undefined;
2388
- lineHeight?: number | "publisher" | undefined;
2389
- fontWeight?: 200 | 300 | 100 | 400 | 500 | 600 | 700 | 800 | 900 | "publisher" | undefined;
2390
- fontJustification?: "center" | "right" | "left" | "justify" | "publisher" | undefined;
2391
- }) => void;
2392
- };
2393
- } & {
2394
- loading: {
2395
- $: {
2396
- items$: Observable< {
2397
- [key: string]: HTMLElement;
2398
- }>;
2399
- };
2400
- };
2401
- }, "pagination"> & {
2402
- pagination: Pick<Omit<{
2403
- destroy: () => void;
2404
- updateBeginAndEnd: ((begin: {
2405
- spineItem: {
2406
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
2407
- blankPagePosition: "after" | "before" | "none";
2408
- minimumWidth: number;
2409
- spreadPosition: "none" | "right" | "left";
2410
- }) => {
2411
- width: number;
2412
- height: number;
2413
- };
2414
- item: {
2415
- id: string;
2416
- href: string;
2417
- renditionLayout: "reflowable" | "pre-paginated";
2418
- progressionWeight: number;
2419
- pageSpreadLeft: true | undefined;
2420
- pageSpreadRight: true | undefined;
2421
- mediaType?: string | undefined;
2422
- };
2423
- load: () => void;
2424
- adjustPositionOfElement: ({ right, left, top }: {
2425
- right?: number | undefined;
2426
- left?: number | undefined;
2427
- top?: number | undefined;
2428
- }) => void;
2429
- getElementDimensions: () => {
2430
- width: number;
2431
- height: number;
2432
- };
2433
- getHtmlFromResource: (response: Response) => Promise<string>;
2434
- getResource: () => Promise<Response>;
2435
- translateFramePositionIntoPage: (position: {
2436
- clientX: number;
2437
- clientY: number;
2438
- }) => {
2439
- clientX: number;
2440
- clientY: number;
2441
- };
2442
- setLayoutDirty: () => void;
2443
- injectStyle: (cssText: string) => void;
2444
- loadContent: () => void;
2445
- unloadContent: () => void;
2446
- spineItemFrame: {
2447
- getIsLoaded: () => boolean;
2448
- getIsReady: () => boolean;
2449
- getViewportDimensions: () => {
2450
- width: number;
2451
- height: number;
2452
- } | undefined;
2453
- getFrameElement: () => HTMLIFrameElement | undefined;
2454
- getHtmlFromResource: (response: Response) => Promise<string>;
2455
- load: () => void;
2456
- unload: () => void;
2457
- staticLayout: (size: {
2458
- width: number;
2459
- height: number;
2460
- }) => void;
2461
- getManipulableFrame: () => {
2462
- frame: HTMLIFrameElement;
2463
- removeStyle: (id: string) => void;
2464
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2465
- } | undefined;
2466
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2467
- isUsingVerticalWriting: () => boolean;
2468
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
2469
- destroy: () => void;
2470
- $: {
2471
- unload$: Observable<void>;
2472
- unloaded$: Observable<void>;
2473
- loaded$: Observable<HTMLIFrameElement>;
2474
- ready$: Observable<FontFaceSet | undefined>;
2475
- isReady$: Observable<boolean>;
2476
- contentLayoutChange$: Observable< {
2477
- isFirstLayout: boolean;
2478
- } | {
2479
- isFirstLayout: boolean;
2480
- }>;
2481
- };
2482
- };
2483
- element: HTMLElement;
2484
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
2485
- getViewPortInformation: () => {
2486
- computedScale: number;
2487
- computedWidthScale: number;
2488
- viewportDimensions: {
2489
- width: number;
2490
- height: number;
2491
- };
2492
- } | undefined;
2493
- isImageType: () => boolean;
2494
- isReady: () => boolean;
2495
- destroy: () => void;
2496
- isUsingVerticalWriting: () => boolean | undefined;
2497
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2498
- manipulateSpineItem: (cb: (options: {
2499
- container: HTMLElement;
2500
- item: {
2501
- id: string;
2502
- href: string;
2503
- renditionLayout: "reflowable" | "pre-paginated";
2504
- progressionWeight: number;
2505
- pageSpreadLeft: true | undefined;
2506
- pageSpreadRight: true | undefined;
2507
- mediaType?: string | undefined;
2508
- };
2509
- overlayElement: HTMLDivElement;
2510
- } & ({
2511
- frame: HTMLIFrameElement;
2512
- removeStyle: (id: string) => void;
2513
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2514
- } | {
2515
- frame: undefined;
2516
- removeStyle: (id: string) => void;
2517
- addStyle: (id: string, style: string) => void;
2518
- })) => boolean) => boolean;
2519
- executeOnLayoutBeforeMeasurementHook: (options: {
2520
- minimumWidth: number;
2521
- }) => Observable<[void | Observable<void>]>;
2522
- selectionTracker: {
2523
- track: (frameToTrack: HTMLIFrameElement) => void;
2524
- destroy: () => void;
2525
- isSelecting: () => boolean;
2526
- getSelection: () => Selection | undefined;
2527
- $: Observable< {
2528
- event: "selectionchange";
2529
- data: Selection | null;
2530
- } | {
2531
- event: "selectstart";
2532
- data: Selection | null;
2533
- } | {
2534
- event: "selectend";
2535
- data: Selection | null;
2536
- }>;
2537
- };
2538
- fingerTracker: {
2539
- track: (frame: HTMLIFrameElement) => void;
2540
- getFingerPositionInIframe(): {
2541
- x: number | undefined;
2542
- y: number | undefined;
2543
- } | undefined;
2544
- destroy: () => void;
2545
- $: Observable< {
2546
- event: "fingermove";
2547
- data: {
2548
- x: number;
2549
- y: number;
2550
- };
2551
- } | {
2552
- event: "fingerout";
2553
- data: undefined;
2554
- }>;
2555
- };
2556
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
2557
- columnHeight: number;
2558
- columnWidth: number;
2559
- width: number;
2560
- };
2561
- getDimensionsForPaginatedContent: () => {
2562
- columnHeight: number;
2563
- columnWidth: number;
2564
- };
2565
- $: {
2566
- contentLayout$: Observable< {
2567
- isFirstLayout: boolean;
2568
- isReady: boolean;
2569
- }>;
2570
- loaded$: Observable<HTMLIFrameElement>;
2571
- isReady$: Observable<boolean>;
2572
- };
2573
- };
2574
- pageIndex: number;
2575
- cfi: string | undefined;
2576
- options: {
2577
- isAtEndOfChapter?: boolean | undefined;
2578
- };
2579
- } & {
2580
- spineItemIndex: number;
2581
- }, end: {
2582
- spineItem: {
2583
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
2584
- blankPagePosition: "after" | "before" | "none";
2585
- minimumWidth: number;
2586
- spreadPosition: "none" | "right" | "left";
2587
- }) => {
2588
- width: number;
2589
- height: number;
2590
- };
2591
- item: {
2592
- id: string;
2593
- href: string;
2594
- renditionLayout: "reflowable" | "pre-paginated";
2595
- progressionWeight: number;
2596
- pageSpreadLeft: true | undefined;
2597
- pageSpreadRight: true | undefined;
2598
- mediaType?: string | undefined;
2599
- };
2600
- load: () => void;
2601
- adjustPositionOfElement: ({ right, left, top }: {
2602
- right?: number | undefined;
2603
- left?: number | undefined;
2604
- top?: number | undefined;
2605
- }) => void;
2606
- getElementDimensions: () => {
2607
- width: number;
2608
- height: number;
2609
- };
2610
- getHtmlFromResource: (response: Response) => Promise<string>;
2611
- getResource: () => Promise<Response>;
2612
- translateFramePositionIntoPage: (position: {
2613
- clientX: number;
2614
- clientY: number;
2615
- }) => {
2616
- clientX: number;
2617
- clientY: number;
2618
- };
2619
- setLayoutDirty: () => void;
2620
- injectStyle: (cssText: string) => void;
2621
- loadContent: () => void;
2622
- unloadContent: () => void;
2623
- spineItemFrame: {
2624
- getIsLoaded: () => boolean;
2625
- getIsReady: () => boolean;
2626
- getViewportDimensions: () => {
2627
- width: number;
2628
- height: number;
2629
- } | undefined;
2630
- getFrameElement: () => HTMLIFrameElement | undefined;
2631
- getHtmlFromResource: (response: Response) => Promise<string>;
2632
- load: () => void;
2633
- unload: () => void;
2634
- staticLayout: (size: {
2635
- width: number;
2636
- height: number;
2637
- }) => void;
2638
- getManipulableFrame: () => {
2639
- frame: HTMLIFrameElement;
2640
- removeStyle: (id: string) => void;
2641
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2642
- } | undefined;
2643
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2644
- isUsingVerticalWriting: () => boolean;
2645
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
2646
- destroy: () => void;
2647
- $: {
2648
- unload$: Observable<void>;
2649
- unloaded$: Observable<void>;
2650
- loaded$: Observable<HTMLIFrameElement>;
2651
- ready$: Observable<FontFaceSet | undefined>;
2652
- isReady$: Observable<boolean>;
2653
- contentLayoutChange$: Observable< {
2654
- isFirstLayout: boolean;
2655
- } | {
2656
- isFirstLayout: boolean;
2657
- }>;
2658
- };
2659
- };
2660
- element: HTMLElement;
2661
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
2662
- getViewPortInformation: () => {
2663
- computedScale: number;
2664
- computedWidthScale: number;
2665
- viewportDimensions: {
2666
- width: number;
2667
- height: number;
2668
- };
2669
- } | undefined;
2670
- isImageType: () => boolean;
2671
- isReady: () => boolean;
2672
- destroy: () => void;
2673
- isUsingVerticalWriting: () => boolean | undefined;
2674
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2675
- manipulateSpineItem: (cb: (options: {
2676
- container: HTMLElement;
2677
- item: {
2678
- id: string;
2679
- href: string;
2680
- renditionLayout: "reflowable" | "pre-paginated";
2681
- progressionWeight: number;
2682
- pageSpreadLeft: true | undefined;
2683
- pageSpreadRight: true | undefined;
2684
- mediaType?: string | undefined;
2685
- };
2686
- overlayElement: HTMLDivElement;
2687
- } & ({
2688
- frame: HTMLIFrameElement;
2689
- removeStyle: (id: string) => void;
2690
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2691
- } | {
2692
- frame: undefined;
2693
- removeStyle: (id: string) => void;
2694
- addStyle: (id: string, style: string) => void;
2695
- })) => boolean) => boolean;
2696
- executeOnLayoutBeforeMeasurementHook: (options: {
2697
- minimumWidth: number;
2698
- }) => Observable<[void | Observable<void>]>;
2699
- selectionTracker: {
2700
- track: (frameToTrack: HTMLIFrameElement) => void;
2701
- destroy: () => void;
2702
- isSelecting: () => boolean;
2703
- getSelection: () => Selection | undefined;
2704
- $: Observable< {
2705
- event: "selectionchange";
2706
- data: Selection | null;
2707
- } | {
2708
- event: "selectstart";
2709
- data: Selection | null;
2710
- } | {
2711
- event: "selectend";
2712
- data: Selection | null;
2713
- }>;
2714
- };
2715
- fingerTracker: {
2716
- track: (frame: HTMLIFrameElement) => void;
2717
- getFingerPositionInIframe(): {
2718
- x: number | undefined;
2719
- y: number | undefined;
2720
- } | undefined;
2721
- destroy: () => void;
2722
- $: Observable< {
2723
- event: "fingermove";
2724
- data: {
2725
- x: number;
2726
- y: number;
2727
- };
2728
- } | {
2729
- event: "fingerout";
2730
- data: undefined;
2731
- }>;
2732
- };
2733
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
2734
- columnHeight: number;
2735
- columnWidth: number;
2736
- width: number;
2737
- };
2738
- getDimensionsForPaginatedContent: () => {
2739
- columnHeight: number;
2740
- columnWidth: number;
2741
- };
2742
- $: {
2743
- contentLayout$: Observable< {
2744
- isFirstLayout: boolean;
2745
- isReady: boolean;
2746
- }>;
2747
- loaded$: Observable<HTMLIFrameElement>;
2748
- isReady$: Observable<boolean>;
2749
- };
2750
- };
2751
- pageIndex: number;
2752
- cfi: string | undefined;
2753
- options: {
2754
- isAtEndOfChapter?: boolean | undefined;
2755
- };
2756
- } & {
2757
- spineItemIndex: number;
2758
- }) => void) | ((begin: {
2759
- spineItem: {
2760
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
2761
- blankPagePosition: "after" | "before" | "none";
2762
- minimumWidth: number;
2763
- spreadPosition: "none" | "right" | "left";
2764
- }) => {
2765
- width: number;
2766
- height: number;
2767
- };
2768
- item: {
2769
- id: string;
2770
- href: string;
2771
- renditionLayout: "reflowable" | "pre-paginated";
2772
- progressionWeight: number;
2773
- pageSpreadLeft: true | undefined;
2774
- pageSpreadRight: true | undefined;
2775
- mediaType?: string | undefined;
2776
- };
2777
- load: () => void;
2778
- adjustPositionOfElement: ({ right, left, top }: {
2779
- right?: number | undefined;
2780
- left?: number | undefined;
2781
- top?: number | undefined;
2782
- }) => void;
2783
- getElementDimensions: () => {
2784
- width: number;
2785
- height: number;
2786
- };
2787
- getHtmlFromResource: (response: Response) => Promise<string>;
2788
- getResource: () => Promise<Response>;
2789
- translateFramePositionIntoPage: (position: {
2790
- clientX: number;
2791
- clientY: number;
2792
- }) => {
2793
- clientX: number;
2794
- clientY: number;
2795
- };
2796
- setLayoutDirty: () => void;
2797
- injectStyle: (cssText: string) => void;
2798
- loadContent: () => void;
2799
- unloadContent: () => void;
2800
- spineItemFrame: {
2801
- getIsLoaded: () => boolean;
2802
- getIsReady: () => boolean;
2803
- getViewportDimensions: () => {
2804
- width: number;
2805
- height: number;
2806
- } | undefined;
2807
- getFrameElement: () => HTMLIFrameElement | undefined;
2808
- getHtmlFromResource: (response: Response) => Promise<string>;
2809
- load: () => void;
2810
- unload: () => void;
2811
- staticLayout: (size: {
2812
- width: number;
2813
- height: number;
2814
- }) => void;
2815
- getManipulableFrame: () => {
2816
- frame: HTMLIFrameElement;
2817
- removeStyle: (id: string) => void;
2818
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2819
- } | undefined;
2820
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2821
- isUsingVerticalWriting: () => boolean;
2822
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
2823
- destroy: () => void;
2824
- $: {
2825
- unload$: Observable<void>;
2826
- unloaded$: Observable<void>;
2827
- loaded$: Observable<HTMLIFrameElement>;
2828
- ready$: Observable<FontFaceSet | undefined>;
2829
- isReady$: Observable<boolean>;
2830
- contentLayoutChange$: Observable< {
2831
- isFirstLayout: boolean;
2832
- } | {
2833
- isFirstLayout: boolean;
2834
- }>;
2835
- };
2836
- };
2837
- element: HTMLElement;
2838
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
2839
- getViewPortInformation: () => {
2840
- computedScale: number;
2841
- computedWidthScale: number;
2842
- viewportDimensions: {
2843
- width: number;
2844
- height: number;
2845
- };
2846
- } | undefined;
2847
- isImageType: () => boolean;
2848
- isReady: () => boolean;
2849
- destroy: () => void;
2850
- isUsingVerticalWriting: () => boolean | undefined;
2851
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2852
- manipulateSpineItem: (cb: (options: {
2853
- container: HTMLElement;
2854
- item: {
2855
- id: string;
2856
- href: string;
2857
- renditionLayout: "reflowable" | "pre-paginated";
2858
- progressionWeight: number;
2859
- pageSpreadLeft: true | undefined;
2860
- pageSpreadRight: true | undefined;
2861
- mediaType?: string | undefined;
2862
- };
2863
- overlayElement: HTMLDivElement;
2864
- } & ({
2865
- frame: HTMLIFrameElement;
2866
- removeStyle: (id: string) => void;
2867
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2868
- } | {
2869
- frame: undefined;
2870
- removeStyle: (id: string) => void;
2871
- addStyle: (id: string, style: string) => void;
2872
- })) => boolean) => boolean;
2873
- executeOnLayoutBeforeMeasurementHook: (options: {
2874
- minimumWidth: number;
2875
- }) => Observable<[void | Observable<void>]>;
2876
- selectionTracker: {
2877
- track: (frameToTrack: HTMLIFrameElement) => void;
2878
- destroy: () => void;
2879
- isSelecting: () => boolean;
2880
- getSelection: () => Selection | undefined;
2881
- $: Observable< {
2882
- event: "selectionchange";
2883
- data: Selection | null;
2884
- } | {
2885
- event: "selectstart";
2886
- data: Selection | null;
2887
- } | {
2888
- event: "selectend";
2889
- data: Selection | null;
2890
- }>;
2891
- };
2892
- fingerTracker: {
2893
- track: (frame: HTMLIFrameElement) => void;
2894
- getFingerPositionInIframe(): {
2895
- x: number | undefined;
2896
- y: number | undefined;
2897
- } | undefined;
2898
- destroy: () => void;
2899
- $: Observable< {
2900
- event: "fingermove";
2901
- data: {
2902
- x: number;
2903
- y: number;
2904
- };
2905
- } | {
2906
- event: "fingerout";
2907
- data: undefined;
2908
- }>;
2909
- };
2910
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
2911
- columnHeight: number;
2912
- columnWidth: number;
2913
- width: number;
2914
- };
2915
- getDimensionsForPaginatedContent: () => {
2916
- columnHeight: number;
2917
- columnWidth: number;
2918
- };
2919
- $: {
2920
- contentLayout$: Observable< {
2921
- isFirstLayout: boolean;
2922
- isReady: boolean;
2923
- }>;
2924
- loaded$: Observable<HTMLIFrameElement>;
2925
- isReady$: Observable<boolean>;
2926
- };
2927
- };
2928
- pageIndex: number;
2929
- cfi: string | undefined;
2930
- options: {
2931
- isAtEndOfChapter?: boolean | undefined;
2932
- };
2933
- } & {
2934
- spineItemIndex: number;
2935
- }, end: {
2936
- spineItem: {
2937
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
2938
- blankPagePosition: "after" | "before" | "none";
2939
- minimumWidth: number;
2940
- spreadPosition: "none" | "right" | "left";
2941
- }) => {
2942
- width: number;
2943
- height: number;
2944
- };
2945
- item: {
2946
- id: string;
2947
- href: string;
2948
- renditionLayout: "reflowable" | "pre-paginated";
2949
- progressionWeight: number;
2950
- pageSpreadLeft: true | undefined;
2951
- pageSpreadRight: true | undefined;
2952
- mediaType?: string | undefined;
2953
- };
2954
- load: () => void;
2955
- adjustPositionOfElement: ({ right, left, top }: {
2956
- right?: number | undefined;
2957
- left?: number | undefined;
2958
- top?: number | undefined;
2959
- }) => void;
2960
- getElementDimensions: () => {
2961
- width: number;
2962
- height: number;
2963
- };
2964
- getHtmlFromResource: (response: Response) => Promise<string>;
2965
- getResource: () => Promise<Response>;
2966
- translateFramePositionIntoPage: (position: {
2967
- clientX: number;
2968
- clientY: number;
2969
- }) => {
2970
- clientX: number;
2971
- clientY: number;
2972
- };
2973
- setLayoutDirty: () => void;
2974
- injectStyle: (cssText: string) => void;
2975
- loadContent: () => void;
2976
- unloadContent: () => void;
2977
- spineItemFrame: {
2978
- getIsLoaded: () => boolean;
2979
- getIsReady: () => boolean;
2980
- getViewportDimensions: () => {
2981
- width: number;
2982
- height: number;
2983
- } | undefined;
2984
- getFrameElement: () => HTMLIFrameElement | undefined;
2985
- getHtmlFromResource: (response: Response) => Promise<string>;
2986
- load: () => void;
2987
- unload: () => void;
2988
- staticLayout: (size: {
2989
- width: number;
2990
- height: number;
2991
- }) => void;
2992
- getManipulableFrame: () => {
2993
- frame: HTMLIFrameElement;
2994
- removeStyle: (id: string) => void;
2995
- addStyle: (id: string, style: string, prepend?: boolean) => void;
2996
- } | undefined;
2997
- getReadingDirection: () => "ltr" | "rtl" | undefined;
2998
- isUsingVerticalWriting: () => boolean;
2999
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
3000
- destroy: () => void;
3001
- $: {
3002
- unload$: Observable<void>;
3003
- unloaded$: Observable<void>;
3004
- loaded$: Observable<HTMLIFrameElement>;
3005
- ready$: Observable<FontFaceSet | undefined>;
3006
- isReady$: Observable<boolean>;
3007
- contentLayoutChange$: Observable< {
3008
- isFirstLayout: boolean;
3009
- } | {
3010
- isFirstLayout: boolean;
3011
- }>;
3012
- };
3013
- };
3014
- element: HTMLElement;
3015
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
3016
- getViewPortInformation: () => {
3017
- computedScale: number;
3018
- computedWidthScale: number;
3019
- viewportDimensions: {
3020
- width: number;
3021
- height: number;
3022
- };
3023
- } | undefined;
3024
- isImageType: () => boolean;
3025
- isReady: () => boolean;
3026
- destroy: () => void;
3027
- isUsingVerticalWriting: () => boolean | undefined;
3028
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3029
- manipulateSpineItem: (cb: (options: {
3030
- container: HTMLElement;
3031
- item: {
3032
- id: string;
3033
- href: string;
3034
- renditionLayout: "reflowable" | "pre-paginated";
3035
- progressionWeight: number;
3036
- pageSpreadLeft: true | undefined;
3037
- pageSpreadRight: true | undefined;
3038
- mediaType?: string | undefined;
3039
- };
3040
- overlayElement: HTMLDivElement;
3041
- } & ({
3042
- frame: HTMLIFrameElement;
3043
- removeStyle: (id: string) => void;
3044
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3045
- } | {
3046
- frame: undefined;
3047
- removeStyle: (id: string) => void;
3048
- addStyle: (id: string, style: string) => void;
3049
- })) => boolean) => boolean;
3050
- executeOnLayoutBeforeMeasurementHook: (options: {
3051
- minimumWidth: number;
3052
- }) => Observable<[void | Observable<void>]>;
3053
- selectionTracker: {
3054
- track: (frameToTrack: HTMLIFrameElement) => void;
3055
- destroy: () => void;
3056
- isSelecting: () => boolean;
3057
- getSelection: () => Selection | undefined;
3058
- $: Observable< {
3059
- event: "selectionchange";
3060
- data: Selection | null;
3061
- } | {
3062
- event: "selectstart";
3063
- data: Selection | null;
3064
- } | {
3065
- event: "selectend";
3066
- data: Selection | null;
3067
- }>;
3068
- };
3069
- fingerTracker: {
3070
- track: (frame: HTMLIFrameElement) => void;
3071
- getFingerPositionInIframe(): {
3072
- x: number | undefined;
3073
- y: number | undefined;
3074
- } | undefined;
3075
- destroy: () => void;
3076
- $: Observable< {
3077
- event: "fingermove";
3078
- data: {
3079
- x: number;
3080
- y: number;
3081
- };
3082
- } | {
3083
- event: "fingerout";
3084
- data: undefined;
3085
- }>;
3086
- };
3087
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
3088
- columnHeight: number;
3089
- columnWidth: number;
3090
- width: number;
3091
- };
3092
- getDimensionsForPaginatedContent: () => {
3093
- columnHeight: number;
3094
- columnWidth: number;
3095
- };
3096
- $: {
3097
- contentLayout$: Observable< {
3098
- isFirstLayout: boolean;
3099
- isReady: boolean;
3100
- }>;
3101
- loaded$: Observable<HTMLIFrameElement>;
3102
- isReady$: Observable<boolean>;
3103
- };
3104
- };
3105
- pageIndex: number;
3106
- cfi: string | undefined;
3107
- options: {
3108
- isAtEndOfChapter?: boolean | undefined;
3109
- };
3110
- } & {
3111
- spineItemIndex: number;
3112
- }) => void);
3113
- getPaginationInfo: () => PaginationInfo;
3114
- paginationInfo$: Observable<PaginationInfo>;
3115
- }, "paginationInfo$" | "getPaginationInfo"> & {
3116
- paginationInfo$: Observable<PaginationInfo & ExtraPaginationInfo>;
3117
- getPaginationInfo: () => PaginationInfo & ExtraPaginationInfo;
3118
- }, "paginationInfo$" | "getPaginationInfo">;
3119
- };
3120
-
3121
- declare const createSelection: (selection: Selection, item: Manifest[`spineItems`][number]) => {
3122
- toString: () => string;
3123
- getAnchorCfi: () => string | undefined;
3124
- getFocusCfi: () => string | undefined;
3125
- };
3126
-
3127
- declare const createSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager }: {
3128
- item: Manifest[`spineItems`][number];
3129
- containerElement: HTMLElement;
3130
- context: Context;
3131
- viewportState$: Observable<`free` | `busy`>;
3132
- settings: SettingsManager;
3133
- hookManager: HookManager;
3134
- }) => {
3135
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
3136
- blankPagePosition: "after" | "before" | "none";
3137
- minimumWidth: number;
3138
- spreadPosition: "none" | "right" | "left";
3139
- }) => {
3140
- width: number;
3141
- height: number;
3142
- };
3143
- item: {
3144
- id: string;
3145
- href: string;
3146
- renditionLayout: "reflowable" | "pre-paginated";
3147
- progressionWeight: number;
3148
- pageSpreadLeft: true | undefined;
3149
- pageSpreadRight: true | undefined;
3150
- mediaType?: string | undefined;
3151
- };
3152
- load: () => void;
3153
- adjustPositionOfElement: ({ right, left, top }: {
3154
- right?: number | undefined;
3155
- left?: number | undefined;
3156
- top?: number | undefined;
3157
- }) => void;
3158
- getElementDimensions: () => {
3159
- width: number;
3160
- height: number;
3161
- };
3162
- getHtmlFromResource: (response: Response) => Promise<string>;
3163
- getResource: () => Promise<Response>;
3164
- translateFramePositionIntoPage: (position: {
3165
- clientX: number;
3166
- clientY: number;
3167
- }) => {
3168
- clientX: number;
3169
- clientY: number;
3170
- };
3171
- setLayoutDirty: () => void;
3172
- injectStyle: (cssText: string) => void;
3173
- loadContent: () => void;
3174
- unloadContent: () => void;
3175
- spineItemFrame: {
3176
- getIsLoaded: () => boolean;
3177
- getIsReady: () => boolean;
3178
- getViewportDimensions: () => {
3179
- width: number;
3180
- height: number;
3181
- } | undefined;
3182
- getFrameElement: () => HTMLIFrameElement | undefined;
3183
- getHtmlFromResource: (response: Response) => Promise<string>;
3184
- load: () => void;
3185
- unload: () => void;
3186
- staticLayout: (size: {
3187
- width: number;
3188
- height: number;
3189
- }) => void;
3190
- getManipulableFrame: () => {
3191
- frame: HTMLIFrameElement;
3192
- removeStyle: (id: string) => void;
3193
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3194
- } | undefined;
3195
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3196
- isUsingVerticalWriting: () => boolean;
3197
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
3198
- destroy: () => void;
3199
- $: {
3200
- unload$: Observable<void>;
3201
- unloaded$: Observable<void>;
3202
- loaded$: Observable<HTMLIFrameElement>;
3203
- ready$: Observable<FontFaceSet | undefined>;
3204
- isReady$: Observable<boolean>;
3205
- contentLayoutChange$: Observable<{
3206
- isFirstLayout: boolean;
3207
- } | {
3208
- isFirstLayout: boolean;
3209
- }>;
3210
- };
3211
- };
3212
- element: HTMLElement;
3213
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
3214
- getViewPortInformation: () => {
3215
- computedScale: number;
3216
- computedWidthScale: number;
3217
- viewportDimensions: {
3218
- width: number;
3219
- height: number;
3220
- };
3221
- } | undefined;
3222
- isImageType: () => boolean;
3223
- isReady: () => boolean;
3224
- destroy: () => void;
3225
- isUsingVerticalWriting: () => boolean | undefined;
3226
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3227
- manipulateSpineItem: (cb: (options: {
3228
- container: HTMLElement;
3229
- item: {
3230
- id: string;
3231
- href: string;
3232
- renditionLayout: "reflowable" | "pre-paginated";
3233
- progressionWeight: number;
3234
- pageSpreadLeft: true | undefined;
3235
- pageSpreadRight: true | undefined;
3236
- mediaType?: string | undefined;
3237
- };
3238
- overlayElement: HTMLDivElement;
3239
- } & ({
3240
- frame: HTMLIFrameElement;
3241
- removeStyle: (id: string) => void;
3242
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3243
- } | {
3244
- frame: undefined;
3245
- removeStyle: (id: string) => void;
3246
- addStyle: (id: string, style: string) => void;
3247
- })) => boolean) => boolean;
3248
- executeOnLayoutBeforeMeasurementHook: (options: {
3249
- minimumWidth: number;
3250
- }) => Observable<[void | Observable<void>]>;
3251
- selectionTracker: {
3252
- track: (frameToTrack: HTMLIFrameElement) => void;
3253
- destroy: () => void;
3254
- isSelecting: () => boolean;
3255
- getSelection: () => Selection | undefined;
3256
- $: Observable<{
3257
- event: "selectionchange";
3258
- data: Selection | null;
3259
- } | {
3260
- event: "selectstart";
3261
- data: Selection | null;
3262
- } | {
3263
- event: "selectend";
3264
- data: Selection | null;
3265
- }>;
3266
- };
3267
- fingerTracker: {
3268
- track: (frame: HTMLIFrameElement) => void;
3269
- getFingerPositionInIframe(): {
3270
- x: number | undefined;
3271
- y: number | undefined;
3272
- } | undefined;
3273
- destroy: () => void;
3274
- $: Observable<{
3275
- event: "fingermove";
3276
- data: {
3277
- x: number;
3278
- y: number;
3279
- };
3280
- } | {
3281
- event: "fingerout";
3282
- data: undefined;
3283
- }>;
3284
- };
3285
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
3286
- columnHeight: number;
3287
- columnWidth: number;
3288
- width: number;
3289
- };
3290
- getDimensionsForPaginatedContent: () => {
3291
- columnHeight: number;
3292
- columnWidth: number;
3293
- };
3294
- $: {
3295
- contentLayout$: Observable<{
3296
- isFirstLayout: boolean;
3297
- isReady: boolean;
3298
- }>;
3299
- loaded$: Observable<HTMLIFrameElement>;
3300
- isReady$: Observable<boolean>;
3301
- };
3302
- };
3303
-
3304
- declare const createSpineItemManager: ({ context, settings }: {
3305
- context: Context;
3306
- settings: SettingsManager;
3307
- }) => {
3308
- destroyItems: () => void;
3309
- add: (spineItem: SpineItem) => void;
3310
- get: (indexOrId: number | string) => {
3311
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
3312
- blankPagePosition: "after" | "before" | "none";
3313
- minimumWidth: number;
3314
- spreadPosition: "none" | "right" | "left";
3315
- }) => {
3316
- width: number;
3317
- height: number;
3318
- };
3319
- item: {
3320
- id: string;
3321
- href: string;
3322
- renditionLayout: "reflowable" | "pre-paginated";
3323
- progressionWeight: number;
3324
- pageSpreadLeft: true | undefined;
3325
- pageSpreadRight: true | undefined;
3326
- mediaType?: string | undefined;
3327
- };
3328
- load: () => void;
3329
- adjustPositionOfElement: ({ right, left, top }: {
3330
- right?: number | undefined;
3331
- left?: number | undefined;
3332
- top?: number | undefined;
3333
- }) => void;
3334
- getElementDimensions: () => {
3335
- width: number;
3336
- height: number;
3337
- };
3338
- getHtmlFromResource: (response: Response) => Promise<string>;
3339
- getResource: () => Promise<Response>;
3340
- translateFramePositionIntoPage: (position: {
3341
- clientX: number;
3342
- clientY: number;
3343
- }) => {
3344
- clientX: number;
3345
- clientY: number;
3346
- };
3347
- setLayoutDirty: () => void;
3348
- injectStyle: (cssText: string) => void;
3349
- loadContent: () => void;
3350
- unloadContent: () => void;
3351
- spineItemFrame: {
3352
- getIsLoaded: () => boolean;
3353
- getIsReady: () => boolean;
3354
- getViewportDimensions: () => {
3355
- width: number;
3356
- height: number;
3357
- } | undefined;
3358
- getFrameElement: () => HTMLIFrameElement | undefined;
3359
- getHtmlFromResource: (response: Response) => Promise<string>;
3360
- load: () => void;
3361
- unload: () => void;
3362
- staticLayout: (size: {
3363
- width: number;
3364
- height: number;
3365
- }) => void;
3366
- getManipulableFrame: () => {
3367
- frame: HTMLIFrameElement;
3368
- removeStyle: (id: string) => void;
3369
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3370
- } | undefined;
3371
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3372
- isUsingVerticalWriting: () => boolean;
3373
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
3374
- destroy: () => void;
3375
- $: {
3376
- unload$: Observable<void>;
3377
- unloaded$: Observable<void>;
3378
- loaded$: Observable<HTMLIFrameElement>;
3379
- ready$: Observable<FontFaceSet | undefined>;
3380
- isReady$: Observable<boolean>;
3381
- contentLayoutChange$: Observable< {
3382
- isFirstLayout: boolean;
3383
- } | {
3384
- isFirstLayout: boolean;
3385
- }>;
3386
- };
3387
- };
3388
- element: HTMLElement;
3389
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
3390
- getViewPortInformation: () => {
3391
- computedScale: number;
3392
- computedWidthScale: number;
3393
- viewportDimensions: {
3394
- width: number;
3395
- height: number;
3396
- };
3397
- } | undefined;
3398
- isImageType: () => boolean;
3399
- isReady: () => boolean;
3400
- destroy: () => void;
3401
- isUsingVerticalWriting: () => boolean | undefined;
3402
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3403
- manipulateSpineItem: (cb: (options: {
3404
- container: HTMLElement;
3405
- item: {
3406
- id: string;
3407
- href: string;
3408
- renditionLayout: "reflowable" | "pre-paginated";
3409
- progressionWeight: number;
3410
- pageSpreadLeft: true | undefined;
3411
- pageSpreadRight: true | undefined;
3412
- mediaType?: string | undefined;
3413
- };
3414
- overlayElement: HTMLDivElement;
3415
- } & ({
3416
- frame: HTMLIFrameElement;
3417
- removeStyle: (id: string) => void;
3418
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3419
- } | {
3420
- frame: undefined;
3421
- removeStyle: (id: string) => void;
3422
- addStyle: (id: string, style: string) => void;
3423
- })) => boolean) => boolean;
3424
- executeOnLayoutBeforeMeasurementHook: (options: {
3425
- minimumWidth: number;
3426
- }) => Observable<[void | Observable<void>]>;
3427
- selectionTracker: {
3428
- track: (frameToTrack: HTMLIFrameElement) => void;
3429
- destroy: () => void;
3430
- isSelecting: () => boolean;
3431
- getSelection: () => Selection | undefined;
3432
- $: Observable< {
3433
- event: "selectionchange";
3434
- data: Selection | null;
3435
- } | {
3436
- event: "selectstart";
3437
- data: Selection | null;
3438
- } | {
3439
- event: "selectend";
3440
- data: Selection | null;
3441
- }>;
3442
- };
3443
- fingerTracker: {
3444
- track: (frame: HTMLIFrameElement) => void;
3445
- getFingerPositionInIframe(): {
3446
- x: number | undefined;
3447
- y: number | undefined;
3448
- } | undefined;
3449
- destroy: () => void;
3450
- $: Observable< {
3451
- event: "fingermove";
3452
- data: {
3453
- x: number;
3454
- y: number;
3455
- };
3456
- } | {
3457
- event: "fingerout";
3458
- data: undefined;
3459
- }>;
3460
- };
3461
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
3462
- columnHeight: number;
3463
- columnWidth: number;
3464
- width: number;
3465
- };
3466
- getDimensionsForPaginatedContent: () => {
3467
- columnHeight: number;
3468
- columnWidth: number;
3469
- };
3470
- $: {
3471
- contentLayout$: Observable< {
3472
- isFirstLayout: boolean;
3473
- isReady: boolean;
3474
- }>;
3475
- loaded$: Observable<HTMLIFrameElement>;
3476
- isReady$: Observable<boolean>;
3477
- };
3478
- } | undefined;
3479
- getAll: () => {
3480
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
3481
- blankPagePosition: "after" | "before" | "none";
3482
- minimumWidth: number;
3483
- spreadPosition: "none" | "right" | "left";
3484
- }) => {
3485
- width: number;
3486
- height: number;
3487
- };
3488
- item: {
3489
- id: string;
3490
- href: string;
3491
- renditionLayout: "reflowable" | "pre-paginated";
3492
- progressionWeight: number;
3493
- pageSpreadLeft: true | undefined;
3494
- pageSpreadRight: true | undefined;
3495
- mediaType?: string | undefined;
3496
- };
3497
- load: () => void;
3498
- adjustPositionOfElement: ({ right, left, top }: {
3499
- right?: number | undefined;
3500
- left?: number | undefined;
3501
- top?: number | undefined;
3502
- }) => void;
3503
- getElementDimensions: () => {
3504
- width: number;
3505
- height: number;
3506
- };
3507
- getHtmlFromResource: (response: Response) => Promise<string>;
3508
- getResource: () => Promise<Response>;
3509
- translateFramePositionIntoPage: (position: {
3510
- clientX: number;
3511
- clientY: number;
3512
- }) => {
3513
- clientX: number;
3514
- clientY: number;
3515
- };
3516
- setLayoutDirty: () => void;
3517
- injectStyle: (cssText: string) => void;
3518
- loadContent: () => void;
3519
- unloadContent: () => void;
3520
- spineItemFrame: {
3521
- getIsLoaded: () => boolean;
3522
- getIsReady: () => boolean;
3523
- getViewportDimensions: () => {
3524
- width: number;
3525
- height: number;
3526
- } | undefined;
3527
- getFrameElement: () => HTMLIFrameElement | undefined;
3528
- getHtmlFromResource: (response: Response) => Promise<string>;
3529
- load: () => void;
3530
- unload: () => void;
3531
- staticLayout: (size: {
3532
- width: number;
3533
- height: number;
3534
- }) => void;
3535
- getManipulableFrame: () => {
3536
- frame: HTMLIFrameElement;
3537
- removeStyle: (id: string) => void;
3538
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3539
- } | undefined;
3540
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3541
- isUsingVerticalWriting: () => boolean;
3542
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
3543
- destroy: () => void;
3544
- $: {
3545
- unload$: Observable<void>;
3546
- unloaded$: Observable<void>;
3547
- loaded$: Observable<HTMLIFrameElement>;
3548
- ready$: Observable<FontFaceSet | undefined>;
3549
- isReady$: Observable<boolean>;
3550
- contentLayoutChange$: Observable< {
3551
- isFirstLayout: boolean;
3552
- } | {
3553
- isFirstLayout: boolean;
3554
- }>;
3555
- };
3556
- };
3557
- element: HTMLElement;
3558
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
3559
- getViewPortInformation: () => {
3560
- computedScale: number;
3561
- computedWidthScale: number;
3562
- viewportDimensions: {
3563
- width: number;
3564
- height: number;
3565
- };
3566
- } | undefined;
3567
- isImageType: () => boolean;
3568
- isReady: () => boolean;
3569
- destroy: () => void;
3570
- isUsingVerticalWriting: () => boolean | undefined;
3571
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3572
- manipulateSpineItem: (cb: (options: {
3573
- container: HTMLElement;
3574
- item: {
3575
- id: string;
3576
- href: string;
3577
- renditionLayout: "reflowable" | "pre-paginated";
3578
- progressionWeight: number;
3579
- pageSpreadLeft: true | undefined;
3580
- pageSpreadRight: true | undefined;
3581
- mediaType?: string | undefined;
3582
- };
3583
- overlayElement: HTMLDivElement;
3584
- } & ({
3585
- frame: HTMLIFrameElement;
3586
- removeStyle: (id: string) => void;
3587
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3588
- } | {
3589
- frame: undefined;
3590
- removeStyle: (id: string) => void;
3591
- addStyle: (id: string, style: string) => void;
3592
- })) => boolean) => boolean;
3593
- executeOnLayoutBeforeMeasurementHook: (options: {
3594
- minimumWidth: number;
3595
- }) => Observable<[void | Observable<void>]>;
3596
- selectionTracker: {
3597
- track: (frameToTrack: HTMLIFrameElement) => void;
3598
- destroy: () => void;
3599
- isSelecting: () => boolean;
3600
- getSelection: () => Selection | undefined;
3601
- $: Observable< {
3602
- event: "selectionchange";
3603
- data: Selection | null;
3604
- } | {
3605
- event: "selectstart";
3606
- data: Selection | null;
3607
- } | {
3608
- event: "selectend";
3609
- data: Selection | null;
3610
- }>;
3611
- };
3612
- fingerTracker: {
3613
- track: (frame: HTMLIFrameElement) => void;
3614
- getFingerPositionInIframe(): {
3615
- x: number | undefined;
3616
- y: number | undefined;
3617
- } | undefined;
3618
- destroy: () => void;
3619
- $: Observable< {
3620
- event: "fingermove";
3621
- data: {
3622
- x: number;
3623
- y: number;
3624
- };
3625
- } | {
3626
- event: "fingerout";
3627
- data: undefined;
3628
- }>;
3629
- };
3630
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
3631
- columnHeight: number;
3632
- columnWidth: number;
3633
- width: number;
3634
- };
3635
- getDimensionsForPaginatedContent: () => {
3636
- columnHeight: number;
3637
- columnWidth: number;
3638
- };
3639
- $: {
3640
- contentLayout$: Observable< {
3641
- isFirstLayout: boolean;
3642
- isReady: boolean;
3643
- }>;
3644
- loaded$: Observable<HTMLIFrameElement>;
3645
- isReady$: Observable<boolean>;
3646
- };
3647
- }[];
3648
- getLength: () => number;
3649
- layout: () => void;
3650
- focus: (indexOrSpineItem: number | SpineItem) => void;
3651
- loadContents: ((rangeOfIndex: [number, number]) => void) | ((rangeOfIndex: [number, number]) => void);
3652
- comparePositionOf: (toCompare: SpineItem, withItem: SpineItem) => "after" | "before";
3653
- getAbsolutePositionOf: (spineItemOrIndex: SpineItem | number) => {
3654
- left: number;
3655
- right: number;
3656
- top: number;
3657
- bottom: number;
3658
- width: number;
3659
- height: number;
3660
- };
3661
- getFocusedSpineItem: () => {
3662
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
3663
- blankPagePosition: "after" | "before" | "none";
3664
- minimumWidth: number;
3665
- spreadPosition: "none" | "right" | "left";
3666
- }) => {
3667
- width: number;
3668
- height: number;
3669
- };
3670
- item: {
3671
- id: string;
3672
- href: string;
3673
- renditionLayout: "reflowable" | "pre-paginated";
3674
- progressionWeight: number;
3675
- pageSpreadLeft: true | undefined;
3676
- pageSpreadRight: true | undefined;
3677
- mediaType?: string | undefined;
3678
- };
3679
- load: () => void;
3680
- adjustPositionOfElement: ({ right, left, top }: {
3681
- right?: number | undefined;
3682
- left?: number | undefined;
3683
- top?: number | undefined;
3684
- }) => void;
3685
- getElementDimensions: () => {
3686
- width: number;
3687
- height: number;
3688
- };
3689
- getHtmlFromResource: (response: Response) => Promise<string>;
3690
- getResource: () => Promise<Response>;
3691
- translateFramePositionIntoPage: (position: {
3692
- clientX: number;
3693
- clientY: number;
3694
- }) => {
3695
- clientX: number;
3696
- clientY: number;
3697
- };
3698
- setLayoutDirty: () => void;
3699
- injectStyle: (cssText: string) => void;
3700
- loadContent: () => void;
3701
- unloadContent: () => void;
3702
- spineItemFrame: {
3703
- getIsLoaded: () => boolean;
3704
- getIsReady: () => boolean;
3705
- getViewportDimensions: () => {
3706
- width: number;
3707
- height: number;
3708
- } | undefined;
3709
- getFrameElement: () => HTMLIFrameElement | undefined;
3710
- getHtmlFromResource: (response: Response) => Promise<string>;
3711
- load: () => void;
3712
- unload: () => void;
3713
- staticLayout: (size: {
3714
- width: number;
3715
- height: number;
3716
- }) => void;
3717
- getManipulableFrame: () => {
3718
- frame: HTMLIFrameElement;
3719
- removeStyle: (id: string) => void;
3720
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3721
- } | undefined;
3722
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3723
- isUsingVerticalWriting: () => boolean;
3724
- getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
3725
- destroy: () => void;
3726
- $: {
3727
- unload$: Observable<void>;
3728
- unloaded$: Observable<void>;
3729
- loaded$: Observable<HTMLIFrameElement>;
3730
- ready$: Observable<FontFaceSet | undefined>;
3731
- isReady$: Observable<boolean>;
3732
- contentLayoutChange$: Observable< {
3733
- isFirstLayout: boolean;
3734
- } | {
3735
- isFirstLayout: boolean;
3736
- }>;
3737
- };
3738
- };
3739
- element: HTMLElement;
3740
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
3741
- getViewPortInformation: () => {
3742
- computedScale: number;
3743
- computedWidthScale: number;
3744
- viewportDimensions: {
3745
- width: number;
3746
- height: number;
3747
- };
3748
- } | undefined;
3749
- isImageType: () => boolean;
3750
- isReady: () => boolean;
3751
- destroy: () => void;
3752
- isUsingVerticalWriting: () => boolean | undefined;
3753
- getReadingDirection: () => "ltr" | "rtl" | undefined;
3754
- manipulateSpineItem: (cb: (options: {
3755
- container: HTMLElement;
3756
- item: {
3757
- id: string;
3758
- href: string;
3759
- renditionLayout: "reflowable" | "pre-paginated";
3760
- progressionWeight: number;
3761
- pageSpreadLeft: true | undefined;
3762
- pageSpreadRight: true | undefined;
3763
- mediaType?: string | undefined;
3764
- };
3765
- overlayElement: HTMLDivElement;
3766
- } & ({
3767
- frame: HTMLIFrameElement;
3768
- removeStyle: (id: string) => void;
3769
- addStyle: (id: string, style: string, prepend?: boolean) => void;
3770
- } | {
3771
- frame: undefined;
3772
- removeStyle: (id: string) => void;
3773
- addStyle: (id: string, style: string) => void;
3774
- })) => boolean) => boolean;
3775
- executeOnLayoutBeforeMeasurementHook: (options: {
3776
- minimumWidth: number;
3777
- }) => Observable<[void | Observable<void>]>;
3778
- selectionTracker: {
3779
- track: (frameToTrack: HTMLIFrameElement) => void;
3780
- destroy: () => void;
3781
- isSelecting: () => boolean;
3782
- getSelection: () => Selection | undefined;
3783
- $: Observable< {
3784
- event: "selectionchange";
3785
- data: Selection | null;
3786
- } | {
3787
- event: "selectstart";
3788
- data: Selection | null;
3789
- } | {
3790
- event: "selectend";
3791
- data: Selection | null;
3792
- }>;
3793
- };
3794
- fingerTracker: {
3795
- track: (frame: HTMLIFrameElement) => void;
3796
- getFingerPositionInIframe(): {
3797
- x: number | undefined;
3798
- y: number | undefined;
3799
- } | undefined;
3800
- destroy: () => void;
3801
- $: Observable< {
3802
- event: "fingermove";
3803
- data: {
3804
- x: number;
3805
- y: number;
3806
- };
3807
- } | {
3808
- event: "fingerout";
3809
- data: undefined;
3810
- }>;
3811
- };
3812
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
3813
- columnHeight: number;
3814
- columnWidth: number;
3815
- width: number;
3816
- };
3817
- getDimensionsForPaginatedContent: () => {
3818
- columnHeight: number;
3819
- columnWidth: number;
3820
- };
3821
- $: {
3822
- contentLayout$: Observable< {
3823
- isFirstLayout: boolean;
3824
- isReady: boolean;
3825
- }>;
3826
- loaded$: Observable<HTMLIFrameElement>;
3827
- isReady$: Observable<boolean>;
3828
- };
3829
- } | undefined;
3830
- getFocusedSpineItemIndex: () => number | undefined;
3831
- getSpineItemIndex: (spineItem: SpineItem | undefined) => number | undefined;
3832
- destroy: () => void;
3833
- $: {
3834
- focus$: Observable< {
3835
- data: SpineItem;
3836
- }>;
3837
- layout$: Observable<boolean>;
3838
- itemIsReady$: Observable< {
3839
- item: {
3840
- id: string;
3841
- href: string;
3842
- renditionLayout: "reflowable" | "pre-paginated";
3843
- progressionWeight: number;
3844
- pageSpreadLeft: true | undefined;
3845
- pageSpreadRight: true | undefined;
3846
- mediaType?: string | undefined;
3847
- };
3848
- isReady: boolean;
3849
- }>;
3850
- };
3851
- };
3852
-
3853
- declare const createViewportNavigator: ({ spineItemManager, context, pagination, parentElement$, cfiLocator, spineLocator, hookManager, spine, settings, }: {
3854
- spineItemManager: SpineItemManager;
3855
- pagination: Pagination;
3856
- context: Context;
3857
- parentElement$: BehaviorSubject<HTMLElement | undefined>;
3858
- cfiLocator: ReturnType<typeof createCfiLocator>;
3859
- spineLocator: ReturnType<typeof createLocationResolver>;
3860
- hookManager: HookManager;
3861
- spine: Spine;
3862
- settings: SettingsManager;
3863
- }) => {
3864
- destroy: () => void;
3865
- layout: () => void;
3866
- getCurrentNavigationPosition: () => ViewportNavigationEntry;
3867
- getCurrentViewportPosition: (() => {
3868
- x: number;
3869
- y: number;
3870
- }) | (() => {
3871
- x: number;
3872
- y: number;
3873
- });
3874
- turnLeft: ({ allowSpineItemChange }?: {
3875
- allowSpineItemChange?: boolean | undefined;
3876
- }) => void;
3877
- turnRight: ({ allowSpineItemChange }?: {
3878
- allowSpineItemChange?: boolean | undefined;
3879
- }) => void;
3880
- goToPage: (pageIndex: number) => void;
3881
- goToSpineItem: (indexOrId: string | number, options?: {
3882
- animate: boolean;
3883
- }) => void;
3884
- goToUrl: (url: string | URL) => void;
3885
- goToCfi: (cfi: string, options?: {
3886
- animate: boolean;
3887
- }) => void;
3888
- goToPageOfCurrentChapter: (pageIndex: number) => void;
3889
- moveTo: ((delta: {
3890
- x: number;
3891
- y: number;
3892
- } | undefined, { final, start }?: {
3893
- start?: boolean | undefined;
3894
- final?: boolean | undefined;
3895
- }) => void) | ((delta: {
3896
- x: number;
3897
- y: number;
3898
- } | undefined, args_1?: {
3899
- start?: boolean | undefined;
3900
- final?: boolean | undefined;
3901
- } | undefined) => void);
3902
- getLastUserExpectedNavigation: () => LastUserExpectedNavigation;
3903
- element$: BehaviorSubject<HTMLElement>;
3904
- getElement: () => HTMLElement;
3905
- $: {
3906
- state$: Observable<"free" | "busy">;
3907
- navigation$: Observable<Navigation>;
3908
- navigationAdjustedAfterLayout$: Observable<{
3909
- previousNavigationPosition: ViewportNavigationEntry;
3910
- adjustedSpinePosition: ViewportNavigationEntry;
3911
- areDifferent: boolean;
3912
- }>;
3913
- currentNavigationPosition$: Observable<ViewportNavigationEntry>;
3914
- };
3915
- };
3916
-
3917
- declare const defaultThemes: ({
3918
- name: "bright";
3919
- backgroundColor: string;
3920
- foregroundColor?: undefined;
3921
- } | {
3922
- name: "sepia";
3923
- backgroundColor: string;
3924
- foregroundColor: string;
3925
- } | {
3926
- name: "night";
3927
- backgroundColor: string;
3928
- foregroundColor: string;
3929
- })[];
3930
-
3931
- declare type Event_2 = {
3932
- type: `onSelectionChange`;
3933
- data: ReturnType<typeof createSelection> | null;
3934
- };
3935
-
3936
- declare type ExtraPaginationInfo = {
3937
- beginChapterInfo: ChapterInfo | undefined;
3938
- beginSpineItemReadingDirection: `rtl` | `ltr` | undefined;
3939
- beginAbsolutePageIndex: number | undefined;
3940
- endChapterInfo: ChapterInfo | undefined;
3941
- endSpineItemReadingDirection: `rtl` | `ltr` | undefined;
3942
- endAbsolutePageIndex: number | undefined;
3943
- percentageEstimateOfBook: number | undefined;
3944
- numberOfTotalPages: number | undefined;
3945
- isUsingSpread: boolean;
3946
- };
3947
-
3948
- export declare const groupBy: <T, K extends string | number | symbol>(list: T[], getKey: (item: T) => K) => Record<K, T[]>;
3949
-
3950
- declare type Hook = {
3951
- name: `item.onLoad`;
3952
- runFn: (params: {
3953
- destroy$: Observable<void>;
3954
- destroy: (fn: UserDestroyFn) => void;
3955
- itemId: string;
3956
- frame: HTMLIFrameElement;
3957
- }) => Observable<void>;
3958
- } | {
3959
- name: "item.onAfterLayout";
3960
- runFn: (params: {
3961
- blankPagePosition: "before" | "after" | "none";
3962
- item: Manifest["spineItems"][number];
3963
- minimumWidth: number;
3964
- }) => void;
3965
- } | {
3966
- name: "item.onBeforeContainerCreated";
3967
- runFn: (params: {
3968
- element: HTMLElement;
3969
- }) => void;
3970
- } | {
3971
- name: "item.onLayoutBeforeMeasurement";
3972
- runFn: (params: {
3973
- frame: {
3974
- getManipulableFrame: () => undefined | {
3975
- removeStyle: (id: string) => void;
3976
- addStyle: (id: string, style: CSSStyleDeclaration[`cssText`]) => void;
3977
- };
3978
- getViewportDimensions: () => {
3979
- width: number;
3980
- height: number;
3981
- } | undefined;
3982
- isUsingVerticalWriting: () => boolean;
3983
- getIsReady: () => boolean;
3984
- };
3985
- container: HTMLElement;
3986
- item: Manifest[`spineItems`][number];
3987
- minimumWidth: number;
3988
- isImageType: () => boolean | undefined;
3989
- }) => void;
3990
- } | {
3991
- name: "onViewportOffsetAdjust";
3992
- runFn: (params: void) => void;
3993
- } | {
3994
- name: `viewportNavigator.onBeforeContainerCreated`;
3995
- runFn: (params: {
3996
- element: HTMLElement;
3997
- }) => void;
3998
- };
3999
-
4000
- declare type HookExecution = {
4001
- name: string;
4002
- id: string | undefined;
4003
- destroyFn: () => Observable<unknown>;
4004
- ref: Hook;
4005
- };
4006
-
4007
- declare type HookFrom<Name extends Hook["name"]> = Hook extends infer HK ? HK extends Hook ? HK["name"] extends Name ? HK : never : never : never;
4008
-
4009
- declare class HookManager {
4010
- _hooks: Array<Hook>;
4011
- _hookExecutions: Array<HookExecution>;
4012
- _deregister(hookToDeregister: Hook): Observable<unknown[]>;
4013
- register<Name extends Hook["name"]>(name: Name, fn: (params: HookParamsFrom<Name>) => void | Observable<void>): () => void;
4014
- execute<Name extends Hook["name"]>(name: Name, id: string | undefined, params: Omit<HookParamsFrom<Name>, "destroy$" | "destroy">): Observable<[void | Observable<void>]>;
4015
- destroy<Name extends Hook["name"]>(name: Name, id?: string, ref?: Hook): Observable<unknown[]>;
4016
- }
4017
-
4018
- declare type HookParamsFrom<Name extends Hook["name"]> = Parameters<HookFrom<Name>["runFn"]>[0];
4019
-
4020
- export declare const isShallowEqual: <T = any, R = any>(objectA: T, objectB: R, options?: {
4021
- customEqual?: (<T_1>(a: T_1, b: T_1) => boolean) | undefined;
4022
- } | undefined) => boolean;
4023
-
4024
- declare type LastUserExpectedNavigation = undefined | {
4025
- type: `navigate-from-previous-item`;
4026
- } | {
4027
- type: `navigate-from-next-item`;
4028
- } | {
4029
- type: `navigate-from-cfi`;
4030
- data: string;
4031
- } | {
4032
- type: `navigate-from-anchor`;
4033
- data: string;
4034
- };
4035
-
4036
- declare type LoadOptions = {
4037
- cfi?: string | null;
4038
- containerElement: HTMLElement;
4039
- };
4040
-
4041
- declare type Locator = ReturnType<typeof createLocationResolver>;
4042
-
4043
- export { Manifest }
4044
-
4045
- declare type ManipulableSpineItemCallback = Parameters<SpineItem[`manipulateSpineItem`]>[0];
4046
-
4047
- declare type ManipulableSpineItemCallbackPayload = Parameters<ManipulableSpineItemCallback>[0];
4048
-
4049
- declare type Navigation = {
4050
- position: {
4051
- x: number;
4052
- y: number;
4053
- spineItem?: SpineItem | undefined;
4054
- };
4055
- triggeredBy: `scroll` | `manual` | `adjust`;
4056
- animation: false | `turn` | `snap`;
4057
- lastUserExpectedNavigation: LastUserExpectedNavigation;
4058
- };
4059
-
4060
- declare type Pagination = ReturnType<typeof createPagination>;
4061
-
4062
- declare type PaginationInfo = {
4063
- beginPageIndexInSpineItem: number | undefined;
4064
- beginNumberOfPagesInSpineItem: number;
4065
- beginCfi: string | undefined;
4066
- beginSpineItemIndex: number | undefined;
4067
- endPageIndexInSpineItem: number | undefined;
4068
- endNumberOfPagesInSpineItem: number;
4069
- endCfi: string | undefined;
4070
- endSpineItemIndex: number | undefined;
4071
- };
4072
-
4073
- export declare type Reader = ReturnType<typeof createReader>;
4074
-
4075
- declare type ReaderInternal = {
4076
- context: Context;
4077
- spine: Spine;
4078
- spineItemManager: SpineItemManager;
4079
- viewportNavigator: ViewportNavigator;
4080
- settings: SettingsManager;
4081
- hookManager: HookManager;
4082
- layout: () => void;
4083
- load: (manifest: Manifest, loadOptions: LoadOptions) => void;
4084
- destroy: () => void;
4085
- pagination: Pagination;
4086
- element$: Observable<HTMLElement>;
4087
- $: {
4088
- state$: Observable<{
4089
- supportedPageTurnAnimation: NonNullable<ContextSettings[`pageTurnAnimation`]>[];
4090
- supportedPageTurnMode: NonNullable<ContextSettings[`pageTurnMode`]>[];
4091
- supportedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
4092
- supportedComputedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
4093
- }>;
4094
- loadStatus$: Observable<"idle" | "loading" | "ready">;
4095
- selection$: Observable<{
4096
- toString: () => string;
4097
- getAnchorCfi: () => string | undefined;
4098
- getFocusCfi: () => string | undefined;
4099
- } | null>;
4100
- destroy$: Observable<void>;
4101
- };
4102
- };
4103
-
4104
- export declare type ReaderSelection = ReturnType<typeof createSelection>;
4105
-
4106
- declare const Report_2: {
4107
- namespace: (namespace: string) => {
4108
- log: (...data: any[]) => void;
4109
- warn: (...data: any[]) => void;
4110
- error: (...data: any[]) => void;
4111
- time: (name: string, targetDuration?: number) => () => void;
4112
- logMetric: (performanceEntry: PerformanceEntry | {
4113
- name: string;
4114
- duration: number;
4115
- }, targetDuration?: number) => void;
4116
- measurePerformance: <F extends (...args: any[]) => any>(name: string, targetDuration: number | undefined, functionToMeasure: F, { disable }?: {
4117
- disable?: boolean;
4118
- }) => F | ((...args: Parameters<F>) => ReturnType<F>);
4119
- };
4120
- log: (...data: any[]) => void;
4121
- warn: (...data: any[]) => void;
4122
- error: (...data: any[]) => void;
4123
- time: (name: string, targetDuration?: number) => () => void;
4124
- logMetric: (performanceEntry: PerformanceEntry | {
4125
- name: string;
4126
- duration: number;
4127
- }, targetDuration?: number) => void;
4128
- measurePerformance: <F extends (...args: any[]) => any>(name: string, targetDuration: number | undefined, functionToMeasure: F, { disable }?: {
4129
- disable?: boolean;
4130
- }) => F | ((...args: Parameters<F>) => ReturnType<F>);
4131
- };
4132
- export { Report_2 as Report }
4133
-
4134
- declare type RequireLayout = boolean;
4135
-
4136
- declare type Settings = {
4137
- forceSinglePageMode: boolean;
4138
- pageTurnAnimation: `none` | `fade` | `slide`;
4139
- pageTurnAnimationDuration: undefined | number;
4140
- pageTurnDirection: `vertical` | `horizontal`;
4141
- pageTurnMode: `controlled` | `scrollable`;
4142
- navigationSnapThreshold: number;
4143
- numberOfAdjacentSpineItemToPreLoad: number;
4144
- fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>;
4145
- };
4146
-
4147
- declare type SettingsInput = {
4148
- pageHorizontalMargin?: number;
4149
- pageVerticalMargin?: number;
4150
- };
4151
-
4152
- declare class SettingsManager {
4153
- _settingsSubject$: BehaviorSubject<ComputedSettings>;
4154
- _context: Context;
4155
- settings$: Observable<ComputedSettings>;
4156
- constructor(initialSettings: Partial<Settings>, context: Context);
4157
- _updateSettings(settings: Settings): void;
4158
- setSettings(settings: Partial<Settings>): void;
4159
- get settings(): ComputedSettings;
4160
- destroy(): void;
4161
- }
4162
-
4163
- declare type Spine = {
4164
- element$: Observable<HTMLElement>;
4165
- getElement: () => HTMLElement | undefined;
4166
- locator: Locator;
4167
- spineItemLocator: SpineItemLocator;
4168
- cfiLocator: CfiLocator;
4169
- manipulateSpineItems: (cb: (payload: ManipulableSpineItemCallbackPayload & {
4170
- index: number;
4171
- }) => RequireLayout) => void;
4172
- manipulateSpineItem: (id: string, cb: Parameters<SpineItem[`manipulateSpineItem`]>[0]) => void;
4173
- destroy: () => void;
4174
- isSelecting: () => boolean | undefined;
4175
- getSelection: () => Selection | undefined;
4176
- adjustPagination: (position: ViewportNavigationEntry) => Observable<`free` | `busy`>;
4177
- $: {
4178
- $: Observable<Event_2>;
4179
- layout$: Observable<boolean>;
4180
- spineItems$: Observable<SpineItem[]>;
4181
- itemsBeforeDestroy$: Observable<void>;
4182
- };
4183
- };
4184
-
4185
- declare type SpineItem = ReturnType<typeof createSpineItem>;
4186
-
4187
- declare type SpineItemLocator = ReturnType<typeof createLocationResolver_2>;
4188
-
4189
- declare type SpineItemManager = ReturnType<typeof createSpineItemManager>;
4190
-
4191
- declare class SpineItemNavigationPosition {
4192
- __symbol: string;
4193
- x: number;
4194
- y: number;
4195
- constructor(position: {
4196
- x: number;
4197
- y: number;
4198
- });
4199
- }
4200
-
4201
- declare type SpineItemPosition = {
4202
- x: number;
4203
- y: number;
4204
- __symbol?: `SpineItemPosition`;
4205
- };
4206
-
4207
- declare type SpinePosition = {
4208
- x: number;
4209
- y: number;
4210
- __symbol?: `SpinePosition`;
4211
- };
4212
-
4213
- declare type State = Partial<Pick<LoadOptions, "containerElement">> & {
4214
- manifest?: Manifest;
4215
- hasVerticalWriting?: boolean;
4216
- isUsingSpreadMode?: boolean;
4217
- isFullyPrePaginated?: boolean;
4218
- forceSinglePageMode?: boolean;
4219
- areAllItemsPrePaginated?: boolean;
4220
- calculatedInnerMargin: number;
4221
- marginTop: number;
4222
- marginBottom: number;
4223
- visibleAreaRect: {
4224
- width: number;
4225
- height: number;
4226
- x: number;
4227
- y: number;
4228
- };
4229
- };
4230
-
4231
- declare type Theme = (typeof defaultThemes)[number][`name`] | `publisher`;
4232
-
4233
- declare type UnsafeSpineItemPosition = {
4234
- x: number;
4235
- y: number;
4236
- __symbol?: `UnsafeSpineItemPosition` | `SpineItemPosition`;
4237
- };
4238
-
4239
- declare type UnsafeSpinePosition = {
4240
- x: number;
4241
- y: number;
4242
- __symbol?: `UnsafeSpinePosition` | `SpinePosition`;
4243
- };
4244
-
4245
- declare type UserDestroyFn = () => void | Observable<unknown>;
4246
-
4247
- declare type ViewportNavigationEntry = {
4248
- x: number;
4249
- y: number;
4250
- spineItem?: SpineItem;
4251
- };
4252
-
4253
- declare type ViewportNavigator = ReturnType<typeof createViewportNavigator>;
4254
-
4255
- export { }
4256
-
4257
-
4258
- declare global {
4259
- interface Window {
4260
- __PROSE_READER_DEBUG?: boolean;
4261
- }
4262
- }
1
+ import { createSelection } from './selection';
2
+ import { createReaderWithEnhancers as createReader } from './createReaderWithEnhancer';
4263
3
 
4
+ export type { Manifest } from './types';
5
+ export { HookManager } from './hooks/HookManager';
6
+ export type Reader = ReturnType<typeof createReader>;
7
+ export { createReader };
8
+ export type ReaderSelection = ReturnType<typeof createSelection>;
9
+ export { Report } from './report';
10
+ export { groupBy, isShallowEqual } from './utils/objects';