@prose-reader/core 0.0.39 → 0.0.40

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/context.d.ts CHANGED
@@ -1,12 +1,14 @@
1
+ import { Observable } from "rxjs";
1
2
  import { LoadOptions } from "./types";
2
3
  import { Manifest } from "@prose-reader/shared";
3
- import { createSettings } from "./settings";
4
- export declare type ContextObservableEvents = {};
5
- export declare const createContext: (initialSettings: Parameters<typeof createSettings>[0]) => {
4
+ import { createSettings, PublicSettings } from "./settings";
5
+ declare type SettingsManager = ReturnType<typeof createSettings>;
6
+ export declare type Context = {
6
7
  load: (newManifest: Manifest, newLoadOptions: LoadOptions) => void;
7
- isRTL: () => boolean;
8
+ setSettings: (data: Partial<PublicSettings>) => void;
9
+ getSettings: () => ReturnType<SettingsManager[`getSettings`]>;
10
+ getManifest: () => Manifest | undefined;
8
11
  areAllItemsPrePaginated: () => boolean;
9
- destroy: () => void;
10
12
  getLoadOptions: () => LoadOptions | undefined;
11
13
  getCalculatedInnerMargin: () => number;
12
14
  getVisibleAreaRect: () => {
@@ -17,32 +19,21 @@ export declare const createContext: (initialSettings: Parameters<typeof createSe
17
19
  };
18
20
  shouldDisplaySpread: () => boolean;
19
21
  setHasVerticalWriting: () => void;
20
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
21
- getManifest: () => Manifest | undefined;
22
- getReadingDirection: () => "ltr" | "rtl" | undefined;
22
+ getReadingDirection: () => Manifest[`readingDirection`] | undefined;
23
23
  getPageSize: () => {
24
- width: number;
25
24
  height: number;
25
+ width: number;
26
26
  };
27
- getSettings: () => import("./settings").PublicSettings & {
28
- computedPageTurnMode: "controlled" | "scrollable";
29
- computedPageTurnDirection: "vertical" | "horizontal";
30
- computedPageTurnAnimation: "none" | "fade" | "slide";
31
- computedPageTurnAnimationDuration: number;
32
- computedSnapAnimationDuration: number;
33
- };
34
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
27
+ setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
28
+ isRTL: () => boolean;
29
+ destroy: () => void;
35
30
  $: {
36
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
37
- destroy$: import("rxjs").Observable<void>;
38
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
39
- computedPageTurnMode: "controlled" | "scrollable";
40
- computedPageTurnDirection: "vertical" | "horizontal";
41
- computedPageTurnAnimation: "none" | "fade" | "slide";
42
- computedPageTurnAnimationDuration: number;
43
- computedSnapAnimationDuration: number;
44
- }>;
45
- load$: import("rxjs").Observable<Manifest>;
31
+ hasVerticalWriting$: Observable<boolean>;
32
+ settings$: Observable<ReturnType<SettingsManager[`getSettings`]>>;
33
+ destroy$: Observable<void>;
34
+ load$: Observable<Manifest>;
46
35
  };
47
36
  };
48
- export declare type Context = ReturnType<typeof createContext>;
37
+ export declare type ContextObservableEvents = {};
38
+ export declare const createContext: (initialSettings: Parameters<typeof createSettings>[0]) => Context;
39
+ export {};
@@ -1,4 +1,4 @@
1
- import { ComposableEnhancer, ComposeEnhancer } from './enhancers/composeEnhancer';
1
+ import { ComposableEnhancer, ComposeEnhancer2 } from './enhancers/composeEnhancer';
2
2
  import { Enhancer } from './enhancers/types';
3
3
  import { Reader as ReaderPublicApi } from './reader';
4
4
  declare const withPublicApiOnly: <Api extends {
@@ -37,97 +37,13 @@ declare const withPublicApiOnly: <Api extends {
37
37
  }>(reader: Api) => Omit<Api, "context" | "spine" | "manipulateSpineItems" | "manipulateContainer" | "getFocusedSpineItemIndex" | "getSpineItem" | "getAbsolutePositionOf" | "getCfiMetaInformation" | "resolveCfi" | "generateCfi" | "locator" | "getCurrentNavigationPosition">;
38
38
  declare type ReaderPublicApiWithSafeExposedKeys = ReturnType<typeof withPublicApiOnly>;
39
39
  declare type RemovedKeysOnly = keyof Omit<ReaderPublicApi, keyof ReaderPublicApiWithSafeExposedKeys>;
40
- declare const internalEnhancer: ComposeEnhancer<Enhancer<{}, {
40
+ declare const internalEnhancer: import("./enhancers/composeEnhancer").ComposeEnhancer<Enhancer<{}, {
41
41
  progression: {
42
- getPercentageEstimate: (context: {
43
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
44
- isRTL: () => boolean;
45
- areAllItemsPrePaginated: () => boolean;
46
- destroy: () => void;
47
- getLoadOptions: () => import("./types").LoadOptions | undefined;
48
- getCalculatedInnerMargin: () => number;
49
- getVisibleAreaRect: () => {
50
- width: number;
51
- height: number;
52
- x: number;
53
- y: number;
54
- };
55
- shouldDisplaySpread: () => boolean;
56
- setHasVerticalWriting: () => void;
57
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
58
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
59
- getReadingDirection: () => "ltr" | "rtl" | undefined;
60
- getPageSize: () => {
61
- width: number;
62
- height: number;
63
- };
64
- getSettings: () => import("./settings").PublicSettings & {
65
- computedPageTurnMode: "controlled" | "scrollable";
66
- computedPageTurnDirection: "vertical" | "horizontal";
67
- computedPageTurnAnimation: "none" | "fade" | "slide";
68
- computedPageTurnAnimationDuration: number;
69
- computedSnapAnimationDuration: number;
70
- };
71
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
72
- $: {
73
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
74
- destroy$: import("rxjs").Observable<void>;
75
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
76
- computedPageTurnMode: "controlled" | "scrollable";
77
- computedPageTurnDirection: "vertical" | "horizontal";
78
- computedPageTurnAnimation: "none" | "fade" | "slide";
79
- computedPageTurnAnimationDuration: number;
80
- computedSnapAnimationDuration: number;
81
- }>;
82
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
83
- };
84
- }, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
42
+ getPercentageEstimate: (context: import("./context").Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
85
43
  x: number;
86
44
  y: number;
87
45
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
88
- getScrollPercentageWithinItem: (context: {
89
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
90
- isRTL: () => boolean;
91
- areAllItemsPrePaginated: () => boolean;
92
- destroy: () => void;
93
- getLoadOptions: () => import("./types").LoadOptions | undefined;
94
- getCalculatedInnerMargin: () => number;
95
- getVisibleAreaRect: () => {
96
- width: number;
97
- height: number;
98
- x: number;
99
- y: number;
100
- };
101
- shouldDisplaySpread: () => boolean;
102
- setHasVerticalWriting: () => void;
103
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
104
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
105
- getReadingDirection: () => "ltr" | "rtl" | undefined;
106
- getPageSize: () => {
107
- width: number;
108
- height: number;
109
- };
110
- getSettings: () => import("./settings").PublicSettings & {
111
- computedPageTurnMode: "controlled" | "scrollable";
112
- computedPageTurnDirection: "vertical" | "horizontal";
113
- computedPageTurnAnimation: "none" | "fade" | "slide";
114
- computedPageTurnAnimationDuration: number;
115
- computedSnapAnimationDuration: number;
116
- };
117
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
118
- $: {
119
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
120
- destroy$: import("rxjs").Observable<void>;
121
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
122
- computedPageTurnMode: "controlled" | "scrollable";
123
- computedPageTurnDirection: "vertical" | "horizontal";
124
- computedPageTurnAnimation: "none" | "fade" | "slide";
125
- computedPageTurnAnimationDuration: number;
126
- computedSnapAnimationDuration: number;
127
- }>;
128
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
129
- };
130
- }, currentPosition: {
46
+ getScrollPercentageWithinItem: (context: import("./context").Context, currentPosition: {
131
47
  x: number;
132
48
  y: number;
133
49
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
@@ -186,143 +102,17 @@ declare const internalEnhancer: ComposeEnhancer<Enhancer<{}, {
186
102
  };
187
103
  }, {}, {}, Enhancer<{}, {
188
104
  progression: {
189
- getPercentageEstimate: (context: {
190
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
191
- isRTL: () => boolean;
192
- areAllItemsPrePaginated: () => boolean;
193
- destroy: () => void;
194
- getLoadOptions: () => import("./types").LoadOptions | undefined;
195
- getCalculatedInnerMargin: () => number;
196
- getVisibleAreaRect: () => {
197
- width: number;
198
- height: number;
199
- x: number;
200
- y: number;
201
- };
202
- shouldDisplaySpread: () => boolean;
203
- setHasVerticalWriting: () => void;
204
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
205
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
206
- getReadingDirection: () => "ltr" | "rtl" | undefined;
207
- getPageSize: () => {
208
- width: number;
209
- height: number;
210
- };
211
- getSettings: () => import("./settings").PublicSettings & {
212
- computedPageTurnMode: "controlled" | "scrollable";
213
- computedPageTurnDirection: "vertical" | "horizontal";
214
- computedPageTurnAnimation: "none" | "fade" | "slide";
215
- computedPageTurnAnimationDuration: number;
216
- computedSnapAnimationDuration: number;
217
- };
218
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
219
- $: {
220
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
221
- destroy$: import("rxjs").Observable<void>;
222
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
223
- computedPageTurnMode: "controlled" | "scrollable";
224
- computedPageTurnDirection: "vertical" | "horizontal";
225
- computedPageTurnAnimation: "none" | "fade" | "slide";
226
- computedPageTurnAnimationDuration: number;
227
- computedSnapAnimationDuration: number;
228
- }>;
229
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
230
- };
231
- }, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
105
+ getPercentageEstimate: (context: import("./context").Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
232
106
  x: number;
233
107
  y: number;
234
108
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
235
- getScrollPercentageWithinItem: (context: {
236
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
237
- isRTL: () => boolean;
238
- areAllItemsPrePaginated: () => boolean;
239
- destroy: () => void;
240
- getLoadOptions: () => import("./types").LoadOptions | undefined;
241
- getCalculatedInnerMargin: () => number;
242
- getVisibleAreaRect: () => {
243
- width: number;
244
- height: number;
245
- x: number;
246
- y: number;
247
- };
248
- shouldDisplaySpread: () => boolean;
249
- setHasVerticalWriting: () => void;
250
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
251
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
252
- getReadingDirection: () => "ltr" | "rtl" | undefined;
253
- getPageSize: () => {
254
- width: number;
255
- height: number;
256
- };
257
- getSettings: () => import("./settings").PublicSettings & {
258
- computedPageTurnMode: "controlled" | "scrollable";
259
- computedPageTurnDirection: "vertical" | "horizontal";
260
- computedPageTurnAnimation: "none" | "fade" | "slide";
261
- computedPageTurnAnimationDuration: number;
262
- computedSnapAnimationDuration: number;
263
- };
264
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
265
- $: {
266
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
267
- destroy$: import("rxjs").Observable<void>;
268
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
269
- computedPageTurnMode: "controlled" | "scrollable";
270
- computedPageTurnDirection: "vertical" | "horizontal";
271
- computedPageTurnAnimation: "none" | "fade" | "slide";
272
- computedPageTurnAnimationDuration: number;
273
- computedSnapAnimationDuration: number;
274
- }>;
275
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
276
- };
277
- }, currentPosition: {
109
+ getScrollPercentageWithinItem: (context: import("./context").Context, currentPosition: {
278
110
  x: number;
279
111
  y: number;
280
112
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
281
113
  };
282
114
  }, {}, {}, (createReader: (options: import("./reader").CreateReaderOptions) => ReaderPublicApi) => (options: import("./reader").CreateReaderOptions) => ReaderPublicApi, ReaderPublicApi>, {
283
- context: {
284
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
285
- isRTL: () => boolean;
286
- areAllItemsPrePaginated: () => boolean;
287
- destroy: () => void;
288
- getLoadOptions: () => import("./types").LoadOptions | undefined;
289
- getCalculatedInnerMargin: () => number;
290
- getVisibleAreaRect: () => {
291
- width: number;
292
- height: number;
293
- x: number;
294
- y: number;
295
- };
296
- shouldDisplaySpread: () => boolean;
297
- setHasVerticalWriting: () => void;
298
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
299
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
300
- getReadingDirection: () => "ltr" | "rtl" | undefined;
301
- getPageSize: () => {
302
- width: number;
303
- height: number;
304
- };
305
- getSettings: () => import("./settings").PublicSettings & {
306
- computedPageTurnMode: "controlled" | "scrollable";
307
- computedPageTurnDirection: "vertical" | "horizontal";
308
- computedPageTurnAnimation: "none" | "fade" | "slide";
309
- computedPageTurnAnimationDuration: number;
310
- computedSnapAnimationDuration: number;
311
- };
312
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
313
- $: {
314
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
315
- destroy$: import("rxjs").Observable<void>;
316
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
317
- computedPageTurnMode: "controlled" | "scrollable";
318
- computedPageTurnDirection: "vertical" | "horizontal";
319
- computedPageTurnAnimation: "none" | "fade" | "slide";
320
- computedPageTurnAnimationDuration: number;
321
- computedSnapAnimationDuration: number;
322
- }>;
323
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
324
- };
325
- };
115
+ context: import("./context").Context;
326
116
  registerHook: import("./types/Hook").RegisterHook;
327
117
  spine: import("./types/Spine").Spine;
328
118
  manipulateSpineItems: (cb: (payload: ({
@@ -933,95 +723,11 @@ declare const internalEnhancer: ComposeEnhancer<Enhancer<{}, {
933
723
  setSettings: (settings: Partial<import("./settings").PublicSettings>) => void;
934
724
  } & {
935
725
  progression: {
936
- getPercentageEstimate: (context: {
937
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
938
- isRTL: () => boolean;
939
- areAllItemsPrePaginated: () => boolean;
940
- destroy: () => void;
941
- getLoadOptions: () => import("./types").LoadOptions | undefined;
942
- getCalculatedInnerMargin: () => number;
943
- getVisibleAreaRect: () => {
944
- width: number;
945
- height: number;
946
- x: number;
947
- y: number;
948
- };
949
- shouldDisplaySpread: () => boolean;
950
- setHasVerticalWriting: () => void;
951
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
952
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
953
- getReadingDirection: () => "ltr" | "rtl" | undefined;
954
- getPageSize: () => {
955
- width: number;
956
- height: number;
957
- };
958
- getSettings: () => import("./settings").PublicSettings & {
959
- computedPageTurnMode: "controlled" | "scrollable";
960
- computedPageTurnDirection: "vertical" | "horizontal";
961
- computedPageTurnAnimation: "none" | "fade" | "slide";
962
- computedPageTurnAnimationDuration: number;
963
- computedSnapAnimationDuration: number;
964
- };
965
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
966
- $: {
967
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
968
- destroy$: import("rxjs").Observable<void>;
969
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
970
- computedPageTurnMode: "controlled" | "scrollable";
971
- computedPageTurnDirection: "vertical" | "horizontal";
972
- computedPageTurnAnimation: "none" | "fade" | "slide";
973
- computedPageTurnAnimationDuration: number;
974
- computedSnapAnimationDuration: number;
975
- }>;
976
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
977
- };
978
- }, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
726
+ getPercentageEstimate: (context: import("./context").Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
979
727
  x: number;
980
728
  y: number;
981
729
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
982
- getScrollPercentageWithinItem: (context: {
983
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
984
- isRTL: () => boolean;
985
- areAllItemsPrePaginated: () => boolean;
986
- destroy: () => void;
987
- getLoadOptions: () => import("./types").LoadOptions | undefined;
988
- getCalculatedInnerMargin: () => number;
989
- getVisibleAreaRect: () => {
990
- width: number;
991
- height: number;
992
- x: number;
993
- y: number;
994
- };
995
- shouldDisplaySpread: () => boolean;
996
- setHasVerticalWriting: () => void;
997
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
998
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
999
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1000
- getPageSize: () => {
1001
- width: number;
1002
- height: number;
1003
- };
1004
- getSettings: () => import("./settings").PublicSettings & {
1005
- computedPageTurnMode: "controlled" | "scrollable";
1006
- computedPageTurnDirection: "vertical" | "horizontal";
1007
- computedPageTurnAnimation: "none" | "fade" | "slide";
1008
- computedPageTurnAnimationDuration: number;
1009
- computedSnapAnimationDuration: number;
1010
- };
1011
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
1012
- $: {
1013
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
1014
- destroy$: import("rxjs").Observable<void>;
1015
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
1016
- computedPageTurnMode: "controlled" | "scrollable";
1017
- computedPageTurnDirection: "vertical" | "horizontal";
1018
- computedPageTurnAnimation: "none" | "fade" | "slide";
1019
- computedPageTurnAnimationDuration: number;
1020
- computedSnapAnimationDuration: number;
1021
- }>;
1022
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
1023
- };
1024
- }, currentPosition: {
730
+ getScrollPercentageWithinItem: (context: import("./context").Context, currentPosition: {
1025
731
  x: number;
1026
732
  y: number;
1027
733
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
@@ -1029,95 +735,11 @@ declare const internalEnhancer: ComposeEnhancer<Enhancer<{}, {
1029
735
  }, "context" | "registerHook" | "spine" | "manipulateSpineItems" | "manipulateSpineItem" | "manipulateContainer" | "moveTo" | "turnLeft" | "turnRight" | "goToPageOfCurrentChapter" | "goToPage" | "goToUrl" | "goToCfi" | "goToSpineItem" | "getFocusedSpineItemIndex" | "getSpineItem" | "getSpineItems" | "getAbsolutePositionOf" | "getSelection" | "isSelecting" | "normalizeEventForViewport" | "getCfiMetaInformation" | "resolveCfi" | "generateCfi" | "locator" | "getCurrentNavigationPosition" | "getCurrentViewportPosition" | "layout" | "load" | "destroy" | "setSettings" | "$"> & {
1030
736
  __API?: {
1031
737
  progression: {
1032
- getPercentageEstimate: (context: {
1033
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
1034
- isRTL: () => boolean;
1035
- areAllItemsPrePaginated: () => boolean;
1036
- destroy: () => void;
1037
- getLoadOptions: () => import("./types").LoadOptions | undefined;
1038
- getCalculatedInnerMargin: () => number;
1039
- getVisibleAreaRect: () => {
1040
- width: number;
1041
- height: number;
1042
- x: number;
1043
- y: number;
1044
- };
1045
- shouldDisplaySpread: () => boolean;
1046
- setHasVerticalWriting: () => void;
1047
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
1048
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
1049
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1050
- getPageSize: () => {
1051
- width: number;
1052
- height: number;
1053
- };
1054
- getSettings: () => import("./settings").PublicSettings & {
1055
- computedPageTurnMode: "controlled" | "scrollable";
1056
- computedPageTurnDirection: "vertical" | "horizontal";
1057
- computedPageTurnAnimation: "none" | "fade" | "slide";
1058
- computedPageTurnAnimationDuration: number;
1059
- computedSnapAnimationDuration: number;
1060
- };
1061
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
1062
- $: {
1063
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
1064
- destroy$: import("rxjs").Observable<void>;
1065
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
1066
- computedPageTurnMode: "controlled" | "scrollable";
1067
- computedPageTurnDirection: "vertical" | "horizontal";
1068
- computedPageTurnAnimation: "none" | "fade" | "slide";
1069
- computedPageTurnAnimationDuration: number;
1070
- computedSnapAnimationDuration: number;
1071
- }>;
1072
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
1073
- };
1074
- }, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
738
+ getPercentageEstimate: (context: import("./context").Context, currentSpineIndex: number, numberOfPages: number, pageIndex: number, currentPosition: {
1075
739
  x: number;
1076
740
  y: number;
1077
741
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
1078
- getScrollPercentageWithinItem: (context: {
1079
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
1080
- isRTL: () => boolean;
1081
- areAllItemsPrePaginated: () => boolean;
1082
- destroy: () => void;
1083
- getLoadOptions: () => import("./types").LoadOptions | undefined;
1084
- getCalculatedInnerMargin: () => number;
1085
- getVisibleAreaRect: () => {
1086
- width: number;
1087
- height: number;
1088
- x: number;
1089
- y: number;
1090
- };
1091
- shouldDisplaySpread: () => boolean;
1092
- setHasVerticalWriting: () => void;
1093
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
1094
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
1095
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1096
- getPageSize: () => {
1097
- width: number;
1098
- height: number;
1099
- };
1100
- getSettings: () => import("./settings").PublicSettings & {
1101
- computedPageTurnMode: "controlled" | "scrollable";
1102
- computedPageTurnDirection: "vertical" | "horizontal";
1103
- computedPageTurnAnimation: "none" | "fade" | "slide";
1104
- computedPageTurnAnimationDuration: number;
1105
- computedSnapAnimationDuration: number;
1106
- };
1107
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
1108
- $: {
1109
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
1110
- destroy$: import("rxjs").Observable<void>;
1111
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
1112
- computedPageTurnMode: "controlled" | "scrollable";
1113
- computedPageTurnDirection: "vertical" | "horizontal";
1114
- computedPageTurnAnimation: "none" | "fade" | "slide";
1115
- computedPageTurnAnimationDuration: number;
1116
- computedSnapAnimationDuration: number;
1117
- }>;
1118
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
1119
- };
1120
- }, currentPosition: {
742
+ getScrollPercentageWithinItem: (context: import("./context").Context, currentPosition: {
1121
743
  x: number;
1122
744
  y: number;
1123
745
  }, currentItem: import("./spineItem/createSpineItem").SpineItem) => number;
@@ -1151,18 +773,7 @@ declare const internalEnhancer: ComposeEnhancer<Enhancer<{}, {
1151
773
  isEnabled: () => boolean;
1152
774
  scale: (scale: number) => void;
1153
775
  };
1154
- }, {}, {}, (createReader: (options: import("./reader").CreateReaderOptions) => ReaderPublicApi) => (options: import("./reader").CreateReaderOptions) => ReaderPublicApi, ReaderPublicApi>, Enhancer<{
1155
- pageHorizontalMargin?: number | undefined;
1156
- pageVerticalMargin?: number | undefined;
1157
- } & {
1158
- layoutAutoResize?: false | "container" | undefined;
1159
- }, {}, {
1160
- pageHorizontalMargin?: number | undefined;
1161
- pageVerticalMargin?: number | undefined;
1162
- }, Required<{
1163
- pageHorizontalMargin?: number | undefined;
1164
- pageVerticalMargin?: number | undefined;
1165
- }>, (createReader: (options: import("./reader").CreateReaderOptions) => ReaderPublicApi) => (options: import("./reader").CreateReaderOptions) => ReaderPublicApi, ReaderPublicApi>, Enhancer<{}, {
776
+ }, {}, {}, (createReader: (options: import("./reader").CreateReaderOptions) => ReaderPublicApi) => (options: import("./reader").CreateReaderOptions) => ReaderPublicApi, ReaderPublicApi>, import("./enhancers/layoutEnhancer/types").LayoutEnhancer, Enhancer<{}, {
1166
777
  utils: {
1167
778
  isOrIsWithinValidLink: (target: EventTarget | null) => boolean;
1168
779
  };
@@ -1221,49 +832,7 @@ declare const internalEnhancer: ComposeEnhancer<Enhancer<{}, {
1221
832
  };
1222
833
  };
1223
834
  }, {}, {}, (createReader: (options: import("./reader").CreateReaderOptions) => ReaderPublicApi) => (options: import("./reader").CreateReaderOptions) => ReaderPublicApi, ReaderPublicApi>, {
1224
- context: {
1225
- load: (newManifest: import("@prose-reader/shared").Manifest, newLoadOptions: import("./types").LoadOptions) => void;
1226
- isRTL: () => boolean;
1227
- areAllItemsPrePaginated: () => boolean;
1228
- destroy: () => void;
1229
- getLoadOptions: () => import("./types").LoadOptions | undefined;
1230
- getCalculatedInnerMargin: () => number;
1231
- getVisibleAreaRect: () => {
1232
- width: number;
1233
- height: number;
1234
- x: number;
1235
- y: number;
1236
- };
1237
- shouldDisplaySpread: () => boolean;
1238
- setHasVerticalWriting: () => void;
1239
- setVisibleAreaRect: (x: number, y: number, width: number, height: number) => void;
1240
- getManifest: () => import("@prose-reader/shared").Manifest | undefined;
1241
- getReadingDirection: () => "ltr" | "rtl" | undefined;
1242
- getPageSize: () => {
1243
- width: number;
1244
- height: number;
1245
- };
1246
- getSettings: () => import("./settings").PublicSettings & {
1247
- computedPageTurnMode: "controlled" | "scrollable";
1248
- computedPageTurnDirection: "vertical" | "horizontal";
1249
- computedPageTurnAnimation: "none" | "fade" | "slide";
1250
- computedPageTurnAnimationDuration: number;
1251
- computedSnapAnimationDuration: number;
1252
- };
1253
- setSettings: (data: Partial<import("./settings").PublicSettings>) => void;
1254
- $: {
1255
- hasVerticalWriting$: import("rxjs").Observable<boolean>;
1256
- destroy$: import("rxjs").Observable<void>;
1257
- settings$: import("rxjs").Observable<import("./settings").PublicSettings & {
1258
- computedPageTurnMode: "controlled" | "scrollable";
1259
- computedPageTurnDirection: "vertical" | "horizontal";
1260
- computedPageTurnAnimation: "none" | "fade" | "slide";
1261
- computedPageTurnAnimationDuration: number;
1262
- computedSnapAnimationDuration: number;
1263
- }>;
1264
- load$: import("rxjs").Observable<import("@prose-reader/shared").Manifest>;
1265
- };
1266
- };
835
+ context: import("./context").Context;
1267
836
  registerHook: import("./types/Hook").RegisterHook;
1268
837
  spine: import("./types/Spine").Spine;
1269
838
  manipulateSpineItems: (cb: (payload: ({
@@ -1896,10 +1465,11 @@ declare type WithoutPrivateApi<E> = Omit<E, RemovedKeysOnly | `__debug` | `__API
1896
1465
  declare type EnhancerOptions<E extends (...args: any) => any> = Parameters<ReturnType<E>>[0];
1897
1466
  declare type EnhancerExposedApi<E extends (...args: any) => any> = ReturnType<ReturnType<E>>;
1898
1467
  declare type CoreEnhancer = typeof internalEnhancer;
1899
- export declare type CoreEnhancerDependsOn = (createReader: Parameters<CoreEnhancer>[0]) => (options: EnhancerOptions<CoreEnhancer>) => EnhancerExposedApi<CoreEnhancer>;
1468
+ declare type CoreEnhancerApi = EnhancerExposedApi<CoreEnhancer>;
1469
+ export declare type CoreEnhancerDependsOn = (createReader: Parameters<CoreEnhancer>[0]) => (options: EnhancerOptions<CoreEnhancer>) => CoreEnhancerApi;
1900
1470
  export declare type ExternalEnhancer<Options = {}, Api = {}, Settings = {}, OutputSettings = Settings, DependsOn extends (createReader: any) => (options: any) => any = CoreEnhancerDependsOn> = Enhancer<Options, Api, Settings, OutputSettings, DependsOn>;
1901
- export declare function createReaderWithEnhancer(options: EnhancerOptions<CoreEnhancer>): WithoutPrivateApi<EnhancerExposedApi<CoreEnhancer>>;
1902
- export declare function createReaderWithEnhancer<UserEnhancer extends ComposableEnhancer>(options: EnhancerOptions<UserEnhancer> & EnhancerOptions<CoreEnhancer>, enhancer: UserEnhancer): WithoutPrivateApi<EnhancerExposedApi<ComposeEnhancer<typeof internalEnhancer, UserEnhancer>>>;
1471
+ export declare function createReaderWithEnhancer(options: EnhancerOptions<CoreEnhancer>): WithoutPrivateApi<CoreEnhancerApi>;
1472
+ export declare function createReaderWithEnhancer<UserEnhancer extends ComposableEnhancer>(options: EnhancerOptions<UserEnhancer> & EnhancerOptions<CoreEnhancer>, enhancer: UserEnhancer): WithoutPrivateApi<EnhancerExposedApi<ComposeEnhancer2<typeof internalEnhancer, UserEnhancer>>>;
1903
1473
  export declare type ReaderOptions<E extends ComposableEnhancer | void = void> = E extends ComposableEnhancer ? EnhancerOptions<E> & EnhancerOptions<CoreEnhancer> : EnhancerOptions<CoreEnhancer>;
1904
- export declare type Reader<E extends ComposableEnhancer | void = void> = E extends ComposableEnhancer ? WithoutPrivateApi<EnhancerExposedApi<ComposeEnhancer<CoreEnhancer, E>>> : WithoutPrivateApi<EnhancerExposedApi<CoreEnhancer>>;
1474
+ export declare type Reader<E extends ComposableEnhancer | void = void> = E extends ComposableEnhancer ? WithoutPrivateApi<EnhancerExposedApi<ComposeEnhancer2<CoreEnhancer, E>>> : WithoutPrivateApi<CoreEnhancerApi>;
1905
1475
  export {};
@@ -3,10 +3,12 @@ export declare type ComposableEnhancer = (createReader: any) => (options: any) =
3
3
  setSettings?: any;
4
4
  __OutputSettings?: any;
5
5
  };
6
+ export declare type ComposeEnhancer2<A extends ComposableEnhancer, B extends ComposableEnhancer> = Enhancer<ExtractOptions<A> & ExtractOptions<B>, ExtractHiddenApi<A> & ExtractHiddenApi<B>, Parameters<ExtractApi<A>[`setSettings`]>[0] & Parameters<ExtractApi<B>[`setSettings`]>[0], ExtractApi<A>[`__OutputSettings`] & ExtractApi<B>[`__OutputSettings`]>;
7
+ export declare type ComposeEnhancer3<A extends ComposableEnhancer, B extends ComposableEnhancer, C extends ComposableEnhancer> = Enhancer<ExtractOptions<A> & ExtractOptions<B> & ExtractOptions<C>, ExtractHiddenApi<A> & ExtractHiddenApi<B> & ExtractHiddenApi<C>, Parameters<ExtractApi<A>[`setSettings`]>[0] & Parameters<ExtractApi<B>[`setSettings`]>[0] & Parameters<ExtractApi<C>[`setSettings`]>[0], ExtractApi<A>[`__OutputSettings`] & ExtractApi<B>[`__OutputSettings`] & ExtractApi<C>[`__OutputSettings`]>;
6
8
  export declare type ComposeEnhancer<A extends ComposableEnhancer = Enhancer, B extends ComposableEnhancer = Enhancer, C extends ComposableEnhancer = Enhancer, D extends ComposableEnhancer = Enhancer, E extends ComposableEnhancer = Enhancer, F extends ComposableEnhancer = Enhancer, G extends ComposableEnhancer = Enhancer, H extends ComposableEnhancer = Enhancer, I extends ComposableEnhancer = Enhancer, J extends ComposableEnhancer = Enhancer, K extends ComposableEnhancer = Enhancer, L extends ComposableEnhancer = Enhancer, M extends ComposableEnhancer = Enhancer, N extends ComposableEnhancer = Enhancer, O extends ComposableEnhancer = Enhancer, P extends ComposableEnhancer = Enhancer> = Enhancer<ExtractOptions<A> & ExtractOptions<B> & ExtractOptions<C> & ExtractOptions<D> & ExtractOptions<E> & ExtractOptions<F> & ExtractOptions<G> & ExtractOptions<H> & ExtractOptions<I> & ExtractOptions<J> & ExtractOptions<K> & ExtractOptions<L> & ExtractOptions<M> & ExtractOptions<N> & ExtractOptions<O> & ExtractOptions<P>, ExtractHiddenApi<A> & ExtractHiddenApi<B> & ExtractHiddenApi<C> & ExtractHiddenApi<D> & ExtractHiddenApi<E> & ExtractHiddenApi<F> & ExtractHiddenApi<G> & ExtractHiddenApi<H> & ExtractHiddenApi<I> & ExtractHiddenApi<J> & ExtractHiddenApi<K> & ExtractHiddenApi<L> & ExtractHiddenApi<M> & ExtractHiddenApi<N> & ExtractHiddenApi<O> & ExtractHiddenApi<P>, Parameters<ExtractApi<A>[`setSettings`]>[0] & Parameters<ExtractApi<B>[`setSettings`]>[0] & Parameters<ExtractApi<C>[`setSettings`]>[0] & Parameters<ExtractApi<D>[`setSettings`]>[0] & Parameters<ExtractApi<E>[`setSettings`]>[0] & Parameters<ExtractApi<F>[`setSettings`]>[0] & Parameters<ExtractApi<G>[`setSettings`]>[0] & Parameters<ExtractApi<H>[`setSettings`]>[0] & Parameters<ExtractApi<I>[`setSettings`]>[0] & Parameters<ExtractApi<J>[`setSettings`]>[0] & Parameters<ExtractApi<K>[`setSettings`]>[0] & Parameters<ExtractApi<L>[`setSettings`]>[0] & Parameters<ExtractApi<M>[`setSettings`]>[0] & Parameters<ExtractApi<N>[`setSettings`]>[0] & Parameters<ExtractApi<O>[`setSettings`]>[0] & Parameters<ExtractApi<P>[`setSettings`]>[0], ExtractApi<A>[`__OutputSettings`] & ExtractApi<B>[`__OutputSettings`] & ExtractApi<C>[`__OutputSettings`] & ExtractApi<D>[`__OutputSettings`] & ExtractApi<E>[`__OutputSettings`] & ExtractApi<F>[`__OutputSettings`] & ExtractApi<G>[`__OutputSettings`] & ExtractApi<H>[`__OutputSettings`] & ExtractApi<I>[`__OutputSettings`] & ExtractApi<J>[`__OutputSettings`] & ExtractApi<K>[`__OutputSettings`] & ExtractApi<L>[`__OutputSettings`] & ExtractApi<M>[`__OutputSettings`] & ExtractApi<N>[`__OutputSettings`] & ExtractApi<O>[`__OutputSettings`] & ExtractApi<P>[`__OutputSettings`]>;
7
9
  export declare function composeEnhancer<A extends ComposableEnhancer>(a: A): ComposeEnhancer<A>;
8
10
  export declare function composeEnhancer<A extends ComposableEnhancer, B extends ComposableEnhancer>(a: A, b: B): ComposeEnhancer<A, B>;
9
- export declare function composeEnhancer<A extends ComposableEnhancer, B extends ComposableEnhancer, C extends ComposableEnhancer>(a: A, b: B, c: C): ComposeEnhancer<A, B, C>;
11
+ export declare function composeEnhancer<A extends ComposableEnhancer, B extends ComposableEnhancer, C extends ComposableEnhancer>(a: A, b: B, c: C): ComposeEnhancer3<A, B, C>;
10
12
  export declare function composeEnhancer<A extends ComposableEnhancer, B extends ComposableEnhancer, C extends ComposableEnhancer, D extends ComposableEnhancer>(a: A, b: B, c: C, d: D): ComposeEnhancer<A, B, C, D>;
11
13
  export declare function composeEnhancer<A extends ComposableEnhancer, B extends ComposableEnhancer, C extends ComposableEnhancer, D extends ComposableEnhancer, E extends ComposableEnhancer>(a: A, b: B, c: C, d: D, e: E): ComposeEnhancer<A, B, C, D, E>;
12
14
  export declare function composeEnhancer<A extends ComposableEnhancer, B extends ComposableEnhancer, C extends ComposableEnhancer, D extends ComposableEnhancer, E extends ComposableEnhancer, F extends ComposableEnhancer>(a: A, b: B, c: C, d: D, e: E, f: F): ComposeEnhancer<A, B, C, D, E, F>;
@@ -1,3 +1,3 @@
1
1
  import { Observable } from "rxjs";
2
- import { Reader } from "../../reader";
3
- export declare const createMovingSafePan$: (reader: Reader) => Observable<"free" | "busy" | undefined>;
2
+ import { ReaderInstance } from "./types";
3
+ export declare const createMovingSafePan$: (reader: ReaderInstance) => Observable<"free" | "busy" | undefined>;
@@ -1,10 +1,2 @@
1
- import { Enhancer } from "../types";
2
- declare type SettingsInput = {
3
- pageHorizontalMargin?: number;
4
- pageVerticalMargin?: number;
5
- };
6
- declare type SettingsOutput = Required<SettingsInput>;
7
- export declare const layoutEnhancer: Enhancer<SettingsInput & {
8
- layoutAutoResize?: `container` | false;
9
- }, {}, SettingsInput, SettingsOutput>;
10
- export {};
1
+ import { LayoutEnhancer } from "./types";
2
+ export declare const layoutEnhancer: LayoutEnhancer;
@@ -0,0 +1,10 @@
1
+ import { Enhancer } from "../types";
2
+ export declare type SettingsInput = {
3
+ pageHorizontalMargin?: number;
4
+ pageVerticalMargin?: number;
5
+ };
6
+ export declare type SettingsOutput = Required<SettingsInput>;
7
+ export declare type LayoutEnhancer = Enhancer<SettingsInput & {
8
+ layoutAutoResize?: `container` | false;
9
+ }, {}, SettingsInput, SettingsOutput>;
10
+ export declare type ReaderInstance = ReturnType<Parameters<LayoutEnhancer>[0]>;
@@ -4,9 +4,9 @@ declare type AnyObject = Record<string, any>;
4
4
  declare type DeepPartialAny<T> = {
5
5
  [P in keyof T]?: T[P] extends AnyObject ? DeepPartialAny<T[P]> : any;
6
6
  };
7
- declare type Primitive = number | string | ((...args: any) => any);
7
+ declare type Primitive = number | string | ((...args: any) => any) | HTMLElement | Observable<any> | Function;
8
8
  export declare type ModifyDeep<A extends AnyObject, B extends DeepPartialAny<A>> = {
9
- [K in keyof A]-?: B[K] extends never ? A[K] : B[K] extends Function ? B[K] : B[K] extends Observable<any> ? B[K] : B[K] extends AnyObject ? ModifyDeep<A[K], B[K]> : B[K] extends Primitive ? B[K] : A[K];
9
+ [K in keyof A]-?: B[K] extends never ? A[K] : B[K] extends Primitive ? B[K] : B[K] extends AnyObject ? ModifyDeep<A[K], B[K]> : A[K];
10
10
  } & (A extends AnyObject ? Omit<B, keyof A> : A);
11
11
  declare type CreateReader<Options = CreateReaderOptions, Api = Reader> = (options: Options) => Api;
12
12
  declare type RawEnhancer<Options = CreateReaderOptions, Api = Reader> = (createReader: CreateReader<Options, Api>) => (options: Options) => Api;
@@ -14,12 +14,12 @@ declare type DefaultToEmptyObject<A> = A extends AnyObject ? A : {};
14
14
  export declare type ExtractOptions<E extends (...args: any) => (options: any) => any> = Parameters<ReturnType<E>>[0];
15
15
  export declare type ExtractApi<E extends (...args: any) => (options: any) => any> = ReturnType<ReturnType<E>>;
16
16
  export declare type ExtractHiddenApi<E extends (...args: any) => (options: any) => any> = DefaultToEmptyObject<NonNullable<ReturnType<ReturnType<E>>[`__API`]>>;
17
- export declare type Enhancer<Options = {}, Api = {}, Settings = {}, OutputSettings = Settings, DependsOn extends (createReader: any) => (options: any) => any = RawEnhancer, Foo extends ExtractApi<DependsOn> = ExtractApi<DependsOn>> = (createReader: (options: ExtractOptions<DependsOn>) => Omit<ReturnType<ReturnType<DependsOn>>, `__API` | `__OutputSettings`>) => (options: ExtractOptions<DependsOn> & Options) => ModifyDeep<Omit<Foo, `__API` | `__OutputSettings` | `$`> & {
18
- $: Omit<Foo[`$`], `settings$`> & {
19
- settings$: Observable<OutputSettings & ObservedValueOf<Foo[`$`][`settings$`]>>;
17
+ export declare type Enhancer<Options = {}, Api = {}, Settings = {}, OutputSettings = Settings, DependsOn extends (createReader: any) => (options: any) => any = RawEnhancer, DependsOnApi extends ExtractApi<DependsOn> = ExtractApi<DependsOn>> = (createReader: (options: ExtractOptions<DependsOn>) => Omit<ReturnType<ReturnType<DependsOn>>, `__API` | `__OutputSettings`>) => (options: ExtractOptions<DependsOn> & Options) => ModifyDeep<Omit<DependsOnApi, `__API` | `__OutputSettings` | `$`> & {
18
+ $: Omit<DependsOnApi[`$`], `settings$`> & {
19
+ settings$: Observable<OutputSettings & ObservedValueOf<DependsOnApi[`$`][`settings$`]>>;
20
20
  };
21
21
  }, {
22
- setSettings: (settings: Parameters<Foo[`setSettings`]>[0] & Settings) => void;
22
+ setSettings: (settings: Parameters<DependsOnApi[`setSettings`]>[0] & Settings) => void;
23
23
  } & Api> & {
24
24
  __API?: Api;
25
25
  __OutputSettings?: OutputSettings;
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { createReaderWithEnhancer as createReader, Reader, ExternalEnhancer as Enhancer, ReaderOptions } from './createReaderWithEnhancer';
2
2
  import { createSelection } from './selection';
3
3
  export { compose } from './utils/compose';
4
- export { ComposeEnhancer } from './enhancers/composeEnhancer';
4
+ export { ComposeEnhancer2, ComposeEnhancer3, ComposeEnhancer } from './enhancers/composeEnhancer';
5
5
  export { Manifest } from './types';
6
6
  export { createReader, Reader, Enhancer, ReaderOptions };
7
7
  export declare type ReaderSelection = ReturnType<typeof createSelection>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "0.0.39",
3
+ "version": "0.0.40",
4
4
  "main": "dist/index.js",
5
5
  "license": "MIT",
6
6
  "files": [
@@ -35,9 +35,9 @@
35
35
  "terser-webpack-plugin": "^5.2.5",
36
36
  "ts-loader": "^9.2.6",
37
37
  "typescript": "*",
38
- "webpack": "^5.64.3",
38
+ "webpack": "^5.65.0",
39
39
  "webpack-bundle-analyzer": "^4.5.0",
40
40
  "webpack-cli": "^4.9.1"
41
41
  },
42
- "gitHead": "09308ddf45d3232af6b0b90007272d1d4f1699c3"
42
+ "gitHead": "28c4966edbae65aa38d88843e4612db08c8641e4"
43
43
  }