@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
@@ -0,0 +1,3 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+
3
+ export declare const areAllItemsPrePaginated: (manifest: Manifest | undefined) => boolean;
@@ -0,0 +1,3 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+
3
+ export declare const isFullyPrePaginated: (manifest?: Manifest) => boolean | undefined;
@@ -0,0 +1,88 @@
1
+ import { Context } from '../context/Context';
2
+ import { SpineItem } from '../spineItem/createSpineItem';
3
+ import { SpineItemManager } from '../spineItemManager';
4
+ import { PaginationInfo } from './types';
5
+
6
+ export declare const createPagination: ({ context }: {
7
+ context: Context;
8
+ spineItemManager: SpineItemManager;
9
+ }) => {
10
+ destroy: () => void;
11
+ updateBeginAndEnd: ((begin: Parameters<(info: {
12
+ spineItem: SpineItem;
13
+ pageIndex: number;
14
+ cfi: string | undefined;
15
+ options: {
16
+ isAtEndOfChapter?: boolean;
17
+ };
18
+ }) => {
19
+ numberOfPages: number;
20
+ pageIndex: number;
21
+ cfi: string | undefined;
22
+ }>[0] & {
23
+ spineItemIndex: number;
24
+ }, end: Parameters<(info: {
25
+ spineItem: SpineItem;
26
+ pageIndex: number;
27
+ cfi: string | undefined;
28
+ options: {
29
+ isAtEndOfChapter?: boolean;
30
+ };
31
+ }) => {
32
+ numberOfPages: number;
33
+ pageIndex: number;
34
+ cfi: string | undefined;
35
+ }>[0] & {
36
+ spineItemIndex: number;
37
+ }) => void) | ((begin: {
38
+ spineItem: SpineItem;
39
+ pageIndex: number;
40
+ cfi: string | undefined;
41
+ options: {
42
+ isAtEndOfChapter?: boolean;
43
+ };
44
+ } & {
45
+ spineItemIndex: number;
46
+ }, end: {
47
+ spineItem: SpineItem;
48
+ pageIndex: number;
49
+ cfi: string | undefined;
50
+ options: {
51
+ isAtEndOfChapter?: boolean;
52
+ };
53
+ } & {
54
+ spineItemIndex: number;
55
+ }) => ReturnType<(begin: Parameters<(info: {
56
+ spineItem: SpineItem;
57
+ pageIndex: number;
58
+ cfi: string | undefined;
59
+ options: {
60
+ isAtEndOfChapter?: boolean;
61
+ };
62
+ }) => {
63
+ numberOfPages: number;
64
+ pageIndex: number;
65
+ cfi: string | undefined;
66
+ }>[0] & {
67
+ spineItemIndex: number;
68
+ }, end: Parameters<(info: {
69
+ spineItem: SpineItem;
70
+ pageIndex: number;
71
+ cfi: string | undefined;
72
+ options: {
73
+ isAtEndOfChapter?: boolean;
74
+ };
75
+ }) => {
76
+ numberOfPages: number;
77
+ pageIndex: number;
78
+ cfi: string | undefined;
79
+ }>[0] & {
80
+ spineItemIndex: number;
81
+ }) => void>);
82
+ getPaginationInfo: () => PaginationInfo;
83
+ paginationInfo$: import('rxjs').Observable<PaginationInfo>;
84
+ };
85
+ export type Pagination = ReturnType<typeof createPagination>;
86
+ export declare const getItemOffsetFromPageIndex: (pageWidth: number, pageIndex: number, itemWidth: number) => number;
87
+ export declare const calculateNumberOfPagesForItem: (itemWidth: number, pageWidth: number) => number;
88
+ export declare const getClosestValidOffsetFromApproximateOffsetInPages: (offset: number, pageWidth: number, itemWidth: number) => number;
@@ -0,0 +1,10 @@
1
+ export type PaginationInfo = {
2
+ beginPageIndexInSpineItem: number | undefined;
3
+ beginNumberOfPagesInSpineItem: number;
4
+ beginCfi: string | undefined;
5
+ beginSpineItemIndex: number | undefined;
6
+ endPageIndexInSpineItem: number | undefined;
7
+ endNumberOfPagesInSpineItem: number;
8
+ endCfi: string | undefined;
9
+ endSpineItemIndex: number | undefined;
10
+ };
@@ -0,0 +1,8 @@
1
+ import { ReaderInternal } from './types/reader';
2
+ import { Settings } from './settings/types';
3
+
4
+ export type CreateReaderOptions = Partial<Settings>;
5
+ export type CreateReaderParameters = CreateReaderOptions;
6
+ export declare const createReader: (inputSettings: CreateReaderOptions) => ReaderInternal;
7
+ type Reader = ReturnType<typeof createReader>;
8
+ export type { Reader };
@@ -0,0 +1,26 @@
1
+ export declare const Report: {
2
+ namespace: (namespace: string) => {
3
+ log: (...data: any[]) => void;
4
+ warn: (...data: any[]) => void;
5
+ error: (...data: any[]) => void;
6
+ time: (name: string, targetDuration?: number) => () => void;
7
+ logMetric: (performanceEntry: PerformanceEntry | {
8
+ name: string;
9
+ duration: number;
10
+ }, targetDuration?: number) => void;
11
+ measurePerformance: <F extends (...args: any[]) => any>(name: string, targetDuration: number | undefined, functionToMeasure: F, { disable }?: {
12
+ disable?: boolean;
13
+ }) => F | ((...args: Parameters<F>) => ReturnType<F>);
14
+ };
15
+ log: (...data: any[]) => void;
16
+ warn: (...data: any[]) => void;
17
+ error: (...data: any[]) => void;
18
+ time: (name: string, targetDuration?: number) => () => void;
19
+ logMetric: (performanceEntry: PerformanceEntry | {
20
+ name: string;
21
+ duration: number;
22
+ }, targetDuration?: number) => void;
23
+ measurePerformance: <F extends (...args: any[]) => any>(name: string, targetDuration: number | undefined, functionToMeasure: F, { disable }?: {
24
+ disable?: boolean;
25
+ }) => F | ((...args: Parameters<F>) => ReturnType<F>);
26
+ };
@@ -0,0 +1,7 @@
1
+ import { Manifest } from './types';
2
+
3
+ export declare const createSelection: (selection: Selection, item: Manifest[`spineItems`][number]) => {
4
+ toString: () => string;
5
+ getAnchorCfi: () => string | undefined;
6
+ getFocusCfi: () => string | undefined;
7
+ };
@@ -0,0 +1,14 @@
1
+ import { BehaviorSubject, Observable } from 'rxjs';
2
+ import { Settings, ComputedSettings } from './types';
3
+ import { Context } from '../context/Context';
4
+
5
+ export declare class SettingsManager {
6
+ _settingsSubject$: BehaviorSubject<ComputedSettings>;
7
+ _context: Context;
8
+ settings$: Observable<ComputedSettings>;
9
+ constructor(initialSettings: Partial<Settings>, context: Context);
10
+ _updateSettings(settings: Settings): void;
11
+ setSettings(settings: Partial<Settings>): void;
12
+ get settings(): ComputedSettings;
13
+ destroy(): void;
14
+ }
@@ -0,0 +1,3 @@
1
+ import { Settings } from './types';
2
+
3
+ export declare const defaultSettings: Settings;
@@ -0,0 +1,4 @@
1
+ import { ComputedSettings, Settings } from './types';
2
+ import { Context } from '../context/Context';
3
+
4
+ export declare const getComputedSettings: (settings: Settings, context: Context) => Omit<ComputedSettings, keyof Settings>;
@@ -0,0 +1,19 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+
3
+ export type Settings = {
4
+ forceSinglePageMode: boolean;
5
+ pageTurnAnimation: `none` | `fade` | `slide`;
6
+ pageTurnAnimationDuration: undefined | number;
7
+ pageTurnDirection: `vertical` | `horizontal`;
8
+ pageTurnMode: `controlled` | `scrollable`;
9
+ snapAnimationDuration: number;
10
+ navigationSnapThreshold: number;
11
+ numberOfAdjacentSpineItemToPreLoad: number;
12
+ fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>;
13
+ };
14
+ export type ComputedSettings = Settings & {
15
+ computedPageTurnMode: Settings[`pageTurnMode`];
16
+ computedPageTurnDirection: Settings[`pageTurnDirection`];
17
+ computedPageTurnAnimation: Settings[`pageTurnAnimation`];
18
+ computedPageTurnAnimationDuration: number;
19
+ };
@@ -0,0 +1,340 @@
1
+ import { Context } from '../context/Context';
2
+ import { SpineItem } from '../spineItem/createSpineItem';
3
+ import { createLocationResolver } from '../spineItem/locationResolver';
4
+ import { SpineItemManager } from '../spineItemManager';
5
+ import { Manifest } from '../types';
6
+
7
+ export declare const createCfiLocator: ({ spineItemManager, spineItemLocator, }: {
8
+ spineItemManager: SpineItemManager;
9
+ context: Context;
10
+ spineItemLocator: ReturnType<typeof createLocationResolver>;
11
+ }) => {
12
+ getSpineItemFromCfi: (cfi: string) => {
13
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
14
+ blankPagePosition: `before` | `after` | `none`;
15
+ minimumWidth: number;
16
+ spreadPosition: `none` | `left` | `right`;
17
+ }) => {
18
+ width: number;
19
+ height: number;
20
+ };
21
+ item: {
22
+ id: string;
23
+ href: string;
24
+ renditionLayout: `reflowable` | `pre-paginated`;
25
+ progressionWeight: number;
26
+ pageSpreadLeft: true | undefined;
27
+ pageSpreadRight: true | undefined;
28
+ mediaType?: string;
29
+ };
30
+ load: () => void;
31
+ adjustPositionOfElement: ({ right, left, top }: {
32
+ right?: number;
33
+ left?: number;
34
+ top?: number;
35
+ }) => void;
36
+ getElementDimensions: () => {
37
+ width: number;
38
+ height: number;
39
+ };
40
+ getHtmlFromResource: (response: Response) => Promise<string>;
41
+ getResource: () => Promise<Response>;
42
+ translateFramePositionIntoPage: (position: {
43
+ clientX: number;
44
+ clientY: number;
45
+ }) => {
46
+ clientX: number;
47
+ clientY: number;
48
+ };
49
+ setLayoutDirty: () => void;
50
+ injectStyle: (cssText: string) => void;
51
+ loadContent: () => void;
52
+ unloadContent: () => void;
53
+ spineItemFrame: {
54
+ getIsLoaded: () => boolean;
55
+ getIsReady: () => boolean;
56
+ getViewportDimensions: () => {
57
+ width: number;
58
+ height: number;
59
+ } | undefined;
60
+ getFrameElement: () => HTMLIFrameElement | undefined;
61
+ getHtmlFromResource: (response: Response) => Promise<string>;
62
+ load: () => void;
63
+ unload: () => void;
64
+ staticLayout: (size: {
65
+ width: number;
66
+ height: number;
67
+ }) => void;
68
+ getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
69
+ getReadingDirection: () => `ltr` | `rtl` | undefined;
70
+ isUsingVerticalWriting: () => boolean;
71
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
72
+ destroy: () => void;
73
+ $: {
74
+ unload$: import('rxjs').Observable<void>;
75
+ unloaded$: import('rxjs').Observable<void>;
76
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
77
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
78
+ isReady$: import('rxjs').Observable<boolean>;
79
+ contentLayoutChange$: import('rxjs').Observable<{
80
+ isFirstLayout: boolean;
81
+ } | {
82
+ isFirstLayout: boolean;
83
+ }>;
84
+ };
85
+ };
86
+ element: HTMLElement;
87
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
88
+ getViewPortInformation: () => {
89
+ computedScale: number;
90
+ computedWidthScale: number;
91
+ viewportDimensions: {
92
+ width: number;
93
+ height: number;
94
+ };
95
+ } | undefined;
96
+ isImageType: () => boolean;
97
+ isReady: () => boolean;
98
+ destroy: () => void;
99
+ isUsingVerticalWriting: () => boolean | undefined;
100
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
101
+ manipulateSpineItem: (cb: (options: {
102
+ container: HTMLElement;
103
+ item: Manifest[`spineItems`][number];
104
+ overlayElement: HTMLDivElement;
105
+ } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
106
+ frame: undefined;
107
+ removeStyle: (id: string) => void;
108
+ addStyle: (id: string, style: string) => void;
109
+ })) => boolean) => boolean;
110
+ executeOnLayoutBeforeMeasurementHook: (options: {
111
+ minimumWidth: number;
112
+ }) => void[];
113
+ selectionTracker: {
114
+ track: (frameToTrack: HTMLIFrameElement) => void;
115
+ destroy: () => void;
116
+ isSelecting: () => boolean;
117
+ getSelection: () => Selection | undefined;
118
+ $: import('rxjs').Observable<{
119
+ event: `selectionchange`;
120
+ data: Selection | null;
121
+ } | {
122
+ event: `selectstart`;
123
+ data: Selection | null;
124
+ } | {
125
+ event: `selectend`;
126
+ data: Selection | null;
127
+ }>;
128
+ };
129
+ fingerTracker: {
130
+ track: (frame: HTMLIFrameElement) => void;
131
+ getFingerPositionInIframe(): {
132
+ x: number | undefined;
133
+ y: number | undefined;
134
+ } | undefined;
135
+ destroy: () => void;
136
+ $: import('rxjs').Observable<{
137
+ event: `fingermove`;
138
+ data: {
139
+ x: number;
140
+ y: number;
141
+ };
142
+ } | {
143
+ event: `fingerout`;
144
+ data: undefined;
145
+ }>;
146
+ };
147
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
148
+ columnHeight: number;
149
+ columnWidth: number;
150
+ width: number;
151
+ };
152
+ getDimensionsForPaginatedContent: () => {
153
+ columnHeight: number;
154
+ columnWidth: number;
155
+ };
156
+ $: {
157
+ contentLayout$: import('rxjs').Observable<{
158
+ isFirstLayout: boolean;
159
+ isReady: boolean;
160
+ }>;
161
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
162
+ isReady$: import('rxjs').Observable<boolean>;
163
+ };
164
+ } | undefined;
165
+ getCfiMetaInformation: (cfi: string) => {
166
+ spineItemIndex: number | undefined;
167
+ } | undefined;
168
+ getCfi: ((pageIndex: number, spineItem: SpineItem) => string) | ((pageIndex: number, spineItem: {
169
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
170
+ blankPagePosition: `before` | `after` | `none`;
171
+ minimumWidth: number;
172
+ spreadPosition: `none` | `left` | `right`;
173
+ }) => {
174
+ width: number;
175
+ height: number;
176
+ };
177
+ item: {
178
+ id: string;
179
+ href: string;
180
+ renditionLayout: `reflowable` | `pre-paginated`;
181
+ progressionWeight: number;
182
+ pageSpreadLeft: true | undefined;
183
+ pageSpreadRight: true | undefined;
184
+ mediaType?: string;
185
+ };
186
+ load: () => void;
187
+ adjustPositionOfElement: ({ right, left, top }: {
188
+ right?: number;
189
+ left?: number;
190
+ top?: number;
191
+ }) => void;
192
+ getElementDimensions: () => {
193
+ width: number;
194
+ height: number;
195
+ };
196
+ getHtmlFromResource: (response: Response) => Promise<string>;
197
+ getResource: () => Promise<Response>;
198
+ translateFramePositionIntoPage: (position: {
199
+ clientX: number;
200
+ clientY: number;
201
+ }) => {
202
+ clientX: number;
203
+ clientY: number;
204
+ };
205
+ setLayoutDirty: () => void;
206
+ injectStyle: (cssText: string) => void;
207
+ loadContent: () => void;
208
+ unloadContent: () => void;
209
+ spineItemFrame: {
210
+ getIsLoaded: () => boolean;
211
+ getIsReady: () => boolean;
212
+ getViewportDimensions: () => {
213
+ width: number;
214
+ height: number;
215
+ } | undefined;
216
+ getFrameElement: () => HTMLIFrameElement | undefined;
217
+ getHtmlFromResource: (response: Response) => Promise<string>;
218
+ load: () => void;
219
+ unload: () => void;
220
+ staticLayout: (size: {
221
+ width: number;
222
+ height: number;
223
+ }) => void;
224
+ getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
225
+ getReadingDirection: () => `ltr` | `rtl` | undefined;
226
+ isUsingVerticalWriting: () => boolean;
227
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
228
+ destroy: () => void;
229
+ $: {
230
+ unload$: import('rxjs').Observable<void>;
231
+ unloaded$: import('rxjs').Observable<void>;
232
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
233
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
234
+ isReady$: import('rxjs').Observable<boolean>;
235
+ contentLayoutChange$: import('rxjs').Observable<{
236
+ isFirstLayout: boolean;
237
+ } | {
238
+ isFirstLayout: boolean;
239
+ }>;
240
+ };
241
+ };
242
+ element: HTMLElement;
243
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
244
+ getViewPortInformation: () => {
245
+ computedScale: number;
246
+ computedWidthScale: number;
247
+ viewportDimensions: {
248
+ width: number;
249
+ height: number;
250
+ };
251
+ } | undefined;
252
+ isImageType: () => boolean;
253
+ isReady: () => boolean;
254
+ destroy: () => void;
255
+ isUsingVerticalWriting: () => boolean | undefined;
256
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
257
+ manipulateSpineItem: (cb: (options: {
258
+ container: HTMLElement;
259
+ item: Manifest[`spineItems`][number];
260
+ overlayElement: HTMLDivElement;
261
+ } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
262
+ frame: undefined;
263
+ removeStyle: (id: string) => void;
264
+ addStyle: (id: string, style: string) => void;
265
+ })) => boolean) => boolean;
266
+ executeOnLayoutBeforeMeasurementHook: (options: {
267
+ minimumWidth: number;
268
+ }) => void[];
269
+ selectionTracker: {
270
+ track: (frameToTrack: HTMLIFrameElement) => void;
271
+ destroy: () => void;
272
+ isSelecting: () => boolean;
273
+ getSelection: () => Selection | undefined;
274
+ $: import('rxjs').Observable<{
275
+ event: `selectionchange`;
276
+ data: Selection | null;
277
+ } | {
278
+ event: `selectstart`;
279
+ data: Selection | null;
280
+ } | {
281
+ event: `selectend`;
282
+ data: Selection | null;
283
+ }>;
284
+ };
285
+ fingerTracker: {
286
+ track: (frame: HTMLIFrameElement) => void;
287
+ getFingerPositionInIframe(): {
288
+ x: number | undefined;
289
+ y: number | undefined;
290
+ } | undefined;
291
+ destroy: () => void;
292
+ $: import('rxjs').Observable<{
293
+ event: `fingermove`;
294
+ data: {
295
+ x: number;
296
+ y: number;
297
+ };
298
+ } | {
299
+ event: `fingerout`;
300
+ data: undefined;
301
+ }>;
302
+ };
303
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
304
+ columnHeight: number;
305
+ columnWidth: number;
306
+ width: number;
307
+ };
308
+ getDimensionsForPaginatedContent: () => {
309
+ columnHeight: number;
310
+ columnWidth: number;
311
+ };
312
+ $: {
313
+ contentLayout$: import('rxjs').Observable<{
314
+ isFirstLayout: boolean;
315
+ isReady: boolean;
316
+ }>;
317
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
318
+ isReady$: import('rxjs').Observable<boolean>;
319
+ };
320
+ }) => ReturnType<(pageIndex: number, spineItem: SpineItem) => string>);
321
+ getRootCfi: (spineItem: SpineItem) => string;
322
+ resolveCfi: (cfiString: string) => {
323
+ node: Node | undefined;
324
+ offset: number | undefined;
325
+ spineItemIndex: number;
326
+ } | {
327
+ spineItemIndex: number;
328
+ node?: undefined;
329
+ offset?: undefined;
330
+ } | undefined;
331
+ generateFromRange: ({ startNode, start, end, endNode }: {
332
+ startNode: Node;
333
+ start: number;
334
+ endNode: Node;
335
+ end: number;
336
+ }, item: Manifest[`spineItems`][number]) => {
337
+ start: string;
338
+ end: string;
339
+ };
340
+ };
@@ -0,0 +1,31 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Context } from '../context/Context';
3
+ import { Pagination } from '../pagination/pagination';
4
+ import { SpineItemManager } from '../spineItemManager';
5
+ import { createLocationResolver as createSpineLocationResolver } from './locationResolver';
6
+ import { createLocationResolver as createSpineItemLocationResolver } from '../spineItem/locationResolver';
7
+ import { createCfiLocator } from './cfiLocator';
8
+ import { Spine } from '../types/Spine';
9
+ import { AdjustedNavigation, Navigation } from '../viewportNavigator/types';
10
+ import { SettingsManager } from '../settings/SettingsManager';
11
+ import { HookManager } from '../hooks/HookManager';
12
+
13
+ export declare const createSpine: ({ element$, context, pagination, spineItemManager, spineItemLocator, spineLocator, cfiLocator, navigation$, navigationAdjusted$, currentNavigationPosition$, viewportState$, settings, hookManager, }: {
14
+ element$: Observable<HTMLElement>;
15
+ context: Context;
16
+ pagination: Pagination;
17
+ spineItemManager: SpineItemManager;
18
+ spineItemLocator: ReturnType<typeof createSpineItemLocationResolver>;
19
+ spineLocator: ReturnType<typeof createSpineLocationResolver>;
20
+ cfiLocator: ReturnType<typeof createCfiLocator>;
21
+ navigation$: Observable<Navigation>;
22
+ navigationAdjusted$: Observable<AdjustedNavigation>;
23
+ currentNavigationPosition$: Observable<{
24
+ x: number;
25
+ y: number;
26
+ }>;
27
+ viewportState$: Observable<`free` | `busy`>;
28
+ settings: SettingsManager;
29
+ hookManager: HookManager;
30
+ }) => Spine;
31
+ export { Spine };