@prose-reader/core 1.66.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 +5514 -4869
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.umd.cjs +5517 -4872
  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,34 +1,33 @@
1
1
  import { Context } from '../context/Context';
2
- import { Manifest } from '../types';
3
- import { Observable } from 'rxjs';
4
- import { createFrameManipulator } from './frameItem/createFrameManipulator';
2
+ import { FrameItem } from './frame/FrameItem';
3
+ import { Manifest } from '..';
5
4
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
6
5
  import { HookManager } from '../hooks/HookManager';
7
6
 
8
- export declare const createCommonSpineItem: ({ item, context, parentElement, viewportState$, settings, hookManager, }: {
7
+ export declare const createCommonSpineItem: ({ item, context, parentElement, settings, hookManager, index, }: {
9
8
  item: Manifest[`spineItems`][number];
10
9
  parentElement: HTMLElement;
11
10
  context: Context;
12
- viewportState$: Observable<`free` | `busy`>;
13
11
  settings: ReaderSettingsManager;
14
12
  hookManager: HookManager;
13
+ index: number;
15
14
  }) => {
16
15
  item: {
17
16
  id: string;
18
17
  href: string;
19
- renditionLayout: `reflowable` | `pre-paginated`;
20
- progressionWeight: number;
21
- pageSpreadLeft: true | undefined;
22
- pageSpreadRight: true | undefined;
18
+ renditionLayout?: `reflowable` | `pre-paginated`;
19
+ progressionWeight?: number;
20
+ pageSpreadLeft?: true | undefined;
21
+ pageSpreadRight?: true | undefined;
23
22
  mediaType?: string;
24
23
  };
25
- load: () => void;
26
24
  layout: ({ height, width, blankPagePosition, minimumWidth, }: {
27
25
  height: number;
28
26
  width: number;
29
27
  blankPagePosition: `before` | `after` | `none`;
30
28
  minimumWidth: number;
31
29
  }) => void;
30
+ overlayElement: HTMLDivElement;
32
31
  adjustPositionOfElement: ({ right, left, top, }: {
33
32
  right?: number;
34
33
  left?: number;
@@ -37,6 +36,13 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
37
36
  getElementDimensions: () => {
38
37
  width: number;
39
38
  height: number;
39
+ x: number;
40
+ y: number;
41
+ bottom: number;
42
+ left: number;
43
+ right: number;
44
+ top: number;
45
+ toJSON(): any;
40
46
  };
41
47
  getHtmlFromResource: (response: Response) => Promise<string>;
42
48
  getResource: () => Promise<Response>;
@@ -47,43 +53,10 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
47
53
  clientX: number;
48
54
  clientY: number;
49
55
  };
50
- setLayoutDirty: () => void;
51
56
  injectStyle: (cssText: string) => void;
52
- loadContent: () => void;
53
- unloadContent: () => void;
54
- spineItemFrame: {
55
- getIsLoaded: () => boolean;
56
- getIsReady: () => boolean;
57
- getViewportDimensions: () => {
58
- width: number;
59
- height: number;
60
- } | undefined;
61
- getFrameElement: () => HTMLIFrameElement | undefined;
62
- getHtmlFromResource: (response: Response) => Promise<string>;
63
- load: () => void;
64
- unload: () => void;
65
- staticLayout: (size: {
66
- width: number;
67
- height: number;
68
- }) => void;
69
- getManipulableFrame: () => ReturnType<typeof createFrameManipulator> | undefined;
70
- getReadingDirection: () => `ltr` | `rtl` | undefined;
71
- isUsingVerticalWriting: () => boolean;
72
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
73
- destroy: () => void;
74
- $: {
75
- unload$: Observable<void>;
76
- unloaded$: Observable<void>;
77
- loaded$: Observable<HTMLIFrameElement>;
78
- ready$: Observable<FontFaceSet | undefined>;
79
- isReady$: Observable<boolean>;
80
- contentLayoutChange$: Observable<{
81
- isFirstLayout: boolean;
82
- } | {
83
- isFirstLayout: boolean;
84
- }>;
85
- };
86
- };
57
+ load: () => void;
58
+ unload: () => void;
59
+ frame: FrameItem;
87
60
  element: HTMLElement;
88
61
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
89
62
  getViewPortInformation: () => {
@@ -97,17 +70,8 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
97
70
  isImageType: () => boolean;
98
71
  isReady: () => boolean;
99
72
  destroy: () => void;
73
+ readonly readingDirection: "ltr" | "rtl" | undefined;
100
74
  isUsingVerticalWriting: () => boolean | undefined;
101
- getReadingDirection: () => "ltr" | "rtl" | undefined;
102
- manipulateSpineItem: (cb: (options: {
103
- container: HTMLElement;
104
- item: Manifest[`spineItems`][number];
105
- overlayElement: HTMLDivElement;
106
- } & (ReturnType<typeof createFrameManipulator> | {
107
- frame: undefined;
108
- removeStyle: (id: string) => void;
109
- addStyle: (id: string, style: string) => void;
110
- })) => boolean) => boolean;
111
75
  executeOnLayoutBeforeMeasurementHook: (options: {
112
76
  minimumWidth: number;
113
77
  }) => void[];
@@ -116,7 +80,7 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
116
80
  destroy: () => void;
117
81
  isSelecting: () => boolean;
118
82
  getSelection: () => Selection | undefined;
119
- $: Observable<{
83
+ $: import('rxjs').Observable<{
120
84
  event: `selectionchange`;
121
85
  data: Selection | null;
122
86
  } | {
@@ -134,7 +98,7 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
134
98
  y: number | undefined;
135
99
  } | undefined;
136
100
  destroy: () => void;
137
- $: Observable<{
101
+ $: import('rxjs').Observable<{
138
102
  event: `fingermove`;
139
103
  data: {
140
104
  x: number;
@@ -155,11 +119,11 @@ export declare const createCommonSpineItem: ({ item, context, parentElement, vie
155
119
  columnWidth: number;
156
120
  };
157
121
  $: {
158
- contentLayout$: Observable<{
122
+ contentLayout$: import('rxjs').Observable<{
159
123
  isFirstLayout: boolean;
160
124
  isReady: boolean;
161
125
  }>;
162
- loaded$: Observable<HTMLIFrameElement>;
163
- isReady$: Observable<boolean>;
126
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
127
+ isReady$: import('rxjs').Observable<boolean>;
164
128
  };
165
129
  };
@@ -1,16 +1,15 @@
1
- import { Observable } from 'rxjs';
2
1
  import { Context } from '../context/Context';
3
- import { Manifest } from '../types';
2
+ import { Manifest } from '..';
4
3
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
4
  import { HookManager } from '../hooks/HookManager';
6
5
 
7
- export declare const createSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager, }: {
6
+ export declare const createSpineItem: ({ item, context, containerElement, settings, hookManager, index, }: {
8
7
  item: Manifest[`spineItems`][number];
9
8
  containerElement: HTMLElement;
10
9
  context: Context;
11
- viewportState$: Observable<`free` | `busy`>;
12
10
  settings: ReaderSettingsManager;
13
11
  hookManager: HookManager;
12
+ index: number;
14
13
  }) => {
15
14
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
16
15
  blankPagePosition: `before` | `after` | `none`;
@@ -23,13 +22,13 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
23
22
  item: {
24
23
  id: string;
25
24
  href: string;
26
- renditionLayout: `reflowable` | `pre-paginated`;
27
- progressionWeight: number;
28
- pageSpreadLeft: true | undefined;
29
- pageSpreadRight: true | undefined;
25
+ renditionLayout?: `reflowable` | `pre-paginated`;
26
+ progressionWeight?: number;
27
+ pageSpreadLeft?: true | undefined;
28
+ pageSpreadRight?: true | undefined;
30
29
  mediaType?: string;
31
30
  };
32
- load: () => void;
31
+ overlayElement: HTMLDivElement;
33
32
  adjustPositionOfElement: ({ right, left, top, }: {
34
33
  right?: number;
35
34
  left?: number;
@@ -38,6 +37,13 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
38
37
  getElementDimensions: () => {
39
38
  width: number;
40
39
  height: number;
40
+ x: number;
41
+ y: number;
42
+ bottom: number;
43
+ left: number;
44
+ right: number;
45
+ top: number;
46
+ toJSON(): any;
41
47
  };
42
48
  getHtmlFromResource: (response: Response) => Promise<string>;
43
49
  getResource: () => Promise<Response>;
@@ -48,43 +54,10 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
48
54
  clientX: number;
49
55
  clientY: number;
50
56
  };
51
- setLayoutDirty: () => void;
52
57
  injectStyle: (cssText: string) => void;
53
- loadContent: () => void;
54
- unloadContent: () => void;
55
- spineItemFrame: {
56
- getIsLoaded: () => boolean;
57
- getIsReady: () => boolean;
58
- getViewportDimensions: () => {
59
- width: number;
60
- height: number;
61
- } | undefined;
62
- getFrameElement: () => HTMLIFrameElement | undefined;
63
- getHtmlFromResource: (response: Response) => Promise<string>;
64
- load: () => void;
65
- unload: () => void;
66
- staticLayout: (size: {
67
- width: number;
68
- height: number;
69
- }) => void;
70
- getManipulableFrame: () => ReturnType<typeof import('./frameItem/createFrameManipulator').createFrameManipulator> | undefined;
71
- getReadingDirection: () => `ltr` | `rtl` | undefined;
72
- isUsingVerticalWriting: () => boolean;
73
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
74
- destroy: () => void;
75
- $: {
76
- unload$: Observable<void>;
77
- unloaded$: Observable<void>;
78
- loaded$: Observable<HTMLIFrameElement>;
79
- ready$: Observable<FontFaceSet | undefined>;
80
- isReady$: Observable<boolean>;
81
- contentLayoutChange$: Observable<{
82
- isFirstLayout: boolean;
83
- } | {
84
- isFirstLayout: boolean;
85
- }>;
86
- };
87
- };
58
+ load: () => void;
59
+ unload: () => void;
60
+ frame: import('./frame/FrameItem').FrameItem;
88
61
  element: HTMLElement;
89
62
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
90
63
  getViewPortInformation: () => {
@@ -98,17 +71,8 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
98
71
  isImageType: () => boolean;
99
72
  isReady: () => boolean;
100
73
  destroy: () => void;
74
+ readingDirection: "ltr" | "rtl" | undefined;
101
75
  isUsingVerticalWriting: () => boolean | undefined;
102
- getReadingDirection: () => "ltr" | "rtl" | undefined;
103
- manipulateSpineItem: (cb: (options: {
104
- container: HTMLElement;
105
- item: Manifest[`spineItems`][number];
106
- overlayElement: HTMLDivElement;
107
- } & (ReturnType<typeof import('./frameItem/createFrameManipulator').createFrameManipulator> | {
108
- frame: undefined;
109
- removeStyle: (id: string) => void;
110
- addStyle: (id: string, style: string) => void;
111
- })) => boolean) => boolean;
112
76
  executeOnLayoutBeforeMeasurementHook: (options: {
113
77
  minimumWidth: number;
114
78
  }) => void[];
@@ -117,7 +81,7 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
117
81
  destroy: () => void;
118
82
  isSelecting: () => boolean;
119
83
  getSelection: () => Selection | undefined;
120
- $: Observable<{
84
+ $: import('rxjs').Observable<{
121
85
  event: `selectionchange`;
122
86
  data: Selection | null;
123
87
  } | {
@@ -135,7 +99,7 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
135
99
  y: number | undefined;
136
100
  } | undefined;
137
101
  destroy: () => void;
138
- $: Observable<{
102
+ $: import('rxjs').Observable<{
139
103
  event: `fingermove`;
140
104
  data: {
141
105
  x: number;
@@ -156,12 +120,12 @@ export declare const createSpineItem: ({ item, context, containerElement, viewpo
156
120
  columnWidth: number;
157
121
  };
158
122
  $: {
159
- contentLayout$: Observable<{
123
+ contentLayout$: import('rxjs').Observable<{
160
124
  isFirstLayout: boolean;
161
125
  isReady: boolean;
162
126
  }>;
163
- loaded$: Observable<HTMLIFrameElement>;
164
- isReady$: Observable<boolean>;
127
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
128
+ isReady$: import('rxjs').Observable<boolean>;
165
129
  };
166
130
  };
167
131
  export type SpineItem = ReturnType<typeof createSpineItem>;
@@ -0,0 +1,44 @@
1
+ import { Observable } from 'rxjs';
2
+ import { Manifest } from '../..';
3
+ import { Context } from '../../context/Context';
4
+ import { createLoader } from './loader/loader';
5
+ import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
6
+ import { HookManager } from '../../hooks/HookManager';
7
+ import { DestroyableClass } from '../../utils/DestroyableClass';
8
+
9
+ export declare class FrameItem extends DestroyableClass {
10
+ protected parent: HTMLElement;
11
+ protected item: Manifest[`spineItems`][number];
12
+ protected context: Context;
13
+ protected settings: ReaderSettingsManager;
14
+ protected hookManager: HookManager;
15
+ protected loader: ReturnType<typeof createLoader>;
16
+ contentLayoutChange$: Observable<{
17
+ isFirstLayout: boolean;
18
+ }>;
19
+ constructor(parent: HTMLElement, item: Manifest[`spineItems`][number], context: Context, settings: ReaderSettingsManager, hookManager: HookManager);
20
+ getComputedStyleAfterLoad(): CSSStyleDeclaration | undefined;
21
+ getViewportDimensions: () => {
22
+ width: number;
23
+ height: number;
24
+ } | undefined;
25
+ getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
26
+ isUsingVerticalWriting: () => boolean;
27
+ getHtmlFromResource: (response: Response) => Promise<string>;
28
+ get element(): HTMLIFrameElement | undefined;
29
+ get unloaded$(): Observable<null>;
30
+ get loaded$(): Observable<HTMLIFrameElement>;
31
+ get ready$(): Observable<FontFaceSet | undefined>;
32
+ get isReady$(): Observable<boolean>;
33
+ get isLoaded(): boolean;
34
+ get isReady(): boolean;
35
+ load(): void;
36
+ unload(): void;
37
+ staticLayout: (size: {
38
+ width: number;
39
+ height: number;
40
+ }) => void;
41
+ addStyle(id: string, style: string, prepend?: boolean): void;
42
+ removeStyle(id: string): void;
43
+ destroy: () => void;
44
+ }
@@ -1,3 +1,3 @@
1
- import { Manifest } from '../../types';
1
+ import { Manifest } from '../..';
2
2
 
3
3
  export declare const createHtmlPageFromResource: (resourceResponse: Response | string, item: Manifest[`spineItems`][number]) => Promise<string>;
@@ -0,0 +1,8 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
3
+ import { Manifest } from '@prose-reader/shared';
4
+
5
+ export declare const attachFrameSrc: ({ settings, item, }: {
6
+ settings: ReaderSettingsManager;
7
+ item: Manifest[`spineItems`][number];
8
+ }) => (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;
@@ -0,0 +1,10 @@
1
+ import { Observable } from 'rxjs';
2
+ import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
3
+ import { Manifest } from '@prose-reader/shared';
4
+ import { HookManager } from '../../..';
5
+
6
+ export declare const configureFrame: ({ settings, item, hookManager, }: {
7
+ settings: ReaderSettingsManager;
8
+ item: Manifest[`spineItems`][number];
9
+ hookManager: HookManager;
10
+ }) => (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;
@@ -0,0 +1 @@
1
+ export declare const createFrameElement: (() => HTMLIFrameElement) | (() => HTMLIFrameElement);
@@ -0,0 +1,12 @@
1
+ import { HookManager, Manifest } from '../../..';
2
+ import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
3
+ import { Context } from '../../../context/Context';
4
+
5
+ export declare const loadFrame: ({ settings, item, hookManager, element, onFrameElement, context, }: {
6
+ settings: ReaderSettingsManager;
7
+ item: Manifest[`spineItems`][number];
8
+ hookManager: HookManager;
9
+ element: HTMLElement;
10
+ onFrameElement: (element: HTMLIFrameElement) => void;
11
+ context: Context;
12
+ }) => import('rxjs').Observable<HTMLIFrameElement>;
@@ -0,0 +1,23 @@
1
+ import { Context } from '../../../context/Context';
2
+ import { Manifest } from '../../..';
3
+ import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
4
+ import { HookManager } from '../../../hooks/HookManager';
5
+
6
+ export declare const createLoader: ({ item, parent, context, settings, hookManager, }: {
7
+ item: Manifest[`spineItems`][number];
8
+ parent: HTMLElement;
9
+ context: Context;
10
+ settings: ReaderSettingsManager;
11
+ hookManager: HookManager;
12
+ }) => {
13
+ load: () => void;
14
+ unload: () => void;
15
+ destroy: () => void;
16
+ readonly state: "idle" | "loading" | "loaded" | "unloading" | "ready";
17
+ readonly element: HTMLIFrameElement | undefined;
18
+ isReady$: import('rxjs').Observable<boolean>;
19
+ ready$: import('rxjs').Observable<FontFaceSet | undefined>;
20
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
21
+ unloaded$: import('rxjs').Observable<null>;
22
+ element$: import('rxjs').Observable<HTMLIFrameElement | undefined>;
23
+ };
@@ -0,0 +1,9 @@
1
+ import { HookManager, Manifest } from '../../..';
2
+ import { Context } from '../../../context/Context';
3
+
4
+ export declare const unloadFrame: ({ item, hookManager, frameElement, context, }: {
5
+ item: Manifest[`spineItems`][number];
6
+ hookManager: HookManager;
7
+ frameElement?: HTMLIFrameElement;
8
+ context: Context;
9
+ }) => import('rxjs').Observable<null>;
@@ -0,0 +1,3 @@
1
+ import { Observable } from 'rxjs';
2
+
3
+ export declare const waitForFrameLoad: (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;
@@ -0,0 +1,3 @@
1
+ import { Observable } from 'rxjs';
2
+
3
+ export declare const waitForFrameReady: (stream: Observable<HTMLIFrameElement>) => Observable<FontFaceSet | undefined>;
@@ -0,0 +1,3 @@
1
+ export declare const getItemOffsetFromPageIndex: (pageWidth: number, pageIndex: number, itemWidth: number) => number;
2
+ export declare const calculateNumberOfPagesForItem: (itemWidth: number, pageWidth: number) => number;
3
+ export declare const getClosestValidOffsetFromApproximateOffsetInPages: (offset: number, pageWidth: number, itemWidth: number) => number;
@@ -1,17 +1,24 @@
1
1
  import { Context } from '../context/Context';
2
2
  import { SpineItem } from './createSpineItem';
3
- import { SpineItemPosition, UnsafeSpineItemPosition } from './types';
3
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
4
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
5
 
5
- export declare const createLocationResolver: ({ context }: {
6
+ export type SpineItemLocator = ReturnType<typeof createSpineItemLocator>;
7
+ export declare const createSpineItemLocator: ({ context, settings, }: {
6
8
  context: Context;
9
+ settings: ReaderSettingsManager;
7
10
  }) => {
8
11
  getSpineItemPositionFromNode: (node: Node, offset: number, spineItem: SpineItem) => {
9
12
  x: number;
10
13
  y: number;
11
14
  } | undefined;
12
- getSpineItemPositionFromPageIndex: (pageIndex: number, spineItem: SpineItem) => SpineItemPosition;
13
- getSpineItemOffsetFromAnchor: (anchor: string, spineItem: SpineItem) => number;
14
- getSpineItemPageIndexFromPosition: (position: UnsafeSpineItemPosition, spineItem: SpineItem) => number;
15
+ getSpineItemPositionFromPageIndex: (pageIndex: number, spineItem: SpineItem) => SafeSpineItemPosition;
16
+ getSpineItemPageIndexFromPosition: ({ itemWidth, itemHeight, position, isUsingVerticalWriting, }: {
17
+ itemWidth: number;
18
+ itemHeight: number;
19
+ position: UnsafeSpineItemPosition;
20
+ isUsingVerticalWriting: boolean;
21
+ }) => number;
15
22
  getSpineItemPageIndexFromNode: (node: Node, offset: number, spineItem: SpineItem) => number | undefined;
16
23
  getSpineItemClosestPositionFromUnsafePosition: (unsafePosition: UnsafeSpineItemPosition, spineItem: SpineItem) => {
17
24
  x: number;
@@ -21,4 +28,9 @@ export declare const createLocationResolver: ({ context }: {
21
28
  node: Node;
22
29
  offset: number;
23
30
  } | undefined;
31
+ getSpineItemNumberOfPages: ({ itemHeight, itemWidth, isUsingVerticalWriting, }: {
32
+ itemWidth: number;
33
+ itemHeight: number;
34
+ isUsingVerticalWriting: boolean;
35
+ }) => number;
24
36
  };
@@ -1,16 +1,14 @@
1
1
  import { SpineItem } from './createSpineItem';
2
2
  import { Context } from '../context/Context';
3
- import { SpineItemNavigationPosition, UnsafeSpineItemPosition } from './types';
3
+ import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
4
4
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
5
 
6
- export declare const createNavigationResolver: ({ context, }: {
6
+ export type SpineItemNavigationResolver = ReturnType<typeof createNavigationResolver>;
7
+ export declare const createNavigationResolver: ({ context, settings, }: {
7
8
  context: Context;
8
9
  settings: ReaderSettingsManager;
9
10
  }) => {
10
- getNavigationForLeftPage: (position: UnsafeSpineItemPosition, spineItem: SpineItem) => SpineItemNavigationPosition;
11
- getNavigationForRightPage: (position: UnsafeSpineItemPosition, spineItem: SpineItem) => SpineItemNavigationPosition;
12
- getNavigationForLastPage: (spineItem: SpineItem) => SpineItemNavigationPosition;
13
- getNavigationForPage: (pageIndex: number, spineItem: SpineItem) => SpineItemNavigationPosition;
14
- getNavigationForPosition: (spineItem: SpineItem, position: UnsafeSpineItemPosition) => SpineItemNavigationPosition;
15
- getNavigationFromNode: (spineItem: SpineItem, node: Node, offset: number) => SpineItemNavigationPosition;
11
+ getNavigationForLastPage: (spineItem: SpineItem) => SafeSpineItemPosition;
12
+ getNavigationForPosition: (spineItem: SpineItem, position: UnsafeSpineItemPosition) => SafeSpineItemPosition;
13
+ getNavigationFromNode: (spineItem: SpineItem, node: Node, offset: number) => SafeSpineItemPosition;
16
14
  };
@@ -1,16 +1,15 @@
1
- import { Observable } from 'rxjs';
2
1
  import { Context } from '../context/Context';
3
- import { Manifest } from '../types';
2
+ import { Manifest } from '..';
4
3
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
4
  import { HookManager } from '../hooks/HookManager';
6
5
 
7
- export declare const createPrePaginatedSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager, }: {
6
+ export declare const createPrePaginatedSpineItem: ({ item, context, containerElement, settings, hookManager, index, }: {
8
7
  item: Manifest[`spineItems`][number];
9
8
  containerElement: HTMLElement;
10
9
  context: Context;
11
- viewportState$: Observable<`free` | `busy`>;
12
10
  settings: ReaderSettingsManager;
13
11
  hookManager: HookManager;
12
+ index: number;
14
13
  }) => {
15
14
  layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
16
15
  blankPagePosition: `before` | `after` | `none`;
@@ -23,13 +22,13 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
23
22
  item: {
24
23
  id: string;
25
24
  href: string;
26
- renditionLayout: `reflowable` | `pre-paginated`;
27
- progressionWeight: number;
28
- pageSpreadLeft: true | undefined;
29
- pageSpreadRight: true | undefined;
25
+ renditionLayout?: `reflowable` | `pre-paginated`;
26
+ progressionWeight?: number;
27
+ pageSpreadLeft?: true | undefined;
28
+ pageSpreadRight?: true | undefined;
30
29
  mediaType?: string;
31
30
  };
32
- load: () => void;
31
+ overlayElement: HTMLDivElement;
33
32
  adjustPositionOfElement: ({ right, left, top, }: {
34
33
  right?: number;
35
34
  left?: number;
@@ -38,6 +37,13 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
38
37
  getElementDimensions: () => {
39
38
  width: number;
40
39
  height: number;
40
+ x: number;
41
+ y: number;
42
+ bottom: number;
43
+ left: number;
44
+ right: number;
45
+ top: number;
46
+ toJSON(): any;
41
47
  };
42
48
  getHtmlFromResource: (response: Response) => Promise<string>;
43
49
  getResource: () => Promise<Response>;
@@ -48,43 +54,10 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
48
54
  clientX: number;
49
55
  clientY: number;
50
56
  };
51
- setLayoutDirty: () => void;
52
57
  injectStyle: (cssText: string) => void;
53
- loadContent: () => void;
54
- unloadContent: () => void;
55
- spineItemFrame: {
56
- getIsLoaded: () => boolean;
57
- getIsReady: () => boolean;
58
- getViewportDimensions: () => {
59
- width: number;
60
- height: number;
61
- } | undefined;
62
- getFrameElement: () => HTMLIFrameElement | undefined;
63
- getHtmlFromResource: (response: Response) => Promise<string>;
64
- load: () => void;
65
- unload: () => void;
66
- staticLayout: (size: {
67
- width: number;
68
- height: number;
69
- }) => void;
70
- getManipulableFrame: () => ReturnType<typeof import('./frameItem/createFrameManipulator').createFrameManipulator> | undefined;
71
- getReadingDirection: () => `ltr` | `rtl` | undefined;
72
- isUsingVerticalWriting: () => boolean;
73
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
74
- destroy: () => void;
75
- $: {
76
- unload$: Observable<void>;
77
- unloaded$: Observable<void>;
78
- loaded$: Observable<HTMLIFrameElement>;
79
- ready$: Observable<FontFaceSet | undefined>;
80
- isReady$: Observable<boolean>;
81
- contentLayoutChange$: Observable<{
82
- isFirstLayout: boolean;
83
- } | {
84
- isFirstLayout: boolean;
85
- }>;
86
- };
87
- };
58
+ load: () => void;
59
+ unload: () => void;
60
+ frame: import('./frame/FrameItem').FrameItem;
88
61
  element: HTMLElement;
89
62
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
90
63
  getViewPortInformation: () => {
@@ -98,17 +71,8 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
98
71
  isImageType: () => boolean;
99
72
  isReady: () => boolean;
100
73
  destroy: () => void;
74
+ readingDirection: "ltr" | "rtl" | undefined;
101
75
  isUsingVerticalWriting: () => boolean | undefined;
102
- getReadingDirection: () => "ltr" | "rtl" | undefined;
103
- manipulateSpineItem: (cb: (options: {
104
- container: HTMLElement;
105
- item: Manifest[`spineItems`][number];
106
- overlayElement: HTMLDivElement;
107
- } & (ReturnType<typeof import('./frameItem/createFrameManipulator').createFrameManipulator> | {
108
- frame: undefined;
109
- removeStyle: (id: string) => void;
110
- addStyle: (id: string, style: string) => void;
111
- })) => boolean) => boolean;
112
76
  executeOnLayoutBeforeMeasurementHook: (options: {
113
77
  minimumWidth: number;
114
78
  }) => void[];
@@ -117,7 +81,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
117
81
  destroy: () => void;
118
82
  isSelecting: () => boolean;
119
83
  getSelection: () => Selection | undefined;
120
- $: Observable<{
84
+ $: import('rxjs').Observable<{
121
85
  event: `selectionchange`;
122
86
  data: Selection | null;
123
87
  } | {
@@ -135,7 +99,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
135
99
  y: number | undefined;
136
100
  } | undefined;
137
101
  destroy: () => void;
138
- $: Observable<{
102
+ $: import('rxjs').Observable<{
139
103
  event: `fingermove`;
140
104
  data: {
141
105
  x: number;
@@ -156,11 +120,11 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
156
120
  columnWidth: number;
157
121
  };
158
122
  $: {
159
- contentLayout$: Observable<{
123
+ contentLayout$: import('rxjs').Observable<{
160
124
  isFirstLayout: boolean;
161
125
  isReady: boolean;
162
126
  }>;
163
- loaded$: Observable<HTMLIFrameElement>;
164
- isReady$: Observable<boolean>;
127
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
128
+ isReady$: import('rxjs').Observable<boolean>;
165
129
  };
166
130
  };