@prose-reader/core 1.117.0 → 1.119.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 (66) hide show
  1. package/dist/cfi/generate/generateCfiForSpineItemPage.d.ts +1 -1
  2. package/dist/cfi/generate/getItemAnchor.d.ts +1 -1
  3. package/dist/cfi/generate/getRootCfi.d.ts +1 -1
  4. package/dist/cfi/lookup/resolveCfi.d.ts +2 -236
  5. package/dist/context/Context.d.ts +1 -1
  6. package/dist/createReaderWithEnhancer.d.ts +11 -245
  7. package/dist/enhancers/events/normalizeEventForViewport.d.ts +2 -1
  8. package/dist/enhancers/events/translateFramePositionIntoPage.d.ts +12 -0
  9. package/dist/enhancers/html/enhancer.d.ts +2 -0
  10. package/dist/enhancers/html/renderer/HtmlRenderer.d.ts +26 -0
  11. package/dist/{spineItem/frame/loader → enhancers/html/renderer}/attachFrameSrc.d.ts +4 -2
  12. package/dist/{spineItem/frame → enhancers/html/renderer}/createHtmlPageFromResource.d.ts +1 -1
  13. package/dist/enhancers/html/renderer/prePaginated/renderPrePaginated.d.ts +31 -0
  14. package/dist/enhancers/html/renderer/reflowable/renderReflowable.d.ts +22 -0
  15. package/dist/enhancers/loading/constants.d.ts +2 -0
  16. package/dist/enhancers/loading/createLoadingElement.d.ts +7 -0
  17. package/dist/enhancers/{loadingEnhancer.d.ts → loading/loadingEnhancer.d.ts} +3 -3
  18. package/dist/enhancers/media/ImageRenderer.d.ts +15 -0
  19. package/dist/enhancers/media/media.d.ts +2 -0
  20. package/dist/enhancers/navigation/resolvers/getNavigationForLeftOrTopPage.d.ts +1 -1
  21. package/dist/enhancers/navigation/resolvers/getNavigationForRightOrBottomPage.d.ts +1 -1
  22. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +1 -1
  23. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForRightPage.d.ts +1 -1
  24. package/dist/enhancers/progression.d.ts +1 -1
  25. package/dist/hooks/types.d.ts +19 -9
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.js +2314 -2181
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.umd.cjs +3010 -2877
  30. package/dist/index.umd.cjs.map +1 -1
  31. package/dist/navigation/Navigator.d.ts +6 -6
  32. package/dist/navigation/resolvers/NavigationResolver.d.ts +1 -1
  33. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +1 -1
  34. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +1 -1
  35. package/dist/reader.d.ts +3 -237
  36. package/dist/settings/SettingsManager.d.ts +2 -1
  37. package/dist/settings/types.d.ts +9 -1
  38. package/dist/spine/SpineItemsManager.d.ts +6 -591
  39. package/dist/spine/SpineItemsObserver.d.ts +2 -1
  40. package/dist/spine/SpineLayout.d.ts +1 -1
  41. package/dist/spine/locator/SpineLocator.d.ts +5 -473
  42. package/dist/spine/locator/getAbsolutePageIndexFromPageIndex.d.ts +1 -1
  43. package/dist/spine/locator/getSpineInfoFromAbsolutePageIndex.d.ts +2 -118
  44. package/dist/spine/locator/getSpineItemFromPosition.d.ts +1 -118
  45. package/dist/spineItem/DocumentRenderer.d.ts +48 -0
  46. package/dist/spineItem/ResourceHandler.d.ts +15 -0
  47. package/dist/spineItem/SpineItem.d.ts +64 -0
  48. package/dist/spineItem/locationResolver.d.ts +1 -1
  49. package/dist/spineItem/navigationResolver.d.ts +1 -1
  50. package/dist/utils/frames.d.ts +15 -0
  51. package/package.json +3 -3
  52. package/dist/enhancers/media.d.ts +0 -2
  53. package/dist/spineItem/commonSpineItem.d.ts +0 -128
  54. package/dist/spineItem/createSpineItem.d.ts +0 -130
  55. package/dist/spineItem/frame/FrameItem.d.ts +0 -43
  56. package/dist/spineItem/frame/loader/configureFrame.d.ts +0 -9
  57. package/dist/spineItem/frame/loader/loadFrame.d.ts +0 -11
  58. package/dist/spineItem/frame/loader/loader.d.ts +0 -22
  59. package/dist/spineItem/frame/loader/unloadFrame.d.ts +0 -8
  60. package/dist/spineItem/frame/loader/waitForFrameLoad.d.ts +0 -2
  61. package/dist/spineItem/frame/loader/waitForFrameReady.d.ts +0 -2
  62. package/dist/spineItem/prePaginatedSpineItem.d.ts +0 -129
  63. package/dist/spineItem/reflowable/ReflowableSpineItems.d.ts +0 -128
  64. package/dist/spineItem/styles/getStyleForViewportDocument.d.ts +0 -1
  65. /package/dist/{spineItem/frame/loader → enhancers/html/renderer}/createFrameElement.d.ts +0 -0
  66. /package/dist/{spineItem → enhancers/html/renderer}/reflowable/styles.d.ts +0 -0
@@ -31,11 +31,11 @@ export declare const createNavigator: ({ spineItemsManager, context, parentEleme
31
31
  getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('./viewport/ViewportNavigator').ViewportPosition;
32
32
  getNavigationFromSpineItemPosition: (params: {
33
33
  spineItemPosition: import('../spineItem/types').UnsafeSpineItemPosition;
34
- spineItem: import('../spineItem/createSpineItem').SpineItem;
34
+ spineItem: import('../spineItem/SpineItem').SpineItem;
35
35
  }) => import('./viewport/ViewportNavigator').ViewportPosition;
36
36
  getNavigationForCfi: (cfi: string) => import('./viewport/ViewportNavigator').ViewportPosition | undefined;
37
- getNavigationForLastPage: (spineItem: import('../spineItem/createSpineItem').SpineItem) => import('./viewport/ViewportNavigator').ViewportPosition;
38
- getNavigationForSpineIndexOrId: (indexOrId: number | string | import('../spineItem/createSpineItem').SpineItem) => import('./viewport/ViewportNavigator').ViewportPosition;
37
+ getNavigationForLastPage: (spineItem: import('../spineItem/SpineItem').SpineItem) => import('./viewport/ViewportNavigator').ViewportPosition;
38
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | import('../spineItem/SpineItem').SpineItem) => import('./viewport/ViewportNavigator').ViewportPosition;
39
39
  getNavigationForPosition: (viewportPosition: import('./viewport/ViewportNavigator').ViewportPosition) => import('./viewport/ViewportNavigator').ViewportPosition;
40
40
  getMostPredominantNavigationForPosition: (viewportPosition: import('./viewport/ViewportNavigator').ViewportPosition) => import('./viewport/ViewportNavigator').ViewportPosition;
41
41
  getAdjustedPositionWithSafeEdge: (position: import('./viewport/ViewportNavigator').ViewportPosition) => {
@@ -53,9 +53,9 @@ export declare const createNavigator: ({ spineItemsManager, context, parentEleme
53
53
  }) => boolean;
54
54
  getAdjustedPositionForSpread: (position: import('./viewport/ViewportNavigator').ViewportPosition) => import('./viewport/ViewportNavigator').ViewportPosition;
55
55
  spineItemNavigator: {
56
- getNavigationForLastPage: (spineItem: import('../spineItem/createSpineItem').SpineItem) => import('../spineItem/types').SafeSpineItemPosition;
57
- getNavigationForPosition: (spineItem: import('../spineItem/createSpineItem').SpineItem, position: import('../spineItem/types').UnsafeSpineItemPosition) => import('../spineItem/types').SafeSpineItemPosition;
58
- getNavigationFromNode: (spineItem: import('../spineItem/createSpineItem').SpineItem, node: Node, offset: number) => import('../spineItem/types').SafeSpineItemPosition;
56
+ getNavigationForLastPage: (spineItem: import('../spineItem/SpineItem').SpineItem) => import('../spineItem/types').SafeSpineItemPosition;
57
+ getNavigationForPosition: (spineItem: import('../spineItem/SpineItem').SpineItem, position: import('../spineItem/types').UnsafeSpineItemPosition) => import('../spineItem/types').SafeSpineItemPosition;
58
+ getNavigationFromNode: (spineItem: import('../spineItem/SpineItem').SpineItem, node: Node, offset: number) => import('../spineItem/types').SafeSpineItemPosition;
59
59
  };
60
60
  };
61
61
  navigation$: import('rxjs').Observable<{
@@ -1,12 +1,12 @@
1
1
  import { Context } from '../../context/Context';
2
2
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
- import { SpineItem } from '../../spineItem/createSpineItem';
4
3
  import { SpineLocator } from '../../spine/locator/SpineLocator';
5
4
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
6
5
  import { ViewportPosition } from '../viewport/ViewportNavigator';
7
6
  import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../spineItem/types';
8
7
  import { getNavigationForSpineItemPage } from './getNavigationForSpineItemPage';
9
8
  import { SpineLayout } from '../../spine/SpineLayout';
9
+ import { SpineItem } from '../../spineItem/SpineItem';
10
10
  export declare const NAMESPACE = "spineNavigator";
11
11
  export type NavigationResolver = ReturnType<typeof createNavigationResolver>;
12
12
  export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, spineLayout, }: {
@@ -1,6 +1,6 @@
1
1
  import { Context } from '../../context/Context';
2
2
  import { SpineLocator } from '../../spine/locator/SpineLocator';
3
- import { SpineItem } from '../../spineItem/createSpineItem';
3
+ import { SpineItem } from '../../spineItem/SpineItem';
4
4
  import { SpineItemNavigationResolver } from '../../spineItem/navigationResolver';
5
5
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
6
  import { ViewportPosition } from '../viewport/ViewportNavigator';
@@ -1,6 +1,6 @@
1
1
  import { Context } from '../../context/Context';
2
2
  import { SpineLocator } from '../../spine/locator/SpineLocator';
3
- import { SpineItem } from '../../spineItem/createSpineItem';
3
+ import { SpineItem } from '../../spineItem/SpineItem';
4
4
  import { SpineItemLocator } from '../../spineItem/locationResolver';
5
5
  import { UnsafeSpineItemPosition } from '../../spineItem/types';
6
6
  export declare const getNavigationFromSpineItemPosition: ({ spineItem, spineItemPosition, spineLocator, spineItemLocator, context, }: {
package/dist/reader.d.ts CHANGED
@@ -6,7 +6,7 @@ import { resolveCfi } from './cfi/lookup/resolveCfi';
6
6
  import { SpineItemsManager } from './spine/SpineItemsManager';
7
7
  import { SettingsInterface } from './settings/SettingsInterface';
8
8
  import { Spine } from './spine/Spine';
9
- import { SpineItem } from './spineItem/createSpineItem';
9
+ import { SpineItem } from './spineItem/SpineItem';
10
10
  export type CreateReaderOptions = Partial<CoreInputSettings>;
11
11
  export type CreateReaderParameters = CreateReaderOptions;
12
12
  export type ContextSettings = Partial<CoreInputSettings>;
@@ -33,244 +33,10 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
33
33
  node: Node | undefined;
34
34
  offset: number | undefined;
35
35
  spineItemIndex: number;
36
- spineItem: {
37
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
38
- blankPagePosition: `before` | `after` | `none`;
39
- minimumWidth: number;
40
- spreadPosition: `none` | `left` | `right`;
41
- }) => {
42
- width: number;
43
- height: number;
44
- };
45
- item: {
46
- id: string;
47
- href: string;
48
- renditionLayout?: `reflowable` | `pre-paginated`;
49
- progressionWeight?: number;
50
- pageSpreadLeft?: true | undefined;
51
- pageSpreadRight?: true | undefined;
52
- mediaType?: string;
53
- };
54
- overlayElement: HTMLDivElement;
55
- adjustPositionOfElement: ({ right, left, top, }: {
56
- right?: number;
57
- left?: number;
58
- top?: number;
59
- }) => void;
60
- getElementDimensions: () => {
61
- width: number;
62
- height: number;
63
- x: number;
64
- y: number;
65
- bottom: number;
66
- left: number;
67
- right: number;
68
- top: number;
69
- toJSON(): any;
70
- };
71
- getHtmlFromResource: (response: Response) => Promise<string>;
72
- getResource: () => Promise<Response>;
73
- translateFramePositionIntoPage: (position: {
74
- clientX: number;
75
- clientY: number;
76
- }) => {
77
- clientX: number;
78
- clientY: number;
79
- };
80
- injectStyle: (cssText: string) => void;
81
- load: () => void;
82
- unload: () => void;
83
- frame: import('./spineItem/frame/FrameItem').FrameItem;
84
- element: HTMLElement;
85
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
86
- getViewPortInformation: () => {
87
- computedScale: number;
88
- computedWidthScale: number;
89
- viewportDimensions: {
90
- width: number;
91
- height: number;
92
- };
93
- } | undefined;
94
- isImageType: () => boolean;
95
- isReady: () => boolean;
96
- destroy: () => void;
97
- readingDirection: "ltr" | "rtl" | undefined;
98
- isUsingVerticalWriting: () => boolean | undefined;
99
- executeOnLayoutBeforeMeasurementHook: (options: {
100
- minimumWidth: number;
101
- }) => void[];
102
- selectionTracker: {
103
- track: (frameToTrack: HTMLIFrameElement) => void;
104
- destroy: () => void;
105
- isSelecting: () => boolean;
106
- getSelection: () => Selection | undefined;
107
- $: import('rxjs').Observable<{
108
- event: `selectionchange`;
109
- data: Selection | null;
110
- } | {
111
- event: `selectstart`;
112
- data: Selection | null;
113
- } | {
114
- event: `selectend`;
115
- data: Selection | null;
116
- }>;
117
- };
118
- fingerTracker: {
119
- track: (frame: HTMLIFrameElement) => void;
120
- getFingerPositionInIframe(): {
121
- x: number | undefined;
122
- y: number | undefined;
123
- } | undefined;
124
- destroy: () => void;
125
- $: import('rxjs').Observable<{
126
- event: `fingermove`;
127
- data: {
128
- x: number;
129
- y: number;
130
- };
131
- } | {
132
- event: `fingerout`;
133
- data: undefined;
134
- }>;
135
- };
136
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
137
- columnHeight: number;
138
- columnWidth: number;
139
- width: number;
140
- };
141
- getDimensionsForPaginatedContent: () => {
142
- columnHeight: number;
143
- columnWidth: number;
144
- };
145
- $: {
146
- contentLayout$: import('rxjs').Observable<{
147
- isFirstLayout: boolean;
148
- isReady: boolean;
149
- }>;
150
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
151
- isReady$: import('rxjs').Observable<boolean>;
152
- };
153
- };
36
+ spineItem: SpineItem;
154
37
  } | {
155
38
  spineItemIndex: number;
156
- spineItem: {
157
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
158
- blankPagePosition: `before` | `after` | `none`;
159
- minimumWidth: number;
160
- spreadPosition: `none` | `left` | `right`;
161
- }) => {
162
- width: number;
163
- height: number;
164
- };
165
- item: {
166
- id: string;
167
- href: string;
168
- renditionLayout?: `reflowable` | `pre-paginated`;
169
- progressionWeight?: number;
170
- pageSpreadLeft?: true | undefined;
171
- pageSpreadRight?: true | undefined;
172
- mediaType?: string;
173
- };
174
- overlayElement: HTMLDivElement;
175
- adjustPositionOfElement: ({ right, left, top, }: {
176
- right?: number;
177
- left?: number;
178
- top?: number;
179
- }) => void;
180
- getElementDimensions: () => {
181
- width: number;
182
- height: number;
183
- x: number;
184
- y: number;
185
- bottom: number;
186
- left: number;
187
- right: number;
188
- top: number;
189
- toJSON(): any;
190
- };
191
- getHtmlFromResource: (response: Response) => Promise<string>;
192
- getResource: () => Promise<Response>;
193
- translateFramePositionIntoPage: (position: {
194
- clientX: number;
195
- clientY: number;
196
- }) => {
197
- clientX: number;
198
- clientY: number;
199
- };
200
- injectStyle: (cssText: string) => void;
201
- load: () => void;
202
- unload: () => void;
203
- frame: import('./spineItem/frame/FrameItem').FrameItem;
204
- element: HTMLElement;
205
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
206
- getViewPortInformation: () => {
207
- computedScale: number;
208
- computedWidthScale: number;
209
- viewportDimensions: {
210
- width: number;
211
- height: number;
212
- };
213
- } | undefined;
214
- isImageType: () => boolean;
215
- isReady: () => boolean;
216
- destroy: () => void;
217
- readingDirection: "ltr" | "rtl" | undefined;
218
- isUsingVerticalWriting: () => boolean | undefined;
219
- executeOnLayoutBeforeMeasurementHook: (options: {
220
- minimumWidth: number;
221
- }) => void[];
222
- selectionTracker: {
223
- track: (frameToTrack: HTMLIFrameElement) => void;
224
- destroy: () => void;
225
- isSelecting: () => boolean;
226
- getSelection: () => Selection | undefined;
227
- $: import('rxjs').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
- $: import('rxjs').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$: import('rxjs').Observable<{
267
- isFirstLayout: boolean;
268
- isReady: boolean;
269
- }>;
270
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
271
- isReady$: import('rxjs').Observable<boolean>;
272
- };
273
- };
39
+ spineItem: SpineItem;
274
40
  node?: undefined;
275
41
  offset?: undefined;
276
42
  } | undefined;
@@ -1,6 +1,7 @@
1
1
  import { Observable, Subject } from 'rxjs';
2
2
  import { SettingsInterface } from './SettingsInterface';
3
- export declare abstract class SettingsManager<InputSettings, OutputSettings> implements SettingsInterface<InputSettings, OutputSettings> {
3
+ import { DestroyableClass } from '../utils/DestroyableClass';
4
+ export declare abstract class SettingsManager<InputSettings, OutputSettings> extends DestroyableClass implements SettingsInterface<InputSettings, OutputSettings> {
4
5
  protected inputSettings: InputSettings;
5
6
  protected outputSettings?: OutputSettings;
6
7
  protected outputSettingsUpdateSubject: Subject<OutputSettings>;
@@ -1,4 +1,6 @@
1
1
  import { Manifest } from '@prose-reader/shared';
2
+ import { DocumentRenderer } from '../spineItem/DocumentRenderer';
3
+ import { Observable } from 'rxjs';
2
4
  export type CoreInputSettings = {
3
5
  forceSinglePageMode: boolean;
4
6
  pageTurnAnimation: `none` | `fade` | `slide`;
@@ -8,7 +10,13 @@ export type CoreInputSettings = {
8
10
  snapAnimationDuration: number;
9
11
  navigationSnapThreshold: number;
10
12
  numberOfAdjacentSpineItemToPreLoad: number;
11
- fetchResource?: (item: Manifest[`spineItems`][number]) => Promise<Response>;
13
+ getResource?: (item: Manifest["spineItems"][number]) => Observable<URL | Response | {
14
+ custom: true;
15
+ data: unknown;
16
+ } | undefined> | undefined;
17
+ getRenderer?: (item: Manifest["spineItems"][number]) => {
18
+ new (...args: any[]): DocumentRenderer;
19
+ };
12
20
  };
13
21
  export type ComputedCoreSettings = {
14
22
  computedPageTurnMode: CoreInputSettings[`pageTurnMode`];