@prose-reader/core 1.67.0 → 1.68.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/{cfi.d.ts → cfi/CfiHandler.d.ts} +1 -7
  2. package/dist/cfi/generate/generateCfiFromRange.d.ts +11 -0
  3. package/dist/cfi/generate/getCfiForSpineItemPage.d.ts +12 -0
  4. package/dist/cfi/generate/getItemAnchor.d.ts +3 -0
  5. package/dist/cfi/generate/getRootCfi.d.ts +3 -0
  6. package/dist/cfi/lookup/extractProseMetadataFromCfi.d.ts +5 -0
  7. package/dist/cfi/lookup/isRootCfi.d.ts +1 -0
  8. package/dist/cfi/lookup/resolveCfi.d.ts +14 -0
  9. package/dist/context/BridgeEvent.d.ts +16 -0
  10. package/dist/context/Context.d.ts +3 -1
  11. package/dist/createReaderWithEnhancer.d.ts +103 -167
  12. package/dist/enhancers/events/normalizeEventForViewport.d.ts +2 -2
  13. package/dist/enhancers/hotkeys.d.ts +2 -1
  14. package/dist/enhancers/links.d.ts +2 -1
  15. package/dist/enhancers/loadingEnhancer.d.ts +1 -1
  16. package/dist/enhancers/navigation/{navigation.d.ts → index.d.ts} +2 -7
  17. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +27 -0
  18. package/dist/enhancers/navigation/navigators/panNavigator.d.ts +21 -0
  19. package/dist/enhancers/navigation/resolvers/getNavigationForLeftPage.d.ts +16 -0
  20. package/dist/enhancers/navigation/resolvers/getNavigationForLeftSinglePage.d.ts +14 -0
  21. package/dist/enhancers/navigation/resolvers/getNavigationForRightPage.d.ts +16 -0
  22. package/dist/enhancers/navigation/resolvers/getNavigationForRightSinglePage.d.ts +14 -0
  23. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +11 -0
  24. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForRightPage.d.ts +11 -0
  25. package/dist/enhancers/navigation/state.d.ts +2 -5
  26. package/dist/enhancers/navigation/types.d.ts +20 -0
  27. package/dist/enhancers/pagination/enhancer.d.ts +4 -4
  28. package/dist/enhancers/pagination/pagination.d.ts +1 -1
  29. package/dist/enhancers/pagination/spine.d.ts +0 -5
  30. package/dist/enhancers/pagination/types.d.ts +1 -1
  31. package/dist/enhancers/resources/resourcesManager.d.ts +1 -1
  32. package/dist/enhancers/types/enhancer.d.ts +1 -2
  33. package/dist/hooks/types.d.ts +2 -15
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +4933 -4293
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.umd.cjs +5019 -4379
  38. package/dist/index.umd.cjs.map +1 -1
  39. package/dist/navigation/InternalNavigator.d.ts +67 -0
  40. package/dist/navigation/InternalNavigator.test.d.ts +1 -0
  41. package/dist/navigation/Locker.d.ts +7 -0
  42. package/dist/navigation/Navigator.d.ts +70 -0
  43. package/dist/navigation/UserNavigator.d.ts +27 -0
  44. package/dist/navigation/consolidation/mapUserNavigationToInternal.d.ts +8 -0
  45. package/dist/navigation/consolidation/withCfiPosition.d.ts +11 -0
  46. package/dist/navigation/consolidation/withDirection.d.ts +22 -0
  47. package/dist/navigation/consolidation/withFallbackPosition.d.ts +13 -0
  48. package/dist/navigation/consolidation/withPaginationInfo.d.ts +10 -0
  49. package/dist/navigation/consolidation/withSpineItem.d.ts +19 -0
  50. package/dist/navigation/consolidation/withSpineItemLayoutInfo.d.ts +11 -0
  51. package/dist/navigation/consolidation/withSpineItemPosition.d.ts +19 -0
  52. package/dist/navigation/consolidation/withUrlInfo.d.ts +11 -0
  53. package/dist/navigation/resolvers/NavigationResolver.d.ts +51 -0
  54. package/dist/navigation/resolvers/getAdjustedPositionForSpread.d.ts +7 -0
  55. package/dist/navigation/resolvers/getNavigationForPosition.d.ts +11 -0
  56. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +15 -0
  57. package/dist/navigation/resolvers/getNavigationForUrl.d.ts +16 -0
  58. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +13 -0
  59. package/dist/navigation/resolvers/wrapPositionWithSafeEdge.d.ts +14 -0
  60. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +11 -0
  61. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.test.d.ts +1 -0
  62. package/dist/navigation/restoration/restorePosition.d.ts +18 -0
  63. package/dist/navigation/restoration/withRestoredPosition.d.ts +21 -0
  64. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +27 -0
  65. package/dist/navigation/tests/utils.d.ts +12 -0
  66. package/dist/navigation/viewport/ViewportNavigator.d.ts +36 -0
  67. package/dist/navigation/viewport/getScaledDownPosition.d.ts +11 -0
  68. package/dist/pagination/Pagination.d.ts +26 -0
  69. package/dist/pagination/PaginationController.d.ts +15 -0
  70. package/dist/reader.d.ts +108 -2
  71. package/dist/report.d.ts +2 -0
  72. package/dist/selection.d.ts +1 -1
  73. package/dist/settings/ReaderSettingsManager.d.ts +2 -1
  74. package/dist/spine/Spine.d.ts +32 -0
  75. package/dist/spine/{locationResolver.d.ts → SpineItemsManager.d.ts} +216 -226
  76. package/dist/spine/SpineItemsObserver.d.ts +17 -0
  77. package/dist/spine/loader/SpineItemsLoader.d.ts +13 -0
  78. package/dist/spine/loader/loadItems.d.ts +8 -0
  79. package/dist/spine/loader/mapToItemsToLoad.d.ts +7 -0
  80. package/dist/{spineItemManager.d.ts → spine/locator/SpineLocator.d.ts} +109 -198
  81. package/dist/spine/locator/getItemVisibilityForPosition.d.ts +19 -0
  82. package/dist/spine/locator/getItemVisibilityForPosition.test.d.ts +1 -0
  83. package/dist/spine/locator/getSpineItemFromPosition.d.ts +126 -0
  84. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +16 -0
  85. package/dist/spine/locator/getVisibleSpineItemsFromPosition.test.d.ts +1 -0
  86. package/dist/spineItem/commonSpineItem.d.ts +25 -61
  87. package/dist/spineItem/createSpineItem.d.ts +24 -60
  88. package/dist/spineItem/frame/FrameItem.d.ts +44 -0
  89. package/dist/spineItem/{frameItem → frame}/createHtmlPageFromResource.d.ts +1 -1
  90. package/dist/spineItem/frame/loader/attachFrameSrc.d.ts +8 -0
  91. package/dist/spineItem/frame/loader/configureFrame.d.ts +10 -0
  92. package/dist/spineItem/frame/loader/createFrameElement.d.ts +1 -0
  93. package/dist/spineItem/frame/loader/loadFrame.d.ts +12 -0
  94. package/dist/spineItem/frame/loader/loader.d.ts +23 -0
  95. package/dist/spineItem/frame/loader/unloadFrame.d.ts +9 -0
  96. package/dist/spineItem/frame/loader/waitForFrameLoad.d.ts +3 -0
  97. package/dist/spineItem/frame/loader/waitForFrameReady.d.ts +3 -0
  98. package/dist/spineItem/helpers.d.ts +3 -0
  99. package/dist/spineItem/locationResolver.d.ts +17 -5
  100. package/dist/spineItem/navigationResolver.d.ts +6 -8
  101. package/dist/spineItem/prePaginatedSpineItem.d.ts +24 -60
  102. package/dist/spineItem/reflowable/ReflowableSpineItems.d.ts +24 -60
  103. package/dist/spineItem/types.d.ts +1 -10
  104. package/dist/tests/utils.d.ts +1 -0
  105. package/dist/utils/DestroyableClass.d.ts +5 -0
  106. package/dist/utils/dom.d.ts +3 -2
  107. package/dist/utils/rxjs.d.ts +3 -1
  108. package/package.json +3 -3
  109. package/dist/enhancers/navigation/navigator.d.ts +0 -8
  110. package/dist/enhancers/publicApi.d.ts +0 -5
  111. package/dist/pagination/pagination.d.ts +0 -88
  112. package/dist/pagination/types.d.ts +0 -10
  113. package/dist/spine/cfiLocator.d.ts +0 -340
  114. package/dist/spine/createSpine.d.ts +0 -31
  115. package/dist/spine/navigationResolver.d.ts +0 -48
  116. package/dist/spine/types.d.ts +0 -10
  117. package/dist/spineItem/frameItem/createFrame$.d.ts +0 -1
  118. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +0 -5
  119. package/dist/spineItem/frameItem/frameItem.d.ts +0 -48
  120. package/dist/spineItem/frameItem/loader.d.ts +0 -29
  121. package/dist/types/Spine.d.ts +0 -40
  122. package/dist/types/index.d.ts +0 -12
  123. package/dist/types/reader.d.ts +0 -44
  124. package/dist/viewportNavigator/manualViewportNavigator.d.ts +0 -96
  125. package/dist/viewportNavigator/panViewportNavigator.d.ts +0 -55
  126. package/dist/viewportNavigator/scrollViewportNavigator.d.ts +0 -38
  127. package/dist/viewportNavigator/types.d.ts +0 -34
  128. package/dist/viewportNavigator/viewportNavigator.d.ts +0 -82
  129. /package/dist/enhancers/{pagination.test.d.ts → pagination/pagination.test.d.ts} +0 -0
@@ -1,21 +1,23 @@
1
+ import { BehaviorSubject, Subject } from 'rxjs';
1
2
  import { Context } from '../context/Context';
2
3
  import { SpineItem } from '../spineItem/createSpineItem';
3
- import { createLocationResolver as createSpineItemLocator } from '../spineItem/locationResolver';
4
- import { SpineItemManager } from '../spineItemManager';
5
- import { SpineItemNavigationPosition, SpineItemPosition, UnsafeSpineItemPosition } from '../spineItem/types';
6
- import { SpinePosition, UnsafeSpinePosition } from './types';
7
4
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
+ import { DestroyableClass } from '../utils/DestroyableClass';
8
6
 
9
- export declare const createLocationResolver: ({ spineItemManager, context, spineItemLocator, settings, }: {
10
- spineItemManager: SpineItemManager;
11
- context: Context;
12
- spineItemLocator: ReturnType<typeof createSpineItemLocator>;
13
- settings: ReaderSettingsManager;
14
- }) => {
15
- getSpinePositionFromSpineItemPosition: (spineItemPosition: SpineItemNavigationPosition | SpineItemPosition, spineItem: SpineItem) => SpinePosition;
16
- getSpinePositionFromSpineItem: (spineItem: SpineItem) => SpinePosition;
17
- getSpinePositionFromSpineItemAnchor: (anchor: string, spineItem: SpineItem) => SpinePosition;
18
- getSpineItemPositionFromSpinePosition: ((position: UnsafeSpinePosition, spineItem: SpineItem) => UnsafeSpineItemPosition) | ((position: UnsafeSpinePosition, spineItem: {
7
+ export declare class SpineItemsManager extends DestroyableClass {
8
+ protected context: Context;
9
+ protected settings: ReaderSettingsManager;
10
+ constructor(context: Context, settings: ReaderSettingsManager);
11
+ protected layoutSubject: Subject<boolean>;
12
+ protected itemLayoutInformation: {
13
+ left: number;
14
+ right: number;
15
+ top: number;
16
+ bottom: number;
17
+ width: number;
18
+ height: number;
19
+ }[];
20
+ protected orderedSpineItemsSubject: BehaviorSubject<{
19
21
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
20
22
  blankPagePosition: `before` | `after` | `none`;
21
23
  minimumWidth: number;
@@ -27,13 +29,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
27
29
  item: {
28
30
  id: string;
29
31
  href: string;
30
- renditionLayout: `reflowable` | `pre-paginated`;
31
- progressionWeight: number;
32
- pageSpreadLeft: true | undefined;
33
- pageSpreadRight: true | undefined;
32
+ renditionLayout?: `reflowable` | `pre-paginated`;
33
+ progressionWeight?: number;
34
+ pageSpreadLeft?: true | undefined;
35
+ pageSpreadRight?: true | undefined;
34
36
  mediaType?: string;
35
37
  };
36
- load: () => void;
38
+ overlayElement: HTMLDivElement;
37
39
  adjustPositionOfElement: ({ right, left, top, }: {
38
40
  right?: number;
39
41
  left?: number;
@@ -42,6 +44,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
42
44
  getElementDimensions: () => {
43
45
  width: number;
44
46
  height: number;
47
+ x: number;
48
+ y: number;
49
+ bottom: number;
50
+ left: number;
51
+ right: number;
52
+ top: number;
53
+ toJSON(): any;
45
54
  };
46
55
  getHtmlFromResource: (response: Response) => Promise<string>;
47
56
  getResource: () => Promise<Response>;
@@ -52,43 +61,10 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
52
61
  clientX: number;
53
62
  clientY: number;
54
63
  };
55
- setLayoutDirty: () => void;
56
64
  injectStyle: (cssText: string) => void;
57
- loadContent: () => void;
58
- unloadContent: () => void;
59
- spineItemFrame: {
60
- getIsLoaded: () => boolean;
61
- getIsReady: () => boolean;
62
- getViewportDimensions: () => {
63
- width: number;
64
- height: number;
65
- } | undefined;
66
- getFrameElement: () => HTMLIFrameElement | undefined;
67
- getHtmlFromResource: (response: Response) => Promise<string>;
68
- load: () => void;
69
- unload: () => void;
70
- staticLayout: (size: {
71
- width: number;
72
- height: number;
73
- }) => void;
74
- getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
75
- getReadingDirection: () => `ltr` | `rtl` | undefined;
76
- isUsingVerticalWriting: () => boolean;
77
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
78
- destroy: () => void;
79
- $: {
80
- unload$: import('rxjs').Observable<void>;
81
- unloaded$: import('rxjs').Observable<void>;
82
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
83
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
84
- isReady$: import('rxjs').Observable<boolean>;
85
- contentLayoutChange$: import('rxjs').Observable<{
86
- isFirstLayout: boolean;
87
- } | {
88
- isFirstLayout: boolean;
89
- }>;
90
- };
91
- };
65
+ load: () => void;
66
+ unload: () => void;
67
+ frame: import('../spineItem/frame/FrameItem').FrameItem;
92
68
  element: HTMLElement;
93
69
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
94
70
  getViewPortInformation: () => {
@@ -102,17 +78,8 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
102
78
  isImageType: () => boolean;
103
79
  isReady: () => boolean;
104
80
  destroy: () => void;
81
+ readingDirection: "ltr" | "rtl" | undefined;
105
82
  isUsingVerticalWriting: () => boolean | undefined;
106
- getReadingDirection: () => "ltr" | "rtl" | undefined;
107
- manipulateSpineItem: (cb: (options: {
108
- container: HTMLElement;
109
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
110
- overlayElement: HTMLDivElement;
111
- } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
112
- frame: undefined;
113
- removeStyle: (id: string) => void;
114
- addStyle: (id: string, style: string) => void;
115
- })) => boolean) => boolean;
116
83
  executeOnLayoutBeforeMeasurementHook: (options: {
117
84
  minimumWidth: number;
118
85
  }) => void[];
@@ -167,8 +134,8 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
167
134
  loaded$: import('rxjs').Observable<HTMLIFrameElement>;
168
135
  isReady$: import('rxjs').Observable<boolean>;
169
136
  };
170
- }) => ReturnType<(position: UnsafeSpinePosition, spineItem: SpineItem) => UnsafeSpineItemPosition>);
171
- getSpineItemFromPosition: ((position: UnsafeSpinePosition) => {
137
+ }[]>;
138
+ items$: import('rxjs').Observable<{
172
139
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
173
140
  blankPagePosition: `before` | `after` | `none`;
174
141
  minimumWidth: number;
@@ -180,13 +147,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
180
147
  item: {
181
148
  id: string;
182
149
  href: string;
183
- renditionLayout: `reflowable` | `pre-paginated`;
184
- progressionWeight: number;
185
- pageSpreadLeft: true | undefined;
186
- pageSpreadRight: true | undefined;
150
+ renditionLayout?: `reflowable` | `pre-paginated`;
151
+ progressionWeight?: number;
152
+ pageSpreadLeft?: true | undefined;
153
+ pageSpreadRight?: true | undefined;
187
154
  mediaType?: string;
188
155
  };
189
- load: () => void;
156
+ overlayElement: HTMLDivElement;
190
157
  adjustPositionOfElement: ({ right, left, top, }: {
191
158
  right?: number;
192
159
  left?: number;
@@ -195,6 +162,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
195
162
  getElementDimensions: () => {
196
163
  width: number;
197
164
  height: number;
165
+ x: number;
166
+ y: number;
167
+ bottom: number;
168
+ left: number;
169
+ right: number;
170
+ top: number;
171
+ toJSON(): any;
198
172
  };
199
173
  getHtmlFromResource: (response: Response) => Promise<string>;
200
174
  getResource: () => Promise<Response>;
@@ -205,43 +179,10 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
205
179
  clientX: number;
206
180
  clientY: number;
207
181
  };
208
- setLayoutDirty: () => void;
209
182
  injectStyle: (cssText: string) => void;
210
- loadContent: () => void;
211
- unloadContent: () => void;
212
- spineItemFrame: {
213
- getIsLoaded: () => boolean;
214
- getIsReady: () => boolean;
215
- getViewportDimensions: () => {
216
- width: number;
217
- height: number;
218
- } | undefined;
219
- getFrameElement: () => HTMLIFrameElement | undefined;
220
- getHtmlFromResource: (response: Response) => Promise<string>;
221
- load: () => void;
222
- unload: () => void;
223
- staticLayout: (size: {
224
- width: number;
225
- height: number;
226
- }) => void;
227
- getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
228
- getReadingDirection: () => `ltr` | `rtl` | undefined;
229
- isUsingVerticalWriting: () => boolean;
230
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
231
- destroy: () => void;
232
- $: {
233
- unload$: import('rxjs').Observable<void>;
234
- unloaded$: import('rxjs').Observable<void>;
235
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
236
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
237
- isReady$: import('rxjs').Observable<boolean>;
238
- contentLayoutChange$: import('rxjs').Observable<{
239
- isFirstLayout: boolean;
240
- } | {
241
- isFirstLayout: boolean;
242
- }>;
243
- };
244
- };
183
+ load: () => void;
184
+ unload: () => void;
185
+ frame: import('../spineItem/frame/FrameItem').FrameItem;
245
186
  element: HTMLElement;
246
187
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
247
188
  getViewPortInformation: () => {
@@ -255,17 +196,8 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
255
196
  isImageType: () => boolean;
256
197
  isReady: () => boolean;
257
198
  destroy: () => void;
199
+ readingDirection: "ltr" | "rtl" | undefined;
258
200
  isUsingVerticalWriting: () => boolean | undefined;
259
- getReadingDirection: () => "ltr" | "rtl" | undefined;
260
- manipulateSpineItem: (cb: (options: {
261
- container: HTMLElement;
262
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
263
- overlayElement: HTMLDivElement;
264
- } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
265
- frame: undefined;
266
- removeStyle: (id: string) => void;
267
- addStyle: (id: string, style: string) => void;
268
- })) => boolean) => boolean;
269
201
  executeOnLayoutBeforeMeasurementHook: (options: {
270
202
  minimumWidth: number;
271
203
  }) => void[];
@@ -320,7 +252,10 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
320
252
  loaded$: import('rxjs').Observable<HTMLIFrameElement>;
321
253
  isReady$: import('rxjs').Observable<boolean>;
322
254
  };
323
- } | undefined) | ((position: UnsafeSpinePosition) => ReturnType<(position: UnsafeSpinePosition) => {
255
+ }[]>;
256
+ layout$: import('rxjs').Observable<boolean>;
257
+ layout(): void;
258
+ get(indexOrId: number | string | SpineItem | undefined): {
324
259
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
325
260
  blankPagePosition: `before` | `after` | `none`;
326
261
  minimumWidth: number;
@@ -332,13 +267,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
332
267
  item: {
333
268
  id: string;
334
269
  href: string;
335
- renditionLayout: `reflowable` | `pre-paginated`;
336
- progressionWeight: number;
337
- pageSpreadLeft: true | undefined;
338
- pageSpreadRight: true | undefined;
270
+ renditionLayout?: `reflowable` | `pre-paginated`;
271
+ progressionWeight?: number;
272
+ pageSpreadLeft?: true | undefined;
273
+ pageSpreadRight?: true | undefined;
339
274
  mediaType?: string;
340
275
  };
341
- load: () => void;
276
+ overlayElement: HTMLDivElement;
342
277
  adjustPositionOfElement: ({ right, left, top, }: {
343
278
  right?: number;
344
279
  left?: number;
@@ -347,6 +282,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
347
282
  getElementDimensions: () => {
348
283
  width: number;
349
284
  height: number;
285
+ x: number;
286
+ y: number;
287
+ bottom: number;
288
+ left: number;
289
+ right: number;
290
+ top: number;
291
+ toJSON(): any;
350
292
  };
351
293
  getHtmlFromResource: (response: Response) => Promise<string>;
352
294
  getResource: () => Promise<Response>;
@@ -357,43 +299,10 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
357
299
  clientX: number;
358
300
  clientY: number;
359
301
  };
360
- setLayoutDirty: () => void;
361
302
  injectStyle: (cssText: string) => void;
362
- loadContent: () => void;
363
- unloadContent: () => void;
364
- spineItemFrame: {
365
- getIsLoaded: () => boolean;
366
- getIsReady: () => boolean;
367
- getViewportDimensions: () => {
368
- width: number;
369
- height: number;
370
- } | undefined;
371
- getFrameElement: () => HTMLIFrameElement | undefined;
372
- getHtmlFromResource: (response: Response) => Promise<string>;
373
- load: () => void;
374
- unload: () => void;
375
- staticLayout: (size: {
376
- width: number;
377
- height: number;
378
- }) => void;
379
- getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
380
- getReadingDirection: () => `ltr` | `rtl` | undefined;
381
- isUsingVerticalWriting: () => boolean;
382
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
383
- destroy: () => void;
384
- $: {
385
- unload$: import('rxjs').Observable<void>;
386
- unloaded$: import('rxjs').Observable<void>;
387
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
388
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
389
- isReady$: import('rxjs').Observable<boolean>;
390
- contentLayoutChange$: import('rxjs').Observable<{
391
- isFirstLayout: boolean;
392
- } | {
393
- isFirstLayout: boolean;
394
- }>;
395
- };
396
- };
303
+ load: () => void;
304
+ unload: () => void;
305
+ frame: import('../spineItem/frame/FrameItem').FrameItem;
397
306
  element: HTMLElement;
398
307
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
399
308
  getViewPortInformation: () => {
@@ -407,17 +316,8 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
407
316
  isImageType: () => boolean;
408
317
  isReady: () => boolean;
409
318
  destroy: () => void;
319
+ readingDirection: "ltr" | "rtl" | undefined;
410
320
  isUsingVerticalWriting: () => boolean | undefined;
411
- getReadingDirection: () => "ltr" | "rtl" | undefined;
412
- manipulateSpineItem: (cb: (options: {
413
- container: HTMLElement;
414
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
415
- overlayElement: HTMLDivElement;
416
- } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
417
- frame: undefined;
418
- removeStyle: (id: string) => void;
419
- addStyle: (id: string, style: string) => void;
420
- })) => boolean) => boolean;
421
321
  executeOnLayoutBeforeMeasurementHook: (options: {
422
322
  minimumWidth: number;
423
323
  }) => void[];
@@ -472,8 +372,19 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
472
372
  loaded$: import('rxjs').Observable<HTMLIFrameElement>;
473
373
  isReady$: import('rxjs').Observable<boolean>;
474
374
  };
475
- } | undefined>);
476
- getSpineItemFromIframe: (iframe: Element) => {
375
+ } | undefined;
376
+ getAbsolutePositionOf(spineItemOrIndex: SpineItem | number | string | undefined): {
377
+ left: number;
378
+ right: number;
379
+ top: number;
380
+ bottom: number;
381
+ width: number;
382
+ height: number;
383
+ };
384
+ comparePositionOf(toCompare: SpineItem, withItem: SpineItem): "after" | "before" | "same";
385
+ getSpineItemIndex(spineItem: SpineItem | undefined): number | undefined;
386
+ addMany(spineItems: SpineItem[]): void;
387
+ get items(): {
477
388
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
478
389
  blankPagePosition: `before` | `after` | `none`;
479
390
  minimumWidth: number;
@@ -485,13 +396,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
485
396
  item: {
486
397
  id: string;
487
398
  href: string;
488
- renditionLayout: `reflowable` | `pre-paginated`;
489
- progressionWeight: number;
490
- pageSpreadLeft: true | undefined;
491
- pageSpreadRight: true | undefined;
399
+ renditionLayout?: `reflowable` | `pre-paginated`;
400
+ progressionWeight?: number;
401
+ pageSpreadLeft?: true | undefined;
402
+ pageSpreadRight?: true | undefined;
492
403
  mediaType?: string;
493
404
  };
494
- load: () => void;
405
+ overlayElement: HTMLDivElement;
495
406
  adjustPositionOfElement: ({ right, left, top, }: {
496
407
  right?: number;
497
408
  left?: number;
@@ -500,6 +411,13 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
500
411
  getElementDimensions: () => {
501
412
  width: number;
502
413
  height: number;
414
+ x: number;
415
+ y: number;
416
+ bottom: number;
417
+ left: number;
418
+ right: number;
419
+ top: number;
420
+ toJSON(): any;
503
421
  };
504
422
  getHtmlFromResource: (response: Response) => Promise<string>;
505
423
  getResource: () => Promise<Response>;
@@ -510,43 +428,129 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
510
428
  clientX: number;
511
429
  clientY: number;
512
430
  };
513
- setLayoutDirty: () => void;
514
431
  injectStyle: (cssText: string) => void;
515
- loadContent: () => void;
516
- unloadContent: () => void;
517
- spineItemFrame: {
518
- getIsLoaded: () => boolean;
519
- getIsReady: () => boolean;
520
- getViewportDimensions: () => {
432
+ load: () => void;
433
+ unload: () => void;
434
+ frame: import('../spineItem/frame/FrameItem').FrameItem;
435
+ element: HTMLElement;
436
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
437
+ getViewPortInformation: () => {
438
+ computedScale: number;
439
+ computedWidthScale: number;
440
+ viewportDimensions: {
521
441
  width: number;
522
442
  height: number;
443
+ };
444
+ } | undefined;
445
+ isImageType: () => boolean;
446
+ isReady: () => boolean;
447
+ destroy: () => void;
448
+ readingDirection: "ltr" | "rtl" | undefined;
449
+ isUsingVerticalWriting: () => boolean | undefined;
450
+ executeOnLayoutBeforeMeasurementHook: (options: {
451
+ minimumWidth: number;
452
+ }) => void[];
453
+ selectionTracker: {
454
+ track: (frameToTrack: HTMLIFrameElement) => void;
455
+ destroy: () => void;
456
+ isSelecting: () => boolean;
457
+ getSelection: () => Selection | undefined;
458
+ $: import('rxjs').Observable<{
459
+ event: `selectionchange`;
460
+ data: Selection | null;
461
+ } | {
462
+ event: `selectstart`;
463
+ data: Selection | null;
464
+ } | {
465
+ event: `selectend`;
466
+ data: Selection | null;
467
+ }>;
468
+ };
469
+ fingerTracker: {
470
+ track: (frame: HTMLIFrameElement) => void;
471
+ getFingerPositionInIframe(): {
472
+ x: number | undefined;
473
+ y: number | undefined;
523
474
  } | undefined;
524
- getFrameElement: () => HTMLIFrameElement | undefined;
525
- getHtmlFromResource: (response: Response) => Promise<string>;
526
- load: () => void;
527
- unload: () => void;
528
- staticLayout: (size: {
529
- width: number;
530
- height: number;
531
- }) => void;
532
- getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
533
- getReadingDirection: () => `ltr` | `rtl` | undefined;
534
- isUsingVerticalWriting: () => boolean;
535
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
536
475
  destroy: () => void;
537
- $: {
538
- unload$: import('rxjs').Observable<void>;
539
- unloaded$: import('rxjs').Observable<void>;
540
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
541
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
542
- isReady$: import('rxjs').Observable<boolean>;
543
- contentLayoutChange$: import('rxjs').Observable<{
544
- isFirstLayout: boolean;
545
- } | {
546
- isFirstLayout: boolean;
547
- }>;
548
- };
476
+ $: import('rxjs').Observable<{
477
+ event: `fingermove`;
478
+ data: {
479
+ x: number;
480
+ y: number;
481
+ };
482
+ } | {
483
+ event: `fingerout`;
484
+ data: undefined;
485
+ }>;
486
+ };
487
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
488
+ columnHeight: number;
489
+ columnWidth: number;
490
+ width: number;
491
+ };
492
+ getDimensionsForPaginatedContent: () => {
493
+ columnHeight: number;
494
+ columnWidth: number;
495
+ };
496
+ $: {
497
+ contentLayout$: import('rxjs').Observable<{
498
+ isFirstLayout: boolean;
499
+ isReady: boolean;
500
+ }>;
501
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
502
+ isReady$: import('rxjs').Observable<boolean>;
503
+ };
504
+ }[];
505
+ getLength(): number;
506
+ getSpineItemFromCfi(cfi: string): {
507
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
508
+ blankPagePosition: `before` | `after` | `none`;
509
+ minimumWidth: number;
510
+ spreadPosition: `none` | `left` | `right`;
511
+ }) => {
512
+ width: number;
513
+ height: number;
549
514
  };
515
+ item: {
516
+ id: string;
517
+ href: string;
518
+ renditionLayout?: `reflowable` | `pre-paginated`;
519
+ progressionWeight?: number;
520
+ pageSpreadLeft?: true | undefined;
521
+ pageSpreadRight?: true | undefined;
522
+ mediaType?: string;
523
+ };
524
+ overlayElement: HTMLDivElement;
525
+ adjustPositionOfElement: ({ right, left, top, }: {
526
+ right?: number;
527
+ left?: number;
528
+ top?: number;
529
+ }) => void;
530
+ getElementDimensions: () => {
531
+ width: number;
532
+ height: number;
533
+ x: number;
534
+ y: number;
535
+ bottom: number;
536
+ left: number;
537
+ right: number;
538
+ top: number;
539
+ toJSON(): any;
540
+ };
541
+ getHtmlFromResource: (response: Response) => Promise<string>;
542
+ getResource: () => Promise<Response>;
543
+ translateFramePositionIntoPage: (position: {
544
+ clientX: number;
545
+ clientY: number;
546
+ }) => {
547
+ clientX: number;
548
+ clientY: number;
549
+ };
550
+ injectStyle: (cssText: string) => void;
551
+ load: () => void;
552
+ unload: () => void;
553
+ frame: import('../spineItem/frame/FrameItem').FrameItem;
550
554
  element: HTMLElement;
551
555
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
552
556
  getViewPortInformation: () => {
@@ -560,17 +564,8 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
560
564
  isImageType: () => boolean;
561
565
  isReady: () => boolean;
562
566
  destroy: () => void;
567
+ readingDirection: "ltr" | "rtl" | undefined;
563
568
  isUsingVerticalWriting: () => boolean | undefined;
564
- getReadingDirection: () => "ltr" | "rtl" | undefined;
565
- manipulateSpineItem: (cb: (options: {
566
- container: HTMLElement;
567
- item: import('@prose-reader/shared').Manifest[`spineItems`][number];
568
- overlayElement: HTMLDivElement;
569
- } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
570
- frame: undefined;
571
- removeStyle: (id: string) => void;
572
- addStyle: (id: string, style: string) => void;
573
- })) => boolean) => boolean;
574
569
  executeOnLayoutBeforeMeasurementHook: (options: {
575
570
  minimumWidth: number;
576
571
  }) => void[];
@@ -626,11 +621,6 @@ export declare const createLocationResolver: ({ spineItemManager, context, spine
626
621
  isReady$: import('rxjs').Observable<boolean>;
627
622
  };
628
623
  } | undefined;
629
- getSpineItemPageIndexFromNode: (node: Node, offset: number | undefined, spineItemOrIndex: SpineItem | number) => number | undefined;
630
- getSpineItemsFromReadingOrderPosition: (position: SpinePosition) => {
631
- begin: number;
632
- beginPosition: SpinePosition;
633
- end: number;
634
- endPosition: SpinePosition;
635
- } | undefined;
636
- };
624
+ destroyItems(): void;
625
+ destroy(): void;
626
+ }
@@ -0,0 +1,17 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SpineItemsManager } from './SpineItemsManager';
3
+ import { DestroyableClass } from '../utils/DestroyableClass';
4
+ import { SpineItem } from '../spineItem/createSpineItem';
5
+
6
+ export declare class SpineItemsObserver extends DestroyableClass {
7
+ protected spineItemsManager: SpineItemsManager;
8
+ itemIsReady$: Observable<{
9
+ item: SpineItem;
10
+ isReady: boolean;
11
+ }>;
12
+ itemResize$: Observable<{
13
+ item: SpineItem;
14
+ entries: ResizeObserverEntry[];
15
+ }>;
16
+ constructor(spineItemsManager: SpineItemsManager);
17
+ }
@@ -0,0 +1,13 @@
1
+ import { SpineItemsManager } from '../SpineItemsManager';
2
+ import { SpineLocator } from '../locator/SpineLocator';
3
+ import { Context } from '../../context/Context';
4
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
+ import { DestroyableClass } from '../../utils/DestroyableClass';
6
+
7
+ export declare class SpineItemsLoader extends DestroyableClass {
8
+ protected context: Context;
9
+ protected spineItemsManager: SpineItemsManager;
10
+ protected spineLocator: SpineLocator;
11
+ protected settings: ReaderSettingsManager;
12
+ constructor(context: Context, spineItemsManager: SpineItemsManager, spineLocator: SpineLocator, settings: ReaderSettingsManager);
13
+ }
@@ -0,0 +1,8 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SpineItemsManager } from '../SpineItemsManager';
3
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
+
5
+ export declare const loadItems: ({ spineItemsManager, settings, }: {
6
+ spineItemsManager: SpineItemsManager;
7
+ settings: ReaderSettingsManager;
8
+ }) => (stream: Observable<readonly [number, number]>) => Observable<readonly [number, number]>;
@@ -0,0 +1,7 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ViewportPosition } from '../../navigation/viewport/ViewportNavigator';
3
+ import { SpineLocator } from '../locator/SpineLocator';
4
+
5
+ export declare const mapToItemsToLoad: ({ spineLocator }: {
6
+ spineLocator: SpineLocator;
7
+ }) => (stream: Observable<ViewportPosition>) => Observable<readonly [number, number]>;