@prose-reader/core 1.66.0 → 1.68.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 (129) hide show
  1. package/dist/{cfi.d.ts → cfi/CfiHandler.d.ts} +1 -7
  2. package/dist/cfi/generate/generateCfiFromRange.d.ts +11 -0
  3. package/dist/cfi/generate/getCfiForSpineItemPage.d.ts +12 -0
  4. package/dist/cfi/generate/getItemAnchor.d.ts +3 -0
  5. package/dist/cfi/generate/getRootCfi.d.ts +3 -0
  6. package/dist/cfi/lookup/extractProseMetadataFromCfi.d.ts +5 -0
  7. package/dist/cfi/lookup/isRootCfi.d.ts +1 -0
  8. package/dist/cfi/lookup/resolveCfi.d.ts +14 -0
  9. package/dist/context/BridgeEvent.d.ts +16 -0
  10. package/dist/context/Context.d.ts +3 -1
  11. package/dist/createReaderWithEnhancer.d.ts +103 -167
  12. package/dist/enhancers/events/normalizeEventForViewport.d.ts +2 -2
  13. package/dist/enhancers/hotkeys.d.ts +2 -1
  14. package/dist/enhancers/links.d.ts +2 -1
  15. package/dist/enhancers/loadingEnhancer.d.ts +1 -1
  16. package/dist/enhancers/navigation/{navigation.d.ts → index.d.ts} +2 -7
  17. package/dist/enhancers/navigation/navigators/manualNavigator.d.ts +27 -0
  18. package/dist/enhancers/navigation/navigators/panNavigator.d.ts +21 -0
  19. package/dist/enhancers/navigation/resolvers/getNavigationForLeftPage.d.ts +16 -0
  20. package/dist/enhancers/navigation/resolvers/getNavigationForLeftSinglePage.d.ts +14 -0
  21. package/dist/enhancers/navigation/resolvers/getNavigationForRightPage.d.ts +16 -0
  22. package/dist/enhancers/navigation/resolvers/getNavigationForRightSinglePage.d.ts +14 -0
  23. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForLeftPage.d.ts +11 -0
  24. package/dist/enhancers/navigation/resolvers/getSpineItemPositionForRightPage.d.ts +11 -0
  25. package/dist/enhancers/navigation/state.d.ts +2 -5
  26. package/dist/enhancers/navigation/types.d.ts +20 -0
  27. package/dist/enhancers/pagination/enhancer.d.ts +4 -4
  28. package/dist/enhancers/pagination/pagination.d.ts +1 -1
  29. package/dist/enhancers/pagination/spine.d.ts +0 -5
  30. package/dist/enhancers/pagination/types.d.ts +1 -1
  31. package/dist/enhancers/resources/resourcesManager.d.ts +1 -1
  32. package/dist/enhancers/types/enhancer.d.ts +1 -2
  33. package/dist/hooks/types.d.ts +2 -15
  34. package/dist/index.d.ts +1 -1
  35. package/dist/index.js +5514 -4869
  36. package/dist/index.js.map +1 -1
  37. package/dist/index.umd.cjs +5517 -4872
  38. package/dist/index.umd.cjs.map +1 -1
  39. package/dist/navigation/InternalNavigator.d.ts +67 -0
  40. package/dist/navigation/InternalNavigator.test.d.ts +1 -0
  41. package/dist/navigation/Locker.d.ts +7 -0
  42. package/dist/navigation/Navigator.d.ts +70 -0
  43. package/dist/navigation/UserNavigator.d.ts +27 -0
  44. package/dist/navigation/consolidation/mapUserNavigationToInternal.d.ts +8 -0
  45. package/dist/navigation/consolidation/withCfiPosition.d.ts +11 -0
  46. package/dist/navigation/consolidation/withDirection.d.ts +22 -0
  47. package/dist/navigation/consolidation/withFallbackPosition.d.ts +13 -0
  48. package/dist/navigation/consolidation/withPaginationInfo.d.ts +10 -0
  49. package/dist/navigation/consolidation/withSpineItem.d.ts +19 -0
  50. package/dist/navigation/consolidation/withSpineItemLayoutInfo.d.ts +11 -0
  51. package/dist/navigation/consolidation/withSpineItemPosition.d.ts +19 -0
  52. package/dist/navigation/consolidation/withUrlInfo.d.ts +11 -0
  53. package/dist/navigation/resolvers/NavigationResolver.d.ts +51 -0
  54. package/dist/navigation/resolvers/getAdjustedPositionForSpread.d.ts +7 -0
  55. package/dist/navigation/resolvers/getNavigationForPosition.d.ts +11 -0
  56. package/dist/navigation/resolvers/getNavigationForSpineItemPage.d.ts +15 -0
  57. package/dist/navigation/resolvers/getNavigationForUrl.d.ts +16 -0
  58. package/dist/navigation/resolvers/getNavigationFromSpineItemPosition.d.ts +13 -0
  59. package/dist/navigation/resolvers/wrapPositionWithSafeEdge.d.ts +14 -0
  60. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.d.ts +11 -0
  61. package/dist/navigation/restoration/restoreNavigationForControlledPageTurnMode.test.d.ts +1 -0
  62. package/dist/navigation/restoration/restorePosition.d.ts +18 -0
  63. package/dist/navigation/restoration/withRestoredPosition.d.ts +21 -0
  64. package/dist/navigation/tests/SpineItemsManagerMock.d.ts +27 -0
  65. package/dist/navigation/tests/utils.d.ts +12 -0
  66. package/dist/navigation/viewport/ViewportNavigator.d.ts +36 -0
  67. package/dist/navigation/viewport/getScaledDownPosition.d.ts +11 -0
  68. package/dist/pagination/Pagination.d.ts +26 -0
  69. package/dist/pagination/PaginationController.d.ts +15 -0
  70. package/dist/reader.d.ts +108 -2
  71. package/dist/report.d.ts +2 -0
  72. package/dist/selection.d.ts +1 -1
  73. package/dist/settings/ReaderSettingsManager.d.ts +2 -1
  74. package/dist/spine/Spine.d.ts +32 -0
  75. package/dist/spine/{locationResolver.d.ts → SpineItemsManager.d.ts} +216 -226
  76. package/dist/spine/SpineItemsObserver.d.ts +17 -0
  77. package/dist/spine/loader/SpineItemsLoader.d.ts +13 -0
  78. package/dist/spine/loader/loadItems.d.ts +8 -0
  79. package/dist/spine/loader/mapToItemsToLoad.d.ts +7 -0
  80. package/dist/{spineItemManager.d.ts → spine/locator/SpineLocator.d.ts} +109 -198
  81. package/dist/spine/locator/getItemVisibilityForPosition.d.ts +19 -0
  82. package/dist/spine/locator/getItemVisibilityForPosition.test.d.ts +1 -0
  83. package/dist/spine/locator/getSpineItemFromPosition.d.ts +126 -0
  84. package/dist/spine/locator/getVisibleSpineItemsFromPosition.d.ts +16 -0
  85. package/dist/spine/locator/getVisibleSpineItemsFromPosition.test.d.ts +1 -0
  86. package/dist/spineItem/commonSpineItem.d.ts +25 -61
  87. package/dist/spineItem/createSpineItem.d.ts +24 -60
  88. package/dist/spineItem/frame/FrameItem.d.ts +44 -0
  89. package/dist/spineItem/{frameItem → frame}/createHtmlPageFromResource.d.ts +1 -1
  90. package/dist/spineItem/frame/loader/attachFrameSrc.d.ts +8 -0
  91. package/dist/spineItem/frame/loader/configureFrame.d.ts +10 -0
  92. package/dist/spineItem/frame/loader/createFrameElement.d.ts +1 -0
  93. package/dist/spineItem/frame/loader/loadFrame.d.ts +12 -0
  94. package/dist/spineItem/frame/loader/loader.d.ts +23 -0
  95. package/dist/spineItem/frame/loader/unloadFrame.d.ts +9 -0
  96. package/dist/spineItem/frame/loader/waitForFrameLoad.d.ts +3 -0
  97. package/dist/spineItem/frame/loader/waitForFrameReady.d.ts +3 -0
  98. package/dist/spineItem/helpers.d.ts +3 -0
  99. package/dist/spineItem/locationResolver.d.ts +17 -5
  100. package/dist/spineItem/navigationResolver.d.ts +6 -8
  101. package/dist/spineItem/prePaginatedSpineItem.d.ts +24 -60
  102. package/dist/spineItem/reflowable/ReflowableSpineItems.d.ts +24 -60
  103. package/dist/spineItem/types.d.ts +1 -10
  104. package/dist/tests/utils.d.ts +1 -0
  105. package/dist/utils/DestroyableClass.d.ts +5 -0
  106. package/dist/utils/dom.d.ts +3 -2
  107. package/dist/utils/rxjs.d.ts +3 -1
  108. package/package.json +3 -3
  109. package/dist/enhancers/navigation/navigator.d.ts +0 -8
  110. package/dist/enhancers/publicApi.d.ts +0 -5
  111. package/dist/pagination/pagination.d.ts +0 -88
  112. package/dist/pagination/types.d.ts +0 -10
  113. package/dist/spine/cfiLocator.d.ts +0 -340
  114. package/dist/spine/createSpine.d.ts +0 -31
  115. package/dist/spine/navigationResolver.d.ts +0 -48
  116. package/dist/spine/types.d.ts +0 -10
  117. package/dist/spineItem/frameItem/createFrame$.d.ts +0 -1
  118. package/dist/spineItem/frameItem/createFrameManipulator.d.ts +0 -5
  119. package/dist/spineItem/frameItem/frameItem.d.ts +0 -48
  120. package/dist/spineItem/frameItem/loader.d.ts +0 -29
  121. package/dist/types/Spine.d.ts +0 -40
  122. package/dist/types/index.d.ts +0 -12
  123. package/dist/types/reader.d.ts +0 -44
  124. package/dist/viewportNavigator/manualViewportNavigator.d.ts +0 -96
  125. package/dist/viewportNavigator/panViewportNavigator.d.ts +0 -55
  126. package/dist/viewportNavigator/scrollViewportNavigator.d.ts +0 -38
  127. package/dist/viewportNavigator/types.d.ts +0 -34
  128. package/dist/viewportNavigator/viewportNavigator.d.ts +0 -82
  129. /package/dist/enhancers/{pagination.test.d.ts → pagination/pagination.test.d.ts} +0 -0
@@ -1,16 +1,15 @@
1
- import { Observable } from 'rxjs';
2
1
  import { Context } from '../../context/Context';
3
- import { Manifest } from '../../types';
2
+ import { Manifest } from '../..';
4
3
  import { ReaderSettingsManager } from '../../settings/ReaderSettingsManager';
5
4
  import { HookManager } from '../../hooks/HookManager';
6
5
 
7
- export declare const createReflowableSpineItem: ({ item, context, containerElement, viewportState$, settings, hookManager, }: {
6
+ export declare const createReflowableSpineItem: ({ item, context, containerElement, settings, hookManager, index, }: {
8
7
  item: Manifest[`spineItems`][number];
9
8
  containerElement: HTMLElement;
10
9
  context: Context;
11
- viewportState$: Observable<`free` | `busy`>;
12
10
  settings: ReaderSettingsManager;
13
11
  hookManager: HookManager;
12
+ index: number;
14
13
  }) => {
15
14
  layout: ({ blankPagePosition, minimumWidth, }: {
16
15
  blankPagePosition: `before` | `after` | `none`;
@@ -22,13 +21,13 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
22
21
  item: {
23
22
  id: string;
24
23
  href: string;
25
- renditionLayout: `reflowable` | `pre-paginated`;
26
- progressionWeight: number;
27
- pageSpreadLeft: true | undefined;
28
- pageSpreadRight: true | undefined;
24
+ renditionLayout?: `reflowable` | `pre-paginated`;
25
+ progressionWeight?: number;
26
+ pageSpreadLeft?: true | undefined;
27
+ pageSpreadRight?: true | undefined;
29
28
  mediaType?: string;
30
29
  };
31
- load: () => void;
30
+ overlayElement: HTMLDivElement;
32
31
  adjustPositionOfElement: ({ right, left, top, }: {
33
32
  right?: number;
34
33
  left?: number;
@@ -37,6 +36,13 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
37
36
  getElementDimensions: () => {
38
37
  width: number;
39
38
  height: number;
39
+ x: number;
40
+ y: number;
41
+ bottom: number;
42
+ left: number;
43
+ right: number;
44
+ top: number;
45
+ toJSON(): any;
40
46
  };
41
47
  getHtmlFromResource: (response: Response) => Promise<string>;
42
48
  getResource: () => Promise<Response>;
@@ -47,43 +53,10 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
47
53
  clientX: number;
48
54
  clientY: number;
49
55
  };
50
- setLayoutDirty: () => void;
51
56
  injectStyle: (cssText: string) => void;
52
- loadContent: () => void;
53
- unloadContent: () => void;
54
- spineItemFrame: {
55
- getIsLoaded: () => boolean;
56
- getIsReady: () => boolean;
57
- getViewportDimensions: () => {
58
- width: number;
59
- height: number;
60
- } | undefined;
61
- getFrameElement: () => HTMLIFrameElement | undefined;
62
- getHtmlFromResource: (response: Response) => Promise<string>;
63
- load: () => void;
64
- unload: () => void;
65
- staticLayout: (size: {
66
- width: number;
67
- height: number;
68
- }) => void;
69
- getManipulableFrame: () => ReturnType<typeof import('../frameItem/createFrameManipulator').createFrameManipulator> | undefined;
70
- getReadingDirection: () => `ltr` | `rtl` | undefined;
71
- isUsingVerticalWriting: () => boolean;
72
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
73
- destroy: () => void;
74
- $: {
75
- unload$: Observable<void>;
76
- unloaded$: Observable<void>;
77
- loaded$: Observable<HTMLIFrameElement>;
78
- ready$: Observable<FontFaceSet | undefined>;
79
- isReady$: Observable<boolean>;
80
- contentLayoutChange$: Observable<{
81
- isFirstLayout: boolean;
82
- } | {
83
- isFirstLayout: boolean;
84
- }>;
85
- };
86
- };
57
+ load: () => void;
58
+ unload: () => void;
59
+ frame: import('../frame/FrameItem').FrameItem;
87
60
  element: HTMLElement;
88
61
  getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
89
62
  getViewPortInformation: () => {
@@ -97,17 +70,8 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
97
70
  isImageType: () => boolean;
98
71
  isReady: () => boolean;
99
72
  destroy: () => void;
73
+ readingDirection: "ltr" | "rtl" | undefined;
100
74
  isUsingVerticalWriting: () => boolean | undefined;
101
- getReadingDirection: () => "ltr" | "rtl" | undefined;
102
- manipulateSpineItem: (cb: (options: {
103
- container: HTMLElement;
104
- item: Manifest[`spineItems`][number];
105
- overlayElement: HTMLDivElement;
106
- } & (ReturnType<typeof import('../frameItem/createFrameManipulator').createFrameManipulator> | {
107
- frame: undefined;
108
- removeStyle: (id: string) => void;
109
- addStyle: (id: string, style: string) => void;
110
- })) => boolean) => boolean;
111
75
  executeOnLayoutBeforeMeasurementHook: (options: {
112
76
  minimumWidth: number;
113
77
  }) => void[];
@@ -116,7 +80,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
116
80
  destroy: () => void;
117
81
  isSelecting: () => boolean;
118
82
  getSelection: () => Selection | undefined;
119
- $: Observable<{
83
+ $: import('rxjs').Observable<{
120
84
  event: `selectionchange`;
121
85
  data: Selection | null;
122
86
  } | {
@@ -134,7 +98,7 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
134
98
  y: number | undefined;
135
99
  } | undefined;
136
100
  destroy: () => void;
137
- $: Observable<{
101
+ $: import('rxjs').Observable<{
138
102
  event: `fingermove`;
139
103
  data: {
140
104
  x: number;
@@ -155,11 +119,11 @@ export declare const createReflowableSpineItem: ({ item, context, containerEleme
155
119
  columnWidth: number;
156
120
  };
157
121
  $: {
158
- contentLayout$: Observable<{
122
+ contentLayout$: import('rxjs').Observable<{
159
123
  isFirstLayout: boolean;
160
124
  isReady: boolean;
161
125
  }>;
162
- loaded$: Observable<HTMLIFrameElement>;
163
- isReady$: Observable<boolean>;
126
+ loaded$: import('rxjs').Observable<HTMLIFrameElement>;
127
+ isReady$: import('rxjs').Observable<boolean>;
164
128
  };
165
129
  };
@@ -1,4 +1,4 @@
1
- export type SpineItemPosition = {
1
+ export type SafeSpineItemPosition = {
2
2
  x: number;
3
3
  y: number;
4
4
  __symbol?: `SpineItemPosition`;
@@ -8,12 +8,3 @@ export type UnsafeSpineItemPosition = {
8
8
  y: number;
9
9
  __symbol?: `UnsafeSpineItemPosition` | `SpineItemPosition`;
10
10
  };
11
- export declare class SpineItemNavigationPosition {
12
- __symbol: string;
13
- x: number;
14
- y: number;
15
- constructor(position: {
16
- x: number;
17
- y: number;
18
- });
19
- }
@@ -0,0 +1 @@
1
+ export declare const waitFor: (timeout: number) => Promise<unknown>;
@@ -0,0 +1,5 @@
1
+ export declare class DestroyableClass {
2
+ private destroySubject;
3
+ protected destroy$: import('rxjs').Observable<void>;
4
+ destroy(): void;
5
+ }
@@ -8,12 +8,13 @@ type ViewPort = {
8
8
  export declare const getFirstVisibleNodeForViewport: ((documentOrElement: Document | Element, viewport: ViewPort) => {
9
9
  node: Node;
10
10
  offset: number;
11
- } | undefined) | ((documentOrElement: Document | Element, viewport: ViewPort) => ReturnType<(documentOrElement: Document | Element, viewport: ViewPort) => {
11
+ } | undefined) | ((documentOrElement: Document | Element, viewport: ViewPort) => {
12
12
  node: Node;
13
13
  offset: number;
14
- } | undefined>);
14
+ } | undefined);
15
15
  export declare const getRangeFromNode: (node: Node, offset: number) => Range | undefined;
16
16
  export declare const isPointerEvent: (event: Event) => event is PointerEvent;
17
17
  export declare const isMouseEvent: (event: Event) => event is MouseEvent;
18
18
  export declare const isTouchEvent: (event: Event) => event is TouchEvent;
19
+ export declare const noopElement: () => HTMLDivElement;
19
20
  export {};
@@ -1,5 +1,7 @@
1
- import { OperatorFunction } from 'rxjs';
1
+ import { Observable, OperatorFunction } from 'rxjs';
2
2
 
3
3
  export declare const mapKeysTo: <R extends {
4
4
  [key: string]: any;
5
5
  }, K extends keyof R>(keys: K[]) => OperatorFunction<R, Pick<R, K>>;
6
+ export declare function observeResize(element: HTMLElement): Observable<ResizeObserverEntry[]>;
7
+ export declare const waitForSwitch: <O>(waitForStream: Observable<O>) => <N>(stream: Observable<N>) => Observable<N>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prose-reader/core",
3
- "version": "1.66.0",
3
+ "version": "1.68.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.66.0"
28
+ "@prose-reader/shared": "^1.68.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": "b85f65aa1f5da638a820a763740b255568d4bad5"
36
+ "gitHead": "be2b363f7b613f3257aee30c60ffecdcb42b885b"
37
37
  }
@@ -1,8 +0,0 @@
1
- import { Reader } from '../../reader';
2
-
3
- export declare const createNavigator: (reader: Reader) => {
4
- goToNextSpineItem: () => void;
5
- goToPreviousSpineItem: () => void;
6
- goToLeftSpineItem: () => void;
7
- goToRightSpineItem: () => void;
8
- };
@@ -1,5 +0,0 @@
1
- import { Reader } from '../reader';
2
-
3
- export declare const publicApiEnhancer: <InheritOptions, InheritOutput extends Reader>(next: (options: InheritOptions) => InheritOutput) => (options: InheritOptions) => Omit<InheritOutput, "pagination"> & {
4
- pagination: Pick<InheritOutput["pagination"], "paginationInfo$" | "getPaginationInfo">;
5
- };
@@ -1,88 +0,0 @@
1
- import { Context } from '../context/Context';
2
- import { SpineItem } from '../spineItem/createSpineItem';
3
- import { SpineItemManager } from '../spineItemManager';
4
- import { PaginationInfo } from './types';
5
-
6
- export declare const createPagination: ({ context, }: {
7
- context: Context;
8
- spineItemManager: SpineItemManager;
9
- }) => {
10
- destroy: () => void;
11
- updateBeginAndEnd: ((begin: Parameters<(info: {
12
- spineItem: SpineItem;
13
- pageIndex: number;
14
- cfi: string | undefined;
15
- options: {
16
- isAtEndOfChapter?: boolean;
17
- };
18
- }) => {
19
- numberOfPages: number;
20
- pageIndex: number;
21
- cfi: string | undefined;
22
- }>[0] & {
23
- spineItemIndex: number;
24
- }, end: Parameters<(info: {
25
- spineItem: SpineItem;
26
- pageIndex: number;
27
- cfi: string | undefined;
28
- options: {
29
- isAtEndOfChapter?: boolean;
30
- };
31
- }) => {
32
- numberOfPages: number;
33
- pageIndex: number;
34
- cfi: string | undefined;
35
- }>[0] & {
36
- spineItemIndex: number;
37
- }) => void) | ((begin: {
38
- spineItem: SpineItem;
39
- pageIndex: number;
40
- cfi: string | undefined;
41
- options: {
42
- isAtEndOfChapter?: boolean;
43
- };
44
- } & {
45
- spineItemIndex: number;
46
- }, end: {
47
- spineItem: SpineItem;
48
- pageIndex: number;
49
- cfi: string | undefined;
50
- options: {
51
- isAtEndOfChapter?: boolean;
52
- };
53
- } & {
54
- spineItemIndex: number;
55
- }) => ReturnType<(begin: Parameters<(info: {
56
- spineItem: SpineItem;
57
- pageIndex: number;
58
- cfi: string | undefined;
59
- options: {
60
- isAtEndOfChapter?: boolean;
61
- };
62
- }) => {
63
- numberOfPages: number;
64
- pageIndex: number;
65
- cfi: string | undefined;
66
- }>[0] & {
67
- spineItemIndex: number;
68
- }, end: Parameters<(info: {
69
- spineItem: SpineItem;
70
- pageIndex: number;
71
- cfi: string | undefined;
72
- options: {
73
- isAtEndOfChapter?: boolean;
74
- };
75
- }) => {
76
- numberOfPages: number;
77
- pageIndex: number;
78
- cfi: string | undefined;
79
- }>[0] & {
80
- spineItemIndex: number;
81
- }) => void>);
82
- getPaginationInfo: () => PaginationInfo;
83
- paginationInfo$: import('rxjs').Observable<PaginationInfo>;
84
- };
85
- export type Pagination = ReturnType<typeof createPagination>;
86
- export declare const getItemOffsetFromPageIndex: (pageWidth: number, pageIndex: number, itemWidth: number) => number;
87
- export declare const calculateNumberOfPagesForItem: (itemWidth: number, pageWidth: number) => number;
88
- export declare const getClosestValidOffsetFromApproximateOffsetInPages: (offset: number, pageWidth: number, itemWidth: number) => number;
@@ -1,10 +0,0 @@
1
- export type PaginationInfo = {
2
- beginPageIndexInSpineItem: number | undefined;
3
- beginNumberOfPagesInSpineItem: number;
4
- beginCfi: string | undefined;
5
- beginSpineItemIndex: number | undefined;
6
- endPageIndexInSpineItem: number | undefined;
7
- endNumberOfPagesInSpineItem: number;
8
- endCfi: string | undefined;
9
- endSpineItemIndex: number | undefined;
10
- };
@@ -1,340 +0,0 @@
1
- import { Context } from '../context/Context';
2
- import { SpineItem } from '../spineItem/createSpineItem';
3
- import { createLocationResolver } from '../spineItem/locationResolver';
4
- import { SpineItemManager } from '../spineItemManager';
5
- import { Manifest } from '../types';
6
-
7
- export declare const createCfiLocator: ({ spineItemManager, spineItemLocator, }: {
8
- spineItemManager: SpineItemManager;
9
- context: Context;
10
- spineItemLocator: ReturnType<typeof createLocationResolver>;
11
- }) => {
12
- getSpineItemFromCfi: (cfi: string) => {
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
- load: () => void;
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
- };
40
- getHtmlFromResource: (response: Response) => Promise<string>;
41
- getResource: () => Promise<Response>;
42
- translateFramePositionIntoPage: (position: {
43
- clientX: number;
44
- clientY: number;
45
- }) => {
46
- clientX: number;
47
- clientY: number;
48
- };
49
- setLayoutDirty: () => void;
50
- injectStyle: (cssText: string) => void;
51
- loadContent: () => void;
52
- unloadContent: () => void;
53
- spineItemFrame: {
54
- getIsLoaded: () => boolean;
55
- getIsReady: () => boolean;
56
- getViewportDimensions: () => {
57
- width: number;
58
- height: number;
59
- } | undefined;
60
- getFrameElement: () => HTMLIFrameElement | undefined;
61
- getHtmlFromResource: (response: Response) => Promise<string>;
62
- load: () => void;
63
- unload: () => void;
64
- staticLayout: (size: {
65
- width: number;
66
- height: number;
67
- }) => void;
68
- getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
69
- getReadingDirection: () => `ltr` | `rtl` | undefined;
70
- isUsingVerticalWriting: () => boolean;
71
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
72
- destroy: () => void;
73
- $: {
74
- unload$: import('rxjs').Observable<void>;
75
- unloaded$: import('rxjs').Observable<void>;
76
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
77
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
78
- isReady$: import('rxjs').Observable<boolean>;
79
- contentLayoutChange$: import('rxjs').Observable<{
80
- isFirstLayout: boolean;
81
- } | {
82
- isFirstLayout: boolean;
83
- }>;
84
- };
85
- };
86
- element: HTMLElement;
87
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
88
- getViewPortInformation: () => {
89
- computedScale: number;
90
- computedWidthScale: number;
91
- viewportDimensions: {
92
- width: number;
93
- height: number;
94
- };
95
- } | undefined;
96
- isImageType: () => boolean;
97
- isReady: () => boolean;
98
- destroy: () => void;
99
- isUsingVerticalWriting: () => boolean | undefined;
100
- getReadingDirection: () => "ltr" | "rtl" | undefined;
101
- manipulateSpineItem: (cb: (options: {
102
- container: HTMLElement;
103
- item: Manifest[`spineItems`][number];
104
- overlayElement: HTMLDivElement;
105
- } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
106
- frame: undefined;
107
- removeStyle: (id: string) => void;
108
- addStyle: (id: string, style: string) => void;
109
- })) => boolean) => boolean;
110
- executeOnLayoutBeforeMeasurementHook: (options: {
111
- minimumWidth: number;
112
- }) => void[];
113
- selectionTracker: {
114
- track: (frameToTrack: HTMLIFrameElement) => void;
115
- destroy: () => void;
116
- isSelecting: () => boolean;
117
- getSelection: () => Selection | undefined;
118
- $: import('rxjs').Observable<{
119
- event: `selectionchange`;
120
- data: Selection | null;
121
- } | {
122
- event: `selectstart`;
123
- data: Selection | null;
124
- } | {
125
- event: `selectend`;
126
- data: Selection | null;
127
- }>;
128
- };
129
- fingerTracker: {
130
- track: (frame: HTMLIFrameElement) => void;
131
- getFingerPositionInIframe(): {
132
- x: number | undefined;
133
- y: number | undefined;
134
- } | undefined;
135
- destroy: () => void;
136
- $: import('rxjs').Observable<{
137
- event: `fingermove`;
138
- data: {
139
- x: number;
140
- y: number;
141
- };
142
- } | {
143
- event: `fingerout`;
144
- data: undefined;
145
- }>;
146
- };
147
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
148
- columnHeight: number;
149
- columnWidth: number;
150
- width: number;
151
- };
152
- getDimensionsForPaginatedContent: () => {
153
- columnHeight: number;
154
- columnWidth: number;
155
- };
156
- $: {
157
- contentLayout$: import('rxjs').Observable<{
158
- isFirstLayout: boolean;
159
- isReady: boolean;
160
- }>;
161
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
162
- isReady$: import('rxjs').Observable<boolean>;
163
- };
164
- } | undefined;
165
- getCfiMetaInformation: (cfi: string) => {
166
- spineItemIndex: number | undefined;
167
- } | undefined;
168
- getCfi: ((pageIndex: number, spineItem: SpineItem) => string) | ((pageIndex: number, spineItem: {
169
- layout: ({ blankPagePosition, minimumWidth, spreadPosition, }: {
170
- blankPagePosition: `before` | `after` | `none`;
171
- minimumWidth: number;
172
- spreadPosition: `none` | `left` | `right`;
173
- }) => {
174
- width: number;
175
- height: number;
176
- };
177
- item: {
178
- id: string;
179
- href: string;
180
- renditionLayout: `reflowable` | `pre-paginated`;
181
- progressionWeight: number;
182
- pageSpreadLeft: true | undefined;
183
- pageSpreadRight: true | undefined;
184
- mediaType?: string;
185
- };
186
- load: () => void;
187
- adjustPositionOfElement: ({ right, left, top, }: {
188
- right?: number;
189
- left?: number;
190
- top?: number;
191
- }) => void;
192
- getElementDimensions: () => {
193
- width: number;
194
- height: number;
195
- };
196
- getHtmlFromResource: (response: Response) => Promise<string>;
197
- getResource: () => Promise<Response>;
198
- translateFramePositionIntoPage: (position: {
199
- clientX: number;
200
- clientY: number;
201
- }) => {
202
- clientX: number;
203
- clientY: number;
204
- };
205
- setLayoutDirty: () => void;
206
- injectStyle: (cssText: string) => void;
207
- loadContent: () => void;
208
- unloadContent: () => void;
209
- spineItemFrame: {
210
- getIsLoaded: () => boolean;
211
- getIsReady: () => boolean;
212
- getViewportDimensions: () => {
213
- width: number;
214
- height: number;
215
- } | undefined;
216
- getFrameElement: () => HTMLIFrameElement | undefined;
217
- getHtmlFromResource: (response: Response) => Promise<string>;
218
- load: () => void;
219
- unload: () => void;
220
- staticLayout: (size: {
221
- width: number;
222
- height: number;
223
- }) => void;
224
- getManipulableFrame: () => ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | undefined;
225
- getReadingDirection: () => `ltr` | `rtl` | undefined;
226
- isUsingVerticalWriting: () => boolean;
227
- getWritingMode: () => `vertical-rl` | `horizontal-tb` | undefined;
228
- destroy: () => void;
229
- $: {
230
- unload$: import('rxjs').Observable<void>;
231
- unloaded$: import('rxjs').Observable<void>;
232
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
233
- ready$: import('rxjs').Observable<FontFaceSet | undefined>;
234
- isReady$: import('rxjs').Observable<boolean>;
235
- contentLayoutChange$: import('rxjs').Observable<{
236
- isFirstLayout: boolean;
237
- } | {
238
- isFirstLayout: boolean;
239
- }>;
240
- };
241
- };
242
- element: HTMLElement;
243
- getBoundingRectOfElementFromSelector: (selector: string) => DOMRect | undefined;
244
- getViewPortInformation: () => {
245
- computedScale: number;
246
- computedWidthScale: number;
247
- viewportDimensions: {
248
- width: number;
249
- height: number;
250
- };
251
- } | undefined;
252
- isImageType: () => boolean;
253
- isReady: () => boolean;
254
- destroy: () => void;
255
- isUsingVerticalWriting: () => boolean | undefined;
256
- getReadingDirection: () => "ltr" | "rtl" | undefined;
257
- manipulateSpineItem: (cb: (options: {
258
- container: HTMLElement;
259
- item: Manifest[`spineItems`][number];
260
- overlayElement: HTMLDivElement;
261
- } & (ReturnType<typeof import('../spineItem/frameItem/createFrameManipulator').createFrameManipulator> | {
262
- frame: undefined;
263
- removeStyle: (id: string) => void;
264
- addStyle: (id: string, style: string) => void;
265
- })) => boolean) => boolean;
266
- executeOnLayoutBeforeMeasurementHook: (options: {
267
- minimumWidth: number;
268
- }) => void[];
269
- selectionTracker: {
270
- track: (frameToTrack: HTMLIFrameElement) => void;
271
- destroy: () => void;
272
- isSelecting: () => boolean;
273
- getSelection: () => Selection | undefined;
274
- $: import('rxjs').Observable<{
275
- event: `selectionchange`;
276
- data: Selection | null;
277
- } | {
278
- event: `selectstart`;
279
- data: Selection | null;
280
- } | {
281
- event: `selectend`;
282
- data: Selection | null;
283
- }>;
284
- };
285
- fingerTracker: {
286
- track: (frame: HTMLIFrameElement) => void;
287
- getFingerPositionInIframe(): {
288
- x: number | undefined;
289
- y: number | undefined;
290
- } | undefined;
291
- destroy: () => void;
292
- $: import('rxjs').Observable<{
293
- event: `fingermove`;
294
- data: {
295
- x: number;
296
- y: number;
297
- };
298
- } | {
299
- event: `fingerout`;
300
- data: undefined;
301
- }>;
302
- };
303
- getDimensionsForReflowableContent: (isUsingVerticalWriting: boolean, minimumWidth: number) => {
304
- columnHeight: number;
305
- columnWidth: number;
306
- width: number;
307
- };
308
- getDimensionsForPaginatedContent: () => {
309
- columnHeight: number;
310
- columnWidth: number;
311
- };
312
- $: {
313
- contentLayout$: import('rxjs').Observable<{
314
- isFirstLayout: boolean;
315
- isReady: boolean;
316
- }>;
317
- loaded$: import('rxjs').Observable<HTMLIFrameElement>;
318
- isReady$: import('rxjs').Observable<boolean>;
319
- };
320
- }) => ReturnType<(pageIndex: number, spineItem: SpineItem) => string>);
321
- getRootCfi: (spineItem: SpineItem) => string;
322
- resolveCfi: (cfiString: string) => {
323
- node: Node | undefined;
324
- offset: number | undefined;
325
- spineItemIndex: number;
326
- } | {
327
- spineItemIndex: number;
328
- node?: undefined;
329
- offset?: undefined;
330
- } | undefined;
331
- generateFromRange: ({ startNode, start, end, endNode, }: {
332
- startNode: Node;
333
- start: number;
334
- endNode: Node;
335
- end: number;
336
- }, item: Manifest[`spineItems`][number]) => {
337
- start: string;
338
- end: string;
339
- };
340
- };