@prose-reader/core 0.0.48 → 0.0.49
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.
- package/dist/createReaderWithEnhancer.d.ts +6142 -698
- package/dist/enhancers/layoutEnhancer/fixReflowable.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/spine/cfiLocator.d.ts +190 -19
- package/dist/spine/locationResolver.d.ts +373 -31
- package/dist/spineItem/commonSpineItem.d.ts +24 -10
- package/dist/spineItem/createSpineItem.d.ts +15 -184
- package/dist/spineItem/prePaginatedSpineItem.d.ts +22 -10
- package/dist/spineItem/reflowableSpineItem.d.ts +21 -9
- package/dist/spineItem/styles/getStyleForViewportDocument.d.ts +1 -0
- package/dist/spineItemManager.d.ts +870 -19
- package/dist/types/Hook.d.ts +13 -3
- package/dist/viewportNavigator/manualViewportNavigator.d.ts +1368 -8
- package/dist/viewportNavigator/panViewportNavigator.d.ts +171 -1
- package/package.json +2 -2
|
@@ -2,11 +2,6 @@ import { BehaviorSubject, Observable } from "rxjs";
|
|
|
2
2
|
import { Context } from "../context";
|
|
3
3
|
import { Manifest } from "../types";
|
|
4
4
|
import { Hook } from "../types/Hook";
|
|
5
|
-
import { createPrePaginatedSpineItem } from "./prePaginatedSpineItem";
|
|
6
|
-
import { createReflowableSpineItem } from "./reflowableSpineItem";
|
|
7
|
-
export declare type SpineItem = {
|
|
8
|
-
item: Manifest[`spineItems`][number];
|
|
9
|
-
} & (ReturnType<typeof createPrePaginatedSpineItem> | ReturnType<typeof createReflowableSpineItem>);
|
|
10
5
|
export declare const createSpineItem: ({ item, context, containerElement, iframeEventBridgeElement, hooks$, viewportState$ }: {
|
|
11
6
|
item: Manifest[`spineItems`][number];
|
|
12
7
|
containerElement: HTMLElement;
|
|
@@ -15,163 +10,14 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
|
|
|
15
10
|
hooks$: BehaviorSubject<Hook[]>;
|
|
16
11
|
viewportState$: Observable<`free` | `busy`>;
|
|
17
12
|
}) => {
|
|
18
|
-
layout: (
|
|
19
|
-
blankPagePosition: "
|
|
13
|
+
layout: ({ blankPagePosition, minimumWidth, spreadPosition }: {
|
|
14
|
+
blankPagePosition: "before" | "after" | "none";
|
|
20
15
|
minimumWidth: number;
|
|
21
|
-
spreadPosition: "
|
|
16
|
+
spreadPosition: "none" | "right" | "left";
|
|
22
17
|
}) => {
|
|
23
18
|
width: number;
|
|
24
19
|
height: number;
|
|
25
20
|
};
|
|
26
|
-
load: () => void;
|
|
27
|
-
adjustPositionOfElement: ({ right, left, top }: {
|
|
28
|
-
right?: number | undefined;
|
|
29
|
-
left?: number | undefined;
|
|
30
|
-
top?: number | undefined;
|
|
31
|
-
}) => void;
|
|
32
|
-
getElementDimensions: () => {
|
|
33
|
-
width: number;
|
|
34
|
-
height: number;
|
|
35
|
-
};
|
|
36
|
-
getHtmlFromResource: (response: Response) => Promise<string>;
|
|
37
|
-
getResource: () => Promise<Response>;
|
|
38
|
-
translateFramePositionIntoPage: (position: {
|
|
39
|
-
clientX: number;
|
|
40
|
-
clientY: number;
|
|
41
|
-
}) => {
|
|
42
|
-
clientX: number;
|
|
43
|
-
clientY: number;
|
|
44
|
-
};
|
|
45
|
-
setLayoutDirty: () => void;
|
|
46
|
-
injectStyle: (cssText: string) => void;
|
|
47
|
-
loadContent: () => void;
|
|
48
|
-
unloadContent: () => void;
|
|
49
|
-
spineItemFrame: {
|
|
50
|
-
getIsLoaded: () => boolean;
|
|
51
|
-
getIsReady: () => boolean;
|
|
52
|
-
getViewportDimensions: () => {
|
|
53
|
-
width: number;
|
|
54
|
-
height: number;
|
|
55
|
-
} | undefined;
|
|
56
|
-
getFrameElement: () => HTMLIFrameElement | undefined;
|
|
57
|
-
getHtmlFromResource: (response: Response) => Promise<string>;
|
|
58
|
-
load: () => void;
|
|
59
|
-
unload: () => void;
|
|
60
|
-
staticLayout: (size: {
|
|
61
|
-
width: number;
|
|
62
|
-
height: number;
|
|
63
|
-
}) => void;
|
|
64
|
-
getManipulableFrame: () => {
|
|
65
|
-
frame: HTMLIFrameElement;
|
|
66
|
-
removeStyle: (id: string) => void;
|
|
67
|
-
addStyle: (id: string, style: string, prepend?: boolean) => void;
|
|
68
|
-
} | undefined;
|
|
69
|
-
getReadingDirection: () => "ltr" | "rtl" | undefined;
|
|
70
|
-
isUsingVerticalWriting: () => boolean;
|
|
71
|
-
getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
|
|
72
|
-
destroy: () => void;
|
|
73
|
-
$: {
|
|
74
|
-
unload$: Observable<void>;
|
|
75
|
-
unloaded$: Observable<void>;
|
|
76
|
-
loaded$: Observable<HTMLIFrameElement>;
|
|
77
|
-
ready$: Observable<FontFaceSet | undefined>;
|
|
78
|
-
isReady$: Observable<boolean>;
|
|
79
|
-
contentLayoutChange$: Observable<{
|
|
80
|
-
isFirstLayout: boolean;
|
|
81
|
-
} | {
|
|
82
|
-
isFirstLayout: boolean;
|
|
83
|
-
}>;
|
|
84
|
-
};
|
|
85
|
-
};
|
|
86
|
-
element: HTMLElement;
|
|
87
|
-
isReflowable: boolean;
|
|
88
|
-
getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
|
|
89
|
-
getViewPortInformation: () => {
|
|
90
|
-
computedScale: number;
|
|
91
|
-
computedWidthScale: number;
|
|
92
|
-
viewportDimensions: {
|
|
93
|
-
width: number;
|
|
94
|
-
height: number;
|
|
95
|
-
};
|
|
96
|
-
} | {
|
|
97
|
-
width?: number | undefined;
|
|
98
|
-
height?: number | undefined;
|
|
99
|
-
computedScale: number;
|
|
100
|
-
computedWidthScale: number;
|
|
101
|
-
viewportDimensions?: undefined;
|
|
102
|
-
};
|
|
103
|
-
isImageType: () => boolean;
|
|
104
|
-
isReady: () => boolean;
|
|
105
|
-
destroy: () => void;
|
|
106
|
-
isUsingVerticalWriting: () => boolean | undefined;
|
|
107
|
-
getReadingDirection: () => "ltr" | "rtl" | undefined;
|
|
108
|
-
manipulateSpineItem: (cb: (options: {
|
|
109
|
-
container: HTMLElement;
|
|
110
|
-
item: {
|
|
111
|
-
id: string;
|
|
112
|
-
href: string;
|
|
113
|
-
path: string;
|
|
114
|
-
renditionLayout: "reflowable" | "pre-paginated";
|
|
115
|
-
progressionWeight: number;
|
|
116
|
-
pageSpreadLeft: true | undefined;
|
|
117
|
-
pageSpreadRight: true | undefined;
|
|
118
|
-
mediaType?: string | undefined;
|
|
119
|
-
};
|
|
120
|
-
overlayElement: HTMLDivElement;
|
|
121
|
-
} & ({
|
|
122
|
-
frame: HTMLIFrameElement;
|
|
123
|
-
removeStyle: (id: string) => void;
|
|
124
|
-
addStyle: (id: string, style: string, prepend?: boolean) => void;
|
|
125
|
-
} | {
|
|
126
|
-
frame: undefined;
|
|
127
|
-
removeStyle: (id: string) => void;
|
|
128
|
-
addStyle: (id: string, style: string) => void;
|
|
129
|
-
})) => boolean) => boolean;
|
|
130
|
-
executeOnLayoutBeforeMeasurmentHook: (options: {
|
|
131
|
-
minimumWidth: number;
|
|
132
|
-
}) => void;
|
|
133
|
-
selectionTracker: {
|
|
134
|
-
track: (frameToTrack: HTMLIFrameElement) => void;
|
|
135
|
-
destroy: () => void;
|
|
136
|
-
isSelecting: () => boolean;
|
|
137
|
-
getSelection: () => Selection | undefined;
|
|
138
|
-
$: Observable<{
|
|
139
|
-
event: "selectionchange";
|
|
140
|
-
data: Selection | null;
|
|
141
|
-
} | {
|
|
142
|
-
event: "selectstart";
|
|
143
|
-
data: Selection | null;
|
|
144
|
-
} | {
|
|
145
|
-
event: "selectend";
|
|
146
|
-
data: Selection | null;
|
|
147
|
-
}>;
|
|
148
|
-
};
|
|
149
|
-
fingerTracker: {
|
|
150
|
-
track: (frame: HTMLIFrameElement) => void;
|
|
151
|
-
getFingerPositionInIframe(): {
|
|
152
|
-
x: number | undefined;
|
|
153
|
-
y: number | undefined;
|
|
154
|
-
} | undefined;
|
|
155
|
-
destroy: () => void;
|
|
156
|
-
$: Observable<{
|
|
157
|
-
event: "fingermove";
|
|
158
|
-
data: {
|
|
159
|
-
x: number;
|
|
160
|
-
y: number;
|
|
161
|
-
};
|
|
162
|
-
} | {
|
|
163
|
-
event: "fingerout";
|
|
164
|
-
data: undefined;
|
|
165
|
-
}>;
|
|
166
|
-
};
|
|
167
|
-
$: {
|
|
168
|
-
contentLayout$: Observable<{
|
|
169
|
-
isFirstLayout: boolean;
|
|
170
|
-
isReady: boolean;
|
|
171
|
-
}>;
|
|
172
|
-
loaded$: Observable<HTMLIFrameElement>;
|
|
173
|
-
isReady$: Observable<boolean>;
|
|
174
|
-
};
|
|
175
21
|
item: {
|
|
176
22
|
id: string;
|
|
177
23
|
href: string;
|
|
@@ -182,15 +28,6 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
|
|
|
182
28
|
pageSpreadRight: true | undefined;
|
|
183
29
|
mediaType?: string | undefined;
|
|
184
30
|
};
|
|
185
|
-
} | {
|
|
186
|
-
isReflowable: boolean;
|
|
187
|
-
layout: ({ blankPagePosition, minimumWidth }: {
|
|
188
|
-
blankPagePosition: "after" | "before" | "none";
|
|
189
|
-
minimumWidth: number;
|
|
190
|
-
}) => {
|
|
191
|
-
width: number;
|
|
192
|
-
height: number;
|
|
193
|
-
};
|
|
194
31
|
load: () => void;
|
|
195
32
|
adjustPositionOfElement: ({ right, left, top }: {
|
|
196
33
|
right?: number | undefined;
|
|
@@ -260,13 +97,7 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
|
|
|
260
97
|
width: number;
|
|
261
98
|
height: number;
|
|
262
99
|
};
|
|
263
|
-
} |
|
|
264
|
-
width?: number | undefined;
|
|
265
|
-
height?: number | undefined;
|
|
266
|
-
computedScale: number;
|
|
267
|
-
computedWidthScale: number;
|
|
268
|
-
viewportDimensions?: undefined;
|
|
269
|
-
};
|
|
100
|
+
} | undefined;
|
|
270
101
|
isImageType: () => boolean;
|
|
271
102
|
isReady: () => boolean;
|
|
272
103
|
destroy: () => void;
|
|
@@ -294,7 +125,7 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
|
|
|
294
125
|
removeStyle: (id: string) => void;
|
|
295
126
|
addStyle: (id: string, style: string) => void;
|
|
296
127
|
})) => boolean) => boolean;
|
|
297
|
-
|
|
128
|
+
executeOnLayoutBeforeMeasurementHook: (options: {
|
|
298
129
|
minimumWidth: number;
|
|
299
130
|
}) => void;
|
|
300
131
|
selectionTracker: {
|
|
@@ -331,6 +162,15 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
|
|
|
331
162
|
data: undefined;
|
|
332
163
|
}>;
|
|
333
164
|
};
|
|
165
|
+
getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
|
|
166
|
+
columnHeight: number;
|
|
167
|
+
columnWidth: number;
|
|
168
|
+
width: number;
|
|
169
|
+
};
|
|
170
|
+
getDimensionsForPaginatedContent: () => {
|
|
171
|
+
columnHeight: number;
|
|
172
|
+
columnWidth: number;
|
|
173
|
+
};
|
|
334
174
|
$: {
|
|
335
175
|
contentLayout$: Observable<{
|
|
336
176
|
isFirstLayout: boolean;
|
|
@@ -339,14 +179,5 @@ export declare const createSpineItem: ({ item, context, containerElement, iframe
|
|
|
339
179
|
loaded$: Observable<HTMLIFrameElement>;
|
|
340
180
|
isReady$: Observable<boolean>;
|
|
341
181
|
};
|
|
342
|
-
item: {
|
|
343
|
-
id: string;
|
|
344
|
-
href: string;
|
|
345
|
-
path: string;
|
|
346
|
-
renditionLayout: "reflowable" | "pre-paginated";
|
|
347
|
-
progressionWeight: number;
|
|
348
|
-
pageSpreadLeft: true | undefined;
|
|
349
|
-
pageSpreadRight: true | undefined;
|
|
350
|
-
mediaType?: string | undefined;
|
|
351
|
-
};
|
|
352
182
|
};
|
|
183
|
+
export declare type SpineItem = ReturnType<typeof createSpineItem>;
|
|
@@ -10,7 +10,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
|
|
|
10
10
|
hooks$: BehaviorSubject<Hook[]>;
|
|
11
11
|
viewportState$: Observable<`free` | `busy`>;
|
|
12
12
|
}) => {
|
|
13
|
-
layout: (
|
|
13
|
+
layout: ({ blankPagePosition, minimumWidth, spreadPosition }: {
|
|
14
14
|
blankPagePosition: `before` | `after` | `none`;
|
|
15
15
|
minimumWidth: number;
|
|
16
16
|
spreadPosition: `none` | `left` | `right`;
|
|
@@ -18,6 +18,16 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
|
|
|
18
18
|
width: number;
|
|
19
19
|
height: number;
|
|
20
20
|
};
|
|
21
|
+
item: {
|
|
22
|
+
id: string;
|
|
23
|
+
href: string;
|
|
24
|
+
path: string;
|
|
25
|
+
renditionLayout: "reflowable" | "pre-paginated";
|
|
26
|
+
progressionWeight: number;
|
|
27
|
+
pageSpreadLeft: true | undefined;
|
|
28
|
+
pageSpreadRight: true | undefined;
|
|
29
|
+
mediaType?: string | undefined;
|
|
30
|
+
};
|
|
21
31
|
load: () => void;
|
|
22
32
|
adjustPositionOfElement: ({ right, left, top }: {
|
|
23
33
|
right?: number | undefined;
|
|
@@ -79,7 +89,6 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
|
|
|
79
89
|
};
|
|
80
90
|
};
|
|
81
91
|
element: HTMLElement;
|
|
82
|
-
isReflowable: boolean;
|
|
83
92
|
getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
|
|
84
93
|
getViewPortInformation: () => {
|
|
85
94
|
computedScale: number;
|
|
@@ -88,13 +97,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
|
|
|
88
97
|
width: number;
|
|
89
98
|
height: number;
|
|
90
99
|
};
|
|
91
|
-
} |
|
|
92
|
-
width?: number | undefined;
|
|
93
|
-
height?: number | undefined;
|
|
94
|
-
computedScale: number;
|
|
95
|
-
computedWidthScale: number;
|
|
96
|
-
viewportDimensions?: undefined;
|
|
97
|
-
};
|
|
100
|
+
} | undefined;
|
|
98
101
|
isImageType: () => boolean;
|
|
99
102
|
isReady: () => boolean;
|
|
100
103
|
destroy: () => void;
|
|
@@ -122,7 +125,7 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
|
|
|
122
125
|
removeStyle: (id: string) => void;
|
|
123
126
|
addStyle: (id: string, style: string) => void;
|
|
124
127
|
})) => boolean) => boolean;
|
|
125
|
-
|
|
128
|
+
executeOnLayoutBeforeMeasurementHook: (options: {
|
|
126
129
|
minimumWidth: number;
|
|
127
130
|
}) => void;
|
|
128
131
|
selectionTracker: {
|
|
@@ -159,6 +162,15 @@ export declare const createPrePaginatedSpineItem: ({ item, context, containerEle
|
|
|
159
162
|
data: undefined;
|
|
160
163
|
}>;
|
|
161
164
|
};
|
|
165
|
+
getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
|
|
166
|
+
columnHeight: number;
|
|
167
|
+
columnWidth: number;
|
|
168
|
+
width: number;
|
|
169
|
+
};
|
|
170
|
+
getDimensionsForPaginatedContent: () => {
|
|
171
|
+
columnHeight: number;
|
|
172
|
+
columnWidth: number;
|
|
173
|
+
};
|
|
162
174
|
$: {
|
|
163
175
|
contentLayout$: Observable<{
|
|
164
176
|
isFirstLayout: boolean;
|
|
@@ -10,7 +10,6 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
|
|
|
10
10
|
hooks$: BehaviorSubject<Hook[]>;
|
|
11
11
|
viewportState$: Observable<`free` | `busy`>;
|
|
12
12
|
}) => {
|
|
13
|
-
isReflowable: boolean;
|
|
14
13
|
layout: ({ blankPagePosition, minimumWidth }: {
|
|
15
14
|
blankPagePosition: `before` | `after` | `none`;
|
|
16
15
|
minimumWidth: number;
|
|
@@ -18,6 +17,16 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
|
|
|
18
17
|
width: number;
|
|
19
18
|
height: number;
|
|
20
19
|
};
|
|
20
|
+
item: {
|
|
21
|
+
id: string;
|
|
22
|
+
href: string;
|
|
23
|
+
path: string;
|
|
24
|
+
renditionLayout: "reflowable" | "pre-paginated";
|
|
25
|
+
progressionWeight: number;
|
|
26
|
+
pageSpreadLeft: true | undefined;
|
|
27
|
+
pageSpreadRight: true | undefined;
|
|
28
|
+
mediaType?: string | undefined;
|
|
29
|
+
};
|
|
21
30
|
load: () => void;
|
|
22
31
|
adjustPositionOfElement: ({ right, left, top }: {
|
|
23
32
|
right?: number | undefined;
|
|
@@ -87,13 +96,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
|
|
|
87
96
|
width: number;
|
|
88
97
|
height: number;
|
|
89
98
|
};
|
|
90
|
-
} |
|
|
91
|
-
width?: number | undefined;
|
|
92
|
-
height?: number | undefined;
|
|
93
|
-
computedScale: number;
|
|
94
|
-
computedWidthScale: number;
|
|
95
|
-
viewportDimensions?: undefined;
|
|
96
|
-
};
|
|
99
|
+
} | undefined;
|
|
97
100
|
isImageType: () => boolean;
|
|
98
101
|
isReady: () => boolean;
|
|
99
102
|
destroy: () => void;
|
|
@@ -121,7 +124,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
|
|
|
121
124
|
removeStyle: (id: string) => void;
|
|
122
125
|
addStyle: (id: string, style: string) => void;
|
|
123
126
|
})) => boolean) => boolean;
|
|
124
|
-
|
|
127
|
+
executeOnLayoutBeforeMeasurementHook: (options: {
|
|
125
128
|
minimumWidth: number;
|
|
126
129
|
}) => void;
|
|
127
130
|
selectionTracker: {
|
|
@@ -158,6 +161,15 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
|
|
|
158
161
|
data: undefined;
|
|
159
162
|
}>;
|
|
160
163
|
};
|
|
164
|
+
getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
|
|
165
|
+
columnHeight: number;
|
|
166
|
+
columnWidth: number;
|
|
167
|
+
width: number;
|
|
168
|
+
};
|
|
169
|
+
getDimensionsForPaginatedContent: () => {
|
|
170
|
+
columnHeight: number;
|
|
171
|
+
columnWidth: number;
|
|
172
|
+
};
|
|
161
173
|
$: {
|
|
162
174
|
contentLayout$: Observable<{
|
|
163
175
|
isFirstLayout: boolean;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getStyleForViewportDocument: () => string;
|