@prose-reader/core 1.72.0 → 1.73.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 (64) hide show
  1. package/dist/cfi/generate/{getCfiForSpineItemPage.d.ts → generateCfiForSpineItemPage.d.ts} +1 -1
  2. package/dist/cfi/lookup/resolveCfi.d.ts +236 -0
  3. package/dist/constants.d.ts +0 -1
  4. package/dist/context/Context.d.ts +6 -29
  5. package/dist/createReaderWithEnhancer.d.ts +252 -9
  6. package/dist/enhancers/events/events.d.ts +1 -6
  7. package/dist/enhancers/events/frames.d.ts +3 -0
  8. package/dist/enhancers/events/normalizeEventForViewport.d.ts +1 -5
  9. package/dist/enhancers/navigation/index.d.ts +1 -1
  10. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +4 -0
  11. package/dist/enhancers/navigation/resolvers/{getNavigationForLeftPage.d.ts → getNavigationForLeftOrTopPage.d.ts} +1 -1
  12. package/dist/enhancers/navigation/resolvers/{getNavigationForRightPage.d.ts → getNavigationForRightOrBottomPage.d.ts} +1 -1
  13. package/dist/enhancers/navigation/types.d.ts +8 -0
  14. package/dist/enhancers/zoom/ControllableZoomer.d.ts +19 -0
  15. package/dist/enhancers/zoom/ScrollableZoomer.d.ts +16 -0
  16. package/dist/enhancers/zoom/Zoomer.d.ts +21 -0
  17. package/dist/enhancers/zoom/index.d.ts +2 -2
  18. package/dist/enhancers/zoom/types.d.ts +10 -12
  19. package/dist/index.d.ts +3 -1
  20. package/dist/index.js +1021 -923
  21. package/dist/index.js.map +1 -1
  22. package/dist/index.umd.cjs +1041 -941
  23. package/dist/index.umd.cjs.map +1 -1
  24. package/dist/navigation/InternalNavigator.d.ts +3 -5
  25. package/dist/navigation/Navigator.d.ts +1 -3
  26. package/dist/navigation/UserNavigator.d.ts +3 -1
  27. package/dist/navigation/consolidation/withSpineItemLayoutInfo.d.ts +3 -3
  28. package/dist/navigation/consolidation/withSpineItemPosition.d.ts +0 -2
  29. package/dist/navigation/resolvers/NavigationResolver.d.ts +3 -1
  30. package/dist/navigation/resolvers/getAdjustedPositionWithSafeEdge.d.ts +3 -1
  31. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +3 -1
  32. package/dist/navigation/restoration/restorePosition.d.ts +3 -1
  33. package/dist/navigation/restoration/withRestoredPosition.d.ts +3 -7
  34. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +2 -1
  35. package/dist/navigation/tests/utils.d.ts +2 -0
  36. package/dist/navigation/viewport/getScaledDownPosition.d.ts +2 -3
  37. package/dist/reader.d.ts +260 -18
  38. package/dist/settings/SettingsInterface.d.ts +2 -2
  39. package/dist/settings/SettingsManager.d.ts +2 -2
  40. package/dist/settings/SettingsManagerOverload.d.ts +2 -2
  41. package/dist/spine/Spine.d.ts +5 -2
  42. package/dist/spine/SpineItemsManager.d.ts +5 -26
  43. package/dist/spine/SpineItemsObserver.d.ts +3 -1
  44. package/dist/spine/SpineLayout.d.ts +49 -0
  45. package/dist/spine/layout/convertViewportPositionToLayoutPosition.d.ts +10 -0
  46. package/dist/spine/loader/SpineItemsLoader.d.ts +3 -1
  47. package/dist/spine/locator/SpineLocator.d.ts +146 -5
  48. package/dist/spine/locator/getAbsolutePageIndexFromPageIndex.d.ts +14 -0
  49. package/dist/spine/locator/getSpineInfoFromAbsolutePageIndex.d.ts +134 -0
  50. package/dist/spine/locator/getSpineItemFromPosition.d.ts +3 -1
  51. package/dist/spine/locator/getSpinePositionFromSpineItemPageIndex.d.ts +13 -0
  52. package/dist/spine/locator/getSpinePositionFromSpineItemPosition.d.ts +10 -0
  53. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +3 -1
  54. package/dist/spineItem/locationResolver.d.ts +12 -2
  55. package/dist/spineItem/locator/getSpineItemNumberOfPages.d.ts +10 -0
  56. package/dist/spineItem/locator/getSpineItemPagesPosition.d.ts +12 -0
  57. package/dist/spineItem/locator/getSpineItemPositionFromPageIndex.d.ts +12 -0
  58. package/dist/utils/frames.d.ts +1 -0
  59. package/dist/utils/objects.d.ts +1 -6
  60. package/package.json +3 -3
  61. package/dist/enhancers/events/createIframeEventBridgeElement.d.ts +0 -1
  62. package/dist/enhancers/zoom/elementZoomer.d.ts +0 -19
  63. package/dist/enhancers/zoom/viewportZoomer.d.ts +0 -19
  64. package/dist/frames.d.ts +0 -5
@@ -3,12 +3,11 @@ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
3
3
  import { UserNavigationEntry } from './UserNavigator';
4
4
  import { ViewportNavigator, ViewportPosition } from './viewport/ViewportNavigator';
5
5
  import { createNavigationResolver } from './resolvers/NavigationResolver';
6
- import { SpineItemsManager } from '../spine/SpineItemsManager';
7
- import { SpineLocator } from '../spine/locator/SpineLocator';
8
6
  import { DestroyableClass } from '../utils/DestroyableClass';
9
7
  import { Context } from '../context/Context';
10
8
  import { UnsafeSpineItemPosition } from '../spineItem/types';
11
9
  import { Locker } from './Locker';
10
+ import { Spine } from '../spine/Spine';
12
11
 
13
12
  export type NavigationConsolidation = {
14
13
  spineItemHeight?: number;
@@ -40,8 +39,7 @@ export declare class InternalNavigator extends DestroyableClass {
40
39
  protected userNavigation$: Observable<UserNavigationEntry>;
41
40
  protected viewportController: ViewportNavigator;
42
41
  protected navigationResolver: ReturnType<typeof createNavigationResolver>;
43
- protected spineItemsManager: SpineItemsManager;
44
- protected spineLocator: SpineLocator;
42
+ protected spine: Spine;
45
43
  protected element$: Observable<HTMLElement>;
46
44
  protected isUserLocked$: Observable<boolean>;
47
45
  navigationSubject: BehaviorSubject<InternalNavigationEntry>;
@@ -62,6 +60,6 @@ export declare class InternalNavigator extends DestroyableClass {
62
60
  id: symbol;
63
61
  }>;
64
62
  locker: Locker;
65
- constructor(settings: ReaderSettingsManager, context: Context, userNavigation$: Observable<UserNavigationEntry>, viewportController: ViewportNavigator, navigationResolver: ReturnType<typeof createNavigationResolver>, spineItemsManager: SpineItemsManager, spineLocator: SpineLocator, element$: Observable<HTMLElement>, isUserLocked$: Observable<boolean>);
63
+ constructor(settings: ReaderSettingsManager, context: Context, userNavigation$: Observable<UserNavigationEntry>, viewportController: ViewportNavigator, navigationResolver: ReturnType<typeof createNavigationResolver>, spine: Spine, element$: Observable<HTMLElement>, isUserLocked$: Observable<boolean>);
66
64
  get navigation(): InternalNavigationEntry;
67
65
  }
@@ -6,11 +6,9 @@ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
6
6
  import { HookManager } from '../hooks/HookManager';
7
7
  import { ViewportNavigator } from './viewport/ViewportNavigator';
8
8
  import { InternalNavigator } from './InternalNavigator';
9
- import { SpineItemsObserver } from '../spine/SpineItemsObserver';
10
9
 
11
- export declare const createNavigator: ({ spineItemsManager, spineItemsObserver, context, parentElement$, hookManager, spine, settings, }: {
10
+ export declare const createNavigator: ({ spineItemsManager, context, parentElement$, hookManager, spine, settings, }: {
12
11
  spineItemsManager: SpineItemsManager;
13
- spineItemsObserver: SpineItemsObserver;
14
12
  context: Context;
15
13
  parentElement$: BehaviorSubject<HTMLElement | undefined>;
16
14
  hookManager: HookManager;
@@ -4,6 +4,7 @@ import { ViewportPosition } from './viewport/ViewportNavigator';
4
4
  import { Context } from '../context/Context';
5
5
  import { DestroyableClass } from '../utils/DestroyableClass';
6
6
  import { Locker } from './Locker';
7
+ import { Spine } from '../spine/Spine';
7
8
 
8
9
  export type UserNavigationEntry = {
9
10
  position?: ViewportPosition;
@@ -19,9 +20,10 @@ export declare class UserNavigator extends DestroyableClass {
19
20
  protected element$: Observable<HTMLElement>;
20
21
  protected context: Context;
21
22
  protected scrollHappeningFromBrowser$: Observable<unknown>;
23
+ protected spine: Spine;
22
24
  protected navigationSubject: Subject<UserNavigationEntry>;
23
25
  locker: Locker;
24
26
  navigation$: Observable<UserNavigationEntry>;
25
- constructor(settings: ReaderSettingsManager, element$: Observable<HTMLElement>, context: Context, scrollHappeningFromBrowser$: Observable<unknown>);
27
+ constructor(settings: ReaderSettingsManager, element$: Observable<HTMLElement>, context: Context, scrollHappeningFromBrowser$: Observable<unknown>, spine: Spine);
26
28
  navigate(to: UserNavigationEntry): void;
27
29
  }
@@ -1,11 +1,11 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { InternalNavigationEntry, InternalNavigationInput } from '../InternalNavigator';
3
- import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
+ import { Spine } from '../../spine/Spine';
4
4
 
5
5
  type Navigation = {
6
6
  navigation: InternalNavigationInput | InternalNavigationEntry;
7
7
  };
8
- export declare const withSpineItemLayoutInfo: ({ spineItemsManager }: {
9
- spineItemsManager: SpineItemsManager;
8
+ export declare const withSpineItemLayoutInfo: ({ spine }: {
9
+ spine: Spine;
10
10
  }) => <N extends Navigation>(stream: Observable<N>) => Observable<N>;
11
11
  export {};
@@ -1,6 +1,5 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { InternalNavigationEntry, InternalNavigationInput } from '../InternalNavigator';
3
- import { Context } from '../../context/Context';
4
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
4
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
5
  import { NavigationResolver } from '../resolvers/NavigationResolver';
@@ -10,7 +9,6 @@ type Navigation = {
10
9
  navigation: InternalNavigationEntry | InternalNavigationInput;
11
10
  };
12
11
  export declare const withSpineItemPosition: ({ settings, spineItemsManager, spineLocator, navigationResolver, }: {
13
- context: Context;
14
12
  settings: ReaderSettingsManager;
15
13
  spineItemsManager: SpineItemsManager;
16
14
  navigationResolver: NavigationResolver;
@@ -6,14 +6,16 @@ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
6
6
  import { ViewportPosition } from '../viewport/ViewportNavigator';
7
7
  import { SafeSpineItemPosition, UnsafeSpineItemPosition } from '../../spineItem/types';
8
8
  import { getNavigationForSpineItemPage } from './getNavigationForSpineItemPage';
9
+ import { SpineLayout } from '../../spine/SpineLayout';
9
10
 
10
11
  export declare const NAMESPACE = "spineNavigator";
11
12
  export type NavigationResolver = ReturnType<typeof createNavigationResolver>;
12
- export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, }: {
13
+ export declare const createNavigationResolver: ({ context, spineItemsManager, locator, settings, spineLayout, }: {
13
14
  context: Context;
14
15
  spineItemsManager: SpineItemsManager;
15
16
  locator: SpineLocator;
16
17
  settings: ReaderSettingsManager;
18
+ spineLayout: SpineLayout;
17
19
  }) => {
18
20
  getNavigationForUrl: (url: string | URL) => {
19
21
  position: ViewportPosition;
@@ -1,13 +1,15 @@
1
1
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
2
+ import { SpineLayout } from '../../spine/SpineLayout';
2
3
  import { ViewportPosition } from '../viewport/ViewportNavigator';
3
4
 
4
5
  export declare const NAMESPACE = "spineNavigator";
5
- export declare const getAdjustedPositionWithSafeEdge: ({ position, isRTL, pageSizeHeight, spineItemsManager, visibleAreaRectWidth, }: {
6
+ export declare const getAdjustedPositionWithSafeEdge: ({ position, isRTL, pageSizeHeight, spineItemsManager, visibleAreaRectWidth, spineLayout, }: {
6
7
  position: ViewportPosition;
7
8
  isRTL: boolean;
8
9
  pageSizeHeight: number;
9
10
  spineItemsManager: SpineItemsManager;
10
11
  visibleAreaRectWidth: number;
12
+ spineLayout: SpineLayout;
11
13
  }) => {
12
14
  x: number;
13
15
  y: number;
@@ -1,11 +1,13 @@
1
1
  import { SpineLocator } from '../../spine/locator/SpineLocator';
2
2
  import { SpineItemsManager } from '../../spine/SpineItemsManager';
3
+ import { SpineLayout } from '../../spine/SpineLayout';
3
4
  import { InternalNavigationEntry } from '../InternalNavigator';
4
5
  import { NavigationResolver } from '../resolvers/NavigationResolver';
5
6
 
6
- export declare const restoreNavigationForControlledPageTurnMode: ({ spineLocator, navigation, navigationResolver, spineItemsManager, }: {
7
+ export declare const restoreNavigationForControlledPageTurnMode: ({ spineLocator, navigation, navigationResolver, spineItemsManager, spineLayout, }: {
7
8
  navigation: InternalNavigationEntry;
8
9
  spineLocator: SpineLocator;
9
10
  navigationResolver: NavigationResolver;
10
11
  spineItemsManager: SpineItemsManager;
12
+ spineLayout: SpineLayout;
11
13
  }) => import('../viewport/ViewportNavigator').ViewportPosition;
@@ -6,8 +6,9 @@ import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
6
  import { InternalNavigationEntry } from '../InternalNavigator';
7
7
  import { NavigationResolver } from '../resolvers/NavigationResolver';
8
8
  import { ViewportPosition } from '../viewport/ViewportNavigator';
9
+ import { SpineLayout } from '../../spine/SpineLayout';
9
10
 
10
- export declare const restorePosition: ({ navigation, spineItemsManager, settings, spineLocator, navigationResolver, }: {
11
+ export declare const restorePosition: ({ navigation, spineItemsManager, settings, spineLocator, navigationResolver, spineLayout, }: {
11
12
  spineLocator: SpineLocator;
12
13
  settings: ReaderSettingsManager;
13
14
  navigationResolver: NavigationResolver;
@@ -15,4 +16,5 @@ export declare const restorePosition: ({ navigation, spineItemsManager, settings
15
16
  spineItemsManager: SpineItemsManager;
16
17
  spineItemLocator: SpineItemLocator;
17
18
  context: Context;
19
+ spineLayout: SpineLayout;
18
20
  }) => ViewportPosition;
@@ -1,21 +1,17 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { InternalNavigationEntry } from '../InternalNavigator';
3
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
4
- import { SpineLocator } from '../../spine/locator/SpineLocator';
5
- import { SpineItemsManager } from '../../spine/SpineItemsManager';
6
4
  import { NavigationResolver } from '../resolvers/NavigationResolver';
7
- import { SpineItemLocator } from '../../spineItem/locationResolver';
8
5
  import { Context } from '../../context/Context';
6
+ import { Spine } from '../../spine/Spine';
9
7
 
10
8
  type Navigation = {
11
9
  navigation: InternalNavigationEntry;
12
10
  };
13
- export declare const withRestoredPosition: ({ spineItemsManager, settings, spineLocator, navigationResolver, spineItemLocator, context, }: {
14
- spineLocator: SpineLocator;
11
+ export declare const withRestoredPosition: ({ settings, navigationResolver, context, spine, }: {
15
12
  navigationResolver: NavigationResolver;
16
- spineItemsManager: SpineItemsManager;
17
13
  settings: ReaderSettingsManager;
18
- spineItemLocator: SpineItemLocator;
19
14
  context: Context;
15
+ spine: Spine;
20
16
  }) => <N extends Navigation>(stream: Observable<N>) => Observable<N>;
21
17
  export {};
@@ -1,4 +1,4 @@
1
- import { Subject } from 'rxjs';
1
+ import { BehaviorSubject, Subject } from 'rxjs';
2
2
 
3
3
  export type Item = {
4
4
  left: number;
@@ -11,6 +11,7 @@ export type Item = {
11
11
  export declare class SpineItemsManagerMock {
12
12
  items: Item[];
13
13
  layout$: Subject<unknown>;
14
+ items$: BehaviorSubject<Item[]>;
14
15
  load(items: {
15
16
  left: number;
16
17
  top: number;
@@ -2,6 +2,7 @@ import { Context } from '../../context/Context';
2
2
  import { InternalNavigator } from '../InternalNavigator';
3
3
  import { UserNavigator } from '../UserNavigator';
4
4
  import { Item, SpineItemsManagerMock } from './SpineItemsManagerMock';
5
+ import { Spine } from '../../spine/Spine';
5
6
 
6
7
  export declare const generateItems: (size: number, number: number) => Item[];
7
8
  export declare const createNavigator: () => {
@@ -9,4 +10,5 @@ export declare const createNavigator: () => {
9
10
  userNavigator: UserNavigator;
10
11
  context: Context;
11
12
  spineItemsManagerMock: SpineItemsManagerMock;
13
+ spine: Spine;
12
14
  };
@@ -1,9 +1,8 @@
1
- import { Spine } from '../../spine/Spine';
2
1
  import { ViewportPosition } from './ViewportNavigator';
3
2
 
4
- export declare const getScaledDownPosition: ({ position: { x, y }, spine, element, }: {
3
+ export declare const getScaledDownPosition: ({ position: { x, y }, spineElement, element, }: {
5
4
  position: ViewportPosition;
6
- spine: Spine;
5
+ spineElement: HTMLElement;
7
6
  element: HTMLElement;
8
7
  }) => {
9
8
  x: number;
package/dist/reader.d.ts CHANGED
@@ -1,21 +1,16 @@
1
1
  import { Subject } from 'rxjs';
2
- import { Context } from './context/Context';
3
- import { Manifest } from '@prose-reader/shared';
2
+ import { Context, ContextState } from './context/Context';
4
3
  import { HookManager } from './hooks/HookManager';
5
4
  import { CoreInputSettings } from './settings/types';
6
5
  import { resolveCfi } from './cfi/lookup/resolveCfi';
7
- import { SpineItemsObserver } from './spine/SpineItemsObserver';
8
6
  import { SpineItemsManager } from './spine/SpineItemsManager';
9
7
  import { SettingsInterface } from './settings/SettingsInterface';
10
8
  import { Spine } from './spine/Spine';
9
+ import { SpineItem } from './spineItem/createSpineItem';
11
10
 
12
11
  export type CreateReaderOptions = Partial<CoreInputSettings>;
13
12
  export type CreateReaderParameters = CreateReaderOptions;
14
13
  export type ContextSettings = Partial<CoreInputSettings>;
15
- export type LoadOptions = {
16
- cfi?: string | null;
17
- containerElement: HTMLElement;
18
- };
19
14
  export type ReaderInternal = ReturnType<typeof createReader>;
20
15
  export declare const createReader: (inputSettings: CreateReaderOptions) => {
21
16
  context: Context;
@@ -27,16 +22,256 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
27
22
  start: number;
28
23
  endNode: Node;
29
24
  end: number;
30
- }, item: Manifest[`spineItems`][number]) => {
25
+ }, item: import('@prose-reader/shared').Manifest[`spineItems`][number]) => {
31
26
  start: string;
32
27
  end: string;
33
28
  };
29
+ generateCfiForSpineItemPage: (params: {
30
+ pageIndex: number;
31
+ spineItem: SpineItem;
32
+ }) => string;
34
33
  resolveCfi: (params: Omit<Parameters<typeof resolveCfi>[0], "spineItemsManager">) => {
35
34
  node: Node | undefined;
36
35
  offset: number | undefined;
37
36
  spineItemIndex: number;
37
+ spineItem: {
38
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
39
+ blankPagePosition: `before` | `after` | `none`;
40
+ minimumWidth: number;
41
+ spreadPosition: `none` | `left` | `right`;
42
+ }) => {
43
+ width: number;
44
+ height: number;
45
+ };
46
+ item: {
47
+ id: string;
48
+ href: string;
49
+ renditionLayout?: `reflowable` | `pre-paginated`;
50
+ progressionWeight?: number;
51
+ pageSpreadLeft?: true | undefined;
52
+ pageSpreadRight?: true | undefined;
53
+ mediaType?: string;
54
+ };
55
+ overlayElement: HTMLDivElement;
56
+ adjustPositionOfElement: ({ right, left, top, }: {
57
+ right?: number;
58
+ left?: number;
59
+ top?: number;
60
+ }) => void;
61
+ getElementDimensions: () => {
62
+ width: number;
63
+ height: number;
64
+ x: number;
65
+ y: number;
66
+ bottom: number;
67
+ left: number;
68
+ right: number;
69
+ top: number;
70
+ toJSON(): any;
71
+ };
72
+ getHtmlFromResource: (response: Response) => Promise<string>;
73
+ getResource: () => Promise<Response>;
74
+ translateFramePositionIntoPage: (position: {
75
+ clientX: number;
76
+ clientY: number;
77
+ }) => {
78
+ clientX: number;
79
+ clientY: number;
80
+ };
81
+ injectStyle: (cssText: string) => void;
82
+ load: () => void;
83
+ unload: () => void;
84
+ frame: import('./spineItem/frame/FrameItem').FrameItem;
85
+ element: HTMLElement;
86
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
87
+ getViewPortInformation: () => {
88
+ computedScale: number;
89
+ computedWidthScale: number;
90
+ viewportDimensions: {
91
+ width: number;
92
+ height: number;
93
+ };
94
+ } | undefined;
95
+ isImageType: () => boolean;
96
+ isReady: () => boolean;
97
+ destroy: () => void;
98
+ readingDirection: "ltr" | "rtl" | undefined;
99
+ isUsingVerticalWriting: () => boolean | undefined;
100
+ executeOnLayoutBeforeMeasurementHook: (options: {
101
+ minimumWidth: number;
102
+ }) => void[];
103
+ selectionTracker: {
104
+ track: (frameToTrack: HTMLIFrameElement) => void;
105
+ destroy: () => void;
106
+ isSelecting: () => boolean;
107
+ getSelection: () => Selection | undefined;
108
+ $: import('rxjs').Observable<{
109
+ event: `selectionchange`;
110
+ data: Selection | null;
111
+ } | {
112
+ event: `selectstart`;
113
+ data: Selection | null;
114
+ } | {
115
+ event: `selectend`;
116
+ data: Selection | null;
117
+ }>;
118
+ };
119
+ fingerTracker: {
120
+ track: (frame: HTMLIFrameElement) => void;
121
+ getFingerPositionInIframe(): {
122
+ x: number | undefined;
123
+ y: number | undefined;
124
+ } | undefined;
125
+ destroy: () => void;
126
+ $: import('rxjs').Observable<{
127
+ event: `fingermove`;
128
+ data: {
129
+ x: number;
130
+ y: number;
131
+ };
132
+ } | {
133
+ event: `fingerout`;
134
+ data: undefined;
135
+ }>;
136
+ };
137
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
138
+ columnHeight: number;
139
+ columnWidth: number;
140
+ width: number;
141
+ };
142
+ getDimensionsForPaginatedContent: () => {
143
+ columnHeight: number;
144
+ columnWidth: number;
145
+ };
146
+ $: {
147
+ contentLayout$: import('rxjs').Observable<{
148
+ isFirstLayout: boolean;
149
+ isReady: boolean;
150
+ }>;
151
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
152
+ isReady$: import('rxjs').Observable<boolean>;
153
+ };
154
+ };
38
155
  } | {
39
156
  spineItemIndex: number;
157
+ spineItem: {
158
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
159
+ blankPagePosition: `before` | `after` | `none`;
160
+ minimumWidth: number;
161
+ spreadPosition: `none` | `left` | `right`;
162
+ }) => {
163
+ width: number;
164
+ height: number;
165
+ };
166
+ item: {
167
+ id: string;
168
+ href: string;
169
+ renditionLayout?: `reflowable` | `pre-paginated`;
170
+ progressionWeight?: number;
171
+ pageSpreadLeft?: true | undefined;
172
+ pageSpreadRight?: true | undefined;
173
+ mediaType?: string;
174
+ };
175
+ overlayElement: HTMLDivElement;
176
+ adjustPositionOfElement: ({ right, left, top, }: {
177
+ right?: number;
178
+ left?: number;
179
+ top?: number;
180
+ }) => void;
181
+ getElementDimensions: () => {
182
+ width: number;
183
+ height: number;
184
+ x: number;
185
+ y: number;
186
+ bottom: number;
187
+ left: number;
188
+ right: number;
189
+ top: number;
190
+ toJSON(): any;
191
+ };
192
+ getHtmlFromResource: (response: Response) => Promise<string>;
193
+ getResource: () => Promise<Response>;
194
+ translateFramePositionIntoPage: (position: {
195
+ clientX: number;
196
+ clientY: number;
197
+ }) => {
198
+ clientX: number;
199
+ clientY: number;
200
+ };
201
+ injectStyle: (cssText: string) => void;
202
+ load: () => void;
203
+ unload: () => void;
204
+ frame: import('./spineItem/frame/FrameItem').FrameItem;
205
+ element: HTMLElement;
206
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
207
+ getViewPortInformation: () => {
208
+ computedScale: number;
209
+ computedWidthScale: number;
210
+ viewportDimensions: {
211
+ width: number;
212
+ height: number;
213
+ };
214
+ } | undefined;
215
+ isImageType: () => boolean;
216
+ isReady: () => boolean;
217
+ destroy: () => void;
218
+ readingDirection: "ltr" | "rtl" | undefined;
219
+ isUsingVerticalWriting: () => boolean | undefined;
220
+ executeOnLayoutBeforeMeasurementHook: (options: {
221
+ minimumWidth: number;
222
+ }) => void[];
223
+ selectionTracker: {
224
+ track: (frameToTrack: HTMLIFrameElement) => void;
225
+ destroy: () => void;
226
+ isSelecting: () => boolean;
227
+ getSelection: () => Selection | undefined;
228
+ $: import('rxjs').Observable<{
229
+ event: `selectionchange`;
230
+ data: Selection | null;
231
+ } | {
232
+ event: `selectstart`;
233
+ data: Selection | null;
234
+ } | {
235
+ event: `selectend`;
236
+ data: Selection | null;
237
+ }>;
238
+ };
239
+ fingerTracker: {
240
+ track: (frame: HTMLIFrameElement) => void;
241
+ getFingerPositionInIframe(): {
242
+ x: number | undefined;
243
+ y: number | undefined;
244
+ } | undefined;
245
+ destroy: () => void;
246
+ $: import('rxjs').Observable<{
247
+ event: `fingermove`;
248
+ data: {
249
+ x: number;
250
+ y: number;
251
+ };
252
+ } | {
253
+ event: `fingerout`;
254
+ data: undefined;
255
+ }>;
256
+ };
257
+ getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
258
+ columnHeight: number;
259
+ columnWidth: number;
260
+ width: number;
261
+ };
262
+ getDimensionsForPaginatedContent: () => {
263
+ columnHeight: number;
264
+ columnWidth: number;
265
+ };
266
+ $: {
267
+ contentLayout$: import('rxjs').Observable<{
268
+ isFirstLayout: boolean;
269
+ isReady: boolean;
270
+ }>;
271
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
272
+ isReady$: import('rxjs').Observable<boolean>;
273
+ };
274
+ };
40
275
  node?: undefined;
41
276
  offset?: undefined;
42
277
  } | undefined;
@@ -44,7 +279,7 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
44
279
  navigation: {
45
280
  viewportFree$: import('rxjs').Observable<"free">;
46
281
  viewportBusy$: import('rxjs').Observable<"busy">;
47
- readonly viewportPosition: {
282
+ getViewportPosition: () => {
48
283
  x: number;
49
284
  y: number;
50
285
  };
@@ -60,11 +295,11 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
60
295
  getNavigationForSpineItemPage: (params: Omit<Parameters<typeof import('./navigation/resolvers/getNavigationForSpineItemPage').getNavigationForSpineItemPage>[0], "context" | "spineItemsManager" | "spineItemNavigationResolver" | "spineLocator">) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
61
296
  getNavigationFromSpineItemPosition: (params: {
62
297
  spineItemPosition: import('./spineItem/types').UnsafeSpineItemPosition;
63
- spineItem: import('./spineItem/createSpineItem').SpineItem;
298
+ spineItem: SpineItem;
64
299
  }) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
65
300
  getNavigationForCfi: (cfi: string) => import('./navigation/viewport/ViewportNavigator').ViewportPosition | undefined;
66
- getNavigationForLastPage: (spineItem: import('./spineItem/createSpineItem').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
67
- getNavigationForSpineIndexOrId: (indexOrId: number | string | import('./spineItem/createSpineItem').SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
301
+ getNavigationForLastPage: (spineItem: SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
302
+ getNavigationForSpineIndexOrId: (indexOrId: number | string | SpineItem) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
68
303
  getNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
69
304
  getMostPredominantNavigationForPosition: (viewportPosition: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
70
305
  getAdjustedPositionWithSafeEdge: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => {
@@ -82,16 +317,16 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
82
317
  }) => boolean;
83
318
  getAdjustedPositionForSpread: (position: import('./navigation/viewport/ViewportNavigator').ViewportPosition) => import('./navigation/viewport/ViewportNavigator').ViewportPosition;
84
319
  spineItemNavigator: {
85
- getNavigationForLastPage: (spineItem: import('./spineItem/createSpineItem').SpineItem) => import('./spineItem/types').SafeSpineItemPosition;
86
- getNavigationForPosition: (spineItem: import('./spineItem/createSpineItem').SpineItem, position: import('./spineItem/types').UnsafeSpineItemPosition) => import('./spineItem/types').SafeSpineItemPosition;
87
- getNavigationFromNode: (spineItem: import('./spineItem/createSpineItem').SpineItem, node: Node, offset: number) => import('./spineItem/types').SafeSpineItemPosition;
320
+ getNavigationForLastPage: (spineItem: SpineItem) => import('./spineItem/types').SafeSpineItemPosition;
321
+ getNavigationForPosition: (spineItem: SpineItem, position: import('./spineItem/types').UnsafeSpineItemPosition) => import('./spineItem/types').SafeSpineItemPosition;
322
+ getNavigationFromNode: (spineItem: SpineItem, node: Node, offset: number) => import('./spineItem/types').SafeSpineItemPosition;
88
323
  };
89
324
  };
90
325
  };
91
- spineItemsObserver: SpineItemsObserver;
326
+ spineItemsObserver: import('./spine/SpineItemsObserver').SpineItemsObserver;
92
327
  spineItemsManager: SpineItemsManager;
93
328
  layout: () => void;
94
- load: (manifest: Manifest, loadOptions: LoadOptions) => void;
329
+ load: (options: Required<Pick<ContextState, "manifest" | "containerElement">>) => void;
95
330
  destroy: () => void;
96
331
  pagination: {
97
332
  state: import('./pagination/Pagination').PaginationInfo;
@@ -99,6 +334,14 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
99
334
  };
100
335
  settings: SettingsInterface<NonNullable<CoreInputSettings>, NonNullable<import('./settings/types').CoreOutputSettings | undefined>>;
101
336
  element$: import('rxjs').Observable<HTMLElement>;
337
+ layout$: import('rxjs').Observable<{
338
+ hasChanged: boolean;
339
+ spineItemsAbsolutePositions: import('./spine/SpineLayout').LayoutPosition[];
340
+ spineItemsPagesAbsolutePositions: import('./spine/SpineLayout').LayoutPosition[][];
341
+ pages: import('./spine/SpineLayout').PageLayoutInformation[];
342
+ }>;
343
+ viewportState$: import('rxjs').Observable<"free" | "busy">;
344
+ state$: import('rxjs').Observable<"idle" | "ready">;
102
345
  $: {
103
346
  state$: import('rxjs').Observable<{
104
347
  supportedPageTurnAnimation: NonNullable<ContextSettings[`pageTurnAnimation`]>[];
@@ -106,7 +349,6 @@ export declare const createReader: (inputSettings: CreateReaderOptions) => {
106
349
  supportedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
107
350
  supportedComputedPageTurnDirection: NonNullable<ContextSettings[`pageTurnDirection`]>[];
108
351
  }>;
109
- loadStatus$: import('rxjs').Observable<"idle" | "ready">;
110
352
  destroy$: Subject<void>;
111
353
  };
112
354
  };
@@ -8,6 +8,6 @@ export interface SettingsInterface<InputSettings, OutputSettings = Record<string
8
8
  commit: () => OutputSettings;
9
9
  };
10
10
  update(settings: Partial<InputSettings>): void;
11
- settings$: Observable<OutputSettings>;
12
- settings: OutputSettings;
11
+ values$: Observable<OutputSettings>;
12
+ values: OutputSettings;
13
13
  }
@@ -15,7 +15,7 @@ export declare abstract class SettingsManager<InputSettings, OutputSettings> imp
15
15
  abstract getOutputSettings(inputSettings: InputSettings): OutputSettings;
16
16
  abstract getDefaultSettings(): InputSettings;
17
17
  update(settings: Partial<InputSettings>): void;
18
- get settings(): OutputSettings;
19
- get settings$(): Observable<OutputSettings>;
18
+ get values(): OutputSettings;
19
+ get values$(): Observable<OutputSettings>;
20
20
  destroy(): void;
21
21
  }
@@ -7,7 +7,7 @@ export declare abstract class SettingsManagerOverload<InputSettings, OutputSetti
7
7
  protected outputSettings: OutputSettings;
8
8
  protected outputSettingsUpdateSubject: Subject<OutputSettings>;
9
9
  protected settingsManager: SettingsInterface<ParentInputSettings, ParentOutputSettings>;
10
- settings$: Observable<ParentOutputSettings & OutputSettings>;
10
+ values$: Observable<ParentOutputSettings & OutputSettings>;
11
11
  constructor(initialSettings: Partial<InputSettings>, settingsManager: SettingsInterface<ParentInputSettings, ParentOutputSettings>);
12
12
  abstract getDefaultSettings(): InputSettings;
13
13
  abstract computeOutputSettings(inputSettings: InputSettings): OutputSettings;
@@ -18,6 +18,6 @@ export declare abstract class SettingsManagerOverload<InputSettings, OutputSetti
18
18
  commit: () => OutputSettings & ParentOutputSettings;
19
19
  };
20
20
  update(settings: Partial<InputSettings & ParentInputSettings>): void;
21
- get settings(): ParentOutputSettings & OutputSettings;
21
+ get values(): ParentOutputSettings & OutputSettings;
22
22
  destroy(): void;
23
23
  }