@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,23 @@
1
+ import { BehaviorSubject, Observable } from "rxjs";
2
+ import { Context } from "../../context";
3
+ import { createNavigationResolver, ViewportNavigationEntry } from "../navigationResolver";
4
+ export declare const createScrollViewportNavigator: ({ context, element, navigator, currentNavigationSubject$ }: {
5
+ context: Context;
6
+ element: HTMLElement;
7
+ navigator: ReturnType<typeof createNavigationResolver>;
8
+ currentNavigationSubject$: BehaviorSubject<ViewportNavigationEntry>;
9
+ }) => {
10
+ destroy: () => void;
11
+ adjustReadingOffset: ({ x, y }: {
12
+ x: number;
13
+ y: number;
14
+ }) => boolean;
15
+ $: {
16
+ state$: Observable<string>;
17
+ navigation$: Observable<{
18
+ position: ViewportNavigationEntry;
19
+ animate: boolean;
20
+ lastUserExpectedNavigation: undefined;
21
+ }>;
22
+ };
23
+ };
@@ -0,0 +1,85 @@
1
+ import { Context } from "../../context";
2
+ import { Pagination } from "../../pagination";
3
+ import { SpineItemManager } from "../../spineItemManager";
4
+ import { createLocationResolver } from "../locationResolver";
5
+ import { ViewportNavigationEntry } from "../navigationResolver";
6
+ import { Observable } from "rxjs";
7
+ import { SpineItem } from "../../spineItem/createSpineItem";
8
+ import { createCfiLocator } from "../cfiLocator";
9
+ import { Hook } from "../../types/Hook";
10
+ export declare const createViewportNavigator: ({ spineItemManager, context, pagination, element, cfiLocator, locator, hooks$ }: {
11
+ spineItemManager: SpineItemManager;
12
+ pagination: Pagination;
13
+ context: Context;
14
+ element: HTMLElement;
15
+ cfiLocator: ReturnType<typeof createCfiLocator>;
16
+ locator: ReturnType<typeof createLocationResolver>;
17
+ hooks$: Observable<Hook[]>;
18
+ }) => {
19
+ destroy: () => void;
20
+ layout: () => void;
21
+ getCurrentNavigationPosition: () => ViewportNavigationEntry;
22
+ getCurrentViewportPosition: (() => {
23
+ x: number;
24
+ y: number;
25
+ }) | (() => {
26
+ x: number;
27
+ y: number;
28
+ });
29
+ turnLeft: ({ allowSpineItemChange }?: {
30
+ allowSpineItemChange?: boolean | undefined;
31
+ }) => void;
32
+ turnRight: ({ allowSpineItemChange }?: {
33
+ allowSpineItemChange?: boolean | undefined;
34
+ }) => void;
35
+ goToPage: (pageIndex: number) => void;
36
+ goToSpineItem: (indexOrId: string | number, options?: {
37
+ animate: boolean;
38
+ }) => void;
39
+ goToUrl: (url: string | URL) => void;
40
+ goToCfi: (cfi: string, options?: {
41
+ animate: boolean;
42
+ }) => void;
43
+ goToPageOfCurrentChapter: (pageIndex: number) => void;
44
+ adjustNavigation: (spineItem: SpineItem) => Observable<{
45
+ previousNavigationPosition: ViewportNavigationEntry;
46
+ adjustedSpinePosition: ViewportNavigationEntry;
47
+ areDifferent: boolean;
48
+ }>;
49
+ moveTo: ((delta: {
50
+ x: number;
51
+ y: number;
52
+ } | undefined, { final, start }?: {
53
+ start?: boolean | undefined;
54
+ final?: boolean | undefined;
55
+ }) => void) | ((args_0: {
56
+ x: number;
57
+ y: number;
58
+ } | undefined, args_1?: {
59
+ start?: boolean | undefined;
60
+ final?: boolean | undefined;
61
+ } | undefined) => void);
62
+ getLastUserExpectedNavigation: () => {
63
+ type: `navigate-from-previous-item`;
64
+ } | {
65
+ type: `navigate-from-next-item`;
66
+ } | {
67
+ type: `navigate-from-cfi`;
68
+ data: string;
69
+ } | {
70
+ type: `navigate-from-anchor`;
71
+ data: string;
72
+ } | undefined;
73
+ $: {
74
+ state$: Observable<"free" | "busy">;
75
+ navigation$: Observable<{
76
+ position: {
77
+ x: number;
78
+ y: number;
79
+ spineItem?: SpineItem;
80
+ };
81
+ triggeredBy: `manual` | `adjust` | `scroll`;
82
+ animation: false | `turn` | `snap`;
83
+ }>;
84
+ };
85
+ };
@@ -0,0 +1,160 @@
1
+ import { Context } from "../context";
2
+ import { Manifest } from "../types";
3
+ import { BehaviorSubject, Observable } from "rxjs";
4
+ import { Hook } from "../types/Hook";
5
+ import { createFrameManipulator } from "./frameItem/createFrameManipulator";
6
+ export declare const createCommonSpineItem: ({ item, context, parentElement, iframeEventBridgeElement, hooks$, viewportState$ }: {
7
+ item: Manifest[`spineItems`][number];
8
+ parentElement: HTMLElement;
9
+ iframeEventBridgeElement: HTMLElement;
10
+ context: Context;
11
+ hooks$: BehaviorSubject<Hook[]>;
12
+ viewportState$: Observable<`free` | `busy`>;
13
+ }) => {
14
+ load: () => void;
15
+ layout: ({ height, width }: {
16
+ height: number;
17
+ width: number;
18
+ }) => void;
19
+ adjustPositionOfElement: ({ right, left, top }: {
20
+ right?: number | undefined;
21
+ left?: number | undefined;
22
+ top?: number | undefined;
23
+ }) => void;
24
+ createLoadingElement: (containerElement: HTMLElement, item: Manifest[`spineItems`][number], context: Context) => HTMLDivElement;
25
+ getElementDimensions: () => {
26
+ width: number;
27
+ height: number;
28
+ };
29
+ getHtmlFromResource: (response: Response) => Promise<string>;
30
+ getResource: () => Promise<Response>;
31
+ translateFramePositionIntoPage: (position: {
32
+ clientX: number;
33
+ clientY: number;
34
+ }) => {
35
+ clientX: number;
36
+ clientY: number;
37
+ };
38
+ setLayoutDirty: () => void;
39
+ injectStyle: (cssText: string) => void;
40
+ loadContent: () => void;
41
+ unloadContent: () => void;
42
+ spineItemFrame: {
43
+ getIsLoaded: () => boolean;
44
+ getIsReady: () => boolean;
45
+ getViewportDimensions: () => {
46
+ width: number;
47
+ height: number;
48
+ } | undefined;
49
+ getFrameElement: () => HTMLIFrameElement | undefined;
50
+ getHtmlFromResource: (response: Response) => Promise<string>;
51
+ load: () => void;
52
+ unload: () => void;
53
+ staticLayout: (size: {
54
+ width: number;
55
+ height: number;
56
+ }) => void;
57
+ getManipulableFrame: () => {
58
+ frame: HTMLIFrameElement;
59
+ removeStyle: (id: string) => void;
60
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
61
+ } | undefined;
62
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
63
+ isUsingVerticalWriting: () => boolean;
64
+ getWritingMode: () => "vertical-rl" | "horizontal-tb" | undefined;
65
+ destroy: () => void;
66
+ $: {
67
+ unload$: Observable<void>;
68
+ unloaded$: Observable<void>;
69
+ loaded$: Observable<HTMLIFrameElement>;
70
+ ready$: Observable<FontFaceSet | undefined>;
71
+ isReady$: Observable<boolean>;
72
+ contentLayoutChange$: Observable<{
73
+ isFirstLayout: boolean;
74
+ } | {
75
+ isFirstLayout: boolean;
76
+ }>;
77
+ };
78
+ };
79
+ element: HTMLElement;
80
+ loadingElement: HTMLDivElement;
81
+ isReflowable: boolean;
82
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
83
+ getViewPortInformation: () => {
84
+ computedScale: number;
85
+ computedWidthScale: number;
86
+ viewportDimensions: {
87
+ width: number;
88
+ height: number;
89
+ };
90
+ } | {
91
+ width?: number | undefined;
92
+ height?: number | undefined;
93
+ computedScale: number;
94
+ computedWidthScale: number;
95
+ viewportDimensions?: undefined;
96
+ };
97
+ isImageType: () => boolean | undefined;
98
+ isReady: () => boolean;
99
+ destroy: () => void;
100
+ isUsingVerticalWriting: () => boolean | undefined;
101
+ getReadingDirection: () => "ltr" | "rtl" | undefined;
102
+ manipulateSpineItem: (cb: (options: {
103
+ container: HTMLElement;
104
+ loadingElement: HTMLElement;
105
+ item: Manifest[`spineItems`][number];
106
+ overlayElement: HTMLDivElement;
107
+ } & ({
108
+ frame: HTMLIFrameElement;
109
+ removeStyle: (id: string) => void;
110
+ addStyle: (id: string, style: string, prepend?: boolean) => void;
111
+ } | {
112
+ frame: undefined;
113
+ removeStyle: (id: string) => void;
114
+ addStyle: (id: string, style: string) => void;
115
+ })) => boolean) => boolean;
116
+ executeOnLayoutBeforeMeasurmentHook: (options: {
117
+ minimumWidth: number;
118
+ }) => void;
119
+ selectionTracker: {
120
+ track: (frameToTrack: HTMLIFrameElement) => void;
121
+ destroy: () => void;
122
+ isSelecting: () => boolean;
123
+ getSelection: () => Selection | undefined;
124
+ $: Observable<{
125
+ event: "selectionchange";
126
+ data: Selection | null;
127
+ } | {
128
+ event: "selectstart";
129
+ data: Selection | null;
130
+ } | {
131
+ event: "selectend";
132
+ data: Selection | null;
133
+ }>;
134
+ };
135
+ fingerTracker: {
136
+ track: (frame: HTMLIFrameElement) => void;
137
+ getFingerPositionInIframe(): {
138
+ x: number | undefined;
139
+ y: number | undefined;
140
+ } | undefined;
141
+ destroy: () => void;
142
+ $: Observable<{
143
+ event: "fingermove";
144
+ data: {
145
+ x: number;
146
+ y: number;
147
+ };
148
+ } | {
149
+ event: "fingerout";
150
+ data: undefined;
151
+ }>;
152
+ };
153
+ $: {
154
+ contentLayoutChangeSubject$: Observable<{
155
+ isFirstLayout: boolean;
156
+ isReady: boolean;
157
+ }>;
158
+ loaded$: Observable<HTMLIFrameElement>;
159
+ };
160
+ };