@prose-reader/core 0.0.36

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 (73) hide show
  1. package/dist/cfi.d.ts +74 -0
  2. package/dist/constants.d.ts +5 -0
  3. package/dist/context.d.ts +48 -0
  4. package/dist/createReaderWithEnhancer.d.ts +2242 -0
  5. package/dist/enhancers/accessibility.d.ts +2 -0
  6. package/dist/enhancers/chrome.d.ts +2 -0
  7. package/dist/enhancers/composeEnhancer.d.ts +21 -0
  8. package/dist/enhancers/firefox.d.ts +2 -0
  9. package/dist/enhancers/fonts.d.ts +12 -0
  10. package/dist/enhancers/hotkeys.d.ts +2 -0
  11. package/dist/enhancers/layoutEnhancer/createMovingSafePan$.d.ts +3 -0
  12. package/dist/enhancers/layoutEnhancer/layoutEnhancer.d.ts +10 -0
  13. package/dist/enhancers/links.d.ts +12 -0
  14. package/dist/enhancers/media.d.ts +2 -0
  15. package/dist/enhancers/navigation.d.ts +5 -0
  16. package/dist/enhancers/pagination.d.ts +46 -0
  17. package/dist/enhancers/progression.d.ts +15 -0
  18. package/dist/enhancers/resources/index.d.ts +2 -0
  19. package/dist/enhancers/resources/indexedDB.d.ts +6 -0
  20. package/dist/enhancers/resources/resourcesManager.d.ts +6 -0
  21. package/dist/enhancers/theme.d.ts +22 -0
  22. package/dist/enhancers/types.d.ts +28 -0
  23. package/dist/enhancers/utils.d.ts +6 -0
  24. package/dist/enhancers/webkit.d.ts +2 -0
  25. package/dist/enhancers/zoom.d.ts +16 -0
  26. package/dist/frames.d.ts +5 -0
  27. package/dist/index.d.ts +10 -0
  28. package/dist/index.js +701 -0
  29. package/dist/index.js.LICENSE.txt +385 -0
  30. package/dist/index.js.map +1 -0
  31. package/dist/pagination.d.ts +65 -0
  32. package/dist/reader.d.ts +63 -0
  33. package/dist/report.d.ts +26 -0
  34. package/dist/selection.d.ts +6 -0
  35. package/dist/settings.d.ts +37 -0
  36. package/dist/spine/cfiLocator.d.ts +257 -0
  37. package/dist/spine/createSpine.d.ts +896 -0
  38. package/dist/spine/eventsHelper.d.ts +11 -0
  39. package/dist/spine/locationResolver.d.ts +479 -0
  40. package/dist/spine/navigationResolver.d.ts +48 -0
  41. package/dist/spine/viewportNavigator/manualViewportNavigator.d.ts +99 -0
  42. package/dist/spine/viewportNavigator/panViewportNavigator.d.ts +50 -0
  43. package/dist/spine/viewportNavigator/scrollViewportNavigator.d.ts +23 -0
  44. package/dist/spine/viewportNavigator/viewportNavigator.d.ts +85 -0
  45. package/dist/spineItem/commonSpineItem.d.ts +160 -0
  46. package/dist/spineItem/createSpineItem.d.ts +458 -0
  47. package/dist/spineItem/frameItem/createFrame$.d.ts +1 -0
  48. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +5 -0
  49. package/dist/spineItem/frameItem/createHtmlPageFromResource.d.ts +2 -0
  50. package/dist/spineItem/frameItem/frameItem.d.ts +49 -0
  51. package/dist/spineItem/frameItem/loader.d.ts +27 -0
  52. package/dist/spineItem/index.d.ts +458 -0
  53. package/dist/spineItem/locationResolver.d.ts +27 -0
  54. package/dist/spineItem/navigationResolver.d.ts +23 -0
  55. package/dist/spineItem/prePaginatedSpineItem.d.ts +223 -0
  56. package/dist/spineItem/reflowableSpineItem.d.ts +222 -0
  57. package/dist/spineItem/trackers.d.ts +34 -0
  58. package/dist/spineItemManager.d.ts +264 -0
  59. package/dist/tryEnhancer/compose.d.ts +20 -0
  60. package/dist/tryEnhancer/createReader.d.ts +3 -0
  61. package/dist/tryEnhancer/enhancer.d.ts +24 -0
  62. package/dist/tryEnhancer/index.d.ts +1 -0
  63. package/dist/types/Hook.d.ts +70 -0
  64. package/dist/types/index.d.ts +16 -0
  65. package/dist/utils/compose.d.ts +8 -0
  66. package/dist/utils/contentType.d.ts +2 -0
  67. package/dist/utils/dom.d.ts +19 -0
  68. package/dist/utils/manifest.d.ts +2 -0
  69. package/dist/utils/objects.d.ts +6 -0
  70. package/dist/utils/objects.test.d.ts +1 -0
  71. package/dist/utils/rxjs.d.ts +4 -0
  72. package/dist/utils/url.d.ts +1 -0
  73. package/package.json +44 -0
@@ -0,0 +1,223 @@
1
+ import { BehaviorSubject, Observable } from "rxjs";
2
+ import { Context } from "../context";
3
+ import { Manifest } from "../types";
4
+ import { Hook } from "../types/Hook";
5
+ export declare const createPrePaginatedSpineItem: ({ item, context, containerElement, iframeEventBridgeElement, hooks$, viewportState$ }: {
6
+ item: Manifest[`spineItems`][number];
7
+ containerElement: HTMLElement;
8
+ iframeEventBridgeElement: HTMLElement;
9
+ context: Context;
10
+ hooks$: BehaviorSubject<Hook[]>;
11
+ viewportState$: Observable<`free` | `busy`>;
12
+ }) => {
13
+ layout: (layoutInformation: {
14
+ blankPagePosition: `before` | `after` | `none`;
15
+ minimumWidth: number;
16
+ spreadPosition: `none` | `left` | `right`;
17
+ }) => {
18
+ width: number;
19
+ height: number;
20
+ };
21
+ load: () => void;
22
+ adjustPositionOfElement: ({ right, left, top }: {
23
+ right?: number | undefined;
24
+ left?: number | undefined;
25
+ top?: number | undefined;
26
+ }) => void;
27
+ createLoadingElement: (containerElement: HTMLElement, item: {
28
+ id: string;
29
+ href: string;
30
+ path: string;
31
+ renditionLayout: "reflowable" | "pre-paginated";
32
+ progressionWeight: number;
33
+ pageSpreadLeft: true | undefined;
34
+ pageSpreadRight: true | undefined;
35
+ mediaType?: string | undefined;
36
+ }, context: {
37
+ load: (newManifest: Manifest, newLoadOptions: import("../types").LoadOptions) => void;
38
+ isRTL: () => boolean;
39
+ areAllItemsPrePaginated: () => boolean;
40
+ destroy: () => void;
41
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
42
+ getCalculatedInnerMargin: () => number;
43
+ getVisibleAreaRect: () => {
44
+ width: number;
45
+ height: number;
46
+ x: number;
47
+ y: number;
48
+ };
49
+ shouldDisplaySpread: () => boolean;
50
+ setHasVerticalWriting: () => void;
51
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
52
+ getManifest: () => Manifest | undefined;
53
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
54
+ getPageSize: () => {
55
+ width: number;
56
+ height: number;
57
+ };
58
+ getSettings: () => import("../settings").PublicSettings & {
59
+ computedPageTurnMode: "controlled" | "scrollable";
60
+ computedPageTurnDirection: "vertical" | "horizontal";
61
+ computedPageTurnAnimation: "none" | "fade" | "slide";
62
+ computedPageTurnAnimationDuration: number;
63
+ computedSnapAnimationDuration: number;
64
+ };
65
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
66
+ $: {
67
+ hasVerticalWriting$: Observable<boolean>;
68
+ destroy$: Observable<void>;
69
+ settings$: Observable<import("../settings").PublicSettings & {
70
+ computedPageTurnMode: "controlled" | "scrollable";
71
+ computedPageTurnDirection: "vertical" | "horizontal";
72
+ computedPageTurnAnimation: "none" | "fade" | "slide";
73
+ computedPageTurnAnimationDuration: number;
74
+ computedSnapAnimationDuration: number;
75
+ }>;
76
+ load$: Observable<Manifest>;
77
+ };
78
+ }) => HTMLDivElement;
79
+ getElementDimensions: () => {
80
+ width: number;
81
+ height: number;
82
+ };
83
+ getHtmlFromResource: (response: Response) => Promise<string>;
84
+ getResource: () => Promise<Response>;
85
+ translateFramePositionIntoPage: (position: {
86
+ clientX: number;
87
+ clientY: number;
88
+ }) => {
89
+ clientX: number;
90
+ clientY: number;
91
+ };
92
+ setLayoutDirty: () => void;
93
+ injectStyle: (cssText: string) => void;
94
+ loadContent: () => void;
95
+ unloadContent: () => void;
96
+ spineItemFrame: {
97
+ getIsLoaded: () => boolean;
98
+ getIsReady: () => boolean;
99
+ getViewportDimensions: () => {
100
+ width: number;
101
+ height: number;
102
+ } | undefined;
103
+ getFrameElement: () => HTMLIFrameElement | undefined;
104
+ getHtmlFromResource: (response: Response) => Promise<string>;
105
+ load: () => void;
106
+ unload: () => void;
107
+ staticLayout: (size: {
108
+ width: number;
109
+ height: number;
110
+ }) => void;
111
+ getManipulableFrame: () => {
112
+ frame: HTMLIFrameElement;
113
+ removeStyle: (id: string) => void;
114
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
115
+ } | undefined;
116
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
117
+ isUsingVerticalWriting: () => boolean;
118
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
119
+ destroy: () => void;
120
+ $: {
121
+ unload$: Observable<void>;
122
+ unloaded$: Observable<void>;
123
+ loaded$: Observable<HTMLIFrameElement>;
124
+ ready$: Observable<FontFaceSet | undefined>;
125
+ isReady$: Observable<boolean>;
126
+ contentLayoutChange$: Observable<{
127
+ isFirstLayout: boolean;
128
+ } | {
129
+ isFirstLayout: boolean;
130
+ }>;
131
+ };
132
+ };
133
+ element: HTMLElement;
134
+ loadingElement: HTMLDivElement;
135
+ isReflowable: boolean;
136
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
137
+ getViewPortInformation: () => {
138
+ computedScale: number;
139
+ computedWidthScale: number;
140
+ viewportDimensions: {
141
+ width: number;
142
+ height: number;
143
+ };
144
+ } | {
145
+ width?: number | undefined;
146
+ height?: number | undefined;
147
+ computedScale: number;
148
+ computedWidthScale: number;
149
+ viewportDimensions?: undefined;
150
+ };
151
+ isImageType: () => boolean | undefined;
152
+ isReady: () => boolean;
153
+ destroy: () => void;
154
+ isUsingVerticalWriting: () => boolean | undefined;
155
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
156
+ manipulateSpineItem: (cb: (options: {
157
+ container: HTMLElement;
158
+ loadingElement: HTMLElement;
159
+ item: {
160
+ id: string;
161
+ href: string;
162
+ path: string;
163
+ renditionLayout: "reflowable" | "pre-paginated";
164
+ progressionWeight: number;
165
+ pageSpreadLeft: true | undefined;
166
+ pageSpreadRight: true | undefined;
167
+ mediaType?: string | undefined;
168
+ };
169
+ overlayElement: HTMLDivElement;
170
+ } & ({
171
+ frame: HTMLIFrameElement;
172
+ removeStyle: (id: string) => void;
173
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
174
+ } | {
175
+ frame: undefined;
176
+ removeStyle: (id: string) => void;
177
+ addStyle: (id: string, style: string) => void;
178
+ })) => boolean) => boolean;
179
+ executeOnLayoutBeforeMeasurmentHook: (options: {
180
+ minimumWidth: number;
181
+ }) => void;
182
+ selectionTracker: {
183
+ track: (frameToTrack: HTMLIFrameElement) => void;
184
+ destroy: () => void;
185
+ isSelecting: () => boolean;
186
+ getSelection: () => Selection | undefined;
187
+ $: Observable<{
188
+ event: "selectionchange";
189
+ data: Selection | null;
190
+ } | {
191
+ event: "selectstart";
192
+ data: Selection | null;
193
+ } | {
194
+ event: "selectend";
195
+ data: Selection | null;
196
+ }>;
197
+ };
198
+ fingerTracker: {
199
+ track: (frame: HTMLIFrameElement) => void;
200
+ getFingerPositionInIframe(): {
201
+ x: number | undefined;
202
+ y: number | undefined;
203
+ } | undefined;
204
+ destroy: () => void;
205
+ $: Observable<{
206
+ event: "fingermove";
207
+ data: {
208
+ x: number;
209
+ y: number;
210
+ };
211
+ } | {
212
+ event: "fingerout";
213
+ data: undefined;
214
+ }>;
215
+ };
216
+ $: {
217
+ contentLayoutChangeSubject$: Observable<{
218
+ isFirstLayout: boolean;
219
+ isReady: boolean;
220
+ }>;
221
+ loaded$: Observable<HTMLIFrameElement>;
222
+ };
223
+ };
@@ -0,0 +1,222 @@
1
+ import { BehaviorSubject, Observable } from "rxjs";
2
+ import { Context } from "../context";
3
+ import { Manifest } from "../types";
4
+ import { Hook } from "../types/Hook";
5
+ export declare const createReflowableSpineItem: ({ item, context, containerElement, iframeEventBridgeElement, hooks$, viewportState$ }: {
6
+ item: Manifest[`spineItems`][number];
7
+ containerElement: HTMLElement;
8
+ iframeEventBridgeElement: HTMLElement;
9
+ context: Context;
10
+ hooks$: BehaviorSubject<Hook[]>;
11
+ viewportState$: Observable<`free` | `busy`>;
12
+ }) => {
13
+ isReflowable: boolean;
14
+ layout: ({ blankPagePosition, minimumWidth }: {
15
+ blankPagePosition: `before` | `after` | `none`;
16
+ minimumWidth: number;
17
+ }) => {
18
+ width: number;
19
+ height: number;
20
+ };
21
+ load: () => void;
22
+ adjustPositionOfElement: ({ right, left, top }: {
23
+ right?: number | undefined;
24
+ left?: number | undefined;
25
+ top?: number | undefined;
26
+ }) => void;
27
+ createLoadingElement: (containerElement: HTMLElement, item: {
28
+ id: string;
29
+ href: string;
30
+ path: string;
31
+ renditionLayout: "reflowable" | "pre-paginated";
32
+ progressionWeight: number;
33
+ pageSpreadLeft: true | undefined;
34
+ pageSpreadRight: true | undefined;
35
+ mediaType?: string | undefined;
36
+ }, context: {
37
+ load: (newManifest: Manifest, newLoadOptions: import("../types").LoadOptions) => void;
38
+ isRTL: () => boolean;
39
+ areAllItemsPrePaginated: () => boolean;
40
+ destroy: () => void;
41
+ getLoadOptions: () => import("../types").LoadOptions | undefined;
42
+ getCalculatedInnerMargin: () => number;
43
+ getVisibleAreaRect: () => {
44
+ width: number;
45
+ height: number;
46
+ x: number;
47
+ y: number;
48
+ };
49
+ shouldDisplaySpread: () => boolean;
50
+ setHasVerticalWriting: () => void;
51
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
52
+ getManifest: () => Manifest | undefined;
53
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
54
+ getPageSize: () => {
55
+ width: number;
56
+ height: number;
57
+ };
58
+ getSettings: () => import("../settings").PublicSettings & {
59
+ computedPageTurnMode: "controlled" | "scrollable";
60
+ computedPageTurnDirection: "vertical" | "horizontal";
61
+ computedPageTurnAnimation: "none" | "fade" | "slide";
62
+ computedPageTurnAnimationDuration: number;
63
+ computedSnapAnimationDuration: number;
64
+ };
65
+ setSettings: (data: Partial<import("../settings").PublicSettings>) => void;
66
+ $: {
67
+ hasVerticalWriting$: Observable<boolean>;
68
+ destroy$: Observable<void>;
69
+ settings$: Observable<import("../settings").PublicSettings & {
70
+ computedPageTurnMode: "controlled" | "scrollable";
71
+ computedPageTurnDirection: "vertical" | "horizontal";
72
+ computedPageTurnAnimation: "none" | "fade" | "slide";
73
+ computedPageTurnAnimationDuration: number;
74
+ computedSnapAnimationDuration: number;
75
+ }>;
76
+ load$: Observable<Manifest>;
77
+ };
78
+ }) => HTMLDivElement;
79
+ getElementDimensions: () => {
80
+ width: number;
81
+ height: number;
82
+ };
83
+ getHtmlFromResource: (response: Response) => Promise<string>;
84
+ getResource: () => Promise<Response>;
85
+ translateFramePositionIntoPage: (position: {
86
+ clientX: number;
87
+ clientY: number;
88
+ }) => {
89
+ clientX: number;
90
+ clientY: number;
91
+ };
92
+ setLayoutDirty: () => void;
93
+ injectStyle: (cssText: string) => void;
94
+ loadContent: () => void;
95
+ unloadContent: () => void;
96
+ spineItemFrame: {
97
+ getIsLoaded: () => boolean;
98
+ getIsReady: () => boolean;
99
+ getViewportDimensions: () => {
100
+ width: number;
101
+ height: number;
102
+ } | undefined;
103
+ getFrameElement: () => HTMLIFrameElement | undefined;
104
+ getHtmlFromResource: (response: Response) => Promise<string>;
105
+ load: () => void;
106
+ unload: () => void;
107
+ staticLayout: (size: {
108
+ width: number;
109
+ height: number;
110
+ }) => void;
111
+ getManipulableFrame: () => {
112
+ frame: HTMLIFrameElement;
113
+ removeStyle: (id: string) => void;
114
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
115
+ } | undefined;
116
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
117
+ isUsingVerticalWriting: () => boolean;
118
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
119
+ destroy: () => void;
120
+ $: {
121
+ unload$: Observable<void>;
122
+ unloaded$: Observable<void>;
123
+ loaded$: Observable<HTMLIFrameElement>;
124
+ ready$: Observable<FontFaceSet | undefined>;
125
+ isReady$: Observable<boolean>;
126
+ contentLayoutChange$: Observable<{
127
+ isFirstLayout: boolean;
128
+ } | {
129
+ isFirstLayout: boolean;
130
+ }>;
131
+ };
132
+ };
133
+ element: HTMLElement;
134
+ loadingElement: HTMLDivElement;
135
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
136
+ getViewPortInformation: () => {
137
+ computedScale: number;
138
+ computedWidthScale: number;
139
+ viewportDimensions: {
140
+ width: number;
141
+ height: number;
142
+ };
143
+ } | {
144
+ width?: number | undefined;
145
+ height?: number | undefined;
146
+ computedScale: number;
147
+ computedWidthScale: number;
148
+ viewportDimensions?: undefined;
149
+ };
150
+ isImageType: () => boolean | undefined;
151
+ isReady: () => boolean;
152
+ destroy: () => void;
153
+ isUsingVerticalWriting: () => boolean | undefined;
154
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
155
+ manipulateSpineItem: (cb: (options: {
156
+ container: HTMLElement;
157
+ loadingElement: HTMLElement;
158
+ item: {
159
+ id: string;
160
+ href: string;
161
+ path: string;
162
+ renditionLayout: "reflowable" | "pre-paginated";
163
+ progressionWeight: number;
164
+ pageSpreadLeft: true | undefined;
165
+ pageSpreadRight: true | undefined;
166
+ mediaType?: string | undefined;
167
+ };
168
+ overlayElement: HTMLDivElement;
169
+ } & ({
170
+ frame: HTMLIFrameElement;
171
+ removeStyle: (id: string) => void;
172
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
173
+ } | {
174
+ frame: undefined;
175
+ removeStyle: (id: string) => void;
176
+ addStyle: (id: string, style: string) => void;
177
+ })) => boolean) => boolean;
178
+ executeOnLayoutBeforeMeasurmentHook: (options: {
179
+ minimumWidth: number;
180
+ }) => void;
181
+ selectionTracker: {
182
+ track: (frameToTrack: HTMLIFrameElement) => void;
183
+ destroy: () => void;
184
+ isSelecting: () => boolean;
185
+ getSelection: () => Selection | undefined;
186
+ $: Observable<{
187
+ event: "selectionchange";
188
+ data: Selection | null;
189
+ } | {
190
+ event: "selectstart";
191
+ data: Selection | null;
192
+ } | {
193
+ event: "selectend";
194
+ data: Selection | null;
195
+ }>;
196
+ };
197
+ fingerTracker: {
198
+ track: (frame: HTMLIFrameElement) => void;
199
+ getFingerPositionInIframe(): {
200
+ x: number | undefined;
201
+ y: number | undefined;
202
+ } | undefined;
203
+ destroy: () => void;
204
+ $: Observable<{
205
+ event: "fingermove";
206
+ data: {
207
+ x: number;
208
+ y: number;
209
+ };
210
+ } | {
211
+ event: "fingerout";
212
+ data: undefined;
213
+ }>;
214
+ };
215
+ $: {
216
+ contentLayoutChangeSubject$: Observable<{
217
+ isFirstLayout: boolean;
218
+ isReady: boolean;
219
+ }>;
220
+ loaded$: Observable<HTMLIFrameElement>;
221
+ };
222
+ };
@@ -0,0 +1,34 @@
1
+ export declare const createFingerTracker: () => {
2
+ track: (frame: HTMLIFrameElement) => void;
3
+ getFingerPositionInIframe(): {
4
+ x: number | undefined;
5
+ y: number | undefined;
6
+ } | undefined;
7
+ destroy: () => void;
8
+ $: import("rxjs").Observable<{
9
+ event: `fingermove`;
10
+ data: {
11
+ x: number;
12
+ y: number;
13
+ };
14
+ } | {
15
+ event: `fingerout`;
16
+ data: undefined;
17
+ }>;
18
+ };
19
+ export declare const createSelectionTracker: () => {
20
+ track: (frameToTrack: HTMLIFrameElement) => void;
21
+ destroy: () => void;
22
+ isSelecting: () => boolean;
23
+ getSelection: () => Selection | undefined;
24
+ $: import("rxjs").Observable<{
25
+ event: `selectionchange`;
26
+ data: Selection | null;
27
+ } | {
28
+ event: `selectstart`;
29
+ data: Selection | null;
30
+ } | {
31
+ event: `selectend`;
32
+ data: Selection | null;
33
+ }>;
34
+ };