@prose-reader/core 1.117.0 → 1.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/dist/cfi/generate/generateCfiForSpineItemPage.d.ts +1 -1
  2. package/dist/cfi/generate/getItemAnchor.d.ts +1 -1
  3. package/dist/cfi/generate/getRootCfi.d.ts +1 -1
  4. package/dist/cfi/lookup/resolveCfi.d.ts +2 -236
  5. package/dist/context/Context.d.ts +1 -1
  6. package/dist/createReaderWithEnhancer.d.ts +11 -245
  7. package/dist/enhancers/events/normalizeEventForViewport.d.ts +2 -1
  8. package/dist/enhancers/events/translateFramePositionIntoPage.d.ts +12 -0
  9. package/dist/enhancers/html/enhancer.d.ts +2 -0
  10. package/dist/enhancers/html/renderer/HtmlRenderer.d.ts +26 -0
  11. package/dist/{spineItem/frame/loader → enhancers/html/renderer}/attachFrameSrc.d.ts +4 -2
  12. package/dist/{spineItem/frame → enhancers/html/renderer}/createHtmlPageFromResource.d.ts +1 -1
  13. package/dist/enhancers/html/renderer/prePaginated/renderPrePaginated.d.ts +31 -0
  14. package/dist/enhancers/html/renderer/reflowable/renderReflowable.d.ts +22 -0
  15. package/dist/enhancers/loading/constants.d.ts +2 -0
  16. package/dist/enhancers/loading/createLoadingElement.d.ts +7 -0
  17. package/dist/enhancers/{loadingEnhancer.d.ts → loading/loadingEnhancer.d.ts} +3 -3
  18. package/dist/enhancers/media/ImageRenderer.d.ts +15 -0
  19. package/dist/enhancers/media/media.d.ts +2 -0
  20. package/dist/enhancers/navigation/resolvers/getNavigationForLeftOrTopPage.d.ts +1 -1
  21. package/dist/enhancers/navigation/resolvers/getNavigationForRightOrBottomPage.d.ts +1 -1
  22. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +1 -1
  23. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForRightPage.d.ts +1 -1
  24. package/dist/enhancers/progression.d.ts +1 -1
  25. package/dist/hooks/types.d.ts +19 -9
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.js +2314 -2181
  28. package/dist/index.js.map +1 -1
  29. package/dist/index.umd.cjs +3010 -2877
  30. package/dist/index.umd.cjs.map +1 -1
  31. package/dist/navigation/Navigator.d.ts +6 -6
  32. package/dist/navigation/resolvers/NavigationResolver.d.ts +1 -1
  33. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +1 -1
  34. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +1 -1
  35. package/dist/reader.d.ts +3 -237
  36. package/dist/settings/SettingsManager.d.ts +2 -1
  37. package/dist/settings/types.d.ts +9 -1
  38. package/dist/spine/SpineItemsManager.d.ts +6 -591
  39. package/dist/spine/SpineItemsObserver.d.ts +2 -1
  40. package/dist/spine/SpineLayout.d.ts +1 -1
  41. package/dist/spine/locator/SpineLocator.d.ts +5 -473
  42. package/dist/spine/locator/getAbsolutePageIndexFromPageIndex.d.ts +1 -1
  43. package/dist/spine/locator/getSpineInfoFromAbsolutePageIndex.d.ts +2 -118
  44. package/dist/spine/locator/getSpineItemFromPosition.d.ts +1 -118
  45. package/dist/spineItem/DocumentRenderer.d.ts +48 -0
  46. package/dist/spineItem/ResourceHandler.d.ts +15 -0
  47. package/dist/spineItem/SpineItem.d.ts +64 -0
  48. package/dist/spineItem/locationResolver.d.ts +1 -1
  49. package/dist/spineItem/navigationResolver.d.ts +1 -1
  50. package/dist/utils/frames.d.ts +15 -0
  51. package/package.json +3 -3
  52. package/dist/enhancers/media.d.ts +0 -2
  53. package/dist/spineItem/commonSpineItem.d.ts +0 -128
  54. package/dist/spineItem/createSpineItem.d.ts +0 -130
  55. package/dist/spineItem/frame/FrameItem.d.ts +0 -43
  56. package/dist/spineItem/frame/loader/configureFrame.d.ts +0 -9
  57. package/dist/spineItem/frame/loader/loadFrame.d.ts +0 -11
  58. package/dist/spineItem/frame/loader/loader.d.ts +0 -22
  59. package/dist/spineItem/frame/loader/unloadFrame.d.ts +0 -8
  60. package/dist/spineItem/frame/loader/waitForFrameLoad.d.ts +0 -2
  61. package/dist/spineItem/frame/loader/waitForFrameReady.d.ts +0 -2
  62. package/dist/spineItem/prePaginatedSpineItem.d.ts +0 -129
  63. package/dist/spineItem/reflowable/ReflowableSpineItems.d.ts +0 -128
  64. package/dist/spineItem/styles/getStyleForViewportDocument.d.ts +0 -1
  65. /package/dist/{spineItem/frame/loader → enhancers/html/renderer}/createFrameElement.d.ts +0 -0
  66. /package/dist/{spineItem → enhancers/html/renderer}/reflowable/styles.d.ts +0 -0
@@ -7,121 +7,4 @@ export declare const getSpineItemFromPosition: ({ position, spineItemsManager, s
7
7
  spineItemsManager: SpineItemsManager;
8
8
  spineLayout: SpineLayout;
9
9
  settings: ReaderSettingsManager;
10
- }) => {
11
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
12
- blankPagePosition: `before` | `after` | `none`;
13
- minimumWidth: number;
14
- spreadPosition: `none` | `left` | `right`;
15
- }) => {
16
- width: number;
17
- height: number;
18
- };
19
- item: {
20
- id: string;
21
- href: string;
22
- renditionLayout?: `reflowable` | `pre-paginated`;
23
- progressionWeight?: number;
24
- pageSpreadLeft?: true | undefined;
25
- pageSpreadRight?: true | undefined;
26
- mediaType?: string;
27
- };
28
- overlayElement: HTMLDivElement;
29
- adjustPositionOfElement: ({ right, left, top, }: {
30
- right?: number;
31
- left?: number;
32
- top?: number;
33
- }) => void;
34
- getElementDimensions: () => {
35
- width: number;
36
- height: number;
37
- x: number;
38
- y: number;
39
- bottom: number;
40
- left: number;
41
- right: number;
42
- top: number;
43
- toJSON(): any;
44
- };
45
- getHtmlFromResource: (response: Response) => Promise<string>;
46
- getResource: () => Promise<Response>;
47
- translateFramePositionIntoPage: (position: {
48
- clientX: number;
49
- clientY: number;
50
- }) => {
51
- clientX: number;
52
- clientY: number;
53
- };
54
- injectStyle: (cssText: string) => void;
55
- load: () => void;
56
- unload: () => void;
57
- frame: import('../../spineItem/frame/FrameItem').FrameItem;
58
- element: HTMLElement;
59
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
60
- getViewPortInformation: () => {
61
- computedScale: number;
62
- computedWidthScale: number;
63
- viewportDimensions: {
64
- width: number;
65
- height: number;
66
- };
67
- } | undefined;
68
- isImageType: () => boolean;
69
- isReady: () => boolean;
70
- destroy: () => void;
71
- readingDirection: "ltr" | "rtl" | undefined;
72
- isUsingVerticalWriting: () => boolean | undefined;
73
- executeOnLayoutBeforeMeasurementHook: (options: {
74
- minimumWidth: number;
75
- }) => void[];
76
- selectionTracker: {
77
- track: (frameToTrack: HTMLIFrameElement) => void;
78
- destroy: () => void;
79
- isSelecting: () => boolean;
80
- getSelection: () => Selection | undefined;
81
- $: import('rxjs').Observable<{
82
- event: `selectionchange`;
83
- data: Selection | null;
84
- } | {
85
- event: `selectstart`;
86
- data: Selection | null;
87
- } | {
88
- event: `selectend`;
89
- data: Selection | null;
90
- }>;
91
- };
92
- fingerTracker: {
93
- track: (frame: HTMLIFrameElement) => void;
94
- getFingerPositionInIframe(): {
95
- x: number | undefined;
96
- y: number | undefined;
97
- } | undefined;
98
- destroy: () => void;
99
- $: import('rxjs').Observable<{
100
- event: `fingermove`;
101
- data: {
102
- x: number;
103
- y: number;
104
- };
105
- } | {
106
- event: `fingerout`;
107
- data: undefined;
108
- }>;
109
- };
110
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
111
- columnHeight: number;
112
- columnWidth: number;
113
- width: number;
114
- };
115
- getDimensionsForPaginatedContent: () => {
116
- columnHeight: number;
117
- columnWidth: number;
118
- };
119
- $: {
120
- contentLayout$: import('rxjs').Observable<{
121
- isFirstLayout: boolean;
122
- isReady: boolean;
123
- }>;
124
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
125
- isReady$: import('rxjs').Observable<boolean>;
126
- };
127
- } | undefined;
10
+ }) => import('../../spineItem/SpineItem').SpineItem | undefined;
@@ -0,0 +1,48 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+ import { Context } from '../context/Context';
3
+ import { HookManager } from '../hooks/HookManager';
4
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
+ import { BehaviorSubject, Observable } from 'rxjs';
6
+ import { ResourceHandler } from './ResourceHandler';
7
+ type Layer = {
8
+ element: HTMLElement;
9
+ };
10
+ export declare abstract class DocumentRenderer {
11
+ protected context: Context;
12
+ protected settings: ReaderSettingsManager;
13
+ protected hookManager: HookManager;
14
+ protected item: Manifest[`spineItems`][number];
15
+ protected containerElement: HTMLElement;
16
+ protected resourcesHandler: ResourceHandler;
17
+ protected stateSubject: BehaviorSubject<"idle" | "loading" | "loaded" | "unloading" | "ready">;
18
+ private triggerSubject;
19
+ layers: Layer[];
20
+ protected unload$: Observable<undefined>;
21
+ protected load$: Observable<undefined>;
22
+ constructor(context: Context, settings: ReaderSettingsManager, hookManager: HookManager, item: Manifest[`spineItems`][number], containerElement: HTMLElement, resourcesHandler: ResourceHandler);
23
+ protected destroy$: Observable<"destroy">;
24
+ get state$(): BehaviorSubject<"idle" | "loading" | "loaded" | "unloading" | "ready">;
25
+ load(): void;
26
+ unload(): void;
27
+ destroy(): void;
28
+ abstract onUnload(): Observable<unknown>;
29
+ abstract onCreateDocument(): Observable<unknown>;
30
+ abstract onLoadDocument(): Observable<unknown>;
31
+ abstract layout(params: {
32
+ minPageSpread: number;
33
+ blankPagePosition: `before` | `after` | `none`;
34
+ spreadPosition: `none` | `left` | `right`;
35
+ }): {
36
+ width: number;
37
+ height: number;
38
+ } | undefined;
39
+ get writingMode(): `vertical-rl` | `horizontal-tb` | undefined;
40
+ get readingDirection(): `rtl` | `ltr` | undefined;
41
+ }
42
+ export declare class DefaultRenderer extends DocumentRenderer {
43
+ onUnload(): Observable<unknown>;
44
+ onCreateDocument(): Observable<unknown>;
45
+ onLoadDocument(): Observable<unknown>;
46
+ layout(): undefined;
47
+ }
48
+ export {};
@@ -0,0 +1,15 @@
1
+ import { Manifest } from '@prose-reader/shared';
2
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
3
+ export declare class ResourceHandler {
4
+ protected item: Manifest["items"][number];
5
+ protected settings: ReaderSettingsManager;
6
+ constructor(item: Manifest["items"][number], settings: ReaderSettingsManager);
7
+ getResource(): Promise<URL | Response | {
8
+ custom: true;
9
+ data: unknown;
10
+ }>;
11
+ fetchResource(): Promise<Response | {
12
+ custom: true;
13
+ data: unknown;
14
+ }>;
15
+ }
@@ -0,0 +1,64 @@
1
+ import { Context } from '../context/Context';
2
+ import { Manifest } from '..';
3
+ import { Observable, Subject } from 'rxjs';
4
+ import { createFingerTracker, createSelectionTracker } from './trackers';
5
+ import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
6
+ import { HookManager } from '../hooks/HookManager';
7
+ import { DocumentRenderer } from './DocumentRenderer';
8
+ import { ResourceHandler } from './ResourceHandler';
9
+ export declare class SpineItem {
10
+ item: Manifest[`spineItems`][number];
11
+ parentElement: HTMLElement;
12
+ context: Context;
13
+ settings: ReaderSettingsManager;
14
+ hookManager: HookManager;
15
+ index: number;
16
+ destroySubject$: Subject<void>;
17
+ containerElement: HTMLElement;
18
+ fingerTracker: ReturnType<typeof createFingerTracker>;
19
+ selectionTracker: ReturnType<typeof createSelectionTracker>;
20
+ contentLayout$: Observable<{
21
+ isFirstLayout: boolean;
22
+ isReady: boolean;
23
+ }>;
24
+ renderer: DocumentRenderer;
25
+ resourcesHandler: ResourceHandler;
26
+ constructor(item: Manifest[`spineItems`][number], parentElement: HTMLElement, context: Context, settings: ReaderSettingsManager, hookManager: HookManager, index: number);
27
+ adjustPositionOfElement: ({ right, left, top, }: {
28
+ right?: number;
29
+ left?: number;
30
+ top?: number;
31
+ }) => void;
32
+ getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
33
+ layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
34
+ blankPagePosition: `before` | `after` | `none`;
35
+ minimumWidth: number;
36
+ spreadPosition: `left` | `right` | `none`;
37
+ }) => {
38
+ width: number;
39
+ height: number;
40
+ };
41
+ load: () => void;
42
+ unload: () => void;
43
+ getElementDimensions: () => {
44
+ width: number;
45
+ height: number;
46
+ x: number;
47
+ y: number;
48
+ bottom: number;
49
+ left: number;
50
+ right: number;
51
+ top: number;
52
+ toJSON(): any;
53
+ };
54
+ destroy: () => void;
55
+ get element(): HTMLElement;
56
+ get readingDirection(): "rtl" | "ltr" | undefined;
57
+ isUsingVerticalWriting: () => boolean;
58
+ get isReady(): boolean;
59
+ get ready$(): Observable<"ready">;
60
+ get loaded$(): Observable<"loaded">;
61
+ get unloaded$(): Observable<"idle">;
62
+ get isReady$(): Observable<boolean>;
63
+ upsertCSS(id: string, style: string, prepend?: boolean): void;
64
+ }
@@ -1,7 +1,7 @@
1
1
  import { Context } from '../context/Context';
2
- import { SpineItem } from './createSpineItem';
3
2
  import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
4
3
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
+ import { SpineItem } from './SpineItem';
5
5
  export type SpineItemLocator = ReturnType<typeof createSpineItemLocator>;
6
6
  export declare const createSpineItemLocator: ({ context, settings, }: {
7
7
  context: Context;
@@ -1,7 +1,7 @@
1
- import { SpineItem } from './createSpineItem';
2
1
  import { Context } from '../context/Context';
3
2
  import { SafeSpineItemPosition, UnsafeSpineItemPosition } from './types';
4
3
  import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
+ import { SpineItem } from './SpineItem';
5
5
  export type SpineItemNavigationResolver = ReturnType<typeof createNavigationResolver>;
6
6
  export declare const createNavigationResolver: ({ context, settings, }: {
7
7
  context: Context;
@@ -1 +1,16 @@
1
+ import { Observable } from 'rxjs';
1
2
  export declare const getAttributeValueFromString: (string: string, key: string) => number;
3
+ export declare const injectCSS: (frameElement: HTMLIFrameElement, id: string, style: string, prepend?: boolean) => void;
4
+ export declare const removeCSS: (frameElement: HTMLIFrameElement, id: string) => void;
5
+ export declare const upsertCSS: (frameElement: HTMLIFrameElement | undefined, id: string, style: string, prepend?: boolean) => void;
6
+ export declare const getFrameViewportInfo: (frame: HTMLIFrameElement | undefined) => {
7
+ hasViewport: boolean;
8
+ width: number;
9
+ height: number;
10
+ } | {
11
+ hasViewport: boolean;
12
+ width?: undefined;
13
+ height?: undefined;
14
+ };
15
+ export declare const waitForFrameLoad: (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;
16
+ export declare const waitForFrameReady: (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "1.117.0",
3
+ "version": "1.118.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.umd.cjs",
6
6
  "module": "./dist/index.js",
@@ -25,7 +25,7 @@
25
25
  "tsc": "tsc"
26
26
  },
27
27
  "dependencies": {
28
- "@prose-reader/shared": "^1.117.0"
28
+ "@prose-reader/shared": "^1.118.0"
29
29
  },
30
30
  "peerDependencies": {
31
31
  "rxjs": "*"
@@ -33,5 +33,5 @@
33
33
  "devDependencies": {
34
34
  "jsdom": "^24.0.0"
35
35
  },
36
- "gitHead": "7979b7ba99701920e600a1c3a798d141fa3679f3"
36
+ "gitHead": "59295c56689dd28573e727df2e4cb688f5331e66"
37
37
  }
@@ -1,2 +0,0 @@
1
- import { EnhancerOutput, RootEnhancer } from './types/enhancer';
2
- export declare const mediaEnhancer: <InheritOptions, InheritOutput extends EnhancerOutput<RootEnhancer>>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => InheritOutput;
@@ -1,128 +0,0 @@
1
- import { Context } from '../context/Context';
2
- import { FrameItem } from './frame/FrameItem';
3
- import { Manifest } from '..';
4
- import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
5
- import { HookManager } from '../hooks/HookManager';
6
- export declare const createCommonSpineItem: ({ item, context, parentElement, settings, hookManager, index, }: {
7
- item: Manifest[`spineItems`][number];
8
- parentElement: HTMLElement;
9
- context: Context;
10
- settings: ReaderSettingsManager;
11
- hookManager: HookManager;
12
- index: number;
13
- }) => {
14
- item: {
15
- id: string;
16
- href: string;
17
- renditionLayout?: `reflowable` | `pre-paginated`;
18
- progressionWeight?: number;
19
- pageSpreadLeft?: true | undefined;
20
- pageSpreadRight?: true | undefined;
21
- mediaType?: string;
22
- };
23
- layout: ({ height, width, blankPagePosition, minimumWidth, }: {
24
- height: number;
25
- width: number;
26
- blankPagePosition: `before` | `after` | `none`;
27
- minimumWidth: number;
28
- }) => void;
29
- overlayElement: HTMLDivElement;
30
- adjustPositionOfElement: ({ right, left, top, }: {
31
- right?: number;
32
- left?: number;
33
- top?: number;
34
- }) => void;
35
- getElementDimensions: () => {
36
- width: number;
37
- height: number;
38
- x: number;
39
- y: number;
40
- bottom: number;
41
- left: number;
42
- right: number;
43
- top: number;
44
- toJSON(): any;
45
- };
46
- getHtmlFromResource: (response: Response) => Promise<string>;
47
- getResource: () => Promise<Response>;
48
- translateFramePositionIntoPage: (position: {
49
- clientX: number;
50
- clientY: number;
51
- }) => {
52
- clientX: number;
53
- clientY: number;
54
- };
55
- injectStyle: (cssText: string) => void;
56
- load: () => void;
57
- unload: () => void;
58
- frame: FrameItem;
59
- element: HTMLElement;
60
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
61
- getViewPortInformation: () => {
62
- computedScale: number;
63
- computedWidthScale: number;
64
- viewportDimensions: {
65
- width: number;
66
- height: number;
67
- };
68
- } | undefined;
69
- isImageType: () => boolean;
70
- isReady: () => boolean;
71
- destroy: () => void;
72
- readonly readingDirection: "ltr" | "rtl" | undefined;
73
- isUsingVerticalWriting: () => boolean | undefined;
74
- executeOnLayoutBeforeMeasurementHook: (options: {
75
- minimumWidth: number;
76
- }) => void[];
77
- selectionTracker: {
78
- track: (frameToTrack: HTMLIFrameElement) => void;
79
- destroy: () => void;
80
- isSelecting: () => boolean;
81
- getSelection: () => Selection | undefined;
82
- $: import('rxjs').Observable<{
83
- event: `selectionchange`;
84
- data: Selection | null;
85
- } | {
86
- event: `selectstart`;
87
- data: Selection | null;
88
- } | {
89
- event: `selectend`;
90
- data: Selection | null;
91
- }>;
92
- };
93
- fingerTracker: {
94
- track: (frame: HTMLIFrameElement) => void;
95
- getFingerPositionInIframe(): {
96
- x: number | undefined;
97
- y: number | undefined;
98
- } | undefined;
99
- destroy: () => void;
100
- $: import('rxjs').Observable<{
101
- event: `fingermove`;
102
- data: {
103
- x: number;
104
- y: number;
105
- };
106
- } | {
107
- event: `fingerout`;
108
- data: undefined;
109
- }>;
110
- };
111
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
112
- columnHeight: number;
113
- columnWidth: number;
114
- width: number;
115
- };
116
- getDimensionsForPaginatedContent: () => {
117
- columnHeight: number;
118
- columnWidth: number;
119
- };
120
- $: {
121
- contentLayout$: import('rxjs').Observable<{
122
- isFirstLayout: boolean;
123
- isReady: boolean;
124
- }>;
125
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
126
- isReady$: import('rxjs').Observable<boolean>;
127
- };
128
- };
@@ -1,130 +0,0 @@
1
- import { Context } from '../context/Context';
2
- import { Manifest } from '..';
3
- import { ReaderSettingsManager } from '../settings/ReaderSettingsManager';
4
- import { HookManager } from '../hooks/HookManager';
5
- export declare const createSpineItem: ({ item, context, containerElement, settings, hookManager, index, }: {
6
- item: Manifest[`spineItems`][number];
7
- containerElement: HTMLElement;
8
- context: Context;
9
- settings: ReaderSettingsManager;
10
- hookManager: HookManager;
11
- index: number;
12
- }) => {
13
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
14
- blankPagePosition: `before` | `after` | `none`;
15
- minimumWidth: number;
16
- spreadPosition: `none` | `left` | `right`;
17
- }) => {
18
- width: number;
19
- height: number;
20
- };
21
- item: {
22
- id: string;
23
- href: string;
24
- renditionLayout?: `reflowable` | `pre-paginated`;
25
- progressionWeight?: number;
26
- pageSpreadLeft?: true | undefined;
27
- pageSpreadRight?: true | undefined;
28
- mediaType?: string;
29
- };
30
- overlayElement: HTMLDivElement;
31
- adjustPositionOfElement: ({ right, left, top, }: {
32
- right?: number;
33
- left?: number;
34
- top?: number;
35
- }) => void;
36
- getElementDimensions: () => {
37
- width: number;
38
- height: number;
39
- x: number;
40
- y: number;
41
- bottom: number;
42
- left: number;
43
- right: number;
44
- top: number;
45
- toJSON(): any;
46
- };
47
- getHtmlFromResource: (response: Response) => Promise<string>;
48
- getResource: () => Promise<Response>;
49
- translateFramePositionIntoPage: (position: {
50
- clientX: number;
51
- clientY: number;
52
- }) => {
53
- clientX: number;
54
- clientY: number;
55
- };
56
- injectStyle: (cssText: string) => void;
57
- load: () => void;
58
- unload: () => void;
59
- frame: import('./frame/FrameItem').FrameItem;
60
- element: HTMLElement;
61
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
62
- getViewPortInformation: () => {
63
- computedScale: number;
64
- computedWidthScale: number;
65
- viewportDimensions: {
66
- width: number;
67
- height: number;
68
- };
69
- } | undefined;
70
- isImageType: () => boolean;
71
- isReady: () => boolean;
72
- destroy: () => void;
73
- readingDirection: "ltr" | "rtl" | undefined;
74
- isUsingVerticalWriting: () => boolean | undefined;
75
- executeOnLayoutBeforeMeasurementHook: (options: {
76
- minimumWidth: number;
77
- }) => void[];
78
- selectionTracker: {
79
- track: (frameToTrack: HTMLIFrameElement) => void;
80
- destroy: () => void;
81
- isSelecting: () => boolean;
82
- getSelection: () => Selection | undefined;
83
- $: import('rxjs').Observable<{
84
- event: `selectionchange`;
85
- data: Selection | null;
86
- } | {
87
- event: `selectstart`;
88
- data: Selection | null;
89
- } | {
90
- event: `selectend`;
91
- data: Selection | null;
92
- }>;
93
- };
94
- fingerTracker: {
95
- track: (frame: HTMLIFrameElement) => void;
96
- getFingerPositionInIframe(): {
97
- x: number | undefined;
98
- y: number | undefined;
99
- } | undefined;
100
- destroy: () => void;
101
- $: import('rxjs').Observable<{
102
- event: `fingermove`;
103
- data: {
104
- x: number;
105
- y: number;
106
- };
107
- } | {
108
- event: `fingerout`;
109
- data: undefined;
110
- }>;
111
- };
112
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
113
- columnHeight: number;
114
- columnWidth: number;
115
- width: number;
116
- };
117
- getDimensionsForPaginatedContent: () => {
118
- columnHeight: number;
119
- columnWidth: number;
120
- };
121
- $: {
122
- contentLayout$: import('rxjs').Observable<{
123
- isFirstLayout: boolean;
124
- isReady: boolean;
125
- }>;
126
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
127
- isReady$: import('rxjs').Observable<boolean>;
128
- };
129
- };
130
- export type SpineItem = ReturnType<typeof createSpineItem>;
@@ -1,43 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { Manifest } from '../..';
3
- import { Context } from '../../context/Context';
4
- import { createLoader } from './loader/loader';
5
- import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
6
- import { HookManager } from '../../hooks/HookManager';
7
- import { DestroyableClass } from '../../utils/DestroyableClass';
8
- export declare class FrameItem extends DestroyableClass {
9
- protected parent: HTMLElement;
10
- protected item: Manifest[`spineItems`][number];
11
- protected context: Context;
12
- protected settings: ReaderSettingsManager;
13
- protected hookManager: HookManager;
14
- protected loader: ReturnType<typeof createLoader>;
15
- contentLayoutChange$: Observable<{
16
- isFirstLayout: boolean;
17
- }>;
18
- constructor(parent: HTMLElement, item: Manifest[`spineItems`][number], context: Context, settings: ReaderSettingsManager, hookManager: HookManager);
19
- getComputedStyleAfterLoad(): CSSStyleDeclaration | undefined;
20
- getViewportDimensions: () => {
21
- width: number;
22
- height: number;
23
- } | undefined;
24
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
25
- isUsingVerticalWriting: () => boolean;
26
- getHtmlFromResource: (response: Response) => Promise<string>;
27
- get element(): HTMLIFrameElement | undefined;
28
- get unloaded$(): Observable<"success">;
29
- get loaded$(): Observable<HTMLIFrameElement>;
30
- get ready$(): Observable<FontFaceSet | undefined>;
31
- get isReady$(): Observable<boolean>;
32
- get isLoaded(): boolean;
33
- get isReady(): boolean;
34
- load(): void;
35
- unload(): void;
36
- staticLayout: (size: {
37
- width: number;
38
- height: number;
39
- }) => void;
40
- addStyle(id: string, style: string, prepend?: boolean): void;
41
- removeStyle(id: string): void;
42
- destroy: () => void;
43
- }
@@ -1,9 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
3
- import { Manifest } from '@prose-reader/shared';
4
- import { HookManager } from '../../..';
5
- export declare const configureFrame: ({ settings, item, hookManager, }: {
6
- settings: ReaderSettingsManager;
7
- item: Manifest[`spineItems`][number];
8
- hookManager: HookManager;
9
- }) => (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;
@@ -1,11 +0,0 @@
1
- import { HookManager, Manifest } from '../../..';
2
- import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
3
- import { Context } from '../../../context/Context';
4
- export declare const loadFrame: ({ settings, item, hookManager, element, onFrameElement, context, }: {
5
- settings: ReaderSettingsManager;
6
- item: Manifest[`spineItems`][number];
7
- hookManager: HookManager;
8
- element: HTMLElement;
9
- onFrameElement: (element: HTMLIFrameElement) => void;
10
- context: Context;
11
- }) => import('rxjs').Observable<HTMLIFrameElement>;
@@ -1,22 +0,0 @@
1
- import { Context } from '../../../context/Context';
2
- import { Manifest } from '../../..';
3
- import { ReaderSettingsManager } from '../../../settings/ReaderSettingsManager';
4
- import { HookManager } from '../../../hooks/HookManager';
5
- export declare const createLoader: ({ item, parent, context, settings, hookManager, }: {
6
- item: Manifest[`spineItems`][number];
7
- parent: HTMLElement;
8
- context: Context;
9
- settings: ReaderSettingsManager;
10
- hookManager: HookManager;
11
- }) => {
12
- load: () => void;
13
- unload: () => void;
14
- destroy: () => void;
15
- readonly state: "idle" | "loading" | "loaded" | "unloading" | "ready";
16
- readonly element: HTMLIFrameElement | undefined;
17
- isReady$: import('rxjs').Observable<boolean>;
18
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
19
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
20
- unloaded$: import('rxjs').Observable<"success">;
21
- element$: import('rxjs').Observable<HTMLIFrameElement | undefined>;
22
- };
@@ -1,8 +0,0 @@
1
- import { HookManager, Manifest } from '../../..';
2
- import { Context } from '../../../context/Context';
3
- export declare const unloadFrame: ({ item, hookManager, frameElement, context, }: {
4
- item: Manifest[`spineItems`][number];
5
- hookManager: HookManager;
6
- frameElement?: HTMLIFrameElement;
7
- context: Context;
8
- }) => import('rxjs').Observable<null>;
@@ -1,2 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- export declare const waitForFrameLoad: (stream: Observable<HTMLIFrameElement>) => Observable<HTMLIFrameElement>;